説明

ロボットの動作生成システム及び動作生成方法

【課題】達成させたい作業の動作を一度で確実に生成可能とし、短時間で動作生成を実行可能とする。また、軌道の計画可能性を保証しつつ、簡単な環境では短時間で軌道計画を可能とする。
【解決手段】複数のアームを備えるロボットの動作生成システムであり、アームの関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するグラフ構造をアームごとにグラフ構造データ格納部151に格納し、グラフ構造探索処理部154が、各アームに設定された優先度に従って、アームごとのグラフ構造を用いて、スタートノードからゴールノードまでを結ぶ経路を探索し、ノード有効性判定部155が、探索された経路に含まれるノード環境情報と干渉するか否かを判定し、干渉していると判定した場合には、当該ノードをグラフ構造から除外する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの動作生成システム及び動作生成方法に関する。
【背景技術】
【0002】
近年、様々に変化する環境下においても、環境情報を反映した動作をロボットが自律的に生成可能とする技術が開発されている。ロボットの動作生成は、ロボットが備える各関節について、関節軸情報の系列である関節軌道(以下、単に軌道と称する場合がある。)が計画され、計画された軌道に基づいて関節が駆動されることで実現される。
【0003】
ロボットがアームを備えるロボットである場合には、ロボットアームの軌道計画とは、ロボット自身と環境とが干渉しないように、ロボットアームのエンドエフェクタの位置姿勢が、初期姿勢から最終姿勢へと到達するような関節軸情報の系列を求める問題である。
【0004】
この問題の解法の一つとして、ロボットの関節軸情報であるノードを複数有したグラフ構造を使用する手法が知られている。当該グラフ構造では、ノード間がエッジにより接続され、初期姿勢であるスタートノードから最終姿勢であるゴールノードへと至るノードの系列である経路が探索される。このようなグラフ構造を使用して軌道計画を行う技術が、例えば、特許文献1、非特許文献1乃至4に開示されている。
【0005】
非特許文献1には、アーム毎のグラフ構造による動作生成手法が開示されている。また、非特許文献2には、1本のアームに適用したグラフ構造を用いて動作計画を行う手法が開示されている。非特許文献3には、ロボットの部位(例えば、右腕、左腕、腰など)ごとのグラフ構造を予め用意しておき、軌道計画実行時に、これら部位ごとのグラフ構造を組み合わせて、全身の動作生成を行う手法が開示されている。
【0006】
特許文献1及び非特許文献4には、グラフ構造を変化させる、或いは、規模の異なる複数のグラフ構造を利用することで、動作生成を行う手法が開示されている。特許文献1に開示された経路作成装置は、ノードの個数を設定して、その設定された個数分のノードの分布が密集している場合に、ノード間を接続する線分長を短くすることで、障害物を回避できるようグラフ構造を複雑にして経路の作成を行う。また、非特許文献4には、規模の異なる複数のグラフ構造を用いた動作生成手法が開示されている。
【0007】
なお、本発明に関連する他の技術として、特許文献2には、複数のロボットを動作させるためのティーチングデータの作成において、各ロボットに優先順位を設定し、優先順位に基づいて相互干渉確認を行うことで、干渉の無いロボットの動作を生成する技術が開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2008−204161号公報
【特許文献2】特開2004−358630号公報
【非特許文献】
【0009】
【特許文献1】"Probabilistic Roadmaps for Path Planning in High-Dimensional Configuration Spaces", L.Kavraki, P.Svestka, J.Latombe, M.Overmars, IEEE transactions on robotics and automation, Vol.12, No.4, Aug.1996.
【特許文献2】"Motion Planning Using Dynamic Roadmaps", Marcelo Kallmann and Maja Mataric, Proceedings of the IEEE International Conference on Robotics and Automation (ICRA2004), April, 2004.
【特許文献3】"Roadmap composition for multi-arm systems path planning", M. Gharbi, J. Cortes,T. Simeon, 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems, Saint Louis, MO, USA (October 2009).
【特許文献4】"Sampling-Based Roadmap of Trees for Parallel Motion Planning", Erion Plaku, Kostas E.Bekris, Brian Y.Chen, Andrew M.Ladd, Lydia E.Kavraki, IEEE transactions on robotics and automation, Vol.21, No.4, 2005.
【発明の概要】
【発明が解決しようとする課題】
【0010】
上記した従来技術のように、グラフ構造を用いた軌道計画手法によれば、複雑かつ様々に変化する環境下においても軌道を算出することが可能となる。しかし、軌道計画の対象となるロボットが複数本のアームを備えるものである場合には、以下の問題がある。
【0011】
まず第1の問題を説明する。例えば双腕ロボットがグラフ構造を用いて軌道計画を行う際には、2本のアームの各関節の全ての関節軸情報を1つのノードに持たせた上で、このようなノードが複数登録された1つのグラフ構造を利用して、初期姿勢から最終姿勢へと至る軌道を求めるという手法が考えられる。
【0012】
しかしながら、ロボットの関節軸空間はn次元(nは関節軸の個数)となることから、これと同じ密度の関節軸情報を1つのノードに持たせて探索した場合の計算時間は、n乗に比例することになる。双腕ロボットは通常10次元以上の関節軸空間となるために、軌道を発見するまでには、多くの場合に多大な計算時間を必要とすることになる。
【0013】
一方で、非特許文献3に開示される技術のように、完全に分離可能なロボットの部位ごとに、それら部位内の関節軸情報を1つのノードに持たせた上で、このようなノードが複数登録された複数のグラフ構造を利用して軌道を求めるという手法も考えられる。
【0014】
部位ごとに別々のグラフ構造を用意し、これら複数のグラフ構造を用いて軌道計画を行うことで、探索空間の大きな1つのグラフ構造で探索を行う場合と比べて、探索空間のより小さな個々のグラフ構造で探索を行うことができ、軌道計画に要する探索時間を大幅に削減することが可能となる。
【0015】
しかしながら、ロボットに達成させたい作業(タスク)には複雑な作業が多く存在する。このため、単純に部位ごとのグラフ構造を用いて軌道計画を行うものとしては、達成させたい作業の動作を実現するための軌道を一度の軌道計画では求めることができないことがあり、余計な計算時間を要してしまうという問題がある。
【0016】
例えば双腕ロボットに対して、右腕により必ずその作業の動作を実行させ、可能であれば左腕によってもその作業の動作を実行させたいことがある。非特許文献3などに開示される従来技術では、各部位の軌道計画についての優先度が考慮されていないために、右腕或いは左腕のいずれか1つの腕についてでもその軌道を求められなかったときには、軌道計画に失敗したとの出力をして処理が終了することになる。或いは、1回目の軌道計画でいずれか1つの腕についての軌道を求められなかったとしても、続く2回目の軌道計画でいずれか1つの腕についてのみの軌道を求め、さらに、続く3回目の軌道計画で他の腕についてのみの軌道を求めるというように順々に軌道を求めていくことも考えられる。しかし、このように1度の軌道計画で確実に軌道を求めることができず複数回にわたって軌道計画を行うものとしては、達成させたい作業についての軌道を最終的に求めるまでに多くの計算時間を要してしまう。
【0017】
従って、本発明の第1の課題は、達成させたい作業の動作を一度で確実に生成可能とし、短時間で動作生成を実行可能なロボットの動作生成システム及び動作生成方法を提供することを目的とする。
【0018】
なお、特許文献2に開示される技術では、各アームロボットに対して優先順位を付与して動作を生成するものであるが、複数の並列に配置されたロボットのうちで例えばその中央に配置されているロボットの優先順位を高く設定することで、ロボット間での相互干渉防止のために一時停止する回数を減らして、作業時間が伸びることを防ぐものにすぎない。
【0019】
次に第2の問題を説明する。ロボットの姿勢をノードとして、初期姿勢から最終姿勢へと至る軌道を複数のノードを登録したグラフ構造を利用して求める際には、グラフ構造に予め登録したノードの個数が環境に対して十分でないために軌道を発見できないことがある。多数のノードを有する大規模なグラフ構造を予め準備しておけば軌道を確実に求めることができるものの、簡単な環境に対してはこのような大規模なグラフ構造は冗長なものとなる。すなわち、簡単な環境下においても大規模なグラフ構造を用いては、初期姿勢から最終姿勢へと至る軌道を発見するまでに一定時間以上の計算時間を要することになってしまう。このため、軌道が発見できることを保証しつつも、簡単な環境においては可能な限り高速に軌道を計画できることが求められる。
【0020】
これを解決する従来手法としては、特許文献1や非特許文献4に開示される手法のように、軌道が発見できるまでの間、逐次ランダムに(或いは、所定の規則に沿った方法により)新たなノードをグラフ構造に追加することで、グラフ構造を拡張していくという手法がある。
【0021】
例えば図14に示す例では、ノード81〜ノード89が登録されたグラフ構造80を用いて、スタートノードSからゴールノードGまでのノードの経路を探索した場合に、環境に存在する物体との干渉などを理由として、ノード83及びノード88を使用することができず、スタートノードSからゴールノードGまでの解(経路)を得ることができない。このため、図15に示す例では、図14に示したグラフ構造80に対してノード90とそのエッジを追加したことで、ゴールノードGまでの解を得ている。
【0022】
しかしながら、逐次ランダムに新たな姿勢(ノード)を作成してグラフ構造に追加すると、実際上は、見た目に不自然な姿勢や、背中に手を回すような使えない姿勢が多数追加されることになり、グラフ構造での探索に時間を要してしまう。また、ノードを新たにグラフ構造に追加する際には、追加したノードの最近傍ノードの検索や、追加に伴ってグラフを頻繁に解く必要が生じるため、計算時間の増加を招いてしまう。
【0023】
従って、本発明の第2の課題は、軌道の計画可能性を保証しつつ、簡単な環境では短時間で軌道計画が可能なロボットの動作生成システム及び動作生成方法を提供することを目的とする。
【課題を解決するための手段】
【0024】
本発明に係る第一の態様のロボットの動作生成システムは、複数のアームを備えるロボットと、前記ロボットの周辺の環境の環境情報を取得する環境認識手段と、前記アームの関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するグラフ構造を、前記アームごとに格納するグラフ構造データ格納手段と、前記複数のアームのそれぞれに優先度が設定され、当該設定された優先度に従って、前記グラフ構造データ格納手段に格納されている前記アームごとのグラフ構造を用いて、前記アームの初期姿勢を示すスタートノードから前記アームの最終姿勢を示すゴールノードまでを結ぶ経路を探索するグラフ構造探索処理手段と、前記グラフ構造探索処理手段により探索された経路に含まれるノードについて、当該ノードが示す姿勢が、前記環境認識手段により取得された前記環境情報と干渉するか否かを判定し、干渉していると判定した場合には、当該ノードを前記グラフ構造から除外するノード有効性判定手段と、を備えるものである。
【0025】
これにより、達成させたい作業の動作を一度で確実に生成可能とし、短時間で動作生成を実行可能とすることができる。
【0026】
また、前記ロボットは上体と下体とを連結する腰を更に備え、前記グラフ構造データ格納手段は、前記アームの関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するアーム用グラフ構造と、前記アームの関節軸情報及び前記腰の関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するアーム及び腰用グラフ構造とを、前記アームごとにそれぞれ格納し、前記グラフ構造探索処理手段は、最も高い優先度が設定されたアームについての経路を探索する場合には、前記グラフ構造データ格納手段に格納されている前記アーム及び腰用グラフ構造を用いて、前記アーム及び前記腰の初期姿勢を示すスタートノードから前記アーム及び前記腰の最終姿勢を示すゴールノードまでを結ぶ経路を探索するようにしてもよい。これにより、腰との同期を取りながら動作を生成することができる。
【0027】
さらにまた、前記ロボットに実行させるタスクを管理するタスク管理手段を更に備え、前記タスク管理手段は、前記環境認識手段により取得された前記環境情報に基づいて、前記複数のアームのそれぞれに優先度を設定するようにしてもよい。これにより、アームの優先度を環境情報に基づいて設定することができる。
【0028】
また、前記環境認識手段により取得された前記環境情報には前記環境内の把持対象物体の位置情報が含まれ、前記タスク管理手段は、前記把持対象物体と前記複数のアームのそれぞれとの位置関係に基づいて、前記複数のアームのそれぞれに優先度を設定するようにしてもよい。これにより、アームの優先度を環境情報に基づいてより簡単に設定することができる。
【0029】
さらにまた、前記グラフ構造データ格納手段は、前記ノードの個数がそれぞれ異なる前記グラフ構造を前記アームごとに複数格納し、前記グラフ構造探索処理手段は、前記グラフ構造データ格納手段に格納されている前記アームごとの複数のグラフ構造のうちで第1のグラフ構造を用いて、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索し、当該探索した経路に含まれるいずれか1のノードが、前記ノード有効性判定手段により前記環境情報と干渉する姿勢を示すノードであると判定された場合には、前記第1のグラフ構造のノードのうちで前記ノード有効性判定手段により前記環境情報と干渉しない姿勢を示すノードであると判定されたノードと、前記第1のグラフ構造のノードのうちで前記探索がなされなかったノードと、を、前記第1のグラフ構造のノードの個数よりも多い個数のノードを有する第2のグラフ構造へと継承させ、当該第2のグラフ構造を用いて、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索するようにしてもよい。これにより、軌道の計画可能性を保証しつつ、簡単な環境では短時間で軌道計画が可能となる。
【0030】
本発明に係る第二の態様のロボットの動作生成方法は、複数のアームと、上体と下体とを連結する腰と、を備えるロボットの動作生成方法であって、前記アームの関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するアーム用グラフ構造と、前記アームの関節軸情報及び前記腰の関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するアーム及び腰用グラフ構造とが、前記アームごとにそれぞれグラフ構造データ格納部に格納されており、前記ロボットの周辺の環境の環境情報を取得するステップと、前記複数のアームのそれぞれに優先度が設定され、最も高い優先度が設定されたアームについての経路を探索する場合に、前記グラフ構造データ格納部に格納されている前記アーム及び腰用グラフ構造を用いて、前記アーム及び前記腰の初期姿勢を示すスタートノードから前記アーム及び前記腰の最終姿勢を示すゴールノードまでを結ぶ経路を探索するステップと、2番目に高い又はそれ以降に高い優先度が設定されたアームについての経路を探索する場合に、前記設定された優先度に従って、前記グラフ構造データ格納部に格納されている前記アームごとのグラフ構造を用いて、前記アームの初期姿勢を示すスタートノードから前記アームの最終姿勢を示すゴールノードまでを結ぶ経路を探索するステップと、前記探索された経路に含まれるノードについて、当該ノードが示す姿勢が、前記取得した前記環境情報と干渉するか否かを判定し、干渉していると判定した場合には、当該ノードを前記グラフ構造から除外するステップと、を有するものである。
【0031】
これにより、達成させたい作業の動作を一度で確実に生成可能とし、短時間で動作生成を実行可能とすることができる。
【0032】
また、前記グラフ構造データ格納部には、前記ノードの個数がそれぞれ異なる前記グラフ構造が前記アームごとに複数格納されており、前記グラフ構造データ格納部に格納されている前記アームごとの複数のグラフ構造のうちで第1のグラフ構造を用いて、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索するステップと、前記探索した経路に含まれるいずれか1のノードが、前記環境情報と干渉する姿勢を示すノードであるか否かを判定し、干渉すると判定した場合に、前記第1のグラフ構造のノードのうちで前記環境情報と干渉しない姿勢を示すノードであると判定したノードと、前記第1のグラフ構造のノードのうちで前記探索がなされなかったノードと、を、前記第1のグラフ構造のノードの個数よりも多い個数のノードを有する第2のグラフ構造へと継承させるステップと、前記第2のグラフ構造を用いて、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索するステップと、を有するようにしてもよい。これにより、軌道の計画可能性を保証しつつ、簡単な環境では短時間で軌道計画が可能となる。
【発明の効果】
【0033】
本発明は、上記従来の問題点を解決することができるロボットの動作生成システム及び動作生成方法を提供するものである。すなわち、第1の課題に対しては、達成させたい作業の動作を一度で確実に生成可能とし、短時間で動作生成を実行可能とし、第2の課題に対しては、軌道の計画可能性を保証しつつ、簡単な環境では短時間で軌道計画を可能とする。
【図面の簡単な説明】
【0034】
【図1】実施の形態1に係るロボットの概略構成を示す全体図である。
【図2】実施の形態1に係るロボットの動作生成システムの構成図である。
【図3】実施の形態1に係るロボットの全身軌道計画部の構成図である。
【図4】実施の形態1に係るグラフ構造の概念図である。
【図5】実施の形態1に係る軌道計画処理のフローチャート図である。
【図6】実施の形態1に係る部位ごとのグラフ構造の概念図である。
【図7】実施の形態1に係る部位ごとのグラフ構造の概念図である。
【図8】実施の形態1に係る第1優先の部位についての軌道探索処理のフローチャート図である。
【図9】実施の形態1に係る第2優先の部位についての軌道探索処理のフローチャート図である。
【図10】実施の形態2に係る軌道探索処理のフローチャート図である。
【図11】実施の形態2に係る小規模なグラフ構造の概念図である。
【図12】実施の形態2に係る大規模なグラフ構造の概念図である。
【図13】実施の形態3に係る軌道計画処理のフローチャート図である。
【図14】本発明の課題を説明するための図である。
【図15】本発明の課題を説明するための図である。
【発明を実施するための形態】
【0035】
実施の形態1.
以下、図面を参照して本発明の実施の形態について説明する。なお、以下では、本文中の説明においては、必要に応じそれ以前に述べた符号を用いるものとする。
【0036】
図1は、本実施の形態に係るロボットのリンク構造の概略構成を示す全体図である。図1(a)は正面図を示し、図1(b)は右側面図を示し、図1(c)は左側面図を示す。なお、図に示す例では、ロボット1と路面との接触地点にロボット基準座標を定め、ロボット1の首、右手先、左手先にそれぞれ局所座標を定めている。
【0037】
図1に示すように、ロボット1は、頭部と、胴体と、胴体に連結された右アーム及び左アームと、各アームに連結された右ハンド及び左ハンドと、を備えている。胴体は、上体と、腰と、腰を介して上体に連結された下体と、を備えている。右アームは、複数の関節(R1〜R7)と、これら関節を介して接続される複数のリンクと、を備えている。左アームは、複数の関節(L1〜L7)と、これら関節を介して接続される複数のリンクと、を備えている。腰は、腰関節W1と、関節を介して上体及び下体と接続する複数のリンクと、を備えている。なお、上体と頭部を接続する首関節については図示を省略した。また、詳細についての図示は省略するが、各ハンドは、掌部と、関節を介して掌部に接続される複数本の指と、を備えていてもよい。また、各指は、複数の指関節と、指関節を介して接続される複数のリンクと、を備えていてもよい。
【0038】
各関節に備えられたモーターなどのアクチュエータ(不図示)が駆動されることで、各関節は、所望の角度及び角速度で動作する。その結果、各座標系において、ロボット1の全身の位置及び姿勢と、手先の位置及び姿勢と、を所望の位置及び姿勢に制御することができる。このように、アクチュエータは、ロボット1が動作する際の、動力発生手段に相当する。
【0039】
ロボット1は、ユーザから指定される様々なタスクを実行するために動作を生成する。タスクとは、環境内に存在する物体に対する作業であり、当該作業は、作業を実現するための一連の動作を含んでいる。例えば、環境内に存在する物体を、ハンドにより把持するなどのタスクが挙げられる。ロボット1は、このようなタスクを実行するために右アームと、左アームと、腰と、の軌道を計画する。そして、計画した軌道に追従するように各関節を駆動制御することで、動作を生成する。なお、軌道とは、初期姿勢を示す関節角度ベクトルから最終姿勢を示す関節角度ベクトルへと至る関節角度ベクトルの系列であり、後述するグラフ構造を用いて求められる。
【0040】
図2は、本実施の形態に係るロボットの動作生成システムの構成図である。動作生成システム10は、環境認識部11と、タスク管理部12と、最終全身姿勢決定部13と、初期全身位置・姿勢取得部14と、全身軌道計画部15と、補間部16と、モーター駆動部17と、を備えている。
【0041】
環境認識部11は、ロボット1の周辺の環境の環境情報を取得する。環境認識部11は、各種のセンサを用いて構成され、ロボット1の周辺の環境内に存在する物体の位置や形状などの環境情報を取得する。センサには、例えば、ステレオカメラやレーザーレンジファインダを用いることができ、環境認識部11は、環境内の物体について3次元の点群情報を取得し、ロボット1から物体までの距離情報を取得することができる。環境認識部11は、取得した物体の距離情報に基づいて、環境内の物体を、例えば、直方体形状のボクセル情報や、3次元の物体モデルとして生成し、環境情報としてタスク管理部12と、最終全身姿勢決定部13と、全身軌道計画部15と、に出力する。
【0042】
タスク管理部12は、ロボット1に実行させるタスクを管理する。タスク管理部12は、タスクの内容に応じて、環境認識部11で取得した環境情報から必要な情報を取得する。そして、タスク管理部12は、タスクの内容と環境情報とに基づいて、各部位に優先度を設定し、部位の優先度を含むタスク情報を出力する。なお、タスクの内容や各部位の優先度は、動作生成システム10に備えられたインタフェース(不図示)を介してユーザにより入力されるものとしてもよい。
【0043】
例えば、物体を把持するタスクでは、ロボット1に把持させる物体、その把持方法などを示す情報がタスクに含まれており、タスク管理部12は、環境認識部11で取得した環境情報から、把持対象となる物体を示す情報と、その形状や位置・姿勢などを示す情報などを取得する。そして、タスク管理部12は、例えば、ロボット1の各部位と把持対象物体との位置関係に応じて、把持に際しての各部位の優先度を設定する。
【0044】
例えば、物体を把持するタスクにおいて、左アームのハンドに比べて右アームのハンドのほうが把持対象物体により近い場合には、タスク管理部12は、右アームの優先度を「1」とし、左アームの優先度を「2」として設定する(数字が小さいほど優先度が高く、「1」が最高)。
【0045】
また、例えば、物体を把持するタスクにおいて、右アームのハンドで必ず物体を把持し、左アームのハンドでは可能であれば把持して欲しいという状況では、ユーザにより、右アームの優先度を「1」とし、左アームの優先度を「2」として設定するようにしてもよい。このような優先度設定の具体例としては、コップとスプーンという2つの把持対象物体が机上に存在した場合に、右手では必ずコップを把持し、左手では可能であれば同時にスプーンを把持して欲しい状況や、コップの置かれたトレイを右手で把持した状態で、可能であれば左手で他のコップを把持してそのトレイに置いて欲しい状況などが挙げられる。
【0046】
最終全身姿勢決定部13は、環境情報と、タスク管理部12で求められたタスク情報から、タスク実行時のロボット1の最終全身姿勢を決定する。
【0047】
初期全身位置・姿勢取得部14は、タスク管理部12から出力されたタスク情報から、タスク実行時のロボット1の初期全身位置・姿勢を取得する。なお、初期全身位置・姿勢は、ロボット1の現在の位置・姿勢をそのまま与えるものとしてもよい。
【0048】
全身軌道計画部15は、環境情報と、部位の優先度を含むタスク情報と、最終全身姿勢と、初期全身位置・姿勢と、に基づいて、ロボット1の全身の軌道計画を行う。軌道計画は各部位についての軌道を探索することで行われ、初期全身位置・姿勢から最終全身姿勢へと至る軌道であって、かつ、環境と干渉しない軌道が計画される。なお、全身軌道計画部15の詳細については後述する。
【0049】
補間部16は、全身軌道計画部15で求められた全身関節軌道を、モーターを駆動する制御周期に合わせて適切となるように補間する。補間部16により、全身軌道計画部15で求めた軌道と比較してより滑らかな軌道が求められる。補間部16は、その軌道に含まれる関節角度ベクトルに基づいてロボット1のアクチュエータ(モーター)へのモーター指令値を生成する。
【0050】
モーター駆動部17は、補間部16で求められたモーター指令値に基づいて、フィードバック制御を行う。
【0051】
次に、図3乃至図9を参照して、全身軌道計画部15の詳細について説明する。
図3は、全身軌道計画部15の構成図である。全身軌道計画部15は、グラフ構造データ格納部151と、探索用グラフ構造データ保持部152と、グラフ構造生成処理部153と、グラフ構造探索処理部154と、ノード有効性判定処理部155と、を備えている。
【0052】
グラフ構造データ格納部151は、複数のグラフ構造を格納しており、本実施の形態では、部位ごとのグラフ構造を格納している。本実施の形態では、ロボット1の全身の全ての関節軸を表現したグラフ構造を利用して軌道計画を行うことに代えて、部位ごとに用意したグラフ構造を利用して、部位ごとに軌道を計画する。そして、各部位に設定された優先度に従って軌道計画を行うことで、達成させたい作業の動作を一度で確実に生成可能にすると共に、探索範囲を限定することにより短時間で動作生成を実行可能とする。なお、詳細は後述するように、部位のうち腰については、優先度の最も高い部位のグラフ構造に含めて、その軌道を計画する。例えば、ロボット1が腰関節を有した双腕ロボットである場合には、グラフ構造データ格納部151に格納されるグラフ構造には、右アーム用のグラフ構造、左アーム用のグラフ構造、右アーム及び腰用のグラフ構造、左アーム及び腰用のグラフ構造、が含まれる。
【0053】
図4は、グラフ構造の概念図である。
グラフ構造20は、複数のノード21〜29と、ノード間を接続する線分(以下、エッジと称する場合がある。)と、を有している。グラフ構造20を用いて、スタートノードSとゴールノードGとを結ぶ経路が探索される。グラフ構造のノード構成は、タスクの内容と、各部位の優先度と、を考慮してユーザにより設定されており、各ノードは、ユーザにより予め注意深く選ばれている。
【0054】
なお、ノードqは、以下の数(1)に示すように、アームの関節軸θ(アームが複数の関節軸を有する場合には、θはベクトルを示す。)と、手先位置xと、重み行列Wの情報を持つ。重み行列Wは、動作を実現するに際して各関節の重要度を反映させるための情報であり、各関節の配置関係に基づいて定められる。例えば、アームの関節のうちで、手首関節に比べてより大きな重み付けが肘関節に設定される。また、ノードが持つ情報は、少なくともアームの関節軸θの情報を備えていればよく、手先座標xについては必須ではない。
【数1】

