JP2022135939A - Information processor, robot system, article manufacturing method, information processing method, program, and recording medium - Google Patents

Information processor, robot system, article manufacturing method, information processing method, program, and recording medium Download PDF

Info

Publication number
JP2022135939A
JP2022135939A JP2022011329A JP2022011329A JP2022135939A JP 2022135939 A JP2022135939 A JP 2022135939A JP 2022011329 A JP2022011329 A JP 2022011329A JP 2022011329 A JP2022011329 A JP 2022011329A JP 2022135939 A JP2022135939 A JP 2022135939A
Authority
JP
Japan
Prior art keywords
virtual
information processing
robot
work
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022011329A
Other languages
Japanese (ja)
Inventor
泰晴 前田
Yasuharu Maeda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to EP22156487.5A priority Critical patent/EP4052865A1/en
Priority to US17/680,491 priority patent/US20220281103A1/en
Priority to CN202210201989.7A priority patent/CN115008439A/en
Publication of JP2022135939A publication Critical patent/JP2022135939A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Manipulator (AREA)

Abstract

To facilitate simulation work by a user.SOLUTION: An information processor 300 includes a CPU 301 which can simulate behaviors of a virtual robot and virtual workpiece in virtual environment. The CPU 301 can execute processing of setting an interlocking condition for interlocking a virtual robot hand of the virtual robot and the virtual workpiece.SELECTED DRAWING: Figure 3

Description

本発明は、ロボットに関する技術である。 The present invention relates to robot technology.

工場では、ばら積みされたワークをトレイ等に整頓するキッティング作業や、供給されたワークを別のワークに嵌合又は挿入して、物品の組み立てを行うアセンブリ作業などが行われている。これら作業において、産業用ロボットが活用され、工場の自動化が実施されている。 In a factory, a kitting operation for arranging bulky workpieces in a tray or the like, an assembly operation for assembling articles by fitting or inserting a supplied workpiece into another workpiece, and the like are performed. In these tasks, industrial robots are used to automate factories.

産業用ロボットが行うキッティング作業及びアセンブリ作業において、ロボットにワークを保持させ、特定の位置へワークを搬送させる搬送動作がある。ロボットにワークを保持させる位置やその位置からのロボットの動作をユーザが教示する必要がある。その教示の際には、ロボットが周辺の設備等と接触しないように必要がある。 2. Description of the Related Art In kitting work and assembly work performed by an industrial robot, there is a transport operation in which a robot holds a work and transports the work to a specific position. It is necessary for the user to teach the position where the robot is to hold the workpiece and the motion of the robot from that position. During the teaching, it is necessary to prevent the robot from coming into contact with surrounding facilities.

特許文献1には、オフライン教示に関する技術として、仮想ロボットの動作をシミュレートする際に、仮想ワークを表示するか否かを設定することが記載されている。 Japanese Patent Laid-Open No. 2002-200002 describes a technique related to offline teaching, which sets whether or not to display a virtual workpiece when simulating the motion of a virtual robot.

特開2017-87300号公報Japanese Patent Application Laid-Open No. 2017-87300

しかしながら、仮想ロボットが保持している仮想ワークの表示と非表示とを切り替えるだけでは、仮想ワークの挙動を、ユーザが画像を目視することで確認できるだけであり、シミュレーションに係るユーザの作業性に改良が求められていた。 However, by simply switching between display and non-display of the virtual work held by the virtual robot, the user can only confirm the behavior of the virtual work by viewing the image. was sought.

本発明は、シミュレーションに係るユーザの作業性を向上することを目的とする。 An object of the present invention is to improve the user's workability related to simulation.

本発明に係る第1の態様の情報処理装置は、仮想環境において仮想ロボット及び仮想ワークの挙動をシミュレート可能な情報処理部を備え、前記情報処理部は、前記仮想ワークを前記仮想ロボットの所定部位と連動させるための連動条件を設定する処理を実行可能である、ことを特徴とする。 An information processing apparatus according to a first aspect of the present invention comprises an information processing section capable of simulating behaviors of a virtual robot and a virtual work in a virtual environment, wherein the information processing section is configured to simulate the virtual work in a predetermined manner of the virtual robot. It is characterized by being capable of executing a process of setting an interlocking condition for interlocking with a part.

本発明に係る第2の態様の情報処理方法は、情報処理部が仮想環境において仮想ロボット及び仮想ワークの挙動をシミュレートする情報処理方法であって、前記情報処理部によって、前記仮想ワークを前記仮想ロボットの所定部位と連動させるための連動条件を設定する処理を実行する、ことを特徴とする。 An information processing method according to a second aspect of the present invention is an information processing method in which an information processing unit simulates behaviors of a virtual robot and a virtual work in a virtual environment, wherein the information processing unit simulates the virtual work as described above. It is characterized by executing a process of setting an interlocking condition for interlocking with a predetermined part of the virtual robot.

本発明によれば、シミュレーションに係るユーザの作業性を向上することができる。 According to the present invention, it is possible to improve the user's workability related to simulation.

第1実施形態に係るロボットシステムの説明図である。1 is an explanatory diagram of a robot system according to a first embodiment; FIG. (a)は第1実施形態に係るロボットの説明図である。(b)は第1実施形態に係るロボットハンドの説明図である。(a) is an explanatory diagram of the robot according to the first embodiment. (b) is an explanatory diagram of the robot hand according to the first embodiment. (a)は第1実施形態に係る情報処理装置の説明図である。(b)は第1実施形態に係る情報処理装置のブロック図である。1A is an explanatory diagram of an information processing apparatus according to a first embodiment; FIG. 3B is a block diagram of the information processing apparatus according to the first embodiment; FIG. 第1実施形態に係る情報処理装置によってシミュレートされる仮想空間の説明図である。FIG. 2 is an explanatory diagram of a virtual space simulated by the information processing apparatus according to the first embodiment; FIG. 第1実施形態に係る情報処理方法のフローチャートである。4 is a flowchart of an information processing method according to the first embodiment; 第1実施形態に係る表示画像の一例を示す説明図である。FIG. 4 is an explanatory diagram showing an example of a display image according to the first embodiment; FIG. 第1実施形態に係る表示画像の一例を示す説明図である。FIG. 4 is an explanatory diagram showing an example of a display image according to the first embodiment; FIG. 第1実施形態に係る表示画像の一例を示す説明図である。FIG. 4 is an explanatory diagram showing an example of a display image according to the first embodiment; FIG. 第1実施形態に係る表示画像の一例を示す説明図である。FIG. 4 is an explanatory diagram showing an example of a display image according to the first embodiment; FIG. 第1実施形態において仮想ワークを仮想ロボットハンドと連動させる計算を説明するための模式図である。FIG. 5 is a schematic diagram for explaining calculations for interlocking a virtual work with a virtual robot hand in the first embodiment; (a)及び(b)は、第1実施形態において仮想ワークに設定される対象のリストの一例を示す説明図である。(a) and (b) are explanatory diagrams showing an example of a list of targets set in a virtual work in the first embodiment. 第1実施形態において処理により求めた仮想ロボットの動作の一例を示す説明図である。FIG. 4 is an explanatory diagram showing an example of the motion of a virtual robot obtained by processing in the first embodiment; 第1実施形態に係る表示画像の一例を示す説明図である。FIG. 4 is an explanatory diagram showing an example of a display image according to the first embodiment; FIG. 第1実施形態に係る処理の一例を示すフローチャートである。4 is a flowchart showing an example of processing according to the first embodiment; 第2実施形態に係る表示画像の一例を示す説明図である。FIG. 11 is an explanatory diagram showing an example of a display image according to the second embodiment; FIG. 第2実施形態に係る表示画像の一例を示す説明図である。FIG. 11 is an explanatory diagram showing an example of a display image according to the second embodiment; FIG. 第2実施形態に係る表示画像の一例を示す説明図である。FIG. 11 is an explanatory diagram showing an example of a display image according to the second embodiment; FIG.

以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.

(第1実施形態)
図1は、第1実施形態に係るロボットシステム1000の説明図である。ロボットシステム1000は、ロボット100と、制御装置200と、情報処理装置300と、を備える。
(First embodiment)
FIG. 1 is an explanatory diagram of a robot system 1000 according to the first embodiment. A robot system 1000 includes a robot 100 , a control device 200 and an information processing device 300 .

ロボット100は、産業用ロボットであり、物品を製造するのに用いられる。ロボット100は、マニピュレータであり、ロボットアーム101と、エンドエフェクタの一例であるロボットハンド102と、を有する。ロボット100は、例えば架台500に位置決め配置されている。 Robot 100 is an industrial robot and is used to manufacture articles. A robot 100 is a manipulator, and has a robot arm 101 and a robot hand 102 that is an example of an end effector. The robot 100 is positioned, for example, on a frame 500 .

ロボット100の周囲には、複数のワークW11,W12,W13,W14、複数のワークW21,W22、及び壁50等が、架台500上に位置決め配置される。各ワークW11~W14は、第1ワークであり、各ワークW21,W22は、第2ワークである。 Around the robot 100, a plurality of works W11, W12, W13, W14, a plurality of works W21, W22, a wall 50, and the like are positioned on a frame 500 and arranged. The works W11 to W14 are the first works, and the works W21 and W22 are the second works.

各ワークW11~W14は、架台500上に位置決めされたワーク支持台501に配置される。これにより、各ワークW11~W14は、架台500に対して位置決めされる。ロボット100によりワークW11~W14のいずれかがワークW21,W22のいずれかに組み付けられることにより、物品が製造される。 Each of the works W11 to W14 is placed on a work support base 501 positioned on the base 500. As shown in FIG. Thereby, each of the works W11 to W14 is positioned with respect to the pedestal 500. As shown in FIG. An article is manufactured by assembling one of the works W11 to W14 to one of the works W21 and W22 by the robot 100. FIG.

図2(a)は、第1実施形態に係るロボット100の説明図である。図2(b)は、第1実施形態に係るロボットハンド102の説明図である。ロボットアーム101は、例えば垂直多関節のロボットアームである。ロボットアーム101の基端である固定端1011が架台500に固定されている。ロボットアーム101の先端である自由端1012には、ロボットハンド102が取り付けられている。ロボットアーム101は、ベース110と、複数のリンク111~116とを有する。これらベース110及びリンク111~116が関節J1~J6で連結されることにより、各リンク111~116が各関節J1~J6で回転可能となっている。第1実施形態では、ベース110が固定端1011であり、リンク116が自由端1012である。 FIG. 2(a) is an explanatory diagram of the robot 100 according to the first embodiment. FIG. 2B is an explanatory diagram of the robot hand 102 according to the first embodiment. The robot arm 101 is, for example, a vertically articulated robot arm. A fixed end 1011 , which is the base end of the robot arm 101 , is fixed to the base 500 . A robot hand 102 is attached to the free end 1012 that is the tip of the robot arm 101 . The robot arm 101 has a base 110 and a plurality of links 111-116. By connecting the base 110 and the links 111 to 116 with the joints J1 to J6, the links 111 to 116 are rotatable at the joints J1 to J6. In the first embodiment, base 110 is fixed end 1011 and link 116 is free end 1012 .

各関節J1~J6には、動力源として不図示のモータが配置されている。各関節J1~J6に設けられた不図示のモータが各関節J1~J6、即ち各リンク111~116を駆動することで、ロボット100は様々な姿勢をとることができる。 A motor (not shown) is arranged at each of the joints J1 to J6 as a power source. Motors (not shown) provided at the joints J1 to J6 drive the joints J1 to J6, that is, the links 111 to 116, so that the robot 100 can take various postures.

ロボットハンド102は、各ワークW11~W14を保持することが可能に構成されている。第1実施形態では、ロボットハンド102は、図2(b)に示すように、駆動部を含むハンド本体120と、ハンド本体120に支持された複数のフィンガ121と、を有し、各ワークW11~W14を把持可能に構成されている。複数のフィンガ121は、ハンド本体120の駆動部によって、互いに近接及び離間する方向に直動駆動される。図2(b)には、複数のフィンガ121が互いに近接する方向を矢印で示している。なお、ロボットハンド102が把持式である場合について説明するが、これに限定するものではなく、吸着式であってもよい。 The robot hand 102 is configured to be able to hold each of the works W11 to W14. In the first embodiment, as shown in FIG. 2B, the robot hand 102 has a hand main body 120 including a drive section, and a plurality of fingers 121 supported by the hand main body 120. Each work W11 ∼ W14 can be grasped. The plurality of fingers 121 are rectilinearly driven by the driving section of the hand body 120 in directions of approaching and separating from each other. In FIG. 2B, arrows indicate directions in which the fingers 121 approach each other. Although the case where the robot hand 102 is of a grasping type will be described, the robot hand 102 is not limited to this, and may be of a suction type.

図1に示す制御装置200は、ロボット100の動作情報、即ちロボットプログラムを示す教示データに基づいて、ロボット100を制御するものである。制御装置200は、教示データを情報処理装置300から取得する。教示データには、コマンドの情報や教示点の情報が含まれている。第1実施形態では、制御装置200は、教示データに基づいてロボット100を動作させることで、ロボット100に複数のワークW11~W14のうちのいずれか1つを保持させる。そして、制御装置200は、ロボット100にそのワークを複数のワークW21,W22のうちのいずれか1つに組み付けさせて物品を製造する。 The controller 200 shown in FIG. 1 controls the robot 100 based on motion information of the robot 100, that is, teaching data representing a robot program. Control device 200 acquires teaching data from information processing device 300 . The teaching data includes command information and teaching point information. In the first embodiment, the control device 200 causes the robot 100 to hold any one of the plurality of works W11 to W14 by operating the robot 100 based on teaching data. Then, the control device 200 causes the robot 100 to assemble the workpiece to one of the plurality of workpieces W21 and W22 to manufacture the article.

情報処理装置300は、コンピュータで構成され、教示装置、即ちシミュレータとして機能する。第1実施形態では、情報処理装置300は、コンピュータシミュレーション、即ちオフライン教示により、教示データを生成する。情報処理装置300によって生成された教示データは、制御装置200に出力される。制御装置200への教示データの出力方法は、特に限定されるものではない。例えば、情報処理装置300によって生成された教示データを、有線通信若しくは無線通信によって、又は不図示の記憶装置を介して、制御装置200に出力されるようにしてもよい。 The information processing device 300 is composed of a computer and functions as a teaching device, that is, a simulator. In the first embodiment, the information processing apparatus 300 generates teaching data through computer simulation, that is, offline teaching. The teaching data generated by information processing device 300 is output to control device 200 . A method of outputting teaching data to control device 200 is not particularly limited. For example, the teaching data generated by the information processing device 300 may be output to the control device 200 through wired communication, wireless communication, or via a storage device (not shown).

