JP2016040066A - 経路生成方法、経路生成装置、ロボット装置、プログラム及び記録媒体 - Google Patents

経路生成方法、経路生成装置、ロボット装置、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2016040066A
JP2016040066A JP2014164817A JP2014164817A JP2016040066A JP 2016040066 A JP2016040066 A JP 2016040066A JP 2014164817 A JP2014164817 A JP 2014164817A JP 2014164817 A JP2014164817 A JP 2014164817A JP 2016040066 A JP2016040066 A JP 2016040066A
Authority
JP
Japan
Prior art keywords
robot
joints
point
path
teaching point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014164817A
Other languages
English (en)
Inventor
圭祐 前原
Keisuke Maehara
圭祐 前原
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 JP2014164817A priority Critical patent/JP2016040066A/ja
Publication of JP2016040066A publication Critical patent/JP2016040066A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】経路生成に要する計算量を低減すること。
【解決手段】演算部は、始点及び終点を、ロボットの各関節J1〜J6のパラメータ値で求める(S1)。演算部は、ロボットの関節を2つのグループにグループ分けしたうちの一方のグループに属する関節J4,J5,J6について、始点と終点との間で動作する関節の経路を拘束する関節補間経路(複数の拘束点)を求める(S2)。演算部は、2つのグループのうち他方のグループに属する関節J1,J2,J3の位置を座標軸とするコンフィギュレーション空間を構築する(S3)。演算部は、コンフィギュレーション空間における注目点と複数の拘束点とを組み合わせた点について、ロボットが障害物に干渉するか否かの干渉判定を行い、ロボットが障害物に干渉するのを回避する経路を探索する(S4〜S8)。
【選択図】図3

Description

