(57)【要約】【課題】ロボットタスクの複数の状態を通り構成空間を横切ってロボットを移動するステップと、ロボットの挙動のシーケンスを記述する運動スキーマを記録するステップとを含む、作業環境内でロボットタスクを実行するようにロボットを訓練するための方法を提供すること。【解決手段】ロボットを移動している間にロボットの性能および状態値を記述する感覚データが記録される。本方法は、作業環境内に配置されている物体の知覚的特徴を検出するステップと、仮想直示マーカーを検出された知覚的特徴に割り当てるステップと、割り当てられたマーカーおよび記録された運動スキーマを使用して、別のロボットタスクの自動化された実行の際にロボットをその後、制御するステップとを含む。マーカー同士を組み合わせて一般化マーカーが生成されうる。システムは、ロボット、性能値および状態値を検出するためのセンサーアレイ、環境内で物体を撮像するための知覚センサー、および本発明の方法を実行する電子制御ユニットを備える。【選択図】図１
2013193202.tif 000002
【特許請求の範囲】
【請求項１】
作業環境内でロボットタスクを実行するようにロボットを訓練するための方法であって、
前記ロボットをその構成空間を横切って前記ロボットタスクの複数の状態を通じて移動させ、それにより、前記ロボットに前記ロボットタスクをデモンストレーションするステップであって、前記構成空間は、前記ロボットに対する可能なすべての構成の集合である、ステップと、
前記ロボットの挙動のシーケンスを記述する運動スキーマを記録するステップと、
前記ロボットをその構成空間を横切って移動させている間に前記ロボットの性能値および状態値を記述する感覚データを記録するステップと、
前記環境内に配置されている物体の知覚的特徴を検出するステップと、
仮想直示マーカーを前記検出された知覚的特徴に割り当てるステップと、
前記割り当てられた仮想直示マーカーおよび前記記録された運動スキーマを使用して、別のロボットタスクの自動化された実行の際に前記ロボットをその後、制御するステップとを含む方法。
【請求項２】
前記ロボットをその構成空間を横切って移動させるステップは、ロボットアームおよび前記ロボットアームに取り付けられているロボットマニピュレーターのうちの少なくとも１つを移動させるステップを含む請求項１に記載の方法。
【請求項３】
前記マニピュレーターは、複数のロボットフィンガーを備え、前記ロボットをその構成空間を横切って移動させるステップは、前記ロボットフィンガーを移動させるステップを含む請求項２に記載の方法。
【請求項４】
前記ロボットをその構成空間を横切って移動させるステップは、ロボットアームおよび前記ロボットのマニピュレーターのうちの少なくとも１つを手動でバックドライブするステップを含む請求項１に記載の方法。
【請求項５】
前記ロボットは、入力デバイスと通信し、前記ロボットをその構成空間を横切って移動させるステップは、前記入力デバイスを介して前記移動を指令するステップを含む請求項１に記載の方法。
【請求項６】
前記入力デバイスは、ジョイスティックおよび三次元マウスのうちの１つである請求項１に記載の方法。
【請求項７】
感覚データを記録するステップは、前記タスクのデモンストレーション時に前記マニピュレーターによって把持される物体に前記マニピュレーターによって印加される力およびトルクを記録するステップを含む請求項１に記載の方法。
【請求項８】
前記環境内に配置されている物体の知覚的特徴を検出するステップは、カメラを使用して前記知覚的特徴を視覚的に検出するステップを含む請求項１に記載の方法。
【請求項９】
カメラを使用して前記知覚的特徴を視覚的に検出するステップは、前記物体の表面特徴を視覚的に検出するステップを含む請求項１に記載の方法。
【請求項１０】
前記カメラは、三次元ステレオカメラである請求項９に記載の方法。
【請求項１１】
個別の直示マーカーを組み合わせて、前記組み合わされた個別のマーカーの間で共通である知覚的特徴の記録を、前記個別のマーカーがマッチするのに必要な回転および平行移動オフセットとともに保持する一般化マーカーを生成するステップをさらに含む請求項１に記載の方法。
【請求項１２】
作業環境内でロボットタスクを実行するようにロボットを訓練するための方法であって、
前記ロボットのユーザー制御移動から前記ロボットのマニピュレーターの位置のデータシーケンスを取り込むステップであって、前記ユーザー制御移動は、前記ロボットをその構成空間を横切って移動させ、前記構成空間は、前記ロボットに対する可能なすべての構成の集合である、ステップと、
データセグメントを、ロボットスキルの実行時の前記ロボットのアクションを表す前記取り込まれたデータシーケンスから抽出するステップと、
前記ロボットの前記作業環境内で物体を検出するステップと、
仮想直示マーカーを前記検出された物体の少なくともいくつかに割り当てて、それにより、前記作業環境内の観察された物体の空間的方向を、前記物体に対する前記ロボットによって実行される移動に関連付けるステップと、
前記直示マーカーを組み合わせて一般化マーカーを生成するステップであって、前記一般化マーカーは、前記直示マーカー同士に共通の視覚的特徴の記録を、前記マーカーが互いにマッチするために必要な回転および平行移動オフセットとともに保持する、ステップと、
前記一般化マーカーおよび前記記録された運動スキーマを使用して、別のロボットタスクの自動化された実行の際に前記ロボットをその後、制御するステップとを含む方法。
【請求項１３】
前記ユーザー制御移動は、前記タスクを通じて前記ロボットのロボットアームを手動で誘導するステップを含む請求項１２に記載の方法。
【請求項１４】
マニピュレーターの位置のデータシーケンスを取り込むステップは、前記タスクを通じてアームが手動で誘導されるときに感覚情報を記録するステップを含む請求項１３に記載の方法。
【請求項１５】
既知の物体のモデルを使用して、類似の特徴配置構成を有する前記環境内で物体の方向を識別するステップをさらに含む請求項１２に記載の方法。
【請求項１６】
前記マーカーを検出された知覚的特徴に動的に割り当てるステップをさらに含む請求項１２に記載の方法。
【請求項１７】
アームおよび前記アームに接続されたマニピュレーターを有するロボットと、
前記ロボットの性能値および状態値を記述する感覚データを測定するセンサーアレイと、
前記環境内に配置されている物体の画像を収集する知覚センサーと、
前記ロボット、前記センサーアレイ、および前記知覚センサーと通信し、前記ロボットの挙動のシーケンスを記述する記録された運動スキーマを含む電子制御ユニット（ＥＣＵ）であって、
前記アームおよび前記マニピュレーターが、人間のオペレータによってロボットタスクの複数の状態を通り、前記ロボットの前記構成空間を横切って移動されたときに前記感覚データを記録し、
前記知覚センサーから前記収集された画像内の知覚的特徴を検出し、
仮想直示マーカーを前記検出された知覚的特徴に割り当て、
前記割り当てられた仮想直示マーカーおよび前記記録された運動スキーマを使用して、別のロボットタスクの自動化された実行の際に前記ロボットを制御するように構成されたＥＣＵと、を備えるシステム。
【請求項１８】
前記ＥＣＵは、
個別の直示マーカーを選択的に組み合わせて、前記組み合わされた個別のマーカーの間で共通である知覚的特徴の記録を、前記個別のマーカーがマッチするのに必要な回転および平行移動オフセットとともに保持する一般化マーカーを生成するようにさらに構成される請求項１７に記載のシステム。
【請求項１９】
前記ＥＣＵは、前記ロボットのオペレータによって制御される移動から前記マニピュレーターの位置のデータシーケンスを取り込むように構成される請求項１７に記載のシステム。
【請求項２０】
前記ＥＣＵと通信する入力デバイスをさらに備え、前記アームおよび前記マニピュレーターは、前記入力デバイスを使用して前記感覚データを記録している間に前記人間のオペレータによって移動される請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本開示は、人間援助型タスクデモンストレーション（human-assisted task demonstration）を使用してロボットを訓練するための方法およびシステムに関する。
【背景技術】
【０００２】
[0002]ロボットは、一連のロボットリンク機構を使用して物体を操作することができる電気機械デバイスである。ロボットリンク機構は、関節によって互いに接続され、関節のそれぞれは、関節モーターおよび／または別の好適なアクチュエータによって、独立または相互依存して駆動されうる。それぞれのロボット関節は、独立制御変数つまり自由度を表す。マニピュレーターとも称されるエンドエフェクターは、作業工具を把持することや一方のパーツを他方のパーツに対して積み重ねることなどの所与の作業タスクまたはスキルを直接実行するために使用される、特定のエンドリンクである。ロボットのさまざまな自由度による高精度の運動制御は、タスクレベルによって編成されうる。この運動制御は、物体レベルの制御、つまり、把持されている物体の挙動を制御する能力、エンドエフェクター制御、および関節レベル制御である。さまざまな制御レベルが集合的に、要求されるロボットの器用さおよび要求される作業タスク関係の機能性を達成するように連携する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0003]タスクシーケンスの実行中のロボットによってハンドリングされる物体の変更は、典型的には、関連する制御用ハードウェアの比較的費用のかかる再訓練を必要とする。これは、把持された物体の表面自体に変化がなくてもあてはまる傾向がある。同様に、エラーおよび／または動作剛性の緩和の結果、ロボットの周囲作業環境内の物体の位置決めに変化が生じた場合も、費用のかかる再訓練を必要とすることがある。しかし、既存のロボットマニピュレーター制御用ソフトウェアは、変化するフレキシビリティ要件を満たすためには容易に入れ替えることはできない。
【課題を解決するための手段】
【０００４】
[0004]本明細書では、人間援助型タスクデモンストレーション、およびロボットの作業環境の知覚的特徴に割り当てられた仮想直示マーカー（virtual deictic markers）を使用してロボットを訓練する方法およびシステムが開示される。従来のマニピュレーターは、典型的には、変動性が最小である高度に構造化された環境内で動作するように設計されており、多くの場合、特定の移動軌道を必要とする。これらの軌道は、それぞれの新しいロボットタスクに対して手作業でプログラムされなければならない。自律的軌道計画のためにセンサーフィードバックを組み込んだシステムであっても、ロボットタスクを識別し、要求された移動パラメータを調節し、要求されたマニピュレーター把持位置を設定し、危険個所内の軌道を調節するには、プログラマーによるかなりのやり取りを必要とする。本手法は、そのようなマニピュレーター、例えば２本指または複数指把持部に作業タスクを動的に割り当てるための特定の機構を提供することを意図している。
【０００５】
[0005]具体的には、本方法は、作業タスクのデモンストレーションを行うためにロボットの構成空間内でロボットを作動させるステップと、作動時のロボットの挙動の要求されたシーケンスを記述する運動スキーマを記録するステップとを含む。この方法は、構成空間を横切って作動している間にロボットの性能値および状態値を記述する感覚データを記録するステップと、その環境内に配置されている物体の知覚的特徴を検出するステップとをさらに含む。それに加えて、この方法は、仮想直示マーカーをこれらの検出された知覚的特徴、例えば、物体、配置、時刻、場所などに割り当てるステップを含み、これらのマーカーはロボットの自動化された挙動を誘導するために、後に使用される。割り当てられたマーカーおよび記録された運動スキーマは、別のロボットタスクの実行において、ロボットを後に制御するために使用される。
【０００６】
[0006]別の実施形態では、この方法は、ロボットのオペレータ制御移動からロボットのマニピュレーターの位置を変更するデータシーケンスを取り込むステップと、取り込まれたデータシーケンスからデータセグメントを抽出するステップとを含む。データセグメントは、所与のタスクの実行時のロボットのアクションを表す。この方法は、ロボットの作業環境内で物体を検出するステップと、仮想直示マーカーを検出された物体の少なくともいくつか、および／または時刻、場所、配置などの他の知覚的データに割り当てるステップとを含みうる。これは、環境内の観察された物体の空間的方向を、その物体に関係のあるロボットによって実行される移動に関連付ける。この後、マーカー同士が組み合わされ、一般化マーカーを生成する。一般化マーカーは、それらのマーカーをマッチさせるために、それらのマーカーに必要な回転オフセットおよび平行移動オフセットとともに、マーカー間に共通の視覚的特徴の記録を保持する。
【０００７】
[0007]本手法は、何らかの方法で人間によってデモンストレーションされる一連の学習例、ならびに関連付けられた基本となる動きつまり「タスクプリミティブ」を使用してロボットにロボット作業タスクを教示するものである。タスクプリミティブの例として、地点Ａから地点Ｂに動く、把持部を開く、把持部を閉じる、などが挙げられる。文脈依存アクション選択シーケンスは、動的環境内でプリミティブ間の動きを知覚的に誘導する。本手法は、ロボットの最小限度の訓練または再プログラミングにより新しく異なる作業タスクに素早く適用されうる。
【０００８】
[0008]上記のマーカーは、直接的な人間のデモンストレーションを通じてロボットによって学習される。例えば、２本指把持部による物体の単純な把持では、オペレータが把持部を物理的にハンドリングし、それを適切な位置に移動し、地点Ａで物体を把持するか、またはジョイスティックなどの入力デバイスを使用してロボットを同じ効果にバックドライブすることができる。次いで、オペレータは、ロボットアームおよび把持部を地点Ｂに移動し、把持部を開き、それにより、物体を地点Ｂのところに降ろす。
【０００９】
[0009]その間中、ロボットは、例えば、接近角度、離脱角度、位置、および物体の方向を記述する知覚的データを、例えば、１つまたは複数の３Ｄカメラ、関節角度センサーなどを使用して、記録する。ロボットは、把持部によって把持された物体に加えられる力またはトルク、関節角度、および潜在的に他の情報を記録する。ロボットは、把持部が取る正確な経路を実際に学習することなく、ソース物体が置かれた場所を正確に学習する。この情報は、後処理および実行時に、運動スキーマおよび記録されたマーカーから書き込まれる。
【００１０】
[0010]アームおよびアームに接続されたマニピュレーターと、ロボットの実行値およびロボットの状態値を記述する感覚データを測定するセンサーアレイと、作業環境内に配置されている物体の像を集める知覚センサーと、を有するロボットを備えるシステムも開示される。システムは、ロボット、センサーアレイ、および知覚センサーと通信する電子制御ユニット（ＥＣＵ）も備える。ＥＣＵは、ロボットの挙動のシーケンスを記述する記録された運動スキーマを含む。ＥＣＵは、上記の方法を実行するように構成される。
【００１１】
[0011]本発明の上記の特徴および利点ならびに他の特徴および利点は、添付図面と併せて考慮すれば、本発明を実行する最良の形態についての以下の詳細な説明から容易にわかる。
【図面の簡単な説明】
【００１２】
【図１】[0012]人間のデモンストレーションを介して学習されたロボットの動作環境の特徴に仮想直示マーカーを割り当てる電子制御ユニット（ＥＣＵ）、及びロボットの概略図である。
【図２】[0013]人間のデモンストレーションおよびマーカー割り当てを介して図１のロボットに教示するための方法を説明する流れ図である。
【図３】[0014]図２の方法の範囲内で使用されるようなスキル認識およびマーカー割り当てを記述する流れ図である。
【図４】[0015]図１に示されたＥＣＵ内で使用されるさまざまなロジック要素のブロック図である。
【図５】[0016]図２の方法の一部として使用されるロボット把持認識を記述する流れ図である。
【図６】[0017]図２の方法とともに使用されるような費用推定を記述する流れ図である。
【発明を実施するための形態】
【００１３】
[0018]類似の参照番号は、全体にわたって同じもしくは類似のコンポーネントを参照している図面を参照すると、例示的なロボット１０が図１に示されている。ロボット１０は、表面１１に対して位置決めされた基部１４を含むことができる。ロボット１０は、１つまたは複数のアームセグメント１８を有するアーム１６を含むことができる。エンドエフェクター即ちマニピュレーター２０は、基部１４に対してアーム１６の最遠位セグメント１８の端部に配置される。マニピュレーター２０は、例示的な一実施形態において、物体２３を把持するために複数の指２７を有する把持部とすることができる。
【００１４】
[0019]ロボット関節１７は、さまざまなアームセグメント１８を接続することができる。それぞれのロボット関節１７は、作業タスクの実行時にマニピュレーター２０を所望の位置に移動するようにモーター１９などの関節アクチュエータによって駆動されうる。ロボット性能値を記述する生センサーデータ（矢印１５）は、電子制御ユニット（ＥＣＵ）２２に中継され、使用されることで、ロボット１０のアクションを制御する。生センサーデータ（矢印１５）は、ロボット１０の性能値およびロボット１０の状態値を記述する。例示的な生センサーデータ（矢印１５）は、マニピュレーター２０のトルク、力、速度、および加速度を含むものとしてよい。
【００１５】
[0020]このようなデータを集めるために、センサーアレイ３３がロボット１０に接続されうるが、これは、簡単にするために、基部１４に接続されているように図１に示されている。センサーアレイ３３は、トランスデューサ、トルクセンサー、加速度計、位置センサー、および同様のものを含むことができる。センサーアレイ３３は、当技術分野でよく理解されているように、他の直接的に測定された値からいくつかの値を計算するソフトセンサーを含むことができる。それに加えて、知覚センサー２５は、ロボット１０に対して位置決めされ、以下で説明されるようにその動作環境内でロボット１０の挙動をフィルム、ビデオテープ、画像、および／または他の何らかの形で記録するように構成されうる。
【００１６】
[0021]ＥＣＵ２２は、ユーザーインターフェース２４を介してアクセスされうる。ＥＣＵ２２は、図４を参照して以下で説明されているようなロジック要素４０、および図２を参照して以下で説明されているような本発明の方法１００を実行するのに適した必要なプロセス命令を含むものとしてよい。ＥＣＵ２２は、１つまたは複数のデジタルコンピュータまたはホストマシンとして具現化することができ、それぞれ１つまたは複数のプロセッサ、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的プログラム可能リードオンリーメモリ（ＥＰＲＯＭ）、光ドライブ、磁気ドライブなど、高速クロック、アナログ／デジタル（Ａ／Ｄ）変換回路、デジタル／アナログ（Ｄ／Ａ）変換回路、任意の必要な入出力（Ｉ／Ｏ）回路、Ｉ／Ｏデバイス、および通信インターフェース、さらには、信号処理およびバッファ電子回路を有する。入力デバイス１３は、ユーザーインターフェース２４から分離されていてもよいし、ユーザーインターフェース２４に組み込まれていてもよい。入力デバイス１３は、３Ｄマウス、ジョイスティック、または以下で説明されているような人間によってデモンストレーションされるタスクを通じてロボット１０を移動もしくはバックドライブするのに適した他の制御デバイスとすることができる。
【００１７】
[0022]ＥＣＵ２２と連携して使用される任意のコンピュータ可読メモリは、不揮発性もしくは揮発性の非一時的／有形のメモリを含みうる。不揮発性媒体としては、例えば、光ディスク、磁気ディスク、および他の永続的メモリが挙げられる。例示的な揮発性媒体は、主記憶を構成してもよいダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含みうる。他の例として、フロッピー（登録商標）、フレキシブルディスク、もしくはハードディスク、磁気テープもしくは他の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、および／または他の光媒体、さらにはフラッシュメモリなどの他の可能なメモリデバイスが挙げられる。
【００１８】
[0023]図１のロボット１０は、人間援助型デモンストレーションおよび学習によって特定のタスクシーケンスを実行するように教示される。ＥＣＵ２２はこれを実行するために、ロボット１０が動作する作業環境、つまり、ロボット１０の周囲の物理的環境の知覚的特徴を示す仮想直示マーカーを記録する。マーカーは、環境内の物体、例えば、物体２３または図示されているような別の物体２１、配置、時刻、場所などに関係するものとしてよい。ＥＣＵ２２は、メモリ内に運動スキーマ２８も記録するが、運動スキーマ２８はロボット１０の要求されるアクションまたはスキルを記述するものである。これらの運動スキーマ２８は、以下で説明されているように知覚センサー２５によって知覚されるようなロボット１０の実際の環境を考慮して、作業タスクの自動化された実行においてマーカーによって誘導される。
【００１９】
[0024]ロボット１０は、物体、例えば、例示的な物体２３を把持することを学習するときに、要求される把持位置および接近方向を学習する。その情報は、実行時にＥＣＵ２２によって、ロボット１０が動作する環境内で検出された知覚的特徴に対して割り当てられたマーカーにアタッチされる。以下で詳細に説明されるように、マニピュレーター２０は、最初に、人間のデモンストレーションを介して、要求されたマーカーを学習及び記録し、次いで、学習されたマーカーを検出された知覚的特徴に動的に割り当てる。これは、次いで、マルチステップのアセンブリプロセスを依然として完了しながら、変化する環境に高速適応することを可能にする。
学習の理論
[0025]任意の新しいアセンブリタスクの繰り返しは、３つの異なる部分に分けることができる。これらは、物体２３を把持し、把持した物体２３を別の物体２１の上に積み重ねるなどの人間のオペレータによるタスクのデモンストレーション、ロボットスキルおよび関連する機能の集合、ならびに要求されたマーカーを抽出し、例えば３Ｄステレオカメラ、高分解能カメラ、および／または有線もしくはワイヤレス通信チャネル２６を介してＥＣＵ２２と通信している他のセンサーである知覚センサー２５によって検出された任意の他の物体に、それらのマーカーを実行時に割り当てるための支持フレームワークの３つである。
【００２０】
[0026]本発明の手法は、人間によるデモンストレーションからはじめて、人間のオペレータが物理的に図１のロボット１０を構成空間の中を通して、または横断させて移動させる、例えば、アーム１６および／またはマニピュレーター２０を要求されたタスクのすべてのステップを通して移動させることを企図する。これは、入力デバイス１３を使用してロボット１０を移動すること、ロボット１０をバックドライブすることなどを伴いうる。把持して持ち上げるという単純なタスクでは、つまり、ロボット１０がマニピュレーター２０を使用して図示されているように物体２３を把持する場合、オペレータは、最初に、マニピュレーター２０を物体２３に対して適所に移動し、次いで、例えば、指２７を十分な力で圧迫して好適な把持する姿勢を確立することによって、マニピュレーター２０を使用して物体２３を正しく握る。次いで、オペレータは、アーム１６およびマニピュレーター２０を移動させ、それにより、物体２３を持ち上げて移動させる。当技術分野で理解されているように、「構成」という用語は、ロボット１０の姿勢を記述するものであるが、「構成空間」という用語は、ロボット１０に対する可能なすべての構成の集合を指す。構成空間は、ロボット１０の複雑度に応じて単純な平面から特別な運動群までさまざまである。ロボット１０が、Ｎ個の回転関節を有し、閉ループがない固定されたマニピュレーターである場合、構成空間（Ｃ）は、そのロボットに対してＮ次元である。
【００２１】
[0027]図１のロボット１０は、単純に人間のオペレータのタスクの実行を観察することによって、タスクシーケンスおよびいくつかの関係する知覚データを潜在的に識別することが可能であるけれども、新しい物体のハンドリングおよび新しいアセンブリの作成の最も難しい部分の１つは、マニピュレーター２０をどこに置くか、または工具中心点（ＴＣＰ）を正しい場所にどのように置くかを決定することである。ロボット１０がＥＣＵ２２を介して自身の生センサーデータ（矢印１５）を記録している間に、それぞれのタスクを通じてアーム１６およびマニピュレーター２０を人間のオペレータに手動で移動させることによって、それぞれのデモンストレーションは、ロボット１０がそれらの困難な問題を後処理で、つまり、人間援助型学習の直後のステップで解決することができる経験（Ｔ）のデータストリームを提供する。
【００２２】
[0028]ロボットスキルに関して、デモンストレーションが行われた作業タスクの挙動模倣は、物体２３を把持すること、物体２３を落とすことなどの知られているロボットスキルを認識し、繰り返すことに基づく。ＥＣＵ２２によって記録される運動スキーマ２８として具現化されうる、ロボット１０のレパートリーのそれぞれのスキルは、認識関数、予測関数、費用推定関数、および運動スキーマ２８の４つの一般関数によって定義されうる。模倣のためには、それぞれのスキルの由来は重要でない。学習されるか、または事前にプログラムされることもありうる。上記の４つの一般関数は、以下のように表されうる。
【００２３】
【数１】
2013193202.tif 000003
【００２４】
[0029]認識関数、つまり、ｒｅｃｏｇｎｉｚｅｒｉ（Ｔ）は、１）記録されたデータストリームＴ内における、スキルが完了した最も早い時期のステップｔｓ、２）タスク特有のスキルｉの実行に必要な情報を含む浮動マーカーＭａ、および３）ロボット１０によって把持され、別の物体、例えば、物体２１の上に置かれうる、操作された物体、例えば、物体２３に対する認識された終了状態Ｅを識別する。浮動マーカーＭａ内に含まれる情報は、それぞれのスキルに特有のものであるが、操作物体タイプ、接近ベクトル、把持位置、離脱ベクトルもしくは出口ベクトルなどを含みうる。一般に、それぞれのマーカーＭａは、特定の操作ターゲットを除くタスクを繰り返すために、図１の運動スキーマ２８に必要な知識のすべてを含む。そのターゲットは、マーカー内のデータを使用して、関連する知覚物体に実行時に割り当てられる。
【００２５】
[0030]予測関数、つまり、ｐｒｅｄｉｃｔｏｒ（Ｍａ，Ｐｂ，Ｗｔ）は、マーカー（Ｍａ）を特定の視覚的に検出される物体に割り当てた結果として予想最終状態を識別する。世界の現在状態Ｗｔは、
【００２６】
【数２】
2013193202.tif 000004
【００２７】
として定義することができ、
ただし式中、Ｐ（ｔ）は、時刻ステップｔで視覚的に識別され、場所を特定されるすべての物体の集合であり、Ｊ（ｔ）は、ロボット１０の最近の関節角度構成であり、ｓｅｎｓｏｒｓ（ｔ）は、ロボット１０に関連して使用される他のすべての利用可能なセンサーによって返されるデータの集合である。次いで、予測関数がＷｔ＋１を識別する。これにより、ＥＣＵ２２によって実行される実行時マーカー割り当てが、将来別のマーカー割り当てに至らないマーカー割り当てにペナルティを課すことができる。
【００２８】
[0031]次いで、費用推定関数、つまり、ｅｓｔｉｍａｔｏｒｉ（Ｍａ，Ｅ，Ｗｔ）は、マーカー（Ｍａ）を割り当てる最もよく知覚された物体を識別するための実行時機構である。この関数は、Ｗｔおよびすべての認識された最終状態Ｅの集合が与えられた場合に、抽出されたマーカーＭａを集合Ｐ内のすべての物体に割り当てるための費用を返す。その知識が利用可能である場合、費用推定関数は、作業環境内のマニピュレーターの位置および／または障害物配置が与えられた場合に、位置に到達するのが困難であるか、または到達することが不可能であることに対するペナルティを含むことができる。
【００２９】
[0032]最後に、図１の直示運動スキーマ２８、つまり、ｍｏｔｏｒ＿ｓｃｈｅｍａｉ（Ｍａ，Ｐｂ，Ｗｔ）は、抽出されたマーカーＭａ、割り当てられた物体Ｐｂ、および世界の現在状態Ｗｔを使用して、ロボット１０に送るべき次の関節角度Ｊ（ｔ＋１）を決定する。一般に、この最終の関数は、ＥＣＵ２２が作業環境または割り当て物体におけるいかなる変化にも素早く応答するように比較的高速更新される反応性コントローラであると仮定する。マーカー（Ｍａ）が実行時に再割り当てされるときに、ロボット移動を変更するためにロボット１０の現在の関節角度を推定する何らかの方法が存在する場合には、ＥＣＵ２２の実際の構成は重要でない。
サポートされている学習
[0033]図２を参照すると、本発明の方法１００は、拾って置く単純な操作、例えば、図１の物体２３が物体２１の上に積み上げられるタスクを学習することに関して説明されている。方法１００は、ステップ１０２から始まり、そこで、人間のオペレータがソース物体、この例では物体２３と、デスティネーション物体、この場合物体２１を選択する。
【００３０】
[0034]ステップ１０４で、物体２１の位置および方向が、図１の知覚センサー２５を介して記録される。ステップ１０４は、１つまたは複数の３Ｄカメラまたは他のデバイスを起動して位置および方向をリアルタイムで記録することを含みうる。当技術分野で理解されるように、画像処理ソフトウェアは、特徴認識を行うために使用されうる。
【００３１】
[0035]ステップ１０６で、オペレータは、次いで、その構成空間（Ｃ）上でロボットを物理的に移動する。例えば、アーム１６および／またはマニピュレーター２０は、直接接触と加えられる力とによって手動で移動されることも、図１の入力デバイス１３を介して間接的に移動されることも、これら２つを組み合わせて使用して移動されることもある。これは、アーム１６およびマニピュレーター２０を所望の位置に移動する。
【００３２】
[0036]ステップ１０８で、図１の生センサーデータ（矢印１５）がＥＣＵ２２に送られ、マニピュレーター２０に加えられる力およびトルクに限定されないが、これらを恐らく含めて、性能値および状態値情報を供給する。知覚センサー２５は、接近角度および出口角度、つまり、マニピュレーター２０がそれぞれタスクの把持および解放段階において物体２３に接近し、物体２３から離れる角度を決定するためにも使用されうる。ステップ１０８は、場合によっては知覚センサー２５も使用して、ロボット１０のオペレータ制御移動からマニピュレーター２０の位置のデータシーケンスを取り込むことを伴いうる。
【００３３】
[0037]ステップ１１０で、ＥＣＵ２２は、後処理を実行してステップ１０８で検出された知覚的特徴を記述するマーカーを作業環境内の物体に割り当てる。上で指摘されているように、マーカーは、仮想的であり、したがって、知覚された特徴を例えば物体の特徴、配置、場所、開始／停止時間、および同様のものに関係付けるためにＥＣＵ２２を介して記録される。
【００３４】
[0038]ステップ１１２で、記録された運動スキーマ２８を誘導するために、ＥＣＵ２２は、ステップ１１０のマーカーを使用して、その後のタスクにおいてロボット１０を制御する。そこで、ロボット１０は、記録されたマーカーおよびスキーマを使用して、学習した作戦行動を繰り返すことができ、このスキーマは「物体を拾い上げる」、「物体を降ろす」、「地点Ａから地点Ｂに移動する」などのタスクプリミティブを定義する。
【００３５】
[0039]ステップ１１２は、ロボット１０が動作する環境の最新の知識が与えられた場合に、費用関数および把持認識分析を使用して、マーカーを介して運動スキーマ２８を誘導する最良の方法を最良の形で決定することを伴う。したがって、ステップ１１２は、図３〜６を参照して以下で説明されているように異なるいくつかのサブタスクに分割されうる。
【００３６】
[0040]現在の模倣学習問題は、ロボット１０の作業環境内における、ロボットスキルの認識、および検出された物体へのマーカーのリアルタイムの割り当てをサポートすることに焦点を当てている。この問題は、２つの異なる領域、スキル認識とマーカー割り当てに分けられる。次に、これらのそれぞれは、図３を参照して説明される。
スキル認識
[0041]認識関数Ｒを有する、既知のスキルの集合が与えられた場合、Ｒはスキルが完了した最も早い時期のステップを返し、方法１００の一部として使用可能である以下の反復法２００が訓練データストリームＴを解析して、ロボットスキルを識別する。開始した後（＊）、ステップ２０２は、図１のＥＣＵ２２を使用してすべての認識関数Ｒを実行し、特定の運動スキーマ２８、つまり、最初に行われるスキルｉと、認識されたスキルが終了した時点ｔｓａと、を見つけることを含む。例えば、ロボット１０は、立方体の形態の物体に対する３つの異なる把持タイプを知ることができ、したがって、３つの把持は３つのスキーマまたはスキルを表す。
【００３７】
[0042]ステップ２０４で、認識器Ｒｉによって作成される学習マーカーＭａは、有効なマーカーｍの集合に保存される。例えば、ステップ２０２の例における３つの把持タイプに対応する３つの有効なマーカーがありうる。
【００３８】
[0043]ステップ２０６で、ＥＣＵ２２は、データストリームＴからｔｓａを通じて訓練データのすべてを取り出す。
[0044]ステップ２０８で、ＥＣＵ２２は、追加のアクションがデータストリームＴで検出されたかどうかを判定する。追加のアクションが検出された場合、方法２００は、ステップ２０２を繰り返す。そうでない場合、方法２００は、終了する（＊＊）。
【００３９】
[0045]本明細書において例示的な方法２００として具現化されている、反復プロセスの最終結果は、単一の訓練セッションＴから学習されたマーカーｍの集合である。同じデモンストレーションをカバーする複数の訓練セッションが存在する場合、方法２００は、すべての訓練セッションについて繰り返され、これにより毎回そのマーカーｍの集合を成長させることが可能である。タスクシーケンスの一般化された知識は、以下で説明されるように複数の例から推論されうる。
マーカー割り当て
[0046]すべてのマーカーが抽出され、図１のロボット１０が、特定のタスクを繰り返すように指示された後、上述のマーカー割り当てステップ２０４は、実行時に行われる。このステップでは、通常の更新ループで作業環境内のすべての検出された物体のタイプ、位置、および方向を返す知覚関数を取る。車両部品のＣＡＤ図面など、知られている物体モデルが与えられた場合、２台以上のカメラ、例えば、図１の知覚センサー２５によるモデルベースの物体認識および位置識別が実現可能であり、ノイズの存在にも強い。そのような物体に関係する情報が利用可能である場合、特定の物体へのマーカーの割り当ては、適切なスキルに対する知覚割り当て関数を使用して、最低コストｄａ，ｋで、マーカーＭａと物体Ｐｋとの組み合わせを見つける探索である。
【００４０】
[0047]ステップ２０４で、それぞれのマーカーＭａのために、図１のＥＣＵ２２は、最小完了費用を有する知覚物体Ｐｋを見つける。将来のマーカー割り当てに対する費用は、例えば、
【００４１】
【数３】
2013193202.tif 000005
【００４２】
のようにして、Ｗｔ＋１を予測することによって調節されうる。
次いで、ＥＣＵ２２は、最低の全費用を有する組み合わせ｛Ｍａ，Ｐｋ｝を識別し、発振を防ぐためのヒステリシス値として前の時間ステップで使用された組み合わせに小さな負の値を加える。次いで、ＥＣＵ２２は、メモリ内に記録されうるマーカーＭａに関連付けられている直示運動スキーマＳｉによる実行のために、識別されたマーカー／割り当てられた物体位置を挙動ループに送る。実行費用が最低であるマーカーが、図４の挙動制御モジュールに受け渡されうる。次に、図４のロジック要素４０についてさらに詳しく説明する。
実装
[0048]図４は、図１のＥＣＵ２２の例示的なロジック要素４０を示している。本手法は、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｒｏｂｏｔｉｃｓ  Ｄｅｖｅｌｏｐｅｒ  Ｓｏｆｔｗａｒｅ（ＭＲＤＳ）上に実装されうる。図４に概略が示されているロジック要素４０は、模倣学習を特に指向するものであり、そのため、ＥＣＵ２２の他の無関係のハードウェアおよびソフトウェア要素は簡単のため、またわかりやすくするため省かれている。
【００４３】
[0049]図１のＥＣＵ２２の知覚は、複数の能力の混合であり、これらの能力はそれぞれ、能動制御のために様々なロボットセンサからのリアルタイムフィードバックを使用し、シミュレートされたカメラからの画像を使用し、及びＥＣＵ２２から直接取り出された物体位置を使用する。以下の説明は、単一のロボットスキル、つまり、単純な把持に関係する。一般に、把持スキルは、ロボットスキルを実装するための良好なテンプレートを構成するが、それは、把持からの解放は類似のタスクであり、複合アクションなどの他のスキルは把持と解放の拡張として構成されうるからである。
【００４４】
[0050]一レベルにおいて、ロジック要素４０は、図１のロボット１０に対するさまざまなハードウェアドライバ５０を含む。例示的なハードウェアドライバ５０としては、アームドライバ５２、マニピュレーター／把持部ドライバ５４、３Ｄ運動制御ドライバ５６、例えば、図１に示されている入力デバイス１３の３Ｄマウス、ジョイスティックなどのためのドライバ、および要求される任意のシミュレーションドライバ５８が挙げられる。ドライバ５０は、図１に示されているロボット１０の要求されるタスクを制御する多数の制御モジュールと通信する。これらの制御モジュールは、図１の知覚センサー２５内に備えられた任意のカメラを場合によっては使用して、データ収集、特徴抽出、および同期処理などのタスクを行う物体知覚モジュール４６を備えることができる。追跡モジュール４７は、タスクシーケンスの実行時に作業エリア内で移動するときに、例えば図１の物体２３の物体追跡タスクを実行することができる。追跡モジュール４７は、学習によって指令されるとおりに知覚データから物体および／または特徴を探索し、抽出する。挙動制御モジュール４８は、障害物を回避しながらロボット１０をターゲット位置またはゴールに移動し、またマニピュレーター２０とインターフェースもする。
【００４５】
[0051]これらの制御モジュール４６、４７、および４８のそれぞれは、最上位レベルの学習モジュール４１と通信する。学習モジュール４１は、訓練中に知覚データをデータベース４４内に記録し、将来、記録された知覚データを使用して、マーカー割り当ておよびタスク割り当てを通じて知覚的注意および挙動制御を指令する。学習モジュール４１は、受動サービスモジュール４２および能動サービスモジュール４３を備えることができる。受動サービスモジュール４２は、タスク学習および一般化、例えば、人間のオペレータが指令する開始位置および停止位置、接近角度および離脱角度などを観察するコアステップを処理することができる。能動サービスモジュール４３は、訓練の計画、エラー検出、マーカー割り当て、および同様のものに使用されうる。ユーザーインターフェース２４は、図４の例示的な実施形態における学習モジュール４１および挙動制御モジュール４８へのアクセスポイントを提供する。
把持認識
[0052]図５を参照すると、例示的な方法３００は、その後の自動化されたタスクの実行時に、例えば、図３のステップ１１２を実行するときに、把持認識に必要なステップを例示するように示されている。
【００４６】
[0053]ステップ３０２から始めて、訓練セッションがＥＣＵ２２のメモリ内にロードされる。
[0054]次いで、ステップ３０４で、ロードされたセッションに対するすべての知られている運動スキーマ／スキルのために、上記で説明されているように関連付けられている認識関数が、図１のＥＣＵ２２によって実行される。
【００４７】
[0055]次いで、ステップ３０６で、最も早い時期に完了した認識されたスキルに関連付けられているマーカーが、例えば、図４のデータベース４４に保存される。例示的な認識実装は、ここでは、単純な２本指把持スキルについて説明されている。基本的な把持スキルに対する認識関数の実装は、単純であるが、それは、ロボット１０が開いた把持部から閉じた把持部に遷移するときに特定の検出可能な時点があるからである。マニピュレーター２０からのフィードバックが利用可能である場合、マニピュレーター２０内の物体の検出された存在が認識器内に組み込まれうる。この遷移がデータストリームＴ内で行われる時間ステップは、把持点ｔｓｇｒａｓｐとして表される。この時間＋一定オフセットが図４の学習モジュール４１に返され、認識されたスキルの検出の完了を示す。
【００４８】
[0056]認識関数は、実行時に知覚物体に割り当てられるマーカーＭａも返す。このマーカーは、物体を把持する費用を予測する費用推定関数、およびマーカーが割り当てられる物体に関してデモンストレーションされた把持を複製する一般運動スキーマに対する十分な情報を含むべきである。把持スキルについて、人間によるデモンストレーションから抽出される固有情報は、物体タイプ、物体に関するロボット１０の最終位置、つまり、把持位置、および把持位置に接近する物体に関する方向である。
【００４９】
[0057]ステップ３０８は、把持位置を識別することを伴う。この位置は、データストリームＴ内の地点が、物体、例えば図１の物体２３をロボット１０が把持し始めるところであると知られているので、識別するのに最も単純なものである。把持位置を識別することは、時間ステップｔｓｇｒａｓｐで記録された関節角度を抽出することによって、及びＤｅｎａｖｉｔ−Ｈａｒｔｅｎｂｅｒｇモデルなどの順運動学モデルを適用することによって、ロボットエンドエフェクター、つまり、マニピュレーター２０の、グローバル位置Ｘｒｏｂｏｔおよびベースに関する方向マトリックスＲｒｏｂｏｔを識別することを伴うものとしてよい。物体２３、したがって物体タイプＯは、閉じられたマニピュレーター２０に最も近い時間ステップｔｓｇｒａｓｐにおいて記録された位置の物体を選択することによって識別される。利用可能であれば、把持された物体を識別する視覚的フィードバックを、後にデータストリーム内で抽出し、エラーの確率を下げることが可能である。
【００５０】
[0058]図５のステップ３１０で、図１のＥＣＵ２２は、割り当てられた直示マーカー位置が与えられた場合に、移動ターゲットの識別のため、移動パラメータを物体に関する参照フレームに変換する：
【００５１】
【数４】
2013193202.tif 000006
【００５２】
把持点に接近する方向を識別することは、Ｔにおいて「接近」がどのように始まるかがわからないため、より困難である。接近方向を知ることは、マニピュレーター２０が適所に移動するときに、取り付けられた工具で物体をひっくり返すことを防ぐために重要である。接近経路のためにこの開始点を識別するための１つのオプションは、記録されたデータストリームにおいてロボットが所望の把持位置に到達するために最小距離を進む必要がまだあるときに、この記録されたデータストリームにおいて、より早い時期の時間ステップを見つけることである：
【００５３】
【数５】
2013193202.tif 000007
【００５４】
知覚システムとともに使用される既知の物体モデルが与えられた場合、可変サイズを考慮して、把持される物体Ｄのサイズを三次元に組み込むことによってこの単純な最小距離モデルを改善することができる。
【００５５】
【数６】
2013193202.tif 000008
【００５６】
これは、把持点を囲む回転境界ボックスを返し、ターゲット物体と衝突するのを回避するためにこの把持点を超えてロボットエンドエフェクターは移動しなければならない。ベクトルｋは、定数オフセットであり、典型的には、すべての次元で同じ値をとり、把持部サイズまたは操縦室などの追加のエラーを許容する。
【００５７】
[0059]接近方向を識別することに関するこの方法の問題は、人間のデモンストレータがターゲットに到達するために直線上を進行すると仮定する点である。これは多くの場合にあてはまるが、常にそうとは限らない。エキスパートユーザーであっても、時折マニピュレーター２０の位置について間違った判断が下された場合には再調節しなければならず、ときには後退して、ターゲットに再び接近する必要がある。直線接近を計算する際の任意の距離閾値ではこれらの補正を無視し、把持点までの安全な接近ベクトルを正しく捕捉することができない。このような理由から、境界ボックスの外側にある第１の地点までの現在の速度によって重み付けされたフィルターが使用されうる。この接近は、任意のサイズの物体をひっくり返す可能性が低くなりうる。
【００５８】
【数７】
2013193202.tif 000009
【００５９】
ステップ３１０で接近経路を識別することは、接近経路を、物体に関係する参照フレームに変換し、任意の位置において割り当てられた直示マーカーとの併用を簡素化することを含む。
【００６０】
【数８】
2013193202.tif 000010
【００６１】
物体に関係するエンドエフェクター位置（ｍｔａｒｇｅｔ）、回転（ｍｔａｒｇｅｔ＿ｒｏｔａｔｉｏｎ）、および接近方向（ｍａｐｐｒｏａｃｈ）は、生成された直示マーカー内に、リアルタイムでマーカー割り当ておよび運動スキーマ関数によって使用される把持物体タイプとともに格納される。 
把持費用の推定
[0060]訓練データから抽出されたマーカーの集合が与えられた場合、図４の学習モジュール４１の次の重要な態様は、マーカーを現実の物体に動的に割り当て、これにより、作業環境の現在状態に応答して、実行のためのスキルを反応的に選択することである。この試みをサポートするために、図４の物体知覚モジュール４６は、更新された世界状態Ｗｔを定期的な更新ループ上の学習に供給することができ、そこでは、すべての知覚データが分析され、これにより既知の物体タイプおよびその位置を抽出し、さらには最新のロボット構成（つまり、関節角度およびセンサー情報）を示すことができる。次いで、Ｗｔを使用して、図４の学習モジュール４１は、それぞれのマーカーに対する適切な費用推定関数を呼び出すことによって、可能なすべてのマーカーの費用／検出された物体割り当ての費用を識別し、総費用が最低である割り当てを選択する。最低総費用マーカーは、図４のトラッカーモジュール４７および挙動制御モジュール４８に受け渡される。
【００６２】
[0061]費用推定関数の実装の一例は、把持スキル推定器の形態で備えられる。費用推定関数又は入力信号として受け取られる図１のＥＣＵ２２の値は、１）上述の認識関数によって生成される把持マーカー、２）２つの物体、例えば、図１の物体２１および２３の間の所望の位置および所望の回転に関するオフセットを指定する有効な最終状態の集合、３）ロボット１０の現在の関節角度構成およびこの時間ステップで視覚的に認識され、場所を特定されたすべての物体の集合を含む、世界の現在状態を含む。把持スキル推定関数のゴールは、指定された物体を拾い上げる費用を定量化することである。一般に、この費用推定プロセスは、既知の物体を把持するために必要な距離の変化を識別し、到達不可能なターゲット地点または物体に到達することが困難な地点に対してペナルティを割り当てる。
【００６３】
[0062]図６を参照すると、図２の方法１００の実行時に使用される費用推定関数が、例示的な方法４００を介して示されている。ステップ４０２から始めて、ＥＣＵ２２は、間違ったタイプの物体をフィルターで除去し、提供されるマーカーで使用される物体タイプから、異なるタイプである物体に無限大の費用を割り当てることができる。
【００６４】
[0063]ステップ４０４は、既に有効な最終状態にある物体をフィルターで除去すること、および作業環境内にすでに正しく配置されている物体に無限大の費用を割り当てることを含みうる。
【００６５】
[0064]ステップ４０６は、把持すべきそれぞれの残りの物体について、グローバル座標内における必要な把持地点を識別することを含むことができる：
【００６６】
【数９】
2013193202.tif 000011
【００６７】
ただし式中、ｍｔａｒｇｅｔ＿ｒｏｔａｔｉｏｎ、ｍｔａｒｇｅｔ、およびｍａｐｐｒｏａｃｈは、入力マーカーＭから取られ、ＲｇｒａｓｐおよびＸｇｒａｓｐは、その物体に対する把持位置及びターゲット回転行列である。Ｘａｐｐｒｏａｃｈは、ロボットエンドエフェクターがそれに沿ってターゲット物体をひっくり返すのを回避するように把持位置への接近を試みるべきである直線の終点である。
【００６８】
[0065]ステップ４０８で、ＥＣＵ２２は、ロボット１０の逆運動学モデルを使用して、ＸｇｒａｓｐおよびＸａｐｐｒｏａｃｈを達成するために必要な関節１つ当たりの変化が最小である関節角度の集合を識別することができる。ペナルティを含まない、マーカーＭａを物体Ｐｂに割り当てる費用ｄａ，ｂは、現在のエンドエフェクター位置からターゲット位置Ｘｇｒａｓｐまでのユークリッド距離である。
【００６９】
[0066]費用推定関数の選択は、任意である。関節角度の変化は、ユークリッド距離の代わりに上で説明されているが、この手法では、すべてのターゲット物体に到達する際における潜在的な問題を示している。いくつかの物体は、その物体の把持を試みるためには反応性運動スキーマに対して実際に十分に近いけれども、実際のターゲット地点は、ロボット１０の逆運動学に従って到達範囲からちょうど外れている可能性があり、その結果、不正な無限大の値が生じうる。したがって、別の解決策は、到達範囲から外れると確信される把持に対して有限のペナルティを割り当て、他の把持しやすい物体がすでに拾い上げられ、適切な最終状態に置かれている場合に、ロボット１０を制御する反応性運動スキーマにそれらの把持を試みさせることである。
【００７０】
[0067]図６を引き続き参照すると、ステップ４１０は、到達不可能な関節角度構成に対してペナルティを割り当てることを含みうる。逆運動学関数が把持地点または接近地点が到達不可能であることを示唆している場合には、較正されたペナルティをｄａ，ｂに割り当てることができる。
【００７１】
[0068]ステップ４１２で、ＥＣＵ２２は、接近ベクトルの経路内に障害物があることにより到達不可能である物体に対して、ペナルティを割り当てることができる。このような障害物は、図４に示されている障害物知覚モジュール４６を介して検出されるなど、さまざまな手段によって検出されうる。
視覚的特徴の組み込み
[0069]上記の説明では、すべての物体Ｐは、外部視覚的認識システムによって認識され、場所を特定される独立した物理的物体と仮定している。このシステムは、そのような物体を伴う操作タスクの人間によるデモンストレーションから、それらの物体が見える場合に、学習することを可能にする。しかし、このような知覚システムは、部分的に組み立てられた物体を操作する場合、または何らかの回転対称を持つ物体を取り扱う場合に問題を引き起こす可能性がある。
【００７２】
[0070]前者の場合、図１のロボット１０は、何を操作しているかを正しく識別することができない場合があるが、それは、ロボット１０が部分的組立品の完全なモデルを有していないからである。例えば、ボルトが挿入された状態のドアは、そのドア／ボルトの組み合わせに利用可能な知覚モデルがない場合にはそのようなボルトなしのドアと区別することは不可能である。後者の場合、視覚的に対称的である、つまり、視覚認識システムからの結果として任意の方向に導くことを生じるか、または機能的に対称的である、つまり、視覚的には一意に方向付けられているが、組立品に影響を及ぼすことなく操作中に回転可能である、何らかの回転対称を持つ物体は、ロボット１０が、有効なマーカーに不正にペナルティを課し、またはそれらを到達不可能であるとして破棄し、到達可能な物体を作業空間内に残すことを引き起こす可能性がある。
【００７３】
[0071]この問題に対する答えは２つある。１つは、視覚空間をよりよく表すようにより視覚的な特徴が必要であることである。人々は、コーナー、色、またはエッジなどの一般的特徴を使用してそのような多くの問題を区別することができるので、ロボットは、物体認識能力に加えてそれらの特徴を必要とする。もう１つは、例と例との間で変化しない特徴であって、かつそれらの例を既存の知覚モデルに加える特徴を識別するために複数の試行を一般化する能力を、ロボット１０が必要とすることである。このようにして、ロボット１０は、ベースオブジェクトモデルの他にどのような視覚的特徴が組み立てタスクにとって重要であるかを学習する。
マーカーの一般化
[0072]本発明の手法は、ロボット作業空間の上に設けられた、シミュレートされた３Ｄ視覚映像化システムを使用して実装されうる。これはカラー画像と範囲情報をもたらし、これらの情報から、コーナーおよびカラー斑点（blob）が画像内で見つけられ、３Ｄで場所特定されうる。検出された特徴の高さは、初期設定で、視覚中心から１ピクセル以内の作業空間からの最も高い地点である。訓練中に、タスクデモンストレーションが完了した後に、これらの一般的特徴は、適切な認識器に受け渡されるデータストリームＴに加えられる。
スキル認識
[0073]データストリーム内に新しい視覚的特徴が存在することを許すために、認識関数は、物体を把持する、またはそれを降ろすなどの重要なときに、注目する物体を含むすべての視覚的特徴を記録するように調節される。すべての特徴は、タイプおよび３Ｄ位置、さらには利用可能な場合には回転を含む。計算負荷を最小限度に抑えるために、その注目する視覚的特徴の集合は、把持／解放地点の較正された範囲内に制限されうる。
【００７４】
[0074]マーカー一般化
次いで、新しい一般化関数は、２つのマーカーが同じであると判定し、その２つの特徴集合の共通部分を見つける役割を有する。この一般化機能は、２つのマーカーを入力として受け取り、入力と同じタイプの単一の新しいマーカーを出力する。シナリオ間の実用的な変動があるために、入力を破棄しないことを選択することができるが、むしろ、新しい一般化マーカーを平行して使用することができる。
【００７５】
【数１０】
2013193202.tif 000012
【００７６】
[0075]一般化機能は、把持スキルに対する連立方程式を解く。２つのマーカーＭａおよびＭｂが、実際には同じ例である場合、ＭａをＭｂに変換する何らかの平行移動Ｘｔｒａｎｓｆおよび回転Ｒｔｒａｎｓｆが存在すべきである。問題は、この変換が真である両方のマーカーにおいて、マッチする特徴の集合を識別することである。
【００７７】
【数１１】
2013193202.tif 000013
【００７８】
Ｘｆｅａｔｕｒｅ，ｂ，Ｒｆｅａｔｕｒｅ，ｂは、単一の記録された特徴の位置および回転であり、実装される特徴は、コーナー、カラー斑点（blob）、および注目する物体を含む。ＭａおよびＭｂが同じ一般マーカーの変更形態である場合、レーベンバーグマルカート（ＬＭ）解法を使用してＸｔｒａｎｓｆおよびＲｔｒａｎｓｆについて解くと、解かれた特徴（複数可）位置／回転とＭｂにおける記録された位置との間の全エラーは、ある閾値より小さくなければならない。これらの式の回転成分は、物体の位置を含む特徴が算入に考慮されている場合にのみ含まれることに留意されたい。さらに、既知の方向を持つ特徴の回転成分は、この分離を使用して、相対位置と無関係に落とすことが可能であり、対称性調査が実用的なものとなる。したがって、立方体を把持することは、４つの非平面の特徴を必要とし、これは３つのコーナーおよび物体の重心、または４つのコーナーなどとすることが可能である。
【００７９】
[0076]上記の方程式は、特徴の集合体に関する、ロボット把持部、例えば図１のマニピュレーター２０の回転については解かない。マッチする特徴の実現可能な集合を識別した後、両方のマーカーについての把持された物体のマッチに関して、ロボット把持部の回転を確認するために追加フィルターが使用されうる。
【００８０】
【数１２】
2013193202.tif 000014
【００８１】
一般化マーカーによる費用推定
[0077]上で説明されているような費用推定は、特徴のマッチした集合体が現在の知覚空間内で識別されると、変化しない。これらのマッチする特徴を見つけるには、同じＬＭベースの問題解法を使用して、追加エラーの最小値とマッチする特徴集合を識別することができる。それらの関連する回転は、ロボットが拾い上げる必要がある「物体」の回転となる。この新しい「物体」回転を使用した場合、上で説明されている費用推定方程式は同じままである。
モデル空間の探索
[0078]この視覚的特徴に基づく手法の主要な欠点は、閉塞の効果である。例えば、物体の底部に配置されているコーナーは、視角のせいで頭上のカメラからは作業空間内のすべての位置において見えない場合がある。同様に、他の物体が、見える特徴を単一のカメラから隠すこともある。したがって、一般モデルは、常には見えない視覚的特徴の特定の集合を使用したときに、著しく影響を受ける可能性がある。物体固有の特徴の場合、２つの物体の組み合わせによって形成される特徴とは反対に、可能な解決策は、物体追跡によって返されるリアルタイムの物体位置および回転情報と併せて物体モデルから得られる特徴位置の先験的知識を使用することである。
【００８２】
[0079]特徴の可視性に依存する一般化マーカーとは反対に、物体追跡システム、例えば、図４の追跡モジュール４７は、見える特徴の群（cloud）を使用して任意の角度から物体を識別することができる。この特徴の群（cloud）は、物体の詳細な走査から、またはカメラ、つまり、図１の知覚センサー２５の一部の前面で物体を回転することによって推測的に抽出されうる。それと同時に、コーナー、エッジ、および／またはカラー斑点（blob）などの生物学的に妥当な特徴の相対位置を抽出する場合、特徴が見えようが見えまいが、物体の重心からそのようなすべての特徴の３Ｄ位置を変換としてリアルタイムで推定することができる。この時点で、これらの特徴は、マッチングの目的のために常に見えることになる。
【００８３】
[0080]図４のロジック要素４０を有する図１のＥＣＵ２２を介した模倣学習は、ロボットワークフォースを素早く再訓練するための強力なツールとなる。したがって、これはフレキシブルな工場およびアセンブリラインの開発にとって重要である。しかし、フレキシブルな学習表現がないと、人間によるデモンストレーションは、ロボットパートナーに正しく伝わらない。上で説明されているような直示マーカーは、そのようなフレキシブルな表現をもたらす。ロボットが非常によく知るスキルに関して編成されたそのようなマーカーは、最初に、人間によるデモンストレーションで認識され、次いで、リアルタイムで、入ってくる知覚データに割り当てられ、これにより、ロボットを変化する環境に、さらにはマルチステップの組み立てタスクに誘導することができる。
【００８４】
[0081]この手法は、積み重ね、キッティング（kitting）、およびペグを孔に差し込むタスクを含む、さまざまなマニピュレーターベースのシナリオで使用されうる。さらに、上で述べたように、複雑なターゲットならびにコーナーおよびカラー斑点（blob）などの一般的な視覚的特徴に基づく対称性条件により直示マーカーを識別するために、論理的推論を通じて複数のデモンストレーションが組み合わされうる。したがって、ロボットの高速訓練は、費用のかかるロボット再訓練なしで、またＣＡＤモデルを用いずに、複雑な組み立てタスクに対する所定のタスクプリミティブを使用することによって、行うことが可能である。
【００８５】
[0082]本発明を実施するための最良の態様が詳細に説明されたが、本発明が関係する技術を熟知する当業者であれば、付属の請求項の範囲内で本発明を実践するためにさまざまな代替的設計および実施形態を理解するであろう。
【図１】
2013193202.tif 000015
【図２】
2013193202.tif 000016
【図３】
2013193202.tif 000017
【図４】
2013193202.tif 000018
【図５】
2013193202.tif 000019
【図６】
2013193202.tif 000020
【手続補正書】
【提出日】平成25年4月9日(2013.4.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
作業環境内でロボットタスクを実行するようにロボットを訓練するための方法であって、
前記ロボットをその構成空間を横切って前記ロボットタスクの複数の状態を通じて移動させ、それにより、前記ロボットに前記ロボットタスクをデモンストレーションするステップであって、前記構成空間は、前記ロボットに対する可能なすべての構成の集合である、ステップと、
前記ロボットの挙動のシーケンスを記述する運動スキーマを記録するステップと、
前記ロボットをその構成空間を横切って移動させている間に前記ロボットの性能値および状態値を記述する感覚データを記録するステップと、
前記環境内に配置されている物体の知覚的特徴を検出するステップと、
仮想直示マーカーを前記検出された知覚的特徴に割り当てるステップと、
前記割り当てられた仮想直示マーカーおよび前記記録された運動スキーマを使用して、別のロボットタスクの自動化された実行の際に前記ロボットをその後、制御するステップとを含む方法。
【請求項２】
前記ロボットをその構成空間を横切って移動させるステップは、ロボットアームおよび前記ロボットのマニピュレーターのうちの少なくとも１つを手動でバックドライブするステップを含む請求項１に記載の方法。
【請求項３】
前記ロボットは、入力デバイスと通信し、前記ロボットをその構成空間を横切って移動させるステップは、前記入力デバイスを介して前記移動を指令するステップを含む請求項１に記載の方法。
【請求項４】
感覚データを記録するステップは、前記タスクのデモンストレーション時に前記マニピュレーターによって把持される物体に前記マニピュレーターによって印加される力およびトルクを記録するステップを含む請求項１に記載の方法。
【請求項５】
前記環境内に配置されている物体の知覚的特徴を検出するステップは、カメラを使用して前記知覚的特徴を視覚的に検出するステップを含む請求項１に記載の方法。
【請求項６】
カメラを使用して前記知覚的特徴を視覚的に検出するステップは、前記物体の表面特徴を視覚的に検出するステップを含む請求項１に記載の方法。
【請求項７】
アームおよび前記アームに接続されたマニピュレーターを有するロボットと、
前記ロボットの性能値および状態値を記述する感覚データを測定するセンサーアレイと、
前記環境内に配置されている物体の画像を収集する知覚センサーと、
前記ロボット、前記センサーアレイ、および前記知覚センサーと通信し、前記ロボットの挙動のシーケンスを記述する記録された運動スキーマを含む電子制御ユニット（ＥＣＵ）であって、
前記アームおよび前記マニピュレーターが、人間のオペレータによってロボットタスクの複数の状態を通り、前記ロボットの前記構成空間を横切って移動されたときに前記感覚データを記録し、
前記知覚センサーから前記収集された画像内の知覚的特徴を検出し、
仮想直示マーカーを前記検出された知覚的特徴に割り当て、
前記割り当てられた仮想直示マーカーおよび前記記録された運動スキーマを使用して、別のロボットタスクの自動化された実行の際に前記ロボットを制御するように構成されたＥＣＵと、を備えるシステム。
【請求項８】
前記ＥＣＵは、
個別の直示マーカーを選択的に組み合わせて、前記組み合わされた個別のマーカーの間で共通である知覚的特徴の記録を、前記個別のマーカーがマッチするのに必要な回転および平行移動オフセットとともに保持する一般化マーカーを生成するようにさらに構成される請求項７に記載のシステム。
【請求項９】
前記ＥＣＵは、前記ロボットのオペレータによって制御される移動から前記マニピュレーターの位置のデータシーケンスを取り込むように構成される請求項７に記載のシステム。
【請求項１０】
前記ＥＣＵと通信する入力デバイスをさらに備え、前記アームおよび前記マニピュレーターは、前記入力デバイスを使用して前記感覚データを記録している間に前記人間のオペレータによって移動される請求項７に記載のシステム。
【外国語明細書】
2013193202000001.pdf