図3(a)は、第1実施形態に係る情報処理装置300の説明図である。情報処理装置300は、装置本体301と、装置本体301に接続された表示装置の一例であるディスプレイ302と、装置本体301に接続された入力装置の一例であるキーボード303及びマウス304と、を備える。以下、情報処理装置300が、汎用コンピュータであるデスクトップPCである場合を例に説明するが、これに限定するものではない。情報処理装置300が、例えばラップトップPC、タブレットPC、スマートフォン等の汎用コンピュータであってもよいし、ティーチングペンダントであってもよいし、シミュレータ専用のコンピュータであってもよい。また、情報処理装置300が、制御装置200に組み込まれていてもよい。即ち、制御装置200がシミュレータの機能を有していてもよい。 FIG. 3A is an explanatory diagram of the information processing device 300 according to the first embodiment. The information processing apparatus 300 includes a device main body 301, a display 302 that is an example of a display device connected to the device main body 301, and a keyboard 303 and a mouse 304 that are examples of input devices connected to the device main body 301. . A case in which the information processing apparatus 300 is a desktop PC, which is a general-purpose computer, will be described below as an example, but the present invention is not limited to this. The information processing device 300 may be, for example, a general-purpose computer such as a laptop PC, a tablet PC, or a smart phone, a teaching pendant, or a computer dedicated to a simulator. Also, the information processing device 300 may be incorporated in the control device 200 . That is, the control device 200 may have a simulator function.

図3(b)は、第1実施形態に係る情報処理装置300のブロック図である。情報処理装置300の装置本体301は、プロセッサであるCPU(Central Processing Unit)311を備える。また装置本体301は、記憶部として、ROM(Read Only Memory)312、RAM(Random Access Memory)313、HDD(Hard Disk Drive)314を備える。また、装置本体301は、記録ディスクドライブ315、及び入出力インタフェースであるI/O320を備える。CPU311、ROM312、RAM313、HDD314、記録ディスクドライブ315、及びI/O320は、互いに通信可能にバス310で接続されている。 FIG. 3B is a block diagram of the information processing device 300 according to the first embodiment. A device main body 301 of the information processing device 300 includes a CPU (Central Processing Unit) 311 which is a processor. The apparatus main body 301 also includes a ROM (Read Only Memory) 312, a RAM (Random Access Memory) 313, and a HDD (Hard Disk Drive) 314 as storage units. The device main body 301 also includes a recording disk drive 315 and an I/O 320 that is an input/output interface. The CPU 311, ROM 312, RAM 313, HDD 314, recording disk drive 315, and I/O 320 are connected via a bus 310 so as to be able to communicate with each other.

ROM312は、非一時的な記憶装置である。ROM312には、コンピュータ起動時にCPU311によって読み出される基本プログラムが格納されている。RAM313は、CPU311の演算処理に用いられる一時的な記憶装置である。HDD314は、CPU311の演算処理結果等、各種データを記憶する非一時的な記憶装置である。第1実施形態では、HDD314には、プログラム350が格納されている。プログラム350は、アプリケーションソフトウェアである。CPU311は、プログラム350を実行することにより、後述する、仮想環境において仮想ロボット及び仮想ワークの挙動をシミュレート可能な情報処理部として機能する。 ROM 312 is a non-temporary storage device. The ROM 312 stores a basic program read by the CPU 311 when the computer is started. A RAM 313 is a temporary storage device used for arithmetic processing by the CPU 311 . The HDD 314 is a non-temporary storage device that stores various data such as results of arithmetic processing by the CPU 311 . In the first embodiment, the HDD 314 stores a program 350 . Program 350 is application software. By executing the program 350, the CPU 311 functions as an information processing unit capable of simulating behaviors of a virtual robot and a virtual work in a virtual environment, which will be described later.

記録ディスクドライブ315は、記録ディスク340に記録された各種データやプログラム等を読み出すことができる。I/O320は、外部とのインタフェースとして機能する。I/O320には、ディスプレイ302、キーボード303、及びマウス304が接続される。ディスプレイ302は、CPU311の制御により、ユーザインタフェースとなる画像や、ユーザがキーボード303及びマウス304を用いて入力した情報を反映させた画像を表示する。教示点の情報を含む教示データは、プログラム350を実行するCPU311によって作成される。 The recording disk drive 315 can read various data and programs recorded on the recording disk 340 . The I/O 320 functions as an interface with the outside. A display 302 , a keyboard 303 and a mouse 304 are connected to the I/O 320 . Under the control of the CPU 311 , the display 302 displays an image serving as a user interface and an image reflecting information input by the user using the keyboard 303 and mouse 304 . Teaching data including information on teaching points is created by CPU 311 executing program 350 .

なお、第1実施形態では、コンピュータによって読み取り可能な非一時的な記録媒体がHDD314であり、HDD314にプログラム350が記録されているが、これに限定するものではない。プログラム350は、コンピュータによって読み取り可能な非一時的な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム350をコンピュータに供給するための記録媒体としては、例えばフレキシブルディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。 In the first embodiment, the HDD 314 is the non-temporary computer-readable recording medium, and the program 350 is recorded on the HDD 314, but the present invention is not limited to this. The program 350 may be recorded on any computer-readable non-temporary recording medium. As a recording medium for supplying the program 350 to the computer, for example, a flexible disk, an optical disk, a magneto-optical disk, a magnetic tape, a non-volatile memory, etc. can be used.

図4は、第1実施形態に係る情報処理装置300によってシミュレートされる仮想空間Rの説明図である。CPU311は、仮想環境として、図4に示す仮想空間Rを定義する。仮想空間Rにおける仮想物は、3次元のモデルデータ、例えばCADデータで定義され、図4においては、便宜上、構造物として可視化して図示している。 FIG. 4 is an explanatory diagram of the virtual space R simulated by the information processing device 300 according to the first embodiment. The CPU 311 defines a virtual space R shown in FIG. 4 as a virtual environment. A virtual object in the virtual space R is defined by three-dimensional model data, such as CAD data, and is visualized as a structure in FIG. 4 for the sake of convenience.

図4に示す仮想空間Rに定義される仮想物について説明する。仮想空間Rには、仮想架台500A及び仮想ロボット100Aが定義される。仮想架台500A及び仮想ロボット100Aは、図1に示す架台500及びロボット100を模擬した3次元のモデルデータで定義される。仮想ロボット100Aは、仮想架台500A上に定義される。仮想ロボット100Aは、複数の部位として、仮想ベース110A、複数の仮想リンク111A~116A、及び仮想ロボットハンド102Aを含む。仮想ロボット100Aが図1に示すロボット100と同様の動作が可能となるよう、各仮想リンク111A~116Aは、各関節J1A~J6Aで回転可能に定義される。仮想ロボットハンド102Aは、仮想エンドエフェクタの一例であり、第1実施形態では、所定部位の一例でもある。 A virtual object defined in the virtual space R shown in FIG. 4 will be described. In the virtual space R, a virtual platform 500A and a virtual robot 100A are defined. The virtual platform 500A and the virtual robot 100A are defined by three-dimensional model data simulating the platform 500 and the robot 100 shown in FIG. A virtual robot 100A is defined on a virtual platform 500A. The virtual robot 100A includes a virtual base 110A, a plurality of virtual links 111A to 116A, and a virtual robot hand 102A as multiple parts. Each virtual link 111A to 116A is defined to be rotatable at each joint J1A to J6A so that the virtual robot 100A can perform the same motion as the robot 100 shown in FIG. The virtual robot hand 102A is an example of a virtual end effector, and also an example of a predetermined part in the first embodiment.

仮想空間Rにおいて、仮想架台500A上における仮想ロボット100Aの周囲には、図1に示すワークW11~W14、W21及びW22を模擬した3次元のモデルデータである仮想ワークW11A~W14A、W21A及びW22Aが定義される。各仮想ワークW11A~W14Aは、第1仮想ワークであり、各仮想ワークW21A,W22Aは、第2仮想ワークである。各仮想ワークW11A~W14Aは、仮想支持台501Aに配置されるよう定義される。また、仮想空間Rにおいて、壁50を模擬した3次元のモデルデータである仮想壁50Aが仮想架台500A上に定義される。CPU311は、仮想ロボット100Aが仮想ワークW11A~W14Aのいずれかを仮想ワークW21A,W22Aのいずれかに組み付ける動作についてシミュレートする。図4に示す仮想空間Rは、図3(a)に示すディスプレイ302の表示画面3020に静止画又は動画で表示される。 In the virtual space R, virtual works W11A to W14A, W21A and W22A, which are three-dimensional model data simulating the works W11 to W14, W21 and W22 shown in FIG. Defined. Each virtual work W11A to W14A is a first virtual work, and each virtual work W21A, W22A is a second virtual work. Each virtual work W11A to W14A is defined to be placed on the virtual support base 501A. In the virtual space R, a virtual wall 50A, which is three-dimensional model data simulating the wall 50, is defined on the virtual base 500A. The CPU 311 simulates the operation of the virtual robot 100A assembling one of the virtual works W11A to W14A to one of the virtual works W21A and W22A. The virtual space R shown in FIG. 4 is displayed as a still image or moving image on the display screen 3020 of the display 302 shown in FIG. 3(a).

図5は、第1実施形態に係る情報処理方法のフローチャートである。CPU311は、プログラム350に基づいてステップS100からステップS1000を実施する。これにより、CPU311は、ロボットプログラムである教示データを生成し、制御装置200に生成した教示データを出力する。 FIG. 5 is a flowchart of an information processing method according to the first embodiment. CPU 311 executes steps S100 to S1000 based on program 350 . Thereby, the CPU 311 generates teaching data, which is a robot program, and outputs the generated teaching data to the control device 200 .

まず、ステップS100において、CPU311は、プログラム350を実行開始すると、ユーザインタフェースとなる画像をディスプレイ302の表示画面3020に表示させる。 First, in step S100, when CPU 311 starts executing program 350, it causes display screen 3020 of display 302 to display an image serving as a user interface.

ディスプレイ302の表示画面3020に表示される画像について説明する。ディスプレイ302に表示される画像は、CPU311によって制御される。図6は、第1実施形態に係るディスプレイ302に表示される画像400の一例を示す説明図である。CPU311は、プログラム350を実行することにより、シミュレータとして機能し、作業者であるユーザと情報処理装置300とのインタフェースとして、図6に示す画像400をディスプレイ302の表示画面3020に表示させる。ディスプレイ302に表示される画像400は、大別して、一覧表示部401、設定表示部402、3D表示部403の3つの表示部から成る。 An image displayed on the display screen 3020 of the display 302 will be described. Images displayed on the display 302 are controlled by the CPU 311 . FIG. 6 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the first embodiment. CPU 311 functions as a simulator by executing program 350 and displays image 400 shown in FIG. The image 400 displayed on the display 302 is roughly divided into three display sections: a list display section 401 , a setting display section 402 and a 3D display section 403 .

一覧表示部401には、ユーザが設定した物体の一覧が、階層構造にて表示される。物体間で階層構造を持たせる、即ち物体間で親子関係を持たせることで、親物体の位置変更が子物体にも反映させることができる。 The list display portion 401 displays a list of objects set by the user in a hierarchical structure. By providing a hierarchical structure between objects, that is, by providing a parent-child relationship between objects, a change in the position of the parent object can be reflected in the child objects.

一覧表示部401には、図1に示す実空間と対応するよう、各グループ411~414がユーザによって作成される。グループ411は、ロボット100を表す物体のグループである。グループ412は、ワークW11~W14を表す物体のグループである。グループ413は、ワークW21,W22を表す物体のグループである。グループ414は、壁50を表す物体のグループである。 Groups 411 to 414 are created by the user in the list display section 401 so as to correspond to the real space shown in FIG. A group 411 is a group of objects representing the robot 100 . A group 412 is a group of objects representing works W11 to W14. A group 413 is a group of objects representing works W21 and W22. Group 414 is the group of objects representing wall 50 .

また、一覧表示部401には、複数のボタン415,416,417が表示される。ボタン415には「物体追加」の名称が付与されている。ボタン416には「教示点追加」の名称が付与されている。ボタン417には「削除」の名称が付与されている。 A plurality of buttons 415 , 416 and 417 are also displayed in the list display section 401 . The button 415 is given the name of "add object". The button 416 is given the name of "add teaching point". The button 417 is given the name "delete".

設定表示部402は、ユーザが仮想物の情報、教示点の情報、及び動作プログラムの情報を入力するインタフェースとなる表示部であり、3つのタブ4021,4022,4023で表示の切り替えが可能となっている。ユーザが各タブ4021,4022,4023を選択することで、仮想物の情報、教示点の情報、及び動作プログラムの情報のそれぞれの入力が可能となる。図6の例では、仮想物の情報を入力するためのタブ4021には「物体設定」の名称が付与されている。また、図6の例では、教示点の情報を入力するためのタブ4022には「教示点設定」の名称が付与されている。また、図6の例では、動作プログラムの情報を入力するためのタブ4023には「プログラム作成」の名称が付与されている。 The setting display unit 402 is a display unit that serves as an interface for the user to input virtual object information, teaching point information, and operation program information. ing. When the user selects tabs 4021, 4022, and 4023, it is possible to input virtual object information, teaching point information, and motion program information. In the example of FIG. 6, the tab 4021 for inputting virtual object information is given the name "object setting". Further, in the example of FIG. 6, the tab 4022 for inputting the information of the teaching point is given the name of "set teaching point". Further, in the example of FIG. 6, the tab 4023 for inputting the information of the operation program is given the name of "create program".

ユーザが一覧表示部401の中のボタン415を選択すると、「物体設定」のタブ4021で示される設定表示部402には、ボックス421~425が表示される。各ボックス421~425には、ユーザによって設定情報が入力可能である。ボックス421には、物体名称の情報を入力することができる。ボックス422には、親物体からの相対位置姿勢の情報を入力することができる。ボックス423には、質量の情報を入力することができる。ボックス424には、重心位置の情報を入力することができる。また予めCADソフトなどで作成した3Dモデルデータのファイルの名称を、「3Dモデル」の名称が付与されたボックス425に入力することができる。 When the user selects button 415 in list display portion 401, boxes 421 to 425 are displayed in setting display portion 402 indicated by tab 4021 of “object setting”. Setting information can be entered by the user in each of the boxes 421 to 425 . In box 421, object name information can be entered. In box 422, relative pose information from the parent object can be entered. In box 423 mass information can be entered. In box 424, center of gravity location information can be entered. Also, the name of a file of 3D model data created in advance using CAD software or the like can be entered in a box 425 labeled "3D model".