本発明は、経路生成方法、経路生成装置、ロボット装置、プログラム及び記録媒体に関し、特に、障害物を回避するロボットの経路を生成するものに関する。
予めロボット手先の始点(第1教示点)と終点(第2教示点)とを教示しておき、その教示点間の障害物を回避する経路を生成する技術が注目されている。
そのような技術の一般的な枠組みとして、ロボットの関節の位置を軸にとる、ロボットの関節数と同次元の空間(以下、「コンフィギュレーション空間」又は「C−Space」という)を構築し、その空間で経路を探索する探索手法が提案されている。この種の探索手法としては、近似セル分割法やRRT(Rapidly-exploring Random Trees)法などがある。
関節数と同次元のコンフィギュレーション空間を用いた探索手法には、コンフィギュレーション空間の次元に比例して計算量とメモリの使用量が増大するという特徴がある。そのため産業用によく用いられる6軸垂直多関節のロボットなどに適用しようとすると、コンフィギュレーション空間の次元は6次元となり、その空間での経路の探索においては計算量とメモリの使用量が大きい。
このような中、関節数と同次元のコンフィギュレーション空間における過剰な計算を削減する方法として、特許文献1に示す技術が提案されている。特許文献1においては、現在位置において距離候補判断手段により選定された距離候補コンフィギュレーション点が干渉点でない場合には、直進モード経路を生成し、干渉点である場合には、境界追従モード経路を生成する、という方法をとっている。
また、6自由度の組立作業を遂行するための接触状態遷移をC−Spaceを用いて簡単かつ短時間に計画・実行する方法として、特許文献2に示す技術が提案されている。特許文献2においては、位置のC−Spaceと姿勢のC−Spaceを分離して交互に計画を行い、目標状態に収束するまで計画を行う、という方法をとっている。
特開2012−56064号公報 特開平10−78813号公報
しかしながら、前記特許文献1に記載の経路生成方法を用いて例えば6軸垂直多関節のロボットの経路生成を試みた場合、関節数と同次元(6次元)のコンフィギュレーション空間で探索を行うこととなる。このため、依然として計算量と、計算結果を保存するメモリの使用量が大きいという問題があった。
具体的には、例えば近似セル分割法を用いて6次元のコンフィギュレーション空間における障害物マップを作成しようとする場合、各軸の分割数を例えば100とすると、干渉判定すべき格子点の数は100の6乗個となる。100の6乗回の干渉判定に要する計算量と、100の6乗ビット(より実際的には、1ビットの情報をメモリに保存する際には1バイトの記憶容量が必要となるため、100の6乗バイト=1Tバイト)のメモリの使用量とを要していた。
また、前記特許文献2に記載の動作計画方法を用いて6軸垂直多関節のロボットの経路生成を試みた場合、位置・姿勢の個々の計画においては探索空間の次元が削減されるものの、目標状態に収束するまで繰り返し計算が必要である。このため、依然として計算量とメモリの使用量が大きいという問題があった。
そこで、本発明は、ロボットの経路生成に要する計算量を低減することを目的とするものである。
本発明の経路生成方法は、多関節のロボットの第1教示点と第2教示点とをつなぐ経路を、演算部により生成する経路生成方法において、前記演算部が、前記第1教示点及び前記第2教示点を、前記ロボットの各関節のパラメータ値で取得する教示点取得工程と、前記演算部が、前記ロボットの関節を2つのグループにグループ分けしたうちの一方のグループに属する関節について、前記第1教示点と前記第2教示点との間で動作する関節の経路を拘束する複数の拘束点を求める拘束工程と、前記演算部が、前記2つのグループのうち他方のグループに属する関節の位置を座標軸とするコンフィギュレーション空間を構築するコンフィギュレーション空間構築工程と、前記演算部が、前記コンフィギュレーション空間における注目点と前記複数の拘束点とを組み合わせた点について、前記ロボットが障害物に干渉するか否かの干渉判定を行い、前記ロボットが障害物に干渉するのを回避する経路を探索する探索工程と、を備えたことを特徴とする。
本発明によれば、経路を拘束した関節の数だけ、探索空間となるコンフィギュレーション空間の次元が減縮されるので、ロボットの経路の生成に要する計算量が削減される。
本発明の第1実施形態に係るロボット装置を示す模式図である。 本発明の第1実施形態に係るロボット装置の経路生成装置の構成を示すブロック図である。 本発明の第1実施形態に係る経路生成装置による経路生成方法を示すフローチャートである。 本発明の第1実施形態に係る経路生成方法の拘束工程にて、第4関節、第5関節及び第6関節の経路を関節補間により求めた例を示す図である。 本発明の第1実施形態に係る経路生成方法の探索工程を説明するための図である。 本発明の第1実施形態に係る経路生成方法の探索工程を説明するための図である。 コンフィギュレーション空間の次元数と、計算量・メモリ使用量の関係を表す図である。 本発明の第2実施形態に係る経路生成方法を示すフローチャートである。
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1は、本発明の第1実施形態に係るロボット装置を示す模式図である。ロボット装置500は、ワークの組立作業等の作業を行うロボット100と、ロボット100に通信・電力線401で接続されたロボットコントローラ200と、ロボットコントローラ200に通信線402で接続された経路生成装置300と、を備えている。
ロボット100は、例えば6軸垂直多関節のロボットである。ロボット100は、垂直多関節型のロボットアーム101と、ロボットアーム101の先端に接続されたエンドエフェクタであるロボットハンド102と、を備えている。
ロボットアーム101は、作業台に固定されるベース部(基端リンク)120と、変位や力を伝達する複数のリンク121〜126と、を有している。ロボットハンド102がロボット100の手先を構成し、ロボットアーム101のベース部120がロボット100の手先とは反対側の根元を構成している。ベース部120及び複数のリンク121〜126は、複数の関節J1〜J6で旋回又は回転可能に互いに連結されている。つまり、ロボット100においては、関節J1〜J6が、根元側から手先側に向かって第1関節J1,第2関節J2,第3関節J3,第4関節J4,第5関節J5,第6関節J6の順に配置されている。第1実施形態では、ロボット100の関節とロボットアーム101の関節とは同義である。
また、ロボットアーム101は、各関節J1〜J6に設けられた、関節を駆動する関節駆動装置(不図示)を備えている。各関節J1〜J6に配置された不図示の関節駆動装置は、必要なトルクの大きさに合わせて適切な出力のものが用いられる。
ロボットハンド102は、ワークを把持する複数の把持爪(フィンガ)104と、複数の把持爪104を駆動する不図示の駆動部と、駆動部の回転角度を検出する不図示のエンコーダと、回転を把持動作に変換する不図示の機構とを有している。この不図示の機構は、カム機構やリンク機構などで必要な把持動作に合わせて設計される。なお、ロボットハンド102に用いる駆動部に必要なトルクは、ロボットアーム101の関節用と異なるが、基本構成は同じである。また、ロボットハンド102は、把持爪104に作用する反力を検出可能な不図示の力覚センサを有している。
ロボット100の手先には、ツールセンターポイント(TCP)が設定されており、教示点がタスク空間で設定(教示)される場合、その教示点は、世界座標系ΣでTCPの位置及び姿勢を示す6つのパラメータ値で表現される。つまり、教示点が設定されるタスク空間は、世界座標系Σを基準に構成される空間であり、位置を示す座標軸X,Y,Z及び姿勢を示す座標軸RX,RY,RZで定義される。
教示点がコンフィギュレーション空間(関節空間)で設定(教示)される場合、その教示点は、ロボット100(ロボットアーム101)の各関節J1〜J6の関節角度(関節位置)を示すパラメータ値で表現される。つまり、教示点が設定されるコンフィギュレーション空間は、関節J1〜J6の角度(位置)を示す座標軸で定義される。なお、タスク空間で設定された教示点は、逆運動学計算により、コンフィギュレーション空間の教示点に変換することができる。
経路生成装置300は、ロボット100の経路(各関節J1〜J6の位置の同期した変化)を生成し、経路のデータを通信線402を通じてロボットコントローラ200に送信することができる。
ロボットコントローラ200は、経路生成装置300から取得した経路のデータに従って、ロボット100の動作、即ちロボット100の各関節J1〜J6の位置(角度)を制御する。
図2は、ロボット装置500の経路生成装置300の構成を示すブロック図である。経路生成装置300は、コンピュータで構成されている。経路生成装置300は、演算部としてのCPU(Central Processing Unit)301を備えている。また、経路生成装置300は、記憶部として、ROM(Read Only Memory)302、RAM(Random Access Memory)303、HDD(Hard Disk Drive)304を備えている。また、経路生成装置300は、記録ディスクドライブ305及び各種のインタフェース311〜314を備えている。
CPU301には、ROM302、RAM303、HDD304、記録ディスクドライブ305及び各種のインタフェース311〜314が、バス320を介して接続されている。ROM302には、BIOS等の基本プログラムが格納されている。RAM303は、CPU301の演算処理結果等、各種データを一時的に記憶する記憶装置である。
HDD304は、CPU301の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU301に、後述する各種演算処理を実行させるためのプログラム340を記録するものである。CPU301は、HDD304に記録(格納)されたプログラム340に基づいて経路生成方法の各工程を実行する。記録ディスクドライブ305は、記録ディスク341に記録された各種データやプログラム等を読み出すことができる。
インタフェース311には、キーボードやマウス等の入力装置411が接続されている。インタフェース312には、各種画像が表示されるモニタ等の出力装置412が接続されている。インタフェース313には、書き換え可能な不揮発性メモリ(例えばUSBメモリ)や外付けHDD等の外部記憶装置413が接続されている。
インタフェース314には、ロボットコントローラ200が接続されている。CPU201は、始点(第1教示点)と終点(第2教示点)との間を繋ぐ経路を生成して、経路のデータをインタフェース314を介してロボットコントローラ200に出力する。
始点及び終点の情報(パラメータ値)は、教示点記憶部であるHDD304に予め保存(つまり教示)されている。第1実施形態では、始点及び終点は、タスク空間を構成する世界座標系Σを基準とする3つの位置パラメータ値及び3つの姿勢パラメータ値からなる6つのパラメータ値で設定(教示)されている。
また、世界座標系Σにおけるロボット100の設置位置・形状は既知であり、また障害物(不図示)の設置位置・形状も既知であるとする。つまり、世界座標系Σにおけるロボット100の設置位置・形状のデータが、予めHDD304等の記憶装置に記憶(保存)されている。また、障害物(不図示)の設置位置・形状のデータも、予めHDD304等の記憶装置に記憶(保存)されている。これにより、CPU301は、ロボット100の各関節J1〜J6の位置(関節)の値が定まれば、ロボット100が障害物に干渉(衝突)するか否かを判別することができる。
なお、ロボット100においては、おおまかにいって、ロボット100の根元側において互いに隣接する関節J1〜J3が手先の位置を決め、ロボット100の手先側において互いに隣接する関節J4〜J6が手先の姿勢を決める、という性質がある。このため、障害物の回避に大きく寄与するのは、ロボット100の手先の位置が決まる関節J1〜J3となる。
第1実施形態では、複数の関節J1〜J6を、関節J4〜J6からなるグループG1と、関節J1〜J3からなるグループG2との2つのグループにグループ分している。CPU301は、2つのグループG1,G2のうち一方のグループG1に属する関節J4,J5,J6の経路を拘束(決定)する。つまり、関節J4,J5,J6の角度(位置)は、任意の値とするものではなく、決められた経路に設定する。第1実施形態では、グループG1に属する関節J4,J5,J6について、関節補間により経路を生成する。
2つのグループG1,G2のうち他方のグループG2に属する関節J1,J2,J3については、関節J1,J2,J3の位置(角度)を座標軸とする3次元のコンフィギュレーション空間を構築し、所定の探索手法により経路を探索する。探索手法としては、特に限定するものではないが、RRT法や近似セル分割法などの探索手法を用いることが効果的である。以下、第1実施形態では、各種の探索手法の中で比較的演算量が少なくて済むRRT法である場合について説明する。
以下、第1実施形態のロボット100の経路生成方法について説明する。図3は、本発明の第1実施形態に係る経路生成装置300による経路生成方法を示すフローチャートである。CPU301は、図2に示すプログラム340をHDD304から読み出し、プログラム340に従って、以下の経路生成方法の各工程を実行する。
まず、CPU301は、始点(第1教示点)及び終点(第2教示点)におけるロボットの各関節J1〜J6の角度(位置)を取得する(S1:教示点取得工程)。第1実施形態では、始点及び終点は、タスク空間で規定したパラメータ値で設定(教示)されているので、ステップS1では、予め教示されたロボット100の手先の始点と終点におけるロボット100の各関節J1〜J6の角度のパラメータ値を求める。
具体的には、CPU301は、ロボット100の手先の始点と終点が、世界座標系Σにおける位置及び姿勢のパラメータ値で教示されているので、逆運動学と呼ばれる計算の解を求めることで、各関節J1〜J6の角度(位置)のパラメータ値に変換する。これにより、CPU301は、始点及び終点をロボット100の各関節J1〜J6のパラメータ値で取得する。
なお、ロボット100の各関節J1〜J6の角度(位置)のパラメータ値が直接教示されている場合は、その関節値がそのまま解となる。つまり、CPU301は、HDD304から始点及び終点を読み出すことで、始点及び終点のパラメータ値を取得する。
以下、始点における関節J1〜J6の角度θ1〜θ6を、それぞれ角度θ1s〜θ6sと呼称する。また、終点における関節J1〜J6の角度θ1〜θ6を、それぞれ角度θ1g〜θ6gと呼称する。
次にCPU301は、グループG1に属する関節J4〜J6について、始点と終点との間で動作する関節J4〜J6の経路を拘束する(決め打ちする)複数の拘束点(補間点)からなる関節補間経路を求める(S2:拘束工程)。つまり、CPU301は、関節J4〜J6の経路を、関節補間で求めた経路(複数の補間点)に拘束(決定)する。換言すれば、CPU301は、関節J4〜J6の変位を、関節補間経路として与える。更に詳細に説明すると、関節J4〜J6のそれぞれの関節が始点の値(θ4s,θ5s,θ6s)から終点の値(θ4g,θ5g,θ6g)に向かってコンスタントに(時刻に対して直線的に)変位するよう、関節補間により経路として与える。グループG1に属する関節J4〜J6について経路を拘束したので、各関節J4〜J6の位置は、同期して変化する。
図4は、関節J4〜J6の経路を、関節補間により求めた例を示す図である。第1実施形態においては、始点から終点までの分割数N1を8とし、拘束点(始点及び終点を含む)を9つ生成している。このように、関節J4〜J6の経路(角度θ4〜θ6)を一意に定めている(拘束している)ので、関節J4〜J6については探索する必要がない。また、始点と終点における関節J4〜J6の値は所望の値となることが保証される。
なお、分割数N1は8としたが、8に限定するものではなく、正の整数であればよい。また、グループG1に属する関節J4〜J6の経路を、関節補間により決定する場合について説明したが、これに限定するものではなく、経路は、コンスタントに変位するようなものでなくても良く、任意に設定してもよい。
次に、CPU301は、グループG2に属する関節J1〜J3の角度(位置)θ1〜θ3を座標軸とする3次元のコンフィギュレーション空間を構築する(S3:コンフィギュレーション空間構築工程)。
次に、CPU301は、コンフィギュレーション空間における3次元の注目点と複数の3次元の拘束点とを組み合わせて6次元の点とする。そして、CPU301は、6次元の各点について、ロボット100が障害物に干渉(衝突)するか否かの干渉判定を行い、ロボット100が障害物に干渉するのを回避する経路を探索する(S4〜S8:探索工程)。
以下、探索工程について、図3のフローチャートに沿って、図5及び図6を用いながら詳細に説明する。図5及び図6は、探索工程を説明するための図である。
図5(a)は、ステップS3にて構築した、グループG2に属する関節J1〜J3の角度(位置)θ1〜θ3を座標軸とするコンフィギュレーション空間を示す図である。ステップS3で構築したコンフィギュレーション空間は、角度θ1〜θ3を座標軸とする3次元のコンフィギュレーション空間であり、全ての関節の角度θ1〜θ6を座標軸とする6次元のコンフィギュレーション空間よりも次元数が少ない。初期状態では、始点(θ1s,θ2s,θ3s)及び終点(θ1g,θ2g,θ3g)が既存の点であり、3次元のコンフィギュレーション空間における障害物Obの状態は未知である(未知であるため点線で形状を表現している)。
CPU301は、ステップS3の処理後、構築した3次元のコンフィギュレーション空間において、ランダムに点を生成する(S4)。図5(b)には、構築したコンフィギュレーション空間に、ランダムに点501を生成した様子を図示している。
次に、CPU301は、最近傍の点(ステップS4で生成した点501に最も近い既存の点(終点を除く))から一定距離の箇所に点を生成する(S5)。図5(c)には、最近傍の点から一定距離の箇所に点601を生成した様子を図示している。ステップS5では、CPU301は、ステップS4で生成した点501に最も近い既存の点を探す。図5(c)の例では、始点が最近傍の点(最も近い既存の点)である。CPU301は、始点から点501の方向に向かって一定距離の箇所に新たに点601を生成する。
次に、CPU301は、最近傍の点と点601との間に障害物Obに干渉する点はないか否かを判断する(S6)。
以下、ステップS6における干渉チェックの手順について詳細に説明する。図6(a)に示すように、ステップS4で生成した点501に最も近い既存の点(始点)から、ステップS5で生成した点601までの間の直線上に十分細かい間隔で複数の点701を生成する。
各点701における干渉チェックについては次のように行われる。1つ点701を選んで注目点とすると、角度θ1〜θ3の値の組が求まる。しかし、角度θ1〜θ3の値の組だけでは、ロボット100の姿勢が一意に定まらず、ロボット100と障害物Obとの干渉計算ができない。
そこで、ステップS2にて関節補間経路に定めた角度θ4〜θ6の値(複数の拘束点)を組み合わせて干渉計算を行う。即ち、ある角度θ1〜θ3の値の組(ある注目点)に対して、角度θ4〜θ6の値が関節補間経路のどこにあっても干渉しないことを保証するために、関節J4〜J6の値(拘束点)を振って干渉計算を行う。第1実施形態においては、関節J4〜J6の関節補間経路は、始点と終点を含めて角度θ4〜θ6の値の組の9つの拘束点からなる。このため、ある角度θ1〜θ3の値の組の注目点に対して、9通りの角度θ4〜θ6の値の拘束点を組み合わせて干渉計算を行うことになる。
CPU301は、干渉する点があれば(S6:No)、ステップS5にて生成した点601を削除して、ステップS4の処理に遷移する。CPU301は、干渉する点がなければ(S6:Yes)、ステップS5にて生成した点601を既存の点として追加する。
次に、CPU301は、点601を既存の点に追加した後、点601が終点に十分近づいたか否かを判断する(S7)。つまり、CPU301は、ステップS5で生成した既存の点601と終点との距離が、予め設定した閾値以内となったら(S7:Yes)、ステップS8に遷移し、そうでなければ(S7:No)、ステップS4に遷移する。以上のステップS4〜S7を繰り返すことにより、図6(b)に示す経路候補が作成される。これらの演算結果(経路候補)は、メモリ(例えば、HDD304)に保存される。
CPU301は、ステップS8では、終点から始点まで逆向きに辿り、図6(c)に示すように3次元のコンフィギュレーション空間上での経路(太線)を求め、終了状態に遷移する。
以上、第1実施形態によれば、3次元のコンフィギュレーション空間で経路探索するので、従来のように、6次元のコンフィギュレーション空間で経路探索するよりも、計算量と、メモリ(例えば、HDD304)の記憶領域の使用量が削減される。
図7は、探索空間であるコンフィギュレーション空間の次元数と、計算量・メモリ使用量の関係を表す図である。図7に示すように、RRT法による探索手法による計算量とメモリ使用量のオーダーは、実験的にはほぼ探索空間の次元数に正比例することをシミュレーションにより確認できた。したがって、第1実施形態の場合、従来(6次元)の探索空間における探索に対して、計算時間がほぼ半減することが見込まれることが確認できた。
ロボット100を用いた組み立て装置では、6次元のコンフィギュレーション空間においてRRT法による経路探索を行った場合、1動作あたり1分程度の時間を要していた。また、装置全体としては数十乃至数百の動作からなるため、トータルでは数十乃至数百分の時間を要していた。
これに対し、第1実施形態によれば、ロボット100の関節数よりも低い次元のコンフィギュレーション空間を構築し、その中で経路を探索する。干渉判定の際には、グループG1に属する関節のパラメータ値は、拘束された経路に従って振って行われる。これにより、探索に要する計算時間が低減されるため、工程全体の設計時間を大幅に短縮できる。
また、第1実施形態では、グループG1に属する関節が、ロボット100の手先側に互いに隣接して配置された関節J4,J5,J6であり、グループG2に属する関節が、ロボット100の根元側に互いに隣接して配置された関節J1,J2,J3である。つまり、第1実施形態では、ロボット100の姿勢に寄与するグループG1に属する関節J4〜J6の経路を拘束し、ロボット100の位置に寄与するグループG2に属する関節J1〜J3の経路を探索するものである。これにより、ロボット100が障害物に干渉(衝突)するのを回避する経路を効率よく探索することができ、より計算量を削減することができ、よりメモリ(HDD304等)の使用量を削減することが可能となる。
特に、第1実施形態では、グループG2に属する関節の数が、3つ以上(第1実施形態では3つ)ある。よって、ロボット100が障害物に干渉(衝突)するのを回避する経路を更に効率よく探索することができ、より計算量を削減することができ、よりメモリ(HDD304等)の使用量を削減することが可能となる。
また、第1実施形態では、ステップS4の探索工程における探索手法がRRT法であるため、近似セル分割法と比較して計算量が少なく、計算量の削減効果が大きい。
以上の説明では、探索手法がRRT法である場合について説明したが、近似セル分割法であっても本発明は適用可能である。具体的には、関節J4〜J6の経路を拘束して近似セル分割法を用いてコンフィギュレーション空間における障害物マップを作成しようとする場合、コンフィギュレーション空間の次元は3次元となる。近似セル分割法の場合、コンフィギュレーション空間の次元数が増加すると、計算量(メモリ使用量)は指数的に増加する。
各関節の経路の分割数を100とし、拘束された経路のステップ数を100とすると、干渉判定すべき格子点の数は100の3乗個となる。干渉判定に要する計算量は、100の3乗×100回となり、メモリ使用量は、100の3乗ビット(より実際的には、100の3乗バイト=1Mバイト)となるので、従来よりも、計算量とメモリ使用量が少なくて済む。
[第2実施形態]
次に、本発明の第2実施形態に係るロボット装置の経路生成装置による経路生成方法について説明する。図8は、本発明の第2実施形態に係る経路生成方法を示すフローチャートである。なお、第2実施形態におけるロボット装置の構成は、上記第1実施形態と同様であるため、説明を省略する。
上記第1実施形態においては、関節J4,J5,J6の経路を拘束して、ロボット100が障害物を回避するロボット100の関節J1〜J6の経路を求めた。これは関節J4,J5,J6の自由度を奪うことと等価であり、干渉検知の観点からすると障害物を大きめに見積もって検知していることに相当する。その結果、経路が見つからないことがある。すなわち、何れかの関節の拘束を緩めれば解(経路)が見つかる可能性があることを示唆している。以下、所定の関節の経路を拘束して経路が見つからなかった場合に、関節の拘束を緩めて(解いて)経路を求める経路生成方法について、図8のフローチャートに基づいて説明する。
ステップS21,S22,S23では、CPU301は、図3のステップS1,S2,S3と同様の処理を行う。
ステップS24では、CPU301は、探索回数が上限(予め設定した一定回数)に達したか否かを判断する。つまり、最初に定めた拘束(第2実施形態では関節J4,J5,J6)で解(経路)が求まらない場合に無限ループに陥るのを防ぐため、探索回数に上限を設ける。
CPU301は、探索回数が上限に達していなければ(S24:No)、次のステップS25に遷移する。ステップS25〜S29では、CPU301は、図3のステップS4〜S8と同様、探索工程の処理を行う。
CPU301は、探索工程中のステップS25〜S28を繰り返した結果、始点と終点とをつなぐ経路が求まらなかった場合、即ち探索回数が上限に達していれば(S24:Yes)、解なしとして、ステップS30に遷移する。
ステップS30では、CPU301は、グループG1に属する関節のうちの一部の関節を、グループG2に属するように変更する。グループG1に属する関節が変更前に複数存在することを条件とする。即ち、グループG1に属する関節が変更前には、関節J4,J5,J6の3つの関節があるので、そのうちの一部の関節J4を、グループG2に属するように変更する。そして、CPU301は、関節J5,J6について、始点と終点との間で動作する関節J5,J6の経路を拘束する(決め打ちする)複数の拘束点(補間点)からなる関節補間経路を求める(拘束工程)。このように、ステップS30では、関節J5,J6の経路のみを拘束し、関節J4の拘束を緩める(解く)。拘束の仕方としては、ステップS2と同様、関節補間経路を与える。
次に、ステップS31では、CPU301は、関節J1〜J4のコンフィギュレーション空間(4次元の空間となるので不図示)を構築する(コンフィギュレーション空間構築工程)。
ステップ32では、CPU301は、探索回数が上限(予め設定した一定回数)に達したか否かを判断する。つまり、ステップS30で定めた拘束(第2実施形態では関節J5,J6)で解(経路)が求まらない場合に無限ループに陥るのを防ぐため、探索回数に上限を設ける。
CPU301は、探索回数が上限に達していなければ(S32:No)、次のステップS33に遷移する。ステップS33〜S37では、CPU301は、図3のステップS4〜S8と同様の探索工程の処理を行う。
このようにCPU301は、再度、ステップS30にて拘束工程、ステップS31にてコンフィギュレーション空間構築工程及びステップS33〜S37にて探索工程を実行する。
CPU301は、関節J4の拘束を解いても、一定回数の探索内で解(経路)が得られなかった場合(S32:Yes)、グループG1の関節の数が2つあるので、関節J5の拘束を解いてもよいが、第2実施形態ではエラー処理を実行する(S38)。具体的には、CPU301は、解(経路)が得られなかったことをユーザに提示する処理(例えば、図2の出力装置412に出力する処理)を実施し、終了状態に遷移する。
第2実施形態によれば、関節J4〜J6の経路を拘束した状態で解(経路)が得られない場合でも、関節J4の拘束を解いた状態で再度、経路探索をするので、解(経路)を得ることができる。
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
上記実施形態では、一方のグループG1に属する関節が、手先側の関節J4,J5,J6からなり、他方のグループG2に属する関節が、根元側の関節J1,J2,J3からなる場合について説明したが、これに限定するものではない。グループG1に属する関節、グループG2に属する関節の数は、いずれも少なくとも1つあれば本発明は適用可能である。つまり、グループG2に属する関節の数が、ロボット100の関節の総数よりも少なければよい。なお、各グループG1,G2に属する関節の数は複数あるのが好ましい。
また、上記実施形態では、グループG1に属する関節が手先側の関節で、グループG2に属する関節が根元側の関節である場合について説明したが、各グループG1,G2に属する関節は任意であってもよい。この場合も、各グループG1,G2に属する関節の数は、複数であるのが好ましい。
また、上記実施形態においては、経路生成装置300が1つのコンピュータにより構成される場合について説明したが、複数のコンピュータにより構成される場合についても本発明は適用可能である。この場合、複数のCPUで本発明の演算部が構成されていてもよい。また、経路生成装置300とロボットコントローラ200とが別のコンピュータで構成される場合について説明したが、1つのコンピュータで構成されていてもよい。この場合、該コンピュータのCPUが、ロボットの経路を生成して、生成した経路に従ってロボットの動作を制御することとなる。
上記実施形態の各処理動作は具体的にはCPU301により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を経路生成装置300に供給し、経路生成装置300を構成するコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がHDD304であり、HDD304にプログラム340が格納される場合について説明したが、これに限定するものではない。プログラム340は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図2に示すROM302や外部記憶装置413、記録ディスク341等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
また、上記実施形態では、コンピュータが記録媒体や記憶装置に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をASICやFPGA等の専用LSIで構成してもよい。なお、ASICはApplication Specific Integrated Circuit、FPGAはField-Programmable Gate Arrayの頭字語である。
100…ロボット、101…ロボットアーム、102…ロボットハンド、300…経路生成装置、301…CPU(演算部)、304…HDD(教示点記憶部)、340…プログラム、500…ロボット装置、G1…一方のグループ、G2…他方のグループ、J4〜J6…関節