また、エッジcは、以下の数(2)に示すように、ノード間の距離情報を持つ。
【数2】

【0055】
探索用グラフ構造データ保持部152は、軌道探索に用いるグラフ構造を一時的に保持する。例えば、軌道探索に使用中のグラフ構造を探索用グラフ構造データ保持部152に一時的に保持する。また、探索した軌道を探索用グラフ構造データ保持部152に保持しておき、ロボット1が移動した場合に、保持しているグラフ構造を更新する、などのために探索用グラフ構造データ保持部152を利用してもよい。
【0056】
グラフ構造生成処理部153は、優先度に従って軌道を探索する部位を特定し、グラフ構造データ格納部151に格納されているグラフ構造から軌道探索対象となる部位のグラフ構造を選択し、選択したグラフ構造を探索用グラフ構造データ保持部152に保持する。そして、グラフ構造生成処理部153は、入力されるスタートノードとゴールノードを探索用グラフ構造データ保持部152に保持されているグラフ構造に追加し、追加したそれぞれのノードについて近傍ノードとの間をエッジにより接続する。ここで、スタートノードは、ロボット1の初期全身位置・姿勢における軌道探索部位の位置・姿勢を示すノードであり、ゴールノードは、ロボット1の最終全身姿勢における軌道探索部位の姿勢を示すノードである。なお、スタートノードは、軌道探索部位の姿勢のみを示すノードであってもよい。
【0057】
グラフ構造探索処理部154は、探索用グラフ構造データ保持部152に保持されているグラフ構造を用いて、スタートノードからゴールノードまでを結ぶ経路(スタートノードからゴールノードへと至るノードの経路であり、軌道と称する場合がある。)を探索する。なお、グラフ構造探索処理部154による探索方法については限定されず、ダイクストラ法などの公知の手法を用いればよい。
【0058】
ノード有効性判定処理部155は、グラフ構造探索処理部154により探索された経路に含まれるノードについて、ノードが示す姿勢が、環境内の物体やロボット1自身と干渉していないか否かをチェックし、干渉している場合には、探索用グラフ構造データ保持部155のグラフ構造から当該ノードを除外する。
【0059】
図5は全身軌道計画部15による軌道計画処理のフローチャート図である。
まず、全身軌道計画部15は、最も高い優先度が設定されたアームを、第1優先のアーム(腕)として決定する(S101)。例えば、物体と手先との距離などを基準として、手先の位置が物体により近いアームについて最も高い優先度が設定される。
【0060】
全身軌道計画部15は、第1優先のアームと腰についての軌道を探索する(S102)。全身軌道計画部15は、第1優先のアームと腰用のグラフ構造を用いて軌道を探索する。図6は、第1優先のアームと腰用のグラフ構造を例示する概念図である。グラフ構造30は、複数のノード31〜39と、ノード間を接続するエッジと、を有している。ここで、ノード31〜39の各ノードは、第1優先のアームの関節軸及び手先位置と、腰の関節軸と、の情報を有している。なお、S102での処理の詳細については後述する。
【0061】
全身軌道計画部15は、S102での軌道探索の結果、第1優先のアームと腰についての有効な軌道が存在するか否かを判定する(S103)。軌道が存在しない場合(S103で「無」の場合)には、第1優先のアームと腰についての軌道を探索することができなかったとして、処理を終了する。なお、有効な軌道とは、スタートノードからゴールノードへと至るノードの経路であって、この経路に含まれる全てのノードが干渉しないものをいう。また、スタートノードからゴールノードへと至るノードの経路は複数探索される可能性があるが、経路の評価基準に従って、最も良い評価基準の経路を第1候補軌道とする(例えば、経路上のノード間距離の総和が最小の経路を、第1候補軌道とする)。
【0062】
全身軌道計画部15は、第1優先のアームと腰についての有効な軌道が存在した場合(S103で「有」の場合)には、第2優先のアームについての軌道を探索する(S104)。全身軌道計画部15は、第2優先のアーム用のグラフ構造を用いて軌道を探索する。図7は、第2優先のアームのグラフ構造を例示する概念図である。グラフ構造40は、複数のノード41〜49と、ノード間を接続するエッジと、を有している。ここで、ノード41〜49の各ノードは、第2優先のアームの関節軸及び手先位置の情報を有している。なお、S104での処理の詳細については後述する。
【0063】
全身軌道計画部15は、S104での軌道探索の結果、第2優先のアームについての有効な軌道が存在するか否かを判定する(S105)。有効な軌道が存在した場合(S105で「有」の場合)には、S102で探索した第1優先のアームと腰の軌道と、S104で探索した第2優先のアームの軌道と、を出力する。
【0064】
全身軌道計画部15は、S104での軌道探索の結果、第2優先のアームについての有効な軌道が存在しない場合(S105で「無」の場合)には、再びS102へと戻り、第1優先のアームと腰についての軌道を探索するが、S102で探索された経路のうち、2番目に評価基準が良かった軌道が存在する場合には、当該軌道を採用してS104へと進み、存在しない場合には、第1優先のアームと腰と、第2優先のアームと、のいずれについても軌道を探索することができなかったとして処理を終了する。
【0065】
従って、図5に示した軌道計画処理によれば、全身軌道計画部15による出力は、(i)第1優先のアームと腰の軌道と、第2優先のアームの軌道と、の両方の出力、(ii)第1優先のアームと腰についての軌道を探索することができなかったとの出力、(iii)第1優先のアームと腰と、第2優先のアームと、のいずれについても軌道を探索することができなかったとの出力、となる。
【0066】
次に、図8を参照して、図5に示したS102での処理の詳細について説明する。
まず、グラフ構造生成処理部153は、第1優先のアーム(腰を含む)についてのグラフ構造を生成する(S201)。グラフ構造生成処理部153は、入力されるスタートノードとゴールノードをグラフ構造に追加すると共に、追加したノードについて近傍ノードとの間をエッジにより接続する(S202)。
【0067】
グラフ構造探索処理部154は、第1優先のアームについてのグラフ構造を用いて、スタートノードからゴールノードまでを結ぶ経路を探索する(S203)。グラフ構造探索処理部154は、軌道探索の結果、軌道が存在するか否かを判定する(S204)。軌道が存在しない場合(S204で「無」の場合)には、軌道を探索することができなかったとして、処理を終了する。
【0068】
ノード有効性判定処理部155は、軌道が存在した場合(S204で「有」の場合)には、探索された経路に含まれる全てのノードについて、ノードが示す姿勢が、環境内の物体やロボット1自身と干渉していないか否かをチェックし(S205)、干渉の有無を検出する(S206)。なお、第1優先のアームについての干渉チェックを行う際には、第2優先のアームを除外したロボット1の形状(第1優先のアーム、胴体、頭部など)に対してのみ干渉チェックを行えばよい。
【0069】
ノード有効性判定処理部155は、干渉検出の結果、経路に含まれるいずれか1つのノードが干渉している場合(S206で「NG」の場合)には、グラフ構造から当該ノードを除外する(S207)。グラフ構造探索処理部154により、ノード除外後のグラフ構造を用いて再び軌道探索を行う。
【0070】
ノード有効性判定処理部155は、干渉検出の結果、経路に含まれるいずれのノードも干渉していない場合(S206で「OK」の場合)には、第1優先のアームについての軌道を出力する。
【0071】
次に、図9を参照して、図5に示したS104での処理の詳細について説明する。ただし、S104での第2優先のアームについての軌道探索処理は、S102での第1優先のアームについての軌道探索処理と基本的には同じであり、図8を参照して説明したS205での干渉チェックについてのみ異なる。このため、以下では、S104での第2優先のアームについての軌道探索処理に関して、図9を参照して、干渉チェックの詳細についてのみを説明する。
【0072】
ノード有効性判定処理部155は、繰り返し回数Nを決定する(S301)。繰り返し回数Nは、以下のS303乃至S307の繰り返し回数である。本実施の形態では、第1優先のアームについて探索した経路に含まれるノードの個数をL、第2優先のアームについて探索した経路に含まれるノードの個数をMとしたとき、LとMで値が大きなものをNの値として設定する。
【0073】
ノード有効性判定処理部155は、カウンタnの値を初期化する(S302)。ここでは、カウンタn=1とする。ノード有効性判定処理部155は、カウンタnの値がMより大きいか否かを判定する(S303)。ノード有効性判定処理部155は、S303での判定の結果、カウンタnの値がMより大きくない場合(S303でNoの場合)には、カウンタnの値がLより小さいか否かを判定する(S304)。
【0074】
ノード有効性判定処理部155は、S304での判定の結果、カウンタnの値がLより大きくない場合(S303でNoの場合)には、第1優先のアーム(腰を含む)の探索経路についてn番目のノードが示す姿勢において、第2優先のアームの探索経路についてn番目のノードが示す姿勢の干渉チェックを行う(S305)。腰関節の駆動に伴ってロボット1の上体の姿勢が変化するため、上体に設けられた第2優先のアームについてもその姿勢が相対的に変化する。このため、第1優先のアームについて探索された経路に含まれる腰の姿勢を基準として、第2優先のアームの探索経路のノードが示す姿勢についての干渉チェックを行う。
【0075】
ノード有効性判定処理部155は、S303での判定の結果、カウンタnの値がMより大きい場合(S303でYesの場合)には、第1優先のアーム(腰を含む)の探索経路についてn番目のノードが示す姿勢において、第2優先のアームの探索経路についてM番目のノードが示す姿勢の干渉チェックを行う(S308)。
【0076】
ノード有効性判定処理部155は、S304での判定の結果、カウンタnの値がLより大きい場合(S304でYesの場合)には、第1優先のアーム(腰を含む)の探索経路についてL番目のノードが示す姿勢において、第2優先のアームの探索経路についてn番目のノードが示す姿勢の干渉チェックを行う(S309)。
【0077】
ノード有効性判定処理部155は、カウンタnが繰り返し回数Nに到達した否かを判定し(S306)、到達した場合(S306でYesの場合)には処理を終了する。到達していない場合には、カウンタnの値を1増加させ(S307)、S303へと戻る。
【0078】
図9に示したように、第1優先のアーム(腰を含む)の探索経路のノードと、第2優先のアームの探索経路のノードと、について対応するノードの干渉チェックを行うことで、アームごとのグラフ構造を用いた場合であっても、共に干渉していない両アームの動作を求めることができる。そして、第1優先のアームの探索経路は腰についての関節軸情報を含んでおり、第2優先のアームの探索経路は第1優先のアームの探索経路に対応したものであるため、結果として、作業を行うアーム(第1優先のアーム及び第2優先のアーム)と、腰との同期が取れた動作を生成することができる。
【0079】
次に、本実施の形態による効果について説明する。
まず、ロボット1が、L個の関節軸を含む右アームと、M個の関節軸を含む左アームと、を備える双腕ロボットであり、全部でN個の関節軸を有する場合に、一つの関節軸のとりうる範囲をX分割すると全ての関節軸の組み合わせはX通りとなり、ある姿勢を探索する範囲は、N乗に比例して大きくなる。これに対して、探索範囲を部位(アーム)ごとに分割して軌道探索することで、探索範囲はX+Xとなり、全ての関節軸を一度に探索するのと比べて、探索範囲を大幅に減少させることができる。また、グラフ構造を利用して軌道を探索する場合に、探索範囲が小さければ同じ分解能であってもノードの個数を減らすことができるため、計算時間を短縮することができる。
【0080】
また、実際にタスクを行う部位(優先度の高いアーム)について腰関節を含むグラフ構造を用いて軌道探索を行った上で、他の部位(より優先度の低いアーム)についての軌道探索を行うため、腰との同期を含めてタスクを行わせたい部位(両アーム)の同期が可能である。また、双腕による作業の場合においても、いずれかのアームを第1優先の腕とすることで対応することができる。
【0081】
ロボット1に達成させたい作業(タスク)には複雑な作業が多く存在し、例えば、右手では必ず作業を行い、左手では可能であれば実行して欲しいという作業がある。本実施の形態では、各部位に優先度を設定して軌道探索を行うことで、優先度の高い部位についての軌道を実現した上で、優先度のより低い部位の軌道を実現するように軌道計画(動作生成)を行う。例えば、部位の優先度として、右アームに最も高い優先度を設定し、左アームに右アームよりも低い優先度を設定した場合(右アームで必ず作業を行い、できれば左アームでも作業を行って欲しい場合)には、(i)右アームでの作業を実現させる軌道と、右アームでの作業を実現させる軌道を前提とした左アームでの作業を実現させる軌道、(ii)必ず実現させたかった右アームでは軌道を求めることができなかった、(iii)両アーム共に軌道を求めることができなかった、という出力を得ることができる。このため、従来手法と比較して、複雑な作業に対しても1度の軌道計画で解(軌道)を求められる可能性が高く、達成させたい作業の動作を一度でより確実に生成可能とし、より短時間で動作生成を実行することができる。
【0082】
実施の形態2.
次に、本発明の実施の形態2について説明する。上述の実施の形態においては、ノード構成(ノードの個数、エッジなど)が固定されたグラフ構造を利用して軌道を探索するものであったが、本実施の形態においては、軌道探索の結果を継承させながらノード構成を変化させるグラフ構造を利用して軌道を探索するものである。なお、図1に示したロボット1の概略構成や、図2に示した動作生成システム10の構成及び処理については上述した実施の形態1と同一であるためその詳細な説明を省略し、以下では、実施の形態1と異なる点を中心に説明する。
【0083】
図10乃至図12を参照して、本実施の形態による軌道探索処理について説明する。
図10は、規模の異なる複数のグラフ構造を用いた軌道探索処理のフローチャート図である。本実施の形態では、グラフ構造データ格納部151は、ノードの規模が異なる複数のグラフ構造を部位ごとに格納しており、ここでは、ノード数が比較的少ない小規模なグラフ構造と、その小規模なグラフ構造を含み、かつ、ノード数が比較的多い大規模なグラフ構造と、の2つのグラフ構造を有しているものとして説明する。また、図に示す軌道探索処理が、第1優先の部位(腰を含む)、第2優先の部位のいずれについてもそれぞれ適用される。
【0084】
本実施の形態に係る全身軌道計画部15は、小規模なグラフ構造を用いて軌道を探索する(S401)。なお、S401での軌道探索処理には、ノードの干渉チェックが含まれている。次いで、S401での軌道探索の結果、有効な軌道が存在するか否かを判定し(S402)、軌道が存在する場合(S402で「有」の場合)には、その軌道を出力して処理を終了する。
【0085】
S401での軌道探索の結果、軌道探索の結果、有効な軌道が存在しない場合には(S402で「無」の場合)には、S401での軌道探索結果を、大規模なグラフ構造に継承させる(S403)。継承させる軌道探索結果には、S401で用いた小規模なグラフ構造のノードのうち、軌道探索の際に探索されなかったノードと、干渉チェックの結果、干渉しないと判定されたノードと、を示す情報と、が含まれる。
【0086】
次いで、小規模なグラフ構造による軌道探索結果を継承させた大規模なグラフ構造を用いて、軌道を探索する(S404)。次いで、S404での軌道探索の結果、有効な軌道が存在するか否かを判定する(S405)。判定の結果、軌道が存在する場合(S405で「有」の場合)には、その軌道を出力して処理を終了し、軌道が存在しない場合(S405で「無」の場合)には、軌道を探索することができなかったとして処理を終了する。
【0087】
図11及び図12を参照して、図10に示した処理の具体例を説明する。
図11は、小規模なグラフ構造を例示する概念図である。図12は、大規模なグラフ構造を例示する概念図である。グラフ構造50を用いて軌道を探索した結果、ノード53及びノード58が干渉すると判定され、有効な軌道を探索することができないと判定された。このため、グラフ構造60を用いて軌道が探索される結果、ノード74を介することで、スタートノードSからゴールノードGまでの経路を探索することができる。
【0088】
以上説明したように、本実施の形態では、まずは比較的小規模なグラフ構造を用いて軌道を探索し、軌道を求められない場合には、軌道探索結果を継承させたより大規模なグラフ構造を用いて軌道を探索する。このように、前回の軌道探索結果を継承させながら徐々に複雑なグラフ構造へと切替えていくことで、軌道の計画可能性を保証しつつ、簡単な環境では短時間で軌道計画が可能となる。
【0089】
例えば、障害物が特に存在しない環境下で机上に置かれた物体までアームを伸ばすといった比較的簡単な状況下では、アームの軌道を瞬時に探索できることが求められる。グラフ構造を用いて軌道を探索する手法では、ノード数及びエッジ数が少ないほど高速に計算が可能であるため、このような環境下では小規模なグラフ構造を利用して軌道を探索することが好ましい。一方で、目標物体の周囲に多数の障害物が存在するような複雑な環境下で、軌道探索に最初に用いたグラフ構造のノード数などが不十分であったために、物体との干渉チェックにより多くのノードが無効となり、この結果、初期姿勢から最終姿勢までのアーム軌道を探索できないことがある。
【0090】
従って、本実施の形態では、最初に用いる小規模なグラフ構造で軌道が求まらない場合には、ノード数やエッジ数がより多い大規模なグラフ構造に切替えて探索を行う。大規模なグラフ構造では小規模なグラフ構造に比べると計算時間を要するものの、解(軌道)が求まる可能性が高いためである。そして、大規模なグラフ構造は、その前の探索で用いた小規模なグラフ構造による探索結果を包含するため、干渉チェックにより干渉しないと判定されたノードについては以降の干渉チェックを省き、干渉すると判定されたノードについては大規模グラフ構造から予め省くことで、軌道の計画可能性を保証しつつ、より短時間で軌道計画が可能となる。
【0091】
なお、本実施の形態では、小規模なグラフ構造と大規模なグラフ構造の2つのグラフ構造を用いた場合を例に説明したが、規模のそれぞれ異なる3以上のグラフ構造をグラフ構造データ格納部151に格納し、順次、より規模の大きなグラフ構造に切替えて軌道を探索するものとしてもよい。
【0092】
実施の形態3.
次に、本発明の実施の形態3について説明する。
図13は、実施の形態3に係る全身軌道計画部15による軌道計画処理のフローチャート図である。実施の形態3では、実施の形態1の図5に示した処理と同一の処理を行うが、S501及びS503では、実施の形態2の図10で示した処理を行う。すなわち、S501及びS503での軌道探索処理は、まずは比較的小規模なグラフ構造を用いて軌道を探索し、軌道を求められない場合には、軌道探索結果を継承させたより大規模なグラフ構造を用いて軌道を探索することで行われる。
【0093】
その他の実施の形態.
上述した実施の形態では、ロボット1が右アーム及び左アームを有する双腕ロボットである場合を例として説明したが、3本以上のアームを有し、各アームに対して優先度を設定するものとしてもよい。
【0094】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0095】
1 ロボット、
R1〜R7、L1〜L7 関節、
10 動作生成システム、
11 環境認識部、
12 タスク管理部、
13 最終全身姿勢決定部、
14 初期全身位置・姿勢取得部、
15 全身軌道計画部、
151 グラフ構造データ格納部、
152 探索用グラフ構造データ保持部、
153 グラフ構造生成処理部、
154 グラフ構造探索処理部、
155 ノード有効性判定処理部、
16 補間部、
17 モーター駆動部、
20、30、40、50、60、80 グラフ構造、
20〜29、30〜39、40〜49、50〜59、60〜77、81〜90 ノード、
S スタートノード、
G ゴールノード