「物体設定」のタブ4021には、「確定」の名称が付与されたボタン426が表示される。「確定」の名称が付与されたボタン426が選択されることで、現在の設定値が上書きされ、3D表示部403に、物体の位置や3Dモデル情報が反映される。 A button 426 with the name of "confirm" is displayed on the tab 4021 of "object setting". By selecting the button 426 labeled “confirm”, the current setting values are overwritten, and the position of the object and the 3D model information are reflected on the 3D display section 403 .

さらに、「物体設定」のタブ4021で示される設定表示部402には、「キャンセル」の名称が付与されたボタン427と、「検知対象の設定」の名称が付与されたボタン428とが表示される。ボタン427が選択されると、CPU311は、ユーザによる編集をキャンセルする。ボタン428が選択されると、タブ4021で示される設定表示部402において、ボックス421にて指定された物体名称の情報に対応する仮想物に対して、接触するかどうかを検知する対象、即ち検知対象を設定する画面表示に切り替わる。検知対象は、仮想物である。接触するとは、干渉することでもある。 Further, in the setting display portion 402 indicated by the tab 4021 of "object setting", a button 427 with the name of "cancel" and a button 428 with the name of "detection target setting" are displayed. be. When button 427 is selected, CPU 311 cancels editing by the user. When the button 428 is selected, in the setting display section 402 indicated by the tab 4021, the virtual object corresponding to the information of the object name specified in the box 421 is detected as a target to be detected, i.e., detected. Switches to the screen display for setting the target. A detection target is a virtual object. To touch is also to interfere.

ステップS200において、CPU311は、ユーザによって入力された仮想物の情報の設定を受け付ける。なお、ユーザは、キーボード303及びマウス304を操作することによってタブ4021と関連する各ボックス421~425に情報を記入することにより、情報をCPU311に入力することができる。 In step S200, CPU 311 accepts setting of virtual object information input by the user. It should be noted that the user can enter information into the CPU 311 by filling in the information in each of the boxes 421 - 425 associated with the tab 4021 by manipulating the keyboard 303 and mouse 304 .

仮想物は、第1実施形態の例では、仮想ロボット100A、仮想ワークW11A~W14A,W21A,W22A、及び仮想壁50A等である。このとき、CPU311は、3次元の仮想空間Rを可視化した画像を3D表示部403に表示する。これにより、ユーザは、設定した仮想物を視覚情報として確認することができる。 The virtual objects are the virtual robot 100A, the virtual works W11A to W14A, W21A and W22A, the virtual wall 50A, and the like in the example of the first embodiment. At this time, the CPU 311 displays a visualized image of the three-dimensional virtual space R on the 3D display unit 403 . Thereby, the user can confirm the set virtual object as visual information.

図6の例では、名称「Robot1_Base」には、仮想ベース110Aの情報が割り当てられる。名称「Robot1_Joint1」には、関節J1Aを含む仮想リンク111Aの情報が割り当てられる。名称「Robot1_Joint2」には、関節J2Aを含む仮想リンク112Aの情報が割り当てられる。名称「Robot1_Joint3」には、関節J3Aを含む仮想リンク113Aの情報が割り当てられる。名称「Robot1_Joint4」には、関節J4Aを含む仮想リンク114Aの情報が割り当てられる。名称「Robot1_Joint5」には、関節J5Aを含む仮想リンク115Aの情報が割り当てられる。名称「Robot1_Joint6」には、関節J6Aを含む仮想リンク116Aの情報が割り当てられる。名称「Robot1_Hand」には、仮想ロボットハンド102Aの情報が割り当てられる。名称「TCP1」には、仮想ロボット100Aのツールセンタポイントの情報が割り当てられる。 In the example of FIG. 6, information of the virtual base 110A is assigned to the name "Robot1_Base". Information of the virtual link 111A including the joint J1A is assigned to the name "Robot1_Joint1". Information of the virtual link 112A including the joint J2A is assigned to the name "Robot1_Joint2". Information of the virtual link 113A including the joint J3A is assigned to the name "Robot1_Joint3". Information of the virtual link 114A including the joint J4A is assigned to the name "Robot1_Joint4". Information of the virtual link 115A including the joint J5A is assigned to the name "Robot1_Joint5". Information of the virtual link 116A including the joint J6A is assigned to the name "Robot1_Joint6". Information of the virtual robot hand 102A is assigned to the name "Robot1_Hand". Information on the tool center point of the virtual robot 100A is assigned to the name “TCP1”.

また、図6の例では、名称「Part1」には、仮想ワークW11Aの情報が割り当てられる。名称「Part2」には、仮想ワークW12Aの情報が割り当てられる。名称「Part3」には、仮想ワークW13Aの情報が割り当てられる。名称「Part4」には、仮想ワークW14Aの情報が割り当てられる。名称「Box1」には、仮想ワークW21Aの情報が割り当てられる。名称「Box2」には、仮想ワークW22Aの情報が割り当てられる。名称「Wall1」には、仮想壁50Aの情報が割り当てられる。なお、これらの名称は、ユーザによって任意に設定可能である。 Further, in the example of FIG. 6, the information of the virtual work W11A is assigned to the name "Part1". Information of the virtual work W12A is assigned to the name "Part2". Information of the virtual work W13A is assigned to the name "Part3". Information of the virtual work W14A is assigned to the name "Part4". Information of the virtual work W21A is assigned to the name “Box1”. Information of the virtual work W22A is assigned to the name "Box2". Information on the virtual wall 50A is assigned to the name “Wall1”. Note that these names can be arbitrarily set by the user.

ボックス421~424の情報は、仮想ロボット100Aの複数の部位、仮想ワークW11A~W14A,W21A,W22A、及び仮想壁50Aのそれぞれに対して個別に設定される。 Information in boxes 421 to 424 is individually set for each of the plurality of parts of the virtual robot 100A, the virtual works W11A to W14A, W21A, W22A, and the virtual wall 50A.

また、タブ4021において、名称「Robot1_Joint1」に対応する仮想リンク111Aの情報を編集する際に「検知対象の設定」の名称が付与されたボタン428が選択されると、CPU311は、画像400を図7に示すように切り替える。図7は、第1実施形態に係るディスプレイ302に表示される画像400の一例を示す説明図である。ボタン428が選択されると、タブ4021において、名称「Robot1_Joint1」に対応する仮想リンク111Aに対する検知対象を設定する画面表示に切り替わる。 Further, in tab 4021, when button 428 with the name of “detection target setting” is selected when editing information on virtual link 111A corresponding to name “Robot1_Joint1”, CPU 311 causes image 400 to be displayed. Switch as shown in 7. FIG. 7 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the first embodiment. When the button 428 is selected, the tab 4021 switches to a screen display for setting a detection target for the virtual link 111A corresponding to the name "Robot1_Joint1".

タブ4021で示される設定表示部402には、ボックス421と、検知対象をユーザが指定するためのボックス430と、「確定」の名称が付与されたボタン431と、「キャンセル」の名称が付与されたボタン432とが表示される。ユーザによりボックス430に検知対象とする仮想物の名称が記入され、「確定」の名称が付与されたボタン431が選択されると、CPU311は、ユーザによる仮想リンク111Aに対する検知対象とする仮想物の設定を受け付ける。すなわち、CPU311は、ボックス430に表示されている名称に対応する仮想物を、ボックス421に表示されている名称に対応する仮想物に対する検知対象に設定する。図7の例では、「Robot1_Joint1」の名称が付与された仮想リンク111Aに対して、仮想ワークW11A~W14A,W21,W22及び仮想壁50Aが、検知対象として設定される。なお、ユーザにより「キャンセル」の名称が付与されたボタン432が選択されると、CPU311は、ユーザによる編集をキャンセルする。 A setting display portion 402 indicated by a tab 4021 includes a box 421, a box 430 for the user to specify a detection target, a button 431 to which the name "Confirm" is assigned, and the name "Cancel". button 432 is displayed. When the user enters the name of the virtual object to be detected in box 430 and selects button 431 with the name “confirm”, CPU 311 causes the user to enter the virtual object to be detected for virtual link 111A. Accept settings. That is, the CPU 311 sets the virtual object corresponding to the name displayed in the box 430 as the detection target for the virtual object corresponding to the name displayed in the box 421 . In the example of FIG. 7, the virtual works W11A to W14A, W21, W22 and the virtual wall 50A are set as detection targets for the virtual link 111A given the name "Robot1_Joint1". Note that when the user selects button 432 labeled "cancel", CPU 311 cancels editing by the user.

検知対象は、ユーザによって、仮想ロボット100Aにおける複数の部位の各々に対して個別に手動で設定される。即ち、CPU301は、仮想ロボット100Aにおける複数の部位、即ち仮想ベース110A、複数の仮想リンク111A~116A、及び仮想ロボットハンド102Aの各々に対して個別にユーザによる設定を受け付ける。また、CPU311は、仮想ロボット100Aにおける複数の部位の各々に対して設定された検知対象に基づいて、仮想ワークW11A~W14A,W21A,W22A及び仮想壁50Aの各々に対する検知対象を個別に自動で設定する。例えば、仮想ロボットハンド102Aに仮想ワークW11Aが検知対象として設定されていたら、仮想ワークW11Aには検知対象として仮想ロボットハンド102Aが自動で設定される。 The detection target is individually manually set by the user for each of the plurality of parts of the virtual robot 100A. That is, the CPU 301 individually receives user settings for each of the plurality of parts of the virtual robot 100A, that is, the virtual base 110A, the plurality of virtual links 111A to 116A, and the virtual robot hand 102A. In addition, the CPU 311 automatically and individually sets detection targets for each of the virtual works W11A to W14A, W21A, and W22A and the virtual wall 50A based on the detection targets set for each of the plurality of parts of the virtual robot 100A. do. For example, if the virtual work W11A is set as the detection target for the virtual robot hand 102A, the virtual robot hand 102A is automatically set as the detection target for the virtual work W11A.

設定された仮想物は、3D表示部403に3Dのモデルとして表示されることが好ましい。3D表示部403には、仮想ロボット100Aに対応するロボットモデル100B、仮想ワークW11Aに対応するワークモデルW11B、仮想壁50Aに対応する壁モデル50B、仮想ワークW21Aに対応するワークモデルW21Bも表示される。 The set virtual object is preferably displayed as a 3D model on the 3D display unit 403 . The 3D display unit 403 also displays a robot model 100B corresponding to the virtual robot 100A, a work model W11B corresponding to the virtual work W11A, a wall model 50B corresponding to the virtual wall 50A, and a work model W21B corresponding to the virtual work W21A. .

なお、仮想ロボット100Aの複数の部位の各々に検知対象を設定した段階で、いずれかの部位が検知対象と接触していれば、3D表示部403にて該当物体の3Dモデルの色を変えることで、ユーザに接触していることを通知するのが好ましい。 It should be noted that at the stage when the detection target is set for each of the plurality of parts of the virtual robot 100A, if any part is in contact with the detection target, the color of the 3D model of the corresponding object can be changed on the 3D display unit 403. , preferably to notify the user that it is being touched.

次に、ステップS300において、CPU311は、ユーザによって入力された教示点の設定を受け付ける。教示点は、一覧表示部401において「教示点追加」の名称が付与されたボタン416がユーザによって選択されることにより、教示点が作成される。教示点は、ツールセンタポイントの目標とする位置姿勢である。図8は、第1実施形態に係るディスプレイ302に表示される画像400の一例を示す説明図である。例えば、一覧表示部401には、教示点P0,P1,P2がユーザにより作成される。各教示点P0,P1,P2の情報は、ユーザがタブ4022を選択することにより、編集及び設定が可能となる。 Next, in step S300, CPU 311 accepts setting of teaching points input by the user. A taught point is created when the user selects a button 416 labeled “Add taught point” in the list display section 401 . The teaching point is the target position and orientation of the tool center point. FIG. 8 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the first embodiment. For example, the user creates teaching points P0, P1, and P2 in the list display section 401 . Information on each teaching point P0, P1, P2 can be edited and set by the user selecting a tab 4022. FIG.

図8に示す例において、教示点P0は、仮想ロボット100Aの初期位置を示す教示点であり、「TP_init」の名称が付与される。教示点P1は、第1教示点である。教示点P1は、仮想ワークW11Aの把持位置を示す教示点であり、「TP_1」が付与される。教示点P2は、第2教示点である。教示点P2は、仮想ワークW11Aを仮想ワークW21Aに組み付ける上空位置を示す教示点であり、「TP_2」の名称が付与される。なお、これら教示点の名称は、ユーザが任意に設定可能である。 In the example shown in FIG. 8, the teaching point P0 is a teaching point indicating the initial position of the virtual robot 100A, and is given the name "TP_init". The teaching point P1 is the first teaching point. The teaching point P1 is a teaching point indicating the gripping position of the virtual workpiece W11A, and is given "TP_1". The teaching point P2 is the second teaching point. The teaching point P2 is a teaching point indicating a position in the sky where the virtual work W11A is assembled to the virtual work W21A, and is given the name "TP_2". The names of these teaching points can be arbitrarily set by the user.

各教示点P0,P1,P2も親物体の位置姿勢が変更されると自動的に変更されるのが好ましい。各教示点P0,P1,P2においても階層構造にて管理することにより、設計変更が容易となる。 It is preferable that the teaching points P0, P1, and P2 are also automatically changed when the position and orientation of the parent object are changed. By managing the teaching points P0, P1, and P2 in a hierarchical structure, it becomes easy to change the design.

一覧表示部401における教示点の名称をユーザが選択することで、タブ4022で示される設定表示部402において、その選択された名称に対応する教示点の情報が編集可能となる。タブ4022で示される設定表示部402には、教示点の名称が表示されるボックス440と、ボックス440に表示された教示点の名称と対応付けられる教示点の位置姿勢の情報が記入可能なボックス441とが表示される。また、タブ4022で示される設定表示部402には、姿勢フラグの情報が記入可能なボックス442が表示される。ここで姿勢フラグとは、仮想ロボット100Aの逆運動学計算において、複数の解が存在する場合に、どの解を採用するかを指定するためのフラグである。また、タブ4022で示される設定表示部402には、「確定」の名称が付与されたボタン443と、「キャンセル」の名称が付与されたボタン444とが表示される。 When the user selects the name of the teaching point in the list display section 401, the information of the teaching point corresponding to the selected name can be edited in the setting display section 402 indicated by the tab 4022. FIG. A setting display portion 402 indicated by a tab 4022 includes a box 440 in which the name of the taught point is displayed, and a box in which information on the position and orientation of the taught point associated with the name of the taught point displayed in the box 440 can be entered. 441 is displayed. Also, in the setting display portion 402 indicated by a tab 4022, a box 442 is displayed in which information on the orientation flag can be entered. Here, the posture flag is a flag for designating which solution is to be adopted when a plurality of solutions exist in the inverse kinematics calculation of the virtual robot 100A. Also, in the setting display portion 402 indicated by the tab 4022, a button 443 with the name of "Confirm" and a button 444 with the name of "Cancel" are displayed.