Claims (9)

  1. 多関節のロボットの第1教示点と第2教示点とをつなぐ経路を、演算部により生成する経路生成方法において、
    前記演算部が、前記第1教示点及び前記第2教示点を、前記ロボットの各関節のパラメータ値で取得する教示点取得工程と、
    前記演算部が、前記ロボットの関節を2つのグループにグループ分けしたうちの一方のグループに属する関節について、前記第1教示点と前記第2教示点との間で動作する関節の経路を拘束する複数の拘束点を求める拘束工程と、
    前記演算部が、前記2つのグループのうち他方のグループに属する関節の位置を座標軸とするコンフィギュレーション空間を構築するコンフィギュレーション空間構築工程と、
    前記演算部が、前記コンフィギュレーション空間における注目点と前記複数の拘束点とを組み合わせた点について、前記ロボットが障害物に干渉するか否かの干渉判定を行い、前記ロボットが障害物に干渉するのを回避する経路を探索する探索工程と、を備えたことを特徴とする経路生成方法。
  2. 前記演算部が、前記探索工程の結果、前記第1教示点と前記第2教示点とをつなぐ経路が求まらなかった場合、前記一方のグループに属する関節が変更前に複数存在することを条件として、前記一方のグループに属する関節のうちの一部の関節を、前記他方のグループに属するように変更して、再度、前記拘束工程、前記コンフィギュレーション空間構築工程及び前記探索工程を実行することを特徴とする請求項1に記載の経路生成方法。
  3. 前記一方のグループに属する関節が、前記ロボットの手先側に互いに隣接して配置された関節であり、
    前記他方のグループに属する関節が、前記ロボットの手先とは反対の根元に近い側に互いに隣接して配置された関節であることを特徴とする請求項1又は2に記載の経路生成方法。
  4. 前記他方のグループに属する関節の数が3つ以上であることを特徴とする請求項3に記載の経路生成方法。
  5. 前記探索工程における探索手法がRRT法であることを特徴とする請求項1乃至4のいずれか1項に記載の経路生成方法。
  6. 多関節のロボットの第1教示点と第2教示点とを記憶する教示点記憶部と、
    前記第1教示点と前記第2教示点とをつなぐ経路を生成する演算部と、を備え、
    前記演算部は、請求項1乃至5のいずれか1項に記載の経路生成方法の各工程を実行することを特徴とする経路生成装置。
  7. 多関節のロボットと、
    前記ロボットの経路を生成する請求項6に記載の経路生成装置と、を備え、
    前記経路生成装置により生成された経路に従って、前記ロボットの動作を制御することを特徴とするロボット装置。
  8. コンピュータに、請求項1乃至5のいずれか1項に記載の経路生成方法の各工程を実行させるためのプログラム。
  9. 請求項8に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2014164817A 2014-08-13 2014-08-13 経路生成方法、経路生成装置、ロボット装置、プログラム及び記録媒体 Pending JP2016040066A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014164817A JP2016040066A (ja) 2014-08-13 2014-08-13 経路生成方法、経路生成装置、ロボット装置、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014164817A JP2016040066A (ja) 2014-08-13 2014-08-13 経路生成方法、経路生成装置、ロボット装置、プログラム及び記録媒体

