JP6282140B2 - Orbit generation method, robot apparatus, program, and recording medium - Google Patents

Orbit generation method, robot apparatus, program, and recording medium Download PDF

Info

Publication number
JP6282140B2
JP6282140B2 JP2014034932A JP2014034932A JP6282140B2 JP 6282140 B2 JP6282140 B2 JP 6282140B2 JP 2014034932 A JP2014034932 A JP 2014034932A JP 2014034932 A JP2014034932 A JP 2014034932A JP 6282140 B2 JP6282140 B2 JP 6282140B2
Authority
JP
Japan
Prior art keywords
trajectory
robot arm
robot
point
robot arms
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
JP2014034932A
Other languages
Japanese (ja)
Other versions
JP2015160253A (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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014034932A priority Critical patent/JP6282140B2/en
Publication of JP2015160253A publication Critical patent/JP2015160253A/en
Application granted granted Critical
Publication of JP6282140B2 publication Critical patent/JP6282140B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本発明は、複数のロボットアームの軌道を求める軌道生成方法、ロボット装置、プログラム及び記録媒体に関する。   The present invention relates to a trajectory generation method for obtaining trajectories of a plurality of robot arms, a robot apparatus, a program, and a recording medium.

自動車や電機製品等の生産ラインでは、複数のロボットアームを用いて、溶接や組み立て等の作業を自動化している。複数のロボットアームは、互いの動作領域が重なり合うように互いに近接して配置されている。複数のロボットアームの教示作業は、従来、教示者が各ロボットアームを1ステップずつ実際に動作させながら行っていた。そして、教示者は、ロボットアーム間で衝突が生じないように各ロボットアームの動作軌道と、各動作軌道間の実行タイミングを試行錯誤的に教示していた。   In production lines for automobiles and electrical products, a plurality of robot arms are used to automate operations such as welding and assembly. The plurality of robot arms are arranged close to each other so that their operation areas overlap each other. Conventionally, teaching work for a plurality of robot arms has been performed by a teacher while actually operating each robot arm step by step. The teacher teaches the operation trajectory of each robot arm and the execution timing between each operation trajectory in a trial and error manner so that no collision occurs between the robot arms.

しかし、教示者による試行錯誤的な教示では、複数のロボットアームを効率的に動作させるのが非常に難しいという問題があった。複数のロボットアームを効率的に動作させようとすると、その教示作業は非常に複雑になり、かつ教示および動作確認に非常に時間がかかっていた。特に、製品の種類が頻繁に変わる環境では、製品の種類が変更される度に教示者が教示作業を全てやり直すことになる。実際にロボットアームが稼動して生産を行う直接工程よりも、教示作業などの間接工程時間の比率が増大し、生産性が極端に低下してしまっていた。   However, trial and error teaching by a teacher has a problem that it is very difficult to operate a plurality of robot arms efficiently. When trying to operate a plurality of robot arms efficiently, the teaching work becomes very complicated, and it takes a very long time for teaching and checking the operation. In particular, in an environment where the type of product changes frequently, every time the type of product is changed, the instructor redoes all teaching operations. The ratio of indirect process time, such as teaching work, increased compared to the direct process where the robot arm actually operated and produced, and the productivity was extremely reduced.

そこで、近年では、教示者による直接教示に代わって、計算機を用いて複数のロボットアームの教示作業と動作制御を効率化する方法や装置が提案されている(非特許文献1参照)。非特許文献1には、PRM(Probabilistic RoadMap Method)による経路生成アルゴリズムにしたがって経路生成を行い、ロボットアーム同士の衝突回避を行う手法が開示されている。   Therefore, in recent years, instead of direct teaching by a teacher, there has been proposed a method and apparatus for improving the efficiency of teaching work and operation control of a plurality of robot arms using a computer (see Non-Patent Document 1). Non-Patent Document 1 discloses a method of generating a route according to a route generation algorithm based on PRM (Probabilistic RoadMap Method) and avoiding collision between robot arms.

G. S´anchez and J.-C. Latombe, “On delaying collision checking in PRM planning: Application to multi-robot coordination” International Journal of Robotics Research, vol. 21, no. 1, pp. 5-26, 2002.G. S´anchez and J.-C. Latombe, “On delaying collision checking in PRM planning: Application to multi-robot coordination” International Journal of Robotics Research, vol. 21, no. 1, pp. 5-26, 2002 .

非特許文献1の方法は、双腕ロボットアームを1つのロボットアームとみなして、PRMによるアルゴリズムにしたがって各ロボットアームの経路の生成を行い、ロボットアームを同期させ、ロボットアーム同士の衝突(干渉)を回避する軌道を計算する手法である。この非特許文献1の方法では、双腕ロボットアームを1つのロボットアームとみなし、双腕ロボットアームのコンフィグレーション(各軸の関節角度)を関節空間、いわゆるCスペース(Configuration Space)で1つの点として扱う。例えば、各ロボットアームが2軸の場合には、1つのロボットアームとみなした開始点や目標点のコンフィグレーションは、4つのパラメータで表される。そして、2つのロボットアームをそれぞれ開始点から目標点まで終始、衝突を回避するよう同期させると、2つのロボットアームがそれぞれの目標点に到着するタイミングが同じになる。   The method of Non-Patent Document 1 considers a double-arm robot arm as one robot arm, generates a path for each robot arm according to an algorithm by PRM, synchronizes the robot arms, and collides (interferences) between robot arms. This is a method of calculating a trajectory that avoids this. In the method of Non-Patent Document 1, the double-arm robot arm is regarded as one robot arm, and the configuration (joint angle of each axis) of the double-arm robot arm is set to one point in a joint space, so-called C space (Configuration Space). Treat as. For example, when each robot arm has two axes, the configuration of the start point and the target point regarded as one robot arm is represented by four parameters. When the two robot arms are synchronized from the start point to the target point to avoid collision, the timings at which the two robot arms arrive at the target points are the same.

しかしながら、ロボットアーム同士の衝突の回避動作の必要のない区間においても、ロボットアーム同士を同期させているため、各ロボットアームの動きに無駄な制約が生じ、ロボットアームが目標点に到達する時間が長くなっていた。つまり、従来の方法では、それぞれのロボットアームの移動時間の最適化が十分ではなかったため、動作時間に無駄が生じていた。そのため、ロボットアームの動作時間の短縮化が望まれていた。   However, since the robot arms are synchronized even in a section where the collision avoidance operation between the robot arms is not necessary, useless restrictions occur in the movement of each robot arm, and the time for the robot arm to reach the target point is increased. It was long. That is, in the conventional method, the movement time of each robot arm is not sufficiently optimized, and thus the operation time is wasted. Therefore, it has been desired to shorten the operation time of the robot arm.

そこで、本発明は、各ロボットアームの開始点から目標点までの動作時間を短縮化する軌道を生成する軌道生成方法、ロボット装置、プログラム及び記録媒体を提供することを目的とする。   Therefore, an object of the present invention is to provide a trajectory generation method, a robot apparatus, a program, and a recording medium that generate a trajectory that shortens the operation time from the start point of each robot arm to a target point.

本発明の軌道生成方法は、多関節である複数のロボットアームの軌道を求める軌道生成方法であって、演算部が、前記各ロボットアームの開始点と目標点との間の経路を生成する経路生成工程と、前記演算部が、前記各ロボットアームの経路上に複数の中間点を設定する中間点設定工程と、前記演算部が、前記中間点設定工程で設定した前記複数の中間点のそれぞれに対し、前記開始点から前記中間点までの第1区間では、前記複数のロボットアームが互いに衝突を回避しながら前記各ロボットアームで同期して動作するよう、前記各ロボットアームの関節角度の推移を演算し、かつ前記中間点から前記目標点までの第2区間では、前記各ロボットアームで独立して動作するよう、前記各ロボットアームの関節角度の推移を演算して、前記各ロボットアームの複数の仮の軌道を生成する仮軌道生成工程と、前記演算部が、前記仮軌道生成工程にて生成した複数の仮の軌道のうち、前記複数のロボットアームが互いに衝突しない仮の軌道を、前記各ロボットアームの軌道に設定する軌道設定工程と、を備えたことを特徴とする。   The trajectory generation method of the present invention is a trajectory generation method for obtaining trajectories of a plurality of articulated robot arms, wherein the arithmetic unit generates a path between a start point and a target point of each robot arm. A generation step, an intermediate point setting step in which the calculation unit sets a plurality of intermediate points on the path of each robot arm, and each of the plurality of intermediate points set by the calculation unit in the intermediate point setting step On the other hand, in the first section from the start point to the intermediate point, the transition of joint angles of the robot arms so that the robot arms operate synchronously with the robot arms while avoiding collisions with each other. And in the second section from the intermediate point to the target point, the transition of the joint angle of each robot arm is calculated so that each robot arm operates independently, A temporary trajectory generating step for generating a plurality of temporary trajectories of the bot arm, and a temporary temporary trajectory in which the plurality of robot arms do not collide with each other among the plurality of temporary trajectories generated in the temporary trajectory generating step A trajectory setting step for setting a trajectory to the trajectory of each robot arm.

本発明によれば、各ロボットアームの開始点から目標点までの軌道の動作時間を短縮化することができる。   According to the present invention, the operation time of the trajectory from the start point of each robot arm to the target point can be shortened.

実施形態に係るロボット装置の概略構成を示す説明図である。It is explanatory drawing which shows schematic structure of the robot apparatus which concerns on embodiment. 実施形態に係るロボット装置の構成を示すブロック図である。It is a block diagram which shows the structure of the robot apparatus which concerns on embodiment. 実施形態に係るロボット装置の演算部が実行する軌道生成方法の各工程を示すフローチャートである。It is a flowchart which shows each process of the track | orbit generation method which the calculating part of the robot apparatus which concerns on embodiment performs. 実施形態に係る関節空間における各ロボットアームの経路を示す説明図である。It is explanatory drawing which shows the path | route of each robot arm in the joint space which concerns on embodiment. 実施形態の軌道生成方法で生成した軌道と、比較例の軌道生成方法で生成した軌道とを、2次元関節空間上に射影して表現した概念図である。It is the conceptual diagram which expressed the locus | trajectory produced | generated with the locus | trajectory generation method of embodiment, and the locus | trajectory produced | generated with the locus | trajectory generation method of the comparative example on the two-dimensional joint space. 実施形態に係る軌道生成方法で生成した軌道を辿って動作するロボットアームの説明図である。It is explanatory drawing of the robot arm which operate | moves by following the track | orbit generated with the track | orbit generation method which concerns on embodiment. 比較例の軌道生成方法で生成した軌道を辿って動作するロボットアームの説明図である。It is explanatory drawing of the robot arm which moves by following the track | orbit produced | generated with the track | orbit production method of the comparative example.

以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図1は、本発明の実施形態に係るロボット装置の概略構成を示す説明図である。ロボット装置100は、複数(本実施形態では2つ)のロボットアーム101,102と、各ロボットアーム101,102の動作を制御する制御装置200とを備えている。また、ロボット装置100は、制御装置200に教示点のデータ等を送信する操作装置300と、制御装置200の演算結果等を表示する表示装置400とを備えている。   Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings. FIG. 1 is an explanatory diagram showing a schematic configuration of a robot apparatus according to an embodiment of the present invention. The robot apparatus 100 includes a plurality (two in this embodiment) of robot arms 101 and 102 and a control apparatus 200 that controls the operation of each of the robot arms 101 and 102. The robot apparatus 100 also includes an operation apparatus 300 that transmits teaching point data and the like to the control apparatus 200, and a display apparatus 400 that displays calculation results and the like of the control apparatus 200.

ロボットアーム101,102は、多関節のロボットアームであり、関節とリンク機構で構成される。関節には回転関節や直動関節の他、球体関節などさまざまな種類の関節が適用可能である。関節の動作はモータ等で能動的に動作する場合と、動力源を持たずに受動的に動作する場合とがある。各関節間はリンク機構により結びつけられ、関節とリンク機構が交互に直列されたシリアルリンク型と関節とリンクの組合せが並列となったパラレルリンク型などがある。   The robot arms 101 and 102 are articulated robot arms, and are composed of joints and a link mechanism. Various types of joints such as a rotary joint, a linear motion joint, and a spherical joint can be applied to the joint. There are cases where the joint operates actively with a motor or the like and passively operates without a power source. Each joint is linked by a link mechanism, and there are a serial link type in which joints and link mechanisms are alternately arranged, and a parallel link type in which combinations of joints and links are arranged in parallel.

本実施形態では、ロボットアーム101,102は、回転関節を有するシリアルリンク型のロボットアームであり、関節はモータ及び駆動回路等を有する駆動装置により駆動されるよう構成されている。また、ロボットアーム101は、複数(本実施形態では2つ)の関節(自由度)Ja1,Ja2を備えた2軸のロボットアームである。ロボットアーム102は、複数(本実施形態では2つ)の関節(自由度)Jb1,Jb2を備えた2軸のロボットアームである。 In this embodiment, the robot arms 101 and 102 are serial link type robot arms having rotating joints, and the joints are configured to be driven by a driving device having a motor and a driving circuit. The robot arm 101 is a two-axis robot arm having a plurality (two in this embodiment) of joints (degrees of freedom) J a1 and J a2 . The robot arm 102 is a two-axis robot arm having a plurality of (two in this embodiment) joints (degrees of freedom) J b1 and J b2 .

なお、ロボットアーム101及びロボットアーム102は、一般的にはロボットアーム自体が動作するような動作体として広く観念されるものであればよく、特に限定して解釈されるものではない。例えば、ロボットアーム101,102は、2軸のロボットアームとしたが、6軸多関節ロボットアームであってもよい。   In general, the robot arm 101 and the robot arm 102 are not particularly limited as long as they are generally considered as operating bodies on which the robot arm itself operates. For example, although the robot arms 101 and 102 are two-axis robot arms, they may be six-axis articulated robot arms.

操作装置300は、作業者が操作するものであり、ロボットアーム101,102の動作を指定したり、制御装置200に各ロボットアーム101,102に対する教示点を教示したりするのに用いる。   The operation device 300 is operated by an operator, and is used to designate the operation of the robot arms 101 and 102 and to teach the teaching points for the robot arms 101 and 102 to the control device 200.

制御装置200は、各ロボットアーム101,102の軌道のデータに基づき、各ロボットアーム101,102の動作を制御するものである。更に、本実施形態では、制御装置200は、軌道生成装置でもあり、軌道生成方法により、ロボットアームA,B同士が衝突(干渉)しないように各ロボットアーム101,102の軌道を生成する。即ち、制御装置200は、ロボットアーム101に対応する仮想的なロボットアームA、ロボットアーム102に対応する仮想的なロボットアームBをそれぞれ定義し、各ロボットアームA,Bの軌道を演算により生成するシミュレータとしての機能を有する。各ロボットアームA,Bは、コンピュータで定義された仮想空間内に配置され、各ロボットアーム101,102の形状データ(CADデータ)等に基づいて定義された仮想的なロボットアームである。   The control device 200 controls the operations of the robot arms 101 and 102 based on the trajectory data of the robot arms 101 and 102. Further, in the present embodiment, the control device 200 is also a trajectory generation device, and generates trajectories of the robot arms 101 and 102 so that the robot arms A and B do not collide (interfer) with each other by the trajectory generation method. That is, the control device 200 defines a virtual robot arm A corresponding to the robot arm 101 and a virtual robot arm B corresponding to the robot arm 102, and generates trajectories of the robot arms A and B by calculation. It has a function as a simulator. The robot arms A and B are virtual robot arms that are arranged in a virtual space defined by a computer and are defined based on the shape data (CAD data) of the robot arms 101 and 102.

ここで、ロボットアームAの自由度を表すパラメータを関節角度として、ロボットアームAの各関節(軸)Ja1,Ja2の関節角度をそれぞれθa1,θa2とする。ロボットアームAのコンフィグレーション(各軸の関節角度)は、(θa1,θa2)で表すことができる。同様に、ロボットアームBの自由度を表すパラメータを関節角度として、ロボットアームBの各関節(軸)Jb1,Jb2の関節角度をそれぞれθb1,θb2とする。ロボットアームBのコンフィグレーションは、(θb1,θb2)で表すことができる。 Here, a parameter representing the degree of freedom of the robot arm A is a joint angle, and the joint angles of the joints (axes) J a1 and J a2 of the robot arm A are θ a1 and θ a2 , respectively. The configuration (joint angle of each axis) of the robot arm A can be expressed by (θ a1 , θ a2 ). Similarly, a parameter representing the degree of freedom of the robot arm B is a joint angle, and joint angles of the joints (axes) J b1 and J b2 of the robot arm B are θ b1 and θ b2 , respectively. The configuration of the robot arm B can be expressed by (θ b1 , θ b2 ).

本実施形態では、制御装置200は、仮想の各ロボットアームA,Bについて、オフラインにより、教示点間を移動する軌道を生成し、生成した軌道に基づいて、実際の各ロボットアーム101,102の動作を制御する。動作開始点となる教示点が開始点、動作終了点となる教示点が目標点である。教示点は、関節空間(コンフィグレーション空間、いわゆるCスペース)又はタスク空間で表される。   In the present embodiment, the control device 200 generates a trajectory that moves between teaching points offline for each of the virtual robot arms A and B, and based on the generated trajectory, the actual robot arms 101 and 102 Control the behavior. The teaching point that is the operation start point is the start point, and the teaching point that is the operation end point is the target point. The teaching point is expressed in a joint space (configuration space, so-called C space) or task space.

関節空間では、教示点は、ロボットアームの関節の角度で表されるパラメータで表され、関節の数だけパラメータを有している。関節空間とは、ロボットアームA,Bがとり得る全てのコンフィグレーションのパラメータの組が構成する空間である。また、タスク空間では、教示点は、ロボットアームの基端を原点とする座標系を基準とする、ロボットアームの先端の3次元的な位置及び姿勢の6つのパラメータで表される。   In the joint space, the teaching point is represented by a parameter expressed by the angle of the joint of the robot arm, and has parameters as many as the number of joints. The joint space is a space formed by a set of all configuration parameters that the robot arms A and B can take. Also, in the task space, the teaching point is represented by six parameters of the three-dimensional position and orientation of the tip of the robot arm with reference to a coordinate system with the base end of the robot arm as the origin.

本実施形態では、教示点は、関節空間で表されているものとする。ロボットアームAに対する開始点は、2軸の関節角度(θas1,θas2)で表され、ロボットアームAに対する目標点は、2軸の関節角度(θag1,θag2)で表される。一方、ロボットアームBに対する開始点は、2軸の関節角度(θbs1,θbs2)で表され、ロボットアームBに対する目標点は、2軸の関節角度(θbg1,θbg2)で表される。 In the present embodiment, it is assumed that the teaching point is expressed in a joint space. The starting point for the robot arm A is represented by biaxial joint angles (θ as1 , θ as2 ), and the target point for the robot arm A is represented by biaxial joint angles (θ ag1 , θ ag2 ). On the other hand, the starting point for the robot arm B is represented by a biaxial joint angle (θ bs1 , θ bs2 ), and the target point for the robot arm B is represented by a biaxial joint angle (θ bg1 , θ bg2 ). .

このように、ロボットアームA,Bの自由度を表すパラメータ(例えば、関節角度や伸縮長さ)を座標軸の値とした場合、ロボットアームA,Bのコンフィグレーションは関節空間上の点として表現することができる。   As described above, when the parameters representing the degrees of freedom of the robot arms A and B (for example, joint angles and expansion / contraction lengths) are set as coordinate axis values, the configurations of the robot arms A and B are expressed as points on the joint space. be able to.

図2は、本発明の実施形態に係るロボット装置100の構成を示すブロック図である。図2に示すように、制御装置200は、コンピュータで構成され、演算部(制御部)としてのCPU(Central Processing Unit)201を備えている。また、制御装置200は、記憶部として、ROM(Read Only Memory)202、RAM(Random Access Memory)203、HDD(Hard Disk Drive)204を備えている。また、制御装置200は、記録ディスクドライブ205及び各種のインタフェース211〜215を備えている。   FIG. 2 is a block diagram showing a configuration of the robot apparatus 100 according to the embodiment of the present invention. As shown in FIG. 2, the control device 200 is configured by a computer and includes a CPU (Central Processing Unit) 201 as a calculation unit (control unit). The control device 200 includes a ROM (Read Only Memory) 202, a RAM (Random Access Memory) 203, and an HDD (Hard Disk Drive) 204 as storage units. The control device 200 also includes a recording disk drive 205 and various interfaces 211 to 215.

CPU201には、ROM202、ROM203、HDD204、記録ディスクドライブ205及び各種のインタフェース211〜215が、バス216を介して接続されている。ROM202には、BIOS等の基本プログラムが格納されている。RAM203は、CPU201の演算処理結果等、各種データを一時的に記憶する記憶装置である。   A ROM 202, ROM 203, HDD 204, recording disk drive 205, and various interfaces 211 to 215 are connected to the CPU 201 via a bus 216. The ROM 202 stores basic programs such as BIOS. The RAM 203 is a storage device that temporarily stores various data such as the arithmetic processing result of the CPU 201.

HDD204は、CPU201の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU201に、後述する演算処理の各工程を実行させるためのプログラムを記録(格納)するものである。CPU201は、HDD204に記録(格納)されたプログラム230に基づいて軌道生成方法の各工程を実行する。   The HDD 204 is a storage device that stores arithmetic processing results of the CPU 201 and various data acquired from the outside, and records (stores) a program for causing the CPU 201 to execute each step of arithmetic processing described later. . The CPU 201 executes each step of the trajectory generation method based on the program 230 recorded (stored) in the HDD 204.

記録ディスクドライブ205は、記録ディスク240に記録された各種データやプログラム等を読み出すことができる。ロボットアーム101,ロボットアーム102,操作装置300,表示装置400,外部記憶装置500はインタフェース211〜215にそれぞれ接続されている。   The recording disk drive 205 can read various data, programs, and the like recorded on the recording disk 240. The robot arm 101, the robot arm 102, the operation device 300, the display device 400, and the external storage device 500 are connected to interfaces 211 to 215, respectively.

操作装置300は、作業者の入力操作により、ロボットアーム101,102を教示する教示点を指定する。教示点のデータは、インタフェース212及びバス216を通じてCPU201又はRAM203、HDD204に出力される。CPU201は、操作装置300から、又はRAM203若しくはHDD204から教示点のデータの入力を受ける。   The operation device 300 designates teaching points for teaching the robot arms 101 and 102 by an operator's input operation. The teaching point data is output to the CPU 201 or the RAM 203 and the HDD 204 through the interface 212 and the bus 216. The CPU 201 receives input of teaching point data from the operation device 300 or from the RAM 203 or the HDD 204.

表示装置400は、CPU201の制御の下、画像を表示するディスプレイである。表示装置400は、CPU201の制御の下、例えばロボットアームA,Bやその作業空間(仮想空間)を3D(3次元)グラフィックスで表示する。これにより、作業者は、生成された動作経路を目視により確認することができる。外部記憶装置500は、書き換え可能な不揮発性メモリや外付けHDD等である。   The display device 400 is a display that displays an image under the control of the CPU 201. The display device 400 displays, for example, the robot arms A and B and the work space (virtual space) thereof in 3D (three-dimensional) graphics under the control of the CPU 201. Thereby, the operator can confirm the produced | generated operation | movement path | route visually. The external storage device 500 is a rewritable nonvolatile memory, an external HDD, or the like.

CPU201は、各ロボットアーム101,102に対する教示点のデータに基づき、各ロボットアーム101,102の軌道を生成する。そして、CPU201は、各ロボットアーム101,102の各関節のモータに対する駆動指令を所定時間間隔(例えば1[ms])でバス216及びインタフェース211,212を介して不図示のモータ駆動回路に出力する。各関節のモータ駆動回路がモータを駆動することにより、各ロボットアーム101,102が動作する。   The CPU 201 generates a trajectory for each robot arm 101, 102 based on teaching point data for each robot arm 101, 102. Then, the CPU 201 outputs drive commands for the motors of the joints of the robot arms 101 and 102 to a motor drive circuit (not shown) via the bus 216 and the interfaces 211 and 212 at predetermined time intervals (for example, 1 [ms]). . The robot arms 101 and 102 operate as the motor drive circuit of each joint drives the motor.

プログラム230は、衝突チェックプログラム231と、キネマティクス計算プログラム232と、経路生成プログラム233と、経路短縮プログラム234と、軌道生成プログラム235と、衝突回避終了点探索プログラム236と、を有している。   The program 230 includes a collision check program 231, a kinematics calculation program 232, a path generation program 233, a path shortening program 234, a trajectory generation program 235, and a collision avoidance end point search program 236.

衝突チェックプログラム231は、物体同士が衝突するかどうかをCPU201に判断させるプログラムである。例えば、ロボットアームA,Bと障害物ObのCADデータをポリゴン(例えば三角形等の多角形)の集合とする。衝突チェックプログラム231に基づき動作するCPU201は、対象となるロボットアームA,Bのポリゴンの集合と障害物Obのポリゴンの集合とが幾何学的に接触するか否かを判断する。   The collision check program 231 is a program that causes the CPU 201 to determine whether or not objects collide with each other. For example, the CAD data of the robot arms A and B and the obstacle Ob is a set of polygons (for example, polygons such as triangles). The CPU 201 operating based on the collision check program 231 determines whether or not the set of polygons of the target robot arms A and B and the set of polygons of the obstacle Ob are in geometric contact.

なお、衝突チェックは、ポリゴンではなく、ロボットアームA,Bと障害物Obを点や線ないし面の集合として表して、このような点と面との衝突チェック、又は線と面との衝突チェックを行ってもよい。さらに、関節空間上における衝突チェックに限定されるものではなく、実空間内で点や線ないしポリゴンを利用した衝突チェックを採用することもできる。   The collision check is not a polygon, but the robot arms A and B and the obstacle Ob are represented as a set of points, lines, or surfaces, and such a point-surface collision check or a line-surface collision check is performed. May be performed. Furthermore, the present invention is not limited to the collision check in the joint space, and a collision check using points, lines, or polygons in the real space can be employed.

キネマティクス計算プログラム232は、ロボットアームA,Bのコンフィグレーションから、ロボットアームA,Bのタスク空間での位置及び姿勢を求める順キネマティクスをCPU201に計算させるプログラムである。更に、キネマティクス計算プログラム232は、ロボットアームA,Bの手先位置(先端)から、ロボットアームA,Bのコンフィグレーションを計算する逆キネマティクスをCPU201に計算させるプログラムである。   The kinematics calculation program 232 is a program for causing the CPU 201 to calculate forward kinematics for obtaining the positions and postures of the robot arms A and B in the task space from the configurations of the robot arms A and B. Further, the kinematics calculation program 232 is a program for causing the CPU 201 to calculate reverse kinematics for calculating the configurations of the robot arms A and B from the hand positions (tips) of the robot arms A and B.

順キネマティクス計算は、例えば、図1におけるロボットアームAが、あるコンフィグレーション(θa1,θa2)で、ロボットアームB及び障害物Obに衝突するか否かを判断する際に行う。つまり、衝突するか否かの判断は、タスク空間上のロボットアームAの位置及び姿勢で行う。したがって、CPU201は、衝突チェックプログラム231を実行することにより、ロボットアームAが、あるコンフィグレーション(θa1,θa2)でロボットアームB及び障害物Obに衝突するか否かを判断できる。 The forward kinematics calculation is performed, for example, when it is determined whether or not the robot arm A in FIG. 1 collides with the robot arm B and the obstacle Ob in a certain configuration (θ a1 , θ a2 ). That is, whether or not to collide is determined by the position and posture of the robot arm A on the task space. Therefore, the CPU 201 can determine whether or not the robot arm A collides with the robot arm B and the obstacle Ob in a certain configuration (θ a1 , θ a2 ) by executing the collision check program 231.

経路生成プログラム233は、関節空間上において、障害物Obを避けて開始点と目標点とを接続する各ロボットアームA,Bの経路をCPU201に生成させるプログラムである。経路とは、ロボットアームA,Bのコンフィグレーションが時間の経過とともに変化するときの、関節空間におけるロボットアームのコンフィグレーションの軌跡である。なお、この経路には、単にどのルートで通過するか(どの関節角度となるか)が規定されており、通過時刻は規定されていない。   The path generation program 233 is a program that causes the CPU 201 to generate paths for the robot arms A and B that connect the start point and the target point while avoiding the obstacle Ob in the joint space. The path is a trajectory of the configuration of the robot arm in the joint space when the configuration of the robot arms A and B changes with time. In addition, in this route, it is simply defined by which route it passes (which joint angle is obtained), and the passage time is not defined.

経路生成プログラム233は、あるコンフィグレーションでロボットアームA,Bが衝突しているか否かをチェックするため、衝突チェックプログラム231と、キネマティクス計算プログラム232とを併せて用いる。経路生成方法には、PRM(Probabilistic RoadMap Method)、RRT(Rapidly-exploring Random Tree)といった方法が、計算時間と探索能力の観点から好ましい。なお、経路生成方法は、PRMやRMTに限定するものではなく、ポテンシャル法、可視グラフ法、セル分割法、ボロノイ図法などの他の方法も適用できる。   The path generation program 233 uses the collision check program 231 and the kinematics calculation program 232 together to check whether the robot arms A and B are colliding with a certain configuration. As the route generation method, methods such as PRM (Probabilistic RoadMap Method) and RRT (Rapidly-exploring Random Tree) are preferable from the viewpoint of calculation time and search capability. Note that the path generation method is not limited to PRM or RMT, and other methods such as a potential method, a visible graph method, a cell division method, and a Voronoi diagram method can be applied.

いずれの経路生成方法であっても、CPU201は、ロボットアームA,B同士の衝突及びロボットアームA,Bと障害物Obとの衝突の回避を考慮に入れた経路を生成するために、まず、ロボットアームA,Bを1つのロボットアームCとみなす。そして、CPU201は、4次元関節空間で、開始点(θas1,θas2,θbs1,θbs2)から目標点(θag1,θag2,θbg1,θbg2)へと障害物を回避する経路探索を行い、経路を算出する。 In any of the path generation methods, the CPU 201 first generates a path that takes into consideration the collision between the robot arms A and B and the collision between the robot arms A and B and the obstacle Ob. The robot arms A and B are regarded as one robot arm C. In the four-dimensional joint space, the CPU 201 avoids an obstacle from the start point (θ as1 , θ as2 , θ bs1 , θ bs2 ) to the target point (θ ag1 , θ ag2 , θ bg1 , θ bg2 ). Search and calculate the route.

経路生成プログラム233により生成した経路は、回り道をしていたり尖っていたりするため無駄が多く、経路修正を行う必要がある。経路短縮プログラム234は、経路生成プログラム233で生成した経路の短縮化をCPU201に行わせるプログラムである。CPU201がプログラム234を実行する際、あるコンフィグレーション(θa1,θa2,θb1,θb2)でロボットアームが衝突しているかをチェックするため、衝突チェックプログラム231と、キネマティクス計算プログラム232を併せて用いる。 Since the route generated by the route generation program 233 is detoured or pointed, it is wasteful and needs to be corrected. The route shortening program 234 is a program that causes the CPU 201 to shorten the route generated by the route generation program 233. When the CPU 201 executes the program 234, the collision check program 231 and the kinematics calculation program 232 are used to check whether the robot arm is colliding with a certain configuration (θ a1 , θ a2 , θ b1 , θ b2 ). Used together.

経路短縮化手法としては、例えば、経路生成プログラム233で生成した、関節空間上の経路に対し補間点を新たに追加する。そして、任意の2点をつなぐ直線に障害物Obとの衝突がない場合は、2点の間にある経路の代わりに新たにその直線を経路として置き換えるという作業を、繰り返し行い短縮化をする手法がある。   As a route shortening method, for example, an interpolation point is newly added to a route on the joint space generated by the route generation program 233. Then, when there is no collision with the obstacle Ob on the straight line connecting any two points, a method of shortening the work by repeatedly replacing the straight line as a route instead of the route between the two points. There is.

なお、経路短縮方法はこれに限定されるものではなく、経路の先端から衝突せずに接続可能な点を探索していき経路を短縮化する、貪欲アルゴリズムを用いてもよい。また、関節空間上の経路をゴムモデルと仮定し、経路が縮む力を発生させると同時に、障害物Obからの効力も定義することにより、衝突回避をしつつ経路を短縮化する手法を用いてもよい。また、B−Spline曲線により経路を平滑化する手法を用いてもよい。   The route shortening method is not limited to this, and a greedy algorithm that searches for a connectable point without colliding from the end of the route and shortens the route may be used. In addition, assuming that the path in the joint space is a rubber model, a method for shortening the path while avoiding a collision by defining the effect from the obstacle Ob at the same time as generating a force for contracting the path is used. Also good. Alternatively, a method of smoothing the route using a B-Spline curve may be used.

軌道生成プログラム235は、経路生成プログラム233により算出された経路に対し、ロボットアームA,Bのコンフィグレーションの最適な変化速度を計算し、軌道をCPU201に生成させるプログラムである。ここで、軌道とは、ロボットアームA,Bのコンフィグレーション(θa1,θa2),(θb1,θb2)の時間変化として変化速度を時間の関数として扱い表したものである。つまり、軌道は、経路を辿る各ロボットアームA,Bの各関節の関節角度の時間変化を表したものである。 The trajectory generation program 235 is a program that calculates the optimal change speed of the configuration of the robot arms A and B for the path calculated by the path generation program 233 and causes the CPU 201 to generate a trajectory. Here, the trajectory represents the change speed as a function of time as a time change of the configurations (θ a1 , θ a2 ) and (θ b1 , θ b2 ) of the robot arms A and B. That is, the trajectory represents the time change of the joint angle of each joint of the robot arms A and B following the path.

この軌道生成プログラム235は、双腕(2つ)のロボットアームA,Bを同期させた軌道を生成することができるプログラムである。ここでいう双腕ロボットアームA,Bの同期とは、ロボットアームAのコンフィグレーションがPaj(θaj1,θaj2)の時、ロボットアームBをそれに対応するコンフィグレーションPbj(θbj1,θbj2)を指定して連動させることである。 The trajectory generation program 235 is a program that can generate a trajectory that synchronizes the two arms (two) of robot arms A and B. The synchronization of the two-arm robot arms A and B here means that when the configuration of the robot arm A is P ajaj1 , θ aj2 ), the robot arm B has a corresponding configuration P bjbj1 , θ bj2 ) is specified and linked.

