JP7447568B2 - Simulation equipment and programs - Google Patents

Simulation equipment and programs Download PDF

Info

Publication number
JP7447568B2
JP7447568B2 JP2020041723A JP2020041723A JP7447568B2 JP 7447568 B2 JP7447568 B2 JP 7447568B2 JP 2020041723 A JP2020041723 A JP 2020041723A JP 2020041723 A JP2020041723 A JP 2020041723A JP 7447568 B2 JP7447568 B2 JP 7447568B2
Authority
JP
Japan
Prior art keywords
axes
simulation
behavior
movable range
virtual space
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.)
Active
Application number
JP2020041723A
Other languages
Japanese (ja)
Other versions
JP2021142596A (en
Inventor
裕希 三宅
征彦 仲野
嵩史 大倉
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.)
Omron Corp
Original Assignee
Omron Corp
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 Omron Corp filed Critical Omron Corp
Priority to JP2020041723A priority Critical patent/JP7447568B2/en
Publication of JP2021142596A publication Critical patent/JP2021142596A/en
Application granted granted Critical
Publication of JP7447568B2 publication Critical patent/JP7447568B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本開示は、機器の挙動を推定するシミュレーション装置およびプログラムに関する。 The present disclosure relates to a simulation device and a program for estimating the behavior of equipment.

コンピュータを用いたシミュレーションは様々な技術分野に応用されている。このようなシミュレーションをファクトリオートメーション(FA:Factory Automation)に利用した例として、例えば、特開2019-36014号公報(特許文献1)は、機械の動きを制御する制御プログラムを事前に設計するためのシミュレーションを開示する。 Simulation using computers is applied to various technical fields. As an example of using such simulation for factory automation (FA), for example, Japanese Patent Laid-Open No. 2019-36014 (Patent Document 1) describes a method for pre-designing a control program that controls the movement of a machine. Disclose the simulation.

特開2019-36014号公報JP 2019-36014 Publication

FAでは、多関節を有した産業用ロボットが備えられる。ロボットの制御プログラムが実行されることによって、各関節は対応の軸の動きに連動して動作し、その結果、ロボットは、ワークを搬送または加工する。制御プログラムの設計時には、各軸の可動範囲は、所定値に設定されていた。ロボットがとり得る位置姿勢(位置および姿勢)によっては、設定された所定値では、可動範囲が関節の動作を過度に制限する、すなわちワークの搬送または加工の動作を制限するように作用するなど可動範囲が適正でない可能性があった。したがって、ロボットの各軸の可動範囲を個別に設定できる環境の提供が望まれていたが、特許文献1のシミュレーションは、当該環境を提供しない。 FA is equipped with an industrial robot that has multiple joints. By executing the robot control program, each joint operates in conjunction with the movement of the corresponding axis, and as a result, the robot transports or processes the workpiece. When designing the control program, the movable range of each axis was set to a predetermined value. Depending on the position and posture that the robot can take, the range of motion may excessively restrict the movement of the joints at the set predetermined values, i.e., act to restrict the movement of transporting or processing the workpiece. There was a possibility that the range was not appropriate. Therefore, it has been desired to provide an environment in which the movable range of each axis of the robot can be individually set, but the simulation of Patent Document 1 does not provide such an environment.

本開示は、軸毎に設定された可動範囲に基づき、機器の挙動をシミュレーションできる構成を提供することを1つの目的とする。 One object of the present disclosure is to provide a configuration that can simulate the behavior of equipment based on a movable range set for each axis.

この開示にかかるシミュレーション装置は、複数の関節を有した機器の挙動を推定するシミュレーション装置であって、機器は、それぞれが当該機器の関節に対応した複数の軸を備え、各複数の軸に対応の関節は、当該軸の動きに連動して動作し、シミュレーション装置は、機器に対するダイレクトティーチングの情報であって、複数の軸のうちの1つ以上の軸の可動範囲を含む情報に基づいて、機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータと、仮想空間をビジュアル化した画像を生成する画像生成部と、を備える。 A simulation device according to this disclosure is a simulation device that estimates the behavior of a device having a plurality of joints, and the device includes a plurality of axes, each of which corresponds to a joint of the device, and each of the devices corresponds to a plurality of axes. The joints of the axis operate in conjunction with the movement of the axis, and the simulation device operates based on direct teaching information to the device, which includes the range of motion of one or more of the multiple axes. The device includes a first simulator that performs a simulation to calculate the behavior of an object placed in a virtual space corresponding to the device, and an image generation unit that generates an image that visualizes the virtual space.

上述の開示によれば、機器に対するダイレクトティーチングの情報によって軸毎に設定された可動範囲に基づき、機器の挙動をシミュレーションできる。 According to the above-mentioned disclosure, the behavior of the device can be simulated based on the movable range set for each axis based on the information of direct teaching to the device.

上述の開示において、各1つ以上の軸の可動範囲を変更する範囲変更部を、さらに備え、第1のシミュレータは、さらに、各軸の変更された前記可動範囲に基づいて、機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する。 In the above disclosure, the first simulator further includes a range changing unit that changes the movable range of each one or more axes, and the first simulator further corresponds to the device based on the changed movable range of each axis. A simulation is performed to calculate the behavior of objects placed in virtual space.

上述の開示によれば、シミュレーション装置は、ユーザーが設定した軸の可動範囲を変更しながらシミュレーションを繰り返すことができる。 According to the above disclosure, the simulation device can repeat the simulation while changing the movable range of the axis set by the user.

上述の開示において、仮想空間には、機器に対応の対象とは異なる対象が配置され、異なる対象は、機器の周辺装置に対応する対象を含み、機器に対応する対象の挙動は、当該対象の仮想空間における位置を含み、範囲変更部は、仮想空間における機器に対応の対象と異なる対象との位置間の相対的な関係が特定位置関係を示すとき、各1つ以上の軸の可動範囲を変更する。 In the above disclosure, an object different from the object corresponding to the device is arranged in the virtual space, the different object includes an object corresponding to the peripheral device of the device, and the behavior of the object corresponding to the device is based on the object. including the position in the virtual space, and the range changing unit changes the movable range of each one or more axes when the relative relationship between the positions of the object corresponding to the device and a different object in the virtual space indicates a specific positional relationship. change.

上述の開示によれば、シミュレーション装置は、仮想空間における各対象の位置間の相対的な関係が特定位置関係を示すとき、選択されている各軸の可動範囲を変更し、変更後の可動範囲に基づいてシミュレーションを再度実施できる。 According to the above disclosure, when the relative relationship between the positions of each object in the virtual space indicates a specific positional relationship, the simulation device changes the movable range of each selected axis, and changes the movable range after the change. The simulation can be performed again based on the

上述の開示において、仮想空間には、機器に対応の対象とは異なる対象が配置され、異なる対象は、機器に取付けられるケーブルに対応する仮想空間に配置された対象を含み、機器に対応する仮想空間に配置された対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された対象の挙動を算出する第2のシミュレータを、さらに備える。 In the above disclosure, an object different from an object corresponding to the device is placed in the virtual space, and the different object includes an object placed in the virtual space corresponding to a cable attached to the device, and a virtual object corresponding to the device is arranged in the virtual space. The apparatus further includes a second simulator that calculates the behavior of an object placed in the virtual space corresponding to the cable, based on the behavior of the object placed in the space, using parameters related to the attachment of the cable.

上述の開示によれば、シミュレーション装置は、機器に取付けられるケーブルに対応する仮想空間に配置された対象の挙動を、機器に対応する仮想空間に配置された対象の挙動に基づき算出できる。 According to the above disclosure, the simulation device can calculate the behavior of the object placed in the virtual space corresponding to the cable attached to the device, based on the behavior of the object placed in the virtual space corresponding to the device.

上述の開示において、シミュレーション装置は、第2のシミュレータによって算出されたケーブルに対応する対象の挙動に基づき、当該対象にかかる負荷を算出し、範囲変更部は、算出された負荷が所定条件を満たすとき、各1つ以上の軸の可動範囲を変更する。 In the above disclosure, the simulation device calculates the load applied to the target based on the behavior of the target corresponding to the cable calculated by the second simulator, and the range changing unit determines that the calculated load satisfies a predetermined condition. When changing the range of motion of each one or more axes.

上述の開示によれば、シミュレーション装置は、ケーブルに対応する対象の挙動に基づく当該対象にかかる負荷が所定条件を満たすとき、各1つ以上の軸の可動範囲を変更し、変更後の可動範囲に基づいてシミュレーションを再度実施できる。 According to the above disclosure, when the load applied to the object corresponding to the cable based on the behavior of the object satisfies a predetermined condition, the simulation device changes the movable range of each one or more axes, and changes the movable range after the change. The simulation can be performed again based on the

上述の開示において、ダイレクトティーチングの情報は、機器がとるべき位置姿勢を示す教示点に関連づけされた1つ以上の軸の可動範囲の情報を含み、第1のシミュレータは、さらに、教示点が示す位置姿勢と当該教示点に関連づけされた各1つ以上の軸の可動範囲とに基づいて、機器に対応する仮想空間に配置された対象の挙動を算出する。 In the above disclosure, the direct teaching information includes information on the movable range of one or more axes associated with the teaching point indicating the position and orientation that the device should take, and the first simulator further The behavior of the object placed in the virtual space corresponding to the device is calculated based on the position and orientation and the movable range of each one or more axes associated with the teaching point.

上述の開示によれば、教示点が示す位置姿勢と当該教示点に関連づけされた各1つ以上の軸の可動範囲とに基づいて、機器に対応する仮想空間に配置された対象の挙動をシミュレーションできる。 According to the above disclosure, the behavior of an object placed in the virtual space corresponding to the device is simulated based on the position and orientation indicated by the teaching point and the movable range of each one or more axes associated with the teaching point. can.

上述の開示において、可動範囲は、上限値および下限値を用いて示され、可動範囲を用いて機器を制御するコントローラに、第1のシミュレータが機器の挙動の算出に用いた各1つ以上の軸の可動範囲を示すデータを送信する転送部を、さらに備える。 In the above disclosure, the movable range is indicated using an upper limit value and a lower limit value, and the controller that controls the equipment using the movable range is provided with one or more of the values used by the first simulator to calculate the behavior of the equipment. The apparatus further includes a transfer unit that transmits data indicating a movable range of the axis.

上述の開示によれば、コントローラはシミュレーション装置から転送されたシミュレーション結果である各軸の適切な可動範囲に基づき、機器を制御することができる。 According to the above disclosure, the controller can control the equipment based on the appropriate movable range of each axis, which is the simulation result transferred from the simulation device.

この開示にかかるプログラムは、コンピュータに、複数の関節を有した機器の挙動を推定する方法を実行させるためのプログラムであって、機器は、それぞれが当該機器の関節に対応した複数の軸を備え、各複数の軸に対応の関節は、当該軸の動きに連動して動作し、方法は、機器に対するダイレクトティーチングの情報であって、複数の軸のうちから1つ以上の軸の可動範囲を含む情報に基づいて、機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップと、仮想空間をビジュアル化した画像を生成するステップと、を備える。 A program according to this disclosure is a program for causing a computer to execute a method for estimating the behavior of a device having a plurality of joints, the device having a plurality of axes each corresponding to a joint of the device. , the joints corresponding to each of the plurality of axes move in conjunction with the movement of the axis, and the method is information for direct teaching to the device, and the method includes direct teaching information for the device to determine the range of motion of one or more axes from among the plurality of axes. The method includes the steps of performing a simulation to calculate the behavior of an object placed in a virtual space corresponding to the device based on the included information, and generating an image visualizing the virtual space.

上述の開示によれば、プログラムが実行されると、機器に対するダイレクトティーチングの情報によって軸毎に設定された可動範囲に基づき、機器の挙動をシミュレーションできる。 According to the above-mentioned disclosure, when the program is executed, the behavior of the device can be simulated based on the movable range set for each axis based on the information of direct teaching to the device.

本開示によれば、軸毎に設定された可動範囲に基づき、機器の挙動をシミュレーションする構成を提供できる。 According to the present disclosure, it is possible to provide a configuration that simulates the behavior of a device based on a movable range set for each axis.

本実施の形態に係るシミュレーション装置1の適用例を示す模式図である。FIG. 1 is a schematic diagram showing an application example of the simulation device 1 according to the present embodiment. 本実施の形態にかかる生産ラインにおけるロボットと周辺装置の一例を模式的に示す図である。FIG. 1 is a diagram schematically showing an example of a robot and peripheral devices in a production line according to the present embodiment. 本実施の形態にかかるシミュレーション装置1を実現するためのハードウェア構成の一例を示す模式図である。FIG. 1 is a schematic diagram showing an example of a hardware configuration for realizing a simulation device 1 according to the present embodiment. 本実施の形態にかかるシミュレーション装置1を実現するための機能構成の一例を示す模式図である。FIG. 1 is a schematic diagram showing an example of a functional configuration for realizing a simulation device 1 according to the present embodiment. 実施の形態にかかるロボット30の各軸の可動範囲の一例を模式的に示す図である。FIG. 3 is a diagram schematically showing an example of the movable range of each axis of the robot 30 according to the embodiment. 実施の形態にかかる教示点データ184と位置姿勢データ187の一例を示す図である。7 is a diagram showing an example of teaching point data 184 and position/orientation data 187 according to the embodiment. FIG. 実施の形態にかかる可動範囲を設定するためのUIの画面の一例を模式的に示す図である。FIG. 3 is a diagram schematically showing an example of a UI screen for setting a movable range according to an embodiment. 実施の形態にかかる可動範囲データ185の一例を模式的に示す図である。FIG. 3 is a diagram schematically showing an example of movable range data 185 according to the embodiment. 実施の形態にかかる確認項目データ186の一例を模式的に示す図である。FIG. 3 is a diagram schematically showing an example of confirmation item data 186 according to the embodiment. 実施の形態にかかるシミュレーション装置1において実行される処理のフローチャートの一例を示す図である。FIG. 3 is a diagram showing an example of a flowchart of processing executed in the simulation device 1 according to the embodiment. 実施の形態にかかるシミュレーション装置1において実行される処理のフローチャートの一例を示す図である。FIG. 3 is a diagram showing an example of a flowchart of processing executed in the simulation device 1 according to the embodiment. 実施の形態にかかるシミュレーションの態様を模式的に示す図である。FIG. 2 is a diagram schematically showing an aspect of simulation according to an embodiment. 実施の形態にかかるシミュレーションの態様を模式的に示す図である。FIG. 2 is a diagram schematically showing an aspect of simulation according to an embodiment. 実施の形態にかかる可動範囲の変更の一例を模式的に示す図である。It is a figure which shows typically an example of the change of the movable range concerning embodiment. 実施の形態にかかるシミュレーション結果の表示の一例を示す図である。FIG. 3 is a diagram illustrating an example of displaying simulation results according to the embodiment. 図15の領域1200において表示される他の画像の一例を示す図である。16 is a diagram showing an example of another image displayed in area 1200 of FIG. 15. FIG. 実施の形態にかかるティーチングペンダントの構成を模式的に示す図である。FIG. 1 is a diagram schematically showing the configuration of a teaching pendant according to an embodiment. 実施の形態にかかるダイレクトティーチングのシーンを模式的に示す図である。FIG. 3 is a diagram schematically showing a direct teaching scene according to the embodiment. 実施の形態にかかるダイレクトティーチングの処理手順を示すフローチャートである。It is a flowchart which shows the processing procedure of direct teaching concerning embodiment. 実施の形態にかかる位置姿勢データ187の取得の処理手順を示すフローチャートである。7 is a flowchart illustrating a processing procedure for acquiring position and orientation data 187 according to the embodiment. 実施の形態にかかるPLC200のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing an example of a hardware configuration of a PLC 200 according to an embodiment. 実施の形態にかかるデータ転送の一例を模式的に示す図である。FIG. 3 is a diagram schematically showing an example of data transfer according to the embodiment.

以下に、図面を参照しつつ、各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。 Each embodiment will be described below with reference to the drawings. In the following description, the same parts and components are given the same reference numerals. Their names and functions are also the same. Therefore, detailed explanations thereof will not be repeated.

<A.適用例>
まず、本発明が適用される場面の一例について説明する。本実施の形態に係るシミュレーション装置1は、典型的には、ワークを搬送または加工する機器の一例であるロボットの動作を制御するアプリケーションに適用可能である。また、シミュレーション装置1は、ロボットと、ワークの搬送または加工に関連して動作する1つ以上の機器とを備えるシステムについても総合的に機器の挙動をシミュレーションできる。
<A. Application example>
First, an example of a scene to which the present invention is applied will be described. The simulation device 1 according to the present embodiment is typically applicable to an application that controls the operation of a robot, which is an example of a device that transports or processes a workpiece. Furthermore, the simulation device 1 can comprehensively simulate the behavior of equipment for a system that includes a robot and one or more equipment that operates in connection with transporting or processing a workpiece.

この実施の形態では、機器の一例であるロボットは、複数の関節と、各関節に対応した軸とを備える。各関節は、対応する軸の動きに連動して動作する。 In this embodiment, a robot, which is an example of a device, includes a plurality of joints and an axis corresponding to each joint. Each joint operates in conjunction with the movement of the corresponding axis.

また、ロボットの動作のうち、シミュレーションの対象となる動作として、例えばワークの搬送を説明する。搬送の一例として「ピックアンドプレース」を説明する。「ピックアンドプレース」は、搬送されるワークが所定のトラッキングエリアまで到達すると、トラッキングエリア内のワークをロボットで把持して、所定エリアまで搬送し、所定エリアにワークを配置するという、ロボットによる把持・搬送・配置の一連の動作を表す。搬送には、ロボットのアームの先端に装着される「エンドエフェクタ」に相当するロボットハンドが利用される。シミュレーションの対象となるロボットのアプリケーションは、ワークの搬送に限定されず、ワークの組立てまたは加工を実施するアプリケーションであってもよい。 Furthermore, among the robot's movements, transport of a workpiece, for example, will be explained as a movement to be simulated. "Pick and place" will be explained as an example of transportation. "Pick and place" is a robot-based gripping system in which when the transported workpiece reaches a predetermined tracking area, the robot grasps the workpiece within the tracking area, transports it to the predetermined area, and places the workpiece in the predetermined area.・Represents a series of transportation and placement operations. For transportation, a robot hand equivalent to an "end effector" attached to the tip of a robot arm is used. The robot application to be simulated is not limited to transporting a workpiece, but may be an application for assembling or processing a workpiece.

この実施の形態では、「教示点」はロボットがとるべき挙動を表す位置姿勢を示す。例えば、ロボットは、ピックアンドプレースの目標軌道に対応して設定された複数の教示点に従って、位置姿勢を順次変化させることによって、ワークを目標軌道に沿って搬送することができる。 In this embodiment, the "teaching point" indicates a position and orientation representing the behavior that the robot should take. For example, a robot can transport a workpiece along a target trajectory by sequentially changing its position and orientation according to a plurality of teaching points set corresponding to a target trajectory for pick-and-place.

図1は、本実施の形態に係るシミュレーション装置1の適用例を示す模式図である。図1を参照して、シミュレーション装置1は、仮想空間および仮想空間に配置されたオブジェクトを規定する仮想空間情報105を含む。仮想空間における各オブジェクトの挙動が算出されることで、仮想空間情報105の内容は適宜更新される。 FIG. 1 is a schematic diagram showing an example of application of the simulation device 1 according to the present embodiment. Referring to FIG. 1, simulation device 1 includes virtual space information 105 that defines a virtual space and objects placed in the virtual space. By calculating the behavior of each object in the virtual space, the contents of the virtual space information 105 are updated as appropriate.