図8の例では、一覧表示部401において、教示点P1の名称である「TP_1」が選択され、タブ4022で示される設定表示部402においては「TP_1」に対応する教示点P1の情報が編集可能となっている。 In the example of FIG. 8, "TP_1", which is the name of the taught point P1, is selected in the list display section 401, and in the setting display section 402 indicated by the tab 4022, the information of the taught point P1 corresponding to "TP_1" is edited. It is possible.

ユーザによりボックス441に教示点の位置姿勢の情報が記入され、「確定」の名称が付与されたボタン443が選択されると、CPU311は、ユーザによる教示点の設定を受け付ける。なお、ユーザにより「キャンセル」の名称が付与されたボタン444が選択されると、CPU311は、ユーザによる編集をキャンセルする。 When the user enters information on the position and orientation of the teaching point in box 441 and selects button 443 labeled "confirm", CPU 311 accepts setting of the teaching point by the user. Note that when the user selects button 444 labeled "cancel", CPU 311 cancels editing by the user.

設定された教示点は、3D表示部403に3Dの教示点モデルとして表示されるのが好ましい。3D表示部403には、教示点P0,P1,P2に対応する教示点モデルP0B,P1B,P2Bがそれぞれ表示される。各教示点モデルP0B~P2Bにおいて、点は位置を表し、3つの矢印は姿勢を表している。 The set teaching points are preferably displayed as a 3D teaching point model on the 3D display unit 403 . The 3D display section 403 displays teaching point models P0B, P1B, and P2B corresponding to the teaching points P0, P1, and P2, respectively. In each teaching point model P0B to P2B, a point represents a position and three arrows represent a posture.

次に、ステップS400において、CPU311は、ユーザによって入力された動作プログラムの設定を受け付ける。図9は、第1実施形態に係るディスプレイ302に表示される画像400の一例を示す説明図である。 Next, in step S400, CPU 311 accepts the setting of the operating program input by the user. FIG. 9 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the first embodiment.

「プログラム作成」の名称が付与されたタブ4023で示される設定表示部402には、動作プログラムを設定するためのテーブル450と、「計算開始」の名称が付与されたボタン455と、が表示される。テーブル450は、複数の列451,452,453,454を含む。列451は、仮想ロボット100Aの動作を指定するコマンド列である。列452は、教示点を指定する教示点列である。列453は、搬送するワークを指定する列である。列454は、速度を指定する列である。「計算開始」のボタン455がユーザに選択されると、CPU311は、先頭行から順番に仮想ロボット100Aの動作をシミュレートする。 A setting display portion 402 indicated by a tab 4023 labeled "Create Program" displays a table 450 for setting an operation program and a button 455 labeled "Start Calculation". be. Table 450 includes multiple columns 451 , 452 , 453 , 454 . A column 451 is a command column specifying the motion of the virtual robot 100A. A column 452 is a teaching point sequence that designates teaching points. A column 453 is a column for designating the work to be conveyed. Column 454 is a column specifying speed. When the "start calculation" button 455 is selected by the user, the CPU 311 sequentially simulates the motion of the virtual robot 100A from the top row.

列451に指定可能なコマンドの種類は複数ある。コマンドの種類は用途に応じて拡充できる。図9に示す例では、指定した教示点を仮想ロボットの初期位置とするコマンド「Init」、及び関節補間により仮想ロボットを指定した教示点へ動作させるコマンド「Joint」がある。 There are multiple types of commands that can be specified in column 451 . The types of commands can be expanded according to usage. In the example shown in FIG. 9, there are a command "Init" for setting a specified teaching point to the initial position of the virtual robot, and a command "Joint" for moving the virtual robot to the specified teaching point by joint interpolation.

教示点P0を始点とし、教示点P0から教示点P1へ仮想ロボット100Aを動作させ、教示点P1で仮想ワークW11Aを仮想ロボット100Aと連動させ、教示点P1から教示点P2へ仮想ロボット100Aを動作させる場合について説明する。ロボット100においては、教示点P0を始点として教示点P1へ動作し、教示点P1でワークW11を把持し、教示点P1から教示点P2へ動作することでワークW11をワークW21の上方に搬送し、ワークW11をワークW21に組み付けることになる。 With the teaching point P0 as the starting point, the virtual robot 100A is moved from the teaching point P0 to the teaching point P1, the virtual work W11A is interlocked with the virtual robot 100A at the teaching point P1, and the virtual robot 100A is moved from the teaching point P1 to the teaching point P2. A case will be described. The robot 100 moves from the teaching point P0 to the teaching point P1, grips the work W11 at the teaching point P1, and moves from the teaching point P1 to the teaching point P2 to convey the work W11 above the work W21. , the work W11 is attached to the work W21.

ここで、仮想ワークW11Aを仮想ロボット100Aと連動させるとは、仮想ワークW11Aを仮想ロボット100Aに模擬的に保持させることである。第1実施形態では、仮想ロボット100Aの所定部位の一例である仮想ロボットハンド102Aに仮想ワークW11Aを模擬的に把持させることである。よって、仮想ワークW11Aが仮想ロボット100Aと連動していれば、仮想ロボット100Aの姿勢が変化しても、仮想ロボットハンド102Aに対する仮想ワークW11Aの相対的な位置姿勢は維持される。第1実施形態では、CPU311は、仮想ロボットハンド102Aと仮想ワークW11Aとの間の相対的な位置姿勢を維持することで、仮想ワークW11Aを仮想ロボット100Aと連動させる。これにより、仮想ロボットハンド102Aが仮想ワークW11Aを把持している状態を模擬的に実現することができる。 Here, interlocking the virtual work W11A with the virtual robot 100A means holding the virtual work W11A in the virtual robot 100A in a simulated manner. In the first embodiment, a virtual robot hand 102A, which is an example of a predetermined part of the virtual robot 100A, is made to hold a virtual workpiece W11A in a simulated manner. Therefore, if the virtual work W11A is interlocked with the virtual robot 100A, even if the posture of the virtual robot 100A changes, the position and posture of the virtual work W11A relative to the virtual robot hand 102A are maintained. In the first embodiment, the CPU 311 links the virtual work W11A with the virtual robot 100A by maintaining the relative position and orientation between the virtual robot hand 102A and the virtual work W11A. This makes it possible to simulate a state in which the virtual robot hand 102A grips the virtual work W11A.

テーブル450では、複数行の動作プログラムprg1~prg3でこれらの動作が記述される。動作プログラムprg1では、コマンド「Init」、教示点の名称「TP_init」によって、始点として教示点P0が設定される。次の動作プログラムprg2では、コマンド「Joint」、教示点の名称「TP_1」によって、仮想ロボット100Aが教示点P0から教示点P1へ関節補間によって動作することが設定される。さらに次の動作プログラムprg3では、ワークの名称「part1」によって、教示点P1で仮想ワークW11Aを仮想ロボット100Aと連動させることが設定される。また、動作プログラムprg3では、コマンド「Joint」、教示点の名称「TP_2」によって、教示点P1から教示点P2へ関節補間によって動作することが設定される。このように、ユーザによってテーブル450に動作プログラムが記述されることで、動作プログラムが設定される。 In the table 450, these operations are described by multiple lines of operation programs prg1 to prg3. In the operation program prg1, the command "Init" and the name of the taught point "TP_init" are used to set the taught point P0 as the starting point. In the next motion program prg2, the virtual robot 100A is set to move from the taught point P0 to the taught point P1 by joint interpolation using the command "Joint" and the name of the taught point "TP_1". Further, in the next operation program prg3, the virtual work W11A is set to be interlocked with the virtual robot 100A at the teaching point P1 by the name of the work "part1". Further, in the operation program prg3, the command "Joint" and the name of the taught point "TP_2" are set to move from the taught point P1 to the taught point P2 by joint interpolation. Thus, the operation program is set by the user describing the operation program in the table 450 .

CPU311は、以上の設定情報を用いて、仮想ロボット100Aの動作を取得する所定の処理が実行可能となる。第1実施形態では、CPU311は、所定の処理として、仮想ロボット100Aの動作を求める、即ち仮想ロボット100Aの動作を探索する探索処理が実行可能である。 Using the above setting information, the CPU 311 can execute a predetermined process of acquiring the motion of the virtual robot 100A. In the first embodiment, the CPU 311 can execute, as predetermined processing, search processing for obtaining the motion of the virtual robot 100A, that is, searching for the motion of the virtual robot 100A.

第1実施形態では、CPU311は、探索処理において、テーブル450において設定された動作プログラムに従って、仮想ロボット100Aの挙動をシミュレートする。そして、CPU311は、仮想ワークW11Aを仮想ロボット100Aと連動させる指示が記載された動作プログラムについては、探索処理において、仮想ロボット100A及び仮想ワークW11Aの挙動をシミュレートする。これにより、CPU311は、仮想ロボット100A及び仮想ワークW11Aが障害物を回避する仮想ロボット100Aの動作を自動で計算する。 In the first embodiment, the CPU 311 simulates the behavior of the virtual robot 100A according to the motion program set in the table 450 in the search process. Then, the CPU 311 simulates the behaviors of the virtual robot 100A and the virtual work W11A in the search process for the operation program in which the instruction to link the virtual work W11A with the virtual robot 100A is described. Thereby, the CPU 311 automatically calculates the motion of the virtual robot 100A in which the virtual robot 100A and the virtual work W11A avoid the obstacle.

以下、「計算開始」のボタン455がユーザに選択された場合のCPU311によるシミュレーションについて詳細に説明する。そして、図9に示すテーブル450に記述された動作プログラムprg1~prg3に従って、仮想ロボット100Aが仮想ワークW11Aを仮想ワークW21Aに搬送する場合を例に説明する。テーブル450には、複数行、例えば3行の動作プログラムprg1~prg3が含まれている。CPU311は、各行ごとに順番にシミュレーションを行う。 A simulation by the CPU 311 when the user selects the "start calculation" button 455 will be described in detail below. Then, a case where the virtual robot 100A transports the virtual work W11A to the virtual work W21A according to the operation programs prg1 to prg3 described in the table 450 shown in FIG. 9 will be described as an example. Table 450 includes multiple lines, for example, three lines of operation programs prg1-prg3. The CPU 311 sequentially performs simulation for each row.

「計算開始」のボタン455がユーザに選択されると、CPU311は、ステップS500~S1000の処理を実行する。 When the user selects the “calculation start” button 455, the CPU 311 executes the processing of steps S500 to S1000.

まず、ステップS500において、CPU311は、テーブル450中、1行目の動作プログラムprg1を読み出し、仮想ワークW11Aを仮想ロボット100Aと連動させるか否かを選択する。動作プログラムprg1では、列453において仮想ワークW11Aが指定されていないので、CPU311は、仮想ワークW11Aを仮想ロボット100Aと連動させないことを選択する(S500:NO)。CPU311は、コマンド「Init」を実行して、「TP_init」の名称が付与されている教示点P0を始点とする。 First, in step S500, the CPU 311 reads the operation program prg1 in the first row in the table 450, and selects whether or not to interlock the virtual work W11A with the virtual robot 100A. In the operation program prg1, the virtual work W11A is not specified in the column 453, so the CPU 311 selects not to interlock the virtual work W11A with the virtual robot 100A (S500: NO). The CPU 311 executes the command "Init" to set the teaching point P0 to which the name "TP_init" is given as the starting point.

次に、ステップS600において、CPU311は、1つ前の動作プログラムで指定された教示点を始点とし、現在の動作プログラムで指定された教示点を終点として、始点から終点までの仮想ロボット100Aの動作を探索する。動作プログラムprg1については、前の動作プログラムは存在しないので、CPU311は、ステップS600において何の処理もせずにそのまま次のステップS700に移行する。 Next, in step S600, the CPU 311 moves the virtual robot 100A from the start point to the end point, starting from the teaching point specified in the previous motion program and ending at the teaching point specified in the current motion program. to explore. Since there is no previous operation program for the operation program prg1, the CPU 311 does not perform any processing in step S600 and proceeds to the next step S700.

ステップS700において、CPU311は、全ての動作プログラムのシミュレーションが終了したか否かを判定する。2行目の動作プログラムprg2が存在するため(S700:NO)、CPU311は、ステップS500の処理に戻る。 In step S700, CPU 311 determines whether or not the simulation of all operating programs has ended. Since the operation program prg2 on the second line exists (S700: NO), the CPU 311 returns to the process of step S500.

ステップS500において、CPU311は、2行目の動作プログラムprg2を読み出し、仮想ワークW11Aを仮想ロボット100Aと連動させるか否かを選択する。動作プログラムprg2では、列453において仮想ワークW11Aが指定されていないので、CPU311は、仮想ワークW11Aを仮想ロボット100Aと連動させないことを選択する(S500:NO)。 In step S500, the CPU 311 reads the motion program prg2 on the second line, and selects whether or not to interlock the virtual work W11A with the virtual robot 100A. In the operation program prg2, the virtual work W11A is not specified in the column 453, so the CPU 311 selects not to interlock the virtual work W11A with the virtual robot 100A (S500: NO).

次に、ステップS600において、CPU311は、1つ前の動作プログラムprg1で指定された教示点P0から現在の動作プログラムprg2で指定された教示点P1まで障害物と接触しない仮想ロボット100Aの動作を探索する探索処理を実行する。障害物は、ステップS200において、検知対象として設定されている。 Next, in step S600, CPU 311 searches for motion of virtual robot 100A that does not come into contact with an obstacle from teaching point P0 specified in previous motion program prg1 to teaching point P1 specified in current motion program prg2. Executes the search process. Obstacles are set as detection targets in step S200.