また、軌道生成プログラム235は、双腕ロボットアームA,Bを同期させている途中で、ロボットアームA,B同士の同期をやめ、ロボットアームA,B単独で最適な動作をさせる軌道を生成することもできる。   The trajectory generation program 235 stops the synchronization between the robot arms A and B while the dual arm robot arms A and B are being synchronized, and generates a trajectory that allows the robot arms A and B to operate optimally. You can also.

衝突回避終了点探索プログラム236は、ロボットアームA,Bを併せて1つのロボットアームCとみなし算出した経路に対し、衝突回避終了点(以下、単に「終了点」という)をCPU201に探索させるプログラムである。   The collision avoidance end point search program 236 is a program for causing the CPU 201 to search for a collision avoidance end point (hereinafter simply referred to as “end point”) for a path calculated by regarding the robot arms A and B as one robot arm C. It is.

図3は、制御装置200のCPU201が実行する軌道生成方法の各工程を示すフローチャートである。CPU201は、プログラム230(プログラム231〜236)を実行することで、以下に説明する各工程を実行する。   FIG. 3 is a flowchart showing each step of the trajectory generation method executed by the CPU 201 of the control device 200. The CPU 201 executes each process described below by executing the program 230 (programs 231 to 236).

まず、CPU201は、ロボットアームA,Bが作業を行う作業空間(仮想空間)でのロボットアームA,B及び障害物Obの位置及び形状情報を読み込む(S101)。ロボットアームA,B及び障害物Obは、設計情報などであり、例えば3次元CADのデータ、若しくはカメラの映像や各種センサによる計測等で収集したデータを用いて、又は手動で設定する。   First, the CPU 201 reads the position and shape information of the robot arms A and B and the obstacle Ob in the work space (virtual space) where the robot arms A and B work (S101). The robot arms A and B and the obstacle Ob are design information or the like, and are set manually using, for example, three-dimensional CAD data, data collected by camera images, various sensors, or the like.

