(57)【要約】      （修正有）【課題】予測不可能な複雑な環境においてロボットが動きを行うことを可能にする自律型ロボットの制御方法を提供すること。【解決手段】ロボットの動き制御のためのコントローラは、到達すべきターゲットに関する情報を該コントローラに供給するターゲット入力インターフェースと、該ロボットの内部モデルを使用して、制御される該ロボットの将来の状態の少なくとも１つを予測する予測モジュールと、前記予測モジュールから供給された予測状態から開始して、該ロボットの将来状態を計画する計画モジュールと、前記制御されるロボットをターゲットに到達させるべく、モータコマンドを出力する反応コントローラと、前記予測モジュールによって出力されたターゲットまたは前記計画モジュールからの出力を選択するターゲットアービトレータと、を備える。【選択図】図１
2010264585.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動き制御のためのコントローラであって、
到達すべきターゲットに関する情報を該コントローラに供給するターゲット入力インターフェースと、
該ロボットの内部モデルを使用して、制御される該ロボットの将来の状態の少なくとも１つを予測する予測モジュールと、
前記予測モジュールから供給された予測状態から開始して、該ロボットの将来の状態を計画する計画モジュールと、
前記制御されるロボットをターゲットに到達させるべく、モータコマンドを出力する反応コントローラと、
前記予測モジュールによって出力されたターゲットまたは前記計画モジュールからの出力を選択するターゲットアービトレータと、
を備えるコントローラ。
【請求項２】
前記予測モジュールによって生成される動きの品質は、コスト関数を用いて計算され、
前記計画モジュールによって生成されるターゲットは、前記予測モジュールによって生成された動きの品質が予め設定されたしきい値未満である場合に、該ロボットの動きを制御するのに用いられる、
請求項１に記載のコントローラ。
【請求項３】
前記予測モジュールによって生成された動きの品質が予め設定されたしきい値未満である場合、前記計画モジュールが起動されて計画計算を開始すると同時に、前記反応コントローラは前記ロボットを制御し続ける、
請求項１または２に記載のコントローラ。
【請求項４】
前記予測モジュールが、前記ロボットの将来の状態の予測を完了し、かつ前記計画モジュールを起動する時間ｔtrigの前に、前記予測モジュールは、中間状態の情報を前記計画モジュールに供給する、
請求項１または２に記載のコントローラ。
【請求項５】
前記計画モジュールは、予測された前記中間状態の情報に基づいて、事前計画された情報を計算し、前記時間ｔtrigにおける起動の際に使用するため、該事前計画された情報をデータベースに格納するよう設計される、
請求項３に記載のコントローラ。
【請求項６】
さらに、前記ターゲットアービトレータから供給されたターゲットをモータコマンドに変換するための反応コントローラコマンドを提示する、
請求項１から５のいずれかに記載のコントローラ。
【請求項７】
請求項１から６のいずれかに記載のコントローラを備えるロボット。
【請求項８】
ロボットの動きを制御するための方法であって、
到達すべきターゲットに関するターゲット入力情報を供給するステップと、
制御される前記ロボットの将来の状態のうちの少なくとも１つを予測するステップと、
予測された状態から開始して、前記ロボットの将来の状態を計画するステップと、
前記制御されるロボットを前記ターゲットに到達させるべく、モータコマンドを出力するステップと、
を含む方法。
【請求項９】
前記予測の計算の間、中間状態の情報が、将来の状態の前記計画のために用いられ、その後、将来の状態の該計画は、前記予測の計算が完了し次第起動される、
請求項８に記載の方法。
【請求項１０】
事前計画される情報は、予測された前記中間状態の情報に基づいて計算され、該事前計画された情報は、時間ｔtrigにおいて起動する際に使用するため、データベースに格納される、
請求項９に記載の方法。
【請求項１１】
コンピューティングデバイス上で稼動する際に、請求項８から１０のいずれかに記載の方法を実行するコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、自律型ロボットの分野に関し、より具体的には、予測不可能な複雑な環境においてロボットが動きを行うことを可能にする方法に関する。
【０００２】
当業者の一般的な知識は、たとえば、Bekeyによる「自律型ロボット(autonomous robots)」、MIT出版、２００５年に例示されている。
【背景技術】
【０００３】
ロボットのような可動な対象物（オブジェクト）を制御する際、動き生成に関して本質的に２つの既知の方法があり、これは、計画と反応制御である。当業者には、動き制御についてのこれらの２つの概念はよく知られており、たとえば、下記のＢｅｋｅｙに記載されている。
【０００４】
計画(planning)は、基本的に、現在の状態から将来の状態へと最適な動きを計画ないしスケジュールすることである。これには、動き全体を計算するコストがかかり、よって、予測不可能な環境に対して反応することが困難である。この方法は、静的または予測可能な複雑な環境に適している。
【０００５】
他方、反応制御(reactive control)は、より安価な計算コストで次の状態のみを計算する。結果としての動きは、最適とはいえず、潜在的に局所解(local minima)に陥る。この方法は、予測不可能な動的な環境に適している。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Bekey著、「自律型ロボット（Autonomous robots）」、MIT press、２００５年
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、複雑かつ予測不可能な環境においても、ロボットが動きを行うことを可能にする手法を提案することである。
【課題を解決するための手段】
【０００８】
本発明は、これらの２つの方法を統合することにより、予測不可能な複雑な環境において動きを生成することが可能な「瞬時予測(Instant Prediction)」の概念を提案する。
【０００９】
本発明の目的は、独立請求項の特徴によって、特に達成される。従属請求項は、さらに、本発明の中心的な考えを発展させるものである。
【００１０】
本発明の第１の目的は、ロボットの動き制御のためのコントローラに関し、該コントローラは、
−到達すべきターゲットに関する情報を、該コントローラに供給するためのターゲット入力インターフェースと、
−内部モデルを用いて、制御される該ロボットの将来の状態の少なくとも１つを予測する予測モジュールと、
−上記予測モジュールから供給された予測された状態から開始して、該ロボットの将来の状態を計画する計画モジュールと、
−該制御されるロボットをターゲットに到達させるべく、モータコマンドを出力する出力ステージと、
−上記予測モジュールによって出力されたターゲットまたは上記計画モジュールからの出力を選択するためのターゲット・アービトレータ(arbitrator:調停部)と、を備える。
【００１１】
予測モジュールによって生成された動きの品質を計算し（コスト関数を用いて）、該予測モジュールによって生成された動きの品質が、予め設定されたしきい値未満である場合には、計画モジュールによって生成されたターゲットを、該ロボットの動きを制御するのに用いる。
【００１２】
本発明は、また、上記定義されたコントローラが備えられるロボットに関する。
【００１３】
本発明は、また、ロボットの動きを制御する方法に関し、該方法は、
−到達すべきターゲットに関するターゲット入力情報を供給するステップと、
−制御される該ロボットの将来の状態の少なくとも１つを予測するステップと、
−上記予測された状態から開始して、該ロボットの将来の状態を計画するステップと、
−該制御されるロボットをターゲットに到達させるべく、モータコマンドを出力するステップと、を含む。
【００１４】
さらに、本発明は、コンピューティングデバイス上で稼動するときに上記の方法を実行するコンピュータプログラム製品を提案する。
【００１５】
本発明のさらなる利点、目的および特徴は、添付の図面と共に、本発明の好ましい実施形態の以下の詳細な説明を読むことによって当業者には明らかであろう。
【図面の簡単な説明】
【００１６】
【図１】本発明に従う、瞬時予測手法を示す図。
【図２】本発明に従う、コントローラのタイムチャートを示す図。
【図３】本発明に従う、ロボット・コントローラの簡略化された図。
【図４】本発明に従う、コントローラを示す図であり、品質値μreactがしきい値より大きければ、ロボットの動きについて計画モジュールを用いないが、計画モジュールは、進行中の予測計算の間は、μreactに基づいて、動きを事前計算し、更新する。事前計算された計画情報は、データベースに格納される。計画モジュールを起動するとき（予測計算の完了時）、該データベースを用いることができ、これによって、計算時間および計算資源を節約することができる。
【図５】ホンダのアシモ（ASIMO）ロボットを示し、これは、本発明を適用可能な、人間型の自律型ロボットである。
【発明を実施するための形態】
【００１７】
本発明は、ロボットに関し、該ロボットには、好ましくは該ロボットに搭載される、コンピューティングユニット（コントローラ）が設けられる。該コンピューティングユニットは、機能的に複数のモジュールに分けられる。以下では、本発明に従う方法およびモジュールのレイアウトを説明し、これにより、制御されるロボットについて新規な挙動が達成されることとなる。
【００１８】
瞬時予測(instant prediction)手法
瞬時予測の手法の全体が、図１に示されている。元の（オリジナルの）ターゲット信号ｒorgは、ロボットによって到達されるべきターゲットを示しており、これは、関連づけられたロボットの、たとえば視覚信号処理システムから供給される。オリジナルのターゲット信号ｒorgは、ターゲットアービトレータ(arbitrator,調停)モジュールおよび計画モジュールに供給される。ターゲットアービトレータモジュールは、第２の入力として、中間ターゲット信号ｒintを受け取る。
【００１９】
ターゲットアービトレータモジュールは、実ターゲット信号ｒactを生成し、これは、反応コントローラおよび予測モジュールの両方に送られる。
【００２０】
予測モジュール（予測器）は、動きμreactを生成し、これは、計画使用基準評価モジュールに供給されると共に、計画開始基準評価モジュールへの入力として送られる。計画開始基準評価モジュールは、供給された動きμreactが計画開始基準を満たすと評価したならば、計画モジュール（計画器）を起動（トリガ）する。
【００２１】
とりわけ、予測モジュールから供給された動きμreactが、ロボットの将来の状態について困難性(difficulty)を示すならば（たとえば、ロボットの部位が障害物に近づきすぎる場合や、ロボットの関節（ジョイント）またはアクチュエータが、極限の（終端の）位置に近づきすぎる場合）、計画開始モジュールは、計画モジュールを起動する。該困難性を、供給された動きμreactにコスト関数を適用することによって計算することができる。
【００２２】
予測モジュールがロボットの将来の状態について困難性を予測した場合に、図に示される反応コントローラが、該困難性に至るものとして予測された挙動に従ってロボットを制御しつづける、という点に注意することが重要である。しかしながら、反応コントローラによる進行中の制御と時間的に並列して、計画モジュールが起動され、計画の計算を開始する。反応コントローラと計画計算の並列制御は、ロボットのより効率的な制御となる。なぜならば、予測モジュールによってなされた困難な状況の予測に起因して、計画モジュールは、該困難な状況が実世界で達せられる前に、計画計算を開始することができるからである。
【００２３】
本発明によれば、こうして、将来の困難な状態が予測される場合でもロボットの制御は停止されず、該将来の困難な状態を回避することができる「計画された動き」を計算するよう設計された計画モジュールが起動される。
【００２４】
計画モジュールは、動き解決(solution)信号を生成し、これは、中間ターゲット生成モジュールに送られる。該中間ターゲット生成モジュールは、計画された動きの適合値μplanを生成し、これは、予測された動きの適合値μreactと共に、計画使用基準評価モジュールに送られる。計画使用基準評価モジュールは、基準を使用して、計画された動きまたは予測された動きを、ターゲットアービトレータモジュールに送られる内部ターゲット信号として使用するかどうかを評価する。
【００２５】
図に示されるシステムは、反応コントローラを使用して、ロボットのアクター（actor、典型的には電気モータ）のための動きコマンドを生成する。予測モジュールは、その内部モデル、いわゆる内部予測モジュールモデル（後述された参考文献中の文献２を参照）を使用して、将来のロボットの状態をシミュレートする。内部予測モデルの動きの適合値μreact（適合(fitness)関数またはコスト関数を用いて計算される）が不十分ならば、計画モジュールが起動される。計画モジュールによって生成される他の動きの適合値μplanが十分ならば（すなわち、予め設定されたしきい値を超えたならば）、該計画された動きμplanは、ターゲットアービトレータを介して、実ターゲットｒactとして反応コントローラに送られる。その後、反応コントローラは、該ロボットに、供給されたターゲットを達成させるように、該ロボットのアクター（たとえば、足、腕、頭）を制御する。
【００２６】
当該手法の各要素について、以下、図１と共に説明する。以下の説明において、Ｔ＊は、Ｎ＊の繰り返しサイクル中における、各内部モデルについての全体的な計算時間を表す。ΔＴ＊は、１繰り返し中における各内部モデルについての計算時間を示し、Δｔ＊は、各内部モデルの時間増分（インクリメント）を表す。サフィックス＊は、予測(predict)、反応(react)、計画(plan)、またはトリガ(trig)を示す。
【００２７】
図２は、本発明に従う、コントローラのタイムチャート（すなわち、ｘ軸は、時間軸）を示す。Ｔreactは、反応コントローラの計算時間であり、これは、時間期間Δｔreact内にある。ｔpredictは、将来の予測深さ(prediction depth)である。予測モジュールは、時間ｔpredictまで、ロボットの将来の状態を予測するが、計画モジュールがトリガ（起動）されるときには、ｔtrigまで予測することができる。Ｔpredictは、時間ｔpredictまでロボットの将来の状態を予測するのに必要な計算時間である。
【００２８】
ｔtrigまでの時間期間中、すなわち、計画モジュールがトリガされる前（これは、図２において網掛けで示されている）、計画モジュールは、事前計算のために該期間を利用する。ｔtrigまでのこの期間中、計画モジュールは、予測モジュールから計画モジュールに、時間ｔtrig前に供給された情報に基づいて、計画を準備する。こうして、状態予測の中間結果（予測モジュールから計画モジュールへは、連続的に、または離散時間ステップで送られる）は、ｔtrig前に計画を事前計算するのに計算モジュールによって使用される。この事前計算は、たとえば、計画の離散化、計画の中間位置または該中間位置間の接続が障害物に近すぎないか、あるいは障害物に重なっていないかをチェックすること、等を含むことができる。
【００２９】
ターゲットアービトレータモジュール
ターゲットアービトレータは、新しいターゲットｒorgまたは中間ターゲットｒintが与えられたときに起動される。該アービトレータが中間ターゲットを受け取ったとき、該アービトレータは、オリジナルの該与えられたターゲットｒorgを格納し、ｒintを、ｒactの時間間隔で、反応コントローラおよび予測モジュールの両方に送る。ターゲットアービトレータモジュールが、新しく与えられたターゲットｒorgを受け取ったとき、該格納されたデータは破棄され、該アービトレータは、ｒactの該新しく与えられたターゲットを送る。
【００３０】
反応コントローラ
反応コントローラは、ｒactを受け取り、ロボットのモデル、いわゆる内部反応モデルに基づいて、次の時間区間についての動きを計算する。結果としての動きコマンドが、ロボットに送られる。通常、反応コントローラは、動きコントローラ、ジョイント限界回避コントローラ、衝突回避コントローラ等のいくつかのコントローラを備える。
【００３１】
予測モジュール
予測モジュールは、内部予測モジュールモデルを使用して、ロボットの将来の状態をシミュレートする。予測モジュールは、該モデルに基づいて、適合値μreactを計算する。これは、内部予測モジュールモデルでシミュレートされた反応動きについての品質の目安となるものである。この適合値μreactは、ロボットの環境の複雑性を表す。たとえば、内部予測モジュールモデルが物理的な障害物に近づくよう動いて該モデルがデッドロックに達した場合、適合値μreactは下がる。
【００３２】
予測モジュールは、計画が完了するまで、予測を停止する。これは、計画中に計画モジュールをトリガ（起動）しないようにするためである。内部予測モジュールモデルは、内部反応モデルに必ずしも同一ではない。該内部予測モジュールモデルは、より少ない自由度ＤＯＦ（Degree of Freedom）を持つことができ、あるいは、内部反応モデルの時間区間Δｔreactよりも長い時間区間Δｔpredictを持つことができる。これらは、計算時間を節約するのに寄与し、よって、予測モジュールは、さらなる将来を予測することができる。対して、内部予測モジュールモデルの荒さ（coarseness）は、予測の不正確さとなりうる。より精細(finer)なモデルを、以下のケースで使用することができる。
・μreactが小さくなるとき
・システムが、近い将来を予測するとき
・システムが、与えられたターゲットｒorg近くを予測するとき（後述の文献６）
【００３３】
「計画開始」基準モジュール
「計画開始」基準モジュールは、適合値μreactに従って、計画を開始するか否かを決定する。また、該モジュールは、計算資源のような利用可能な資源が限られている場合には、該利用可能な資源を考慮することができる。
【００３４】
計画モジュール
計画モジュールは、局所的に、またはグローバルに最適化された解（solution、通常は、軌道）を生成する。ここでは、任意の種類の計画モジュールを使用することができるが、より高速な計画モジュール、または、計算中に割り込まれたとしても最小解(minimal solution)を与える計画モジュールが、適している。これは、計画のための時間が制限されているためである。
【００３５】
中間ターゲット生成器
反応動きおよび計画された動きの両方の適合値を比較できるように、また、ターゲットアービトレータが扱うことができるように、中間ターゲット生成器は、計画モジュールからの該解（ソリューション）を、中間ターゲットｒintに変換する。たとえば、計画モジュールが配置空間(configuration space)を用い、オリジナルに与えられたターゲットｒorgがタスク空間(task space)を用いる場合、中間ターゲット生成器は、該配置空間をタスク空間に変換する。ｒintに基づいて、中間ターゲット生成器は適合値μplanを計算し、これを、計画使用基準に送る。
【００３６】
「計画使用」基準モジュール
「計画使用」基準モジュールは、適合値μplanおよびμreactを比較する。これらの適合値に従って、該モジュールは、どちらの中間ターゲットを、ｒactに用いるかを判断する。
【００３７】
本発明に従う適応計画
予測モジュールは、予測深さである時間ｔpredictにおけるロボットの将来状態に至るまでを予測することができる。反応コントローラの計算時間をＴreactとし、予測モジュールについての計算時間をＴpredictとし、計画モジュールについての計算時間をＴplanとする。
【００３８】
待ち時間補償(latency compensation)のため、以下の条件が必要とされる。
ｔpredict≧Ｔplan＋Ｔpredict                      （１）
ｔpredictのための予測繰り返しサイクルをＮpredictとし、１サイクルについての計算時間をΔＴpredictとすると、以下を得ることができる。
ｔpredict＝ＮpredictΔｔpredict                  （２）
Ｔpredict＝ＮpredictΔＴpredict                  （３）
【００３９】
これらの条件下において、式（１）は、以下のようになる。
Ｔplan≦Ｎpredict（Δｔpredict−ΔＴpredict）    （４）
【００４０】
Δｔpredict−ΔＴpredictが一定とすると、Ｎpredictは、計画のための計算時間Ｔplanを制限する。
【００４１】
静的な、または決まった環境においては、Ｎpredictを、計画について十分大きくすることができる。しかしながら、環境が、動的であり、または不確かである場合には、予測モジュールは、ｔpredictまでのロボットの将来の状態を常に予測するとは限らない。なぜならば、計画モジュールが、ｔpredictの前に起動されうるからである。予測モジュールの開始と計画モジュールの起動の間の時間ｔtrigは、以下のようになる。
【００４２】
ｔtrig≦ｔpredict                          （５）
ｔtrig＝ＮtrigΔｔpredict                  （６）
【００４３】
ここで、Ｎtrigは、ｔtrigの予測繰り返しサイクルである。式（４）は、以下のように定式化されることができる。
Ｔplan≦Ｎtrig（Δｔpredict−ΔＴpredict） （７）
【００４４】
計画モジュールは、計画について時間Ｔplanを用いることができる。環境が予測可能であるとき、計画モジュールは、十分に足るＮtrigを用いるが、環境が、完全に予測不可能なとき、Ｎtrig＝０であり、すなわち、システムは反応コントローラと等価となる。
【００４５】
計画のための準備
インタラクティブな（反応）コントローラを、動きについて使用しており、かつ計画モジュールが起動されていない間、計画モジュールは、必要に応じて、計画についての事前計算を行うことができる。たとえば、計画モジュールは、動きを生成することができ、あるいは、この期間における状態空間を離散化する等の事前処理を計算したり、予測モジュールで計算された適合値に従って動きを更新したりすることができる。
【００４６】
本発明は、実際にロボットが困難な状況に遭遇するまでに予測モジュールが該困難な状況を検出した時からの時間を利用することによって、計画モジュールに十分な時間を与える予測モジュールを提案するものである。また、予測モジュールは、計画モジュールが効率よく計画するように、該計画モジュールに、予測された結果を送る。
【００４７】
まとめ
本システムは、反応コントローラを用い、該システムが、困難な状況に遭遇したとき、該システムは、計画モジュールを使用する。反応コントローラが動きについて用いられるが、計画モジュールは用いられないとき、該計画モジュールは、該計画モジュールが動きについて用いられるときに計算時間を節約するため、動きを計算する。計画モジュールは、予測モジュールによって予測された情報を利用して、動きを計画する十分な時間を取ることができる。すべてのプロセスは、オンラインで実行される。
【００４８】
予測モジュールは、将来の時間ステップｔｉにおける反応動きの品質の予測を、ｔpredictなる最大時間まで、実行する。何らかのｔｉについての品質値がしきい値より小さくなったならば、計画モジュールは計画を計算する。計画モジュールの時間は、以下によって与えられる。
【００４９】
Ｔplan≦ｔpredict−Ｔpredict
ここで、ｔpredictを、環境に適応させることができる。
【００５０】
反応コントローラが十分であるならば、すなわちμreactが、現在の、または適応的なしきい値より大きければ、計画モジュールは、環境を表すμreactに基づいて、動きを事前計算し、該動きを更新する。
【００５１】
参考文献
[1] Brendan Burns. Exploiting Structure: A Guided Approach to Sampling based Robot Motion Planning. Electronic Doctoral Dissertations for UMass Amherst. Paper AAI3275736., 2007.
[2] Michael Gienger, Bram Bolder, Mark Dunn, Hisashi Sugiura, Herbert Janssen, and Christian Goerick. Predictive behavior generation - a sensor-based walking and reaching architecture for humanoid robots. In Karsten Berns and Tobias Luksch, editors, Autonome Mobile Systeme 2007. Springer Verlag, 2007.
[3] Jindong Liu, Huosheng Hu, and Dongbing Gu. A hybrid control architecture for autonomous robotic fish. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems 2008, 2008.
[4] Kian Hsiang Low, Wee Kheng Leow, and Jr Marcelo H. Ang. A hybrid mobile robot architecture with integrated planning and control. In Proceedings of the International Conference on Autonomous Agents and Multiagent Systems 2002, 2002.
[5] Neal Solomon. System, methods and appratus for managing a weapon system. In United States Patent Pub. No. US2005/0183569 A1, 2005.
[6] Nikolaus Vahrenkamp, Christian Scheuer, Tamin Asfour, James Kuffner, and Ruediger Dillmann. Adaptive motion planning for humanoid robots. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robotics and Systems 2008, 2008.
【図１】
2010264585.tif 000003
【図３】
2010264585.tif 000004
【図４】
2010264585.tif 000005
【図２】
2010264585.tif 000006
【図５】
2010264585.tif 000007
【外国語明細書】
2010264585.tif 000008
2010264585.tif 000009
2010264585.tif 000010
2010264585.tif 000011
2010264585.tif 000012
2010264585.tif 000013
2010264585.tif 000014
2010264585.tif 000015
2010264585.tif 000016
2010264585.tif 000017
2010264585.tif 000018
2010264585.tif 000019
2010264585.tif 000020
2010264585.tif 000021
2010264585.tif 000022
2010264585.tif 000023
2010264585.tif 000024
2010264585.tif 000025
2010264585.tif 000026
2010264585.tif 000027
2010264585.tif 000028
2010264585.tif 000029
2010264585.tif 000030
2010264585.tif 000031