ステップS600の探索処理において、CPU311は、仮想ロボット100Aの各部位が障害物と接触しない動作を実現するために、教示点P0と教示点P1との間に挿入する中間教示点を計算する。即ち、CPU311は、仮想ロボット100Aが障害物と接触しないように、仮想ロボット100Aを教示点P0から教示点P1へ動作させる際の、教示点P0と教示点P1との間の中間教示点を求める。中間教示点の計算には、RRT(Rapidly exploring Random Tree)といった探索アルゴリズムを用いるのが好ましい。RRTにおいて、仮想ロボット100Aの各部位が、各部位に個別に設定された検知対象と接触しないように、仮想ロボット100Aの動作、即ち中間教示点が計算される。 In the search process of step S600, CPU 311 calculates an intermediate teaching point to be inserted between teaching point P0 and teaching point P1 in order to realize an operation in which each part of virtual robot 100A does not come into contact with an obstacle. That is, the CPU 311 obtains an intermediate teaching point between the teaching point P0 and the teaching point P1 when moving the virtual robot 100A from the teaching point P0 to the teaching point P1 so that the virtual robot 100A does not come into contact with an obstacle. . It is preferable to use a search algorithm such as RRT (Rapidly Exploring Random Tree) for calculating intermediate teaching points. In the RRT, the motion of the virtual robot 100A, that is, the intermediate teaching point is calculated so that each part of the virtual robot 100A does not come into contact with the detection target individually set for each part.

ステップS700において、CPU311は、全ての動作プログラムのシミュレーションが終了したか否かを判定する。3行目の動作プログラムprg3が存在するため(S700:NO)、CPU311は、ステップS500の処理に戻る。 In step S700, CPU 311 determines whether or not the simulation of all operating programs has ended. Since the operation program prg3 on the third line exists (S700: NO), the CPU 311 returns to the process of step S500.

ステップS500において、CPU311は、3行目の動作プログラムprg3を読み出し、仮想ワークW11Aを仮想ロボット100Aと連動させるか否かを選択する。動作プログラムprg3では、列453において仮想ワークW11Aが指定されている。このため、CPU311は、仮想ワークW11Aを仮想ロボット100Aと連動させることを選択する(S500:YES)。 In step S500, the CPU 311 reads out the motion program prg3 on the third line, and selects whether or not to interlock the virtual work W11A with the virtual robot 100A. The virtual work W11A is specified in column 453 in the operation program prg3. Therefore, the CPU 311 selects interlocking the virtual work W11A with the virtual robot 100A (S500: YES).

動作プログラムprg3においては、仮想ロボット100Aによる搬送動作を開始する始点は教示点P1であり、終点は教示点P2となる。ステップS800において、CPU311は、仮想ワークW11Aを仮想ロボットハンド102Aと連動させる設定を行う。図10は、第1実施形態において仮想ワークW11Aを仮想ロボットハンド102Aと連動させる計算を説明するための模式図である。ステップS800において、CPU311は、仮想ロボット100Aの姿勢が教示点P1である状態の仮想ロボットハンド102Aに対する仮想ワークW11Aの相対的な位置関係trsf1を計算する。即ち、位置関係trsf1を計算する際には、仮想ロボット100Aと紐付けされたツールセンタポイントの位置姿勢情報が教示点P1となるように、仮想ロボット100Aの姿勢を決める。CPU311は、計算した位置関係trsf1の情報を、例えばRAM313又はHDD314等に記憶させる。なお、本実施形態では、仮想ロボットハンド102Aと仮想ワークW11Aとの位置関係trsf1として、仮想ロボットハンド102Aの位置姿勢の情報と仮想ワークW11Aの位置姿勢の情報を記憶させるが、仮想ロボットハンド102Aの位置の情報と仮想ワークW11Aの位置の情報のみを記憶させても構わない。 In the operation program prg3, the start point for starting the transport operation by the virtual robot 100A is the taught point P1, and the end point is the taught point P2. In step S800, the CPU 311 performs setting to link the virtual work W11A with the virtual robot hand 102A. FIG. 10 is a schematic diagram for explaining calculations for interlocking the virtual work W11A with the virtual robot hand 102A in the first embodiment. In step S800, the CPU 311 calculates a relative positional relationship trsf1 of the virtual work W11A with respect to the virtual robot hand 102A in a state where the posture of the virtual robot 100A is the teaching point P1. That is, when calculating the positional relationship trsf1, the posture of the virtual robot 100A is determined so that the position and posture information of the tool center point linked to the virtual robot 100A becomes the teaching point P1. The CPU 311 stores information on the calculated positional relationship trsf1 in the RAM 313, the HDD 314, or the like, for example. In this embodiment, information on the position and orientation of the virtual robot hand 102A and information on the position and orientation of the virtual work W11A are stored as the positional relationship trsf1 between the virtual robot hand 102A and the virtual work W11A. Only the position information and the position information of the virtual work W11A may be stored.

ここで、仮想ワークW11Aが仮想ロボット100Aと連動しない場合は、仮想ワークW11Aは、仮想ロボット100Aが接触を回避すべき障害物として扱われる必要がある。よって、CPU311は、RRTのシミュレーションにおいて、仮想ロボット100Aが仮想ワークW11Aと接触するかどうかを計算する必要がある。ここで、計算することは、検知することと同義である。 Here, if the virtual work W11A does not interlock with the virtual robot 100A, the virtual work W11A needs to be treated as an obstacle with which the virtual robot 100A should avoid contact. Therefore, the CPU 311 needs to calculate whether the virtual robot 100A will come into contact with the virtual work W11A in the RRT simulation. Here, calculating is synonymous with detecting.

一方、仮想ワークW11Aが仮想ロボット100Aと連動する場合は、CPU311は、RRTのシミュレーションにおいて、仮想ワークW11Aが仮想ロボットハンド102Aと接触するかどうかを計算する必要はない。そして、CPU311は、RRTのシミュレーションにおいて、仮想ワークW11Aが仮想ロボット100Aにおける仮想ロボットハンド102A以外の一部の部位、及び仮想ロボット100Aの周囲の仮想物と接触するかどうかを計算する必要がある。 On the other hand, when the virtual work W11A is interlocked with the virtual robot 100A, the CPU 311 does not need to calculate whether the virtual work W11A contacts the virtual robot hand 102A in the RRT simulation. In the RRT simulation, the CPU 311 needs to calculate whether or not the virtual work W11A will come into contact with a part of the virtual robot 100A other than the virtual robot hand 102A and virtual objects around the virtual robot 100A.

そこで、ステップS900において、CPU311は、仮想ロボットハンド102Aと連動させる際の仮想ワークW11Aに対する検知対象を、仮想ロボットハンド102Aに対して設定された検知対象に基づいて設定する。 Therefore, in step S900, the CPU 311 sets the detection target for the virtual work W11A when interlocked with the virtual robot hand 102A based on the detection target set for the virtual robot hand 102A.

第1実施形態では、仮想ワークW11Aに対する検知対象は、ステップS200において既に設定されている。よって、第1実施形態では、CPU311は、仮想ロボットハンド102Aと連動させる際の仮想ワークW11Aに対する検知対象の設定を、仮想ロボットハンド102Aに対して設定された検知対象に基づいて変更する。例えば、CPU311は、仮想ワークW11Aに対して既に設定されている検知対象を、仮想ロボットハンド102Aに設定されている検知対象の中から「part1」を除外したものに変更する。 In the first embodiment, the detection target for the virtual work W11A has already been set in step S200. Therefore, in the first embodiment, the CPU 311 changes the setting of the detection target for the virtual work W11A when interlocked with the virtual robot hand 102A based on the detection target set for the virtual robot hand 102A. For example, the CPU 311 changes the detection targets that have already been set for the virtual work W11A to the detection targets that have been set for the virtual robot hand 102A, excluding "part 1".

図11(a)及び図11(b)は、第1実施形態において仮想ワークW11Aに設定される検知対象のリストの一例を示す説明図である。図11(a)は設定変更前、図11(b)は設定変更後である。動作プログラムprg1,prg2のシミュレーションにおいて、仮想ワークW11Aに対して設定される検知対象は、図11(a)に示すように仮想ロボット100Aを構成する部位となる。一方、動作プログラムprg3のシミュレーションにおいて、仮想ワークW11Aは仮想ロボット100Aと連動させるため、仮想ワークW11Aに対して設定される検知対象は、図11(b)に示すように変更される。図11(b)に示すリストは、仮想ロボットハンド102Aに対して設定された検知対象から仮想ワークW11Aを除外したものになる。 FIGS. 11(a) and 11(b) are explanatory diagrams showing an example of a detection target list set in the virtual work W11A in the first embodiment. FIG. 11(a) is before the setting change, and FIG. 11(b) is after the setting change. In the simulations of the motion programs prg1 and prg2, the detection targets set for the virtual work W11A are the parts forming the virtual robot 100A as shown in FIG. 11(a). On the other hand, in the simulation of the motion program prg3, the virtual work W11A is interlocked with the virtual robot 100A, so the detection target set for the virtual work W11A is changed as shown in FIG. 11(b). The list shown in FIG. 11B is obtained by excluding the virtual work W11A from the detection targets set for the virtual robot hand 102A.

ステップS600の探索処理において、CPU311は、仮想ワークW11Aを仮想ロボット100Aと連動させて、仮想ロボット100A及び仮想ワークW11Aが検知対象と接触しない仮想ロボット100Aの動作を探索する。この場合、仮想ワークW11Aを仮想ロボット100Aと連動させていない場合と同様に、RRTによる探索アルゴリズムで仮想ロボット100Aの動作を探索する。 In the search process of step S600, the CPU 311 interlocks the virtual work W11A with the virtual robot 100A, and searches for the motion of the virtual robot 100A in which the virtual robot 100A and the virtual work W11A do not come into contact with the detection target. In this case, similar to the case where the virtual work W11A is not interlocked with the virtual robot 100A, the motion of the virtual robot 100A is searched by the search algorithm by RRT.

図12は、第1実施形態において探索処理により求めた仮想ロボット100Aの動作の一例を示す説明図である。CPU311は、教示点P1と教示点P2との間の中間教示点P11,P12を求める。4つの教示点P1,P11,P12,P2を用いて計算された仮想ロボット100Aの動作は、図12中、点線で示す軌道traj1である。 FIG. 12 is an explanatory diagram showing an example of the motion of the virtual robot 100A obtained by the searching process in the first embodiment. CPU 311 obtains intermediate teaching points P11 and P12 between teaching point P1 and teaching point P2. The motion of the virtual robot 100A calculated using the four teaching points P1, P11, P12 and P2 is the trajectory traj1 indicated by the dotted line in FIG.

図13は、第1実施形態に係るディスプレイ302に表示される画像400の一例を示す説明図である。図13に示す一覧表示部401には、中間教示点P11,P12が「TP_mid1」と「TP_mid2」という名称で追加される。また、3D表示部403には、これら4つの教示点と、これら4つの教示点をつなぐ軌道が模式的に図示される。これにより、ユーザは追加された中間教示点P11,P12を用いて、新たな動作プログラムの作成や教示点の修正などといった検討を行うことができる。 FIG. 13 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the first embodiment. Intermediate teaching points P11 and P12 are added to the list display portion 401 shown in FIG. 13 under the names of "TP_mid1" and "TP_mid2". Further, the 3D display unit 403 schematically shows these four teaching points and a trajectory connecting these four teaching points. As a result, the user can use the added intermediate teaching points P11 and P12 to create a new operation program, modify the teaching points, and perform other studies.

ステップS700において、CPU311は、全ての動作プログラムのシミュレーションが終了したか否かを判定する。3行目の動作プログラムprg3が最後の動作プログラムであるため、全ての動作プログラムのシミュレーションが終了しており(S700:YES)、CPU311は、ステップS1000の処理に移行する。 In step S700, CPU 311 determines whether or not the simulation of all operating programs has ended. Since the operation program prg3 on the third line is the last operation program, the simulation of all the operation programs has been completed (S700: YES), and the CPU 311 shifts to the process of step S1000.

ステップS1000において、CPU311は、教示点P0,P1,P11,P12,P2の情報を含む教示データを、制御装置200に出力する。このように、一連の操作により作成された教示データは、ロボット100を制御する制御装置200へ出力されるので、制御装置200は、オフライン教示にて作成された教示データに基づいて実際のロボット100を動作させることができる。 In step S 1000 , CPU 311 outputs teaching data including information on teaching points P 0 , P 1 , P 11 , P 12 and P 2 to control device 200 . In this way, the teaching data created by a series of operations is output to the control device 200 that controls the robot 100. Therefore, the control device 200 controls the actual robot 100 based on the teaching data created by off-line teaching. can be operated.

図14は、ステップS600におけるRRTアルゴリズムの探索処理の一例を示すフローチャートである。図14に示すフローチャートは、動作プログラムにて仮想ワークW11Aを指定して仮想ワークW11Aを仮想ロボット100Aと連動させる場合の探索処理の一例を示すフローチャートである。 FIG. 14 is a flowchart showing an example of RRT algorithm search processing in step S600. The flow chart shown in FIG. 14 is a flow chart showing an example of search processing when the virtual work W11A is specified in the operation program and the virtual work W11A is linked with the virtual robot 100A.

ステップS601において、CPU311は、始点をノード群へ追加する。ここでノードとは、仮想ロボット100Aの全ての関節J1A~J6Aの値の組み合わせを示し、ノード群はノードの集合を示す。ノード群は、最初は空の状態である。 In step S601, the CPU 311 adds the starting point to the node group. Here, a node indicates a combination of values of all joints J1A to J6A of the virtual robot 100A, and a node group indicates a set of nodes. Nodes are initially empty.

ステップS602において、CPU311は、ランダムに新たなノードを算出する。仮想ロボット100Aの関節J1A~J6Aには、可動できる最小値から最大値までの範囲がある。CPU311は、その範囲内でランダムな数値を各関節の分だけ算出する。 In step S602, the CPU 311 randomly calculates a new node. The joints J1A to J6A of the virtual robot 100A have a movable range from the minimum value to the maximum value. The CPU 311 calculates random numerical values for each joint within that range.

ステップS603において、CPU311は、順運動学の計算により、新規ノードに含まれる各関節J1A~J6Aの値から各関節J1A~J6Aの位置及び仮想ロボットハンド102Aの位置を算出する。 In step S603, the CPU 311 calculates the positions of the joints J1A to J6A and the position of the virtual robot hand 102A from the values of the joints J1A to J6A included in the new node by forward kinematics calculation.

ステップS604において、CPU311は、ステップS800で計算した、仮想ロボットハンド102Aに対する仮想ワークW11Aの相対的な位置関係trsf1に基づいて、仮想ワークW11Aの位置を計算する。 In step S604, the CPU 311 calculates the position of the virtual work W11A based on the relative positional relationship trsf1 of the virtual work W11A with respect to the virtual robot hand 102A calculated in step S800.