図4は、関節空間における各ロボットアームA,Bの経路を示す説明図であり、図4(a)はロボットアームAの経路、図4(b)はロボットアームBの経路を示している。   4A and 4B are explanatory views showing the paths of the robot arms A and B in the joint space. FIG. 4A shows the path of the robot arm A, and FIG. 4B shows the path of the robot arm B.

CPU201は、ロボットアームAの開始点Pas(θas1,θas2)、及びロボットアームBの開始点Pbs(θbs1,θbs2)を決定する(S102)。例えば、CPU201は、ロボットアームA,Bの開始点を、手先の位置及び姿勢を入力として、キネマティクス計算プログラム232により逆キネマティクスを解くことによって決定する。つまり、取得した開始点Pas,Pbsのパラメータがタスク空間で定義されている場合には、関節空間に変換する必要があり、CPU201は、開始点Pas,Pbsのパラメータをタスク空間から関節空間に変換する演算を行う。なお、CPU201が取得した開始点Pas,Pbsのパラメータが関節空間である場合には、変換作業は省略可能である。 The CPU 201 determines the start point P asas1 , θ as2 ) of the robot arm A and the start point P bsbs1 , θ bs2 ) of the robot arm B (S102). For example, the CPU 201 determines the start points of the robot arms A and B by solving the inverse kinematics using the kinematics calculation program 232 with the position and orientation of the hand as input. That is, when the parameters of the acquired start points P as and P bs are defined in the task space, it is necessary to convert them to the joint space, and the CPU 201 converts the parameters of the start points P as and P bs from the task space. Performs calculation to convert to joint space. If the parameters of the start points P as and P bs acquired by the CPU 201 are joint spaces, the conversion work can be omitted.