シミュレーション装置1は、シミュレーションのためのデータ群180を用いてシミュレーションを実施する。データ群180は、教示点データ184、1以上の教示点のそれぞれに対応して設定される可動範囲データ185、シミュレーションの結果において確認すべき項目を示す確認項目データ186、および位置姿勢データ187を含む。教示点データ184は、複数の教示点を示す。教示点データ184は、例えば、ピックアンドプレースの目標軌道に対応する複数の教示点を示す。可動範囲データ185は、1つ以上の軸のそれぞれに対応して設定された当該軸の可動範囲を示す。位置姿勢データ187は、生産ラインにおいてロボットの周辺に配置される周辺装置と、ケーブルと、ワークとの挙動を表す位置姿勢を示す。周辺装置は、例えば、ワーク搬送のコンベア、ワークを収容するトレイ、各種センサなどを含むが、これらに限定されない。 The simulation device 1 performs a simulation using a data group 180 for simulation. The data group 180 includes teaching point data 184, movable range data 185 set corresponding to each of one or more teaching points, confirmation item data 186 indicating items to be confirmed in the simulation results, and position/orientation data 187. include. The teaching point data 184 indicates a plurality of teaching points. The teaching point data 184 indicates, for example, a plurality of teaching points corresponding to the target trajectory of pick and place. The movable range data 185 indicates the movable range of one or more axes, which is set corresponding to each of the axes. The position/orientation data 187 indicates the position/orientation representing the behavior of peripheral devices, cables, and workpieces arranged around the robot on the production line. Examples of peripheral devices include, but are not limited to, a conveyor for transporting a workpiece, a tray for accommodating a workpiece, and various sensors.

シミュレーション装置1は、データ群180の教示点データ184および可動範囲データ185を、ダイレクトティーチング情報330を用いて設定する。ダイレクトティーチング情報330は、ロボットに対するダイレクトティーチングの情報であって、ダイレクトティーチングの情報はロボットが有する複数の軸から1つ以上の軸の可動範囲を含んでいる。ダイレクトティーチング情報330は、さらに、ロボットがとるべき位置姿勢を示す教示点に関連づけされた1つ以上の軸の可動範囲の情報を含んでもよい。 The simulation device 1 sets the teaching point data 184 and the movable range data 185 of the data group 180 using the direct teaching information 330. The direct teaching information 330 is direct teaching information for the robot, and the direct teaching information includes a movable range of one or more axes among the plurality of axes that the robot has. The direct teaching information 330 may further include information on the movable range of one or more axes associated with the teaching point indicating the position and orientation that the robot should take.

シミュレーション装置1は、仮想空間に配置されたワークを搬送するロボットの挙動を算出するロボットシミュレータ160を含む。ロボットシミュレータ160は、「第1のシミュレータ」の一実施例である。シミュレーション装置1は、仮想空間をビジュアル化した画像を生成するビジュアライザ164を含む。ビジュアライザ164は、「画像生成部」の一実施例である。 The simulation device 1 includes a robot simulator 160 that calculates the behavior of a robot that transports a workpiece placed in a virtual space. Robot simulator 160 is an example of a "first simulator." The simulation device 1 includes a visualizer 164 that generates an image that visualizes a virtual space. The visualizer 164 is an example of an "image generation unit".

ロボットシミュレータ160は、可動範囲データ185に基づいて、仮想空間におけるロボットに対応の対象(以下、オブジェクトと呼ぶ)の挙動を算出するシミュレーションを実施する。より特定的には、ロボットシミュレータ160は、教示点が示す位置姿勢と当該教示点に対応の1つ以上の軸それぞれの可動範囲とに基づいて、ロボットに対応する仮想空間に配置されたオブジェクトの挙動を算出する。ロボットシミュレータ160により算出される挙動の情報は、仮想空間情報105に反映される。本実施の形態では、仮想空間情報105に情報を反映するとは、仮想空間情報105を当該情報を記述することにより、仮想空間情報105を更新することを意味する。 The robot simulator 160 performs a simulation to calculate the behavior of a target (hereinafter referred to as an object) corresponding to the robot in the virtual space based on the movable range data 185. More specifically, the robot simulator 160 calculates the position and orientation of the object placed in the virtual space corresponding to the robot based on the position and orientation indicated by the teaching point and the movable range of each of one or more axes corresponding to the teaching point. Calculate behavior. Behavior information calculated by the robot simulator 160 is reflected in the virtual space information 105. In this embodiment, reflecting information in the virtual space information 105 means updating the virtual space information 105 by writing the information in the virtual space information 105.

上記の可動範囲は、上限値および下限値を用いて示される。シミュレーション装置1は、可動範囲を用いてロボットを制御するプログラマブルロジックコントローラ200(以下、PLC200と呼ぶ)に、ロボットシミュレータ160がロボット30の挙動の算出に用いた各1つ以上の軸の可動範囲を示すデータを送信する転送ツール400を備える。転送ツール400は、「転送部」の一実施例である。 The above movable range is indicated using an upper limit value and a lower limit value. The simulation device 1 transmits the movable range of each one or more axes used by the robot simulator 160 to calculate the behavior of the robot 30 to a programmable logic controller 200 (hereinafter referred to as PLC 200) that controls the robot using the movable range. A transfer tool 400 that transmits data shown is provided. Transfer tool 400 is an example of a "transfer unit."

PLC200は、ロボットシミュレータ160がシミュレーションに用いた各1つ以上の軸の可動範囲を示すデータを受信し、受信したデータを用いて、ロボットを制御する。これにより、PLC200は、シミュレーションで挙動の算出に用いた各1つ以上の軸の動きが、受信データが示す可動範囲の上限値および下限値を超えない範囲となるように、ロボットを制御することができる。 The PLC 200 receives data indicating the movable range of each one or more axes used in the simulation by the robot simulator 160, and controls the robot using the received data. As a result, the PLC 200 controls the robot so that the movement of each one or more axes used to calculate behavior in the simulation does not exceed the upper and lower limits of the movable range indicated by the received data. Can be done.

ビジュアライザ164は、仮想空間情報105をビジュアル化した画像を生成し、出力する。 The visualizer 164 generates and outputs an image that visualizes the virtual space information 105.

これらのコンポーネントおよびモジュールが互いに連携することで、現実のロボットが存在しなくても、現実のロボットがワークを搬送したときに生じるであろうロボットの挙動を正確に算出、すなわち推定できる。また、この算出は、ダイレクトティーチング情報330が示す1つ以上の軸の可動範囲に基づいて実施される。これにより、シミュレーション装置1は、ダイレクトティーチングによって設定された各軸の可動範囲に基づき、機器の挙動をシミュレーションできる環境を提供する。 By cooperating with each other, these components and modules make it possible to accurately calculate, or estimate, the behavior of a robot that would occur when a real robot transports a workpiece, even if no real robot exists. Further, this calculation is performed based on the movable range of one or more axes indicated by the direct teaching information 330. Thereby, the simulation device 1 provides an environment in which the behavior of the device can be simulated based on the movable range of each axis set by direct teaching.

以下、この実施の形態のより具体的な応用例について説明する。
<B.制御システムの例>
図2は、本実施の形態にかかる生産ラインにおけるロボットと周辺装置の一例を模式的に示す図である。シミュレーション装置1は、FAの生産ラインに備えられる制御システム2のプログラマブルロジックコントローラ200(以下、PLC200と呼ぶ)が制御する実機であるロボット30を含む機器の挙動を算出することが可能なように構成される。図2を参照して、シミュレーション装置1は、たとえば、据え置き型のPC(Personal Computer)、または携帯型のタブレット端末などを含む汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100は、所定のプログラムを実行することにより、ロボット30を含む機器の挙動を算出するシミュレーションを実施する。情報処理装置100は、ユーザーが制御システム2を運用するのを支援するための支援ツールを提供する。支援ツールは、シミュレーションの実行環境、制御システム2のための制御プログラムの設計および実行のための環境、および制御システム2の通信環境等を準備するための設定ツールを含む。これらの支援ツールは、例えばUI(User Interface)によってユーザーに提供される。
A more specific application example of this embodiment will be described below.
<B. Example of control system>
FIG. 2 is a diagram schematically showing an example of a robot and peripheral devices in a production line according to the present embodiment. The simulation device 1 is configured to be able to calculate the behavior of devices including a robot 30 that is an actual device controlled by a programmable logic controller 200 (hereinafter referred to as PLC 200) of a control system 2 provided in an FA production line. be done. Referring to FIG. 2, the simulation device 1 can be implemented in an information processing device 100 configured with a general-purpose computer including, for example, a stationary PC (Personal Computer) or a portable tablet terminal. The device 100 executes a simulation to calculate the behavior of equipment including the robot 30 by executing a predetermined program. The information processing device 100 provides support tools to assist the user in operating the control system 2. The support tools include a simulation execution environment, an environment for designing and executing a control program for the control system 2, a setting tool for preparing a communication environment for the control system 2, and the like. These support tools are provided to the user by, for example, a UI (User Interface).

図2では、情報処理装置100は、PLC200に通信可能に接続されているが、PLC200と接続されない態様で、シミュレーションを実施することもできる。 In FIG. 2, the information processing device 100 is communicably connected to the PLC 200, but the simulation can also be performed without being connected to the PLC 200.

図2を参照して、制御システム2は、PLC200、ロボットコントローラ310、サーボモータドライバ531,532および視覚センサ340を含む。PLC200、ロボットコントローラ310およびサーボモータドライバ531,532は、フィールドネットワーク22を介してデイジーチェーンで接続されている。フィールドネットワーク22には、たとえば、EtherCAT(登録商標)が採用される。但し、フィールドネットワーク22は、EtherCATに限定されない。PLC200には、ネットワークを介して情報処理装置100が接続され得る。このネットワークには、有線または無線の任意の通信手段が採用され得る。PLC200および情報処理装置100は、例えばUSB(Universal Serial Bus)に従い通信する。 Referring to FIG. 2, control system 2 includes PLC 200, robot controller 310, servo motor drivers 531, 532, and visual sensor 340. PLC 200, robot controller 310, and servo motor drivers 531, 532 are connected in a daisy chain via field network 22. For example, EtherCAT (registered trademark) is adopted as the field network 22. However, the field network 22 is not limited to EtherCAT. The information processing device 100 may be connected to the PLC 200 via a network. This network may employ any communication means, wired or wireless. PLC 200 and information processing device 100 communicate, for example, according to USB (Universal Serial Bus).

PLC200は、設計された制御プログラムをフィールドネットワーク22からのセンサの出力値などを含むフィールド値に基づき実行し、実行の結果に従ってロボットコントローラ310またはサーボモータドライバ531,532に対して、それぞれ目標起動に従う目標値を与えることで、ロボット30およびコンベア230の搬送に関連する機器などを制御する。 The PLC 200 executes the designed control program based on field values including sensor output values from the field network 22, and instructs the robot controller 310 or servo motor drivers 531 and 532 to activate each target according to the execution results. By giving the target value, the robot 30 and equipment related to conveyance by the conveyor 230 are controlled.

サーボモータドライバ531,532は、コンベア230のサーボモータ41,42を駆動する。サーボモータ41,42の回転軸にはエンコーダ236,238が配置されている。当該エンコーダは、サーボモータ41,42のフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などをPLC200へ出力する。 Servo motor drivers 531 and 532 drive servo motors 41 and 42 of conveyor 230. Encoders 236 and 238 are arranged on the rotating shafts of the servo motors 41 and 42. The encoder outputs the position (rotation angle), rotation speed, cumulative rotation number, etc. of the servo motors to the PLC 200 as feedback values of the servo motors 41 and 42.

ロボット30とコンベア230は、相互に連携しながらワーク232を移動させる。なお、ここでは説明を簡単にするために、ワーク232の移動を説明するが、移動に限定されない。例えば、ロボット30は、コンベア230上のトレイ9に載置されたワーク232を加工し、加工後のワーク232をピックアンドプレースによって搬送してもよい。 The robot 30 and the conveyor 230 move the workpiece 232 while cooperating with each other. Although the movement of the workpiece 232 will be described here to simplify the explanation, it is not limited to movement. For example, the robot 30 may process the workpiece 232 placed on the tray 9 on the conveyor 230, and may transport the processed workpiece 232 by pick and place.

この実施の形態では、図2のように、多関節型のロボット30の一例として、垂直多関節型ロボットが示されるが、多関節型であればよく垂直多関節型に限定されない。図2では、ロボット30の各関節に対応の軸(図示しない)を動かすための関節1300,1301,1302,1303,1304,1305に備えられるモータM(以下、各関節のモータMを「ロボットサーボモータ」とも総称する。)と、ロボットサーボモータを駆動するロボットコントローラ310を例示する。同様に、コンベア230のドライブ装置の一例として、コンベア230に設けられるサーボモータ41,42を駆動するサーボモータドライバ531,532を例示する。 In this embodiment, as shown in FIG. 2, a vertical multi-joint robot is shown as an example of the multi-joint robot 30, but the robot is not limited to the vertical multi-joint type. In FIG. 2, motors M (hereinafter referred to as "robot servo motors") are provided at joints 1300, 1301, 1302, 1303, 1304, and 1305 for moving axes (not shown) corresponding to each joint of the robot 30. A robot controller 310 that drives a robot servo motor and a robot servo motor are illustrated. Similarly, as an example of a drive device for the conveyor 230, servo motor drivers 531 and 532 that drive the servo motors 41 and 42 provided on the conveyor 230 are illustrated.

ロボットコントローラ310は、PLC200からの目標値の指令に従い、ロボット30のロボットサーボモータを駆動する。各ロボットサーボモータの回転軸には、対応の関節の軸が連接される。また、各ロボットサーボモータの回転軸にはエンコーダ(図示しない)が配置されている。当該エンコーダは、ロボットサーボモータのフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などの回転量をロボットコントローラ310へ出力する。ロボットコントローラ310は、ロボット30からの、回転量を示すフィールド値を、上記の指令に対する応答としてPLC200に送信する。PLC200は、フィールド値を受信し、受信したフィールド値に基づき制御プログラムを実行し、実行結果に基づく目標値を示す指令をロボットコントローラ310に送信する。 The robot controller 310 drives the robot servo motor of the robot 30 according to the target value command from the PLC 200. The axis of the corresponding joint is connected to the rotation axis of each robot servo motor. Furthermore, an encoder (not shown) is arranged on the rotation axis of each robot servo motor. The encoder outputs the amount of rotation such as the position (rotation angle), rotation speed, and cumulative number of rotations of the servo motor to the robot controller 310 as a feedback value of the robot servo motor. The robot controller 310 transmits a field value indicating the amount of rotation from the robot 30 to the PLC 200 as a response to the above command. PLC 200 receives field values, executes a control program based on the received field values, and transmits a command indicating a target value based on the execution result to robot controller 310.

ロボットコントローラ310には、ロボット30に対するダイレクトティーチングを実施するためのティーチングペンダント300が接続可能である。 A teaching pendant 300 for directly teaching the robot 30 can be connected to the robot controller 310 .

サーボモータドライバ531,532は、PLC200からの指令に従い、対応するサーボモータ41,42を駆動する。制御システム2は、さらに、コンベア230に関連して光電センサ6および開閉可能なストッパ8を備える。光電センサ6は、コンベア230の搬送面上に備えられるトレイ9が所定のワークトラッキングエリアの前に到達したことを検出し、検出値をPLC200に送信する。ストッパ8は、指令に従い、トラッキングエリア内に到達したトレイ9を停止(固定)させるように閉動作する。 Servo motor drivers 531 and 532 drive corresponding servo motors 41 and 42 according to commands from PLC 200. The control system 2 further includes a photoelectric sensor 6 and a stopper 8 that can be opened and closed in relation to the conveyor 230. The photoelectric sensor 6 detects that the tray 9 provided on the conveyance surface of the conveyor 230 has arrived in front of a predetermined workpiece tracking area, and transmits the detected value to the PLC 200. The stopper 8 closes in accordance with the command so as to stop (fix) the tray 9 that has reached the tracking area.

ロボット30は、コネクタ7を介して、工程に応じた種類のロボットハンド210が脱着自在に装着される。ロボットハンド210の種類は、例えば平行ハンド、多指ハンド、多指関節ハンドなどを含むが、これら限定されず、例えば吸着式によりワーク232を保持する種類も含み得る。 A robot hand 210 of a type depending on the process is detachably attached to the robot 30 via the connector 7 . Types of the robot hand 210 include, for example, a parallel hand, a multi-finger hand, a multi-finger joint hand, etc., but are not limited to these, and may also include a type that holds the workpiece 232 by suction, for example.

ロボット30は、ロボットコントローラ310を介して受信するPLC200からの指令値に従い、ピックアンドプレースを実施する。具体的には、ロボット30は、コンベア230上のトレイ9に載置されたワーク232をロボットハンド210によりピックし、ピックしたまま所定位置のトレイ55までワーク232を移動させてトレイ55上にワーク232を置く(プレースする)。ロボットハンド210は、指令に従い、ワーク232をピックまたはプレースするためのハンドの開閉動作が制御される。 The robot 30 performs pick and place according to command values received from the PLC 200 via the robot controller 310. Specifically, the robot 30 picks up the workpiece 232 placed on the tray 9 on the conveyor 230 with the robot hand 210, moves the workpiece 232 to the tray 55 at a predetermined position while picking, and places the workpiece on the tray 55. Place 232. The opening/closing operation of the robot hand 210 for picking or placing the workpiece 232 is controlled according to the command.

シミュレーション装置1は、ロボット30の挙動を算出するシミュレーションプログラムと、ロボット30の外部表面に取り付けられる電力または信号を伝送するケーブル341の挙動を算出するシミュレーションプログラムとを実行する。 The simulation device 1 executes a simulation program that calculates the behavior of the robot 30 and a simulation program that calculates the behavior of the cable 341 that is attached to the external surface of the robot 30 and transmits power or signals.

情報処理装置100は、制御プログラムを、このようなシミュレーションの結果を用いて設計することができる。情報処理装置100によって設計された制御プログラムは、PLC200に送信(またはダウンロード)される。 The information processing device 100 can design a control program using the results of such simulation. A control program designed by the information processing device 100 is transmitted (or downloaded) to the PLC 200.

視覚センサ340は、撮像部350を接続する。撮像部350は、例えば、カメラであって、生産ラインに備えられるロボット30を含む機械、その周辺装置を含む設備およびワーク232などの被写体を撮像する。視覚センサ340は、撮像部350によって撮像された画像を処理するための画像処理部(図示せず)を備え、画像処理部は処理された画像351を出力する。画像351は、立体画像を含み得る。視覚センサ340と撮像部350は一体的に構成されてもよい。 Visual sensor 340 is connected to imaging section 350 . The imaging unit 350 is, for example, a camera, and images objects such as a machine including the robot 30 provided on the production line, equipment including its peripheral devices, and the workpiece 232. The visual sensor 340 includes an image processing section (not shown) for processing the image captured by the imaging section 350, and the image processing section outputs a processed image 351. Image 351 may include a stereoscopic image. The visual sensor 340 and the imaging unit 350 may be integrally configured.

ここでは、ロボット30の周辺装置は、図2に示されるような、光電センサ6、ストッパ8、トレイ9、トレイ55、コンベア230などを含む。 Here, peripheral devices of the robot 30 include a photoelectric sensor 6, a stopper 8, a tray 9, a tray 55, a conveyor 230, etc. as shown in FIG.

<C.制御と仮想空間の位置>
図2を参照して、ロボット30の制御と仮想空間の挙動について説明する。
<C. Control and virtual space position>
The control of the robot 30 and the behavior of the virtual space will be explained with reference to FIG.

ロボット30は、関節1300~1305のロボットサーボモータそれぞれに連接される軸の動きに連動して、これら関節が動作する。各関節に繋がるアーム306は、軸の動きに連動して3次元の方向に位置姿勢を変更する。このような各アーム306の動作により、ロボット30の挙動が実現される。 In the robot 30, the joints 1300 to 1305 operate in conjunction with the movement of axes connected to each of the robot servo motors. The arm 306 connected to each joint changes its position and orientation in three-dimensional directions in conjunction with the movement of the axis. The behavior of the robot 30 is realized by such movements of each arm 306.

