JP7262373B2 - 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム - Google Patents

軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム Download PDF

Info

Publication number
JP7262373B2
JP7262373B2 JP2019208578A JP2019208578A JP7262373B2 JP 7262373 B2 JP7262373 B2 JP 7262373B2 JP 2019208578 A JP2019208578 A JP 2019208578A JP 2019208578 A JP2019208578 A JP 2019208578A JP 7262373 B2 JP7262373 B2 JP 7262373B2
Authority
JP
Japan
Prior art keywords
trajectory
point
orientation
candidates
trajectory 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.)
Active
Application number
JP2019208578A
Other languages
English (en)
Other versions
JP2021079482A5 (ja
JP2021079482A (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019208578A priority Critical patent/JP7262373B2/ja
Priority to PCT/JP2020/030810 priority patent/WO2021100268A1/ja
Priority to CN202080077529.7A priority patent/CN114728418B/zh
Priority to US17/772,524 priority patent/US20220379473A1/en
Publication of JP2021079482A publication Critical patent/JP2021079482A/ja
Publication of JP2021079482A5 publication Critical patent/JP2021079482A5/ja
Application granted granted Critical
Publication of JP7262373B2 publication Critical patent/JP7262373B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D3/00Control of position or direction
    • G05D3/10Control of position or direction without using feedback
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39091Avoid collision with moving obstacles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40455Proximity of obstacles

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本発明は、軌道計画を生成する軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラムに関する。
本技術分野の背景技術として、特許文献1がある。特許文献1の軌道計画装置は、計画された軌道上におけるロボットと障害物との距離を算出する距離算出手段と、距離算出手段により算出された距離に基づいて、始点から終点までの軌道間を離散化する離散化幅を設定する離散化設定手段と、離散化設定手段により設定された離散化幅で離散化したときの軌道上の各位置で、ロボットと障害物とが干渉しているか否かを判定する干渉判定手段と、干渉判定手段による干渉判定結果に基づいて、ロボットの軌道を計画する軌道計画手段と、を備える。
特開2013-246553号公報
特許文献1の軌道計画装置は、干渉判定に基づき、周辺の干渉物から距離を一定以上離した軌道を算出する。しかしながら、特許文献1の軌道計画装置は、手先姿勢を考慮せずに軌道を算出するため、把持物の姿勢が急激に変化する可能性があり、把持物にダメージを与える可能性がある。また、把持物へのダメージを削減するために制御時刻を遅くすると、サイクルタイムが伸び、生産性が低下する。
本発明は、保持する物体の安定化を図る計画を立案することを目的とする。
本願において開示される発明の一側面となる軌道計画生成装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、複数の関節を有するロボットアームの先端部が始点から終点に移動する軌道計画を生成する軌道計画生成装置であって、前記プロセッサは、前記始点から前記終点の間における前記先端部の位置および姿勢を示す軌道からの所定距離内の前記先端部の移動先となる複数の位置候補を探索し、前記複数の位置候補について、前記先端部の姿勢に基づく第1球面補間により、前記先端部の複数の第1姿勢候補を探索することにより、複数組の位置候補および第1姿勢候補である複数の軌道点候補を出力する第1探索処理と、前記第1探索処理によって探索された複数の軌道点候補の中から、前記軌道からの前記先端部の移動先の位置および姿勢を示す移動先の軌道を決定する第1決定処理と、前記軌道および前記第1決定処理によって決定された前記移動先の軌道を含む軌道データを出力する出力処理と、を実行することを特徴とする。
本発明の代表的な実施の形態によれば、保持する物体の安定化を図る計画を立案することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
図1は、軌道計画生成例を示す説明図である。 図2は、軌道計画生成装置のハードウェア構成例を示すブロック図である。 図3は、ロボットアーム構成DBの一例を示す説明図である。 図4は、障害物構成DBの一例を示す説明図である。 図5は、開始関節角度DBの一例を示す説明図である。 図6は、目標位置姿勢DBの一例を示す説明図である。 図7は、手先位置候補算出方法DBの一例を示す説明図である。 図8は、手先姿勢変動候補算出方法DBの一例を示す説明図である。 図9は、制御時刻付与方法DBの一例を示す説明図である。 図10は、軌道点DBの一例を示す説明図である。 図11は、手先探索データの一例を示す説明図である。 図12は、軌道計画生成装置の機能的構成例を示すブロック図である。 図13は、軌道計画生成装置による軌道計画生成処理手順例を示すフローチャートである。 図14は、図13に示した探索部による探索処理(ステップS1302)の詳細な処理手順例を示すフローチャートである。 図15は、ステップS1406の手先位置候補算出方法に基づく軌道点候補の算出例を示す説明図である。 図16は、ステップS1407の手先位置候補算出方法に基づく軌道点候補の算出例を示す説明図である。 図17は、図14に示した関節角度算出処理(ステップS1408)の詳細な処理手順例を示すフローチャートである。 図18は、図13に示した平滑化部による平滑化処理(ステップS1303)の詳細な処理手順例を示すフローチャートである。 図19は、ステップS1804における補間曲線の計算例を示す説明図である。 図20は、図13に示した付与部による付与処理(ステップS1304)の詳細な処理手順例を示すフローチャートである。
<軌道計画生成例>
図1は、軌道計画生成例を示す説明図である。軌道計画生成装置100は、ロボットアーム101の連続的な軌道点P1~Pn(nは1以上の整数)を計画し、ロボットアームの軌道計画データ120を生成する。軌道点P1~Pnの一連のロボットアーム101の動作軌跡を軌道データTと称す。
ロボットアーム101は、m個(mは2以上の整数。図1では、m=4。)の関節J1~Jmと、関節J1~Jm間を連結するm個のリンクL1~Lmと、リンクLmに接続される先端部(「手先」ともいう)102と、を有するマニピュレータである。軌道点Pとは、ロボットアーム101の各関節および先端部の3次元位置と、各関節J1~Jmの動作によって変化する各リンクL1~Lmおよび先端部102の姿勢と、の組み合わせを示す軌道情報である。
なお、軌道点P1~Pnを区別しない場合は、単に軌道点Pと表記する。関節J1~Jmを区別しない場合は、単に関節Jと表記する。リンクL1~Lmを区別しない場合は、単にリンクLと表記する。ロボットアーム101は、軌道計画生成装置100または他のコンピュータにより動作制御可能である。
なお、図1では、互いに直交するX軸、Y軸、およびZ軸で張られた3次元空間をグローバル座標系110とした場合、ロボットアーム101は、XY平面に載置されているものとする。XY平面は、X軸とY軸とによって張られる平面である。図1では、Z軸は、たとえば、鉛直方向を示し、下から上に向く方向を+Z方向とし、上から下に向く方向を-Z方向とする。また、X軸回りの回転角および回転方向をロールr、Y軸回りの回転角および回転方向をピッチp、軸回りの回転角および回転方向をヨーyで表記する。また、関節J1は、原点Oに位置する。
また、各関節Jmのローカル座標系を、その原点Onを関節Jmの位置とし、互いに直交するXm軸、Ym軸、およびZm軸で張られた3次元空間とする。また、Xm軸、Ym軸、およびZm軸の各軸回りの回転角および回転方向を、ロールrm、ピッチpm、およびヨーymと表記する。Xm軸は、リンクL(m-1)の長手方向であり、Ym軸は、XY平面に平行な軸とする。ただし、関節J1のXm軸は、グローバル座標系110のZ軸とする。
関節Jmは、リンクLmまたは先端部102を回転させる。具体的には、たとえば、関節J1は、リンクL1をヨー方向y(ロール方向r1)に回転させる。関節J1は、リンクL1をロール方向rおよびピッチ方向p(ピッチ方向p1およびヨー方向y1)に回転させない。
関節J2は、リンクL2をロール方向r2およびピッチ方向p2に回転させる。関節J3は、リンクL3をロール方向r3およびピッチ方向p3に回転させる。関節J4は、先端部102をロール方向r4およびピッチ方向p4に回転させる。先端部102は、物体103を保持する。先端部102は、具体的には、たとえば、吸着ノズル、磁石、またはハンドピースである。
軌道計画生成装置100は、ロボットアーム101が物体103を保持している場合に、物体103を安定的に保持するために、可能な限り先端部102の姿勢を変化させず、かつ、障害物104に干渉しないような軌道点P1~Pnを計画し、軌道データTを出力する。
軌道計画データ120は、軌道データTを再生するためのデータである。軌道計画データ120は、読み込みボタン121と、計算開始ボタン122と、情報表示部123と、ロボットアーム101の軌道を模擬するシミュレーション動画124と、を有する。軌道計画データ120は、軌道計画生成装置100または軌道計画生成装置100と通信可能に接続された他のコンピュータのディスプレイに表示される。
読み込みボタン121が押下されると、軌道計画データ120の生成に必要なデータが読み込まれる。計算開始ボタン122が押下されると、読み込まれたデータを用いて、軌道計画データ120を生成するための計算が開始され、起動データTが生成される。計算が終了すると情報表示部123が表示される。
情報表示部123は、軌道計画データ120を計算した時の条件131と、当該条件131でのロボットアーム101の動作時間132と、シミュレーション動画124を再生する動作再生ボタン133と、を有する。動作再生ボタン133が押下されると、その動作時間132でシミュレーション動画124が再生される。これにより、ユーザは、条件131ごとのシミュレーション動画124により、軌道データTが再生され、ロボットアーム101の軌道を確認することができる。
<軌道計画生成装置100のハードウェア構成例>
図2は、軌道計画生成装置100のハードウェア構成例を示すブロック図である。軌道計画生成装置100は、プロセッサ201と、記憶デバイス202と、入力デバイス203と、出力デバイス204と、通信インターフェース(通信IF)205と、を有する。プロセッサ201、記憶デバイス202、入力デバイス203、出力デバイス204、および通信IF205は、バス206により接続される。プロセッサ201は、軌道計画生成装置100を制御する。記憶デバイス202は、プロセッサ201の作業エリアとなる。また、記憶デバイス202は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス202としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス203は、データを入力するデバイスである。入力デバイス203としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス204は、データを出力するデバイスである。出力デバイス204としては、たとえば、ディスプレイ、プリンタがある。通信IF205は、ネットワークと接続し、データを送受信する。
<データ構成例>
ここで、記憶デバイス202が記憶するデータを具体的に説明する。記憶デバイス202は、ロボットアーム構成DB211と、障害物構成DB212と、開始関節角度DB213と、目標位置姿勢DB214と、手先位置候補算出方法DB215と、手先姿勢変動候補算出方法DB216と、制御時刻付与方法DB217と、軌道点DB218と、手先探索データ219と、を記憶する。なお、これらは、軌道計画生成装置100がアクセス可能な他のコンピュータの記憶デバイス202に記憶されていてもよい。以下、図3~図11を用いて説明する。
図3は、ロボットアーム構成DB211の一例を示す説明図である。ロボットアーム構成DB211は、ロボットアーム101を構成する関節JおよびリンクLに関するデータを記憶するデータベースであり、具体的には、たとえば、関節情報DB301と、リンク情報DB302と、を有する。
関節情報DB301は、関節Jに関する情報を記憶するデータベースである。具体的には、たとえば、関節情報DB301は、フィールドとして、関節名311と、動作種類312と、関節位置313と、回転軸314と、動作下限315と、動作上限316と、最大速度317と、最大加速度318と、を有する。同一行の各フィールドの値の組み合わせが、1つの関節Jを構成する。
関節名311は、関節Jを一意に特定する名称である。動作種類312は、回転や平行移動など、関節Jの動作に関する種類を示す。関節位置313は、グローバル座標系110における1つ前の関節J(m-1)からのグローバル座標系110の3次元位置(X,Y,Z)を示す。なお、関節J1の関節位置313は、グローバル座標系110の原点Oとする。
回転軸314は、その関節Jのローカル座標系において関節Jが回転可能な軸(a,b,c)(a,b,c=0または1)を示す。aはXm軸、bはYm軸、cはZm軸に対応し、「0」は回転軸314でないことを示し、「1」は回転軸314であることを示す。図3では、関節J1は、リンクL1を、X1軸(Z軸)回りのロール方向r1(ロール方向r)に回転させるため、関節J1の回転軸314は、(1,0,0)で表現される。
動作下限315は、関節Jが動作可能な下限値であり、動作上限316は間接が動作可能な上限値であり、関節Jは、動作下限315から動作上限316までの範囲で、動作種類312に示した動作が可能となる。
最大速度317は、関節Jの動作速度の最大値である。動作種類312が「回転」であれば、動作速度は回転速度となる。最大加速度318は、関節Jの動作加速度の最大値である。動作種類312が「回転」であれば、動作速度は回転加速度となる。
リンク情報DB302は、リンクLに関する情報を記憶するデータベースである。具体的には、たとえば、リンク情報DB302は、フィールドとして、リンク名321と、親関節名322と、子関節名323と、リンク形状324と、を有する。同一行の各フィールドの値の組み合わせが、1つのリンクLの関節情報を規定する。
リンク名321は、リンクLを一意に特定する名称である。親関節名322は、リンクLを動作させる関節Jの関節名311である。子関節名323は、リンクLmに接続される関節J(m+1)の関節名311である。たとえば、リンクL1の場合、親関節名322はJ1となり、子関節名323はJ2となる。
リンク形状324は、リンクLの実際の形状であり、たとえば、STEP(Standard for the Exchange of Product model data)などのフォーマットで保存されるソリッドデータや、STL(STereoLithography)などのフォーマットで保存されるポリゴンデータである。
図4は、障害物構成DB212の一例を示す説明図である。障害物構成DB212は、障害物を構成するデータを記憶するデータベースである。具体的には、たとえば、障害物構成DB212は、フィールドとして、障害物ID401と、障害物形状402と、障害物位置姿勢403と、を有する。同一行の各フィールドの値の組み合わせが、1つの障害物104を構成する。
障害物ID401は、障害物104を一意に特定する識別情報である。障害物形状402は、障害物104の実際の形状であり、たとえば、STEPなどのフォーマットで保存されるソリッドデータや、STLなどのフォーマットで保存されるポリゴンデータである。障害物位置姿勢403は、グローバル座標系110における障害物104の中心位置(X,Y,Z)と姿勢(ロール角r、ピッチ角p、ヨー角y)を規定する情報である。
図5は、開始関節角度DB213の一例を示す説明図である。開始関節角度DB213は、関節Jの開始関節角度501を記憶するデータベースである。開始関節角度501は、関節名311で特定される関節の回転軸314回りの角度の初期値、すなわち、動作開始前の角度である。回転軸314が複数ある場合(たとえば、回転軸314=(1,1,0))、開始関節角度501は、回転軸314ごとに設定される。全関節J1~J4の開始関節角度501の値の列を、開始関節角度ベクトルθ1と称す。
図6は、目標位置姿勢DB214の一例を示す説明図である。目標位置姿勢DB214は、先端部102の目標位置および姿勢を記憶するデータベースである。具体的には、たとえば、目標位置姿勢DB214は、フィールドとして、姿勢ID601と、対象リンク名602と、位置姿勢情報603と、を有する。同一行の各フィールドの値の組み合わせが、1つの目標位置姿勢となる軌道点Pn(以下、目標位置姿勢Pnと表記する場合もある)を構成する。
姿勢ID601は、姿勢を一意に特定する識別情報である。対象リンク名602は、先端部102に接続されているリンクLのリンク名321である。位置姿勢情報603は、グローバル座標系110における先端部102の中心位置(X,Y,Z)と姿勢を規定する情報である。先端部102の姿勢とは、具体的には、たとえば、先端部102が接続される関節Jmの姿勢(ロール角rm,ピッチ角pm,ヨー角ym)である。目標位置姿勢DB214のエントリは1以上存在するが、外部からいずれか1つのエントリが選択される。
図7は、手先位置候補算出方法DB215の一例を示す説明図である。手先位置候補算出方法DB215は、手先位置候補算出方法701を規定するデータベースである。具体的には、たとえば、手先位置候補算出方法DB215は、フィールドとして、手先位置候補算出方法701と、1ステップでの最大移動距離70と、を有する。同一行の各フィールドの値の組み合わせが、1つの手先位置候補算出方法701を構成する。
手先位置候補算出方法701は、手先位置候補を算出する方法に該当する各種算出方法である。たとえば、軸並行(AXIS PARALELL)やランダムなどの手法がある。1ステップでの最大移動距離702は、1ステップの処理(後述するステップS1406の処理1回分)のでの先端部102の移動距離の最大値である。
図8は、手先姿勢変動候補算出方法DB216の一例を示す説明図である。手先姿勢変動候補算出方法DB216は、手先姿勢変動候補算出方法を規定するデータベースである。具体的には、たとえば、手先姿勢変動候補算出方法DB216は、フィールドとして、ロール角最大変位801と、ピッチ角最大変位802と、ヨー角最大変位803と、1ステップでの最大変位804と、を有する。同一行の各フィールドの値の組み合わせが、1つの手先姿勢変動候補算出方法を構成する。
ロール角最大変位801は、ロール角rmの変位量の最大値である。ピッチ角最大変位802は、ピッチ角pmの変位量の最大値である。ヨー角最大変位803は、ヨー角ymの変位の最大値である。ロール角最大変位801、ピッチ角最大変位802およびヨー角最大変位803は、手先位置候補算出方法701で用いられ、基準姿勢からの最大変位角である。基準姿勢とは、リンクL(m-1)を長手方向をXm軸とした場合の関節Jmの姿勢(rm,pm,ym)である。1ステップでの最大変位804は、1回の処理(後述するステップS1407の処理1回分)での先端部102の姿勢の最大変位である。
図9は、制御時刻付与方法DB217の一例を示す説明図である。制御時刻付与方法DB217は、制御時刻付与方法を記憶するデータベースである。具体的には、たとえば、制御時刻付与方法DB217は、フィールドとして、パラメータID901と、手先最大速度902と、手先最大加速度903と、を有する。同一行の各フィールドの値の組み合わせが、1つの制御時刻付与方法を構成する。
パラメータID901は、手先最大速度902および手先最大加速度903で規定される制御時刻付与方法を一意に特定する識別情報である。手先最大速度902は、先端部102の速度の最大値である。手先最大加速度903は、先端部102の加速度の最大値である。
図10は、軌道点DB218の一例を示す説明図である。軌道点DB218は、軌道点データを記憶するデータベースである。軌道点データは、軌道計画データ120の元になるデータである。軌道点DB218は、フィールドとして、軌道点ID1001と、関節角度1002と、関節角速度1003と、関節角加速度1004と、平滑化可否1005と、制御時刻1006と、を有する。同一行の各フィールドの値の組み合わせが、1つの軌道点Pを示す軌道点データを構成する。
軌道点ID1001は、軌道点Pを一意に特定する識別情報である。軌道点P1~Pnのうち、初期位置の軌道点P1を「始点」、最終位置の軌道点Pnを「終点」と称する場合がある。
関節角度1002は、図1に示した軌道点P1~Pnの各々における関節Jの回転軸314回りの角度である。たとえば、軌道点ID1001の「P1」が始点であれば、その関節角度1002は開始関節角度501(θ1)になる。
関節角速度1003は、図1に示した軌道点P1~Pnの各々における関節Jの回転軸314回りの角速度である。関節角加速度1004は、図1に示した軌道点P1~Pnの各々における関節Jの回転軸314回りの角加速度である。
平滑化可否1005は、軌道点Pの平滑化の可否を示す情報である。平滑化とは、ロボットアーム101の軌道を滑らかにする処理である。「FALSE」がその軌道点Pの平滑化不可を示し、「TRUE」がその軌道点Pの平滑化可能を示す。初期値は「TRUE」であり、平滑化が実行されると、「FALSE」に更新される(ステップS1810)。ただし、始点P1および終点Pnについては、平滑化可否1005の初期値は「FALSE」である。
制御時刻1006は、ロボットアーム101がその軌道点Pに制御される時刻である。始点P1の制御時刻1006を「0」とし、他の軌道点Pの制御時刻1006は、始点P1の制御時刻1006からの経過時間となる。また、制御時刻1006は、1つ前の軌道点Pからの経過時間でもよい。制御時刻1006は、後述する図13および図20の制御時刻1006付与処理(ステップS1304)で付与される。
図11は、手先探索データ219の一例を示す説明図である。手先探索データ219は、記憶デバイス202のキャッシュメモリに一時的に記憶され、また、ログとして保存されるデータである。手先探索データ219は、軌道点を探索するためのデータである。
手先探索データ219は、フィールドとして、探索点ID1101と、関節角度1102と、手先位置1103と、差分姿勢1104と、前探索点ID1105と、コスト1106と、探索済みフラグ1107と、を有する。
探索点ID1101は、探索点を一意に特定する識別情報である。探索点とは、先端部102の候補位置および候補姿勢を示す先端部102の候補点である。候補点は、初期の探索点(探索点ID:D001)を除き、複数生成される。候補点には、枝番が付与される。図11の(A)では、初期の探索点(探索点ID:D001)の手先位置1103からの移動先候補として、複数の探索点ID:D002-1,D002-2,D002-3のエントリが生成されている。
関節角度1102は、先端部102の候補姿勢となる各関節Jの回転軸314回りの角度である。手先位置1103は、先端部102の候補位置となるグローバル座標系110の3次元位置である。手先位置1103は、関節角度1102に基づいて順運動学により決定される。なお、手先位置1103の姿勢は、先端部102に接続される関節Jmの姿勢(ロール角、ピッチ角、ヨー角)となる。
差分姿勢1104は、球面補間関数SLERPによる球面補間姿勢からの現在の手先姿勢の差分(Δrcurrent、Δpcurrent、Δycurrent)である。具体的には、たとえば、差分姿勢1104は、1つ前の探索点における差分姿勢1104に変位量Δr、Δp、Δyを加算した値である。初期の探索点(探索点ID:D001)の差分姿勢1104については、1つ前の探索点が存在しないため、(0,0,0)となる。変位量Δr、Δp、Δyは、いずれも1ステップでの最大変位804であり、それぞれ、ロール角最大変位801、ピッチ角最大変位802、ヨー角最大変位803まで加算可能である。
前探索点ID1105は、1つ前の探索点ID1101である。初期の探索点(探索点ID1101:D001)については、1つ前の探索点が存在しないため、前探索点ID1105は「NULL」となる。コスト1106は、探索点ID1101で特定される探索点と目標位置との間の距離に基づく値である。本例では、コスト1106は、当該距離が長いほど高くなる。初期の探索点(探索点ID1101:D001)のコスト1106は、「0」に設定される。
図11の(A)では、初期の探索点(探索点ID1101:D001)の手先位置1103からの移動先候補として、複数の探索点ID1101:D002-1,D002-2,D002-3のエントリが生成されている。このうち、コスト1106が最小なエントリは、探索点ID1101:D002-2である。したがって、(B)に示すように、探索点ID1101:D002-2が、初期の探索点(探索点ID1101:D001)の手先位置1103からの移動先に確定し、探索点ID1101:D002-1、D002-3のエントリは削除される。
探索済みフラグ1107は、そのエントリの探索点が探索済みであるか否かを示すフラグである。探索済みであれば「True」、探索済みでなければ「False」である。探索済みフラグ1107の初期値は「False」である。探索済みフラグ1107は、そのエントリの探索点が、1つ前の確定した探索点における先端部102の移動先に確定した場合に、「False」から「True」に更新される。更新されなかったエントリは削除される。
図11の例では、探索点ID1101:D002-2が、初期の探索点(探索点ID1101:D001)の手先位置1103からの移動先に確定したため、探索済みフラグ1107が「False」から「True」に更新される。そして、探索済みフラグ1107が「False」から「True」に更新されなかった探索点ID1101:D002-1、D002-3のエントリは削除される。
<軌道計画生成装置100の機能的構成例>
図12は、軌道計画生成装置100の機能的構成例を示すブロック図である。軌道計画生成装置100は、取得部1201と、探索部1202と、平滑化部1203と、付与部1204と、出力部1205と、を有する。取得部1201、探索部1202、平滑化部1203、付与部1204、および出力部1205は、具体的には、たとえば、記憶デバイス202に記憶されたプログラムをプロセッサ201に実行させることにより実現される機能である。
<軌道計画生成処理手順例>
図13は、軌道計画生成装置100による軌道計画生成処理手順例を示すフローチャートである。取得部1201は、探索部1202、平滑化部1203および付与部1204に必要なデータをと、記憶デバイス202から取得して、探索部1202、平滑化部1203および付与部1204に出力する(ステップS1301)。
つぎに、探索部1202は、目標位置までの探索点を探索する探索処理を実行する(ステップS1302)。具体的には、たとえば、探索部1202は、A-Star法により、ロボットアーム101の開始関節角度501(θ1)となる軌道点P1から先端部102の目標位置姿勢Pnまでの軌道データTを算出する。探索処理(ステップS1302)の詳細は、図14で後述する。
つぎに、平滑化部1203は、軌道データTを平滑化する平滑化処理を実行する(ステップS1303)。平滑化処理(ステップS1303)の詳細は、図18で後述する。つぎに、付与部1204は、先端部102の姿勢変化を考慮して、軌道点Pに制御時刻1006を付与する付与処理を実行する(ステップS1304)。付与処理(ステップS1304)の詳細は、図20で後述する。
つぎに、出力部1205は、図1に示したように、軌道データTを再生可能な軌道計画データ120を生成して、出力デバイス204または通信IF205から出力する。
<探索処理(ステップS1302)>
図14は、図13に示した探索部1202による探索処理(ステップS1302)の詳細な処理手順例を示すフローチャートである。探索部1202は、取得部1201により開始関節角度501(θ1)を開始関節角度DB213から取得し、取得部1201により目標位置姿勢Pnを目標位置姿勢DB214から取得する。そして、探索部1202は、手先探索データ219の探索点ID1101であるD001を採番して、D001のエントリの関節角度1102に、取得した開始関節角度501(θ1)を格納する(ステップS1401)。
つぎに、探索部1202は、ステップS1403~S1408のループ処理を実行する(ステップS1402)。具体的には、たとえば、探索部1202は、未探索(探索済みフラグ1107がFalse)でかつコスト1106が最小の探索点を手先探索データ219から選択し、軌道点Pcurrentを決定する(ステップS1403)。つぎに、探索部1202は、軌道点Pcurrentが目標位置姿勢Pnに近いか否かを判断する(ステップS1404)。具体的には、たとえば、探索部1202は、軌道点Pcurrentが目標位置姿勢Pnを中心とする半径Rの球1501(図15を参照)内に位置するか否かを判断する。
遠い場合、すなわち、半径Rの球内に位置しない場合(ステップS1404:No)、探索部1202は、ステップS1402のループ回数が奇数であるか偶数であるかを判断する(ステップS1405)。ステップS1405は、ステップS1406およびS1407を交互に実行するための処理である。
ループ回数が奇数である場合(ステップS1405:奇数)、手先位置候補算出方法DB215の手先位置候補算出方法701に基づき、現在の先端部102の軌道点Pcurrentからの移動先となる次の軌道点候補Pnextとなる探索点を複数算出し(ステップS1406)、ステップS1408に移行する。これにより、手先位置を滑らかに変化させることができる。具体的には、たとえば、現在の先端部102の軌道点Pcurrentとは、1つ前のループのステップS1407で得られた複数の探索点からステップS1403で選択された探索点である。
ただし、ループ回数が1回目である場合は、現在の先端部102の軌道点とは、軌道点P1である。探索部1202は、複数の探索点ID1101を発行し、探索点ID1101の各エントリの手先位置1103に、軌道点候補Pnextとなる先端部102の3次元位置を格納し、また、前探索点ID1105も格納する。
ここで、説明の便宜上、次の軌道点候補Pnextを構成する情報のうち、位置情報をО、姿勢情報をQとする。現在の手先位置1103をOcurrent、球面補間姿勢からの差分姿勢1104をΔQcurrentとすると、下記式(1)~(3)により、次の軌道点候補Pnextを構成する次の位置情報Onextと次の姿勢情報Qnextとが探索点ごとに計算される。
Figure 0007262373000001
上記式(1)のΔOは、手先位置候補算出方法701に従って生成される移動量であり、たとえば、手先位置候補算出方法701として軸並行(AXIS PARALLEL)が指定されていた場合、最大移動距離702をdとすると、ΔOは、以下の6通り先端部102の移動方向ベクトルとなる。このように、次の位置情報Onextとして6通りの位置情報Oi1~Oi6が得られる。
(±d,0,0)
(0,±d,0)
(0,0,±d)
また、上記式(3)のSLERPは、球面補間関数を意味する。ステップS1406を、図15を用いて説明する。
<手先位置候補算出方法701に基づく軌道点候補Pnextの算出例>
図15は、ステップS1406の手先位置候補算出方法701に基づく軌道点候補Pnextの算出例を示す説明図である。図15において、五角形の図形は先端部102を示し、突出した頂点1500は物体103の保持面に対応する。図15では、軌道点P1,P2,P3,P4,P5,P6,…,Piの順に生成され、次の軌道点候補Pnextとして、ステップS1406により、探索点Pi1~Pi6が生成された状態を示す。探索点Pi1~Pi6の位置は、上述した位置情報Oi1~Oi6で規定される。
探索部1202は、探索点Pi1~Pi6から、軌道点P1と目標位置姿勢Pnを繋いだベクトル1502への正射影をとった長さとして、上記式(2)により、ti1~ti6を算出する。探索部1202は、このti1~ti6を用いて、上記式(3)の球面補間関数SLERPにより、各探索点Pi1~Pi6での姿勢情報Qi1~Qi6を算出する。このようにして、探索点Pi1=(Oi1,Qi1)~Pi6=(Oi6,Qi6)が得られる。上記式(1)~(3)を用いることで、先端部102の姿勢変化を最小にしつつ、空間上を移動する先端部102の軌道点候補Pnextを算出することができる。
図14に戻る。一方、ループ回数が偶数である場合(ステップS1405:数)、手先姿勢変動候補算出方法DB216に基づき、現在の先端部102の軌道点Pcurrentでの変位先となる次の軌道点候補Pnextを複数算出し(ステップS1407)、ステップS1408に移行する。これにより、手先姿勢を滑らかに変化させることができる。具体的には、たとえば、現在の先端部102の軌道点Pcurrentとは、1つ前のループのステップS1406で得られた複数の探索点からステップS1403で選択された探索点である。探索部1202は、複数の探索点ID1101を発行し、探索点ID1101の各エントリの手先位置1103に、軌道点候補Pnextとなる先端部102の3次元位置を格納し、前探索点ID1105も格納する。
具体的には、たとえば、探索部1202は、ステップS1406の軌道点候補Pnextを、下記式(4)~(10)を用いて算出する。
Figure 0007262373000002
上記式(4)~(7)のΔrnext,Δpnext、Δynextは、ロール角r、ピッチ角p、ヨー角yの変位量を示し、手先姿勢変動候補算出方法DB216の1ステップでの最大変位804である。ただし、Δrnext,Δpnext、Δynextは、軌道点Pが生成される都度累積加算されるため、ロール角最大変位801、ピッチ角最大変位802およびヨー角最大変位803を超えないように設定される。上記式()~()の右辺のΔrcurrent、Δpcurrent、およびΔycurrentは、球面補間姿勢からの差分姿勢1104である。
また、上記式(7)は、姿勢変位量ΔQnextを算出する式である。上記式(7)の右辺のRx,RyおよびRzはそれぞれ、関節Jnのxn軸、yn軸、zn軸回りの回転を意味する。探索部1202は、これらの値から基準姿勢からの姿勢変位量ΔQnextを計算し、姿勢変位量ΔQnextを元に、次の姿勢情報Qnextを計算する。なお、このとき、軌道点候補Pnextの位置は変化しない。この候補算出処理を、図16を用いて説明する。
<手先姿勢変動候補算出方法に基づく軌道点候補Pnextの算出例>
図16は、ステップS1407の手先姿勢変動候補算出方法に基づく軌道点候補Pnextの算出例を示す説明図である。図15と同様、五角形の図形は先端部102を示し、突出した頂点1500は物体103の保持面に対応する。
図16では、軌道点P1、P2,P3,P4,P5,P6,…,Pjの順に生成され、次の軌道点候補Pnextとして、ステップS1407により、探索点Pj1~Pj2が生成された状態を示す。なお、軌道点Pjは、1ステップ前のステップS1406で生成された探索点Pi1~Pi6の中でコスト1106が最小な探索点となる軌道点候補Pnextである。
探索点Pj1~Pj2の位置情報Oj1~Oj2は、軌道点Pjの位置情報と同一であり(上記式(10)を参照)、次の軌道点候補Pnextとなる探索点Pj1~Pj2の姿勢情報Qi1~Qi2は、上記式(9)の姿勢情報Qnextである。上記式(4)~(7)により、探索部1202は、先端部102の位置を変化させずに、姿勢だけを変化させた候補を算出することができる。この姿勢探索により、球面補間で姿勢を変化させるだけでなく、当該位置からの許容を許した姿勢を探索することが可能となる。
図14に戻り、ステップS1406またはS1407のあと、探索部1202は、関節角度算出処理を実行する(ステップS1408)。関節角度算出処理(ステップS1408)は、先端部102の軌道点候補Pnextとなるようなロボットアーム101の関節角度θnextを算出する処理である。関節角度算出処理(ステップS1408)の詳細は、図17で後述する。関節角度算出処理(ステップS1408)によって関節角度θnextの算出後、ループ処理(ステップS1402)により、ステップS1403に戻る。
<関節角度算出処理(ステップS1408)>
図17は、図14に示した関節角度算出処理(ステップS1408)の詳細な処理手順例を示すフローチャートである。探索部1202は、ステップS1406またはS1407で得られた軌道点候補分のループ処理を実行する(ステップS1701)。具体的には、たとえば、探索部1202は、軌道点候補Pnextになるような関節角度θnextを逆運動学により算出する(ステップS1702)。つぎに、探索部1202は、軌道点候補Pnextおよび関節角度θnextで特定されるロボットアーム101が、障害物構成DB212の障害物104に干渉するか否かを判断する(ステップS1703)。
干渉しない場合(ステップS1703:No)、探索部1202は、手先探索データ219の軌道点候補Pnextのエントリにおいて、関節角度1102に関節角度θnextを追加し、前探索点ID1105に、現在の探索点ID1101を追加し、差分姿勢1104に(Δrnext,Δpnext、Δynext)を追加する(ステップS1704)。そして、探索部1202は、軌道点候補Pnextのコスト1106(Costnext)を算出する(ステップS1705)。軌道点候補Pnextのコスト1106は、下記式(11)により算出される。
Costnext=Costcurrent+Distance(Pcurrent,Pnext)・・・(11)
Distance(A,B)は、地点A,B間のユークリッド距離を算出する距離関数である。上記式(11)により、ステップS1406で複数の軌道点候補Pnextが得られた場合には、軌道点Pcurrentの位置と軌道点候補Pnextの位置との間の距離が算出される。なお、軌道点Pcurrentの位置および軌道点候補Pnextの位置は、それぞれ、先端部102の位置でもよく、先端部102および関節J1~Jnの位置でもよい。
また、ステップS1407で複数の軌道点候補Pnextが得られた場合には、軌道点Pcurrentの姿勢と軌道点候補Pnextの姿勢との間の差分が距離として算出される。なお、軌道点Pcurrentの姿勢および軌道点候補Pnextの姿勢は、それぞれ、先端部102の姿勢でもよく、先端部102および関節J1~Jnの姿勢でもよい。
軌道点Pcurrentと軌道点候補Pnextとの間の距離が短いほど、コスト1106は小さくなり、ステップS1403で選択されやすくなる。このあと、探索部1202は、探索済みフラグ1107をFalseからTrueに更新する(ステップS1706)。そして、ステップS1708に移行する。
一方、ステップS1703において、干渉する場合(ステップS1703:Yes)、探索部1202は、当該軌道点候補Pnextのエントリを手先探索データ219から消去し(ステップS1707)、ステップS1708に移行する。ステップS1708では、探索部1202は、未選択の軌道点候補Pnextがあれば、ステップS1702に戻り、未選択の軌道点候補Pnextがなければ、ステップS1403に戻る。
<平滑化処理(ステップS1303)>
図18は、図13に示した平滑化部1203による平滑化処理(ステップS1303)の詳細な処理手順例を示すフローチャートである。平滑化部1203は、軌道データT内の各軌道点P1~Pnの平滑化が終了するまで、ステップS1802~S1812のループ処理を実行する。すなわち、ステップS1813では、平滑化されていない軌道点Pがあれば、ステップS1802に戻り、平滑化されていない軌道点Pがなければ、付与処理(ステップS1304)に移行する。
平滑化部1203は、軌道データT内の平滑化不可点に挟まれる平滑化可能点の集合を出得する(ステップS1802)。平滑化不可点とは、平滑化可否1005が「FALSE」の軌道点Pである。初期状態では、平滑化可否1005が「FALSE」である軌道点Pは、軌道点P1、Pnである。平滑化可能点とは、平滑化可否1005が「TRUE」の軌道点Pである。初期状態では、軌道データT内の平滑化不可点に挟まれる平滑化可否1005が「TRUE」の軌道点Pは、軌道点P2~Pn-1である。
平滑化部1203は、平滑化可能点の集合分、ステップS1804~S1811のループ処理を実行する(ステップS1803)。すなわち、ステップS1812では、ステップS1802で未取得の集合があれば、ステップS1804に戻り、未取得の集合がなければ、ステップS1802に戻る。
平滑化部1203は、関節角度空間1900上での補間曲線を計算する(ステップS1804)。関節角度空間1900とは、関節J1~Jnで張られ、各軌道点の関節角度1002が存在するベクトル空間である。平滑化可能点の集合の前後にある2つの平滑化不可点の関節角度1002をそれぞれθ,θとする。この関節角度θ,θと、その前後の関節角度θa‐1,θb+1の値から、以下の制約を満たす補間方程式F(t)(補間曲線ともいう)を計算する。
F(0)=θ・・・(12)
F(1)=θ・・・(13)
F´(0)=θ-θa-1・・・(14)
F´(1)=θb+1‐θ・・・(15)
F´´(0)=F´´(1)=0・・・(16)
上記式(12)~(16)は、区間[θa-1、θ]、[θ、θb-1]を直線としたときの補間曲線における制約である。この補間曲線の求め方は一例であり、たとえば、すべての平滑化不可の軌道点に対応する関節角度1002を通る3次のスプライン補間曲線の内、この区間に該当するものでもよい。
平滑化部1203は、補間曲線が計算されると、集合内の平滑化可能点の数分、ステップS1806~S1810のループ処理を実行する(ステップS1805)。具体的には、たとえば、平滑化部1203は、関節角度θiについて平滑化後のθi´を算出する(ステップS1806)。平滑化部1203は、関節角度θiがθi´である場合に、ロボットアーム101が障害物104に干渉するか否かを判断する(ステップS1808)。
干渉しない場合(ステップS1808:No)、軌道データT内の関節角度θiをθi´に更新して(ステップS1809)、ステップS1811に移行する。ステップS1811では、平滑化部1203は、集合内に未選択の平滑化可能点があれば、ステップS1806に戻り、未選択の平滑化可能点がなければ、ステップS1812に移行する。
一方、干渉する場合(ステップS1808:Yes)、平滑化部1203は、軌道データT内の関節角度θiの平滑化可否1005を「不可」に更新して(ステップS1810)、ステップS1812に移行する。ステップS1812では、平滑化部1203は、未選択の平滑化可能点の集合があれば、ステップS1803に移行して未選択の平滑化可能点の集合を選択し、未選択の平滑化可能点の集合がなければ、ステップS1813に移行する。
図19は、ステップS1804における補間曲線の計算例を示す説明図である。図19は、区間[θ,θ]を補間する例を示す。θaは、ある軌道点Paにおける関節Jの関節角度1102である。θa-1は、ある軌道点Pa-1における関節Jの関節角度1102である。軌道点Pa-1は、時間的に始点P1以降でかつ軌道点Pa以前に出現する軌道点である。軌道点Pa-1は始点P1でもよい。θbは、ある軌道点Pbにおける関節Jの関節角度1102である。θb+1は、ある軌道点Pb+1における関節Jの関節角度1102である。軌道点Pbは、時間的に軌道点Paより後に出現する軌道点である。軌道点Pb+1は、時間的に軌道点Pbより後でかつ終点Pn以前に出現する軌道点である。軌道点Pb+1 は終点Pnでもよい。補間曲線1901は、関節角度空間1900に存在する。関節角度空間1900は、関節J1~Jnを座標軸とするベクトル空間である。
区間[θ,θ]の実線は、平滑化前において、区間[θ,θ]の軌道点における関節角度θiを結ぶ補間対象である。区間[θ,θ]の一点鎖線は、軌道データT内の関節角度θiをθi´に更新したときの補間曲線1901である。区間[θ,θ]の点線は、ステップS1804で計算された補間曲線1901である。このように、平滑化部1203は、前後の関節角度θa‐1,θb+1から、補間方程式を求め、補間方程式上の点に向かって、少しずつ関節角度1002を変更することで、軌道データTの平滑化を実現する。これにより、ロボットアーム101は滑らかな軌道データTで物体103を安定的に移動させる。
<付与処理(ステップS1304)>
図20は、図13に示した付与部1204による付与処理(ステップS1304)の詳細な処理手順例を示すフローチャートである。付与部1204は、平滑化処理(ステップS1303)後の軌道データTを取得する(ステップS2001)。つぎに、付与部1204は、関節情報DB301に記憶されている各関節Jの最大速度317を元に、すべての軌道点P1~Pnに対して時刻Δtiを付与し、図10のエントリである軌道点データの制御時刻1006に書き込む。この時刻Δtiは、下記式(17)で算出される。
Figure 0007262373000003
上記式(17)において、なお、kは関節番号を示し、iは軌道点ID1001を示す。また、Vmaxは、関節Jkの最大速度317を示す。
つぎに、付与部1204は、制御時刻1006の更新がなくなるまで、ステップS2003~S2007のループ処理を実行する(ステップS2003)。ステップS2008では、制御時刻1006の更新がなくなった場合、ステップS1305に移行する。
つぎに、付与部1204は、すべての軌道点Pに対して、ステップS2005~S2006のループ処理を実行する(ステップS2004)。ステップS2007では、未選択の軌道点Pがあれば、ステップS2005に戻り、未選択の軌道点Pがなければ、ステップS2008に移行する。
付与部1204は、現在の制御時刻1006で角加速度制約、先端部102の速度制約、および加速度制約を充足しているか否かを判断する(ステップS2005)。軌道点Piにおける、関節の角速度θi´、角加速度θi´´、先端部102の速度vi、先端部102の加速度aiはそれぞれ、下記式(18)~(21)で算出される。
Figure 0007262373000004
なお、上記式(18)~(21)で、Jはヤコビ行列を示す。上記式(18)~(21)により、現在の制御時刻1006での角加速度、先端部102の速度、先端部102の加速度といったパラメータが計算可能である。付与部1204は、算出されたこれらパラメータがすべて、対応する上限値(関節Jの最大速度317、最大加速度318、手先最大速度902、手先最大加速度903)以下であれば、制約を充足していると判定して(ステップS2005:Yes)、ステップS2007に移行し、算出されたこれらパラメータがすべて、対応する上限値以下でない場合は制約を充足していないと判定して(ステップS2005:No)、ステップS2006に移行する。ステップS2006では、付与部1204は、現在の制御時刻1006に時刻Δtiを加算して(ステップS2006)、ステップS2007に移行する。
この付与処理(ステップS1304)により、各軌道点間の動作は、制約を満たし、かつ、制御時間内での動作となる。したがって、軌道計画の再現性の向上を図ることができる。
以上に説明したように軌道計画生成装置100によれば、軌道点Pを通りかつ、先端部102の姿勢を滑らかにつなぎ、ロボットアーム101が動作しやすい軌道データTを生成することができる。これにより、物体103の安定的に保持し、障害物への緩衝を抑制し、高速に動作するロボットアーム101の軌道データTの計画を生成することができる。
また、上述した実施例にかかる軌道計画生成装置100は、下記(1)~(13)のように構成することもできる。
(1)たとえば、軌道計画生成装置100は、始点P1から終点(目標位置姿勢)Pnの間における先端部102の位置および姿勢を示す第1軌道点Pcurrentからの所定距離(1ステップでの最大移動距離702)内の先端部102の移動先となる複数の位置候補を探索する第1探索処理(ステップS1406)と、始点P1および終点Pnでの先端部102の姿勢に基づく球面補間により許容範囲(1ステップでの最大変位804)内で変化する先端部102の複数の姿勢候補を探索する第2探索処理(ステップS1407)と、第1探索処理によって探索された複数の位置候補および第2探索処理によって探索された複数の姿勢候補に基づいて、第1軌道点Pcurrentからの先端部102の移動先の位置および姿勢を示す第2軌道点Pnextを決定する決定処理(ステップS1403)と、第1軌道点Pcurrentおよび決定処理によって決定された第2軌道点Pnextを含む軌道データTを出力する出力処理(ステップS1305)と、を実行する。
これにより、先端部102で保持する物体103の安定化を図る計画を立案することができる。
(2)また、上記(1)において、軌道計画生成装置100は、複数の位置候補の各々について、第1軌道点Pcurrentからの距離に関するコストを算出する算出処理(ステップS1705)を実行し、決定処理(ステップS1403)では、軌道計画生成装置100は、算出処理によって算出された複数のコストに基づいて、第2軌道点Pnextの位置を決定する。
これにより、先端部102で保持する物体103が安定化する適切な位置候補を第2軌道点Pnextの位置に決定することができる。
(3)また、上記(2)において、決定処理(ステップS1403)では、軌道計画生成装置100は、複数のコストのうち最小コストの算出元となる位置候補を第2軌道点Pnextの位置に決定する。
これにより、先端部102の移動距離が最小となる位置候補を第2軌道点Pnextの位置に決定することができ、先端部102で保持する物体103の安定化を図る計画を立案することができる。
(4)また、上記(1)において、軌道計画生成装置100は、複数の姿勢候補の各々について、第1軌道点Pcurrentからの姿勢変化に関するコストを算出する算出処理(ステップS1705)を実行し、決定処理(ステップS1403)では、軌道計画生成装置100は、算出処理によって算出された複数のコストに基づいて、第2軌道点Pnextの姿勢を決定する。
これにより、先端部102で保持する物体103が安定化する適切な姿勢候補を第2軌道点Pnextの姿勢に決定することができる。
(5)また、上記(4)において、決定処理(ステップS1403)では、軌道計画生成装置100は、複数のコストのうち最小コストの算出元となる姿勢候補を第2軌道点Pnextの姿勢に決定する。
これにより、先端部102の姿勢変化が最小となる位置候補を第2軌道点Pnextの姿勢に決定することができ、先端部102で保持する物体103の安定化を図る計画を立案することができる。
(6)また、上記(1)において、軌道計画生成装置100は、複数の位置候補の各々について、複数の関節Jの回転角を算出する算出処理(ステップS1702)と、ロボットアーム101が存在する空間に配置された障害物104の構造データ(障害物構成DB212)に基づいて、算出処理による算出結果に基づくロボットアーム101の複数の姿勢の各々においてロボットアーム101が障害物104に干渉するか否かを判定する判定処理(ステップS1703)と、を実行し、決定処理(ステップS1403)では、軌道計画生成装置100は、判定処理による判定結果に基づいて、第2軌道点Pnextを決定する。
これにより、障害物104に干渉しないようにロボットアーム101の形状を決めることができ、障害物104への干渉による先端部102からの物体103の脱落を抑制することができる。
(7)また、上記(1)において、軌道計画生成装置100は、第1軌道点と第2軌道点との間の軌道を平滑化する平滑化処理(ステップS1303)を実行し、出力処理(ステップS1305)では、軌道計画生成装置100は、平滑化処理による平滑化後の軌道データTを出力する。
これにより、ロボットアーム101が可動しても、先端部102で保持する物体103の安定化を図る計画を立案することができる。
(8)また、上記(1)において、平滑化処理(ステップS1303)では、軌道計画生成装置100は、始点P以降でかつ第1軌道点Pcurrentより前の第3軌道点における前記複数の関節Jの関節角度θaと、第2軌道点Pnextより後でかつ前記終点Pn以前の第4軌道点における前記複数の関節Jの関節角度θbと、の間を結ぶ補間曲線1901を所定の制約に基づいて生成し、補間曲線1901に近づくように、第1軌道点Pcurrentにおける複数の関節Jの関節角度と、第2軌道点Pnextにおける複数の関節Jの関節角度と、を更新する(S1806、図19)。
物体103を保持する先端部102の移動軌跡が安定化するようなロボットアーム101の形状を特定することができる。
(9)また、上記(8)において、所定の制約は、第3軌道点における複数の関節の角速度および第4軌道点における複数の関節の角速度の差が許容範囲内である(式(14)、(15))。
(10)また、上記(8)において、所定の制約は、第3軌道点における複数の関節の角加速度および第4軌道点における複数の関節の角加速度の差が許容範囲内である(式(16))。
これにより、ロボットアーム101の可動による先端部102からの物体103の脱落を抑制することができる。
(11)また、上記(8)において、平滑化処理(ステップS1303)では、軌道計画生成装置100は、ロボットアーム101が存在する空間に配置された障害物104の構造データ(障害物構成DB212)に基づいて、第1軌道点Pcurrentにおける更新後の複数の関節の関節角度と、第2軌道点Pnextにおける更新後の複数の関節の関節角度と、によるロボットアーム101の姿勢において、ロボットアーム101が障害物104に干渉するか否かを判定し、ロボットアーム101が障害物104に干渉しないと判定された場合に、第1軌道点Pcurrentにおける更新後の複数の関節の関節角度と、第2軌道点Pnextにおける更新後の複数の関節の関節角度と、により、第1軌道点Pcurrentおよび第2軌道点Pnextを更新する(S1809)。
これにより、障害物104に干渉しないようにロボットアーム101の移動軌跡を決めることができ、障害物104への干渉による先端部102からの物体103の脱落を抑制することができる。
(12)また、上記(1)において、軌道計画生成装置100は、関節Jの速度制約に基づいて、ロボットアーム101が第1軌道点Pcurrentから第2軌道点Pnextへの軌道となるように動作する制御時間を付与する付与処理(ステップS1304)を実行する。
これにより、先端部102で保持する物体103が安定化するようなロボットアーム101の動作時間を確認することができる。
(13)また、上記(12)において、付与処理(ステップS1304)では、軌道計画生成装置100は、速度制約を充足しない場合、第1軌道点Pcurrentから第2軌道点Pnextへの軌道に追加時間を付与する。
これにより、ロボットアーム101の動きに応じた時間を付与することができ、ロボットアーム101の動作の再現性の向上を図ることができる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサ201がそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
100 軌道計画生成装置
101 ロボットアーム
102 先端部
103 物体
104 障害物
120 軌道計画データ
211 ロボットアーム構成DB
212 障害物構成DB
213 開始関節角度DB
214 目標位置姿勢DB
215 手先位置候補算出方法DB
216 手先姿勢変動候補算出方法DB
217 制御時刻付与方法DB
218 軌道点DB
219 手先探索データ
301 関節情報DB
302 リンク情報DB
1201 取得部
1202 探索部
1203 平滑化部
1204 付与部
1205 出力部

Claims (10)

  1. プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、複数の関節を有するロボットアームの先端部が始点から終点に移動する軌道計画を生成する軌道計画生成装置であって、
    前記プロセッサは、
    前記始点から前記終点の間における前記先端部の位置および姿勢を示す軌道からの所定距離内の前記先端部の移動先となる複数の位置候補を探索し、前記複数の位置候補について、前記先端部の姿勢に基づく第1球面補間により、前記先端部の複数の第1姿勢候補を探索することにより、複数組の位置候補および第1姿勢候補である複数の軌道点候補を出力する第1探索処理と、
    前記第1探索処理によって探索された複数の軌道点候補の中から、前記軌道からの前記先端部の移動先の位置および姿勢を示す移動先の軌道を決定する第1決定処理と、
    前記軌道および前記第1決定処理によって決定された前記移動先の軌道を含む軌道データを出力する出力処理と、
    を実行することを特徴とする軌道計画生成装置。
  2. 請求項1に記載の軌道計画生成装置であって、
    前記第1決定処理では、前記プロセッサは、前記複数の位置候補の各々と前記軌道点の位置との距離に関する第1コストに基づいて、前記移動先の軌道点を決定する、
    ことを特徴とする軌道計画生成装置。
  3. 請求項1に記載の軌道計画生成装置であって、
    前記プロセッサは、
    前記第1決定処理によって決定された前記移動先の軌道点の姿勢に基づく第2球面補間により、前記先端部の複数の第2姿勢候補を探索する第2探索処理と、
    前記第2探索処理によって探索された前記複数の第2姿勢候補の各々と前記軌道点での前記先端部の姿勢との距離に関する第2コストに基づいて、前記複数の第2姿勢候補の中から前記軌道点の姿勢を再決定する第2決定処理と、
    を実行することを特徴とする軌道計画生成装置。
  4. 請求項1に記載の軌道計画生成装置であって、
    前記プロセッサは、
    前記複数の軌道点候補の各々について、前記先端部が前記軌道点候補となるような前記複数の関節の関節角度を逆運動学により算出し、前記軌道点候補に前記関節角度を追加する算出処理と、
    を実行することを特徴とする軌道計画生成装置。
  5. 請求項4に記載の軌道計画生成装置であって、
    前記算出処理では、前記プロセッサは、前記ロボットアームが存在する空間に配置された障害物の構造データに基づいて、前記軌道点候補および前記関節角度で特定される前記ロボットアームが、前記障害物に干渉しない場合に、前記軌道点候補に前記関節角度を追加する、
    ことを特徴とする軌道計画生成装置。
  6. 請求項1に記載の軌道計画生成装置であって、
    前記プロセッサは、
    前記軌道点と前記移動先の軌道点との間の軌道を平滑化する平滑化処理を実行し、
    前記出力処理では、前記プロセッサは、前記平滑化処理による平滑化後の軌道データを出力する、
    ことを特徴とする軌道計画生成装置。
  7. 請求項1に記載の軌道計画生成装置であって、
    前記プロセッサは、
    前記関節の速度制約に基づいて、前記ロボットアームが前記軌道点から前記移動先の軌道点への軌道となるように動作する制御時間を付与する付与処理と、
    を実行することを特徴とする軌道計画生成装置。
  8. 請求項7に記載の軌道計画生成装置であって、
    前記付与処理では、前記プロセッサは、前記速度制約を充足しない場合、前記軌道点から前記移動先の軌道点への軌道に追加時間を付与する、
    ことを特徴とする軌道計画生成装置。
  9. プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、複数の関節を有するロボットアームの先端部が始点から終点に移動する軌道計画を生成する軌道計画生成装置が実行する軌道計画生成方法であって、
    前記軌道計画生成方法は、
    前記プロセッサが、
    前記始点から前記終点の間における前記先端部の位置および姿勢を示す軌道点からの所定距離内の前記先端部の移動先となる複数の位置候補を探索し、前記複数の位置候補について、前記先端部の姿勢に基づく第1球面補間により、前記先端部の複数の第1姿勢候補を探索することにより、複数組の位置候補および第1姿勢候補である複数の軌道点候補を出力する第1探索処理と、
    前記第1探索処理によって探索された複数の軌道点候補の中から、前記軌道点からの前記先端部の移動先の位置および姿勢を示す移動先の軌道点を決定する第1決定処理と、
    前記軌道点および前記第1決定処理によって決定された前記移動先の軌道点を含む軌道データを出力する出力処理と、
    を実行することを特徴とする軌道計画生成方法。
  10. 複数の関節を有するロボットアームの先端部が始点から終点に移動する軌道計画の生成をプロセッサに実行させる軌道計画生成プログラムであって、
    前記プロセッサに、
    前記始点から前記終点の間における前記先端部の位置および姿勢を示す軌道点からの所定距離内の前記先端部の移動先となる複数の位置候補を探索し、前記複数の位置候補について、前記先端部の姿勢に基づく第1球面補間により、前記先端部の複数の第1姿勢候補を探索することにより、複数組の位置候補および第1姿勢候補である複数の軌道点候補を出力する第1探索処理と、
    前記第1探索処理によって探索された複数の軌道点候補の中から、前記軌道点からの前記先端部の移動先の位置および姿勢を示す移動先の軌道点を決定する第1決定処理と、
    前記軌道点および前記第1決定処理によって決定された前記移動先の軌道点を含む軌道データを出力する出力処理と、
    を実行させることを特徴とする軌道計画生成プログラム。
JP2019208578A 2019-11-19 2019-11-19 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム Active JP7262373B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019208578A JP7262373B2 (ja) 2019-11-19 2019-11-19 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム
PCT/JP2020/030810 WO2021100268A1 (ja) 2019-11-19 2020-08-13 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム
CN202080077529.7A CN114728418B (zh) 2019-11-19 2020-08-13 轨道计划生成装置、轨道计划生成方法以及记录介质
US17/772,524 US20220379473A1 (en) 2019-11-19 2020-08-13 Trajectory plan generation device, trajectory plan generation method, and trajectory plan generation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019208578A JP7262373B2 (ja) 2019-11-19 2019-11-19 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム

Publications (3)

Publication Number Publication Date
JP2021079482A JP2021079482A (ja) 2021-05-27
JP2021079482A5 JP2021079482A5 (ja) 2022-05-06
JP7262373B2 true JP7262373B2 (ja) 2023-04-21

Family

ID=75963235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019208578A Active JP7262373B2 (ja) 2019-11-19 2019-11-19 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム

Country Status (4)

Country Link
US (1) US20220379473A1 (ja)
JP (1) JP7262373B2 (ja)
CN (1) CN114728418B (ja)
WO (1) WO2021100268A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220281120A1 (en) * 2019-08-02 2022-09-08 Dextrous Robotics, Inc. Robotic manipulators
JP7400644B2 (ja) * 2020-07-02 2023-12-19 株式会社デンソー 動作経路生成装置、動作経路生成方法および動作経路生成プログラム
WO2023171637A1 (ja) * 2022-03-08 2023-09-14 京セラ株式会社 情報処理装置及び制御部

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309990A (ja) 2004-04-23 2005-11-04 Toyota Motor Corp 経路設定方法
JP2006068890A (ja) 2004-09-06 2006-03-16 Seiko Epson Corp 軌道決定システムおよび軌道決定方法
JP2012040635A (ja) 2010-08-18 2012-03-01 Toyota Motor Corp ロボットの軌道計画システム及び軌道計画方法
JP2012187697A (ja) 2011-03-14 2012-10-04 Toyota Motor Corp ロボットの軌道計画システム及び軌道計画方法
JP2017213631A (ja) 2016-05-31 2017-12-07 株式会社デンソーアイティーラボラトリ ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム
JP2019135076A (ja) 2018-02-05 2019-08-15 キヤノン株式会社 軌道生成方法および軌道生成装置
JP2019155501A (ja) 2018-03-09 2019-09-19 株式会社日立製作所 軌道計画装置、軌道計画方法、及び生産システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101396689B (zh) * 2007-09-29 2011-03-02 比亚迪股份有限公司 一种三维涂胶系统和方法
US8204623B1 (en) * 2009-02-13 2012-06-19 Hrl Laboratories, Llc Planning approach for obstacle avoidance in complex environment using articulated redundant robot arm
CN105773620B (zh) * 2016-04-26 2017-09-12 南京工程学院 基于倍四元数的工业机器人自由曲线的轨迹规划控制方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309990A (ja) 2004-04-23 2005-11-04 Toyota Motor Corp 経路設定方法
JP2006068890A (ja) 2004-09-06 2006-03-16 Seiko Epson Corp 軌道決定システムおよび軌道決定方法
JP2012040635A (ja) 2010-08-18 2012-03-01 Toyota Motor Corp ロボットの軌道計画システム及び軌道計画方法
JP2012187697A (ja) 2011-03-14 2012-10-04 Toyota Motor Corp ロボットの軌道計画システム及び軌道計画方法
JP2017213631A (ja) 2016-05-31 2017-12-07 株式会社デンソーアイティーラボラトリ ロボットアーム制御装置、ロボットアーム制御方法、およびプログラム
JP2019135076A (ja) 2018-02-05 2019-08-15 キヤノン株式会社 軌道生成方法および軌道生成装置
JP2019155501A (ja) 2018-03-09 2019-09-19 株式会社日立製作所 軌道計画装置、軌道計画方法、及び生産システム

Also Published As

Publication number Publication date
CN114728418B (zh) 2023-09-12
WO2021100268A1 (ja) 2021-05-27
JP2021079482A (ja) 2021-05-27
US20220379473A1 (en) 2022-12-01
CN114728418A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
JP7262373B2 (ja) 軌道計画生成装置、軌道計画生成方法、および軌道計画生成プログラム
CN108453702B (zh) 机器人仿真器、机器人系统以及仿真方法
JP6576255B2 (ja) ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
JP2020179466A (ja) 軌道計画装置、軌道計画方法及びプログラム
US7099747B2 (en) Motion editing apparatus and method for robot device, and computer program
JPWO2018143003A1 (ja) ロボットパス生成装置及びロボットシステム
JP2003058907A (ja) 木構造リンク系のポーズ及び動作を生成する方法
Balasubramaniam et al. Generation of collision-free 5-axis tool paths using a haptic surface
JP6895082B2 (ja) 干渉判定方法、干渉判定システム及びコンピュータプログラム
JP6750909B2 (ja) ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
JP2004326802A (ja) 仮想ダミーの人間工学的動きの最適化
JPWO2020066949A1 (ja) ロボットの経路決定装置、ロボットの経路決定方法、プログラム
US11518024B2 (en) Extensible underconstrained robotic motion planning
Schwendner et al. The Artemis rover as an example for model based engineering in space robotics
KR102317949B1 (ko) 객체의 모션을 생성하는 방법 및 장치
JP2000181539A (ja) ロボットの大域動作経路計画方法とその制御装置
Garber et al. Constraint-based motion planning for virtual prototyping
JP2015058493A (ja) 制御装置、ロボットシステム、ロボット、ロボット動作情報生成方法及びプログラム
US10379620B2 (en) Finger model verification method and information processing apparatus
Zhong et al. Solid modelling in a virtual reality environment
Stevenson Model-based programming and control of robot manipulators
JP2000112510A (ja) ロボットの教示方法及びその装置
Bayazit Solving motion planning problems by iterative relaxation of constraints
JP7422632B2 (ja) 計画装置、計画方法、および計画プログラム
Ettlin Rigid body dynamics simulation for robot motion planning

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220422

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230411

R150 Certificate of patent or registration of utility model

Ref document number: 7262373

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150