また、CPU201は、ロボットアームAの目標点Pag(θag1,θag2)、及びロボットアームBの目標点Pbg(θbg1,θbg2)を決定する(S103)。例えば、CPU201は、ロボットアームA,Bの目標点を、手先の位置及び姿勢を入力として、キネマティクス計算プログラム232により逆キネマティクスを解くことによって決定する。つまり、取得した目標点Pag,Pbgのパラメータがタスク空間で定義されている場合には、関節空間に変換する必要があり、CPU201は、目標点Pag,Pbgのパラメータをタスク空間から関節空間に変換する演算を行う。なお、CPU201が取得した目標点Pag,Pbgのパラメータが関節空間である場合には、変換作業は省略可能である。 Further, the CPU 201 determines a target point P agag1 , θ ag2 ) of the robot arm A and a target point P bgbg1 , θ bg2 ) of the robot arm B (S103). For example, the CPU 201 determines the target points of the robot arms A and B by solving the inverse kinematics using the kinematics calculation program 232 with the position and orientation of the hand as input. That is, when the parameters of the acquired target points P ag and P bg are defined in the task space, it is necessary to convert them to the joint space, and the CPU 201 converts the parameters of the target points P ag and P bg from the task space. Performs calculation to convert to joint space. Note that when the parameters of the target points P ag and P bg acquired by the CPU 201 are joint spaces, the conversion work can be omitted.

次に、CPU201は、開始点Pas,Pbs及び目標点Pag,Pbgで、ロボットアームA及びロボットアームBがそれぞれ障害物Obに衝突していないか否か、ロボットアームA,B同士が衝突していないか否かを判断する(S104)。 Next, the CPU 201 determines whether or not the robot arm A and the robot arm B have collided with the obstacle Ob at the start points P as and P bs and the target points P ag and P bg , respectively. It is determined whether or not there is a collision (S104).

CPU201は、開始点Pas,Pbs又は目標点Pag,PbgでいずれかのロボットアームA,Bが障害物Obに衝突する場合、又はロボットアーム同士が衝突する場合(S104:No)は、エラーコードを表示装置400に出力し、処理を終了する。表示装置400は、エラーコードに従った表示画像を表示する。これにより、作業者は、入力操作した開始点Pas,Pbs又は目標点Pag,Pbgの変更が必要なことを知ることができ、教示点の変更操作をすることができる。 When the robot arm A, B collides with the obstacle Ob at the start point P as , P bs or the target point P ag , P bg , or when the robot arms collide with each other (S104: No) The error code is output to the display device 400, and the process is terminated. The display device 400 displays a display image according to the error code. Thereby, the operator can know that the input start points Pas and Pbs or the target points Pag and Pbg need to be changed, and can change the teaching point.

次に、CPU201は、衝突していないと判断した場合(S104:Yes)、ロボットアームA及びロボットアームBを、計4個の関節を持つ1つのロボットアームCとみなす。そして、CPU201は、ロボットアームCについて、新たに開始点Pcs(θas1,θas2,θbs1,θbs2)及び目標点Pcg(θag1,θag2,θbg1,θbg2)を定義する。CPU201は、経路生成プログラム233を用い、4次元の関節空間で、開始点Pcsと目標点Pcgを結ぶように、作業空間(仮想空間)における障害物Ob及びロボットアームA,B同士の衝突回避を考慮した経路を生成する(S105:経路生成工程)。 Next, when the CPU 201 determines that there is no collision (S104: Yes), the robot arm A and the robot arm B are regarded as one robot arm C having a total of four joints. Then, the CPU 201 newly defines a start point P csas1 , θ as2 , θ bs1 , θ bs2 ) and a target point P cgag1 , θ ag2 , θ bg1 , θ bg2 ) for the robot arm C. . The CPU 201 uses the path generation program 233 to collide with the obstacle Ob and the robot arms A and B in the work space (virtual space) so as to connect the start point P cs and the target point P cg in the four-dimensional joint space. A route in consideration of avoidance is generated (S105: route generation step).

次に、CPU201は、経路生成プログラム233により、ロボットアームCが目標点Pcgに到達する経路を生成したか否かを判断する(S106)。CPU201は、ロボットアームCが経路生成プログラム233により目標点Pcgに到達できないと判断した場合(S106:No)は、エラーコードを表示装置400に出力し、処理を終了する。表示装置400は、エラーコードに従った表示画像を表示する。これにより、作業者は、ロボットアームC(即ちロボットアームA,B)が目標点Pcg(Pag,Pbg)に到達できないことを目視により確認することができる。よって、開始点Pas,Pbs又は目標点Pag,Pbgの変更が必要なことを知ることができ、教示点の変更操作をすることができる。 Next, the CPU 201 determines whether or not the path generating program 233 has generated a path for the robot arm C to reach the target point P cg (S106). When the CPU 201 determines that the robot arm C cannot reach the target point P cg by the route generation program 233 (S106: No), the CPU 201 outputs an error code to the display device 400 and ends the process. The display device 400 displays a display image according to the error code. Thus, the operator can visually confirm that the robot arm C (that is, the robot arms A and B) cannot reach the target point P cg (P ag , P bg ). Therefore, it is possible to know that the start points P as and P bs or the target points P ag and P bg need to be changed, and the teaching point can be changed.

次に、CPU201は、作成した経路Hで目標点Pcgに到達できたと判断した場合(S106:Yes)、作成した経路Hに対し、経路短縮プログラム234を用いて短縮処理を行う(S107)。 Next, CPU 201, when it is determined that reach the target point P cg a path H c created (S106: Yes), with respect to the path H c created, the shortening process performed using a path shorter program 234 (S107 ).

次に、CPU201は、経路Hを関節空間上でいくつかに分割(例えば等分割)することで複数の補間点Pc0,Pc1,Pc2,Pc3,…,PcNを追加する。その際、開始点Pcsから目標点Pcgに向かって補間点Pc0,Pc1,Pc2,Pc3,…,PcNの順に設定する(S108)。即ち、CPU201は、ロボットアームAの経路H上の複数の補間点Pa0,Pa1,…PaNを求めると共に、ロボットアームBの経路H上の複数の補間点Pb0,Pb1,…PbNを求めたのと同じである。なお、補間点Pcjは、補間点Paj及び補間点Pbj(j=0,…,N)からなる。 Next, the CPU 201 adds a plurality of interpolation points P c0 , P c1 , P c2 , P c3 ,..., P cN by dividing the path H c into several on the joint space (for example, equal division). At this time, interpolation points P c0 , P c1 , P c2 , P c3 ,..., P cN are set in this order from the start point P cs toward the target point P cg (S108). That is, the CPU 201 obtains a plurality of interpolation points P a0 , P a1 ,... P aN on the path H a of the robot arm A, and a plurality of interpolation points P b0 , P b1 , P aN on the path H b of the robot arm B. ... the same as determining PbN . The interpolation point P cj includes an interpolation point P aj and an interpolation point P bj (j = 0,..., N).