同様に、コンベア230も、サーボモータ41,42が回転することでコンベア230および搬送面上のトレイ9が移動する。この移動量(移動の速度、向き、距離など)は、サーボモータ41,42の回転量(回転の向き、角度)により決まる。このようなサーボモータ41,42の駆動により、コンベア230およびトレイ9などの機器の挙動が実現される。 Similarly, in the conveyor 230, the servo motors 41 and 42 rotate, thereby moving the conveyor 230 and the tray 9 on the conveying surface. The amount of movement (speed, direction, distance, etc. of movement) is determined by the amount of rotation (direction of rotation, angle) of the servo motors 41, 42. By driving the servo motors 41 and 42 in this manner, the behavior of devices such as the conveyor 230 and the tray 9 is realized.

PLC200は、ロボット30の各軸の回転量を時系列に変化する目標値に従い制御し、これにより、各関節に繋がるアーム306の移動の速度と移動に伴う位置姿勢の変化である軌道とは、目標値に従う速度および軌道となるように変化する。 The PLC 200 controls the amount of rotation of each axis of the robot 30 according to a target value that changes over time, and thereby the trajectory, which is the speed of movement of the arm 306 connected to each joint and the change in position and orientation associated with the movement, is The speed and trajectory change according to the target value.

ロボット30の目標値は、例えばPLC200に予め格納されている。ロボットコントローラ310は、PLC200から目標値を示す指令を受信し、受信指令が示す目標値に基づき各ロボットサーボモータの回転量を決定し、決定した回転量を指示する指令(電圧、または電流の信号)を、各ロボットサーボモータに対し出力する。 The target value of the robot 30 is stored in the PLC 200 in advance, for example. The robot controller 310 receives a command indicating a target value from the PLC 200, determines the rotation amount of each robot servo motor based on the target value indicated by the received command, and sends a command (voltage or current signal) instructing the determined rotation amount. ) is output to each robot servo motor.

(c1.仮想空間の座標系)
本実施の形態にかかるロボット30の関節1300~1305のそれぞれに繋がるアーム306の3次元の仮想空間における位置姿勢を算出する過程の一例を説明する。本実施の形態のシミュレーションでは、ロボットハンド210と、先端のアーム306とは一体化された剛体として扱われる。また、本実施の形態では、3次元の仮想空間における座標系として、ロボット30およびPLC200などが共有するX軸、Y軸およびZ軸で規定されるワールド座標系を例示する。
(c1. Coordinate system of virtual space)
An example of the process of calculating the position and orientation in a three-dimensional virtual space of the arm 306 connected to each of the joints 1300 to 1305 of the robot 30 according to the present embodiment will be described. In the simulation of this embodiment, the robot hand 210 and the arm 306 at the tip are treated as an integrated rigid body. Furthermore, in this embodiment, a world coordinate system defined by an X-axis, a Y-axis, and a Z-axis shared by the robot 30, the PLC 200, and the like is exemplified as a coordinate system in a three-dimensional virtual space.

シミュレーション装置1は、ワールド座標系におけるロボット30に対応のオブジェクトの挙動、すなわち各アーム306に対応のオブジェクトの位置姿勢を算出する際に、例えば、関節1300~1305のサーボモータの回転量を、それぞれ、A、B、C、D、E、Fとして扱う。シミュレーション装置1は、サーボモータの回転量(A、B、C、D、E、F)に対して、所定関数を用いた演算を施す。これにより、シミュレーション装置1は、先端の関節1300に繋がるアーム306の仮想空間における位置姿勢を示す値PA(x,y,z,xα,yβ,zγ)を算出する。シミュレーション装置1は、関節1301~1305それぞれに繋がるアーム306についても、上記と同様の演算により、位置姿勢を示す値PA(x,y,z,xα,yβ,zγ)を算出する。これにより、シミュレーション装置1は、ロボット30の各アーム306に対応するオブジェクトの仮想空間における挙動、すなわちロボット30に対応するオブジェクトの挙動を算出することができる。上記に述べた挙動を示す値PA(x,y,z,xα,yβ,zγ)は、位置として仮想空間における座標値(x,y,z)と、姿勢としてX軸、Y軸およびZ軸についての加速度成分であるロール角α、ピッチ角βおよびヨー角γの値(xα,yβ,zγ)との組合せで示される。 When calculating the behavior of the object corresponding to the robot 30 in the world coordinate system, that is, the position and orientation of the object corresponding to each arm 306, the simulation device 1 calculates, for example, the amount of rotation of the servo motors of the joints 1300 to 1305, respectively. , A, B, C, D, E, F. The simulation device 1 performs calculations using a predetermined function on the rotation amounts (A, B, C, D, E, F) of the servo motors. Thereby, the simulation device 1 calculates a value PA (x, y, z, xα, yβ, zγ) indicating the position and orientation of the arm 306 connected to the joint 1300 at the tip in the virtual space. The simulation device 1 calculates values PA (x, y, z, xα, yβ, zγ) indicating the position and orientation of the arms 306 connected to each of the joints 1301 to 1305 by the same calculation as above. Thereby, the simulation device 1 can calculate the behavior in the virtual space of the object corresponding to each arm 306 of the robot 30, that is, the behavior of the object corresponding to the robot 30. The values PA (x, y, z, xα, yβ, zγ) indicating the behavior described above are the coordinate values (x, y, z) in virtual space as the position, and the X, Y, and Z axes as the posture. It is expressed in combination with the values (xα, yβ, zγ) of roll angle α, pitch angle β, and yaw angle γ, which are acceleration components for .

シミュレーション装置1は、ロボット30に対応するオブジェクトの仮想空間における挙動(位置姿勢)を算出し、算出された挙動を仮想空間情報105に反映する。 The simulation device 1 calculates the behavior (position and orientation) of the object corresponding to the robot 30 in the virtual space, and reflects the calculated behavior in the virtual space information 105.

<D.制御システムの全体構成>
次に、本実施の形態にかかるシミュレーション装置1のハードウェア構成の一例について説明する。
<D. Overall configuration of control system>
Next, an example of the hardware configuration of the simulation device 1 according to the present embodiment will be described.

図3は、本実施の形態にかかるシミュレーション装置1を実現するためのハードウェア構成の一例を示す模式図である。本実施の形態では、シミュレーション装置1は、図3に示すような情報処理装置100に実装され得る。具体的には、情報処理装置100のプロセッサ102が必要なプログラムを実行することでシミュレーション装置1が実現される。 FIG. 3 is a schematic diagram showing an example of a hardware configuration for realizing the simulation device 1 according to the present embodiment. In this embodiment, the simulation device 1 can be implemented in an information processing device 100 as shown in FIG. 3. Specifically, the simulation device 1 is realized by the processor 102 of the information processing device 100 executing a necessary program.

情報処理装置100は、主たるコンポーネントとして、OS(Operating System)および後述するような各種プログラムを実行するプロセッサ102と、プログラムを実行するために必要なデータを格納する領域および作業領域を提供する主メモリ103と、キーボードやマウスなどのユーザ操作を受付ける「操作受付部」を構成する操作ユニット107と、ディスプレイ109、各種インジケータ、プリンタなどの出力ユニット111と、PLC200と通信するためのネットワークを含む各種ネットワークに接続されるネットワークインターフェイス110と、光学ドライブ113と、外部装置と通信するローカル通信インターフェイス116と、ストレージ120とを含む。これらのコンポーネントは、内部バス118などを介して相互にデータ通信可能に接続される。 The information processing device 100 includes, as main components, an OS (Operating System), a processor 102 that executes various programs as described below, and a main memory that provides an area for storing data and a work area necessary for executing the programs. 103, an operation unit 107 that constitutes an "operation reception section" that accepts user operations such as a keyboard and mouse, a display 109, various indicators, an output unit 111 such as a printer, and various networks including a network for communicating with the PLC 200. , an optical drive 113 , a local communication interface 116 for communicating with external devices, and a storage 120 . These components are connected to each other via an internal bus 118 or the like to enable data communication.

情報処理装置100は、光学ドライブ113によって、コンピュータ読取可能なプログラムを非一時的に格納する光学記憶媒体(例えば、DVD(Digital Versatile Disc)など)を含むコンピュータ読取可能な記憶媒体114から、各種プログラムまたはデータを読取ってストレージ120などにインストールする。 The information processing device 100 uses an optical drive 113 to load various programs from a computer-readable storage medium 114 including an optical storage medium (for example, a DVD (Digital Versatile Disc)) that stores computer-readable programs non-temporarily. Alternatively, the data is read and installed in the storage 120 or the like.

情報処理装置100で実行される各種プログラムまたはデータは、コンピュータ読取可能な記憶媒体114を介してインストールされてもよいが、ネットワーク上の図示しないサーバ装置などからネットワークインターフェイス110を介してダウンロードする態様でインストールされてもよい。 Various programs or data executed by the information processing device 100 may be installed via the computer-readable storage medium 114, but may also be downloaded via the network interface 110 from a server device (not shown) on the network. May be installed.

ストレージ120は、例えば、HDD(Hard Disk Drive)またはSSD(Flash Solid State Drive)などで構成され、プロセッサ102で実行されるプログラムを格納する。具体的には、ストレージ120は、本実施の形態にかかるシミュレーションを実現するためのシミュレーションプログラムとして、物理シミュレーションプログラム122と、周辺情報設定プログラム125と、位置姿勢取得プログラム127と、範囲変更プログラム128と、ロボットシミュレーションプログラム130と、転送プログラム134と、統合プログラム136とを格納する。また、ストレージ120は、シミュレーションの結果を出力するために画像処理プログラム133と、シミュレーションの結果を評価するための評価プログラム135とを含む。また、ストレージ120は、シミュレーションのためのデータとして、物理シミュレーションパラメータ124と、ロボット30に対応するオブジェクトの挙動の再現に必要なパラメータを含むロボットパラメータ132と、図1に示されたデータ群180と、仮想空間におけるオブジェクトをビジュアライズするための画像データ137とを格納する。 The storage 120 is configured with, for example, an HDD (Hard Disk Drive) or an SSD (Flash Solid State Drive), and stores programs executed by the processor 102. Specifically, the storage 120 includes a physics simulation program 122, a peripheral information setting program 125, a position/orientation acquisition program 127, and a range change program 128 as simulation programs for realizing the simulation according to the present embodiment. , a robot simulation program 130, a transfer program 134, and an integration program 136. The storage 120 also includes an image processing program 133 for outputting simulation results and an evaluation program 135 for evaluating the simulation results. The storage 120 also stores, as simulation data, physical simulation parameters 124, robot parameters 132 including parameters necessary for reproducing the behavior of an object corresponding to the robot 30, and the data group 180 shown in FIG. , and image data 137 for visualizing objects in virtual space.

物理シミュレーションプログラム122は、実行されると、物理シミュレーションパラメータ124を用いた物理演算によって対象の挙動を算出する。物理シミュレーションプログラム122は、ケーブル341に対応する仮想空間におけるオブジェクトの挙動を算出し、算出された挙動の情報を出力するケーブルシミュレーションプログラム131を含む。 When executed, the physical simulation program 122 calculates the behavior of the object through physical calculation using the physical simulation parameters 124 . The physical simulation program 122 includes a cable simulation program 131 that calculates the behavior of an object in the virtual space corresponding to the cable 341 and outputs information on the calculated behavior.

統合プログラム136は、実行されると、物理シミュレーションプログラム122と、周辺情報設定プログラム125と、ロボットシミュレーションプログラム130とを互いに連携させるための処理を実現する。具体的には、統合プログラム136は、典型的には主メモリ103上に、仮想空間のオブジェクトの状態を記述する仮想空間情報105を生成および更新する。物理シミュレーションプログラム122と、周辺情報設定プログラム125と、ロボットシミュレーションプログラム130の実行結果を示す情報を受付けて、仮想空間情報105に反映する。統合プログラム136が提供する機能は、周辺装置と、ロボットハンド210を有するロボット30と、ケーブル341との間の連携に従う挙動および処理を再現する。 When executed, the integration program 136 realizes processing for making the physics simulation program 122, the peripheral information setting program 125, and the robot simulation program 130 cooperate with each other. Specifically, the integration program 136 generates and updates virtual space information 105, typically on the main memory 103, that describes the state of objects in the virtual space. Information indicating the execution results of the physical simulation program 122 , peripheral information setting program 125 , and robot simulation program 130 is received and reflected in the virtual space information 105 . The functions provided by the integrated program 136 reproduce the behavior and processing according to the cooperation between the peripheral device, the robot 30 with the robot hand 210, and the cable 341.

画像処理プログラム133は、仮想空間情報105の各オブジェクトの挙動を示す情報と、画像データ137とを用いて、3D(three-dimensional)ビジュアライズデータを生成し、ディスプレイ109に出力する。ディスプレイ109は、3Dビジュアライズデータが示す描画データに従って駆動されることにより、仮想空間におけるオブジェクトの挙動を立体視可能な画像として表示する。画像データ137は、ロボット30のオブジェクトと、周辺装置のオブジェクトと、ロボットハンド210のオブジェクトと、ケーブル341のオブジェクトと、ワーク232のオブジェクトなどを、それぞれ描画するための画像データであって、例えばCAD(Computer Aided Design)データを含む。 The image processing program 133 uses information indicating the behavior of each object in the virtual space information 105 and image data 137 to generate 3D (three-dimensional) visualization data and outputs it to the display 109. The display 109 is driven according to the drawing data indicated by the 3D visualization data, thereby displaying the behavior of the object in the virtual space as a stereoscopic image. The image data 137 is image data for drawing the object of the robot 30, the object of the peripheral device, the object of the robot hand 210, the object of the cable 341, the object of the workpiece 232, etc. (Computer Aided Design) data.

評価プログラム135は、シミュレーションの結果を評価する評価処理を実施する。評価処理の詳細は後述する。 The evaluation program 135 executes evaluation processing to evaluate the simulation results. Details of the evaluation process will be described later.

図3には、単一の情報処理装置100でシミュレーション装置1を実現する例を示したが、複数の情報処理装置を連係させてシミュレーション装置1を実現するようにしてもよい。この場合には、シミュレーション装置1を実現するために必要な処理の一部を情報処理装置100で実行させるとともに、残りの処理をネットワーク上のサーバ(クラウド)などで実行するようにしてもよい。 Although FIG. 3 shows an example in which the simulation device 1 is implemented using a single information processing device 100, the simulation device 1 may be implemented by linking a plurality of information processing devices. In this case, part of the processing necessary to realize the simulation device 1 may be executed by the information processing device 100, and the remaining processing may be executed by a server (cloud) on the network.

<E.機能構成>
次に、本実施の形態にかかるシミュレーション装置1の機能構成の一例について説明する。図4は、本実施の形態にかかるシミュレーション装置1を実現するための機能構成の一例を示す模式図である。図4に示す機能は、典型的には、情報処理装置100のプロセッサ102がプログラムを実行することで実現される。
<E. Functional configuration>
Next, an example of the functional configuration of the simulation device 1 according to the present embodiment will be described. FIG. 4 is a schematic diagram showing an example of a functional configuration for realizing the simulation device 1 according to the present embodiment. The functions shown in FIG. 4 are typically realized by the processor 102 of the information processing device 100 executing a program.

図4を参照して、シミュレーション装置1は、その機能構成として、仮想空間情報管理モジュール150と、ケーブルシミュレータ154と、評価モジュール155と、ロボットシミュレータ160と、情報設定モジュール170と、ビジュアライザ164と、範囲変更モジュール166と、位置姿勢取得モジュール190と、転送ツール400とを含む。 Referring to FIG. 4, the simulation device 1 includes, as its functional configuration, a virtual space information management module 150, a cable simulator 154, an evaluation module 155, a robot simulator 160, an information setting module 170, a visualizer 164, It includes a range change module 166, a position and orientation acquisition module 190, and a transfer tool 400.

仮想空間情報管理モジュール150は、統合プログラム136(図3)が実行されることで実現され、シミュレーションが実施される仮想空間の各オブジェクトの挙動を表す位置姿勢などの情報を規定する仮想空間情報105を管理する。 The virtual space information management module 150 is realized by executing the integrated program 136 (FIG. 3), and the virtual space information 105 defines information such as the position and orientation representing the behavior of each object in the virtual space where the simulation is performed. Manage.

ケーブルシミュレータ154は、ケーブルシミュレーションプログラム131が実行されることで実現される。具体的には、ケーブルシミュレータ154は、ロボット30の挙動の情報に従い、物理シミュレーションパラメータ124に基づきケーブル341に対応するオブジェクトの挙動を算出し、算出された挙動の情報を、仮想空間情報105に反映する。 The cable simulator 154 is realized by executing the cable simulation program 131. Specifically, the cable simulator 154 calculates the behavior of the object corresponding to the cable 341 based on the physical simulation parameters 124 according to the information on the behavior of the robot 30, and reflects the information on the calculated behavior in the virtual space information 105. do.

評価モジュール155は、シミュレーションの結果を評価し、評価結果をディスプレイ109などの出力ユニット111を介して出力する。具体的には、評価モジュール155は、評価プログラム135が実行されることにより実現される。評価モジュール155は、シミュレーションの結果である仮想空間情報105が示す各オブジェクトの挙動の情報に基づきオブジェクトどうしの干渉の有無を検出するとともに、ケーブル341の破損の可能性の有無を検出することにより、評価を実施する。オブジェクトどうしの干渉の有無およびケーブル341の破損の可能性の有無を検出する処理は後述する。 The evaluation module 155 evaluates the simulation results and outputs the evaluation results via the output unit 111 such as the display 109. Specifically, the evaluation module 155 is realized by executing the evaluation program 135. The evaluation module 155 detects the presence or absence of interference between objects based on the information on the behavior of each object indicated by the virtual space information 105 that is the result of the simulation, and also detects the presence or absence of the possibility of damage to the cable 341. Carry out an evaluation. Processing for detecting the presence or absence of interference between objects and the possibility of damage to the cable 341 will be described later.

ロボットシミュレータ160は、ロボットシミュレーションプログラム130が実行されることで実現される。ロボットシミュレータ160は、ロボットパラメータ132およびデータ群180のデータに基づいて、ロボット30に対応する仮想空間に配置された各アーム306に対応するオブジェクトの挙動、すなわちロボット30の挙動を算出する。ロボットシミュレータ160により算出されるロボット30の挙動の情報は、仮想空間情報105に反映される。 The robot simulator 160 is realized by executing the robot simulation program 130. The robot simulator 160 calculates the behavior of the object corresponding to each arm 306 arranged in the virtual space corresponding to the robot 30, that is, the behavior of the robot 30, based on the robot parameters 132 and the data of the data group 180. Information on the behavior of the robot 30 calculated by the robot simulator 160 is reflected in the virtual space information 105.

ビジュアライザ164は、画像処理プログラム133が実行されることで実現される。ビジュアライザ164は、仮想空間情報管理モジュール150が管理する仮想空間情報105に基づいて、仮想空間の各オブジェクト(周辺装置、ロボットハンド210を装着すするロボット30、ケーブル341など)の挙動をビジュアル化して描画する画像データを生成する。 The visualizer 164 is realized by executing the image processing program 133. The visualizer 164 visualizes the behavior of each object in the virtual space (peripheral devices, the robot 30 equipped with the robot hand 210, the cable 341, etc.) based on the virtual space information 105 managed by the virtual space information management module 150. Generate image data to draw.

範囲変更モジュール166は、範囲変更プログラム128が実行されることにより実現される。範囲変更モジュール166は、ユーザーが設定した軸の可動範囲を変更する。これにより、データ群180の可動範囲データ185が変更される。ロボットシミュレータ160は、変更後の可動範囲データ185を有するデータ群180を用いて、再度、シミュレーションを実施することができる。 The range change module 166 is realized by executing the range change program 128. The range change module 166 changes the movable range of the axis set by the user. As a result, the movable range data 185 of the data group 180 is changed. The robot simulator 160 can perform the simulation again using the data group 180 having the changed movable range data 185.