ステップS605において、CPU311は、新規ノードに対して最近傍となるノードをノード群の中から算出する。最近傍とは、新規ノードの関節の値と、ノード群に含まれるノードの関節の値との差分値が、ノード群中、最も小さいことをいう。 In step S605, the CPU 311 calculates the node closest to the new node from the node group. The nearest neighbor means that the difference value between the joint value of the new node and the joint value of the node included in the node group is the smallest in the node group.

ステップS606において、CPU311は、新規ノードと最近傍ノードとの間を所定又は任意の間隔で補間する。補間は、予め設定された方法、例えば関節補間で行う。また、補間計算の際には、図5のステップS200で設定した質量や重心の情報も用いて行う。 In step S606, the CPU 311 interpolates between the new node and the nearest neighbor node at predetermined or arbitrary intervals. Interpolation is performed by a preset method, such as joint interpolation. Further, the information of the mass and the center of gravity set in step S200 of FIG. 5 is also used for the interpolation calculation.

ステップS607において、CPU311は、補間により求めた各位置において、仮想ロボット100Aの複数の部位、及び仮想ロボット100Aと連動する仮想ワークW11Aが、それぞれに対応する検知対象と接触するかどうかを判定する。仮想ロボット100Aの各部位に対する検知対象は、図5のステップS200で設定されたものを用い、仮想ワークW11Aに対する検知対象は、図5のステップS900にて再設定されたものを用いる。 In step S607, the CPU 311 determines whether a plurality of parts of the virtual robot 100A and the virtual work W11A interlocked with the virtual robot 100A come into contact with corresponding detection targets at each position obtained by interpolation. The detection target set in step S200 of FIG. 5 is used as the detection target for each part of the virtual robot 100A, and the detection target reset in step S900 of FIG. 5 is used as the detection target for the virtual work W11A.

仮想ロボット100Aの複数の部位、及び仮想ワークW11Aのうち、1つでも接触が検知された場合は(S607:YES)、CPU311は、新規ノードのデータは破棄して、ステップS602の処理に戻り、また新たに新規ノードを算出する。 If contact is detected with at least one of the multiple parts of the virtual robot 100A and the virtual work W11A (S607: YES), the CPU 311 discards the data of the new node and returns to the process of step S602. Also, a new node is newly calculated.

仮想ロボット100Aの複数の部位、及び仮想ワークW11Aのいずれも、接触が検知されない場合(S607:NO)、ステップS608において、CPU311は、新規ノードをノード群に追加する。CPU311は、ノード群に追加する際には、新規ノードに対する最近傍ノードの情報も記録しておく。 When none of the multiple parts of the virtual robot 100A and the virtual work W11A are detected to be in contact (S607: NO), the CPU 311 adds a new node to the node group in step S608. When adding a new node to the node group, the CPU 311 also records information about the nearest neighboring node to the new node.

ステップS609において、CPU311は、新規ノードと終点との間を所定又は任意の間隔で補間する。補間は、予め設定された方法、例えば関節補間で行う。また、補間計算の際には、ステップS200で設定した質量や重心の情報も用いて行う。 In step S609, the CPU 311 interpolates between the new node and the end point at predetermined or arbitrary intervals. Interpolation is performed by a preset method, such as joint interpolation. Further, the information of the mass and the center of gravity set in step S200 is also used for the interpolation calculation.

ステップS610において、CPU311は、補間により求めた各位置において、仮想ロボット100Aの複数の部位、及び仮想ロボット100Aと連動する仮想ワークW11Aが、それぞれに対応する検知対象と接触するかどうかを判定する。仮想ロボット100Aの各部位に対する検知対象は、図5のステップS200で設定されたものを用い、仮想ワークW11Aに対する検知対象は、図5のステップS900にて再設定されたものを用いる。 In step S610, the CPU 311 determines whether a plurality of parts of the virtual robot 100A and the virtual work W11A interlocked with the virtual robot 100A come into contact with corresponding detection targets at each position obtained by interpolation. The detection target set in step S200 of FIG. 5 is used as the detection target for each part of the virtual robot 100A, and the detection target reset in step S900 of FIG. 5 is used as the detection target for the virtual work W11A.

仮想ロボット100Aの複数の部位、及び仮想ワークW11Aのうち、1つでも接触が検知された場合は(S610:YES)、CPU311は、ステップS602の処理に戻り、また新たに新規ノードを算出する。 If contact is detected with at least one of the plurality of parts of the virtual robot 100A and the virtual work W11A (S610: YES), the CPU 311 returns to the process of step S602 and newly calculates a new node.

仮想ロボット100Aの複数の部位、及び仮想ワークW11Aのいずれも、接触が検知されない場合(S610:NO)、CPU311は、ステップS611の処理へ進む。 When none of the multiple parts of the virtual robot 100A and the virtual work W11A are detected to be in contact (S610: NO), the CPU 311 proceeds to the process of step S611.

ステップS611において、CPU311は、ノード群の中から中間点を抽出する。中間点は、最後に追加された新規ノードから最近傍ノードを順番に辿っていくことで抽出される。以上のステップS601~S611の処理が、仮想ワークW11Aを仮想ロボット100Aに連動させた場合の探索処理である。 In step S611, the CPU 311 extracts intermediate points from the node group. The waypoints are extracted by sequentially tracing the nearest neighbor nodes from the new node added last. The processing of steps S601 to S611 described above is the search processing when the virtual work W11A is interlocked with the virtual robot 100A.

なお、仮想ワークW11Aを仮想ロボット100Aに連動させない場合の探索処理においては、ステップS604の処理は、省略される。また、各ステップS607,S610の処理において、CPU311は、補間により求めた各位置において、仮想ロボット100Aの複数の部位が、それぞれに対応する検知対象と接触するかどうかを判定する。仮想ロボット100Aの各部位に対する検知対象は、図5のステップS200で設定されたものを用いる。 Note that in the search process when the virtual work W11A is not linked to the virtual robot 100A, the process of step S604 is omitted. Further, in the processing of steps S607 and S610, the CPU 311 determines whether or not a plurality of parts of the virtual robot 100A come into contact with corresponding detection targets at each position obtained by interpolation. As the detection target for each part of the virtual robot 100A, the one set in step S200 of FIG. 5 is used.

CPU311は、以上のステップS601~S611の処理による仮想ロボット100Aや仮想ワークW11Aを、3D表示部403に静止画又は動画として模擬的に表示してもよい。 The CPU 311 may simulate the virtual robot 100A and the virtual work W11A resulting from the processing of steps S601 to S611 above on the 3D display unit 403 as still images or moving images.

以上、第1実施形態によれば、CPU311は、仮想ワークW11Aを仮想ロボット100Aと連動させることで、仮想ロボット100A及び仮想ワークW11Aが障害物と接触しない動作を自動で算出することができる。このため、ユーザは、専門知識がなくても、シミュレート作業を容易に行うことができる。また、仮想ロボット100Aの動作において、逐一ユーザが目視で確認することなく、仮想ロボット100A及び仮想ワークW11Aが障害物と接触しない動作を取得できるので、シミュレーションに係るユーザの作業性を向上させることができる。また、シミュレート作業に基づくロボット100の教示も容易に行うことができる。 As described above, according to the first embodiment, by interlocking the virtual work W11A with the virtual robot 100A, the CPU 311 can automatically calculate the movement of the virtual robot 100A and the virtual work W11A so that they do not come into contact with an obstacle. Therefore, the user can easily perform the simulation work even without specialized knowledge. In addition, since the motion of the virtual robot 100A in which the virtual robot 100A and the virtual work W11A do not come into contact with an obstacle can be obtained without the user visually confirming each motion, the user's workability related to the simulation can be improved. can. In addition, it is possible to easily teach the robot 100 based on the simulated work.

また、ユーザは、仮想ロボット100Aの始点となる教示点P1、及び終点となる教示点P2と、搬送対象である仮想ワークW11Aとを設定すればよい。CPU311は、これら設定に基づいて、仮想ロボット100A及び仮想ワークW11Aが障害物と接触しない仮想ロボット100Aの搬送動作を自動で算出することができる。このため、ユーザは、専門知識がなくても、シミュレート作業を容易に行うことができる。また、仮想ロボット100Aの動作において、逐一ユーザが目視で確認することなく、仮想ロボット100A及び仮想ワークW11Aが障害物と接触しない動作を取得できるのでシミュレーションに係るユーザの作業性を向上させることができる。また、シミュレート作業に基づくロボット100の教示も容易に行うことができる。 Also, the user may set a teaching point P1 as a starting point and a teaching point P2 as an end point of the virtual robot 100A, and a virtual work W11A to be transported. Based on these settings, the CPU 311 can automatically calculate the transport operation of the virtual robot 100A in which the virtual robot 100A and the virtual work W11A do not come into contact with obstacles. Therefore, the user can easily perform the simulation work even without specialized knowledge. In addition, since the motion of the virtual robot 100A in which the virtual robot 100A and the virtual work W11A do not come into contact with an obstacle can be acquired without the user visually confirming each motion, the user's workability related to the simulation can be improved. . In addition, it is possible to easily teach the robot 100 based on the simulated work.

また、仮想ワークW11Aと連動させない仮想ロボット100Aの動作についても、CPU311は、仮想ロボット100Aが障害物と接触しない動作を自動で算出することができる。このため、ユーザは、専門知識がなくても、シミュレート作業を容易に行うことができる。また、仮想ロボット100Aの動作において、逐一ユーザが目視で確認することなく、仮想ロボット100A及び仮想ワークW11Aが障害物と接触しない動作を取得できるのでシミュレーションに係るユーザの作業性を向上させることができる。また、シミュレート作業に基づくロボット100の教示も容易に行うことができる。 In addition, the CPU 311 can automatically calculate the motion of the virtual robot 100A that does not come into contact with the obstacle, even with respect to the motion of the virtual robot 100A that is not linked to the virtual work W11A. Therefore, the user can easily perform the simulation work even without specialized knowledge. In addition, since the motion of the virtual robot 100A in which the virtual robot 100A and the virtual work W11A do not come into contact with an obstacle can be acquired without the user visually confirming each motion, the user's workability related to the simulation can be improved. . In addition, it is possible to easily teach the robot 100 based on the simulated work.

(第2実施形態)
次に第2実施形態について詳述する。以下では、第1実施形態とは異なるハードウェアや制御系の構成の部分について図示し説明する。また、第1実施形態と同様の部分については上記と同様の構成ならびに作用が可能であるものとし、その詳細な説明は省略するものとする。
(Second embodiment)
Next, a second embodiment will be described in detail. In the following, hardware and control system configurations that are different from those of the first embodiment will be illustrated and explained. In addition, it is assumed that the same parts as those of the first embodiment can have the same configurations and actions as those described above, and detailed description thereof will be omitted.

図15は第2実施形態に係るディスプレイ302に表示される画像400の一例を示す説明図である。図15より、第2実施形態では、「連動設定」の名称が付与されたボタン456が表示されている点が第1実施形態と大きく異なる。第1実施形態では仮想ロボットハンド102Aと仮想ワークW11Aとの連動条件となる、仮想ロボットハンド102Aに対する仮想ワークW11Aの相対的な位置関係trsf1をCPU311に計算させていた。第2実施形態では、この連動条件となる相対的な位置関係trsf1をユーザにより設定させる。3D表示部403において表示されるロボットハンドモデル102Bは、仮想ロボットハンド102Aに対応し、3D表示部403において表示されるワークモデルW11Bは、仮想ワークW11Aに対応する。以下、仮想ロボットハンド102A、仮想ワークW11Aを用いて説明を行う。 FIG. 15 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the second embodiment. As can be seen from FIG. 15, the second embodiment differs greatly from the first embodiment in that a button 456 with the name "linked setting" is displayed. In the first embodiment, the CPU 311 is caused to calculate the relative positional relationship trsf1 of the virtual work W11A with respect to the virtual robot hand 102A, which is the interlocking condition between the virtual robot hand 102A and the virtual work W11A. In the second embodiment, the user is allowed to set the relative positional relationship trsf1 as the linking condition. A robot hand model 102B displayed on the 3D display unit 403 corresponds to the virtual robot hand 102A, and a workpiece model W11B displayed on the 3D display unit 403 corresponds to the virtual workpiece W11A. Description will be made below using a virtual robot hand 102A and a virtual work W11A.

図16は、ユーザが図15に示すボタン456をクリックすることでディスプレイ302に表示される画像400の一例を示す説明図である。ユーザが図15に示すボタン456をクリックすることで、図16に示す連動条件を設定するタブ4024と、仮想空間Rを表示した3D表示部403とが表示される。タブ4024には「連動設定」という名称が付されて表示されている。タブ4024で示される表示画面には、ボックス460、テーブル461、列462、463、ボタン464、465、466、467が表示されている。以下で詳述する。 FIG. 16 is an explanatory diagram showing an example of an image 400 displayed on the display 302 when the user clicks the button 456 shown in FIG. When the user clicks a button 456 shown in FIG. 15, a tab 4024 for setting interlocking conditions shown in FIG. 16 and a 3D display section 403 displaying the virtual space R are displayed. A tab 4024 is displayed with a name of "interlocking setting". A box 460 , a table 461 , columns 462 and 463 , and buttons 464 , 465 , 466 and 467 are displayed on the display screen indicated by tab 4024 . Details are given below.

まず、ボックス460は、連動条件を設定させる際の連動対象を設定する設定ボックスである。図16ではボックス460には、仮想ロボットハンド102Aが設定されている。なお、第2実施形態では、連動対象となる仮想ロボット100Aの所定部位として仮想ロボットハンド102Aを例にとり説明するが、これに限られない。例えば、仮想ロボット100Aの所定のリンクを連動対象として設定することも可能である。 First, a box 460 is a setting box for setting an interlocking target when setting interlocking conditions. A virtual robot hand 102A is set in a box 460 in FIG. In the second embodiment, the virtual robot hand 102A is described as an example of the predetermined part of the virtual robot 100A to be interlocked, but it is not limited to this. For example, it is possible to set a predetermined link of the virtual robot 100A as an interlock target.