次に、CPU201は、ロボットアームA及びロボットアームBがそれぞれの終了点の候補となる関節空間上のコンフィグレーションを、終了点候補(中間点)Pciとし、i=N−1と設定し、初期化を行う(S109)。ただし、iは正の整数である変数とする。即ち、CPU201は、ロボットアームA,Bを1つのロボットアームCとみなして、ロボットアームCの経路H上に終了点候補(中間点)Pciを設定する(中間点設定工程)。これは、ロボットアームAの経路H上に終了点候補(中間点)Paiを、ロボットアームBの経路H上に終了点候補(中間点)Pbiを、それぞれ設定したのと同じである。 Next, the CPU 201 sets the configuration on the joint space in which the robot arm A and the robot arm B are candidates for the end points as end point candidates (intermediate points) P ci and sets i = N−1. Initialization is performed (S109). Here, i is a variable that is a positive integer. That is, the CPU 201 regards the robot arms A and B as one robot arm C, and sets an end point candidate (intermediate point) P ci on the path H c of the robot arm C (intermediate point setting step). This is the same as setting the end point candidate (intermediate point) P ai on the path H a of the robot arm A and the end point candidate (intermediate point) P bi on the path H b of the robot arm B. is there.

次に、CPU201は、経路H上の任意の点Pcj(θaj1,θaj2,θjb1,θjb2)(jは0からNまでの整数)を、Paj(θaj1,θaj2)で構成される経路Hと、Pbj(θbj1,θbj2)で構成される経路Hに分割する。図4に、それぞれ経路H,Hを示す。CPU201は、軌道生成プログラム235を用い、開始点Pcsから終了点候補PciまでロボットアームA,Bで経路Hに沿って同期をし、終了点候補PciからはロボットアームA,Bで同期をせずに仮の軌道を生成する(S110:仮軌道生成工程)。同期をしない区間では、ロボットアームAは経路Hに沿って終了点候補Paiから目標点Pagまで、ロボットアームBは経路Hに沿って終了点候補Pbiから目標点Pbgまでの仮の軌道を生成する。終了点候補Paiは(θai1,θai2)、終了点候補Paiは(θai1,θai2)からなる。ここで、「仮の軌道」と称したのは、この段階では設定する軌道が決定していないためであり、設定する軌道は、後の工程で複数の仮の軌道の中から決定される。 Next, the CPU 201 changes an arbitrary point P cjaj1 , θ aj2 , θ jb1 , θ jb2 ) (j is an integer from 0 to N) on the path H c to P ajaj1 , θ aj2 ). a path H a configured in, P bj (θ bj1, θ bj2) divided into constructed path H b in. FIG. 4 shows paths H a and H b , respectively. The CPU 201 uses the trajectory generation program 235 to synchronize the robot arms A and B along the path H c from the start point P cs to the end point candidate P ci , and from the end point candidate P ci to the robot arms A and B A temporary trajectory is generated without synchronization (S110: temporary trajectory generation step). In the non-synchronized section, the robot arm A follows the path H a from the end point candidate P ai to the target point P ag , and the robot arm B follows the path H b from the end point candidate P bi to the target point P bg . Generate a temporary trajectory. The end point candidate P ai is (θ ai1 , θ ai2 ), and the end point candidate P ai is (θ ai1 , θ ai2 ). Here, the term “provisional trajectory” is because the trajectory to be set is not determined at this stage, and the trajectory to be set is determined from a plurality of temporary trajectories in a later step.

仮の軌道は、開始点Pcsと終了点候補Pciとの間の同期をする区間(第1区間)と、終了点候補Pciと目標点Pcgとの間の同期をしない区間(第2区間)との境界において、各ロボットアームA,Bが停止をせずに滑らかに動作するよう生成する。生成したロボットアームAの仮の軌道をTai、ロボットアームBの仮の軌道をTbiとする。 The temporary trajectory is a section (first section) in which the start point P cs and the end point candidate P ci are synchronized, and a section in which the end point candidate P ci and the target point P cg are not synchronized (first section). The robot arms A and B are generated so as to move smoothly without stopping at the boundary between the two sections. The generated temporary trajectory of the robot arm A is T ai , and the temporary trajectory of the robot arm B is T bi .

即ち、CPU201は、開始点Pcsから終了点候補Pciまでの第1区間では、ロボットアームA,Bが互いに衝突を回避しながらロボットアームA,Bで同期して動作するよう、ロボットアームA,Bの各関節の関節角度の時間変化を演算する。また、CPU201は、終了点候補Pai,Pbiから目標点Pag,Pbgまでの第2区間では、ロボットアームA,Bで独立して動作するよう、ロボットアームA,Bの各関節の関節角度θ(t)=(θaj1(t),θaj2(t))、θ(t)=(θbj1(t),θbj2(t))を演算する。tは時刻である。以下では、この量を関節角度の時間変化、又は、関節角度の推移と呼ぶこともある。CPU201は、これら演算結果に基づき、ロボットアームA,Bの仮の軌道Tai,Tbiを生成する。このように生成された仮の軌道Tai,Tbiは、開始点Pcsから目標点Pcgまで同期させて生成した軌道よりも速く目標点Pag,Pbgに到達する。 In other words, in the first section from the start point P cs to the end point candidate P ci , the CPU 201 moves the robot arm A and B so that the robot arms A and B operate synchronously while avoiding collision with each other. , B, the time change of the joint angle of each joint is calculated. In addition, the CPU 201 operates the robot arms A and B so that the robot arms A and B operate independently in the second section from the end point candidates P ai and P bi to the target points P ag and P bg . The joint angles θ a (t) = (θ aj1 (t), θ aj2 (t)), θ b (t) = (θ bj1 (t), θ bj2 (t)) are calculated. t is the time. Hereinafter, this amount may be referred to as a temporal change of the joint angle or a transition of the joint angle. The CPU 201 generates temporary trajectories T ai and T bi of the robot arms A and B based on these calculation results. The temporary trajectories T ai and T bi generated in this way reach the target points P ag and P bg faster than the trajectory generated in synchronization from the start point P cs to the target point P cg .

本実施形態では、CPU201は、第2区間では、各ロボットアームA,Bが目標点Pag,Pbgに最短時間で到達するように各ロボットアームA,Bの関節の角度変化を演算することで、軌道Tai,Tbiを生成している。これにより、各ロボットアームA,Bは、より速く目標点Pag,Pbgに到達する。 In the present embodiment, the CPU 201 calculates the angle change of the joints of the robot arms A and B so that the robot arms A and B reach the target points P ag and P bg in the shortest time in the second section. Thus, the trajectories T ai and T bi are generated. Thus, each robot arm A, B is faster target point P ag, to reach the P bg.

次に、CPU201は、ステップS110で生成した軌道Tai,Tbiを記憶装置であるHDD204に保存する(S111)。 Next, the CPU 201 stores the trajectories T ai and T bi generated in step S110 in the HDD 204 as a storage device (S111).

次に、CPU201は、ステップS110で算出したロボットアームAの仮の軌道Tai及びロボットアームBの仮の軌道Tbiにおいて、ロボットアームAとロボットアームBとが衝突(干渉)するか否かを判断する(S112)。CPU201は、衝突すると判断した場合(S112:Yes)は、ステップS113の処理に移行し、衝突しないと判断した場合(S112:No)は、ステップS114の処理に移行する。 Next, the CPU 201 determines whether or not the robot arm A and the robot arm B collide (interfere) in the temporary trajectory T ai of the robot arm A and the temporary trajectory T bi of the robot arm B calculated in step S110. Judgment is made (S112). When the CPU 201 determines that there is a collision (S112: Yes), the process proceeds to step S113, and when it is determined that no collision occurs (S112: No), the process proceeds to step S114.

CPU201は、ステップS114では、ループ変数iが0であるか否かを判断する。CPU201は、ループ変数iが0ではないと判断した場合(S114:No)、ループ変数iを1減らし(S115)、ステップS110の処理に戻る。   In step S114, the CPU 201 determines whether or not the loop variable i is 0. When the CPU 201 determines that the loop variable i is not 0 (S114: No), the CPU 201 decreases the loop variable i by 1 (S115), and returns to the process of step S110.

即ち、CPU201は、ステップS109,S115の処理で、ロボットアームCの経路上に複数(少なくとも2つ)の終了点候補Pc(N−1),Pc(N−2),…を設定することとなる。 That is, the CPU 201 sets a plurality (at least two) of end point candidates P c (N−1) , P c (N−2) ,... On the path of the robot arm C in the processes of steps S109 and S115. It will be.

そして、CPU201は、ステップS115を経てステップS110の処理へ帰還させている。これにより、CPU201は、複数の終了点候補Pc(N−1),Pc(N−2),…のそれぞれに対し、ロボットアームAの仮の軌道Ta(N−1),Ta(N−2),…及びロボットアームBの仮の軌道Tb(N−1),Tb(N−2)…を生成する。 Then, the CPU 201 returns the process to step S110 through step S115. As a result, the CPU 201 performs provisional trajectories T a (N−1) , T a of the robot arm A for each of the plurality of end point candidates P c (N−1) , P c (N-2) ,. (N-2) ,... And temporary trajectories T b (N−1) , T b (N−2) .

CPU201は、ステップS113では、仮の軌道Ta(i+1),Tb(i+1)を各ロボットアームA,B(101,102)の軌道に設定する(軌道設定工程)。また、CPU201は、ステップS116では、仮の軌道Ta0,Tb0を各ロボットアームA,B(101,102)の軌道に設定する(軌道設定工程)。即ちCPU201は、ロボットアームAの仮の軌道Ta(N−1),Ta(N−2),…、ロボットアームBの仮の軌道Tb(N−1),Tb(N−2),…のうち、ロボットアームA,Bが互いに衝突しない仮の軌道をロボットアームA,Bの軌道に設定する。 In step S113, the CPU 201 sets the temporary trajectories Ta (i + 1) and Tb (i + 1) as the trajectories of the robot arms A and B (101 and 102) (trajectory setting step). In step S116, the CPU 201 sets the temporary trajectories T a0 and T b0 to the trajectories of the robot arms A and B (101 and 102) (trajectory setting step). That is, the CPU 201 determines the temporary trajectories T a (N−1) , T a (N-2) ,... Of the robot arm A, and the temporary trajectories T b (N−1) , T b (N−2 ) of the robot arm B. ) , A temporary trajectory in which the robot arms A and B do not collide with each other is set as the trajectory of the robot arms A and B.

詳述すると、ロボットアームA,Bが互いに衝突しない仮の軌道が複数組ある場合には、これら仮の軌道のうち1組の仮の軌道を本軌道に設定し、ロボットアームA,Bが互いに衝突しない仮の軌道が1組の場合には、当該仮の軌道を本軌道に設定する。これにより、各ロボットアームA,Bの開始点Pas,Pbsから目標点Pag,Pbgまでの軌道の動作時間を短縮化することができる。 More specifically, when there are a plurality of temporary trajectories in which the robot arms A and B do not collide with each other, one temporary trajectory of these temporary trajectories is set as the main trajectory. When there is one set of temporary tracks that do not collide, the temporary track is set as the main track. Thereby, the operation time of the trajectory from the start points P as and P bs of the robot arms A and B to the target points P ag and P bg can be shortened.