Publications (1)

Publication Number Publication Date
JP2016040066A true JP2016040066A (ja) 2016-03-24

Family

ID=55540645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014164817A Pending JP2016040066A (ja) 2014-08-13 2014-08-13 経路生成方法、経路生成装置、ロボット装置、プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP2016040066A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019155501A (ja) * 2018-03-09 2019-09-19 株式会社日立製作所 軌道計画装置、軌道計画方法、及び生産システム
CN111113407A (zh) * 2018-10-31 2020-05-08 发那科株式会社 自动程序修正装置、方法以及自动路径生成装置
CN112157678A (zh) * 2020-09-24 2021-01-01 河北工业大学 一种基于二分法的平面冗余机械臂碰撞位置检测方法
CN112703090A (zh) * 2019-01-15 2021-04-23 欧姆龙株式会社 机器人控制装置、机器人控制方法及机器人控制程序
WO2021174796A1 (zh) * 2020-03-05 2021-09-10 亿嘉和科技股份有限公司 用于带电作业机器人抓取支线场景下的抓取姿态计算方法
CN114029940A (zh) * 2021-05-27 2022-02-11 深圳市越疆科技有限公司 机械臂的运动路径规划方法、装置、设备、介质及机械臂

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019155501A (ja) * 2018-03-09 2019-09-19 株式会社日立製作所 軌道計画装置、軌道計画方法、及び生産システム
US11072070B2 (en) 2018-03-09 2021-07-27 Hitachi, Ltd. Trajectory planning apparatus, trajectory planning method, and production system
CN111113407A (zh) * 2018-10-31 2020-05-08 发那科株式会社 自动程序修正装置、方法以及自动路径生成装置
CN112703090A (zh) * 2019-01-15 2021-04-23 欧姆龙株式会社 机器人控制装置、机器人控制方法及机器人控制程序
WO2021174796A1 (zh) * 2020-03-05 2021-09-10 亿嘉和科技股份有限公司 用于带电作业机器人抓取支线场景下的抓取姿态计算方法
CN112157678A (zh) * 2020-09-24 2021-01-01 河北工业大学 一种基于二分法的平面冗余机械臂碰撞位置检测方法
CN112157678B (zh) * 2020-09-24 2021-10-22 河北工业大学 一种基于二分法的平面冗余机械臂碰撞位置检测方法
CN114029940A (zh) * 2021-05-27 2022-02-11 深圳市越疆科技有限公司 机械臂的运动路径规划方法、装置、设备、介质及机械臂