テーブル461は、連動条件を設定させる際の、連動対象と連動させるべき仮想ワークの情報と、相対的な位置関係trsf1に係るパラメータとを入力するテーブルである。列462は連動対象と連動させるべき仮想ワークの情報の設定を行う列である。図16では、仮想ワークW11Aに対応するワーク名称が列462に表示されており、他のワークに対応する名称も列462に順次表示される。列463は、対応する仮想ワークにおける、仮想ロボットハンド102Aとの相対的な位置関係trsf1のパラメータを入力する列である。 The table 461 is a table for inputting the information of the virtual work to be interlocked with the interlocking target and the parameter related to the relative positional relationship trsf1 when setting the interlocking condition. A column 462 is a column for setting information of a virtual work to be interlocked with an interlock target. In FIG. 16, the work names corresponding to the virtual work W11A are displayed in the column 462, and the names corresponding to other works are also displayed in the column 462 in sequence. A column 463 is a column for inputting parameters of the relative positional relationship trsf1 with the virtual robot hand 102A in the corresponding virtual work.

図16における列463のパラメータは、仮想ワークW11Aにおける任意の仮想点を基準として、仮想ロボットハンド102Aのツールセンタポイントの相対的な位置姿勢を示している。任意の仮想点は、仮想ワークW11Aの制御上の第1位置の一例、ツールセンタポイントは、仮想ロボットハンド102Aの制御上の第2位置の一例である。つまり図16における列463のパラメータは、仮想ロボットハンド102Aのツールセンタポイントが、仮想ワークW11Aの任意の仮想点に対して、Z軸プラス方向に50離れていることを示している。この50という値は、仮想空間Rにおいて設定されている距離の情報であり、単位としてはmmでも、cmでも構わない。Rx、Ry、Rzの値も入力することで、仮想ロボットハンド102Aのツールセンタポイントにおける、仮想ワークW11Aの任意の仮想点に対する姿勢を設定することも可能となる。これにより、仮想ワークW11Aを真上から把持するような場合だけでなく、仮想ワークW11Aを真横から把持するような場合なども、ユーザによって容易に設定することが可能となる。 The parameters in column 463 in FIG. 16 indicate the relative position and orientation of the tool center point of virtual robot hand 102A with reference to an arbitrary virtual point on virtual work W11A. An arbitrary virtual point is an example of a control first position of the virtual work W11A, and a tool center point is an example of a control second position of the virtual robot hand 102A. In other words, the parameters in column 463 in FIG. 16 indicate that the tool center point of virtual robot hand 102A is 50 points away from any virtual point on virtual workpiece W11A in the positive Z-axis direction. This value of 50 is information about the distance set in the virtual space R, and the unit may be mm or cm. By also inputting the values of Rx, Ry, and Rz, it is possible to set the posture of the virtual work W11A with respect to an arbitrary virtual point at the tool center point of the virtual robot hand 102A. This allows the user to easily set not only the case of gripping the virtual work W11A from directly above, but also the case of gripping the virtual work W11A from the side.

ボタン464は、3D表示部403に表示されている仮想ロボットハンド102A(102B)及び仮想ワークW11A(W11B)について、仮想ワークW11A(W11B)の任意の仮想点に対する仮想ロボットハンド102A(102B)のツールセンタポイントにおける位置姿勢を取得し、取得した位置姿勢をパラメータとして列463に表示するためのボタンである。パラメータでの設定が煩雑な場合は、3D表示部403に表示されている仮想ロボットハンド102A(102B)を、ポインタ470で所定位置に移動させ所定姿勢となるように設定する。そして、ボタン464を押下することで、ボタン464を押下した時点の、仮想ワークW11A(W11B)の任意の仮想点に対する仮想ロボットハンド102A(102B)のツールセンタポイントの位置姿勢を取得し、取得した位置姿勢を列463にパラメータとして表示する。これにより、3D表示部403における仮想ロボットハンド102A(102B)の位置姿勢を見ながら、直感的に、連動条件となる、相対的な位置関係trsf1を設定することが可能となる。なお、ボタン464’を押下することで、仮想ロボットハンド102A(102B)のツールセンタポイントにおける、仮想ワークW21A(W21B)の任意の仮想点に対する位置姿勢を取り込み、連動条件として設定することも可能である。ボタン464は、列463において、仮想ワークに対応した行に表示される。 The button 464 is for the virtual robot hand 102A (102B) and the virtual work W11A (W11B) displayed on the 3D display unit 403, and the tool of the virtual robot hand 102A (102B) for an arbitrary virtual point of the virtual work W11A (W11B). This is a button for acquiring the position and orientation at the center point and displaying the acquired position and orientation in the column 463 as parameters. If setting the parameters is complicated, the virtual robot hand 102A (102B) displayed on the 3D display unit 403 is moved to a predetermined position by the pointer 470 and set to assume a predetermined posture. Then, by pressing the button 464, the position and orientation of the tool center point of the virtual robot hand 102A (102B) with respect to an arbitrary virtual point of the virtual work W11A (W11B) at the time of pressing the button 464 are obtained. The poses are displayed as parameters in column 463 . As a result, while viewing the position and orientation of the virtual robot hand 102A (102B) on the 3D display unit 403, it is possible to intuitively set the relative positional relationship trsf1 as the interlocking condition. By pressing the button 464', it is also possible to capture the position and orientation of the virtual work W21A (W21B) with respect to an arbitrary virtual point at the tool center point of the virtual robot hand 102A (102B) and set it as an interlocking condition. be. A button 464 is displayed in the row corresponding to the virtual work in column 463 .

なお、第2実施形態では、仮想ワークW11A(W11B)の任意の仮想点を基準として、仮想ロボットハンド102A(102B)のツールセンタポイント位置を設定、取り込むことで、位置関係trsf1を設定している。「基準変更」と記載されたボタン468を押下することで、位置関係trsf1の基準を変更することが可能である。図16の状態では、基準表示部469において「ワーク」が表示されているが、ボタン468を押下することで、基準表示部469において「ロボットハンド」が表示される。基準がロボットハンドの場合に、位置関係trsf1を設定すると、仮想ロボットハンド102A(102B)のツールセンタポイントを基準として、仮想ワークW11A(W11B)の任意の仮想点の位置を設定する。列463の場合だと、Z軸の値が「-50」となる。 In the second embodiment, the positional relationship trsf1 is set by setting and capturing the tool center point position of the virtual robot hand 102A (102B) with reference to an arbitrary virtual point of the virtual work W11A (W11B). . By pressing a button 468 labeled "change reference", it is possible to change the reference of the positional relationship trsf1. In the state of FIG. 16, "work" is displayed on the reference display portion 469, but by pressing the button 468, the reference display portion 469 displays "robot hand". When the positional relationship trsf1 is set when the reference is the robot hand, the position of an arbitrary virtual point of the virtual work W11A (W11B) is set with the tool center point of the virtual robot hand 102A (102B) as the reference. In the case of column 463, the Z-axis value is "-50".

連動条件となる、相対的な位置関係trsf1の設定をできれば、「確定」という名称が記載されたボタン465を押下することで、各ワークに対する連動条件を確定することができる。「キャンセル」という名称が記載されたボタン466を押下することで、列463に入力されたパラメータを削除することができる。第2実施形態では、列463において所定のパラメータを選択中に、ボタン466を押下すると、選択中の所定のパラメータが削除される。しかしながら、ボタン466の押下により、列463における全てのパラメータを削除するようにしても構わない。「戻る」という名称が記載されたボタン467を押下することで、図15に示した画像400の表示に戻ることができる。 If the relative positional relationship trsf1, which is the interlocking condition, can be set, the interlocking condition for each work can be confirmed by pressing the button 465 with the name "Confirm". By pressing a button 466 labeled "cancel", the parameters entered in column 463 can be deleted. In the second embodiment, pressing the button 466 while a predetermined parameter is being selected in the column 463 deletes the selected predetermined parameter. However, pressing button 466 may delete all parameters in column 463 . By pressing a button 467 labeled "return", it is possible to return to the display of the image 400 shown in FIG.

(変形例)
図17は、第2実施形態における連動設定を行うタブ4024の変形例を示した図である。本変形例では、タブ4024で示される表示画面に仮想空間Rを表示した3D表示部403を表示させている。そして、連動条件となる、相対的な位置関係trsf1を、ポインタ470による描画によって設定できるようにしている。描画は、マウス304によるクリック、ドラッグ、及びドロップの少なくとも1つによって実行可能であることが好ましい。図17の例では、ユーザがマウス304により仮想ロボットハンド102A(102B)のツールセンタポイントをクリックし、クリックしたまま仮想ワークW11A(W11B)の仮想点までポインタをドラッグし、仮想ワークW11A(W11B)の仮想点でポインタをドロップすることで、位置関係trsf1を描画し設定している。CPU311は、描画によって設定された位置関係trsf1を、例えば図17に破線で示すモデルで、3D表示部403に表示させる。そしてこの状態から、図17に破線で示すモデルの姿勢を、ユーザがポインタ470で変更させる操作が可能となっている。そして、このようにユーザによってモデルの姿勢が変更されたことを、CPU311は、位置関係trsf1から位置関係trsf1’への変更として受け付けることが可能となっている。なお、本変形例では、仮想ワークW11A(W11B)の任意の仮想点を基準として、仮想ロボットハンド102A(102B)のツールセンタポイントを移動させることで、位置関係trsf1を表すモデルを回転させている。「基準変更」と記載されたボタン468を押下することで、位置関係trsf1の基準を変更することが可能である。図17の状態では、基準表示部469において「ワーク」が表示されているが、ボタン468を押下することで、基準表示部469において「ロボットハンド」が表示される。基準が仮想ロボットハンドの場合に、位置関係trsf1を表すモデルを回転させると、仮想ロボットハンド102A(102B)のツールセンタポイントを基準として、仮想ワークW11A(W11B)の任意の仮想点が移動する。
(Modification)
FIG. 17 is a diagram showing a modified example of the tab 4024 for interlock setting in the second embodiment. In this modification, the 3D display section 403 displaying the virtual space R is displayed on the display screen indicated by the tab 4024 . A relative positional relationship trsf1, which is an interlocking condition, can be set by drawing with the pointer 470. FIG. Drawing is preferably enabled by mouse 304 and/or by clicking, dragging, and dropping. In the example of FIG. 17, the user clicks the tool center point of the virtual robot hand 102A (102B) with the mouse 304, drags the pointer to the virtual point of the virtual work W11A (W11B) while keeping the click, and moves the virtual work W11A (W11B). By dropping the pointer at the virtual point of , the positional relationship trsf1 is drawn and set. The CPU 311 causes the 3D display unit 403 to display the positional relationship trsf1 set by drawing, for example, as a model indicated by a dashed line in FIG. From this state, it is possible for the user to change the posture of the model indicated by the dashed line in FIG. The CPU 311 can accept such a change in the posture of the model by the user as a change from the positional relationship trsf1 to the positional relationship trsf1'. In this modified example, the model representing the positional relationship trsf1 is rotated by moving the tool center point of the virtual robot hand 102A (102B) with reference to an arbitrary virtual point of the virtual work W11A (W11B). . By pressing a button 468 labeled "change reference", it is possible to change the reference of the positional relationship trsf1. In the state of FIG. 17, "work" is displayed on the reference display portion 469, but by pressing the button 468, the reference display portion 469 displays "robot hand". When the reference is the virtual robot hand, when the model representing the positional relationship trsf1 is rotated, any virtual point of the virtual work W11A (W11B) moves with the tool center point of the virtual robot hand 102A (102B) as the reference.

また、本変形例では、仮想ワークW11A(W11B)の設定を例に取り説明している。しかしながら、ポインタ470により仮想ロボットハンド102A(102B)を、別の仮想ワーク近辺の所定位置に位置させ、ポインタ470によるクリック、ドロップ&ドラッグで別の仮想ワークとの連動条件を設定することも可能である。 Also, in this modified example, the setting of the virtual work W11A (W11B) is taken as an example. However, it is also possible to use the pointer 470 to position the virtual robot hand 102A (102B) at a predetermined position near another virtual work, and to set conditions for interlocking with another virtual work by clicking, dropping and dragging with the pointer 470. be.

そして所望の位置関係trsf1を描画することができたら、ボタン465を押下することで、描画した位置関係trsf1を連動条件として確定することができる。ボタン466を押下することで、仮想空間R上に描画した、連動条件となる位置姿勢を削除することができる。本変形例では、仮想空間R上において所定の位置姿勢を選択中に、ボタン466を押下すると、選択中の所定の位置姿勢が削除される。しかしながら、ボタン466の押下により、仮想空間R上における全ての位置姿勢を削除するようにしても構わない。ボタン467を押下することで、図15に示した画像400の表示に戻ることができる。 Then, when the desired positional relationship trsf1 can be drawn, pressing the button 465 allows the drawn positional relationship trsf1 to be determined as the interlocking condition. By pressing a button 466, it is possible to delete the position and orientation rendered in the virtual space R, which are the interlocking conditions. In this modified example, when a button 466 is pressed while a predetermined position/orientation is being selected in the virtual space R, the selected predetermined position/orientation is deleted. However, all positions and orientations in the virtual space R may be deleted by pressing the button 466 . By pressing the button 467, it is possible to return to the display of the image 400 shown in FIG.

以上、第2実施形態及びその変形例では、仮想ロボットハンド102Aと仮想ワークW11Aおよび他の仮想ワークとの連動条件を容易に設定することができる。これにより、仮想ワークW11Aを真上から把持するような場合だけでなく、仮想ワークW11Aを真横から把持するような場合なども、ユーザによって連動条件を容易に設定できる。このため、ユーザは、様々なワークおよびロボットの挙動のシミュレート作業を容易に行うことが可能となり、シミュレーションに係るユーザの作業性を向上させることができる。よって、ユーザは、シミュレート作業に基づくロボット100の教示を容易に行うことができる。なお、情報処理装置または情報処理方法において、第2実施形態またはその変形例と、上述の第1実施形態またはその変形例とを組み合わせて実施しても構わない。また、情報処理装置または情報処理方法において、図16を用いて述べた第2実施形態と図17を用いて述べた第2実施形態の変形例とを組み合わせて実施しても構わない。 As described above, in the second embodiment and its modification, it is possible to easily set conditions for interlocking the virtual robot hand 102A, the virtual work W11A, and other virtual works. As a result, the user can easily set the interlocking conditions not only when the virtual work W11A is gripped from above but also when the virtual work W11A is gripped from the side. Therefore, the user can easily simulate the behavior of various workpieces and robots, and the workability of the user involved in the simulation can be improved. Therefore, the user can easily teach the robot 100 based on the simulated work. In addition, in the information processing apparatus or the information processing method, the second embodiment or its modification may be combined with the above-described first embodiment or its modification. Further, in the information processing apparatus or the information processing method, the second embodiment described using FIG. 16 and the modified example of the second embodiment described using FIG. 17 may be combined for implementation.