特に、本実施形態では、ロボットアームA,Bが互いに衝突しない仮の軌道が複数組ある場合には、複数組の仮の軌道のうち、開始点Pas,Pbsに最も近い終了点候補に対応する仮の軌道を、ロボットアームA,Bの軌道に設定している。これにより、各ロボットアームA,Bの開始点Pas,Pbsから目標点Pag,Pbgまでの軌道の動作時間を更に短縮化することができる。 In particular, in the present embodiment, when there are a plurality of temporary trajectories in which the robot arms A and B do not collide with each other, the end point candidate closest to the start points P as and P bs among the plurality of temporary trajectories is selected. The corresponding temporary trajectory is set as the trajectory of the robot arms A and B. Thereby, the operation time of the trajectory from the start points P as and P bs of the robot arms A and B to the target points P ag and P bg can be further shortened.

ここで、CPU201は、ステップS115にてループ変数iを1減じることにより、ロボットアームCの経路H上で開始点Pcsに近づくように順次、終了点候補Pciを設定している。具体的には、CPU201は、開始点Pcsに近づくように、複数の補間点Pc0,Pc1,Pc2,Pc3,…の中から終了点候補Pciを設定している。 Here, the CPU 201 sequentially sets the end point candidates P ci so as to approach the start point P cs on the path H c of the robot arm C by reducing the loop variable i by 1 in step S115. Specifically, the CPU 201 sets an end point candidate P ci from among a plurality of interpolation points P c0 , P c1 , P c2 , P c3 ,... So as to approach the start point P cs .

そして、CPU201は、ステップS112では、ステップS110にて順次設定される終了点候補Pciに対応して順次生成される仮の軌道Tai,TbiでロボットアームA,Bが互いに衝突するか否かを判断している。ステップS111にて記録され、衝突しないと判断された仮の軌道Tai,Tbiは、後の本軌道となり得る候補である。 In step S112, the CPU 201 determines whether or not the robot arms A and B collide with each other on the temporary trajectories T ai and T bi generated sequentially corresponding to the end point candidates P ci sequentially set in step S110. Judgment. The temporary trajectories T ai and T bi recorded in step S111 and determined not to collide are candidates that can become the subsequent main trajectories.

CPU201は、ステップS112で衝突すると判断した場合は、軌道候補のうち開始点Pcsに最も近い終了点候補Pc(i+1)に対応する軌道候補Ta(i+1),Tb(i+1)を、各ロボットアームA,Bの本軌道に設定する。このときの終了点候補Pa(i+1),Pb(i+1)を終了点Pae,Pbeとする。 If the CPU 201 determines that there is a collision in step S112, the trajectory candidates T a (i + 1) and T b (i + 1) corresponding to the end point candidate P c (i + 1) closest to the start point P cs among the trajectory candidates are Set to the main trajectory of each robot arm A, B. The end point candidates P a (i + 1) and P b (i + 1) at this time are set as end points P ae and P be .

このように、経路H,H上を開始点Pas,Pbsに向かって終了点Pae,Pbeを探索することで、簡単に終了点Pae,Pbeを探索することができ、CPU201における演算負荷が減少する。 In this way, by search end point P ae, a P BE toward path H a, the upper H b starting point P the as, the P bs, easily end point P ae, you can explore the P BE The calculation load on the CPU 201 is reduced.

なお、本実施形態では、軌道計算において、同期させる第1区間における計算を簡略化するため、ロボットアームA,Bを1つのロボットアームCとみなしていたが、これに限定するものではない。ロボットアームAとロボットアームBとの同期をとることができれば、1つのロボットアームCとみなさなくてもよい。   In this embodiment, the robot arms A and B are regarded as one robot arm C in order to simplify the calculation in the first section to be synchronized in the trajectory calculation. However, the present invention is not limited to this. If the robot arm A and the robot arm B can be synchronized, it is not necessary to regard the robot arm C as one robot arm C.

以下、上記ステップS101〜S116により生成された各ロボットアームA,Bの軌道について説明する。   Hereinafter, the trajectories of the robot arms A and B generated in steps S101 to S116 will be described.

図4(a)に示すように、ロボットアームAは、開始点Pasから終了点Paeまで、ロボットアームBと同期し、終了点Paeから同期をやめ、目標点PagまではロボットアームA単独で、移動時間を短縮した最適な動作をする。図4(b)に示すように、ロボットアームBは、開始点Pbsから終了点Pbeまで、ロボットアームAと同期し、終了点Pbeから同期をやめ、目標点PbgまではロボットアームB単独で、移動時間を短縮した最適な動作をする。 As shown in FIG. 4 (a), the robot arm A from the starting point P the as to the end point P ae, synchronized with the robot arm B, stop synchronization from the end point P ae, robot arm to the target point P ag A alone operates optimally with reduced travel time. As shown in FIG. 4 (b), robotic arm B from the start point P bs to the end point P BE, synchronized with the robot arm A, stop synchronization from the end point P BE, robot arm to the target point P bg B alone operates optimally with reduced travel time.

図5は、本実施形態の軌道生成方法で生成した軌道Lと、比較例として開始点から目標点まで各ロボットアームを同期させた方法で生成した軌道Lとを、2次元関節空間上に射影して表現した概念図である。図5では、ロボットアームAのコンフィグレーションθ(θa1,θa2)をひとつのベクトルとして横軸に、ロボットアームBのコンフィグレーションθ(θb1,θb2)をひとつのベクトルとして縦軸にとっている。 Figure 5 is a trajectory L generated in the trajectory generation method of this embodiment, the track L x of each robot arm from a start point to the target point produced by the method that is synchronized as a comparative example, on a two-dimensional joint space It is the conceptual diagram expressed by projecting. In FIG. 5, the configuration θ aa1 , θ a2 ) of the robot arm A is set as one vector on the horizontal axis, and the configuration θ bb1 , θ b2 ) of the robot arm B is set as a vector on the vertical axis. For

図5に示すように、ロボットアームA,Bを開始点から目標点まで同期させた比較例の軌道Lの場合は、障害物Obをよけて、開始点から目標点まで到達するのに、関節空間での距離は最短にはなる。なお、ロボットアームの到達範囲内に配置された障害物以外にも、ロボットアーム同士も特定のコンフィグレーションを取る場合、障害物Obになり得る。つまり図5中の障害物Obは、配置された障害物およびロボットアームの衝突(干渉)を共に含んだ“障害物”として描かれている。しかし、ロボットアームBが、ロボットアームAの動きに合わせて遅くなるため、ロボットアームB単体で考えた場合、動作時間が最短にはならない。 As shown in FIG. 5, the robot arm A, the case of the trajectory L x of the comparative example to synchronize B from the start point to the target point, move out of the obstacle Ob, to reach from the start point to the target point The distance in the joint space is the shortest. In addition to the obstacles arranged within the reachable range of the robot arms, the robot arms can become obstacles Ob when they take a specific configuration. That is, the obstacle Ob in FIG. 5 is drawn as an “obstacle” including both the obstacle and the collision (interference) of the robot arm. However, since the robot arm B is delayed in accordance with the movement of the robot arm A, the operation time is not the shortest when the robot arm B is considered alone.

一方、本実施形態の軌道生成方法で生成した軌道Lは、関節空間での距離は軌道Lより長くなるが、ロボットアームBはロボットアームAより先に目標点に到達するため、ロボットアームBの動作時間は速くなる。これは、比較例の軌道生成方法が、時間軸を考慮に入れていないのに対し、本実施形態の軌道生成方法では時間軸を考慮に入れて軌道を生成しているためである。 On the other hand, the trajectory L generated in the trajectory generation method of this embodiment, since the distance of the joint space is longer than the track L x, robotic arm B is to reach the target point before the robot arm A, the robot arm B The operating time is faster. This is because the trajectory generation method of the comparative example does not take the time axis into consideration, whereas the trajectory generation method of the present embodiment generates the trajectory taking the time axis into consideration.

このときの各ロボットアームA,Bの動作について説明する。図6は、本発明の実施形態に係る軌道生成方法で生成した軌道を辿って動作するロボットアームの説明図である。図7は、比較例の軌道生成方法で生成した軌道を辿って動作するロボットアームの説明図である。図6(a)〜図6(g)は、各動作タイミングでの各ロボットアームA,Bの姿勢を示し、図7(a)〜図7(g)は、各図6(a)〜図6(g)の動作タイミングと同じ動作タイミングでの各ロボットアームA,Bの姿勢を示している。   The operation of each of the robot arms A and B at this time will be described. FIG. 6 is an explanatory diagram of a robot arm that operates following a trajectory generated by the trajectory generation method according to the embodiment of the present invention. FIG. 7 is an explanatory diagram of a robot arm that operates following a trajectory generated by the trajectory generation method of the comparative example. FIGS. 6A to 6G show the postures of the robot arms A and B at the respective operation timings, and FIGS. 7A to 7G are FIGS. The postures of the robot arms A and B at the same operation timing as the operation timing of 6 (g) are shown.

図7(a)〜図7(g)に示すように、比較例の軌道では、開始点から目標点まで終始ロボットアームA,Bを同期させているため、各ロボットアームA,Bは各目標点Pag,Pbgに同時に到着する。一方、図6(a)〜図6(g)に示すように、本実施形態の軌道では、終了点Pae,Pbe以降は、ロボットアームAとロボットアームBとがそれぞれ単独で目標点Pag,Pbgにたどり着くように最適化されている。そのため、図6(e)では、移動距離の短いロボットアームAがロボットアームBよりも先に目標点Pagに到着する。 As shown in FIGS. 7A to 7G, since the robot arms A and B are always synchronized from the start point to the target point in the track of the comparative example, the robot arms A and B are set to the target points. The points P ag and P bg arrive at the same time. On the other hand, as shown in FIGS. 6A to 6G, in the trajectory of this embodiment, after the end points P ae and P be , the robot arm A and the robot arm B are each independently the target point P. Optimized to arrive at ag and Pbg . Therefore, in FIG. 6E, the robot arm A having a short moving distance arrives at the target point Pag before the robot arm B.

ここで、終了点Pce(Pae,Pbe)について説明する。図6では、ロボットアームAとロボットアームBとを併せて1つのロボットアームCとみなし、経路生成プログラム233により経路を生成した場合のロボットアームA,Bの動作の移り変わりを示す。また、ロボットアームCの関節空間(4次元)における経路をHとする。また、ロボットアームCの関節空間(4次元)における経路Hの任意の中間点(途中点)を終了点候補Pciとする。 Here, the end point P ce (P ae , P be ) will be described. In FIG. 6, the robot arm A and the robot arm B are regarded as one robot arm C, and the movement of the robot arms A and B when the path is generated by the path generation program 233 is shown. Further, the path in the joint space (four-dimensional) of the robot arm C is assumed to be Hc . Further, an arbitrary intermediate point (intermediate point) of the path H c in the joint space (four-dimensional) of the robot arm C is set as an end point candidate P ci .