Similar Documents

Publication Publication Date Title
JP2016040066A (ja) 経路生成方法、経路生成装置、ロボット装置、プログラム及び記録媒体
US8116908B2 (en) Multi-modal push planner for humanoid robots
JP6380828B2 (ja) ロボット、ロボットシステム、制御装置、及び制御方法
US9827675B2 (en) Collision avoidance method, control device, and program
JP2009032189A (ja) ロボットの動作経路生成装置
JP2019214084A (ja) 経路計画装置、経路計画方法、及び経路計画プログラム
JP2013132731A (ja) ロボット制御システム、ロボットシステム及びロボット制御方法
JP5659890B2 (ja) ロボットの軌道計画システム及び軌道計画方法
JP2020011320A (ja) パラメータ同定装置、方法、及びプログラム
WO2023024279A1 (zh) 一种机器人动态避障方法、装置和机器人
CN110480624B (zh) 多关节机器人的干扰判定装置、干扰判定方法、记录介质
JP2007316942A (ja) 経路作成装置及び経路作成方法
JP2009134352A (ja) ロボットの動作経路作成装置及びロボットの動作経路作成方法
Zhao et al. Efficient trajectory optimization for robot motion planning
JP2019084649A (ja) 干渉判定方法、干渉判定システム及びコンピュータプログラム
US11673271B2 (en) Trajectory generation apparatus, multi-link system, and trajectory generation method
EP4046758A1 (en) Interference evaluation device, method, and program
WO2021075379A1 (ja) 回避軌道生成装置、方法、及びプログラム
Mansfeld et al. Speed gain in elastic joint robots: An energy conversion-based approach
JP2021035714A (ja) 制御装置、制御方法、及び制御プログラム
Seyboldt et al. Sampling-based path planning to cartesian goal positions for a mobile manipulator exploiting kinematic redundancy
JP7479205B2 (ja) ロボットシステム、制御装置、及び制御方法
US11697206B2 (en) Acceleration adjustment apparatus and non-transitory computer-readable storage medium storing an acceleration adjustment program
JPWO2017026045A1 (ja) ハンド力覚計測装置、ハンド力覚計測方法、及びハンド力覚計測プログラム
WO2022185760A1 (ja) ロボット姿勢決定装置、方法、及びプログラム