情報設定モジュール170は、周辺情報設定プログラム125が実行されることにより実現される。情報設定モジュール170は、データ群180から周辺装置およびワーク232の挙動(位置姿勢)を示す情報を検索する。検索された挙動の情報は、仮想空間情報105に反映される。 The information setting module 170 is realized by executing the peripheral information setting program 125. The information setting module 170 searches the data group 180 for information indicating the behavior (position and orientation) of the peripheral device and the workpiece 232. The information on the retrieved behavior is reflected in the virtual space information 105.

位置姿勢取得モジュール190は、位置姿勢取得プログラム127が実行されることにより実現される。位置姿勢取得モジュール190は、位置姿勢データ187を取得しデータ群180に設定する。位置姿勢取得モジュール190の処理の詳細は、図20で後述する。 The position and orientation acquisition module 190 is realized by executing the position and orientation acquisition program 127. The position and orientation acquisition module 190 acquires the position and orientation data 187 and sets it in the data group 180. Details of the processing of the position and orientation acquisition module 190 will be described later with reference to FIG.

転送ツール400は、転送プログラム134が実行されることにより実現される。転送ツール400は、ロボットシミュレータ160によってシミュレーションに用いられた1つ以上の軸の可動範囲を、データ群180から読出し、ネットワークインターフェイス110を介してPLC200に送信する。 The transfer tool 400 is realized by executing the transfer program 134. The transfer tool 400 reads the movable range of one or more axes used in the simulation by the robot simulator 160 from the data group 180 and transmits it to the PLC 200 via the network interface 110.

図4に示すような各機能が互いに連携することで、シミュレーション対象のワーク搬送システムを構成するロボットハンド210を有したロボット30、周辺装置、ワーク232およびケーブル341などの挙動を再現できる。 By mutually coordinating each function as shown in FIG. 4, the behavior of the robot 30 having the robot hand 210, peripheral devices, workpiece 232, cable 341, etc. that constitute the workpiece conveyance system to be simulated can be reproduced.

<F.ケーブルシミュレーション>
ケーブルシミュレータ154は、ロボット30に取付けられるケーブル341に対応するオブジェクトの3次元の仮想空間における挙動を算出するケーブルシミュレーションを実行する。この3次元の仮想空間は、ロボット30の挙動を算出するための3次元の仮想空間と同一の空間である。
<F. Cable simulation>
The cable simulator 154 executes a cable simulation that calculates the behavior of an object corresponding to the cable 341 attached to the robot 30 in a three-dimensional virtual space. This three-dimensional virtual space is the same space as the three-dimensional virtual space for calculating the behavior of the robot 30.

ケーブルシミュレーションは、仮想空間情報105が示すロボット30の挙動に基づいて、ケーブル341に対応するオブジェクトの挙動を算出する。 The cable simulation calculates the behavior of the object corresponding to the cable 341 based on the behavior of the robot 30 indicated by the virtual space information 105.

実施の形態では、仮想空間情報105が示すロボット30の挙動は、ユーザーが設定した可動範囲内で軸の姿勢を所定量(後述するΔAR)ずつ変化させる毎に、変化後の軸の姿勢に基づきロボットシミュレータ160によって算出されたロボット30の時系列の挙動を示す。 In the embodiment, the behavior of the robot 30 indicated by the virtual space information 105 is determined based on the changed axis attitude each time the axis attitude is changed by a predetermined amount (ΔAR described later) within the movable range set by the user. The time-series behavior of the robot 30 calculated by the robot simulator 160 is shown.

ケーブルシミュレータ154は、「第2のシミュレータ」の一実施例である。ケーブルシミュレータ154は、3次元の仮想空間におけるロボット30の時系列の挙動、例えば位置に基づき、ケーブル341のロボット30への取付けに関するケーブルパラメータを用いて、ロボット30と同一仮想空間に配置されたケーブル341の挙動を算出する。ケーブルパラメータは、例えば、ケーブル341の長さ、ケーブル341の取付け位置(すなわち、ロボット30のアームにおけるケーブルの取付位置)などを含むが、これらに限定されない。例えば、挙動に影響を及ぼすようなパラメータ、例えばケーブル341の材料に依存するパラメータ(例えば、ケーブル341の硬さを表すパラメータ)を含んでもよい。ケーブルパラメータは、物理シミュレーションパラメータ124として設定される。 Cable simulator 154 is an example of a "second simulator." The cable simulator 154 uses cable parameters related to the attachment of the cable 341 to the robot 30 based on the time-series behavior of the robot 30 in a three-dimensional virtual space, such as the position, and calculates a cable placed in the same virtual space as the robot 30. 341 behavior is calculated. The cable parameters include, for example, the length of the cable 341, the attachment position of the cable 341 (ie, the attachment position of the cable on the arm of the robot 30), but are not limited thereto. For example, it may include parameters that affect the behavior, such as parameters that depend on the material of the cable 341 (for example, a parameter that represents the hardness of the cable 341). The cable parameters are set as physical simulation parameters 124.

具体的には、ケーブルシミュレータ154は、物理シミュレーションパラメータ124を用いて、物理シミュレーションを実行する。この物理シミュレーションは、ケーブル341に対応するオブジェクトを、隣接する剛体間をジョイントで接合することで複数の剛体が連なるモデル化された剛体リンクとして扱う。 Specifically, the cable simulator 154 uses the physical simulation parameters 124 to perform a physical simulation. In this physical simulation, the object corresponding to the cable 341 is treated as a modeled rigid link in which a plurality of rigid bodies are connected by connecting adjacent rigid bodies with a joint.

ケーブルシミュレーションは、ロボット30に対応する3次元の仮想空間におけるオブジェクトの所与の挙動に基づき、ケーブルパラメータを用いて、剛体リンクのモデルを表す拘束条件を含む所定の拘束方程式を演算することによって、ケーブル341に対応するオブジェクトの3次元の仮想空間における挙動を算出する。ケーブル341に対応するオブジェクトの挙動は、3次元の仮想空間におけるX,Y,Zの各軸における当該オブジェクトの位置と姿勢を含む。この姿勢は、より特定的には、剛体リンクを構成する各剛体の例えばX軸、Y軸およびZ軸についての加速度成分であるロール角α、ピッチ角βおよびヨー角γの組合せで示される。 The cable simulation is based on a given behavior of an object in a three-dimensional virtual space corresponding to the robot 30, and uses cable parameters to calculate a predetermined constraint equation including constraint conditions representing a rigid link model. The behavior of the object corresponding to the cable 341 in the three-dimensional virtual space is calculated. The behavior of the object corresponding to the cable 341 includes the position and orientation of the object in each of the X, Y, and Z axes in the three-dimensional virtual space. More specifically, this attitude is indicated by a combination of roll angle α, pitch angle β, and yaw angle γ, which are acceleration components of each rigid body constituting the rigid body link, for example, about the X-axis, Y-axis, and Z-axis.

<G.軸の可動範囲>
ロボット30の各関節に対応した軸の可動範囲を説明する。図5は、実施の形態にかかるロボット30の各軸の可動範囲の一例を模式的に示す図である。図5を参照して、ロボット30の関節1300,1301,1302,1303,1304,1305のそれぞれに備えられるモータMが、ロボットコントローラ310からの指令に基づく回転量に従い駆動されると、各関節に対応の軸は回転量に従い動く。本実施の形態では、関節1300,1301,1302,1303,1304,1305それぞれに対応の軸を、第6の軸、第5の軸、第4の軸、第3の軸、第2の軸、第1の軸とそれぞれ区別して称する。
<G. Axis movable range>
The movable range of the axis corresponding to each joint of the robot 30 will be explained. FIG. 5 is a diagram schematically showing an example of the movable range of each axis of the robot 30 according to the embodiment. Referring to FIG. 5, when motor M provided in each of joints 1300, 1301, 1302, 1303, 1304, and 1305 of robot 30 is driven according to a rotation amount based on a command from robot controller 310, each joint The corresponding axis moves according to the amount of rotation. In this embodiment, the axes corresponding to the joints 1300, 1301, 1302, 1303, 1304, and 1305 are defined as a sixth axis, a fifth axis, a fourth axis, a third axis, a second axis, They will be referred to separately from the first axis.

これら6個の各軸に対応する関節に繋がるアーム306は、軸の動きに連動して、図中の矢印1400~1405に示されるような、3次元の方向に挙動を変化させる。例えば、矢印1400は手首のアーム306を曲げる方向の挙動を示し、矢印1401は手首のアーム306を旋回する方向の挙動を示し、矢印1402と1403は、上腕のアーム306を上下に動かす方向の挙動を示し、矢印1404は下腕のアーム306を前後に動かす方向の挙動を示し、矢印1405は下腕のアーム306を旋回させる方向の挙動を示す。 The arm 306 connected to the joints corresponding to each of these six axes changes its behavior in three-dimensional directions as shown by arrows 1400 to 1405 in the figure in conjunction with the movement of the axes. For example, arrow 1400 indicates behavior in the direction of bending the wrist arm 306, arrow 1401 indicates behavior in the direction of rotating the wrist arm 306, and arrows 1402 and 1403 indicate behavior in the direction of moving the upper arm arm 306 up and down. , an arrow 1404 indicates the behavior in the direction of moving the arm 306 of the lower arm back and forth, and an arrow 1405 indicates the behavior in the direction of rotating the arm 306 of the lower arm.

ユーザーは、矢印1400~1405が示す各軸の可動範囲を、ティーチングペンダント300を操作することにより、データ群180に可動範囲データ185として設定することができる。ロボットシミュレータ160は、ユーザーが各軸について設定した可動範囲に従って、シミュレーションを実施することにより、ロボット30の挙動を算出する。 The user can set the movable range of each axis indicated by arrows 1400 to 1405 as the movable range data 185 in the data group 180 by operating the teaching pendant 300. The robot simulator 160 calculates the behavior of the robot 30 by performing a simulation according to the movable range set for each axis by the user.

<H.データ群180と設定>
データ群180のデータと当該データの設定について説明する。
<H. Data group 180 and settings>
The data of the data group 180 and the settings of the data will be explained.

(h1.教示点データと周辺データ)
図6は、実施の形態にかかる教示点データ184と位置姿勢データ187の一例を示す図である。図6を参照して、ロボット30の複数の教示点1841と、各教示点1841に対応付けて位置姿勢データ187が示される。複数の教示点1841は、例えば、ピックアンドプレースの目標軌道に対応して設定された複数の教示点1841を示す。例えば、ロボット30は、アーム先端の位置姿勢を、複数の教示点1841に従って、例えばLOC1→LOC2→LOC3→…LOCi→…と順次変化させることによって、ワーク232を目標軌道に沿って搬送することができる。
(h1. Teaching point data and peripheral data)
FIG. 6 is a diagram showing an example of teaching point data 184 and position/orientation data 187 according to the embodiment. Referring to FIG. 6, a plurality of teaching points 1841 of robot 30 and position and orientation data 187 are shown in association with each teaching point 1841. The plurality of teaching points 1841 indicate, for example, a plurality of teaching points 1841 set corresponding to the target trajectory of pick and place. For example, the robot 30 can transport the workpiece 232 along the target trajectory by sequentially changing the position and orientation of the arm tip in accordance with the plurality of teaching points 1841, for example, LOC1→LOC2→LOC3→...LOCi→... can.

各教示点1841に対応の位置姿勢データ187は、ロボット30が当該教示点が示す位置姿勢をとる場合に、周辺装置、ケーブル341およびワーク232がとるであろう位置姿勢を示す。例えば、ロボット30が教示点1841としてLOC1をとる場合、周辺装置、ケーブル341およびワーク232は、それぞれ、位置姿勢PA1、PC1およびPD1をとることを示す。図6のデータは、位置姿勢取得モジュール190により設定される。 The position and orientation data 187 corresponding to each teaching point 1841 indicates the position and orientation that the peripheral device, cable 341, and workpiece 232 will take when the robot 30 takes the position and orientation indicated by the teaching point. For example, when the robot 30 takes LOC1 as the teaching point 1841, this indicates that the peripheral device, cable 341, and workpiece 232 take positions and orientations PA1, PC1, and PD1, respectively. The data in FIG. 6 is set by the position and orientation acquisition module 190.

(h2.軸の選択と可動範囲の設定)
図7は、実施の形態にかかる可動範囲を設定するためのUIの画面の一例を模式的に示す図である。画面は、ティーチングペンダント300の後述する表示部303のディスプレイにおいて、ダイレクトティーチングを実施中に表示される。ダイレクトティーチングを実施時に、ユーザーは、ロボット30の教示点毎に1つ以上の軸を選択し、選択した1つ以上の軸のそれぞれについて可動範囲を設定する。当該画面を用いたダイレクトティーチングの詳細は、図19で後述する。
(h2. Axis selection and movable range setting)
FIG. 7 is a diagram schematically showing an example of a UI screen for setting a movable range according to the embodiment. The screen is displayed on a display unit 303 of the teaching pendant 300, which will be described later, while direct teaching is being performed. When performing direct teaching, the user selects one or more axes for each teaching point of the robot 30, and sets a movable range for each of the selected one or more axes. Details of direct teaching using this screen will be described later with reference to FIG. 19.

図7の画面は、領域1091と1092とを含む。領域1091には、ロボット30の外形をモデル化した画像が表示される。領域1092に表示される情報は、ロボット30の軸毎の可動範囲の設定値が表示される。領域1091のモデル画像は、ロボット30の姿勢を矢印1093の方向に変化させながらダイレクトティーチングを実施することで、各軸の可動範囲を設定できることを示すガイダンス情報に相当する。ダイレクトティーチングを実施中には、各軸の角度は変化する。 The screen in FIG. 7 includes areas 1091 and 1092. In area 1091, an image modeling the outer shape of robot 30 is displayed. The information displayed in the area 1092 is the set value of the movable range of each axis of the robot 30. The model image in area 1091 corresponds to guidance information indicating that the movable range of each axis can be set by performing direct teaching while changing the posture of robot 30 in the direction of arrow 1093. During direct teaching, the angle of each axis changes.

領域1092では、例えば、ロボット30の教示点“LOC1”に対応して、第1の軸、第2の軸、第3の軸、第4の軸、第5の軸および第6の軸の6個の軸のそれぞれについて、当該軸の現在の傾き角度(姿勢)を表す現在値1627と、当該軸の現在の可動範囲1624の設定値が表示される。現在値1627は、ティーチングを実施中の各軸の角度を示す。例えば、図7では、ティーチングによって、第2の軸、第3の軸、第5の軸、および第6の軸の各軸の可動範囲1624が設定される状態であることが示される。可動範囲1624の設定値は、下限値1628と上限値1629の組合せで示される。なお、教示点は、“LOC1”に限定されず、他の教示点についても同様に各軸の可動範囲を設定することができる。ティーチングを実施時に、ユーザーが選択された軸について、下限ボタン1728を操作すると、その時に示されている現在値1627が当該軸の可動範囲の下限値1628として設定され、同様に、上限ボタン1729を操作すると、その時に示されている現在値1627が当該軸の可動範囲の上限値1629として設定される。設定された下限値および上限値は画面に反映される。 In the area 1092, for example, six of the first axis, second axis, third axis, fourth axis, fifth axis, and sixth axis correspond to the teaching point "LOC1" of the robot 30. For each axis, a current value 1627 representing the current tilt angle (posture) of the axis and a setting value of the current movable range 1624 of the axis are displayed. The current value 1627 indicates the angle of each axis during teaching. For example, FIG. 7 shows a state in which the movable ranges 1624 of the second, third, fifth, and sixth axes are set by teaching. The set value of the movable range 1624 is indicated by a combination of a lower limit value 1628 and an upper limit value 1629. Note that the teaching point is not limited to "LOC1", and the movable range of each axis can be similarly set for other teaching points. When the user operates the lower limit button 1728 for the selected axis during teaching, the current value 1627 shown at that time is set as the lower limit value 1628 of the movable range of the axis, and similarly, when the user operates the upper limit button 1729. When operated, the current value 1627 shown at that time is set as the upper limit value 1629 of the movable range of the axis. The set lower limit value and upper limit value are reflected on the screen.

(h3.可動範囲データ)
図8は、実施の形態にかかる可動範囲データ185の一例を模式的に示す図である。シミュレーション装置1は、可動範囲データ185を、ティーチングペンダント300からのダイレクトティーチング情報330を用いて設定する。図8を参照して、可動範囲データ185は、教示点“LOC1”に対応して、ダイレクトティーチング情報330によって複数の軸1622と、軸1622のそれぞれに対応して、ダイレクトティーチング情報330に基づき設定された可動範囲1624とを含む。可動範囲1624は、下限値1628と上限値1629の組合せで示される。図8では、ダイレクトティーチング情報330が示す第2の軸、第3の軸、第5の軸および第6の軸のそれぞの可動範囲が設定されて、他の軸である第1の軸および第4の軸の可動範囲1624は、教示点“LOC1”に対応のデフォルト値が設定されている。図8は、教示点“LOC1”について設定される各軸に対応の可動範囲データ185を示したが、他の教示点についても同様に各軸に対応の可動範囲データ185を設定することができる。
(h3. Mobility range data)
FIG. 8 is a diagram schematically showing an example of the movable range data 185 according to the embodiment. The simulation device 1 sets the movable range data 185 using the direct teaching information 330 from the teaching pendant 300. Referring to FIG. 8, the movable range data 185 is set based on the direct teaching information 330 for a plurality of axes 1622 and for each of the axes 1622, corresponding to the teaching point "LOC1". range of motion 1624. The movable range 1624 is represented by a combination of a lower limit value 1628 and an upper limit value 1629. In FIG. 8, the movable ranges of the second, third, fifth, and sixth axes indicated by the direct teaching information 330 are set, and the other axes, the first axis and For the movable range 1624 of the fourth axis, a default value corresponding to the teaching point "LOC1" is set. Although FIG. 8 shows the movable range data 185 corresponding to each axis set for the teaching point "LOC1", the movable range data 185 corresponding to each axis can be similarly set for other teaching points. .

(h4.確認項目データ186)
図9は、実施の形態にかかる確認項目データ186の一例を模式的に示す図である。確認項目データ186は、ダイレクトティーチング情報330によって設定された各軸の可動範囲が適切であるか否か、すなわシミュレーションにおいて異常が発生していないか否かを評価するために、シミュレーションの結果を用いて確認するべき確認項目1630を示す。確認項目1630は、例えば、「ロボットと周辺装置の干渉」1631と、「ロボットとハンドの干渉」1632と、「ハンドと周辺装置の干渉」1633と、「ケーブルの破損」1634とを含む。確認項目1630の種類は、これらに限定されない。
(h4. Confirmation item data 186)
FIG. 9 is a diagram schematically showing an example of confirmation item data 186 according to the embodiment. The confirmation item data 186 is used to evaluate the simulation results in order to evaluate whether the movable range of each axis set by the direct teaching information 330 is appropriate, that is, whether or not an abnormality has occurred in the simulation. Confirmation items 1630 to be confirmed are shown. The confirmation items 1630 include, for example, "interference between robot and peripheral device" 1631, "interference between robot and hand" 1632, "interference between hand and peripheral device" 1633, and "damage of cable" 1634. The types of confirmation items 1630 are not limited to these.

ユーザーは、異常の確認項目1630のうちから1つ以上を選択する。具体的には、シミュレーション装置1は、操作ユニット107から受付けたユーザー操作に基づき、複数の確認項目のうちから1つ以上の確認項目を選択し、選択された確認項目を確認項目データ186として設定する。図9の確認項目データ186では、例えば、「ロボットと周辺装置の干渉」1631と、「ロボットとハンドの干渉」1632と、「ケーブルの破損」1634とが確認するべき項目として設定されている。 The user selects one or more of the abnormality confirmation items 1630. Specifically, the simulation device 1 selects one or more confirmation items from among the plurality of confirmation items based on the user operation received from the operation unit 107, and sets the selected confirmation item as the confirmation item data 186. do. In the confirmation item data 186 in FIG. 9, for example, "interference between robot and peripheral device" 1631, "interference between robot and hand" 1632, and "damage of cable" 1634 are set as items to be confirmed.