まず、図6(a)における開始点Pcsから、終了点候補PciまでロボットアームAとロボットアームBを同期させて軌道を生成する。次に、終了点候補Pciからは、ロボットアームAは、ロボットアームAの関節空間(2次元)の目標点PagまでロボットアームBと同期をせずに軌道を生成する。同様に、ロボットアームBは終了点候補Pciからは、ロボットアームBの関節空間(2次元)の目標点PbgまでロボットアームAと同期をせずに軌道を生成する。このとき、ロボットアームAとロボットアームBとが衝突しないで動作ができる、最も開始点Pas,Pbsに近い終了点候補Pciを終了点Pceとする。このときのロボットアームAのコンフィグレーションを終了点Pae、ロボットアームBのコンフィグレーションを終了点Pbeとする。 First, a trajectory is generated by synchronizing the robot arm A and the robot arm B from the start point P cs to the end point candidate P ci in FIG. Next, from the end point candidate P ci , the robot arm A generates a trajectory without synchronizing with the robot arm B to the joint point (two-dimensional) target point P ag of the robot arm A. Similarly, the robot arm B generates a trajectory without synchronizing with the robot arm A from the end point candidate P ci to the target point P bg in the joint space (two-dimensional) of the robot arm B. At this time, an end point candidate P ci closest to the start points P as and P bs that can operate without collision between the robot arm A and the robot arm B is set as an end point P ce . The configuration of the robot arm A at this time is defined as an end point P ae , and the configuration of the robot arm B is defined as an end point P be .

図6(c)に終了点Pce(Pae,Pbe)におけるロボットアームA及びロボットアームBの姿勢を示す。例えば、仮に図6(b)の姿勢から、同期をせずに、単腕ロボットアームA,Bでそれぞれ軌道を生成すると、ロボットアームAとロボットアームBとの衝突回避の姿勢の組み合わせがずれるため、衝突が発生すると考えられる。 FIG. 6C shows the postures of the robot arm A and the robot arm B at the end point P ce (P ae , P be ). For example, if the trajectories are generated by the single-arm robot arms A and B without synchronization from the posture shown in FIG. 6B, the combination of the postures for avoiding collision between the robot arm A and the robot arm B is shifted. A collision is considered to occur.

これに対し本実施形態では、終了点Pceである図6(c)では、ロボットアームAとロボットアームBが衝突回避を終えていると考えられ、その後、同期をせずにロボットアームA,Bで単独で軌道を生成し、最短で目標点に到達することができる。 On the other hand, in this embodiment, in FIG. 6C, which is the end point P ce , it is considered that the robot arm A and the robot arm B have finished avoiding the collision, and then the robot arm A, A trajectory can be generated by B alone and the target point can be reached in the shortest time.

制御装置200は、このようにして生成した仮の軌道のうち、複数の仮の軌道のうち、複数のロボットアームA,Bが互いに衝突しない仮の軌道を、実際の各ロボットアーム101,102の軌道に設定する。そして、制御装置200は、設定した軌道に従って、実際のロボットアーム101,102を動作させる。従って、終了点Pae,Pbe以降は各ロボットアーム101,102が非同期で動作するため、各ロボットアーム101,102の開始点Pas,Pbsから目標点Pag,Pbgまでの軌道の動作時間を短縮化することができる。 Of the temporary trajectories generated in this way, the control device 200 uses the temporary trajectories in which the plurality of robot arms A and B do not collide with each other as the actual robot arms 101 and 102. Set to orbit. Then, the control device 200 operates the actual robot arms 101 and 102 according to the set trajectory. Accordingly, since the robot arms 101 and 102 operate asynchronously after the end points P ae and P be , the trajectories of the robot arms 101 and 102 from the start points P as and P bs to the target points P ag and P bg , respectively. The operation time can be shortened.

また、本実施形態では、双腕ロボットアームA,Bにおいて障害物Obの回避とロボットアームA,B同士の衝突回避を考慮に入れた軌道を生成するため、障害物がある場合でも双腕ロボットアーム101,102全体の動作時間を短縮化できる。   Further, in this embodiment, since the trajectory taking into account the avoidance of the obstacle Ob and the avoidance of the collision between the robot arms A and B is generated in the double-arm robot arms A and B, the double-arm robot even when there is an obstacle. The operation time of the entire arms 101 and 102 can be shortened.

また、本実施形態によれば、ロボットアーム101,102が互いのロボットアームを避ける際にのみ動作同期をし、ロボットアーム101,102同士の衝突回避の必要がない第2区間では、単腕ロボットアームとして動作速度が最大化する。このため、衝突回避の必要がない第2区間では、ロボットアーム101,102単独で動作が可能であり、動作の自由度が高くなる。   Further, according to the present embodiment, the operation is synchronized only when the robot arms 101 and 102 avoid each other's robot arm, and in the second section where it is not necessary to avoid collision between the robot arms 101 and 102, the single-arm robot The operating speed is maximized as an arm. For this reason, in the second section in which collision avoidance is not necessary, the robot arms 101 and 102 can be operated alone, and the degree of freedom of operation is increased.

なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。   The present invention is not limited to the embodiment described above, and many modifications are possible within the technical idea of the present invention.

上記実施形態では、双腕ロボットアーム、すなわち2つのロボットアームの場合について説明したが、2つに限定するものではなく、2つ以上のロボットアームについて本発明は適用可能である。   In the above embodiment, the case of a dual arm robot arm, that is, two robot arms has been described. However, the present invention is not limited to two, and the present invention can be applied to two or more robot arms.

また、上記実施形態では、終了点Pae,Pbeを探索する際、経路の後方から順に探索を行う場合について説明したが、これに限定されるものではなく、2分法などの探索方法を用いてもよい。 In the above-described embodiment, the case where the search is performed in order from the back of the route when searching for the end points P ae and P be has been described. However, the present invention is not limited to this, and a search method such as a bisection method is used. It may be used.

また、上記実施形態では、終了点Pae,Pbeは、ロボットアームA,B同士が干渉しない軌道候補の中の終了点候補のうち、開始点Pas,Pbsに最も近い終了点候補とし、この場合が動作時間の短縮上最も好ましいが、これに限定するものではない。つまり、複数のロボットアームの軌道候補が複数組ある場合は、複数組の軌道候補の中から1組の軌道候補を複数のロボットアームの軌道に設定すればよい。 In the above embodiment, the end points P ae and P be are the end point candidates closest to the start points P as and P bs among the end point candidates among the trajectory candidates in which the robot arms A and B do not interfere with each other. This case is most preferable for shortening the operation time, but is not limited thereto. That is, when there are a plurality of sets of trajectory candidates for a plurality of robot arms, one set of trajectory candidates may be set as a trajectory for the plurality of robot arms.

また、上記実施形態では、ロボットアームを制御する制御装置が、軌道生成方法の各工程にしたがって各ロボットアームの軌道を生成する場合について説明したが、これに限定するものではない。制御装置とは別に軌道生成装置(コンピュータ)に軌道生成方法の各工程にしたがって各ロボットアームの軌道を生成させてもよい。この場合、制御装置は、軌道生成装置から軌道のデータを取得して、各ロボットアームの動作を制御すればよい。   Further, in the above-described embodiment, the case where the control device that controls the robot arm generates the trajectory of each robot arm according to each step of the trajectory generation method has been described, but the present invention is not limited to this. A trajectory of each robot arm may be generated in accordance with each step of the trajectory generation method by a trajectory generation device (computer) separately from the control device. In this case, the control device may acquire trajectory data from the trajectory generation device and control the operation of each robot arm.

また、上記実施形態の各処理動作は具体的にはCPU201により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を制御装置200に供給し、制御装置200のコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。   Further, each processing operation of the above embodiment is specifically executed by the CPU 201. Therefore, the control unit 200 is supplied with a recording medium on which a program for realizing the above-described functions is recorded, and the computer (CPU or MPU) of the control apparatus 200 reads out and executes the program stored in the recording medium. May be. In this case, the program itself read from the recording medium realizes the functions of the above-described embodiments, and the program itself and the recording medium recording the program constitute the present invention.

また、上記実施形態では、コンピュータ読み取り可能な記録媒体がHDD204であり、HDD204にプログラム230が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図2に示すROM202、記録ディスク240、外部記憶装置500等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、書き換え可能な不揮発性のメモリ(例えばUSBメモリ)、ROM等を用いることができる。   In the above embodiment, the computer-readable recording medium is the HDD 204, and the program 230 is stored in the HDD 204. However, the present invention is not limited to this. The program may be recorded on any recording medium as long as it is a computer-readable recording medium. For example, as a recording medium for supplying a program, the ROM 202, the recording disk 240, the external storage device 500, etc. shown in FIG. 2 may be used. As a specific example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a rewritable nonvolatile memory (for example, a USB memory), a ROM, etc. Can be used.

また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。   Further, the program in the above embodiment may be downloaded via a network and executed by a computer.

また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。   Further, the present invention is not limited to the implementation of the functions of the above-described embodiment by executing the program code read by the computer. This includes a case where an OS (operating system) or the like running on the computer performs part or all of the actual processing based on the instruction of the program code, and the functions of the above-described embodiments are realized by the processing. .

さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。   Furthermore, the program code read from the recording medium may be written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer. This includes a case where the CPU of the function expansion board or function expansion unit performs part or all of the actual processing based on the instruction of the program code, and the functions of the above embodiments are realized by the processing.

また、上記実施形態では、コンピュータがHDD等の記録媒体に記録されたプログラムを実行することにより、画像処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をASICやFPGA等の専用LSIで構成してもよい。なお、ASICはApplication Specific Integrated Circuit、FPGAはField-Programmable Gate Arrayの頭字語である。   Moreover, although the said embodiment demonstrated the case where a computer performed an image process by running the program recorded on recording media, such as HDD, it is not limited to this. A part or all of the functions of the arithmetic unit that operates based on the program may be configured by a dedicated LSI such as an ASIC or FPGA. Note that ASIC is an acronym for Application Specific Integrated Circuit, and FPGA is an acronym for Field-Programmable Gate Array.

100…ロボット装置、101,102…ロボットアーム、200…制御装置、201…CPU(演算部)、230…プログラム DESCRIPTION OF SYMBOLS 100 ... Robot apparatus, 101,102 ... Robot arm, 200 ... Control apparatus, 201 ... CPU (calculation part), 230 ... Program

Claims (8)

