(57)【要約】【課題】条件の変化に対して頑強な物体操作技能の学習を実現する。【解決手段】行動推定装置１００は、マスタロボットとスレーブロボットとの間で双方向制御を行うことによってマスタロボットを介してスレーブロボットを操作可能なバイラテラルシステムを用いて複数の異なる条件においてスレーブロボットを操作したときの技能データを収集する収集部２００を含む。また、行動推定装置１００は、収集部２００によって収集された技能データおよびスレーブロボット５２０から出力される応答に基づいてスレーブロボット５２０を自動行動させるための指令値を推定する行動推定器３００を含む。【選択図】図５
2019202900.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を操作可能なバイラテラルシステムを用いて複数の異なる条件において前記スレーブ装置を操作したときの技能データを収集する収集部と、
前記収集部によって収集された前記技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する行動推定器と、
を含み、
前記収集部は、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、
前記行動推定器は、前記収集部によって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する、
行動推定装置。
【請求項２】
前記行動推定器は、前記制御対象体を自動行動させるための指令値として位置指令値および力指令値を推定するものであり、
前記行動推定装置は、
前記行動推定器によって推定された前記位置指令値および前記制御対象体から出力される位置応答に基づいて前記制御対象体に入力する位置制御入力を出力する位置制御器と、
前記行動推定器によって推定された前記力指令値および前記制御対象体から出力される力応答に基づいて前記制御対象体に入力する力制御入力を出力する力制御器と、
をさらに含む、
請求項１に記載の行動推定装置。
【請求項３】
前記マスタ装置は、操作者の操作に応じて動作するマスタロボットであり、
前記スレーブ装置は、前記マスタロボットの動作に応じて動作するスレーブロボットであり、
前記バイラテラルシステムは、前記マスタロボットと前記スレーブロボットとの間で双方向制御を行うことによって前記操作者が前記スレーブロボットからの反作用情報を認識して適応的な操作を行うことが可能である、
請求項１または２に記載の行動推定装置。
【請求項４】
前記スレーブ装置は、前記スレーブ装置の周辺環境を撮影可能な画像撮影部、前記スレーブ装置の周辺の音を取得可能な音響取得部、および前記スレーブ装置の触覚情報を取得可能な触覚取得部の少なくとも一方を含む、
請求項１から３のいずれか１項に記載の行動推定装置。
【請求項５】
前記制御対象体から出力される位置応答および力応答、前記行動推定器から出力される位置指令値および力指令値、または前記制御対象体に入力される位置制御入力および力制御入力、の少なくともいずれか１つに対して前処理を行う前処理部をさらに含む、
請求項１から４のいずれか１項に記載の行動推定装置。
【請求項６】
前記前処理部は、
前記制御対象体から出力される力応答、前記行動推定器から出力される力指令値、または前記制御対象体に入力される力制御入力、の少なくともいずれか１つについて、前記力応答、前記力指令値、または前記力制御入力の第１の範囲における変動に対する前処理後の値の変動が、前記第１の範囲より大きい第２の範囲における変動に対する前処理後の値の変動よりも大きくなるように前処理を行う、
請求項５に記載の行動推定装置。
【請求項７】
前記制御対象体から出力される力応答、前記行動推定器から出力される力指令値、または前記制御対象体に入力される力制御入力、の少なくともいずれか１つを前記力応答、前記力指令値、または前記力制御入力の大きさに応じて複数に分類する力分類部をさらに含み、
前記力分類部によって分類された複数の前記力応答、前記力指令値、または前記力制御入力を異なる力応答、力指令値、または力制御入力として扱う、
請求項５に記載の行動推定装置。
【請求項８】
前記収集部によって収集された前記技能データを前記制御対象体の動作周波数に応じた周波数によってサンプリングして間引き技能データを生成する技能データ前処理部をさらに含み、
前記行動推定器は、前記間引き技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する、
請求項１から７のいずれか１項に記載の行動推定装置。
【請求項９】
前記技能データ前処理部は、前記収集部によって収集された前記技能データを前記制御対象体の動作周波数に応じた周波数によって複数の異なるタイミングでサンプリングして複数の間引き技能データを生成し、
前記行動推定器は、前記複数の間引き技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する、
請求項８に記載の行動推定装置。
【請求項１０】
前記技能データ前処理部は、前記収集部によって収集された前記技能データに含まれる複数種類の情報を、前記制御対象体の動作周波数に応じた異なる周波数でサンプリングして複数の間引き技能データを生成し、
前記行動推定器は、前記複数の間引き技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する、
請求項８に記載の行動推定装置。
【請求項１１】
前記技能データ前処理部は、前記複数の間引き技能データ同士の相関が小さくなるように、前記収集部によって収集された前記技能データに含まれる複数種類の情報を、前記制御対象体の動作周波数に応じた異なる周波数でサンプリングして複数の間引き技能データを生成する、
請求項１０に記載の行動推定装置。
【請求項１２】
前記制御対象体の動作周波数に応じた周波数は、前記動作周波数の５倍から１００倍程度の周波数である、
請求項８から１１のいずれか１項に記載の行動推定装置。
【請求項１３】
前記制御対象体の動作周波数に応じた周波数は、前記動作周波数の２０倍から５０倍の周波数である、
請求項１２に記載の行動推定装置。
【請求項１４】
マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を操作可能なバイラテラルシステムを用いて複数の異なる条件において前記スレーブ装置を操作したときの技能データを収集する収集ステップと、
前記収集ステップによって収集された前記技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する行動推定ステップと、
を含み、
前記収集ステップは、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、
前記行動推定ステップは、前記収集ステップによって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する、
行動推定方法。
【請求項１５】
コンピュータに、
マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を操作可能なバイラテラルシステムを用いて複数の異なる条件において前記スレーブ装置を操作したときの技能データを収集する収集ステップと、
前記収集ステップによって収集された前記技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する行動推定ステップと、
を実行させ、
前記収集ステップは、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、
前記行動推定ステップは、前記収集ステップによって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する、
行動推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、行動推定装置、行動推定方法、および行動推定プログラムに関する。
【背景技術】
【０００２】
近年、人間が行っている様々な物体操作作業をロボットに代替することが求められている。物体操作作業とは、例えば、農作業における収穫または採集、建設作業、倉庫でのピッキング、料理、手術、洗濯などを含む。【０００３】
物体操作作業をロボットに代替するために、強化学習を用いて物体操作技能をロボットに習得させる手法が知られている。強化学習は、ある環境内においてエージェントが現在の状況を観察し、取るべき行動を決定する機械学習の一種である。エージェントは、行動を選択することで環境から報酬を得る。強化学習は、一連の行動を通じて報酬が最も多く得られるような方策を学習する。【０００４】
しかしながら、強化学習を用いて物体操作技能を習得する手法は、膨大な回数の物体操作を必要とする。物体操作は囲碁のようなソフトウェアで再現できるものでないので、一度の試行にかかる時間を高速化できない。このため、試行回数の低減が望まれる。【０００５】
これに対して、模倣学習を用いて物体操作技能をロボットに習得させる手法が知られている。模倣学習は、例えば操作者の位置指令によってロボットを操作したときのデータを収集し、収集したデータに基づいて物体操作技能をロボットに習得させるものである。模倣学習を用いると試行回数を大幅に減らすことが期待できる。【０００６】
しかしながら、模倣学習の分野ではデータ収集時に操作者とロボットとの間の双方向性を考慮しておらず、物体操作技能を人間が十分に発揮できないことが問題となっていた。その結果、物体操作成功率が十分に高くなく改善の余地があった。【０００７】
この点、操作者とロボットとの間の双方向性を考慮したバイラテラルシステムが知られている。バイラテラルシステムは、操作者が操作するマスタロボットと、マスタロボットに連動して動作するスレーブロボットとの間で双方向制御を行うものである。マスタロボットを操作したときのデータを保存し、再生することによってスレーブロボットに操作者の操作を再現させることができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−２７９６９９号公報
【特許文献２】ＷＯ２０１５／０４１０４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術のバイラテラルシステムは、データの保存時と再生時の条件に変化がないことを前提としているので、単に、データを保存してそのまま再生するだけである。また、従来技術のバイラテラルシステムは、周辺環境を検知する機構を備えていなかった。このため、従来技術のバイラテラルシステムは、条件の変化が生じた場合には、物体操作を行うことが難しかった。【００１０】
そこで本願発明の一実施形態は、条件の変化に対して頑強な物体操作技能の学習を実現することを課題とする。
【課題を解決するための手段】
【００１１】
本願発明の行動推定装置の一実施形態は、マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を操作可能なバイラテラルシステムを用いて複数の異なる条件において前記スレーブ装置を操作したときの技能データを収集する収集部と、前記収集部によって収集された前記技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する行動推定器と、を含む。【００１２】
前記行動推定器は、前記制御対象体を自動行動させるための指令値として位置指令値および力指令値を推定するものであり、前記行動推定装置は、前記推定器によって推定された前記位置指令値および前記制御対象体から出力される位置応答に基づいて前記制御対象体に入力する位置制御入力を出力する位置制御器と、前記推定器によって推定された前記力指令値および前記制御対象体から出力される力応答に基づいて前記制御対象体に入力する力制御入力を出力する力制御器と、をさらに含んでいてもよい。【００１３】
前記マスタ装置は、操作者の操作に応じて動作するマスタロボットであり、前記スレーブ装置は、前記マスタロボットの動作に応じて動作するスレーブロボットであり、前記バイラテラルシステムは、前記マスタロボットと前記スレーブロボットとの間で双方向制御を行うことによって前記操作者が前記スレーブロボットからの反作用情報を認識して適応的な操作を行うことが可能であってもよい。【００１４】
前記収集部は、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、前記行動推定器は、前記収集部によって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定することができる。【００１５】
前記スレーブ装置は、前記スレーブ装置の周辺環境を撮影可能な画像撮影部、前記スレーブ装置の周辺の音を取得可能な音響取得部、および前記スレーブ装置の触覚情報を取得可能な触覚取得部の少なくとも一方を含むことができる。【００１６】
前記制御対象体から出力される位置応答および力応答、前記行動推定器から出力される位置指令値および力指令値、または前記制御対象体に入力される位置制御入力および力制御入力、の少なくともいずれか１つに対して前処理を行う前処理部をさらに含むことができる。【００１７】
前記前処理部は、前記制御対象体から出力される力応答、前記行動推定器から出力される力指令値、または前記制御対象体に入力される力制御入力、の少なくともいずれか１つについて、前記力応答、前記力指令値、または前記力制御入力の第１の範囲における変動に対する前処理後の値の変動が、前記第１の範囲より大きい第２の範囲における変動に対する前処理後の値の変動よりも大きくなるように前処理を行うことができる。【００１８】
前記制御対象体から出力される力応答、前記行動推定器から出力される力指令値、または前記制御対象体に入力される力制御入力、の少なくともいずれか１つを前記力応答、前記力指令値、または前記力制御入力の大きさに応じて複数に分類する力分類部をさらに含み、前記力分類部によって分類された複数の前記力応答、前記力指令値、または前記力制御入力を異なる力応答、力指令値、または力制御入力として扱うことができる。【００１９】
本願発明の行動推定方法の一実施形態は、マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を操作可能なバイラテラルシステムを用いて複数の異なる条件において前記スレーブ装置を操作したときの技能データを収集する収集ステップと、前記収集ステップによって収集された前記技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する行動推定ステップと、を含む。【００２０】
本願発明の行動推定プログラムの一実施形態は、コンピュータに、マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を操作可能なバイラテラルシステムを用いて複数の異なる条件において前記スレーブ装置を操作したときの技能データを収集する収集ステップと、前記収集ステップによって収集された前記技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する行動推定ステップと、を実行させる。
【発明の効果】
【００２１】
本願発明の一実施形態によれば、条件の変化に対して頑強な物体操作技能の学習を実現することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、一実施形態の行動推定装置の概要を示すブロック図である。
【図２】図２は、一実施形態のマスタロボットの概要を示すブロック図である。
【図３】図３は、一実施形態のスレーブロボットの概要を示すブロック図である。
【図４】図４は、技能データを収集する際の行動推定装置の動作を示すフローチャートである。
【図５】図５は、一実施形態の行動推定装置の概要を示すブロック図である。
【図６】図６は、従来技術によるロボットの応答を推定する手法を説明するための図である。
【図７】図７は、本実施形態によるマスタロボットの応答を推定する手法を説明するための図である。
【図８】図８は、収集された技能データに基づいて制御対象体を自動行動させる際の行動推定装置の動作を示すフローチャートである。
【図９】図９は、物体を把持して持ち上げるためのバイラテラルシステムを模式的に示す図である。
【図１０】図１０は、複数の異なる条件において技能データを収集する様子を模式的に示す図である。
【図１１】図１１は、複数の異なる条件において技能データを収集する様子を模式的に示す図である。
【図１２】図１２は、複数の異なる条件において技能データを収集する様子を模式的に示す図である。
【図１３】図１３は、複数の異なる条件において技能データを収集する様子を模式的に示す図である。
【図１４】図１４は、複数の異なる条件において技能データを収集する様子を模式的に示す図である。
【図１５】図１５は、複数の異なる条件において収集された技能データに基づいてスレーブロボットが自動行動する様子を模式的に示す図である。
【図１６】図１６は、行動推定装置の変形例を示すブロック図である。
【図１７】図１７は、位置対象型のバイラテラル制御系を示す図である。
【図１８】図１８は、力帰還型のバイラテラル制御系を示す図である。
【図１９】図１９は、力順送型のバイラテラル制御系を示す図である。
【図２０】図２０は、力逆走型のバイラテラル制御系を示す図である。
【図２１】図２１は、消しゴムを用いて線消しを行うためのバイラテラルシステムを模式的に示す図である。
【図２２】図２２は、複数の異なる条件において収集された技能データに基づいてスレーブロボットが自動行動する様子を模式的に示す図である。
【図２３】図２３は、紙面の高さを６５ｍｍに調整した状態においてスレーブロボットに自動行動させた結果を示す図である。
【図２４】図２４は、線描画の技能データの収集および線描画の自動行動について説明するための図である。
【図２５】図２５は、スレーブロボットが自動行動で分度器の曲面に沿って円弧を描いた結果を示す図である。
【図２６】図２６は、行動推定装置の変形例を示すブロック図である。
【図２７】図２７は、前処理部による正規化の一例を示す図である。
【図２８】図２８は、前処理部による正規化の一例を示す図である。
【図２９】図２９は、行動推定装置の変形例を示すブロック図である。
【図３０】図３０は、行動推定装置の変形例を示すブロック図である。
【図３１】図３１は、技能データ前処理部のサンプリング処理の概念を説明するための図である。
【図３２】図３２は、技能データ前処理部の異なるタイミングでのサンプリング処理の概念を説明するための図である。
【図３３】図３３は、文字「Ａ」を紙に書くタスクの結果を示す図である。
【図３４】図３４は、文字「Ａ」を紙に書くタスクの結果を示す図である。
【図３５】図３５は、文字「Ａ」を紙に書くタスクの結果を示す図である。
【図３６】図３６は、間引き技能データ同士の相関について説明するための図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、本願発明の行動推定装置、行動推定方法、および行動推定プログラムの実施形態について説明する。
【００２４】
図１は、一実施形態の行動推定装置の概要を示すブロック図である。図２は、一実施形態のマスタロボットの概要を示すブロック図である。図３は、一実施形態のスレーブロボットの概要を示すブロック図である。
【００２５】
図１に示すように、行動推定装置１００は、バイラテラルシステム５００を用いて操作者の技能データを収集する収集部２００を含んでいる。
【００２６】
（バイラテラルシステム）
まず、バイラテラルシステム５００について説明する。バイラテラルシステム５００は、マスタロボット５１０と、スレーブロボット５２０と、位置制御器５３０と、力制御器５４０と、を含む。バイラテラルシステム５００は、マスタロボット５１０とスレーブロボット５２０との間で双方向制御を行うことにより、マスタロボット５１０を介してスレーブロボット５２０を遠隔操作可能になっている。
【００２７】
具体的には、マスタロボット５１０は、入力部５１１と、ドライバ５１２と、アクチュエータ５１３と、アクチュエータ５１３に設置された位置センサ、力センサ、イメージセンサ（画像撮影部）、マイク（音響取得部）、および触覚センサ（触覚取得部）のいずれか１つを含むセンサ５１４と、制御部５１５と、を含む。マスタロボット５１０は、操作者の操作に応じてアクチュエータ５１３によって動作するようになっている。
【００２８】
入力部５１１は、マスタロボット５１０に入力される制御入力値を受信してドライバ５１２に出力する通信インターフェース（通信Ｉ／Ｆ）によって構成することができる。ドライバ５１２は、入力部５１１を介して入力された制御入力値をアクチュエータ５１３に対する具体的な制御指令値（電圧値または電流値など）に変換し、その制御指令値をアクチュエータ５１３に出力する。アクチュエータ５１３は、ドライバ５１２から入力された制御指令値に従って駆動され、制御対象物の位置を制御する。センサ５１４は、アクチュエータ５１３によって制御される制御対象物の位置、力、およびマスタロボット５１０の周辺環境を検出し、検出値を制御部５１５に出力する。制御部５１５は、センサ５１４によって検出された時系列の検出値に基づいて、位置（速度）応答、力応答、画像情報、音響情報、および触覚情報を出力するようになっている。
【００２９】
スレーブロボット５２０は、マスタロボット５１０と同様に、入力部５２１と、ドライバ５２２と、アクチュエータ５２３と、アクチュエータ５２３に設置された位置センサ、力センサ、イメージセンサ（画像撮影部）、マイク（音響取得部）、および触覚センサ（触覚取得部）のいずれか１つを含むセンサ５２４と、制御部５２５と、を含む。
【００３０】
スレーブロボット５２０は、マスタロボット５１０の動作に応じて動作するようになっている。入力部５２１は、スレーブロボット５２０に入力される制御入力値を受信してドライバ５２２に出力する通信インターフェース（通信Ｉ／Ｆ）によって構成することができる。ドライバ５２２は、入力部５２１を介して入力された制御入力値をアクチュエータ５２３に対する具体的な制御指令値（電圧値または電流値など）に変換し、その制御指令値をアクチュエータ５２３に出力する。アクチュエータ５２３は、ドライバ５２２から入力された制御指令値に従って駆動され、制御対象物の位置を制御する。センサ５２４は、アクチュエータ５２３によって制御される制御対象物の位置、力、およびスレーブロボット５２０の周辺環境を検出し、検出値を制御部５２５に出力する。制御部５２５は、センサ５２４によって検出された時系列の検出値に基づいて、位置（速度）応答、力応答、画像情報、音響情報、および触覚情報を出力するようになっている。
【００３１】
位置制御器５３０は、マスタロボット５１０から出力された位置応答と、スレーブロボット５２０から出力された位置応答に基づいて位置制御値を出力する。具体的には、位置制御器５３０は、マスタロボット５１０から出力された位置応答と、スレーブロボット５２０から出力された位置応答に基づいて、マスタロボット５１０のアクチュエータ５１３の位置とスレーブロボット５２０のアクチュエータ５２３の位置との差がゼロとなるように位置制御値を算出する。
【００３２】
ここで、位置制御器５３０は、マスタロボット５１０の位置をスケーリングさせてスレーブロボット５２０に伝達させてもよい。すなわち、位置制御器５３０は、位置のスケーリング機能を実現することができる。スケーリング機能とは、基準となる制御に対して、出力される位置のスケールを拡大または縮小する機能である。位置制御器５３０は、スケーリング機能によって、例えば、マスタロボット５１０の動きの大きさを拡大または縮小してスレーブロボット５２０で再現したり、マスタロボット５１０の動きの速度を上昇または低下させてスレーブロボット５２０で再現したりすることができる。
【００３３】
力制御器５４０は、マスタロボット５１０から出力された力応答と、スレーブロボット５２０から出力された力応答に基づいて、力制御値を出力する。具体的には、力制御器５４０は、マスタロボット５１０から出力された力応答と、スレーブロボット５２０から出力された力応答に基づいて、マスタロボット５１０のアクチュエータ５１３に操作者が加える力とスレーブロボット５２０のアクチュエータ５２３に作用する物体からの反力とが、作用・反作用の関係（互いに等しく逆向き）となるように力制御値を算出する。
【００３４】
ここで、力制御器５４０は、マスタロボット５１０の力をスケーリングさせてスレーブロボット５２０に伝達させてもよい。すなわち、力制御器５４０は、力のスケーリング機能を実現することができる。スケーリング機能とは、基準となる制御に対して、出力される力のスケールを拡大または縮小する機能である。力制御器５４０は、スケーリング機能によって、例えば、マスタロボット５１０の動きの強さ（力）を強めてまたは弱めてスレーブロボット５２０で再現することができる。
【００３５】
位置制御器５３０から出力された位置制御値と、力制御器５４０から出力された力制御値とに基づく制御入力がマスタロボット５１０に入力される。また、位置制御器５３０から出力された位置制御値と、力制御器５４０から出力された力制御値とに基づく制御入力がスレーブロボット５２０に入力される。
【００３６】
このような構成により、バイラテラルシステム５００は、マスタロボット５１０の動作をスレーブロボット５２０に伝達すると共に、スレーブロボット５２０に対する物体からの反力の入力をマスタロボット５１０にフィードバックする機能（バイラテラル制御機能）を実現することができる。したがって、バイラテラルシステム５００は、マスタロボット５１０に対して行われた操作がスレーブロボット５２０で正確に再現されると共に、スレーブロボット５２０に入力された物体からの反力をマスタロボット５１０に正確に伝達することができる。これにより、バイラテラルシステム５００は、マスタロボット５１０とスレーブロボット５２０との間で双方向制御を行うことによって操作者がスレーブロボット５２０からの反作用情報を認識して適応的な操作を行うことが可能である。
【００３７】
なお、バイラテラルシステム５００は、人間の身体における１つまたは複数の部位の機能を実現するものであるが、その機能を実現するための制御測が適用されていれば、具体的な構成は必ずしも人間の身体を模した形態でなくてもよい。また、本実施形態では、マスタロボット５１０とスレーブロボット５２０が制御対象体となる例を示すが、制御対象体はロボットに限定されない。
【００３８】
（収集部）
次に、収集部２００について説明する。収集部２００は、操作者による物体操作技能を後述する行動推定器（ＡＩ）３００に学習させるためのものである。収集部２００は、バイラテラルシステム５００を用いて複数の異なる条件においてスレーブロボット５２０を操作したときの技能データを収集するようになっている。
【００３９】
具体的には、収集部２００は、マスタロボット５１０から出力された位置応答および力応答の技能データを受信する通信部２１０と、通信部２１０によって受信された技能データを記憶可能な記憶装置２２０とを含む。
【００４０】
通信部２１０は、収集部２００に入力される時系列の位置応答および力応答を受信して記憶装置２２０に技能データとして保存するとともに、記憶装置２２０から技能データを読み出して出力する通信インターフェース（通信Ｉ／Ｆ）によって構成することができる。記憶装置２２０は、通信部２１０から入力される技能データを保存可能な記憶媒体である。また、通信部２１０は、スレーブロボット５２０から出力される画像／音響／触覚情報（画像情報、音響情報、および触覚情報のうちの少なくとも１つ）を受信して技能データとして記憶装置２２０に保存することもできる。
【００４１】
収集部２００は、複数の異なる条件における複数の技能データを収集するようになっている。複数の異なる条件における複数の技能データは、例えば、複数の異なる操作者がバイラテラルシステム５００を用いて物体操作を行ったときに収集された複数の技能データを含む。また、複数の異なる条件における複数の技能データは、例えば、操作の対象となる物体の位置、角度などが異なる状態でバイラテラルシステム５００を用いて物体操作を行ったときに収集された複数の技能データを含む。さらに、複数の異なる条件における複数の技能データは、異なるマスタロボット５１０または異なるスレーブロボット５２０のバイラテラルシステム５００を用いて物体操作を行ったときに収集された複数の技能データを含む。
【００４２】
なお、収集部２００は、バイラテラルシステム５００を用いてスレーブロボット５２０を操作したときのマスタロボット５１０の操作に対するスレーブロボット５２０の動作の追従遅れに応じてスレーブロボット５２０を操作したときの技能データを収集する。すなわち、バイラテラルシステム５００では、操作者がマスタロボット５１０を操作してからスレーブロボット５２０が動作するまでに多少の追従遅れが発生する。操作者は、スレーブロボット５２０の動作を目視しながらマスタロボット５１０を操作するので、スレーブロボット５２０の追従遅れを認識しながら、その追従遅れも考慮してマスタロボット５１０を操作する。したがって、収集部２００によって収集される技能データは、マスタロボット５１０の操作に対するスレーブロボット５２０の動作の追従遅れに応じてスレーブロボット５２０を操作したデータとなる。
【００４３】
ここで、技能データを収集する際の行動推定装置１００の動作について説明する。図４は、技能データを収集する際の行動推定装置の動作を示すフローチャートである。
【００４４】
技能データの収集処理が開始されると、収集部２００は、第１の条件において操作者がバイラテラルシステム５００を用いてスレーブロボット５２０を操作したときの技能データを収集する（ステップ１０２）。続いて、収集部２００は、ステップ１０２で収集した技能データを記憶装置２２０に保存する（ステップ１０４）。
【００４５】
続いて、技能データの収集を終了しない場合には（ステップ１０６，ＮＯ）、操作者、操作の対象となる物体の位置、角度などが異なる条件に変更される（ステップ１０８）。収集部２００は、変更された第２の条件において、再度バイラテラルシステム５００を用いてスレーブロボット５２０を操作したときの技能データを収集して（ステップ１０２）、ステップ１０２で収集した技能データを記憶装置２２０に保存する（ステップ１０４）。
【００４６】
その後、収集部２００は、技能データの収集を終了しない場合には（ステップ１０６，ＮＯ）、変更された異なる条件において技能データの収集と保存を繰り返す。一方、技能データの収集を終了する場合には（ステップ１０６，ＹＥＳ）、技能データの収集処理を終了する。なお、行動推定プログラムは、上記の処理と同様の処理をコンピュータ（プロセッサ）に実行させることができる。行動推定プログラムは、プロセッサによって読み出し可能な記憶媒体に格納することができ、プロセッサによって実行することができる。
【００４７】
（行動推定器）
次に、行動推定装置について説明する。図５は、一実施形態の行動推定装置の概要を示すブロック図である。図５に示すように、行動推定装置１００は、行動推定器（ＡＩ）３００を含む。行動推定器３００は、収集部２００によって収集された技能データおよび制御対象体から出力される応答および画像／音響／触覚情報に基づいて制御対象体を自動行動させるための指令値を推定する。
【００４８】
行動推定器３００は、具体的には、収集部２００によって収集された技能データおよびスレーブロボット５２０から出力される位置応答、力応答、および画像／音響／触覚情報を受信する受信部３１０を含む。また、行動推定器３００は、受信部３１０によって受信された技能データ、位置応答、力応答、および画像／音響／触覚情報に基づいてスレーブロボット５２０を自動行動させるための位置指令値および力指令値を推定して出力する推定部３２０を含む。推定部３２０は、受信部３１０によって受信された技能データ、位置応答、力応答、および画像／音響／触覚情報に基づいて、スレーブロボット５２０への過去の制御入力と最も矛盾がない位置指令値および力指令値を推定する。言い換えると、推定部３２０は、受信部３１０によって受信された技能データ、位置応答、力応答、および画像／音響／触覚情報に基づいて、確率的に最も正しい位置指令値および力指令値を推定する。なお、本実施形態では、行動推定器３００は、技能データ、および、スレーブロボット５２０から出力される位置応答、力応答、および画像／音響／触覚情報に基づいて位置指令値および力指令値を推定して出力する例を示すが、画像／音響／触覚情報は必須ではない。行動推定器３００は、画像／音響／触覚情報を用いずに、技能データ、および、スレーブロボット５２０から出力される位置応答および力応答に基づいて位置指令値および力指令値を推定して出力することもできる。
【００４９】
また、図５に示すように、行動推定装置１００は、行動推定器３００によって推定された位置指令値および制御対象体であるスレーブロボット５２０から出力される位置応答に基づいて制御対象体に入力する位置制御入力を出力する位置制御器４１０を含む。具体的には、位置制御器４１０は、行動推定器３００から出力された位置指令値と、スレーブロボット５２０から出力された位置応答とに基づいて、位置指令値によって指令された位置とスレーブロボット５２０のアクチュエータ５２３の位置との差がゼロとなるように位置制御入力を算出する。
【００５０】
また、図５に示すように、行動推定装置１００は、行動推定器３００によって推定された力指令値および制御対象体であるスレーブロボット５２０から出力される力応答に基づいて制御対象体に入力する力制御入力を出力する力制御器４２０を含む。具体的には、力制御器４２０は、行動推定器３００から出力された力指令値と、スレーブロボット５２０から出力された力応答とに基づいて、力指令値によって指令された力とスレーブロボット５２０のアクチュエータ５２３に作用する物体からの反力とが、作用・反作用の関係（互いに等しく逆向き）となるように力制御入力を算出する。
【００５１】
すなわち、行動推定装置１００は、マスタロボット５１０が過去にどのような応答をしていたか予想し、それを指令値とする。制御系は学習時と同じものを使う。行動推定装置１００は、座標変換をしていないので、ｚ軸に位置制御と力制御が混ざった中途半端な制御をするといったようなことが起こり得るが、行動推定器（ＡＩ）３００が制御を作るので問題はない。
【００５２】
行動推定器（ＡＩ）３００は、物体操作ＡＩの一種である。すなわち、一般的に、ロボットには多数の関節があり、また、関節ごとの位置や力応答も無数の状態を取りうる。ロボットが操作する物体や周辺環境も無数の状態を取りうる。必然、その組み合わせは天文学的な数値となり、全ての状態に対するデータを事前に取得することはできない。しかし、上記の状態に関わる複数のデータからその中間的または延長的な状態について推定することができれば、事前に取得しなければならないデータ数を大幅に削減することが可能になる。よって、本実施形態の行動推定器（ＡＩ）３００は、様々な状態を含む時系列データを収集することで物体や周辺環境の変動に頑健な状態推定が可能になり、それに適したロボットの行動も推定することが可能になる。逆に、一つの時系列データないし複数の似たような時系列データからでは推定できる中間的または延長的な状態がほとんどないため、物体や周辺環境の変動に非常に脆弱になる。
【００５３】
なお、行動推定器３００は、収集部２００によって収集されたスレーブロボット５２０の動作の追従遅れに応じてスレーブロボット５２０を操作したときの技能データおよびスレーブロボット５２０から出力される応答に基づいてスレーブロボット５２０を自動行動させるための指令値を推定する。すなわち、行動推定器３００は、マスタロボット５１０の操作に対するスレーブロボット５２０の動作の追従遅れも考慮してスレーブロボット５２０を操作したときの技能データを学習する。したがって、行動推定器３００は、スレーブロボット５２０を自動行動させるための指令値を推定する際には、マスタロボット５１０の操作に対するスレーブロボット５２０の動作の追従遅れも考慮して指令値を推定することとなる。ここで、マスタロボットの操作に対するスレーブロボットの動作の追従遅れについて説明する。図６は、従来技術によるロボットの応答を推定する手法を説明するための図である。図６に示すように、従来技術では、ロボットに技能を教示する際は応答しか計測できなかった。よって、従来技術は応答値を指令値として推定していた。しかし、所望の応答値を指令値とすると制御器やロボットにおける応答遅れにより、所望の応答値を得られない。結果として、制御系やロボットの遅れを無視できるような遅い行動しか実現できなかった。これに対して、図７は、本実施形態によるマスタロボットの応答を推定する手法を説明するための図である。図７に示すように、本実施形態では、バイラテラル制御を用いるとマスタロボットの応答値がスレーブロボットの指令値になるため、スレーブロボットの行動(スレーブの指令値)を直接推定することが可能になる。よって、本実施形態によれば、行動推定時と技能収集時の遅れをなくすことができる。結果として、本実施形態によれば、人間の動作並みに早い行動が可能になる。
【００５４】
ここで、収集された技能データに基づいて制御対象体を自動行動させる際の行動推定装置１００の動作について説明する。図８は、収集された技能データに基づいて制御対象体を自動行動させる際の行動推定装置１００の動作を示すフローチャートである。
【００５５】
制御対象体であるスレーブロボット５２０を自動行動させる処理が開始されると、行動推定器（ＡＩ）３００は、記憶装置２２０に格納された複数の技能データを読み出す（ステップ２０２）。なお、ここでは、スレーブロボット５２０を自動行動させる際に複数の技能データを読み出す例を示すが、これに限らず、行動推定器３００は、複数の技能データをあらかじめ読み出しておいてもよい。
【００５６】
続いて、行動推定器３００は、スレーブロボット５２０から出力される位置応答および力応答を受信する（ステップ２０４）。行動推定器３００は、複数の技能データと、受信した位置応答および力応答と、に基づいて位置指令値および力指令値を推定する（ステップ２０６）。
【００５７】
位置制御器４１０および力制御器４２０は、行動推定器３００によって推定された位置指令値および力指令値と、スレーブロボット５２０から出力される位置応答および力応答と、に基づいて位置制御入力および力制御入力をスレーブロボット５２０へ出力する（ステップ２０８）。
【００５８】
スレーブロボット５２０による自動物体操作作業が終了していない場合には（ステップ２１０，ＮＯ）、ステップ２０４へ戻り、ステップ２０４からステップ２０８の処理を繰り返すことによってスレーブロボット５２０を自動行動させる。一方、スレーブロボット５２０による自動物体操作作業が終了したら（ステップ２１０，ＹＥＳ）、処理を終了する。
【００５９】
なお、行動推定プログラムは、上記の処理と同様の処理をコンピュータ（プロセッサ）に実行させることができる。行動推定プログラムは、プロセッサによって読み出し可能な記憶媒体に格納することができ、プロセッサによって実行することができる。
【００６０】
（行動推定装置の具体例１）
以下、行動推定装置１００の具体的な実施形態について説明する。以下の説明では、物体操作作業として、異なる位置および角度で設置された形状の異なる物体を把持して持ち上げるという作業を例に挙げて説明する。
【００６１】
図９は、物体を把持して持ち上げるためのバイラテラルシステムを模式的に示す図である。図９に示すように、物体把持用のバイラテラルシステム６００は、マスタロボット６１０とスレーブロボット６２０とを含む。
【００６２】
マスタロボット６１０は、ベース部６１２と、ベース部６１２とアーム部６１３，６１５を介して連結された把持部６１４，６１６と、を含む。ベース部６１２は、操作者の手の動きに応じて位置および角度を調整可能である。把持部６１２，６１４は、操作者の指（例えば人差し指と親指）の操作に応じて位置および角度を調整可能である。
【００６３】
スレーブロボット６２０は、マスタロボット６１０の動作に応じて動作するようになっており、ベース部６２２と、ベース部６２２とアーム部６２３，６２５を介して連結された把持部６２４，６２６と、を含む。ベース部６２２は、ベース部６１２の動きに応じて位置および角度を調整可能である。把持部６２４，６２６は、把持部６１４，６１６の動きに応じて位置および角度を調整可能である。
【００６４】
図１０〜図１４は、複数の異なる条件において技能データを収集する様子を模式的に示す図である。なお、図１０〜図１４では、説明の便宜上、マスタロボット６１０とスレーブロボット６２０を並べて図示しているが、マスタロボット６１０とスレーブロボット６２０は、任意の位置関係で設置することができる。例えば、マスタロボット６１０とスレーブロボット６２０は、遠隔配置することもできる。この場合、操作者は、スレーブロボット６２０のイメージセンサ（画像撮影部）によって撮影された画像情報を遠隔で監視しながら、スレーブロボット６２０を操作することができる。
【００６５】
図１０において、物体Ａ１は、所定の位置に設置されている。操作者は、マスタロボット６１０の位置を初期位置ＰＭから動かすことによってスレーブロボット６２０の位置を初期位置ＰＳから物体Ａ１に接近させる。続いて、操作者は、マスタロボット６１０の把持部６１４，６１６を操作することによってスレーブロボット６２０の把持部６２４，６２６を互いに近づく方向に操作する。スレーブロボット６２０の把持部６２４，６２６が物体Ａ１の把持面Ｈ１に接触すると、物体Ａ１からの反力がスレーブロボット６２０を介してマスタロボット６１０にフィードバックされ、操作者は物体Ａ１を把持したことを認識する。続いて、操作者は、物体Ａ１を把持したままマスタロボット６１０の位置を持ち上げることによってスレーブロボット６２０を介して物体Ａ１を持ち上げる。収集部２００は、上記の一連の操作における時系列の技能データを収集して記憶装置２２０に保存する。
【００６６】
次に、図１１において、物体Ａ２は、物体Ａ１と比較してＸ軸方向の異なる位置に設置されている。また、物体Ａ２は、物体Ａ１と比較して、Ｙ軸方向の長さが長い異なる形状を有している。操作者は、マスタロボット６１０の位置を初期位置ＰＭから動かすことによってスレーブロボット６２０の位置を初期位置ＰＳから物体Ａ２に接近させる。続いて、操作者は、マスタロボット６１０の把持部６１４，６１６を操作することによってスレーブロボット６２０の把持部６２４，６２６を互いに近づく方向に操作する。スレーブロボット６２０の把持部６２４，６２６が物体Ａ２の把持面Ｈ２に接触すると、物体Ａ２からの反力がスレーブロボット６２０を介してマスタロボット６１０にフィードバックされ、操作者は物体Ａ２を把持したことを認識する。続いて、操作者は、物体Ａ２を把持したままマスタロボット６１０の位置を持ち上げることによってスレーブロボット６２０を介して物体Ａ２を持ち上げる。収集部２００は、上記の一連の操作における時系列の技能データを収集して記憶装置２２０に保存する。
【００６７】
図１１の物体操作作業によって収集された技能データは、図１０の物体操作作業によって収集された技能データと比較して、マスタロボット６１０およびスレーブロボット６２０のＸ軸方向の移動量が異なり、また、物体Ａ２を把持したときの把持部６１４，６１６および把持部６２４，６２６の相互の接近距離が異なる。
【００６８】
次に、図１２において、物体Ａ３は、物体Ａ１と比較してＹ軸方向の異なる位置に設置されている。また、物体Ａ３は、物体Ａ１と比較して、Ｙ軸方向の長さが短い異なる形状を有している。操作者は、マスタロボット６１０の位置を初期位置ＰＭから動かすことによってスレーブロボット６２０の位置を初期位置ＰＳから物体Ａ３に接近させる。続いて、操作者は、マスタロボット６１０の把持部６１４，６１６を操作することによってスレーブロボット６２０の把持部６２４，６２６を互いに近づく方向に操作する。スレーブロボット６２０の把持部６２４，６２６が物体Ａ３の把持面Ｈ３に接触すると、物体Ａ３からの反力がスレーブロボット６２０を介してマスタロボット６１０にフィードバックされ、操作者は物体Ａ３を把持したことを認識する。続いて、操作者は、物体Ａ３を把持したままマスタロボット６１０の位置を持ち上げることによってスレーブロボット６２０を介して物体Ａ３を持ち上げる。収集部２００は、上記の一連の操作における時系列の技能データを収集して記憶装置２２０に保存する。
【００６９】
図１２の物体操作作業によって収集された技能データは、図１０の物体操作作業によって収集された技能データと比較して、マスタロボット６１０およびスレーブロボット６２０のＹ軸方向の移動量が異なり、また、物体Ａ３を把持したときの把持部６１４，６１６および把持部６２４，６２６の相互の接近距離が異なる。
【００７０】
次に、図１３において、物体Ａ４は、物体Ａ１と比較してＺ軸方向の異なる位置に設置されている。操作者は、マスタロボット６１０の位置を初期位置ＰＭから動かすことによってスレーブロボット６２０の位置を初期位置ＰＳから物体Ａ４に接近させる。続いて、操作者は、マスタロボット６１０の把持部６１４，６１６を操作することによってスレーブロボット６２０の把持部６２４，６２６を互いに近づく方向に操作する。スレーブロボット６２０の把持部６２４，６２６が物体Ａ４の把持面Ｈ４に接触すると、物体Ａ４からの反力がスレーブロボット６２０を介してマスタロボット６１０にフィードバックされ、操作者は物体Ａ４を把持したことを認識する。続いて、操作者は、物体Ａ４を把持したままマスタロボット６１０の位置を持ち上げることによってスレーブロボット６２０を介して物体Ａ４を持ち上げる。収集部２００は、上記の一連の操作における時系列の技能データを収集して記憶装置２２０に保存する。
【００７１】
図１３の物体操作作業によって収集された技能データは、図１０の物体操作作業によって収集された技能データと比較して、マスタロボット６１０およびスレーブロボット６２０のＺ軸方向の移動量が異なる。
【００７２】
次に、図１４において、物体Ａ５は、物体Ａ１と比較してＸ軸方向およびＹ軸方向の異なる位置に設置されている。また、物体Ａ５は、物体Ａ１と比較してＺ軸周りに反時計回りに回転した状態で設置されている。操作者は、マスタロボット６１０の位置を初期位置ＰＭから動かすことによってスレーブロボット６２０の位置を初期位置ＰＳから物体Ａ５に接近させる。続いて、操作者は、物体Ａ５の把持面Ｈ５が物体Ａ１の把持面Ｈ１と比較してＺ軸周りに回転しているので、物体Ａ５の把持面の回転角度に応じてマスタロボット６１０のＺ軸周りの角度を反時計回りに回転させることによって、スレーブロボット６２０のＺ軸周りの角度を反時計回りに回転させる。続いて、操作者は、マスタロボット６１０の把持部６１４，６１６を操作することによってスレーブロボット６２０の把持部６２４，６２６を互いに近づく方向に操作する。スレーブロボット６２０の把持部６２４，６２６が物体Ａ５の把持面Ｈ５に接触すると、物体Ａ５からの反力がスレーブロボット６２０を介してマスタロボット６１０にフィードバックされ、操作者は物体Ａ５を把持したことを認識する。続いて、操作者は、物体Ａ５を把持したままマスタロボット６１０の位置を持ち上げることによってスレーブロボット６２０を介して物体Ａ５を持ち上げる。収集部２００は、上記の一連の操作における時系列の技能データを収集して記憶装置２２０に保存する。
【００７３】
図１４の物体操作作業によって収集された技能データは、図１０の物体操作作業によって収集された技能データと比較して、マスタロボット６１０およびスレーブロボット６２０のＸ軸方向およびＹ軸方向の移動量が異なり、マスタロボット６１０およびスレーブロボット６２０のＺ軸周りの回転角度が異なる。
【００７４】
行動推定器３００は、収集部２００によって収集された複数の異なる条件における技能データを学習する。具体的には、行動推定器３００は、上記の複数の異なる条件で収集された技能データに基づいて、把持対象の物体はＸ軸方向、Ｙ軸方向、Ｚ軸方向の異なる位置に設置され得るということを学習する。また、行動推定器３００は、上記の複数の異なる条件で収集された技能データに基づいて、把持対象の物体は、把持面間の距離が異なり得ることを学習する。さらに、行動推定器３００は、上記の複数の異なる条件で収集された技能データに基づいて、把持対象の物体はＺ軸周りに回転して設置され得るということを学習する。
【００７５】
図１５は、複数の異なる条件において収集された技能データに基づいてスレーブロボット６２０が自動行動する様子を模式的に示す図である。図１５において、物体Ｂ１は、物体Ａ１〜Ａ５のいずれと比較しても、Ｘ軸方向、Ｙ軸方向、およびＺ軸方向の異なる位置に設置されている。また、物体Ｂ１は、物体Ａ１〜Ａ５のいずれと比較しても、把持面Ｈ６間の距離が短い、すなわち異なる形状を有している。また、物体Ｂ１は、物体Ａ１〜Ａ５のいずれと比較しても、Ｚ軸周りに異なる角度で回転した状態で設置されている。
【００７６】
行動推定器３００は、過去に収集された物体Ａ１〜Ａ５の位置と比較して物体Ｂ１がＸ軸方向、Ｙ軸方向、Ｚ軸方向の異なる位置に設置され得るという技能データと、スレーブロボット６２０から出力される応答に基づいて、スレーブロボット６２０を物体Ｂ１に接近させる。続いて、行動推定器３００は、過去に収集された物体Ａ１〜Ａ５の把持面と比較して物体Ｂ１の把持面Ｈ６がＺ軸周りに回転し得るという技能データと、スレーブロボット６２０から出力される応答に基づいて、スレーブロボット６２０をＺ軸周りに回転させる。続いて、行動推定器３００は、スレーブロボット６２０の把持部６２４，６２６を互いに近づく方向に動作させる。ここで、行動推定器３００は、過去に収集された物体Ａ１〜Ａ５の把持面間の距離と比較して物体Ｂ１の把持面Ｈ６間の距離が異なり得るという技能データと、スレーブロボット６２０から出力される応答に基づいて、スレーブロボット６２０の把持部６２４，６２６が物体Ｂ１の把持面Ｈ６に接触するまで、スレーブロボット６２０の把持部６２４，６２６を互いに近づく方向に動作させる。スレーブロボット６２０の把持部６２４，６２６が物体Ｂ１の把持面Ｈ６に接触すると、物体Ｂ１からの反力がスレーブロボット６２０を介して行動推定器３００にフィードバックされ、行動推定器３００は物体Ｂ１を把持したことを認識する。続いて、行動推定器３００は、物体Ｂ１を把持したままスレーブロボット６２０の位置を持ち上げることによって物体Ｂ１を持ち上げる。
【００７７】
以上のように、本実施形態の行動推定装置１００によれば、マスタロボットおよびスレーブロボットで双方向制御をするバイラテラルシステムを用いて、人間がロボットを遠隔操作する技能データを収集し、当該データを用いて人間の技能を再現するように模倣学習することでＡＩを構築する。技能データは、環境、人間、ロボットなどが異なる条件下で技能データを収集することで、条件の変動に対して頑健なＡＩとなる。また、バイラテラルシステムは双方向制御であるため、物体からの反作用情報を認識して適応的に対処する人間の物体操作技能を抽出することができる。特に、本実施形態では、収集部は、マスタロボットの操作に対するスレーブロボットの動作の追従遅れも考慮した技能データが収集される。したがって、スレーブロボットを自動行動させる際には、行動推定器は、マスタロボットの操作に対するスレーブロボットの動作の追従遅れも考慮した指令値を推定することができる。従来技術では、指令値に対して制御対象体の応答がぴったりと追従する（追従遅れが発生しない）ことを前提として制御系を組んでいた。しかしながら、実際には指令値に対して制御対象体には追従遅れが生じるので、人間の動作に近い速度で制御対象体を所望の通り自動行動させるのは難しかった。したがって、従来技術では、制御対象体の追従遅れを無視できる程度に遅い行動しか実現することができず、その結果、制御対象体の自動行動は非常に遅いものであった。これに対して、本実施形態では、技能データは、マスタ装置の操作に対するスレーブ装置の動作の追従遅れを考慮して収集され、その技能データを用いて制御対象体を自動行動させるための指令値を推定する。つまり、本実施形態は、制御対象体の追従遅れが発生する前提で指令値を推定するので、人間の動作に近い速度での自動行動を実現することができる。
【００７８】
また、本実施形態によれば、模倣学習であるため教師あり学習が可能であり、収集する技能データ数を低減できる。また、本実施形態は、オフラインで作成したデータを再現するのではなく、オンラインで行動を決定できるため、未知の環境に対しても適切な行動を計算することができる。すなわち、事前に操作対象物体の形状・質量・剛性等の物理特性が不明であった場合、これまでのロボットではまともな操作することができず、人手に頼らざるを得なかった。本実施形態によれば、この問題を解決できるため、未知物体の操作を必要とするすべての肉体労働のロボット化を狙える可能性がある。具体的には、本実施形態によれば、農作業における収穫・採集、建設作業、倉庫でのピッキング、料理、手術、洗濯、などの人間による物体操作作業をロボットで代替できる可能性がある。また、従来のロボットは専用機を用いた特定のタスクの解消を目指すものであったが、本実施形態によれば機械ではなくソフトウェアで機能を発現できるようになるため、一台のロボットで複数のタスクをこなせる真の汎用ロボットを製作できる可能性がある。
【００７９】
なお、上記では、操作対象の物体の設置位置、形状、Ｚ軸周りの回転角度などが異なる複数の条件下で技能データを収集する例を示したが、これには限定されない。例えば、行動推定装置１００は、異なる操作者による操作の技能データを収集することができる。また、行動推定装置１００は、異なるマスタロボットおよび／またはスレーブロボットを用いて行われた操作の技能データを収集することができる。また、行動推定装置１００は、操作対象の物体がＸ軸および／またはＹ軸周りに異なる回転角度で設置されている状態で行われた操作の技能データを収集することができる。行動推定装置１００は、様々な異なる条件で技能データを収集することができ、技能データを収集する条件が多くなるにしたがって、条件の変化に対して頑強な物体操作技能の学習を実現することができる。
【００８０】
（行動推定装置の変形例）
次に、行動推定装置１００の変形例について説明する。図１６は、行動推定装置１００の変形例を示すブロック図である。図１，５に示した行動推定装置１００と重複する部分の説明は省略し、図１，５に示した行動推定装置１００と異なる部分のみ説明する。
【００８１】
図１，５に示した行動推定装置１００と比較して、変形例の行動推定装置１００´は、位置制御器４１０および力制御器４２０を含んでいない点が異なる。また、変形例の行動推定装置１００´において、行動推定器３００´の推定部３２０´は、受信部３１０´によって受信された技能データと、スレーブロボット５２０から出力された位置応答、力応答、および映像情報に基づいて、スレーブロボット５２０を自動行動させるための制御入力を出力する。
【００８２】
すなわち、行動推定器３００´は、スレーブロボット５２０の位置応答、力応答、および映像情報からどのような制御入力を出力すべきか予想するが、制御系も含めて学習する。変形例の行動推定装置１００´は、座標変換をしていないので、ｚ軸に位置制御と力制御が混ざった中途半端な制御をするといったようなことが起こり得るが、行動推定器（ＡＩ）３００´が制御を作るなら問題はない。制御系設計をする必要がないなら、そもそも位置制御と力制御を分離する必要がないので、変形例の行動推定器３００´は、収集部２００によって収集された技能データと、スレーブロボット５２０から出力された位置応答、力応答、および映像情報に基づいて、位置制御と力制御が分離されていない制御入力を出力することができる。
【００８３】
（バイラテラルシステムの変形例）
なお、上記の一実施形態では、バイラテラルシステム５００として、４ｃｈ型のバイラテラルシステムを例に挙げて説明した。４ｃｈ型が最も制御性能がよいと知られているが、これに限定されず、それ以外にも様々なバイラテラルシステムを用いることができる。
【００８４】
例えば、図１７〜図２０は、４ｃｈ型のバイラテラルシステム以外の代表的な制御系を示すブロック図である。図１７は、位置対象型のバイラテラル制御系を示している。図１８は、力帰還型のバイラテラル制御系を示している。図１９は、力順送型のバイラテラル制御系を示している。図２０は、力逆走型のバイラテラル制御系を示している。
【００８５】
いずれのバイラテラルシステムにしても、マスタロボットとスレーブロボットの制御系が双方向(ｂｉｌａｔｅｒａｌ)に情報を伝達する制御系である。図１７〜２０に示すように、バイラテラルシステムにおいて位置制御と力制御の両方が有ることは必須の要件ではない。
【００８６】
（行動推定装置の具体例２）
次に、行動推定装置１００の具体的な他の実施形態について説明する。以下の説明では、物体操作作業として、紙面に描かれた線を消しゴムによって消すという作業を例に挙げて説明する。
【００８７】
図２１は、消しゴムを用いて線消しを行うためのバイラテラルシステムを模式的に示す図である。図２１に示すように、消しゴムを用いた線消し用のバイラテラルシステム７００は、マスタロボット７１０とスレーブロボット７２０とを含む。
【００８８】
マスタロボット７１０は、ベース部７１２と、ベース部７１２の上に置かれた回転部７１３と、回転部７１３に連結された第１のアーム部７１４と、第１のアーム部７１４に連結された第２のアーム部７１５と、を含む。回転部７１３は、ベース部７１２に対してＺ軸周りに回転可能になっている。第１のアーム部７１４は、第１の端部が回転部７１３に連結されており、第１の端部を支点としてＹ軸周りに揺動可能になっている。その結果、第１のアーム部７１４の第２の端部はＺ軸方向に揺動可能になっている。第２のアーム部７１５は、第１の端部が第１のアーム部７１４に連結されており、第１の端部を支点としてＹ軸周りに揺動可能になっている。その結果、第２のアーム部７１５の第２の端部はＸ軸方向に揺動可能になっている。これによって、操作者は、第２のアーム部７１５の第２の端部を把持してＸ，Ｙ，Ｚ軸方向に移動操作することができる。
【００８９】
スレーブロボット７２０は、マスタロボット７１０の動作に応じて動作するようになっており、ベース部７２２と、ベース部７２２の上に置かれた回転部７２３と、回転部７２３に連結された第１のアーム部７２４と、第１のアーム部７２４に連結された第２のアーム部７２５と、を含む。回転部７２３は、ベース部７２２に対してＺ軸周りに回転可能になっている。第１のアーム部７２４は、第１の端部が回転部７２３に連結されており、第１の端部を支点としてＹ軸周りに揺動可能になっている。その結果、第１のアーム部７２４の第２の端部はＺ軸方向に揺動可能になっている。第２のアーム部７２５は、第１の端部が第１のアーム部７２４に連結されており、第１の端部を支点としてＹ軸周りに揺動可能になっている。その結果、第２のアーム部７２５の第２の端部はＸ軸方向に揺動可能になっている。第２のアーム部７２５の第２の端部には、消しゴムＥが取り付けられている。消しゴムＥは、第２のアーム部７１５の第２の端部に対する操作者の移動操作に応じて移動する。
【００９０】
図２１に示すバイラテラルシステム７００を用いて、複数の異なる条件において線消しの技能データを収集することができる。すなわち、第２のアーム部７２５の下には、線が描かれた紙面Ｐが置かれており、紙面ＰのＺ軸方向の高さは調整可能になっている。この実施形態では、紙面Ｐの高さを２０ｍｍに調整した状態において、操作者は、まず、第２のアーム部７１５の第２の端部を把持してＺ軸方向に下ろす移動操作を行う。第２のアーム部７２５の第２の端部に取り付けられた消しゴムＥが紙面Ｐに接触すると、紙面Ｐからの反力がスレーブロボット７２０を介してマスタロボット７１０にフィードバックされ、操作者は消しゴムＥが紙面Ｐに接触したことを認識する。続いて、操作者は、消しゴムＥが紙面Ｐに接触した状態のまま第２のアーム部７１５の第２の端部をＸ軸およびＹ軸の方向に移動操作する。これにより、操作者は、紙面Ｐに描かれている線を消しゴムＥによって消す操作を行う。収集部２００は、上記の一連の操作における時系列の技能データを収集して記憶装置２２０に保存する。
【００９１】
また、この実施形態では、上記のような消しゴムＥによる線消しの操作を、紙面Ｐの高さを５０ｍｍおよび８０ｍｍに調整したそれぞれの状態においても同様に行う。
【００９２】
行動推定器３００は、収集部２００によって収集された複数の異なる条件における技能データを学習する。具体的には、行動推定器３００は、上記の複数の異なる条件で収集された技能データに基づいて、紙面Ｐの高さはＺ軸方向の異なる位置に設置され得るということを学習する。
【００９３】
図２２は、複数の異なる条件において収集された技能データに基づいてスレーブロボット７２０が自動行動する様子を模式的に示す図である。図２２において、紙面Ｐの高さは、物体操作技能の学習時には設定されていなかった３５ｍｍに調整されている。まず、行動推定器３００は、消しゴムＥをＺ軸方向に下ろす移動操作を行う。ここで、行動推定器３００は、紙面Ｐの高さがＺ軸方向の異なる位置に設置され得るという過去に収集された技能データと、スレーブロボット７２０から出力される応答に基づいて、消しゴムＥが紙面Ｐに接触するまで、消しゴムＥをＺ軸方向に下ろす移動操作を行う。消しゴムＥが紙面Ｐに接触すると、紙面Ｐからの反力がスレーブロボット７２０を介して行動推定器３００にフィードバックされ、行動推定器３００は消しゴムＥが紙面Ｐに接触したことを認識する。続いて、行動推定器３００は、消しゴムＥを紙面Ｐに接触させた状態のまま、消しゴムＥをＸ軸およびＹ軸の方向に移動操作を行うことによって、紙面Ｐに描かれた線を消す操作を行う。
【００９４】
また、この具体例では、紙面Ｐの高さを６５ｍｍに調整した状態においても同様に、スレーブロボット７２０に自動行動させた。図２３は、紙面Ｐの高さを６５ｍｍに調整した状態においてスレーブロボット７２０に自動行動させた結果を示す図である。図２３において、Ｒ１は、図５に示すような位置応答と力応答を用いるバイラテラル制御系をバイラテラルシステム７００に適用した状態においてスレーブロボット７２０が自動行動して得られた線消しの結果である。Ｒ２は、図１７に示すような位置対象型のバイラテラル制御系、すなわち力応答を用いないバイラテラル制御系をバイラテラルシステム７００に適用した状態においてスレーブロボット７２０が自動行動して得られた線消しの結果である。図２３に示すように、本実施形態の行動推定器３００によれば、物体操作技能の学習時には経験していない紙面Ｐの高さにおいても、紙面Ｐに描かれた線を所定の範囲で消すことができた。また、図２３のＲ１とＲ２を比較すると、位置応答と力応答の両方を用いるバイラテラル制御系を適用することによって、位置応答のみを用いるバイラテラル制御系を適用した場合に比べて、より確実に線を消すことができた。すなわち、位置応答のみを用いるバイラテラル制御系を適用した場合、力情報を教師データとして与えないので、消しゴムＥで紙面Ｐを押さえつける力が弱くなったり逆に強くなったりする。これに対して、位置応答と力応答の両方を用いるバイラテラル制御系を適用した場合、力もフィードバックするので、紙面Ｐの高さの変動に対して柔軟に対応して線消しを行うことができる。
【００９５】
（行動推定装置の具体例３）
次に、行動推定装置１００の具体的な他の実施形態について説明する。以下の説明では、物体操作作業として、定規および分度器を用いて線を描くという作業を例に挙げて説明する。
【００９６】
この物体操作作業において用いられるバイラテラルシステムは、図２１に示したバイラテラルシステム７００と同様であるので、詳細な説明を省略する。ただし、本実施形態では、第２のアーム部７２５の第２の端部に、消しゴムＥの代わりに鉛筆が取り付けられる。
【００９７】
図２４は、線描画の技能データの収集および線描画の自動行動について説明するための図である。第２のアーム部７２５の下には、図２４に示すように紙面Ｐと定規Ｊが置かれる。この実施形態では、まず、定規Ｊの角度φを０°に調整した状態において、技能データを収集する。例えば、定規Ｊの角度φを０°に調整した状態において、操作者は、第２のアーム部７１５の第２の端部を把持してＺ軸方向に下ろす移動操作を行う。第２のアーム部７２５の第２の端部に取り付けられた鉛筆が紙面ＰのＰｏｉｎｔ１に接触すると、紙面Ｐからの反力がスレーブロボット７２０を介してマスタロボット７１０にフィードバックされ、操作者は鉛筆が紙面Ｐに接触したことを認識する。続いて、操作者は、鉛筆が紙面Ｐに接触した状態のまま第２のアーム部７１５の第２の端部をＸ軸に沿って定規Ｊの方向に移動操作する。紙面ＰのＰｏｉｎｔ２において鉛筆が定規Ｊに接触すると、定規Ｊからの反力がスレーブロボット７２０を介してマスタロボット７１０にフィードバックされ、操作者は鉛筆が定規Ｊに接触したことを認識する。続いて、操作者は、鉛筆が紙面Ｐに接触した状態のまま、鉛筆が定規Ｊに沿って移動するように、第２のアーム部７１５の第２の端部の移動操作を行う。つまり、操作者は、紙面Ｐおよび定規Ｊからの反力を感じながら第２のアーム部７１５の第２の端部を移動操作する。操作者は、鉛筆が紙面ＰのＰｏｉｎｔ３まで移動したら第２のアーム部７１５の第２の端部をＺ軸方向に上げる移動操作を行う。収集部２００は、上記の一連の操作における時系列の技能データを収集して記憶装置２２０に保存する。
【００９８】
また、この実施形態では、上記のような鉛筆による線描画の操作を、定規Ｊの角度φを３０°および６０°に調整したそれぞれの状態においても同様に行う。本実施形態では、定規Ｊの角度φを０°、３０°、６０°に設定した状態において、それぞれ５回上記の技能データの収集を行った。
【００９９】
行動推定器３００は、収集部２００によって収集された複数の異なる条件における技能データを学習する。具体的には、行動推定器３００は、上記の複数の異なる条件で収集された技能データに基づいて、紙面ＰのＰｏｉｎｔ１に鉛筆を下ろし、Ｐｏｉｎｔ１からＸ軸方向に鉛筆を移動させ、定規Ｊに接触したら定規Ｊに沿って鉛筆を移動させるということを学習する。また、行動推定器３００は、上記の複数の異なる条件で収集された技能データに基づいて、定規Ｊの角度φは、Ｚ軸周りの異なる角度に設定され得るということを学習する。
【０１００】
次に、定規Ｊの角度φが物体操作技能の学習時には設定されていなかった１５°、４５°のそれぞれの状態において、スレーブロボット７２０に線描画の自動行動をさせた。その結果、まず、行動推定器３００は、紙面ＰのＰｏｉｎｔ１に向けて鉛筆を下ろす移動操作を行う。鉛筆が紙面Ｐに接触すると、紙面Ｐからの反力がスレーブロボット７２０を介して行動推定器３００にフィードバックされ、行動推定器３００は鉛筆が紙面Ｐに接触したことを認識する。続いて、行動推定器３００は、鉛筆を紙面Ｐに接触させたままＸ軸方向に鉛筆を移動させる操作を行う。鉛筆が定規Ｊに接触すると、定規Ｊからの反力がスレーブロボット７２０を介して行動推定器３００にフィードバックされ、行動推定器３００は鉛筆が定規Ｊに接触したことを認識する。続いて、行動推定器３００は、鉛筆を紙面Ｐおよび定規Ｊに接触させたまま、定規Ｊに沿って鉛筆を移動させる操作を行う。行動推定器３００は、定規Ｊに沿って鉛筆を所定の距離だけ移動させたら、鉛筆をＺ軸方向に上げる移動操作を行う。この一連の自動行動の結果、スレーブロボット７２０は、物体操作技能の学習時には設定されていなかった１５°、４５°のそれぞれの状態において、定規Ｊに沿って線を描画することができた。なお、本実施形態では、最初に紙面ＰのＰｏｉｎｔ１に鉛筆を下ろし、Ｐｏｉｎｔ１からＸ軸方向に鉛筆を移動させて定規Ｊに接触させる（Ｐｏｉｎｔ２まで移動させる）例を示したが、これに限定されない。例えば、スレーブロボット７２０のイメージセンサ（カメラ）を用いることによって、最初から紙面ＰのＰｏｉｎｔ２（定規Ｊに接触する位置）に鉛筆を下ろし、そこから定規Ｊに沿って線を描くことも考えられる。
【０１０１】
さらに、スレーブロボット７２０は、物体操作技能の学習時には用いられなかった分度器に対して円弧を描くことができた。図２５は、スレーブロボット７２０が自動行動で分度器の曲面に沿って円弧を描いた結果を示す図である。図２５に示すように、行動推定器３００は、まず、紙面ＰのＰｏｉｎｔ１に鉛筆を下ろし、Ｘ軸方向に分度器Ｂに向かって鉛筆を移動し、紙面ＰのＰｏｉｎｔ２において分度器Ｂと接触したら、分度器Ｂの曲面に沿ってＰｏｉｎｔ３まで円弧を描くことができた。これは、行動推定器（ＡＩ）３００が、線描画の物体操作において、鉛筆が線描画の道具（定規、分度器）に接触したら、鉛筆を道具に押し当てたときに発生する力ベクトルの法線方向に線を引けば良いことを暗黙のうちに学習したため、分度器Ｂという初めて行動推定器３００が体験する道具であっても、道具からの反力の法線方向に動くように自律的に学習したと考えられる。
【０１０２】
このように、本実施形態によれば、物体操作技能の学習時には設定されていなかった未知の角度φに定規Ｊを設定しても、行動推定器３００は自動行動で定規Ｊに沿って線を描画することができた。これに加えて、本実施形態によれば、物体操作技能の学習時には用いられなかった分度器Ｂという未知の物体に対して、行動推定器３００は自動行動で曲線を描くことができた。
【０１０３】
（行動推定装置の変形例）
次に、行動推定装置１００の変形例について説明する。図２６は、行動推定装置１００の変形例を示すブロック図である。図１，５に示した行動推定装置１００と重複する部分の説明は省略し、図１，５に示した行動推定装置１００と異なる部分のみ説明する。
【０１０４】
図１，５に示した行動推定装置１００と比較して、変形例の行動推定装置１００´´は、前処理部４５０をさらに含んでいる点が異なる。前処理部４５０は、スレーブロボット５２０から出力された位置応答、力応答、および画像／音響／触覚情報に対して前処理を行う。すなわち、本実施形態における行動推定器３００´´（物体操作ＡＩ）は、角度、角速度、トルク等を入力した際に、適切な指令値を推定するものである。しかし、角度、角速度、トルクは次元が違うので、図２１、２２などで説明したようなスレーブロボット７２０の場合には、０−１ｒａｄ程度の角度指令値、１００−１０００ｍＮ・ｍ程度のトルク指令値が入力される。行動推定器３００´´（ＡＩ）は数値の物理的な意味など理解できないので、０から１まで入力されるもの、１００から１０００まで入力されるもの、といったことしか理解できない。すると、行動推定器３００´´（ＡＩ）は、大きく動く数値の影響ばかりを考慮する可能性がある。すなわち図２１、２２などで説明したようなスレーブロボット７２０の場合には、行動推定器３００´´が１００から１０００に大きく動くトルクの影響ばかりを考慮して適切な指令値を推定できないおそれがある。
【０１０５】
そこで、前処理部４５０は、スレーブロボット５２０から出力されるこのような次元の違う物理量に対して前処理の一例として正規化処理を施し、正規化された値を行動推定器３００´´に出力する。正規化とは、一例を挙げると、ｄを各パラメータ、ｄｎを正規化後の各パラメータ、ｄｍａｘを各パラメータの最大値、ｄｍｉｎを各パラメータの最小値とした場合に、ｄｎ＝（ｄ−ｄｍｉｎ）／（ｄｍａｘ−ｄｍｉｎ）の式で数値を変換することによって、各パラメータの値を最小値０から最大値１の範囲内の値に変換する処理である。図２７は、前処理部４５０による正規化の一例を示す図である。図２７に示すように、前処理部４５０は、一例として、−１０００から１０００までの範囲のパラメータが入力された場合に、−１から１の範囲に正規化して出力することができる。前処理部４５０を設けることによって、入力される物理量に次元の違いがあっても同じ変動幅にすることができるので、行動推定器３００´´は、適切な指令値を推定することができる。
【０１０６】
また、前処理部４５０は、スレーブロボット５２０から出力される力応答について、力応答の第１の範囲における変動に対する正規化後の値の変動が、第１の範囲より大きい第２の範囲における変動に対する正規化後の値の変動よりも大きくなるように正規化を行うことができる。図２８は、前処理部４５０による正規化の一例を示す図である。図２８に示すように、前処理部４５０は、例えば０から５００までの第１の範囲においては、力応答の所定の変動に対して正規化後の値の変動は大きいが、例えば５０１から１０００までの第２の範囲においては、力応答の同じ所定の変動に対して正規化後の値の変動は小さくなる。これは、スレーブロボット５２０が行う物体操作の種類によっては、要求される力の粗さが異なるためである。例えば、非常に壊れやすい物体を操作するときであれば、数Ｎの力の差異によって物体の破損など、全く異なる結果を起こし得る。一方、ダンベルを持ち上げるような数１００Ｎの力を発揮するような物体操作であれば、数Ｎの力の差異があっても特に結果に違いが現れ難い。一方、角度の場合、例えば０ｒａｄから０．１ｒａｄに変える指令値は、１ｒａｄから１．１ｒａｄに変える指令値とさして物理的な相違点はない。画像情報においても、黒に近い画像が少し明るくなることと、白に近い画像が少し明るくなることにもさしたる違いはない。すなわち、力を入出力として取り扱うときに初めて「小さい数値における変動と大きい数値における変動」の意味が異なるのである。
【０１０７】
そこで、前処理部４５０は、スレーブロボット５２０から出力された位置応答および画像／音響／触覚情報に対しては、例えば図２７に示すように、小さい値から大きい値まで等しい重みでパラメータを変換する正規化を行う一方、スレーブロボット５２０から出力された力応答に対しては、例えば、図２８に示すように、小さい力の変動の影響をより大きく考慮できる正規化を行う。これにより、行動推定器３００´´は、小さな力の変動を、大きな力の変動よりも大きく評価することができる。
【０１０８】
なお、図２６では、前処理部４５０は、スレーブロボット５２０から出力された位置応答、力応答、および画像／音響／触覚情報に対して正規化処理を行う例を示したが、本実施形態はこれに限定されない。前処理部４５０は、例えば、行動推定器３００´´から出力される位置指令値および力指令値、またはスレーブロボット５２０に入力される位置制御入力および力制御入力に対して正規化を行うこともできる。
【０１０９】
また、上記では、前処理部４５０は、力応答の強弱に応じて変換の重み付けを変える例を示したが、力応答の強弱ではなく、力応答の長期的な変動に対する正規化後の値の変動と、短期的な変動に対する正規化後の値の変動とが異なるように正規化を行うことができる。つまり、前処理部４５０は、長期的に加えられるオフセットのような力と、短期的に変動する力に対して重み付けを変えることもできる。長期的に変動する力とは、例えば、ロボットの自重を支える力、紙面との接触力を維持する最低限の力、定規との接触を維持する最低限の力など、動作に対する拘束として作用し、ロボットをある一定の運動状態にする比較的大きな力のことである。また、短期的に変動する力とは、線の濃淡を決定する力、定規や紙面との摩擦力を調整する力など、ある一定の運動状態における微細な変動に相当する力のことである。
【０１１０】
また、図２９は、行動推定装置１００の変形例を示すブロック図である。図２６に示した行動推定装置１００´´と重複する部分の説明は省略し、図２６に示した行動推定装置１００´´と異なる部分のみ説明する。図２９の変形例は、図２６に示した行動推定装置１００´´に対して、力分類部４６０をさらに含む点が異なる。
【０１１１】
力分類部４６０は、スレーブロボット５２０から出力される力応答を受信し、受信した力応答の大きさに応じて複数の力応答に分類する。例えば、力分類部４６０は、１００から１０００までの範囲の力のパラメータを受信する場合に、１００から５００までの範囲のパラメータを第１の力（弱い力）に分類し、５０１から１０００までの範囲のパラメータを第１の力より大きい第２の力（強い力）に分類して、前処理部４５０へ出力する。この場合、前処理部４５０は、力分類部４６０によって分類された複数の力応答のそれぞれに対して正規化を行うことができる。つまり、前処理部４５０は、弱い力応答と強い力応答を全く別の入力として扱うことができる。このように入力の数を増やすことによって、前処理部４５０は、正規化を工夫しなくてもよく、例えば、図２７に示すような簡単な正規化を用いることができる。なお、図２９では、力分類部４６がスレーブロボット５２０から出力される力応答を、力応答の大きさに応じて複数に分類する例を示したが、これに限定されない。力分類部４６は、行動推定器３００´´から出力される力指令値、またはスレーブロボット５２０に入力される力制御入力、の少なくともいずれか１つを力指令値、または力制御入力の大きさに応じて複数に分類することもできる。これにより、力分類部４５０によって分類された複数の力応答、力指令値、または力制御入力を異なる力応答、力指令値、または力制御入力として扱うことができる。
【０１１２】
このように、スレーブロボット５２０から出力される力応答を複数の応答に分類し、それぞれの力応答をそもそも別の情報として取り扱い、前処理部４５０および行動推定器３００´´に対する入力の数を増やすことで、それぞれの力応答に対して全く別の反応をするＡＩを作ることができる。
【０１１３】
また、図１の例では、収集部２００は、マスタロボット５１０から出力される位置応答および力応答を技能データとして収集する例を示したが、本実施形態はこれに限定されない。収集部２００は、マスタロボット５１０から出力される力応答を、力応答の大きさに応じて複数の技能データに分けて収集することができる。収集部２００は、例えば、マスタロボット５１０から出力される力応答を、弱い力応答と、強い力応答に分けて収集することができる。この場合、収集部２００は、弱い力応答と、弱い力応答に対応する位置応答および画像／音響／触覚情報とを第１の技能データとして収集するとともに、強い力応答と、強い力応答に対応する位置応答および画像／音響／触覚情報とを第２の技能データとして収集することができる。
【０１１４】
例えば、収集部２００は、最初は弱い力応答に関する第１の技能データを収集して行動推定器３００に学習させる。次に収集部２００は、強い力応答に関する第２の技能データを収集して行動推定器３００に学習させる。行動推定器３００は、収集された第１の技能データと第２の技能データを統合して学習することによって、弱い力から強い力まで対応できるようになる。弱い力応答に関する技能データの収集とは、例えば、薄い線を描く、軽く消しゴムで線を消すなどの物体操作作業に関する技能データの収集である。また、強い力応答に関する技能データの収集とは、例えば、濃い線を描く、強く消しゴムで線を消すなどの物体操作作業に関する技能データの収集である。
【０１１５】
次に、技能データの前処理について説明する。図３０は、行動推定装置１００の変形例を示すブロック図である。図５に示した行動推定装置１００と重複する部分の説明は省略し、図５に示した行動推定装置１００と異なる部分のみ説明する。図３０の行動推定装置１００は、技能データに前処理を行う技能データ前処理部４７０を含む。
【０１１６】
技能データ前処理部４７０は、収集部２００によって収集された技能データを読み出し、読み出した技能データをスレーブロボット５２０（制御対象体）の動作周波数に応じた周波数によってサンプリングして間引き技能データを生成する。技能データ前処理部４７０は、生成した間引き技能データを行動推定器３００に送る。技能データ前処理部４７０は、収集部２００によって収集された技能データに含まれる位置情報、力情報、画像情報、音響情報、および触覚情報のそれぞれに対して、スレーブロボット５２０（制御対象体）の動作周波数に応じた周波数によってサンプリングして間引き技能データを生成することができる。
【０１１７】
ここで、スレーブロボット５２０の動作周波数に応じた周波数とは、スレーブロボット５２０の動作周波数の５倍から１００倍程度の周波数であり、より好ましくは、スレーブロボット５２０の動作周波数の２０倍から５０倍程度の周波数である。この点を、消しゴムを用いて線消しを行うためのバイラテラルシステム（図２１および図２２）を例に挙げて説明する。図２１および図２２のバイラテラルシステムにおいて、スレーブロボット７２０は、消しゴムＥをＹ軸の方向に１秒間に２往復移動させるとする。すなわち、スレーブロボット７２０のＹ軸の方向の動作周波数は２Ｈｚであるとする。この場合、スレーブロボット７２０の動作周波数に応じた周波数は、１０Ｈｚから２００Ｈｚであり、より好ましくは、４０Ｈｚから１００Ｈｚである。
【０１１８】
次に、技能データ前処理部４７０の処理の概念を説明する。図３１は、技能データ前処理部のサンプリング処理の概念を説明するための図である。技能データ前処理部４７０は、収集部２００によって収集された元の技能データ８１０に対して所定の周波数でサンプリングを行う、つまり丸印で示した複数のサンプリングポイント８１２の技能データを収集することによって、間引き技能データ８２０を生成する。上記間引き技能データ８２０はサンプリングポイント８１２間を直線で接続したものであるが、元の技能データ８１０とほぼ同様の概形をしていることがわかる。
【０１１９】
行動推定器３００は、技能データ前処理部４７０から送られた間引き技能データ８２０およびスレーブロボット５２０（制御対象体）から出力される応答に基づいて、スレーブロボット５２０（制御対象体）を自動行動させるための指令値を推定する。
【０１２０】
本実施形態によれば、行動推定器３００の処理負荷およびコストを抑制し、かつ、正しい指令値を得ることができる。すなわち、収集部２００によって収集された元の技能データ８１０が密である場合、元の技能データ８１０をそのまま使用すると、制御対象体を自動行動させるための行動推定器３００による指令値の推定処理の負荷が大きくなるので、行動推定器３００のコストが増大する。一方、収集部２００によって収集された元の技能データ８１０を粗く間引きしすぎると、正しい指令値を得ることが難しくなる。この点、本発明者らは、制御対象体の動作周波数の５倍から１００倍程度の周波数、より好ましくは、制御対象体の動作周波数の２０倍から５０倍の周波数によって技能データをサンプリングした間引き技能データを用いることによって、行動推定器３００の処理負荷およびコストを抑制し、かつ、正しい指令値を得ることができることを見出した。
【０１２１】
次に、技能データの前処理の他の例について説明する。技能データ前処理部４７０は、収集部２００によって収集された技能データを制御対象体の動作周波数に応じた周波数によって複数の異なるタイミングでサンプリングして複数の間引き技能データを生成することができる。
【０１２２】
この点について、図３２を用いて説明する。図３２は、技能データ前処理部の異なるタイミングでのサンプリング処理の概念を説明するための図である。技能データ前処理部４７０は、元の技能データ８１０に対して、丸印で示した複数のサンプリングポイント８１２の技能データを収集することによって、間引き技能データ８２０を生成する。また、技能データ前処理部４７０は、元の技能データ８１０に対して、サンプリングポイント８１２とは異なるタイミングの複数の三角印で示したサンプリングポイント８１４の技能データを収集することによって、間引き技能データ８３０を生成する。さらに、技能データ前処理部４７０は、元の技能データ８１０に対して、サンプリングポイント８１２およびサンプリングポイント８１４とは異なるタイミングの複数の四角印で示したサンプリングポイント８１６の技能データを収集することによって、間引き技能データ８４０を生成する。つまり、技能データ前処理部４７０は、１つの元の技能データ８１０から３つの間引き技能データ８２０、８３０、８４０を生成して、間引いた技能データを再利用することができる。
【０１２３】
このように技能データ前処理部４７０が複数の間引き技能データを生成した場合、行動推定器３００は、複数の間引き技能データ８２０、８３０、８４０および制御対象体から出力される応答に基づいて制御対象体を自動行動させるための指令値を推定する。
【０１２４】
本実施形態の有効性を検証するために、図２１および図２２のバイラテラルシステムを用いて、３つのモデルの比較実験を行った。第１のモデルは、多数の技能データを取得し、技能データの再利用を行わない手法である。すなわち、紙面Ｐの３つの高さ（例えば、２０ｍｍ、５０ｍｍ、８０ｍｍ）のそれぞれついて５回ずつ、消しゴムＥを用いた線消しの技能データを取得し、合計１５個の技能データに対してそれぞれ図３１の間引き処理を行って１５個の間引き技能データを生成した。
【０１２５】
第２のモデルは、少数の技能データを取得し、技能データの水増しを行う手法である。すなわち、紙面Ｐの３つの高さ（例えば、２０ｍｍ、５０ｍｍ、８０ｍｍ）のそれぞれついて１回ずつ、消しゴムＥを用いた線消しの技能データを取得し、合計３個の技能データに対してそれぞれ図３２の間引き再利用処理（２０通りの再利用処理）を行って６０個の間引き技能データを生成した。
【０１２６】
第３のモデルは、少数の技能データを取得し、技能データの再利用を行わない手法である。すなわち、紙面Ｐの３つの高さ（例えば、２０ｍｍ、５０ｍｍ、８０ｍｍ）のそれぞれついて１回ずつ、消しゴムＥを用いた線消しの技能データを取得し、合計３個の技能データに対してそれぞれ図３１の間引き処理を行って３個の間引き技能データを生成した。
【０１２７】
３つのモデルのそれぞれで生成した間引き技能データを用いてスレーブロボット７２０に自動行動させたところ、第１のモデルと第２のモデルの場合は、同等に良好に線消しを行うことができた。一方、第３のモデルの場合は、良好に線消しを行うことができなかった。これらの結果から、間引き技能データの再利用を行わない場合にはある程度の数の技能データの取得が必要ということがわかる。これに対して、本実施形態のように間引き技能データを再利用する場合には、少数の技能データしか取得していなくても、多数の技能データを取得した場合と同等に制御対象体の自動行動を実現することができる。したがって、本実施形態によれば、技能データの取得労力を削減し、かつ、制御対象体の良好な自動行動を実現することができる。
【０１２８】
次に、技能データの前処理の他の例について説明する。技能データ前処理部４７０は、収集部２００によって収集された技能データに含まれる複数種類の情報を、制御対象体の動作周波数に応じた異なる周波数でサンプリングして複数の間引き技能データを生成することができる。
【０１２９】
この点について、図２１および図２２のバイラテラルシステムを用いて文字「Ａ」を紙に書くタスクの実験を用いて説明する。図３３〜３５は、文字「Ａ」を紙に書くタスクの結果を示す図である。本実験では、机から紙面までの高さが１０ｍｍ、４０ｍｍ、７０ｍｍの３パターンで技能データを与え、紙面の高さが未知である状況でも文字「Ａ」を書くことができるか、技能データの間引き（サンプリング）の周期を変えながら比較した。第１のモデルは、技能データに含まれるすべての情報（位置情報および力情報）を短周期でサンプリング処理するモデルである。この場合、図３３に示すように、スレーブロボット７２０は、まったく文字「Ａ」を書くことができなかった。
【０１３０】
一方、第２のモデルは、技能データに含まれる位置情報および力情報のそれぞれに対して、短周期と長周期でサンプリング処理を行い、それぞれ別にＡＩを学習させるモデルである。この場合、図３４に示すように、スレーブロボット７２０は、文字「Ａ」の概形を正しく捉えることができたが、応答が振動的であった。
【０１３１】
他方、第３のモデルは、技能データに含まれる位置情報については長周期でサンプリング処理を行い、力情報については短周期でサンプリング処理を行って複数の間引き技能データを生成するモデルである。この場合、図３５に示すように、スレーブロボット７２０は、未知の紙面高さであっても正しく文字「Ａ」を書くことができた。
【０１３２】
なお、本実験のように文字「Ａ」を書くというタスクについては、位置情報を長周期、力情報を短周期でサンプリング処理を行うと良い結果が得られた。しかしながら、技能データのサンプリング処理は、必ずしも位置情報は長周期がよく力情報は短周期が良いというわけではなく、タスクに依存する。大事なことは、各情報(位置情報や力情報)でサンプリング周期を変えて良いこと、および、各情報について、図３４に示すように複数個の周期を持たせてもよいということである。また、本実験では、位置情報および力情報について説明したが、画像情報、音響情報、および触覚情報についてもこのように間引き周期を変えることは有効である。
【０１３３】
また、技能データ前処理部４７０は、上記の複数の間引き技能データ同士の相関が小さくなるように、収集部２００によって収集された技能データに含まれる複数種類の情報を、制御対象体の動作周波数に応じた異なる周波数でサンプリングして複数の間引き技能データを生成することができる。
【０１３４】
この点について図３６を用いて説明する。図３６は、間引き技能データ同士の相関について説明するための図である。機械学習の分野においては、入力同士の相関が小さくなるようにすると良いことが知られている。すなわち、技能データのサンプリング処理を短周期と長周期に分けるだけだと、図３６の左側に示すように、長周期でサンプリングした間引き技能データ８５０と、短周期でサンプリングした間引き技能データ８６０は、多少の違いはあるものの、相関は大きい。一方、例えば、技能データのサンプリング処理を「長周期」と「長周期−短周期」とすると、図３６の右側に示すように、長周期でサンプリングした間引き技能データ８５０と、長周期−短周期でサンプリングした間引き技能データ８７０の相関が小さくなる。このように、複数の間引き技能データ同士の相関が小さくなるようにサンプリング処理を行うことによって、制御対象体の良好な自動行動を実現することができる。
【符号の説明】
【０１３５】
１００  行動推定装置
２００  収集部
３００  行動推定器
４１０  位置制御器
４２０  力制御器
４５０  前処理部
４７０  技能データ前処理部
５００，６００  バイラテラルシステム
５１０，６１０  マスタロボット
５２０，６２０  スレーブロボット
８２０、８３０、８４０，８５０，８６０，８７０  間引き技能データ
【図１】
2019202900.tif 000003
【図２】
2019202900.tif 000004
【図３】
2019202900.tif 000005
【図４】
2019202900.tif 000006
【図５】
2019202900.tif 000007
【図６】
2019202900.tif 000008
【図７】
2019202900.tif 000009
【図８】
2019202900.tif 000010
【図９】
2019202900.tif 000011
【図１０】
2019202900.tif 000012
【図１１】
2019202900.tif 000013
【図１２】
2019202900.tif 000014
【図１３】
2019202900.tif 000015
【図１４】
2019202900.tif 000016
【図１５】
2019202900.tif 000017
【図１６】
2019202900.tif 000018
【図１７】
2019202900.tif 000019
【図１８】
2019202900.tif 000020
【図１９】
2019202900.tif 000021
【図２０】
2019202900.tif 000022
【図２１】
2019202900.tif 000023
【図２２】
2019202900.tif 000024
【図２３】
2019202900.tif 000025
【図２４】
2019202900.tif 000026
【図２５】
2019202900.tif 000027
【図２６】
2019202900.tif 000028
【図２７】
2019202900.tif 000029
【図２８】
2019202900.tif 000030
【図２９】
2019202900.tif 000031
【図３０】
2019202900.tif 000032
【図３１】
2019202900.tif 000033
【図３２】
2019202900.tif 000034
【図３３】
2019202900.tif 000035
【図３４】
2019202900.tif 000036
【図３５】
2019202900.tif 000037
【図３６】
2019202900.tif 000038
【手続補正書】
【提出日】令和2年12月28日(2020.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を遠隔操作可能なバイラテラルシステムを用いて複数の異なる条件において前記マスタ装置を介して前記スレーブ装置を遠隔操作したときの、前記マスタ装置の出力応答と前記スレーブ装置の出力応答とを技能データとして収集する収集部と、
前記収集部によって収集された前記技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する行動推定器と、
を含み、
前記収集部は、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、
前記行動推定器は、前記収集部によって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する、
行動推定装置。
【請求項２】
前記行動推定器は、前記スレーブ装置を自動行動させるための指令値として位置指令値および力指令値を推定するものであり、
前記行動推定装置は、
前記行動推定器によって推定された前記位置指令値および前記スレーブ装置から出力される位置応答に基づいて前記スレーブ装置に入力する位置制御入力を出力する位置制御器と、
前記行動推定器によって推定された前記力指令値および前記スレーブ装置から出力される力応答に基づいて前記スレーブ装置に入力する力制御入力を出力する力制御器と、
をさらに含む、
請求項１に記載の行動推定装置。
【請求項３】
前記マスタ装置は、操作者の操作に応じて動作するマスタロボットであり、
前記スレーブ装置は、前記マスタロボットの動作に応じて動作するスレーブロボットであり、
前記バイラテラルシステムは、前記マスタロボットと前記スレーブロボットとの間で双方向制御を行うことによって前記操作者が前記スレーブロボットからの反作用情報を認識して適応的な操作を行うことが可能である、
請求項１または２に記載の行動推定装置。
【請求項４】
前記スレーブ装置は、前記スレーブ装置の周辺環境を撮影可能な画像撮影部、前記スレーブ装置の周辺の音を取得可能な音響取得部、および前記スレーブ装置の触覚情報を取得可能な触覚取得部の少なくとも一方を含む、
請求項１から３のいずれか１項に記載の行動推定装置。
【請求項５】
前記スレーブ装置から出力される位置応答および力応答、前記行動推定器から出力される位置指令値および力指令値、または前記スレーブ装置に入力される位置制御入力および力制御入力、の少なくともいずれか１つに対して前処理を行う前処理部をさらに含む、
請求項１から４のいずれか１項に記載の行動推定装置。
【請求項６】
前記前処理部は、
前記スレーブ装置から出力される力応答、前記行動推定器から出力される力指令値、または前記スレーブ装置に入力される力制御入力、の少なくともいずれか１つについて、前記力応答、前記力指令値、または前記力制御入力の第１の範囲における変動に対する前処理後の値の変動が、前記第１の範囲より大きい第２の範囲における変動に対する前処理後の値の変動よりも大きくなるように前処理を行う、
請求項５に記載の行動推定装置。
【請求項７】
前記スレーブ装置から出力される力応答、前記行動推定器から出力される力指令値、または前記スレーブ装置に入力される力制御入力、の少なくともいずれか１つを前記力応答、前記力指令値、または前記力制御入力の大きさに応じて複数に分類する力分類部をさらに含み、
前記力分類部によって分類された複数の前記力応答、前記力指令値、または前記力制御入力を異なる力応答、力指令値、または力制御入力として扱う、
請求項５に記載の行動推定装置。
【請求項８】
前記収集部によって収集された前記技能データを前記スレーブ装置の動作周波数に応じた周波数によってサンプリングして間引き技能データを生成する技能データ前処理部をさらに含み、
前記行動推定器は、前記間引き技能データおよび前記スレーブ装置から出力される応答に基づいて前記スレーブ装置を自動行動させるための指令値を推定する、
請求項１から７のいずれか１項に記載の行動推定装置。
【請求項９】
前記技能データ前処理部は、前記収集部によって収集された前記技能データを前記スレーブ装置の動作周波数に応じた周波数によって複数の異なるタイミングでサンプリングして複数の間引き技能データを生成し、
前記行動推定器は、前記複数の間引き技能データおよびスレーブ装置から出力される応答に基づいて前記スレーブ装置を自動行動させるための指令値を推定する、
請求項８に記載の行動推定装置。
【請求項１０】
前記技能データ前処理部は、前記収集部によって収集された前記技能データに含まれる複数種類の情報を、前記スレーブ装置の動作周波数に応じた異なる周波数でサンプリングして複数の間引き技能データを生成し、
前記行動推定器は、前記複数の間引き技能データおよびスレーブ装置から出力される応答に基づいて前記スレーブ装置を自動行動させるための指令値を推定する、
請求項８に記載の行動推定装置。
【請求項１１】
前記技能データ前処理部は、前記複数の間引き技能データ同士の相関が小さくなるように、前記収集部によって収集された前記技能データに含まれる複数種類の情報を、前記スレーブ装置の動作周波数に応じた異なる周波数でサンプリングして複数の間引き技能データを生成する、
請求項１０に記載の行動推定装置。
【請求項１２】
前記スレーブ装置の動作周波数に応じた周波数は、前記動作周波数の５倍から１００倍程度の周波数である、
請求項８から１１のいずれか１項に記載の行動推定装置。
【請求項１３】
前記スレーブ装置の動作周波数に応じた周波数は、前記動作周波数の２０倍から５０倍の周波数である、
請求項１２に記載の行動推定装置。
【請求項１４】
マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を遠隔操作可能なバイラテラルシステムを用いて複数の異なる条件において前記マスタ装置を介して前記スレーブ装置を遠隔操作したときの、前記マスタ装置の出力応答と前記スレーブ装置の出力応答とを技能データとして収集する収集ステップと、
前記収集ステップによって収集された前記技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する行動推定ステップと、
を含み、
前記収集ステップは、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、
前記行動推定ステップは、前記収集ステップによって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する、
行動推定方法。
【請求項１５】
コンピュータに、
マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を遠隔操作可能なバイラテラルシステムを用いて複数の異なる条件において前記マスタ装置を介して前記スレーブ装置を遠隔操作したときの、前記マスタ装置の出力応答と前記スレーブ装置の出力応答とを技能データとして収集する収集ステップと、
前記収集ステップによって収集された前記技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する行動推定ステップと、
を実行させ、
前記収集ステップは、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、
前記行動推定ステップは、前記収集ステップによって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する、
行動推定プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
本願発明の行動推定プログラムの一実施形態は、コンピュータに、マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を操作可能なバイラテラルシステムを用いて複数の異なる条件において前記スレーブ装置を操作したときの技能データを収集する収集ステップと、前記収集ステップによって収集された前記技能データおよび制御対象体から出力される応答に基づいて前記制御対象体を自動行動させるための指令値を推定する行動推定ステップと、を実行させる。
本願発明の行動推定装置の一実施形態は、マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を遠隔操作可能なバイラテラルシステムを用いて複数の異なる条件において前記マスタ装置を介して前記スレーブ装置を遠隔操作したときの、前記マスタ装置の出力応答と前記スレーブ装置の出力応答とを技能データとして収集する収集部と、前記収集部によって収集された前記技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する行動推定器と、を含み、前記収集部は、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、前記行動推定器は、前記収集部によって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する。
本願発明の行動推定装置の一実施形態において、前記行動推定器は、前記スレーブ装置を自動行動させるための指令値として位置指令値および力指令値を推定するものであり、
前記行動推定装置は、前記行動推定器によって推定された前記位置指令値および前記スレーブ装置から出力される位置応答に基づいて前記スレーブ装置に入力する位置制御入力を出力する位置制御器と、前記行動推定器によって推定された前記力指令値および前記スレーブ装置から出力される力応答に基づいて前記スレーブ装置に入力する力制御入力を出力する力制御器と、をさらに含む。
本願発明の行動推定装置の一実施形態において、前記マスタ装置は、操作者の操作に応じて動作するマスタロボットであり、前記スレーブ装置は、前記マスタロボットの動作に応じて動作するスレーブロボットであり、前記バイラテラルシステムは、前記マスタロボットと前記スレーブロボットとの間で双方向制御を行うことによって前記操作者が前記スレーブロボットからの反作用情報を認識して適応的な操作を行うことが可能である。
本願発明の行動推定装置の一実施形態において、前記スレーブ装置は、前記スレーブ装置の周辺環境を撮影可能な画像撮影部、前記スレーブ装置の周辺の音を取得可能な音響取得部、および前記スレーブ装置の触覚情報を取得可能な触覚取得部の少なくとも一方を含む。
本願発明の行動推定装置の一実施形態は、前記スレーブ装置から出力される位置応答および力応答、前記行動推定器から出力される位置指令値および力指令値、または前記スレーブ装置に入力される位置制御入力および力制御入力、の少なくともいずれか１つに対して前処理を行う前処理部をさらに含む。
本願発明の行動推定装置の一実施形態において、前記前処理部は、前記スレーブ装置から出力される力応答、前記行動推定器から出力される力指令値、または前記スレーブ装置に入力される力制御入力、の少なくともいずれか１つについて、前記力応答、前記力指令値、または前記力制御入力の第１の範囲における変動に対する前処理後の値の変動が、前記第１の範囲より大きい第２の範囲における変動に対する前処理後の値の変動よりも大きくなるように前処理を行う。
本願発明の行動推定装置の一実施形態は、前記スレーブ装置から出力される力応答、前記行動推定器から出力される力指令値、または前記スレーブ装置に入力される力制御入力、の少なくともいずれか１つを前記力応答、前記力指令値、または前記力制御入力の大きさに応じて複数に分類する力分類部をさらに含み、前記力分類部によって分類された複数の前記力応答、前記力指令値、または前記力制御入力を異なる力応答、力指令値、または力制御入力として扱う。
本願発明の行動推定装置の一実施形態は、前記収集部によって収集された前記技能データを前記スレーブ装置の動作周波数に応じた周波数によってサンプリングして間引き技能データを生成する技能データ前処理部をさらに含み、前記行動推定器は、前記間引き技能データおよび前記スレーブ装置から出力される応答に基づいて前記スレーブ装置を自動行動させるための指令値を推定する。
本願発明の行動推定装置の一実施形態において、前記技能データ前処理部は、前記収集部によって収集された前記技能データを前記スレーブ装置の動作周波数に応じた周波数によって複数の異なるタイミングでサンプリングして複数の間引き技能データを生成し、前記行動推定器は、前記複数の間引き技能データおよびスレーブ装置から出力される応答に基づいて前記スレーブ装置を自動行動させるための指令値を推定する。
本願発明の行動推定装置の一実施形態において、前記技能データ前処理部は、前記収集部によって収集された前記技能データに含まれる複数種類の情報を、前記スレーブ装置の動作周波数に応じた異なる周波数でサンプリングして複数の間引き技能データを生成し、前記行動推定器は、前記複数の間引き技能データおよびスレーブ装置から出力される応答に基づいて前記スレーブ装置を自動行動させるための指令値を推定する。
本願発明の行動推定装置の一実施形態において、前記技能データ前処理部は、前記複数の間引き技能データ同士の相関が小さくなるように、前記収集部によって収集された前記技能データに含まれる複数種類の情報を、前記スレーブ装置の動作周波数に応じた異なる周波数でサンプリングして複数の間引き技能データを生成する。
本願発明の行動推定装置の一実施形態において、前記スレーブ装置の動作周波数に応じた周波数は、前記動作周波数の５倍から１００倍程度の周波数である。
本願発明の行動推定装置の一実施形態において、前記スレーブ装置の動作周波数に応じた周波数は、前記動作周波数の２０倍から５０倍の周波数である。
本願発明の行動推定方法の一実施形態は、マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を遠隔操作可能なバイラテラルシステムを用いて複数の異なる条件において前記マスタ装置を介して前記スレーブ装置を遠隔操作したときの、前記マスタ装置の出力応答と前記スレーブ装置の出力応答とを技能データとして収集する収集ステップと、前記収集ステップによって収集された前記技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する行動推定ステップと、を含み、前記収集ステップは、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、前記行動推定ステップは、前記収集ステップによって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する。
本願発明の行動推定プログラムの一実施形態は、コンピュータに、マスタ装置とスレーブ装置との間で双方向制御を行うことによって前記マスタ装置を介して前記スレーブ装置を遠隔操作可能なバイラテラルシステムを用いて複数の異なる条件において前記マスタ装置を介して前記スレーブ装置を遠隔操作したときの、前記マスタ装置の出力応答と前記スレーブ装置の出力応答とを技能データとして収集する収集ステップと、前記収集ステップによって収集された前記技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する行動推定ステップと、を実行させ、前記収集ステップは、前記バイラテラルシステムを用いて前記スレーブ装置を操作したときの前記マスタ装置の操作に対する前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データを収集し、前記行動推定ステップは、前記収集ステップによって収集された前記スレーブ装置の動作の追従遅れに応じて前記スレーブ装置を操作したときの技能データに基づいて前記スレーブ装置を自動行動させるための指令値を推定する。
【国際調査報告】
2019202900.tif 000039
2019202900.tif 000040
2019202900.tif 000041