<I.オブジェクトの干渉とケーブルの破損の検出>
評価モジュール155は、シミュレーション装置1によって実施されたシミュレーションの結果を評価する。具体的には、評価モジュール155は、シミュレーション結果である仮想空間情報105が示すオブジェクトの位置姿勢に基づき、オブジェクトどうしの干渉の有無の検出、およびケーブル341の破損の可能性を検出する。
<I. Detection of object interference and cable breakage>
The evaluation module 155 evaluates the results of the simulation performed by the simulation device 1. Specifically, the evaluation module 155 detects the presence or absence of interference between objects and the possibility of damage to the cable 341 based on the position and orientation of the objects indicated by the virtual space information 105 that is a simulation result.

(i1.干渉の検出)
評価モジュール155は、仮想空間情報105が示す各オブジェクトの位置姿勢に基づき、「干渉」の有無を検出する。例えば、「干渉」は、仮想的空間におけるロボット30に対応のオブジェクトと、当該オブジェクトとは異なる1つ以上のオブジェクトが配置される。異なるオブジェクトは、周辺装置、ワーク232、ケーブル341などに対応するオブジェクトを含む。
(i1. Detection of interference)
The evaluation module 155 detects the presence or absence of "interference" based on the position and orientation of each object indicated by the virtual space information 105. For example, in "interference", an object corresponding to the robot 30 in the virtual space and one or more objects different from the object are arranged. The different objects include objects corresponding to peripheral devices, workpieces 232, cables 341, and so on.

「干渉」は、ロボット30のオブジェクトおよび異なるオブジェクトからなる複数のオブジェクトのうちのいずれかのオブジェクトの座標(これを、座標Pとする)と他のオブジェクトの座標(これを、座標Qとする)との両者間の相対的な関係が特定の位置関係を示すとの条件が満たされるとき、「干渉」が有ると検知される。 "Interference" refers to the coordinates of the object of the robot 30 and one of a plurality of objects consisting of different objects (this is referred to as coordinate P) and the coordinate of another object (this is referred to as coordinate Q) When the condition that the relative relationship between the two indicates a specific positional relationship is satisfied, it is detected that there is "interference".

特定の位置関係は、例えば、両者の距離が、閾値以下の距離を含む特定距離であるとことを含む。また、特定位置関係は、例えば、ロボット30の関節に対応の軸の可動範囲を連続的に変化させながらシミュレーションを実施する場合に、ロボット30の挙動(より特定的には各アームの挙動)を示す座標Pと次位の座標Pとを結ぶ軌跡が、他のオブジェクトの座標Qと交差したこと等を含む。オブジェクトどうしの「干渉」を検出するための、特定の位置関係は、これらの位置関係に限定されない。 The specific positional relationship includes, for example, that the distance between the two is a specific distance that includes a distance that is equal to or less than a threshold value. In addition, the specific positional relationship may affect the behavior of the robot 30 (more specifically, the behavior of each arm) when performing a simulation while continuously changing the movable range of the axes corresponding to the joints of the robot 30, for example. This includes the fact that the locus connecting the indicated coordinate P and the next coordinate P intersects with the coordinate Q of another object. Specific positional relationships for detecting "interference" between objects are not limited to these positional relationships.

上記に述べた閾値は、各オブジェクトのサイズ(幅、高さなど)に基づく値であってもよく、例えば、閾値またはオブジェクトのサイズは、例えば画像データ137の各オブジェクトのCADデータに含まれ得る。 The threshold described above may be a value based on the size (width, height, etc.) of each object; for example, the threshold or the size of the object may be included in the CAD data of each object of the image data 137, for example. .

(i2.ケーブル破損の可能性の検出)
評価モジュール155は、ケーブルシミュレータ154が算出したケーブル341に対応するオブジェクトの挙動に基づき、ケーブルの破損の可能性の有無を検出する。これにより、ケーブルに対応するオブジェクトの挙動が評価される。評価モジュール155は、例えば、ケーブル341のオブジェクトの挙動から算出される当該オブジェクトにかかる負荷、より特定的には挙動に影響を及ぼすような種類の負荷に基づき、当該挙動を評価する。このような負荷の種類は、限定されないが、例えば伸び、曲げおよびひねり等の少なくとも1つを含み得る。
(i2. Detection of possibility of cable damage)
The evaluation module 155 detects whether there is a possibility of damage to the cable based on the behavior of the object corresponding to the cable 341 calculated by the cable simulator 154. This allows the behavior of the object corresponding to the cable to be evaluated. The evaluation module 155 evaluates the behavior of the cable 341 based on, for example, the load on the object calculated from the behavior of the object, more specifically the type of load that affects the behavior. Such load types may include, but are not limited to, for example, at least one of stretching, bending, twisting, and the like.

具体的には、評価モジュール155は、ケーブル341のオブジェクトの挙動に基づき、負荷を算出し、算出された負荷が所定条件を満たすと判定したとき、ケーブル341は破損する可能性がある検出し、当該所定条件が満たされないと判定したとき破損する可能性はないと検出する。評価モジュール155は、検出の結果を示す評価結果を出力する。 Specifically, the evaluation module 155 calculates the load based on the behavior of the object of the cable 341, and when it is determined that the calculated load satisfies a predetermined condition, it detects that the cable 341 may be damaged; When it is determined that the predetermined condition is not satisfied, it is determined that there is no possibility of damage. The evaluation module 155 outputs an evaluation result indicating the result of the detection.

上記の所定条件は、例えば、算出された曲げ半径が、ケーブル341の最小曲げ半径(ケーブル341の仕様によって指定された値)を超えるとの条件を示す。なお、この所定条件は、曲げ半径の条件に限定されない。 The above predetermined condition indicates, for example, that the calculated bending radius exceeds the minimum bending radius of the cable 341 (a value specified by the specifications of the cable 341). Note that this predetermined condition is not limited to the bending radius condition.

<J.処理手順>
図10と図11は、実施の形態にかかるシミュレーション装置1において実行される処理のフローチャートの一例を示す図である。図12と図13は、実施の形態にかかるシミュレーションの態様を模式的に示す図である。図14は、実施の形態にかかる可動範囲の変更の一例を模式的に示す図である。
<J. Processing procedure>
10 and 11 are diagrams showing an example of a flowchart of processing executed in the simulation device 1 according to the embodiment. 12 and 13 are diagrams schematically showing aspects of simulation according to the embodiment. FIG. 14 is a diagram schematically showing an example of changing the movable range according to the embodiment.

図10と図11に示す各ステップは、典型的には、情報処理装置100のプロセッサ102がプログラム(物理シミュレーションプログラム122、位置姿勢取得プログラム127、範囲変更プログラム128、ロボットシミュレーションプログラム130、画像処理プログラム133、転送プログラム134、評価プログラム135、および、統合プログラム136など)を実行することで実現される。 Each step shown in FIGS. 10 and 11 is typically performed by the processor 102 of the information processing device 100 using programs (physical simulation program 122, position and orientation acquisition program 127, range change program 128, robot simulation program 130, image processing program 133, transfer program 134, evaluation program 135, integration program 136, etc.).

シミュレーションの実施に際して、ユーザーはローカル通信インターフェイス116を介して後述するティーチングペンダント300から、ダイレクトティーチング情報330を受信し(ステップS3)、受信したダイレクトティーチング情報330に基づき可動範囲データ185を設定する(ステップS5)。これにより、可動範囲データ185には、教示点1621毎に、1つ以上の軸1622それぞれの可動範囲1624が設定される。 When performing the simulation, the user receives direct teaching information 330 from the teaching pendant 300 (described later) via the local communication interface 116 (step S3), and sets movable range data 185 based on the received direct teaching information 330 (step S3). S5). As a result, the movable range 1624 of each of one or more axes 1622 is set in the movable range data 185 for each teaching point 1621.

情報処理装置100は、ダイレクトティーチングで示される各教示点毎の位置姿勢データ187を取得し、データ群180に設定する(ステップS7)。 The information processing device 100 acquires position and orientation data 187 for each teaching point indicated by direct teaching, and sets it in the data group 180 (step S7).

また、情報処理装置100は、操作ユニット107からのユーザー操作に基づき、複数の異常の確認項目のうちから選択された1つ以上の確認項目を、確認項目データ186に設定する(ステップS9)。ここでは、ステップS5において、例えば、教示点“LOC1”に対応する1つ以上の軸の可動範囲が設定される。なお、他の教示点であっても、図10の処理によって、各軸の可動範囲を設定することができる。 Further, the information processing apparatus 100 sets one or more confirmation items selected from among the plurality of abnormality confirmation items in the confirmation item data 186 based on the user's operation from the operation unit 107 (step S9). Here, in step S5, for example, the movable range of one or more axes corresponding to the teaching point "LOC1" is set. Note that even for other teaching points, the movable range of each axis can be set by the process shown in FIG.

情報処理装置100は、ユーザー操作に基づき、シミュレーションの実行開始の指示を受付けると(ステップS10)、情報処理装置100は、ステップS5で設定された可動範囲データ185を用いてシミュレーションの処理を実施する(ステップS11)。実施の形態では、ステップS5で可動範囲データ185に設定された軸(すなわち、第2の軸、第3の軸、第4の軸および第5の軸)毎に、当該軸について設定された可動範囲1624を用いてステップS11のシミュレーションが実行される。以下では、シミュレーションの対象となっている軸を、他の軸と区別するために「対象軸」と呼ぶ。 When the information processing device 100 receives an instruction to start the simulation based on the user's operation (step S10), the information processing device 100 executes the simulation process using the movable range data 185 set in step S5. (Step S11). In the embodiment, for each axis set in the movable range data 185 in step S5 (that is, the second axis, the third axis, the fourth axis, and the fifth axis), the movable range set for the axis is The simulation in step S11 is executed using the range 1624. In the following, the axis that is the subject of simulation will be referred to as a "target axis" to distinguish it from other axes.

シミュレーションが実行されることによって、仮想空間情報105には、仮想空間における周辺装置、ワーク232、ロボットハンド210を有するロボット30およびケーブル341のそれぞれに対応するオブジェクトの挙動を示す情報が反映される。 By executing the simulation, the virtual space information 105 reflects information indicating the behavior of objects corresponding to the peripheral devices, the workpiece 232, the robot 30 having the robot hand 210, and the cable 341 in the virtual space.

情報処理装置100は、仮想空間情報105に反映されたオブジェクトの挙動を示す情報に基づき、シミュレーションの結果を評価するとともに、評価の結果を示す評価情報を出力(表示)する(ステップS12)。情報処理装置100は、確認項目データ186が示す1つ以上の確認項目1630のそれぞれについて、仮想空間情報105が示す各オブジェクトの挙動を示す情報に基づき、干渉の有無を検出し、または、ケーブル破損の可能性を検出する。 The information processing device 100 evaluates the simulation result based on the information indicating the behavior of the object reflected in the virtual space information 105, and outputs (displays) evaluation information indicating the evaluation result (step S12). For each of the one or more confirmation items 1630 indicated by the confirmation item data 186, the information processing device 100 detects the presence or absence of interference, or detects cable damage, based on information indicating the behavior of each object indicated by the virtual space information 105. Detect the possibility of

情報処理装置100は、ユーザー操作に基づき、「対象軸」の可動範囲を変更するか否かを判定する(ステップS13)。情報処理装置100は、「対象軸」の可動範囲を変更しないと判定すると(ステップS13でNO)、可動範囲データ185において設定された全ての軸についてシミュレーションが実施されたか否かを判定する(ステップS15)。情報処理装置100は、未だ全ての軸についてシミュレーションが実施されていないと判定すると(ステップS15でNO)、「対象軸」を可動範囲データ185が示す次の軸に変更し、変更後の「対象軸」についてシミュレーションを実施する(ステップS11)。全ての軸についてシミュレーションが実施されたと判定されると(ステップS15でYES)、情報処理装置100は転送処理を実施する(ステップS17)。 The information processing device 100 determines whether or not to change the movable range of the "target axis" based on the user's operation (step S13). When the information processing device 100 determines not to change the movable range of the "target axis" (NO in step S13), it determines whether simulation has been performed for all axes set in the movable range data 185 (step S13). S15). If the information processing device 100 determines that the simulation has not been performed for all axes yet (NO in step S15), the information processing device 100 changes the "target axis" to the next axis indicated by the movable range data 185, and A simulation is performed for the "axis" (step S11). When it is determined that simulation has been performed for all axes (YES in step S15), the information processing device 100 performs a transfer process (step S17).

転送処理では、情報処理装置100は、可動範囲データ185が示す教示点毎の各軸の可動範囲をPLC200に送信する。 In the transfer process, the information processing device 100 transmits the movable range of each axis for each teaching point indicated by the movable range data 185 to the PLC 200.

情報処理装置100は、ユーザー操作に基づき、「対象軸」の可動範囲を変更すると判定すると(ステップS13でYES)、情報処理装置100は、可動範囲データ185における「対象軸」の可動範囲1624を変更する(ステップS16)。その後、ステップS11において「対象軸」について、変更後の可動範囲1624を用いてシミュレーションが実施される。 When the information processing device 100 determines to change the movable range of the “target axis” based on the user operation (YES in step S13), the information processing device 100 changes the movable range 1624 of the “target axis” in the movable range data 185. change (step S16). Thereafter, in step S11, a simulation is performed for the "target axis" using the changed movable range 1624.

ステップS13では、例えば、ユーザーは、シミュレーションの評価結果が「干渉」または「ケーブル破損の可能性」が検知されたことを示す場合は、情報処理装置100に対して対象軸の可動範囲を変更するよう指示する操作を実施する。 In step S13, for example, if the evaluation result of the simulation indicates that "interference" or "possibility of cable damage" is detected, the user instructs the information processing device 100 to change the movable range of the target axis. Perform the operations instructed to do so.

ステップS16では、ユーザーの指示に応答して、情報処理装置100は範囲変更モジュール166として、「対象軸」の可動範囲を変更する。例えば、図14に示すように、可動範囲データ185における「対象軸」である例えば第2の軸の下限値を小さくするように変更し、また、「対象軸」である例えば第5の軸の上限値を小さくするように変更する。 In step S16, in response to the user's instruction, the information processing device 100 uses the range change module 166 to change the movable range of the "target axis." For example, as shown in FIG. 14, the lower limit value of, for example, the second axis, which is the "target axis" in the movable range data 185, is changed to be smaller, and the lower limit value of, for example, the fifth axis, which is the "target axis", is changed to be smaller. Change the upper limit value to be smaller.

図10の処理によれば、ユーザーは、ステップS12で出力されるシミュレーションの評価結果から、対象軸の可動範囲1624を変更して、変更後の可動範囲1624を用いてシミュレーションを再度、実施するべきか否かの判断基準を得ることができる。 According to the process of FIG. 10, the user should change the movable range 1624 of the target axis based on the evaluation result of the simulation output in step S12, and perform the simulation again using the changed movable range 1624. It is possible to obtain criteria for determining whether or not.

したがって、対象軸の可動範囲1624を変更しながら、シミュレーションを繰返し実施することにより、ユーザーは、対象軸の可動範囲1624を最適値、すなわち干渉およびケーブル破損の可能性がない値に調整することができる。シミュレーションにより最適値に調整された各軸の可動範囲のデータは、PLC200に転送される(ステップS17)。これにより、PLC200は、各軸の可動範囲が、最適値の可動範囲(すなわち、上限値1629および下限値1628)を超えない範囲となるように、ロボット30の目標起動を生成し、目標軌道に従う目標値を用いてロボット30を制御することができる。 Therefore, by repeatedly performing simulations while changing the movable range 1624 of the target axis, the user can adjust the movable range 1624 of the target axis to an optimal value, that is, a value that is free from interference and cable damage. can. The data on the movable range of each axis adjusted to the optimum value through the simulation is transferred to the PLC 200 (step S17). As a result, the PLC 200 generates a target activation for the robot 30 and follows the target trajectory so that the movable range of each axis does not exceed the optimal value movable range (i.e., upper limit value 1629 and lower limit value 1628). The robot 30 can be controlled using the target value.

図11を参照して、ステップS11のシミュレーションの処理手順を説明する。図11のシミュレーションでは、「対象軸」の姿勢(軸のロール角α、ピッチ角βおよびヨー角γの組合せ)を表す変数ARを用いる。変数ARの値は、「対象軸」の可動範囲1624が示す下限値1628~上限値1629の範囲で、ΔARの値だけ加算(または減算)され得る。ΔARの値は、限定されないが、例えば角度として1度とすることができて、ユーザーが設定することもできる。 Referring to FIG. 11, the simulation processing procedure in step S11 will be described. In the simulation of FIG. 11, a variable AR representing the attitude of the "target axis" (a combination of the roll angle α, pitch angle β, and yaw angle γ of the axis) is used. The value of the variable AR can be added (or subtracted) by the value of ΔAR in the range from the lower limit value 1628 to the upper limit value 1629 indicated by the movable range 1624 of the “target axis”. Although the value of ΔAR is not limited, it can be, for example, an angle of 1 degree, and can also be set by the user.

まず、情報処理装置100は、「対象軸」の姿勢として初期値が設定された変数ARを用いてロボットシミュレーションを実施する(ステップS31)。情報処理装置100は、シミュレーションの対象となっている教示点LOC(i)が示すロボット30の挙動(位置姿勢)に基づき、変数ARの値だけ「対象軸」の角度を変化させた場合の挙動、すなわちロボット30に対応する仮想空間のオブジェクトの挙動を算出する。この算出は、(c1.仮想空間の座標系)で示された方法を用いることができる。 First, the information processing apparatus 100 performs a robot simulation using the variable AR whose initial value is set as the posture of the "target axis" (step S31). The information processing device 100 calculates the behavior when the angle of the "target axis" is changed by the value of the variable AR, based on the behavior (position and orientation) of the robot 30 indicated by the teaching point LOC(i) that is the target of the simulation. That is, the behavior of the object in the virtual space corresponding to the robot 30 is calculated. This calculation can use the method shown in (c1. Coordinate system of virtual space).

情報処理装置100は、シミュレーションによって算出されたロボット30に対応のオブジェクトの仮想空間における挙動を、仮想空間情報105に反映する。情報処理装置100は、(AR=AR+ΔAR)に従い変数ARの値を所定量ΔARずつ更新し(ステップS33)、更新後の変数ARの値が「対象軸」の可動範囲1624内の値であるか否かを判定する(ステップS35)。 The information processing device 100 reflects the behavior of the object corresponding to the robot 30 in the virtual space calculated through the simulation in the virtual space information 105. The information processing device 100 updates the value of the variable AR by a predetermined amount ΔAR according to (AR=AR+ΔAR) (step S33), and determines whether the updated value of the variable AR is within the movable range 1624 of the “target axis”. It is determined whether or not (step S35).

変数ARは可動範囲1624内の値を示すと判定されると(ステップS35でYES)、情報処理装置100は、更新後の値が設定された変数ARの値を用いてロボットシミュレーションを実施する(ステップS31)。ステップS30~S35では、「対象軸」の姿勢を可動範囲1624内でΔARの値ずつ変化させる毎にロボット30に対応するオブジェクトの挙動が算出されて、算出された挙動は仮想空間情報105に反映される。したがって、仮想空間情報105には、仮想空間におけるロボット30に対応するオブジェクトの時系列に変化する挙動が反映される。 If it is determined that the variable AR indicates a value within the movable range 1624 (YES in step S35), the information processing device 100 performs a robot simulation using the value of the variable AR set to the updated value ( Step S31). In steps S30 to S35, the behavior of the object corresponding to the robot 30 is calculated each time the posture of the “target axis” is changed by the value of ΔAR within the movable range 1624, and the calculated behavior is reflected in the virtual space information 105. be done. Therefore, the virtual space information 105 reflects the time-series changing behavior of the object corresponding to the robot 30 in the virtual space.