多関節である複数のロボットアームの軌道を求める軌道生成方法であって、
演算部が、前記各ロボットアームの開始点と目標点との間の経路を生成する経路生成工程と、
前記演算部が、前記各ロボットアームの経路上に複数の中間点を設定する中間点設定工程と、
前記演算部が、前記中間点設定工程で設定した前記複数の中間点のそれぞれに対し、前記開始点から前記中間点までの第1区間では、前記複数のロボットアームが互いに衝突を回避しながら前記各ロボットアームで同期して動作するよう、前記各ロボットアームの関節角度の推移を演算し、かつ前記中間点から前記目標点までの第2区間では、前記各ロボットアームで独立して動作するよう、前記各ロボットアームの関節角度の推移を演算して、前記各ロボットアームの複数の仮の軌道を生成する仮軌道生成工程と、
前記演算部が、前記仮軌道生成工程にて生成した複数の仮の軌道のうち、前記複数のロボットアームが互いに衝突しない仮の軌道を、前記各ロボットアームの軌道に設定する軌道設定工程と、を備えたことを特徴とする軌道生成方法。
A trajectory generation method for obtaining trajectories of a plurality of articulated robot arms,
A route generating step for generating a route between a start point and a target point of each robot arm;
An intermediate point setting step in which the arithmetic unit sets a plurality of intermediate points on the path of each robot arm;
For each of the plurality of intermediate points set in the intermediate point setting step by the arithmetic unit, in the first section from the start point to the intermediate point, the robot arms avoid the collision with each other. The joint angle transition of each robot arm is calculated so that each robot arm operates synchronously, and each robot arm operates independently in the second section from the intermediate point to the target point. Calculating a transition of the joint angle of each robot arm to generate a plurality of temporary trajectories for each robot arm;
A trajectory setting step for setting a temporary trajectory in which the plurality of robot arms do not collide with each other among the plurality of temporary trajectories generated in the temporary trajectory generating step by the arithmetic unit, A trajectory generation method comprising:
前記軌道設定工程では、前記演算部が、前記複数のロボットアームが互いに衝突しない仮の軌道が複数ある場合に、該複数の仮の軌道のうち、前記開始点に最も近い中間点に対応する仮の軌道を、前記各ロボットアームの軌道に設定することを特徴とする請求項1に記載の軌道生成方法。   In the trajectory setting step, when there are a plurality of temporary trajectories in which the plurality of robot arms do not collide with each other, the arithmetic unit selects a temporary point corresponding to an intermediate point closest to the start point among the plurality of temporary trajectories. The trajectory generation method according to claim 1, wherein the trajectory is set to a trajectory of each robot arm. 前記中間点設定工程では、前記演算部が、前記各ロボットアームの経路上で前記開始点に近づくように順次、前記中間点を設定し、
前記軌道設定工程では、前記演算部が、前記仮軌道生成工程にて順次設定される前記中間点に対応して順次生成される仮の軌道で前記複数のロボットアームが互いに衝突するか否かを判断し、衝突しないと判断した場合には、前記複数のロボットアームが互いに衝突しない仮の軌道を軌道候補とし、衝突すると判断した場合は、前記軌道候補のうち、前記開始点に最も近い中間点に対応する軌道候補を、前記各ロボットアームの軌道に設定することを特徴とする請求項2に記載の軌道生成方法。
In the intermediate point setting step, the calculation unit sequentially sets the intermediate points so as to approach the start point on the path of each robot arm,
In the trajectory setting step, whether or not the plurality of robot arms collide with each other in a temporary trajectory sequentially generated corresponding to the intermediate points sequentially set in the temporary trajectory generating step. If it is determined that the robot arms do not collide with each other, a temporary trajectory in which the plurality of robot arms do not collide with each other is determined as a trajectory candidate. The trajectory generation method according to claim 2, wherein trajectory candidates corresponding to are set to trajectories of the robot arms.
前記中間点設定工程では、前記演算部が、前記各ロボットアームの経路上の複数の補間点を予め求めておき、前記中間点を前記複数の補間点の中から設定することを特徴とする請求項1乃至3のいずれか1項に記載の軌道生成方法。   In the intermediate point setting step, the calculation unit obtains a plurality of interpolation points on a path of each robot arm in advance, and sets the intermediate point from the plurality of interpolation points. Item 4. The trajectory generation method according to any one of Items 1 to 3. 前記仮軌道生成工程では、前記演算部が、前記第2区間では、前記各ロボットアームが前記目標点に最短時間で到達するように前記各ロボットアームの関節の角度変化を演算することを特徴とする請求項1乃至4のいずれか1項に記載の軌道生成方法。   In the temporary trajectory generation step, the calculation unit calculates an angle change of a joint of each robot arm so that each robot arm reaches the target point in the shortest time in the second section. The trajectory generation method according to any one of claims 1 to 4. 多関節である複数のロボットアームと、
請求項1乃至5のいずれか1項に記載の軌道生成方法により生成した軌道に基づき、前記複数のロボットアームの動作を制御する制御装置と、を備えたことを特徴とするロボット装置。
A plurality of articulated robot arms,
A robot apparatus comprising: a control device that controls operations of the plurality of robot arms based on a trajectory generated by the trajectory generation method according to claim 1.
コンピュータに請求項1乃至5のいずれか1項に記載の軌道生成方法の各工程を実行させるためのプログラム。   A program for causing a computer to execute each step of the trajectory generation method according to any one of claims 1 to 5. 請求項7に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium on which the program according to claim 7 is recorded.
JP2014034932A 2014-02-26 2014-02-26 Orbit generation method, robot apparatus, program, and recording medium Active JP6282140B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014034932A JP6282140B2 (en) 2014-02-26 2014-02-26 Orbit generation method, robot apparatus, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014034932A JP6282140B2 (en) 2014-02-26 2014-02-26 Orbit generation method, robot apparatus, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2015160253A JP2015160253A (en) 2015-09-07
JP6282140B2 true JP6282140B2 (en) 2018-02-21

Family

ID=54183713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014034932A Active JP6282140B2 (en) 2014-02-26 2014-02-26 Orbit generation method, robot apparatus, program, and recording medium

Country Status (1)

Country Link
JP (1) JP6282140B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200023518A1 (en) * 2018-07-17 2020-01-23 Fanuc Corporation Robot system
US12030187B2 (en) * 2018-07-17 2024-07-09 Fanuc Corporation Robot system

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6576255B2 (en) * 2016-01-25 2019-09-18 キヤノン株式会社 Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method
US10919153B2 (en) 2017-03-06 2021-02-16 Canon Kabushiki Kaisha Teaching method for teaching operations to a plurality of robots and teaching system used therefor
JP6567101B2 (en) * 2017-03-06 2019-08-28 キヤノン株式会社 Teaching method, robot operating method, program, storage medium, teaching apparatus
JP6948164B2 (en) * 2017-06-12 2021-10-13 日立Geニュークリア・エナジー株式会社 Work robot arm attitude control system and method
DE102017213651A1 (en) * 2017-08-07 2019-02-07 Robert Bosch Gmbh Handling device with a robot and method and computer program
JP6826076B2 (en) 2018-07-17 2021-02-03 ファナック株式会社 Automatic route generator
CN109521878A (en) * 2018-11-08 2019-03-26 歌尔科技有限公司 Exchange method, device and computer readable storage medium
JP7143776B2 (en) * 2019-01-31 2022-09-29 オムロン株式会社 Control system and control method for control system
EP3725472A1 (en) * 2019-04-16 2020-10-21 Siemens Aktiengesellschaft Method for determining a trajectory of a robot
JP7222803B2 (en) * 2019-04-25 2023-02-15 株式会社日立製作所 Trajectory planning device, trajectory planning method and program
JP6914452B1 (en) * 2019-09-13 2021-08-04 三菱電機株式会社 Numerical control device and machine learning device
JP7382217B2 (en) * 2019-12-17 2023-11-16 川崎重工業株式会社 Offline programming device and offline programming method
CN115702064A (en) * 2020-07-08 2023-02-14 三菱电机株式会社 Robot control device, robot control method, and robot control program
US11940772B2 (en) 2020-09-11 2024-03-26 Mitsubishi Electric Corporation Numerical controller and industrial machine control system
CN112549025B (en) * 2020-11-27 2022-06-21 北京工业大学 Coordination diagram double-arm cooperative control method based on fusion of human body kinematic constraints
US20220390922A1 (en) * 2021-06-03 2022-12-08 X Development Llc Workcell modeling using motion profile matching and swept profile matching
WO2024049444A1 (en) * 2022-09-02 2024-03-07 Intel Corporation Post-attack real-time trajectory recovery of collaborative robotic arms
CN117086919B (en) * 2023-10-16 2023-12-15 武汉东湖学院 Obstacle avoidance detection device for industrial robot

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04305704A (en) * 1991-04-03 1992-10-28 Toshiba Corp Robot controller
JPH05119814A (en) * 1991-05-20 1993-05-18 Brother Ind Ltd Non-interference controller for robot arm
JP4228387B2 (en) * 2001-10-25 2009-02-25 株式会社安川電機 Work teaching method and work teaching apparatus for multiple robots
JP4348276B2 (en) * 2004-11-02 2009-10-21 本田技研工業株式会社 Robot controller
DE602006012485D1 (en) * 2006-09-14 2010-04-08 Abb Research Ltd Method and device for avoiding collisions between an industrial robot and an object
US8386080B2 (en) * 2009-09-15 2013-02-26 Harris Corporation Robotic apparatus implementing collision avoidance scheme and associated methods

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200023518A1 (en) * 2018-07-17 2020-01-23 Fanuc Corporation Robot system
US12030187B2 (en) * 2018-07-17 2024-07-09 Fanuc Corporation Robot system

Also Published As

Publication number Publication date
JP2015160253A (en) 2015-09-07

Similar Documents

Publication Publication Date Title
JP6282140B2 (en) Orbit generation method, robot apparatus, program, and recording medium
CN110116405B (en) Trajectory generation method and trajectory generation device
CN110198813B (en) Robot path generation device and robot system
JP6576255B2 (en) Robot trajectory generation method, robot trajectory generation apparatus, and manufacturing method
Lu et al. Collision-free and smooth joint motion planning for six-axis industrial robots by redundancy optimization
JP7439206B2 (en) Information processing methods, information processing devices, programs, recording media, production systems, robot systems, article manufacturing methods
CN109397271B (en) 7-degree-of-freedom anthropomorphic mechanical arm and control method and system thereof
US10919153B2 (en) Teaching method for teaching operations to a plurality of robots and teaching system used therefor
US9411335B2 (en) Method and apparatus to plan motion path of robot
JP6567101B2 (en) Teaching method, robot operating method, program, storage medium, teaching apparatus
EP2969400A1 (en) Reducing energy consumption of industrial robots by using new methods for motion path programming
Kabir et al. Generation of synchronized configuration space trajectories of multi-robot systems
WO2023024317A1 (en) Robot obstacle avoidance method and apparatus, and robot
CN109760040B (en) Interference determination method, interference determination system, and storage medium
CN111923039A (en) Redundant mechanical arm path planning method based on reinforcement learning
JP2007203380A (en) Instruction support device for robot
CN110561419B (en) Arm-shaped line constraint flexible robot track planning method and device
JP2012157955A (en) Device and method for controlling movement, and computer program
JP2020049554A (en) Track formation method, track formation device, and robot system
Ramer et al. A robot motion planner for 6-DOF industrial robots based on the cell decomposition of the workspace
CN116872212A (en) Double-mechanical-arm obstacle avoidance planning method based on A-Star algorithm and improved artificial potential field method
Ata et al. COLLISION-FREE TRAJECTORY PLANNING FOR MANIPULATORS USING GENERALIZED PATTERN SEARCH.
JP7314215B2 (en) Simulator, robot teaching device, robot system, article manufacturing method, simulation method, program and recording medium
JP2021082222A (en) Information processing method, robot system, article manufacturing method, and information processing unit
CN113146637B (en) Robot Cartesian space motion planning method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171221

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: 20171226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180123

R151 Written notification of patent or utility model registration

Ref document number: 6282140

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151