本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。 The present invention is not limited to the embodiments described above, and many modifications are possible within the technical concept of the present invention. Moreover, the effects described in the embodiments are merely enumerations of the most suitable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments.

上述の実施形態では、ロボットアームが垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。また、制御装置に設けられる記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の動作、またはこれらの複合動作を自動的に行うことができる機械によってワークを搬送させる動作のシミュレートに実施しても構わない。 In the above-described embodiment, the case where the robot arm is a vertically articulated robot arm has been described, but the present invention is not limited to this. The robot arm may be, for example, a horizontal articulated robot arm, a parallel link robot arm, an orthogonal robot, or various other robot arms. In addition, based on the information in the storage device provided in the control device, it simulates the operation of conveying the work by a machine that can automatically perform expansion, contraction, bending, vertical movement, horizontal movement, turning, or a combination of these operations. It is permissible to implement

また、上述の実施形態では、情報処理装置300は、仮想ロボットの動作情報として、教示点の情報を含む教示データを出力する場合について説明したが、これに限定するものではない。情報処理装置300は、仮想ロボットの動作情報として、教示データから計算して得られる軌道データを出力するようにしてもよい。 In the above-described embodiment, the information processing apparatus 300 outputs teaching data including information on teaching points as motion information of the virtual robot, but the present invention is not limited to this. The information processing apparatus 300 may output trajectory data calculated from the teaching data as motion information of the virtual robot.

(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other examples)
The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in the computer of the system or apparatus reads and executes the program. It can also be realized by processing to It can also be implemented by a circuit (for example, ASIC) that implements one or more functions.

100…ロボット、100A…仮想ロボット、200…制御装置、300…情報処理装置、311…CPU(情報処理部)、1000…ロボットシステム DESCRIPTION OF SYMBOLS 100... Robot 100A... Virtual robot 200... Control apparatus 300... Information processing apparatus 311... CPU (information processing part) 1000... Robot system

Claims (27)

仮想環境において仮想ロボット及び仮想ワークの挙動をシミュレート可能な情報処理部を備え、
前記情報処理部は、
前記仮想ワークを前記仮想ロボットの所定部位と連動させるための連動条件を設定する処理を実行可能である、
ことを特徴とする情報処理装置。
Equipped with an information processing unit capable of simulating the behavior of a virtual robot and a virtual work in a virtual environment,
The information processing unit
a process of setting an interlocking condition for interlocking the virtual work with a predetermined part of the virtual robot;
An information processing device characterized by:
前記情報処理部は、
前記仮想環境における前記仮想ワークと前記所定部位との相対的な位置関係を、前記連動条件として設定する、
ことを特徴とする請求項1に記載の情報処理装置。
The information processing unit
setting a relative positional relationship between the virtual work and the predetermined portion in the virtual environment as the interlocking condition;
The information processing apparatus according to claim 1, characterized by:
前記情報処理部は、
パラメータの入力による前記連動条件の設定を受け付ける、
ことを特徴とする請求項1または2に記載の情報処理装置。
The information processing unit
Receiving setting of the interlocking condition by inputting parameters;
3. The information processing apparatus according to claim 1, wherein:
前記情報処理部は、
前記仮想環境における前記仮想ワークと前記所定部位との相対的な位置関係を取得するボタンを表示させ、
前記ボタンが押下されることで取得した、前記仮想環境における前記仮想ワークと前記所定部位との相対的な位置関係を、前記連動条件として設定する、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
The information processing unit
displaying a button for obtaining a relative positional relationship between the virtual work and the predetermined part in the virtual environment;
setting a relative positional relationship between the virtual work and the predetermined part in the virtual environment, which is obtained by pressing the button, as the interlocking condition;
4. The information processing apparatus according to any one of claims 1 to 3, characterized by:
前記情報処理部は、
前記所定部位を設定できる設定ボックスを表示させる、
ことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
The information processing unit
displaying a setting box in which the predetermined part can be set;
5. The information processing apparatus according to any one of claims 1 to 4, characterized in that:
前記情報処理部は、
前記仮想環境において、描画による前記連動条件の設定を受け付ける、
ことを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。
The information processing unit
receiving setting of the interlocking condition by drawing in the virtual environment;
6. The information processing apparatus according to any one of claims 1 to 5, characterized by:
前記情報処理部は、
前記描画によって設定された前記連動条件をモデルで表示させる、
ことを特徴とする請求項6に記載の情報処理装置。
The information processing unit
displaying the interlocking condition set by the drawing in a model;
7. The information processing apparatus according to claim 6, characterized by:
前記描画は、マウスによるクリック、ドラッグ、及びドロップの少なくとも1つによって実行可能である、
ことを特徴とする請求項6に記載の情報処理装置。
the drawing can be performed by at least one of clicking, dragging, and dropping with a mouse;
7. The information processing apparatus according to claim 6, characterized by:
前記情報処理部は、
前記モデルの姿勢を変更する操作を受け付ける、
ことを特徴とする請求項7に記載の情報処理装置。
The information processing unit
receiving an operation to change the posture of the model;
8. The information processing apparatus according to claim 7, characterized by:
前記情報処理部は、
前記仮想環境における、前記仮想ワークの制御上の第1位置と前記所定部位の制御上の第2位置との相対的な位置関係を、前記連動条件として設定する、
ことを特徴とする請求項1から9のいずれか1項に記載の情報処理装置。
The information processing unit
setting a relative positional relationship between a first control position of the virtual workpiece and a second control position of the predetermined part in the virtual environment as the interlocking condition;
10. The information processing apparatus according to any one of claims 1 to 9, characterized by:
前記情報処理部は、
前記ボタンを、前記仮想ワークに対応させて表示させる、
ことを特徴とする請求項4に記載の情報処理装置。
The information processing unit
displaying the button corresponding to the virtual work;
5. The information processing apparatus according to claim 4, characterized by:
前記情報処理部は、
前記連動条件における、前記仮想ワークと前記所定部位との相対的な位置関係の基準を変更するボタンを表示させる、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
The information processing unit
displaying a button for changing the reference of the relative positional relationship between the virtual work and the predetermined part in the interlocking condition;
4. The information processing apparatus according to any one of claims 1 to 3, characterized by:
前記情報処理部は、
前記基準を表示させる、
ことを特徴とする請求項12に記載の情報処理装置。
The information processing unit
causing the criteria to be displayed;
13. The information processing apparatus according to claim 12, characterized by:
前記情報処理部は、
前記仮想ロボット及び前記仮想ワークが、対象と接触しない前記仮想ロボットの動作を取得する処理を実行可能である、
ことを特徴とする請求項1から13のいずれか1項に記載の情報処理装置。
The information processing unit
The virtual robot and the virtual work are capable of executing a process of acquiring motions of the virtual robot that do not come into contact with an object.
14. The information processing apparatus according to any one of claims 1 to 13, characterized by:
前記情報処理部は、
前記仮想ワークを前記仮想ロボットと連動させるか否かを選択し、
前記仮想ワークを前記仮想ロボットと連動させることを選択した場合に、前記処理において、前記仮想ワークを前記仮想ロボットと連動させて、前記仮想ロボット及び前記仮想ワークが前記対象と接触しない前記仮想ロボットの動作を取得する、
ことを特徴とする請求項14に記載の情報処理装置。
The information processing unit
selecting whether or not to interlock the virtual work with the virtual robot;
When it is selected to interlock the virtual work with the virtual robot, in the processing, the virtual work is interlocked with the virtual robot so that the virtual robot and the virtual work do not come into contact with the target. to get the behavior,
15. The information processing apparatus according to claim 14, characterized by:
前記所定部位は仮想エンドエフェクタである、
ことを特徴とする請求項1から15のいずれか1項に記載の情報処理装置。
wherein the predetermined site is a virtual end effector;
16. The information processing apparatus according to any one of claims 1 to 15, characterized by:
前記情報処理部は、
前記所定部位と前記仮想ワークとの相対的な位置関係を維持することで、前記仮想ワークを前記所定部位と連動させる、
ことを特徴とする請求項1から16のいずれか1項に記載の情報処理装置。
The information processing unit
interlocking the virtual work with the predetermined part by maintaining a relative positional relationship between the predetermined part and the virtual work;
17. The information processing apparatus according to any one of claims 1 to 16, characterized by:
前記対象は、前記所定部位および前記仮想ワークの各々に対して個別に設定されている、
ことを特徴とする請求項14に記載の情報処理装置。
The target is set individually for each of the predetermined part and the virtual work,
15. The information processing apparatus according to claim 14, characterized by:
前記情報処理部は、
前記所定部位に対する前記対象の設定を受け付ける、
ことを特徴とする請求項14に記載の情報処理装置。
The information processing unit
Receiving setting of the target for the predetermined part;
15. The information processing apparatus according to claim 14, characterized by:
前記情報処理部は、
前記所定部位と連動させる場合の前記仮想ワークに対する前記対象を、前記所定部位に対して設定された前記対象に基づいて設定する、
ことを特徴とする請求項19に記載の情報処理装置。
The information processing unit
setting the target for the virtual work when interlocking with the predetermined part based on the target set for the predetermined part;
20. The information processing apparatus according to claim 19, characterized by:
前記情報処理部は、
第1教示点及び第2教示点の設定を受け付け、
前記仮想ワークを前記仮想ロボットと連動させて前記仮想ロボットを前記第1教示点から前記第2教示点へ動作させる場合の、前記第1教示点と前記第2教示点との間の中間教示点を取得する、
ことを特徴とする請求項14に記載の情報処理装置。
The information processing unit
Receiving the setting of the first teaching point and the second teaching point,
An intermediate teaching point between the first teaching point and the second teaching point when the virtual work is interlocked with the virtual robot to move the virtual robot from the first teaching point to the second teaching point. to get the
15. The information processing apparatus according to claim 14, characterized by:
前記仮想ロボットの動作を取得するアルゴリズムがRRTである、
ことを特徴とする請求項14に記載の情報処理装置。
an algorithm for acquiring the motion of the virtual robot is RRT;
15. The information processing apparatus according to claim 14, characterized by:
請求項1から22のいずれか1項に記載の情報処理装置と、
ロボットと、
前記情報処理装置よって取得される前記仮想ロボットの動作情報を取得し、前記動作情報に基づいて前記ロボットを制御する制御装置と、を備える、
ことを特徴とするロボットシステム。
an information processing apparatus according to any one of claims 1 to 22;
robot and
a control device that acquires motion information of the virtual robot acquired by the information processing device and controls the robot based on the motion information;
A robot system characterized by:
請求項23に記載のロボットシステムを用いて物品を製造する、
ことを特徴とする物品の製造方法。
Manufacturing an article using the robotic system of claim 23,
A method for manufacturing an article characterized by:
情報処理部が仮想環境において仮想ロボット及び仮想ワークの挙動をシミュレートする情報処理方法であって、
前記情報処理部によって、前記仮想ワークを前記仮想ロボットの所定部位と連動させるための連動条件を設定する処理を実行する、
ことを特徴とする情報処理方法。
An information processing method in which an information processing unit simulates the behavior of a virtual robot and a virtual work in a virtual environment,
The information processing unit executes a process of setting an interlocking condition for interlocking the virtual work with a predetermined part of the virtual robot;
An information processing method characterized by:
請求項25に記載の情報処理方法をコンピュータに実行させるためのプログラム。 A program for causing a computer to execute the information processing method according to claim 25. 請求項26に記載のプログラムを記録した、コンピュータにより読み取り可能な記録媒体。 A computer-readable recording medium recording the program according to claim 26.
JP2022011329A 2021-03-05 2022-01-27 Information processor, robot system, article manufacturing method, information processing method, program, and recording medium Pending JP2022135939A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP22156487.5A EP4052865A1 (en) 2021-03-05 2022-02-14 Information processing apparatus, robot system, information processing method, program, and recording medium
US17/680,491 US20220281103A1 (en) 2021-03-05 2022-02-25 Information processing apparatus, robot system, method of manufacturing products, information processing method, and recording medium
CN202210201989.7A CN115008439A (en) 2021-03-05 2022-03-03 Information processing apparatus and method, robot system, product manufacturing method, and computer program product

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021035217 2021-03-05
JP2021035217 2021-03-05

Publications (1)

Publication Number Publication Date
JP2022135939A true JP2022135939A (en) 2022-09-15

Family

ID=83231141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022011329A Pending JP2022135939A (en) 2021-03-05 2022-01-27 Information processor, robot system, article manufacturing method, information processing method, program, and recording medium

Country Status (1)

Country Link
JP (1) JP2022135939A (en)

Similar Documents

Publication Publication Date Title
JP7009051B2 (en) Layout setting method, control program, recording medium, control device, parts manufacturing method, robot system, robot control device, information processing method, information processing device
Fang et al. Interactive robot trajectory planning and simulation using augmented reality
US7099747B2 (en) Motion editing apparatus and method for robot device, and computer program
EP1842631B1 (en) Apparatus and method for automatic path generation for an industrial robot
JP4137909B2 (en) Robot program correction device
JP6469159B2 (en) Offline programming apparatus and method with work position detection program generation function by contact sensor
US20170197308A1 (en) Teaching data generating device and teaching data-generating method for work robot
US20220395985A1 (en) Information processing apparatus, information processing method, display apparatus, display method, robot system, article production method, program, and storage medium
He et al. Haptic-aided robot path planning based on virtual tele-operation
Wojtynek et al. Assisted planning and setup of collaborative robot applications in modular production systems
JP2019171498A (en) Robot program execution device, robot program execution method and program
JPS6179589A (en) Operating device for robot
JPH10124130A (en) Assembling device
JP7475841B2 (en) Information processing method, robot system, article manufacturing method, and information processing device
EP4052865A1 (en) Information processing apparatus, robot system, information processing method, program, and recording medium
JP3614824B2 (en) Motion editing apparatus and motion editing method for legged mobile robot
JP5447811B2 (en) Path plan generation apparatus and method, robot control apparatus and robot system
JP2022135939A (en) Information processor, robot system, article manufacturing method, information processing method, program, and recording medium
WO2021149419A1 (en) Simulation device, and simulation program
WO2021106517A1 (en) Information presenting device, information presenting method, and information presenting program
JP2009166172A (en) Simulation method and simulator for robot
JPH08286722A (en) Off-line teaching method using cad data and its system
JPH06134684A (en) Teaching method of robot track
JP2000112510A (en) Robot teaching method and its device
Wojtynek et al. InteractiveWorkspace Layout focusing on the reconfiguration with collaborative robots in modular production systems