変数ARは可動範囲1624内の値を示さないと判定されると(ステップS35でNO)、情報処理装置100は、周辺装置などの挙動の情報を設定する(ステップS37)。具体的には、情報処理装置100は、教示点“LOC1”に対応する位置姿勢データ187をデータ群180から検索し、検索された位置姿勢データ187を仮想空間情報105に反映する。これにより、仮想空間情報105には、ロボット30が教示点“LOC1”の位置姿勢をとった場合の周辺装置、ケーブル341およびワーク232に対応するオブジェクトの位置姿勢が反映される。 If it is determined that the variable AR does not indicate a value within the movable range 1624 (NO in step S35), the information processing device 100 sets information on the behavior of peripheral devices, etc. (step S37). Specifically, the information processing device 100 searches the data group 180 for position and orientation data 187 corresponding to the teaching point “LOC1”, and reflects the searched position and orientation data 187 in the virtual space information 105. As a result, the virtual space information 105 reflects the position and orientation of objects corresponding to the peripheral device, cable 341, and workpiece 232 when the robot 30 assumes the position and orientation of the teaching point "LOC1."

情報処理装置100は、ステップS31~S33で算出されたロボット30のオブジェクトの時系列の挙動に基づき、ケーブルシミュレーションを実施する(ステップS39)。ケーブルシミュレーションにより算出されたオブジェクトの挙動の時系列の変化は、仮想空間情報105に反映される。 The information processing device 100 performs a cable simulation based on the time-series behavior of the object of the robot 30 calculated in steps S31 to S33 (step S39). Time-series changes in object behavior calculated by cable simulation are reflected in virtual space information 105.

図11の処理によって、仮想空間情報105には、ロボット30が教示点“LOC1”が示す位置姿勢をとった場合における、周辺装置、ケーブル341およびワーク232に対応するオブジェクトの位置姿勢と、「対象軸」の姿勢を可動範囲1624で変化させて得られたロボット30のオブジェクトの時系列の挙動と、当該時系列の挙動に連動したケーブル341のオブジェクトの時系列の挙動とが反映される。 Through the processing shown in FIG. 11, the virtual space information 105 includes the position and orientation of objects corresponding to the peripheral device, cable 341, and workpiece 232 when the robot 30 takes the position and orientation indicated by the teaching point "LOC1", and the "target The time-series behavior of the object of the robot 30 obtained by changing the posture of the "axis" in the movable range 1624 and the time-series behavior of the object of the cable 341 linked to the time-series behavior are reflected.

図12には、第5の軸が「対象軸」である場合のシミュレーションにおける可動範囲が模式的に示され、図13には、第6の軸が「対象軸」である場合のシミュレーションにおける可動範囲が模式的に示される。 FIG. 12 schematically shows the movable range in the simulation when the fifth axis is the "target axis", and FIG. 13 shows the movable range in the simulation when the sixth axis is the "target axis". Ranges are shown schematically.

<K.シミュレーション結果と評価の表示>
図15は、実施の形態にかかるシミュレーション結果の表示の一例を示す図である。例えば、図10のステップS12でディスプレイ109に表示される画面の一例が示される。図15の画面では、領域1100に、シミュレーション結果として可動範囲データ1096と、異常の確認項目毎の確認結果1097と、対象軸の可動範囲の設定を変更するか否かを選択するために操作されるボタン1098とが表示される。ボタン1098は、ステップS13において、ユーザーによって操作される。
<K. Displaying simulation results and evaluation>
FIG. 15 is a diagram illustrating an example of displaying simulation results according to the embodiment. For example, an example of the screen displayed on the display 109 in step S12 of FIG. 10 is shown. In the screen of FIG. 15, an area 1100 contains movable range data 1096 as a simulation result, confirmation results 1097 for each abnormality confirmation item, and an operation field for selecting whether to change the movable range setting of the target axis. button 1098 is displayed. Button 1098 is operated by the user in step S13.

シミュレーション結果として可動範囲データ1096は、例えば、第2の軸を「対象軸」とした場合のシミュレーション終了時における可動範囲の設定値を示す。確認結果1097は、ユーザーがステップS9において設定した確認項目毎に、オブジェクトどうしの干渉の有無、またはケーブルの破損の可能性の有無の評価の結果を示す。また、確認結果1097は、ユーザーが操作可能なボタン1099を含む。 As a result of the simulation, the movable range data 1096 indicates, for example, the set value of the movable range at the end of the simulation when the second axis is the "target axis." The confirmation result 1097 indicates the result of evaluating whether there is interference between objects or whether there is a possibility of cable damage for each confirmation item set by the user in step S9. The confirmation result 1097 also includes a button 1099 that can be operated by the user.

情報処理装置100は、ボタン1099が操作されると、検出された異常を表す画像を領域1200に表示(再生)する。画像は、オブジェクトどうしの干渉が有る場合は異常(干渉)が発生する状態を表す画像を含み、また、ケーブルの破損の可能性が有る場合は異常(破損の可能性)が発生する状態を表す画像を含む。情報処理装置100は、領域1200に、異常が発生したときの「対象軸」の識別子と、その姿勢(例えば、変数ARの値)を示すデータ1021を表示する。図12の領域1200の画像は、例えば、「対象軸」である第2の軸の姿勢の変数ARが52度を示す場合に、ロボット30のアーム306が周辺装置(例えば、トレイ55)と干渉したことを示すポリゴンマーク342を含む。 When the button 1099 is operated, the information processing apparatus 100 displays (reproduces) an image representing the detected abnormality in the area 1200. The image includes an image representing a state where an abnormality (interference) occurs when there is interference between objects, and an image representing a state where an abnormality (possibility of damage) occurs when there is a possibility of cable damage. Contains images. The information processing device 100 displays, in the area 1200, data 1021 indicating the identifier of the “target axis” when the abnormality occurs and its attitude (for example, the value of the variable AR). In the image of area 1200 in FIG. 12, for example, when the attitude variable AR of the second axis, which is the "target axis", indicates 52 degrees, the arm 306 of the robot 30 interferes with a peripheral device (for example, the tray 55). It includes a polygon mark 342 indicating that it has been done.

図16は、図15の領域1200において表示される他の画像の一例を示す図である。図16の画像は、ケーブルの破損の可能性が有る場合の画像である。画像は、「対象軸」である第6の軸付近のケーブル341に破損の可能性があることを示すポリゴンマーク342を含む。 FIG. 16 is a diagram showing an example of another image displayed in area 1200 of FIG. 15. The image in FIG. 16 is an image when there is a possibility that the cable is damaged. The image includes a polygon mark 342 indicating that there is a possibility of damage to the cable 341 near the sixth axis, which is the "axis of interest."

<L.ティーチングペンダントの構成>
図17は、実施の形態にかかるティーチングペンダントの構成を模式的に示す図である。ロボット教示用のティーチングペンダント300は、ロボット30を実際に動かし、その挙動(関節の軸またはエンドエフェクタの位置姿勢)を検出し記憶する可搬式の教示装置である。また、ティーチングペンダント300は、記録された位置姿勢を再生することにより、再生された挙動に基づきロボットを動作させることもできる。
<L. Teaching pendant configuration>
FIG. 17 is a diagram schematically showing the configuration of the teaching pendant according to the embodiment. The teaching pendant 300 for robot teaching is a portable teaching device that actually moves the robot 30 and detects and stores its behavior (the axis of the joints or the position and orientation of the end effector). Further, the teaching pendant 300 can also operate the robot based on the reproduced behavior by reproducing the recorded position and orientation.

図17を参照して、ティーチングペンダント300とその周辺機器を説明する。ティーチングペンダント300はロボットコントローラ310と有線または無線で通信する。ロボットコントローラ310とティーチングペンダント300との通信には、例えばシリアル通信が用いられる。なお、パラレル通信を用いてもよい。 The teaching pendant 300 and its peripheral devices will be described with reference to FIG. 17. The teaching pendant 300 communicates with the robot controller 310 by wire or wirelessly. For example, serial communication is used for communication between the robot controller 310 and the teaching pendant 300. Note that parallel communication may also be used.

ロボットコントローラ310は、ロボット制御部312と、通信I/F(Interfaceの略)311とを含む。ロボット制御部312は、PLC200またはティーチングペンダント300からの指令に基づいて、ロボット30に対して指令を出力する。具体的には、ロボット制御部312には、1または複数のサーボドライバが内蔵されており、各サーボドライバは、対応するサーボモータ1300~1305を指令に基づき制御する。各サーボモータの回転軸にはエンコーダ(図示せず)が設けられている。当該エンコーダは、サーボモータの位置(回転角度)、サーボモータの回転速度、サーボモータの累積回転数などを、対応するサーボドライバにフィードバックする。したがって、PLC200またはティーチングペンダント300からの指令に基づきサーボモータ1300~1305が駆動された場合、その指令に応じた回転角度などはフィードバックされる。 The robot controller 310 includes a robot control section 312 and a communication I/F (abbreviation for Interface) 311. The robot control unit 312 outputs commands to the robot 30 based on commands from the PLC 200 or the teaching pendant 300. Specifically, the robot control unit 312 includes one or more servo drivers, and each servo driver controls the corresponding servo motors 1300 to 1305 based on instructions. An encoder (not shown) is provided on the rotating shaft of each servo motor. The encoder feeds back the position (rotation angle) of the servo motor, the rotation speed of the servo motor, the cumulative number of rotations of the servo motor, etc. to the corresponding servo driver. Therefore, when the servo motors 1300 to 1305 are driven based on a command from the PLC 200 or the teaching pendant 300, the rotation angle and the like according to the command are fed back.

視覚センサ340は、画像処理部344を含む。撮像部350は、撮像範囲に存在する被写体を撮像する装置であり、主たる構成要素として、レンズや絞りなどの光学系と、CCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどの受光素子とを含む。撮像部350は、画像処理部344からの指令に従って撮像する。 Visual sensor 340 includes an image processing section 344. The imaging unit 350 is a device that images a subject existing in an imaging range, and its main components include an optical system such as a lens and an aperture, and a CCD (Charge Coupled Device) image sensor and a CMOS (Complementary Metal Oxide Semiconductor) image sensor. It includes a light receiving element such as. The image capturing section 350 captures an image according to a command from the image processing section 344.

画像処理部344は、撮像制御部346と、通信I/F348とを含む。これらのコンポーネントは図示しないバスを介して互いにデータ通信可能に接続されている。撮像制御部346は、撮像部350からの画像データを処理して、処理後の画像351をフィールドネットワーク22に送信する。 The image processing section 344 includes an imaging control section 346 and a communication I/F 348. These components are connected to each other for data communication via a bus (not shown). The imaging control unit 346 processes the image data from the imaging unit 350 and transmits the processed image 351 to the field network 22.

ティーチングペンダント300は、制御部301と、通信I/F302と、表示部303と、ティーチングペンダント300に対するユーザー操作を受付けるための操作部304と、メモリ305を含む。通信I/F302は、ティーチングペンダント300がロボットコントローラ310または情報処理装置100を含む外部の機器と通信するためのインターフェイスである。 The teaching pendant 300 includes a control unit 301 , a communication I/F 302 , a display unit 303 , an operation unit 304 for accepting user operations on the teaching pendant 300 , and a memory 305 . The communication I/F 302 is an interface for the teaching pendant 300 to communicate with external equipment including the robot controller 310 or the information processing device 100.

制御部301は、ユーザーから操作部304を介して、軸の選択、および選択された軸に対応のモータMに対する指令を受け付ける。制御部201は、当該指令に基づいてサーボモータMを制御するための指令(回転量)を生成し、生成した指令を、ロボットコントローラ310に対して出力する。ロボットコントローラ310は、ティーチングペンダント300からの指令を、選択された軸に対応のモータMに向けて出力する。これにより、モータMはユーザー操作に従う指令に従い駆動されて、ユーザーが選択した軸の角度が指令された角度に調整される。 The control unit 301 receives an axis selection and a command for the motor M corresponding to the selected axis from the user via the operation unit 304. The control unit 201 generates a command (rotation amount) for controlling the servo motor M based on the command, and outputs the generated command to the robot controller 310. The robot controller 310 outputs the command from the teaching pendant 300 to the motor M corresponding to the selected axis. Thereby, the motor M is driven in accordance with the command according to the user's operation, and the angle of the axis selected by the user is adjusted to the commanded angle.

制御部301はまた、ロボットコントローラ310を介して視覚センサ340から出力される画像351を受付けて、表示部303へ画像を出力する。例えば、画像351は、ユーザー操作に従う指令に従い、ユーザーが選択した軸の角度が調整された状態のロボット30の姿勢を示す画像を含む。これにより、ユーザーは操作部304を介して実施した、軸の選択、および選択された軸に対応のモータMに対する指令(回転量)を、表示部303のロボット30の画像から視覚的に確認することができる。 The control unit 301 also receives an image 351 output from the visual sensor 340 via the robot controller 310 and outputs the image to the display unit 303. For example, the image 351 includes an image showing the posture of the robot 30 in a state where the angle of the axis selected by the user has been adjusted in accordance with a command according to the user's operation. Thereby, the user visually confirms the selection of the axis and the command (rotation amount) for the motor M corresponding to the selected axis from the image of the robot 30 on the display unit 303, which was performed via the operation unit 304. be able to.

<M.ダイレクトティーチング>
図18は、実施の形態にかかるダイレクトティーチングのシーンを模式的に示す図である。図19は、実施の形態にかかるダイレクトティーチングの処理手順を示すフローチャートである。図18を参照して、ユーザーが、ロボット30を操作することにより1つ以上の教示点を設定するシーンを説明する。ダイレクトティーチングは、生産ラインに備えられる、いわゆる実機のロボット30に対するティーチングであって、ティーチングは周辺装置、ワークなどはロボット30の周囲には存在しない、例えば生産ラインは停止している環境で実施されるとする。また、説明を簡単にするために、ティーチング時にケーブル341に負荷はかからないとする。
<M. Direct teaching>
FIG. 18 is a diagram schematically showing a direct teaching scene according to the embodiment. FIG. 19 is a flowchart showing the direct teaching processing procedure according to the embodiment. Referring to FIG. 18, a scene in which a user sets one or more teaching points by operating the robot 30 will be described. Direct teaching is teaching to a so-called actual robot 30 installed on a production line, and teaching is performed in an environment where there are no peripheral devices, workpieces, etc. around the robot 30, for example, when the production line is stopped. Suppose that Further, to simplify the explanation, it is assumed that no load is applied to the cable 341 during teaching.

ロボットコントローラ310が有する各サーボモータ1300~1305のサーボドライバは、図示しないブレーキを有する。ブレーキがかかっている状態では、サーボモータ1300~1305は隣接する2つのアーム306がなす角度(関節の角度)あるいは回動の回転角度は一定に保たれる。ブレーキが解除されると、補助トルクを用いて、図18に示すように、ユーザーはアーム306を手701,702で所望とする位置姿勢へ調整することができる。 The servo drivers of each servo motor 1300 to 1305 included in the robot controller 310 have a brake (not shown). When the brakes are applied, the angle formed by two adjacent arms 306 (joint angle) or the rotation angle of the servo motors 1300 to 1305 are kept constant. When the brake is released, the user can use the auxiliary torque to adjust the arm 306 to a desired position and orientation using hands 701 and 702, as shown in FIG.

ロボット30が所望する位置姿勢に調整されたとき、ユーザーは、ティーチングペンダント300の操作部304を操作して、教示点の設定を指示する。制御部301に備えられるプロセッサは、当該指示を受付けると、図19の処理を開始する。図19の処理を示すプログラムは、メモリ305に格納されている。 When the robot 30 has been adjusted to a desired position and orientation, the user operates the operation unit 304 of the teaching pendant 300 to instruct setting of teaching points. Upon receiving the instruction, the processor included in the control unit 301 starts the process shown in FIG. 19 . A program showing the processing in FIG. 19 is stored in the memory 305.

図19を参照して、制御部301は、ユーザー操作から受付つけた指示に基づき、教示点LOC(i)を決定する(ステップS51)。具体的には、制御部301は、ロボットコントローラ310から、各軸に対応するサーボモータの回転角度、すなわち回転量を受信する。制御部301は、第1の軸~第6の軸それぞれの回転量を取得し、取得した各軸の回転量から、教示点LOC(i)を算出する。これにより、教示点LOC(i)が決定される。 Referring to FIG. 19, control unit 301 determines a teaching point LOC(i) based on an instruction received from a user operation (step S51). Specifically, the control unit 301 receives the rotation angle, that is, the amount of rotation, of the servo motor corresponding to each axis from the robot controller 310. The control unit 301 obtains the rotation amount of each of the first to sixth axes, and calculates the teaching point LOC(i) from the obtained rotation amount of each axis. Thereby, the teaching point LOC(i) is determined.

制御部301は、教示点LOC(i)の挙動をとった状態のロボット30の画像を取得する(ステップS53)。具体的には、制御部301はロボットコントローラ310を介して、視覚センサ340にロボット30を撮像するよう指示する。撮像部350は、指示に従いロボット30を撮像し、撮像された画像351を送信する。ティーチングペンダント300は、ロボットコントローラ310を介して画像351を受信する。これにより、制御部301は、教示点LOC(i)の挙動をとった状態のロボット30の画像を取得できる。 The control unit 301 acquires an image of the robot 30 exhibiting the behavior of the teaching point LOC(i) (step S53). Specifically, the control unit 301 instructs the visual sensor 340 to image the robot 30 via the robot controller 310. The imaging unit 350 images the robot 30 according to instructions and transmits the captured image 351. Teaching pendant 300 receives image 351 via robot controller 310. Thereby, the control unit 301 can acquire an image of the robot 30 in a state where the robot 30 behaves at the teaching point LOC(i).

制御部301は、教示点LOC(i)の挙動をとった状態のロボット30の各関節の軸の可動範囲を決定する(ステップS55)。具体的には、制御部301は、表示部303に図7の画面を出力する。図7の画面の領域1092の現在値1627は、最初に教示点LOC(i)の挙動をとった状態のロボット30の各関節の軸の角度を示す。この角度は、制御部301が、ロボットコントローラ310から受信した各軸の角度であって、各軸に対応のサーボモータ1300~1305からフィードバックされた回転量に基づいている。 The control unit 301 determines the movable range of the axis of each joint of the robot 30 in a state where the robot 30 behaves at the teaching point LOC(i) (step S55). Specifically, the control unit 301 outputs the screen shown in FIG. 7 to the display unit 303. The current value 1627 in the area 1092 of the screen in FIG. 7 indicates the angle of the axis of each joint of the robot 30 when the robot 30 initially behaves at the teaching point LOC(i). This angle is the angle of each axis received by the control unit 301 from the robot controller 310, and is based on the amount of rotation fed back from the servo motors 1300 to 1305 corresponding to each axis.

図18に示されるようにロボット30の関節の角度を手で調整すると、その調整によるモータMの回転量はロボットコントローラ310にフィードバックされる。制御部301は、ロボットコントローラ310から調整後の回転量に基づく角度で、図7の画面の現在値1627を更新する。この調整を繰り返すことにより、ユーザーは、所望する関節の軸の角度の現在値1627が所望する角度を示すとき、下限ボタン1728または上限ボタン1729を操作する。これにより、ユーザーは、所望する各軸について、所望する下限値1628および上限値1629を含む可動範囲1624を設定できる。 As shown in FIG. 18, when the angles of the joints of the robot 30 are adjusted manually, the amount of rotation of the motor M resulting from the adjustment is fed back to the robot controller 310. The control unit 301 updates the current value 1627 on the screen in FIG. 7 with the angle based on the rotation amount after adjustment from the robot controller 310. By repeating this adjustment, the user operates the lower limit button 1728 or the upper limit button 1729 when the current value 1627 of the desired joint axis angle indicates the desired angle. This allows the user to set a movable range 1624 including a desired lower limit value 1628 and upper limit value 1629 for each desired axis.

制御部301は、図7のUIの画面に設定された情報から、教示点LOC(i)毎にユーザーが選択した1つ以上の軸のそれぞれの可動範囲1624を決定することができる。 The control unit 301 can determine the movable range 1624 of one or more axes selected by the user for each teaching point LOC(i) from the information set on the UI screen in FIG. 7 .