【特許請求の範囲】
【請求項1】
複数のアームを備えるロボットと、
前記ロボットの周辺の環境の環境情報を取得する環境認識手段と、
前記アームの関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するグラフ構造を、前記アームごとに格納するグラフ構造データ格納手段と、
前記複数のアームのそれぞれに優先度が設定され、当該設定された優先度に従って、前記グラフ構造データ格納手段に格納されている前記アームごとのグラフ構造を用いて、前記アームの初期姿勢を示すスタートノードから前記アームの最終姿勢を示すゴールノードまでを結ぶ経路を探索するグラフ構造探索処理手段と、
前記グラフ構造探索処理手段により探索された経路に含まれるノードについて、当該ノードが示す姿勢が、前記環境認識手段により取得された前記環境情報と干渉するか否かを判定し、干渉していると判定した場合には、当該ノードを前記グラフ構造から除外するノード有効性判定手段と、
を備えるロボットの動作生成システム。
【請求項2】
前記ロボットは上体と下体とを連結する腰を更に備え、
前記グラフ構造データ格納手段は、
前記アームの関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するアーム用グラフ構造と、前記アームの関節軸情報及び前記腰の関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するアーム及び腰用グラフ構造とを、前記アームごとにそれぞれ格納し、
前記グラフ構造探索処理手段は、
最も高い優先度が設定されたアームについての経路を探索する場合には、
前記グラフ構造データ格納手段に格納されている前記アーム及び腰用グラフ構造を用いて、前記アーム及び前記腰の初期姿勢を示すスタートノードから前記アーム及び前記腰の最終姿勢を示すゴールノードまでを結ぶ経路を探索する
ことを特徴とする請求項1に記載のロボットの動作生成システム。
【請求項3】
前記ロボットに実行させるタスクを管理するタスク管理手段を更に備え、
前記タスク管理手段は、
前記環境認識手段により取得された前記環境情報に基づいて、前記複数のアームのそれぞれに優先度を設定する
ことを特徴とする請求項1又は2に記載のロボットの動作生成システム。
【請求項4】
前記環境認識手段により取得された前記環境情報には前記環境内の把持対象物体の位置情報が含まれ、
前記タスク管理手段は、
前記把持対象物体と前記複数のアームのそれぞれとの位置関係に基づいて、前記複数のアームのそれぞれに優先度を設定する
ことを特徴とする請求項3に記載のロボットの動作生成システム。
【請求項5】
前記グラフ構造データ格納手段は、
前記ノードの個数がそれぞれ異なる前記グラフ構造を前記アームごとに複数格納し、
前記グラフ構造探索処理手段は、
前記グラフ構造データ格納手段に格納されている前記アームごとの複数のグラフ構造のうちで第1のグラフ構造を用いて、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索し、当該探索した経路に含まれるいずれか1のノードが、前記ノード有効性判定手段により前記環境情報と干渉する姿勢を示すノードであると判定された場合には、前記第1のグラフ構造のノードのうちで前記ノード有効性判定手段により前記環境情報と干渉しない姿勢を示すノードであると判定されたノードと、前記第1のグラフ構造のノードのうちで前記探索がなされなかったノードと、を、前記第1のグラフ構造のノードの個数よりも多い個数のノードを有する第2のグラフ構造へと継承させ、当該第2のグラフ構造を用いて、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索する
ことを特徴とする請求項1乃至4いずれか1項に記載のロボットの動作生成システム。
【請求項6】
複数のアームと、上体と下体とを連結する腰と、を備えるロボットの動作生成方法であって、
前記アームの関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するアーム用グラフ構造と、前記アームの関節軸情報及び前記腰の関節軸情報を示すノードと、当該ノード間を接続するエッジと、を有するアーム及び腰用グラフ構造とが、前記アームごとにそれぞれグラフ構造データ格納部に格納されており、
前記ロボットの周辺の環境の環境情報を取得するステップと、
前記複数のアームのそれぞれに優先度が設定され、最も高い優先度が設定されたアームについての経路を探索する場合に、前記グラフ構造データ格納部に格納されている前記アーム及び腰用グラフ構造を用いて、前記アーム及び前記腰の初期姿勢を示すスタートノードから前記アーム及び前記腰の最終姿勢を示すゴールノードまでを結ぶ経路を探索するステップと、
2番目に高い又はそれ以降に高い優先度が設定されたアームについての経路を探索する場合に、前記設定された優先度に従って、前記グラフ構造データ格納部に格納されている前記アームごとのグラフ構造を用いて、前記アームの初期姿勢を示すスタートノードから前記アームの最終姿勢を示すゴールノードまでを結ぶ経路を探索するステップと、
前記探索された経路に含まれるノードについて、当該ノードが示す姿勢が、前記取得した前記環境情報と干渉するか否かを判定し、干渉していると判定した場合には、当該ノードを前記グラフ構造から除外するステップと、
を有するロボットの動作生成方法。
【請求項7】
前記グラフ構造データ格納部には、
前記ノードの個数がそれぞれ異なる前記グラフ構造が前記アームごとに複数格納されており、
前記グラフ構造データ格納部に格納されている前記アームごとの複数のグラフ構造のうちで第1のグラフ構造を用いて、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索するステップと、
前記探索した経路に含まれるいずれか1のノードが、前記環境情報と干渉する姿勢を示すノードであるか否かを判定し、干渉すると判定した場合に、前記第1のグラフ構造のノードのうちで前記環境情報と干渉しない姿勢を示すノードであると判定したノードと、前記第1のグラフ構造のノードのうちで前記探索がなされなかったノードと、を、前記第1のグラフ構造のノードの個数よりも多い個数のノードを有する第2のグラフ構造へと継承させるステップと、
前記第2のグラフ構造を用いて、前記スタートノードから前記ゴールノードまでを結ぶ経路を探索するステップと、
を有することを特徴とする請求項6に記載のロボットの動作生成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate