JP6282140B2 - Orbit generation method, robot apparatus, program, and recording medium - Google Patents
Orbit generation method, robot apparatus, program, and recording medium Download PDFInfo
- 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
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.
非特許文献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.
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図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
ロボットアーム101,102は、多関節のロボットアームであり、関節とリンク機構で構成される。関節には回転関節や直動関節の他、球体関節などさまざまな種類の関節が適用可能である。関節の動作はモータ等で能動的に動作する場合と、動力源を持たずに受動的に動作する場合とがある。各関節間はリンク機構により結びつけられ、関節とリンク機構が交互に直列されたシリアルリンク型と関節とリンクの組合せが並列となったパラレルリンク型などがある。
The
本実施形態では、ロボットアーム101,102は、回転関節を有するシリアルリンク型のロボットアームであり、関節はモータ及び駆動回路等を有する駆動装置により駆動されるよう構成されている。また、ロボットアーム101は、複数(本実施形態では2つ)の関節(自由度)Ja1,Ja2を備えた2軸のロボットアームである。ロボットアーム102は、複数(本実施形態では2つ)の関節(自由度)Jb1,Jb2を備えた2軸のロボットアームである。
In this embodiment, the
なお、ロボットアーム101及びロボットアーム102は、一般的にはロボットアーム自体が動作するような動作体として広く観念されるものであればよく、特に限定して解釈されるものではない。例えば、ロボットアーム101,102は、2軸のロボットアームとしたが、6軸多関節ロボットアームであってもよい。
In general, the
操作装置300は、作業者が操作するものであり、ロボットアーム101,102の動作を指定したり、制御装置200に各ロボットアーム101,102に対する教示点を教示したりするのに用いる。
The
制御装置200は、各ロボットアーム101,102の軌道のデータに基づき、各ロボットアーム101,102の動作を制御するものである。更に、本実施形態では、制御装置200は、軌道生成装置でもあり、軌道生成方法により、ロボットアームA,B同士が衝突(干渉)しないように各ロボットアーム101,102の軌道を生成する。即ち、制御装置200は、ロボットアーム101に対応する仮想的なロボットアームA、ロボットアーム102に対応する仮想的なロボットアームBをそれぞれ定義し、各ロボットアームA,Bの軌道を演算により生成するシミュレータとしての機能を有する。各ロボットアームA,Bは、コンピュータで定義された仮想空間内に配置され、各ロボットアーム101,102の形状データ(CADデータ)等に基づいて定義された仮想的なロボットアームである。
The
ここで、ロボットアーム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
関節空間では、教示点は、ロボットアームの関節の角度で表されるパラメータで表され、関節の数だけパラメータを有している。関節空間とは、ロボットアーム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
CPU201には、ROM202、ROM203、HDD204、記録ディスクドライブ205及び各種のインタフェース211〜215が、バス216を介して接続されている。ROM202には、BIOS等の基本プログラムが格納されている。RAM203は、CPU201の演算処理結果等、各種データを一時的に記憶する記憶装置である。
A
HDD204は、CPU201の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU201に、後述する演算処理の各工程を実行させるためのプログラムを記録(格納)するものである。CPU201は、HDD204に記録(格納)されたプログラム230に基づいて軌道生成方法の各工程を実行する。
The
記録ディスクドライブ205は、記録ディスク240に記録された各種データやプログラム等を読み出すことができる。ロボットアーム101,ロボットアーム102,操作装置300,表示装置400,外部記憶装置500はインタフェース211〜215にそれぞれ接続されている。
The
操作装置300は、作業者の入力操作により、ロボットアーム101,102を教示する教示点を指定する。教示点のデータは、インタフェース212及びバス216を通じてCPU201又はRAM203、HDD204に出力される。CPU201は、操作装置300から、又はRAM203若しくはHDD204から教示点のデータの入力を受ける。
The
表示装置400は、CPU201の制御の下、画像を表示するディスプレイである。表示装置400は、CPU201の制御の下、例えばロボットアームA,Bやその作業空間(仮想空間)を3D(3次元)グラフィックスで表示する。これにより、作業者は、生成された動作経路を目視により確認することができる。外部記憶装置500は、書き換え可能な不揮発性メモリや外付けHDD等である。
The
CPU201は、各ロボットアーム101,102に対する教示点のデータに基づき、各ロボットアーム101,102の軌道を生成する。そして、CPU201は、各ロボットアーム101,102の各関節のモータに対する駆動指令を所定時間間隔(例えば1[ms])でバス216及びインタフェース211,212を介して不図示のモータ駆動回路に出力する。各関節のモータ駆動回路がモータを駆動することにより、各ロボットアーム101,102が動作する。
The
プログラム230は、衝突チェックプログラム231と、キネマティクス計算プログラム232と、経路生成プログラム233と、経路短縮プログラム234と、軌道生成プログラム235と、衝突回避終了点探索プログラム236と、を有している。
The
衝突チェックプログラム231は、物体同士が衝突するかどうかをCPU201に判断させるプログラムである。例えば、ロボットアームA,Bと障害物ObのCADデータをポリゴン(例えば三角形等の多角形)の集合とする。衝突チェックプログラム231に基づき動作するCPU201は、対象となるロボットアームA,Bのポリゴンの集合と障害物Obのポリゴンの集合とが幾何学的に接触するか否かを判断する。
The
なお、衝突チェックは、ポリゴンではなく、ロボットアーム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
順キネマティクス計算は、例えば、図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
経路生成プログラム233は、関節空間上において、障害物Obを避けて開始点と目標点とを接続する各ロボットアームA,Bの経路をCPU201に生成させるプログラムである。経路とは、ロボットアームA,Bのコンフィグレーションが時間の経過とともに変化するときの、関節空間におけるロボットアームのコンフィグレーションの軌跡である。なお、この経路には、単にどのルートで通過するか(どの関節角度となるか)が規定されており、通過時刻は規定されていない。
The
経路生成プログラム233は、あるコンフィグレーションでロボットアームA,Bが衝突しているか否かをチェックするため、衝突チェックプログラム231と、キネマティクス計算プログラム232とを併せて用いる。経路生成方法には、PRM(Probabilistic RoadMap Method)、RRT(Rapidly-exploring Random Tree)といった方法が、計算時間と探索能力の観点から好ましい。なお、経路生成方法は、PRMやRMTに限定するものではなく、ポテンシャル法、可視グラフ法、セル分割法、ボロノイ図法などの他の方法も適用できる。
The
いずれの経路生成方法であっても、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
経路生成プログラム233により生成した経路は、回り道をしていたり尖っていたりするため無駄が多く、経路修正を行う必要がある。経路短縮プログラム234は、経路生成プログラム233で生成した経路の短縮化をCPU201に行わせるプログラムである。CPU201がプログラム234を実行する際、あるコンフィグレーション(θa1,θa2,θb1,θb2)でロボットアームが衝突しているかをチェックするため、衝突チェックプログラム231と、キネマティクス計算プログラム232を併せて用いる。
Since the route generated by the
経路短縮化手法としては、例えば、経路生成プログラム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
なお、経路短縮方法はこれに限定されるものではなく、経路の先端から衝突せずに接続可能な点を探索していき経路を短縮化する、貪欲アルゴリズムを用いてもよい。また、関節空間上の経路をゴムモデルと仮定し、経路が縮む力を発生させると同時に、障害物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
この軌道生成プログラム235は、双腕(2つ)のロボットアームA,Bを同期させた軌道を生成することができるプログラムである。ここでいう双腕ロボットアームA,Bの同期とは、ロボットアームAのコンフィグレーションがPaj(θaj1,θaj2)の時、ロボットアームBをそれに対応するコンフィグレーションPbj(θbj1,θbj2)を指定して連動させることである。
The
また、軌道生成プログラム235は、双腕ロボットアームA,Bを同期させている途中で、ロボットアームA,B同士の同期をやめ、ロボットアームA,B単独で最適な動作をさせる軌道を生成することもできる。
The
衝突回避終了点探索プログラム236は、ロボットアームA,Bを併せて1つのロボットアームCとみなし算出した経路に対し、衝突回避終了点(以下、単に「終了点」という)をCPU201に探索させるプログラムである。
The collision avoidance end
図3は、制御装置200のCPU201が実行する軌道生成方法の各工程を示すフローチャートである。CPU201は、プログラム230(プログラム231〜236)を実行することで、以下に説明する各工程を実行する。
FIG. 3 is a flowchart showing each step of the trajectory generation method executed by the
まず、CPU201は、ロボットアームA,Bが作業を行う作業空間(仮想空間)でのロボットアームA,B及び障害物Obの位置及び形状情報を読み込む(S101)。ロボットアームA,B及び障害物Obは、設計情報などであり、例えば3次元CADのデータ、若しくはカメラの映像や各種センサによる計測等で収集したデータを用いて、又は手動で設定する。
First, the
図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
また、CPU201は、ロボットアームAの目標点Pag(θag1,θag2)、及びロボットアームBの目標点Pbg(θbg1,θbg2)を決定する(S103)。例えば、CPU201は、ロボットアームA,Bの目標点を、手先の位置及び姿勢を入力として、キネマティクス計算プログラム232により逆キネマティクスを解くことによって決定する。つまり、取得した目標点Pag,Pbgのパラメータがタスク空間で定義されている場合には、関節空間に変換する必要があり、CPU201は、目標点Pag,Pbgのパラメータをタスク空間から関節空間に変換する演算を行う。なお、CPU201が取得した目標点Pag,Pbgのパラメータが関節空間である場合には、変換作業は省略可能である。
Further, the
次に、CPU201は、開始点Pas,Pbs及び目標点Pag,Pbgで、ロボットアームA及びロボットアームBがそれぞれ障害物Obに衝突していないか否か、ロボットアームA,B同士が衝突していないか否かを判断する(S104)。
Next, the
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
次に、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
次に、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
次に、CPU201は、作成した経路Hcで目標点Pcgに到達できたと判断した場合(S106:Yes)、作成した経路Hcに対し、経路短縮プログラム234を用いて短縮処理を行う(S107)。
Next,
次に、CPU201は、経路Hcを関節空間上でいくつかに分割(例えば等分割)することで複数の補間点Pc0,Pc1,Pc2,Pc3,…,PcNを追加する。その際、開始点Pcsから目標点Pcgに向かって補間点Pc0,Pc1,Pc2,Pc3,…,PcNの順に設定する(S108)。即ち、CPU201は、ロボットアームAの経路Ha上の複数の補間点Pa0,Pa1,…PaNを求めると共に、ロボットアームBの経路Hb上の複数の補間点Pb0,Pb1,…PbNを求めたのと同じである。なお、補間点Pcjは、補間点Paj及び補間点Pbj(j=0,…,N)からなる。
Next, the
次に、CPU201は、ロボットアームA及びロボットアームBがそれぞれの終了点の候補となる関節空間上のコンフィグレーションを、終了点候補(中間点)Pciとし、i=N−1と設定し、初期化を行う(S109)。ただし、iは正の整数である変数とする。即ち、CPU201は、ロボットアームA,Bを1つのロボットアームCとみなして、ロボットアームCの経路Hc上に終了点候補(中間点)Pciを設定する(中間点設定工程)。これは、ロボットアームAの経路Ha上に終了点候補(中間点)Paiを、ロボットアームBの経路Hb上に終了点候補(中間点)Pbiを、それぞれ設定したのと同じである。
Next, the
次に、CPU201は、経路Hc上の任意の点Pcj(θaj1,θaj2,θjb1,θjb2)(jは0からNまでの整数)を、Paj(θaj1,θaj2)で構成される経路Haと、Pbj(θbj1,θbj2)で構成される経路Hbに分割する。図4に、それぞれ経路Ha,Hbを示す。CPU201は、軌道生成プログラム235を用い、開始点Pcsから終了点候補PciまでロボットアームA,Bで経路Hcに沿って同期をし、終了点候補PciからはロボットアームA,Bで同期をせずに仮の軌道を生成する(S110:仮軌道生成工程)。同期をしない区間では、ロボットアームAは経路Haに沿って終了点候補Paiから目標点Pagまで、ロボットアームBは経路Hbに沿って終了点候補Pbiから目標点Pbgまでの仮の軌道を生成する。終了点候補Paiは(θai1,θai2)、終了点候補Paiは(θai1,θai2)からなる。ここで、「仮の軌道」と称したのは、この段階では設定する軌道が決定していないためであり、設定する軌道は、後の工程で複数の仮の軌道の中から決定される。
Next, the
仮の軌道は、開始点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の各関節の関節角度θa(t)=(θaj1(t),θaj2(t))、θb(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
本実施形態では、CPU201は、第2区間では、各ロボットアームA,Bが目標点Pag,Pbgに最短時間で到達するように各ロボットアームA,Bの関節の角度変化を演算することで、軌道Tai,Tbiを生成している。これにより、各ロボットアームA,Bは、より速く目標点Pag,Pbgに到達する。
In the present embodiment, the
次に、CPU201は、ステップS110で生成した軌道Tai,Tbiを記憶装置であるHDD204に保存する(S111)。
Next, the
次に、CPU201は、ステップS110で算出したロボットアームAの仮の軌道Tai及びロボットアームBの仮の軌道Tbiにおいて、ロボットアームAとロボットアームBとが衝突(干渉)するか否かを判断する(S112)。CPU201は、衝突すると判断した場合(S112:Yes)は、ステップS113の処理に移行し、衝突しないと判断した場合(S112:No)は、ステップS114の処理に移行する。
Next, the
CPU201は、ステップS114では、ループ変数iが0であるか否かを判断する。CPU201は、ループ変数iが0ではないと判断した場合(S114:No)、ループ変数iを1減らし(S115)、ステップS110の処理に戻る。
In step S114, the
即ち、CPU201は、ステップS109,S115の処理で、ロボットアームCの経路上に複数(少なくとも2つ)の終了点候補Pc(N−1),Pc(N−2),…を設定することとなる。
That is, the
そして、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
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
詳述すると、ロボットアーム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の経路Hc上で開始点Pcsに近づくように順次、終了点候補Pciを設定している。具体的には、CPU201は、開始点Pcsに近づくように、複数の補間点Pc0,Pc1,Pc2,Pc3,…の中から終了点候補Pciを設定している。
Here, the
そして、CPU201は、ステップS112では、ステップS110にて順次設定される終了点候補Pciに対応して順次生成される仮の軌道Tai,TbiでロボットアームA,Bが互いに衝突するか否かを判断している。ステップS111にて記録され、衝突しないと判断された仮の軌道Tai,Tbiは、後の本軌道となり得る候補である。
In step S112, the
CPU201は、ステップS112で衝突すると判断した場合は、軌道候補のうち開始点Pcsに最も近い終了点候補Pc(i+1)に対応する軌道候補Ta(i+1),Tb(i+1)を、各ロボットアームA,Bの本軌道に設定する。このときの終了点候補Pa(i+1),Pb(i+1)を終了点Pae,Pbeとする。
If the
このように、経路Ha,Hb上を開始点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
なお、本実施形態では、軌道計算において、同期させる第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と、比較例として開始点から目標点まで各ロボットアームを同期させた方法で生成した軌道Lxとを、2次元関節空間上に射影して表現した概念図である。図5では、ロボットアームAのコンフィグレーションθa(θa1,θa2)をひとつのベクトルとして横軸に、ロボットアームBのコンフィグレーションθ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 θ a (θ a1 , θ a2 ) of the robot arm A is set as one vector on the horizontal axis, and the configuration θ b (θ b1 , θ b2 ) of the robot arm B is set as a vector on the vertical axis. For
図5に示すように、ロボットアームA,Bを開始点から目標点まで同期させた比較例の軌道Lxの場合は、障害物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は、関節空間での距離は軌道Lxより長くなるが、ロボットアーム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次元)における経路をHcとする。また、ロボットアームCの関節空間(4次元)における経路Hcの任意の中間点(途中点)を終了点候補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
まず、図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
また、本実施形態では、双腕ロボットアーム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
また、本実施形態によれば、ロボットアーム101,102が互いのロボットアームを避ける際にのみ動作同期をし、ロボットアーム101,102同士の衝突回避の必要がない第2区間では、単腕ロボットアームとして動作速度が最大化する。このため、衝突回避の必要がない第2区間では、ロボットアーム101,102単独で動作が可能であり、動作の自由度が高くなる。
Further, according to the present embodiment, the operation is synchronized only when the
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。 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
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がHDD204であり、HDD204にプログラム230が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図2に示すROM202、記録ディスク240、外部記憶装置500等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、書き換え可能な不揮発性のメモリ(例えばUSBメモリ)、ROM等を用いることができる。
In the above embodiment, the computer-readable recording medium is the
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。 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
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:
前記軌道設定工程では、前記演算部が、前記仮軌道生成工程にて順次設定される前記中間点に対応して順次生成される仮の軌道で前記複数のロボットアームが互いに衝突するか否かを判断し、衝突しないと判断した場合には、前記複数のロボットアームが互いに衝突しない仮の軌道を軌道候補とし、衝突すると判断した場合は、前記軌道候補のうち、前記開始点に最も近い中間点に対応する軌道候補を、前記各ロボットアームの軌道に設定することを特徴とする請求項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乃至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.
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)
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)
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)
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 |
-
2014
- 2014-02-26 JP JP2014034932A patent/JP6282140B2/en active Active
Cited By (2)
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 |