制御部301は、ステップS51、S53およびS55において取得された教示点LOC(i)、ロボット30の画像351および各関節の軸の可動範囲を関連づけた情報を生成し、生成した情報(これは、教示点情報と呼ぶ)をメモリ305に格納する。制御部301は、他の教示点についても図19の処理を実行することにより、教示点情報を取得して、メモリ305に格納する。ダイレクトティーチング情報330は、メモリ305に格納された複数の教示点LOC(i)の教示点情報を示す。 The control unit 301 generates information that associates the teaching point LOC(i) acquired in steps S51, S53, and S55, the image 351 of the robot 30, and the movable range of the axis of each joint, and the generated information (this is (referred to as teaching point information) is stored in the memory 305. The control unit 301 acquires teaching point information by executing the process of FIG. 19 for other teaching points as well, and stores it in the memory 305. Direct teaching information 330 indicates teaching point information of a plurality of teaching points LOC(i) stored in memory 305.

<N.位置姿勢データの取得>
図20は、実施の形態にかかる位置姿勢データ187の取得の処理手順を示すフローチャートである。図20の処理は、図10のステップS7において、位置姿勢取得プログラム127が実行されることにより実現される。
<N. Acquisition of position and orientation data>
FIG. 20 is a flowchart showing a processing procedure for acquiring position and orientation data 187 according to the embodiment. The process in FIG. 20 is realized by executing the position and orientation acquisition program 127 in step S7 in FIG.

情報処理装置100は、例えば生産ラインが稼働時に、撮像部350により撮像された画像351を取得する(ステップS71)。具体的には、ピックアンドプレースの搬送を実施する場合に、ロボット30、周辺装置およびワーク232を撮像視野におさめた複数の画像351を取得する。複数の画像351は、ピックアンドプレースの搬送時間において連続して撮像された画像を含む。 The information processing device 100 acquires an image 351 captured by the imaging unit 350, for example, when the production line is in operation (step S71). Specifically, when performing pick-and-place transportation, a plurality of images 351 are acquired in which the robot 30, peripheral devices, and workpiece 232 are included in the imaging field of view. The plurality of images 351 include images continuously captured during pick-and-place transportation time.

情報処理装置100は、ステップS71で取得された複数の画像351と教示点LOC(i)の画像とを照合する(ステップS73)。具体的には、情報処理装置100は、複数の画像351と、ティーチングペンダント300から受信するダイレクトティーチング情報330に含まれる教示点LOC(i)の画像とを照合する。情報処理装置100は、照合の結果に基づき、教示点LOC(i)の画像が示すロボット30の挙動と同一挙動を示すロボットの画像を含む1つの画像351を、複数の画像351から抽出する。 The information processing device 100 compares the plurality of images 351 acquired in step S71 with the image of the teaching point LOC(i) (step S73). Specifically, the information processing device 100 compares the plurality of images 351 with the image of the teaching point LOC(i) included in the direct teaching information 330 received from the teaching pendant 300. Based on the comparison result, the information processing device 100 extracts one image 351 including an image of a robot exhibiting the same behavior as the behavior of the robot 30 indicated by the image of the teaching point LOC(i) from the plurality of images 351.

情報処理装置100は、教示点LOC(i)における周辺装置、ケーブル341およびワーク232の挙動を取得する(ステップS75)。具体的には、情報処理装置100は、上記の抽出された画像351において、ロボット30と周辺装置,ワーク232,ケーブル341との間の相対的な位置関係を検出する。情報処理装置100は、教示点LOC(i)が示すサーボモータの回転量(A、B、C、D、E、F)から算出されるロボット30に対応の仮想空間におけるオブジェクトの位置姿勢を示す値PA(x,y,z,xα,yβ,zγ)と、上記の検出した位置関係とに基づき、周辺装置,ワーク232,ケーブル341の当該仮想空間における位置姿勢を算出する。例えば、所定の換算式を用いて実施される。これにより、ダイレクトティーチング情報330が示すロボット30の各教示点LOC(i)について、仮想空間における周辺装置,ワーク232,ケーブル341に対応のオブジェクトの位置姿勢が取得される。 The information processing device 100 acquires the behavior of the peripheral device, the cable 341, and the workpiece 232 at the teaching point LOC(i) (step S75). Specifically, the information processing device 100 detects the relative positional relationship between the robot 30, the peripheral device, the workpiece 232, and the cable 341 in the extracted image 351 described above. The information processing device 100 indicates the position and orientation of the object in the virtual space corresponding to the robot 30, which is calculated from the rotation amount (A, B, C, D, E, F) of the servo motor indicated by the teaching point LOC(i). Based on the values PA (x, y, z, xα, yβ, zγ) and the above-described detected positional relationships, the positions and orientations of the peripheral device, work 232, and cable 341 in the virtual space are calculated. For example, it is implemented using a predetermined conversion formula. As a result, for each teaching point LOC(i) of the robot 30 indicated by the direct teaching information 330, the position and orientation of objects corresponding to the peripheral device, the workpiece 232, and the cable 341 in the virtual space are acquired.

情報処理装置100は、取得された各教示点LOC(i)に対応する周辺装置,ワーク232,ケーブル341に対応のオブジェクトの位置姿勢を、位置姿勢データ187としてデータ群180に設定する(ステップS77)。 The information processing device 100 sets the position and orientation of objects corresponding to the peripheral device, workpiece 232, and cable 341 corresponding to each acquired teaching point LOC(i) in the data group 180 as position and orientation data 187 (step S77 ).

<O.PLC200のハードウェア構成例とデータ転送>
PLC200のハードウェア構成例について説明する。図21は、実施の形態にかかるPLC200のハードウェア構成例を示す模式図である。
<O. PLC200 hardware configuration example and data transfer>
An example of the hardware configuration of the PLC 200 will be described. FIG. 21 is a schematic diagram showing an example of the hardware configuration of PLC 200 according to the embodiment.

図21を参照して、PLC200は、予めインストールされたプログラムをプロセッサが実行することで、制御対象に対する制御を実現する。より具体的には、PLC200は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ202と、チップセット204と、メインメモリ206と、揮発性メモリ207と、フラッシュメモリ208と、不揮発性メモリ209と、情報処理装置100と通信するUSBインターフェイス216と、記録媒体220が装着され得るメモリカードインターフェイス218と、内部バスコントローラ222と、フィールドバスコントローラ224とを含む。フラッシュメモリ108は、システムプログラム211およびユーザープログラム212を格納する。 Referring to FIG. 21, PLC 200 realizes control over a controlled object by having a processor execute a program installed in advance. More specifically, the PLC 200 includes a processor 202 such as a CPU (Central Processing Unit) or an MPU (Micro-Processing Unit), a chipset 204, a main memory 206, a volatile memory 207, a flash memory 208, It includes a nonvolatile memory 209, a USB interface 216 that communicates with the information processing device 100, a memory card interface 218 to which a recording medium 220 can be attached, an internal bus controller 222, and a field bus controller 224. Flash memory 108 stores system program 211 and user program 212.

プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム211およびユーザープログラム212を読出して、メインメモリ106に展開して実行することで、制御対象に対する制御を実現する。ユーザープログラム212は、制御プログラムと、システムサービスプログラムなどを含む。制御プログラムは、ロボット30の目標軌道を計算(生成)する軌道生成プログラム99を含む。軌道生成プログラム99は、例えばインタプリタプログラムを含む。 The processor 102 reads the system program 211 and the user program 212 stored in the flash memory 108, expands them to the main memory 106, and executes them, thereby realizing control over the controlled object. The user program 212 includes a control program, a system service program, and the like. The control program includes a trajectory generation program 99 that calculates (generates) a target trajectory for the robot 30. The trajectory generation program 99 includes, for example, an interpreter program.

チップセット204は、各コンポーネントを制御することで、PLC200全体としての処理を実現する。 The chipset 204 realizes the processing of the PLC 200 as a whole by controlling each component.

内部バスコントローラ222は、PLC200と内部バスを通じて連結される他のユニットとの間でデータを遣り取りするインターフェイスである。フィールドバスコントローラ224は、PLC200と図示しないフィールドバスを通じて連結されるI/Oユニットとの間でデータを遣り取りするインターフェイスである。内部バスコントローラ222およびフィールドバスコントローラ224は、対応のI/Oユニット314および316にそれぞれ入力される状態値を取得するとともに、プロセッサ202での演算結果を対応のI/Oユニット314および316から指令値としてそれぞれ出力する。 Internal bus controller 222 is an interface that exchanges data between PLC 200 and other units connected through an internal bus. The fieldbus controller 224 is an interface that exchanges data between the PLC 200 and an I/O unit connected through a fieldbus (not shown). The internal bus controller 222 and the fieldbus controller 224 acquire state values input to the corresponding I/O units 314 and 316, respectively, and also command the calculation results in the processor 202 from the corresponding I/O units 314 and 316. Output each as a value.

(o1.データ転送)
図22は、実施の形態にかかるデータ転送の一例を模式的に示す図である。図22を参照して、PLC200は、所定の制御周期77毎に、優先度に従いプログラムを実行する。例えば、優先度の高いプログラム88が実行される。プログラム88は、モーション制御プログラムを含む。プログラム88の実行が終了すると、次位の優先度である軌道生成プログラム99が実行され得る。軌道生成プログラム99は、例えば、複数の制御周期77毎に実行される。さらに優先度の低いシステムサービス10のプログラムが、軌道生成プログラム99の実行周期よりも長い周期で実行される。
(o1. Data transfer)
FIG. 22 is a diagram schematically showing an example of data transfer according to the embodiment. Referring to FIG. 22, PLC 200 executes the program according to the priority every predetermined control period 77. For example, a program 88 with a high priority is executed. Program 88 includes a motion control program. When the execution of the program 88 is completed, the trajectory generation program 99, which has the next highest priority, can be executed. The trajectory generation program 99 is executed, for example, every multiple control cycles 77. Furthermore, the system service 10 program, which has a lower priority, is executed at a cycle longer than the execution cycle of the trajectory generation program 99.

ステップS17(図10)で教示点LOC(i)の可動範囲のデータが転送されると、PLC200は、情報処理装置100から受信する可動範囲のデータを不揮発性メモリ209に格納する。具体的には、情報処理装置100は、制御の空き時間、すなわちシステムサービス10が実行される時間を用いて、可動範囲のデータ12を、PLC200の不揮発性メモリ209に格納する(ステップS17)。PLC200は、不揮発性メモリ209に可動範囲データ12が格納されると、その後、軌道生成プログラム99の開始時に、不揮発性メモリ209の可動範囲データ12を読出し、読み出された可動範囲データ12を揮発性メモリ207に格納する(ステップS50)。これにより、揮発性メモリ207に格納されていた旧の可動範囲データ11は、新たな可動範囲データ12に更新(書換)される。ここで、揮発性メモリ207に格納される可動範囲データ11(または可動範囲データ12)は、軌道生成プログラム99が参照するパラメータである。すなわち、軌道生成プログラム99は生成する軌道の目標値が教示点LOC(i)を示すとき、各軸に対応して生成される指令値が、教示点LOC(i)に対応の可動範囲データ11(または可動範囲データ12)が示す下限値~上限値内を超えないように指令値を生成する。このように、可動範囲データ11(または可動範囲データ12)は、指令値を適正値(すなわち、干渉またはケーブル341の破損を回避し得る値)とする閾値パラメータに相当する。 When the data on the movable range of the teaching point LOC(i) is transferred in step S17 (FIG. 10), the PLC 200 stores the data on the movable range received from the information processing device 100 in the nonvolatile memory 209. Specifically, the information processing device 100 stores the movable range data 12 in the nonvolatile memory 209 of the PLC 200 using the control free time, that is, the time when the system service 10 is executed (step S17). After the movable range data 12 is stored in the nonvolatile memory 209, the PLC 200 reads the movable range data 12 from the nonvolatile memory 209 at the start of the trajectory generation program 99, and volatilizes the read movable range data 12. The data is stored in the data memory 207 (step S50). As a result, the old movable range data 11 stored in the volatile memory 207 is updated (rewritten) to the new movable range data 12. Here, the movable range data 11 (or movable range data 12) stored in the volatile memory 207 is a parameter referred to by the trajectory generation program 99. That is, when the target value of the trajectory to be generated indicates the teaching point LOC(i), the trajectory generation program 99 sets the command value generated corresponding to each axis to the movable range data 11 corresponding to the teaching point LOC(i). The command value is generated so as not to exceed the lower limit value to the upper limit value indicated by (or the movable range data 12). In this way, the movable range data 11 (or the movable range data 12) corresponds to a threshold parameter that sets the command value to an appropriate value (that is, a value that can avoid interference or damage to the cable 341).

これにより、シミュレーション装置1で算出された教示点LOC(i)毎の各軸の可動範囲を実機であるPLC200のロボット30の制御に反映することができる。 Thereby, the movable range of each axis for each teaching point LOC(i) calculated by the simulation device 1 can be reflected in the control of the robot 30 of the PLC 200, which is an actual machine.

また、新たな可動範囲データ12を用いて揮発性メモリ207の旧の可動範囲データ11を書き換えるタイミングは、情報処理装置100が指定する時間データ13によって指定してもよい。システムサービス10は、時間データ13が指示するタイミングで、当該書換を実施する。例えば、時間データ13は、生産ラインの段取り替えのタイミングなどを示してもよい。 Furthermore, the timing for rewriting the old movable range data 11 in the volatile memory 207 using the new movable range data 12 may be specified by the time data 13 specified by the information processing device 100. The system service 10 performs the rewriting at the timing indicated by the time data 13. For example, the time data 13 may indicate the timing of changeover of a production line.

<P.プログラム>
図10と図11に示すシミュレーションは、図3の情報処理装置100のプロセッサ102がストレージ120などのメモリに格納されるプログラムを実行することにより提供される構成を例示したが、これらの提供される構成の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、情報処理装置100の主要部を、汎用的なアーキテクチャに従うハードウェアを用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
<P. Program>
The simulations shown in FIGS. 10 and 11 illustrate a configuration provided by the processor 102 of the information processing device 100 in FIG. 3 executing a program stored in a memory such as the storage 120. Part or all of the configuration may be implemented using a dedicated hardware circuit (for example, an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array)). Alternatively, the main parts of the information processing device 100 may be realized using hardware that follows a general-purpose architecture. In this case, virtualization technology may be used to run multiple OSs for different purposes in parallel, and to run necessary applications on each OS.

また、情報処理装置100は、プロセッサを複数個備えてもよい。この場合は、ケーブルシミュレーションは、複数のプロセッサにより実行することが可能である。また、プロセッサ102が複数のコアを含む場合は、ケーブルシミュレーションは、プロセッサ102内の複数のコアにより実行することが可能である。 Further, the information processing device 100 may include a plurality of processors. In this case, cable simulation can be performed by multiple processors. Additionally, if processor 102 includes multiple cores, cable simulation can be performed by multiple cores within processor 102.

情報処理装置100の記憶媒体114は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。情報処理装置100のプロセッサ102は、これら記憶媒体から、上記に述べたケーブルシミュレーションにかかるプログラムまたはパラメータを取得してもよい。 The storage medium 114 of the information processing device 100 stores information such as programs electrically, magnetically, optically, mechanically, or It is a medium that accumulates through chemical action. The processor 102 of the information processing device 100 may acquire the program or parameters related to the cable simulation described above from these storage media.

<Q.利点>
実施の形態にかかるシミュレーションを利用することにより、ロボット30の各関節に対応の軸の可動範囲を、干渉およびケーブル破損を回避可能な範囲である適正範囲となるように調整することができる。また、シミュレーションでは、「対象軸」の初期設定の可動範囲1624(上限値1629および下限値1628)は、干渉およびケーブル破損の可能性が検出されると、狭める方向に変更される。これにより、「対象軸」の可動範囲1624を、可能な限り広い範囲に決定することができる。「対象軸」の可動範囲1624は可能な限り広い範囲に決定されることで、ロボット30の可動範囲も可能な限り広い範囲に設定することができる。設定された各軸の可動範囲は、PLC200が実行するロボット制御プログラムが参照する可動範囲の閾値に設定することができる。
<Q. Advantages>
By using the simulation according to the embodiment, the movable range of the axis corresponding to each joint of the robot 30 can be adjusted to an appropriate range that is a range that can avoid interference and cable damage. Furthermore, in the simulation, the initially set movable range 1624 (upper limit value 1629 and lower limit value 1628) of the "target axis" is changed to narrow it when the possibility of interference and cable damage is detected. Thereby, the movable range 1624 of the "target axis" can be determined to be as wide as possible. By determining the movable range 1624 of the "target axis" to be as wide as possible, the movable range of the robot 30 can also be set as wide as possible. The set movable range of each axis can be set to a movable range threshold referenced by the robot control program executed by the PLC 200.

実施の形態の背景として、ロボット30が備えられる生産ラインでは、例えばワーク搬送を行う際に、ロボット30は、教示時の姿勢とは異なる姿勢で教示点に移動するケースが発生する。例えば、画像センサでワーク232の姿勢を検知し、検知結果に応じて、ピック位置またはプレース位置が現場で補正される場合は、ロボットの姿勢も補正されて、その結果、ロボット30の姿勢は、ロボット制御プログラムによって設計された姿勢とは異なる姿勢をとるケースが発生する。 As a background of the embodiment, in a production line equipped with a robot 30, for example, when transporting a workpiece, the robot 30 may move to a teaching point in an attitude different from the attitude at the time of teaching. For example, if the posture of the workpiece 232 is detected by an image sensor and the pick position or place position is corrected on site according to the detection result, the posture of the robot is also corrected, and as a result, the posture of the robot 30 is A case may occur in which the robot takes a posture different from the posture designed by the robot control program.

このようなケースであっても、ロボット制御プログラムが参照する可動範囲は、シミュレーションによって決定された可能な限り広い範囲に設定することができる。したがって、このようなケースであっても、ケーブル341の破損またはロボット30と周辺装置との干渉、またはロボットハンド210と周辺装置の干渉などを回避しながら、ロボット30を用いたワーク搬送を実現できる。 Even in such a case, the movable range referred to by the robot control program can be set to the widest possible range determined by simulation. Therefore, even in such a case, the workpiece can be transferred using the robot 30 while avoiding damage to the cable 341, interference between the robot 30 and peripheral devices, or interference between the robot hand 210 and peripheral devices. .

<R.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
<R. Additional notes>
This embodiment as described above includes the following technical idea.

[構成1]
複数の関節(1300~1305)を有した機器(30)の挙動を推定するシミュレーション装置(1)であって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記シミュレーション装置は、
前記機器に対するダイレクトティーチングの情報(330)であって、前記複数の軸のうち1つ以上の軸の可動範囲を含む情報に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータ(160)と、
前記仮想空間をビジュアル化した画像を生成する画像生成部(164)と、を備える、シミュレーション装置。
[Configuration 1]
A simulation device (1) for estimating the behavior of a device (30) having a plurality of joints (1300 to 1305),
The device includes a plurality of axes, each of which corresponds to a joint of the device,
The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes,
The simulation device includes:
direct teaching information (330) for the device, the behavior of a target placed in a virtual space corresponding to the device based on information including a movable range of one or more axes among the plurality of axes; a first simulator (160) that performs a simulation to calculate;
A simulation device, comprising: an image generation unit (164) that generates an image that visualizes the virtual space.

[構成2]
各前記1つ以上の軸の可動範囲を変更する範囲変更部(166)を、さらに備え、
前記第1のシミュレータは、さらに、
各前記1つ以上の軸の変更された前記可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する、構成1に記載のシミュレーション装置。
[Configuration 2]
further comprising a range changing unit (166) that changes the movable range of each of the one or more axes,
The first simulator further includes:
The simulation device according to configuration 1, which executes a simulation that calculates the behavior of an object placed in a virtual space corresponding to the device, based on the changed movable range of each of the one or more axes.

[構成3]
前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器の周辺装置に対応する対象を含み、
前記機器に対応する対象の挙動は、当該対象の前記仮想空間における位置を含み、
前記範囲変更部は、前記仮想空間における前記機器に対応の対象と前記異なる対象との位置間の相対的な関係が特定位置関係を示すとき、各軸の可動範囲を変更する、構成2に記載のシミュレーション装置。
[Configuration 3]
A target different from a target corresponding to the device is arranged in the virtual space,
The different targets include targets corresponding to peripheral devices of the device,
The behavior of the object corresponding to the device includes the position of the object in the virtual space,
According to configuration 2, the range changing unit changes the movable range of each axis when a relative relationship between positions of an object corresponding to the device and the different object in the virtual space indicates a specific positional relationship. simulation equipment.

[構成4]
前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器に取付けられるケーブル(341)に対応する前記仮想空間に配置された対象(340)を含み、
前記機器に対応する仮想空間に配置された対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された対象の挙動を算出する第2のシミュレータ(154)を、さらに備える、構成2または3に記載のシミュレーション装置。
[Configuration 4]
A target different from a target corresponding to the device is arranged in the virtual space,
The different objects include an object (340) located in the virtual space that corresponds to a cable (341) attached to the device,
a second simulator (154 ) The simulation device according to configuration 2 or 3, further comprising:

[構成5]
前記シミュレーション装置は、
前記第2のシミュレータによって算出された前記ケーブルに対応する対象の挙動に基づき、当該対象にかかる負荷を算出し、
前記範囲変更部は、算出された前記負荷が所定条件を満たすとき、各前記1つ以上の軸の可動範囲を変更する、構成4に記載のシミュレーション装置。
[Configuration 5]
The simulation device includes:
Calculating the load applied to the object based on the behavior of the object corresponding to the cable calculated by the second simulator,
The simulation device according to configuration 4, wherein the range changing unit changes the movable range of each of the one or more axes when the calculated load satisfies a predetermined condition.

[構成6]
前記ダイレクトティーチングの情報は、前記機器がとるべき位置姿勢を示す教示点(LOC(i))に関連づけされた前記1つ以上の軸の可動範囲の情報を含み、
前記第1のシミュレータは、さらに、
前記教示点が示す位置姿勢と当該教示点に関連づけされた各前記1つ以上の軸の可動範囲とに基づいて、前記機器に対応する前記仮想空間に配置された対象の挙動を算出する、構成1から5のいずれか1に記載のシミュレーション装置。
[Configuration 6]
The direct teaching information includes information on a movable range of the one or more axes associated with a teaching point (LOC(i)) indicating a position and orientation that the device should take,
The first simulator further includes:
A configuration in which the behavior of an object placed in the virtual space corresponding to the device is calculated based on the position and orientation indicated by the teaching point and the movable range of each of the one or more axes associated with the teaching point. 6. The simulation device according to any one of 1 to 5.

[構成7]
前記可動範囲は、上限値および下限値を用いて示され、
前記可動範囲を用いて前記機器を制御するコントローラ(200)に、前記第1のシミュレータが前記機器の挙動の算出に用いた各前記1つ以上の軸の可動範囲を示すデータを送信する転送部(400)を、さらに備える、構成1から6のいずれか1に記載のシミュレーション装置。
[Configuration 7]
The movable range is indicated using an upper limit value and a lower limit value,
a transfer unit that transmits data indicating the movable range of each of the one or more axes used by the first simulator to calculate the behavior of the device to a controller (200) that controls the device using the movable range; (400) The simulation device according to any one of Configurations 1 to 6, further comprising (400).

[構成8]
コンピュータ(100)に、複数の関節(1300~1305)を有した機器(30)の挙動を推定する方法を実行させるためのプログラムであって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記方法は、
前記機器に対するダイレクトティーチングの情報(330)であって、前記複数の軸のうちの1つ以上の軸の可動範囲を含む情報に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップ(S11)と、
前記仮想空間をビジュアル化した画像を生成するステップと、を備える、プログラム。
[Configuration 8]
A program for causing a computer (100) to execute a method for estimating the behavior of a device (30) having a plurality of joints (1300 to 1305), the program comprising:
The device includes a plurality of axes, each of which corresponds to a joint of the device,
The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes,
The method includes:
Direct teaching information (330) for the device, the behavior of a target placed in a virtual space corresponding to the device based on information including the range of motion of one or more of the plurality of axes. a step (S11) of performing a simulation to calculate
A program comprising: generating an image visualizing the virtual space.

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed this time should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is indicated by the claims rather than the description of the embodiments described above, and it is intended that all changes within the meaning and scope equivalent to the claims are included.

1 シミュレーション装置、2 制御システム、22 フィールドネットワーク、30 ロボット、100 情報処理装置、105 仮想空間情報、122 物理シミュレーションプログラム、124 物理シミュレーションパラメータ、125 周辺情報設定プログラム、127 位置姿勢取得プログラム、128 範囲変更プログラム、130 ロボットシミュレーションプログラム、131 ケーブルシミュレーションプログラム、132 ロボットパラメータ、133 画像処理プログラム、134 転送プログラム、135 評価プログラム、136 統合プログラム、150 仮想空間情報管理モジュール、154 ケーブルシミュレータ、155 評価モジュール、160 ロボットシミュレータ、164 ビジュアライザ、166 範囲変更モジュール、170 情報設定モジュール、180 データ群、184 教示点データ、186 確認項目データ、187 位置姿勢データ、190 位置姿勢取得モジュール、200 プログラマブルロジックコントローラ、300 ティーチングペンダント、310 ロボットコントローラ、330 ダイレクトティーチング情報、340 視覚センサ、341 ケーブル、1624 可動範囲。 1 simulation device, 2 control system, 22 field network, 30 robot, 100 information processing device, 105 virtual space information, 122 physical simulation program, 124 physical simulation parameter, 125 peripheral information setting program, 127 position and orientation acquisition program, 128 range change Program, 130 Robot simulation program, 131 Cable simulation program, 132 Robot parameters, 133 Image processing program, 134 Transfer program, 135 Evaluation program, 136 Integration program, 150 Virtual space information management module, 154 Cable simulator, 155 Evaluation module, 160 Robot Simulator, 164 Visualizer, 166 Range change module, 170 Information setting module, 180 Data group, 184 Teaching point data, 186 Check item data, 187 Position and orientation data, 190 Position and orientation acquisition module, 200 Programmable logic controller, 300 Teaching pendant, 310 robot controller, 330 direct teaching information, 340 visual sensor, 341 cable, 1624 movable range.

Claims (8)

複数の関節を有した機器の挙動を推定するシミュレーション装置であって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記シミュレーション装置は、
前記機器に対するダイレクトティーチングの情報であって、前記複数の軸のうちの1つ以上の軸の可動範囲を含む情報に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータと、
前記仮想空間をビジュアル化した画像を生成する画像生成部と
各前記1つ以上の軸の可動範囲を変更する範囲変更部を、備え、
前記第1のシミュレータは、さらに、
各軸の変更された前記可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施し、
前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器の周辺装置に対応する対象を含み、
前記機器に対応する対象の挙動は、当該対象の前記仮想空間における位置を含み、
前記範囲変更部は、前記仮想空間における前記機器に対応の対象と前記異なる対象との位置間の相対的な関係が特定位置関係を示すとき、各前記1つ以上の軸の可動範囲を変更する、シミュレーション装置。
A simulation device for estimating the behavior of a device having multiple joints,
The device includes a plurality of axes, each of which corresponds to a joint of the device,
The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes,
The simulation device includes:
Calculating the behavior of a target placed in a virtual space corresponding to the device based on direct teaching information for the device, which includes a movable range of one or more of the plurality of axes. a first simulator that performs simulation;
an image generation unit that generates an image visualizing the virtual space ;
comprising a range changing unit that changes the movable range of each of the one or more axes,
The first simulator further includes:
Performing a simulation to calculate the behavior of an object placed in a virtual space corresponding to the device based on the changed movable range of each axis,
A target different from a target corresponding to the device is arranged in the virtual space,
The different targets include targets corresponding to peripheral devices of the device,
The behavior of the object corresponding to the device includes the position of the object in the virtual space,
The range changing unit changes the movable range of each of the one or more axes when a relative relationship between the positions of an object corresponding to the device and the different object in the virtual space indicates a specific positional relationship. , simulation equipment.
前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器に取付けられるケーブルに対応する前記仮想空間に配置された対象を含み、
前記機器に対応する仮想空間に配置された対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された対象の挙動を算出する第2のシミュレータを、さらに備える、請求項に記載のシミュレーション装置。
A target different from a target corresponding to the device is arranged in the virtual space,
The different objects include objects placed in the virtual space that correspond to cables attached to the equipment,
a second simulator that calculates the behavior of an object placed in the virtual space corresponding to the cable, based on the behavior of the object placed in the virtual space corresponding to the device, using parameters related to the attachment of the cable; The simulation device according to claim 1 , further comprising: .
前記シミュレーション装置は、
前記第2のシミュレータによって算出された前記ケーブルに対応する対象の挙動に基づき、当該対象にかかる負荷を算出し、
前記範囲変更部は、算出された前記負荷が所定条件を満たすとき、各前記1つ以上の軸の可動範囲を変更する、請求項に記載のシミュレーション装置。
The simulation device includes:
Calculating the load applied to the object based on the behavior of the object corresponding to the cable calculated by the second simulator,
The simulation device according to claim 2 , wherein the range changing unit changes the movable range of each of the one or more axes when the calculated load satisfies a predetermined condition.
複数の関節を有した機器の挙動を推定するシミュレーション装置であって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記シミュレーション装置は、
前記機器に対するダイレクトティーチングの情報であって、前記複数の軸のうちの1つ以上の軸の可動範囲を含む情報に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータと、
前記仮想空間をビジュアル化した画像を生成する画像生成部と、を備え、
前記ダイレクトティーチングの情報は、前記機器がとるべき位置姿勢を示す教示点に関連づけされた前記1つ以上の軸の可動範囲の情報を含み、
前記第1のシミュレータは、さらに、
前記教示点が示す位置姿勢と当該教示点に関連づけされた各前記1つ以上の軸の可動範囲とに基づいて、前記機器に対応する前記仮想空間に配置された対象の挙動を算出する、ミュレーション装置。
A simulation device for estimating the behavior of a device having multiple joints,
The device includes a plurality of axes, each of which corresponds to a joint of the device,
The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes,
The simulation device includes:
Calculating the behavior of a target placed in a virtual space corresponding to the device based on direct teaching information for the device that includes a movable range of one or more of the plurality of axes. a first simulator that performs simulation;
an image generation unit that generates an image visualizing the virtual space,
The direct teaching information includes information on a movable range of the one or more axes associated with a teaching point indicating a position and orientation that the device should take,
The first simulator further includes:
A system that calculates the behavior of an object placed in the virtual space corresponding to the device based on the position and orientation indicated by the teaching point and the movable range of each of the one or more axes associated with the teaching point . simulation device.
複数の関節を有した機器の挙動を推定するシミュレーション装置であって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記シミュレーション装置は、
前記機器に対するダイレクトティーチングの情報であって、前記複数の軸のうちの1つ以上の軸の可動範囲を含む情報に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施する第1のシミュレータと、
前記仮想空間をビジュアル化した画像を生成する画像生成部と、を備え、
前記可動範囲は、上限値および下限値を用いて示され、
前記可動範囲を用いて前記機器を制御するコントローラに、前記第1のシミュレータが前記機器の挙動の算出に用いた各前記1つ以上の軸の可動範囲を示すデータを送信する転送部を、さらに備える、ミュレーション装置。
A simulation device for estimating the behavior of a device having multiple joints,
The device includes a plurality of axes, each of which corresponds to a joint of the device,
The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes,
The simulation device includes:
Calculating the behavior of a target placed in a virtual space corresponding to the device based on direct teaching information for the device that includes a movable range of one or more of the plurality of axes. a first simulator that performs simulation;
an image generation unit that generates an image visualizing the virtual space,
The movable range is indicated using an upper limit value and a lower limit value,
further comprising a transfer unit that transmits data indicating the movable range of each of the one or more axes used by the first simulator to calculate the behavior of the device to a controller that controls the device using the movable range; equipped with a simulation device.
コンピュータに、複数の関節を有した機器の挙動を推定する方法を実行させるためのプログラムであって、
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、
前記方法は、
前記機器に対するダイレクトティーチングの情報であって、前記複数の軸のうちの1つ以上の軸の可動範囲を含む情報に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップと、
前記仮想空間をビジュアル化した画像を生成するステップと、
各前記1つ以上の軸の可動範囲を変更するステップと、を備え、
前記シミュレーションを実施するステップは、
各軸の変更された前記可動範囲に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップを有し、
前記仮想空間には、前記機器に対応の対象とは異なる対象が配置され、
前記異なる対象は、前記機器の周辺装置に対応する対象を含み、
前記機器に対応する対象の挙動は、当該対象の前記仮想空間における位置を含み、
前記可動範囲を変更するステップは、前記仮想空間における前記機器に対応の対象と前記異なる対象との位置間の相対的な関係が特定位置関係を示すとき、各前記1つ以上の軸の可動範囲を変更するステップを有する、プログラム。
A program for causing a computer to execute a method for estimating the behavior of a device having multiple joints, the program comprising:
The device includes a plurality of axes, each of which corresponds to a joint of the device,
The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes,
The method includes:
Calculating the behavior of a target placed in a virtual space corresponding to the device based on direct teaching information for the device that includes a movable range of one or more of the plurality of axes. a step of performing a simulation;
generating an image visualizing the virtual space;
changing the range of motion of each of the one or more axes,
The step of performing the simulation includes:
a step of performing a simulation to calculate the behavior of an object placed in a virtual space corresponding to the device based on the changed movable range of each axis;
A target different from a target corresponding to the device is arranged in the virtual space,
The different targets include targets corresponding to peripheral devices of the device,
The behavior of the object corresponding to the device includes the position of the object in the virtual space,
The step of changing the movable range includes changing the movable range of each of the one or more axes when the relative relationship between the positions of the object corresponding to the device and the different object in the virtual space indicates a specific positional relationship. A program that has steps for changing .
コンピュータに、複数の関節を有した機器の挙動を推定する方法を実行させるためのプログラムであって、A program for causing a computer to execute a method for estimating the behavior of a device having multiple joints, the program comprising:
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、The device includes a plurality of axes, each of which corresponds to a joint of the device,
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes,
前記方法は、The method includes:
前記機器に対するダイレクトティーチングの情報であって、前記複数の軸のうちの1つ以上の軸の可動範囲を含む情報に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップと、Calculating the behavior of a target placed in a virtual space corresponding to the device based on direct teaching information for the device that includes a movable range of one or more of the plurality of axes. a step of performing a simulation;
前記仮想空間をビジュアル化した画像を生成するステップと、を備え、generating an image visualizing the virtual space;
前記ダイレクトティーチングの情報は、前記機器がとるべき位置姿勢を示す教示点に関連づけされた前記1つ以上の軸の可動範囲の情報を含み、The direct teaching information includes information on a movable range of the one or more axes associated with a teaching point indicating a position and orientation that the device should take,
前記シミュレーションを実施するステップは、The step of performing the simulation includes:
前記教示点が示す位置姿勢と当該教示点に関連づけされた各前記1つ以上の軸の可動範囲とに基づいて、前記機器に対応する前記仮想空間に配置された対象の挙動を算出するステップを有する、プログラム。calculating the behavior of an object placed in the virtual space corresponding to the device based on the position and orientation indicated by the teaching point and the movable range of each of the one or more axes associated with the teaching point; Has a program.
コンピュータに、複数の関節を有した機器の挙動を推定する方法を実行させるためのプログラムであって、A program for causing a computer to execute a method for estimating the behavior of a device having multiple joints, the program comprising:
前記機器は、それぞれが当該機器の関節に対応した複数の軸を備え、The device includes a plurality of axes, each of which corresponds to a joint of the device,
各前記複数の軸に対応の関節は、当該軸の動きに連動して動作し、The joints corresponding to each of the plurality of axes operate in conjunction with the movement of the axes,
前記方法は、The method includes:
前記機器に対するダイレクトティーチングの情報であって、前記複数の軸のうちの1つ以上の軸の可動範囲を含む情報に基づいて、前記機器に対応する仮想空間に配置された対象の挙動を算出するシミュレーションを実施するステップと、Calculating the behavior of a target placed in a virtual space corresponding to the device based on direct teaching information for the device that includes a movable range of one or more of the plurality of axes. a step of performing a simulation;
前記仮想空間をビジュアル化した画像を生成するステップと、を備え、generating an image visualizing the virtual space;
前記可動範囲は、上限値および下限値を用いて示され、The movable range is indicated using an upper limit value and a lower limit value,
前記シミュレーションを実施するステップは、前記機器の挙動の算出に用いた各前記1つ以上の軸の可動範囲を示すデータを、前記可動範囲を用いて前記機器を制御するコントローラに送信するステップを有する、プログラム。The step of performing the simulation includes the step of transmitting data indicating a movable range of each of the one or more axes used to calculate the behavior of the device to a controller that controls the device using the movable range. ,program.
JP2020041723A 2020-03-11 2020-03-11 Simulation equipment and programs Active JP7447568B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020041723A JP7447568B2 (en) 2020-03-11 2020-03-11 Simulation equipment and programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020041723A JP7447568B2 (en) 2020-03-11 2020-03-11 Simulation equipment and programs

Publications (2)

Publication Number Publication Date
JP2021142596A JP2021142596A (en) 2021-09-24
JP7447568B2 true JP7447568B2 (en) 2024-03-12

Family

ID=77765792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020041723A Active JP7447568B2 (en) 2020-03-11 2020-03-11 Simulation equipment and programs

Country Status (1)

Country Link
JP (1) JP7447568B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009274148A (en) 2008-05-12 2009-11-26 Kanto Auto Works Ltd Simulation device
JP2019018257A (en) 2017-07-12 2019-02-07 ファナック株式会社 Robot system and teaching method of robot

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009274148A (en) 2008-05-12 2009-11-26 Kanto Auto Works Ltd Simulation device
JP2019018257A (en) 2017-07-12 2019-02-07 ファナック株式会社 Robot system and teaching method of robot

Also Published As

Publication number Publication date
JP2021142596A (en) 2021-09-24

Similar Documents

Publication Publication Date Title
US9387589B2 (en) Visual debugging of robotic tasks
US8306661B2 (en) Method and system for establishing no-entry zone for robot
CN110573308B (en) Computer-based method and system for spatial programming of robotic devices
EP3171237B1 (en) Simulator, simulation method, and simulation program
US10410339B2 (en) Simulator, simulation method, and simulation program
JP6931457B2 (en) Motion generation method, motion generator, system and computer program
JP7326911B2 (en) Control system and control method
US8406923B2 (en) Apparatus for determining pickup pose of robot arm with camera
JP6826069B2 (en) Robot motion teaching device, robot system and robot control device
JP2017094406A (en) Simulation device, simulation method, and simulation program
JP7388074B2 (en) Simulation device, simulation program and simulation method
US20170277167A1 (en) Robot system, robot control device, and robot
JP2018167334A (en) Teaching device and teaching method
US20180085920A1 (en) Robot control device, robot, and robot system
JP7447568B2 (en) Simulation equipment and programs
JP7424122B2 (en) Simulation equipment and programs
WO2021149419A1 (en) Simulation device, and simulation program
CN115972192A (en) 3D computer vision system with variable spatial resolution
JP2022132506A (en) Simulation method, simulation system, and data structure of module data
JP7249221B2 (en) SENSOR POSITION AND POSTURE CALIBRATION DEVICE AND SENSOR POSITION AND POSTURE CALIBRATION METHOD
WO2022137581A1 (en) Simulation device and simulation program
US20220301209A1 (en) Device and method for training a neural network for controlling a robot
Borangiu et al. Constraints-based motion planning for an automatic, flexible laser scanning robotized platform
JP2019111588A (en) Robot system, information processor, and program
Villaverde et al. Camera Calibration Algorithm for Industrial Robot

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240212

R150 Certificate of patent or registration of utility model

Ref document number: 7447568

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150