(57)【要約】      （修正有）【課題】制御における通信や処理の遅延や環境の変化に対する耐性を向上させ、制御の負荷や破綻を抑制することができるシステムを提供すること。【解決手段】ユーザは、スレーブ１３と幾何形状が同一のロボットのマスタ１２を操作し、制御装置１１を介してスレーブ１３を制御する。制御装置１１は、マスタ１２の操作により生成されるスレーブ１３に対する制御コマンドを、その制御コマンドの生成タイミングにおいてスレーブ１３より供給されるセンサ情報とともに、システム内に生じる制御遅延を含む形で記録する。制御装置１１は、その制御コマンドとセンサ情報とに基づいて、制御遅延を考慮した時系列的に先の制御コマンドを予測し、その制御コマンドによりスレーブ１３を制御する。本発明は、情報処理システムに適用することができる。【選択図】図２
2007276052.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが操作する入力装置と、
制御対象である被制御装置と、
前記入力装置より入力された情報に基づいて、前記被制御装置を制御する制御装置と
を備える制御システムであって、
前記入力装置および前記被制御装置は、互いに同一の幾何形状を有する装置であり、
前記制御装置は、
ユーザが操作した前記入力装置より供給される前記入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する取得手段と、
前記取得手段により取得された前記センサ情報を、前記被制御装置を制御する制御コマンドに変換する変換手段と、
前記変換手段により変換されて得られた前記制御コマンドを、前記被制御装置に供給する供給手段と
を備える制御システム。
【請求項２】
制御対象である被制御装置と、
前記被制御装置を制御する制御装置と
を備える制御システムであって、
前記制御装置は、
前記被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する取得手段と、
前記取得手段により取得された前記センサ情報と、前記被制御装置を制御する制御コマンドとに基づいて、前記センサ情報に対して所定の時間先の時刻に前記被制御装置を制御する制御コマンドを予測して生成する予測手段と、
前記予測手段により予測されて生成された、新たな制御コマンドを、前記被制御装置に供給する供給手段と
を備える制御システム。
【請求項３】
ユーザが操作する入力装置と、
前記入力装置より入力された情報を記録する記録装置と
を備える記録システムであって、
制御対象である被制御装置をさらに有し、
前記制御装置は、
ユーザが操作した前記入力装置より供給される、前記入力装置に設けられた周囲の環境を計測するセンサより出力されるセンサ情報を取得する取得手段と、
前記取得手段により取得された前記センサ情報を、前記被制御装置を制御する制御コマンドに変換する変換手段と、
前記変換手段により変換されて得られた前記制御コマンドを、所定の時間毎に時系列データとして記録する記録手段と、
前記変換手段により変換されて得られた前記制御コマンドを、前記被制御装置に供給する供給手段と
を備える記録システム。
【請求項４】
制御対象である被制御装置を制御する情報処理装置であって、
ユーザが操作する、前記被制御装置と互いに同一の幾何形状を有する入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する第１の取得手段と、
前記第１の取得手段により取得された前記センサ情報を、前記被制御装置を制御する制御コマンドに変換する変換手段と、
前記変換手段により変換されて得られた前記制御コマンドを、前記被制御装置に供給する第１の供給手段と
を備える情報処理装置。
【請求項５】
前記入力装置に設けられた各入力部の入力ゲインを、それぞれ、互いに独立に調整するゲイン調整手段をさらに備える
請求項４に記載の情報処理装置。
【請求項６】
前記被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する第２の取得手段と、
前記第２の取得手段により取得された前記センサ情報を前記入力装置の前記ユーザに提示する提示手段と
をさらに備える請求項４に記載の情報処理装置。
【請求項７】
前記変換手段により変換されて生成された前記制御コマンドを時系列データとして記録する記録手段をさらに備える
請求項４に記載の情報処理装置。
【請求項８】
前記記録手段に記録された前記制御コマンドを時系列に沿って再生して前記被制御装置に出力させる再生手段をさらに備える
請求項７に記載の情報処理装置。
【請求項９】
前記被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する第２の取得手段をさらに備え、
前記記録手段は、前記第２の取得手段により取得された前記センサ情報を、前記制御コマンドとともに記録する
請求項７に記載の情報処理装置。
【請求項１０】
所定の予測モデルを用いて、前記第２の取得手段により取得された前記センサ情報および過去の前記制御コマンドに基づいて、前記センサ情報に対して所定の時間先の時刻に前記被制御装置を制御する制御コマンドを予測して生成する予測手段と、
前記予測手段により生成された新たな制御コマンドを前記被制御装置に供給する第２の供給手段と
をさらに備える請求項９に記載の情報処理装置。
【請求項１１】
前記記録手段により記録された前記センサ情報および前記制御コマンドを用いて、前記予測モデルの学習を行う学習手段をさらに備える
請求項１０に記載の情報処理装置。
【請求項１２】
前記予測モデルはリカレントニューラルネットワークである
請求項１１に記載の情報処理装置。
【請求項１３】
前記学習手段は、ベクトル・パターンのカテゴリー学習に用いられる自己組織化マップの手法を用いて、前記リカレントニューラルネットワークの学習を行う
請求項１２に記載の情報処理装置。
【請求項１４】
前記入力装置および前記被制御装置は、複数の関節を有するロボット装置である
請求項４に記載の情報処理装置。
【請求項１５】
前記入力装置と通信を行う第１の無線通信手段と、
前記被制御装置と通信を行う第２の無線通信手段と
をさらに備える請求項４に記載の情報処理装置。
【請求項１６】
制御対象である被制御装置を制御する情報処理装置の情報処理方法であって、
ユーザが操作する、前記被制御装置と互いに同一の幾何形状を有する入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得し、
取得された前記センサ情報を、前記被制御装置を制御する制御コマンドに変換し、
変換されて得られた前記制御コマンドを、前記被制御装置に供給する
ステップを含む情報処理方法。
【請求項１７】
制御対象である被制御装置を制御する処理を行うプログラムにおいて、
ユーザが操作する、前記被制御装置と互いに同一の幾何形状を有する入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得し、
取得された前記センサ情報を、前記被制御装置を制御する制御コマンドに変換し、
変換されて得られた前記制御コマンドを、前記被制御装置に供給する
ステップをコンピュータに実行させるプログラム。
【請求項１８】
請求項１７に記載のプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム、記録システム、情報処理装置および方法、プログラム、並びに記録媒体に関し、特に、制御における通信や処理の遅延や環境の変化に対する耐性を向上させ、制御の負荷や破綻を抑制することができるようにした制御システム、記録システム、情報処理装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
従来、可動な関節を複数有するロボットの姿勢や動作の制御において、一般的に、制御対象であるロボットは、その関節数が多く、自由度が高いので、操作者による指示入力操作を容易にするために、入力可能な指示の数が制御対象のロボットの自由度（関節）の数よりも少ないコントローラを用いる方法があった（例えば、特許文献１乃至特許文献３参照）（以下、第１の方法と称する）。このような場合、そのコントローラは、コントローラにおける１つの操作（１つの指示）に対して予めプログラミングされた複数の動作が割り当てられていたり、１つの操作が制御する自由度（関節）を切り替える切り替え機能が設けられていたり、ロボットが有する全自由度（全関節）のうち、予め定められた一部の自由度（関節）のみが制御可能で、その他の自由度（関節）については自律制御されるようになされていたりする。
【０００３】
例えば、特許文献１においては、特定の操作方法に、制御対象である二足歩行ロボットの特定の動作が割り当てられた遠隔操作装置が示されている。また、特許文献２においては、足操作入力装置を操作することにより、制御対象のロボットの自律制御機構に簡単な指令を与えたり、クラッチペダルの踏み込み動作により足操作の対象を切り替えたりすることが可能な超多自由度ロボット操縦装置が示されている。さらに、特許文献３においては、操作者が目的とする作業に対して直接的に関係して意識を集中する部位の操作を行えば、その他の部位については従属的に自律操作するようにして、操作者の作業を簡単化する遠隔制御方法が示されている。
【０００４】
また、ロボット制御の他の方法として、人間の動作を画像処理したり、若しくはセンサスーツなどによってセンシングしたりすることにより得られた情報を、ロボットの自由度構成に合わせて幾何変換し、その幾何変換された制御情報によりロボットを動作させる方法もあった（例えば、特許文献４参照）（以下、第２の方法と称する）。
【０００５】
さらに他の方法としては、制御対象の関節角軌道をモーションクリエータなどのソフトウェアを利用して作成したり、理想軌道上の通過点を指定したりして、制御対象の動作を予め教示しておき、その教示データを再生させて自律制御させるものもあった。その場合、例えば、一対のアームを制御する際に、各アームに互いの相対位置を計測させることによって位置補正を行わせる等、さらに動作中にロボットに環境とのインタラクションを行わせるものもあった（例えば、特許文献５および特許文献６参照）（以下、第３の方法と称する）。
【０００６】
【特許文献１】特開２００５−１１１６６１号公報
【特許文献２】特開２００５−０６６７５２号公報
【特許文献３】特開２００４−２７６１２３号公報
【特許文献４】特開２００５−０４６９３１号公報
【特許文献５】特開２００４−１１４１６１号公報
【特許文献６】特開昭６３−２１６１０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、例えば、特許文献１乃至特許文献３に記載のような第１の方法の場合、操作の動きと、その操作に対する制御対象の動きが一致または近似せず、ユーザが、制御対象の目的の動作に対する操作方法を直感的に把握することができない恐れがあった。また、自律制御とユーザの制御において、処理や通信の遅延等によって互いに時間的なずれが生じてしまい、制御が発散してしまう恐れがあった。
【０００８】
また、特許文献４に記載のような第２の方法の場合、人間の動きをロボットの幾何モデルに変換する必要があるため、制御対象であるロボットのデザインが人間と大幅にスケールや幾何形状において異なる場合、幾何変換の解が存在しなかったり、解が得られたとしても直感的に分かりにくいものになったりする恐れがあった。そのため、操作を行うユーザがロボットのモデル体系を考慮しながら操作する必要があり、ユーザの負担が大きくなってしまうという恐れもあった。
【０００９】
さらに特許文献５や特許文献６に記載のような第３の方法の場合、教示後は、ロボットを自律制御させるので、第１の方法や第２の方法よりも制御操作が容易であるが、多様に変化して予測が困難な実環境下においては、予め理想軌道を設定することができず、環境の変化に応じて適応的に教示行動を変化させることもができないため、ロボットと環境との多様な相互作用の教示を行うことができなかった。例えば、特許文献５や特許文献６に記載のように、アーム間の相対位置を計測して補正を行う場合、計測から補正までの間に、通信や情報処理等による遅延が生じる。従って、その遅延時間に対してアームの動きが激しい場合、制御が発散してしまう恐れがある。また、例えば、そのアームで、直接の制御対象ではないボールを動かすような場合、アームの動作を、そのボールの動き（環境の変化）に合わせて補正することができず、適切な動作制御を行うことができない恐れがある。
【００１０】
図１は、制御の遅延を説明するグラフであり、直接の制御対象であるロボットに、直接の制御対象でないボールの位置に応じた動作をさせる場合の、各変数の状態量の時間的変化を示すグラフである。
【００１１】
図１の上のグラフにおいて、点線で示される関節角コマンドθｍは、ロボットに供給される、所定の関節の角度を指定する制御コマンドであり、実線で示される関節角センサデータθsは、その所定の関節の角度（関節角）の状態を計測した計測結果を示す情報である。つまり、関節角コマンドθｍが目標値を示す制御情報であり、関節角センサデータθｓが関節角コマンドθｍによる制御結果を示す結果情報である。図１の下のグラフにおいては、そのロボットによって操作されるボールの位置座標が示されており、一点鎖線は、ボールのｘ座標（ボール座標ｘ）を示し、点線は、ボールのｙ座標（ボール座標ｙ）を示し、実線は、ボールのｚ座標（ボール座標ｚ）を示している。
【００１２】
図１の上のグラフに示されるように、関節角センサデータθｓには、関節角コマンドθｍに対して、両矢印１に示されるように、制御遅延が生じる。つまり、各時刻において、関節角センサデータθｓと関節角コマンドθｍとの間に、両矢印２で示されるように、偏差が生じる。
【００１３】
この制御遅延は、例えば、ロボットで観測された関節角センサデータをロボットの外部に置かれた遠隔のコンピュータ上の時系列予測器に転送する際の通信遅延、ロボットの外部に置かれた遠隔のコンピュータ上で計算された関節角コマンドをロボットに転送するのにかかる通信遅延、および、ロボットに転送された関節角コマンドに基づき実際にその関節角度にアクチュエータが回転されるまでの制御動作遅延などの要因によるものである。
【００１４】
このような制御遅延が存在する場合、例えば、時刻ｔにおける各データをまとめてベクトル化し、時刻ｔのベクトルデータ（θｍt，θｓt，ｘt，ｙt，ｚt）を用いて次の時刻の関節角コマンドを演算する自律制御においては、ベクトルの要素間に偏差が生じているため、適切な制御を行うことができないだけでなく、解が発散し、制御不可能となる恐れがある。
【００１５】
以上のように、従来の制御方法においては、制御遅延や環境の変化に対する耐性の高い自律制御を行うことができず、難易度の高い制御操作を行う必要があり、制御装置や操作者に対して多大な負荷をかけてしまったり制御が破綻してしまったりする恐れがあった。
【００１６】
本発明は、このような状況に鑑みてなされたものであり、制御における通信や処理の遅延や環境の変化に対する耐性を向上させ、制御の負荷や破綻を抑制することができるようにするものである。
【課題を解決するための手段】
【００１７】
本発明の一側面は、ユーザが操作する入力装置と、制御対象である被制御装置と、入力装置より入力された情報に基づいて、被制御装置を制御する制御装置とを備える制御システムであって、入力装置および被制御装置は、互いに同一の幾何形状を有する装置であり、制御装置は、ユーザが操作した入力装置より供給される入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する取得手段と、取得手段により取得されたセンサ情報を、被制御装置を制御する制御コマンドに変換する変換手段と、変換手段により変換されて得られた制御コマンドを、被制御装置に供給する供給手段とを備える制御システムである。
【００１８】
本発明の一側面は、制御対象である被制御装置と、被制御装置を制御する制御装置とを備える制御システムであって、制御装置は、被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する取得手段と、取得手段により取得されたセンサ情報と、被制御装置を制御する制御コマンドとに基づいて、センサ情報に対して所定の時間先の時刻に被制御装置を制御する制御コマンドを予測して生成する予測手段と、予測手段により予測されて生成された新たな制御コマンドを、被制御装置に供給する供給手段とを備える制御システムである。
【００１９】
本発明の一側面は、ユーザが操作する入力装置と、入力装置より入力された情報を記録する記録装置とを備える記録システムであって、制御対象である被制御装置をさらに有し、制御装置は、ユーザが操作した入力装置より供給される、入力装置に設けられた周囲の環境を計測するセンサより出力されるセンサ情報を取得する取得手段と、取得手段により取得されたセンサ情報を、被制御装置を制御する制御コマンドに変換する変換手段と、変換手段により変換されて得られた制御コマンドを、所定の時間毎に時系列データとして記録する記録手段と、変換手段により変換されて得られた制御コマンドを、被制御装置に供給する供給手段とを備える記録システムである。
【００２０】
本発明の一側面は、制御対象である被制御装置を制御する情報処理装置であって、ユーザが操作する、被制御装置と互いに同一の幾何形状を有する入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する第１の取得手段と、第１の取得手段により取得されたセンサ情報を、被制御装置を制御する制御コマンドに変換する変換手段と、変換手段により変換されて得られた制御コマンドを、被制御装置に供給する第１の供給手段とを備える情報処理装置である。
【００２１】
前記入力装置に設けられた各入力部の入力ゲインを、それぞれ、互いに独立に調整するゲイン調整手段をさらに備えることができる。
【００２２】
前記被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する第２の取得手段と、第２の取得手段により取得されたセンサ情報を入力装置のユーザに提示する提示手段とをさらに備えることができる。
【００２３】
前記変換手段により変換されて生成された制御コマンドを時系列データとして記録する記録手段をさらに備えることができる。
【００２４】
前記記録手段に記録された制御コマンドを時系列に沿って再生して被制御装置に出力させる再生手段をさらに備えることができる。
【００２５】
前記被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する第２の取得手段をさらに備え、記録手段は、第２の取得手段により取得されたセンサ情報を、制御コマンドとともに記録することができる。
【００２６】
所定の予測モデルを用いて、第２の取得手段により取得されたセンサ情報および過去の制御コマンドに基づいて、センサ情報に対して所定の時間先の時刻に被制御装置を制御する制御コマンドを予測して生成する予測手段と、予測手段により生成された新たな制御コマンドを被制御装置に供給する第２の供給手段とをさらに備えることができる。
【００２７】
前記記録手段により記録されたセンサ情報および制御コマンドを用いて、予測モデルの学習を行う学習手段をさらに備えることができる。
【００２８】
前記予測モデルはリカレントニューラルネットワークであることができる。
【００２９】
前記学習手段は、ベクトル・パターンのカテゴリー学習に用いられる自己組織化マップの手法を用いて、リカレントニューラルネットワークの学習を行うことができる。
【００３０】
前記入力装置および被制御装置は、複数の関節を有するロボット装置であることができる。
【００３１】
前記入力装置と通信を行う第１の無線通信手段と、被制御装置と通信を行う第２の無線通信手段とをさらに備えることができる。
【００３２】
本発明の一側面は、制御対象である被制御装置を制御する情報処理装置の情報処理方法であって、ユーザが操作する、被制御装置と互いに同一の幾何形状を有する入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得し、取得されたセンサ情報を、被制御装置を制御する制御コマンドに変換し、変換されて得られた制御コマンドを、被制御装置に供給するステップを実行する情報処理方法である。
【００３３】
制御対象である被制御装置を制御する処理を行うプログラムにおいて、ユーザが操作する、被制御装置と互いに同一の幾何形状を有する入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得し、取得されたセンサ情報を、被制御装置を制御する制御コマンドに変換し、変換されて得られた制御コマンドを、被制御装置に供給するステップをコンピュータに実行させることができる。
【００３４】
請求項１７に記載のプログラムが記録されている記録媒体とすることができる。
【００３５】
本発明の一側面においては、入力装置および被制御装置が互いに同一の幾何形状を有する装置として構成されており、制御装置において、ユーザが操作した入力装置より供給される入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報が取得され、取得されたセンサ情報が、被制御装置を制御する制御コマンドに変換され、変換されて得られた制御コマンドが、被制御装置に供給される。
【００３６】
本発明の一側面においては、制御装置において、被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報が取得され、その取得されたセンサ情報と、被制御装置を制御する制御コマンドとに基づいて、センサ情報に対して所定の時間先の時刻に被制御装置を制御する制御コマンドが予測されて生成され、その予測されて生成された新たな制御コマンドが、被制御装置に供給される。
【００３７】
本発明の一側面においては、制御装置においては、ユーザが操作した入力装置より供給される、入力装置に設けられた周囲の環境を計測するセンサより出力されるセンサ情報が取得され、その取得されたセンサ情報が、被制御装置を制御する制御コマンドに変換され、その変換されて得られた制御コマンドが、所定の時間毎に時系列データとして記録されるとともに、被制御装置に供給される。
【００３８】
本発明の一側面においては、ユーザが操作する、被制御装置と互いに同一の幾何形状を有する入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報が取得され、その取得されたセンサ情報が、被制御装置を制御する制御コマンドに変換され、その変換されて得られた制御コマンドが、被制御装置に供給される。
【発明の効果】
【００３９】
本発明の側面によれば、制御における通信や処理の遅延や環境の変化に対する耐性を向上させ、制御の負荷や破綻を抑制することができる。
【００４０】
特に、自律制御用の情報を収集する際に、制御対象（ロボットの動作制御の場合、ロボット）に対して送信される制御コマンドと、その制御対象（ロボット）から受信された関節の角度センサ、視覚センサ、および音声センサ等の各種センサの出力（センサ情報）を統合化して保存することにより、制御コマンドとセンサ情報を、同期を取りながら時系列情報として収集することができる。
【００４１】
また、その収集された制御コマンドを制御対象（ロボット）において再生することによって環境とのインタラクションを行わせることができ、システムが有する制御遅延を反映した自律制御用の時系列教示データを作成することができる。
【００４２】
さらに、制御コマンドの入力において、制御対象（ロボット）と実質的に同一の幾何形状を有する装置（すなわち、幾何モデルが共通のロボット）を用いて、そのセンサ情報から制御コマンドを生成するようにすることにより、幾何モデルへの変換等の処理が不要になるので、制御コマンドの生成が容易になる。また、その入力装置（制御対象と幾何モデルが同じロボット）の各制御パラメータ（ロボットの場合、各関節のサーボのゲイン）をそれぞれ個別に値を設定することにより、各関節のゲインを適切に設定することができ、不必要な関節を動かさずに教示を行うことが可能になる。つまり、教示時に余分な自由度を制御する（ロボットの場合、関節を手で支える）必要がなくなるので、教示者に及ぼす負担を軽減させることができる。
【００４３】
制御対象（ロボット）と実質的に同一の幾何形状を有する装置（すなわち、同じ幾何モデルを有するロボット）の操作によって生成された制御コマンドを制御対象においてリアルタイムに再生することにより、制御を行う操作者は、制御対象の制御結果（動き）を確認しながら情報を入力し、制御コマンドを作成させることができる。つまり、操作者は、制御対象の制御結果（動き）を確認しながらリアルタイムに教示データを生成することができる。このようにすることにより、多様に変化して予測が困難な環境においても、ロボットと環境との複雑な相互作用の教示を行うことができる。
【発明を実施するための最良の形態】
【００４４】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００４５】
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加されたりする発明の存在を否定するものではない。
【００４６】
本発明の一側面は、ユーザが操作する入力装置（例えば、図３のマスタ１２）と、制御対象である被制御装置（例えば、図３のスレーブ１３）と、入力装置より入力された情報に基づいて、被制御装置を制御する制御装置（例えば、図３の制御装置１１）とを備える制御システム（例えば、図３の制御システム１０Ａ）であって、入力装置および被制御装置は、互いに同一の幾何形状を有する装置であり、制御装置は、ユーザが操作した入力装置より供給される入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する取得手段（例えば、図７の受信部７２）と、取得手段により取得されたセンサ情報を、被制御装置を制御する制御コマンドに変換する変換手段（例えば、図７のセンサデータ・コマンド変換部６３）と、変換手段により変換されて得られた制御コマンドを、被制御装置に供給する供給手段（例えば、図７の送信部７３）とを備える制御システムである。
【００４７】
本発明の一側面は、制御対象である被制御装置（例えば、図５のスレーブ１３）と、被制御装置を制御する制御装置（例えば、図５の制御装置１１）とを備える制御システム（例えば、図５の学習システム１０Ｃ）であって、制御装置は、被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する取得手段（例えば、図８の受信部１０２）と、取得手段により取得されたセンサ情報と、被制御装置を制御する制御コマンドとに基づいて、センサ情報に対して所定の時間先の時刻に被制御装置を制御する制御コマンドを予測して生成する予測手段（例えば、図８の時系列予測器９３）と、予測手段により予測された生成された、新たな制御コマンドを、被制御装置に供給する供給手段（例えば、図８の送信部１０１）とを備える制御システムである。
【００４８】
本発明の一側面は、ユーザが操作する入力装置（例えば、図４のマスタ１２）と、入力装置より入力された情報を記録する記録装置（例えば、図４の制御装置１１）とを備える記録システム（例えば、図４の記録システム１０Ｂ）であって、制御対象である被制御装置（例えば、図４のスレーブ１３）をさらに有し、制御装置は、ユーザが操作した入力装置より供給される入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する取得手段（例えば、図７の受信部７２）と、取得手段により取得されたセンサ情報を、被制御装置を制御する制御コマンドに変換する変換手段（例えば、図７のセンサデータ・コマンド変換部６３）と、変換手段により変換されて得られた制御コマンドを、所定の時間毎に時系列データとして記録する記録手段（例えば、図７のデータ記録部２２）と、変換手段により変換されて得られた制御コマンドを、被制御装置に供給する供給手段（例えば、図７の送信部７３）とを備える記録システムである。
【００４９】
本発明の一側面は、制御対象である被制御装置（例えば、図２のスレーブ１３）を制御する情報処理装置（例えば、図２の制御装置１１）であって、ユーザが操作する、被制御装置と互いに同一の幾何形状を有する入力装置（例えば、図２のマスタ１２）に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する第１の取得手段（例えば、図７の受信部７２）と、第１の取得手段により取得されたセンサ情報を、被制御装置を制御する制御コマンドに変換する変換手段（例えば、図７のセンサデータ・コマンド変換部６３）と、変換手段により変換されて得られた制御コマンドを、被制御装置に供給する第１の供給手段（例えば、図７の送信部７３）とを備える情報処理装置である。
【００５０】
前記入力装置に設けられた各入力部の入力ゲインを、それぞれ、互いに独立に調整するゲイン調整手段（例えば、図７のサーボゲイン設定部６１）をさらに備えることができる。
【００５１】
前記被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する第２の取得手段（例えば、図７の受信部７４）と、第２の取得手段により取得されたセンサ情報を入力装置のユーザに提示する提示手段（例えば、図７の表示部５３）とをさらに備えることができる。
【００５２】
前記変換手段により変換されて生成された制御コマンドを時系列データとして記録する記録手段（例えば、図７のデータ記録部２２）をさらに備えることができる。
【００５３】
前記記録手段に記録された制御コマンドを時系列に沿って再生して被制御装置に出力させる再生手段（例えば、図７の再生部６６）をさらに備えることができる。
【００５４】
前記被制御装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得する第２の取得手段（例えば、図７の受信部７４）をさらに備え、記録手段は、第２の取得手段により取得されたセンサ情報を、制御コマンドとともに記録する（例えば、図７のデータ統合部６５）ことができる。
【００５５】
所定の予測モデルを用いて、第２の取得手段により取得されたセンサ情報および過去の制御コマンドに基づいて、センサ情報に対して所定の時間先の時刻に被制御装置を制御する制御コマンドを予測して生成する予測手段（例えば、図８の時系列予測器９３）と、予測手段により生成された新たな制御コマンドを被制御装置に供給する第２の供給手段（例えば、図８の送信部１０１）とをさらに備えることができる。
【００５６】
前記記録手段により記録されたセンサ情報および制御コマンドを用いて、予測モデルの学習を行う学習手段（例えば、図８のデータ学習部２３）をさらに備えることができる。
【００５７】
前記予測モデルはリカレントニューラルネットワーク（例えば、図９）であることができる。
【００５８】
前記学習手段は、ベクトル・パターンのカテゴリー学習に用いられる自己組織化マップの手法を用いて、リカレントニューラルネットワークの学習を行う（例えば、図１０のダイナミクス記憶ネットワーク１３１）ことができる。
【００５９】
前記入力装置および被制御装置は、複数の関節を有するロボット装置（例えば、図１５のロボット）であることができる。
【００６０】
前記入力装置と通信を行う第１の無線通信手段（例えば、図７の無線通信部６２）と、被制御装置と通信を行う第２の無線通信手段（例えば、図７の無線通信部６４）とをさらに備えることができる。
【００６１】
本発明の一側面は、制御対象である被制御装置を制御する情報処理装置の情報処理方法であって、ユーザが操作する、被制御装置と互いに同一の幾何形状を有する入力装置に設けられた、周囲の環境を計測するセンサより出力されるセンサ情報を取得し（例えば、図２２のステップＳ２２）、取得されたセンサ情報を、被制御装置を制御する制御コマンドに変換し（例えば、図２２のステップＳ２４）、変換されて得られた制御コマンドを、被制御装置に供給する（例えば、図２２のステップＳ２５）ステップを実行する情報処理方法である。
【００６２】
次に、本発明を適用した実施の形態について、図面を参照して説明する。
【００６３】
図２は、本発明を適用した情報処理システムの構成例を示すブロック図である。
【００６４】
図２の情報処理システム１０は、制御装置１１が、互いに同一の幾何形状を有する、複数の関節（自由度）を有する人型の２足歩行ロボットであるマスタ１２およびスレーブ１３を制御するシステムである。制御装置１１、マスタ１２、およびスレーブ１３は、互いに、無線通信により制御コマンドやセンサ情報等の各種情報の授受を行う。
【００６５】
制御装置１１は、例えば、パーソナルコンピュータ等の情報処理装置により構成され、情報処理システム１０全体の制御に関する処理を行う。マスタ１２は、ユーザに操作されて、動きに関する情報の入力を受け付ける入力インタフェースとして構成され、スレーブ１３は制御対象として構成される。マスタ１２およびスレーブ１３の各関節には、サーボモータを用いたアクチュエータが設けられており、このアクチュエータの動作により関節の角度が決定される。また、マスタ１２およびスレーブ１３には、各関節の角度（関節角）を計測する関節角センサ、CCD（Charge Coupled Device）やCMOS（Complementary Metal Oxide Semiconductor）を利用したカメラ等の周囲の画像情報を取得する視覚センサ、マイク等の周囲の音声情報を取得する音声センサ等の各種センサが設けられている。
【００６６】
マスタ１２とスレーブ１３は、互いに同一の位置に関節（アクチュエータ）と関節角センサを有する、自由度配置が共通のロボットにより構成される。つまり、マスタ１２とスレーブ１３は、制御装置１１によるロボットの動作や姿勢の制御（図１の情報処理システム１０）において、同一の幾何形状を有し、制御装置１１からみて互いに同一の幾何的特性を有するように構成されている（つまり、制御に関する幾何モデルが共通である）。例えば、制御装置１１は、共通の制御コマンドで、マスタ１２の動作を制御することも、スレーブ１３の動作を制御することができる。さらに、マスタ１２から制御装置１１に供給されるセンサ情報と、スレーブ１３から制御装置１１に供給されるセンサ情報とが互いに共通（同種のセンサの出力）である。なお、さらにマスタ１２とスレーブ１３の筐体の形状、色、大きさ等も互いに同一であるようにしてももちろんよい。  
【００６７】
情報処理システム１０は、ユーザがマスタ１２をコントローラとして操作し、そのマスタ１２の動きに応じて制御装置１１が制御コマンドを生成し、スレーブ１３に同様の動きを行わせることによって環境とのインタラクション（相互作用）を行わせるシステムである。例えば、情報処理システム１０において、制御装置１１は、スレーブ１３に対して、時系列予測器を用いることにより、スレーブ１３のセンサ情報に基づいた制御（自律制御）を行う。また、制御装置１１は、センサ情報や制御コマンド等の時系列データを学習データ（教示データ）として、時系列予測器の予測モデルの学習を行う。さらに、制御装置１１は、教示者であるユーザがマスタ１２を操作して入力する情報（つまりマスタ１２の動き）を、スレーブ１３に再現させるとともに、その動きを再現するスレーブ１３より供給されるセンサ情報を制御コマンドとを統合して、時系列データとして記録する。この時系列データは、例えば、学習データ（教示データ）として、後で上述した学習に利用される。
【００６８】
従って、情報処理システム１０は、例えば、以下のような複数の側面を有する。つまり、情報処理システム１０は、ユーザが、マスタ１２をコントローラとして操作することにより、スレーブ１３を動作させる制御システムとしての側面、ユーザがマスタ１２に対して行った操作履歴を記録する記録システムとしての側面、および、スレーブ１３のセンサ情報に基づいた自律制御を行うとともに、制御コマンドの生成に用いられる時系列予測器の予測モデルを学習する学習システムとしての側面をそれぞれ有する。以下に、各側面について説明する。
【００６９】
図３は、図２の情報処理システム１０の、制御システムとしての側面を説明する図である。
【００７０】
図３に示される制御システム１０Ａは、情報処理システム１０の一側面であり、ユーザ１２Ａが、マスタ１２をコントローラとして操作することにより、制御装置１１を介して、スレーブ１３を動作させるシステムである。
【００７１】
この制御システム１０Ａにおける制御装置１１は、マスタ１２およびスレーブ１３を制御するマスタスレーブ制御部２１を有する。そのマスタスレーブ制御部２１は、マスタ１２に対して、マスタ１２の各関節に設けられたサーボモータのゲインを設定するサーボゲイン設定コマンド３１を無線通信により供給することにより、マスタ１２の各関節の硬さ（動きやすさ、すなわち、関節の角度の変えやすさ）の程度をそれぞれ制御する。つまり、マスタスレーブ制御部２１は、ユーザ１２Ａの操作に対して、動きやすい関節や硬い関節（動かしてもよい関節や固定すべき関節）を設定することができる。つまり、ユーザは、効率よく教示を行うことができる。
【００７２】
マスタ１２は、ユーザが、直接関節（例えば双腕）を動かすことによってスレーブ１３に実行して欲しい動作を、各関節の角度によって教示するためのインタフェースとして構成される。ユーザによって動作させられたマスタ１２の姿勢の変化は、関節角度センサのセンサ情報（時系列情報）として逐次的に（定期的または不定期に）無線を通じて制御装置１１に送信される。
【００７３】
マスタスレーブ制御部２１は、そのマスタ１２から供給された関節角センサデータ３２に基づいて、スレーブ１３の各関節（各関節に設けられたアクチュエータ）の動作を制御する関節角コマンド３３を生成し、その関節角コマンド３３を無線通信によりスレーブ１３に供給する。
【００７４】
スレーブ１３は、マスタ１２で生成された関節角コマンドに対応する動きを再現し、実環境とインタラクションすることで、自らの関節角センサやコマンド情報と共に、環境を示すセンサ情報を併せて取得するために機能する。供給された関節角コマンド３３に基づいて、各関節のアクチュエータを動作させ、関節角コマンド３３に対応する動作を行う。つまり、スレーブ１３は、ユーザ１２Ａにより操作されたマスタ１２の動きをトレースする。ユーザ１２Ａは、そのスレーブ１３の動作を視認し、そのスレーブ１３の動きに基づいて、次の動作をマスタ１２に対して入力する（マスタ１２を操作する）。つまり、ユーザ１２Ａがスレーブ１３を視認することにより、制御結果（スレーブ１３の動き）が制御指示の入力（マスタ１２の操作）にフィードバックされる。
【００７５】
以上のように、ユーザ１２Ａは、制御結果を確認しながら制御指示を入力することができるので、例えば、直接の制御対象でないボール１４に対する動作をスレーブ１３に行わせるような、多様に変化して予測が困難な環境においても、ボール１４とスレーブ１３の動きを確認しながら容易に適切な制御指示を入力することができる。
【００７６】
また、入力インタフェースであるマスタ１２と、制御対象であるスレーブ１３が同一の幾何形状を有するロボットであり、制御するパラメータ（関節）が共通であるので、ユーザ１２Ａは、直感的にマスタ１２Ａの操作方法を理解することができるので、容易にスレーブ１３を制御することができる。また、ユーザ１２Ａの制御指示を制御対象の幾何モデルに変換する必要が無いので、マスタスレーブ制御部２１は、その負荷が低減される。
【００７７】
さらに、マスタスレーブ制御部２１がサーボゲイン設定コマンド３１を無線通信により供給することにより、ユーザ１２Ａは、例えば、マスタ１２の全身の関節のうち、胴体や足等の動かす必要のない関節を動かさずに、目的の双腕の関節のみを動かす等、適切な操作を容易に実現することができる。このとき、ユーザ１２Ａは、スレーブ１３やボール１４の現在の動きから、その将来の動きを予測し、その動きをマスタ１２に入力することができる。つまり、ユーザ１２Ａのこのような操作により、制御装置１１は、制御における通信や処理の遅延や環境の変化に対する耐性を向上させ、制御の負荷や破綻を抑制することができる。
【００７８】
図４は、図２の情報処理システム１０の、記録システムとしての側面を説明する図である。
【００７９】
図４に示される記録システム１０Ｂは、情報処理システム１０の一側面であり、ユーザ１２Ａのマスタ１２の操作履歴を記録するシステムである。
【００８０】
図３の場合と同様に、制御装置１１のマスタスレーブ制御部２１は、サーボゲイン設定コマンド３１をマスタ１２に供給することによって、マスタ１２の必要な関節のみを可動とし、マスタ１２は、ユーザ１２Ａの操作に対して、各関節の角度（関節角）を示す関節角センサデータ３２を制御装置１１に供給する。
【００８１】
また、制御装置１１のマスタスレーブ制御部２１は、その関節角センサデータ３２から関節角コマンド３３を生成し、スレーブ１３に供給する。スレーブ１３は、その関節角コマンド３３に応じて各関節を動作させ、マスタ１２の動きをトレースする。ユーザ１２Ａは、そのスレーブ１３の動きとボール１４の位置等を視認しながらマスタ１２を操作することにより、制御結果を制御指示入力にフィードバックさせる。
【００８２】
以上は、図３の場合と同様であるが、図４の場合、さらに、スレーブ１３は、関節角センサデータ３４、視覚センサデータ３５、および音声センサデータ３６を制御装置１１に供給する。スレーブ１３は、指定された関節角コマンド３３を実行する一方、自己の姿勢情報およびボール１４等の外部環境情報を、各種センサによって逐次的に観測している。例えば、エンコーダによる関節角度情報よりなる関節角センサデータ３４、カメラによる画像情報（ボール１４の座標）よりなる視覚センサデータ３５、およびマイクロホンによる音声情報（音圧変化）よりなる音声センサデータ３６などである。観測されたこれらのセンサ情報は逐次的に無線を通じて制御装置１１に送信される。
【００８３】
制御装置１１のマスタスレーブ制御部２１は、スレーブ１３に供給する関節角コマンド３３と、スレーブ１３より供給された関節角センサデータ３４、視覚センサデータ３５、および音声センサデータ３６とを統合したベクトルデータを、所定の時間毎に生成し、その各ベクトルデータを時系列データとしてデータ記録部２２に供給して記録させる。データ記録部２２は、例えば、ハードディスク、半導体メモリ、光磁気ディスク等の所定の記録媒体を有しており、マスタスレーブ制御部２１より供給される時系列データをその記録媒体に記録する。
【００８４】
このデータ記録部２２に記録された時系列データは、様々な処理に利用することができる。例えば、マスタスレーブ制御部２１は、記録時より時間的に後の、任意の時刻に、データ記録部２２より関節角コマンド３３を時系列に沿って読み出し、スレーブ１３に供給することにより、スレーブ１３を利用してマスタ１２の動きを任意の時刻に再現することができる。すなわち、その再現を複数回行うことも可能である。また、記録された時系列データの編集も可能になる。さらに、他の装置や他のシステムでの利用も可能になる。
【００８５】
もちろん、制御装置１１自身が、後述する学習機能の教示データとして、この時系列データを利用することもできる。データ記録部２２は、関節角コマンド３３とともに、関節角コマンドが生成されたのと同時刻にスレーブ１３より得られた関節角センサデータ３４、視覚センサデータ３５、および音声センサデータ３６をベクトルデータとして記録する。つまり、データ記録部２２は、システム内で発生する通信遅延や処理遅延を含む状態で時系列データを記録する。これにより、制御装置１１は、後述するように、学習処理により、制御遅延を考慮した予測モデルの学習を行うことができる。つまり、制御装置１１は、制御における通信や処理の遅延に対する耐性を向上させ、制御の負荷や破綻を抑制することができる。
【００８６】
また、その関節角コマンドの記録の際に、スレーブ１３がその関節角コマンドによって動作するので、ユーザ１２Ａは、制御結果を視認しながらマスタ１２を操作することができ、データ記録部２２は、適切な制御が行われたときの関節角コマンド３３を記録することができる。
【００８７】
なお、図３の制御システムの場合と同様に、制御装置１１のマスタスレーブ制御部２１は、例えば、マスタ１２の双腕の関節のみを、外部から自由に動かせるように、関節角度制御のサーボゲインを切った状態にし、教示者となるユーザに、マスタ１２の双腕を把持し、スレーブに行って欲しい行動を遠隔で指令するように双腕の各関節角のみを操作させることができる。このサーボゲインは、各関節に個別に値を設定することができるようになされており、マスタスレーブ制御部２１は、タスクを実行するために必要となる関節角のみゲインを落とし、その他の関節角は動かないようにゲインを入れておくことや、より可動範囲を広げたい関節角のゲインのみ低いゲインを設定することにより、ユーザが不必要な自由度を動かさずに教示を行うことができるようにすることができる。
【００８８】
図５は、図２の情報処理システム１０の、学習システムとしての側面を説明する図である。
【００８９】
図５に示される学習システム１０Ｃは、情報処理システム１０の一側面であり、スレーブ１３をそのセンサ情報による自律制御を行うとともに、その制御コマンドの生成の際に用いられる時系列予測器の予測モデルを学習する学習システムである。
【００９０】
制御装置１１のデータ学習部２３は、データ記録部２２に記録されている、図４の記録システム１０Ｂにおいて記録されたような時系列データ、すなわち、関節角コマンド３３、関節角センサデータ３４、視覚センサデータ３５、および音声センサデータ３６を含むベクトルデータに基づいて、時系列予測器の予測モデルの学習を行う。
【００９１】
この予測モデルは、スレーブ１３より供給されるセンサ情報や過去の制御コマンドに基づいて、スレーブ１３を制御する次のステップの制御コマンドを生成する。ところで現実の学習システム１０Ｃにおいては、スレーブ１３において生成された関節角センサデータ３４、視覚センサデータ３５、および音声センサデータ３６が、制御装置１１に供給され、制御装置１１がそれらから関節角コマンド３３を生成し、その関節角コマンド３３がスレーブ１３に供給され、スレーブ１３がその関節角コマンドを実行し、実際の動作となるまでに、タイムラグ、すなわち制御遅延が発生する。
【００９２】
この制御遅延は、例えば、スレーブ１３で観測された関節角センサデータ３４を制御装置１１の時系列予測器に転送する際の通信遅延、制御装置１１において算出された関節角コマンド３３をスレーブ１３に転送する際の通信遅延、および、スレーブ１３において、関節角コマンド３３に基づいて実際にその関節角度にアクチュエータが回転されるまでの制御動作遅延などの要因によるものである。
【００９３】
そこで、データ学習部２３は、この制御遅延による制御の発散を抑制し、制御遅延に対する耐性を向上させるために、上述したような予め制御遅延を含む時系列データを教示データとし、その制御遅延を考慮して適切な最新の関節角コマンド３３、すなわち、各種のセンサ情報に対して制御遅延時間分将来の動作を予測し、その動作をスレーブ１３に行わせるための関節角コマンド３３を予測して生成する時系列予測器の予測モデルの学習を行う。つまり、データ学習部２３は、このような時系列予測器の予測モデルの予測精度を向上させるために学習を行う。この学習についての詳細は後述する。
【００９４】
スレーブ制御部２４は、このデータ学習部２３により学習された予測モデルを用いて、スレーブ１３より供給される、関節角センサデータ３４、視覚センサデータ３５、および音声センサデータ３６等のセンサ情報より、制御遅延時間分先の時刻に対応する関節角コマンド３３を予測し、それをスレーブ１３に供給する。
【００９５】
このように制御装置１１は、時系列予測器により予測モデルを用いて、制御遅延時間分先の時刻に対応する関節角コマンド３３を予測して生成することにより、制御における通信や処理の遅延に対する耐性を向上させ、制御の負荷や破綻を抑制することができる。また、制御装置１１は、予め制御遅延を含む時系列データを教示データとして予測モデルの学習を行うので、予測精度をさらに向上させることができる。
【００９６】
以上のように情報処理システム１０は、制御システム、記録システム、および学習システムとしての各側面を有している。従って、情報処理システム１０は、スレーブ１３の自律制御において、センサ情報から制御遅延時間分先の時刻に対応する制御コマンドを予測する予測モデルの学習用の教示データを生成して記録する教示処理と、生成された教示データを用いてその予測モデルの学習を行い、スレーブ１３のセンサ情報に基づいたスレーブ１３の自律制御を行う学習制御処理を行うことができる。
【００９７】
次に、情報処理システム１０を構成する各装置について説明する。図６は、図２の制御装置１１の構成例を示すブロック図である。
【００９８】
図６において、制御装置１１は、制御装置１１の各部を制御する主制御部５１、キーボードやマウスに代表される入力デバイスを有し、制御装置１１のユーザからの入力情報を受け付け、それを主制御部５１に供給する入力部５２、CRT（Cathode Ray Tube）モニタ、LCD（Liquid Crystal Display）、または有機ELディスプレイ（OELD（Organic ElectroLuminescence Display））等のモニタを有し、主制御部５１より供給される画像情報を表示する表示部５３、マスタ１２およびスレーブ１３を制御するマスタスレーブ制御装置２１、ハードディスクや半導体メモリ等に代表される記録媒体を有し、時系列データを記録するデータ記録部２２、時系列データを用いた学習処理により、予測モデルを学習するデータ学習部２３、予測モデルを用いて、スレーブ１３のセンサ情報から制御コマンドを予測し、スレーブ１３を制御するスレーブ制御装置２４、並びに、表示部５３の表示を制御するデータ表示制御部２５を有している。
【００９９】
入力部５２、表示部５３、並びに、マスタスレーブ制御部２１乃至データ表示制御部２５は、主制御部５１の制御の下、各処理を行う。
【０１００】
図７は、図６の制御装置１１の教示処理に関する主な構成を示している。教示処理の説明に不要な部分は省略している。
【０１０１】
この教示時の制御装置１１Ａは、主制御部５１、入力部５２、表示部５３、マスタスレーブ制御部２１、データ記録部２２、およびデータ表示制御部２５を有している。このとき、マスタスレーブ制御部２１は、サーボゲイン設定部６１、無線通信部６２、センサデータ・コマンド変換部６３、無線通信部６４、データ統合部６５、および再生部６６を有している。
【０１０２】
サーボゲイン設定部６１は、マスタ１２の各関節のサーボモータのゲイン（サーボゲイン）の設定に関する処理を行う処理部である。具体的には、主制御部５１を介して表示部５３に、サーボゲインをユーザに指示させるGUI（Graphical User Interface）画面を表示させ、入力部５２より入力されたユーザ指示を受け付け、その指示に基づいてサーボゲインを設定し、サーボゲイン設定コマンド３１を無線通信部６２の送信部７１を介してマスタ１２に送信する。
【０１０３】
無線通信部６２は、例えば、無線LAN等の所定の無線通信規格に準拠する方法でマスタ１２と無線通信を行う処理部であり、マスタ１２にデータを送信する送信部７１、および、マスタ１２より送信されたデータを受信する受信部７２を有している。送信部７１は、例えば、上述したように、サーボゲイン設定部６１より供給されるサーボゲイン設定コマンド３１をマスタ１２に送信する。受信部７２は、例えば、マスタ１２より供給された関節角センサデータ３２を受信し、センサデータ・コマンド変換部６３に供給する。
【０１０４】
センサデータ・コマンド変換部６３は、受信部７２を介して供給された、マスタ１２の関節角センサデータ３２を、その関節角を実現する制御コマンドである関節角コマンド３３に変換する処理部である。センサデータ・コマンド変換部６３は、その関節角センサデータ３２を変換して得られた関節角コマンド３３を、無線通信部６４の送信部７３を介してスレーブ１３に送信したり、データ統合部６５に供給したりする。
【０１０５】
無線通信部６４は、無線通信部６２と同様の通信部であり、例えば、無線LAN等の所定の無線通信規格に準拠する方法でスレーブ１３と無線通信を行う。無線通信部６４は、スレーブ１３にデータを送信する送信部７３、および、スレーブ１３より送信されたデータを受信する受信部７４を有している。送信部７３は、例えば、上述したように、センサデータ・コマンド変換部６３より供給される関節角コマンド３３をスレーブ１３に送信する。受信部７４は、例えば、スレーブ１３より供給された、関節角センサデータ３４や、ボール１４のスレーブ１３に対する相対位置を示す座標情報であるボール座標データ３７を受信し、それらをデータ統合部６５に供給する。ボール座標データ３７は、スレーブ１３に設けられた各種センサにより得られる情報であり、例えば、視覚センサデータ３５や音声センサデータ３６より算出されるデータである。すなわち、ボール座標データ３７は、制御装置１１において、上述した視覚センサデータ３５や音声センサデータ３６と同様のセンサ情報として処理されるデータである。
【０１０６】
データ統合部６５は、所定の時間毎に、センサデータ・コマンド変換部６３より供給される関節角コマンド３３、並びに、受信部７４より供給される関節角センサデータ３４およびボール座標データ３７の各データを統合し、ベクトルデータとして、データ記録部２２に供給する。データ記録部２２は、所定の時間毎に供給されるそのベクトルデータ（関節角コマンド３３、関節角センサデータ３４、およびボール座標データ３７の集合）を、時系列データとして順次記録し、管理する。
【０１０７】
再生部６６は、以上のようにしてデータ記録部２２に時系列データとして記録された関節角コマンド３３を、その時系列に沿って順次読み出し、その読み出した関節角コマンド３３を、送信部７３を介してスレーブ１３に供給する。すなわち、再生部６６は、データ記録部２２に記録されている関節角コマンド３３群により示される一連の動作を、スレーブ１３に再現させる。この再生部６６の再現処理により、ユーザは、スレーブ１３の動きによって、データ記録部２２に記録されたデータの内容を確認することができる。例えば、ユーザは、この再現結果を参考にして、新たな教示を行ったり、記録したデータの一部または全部を破棄し、再度教示をやり直したりすることができる。
【０１０８】
また、上述したデータ統合部６５の出力は、データ表示制御部２５にも供給される。データ表示制御部２５は、供給されたベクトルデータ（関節角コマンド３３、関節角センサデータ３４、およびボール座標データ３７の集合）を、数値で表したり、グラフ化したりして視覚化し、その画像情報を、主制御部５１を介して表示部５３に供給する。表示部５３は、供給された画像情報を、所定のGUI画面上等に表示する。このように、記録するデータを視覚化して表示部５３に表示させることにより、ユーザは、記録されるデータの内容を確認しながら、マスタ１２を操作し、教示を行うことができる。
【０１０９】
図８は、図６制御装置１１の学習制御処理に関する主な構成を示している。学習制御処理の説明に不要な部分は省略している。
【０１１０】
この学習制御時の制御装置１１Ｂは、主制御部５１、入力部５２、表示部５３、データ記録部２２、データ学習部２３、スレーブ制御部２４、およびデータ表示制御部２５を有している。
【０１１１】
スレーブ制御部２４は、無線通信部９１、データ統合部９２、および時系列予測器９３を有している。
【０１１２】
無線通信部９１は、図７の無線通信部６４と同様の通信部であり、例えば、無線LAN等の所定の無線通信規格に準拠する方法でスレーブ１３と無線通信を行う。無線通信部９１は、スレーブ１３にデータを送信する送信部１０１、および、スレーブ１３より送信されたデータを受信する受信部１０２を有している。送信部１０１は、例えば、データ統合部９２より供給される関節角コマンド３３をスレーブ１３に送信する。受信部１０２は、例えば、スレーブ１３より供給された、関節角センサデータ３４やボール座標データ３７を受信し、それらをデータ統合部９２に供給する。
【０１１３】
データ統合部９２は、所定の時間毎に、受信部１０２より供給された関節角センサデータ３４およびボール座標データ３７、並びに、１つ前の時刻において、時系列予測器９３において予測された関節角コマンド３３を統合し、ベクトルデータとして、時系列予測器９３に供給する。また、データ統合部９２は、時系列予測器９３において予測された関節角コマンド３３である関節角コマンド予測データ１１１を含むベクトルデータ取得すると、その関節角コマンド予測データ１１１を新たな関節角コマンド３３として、送信部１０１を介してスレーブ１３に供給する。
【０１１４】
時系列予測器９３は、データ学習部２３より供給される予測モデルにより、データ統合部９２より供給されたベクトルデータ（１つ前の時刻において、時系列予測器９３において予測された関節角コマンド３３、並びに、受信部１０２より供給された関節角センサデータ３４およびボール座標データ３７）に基づいて、１ステップ分の予測計算を行い、関節角コマンドの予測データである関節角コマンド予測データ１１１、関節角センサデータの予測データである関節角予測データ１１２、および、ボール座標データの予測データであるボール座標予測データ１１３を生成し、それらをベクトルデータとしてデータ統合部９２に供給する。
【０１１５】
つまり、スレーブ１３より供給される関節角センサデータ３４やボール座標データ３７が１つ前のステップの関節角コマンド３３とともに時系列予測器９３に供給されると、時系列予測器９３は、制御遅延を無くすように次のステップの関節角コマンド３３を予測する。その新たな関節角コマンド３３は、スレーブ１３に供給され、実行される。そして、その実行の際に得られた新たな関節角センサデータ３４やボール座標データ３７が、制御装置１１Ｂに供給される。このような処理を繰返し、制御装置１１Ｂは、スレーブ１３に対して、スレーブ１３自身のセンサ情報による自律制御を行う。
【０１１６】
この時系列予測器９３の予測モデルは、現在時間における状態を入力とし、その情報を元に次の時間の状態を予測し出力する計算アルゴリズムのことである。例えば、微分方程式をルンゲ・クッタ法などの手法を用いたアルゴリズムでは、精度の高い時系列予測計算を行うことができる。この予測モデルは、どのような手法で実現するようにしてもよく、あるベクトルデータの入力とそれに対応するベクトルデータの出力との対応関係が予め教示データとして与えられ、その教示データを用いた学習後、教示時に与えたものと同一の入力情報から、教示時と同一の出力情報が得られるモデルであれば何でもよい。例えば、図９に示されるような、リカレントニューラルネットワークを予測モデルとして用いてもよい。
【０１１７】
リカレントニューラルネットワークとは、通常のバックプロパゲーションを行うニューラルネットワークについて、出力層から出力されるベクトルの一部が再帰的に入力層にフィードバックされる構造（コンテキストノード）を持ったニューラルネットワークである。つまり、リカレントニューラルネットワークは、ある時間における状態に至るまでの過去の時系列状態を反映した、ある切り出された一時点での観測量には反映されない、その時点でのネットワーク内の内部状態量（コンテキスト情報）を有している。このコンテキスト情報には、時間方向に奥行きを持った過去の履歴が反映されるので、空間的に決定される状態量だけでは一意に状態を決定できない、時系列予測計算などには必要な状態量である。リカレントニューラルネットワークは、入力された時系列状態ベクトルだけでなく、このコンテキスト情報にも基づいて予測状態ベクトルを生成して出力する。その際、リカレントニューラルネットワークは、コンテキスト情報を更新し、新たなコンテキスト情報として再帰させる（コンテキストループ）。この再帰ループ（コンテキストループ）があることによって、リカレントニューラルネットワークは、入力ベクトルから一意に出力が決定できないような時系列情報についても、コンテキストノードに自己組織的にコンテキスト情報を生成し、判別を行うことが可能となる。
【０１１８】
例えば、リカレントニューラルネットワークは、偶々、値が互いに同一の時系列状態ベクトルが入力された２つの場合においても、コンテキスト情報を利用することにより、それぞれの場合の、それまでに入力された時系列ベクトルの値の違いを判別することができるので、互いに異なる予測状態ベクトルを導き出すことができる。
【０１１９】
図８のデータ学習部２３は、データ記録部２２に時系列データとして記録されているベクトルデータ（関節角コマンド３３、関節角センサデータ３４、およびボール座標データ３７の集合）を教示データとして、このようなリカレントニューラルネットワークの学習を行うことにより、関節角コマンド３３の予測モデルを生成し、それを、主制御部５１を介してスレーブ制御部２４の時系列予測器９３に供給する。
【０１２０】
図１０は、データ学習部２３の詳細な構成例を示すブロック図である。
【０１２１】
図１０において、データ学習部２３は、ダイナミクス記憶ネットワーク取得部１２１、ダイナミクス記憶ネットワーク保持部１２２、時系列データ取得部１２３、学習部１２４、およびダイナミクス記憶ネットワーク供給部１２５を有している。
【０１２２】
ダイナミクス記憶ネットワーク取得部１２１は、主制御部５１を介して、スレーブ制御部２４の時系列予測器９３よりダイナミクス記憶ネットワーク１３１を取得し、それをダイナミクス記憶ネットワーク保持部１２２に供給する。ダイナミクス記憶ネットワーク１３１は、詳細については後述するが、内部状態量を持つ力学系近似モデルをノードとするネットワーク（内部状態量を持つ力学系近似モデルを保持（記憶）するノードによって構成されるネットワーク）であり、時系列予測器９３において使用される、リカレントニューラルネットワークを用いた予測モデルである。
【０１２３】
ダイナミクス記憶ネットワーク保持部１２２は、ダイナミクス記憶ネットワーク取得部１２１より供給されたダイナミクス記憶ネットワーク１３１を一時的に保持する。このダイナミクス記憶ネットワーク保持部１２２のダイナミクス記憶ネットワーク１３１は、学習部１２４に利用される。
【０１２４】
時系列データ取得部１２３は、主制御部５１を介して、データ記録部２２より、関節角コマンド３３、関節角センサデータ３４、およびボール座標データ３７等の時系列データを取得し、それを学習部１２４に供給する。
【０１２５】
学習部１２４は、ダイナミクス記憶ネットワーク保持部１２２よりダイナミクス記憶ネットワーク１３１を取得すると、供給される時系列データを教示データとして、ダイナミクス記憶ネットワーク１３１に対して学習処理を行い、ダイナミクス記憶ネットワーク１３１を更新する。
【０１２６】
この時系列データに含まれる各データには、ラベル（データが、どのようなカテゴリのデータであるかを表す情報）が付与されていない。従って、学習部１２４は、時系列データに、どのようなカテゴリのデータが含まれているのかは未知であり、そのカテゴリの数も未知であるものとして学習を行う。
【０１２７】
図１０の例において、ダイナミクス記憶ネットワーク１３１は、それぞれがリカレントニューラルネットワークを有するノード１３１−４乃至１３１−９により構成されている。
【０１２８】
学習部１２４は、ダイナミクス記憶ネットワーク１３１全体によって、時系列データの特徴を適切に表現できるように学習を行う。ダイナミクス記憶ネットワーク１３１を構成するそれぞれのノード１３１−４乃至１３１−９は自己組織的に学習が行われる。
【０１２９】
ここで、１つのノードが必ずしも１つのカテゴリに対応するとは限らないということには注意しておく必要がある。むしろ、複数のノードによって、あるカテゴリが構成されると見ることができる。例えば、時系列データにカテゴリ「Ａ」、「Ｂ」、「Ｃ」の３つのカテゴリのデータが含まれる場合には、カテゴリ「Ａ」、「Ｂ」、「Ｃ」それぞれが複数のノードによって学習されることがある。また、時系列データに含まれるデータが明確にカテゴリ分けできない（人間がカテゴリ分けできない）場合であっても、学習は可能である。
【０１３０】
ダイナミクス記憶ネットワーク１３１は、複数のノードで構成されるネットワークである。ノードの一つ一つは時系列パターンを保持するために利用される。そして、ノードとノードは結合関係を持つことができる。この結合関係をリンクと呼ぶ。図１０のダイナミクス記憶ネットワーク１３１では、例えば、ノード１３１−４は、ノード１３１−５およびノード１３１−６と結合関係を有するが、この結合関係がリンクにあたる。
【０１３１】
図１１と図１２に、ダイナミクス記憶ネットワークの代表的な例を示す。
【０１３２】
図１１のダイナミクス記憶ネットワーク１４０は、すべてのノード１４１乃至１４７がリンクを有していない。
【０１３３】
これに対して、図１２のダイナミクス記憶ネットワーク１５０は、すべてのノード１５１乃至１５９が２次元的に配置され、縦方向および横方向に隣接するノード間にリンクが与えられている。ここで、リンクは空間上にノードが配置される構造を与えるために利用される。つまり、図１２のダイナミクス記憶ネットワーク１５０は、２次元的なノードの配置構造を与えたダイナミクス記憶ネットワークの例であり、図１１のダイナミクス記憶ネットワーク１４０は、ノードの配置に空間的な制約がない構造を与えたダイナミクス記憶ネットワークの例である。
【０１３４】
リンクによって与えられる空間的なノードの配置構造に基づき、その空間上での距離関係が決定される。例えば、図１２のダイナミクス記憶ネットワーク１５０の場合、あるノードに着目したとき、その着目ノードとリンクで直接結合された、着目ノードに隣接するノードは（着目ノードとの距離が）最も近く、その隣接ノードから先のリンクを順にたどっていくことで到達するノードは（着目ノードとの距離が）少しずつ遠くなっていく。
【０１３５】
これに対して、図１１のダイナミクス記憶ネットワーク１４０の場合、空間上における距離関係は与えられない。
【０１３６】
図１１や図１２の例以外にも、リンクの構成の仕方によって、ノードの空間上における配置構造を変えることができ、その配置構造は、リンクを使うことで任意に設定することができる。
【０１３７】
図１３は、ダイナミクス記憶ネットワーク１３１の１つのノードの詳細例を示す図である。
【０１３８】
ダイナミクス記憶ネットワークの１つのノードは、内部状態量を持つ力学系近似モデル１６１と、その力学系近似モデル１６１のパラメータを学習するための学習データ（教示データ）を記憶しておく学習データ記憶部１６２を有している。内部状態量を持つ力学系近似モデル１６１としては、例えばリカレントニューラルネットワークなどが利用される。
【０１３９】
図１３では、力学系近似モデル１６１として、三層型ニューラルネットワーク（NN）の出力層から入力層への回帰ループを持つリカレントニューラルネットワーク（RNN）が用いられている。このリカレントニューラルネットワークを用いて、時系列データにおける時刻ｔの状態ベクトルXtを入力し、時刻ｔ＋１の状態ベクトルXt+1を予測して出力することを学習（予測学習、prediction learning）することにより、対象となる時系列データの時間発展法則を学習することができる。
【０１４０】
リカレントニューラルネットワークのような内部状態量を持つ力学系近似モデルのパラメータの推定方法には、Back-Propagation Through Time 法が利用される。（参考文献： D. E. Rumelhart, G. E. Hinton & R. E. Williams, 1986 “Learning internal representations by error propagation”, In D. E. Rumelhart & J. McClelland, "Parallel distributed processing", pp. 318-364, Cambridge, MA: MIT Press）
【０１４１】
内部状態量を持つ力学系近似モデル１６１では、学習データ記憶部１６２に記憶された学習データの力学的な特性が学習され、これにより、内部状態量を持つ力学系近似モデル１６１と学習データ記憶部１６２のデータは対応関係を持つことになる。
【０１４２】
ここで、学習に使われるデータは時系列データであることから、内部状態量を持つ力学系近似モデル１６１はダイナミクスを学習することになる。
【０１４３】
図１０に戻り、以上のようなダイナミクス記憶ネットワーク１３１の更新が完了すると、学習部１２４は、更新されたダイナミクス記憶ネットワーク１３１をダイナミクス記憶ネットワーク保持部１２２に戻す。
【０１４４】
ダイナミクス記憶ネットワーク供給部１２５は、その更新されたダイナミクス記憶ネットワーク１３１を、ダイナミクス記憶ネットワーク保持部１２２より取得し、それを、主制御部４１を介して、スレーブ制御部２４の時系列予測器９３に供給する。
【０１４５】
図１４は、時系列予測器９３の詳細な構成例を示すブロック図である。
【０１４６】
図１４に示されるように、時系列予測器９３は、入力部１７１、特徴抽出部１７２、認識部１７３、ネットワーク記憶部１７４、内部状態記憶部１７５、および生成部１７６を有している。
【０１４７】
入力部１７１は、データ統合部９２より供給された時系列データ（１つ前の関節角コマンド３３、並びに、スレーブ１３より供給された関節角センサデータ３４およびボール座標データよりなるベクトルデータ）を受け付け、それを特徴抽出部１７２に供給する。
【０１４８】
特徴抽出部１７２では、入力部１７１より供給された時系列データから特徴量の抽出が行われる。例えば、センサ信号の１つである音声信号に対して一定時間間隔で周波数分析などの処理が施され、メルケプストラムなどの特徴量が時系列に抽出される。
【０１４９】
ここで、メルケプストラムとは音声認識などで広く利用されている特徴量である。特徴抽出部１７２が時系列データより特徴量を時系列に抽出することにより得られる、その特徴量の時系列データは認識部１７３の内部状態量更新部１８１および生成部１７６の時系列データ生成部１９３に供給される。
【０１５０】
認識部１７３は、特徴抽出部１７２より供給された時系列データに対して、それまでの学習の結果である、ネットワーク記憶部１７４に記憶されているダイナミクス記憶ネットワークに保持されたダイナミクスと照らし合わせ、最も類似したダイナミクスを決定し、その結果を認識結果として生成部１７６に供給する。
【０１５１】
認識部１７３は、内部状態量更新部１８１、スコア計算部１８２、勝者ノード決定部１８３、および認識結果出力部１８４を有している。
【０１５２】
内部状態量更新部１８１は、内部状態記憶部１７５から前回更新されて記憶されている内部状態量をネットワーク記憶部１７４に記憶されているダイナミクス記憶ネットワークの各ノードの力学系近似モデルへ読み込み、入力となる時系列データに基づいて、各内部状態量を更新する。
【０１５３】
スコア計算部１８２は、学習時に勝者ノードを決定するために行う処理と同じスコア計算を行う。スコア計算部１８２のスコア計算の結果、各ノードにはスコアが付与される。上述したように、内部状態量を持つ力学系近似モデルがリカレントニューラルネットワークで与えられる場合には、予測出力の平均二乗誤差がスコアとして利用される。
【０１５４】
つまり、認識部１７３においては、内部状態量を更新しながら、スコアの計算が行われる。勝者ノード決定部１８３は、スコア計算部１８２において得られるスコアに基づき、最もスコアの良いノード、すなわち勝者ノードを決定する。さらに、勝者ノード決定部１８３は、この最もスコアの良いノード（勝者ノード）に対応するダイナミクスを、入力された時系列データに最も適合するダイナミクスとして選択する。
【０１５５】
上述した内部状態量更新部１８１は、勝者ノードが決定されたときの内部状態量の更新値（更新された内部状態量）と、その勝者ノードが決定されたときの内部状態量の初期値とを、内部状態記憶部１７５に記憶させる。
【０１５６】
ここで、内部状態記憶部１７５に記憶された内部状態量の更新値は、認識部１７３での次回のスコア計算に利用される。また、内部状態記憶部１７５に記憶された内部状態量の初期値は、生成部１７６において利用される。
【０１５７】
認識部１７３の認識結果出力部１８４は、勝者ノード決定部１８３においてどのノードが選択されたかという情報を認識結果として出力し、生成部１７６の生成ノード決定部１９１に供給する。
【０１５８】
ネットワーク記憶部１７４は、時系列予測モデルとしてのダイナミクス記憶ネットワークを記憶する記憶部である。なお、上述した、ダイナミクス記憶ネットワークのノードの一部である学習データ記憶部１６２は、ここでは、ネットワーク記憶部１７４の記憶領域の一部として構成される。
【０１５９】
内部状態記憶部１７５は、上述の認識部１７３の処理において更新された力学系近似モデル、すなわち、ネットワーク記憶部１７４のダイナミクス記憶ネットワークの内部状態量（内部状態）を保持する。この内部状態量は、認識部１７３によって更新され、生成部１７６によって生成処理に利用される。
【０１６０】
生成部１７６は、ダイナミクス記憶ネットワークに保持されたダイナミクスから、必要に応じて次の時系列データ（予測情報）を生成する。生成部１７６は、生成ノード決定部１９１、内部状態読み込み部１９２、時系列データ生成部１９３、および生成結果出力部１９４を有している。
【０１６１】
生成ノード決定部１９１は、認識部１７３より供給される認識結果に基づき、時系列データを生成すべきノード（生成ノード）を決定する。つまり、認識部１７３の認識の処理において決定された勝者ノードが生成ノードに決定される。生成部１７６は、認識部１７３の認識の処理において決定された勝者ノードから時系列データ（予測情報）を生成する。
【０１６２】
内部状態読み込み部１９２は、ネットワーク記憶部１７４に記憶されたダイナミクス記憶ネットワークの生成ノードの力学系近似モデルに内部状態記憶部１７５の記憶値を、内部状態量の初期値として読み込む。即ち、内部状態読み込み部１９２は、内部状態記憶部１７５の記憶値のうちの、生成ノードが認識部１７３において勝者ノードに決定されたときの内部状態量の初期値を読み出し、生成ノードの力学系近似モデルの内部状態量の初期値にセットする。
【０１６３】
時系列データ生成部１９３は、特徴抽出部１７２において抽出された特徴量の時系列データを読み込み、その時系列データと、内部状態読み込み部１９２によって内部状態量の初期値がセットされた力学系近似モデルに基づき、その内部状態量を更新しながら、時系列データを生成する。
【０１６４】
生成結果出力部１９４は、その時系列データ生成部１９３により生成された時系列データ（予測情報）を、生成結果としてデータ統合部９２（図８）に出力する。
【０１６５】
ここで、ダイナミクス記憶ネットワークで学習されるダイナミクスの数は、ダイナミクス記憶ネットワークのノード数と一致するので、そのノード数に応じた時系列データを認識し、その認識結果に応じて、時系列データを生成することが可能となる。
【０１６６】
図１５は、マスタ１２やスレーブ１３として利用されるロボットの斜視図である。
【０１６７】
図１５に示されるように、本実施の形態においては、２足歩行の人型のロボット装置をマスタ１２およびスレーブ１３として用いる場合ついて説明するが、実際には、２足歩行のロボット装置に限らず、４足又は車輪等により移動可能なロボット装置等、どのようなロボット装置であってもよい。また、駆動装置、通信装置、情報処理装置、またはAV機器等、ロボット以外のどのような装置であってももちろんよい。
【０１６８】
図１５に示される人型のロボット装置は、住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットであり、環境中の情報を視覚や聴覚を使って取得し、環境の状況に応じた行動を、教示された経験やあらかじめプログラムされた行動計画に従って、再現することが可能である。
【０１６９】
図１５において、マスタ１２とされるロボット装置は、体幹部ユニット２０１の所定の位置に頭部ユニット２０２が連結されると共に、左右２つの腕部ユニット２０３Ｒおよび２０３Ｌと、左右２つの脚部ユニット２０４Ｒおよび２０４Ｌが連結されて構成されている。これらのＲ及びＬは、それぞれ、右または左を示す接尾辞であり、以下において、左右を互いに区別する必要のない場合は省略される。
【０１７０】
図１５のロボット装置が具備する関節自由度構成を図１６に模式的に示す。
【０１７１】
頭部ユニット２０２を支持する首関節は、首関節ヨー軸２１１、首関節ピッチ軸２１２、および首関節ロール軸２１３という３自由度を有する。
【０１７２】
上肢を構成する各々の腕部ユニット２０３Ｒおよび２０３Ｌは、肩関節ピッチ軸２１７、肩関節ロール軸２１８、上腕ヨー軸２１９、肘関節ピッチ軸２２０、前腕ヨー軸２２１、手首関節ピッチ軸２２２、手首関節ロール軸２２３、および手部２２４とで構成される。手部２２４は、実際には、さらに複数本の指を含む多関節・多自由度構造体である。ただし、手部２２４の動作は、ロボット装置全体の姿勢制御や歩行制御に対する寄与や影響が少ないので、以下においては、説明の簡略化のためにゼロ自由度とする。従って、左右の各腕部は、それぞれ７自由度を有する。
【０１７３】
体幹部ユニット２０１は、体幹ピッチ軸２１４、体幹ロール軸２１５、および体幹ヨー軸２１６という３自由度を有する。
【０１７４】
下肢を構成する各々の脚部ユニット２０４Ｒおよび２０４Ｌは、股関節ヨー軸２２５、股関節ピッチ軸２２６、股関節ロール軸２２７、膝関節ピッチ軸２２８、足首関節ピッチ軸２２９、足首関節ロール軸２３０、および足部２３１とで構成される。なお、股関節ピッチ軸２２６と股関節ロール軸２２７の交点は、ロボット装置全体の股関節位置を定義する。また、足部２３１は、実際には多関節・多自由度の足底を含んだ構造体であるが、以下においては説明の簡略化のため、ロボット装置の足底は、ゼロ自由度であるとする。従って、左右の各脚部は、それぞれ６自由度を有する。
【０１７５】
以上のように、図１６のロボット装置全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。ただし、これはあくまでも一例であり、マスタ１２およびスレーブ１３の自由度は３２自由度に限定されるわけではない。つまり、マスタ１２およびスレーブ１３の制御パラメータの数（ロボットの場合、自由度すなわち関節数）は、いくつであってもよく、例えば、設計や制作上の制約条件や要求仕様等に応じて適宜増減可能である。
【０１７６】
上述したようなロボット装置が有する各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定構造体に対して姿勢制御を行うこと等の要請から、関節に設けられるアクチュエータは、小型且つ軽量であることが好ましい。
【０１７７】
このようなロボット装置は、ロボット装置全体の動作を制御する制御システムを例えば体幹部ユニット２０１等に備える。図１７は、マスタ１２およびスレーブ１３として用いられるロボット装置の制御システム構成を示す模式図である。図１７に示されるように、ロボット装置内の制御システムは、ユーザ入力等に動的に反応して情緒判断や感情表現を司る思考制御モジュール３００、および、アクチュエータ４５０の駆動等ロボット装置の全身協調運動を制御する運動制御モジュール４００により構成される。
【０１７８】
思考制御モジュール３００は、バスI/F（InterFace）３０１により互いに接続された、情緒判断や感情表現に関する演算処理を実行するCPU（Central Processing Unit）３１１、RAM（Random Access Memory）３１２、ROM（Read Only Memory）３１３、および外部記憶装置（ハード・ディスク・ドライブ等）３１４等で構成され、モジュール内で自己完結した処理を行うことができる、独立駆動型の情報処理装置である。
【０１７９】
この思考制御モジュール３００は、バスI/F３０１を介して画像入力装置３５１から入力される画像データや、バスI/F３０１を介して音声入力装置３５２から入力される音声データ等、外界からの刺激等に従って、ロボット装置の現在の感情や意思を決定する。すなわち、上述したように、入力される画像データからユーザの表情を認識し、その情報をロボット装置の感情や意思に反映させることで、ユーザの表情に応じた行動を発現することができる。ここで、画像入力装置３５１は、例えばCCD（Charge Coupled Device）カメラを複数有し、音声入力装置３５２は、例えばマイクロホンを複数有している。
【０１８０】
また、思考制御モジュール３００は、意思決定に基づいた動作又は行動シーケンス、すなわち四肢の運動を実行するように、運動制御モジュール４００に対して指令を発行する。
【０１８１】
運動制御モジュール４００は、バスI/F４０１により互いに接続された、ロボット装置の全身協調運動を制御するCPU４１１、RAM４１２、ROM４１３、および外部記憶装置（ハード・ディスク・ドライブ等）４１４等で構成され、モジュール内で自己完結した処理を行うことができる独立駆動型の情報処理装置である。また、外部記憶装置４１４には、例えば、オフラインで算出された歩行パターンや目標とするZMP（Zero Moment Point）軌道や、その他の行動計画を蓄積することができる。
【０１８２】
この運動制御モジュール４００には、図１６に示したロボット装置の全身に分散するそれぞれの関節自由度を実現するアクチュエータ４５０、対象物との距離を測定する距離計測センサ（図示せず）、体幹部ユニット２０１の姿勢や傾斜を計測する姿勢センサ４５１、左右の足底の離床又は着床を検出する接地確認センサ４５２および４５３、足部２３１の足底に設けられる荷重センサ、並びに、バッテリ等の電源を管理する電源制御装置４５４等の各種の装置が、バスI/F４０１経由で接続されている。ここで、姿勢センサ４５１は、例えば、加速度センサとジャイロ・センサの組み合わせによって構成され、接地確認センサ４５２および４５３は、近接センサ又はマイクロ・スイッチ等で構成される。もちろん、それら以外のセンサにより構成されるようにしてもよい。
【０１８３】
思考制御モジュール３００と運動制御モジュール４００は、共通のプラットフォーム上で構築され、両者間はバスI/F３０１およびバスI/F４０１を介して相互接続されている。
【０１８４】
運動制御モジュール４００は、思考制御モジュール３００から指示された行動を体現すべく、各アクチュエータ４５０による全身協調運動を制御する。すなわち、CPU４１１は、思考制御モジュール３００から指示された行動に応じた動作パターンを外部記憶装置４１４から取り出し、又は、内部的に動作パターンを生成する。そして、CPU４１１は、指定された動作パターンに従って、足部運動、ZMP軌道、体幹運動、上肢運動、または、腰部水平位置及び高さ等を設定するとともに、これらの設定内容に従った動作を指示する指令値を各アクチュエータ４５０に転送する。
【０１８５】
また、CPU４１１は、姿勢センサ４５１の出力信号によりロボット装置の体幹部ユニット２０１の姿勢や傾きを検出するとともに、各接地確認センサ４５２および４５３の出力信号により各脚部ユニット１０５Ｒおよび１０５Ｌが遊脚又は立脚のいずれの状態であるかを検出することによって、ロボット装置の全身協調運動を適応的に制御することができる。更に、CPU４１１は、ZMP位置が常にZMP安定領域の中心に向かうように、ロボット装置の姿勢や動作を制御する。
【０１８６】
また、運動制御モジュール４００は、思考制御モジュール３００において決定された意思通りの行動がどの程度発現されたか、すなわち処理の状況を、思考制御モジュール３００に返すようになされている。このようにしてロボット装置は、制御プログラムに基づいて自己及び周囲の状況を判断し、自律的に行動することができる。
【０１８７】
次に、以上のような情報処理システム１０のユーザ、すなわち、制御装置１１やマスタ１２を操作するユーザ（何名でもよい）に対して、表示部５３に表示されるGUI画面について説明する。
【０１８８】
図１８は、モードコントロールコマンダ（Mode Control Commander）画面の例を説明する図である。
【０１８９】
モードコントロールコマンダ画面５１０は、ユーザに、マスタ１２の各関節のサーボゲインの設定値を入力させるためのGUI画面である。図１８に示されるように、モードコントロールコマンダ画面５１０は、３列の構成となっており、左の列に各関節の名前の一覧が示され、中央の列に各関節の動作モードを、制御コマンドに従って動作するモード、ユーザ等の外部操作に従って動作するモード等、複数のモードの中から選択するモード選択欄が表示され、右の列に各関節のサーボゲインの値を設定する設定欄が表示されている。
【０１９０】
ユーザが、制御装置１１の表示部５３に表示された、このモードコントロールコマンダ画面５１０に対する入力操作を入力部５２に対して行うことにより、その設定指示が主制御部５１を介してサーボゲイン設定部６１に供給される。つまり、ユーザは、このモードコントロールコマンダ画面５１０に対して入力操作を行うことにより、容易に、マスタ１２の各関節のゲイン値を設定することができる。
【０１９１】
図１９は、センサモータビューア（Sensor Moter Viewer）画面の例を説明する図である。
【０１９２】
センサモータビューア画面５２０は、制御対象であるスレーブ１３より供給される各種のセンサ情報を画像情報として表示するGUI画面である。つまり、センサモータビューア画面５２０は、図７のデータ統合部６５や図８のデータ統合部９２がデータ表示制御部２５に供給した各種情報を、ユーザが視覚的に確認するためのビューアである。つまり、ユーザは、このセンサモータビューア画面５２０に表示される情報を参照することにより、容易に、スレーブ１３の状態をより正確に把握することができる。
【０１９３】
図２０は、センサモータレコーダ（Sensor Motor Recorder）画面の例を説明する図である。
【０１９４】
センサモータレコーダ画面５３０は、データ記録部２２による時系列データの記録や再生に関する指示を、ユーザに入力させるためのGUI画面である。センサモータレコーダ画面５３０の画面左部分には、記録された時系列データのファイル一覧が表示され、センサモータレコーダ画面５３０の画面右部分には、GUIボタンやチェックボックス等、各種操作指示を受け付ける機能が設けられている。ユーザは、表示部５３に表示されたこのセンサモータレコーダ画面５３０に対する操作を、入力部５２より入力することにより、容易に、データ記録部２２に時系列データを記録させたり、再生部６６にデータ記録部２２に記録されている時系列データを再生させたりすることができる。
【０１９５】
以上のように、表示部５３が、各種GUI画面をユーザに対して表示し、入力部５２が、そのGUI画面に対するユーザ指示を受け付けるので、ユーザは、容易に指示を入力したり状況を把握したりすることができる。
【０１９６】
次に、以上のような情報処理システム１０において実行される各種処理の流れについて説明する。
【０１９７】
最初に、図２１のフローチャートを参照して、図７の制御装置１１（制御装置１１Ａ）による、サーボゲイン設定処理の流れの例を説明する。
【０１９８】
サーボゲイン設定処理が開始されると、ステップＳ１において、表示部５２は、主制御部５１の制御に基づいて、モードコントロールコマンダ画面５１０（図１８）を表示する。ステップＳ２において、主制御部５１は、入力部５２より供給される、モードコントロールコマンダ画面５１０に対するユーザ指示に基づいて、サーボゲイン設定処理を終了するか否かを判定し、ユーザより終了指示を受けておらず、終了しないと判定した場合、処理をステップＳ３に進める。
【０１９９】
ステップＳ３において、主制御部５１は、入力部５２より供給される、モードコントロールコマンダ画面５１０に対するユーザ指示に基づいて、サーボゲインの設定が指示されたか否かを判定し、ユーザより設定を指示されたと判定した場合、処理をステップＳ４に進める。ステップＳ４において、サーボゲイン設定部６１は、入力されたサーボゲイン設定コマンド３１を、送信部７１を介してマスタ１２に送信する。
【０２００】
ステップＳ４の処理を終了すると、サーボゲイン設定部６１は、処理をステップＳ２に戻し、それ以降の処理を繰り返す。また、ステップＳ３において、サーボゲインの設定が指示されていないと判定した場合、主制御部５１は、ステップＳ４の処理を省略し、処理をステップＳ２に戻し、それ以降の処理を繰り返す。
【０２０１】
また、ステップＳ２において、ユーザより終了指示を受け、終了すると判定した場合、主制御部５１は、サーボゲイン設定処理を終了する。
【０２０２】
次に、図２２のフローチャートを参照して、図７の制御装置１１（制御装置１１Ａ）による、時系列データの、記録処理の流れの例を説明する。
【０２０３】
表示部５３に表示されたセンサモータレコーダ画面５３０に対する操作入力が、入力部５２に入力され、記録処理が開始されると、主制御部５１は、ステップＳ２１において、記録処理を終了するか否かを判定する。ユーザが、センサモータレコーダ画面５３０において記録処理の終了を指示しておらず、記録処理を終了しないと判定した場合、主制御部５１は、処理をステップＳ２２に進める。
【０２０４】
ステップＳ２２において、無線通信部６２の受信部７２は、マスタ１２の関節角センサデータ３２を受け付け、ステップＳ２３において、その関節角センサデータ３２を取得したか否かを判定し、取得していないと判定した場合、処理をステップＳ２１に戻し、それ以降の処理を繰り返す。
【０２０５】
また、ステップＳ２３において、関節角センサデータ３２を取得したと判定した場合、受信部７２は、処理をステップＳ２４に進める。ステップＳ２４において、センサデータ・コマンド変換部６３は、受信部７２より関節角センサデータ３２を取得すると、その関節角センサデータ３２を関節角コマンド３３に変換する。ステップＳ２５において、無線通信部６４の送信部７３は、センサデータ・コマンド変換部６３より供給された関節角コマンド３３をスレーブ１３に供給する。
【０２０６】
ステップＳ２６において、無線通信部６４の受信部７４は、スレーブ１３の関節角センサデータ３４およびボール座標データ３７を受け付け、ステップＳ２７において、その関節角センサデータ３４およびボール座標データ３７を取得したか否かを判定し、取得していないと判定した場合、処理をステップＳ２６に戻し、取得したと判定されるまで繰り返す。ステップＳ２７において、関節角センサデータ３４およびボール座標データ３７を取得したと判定した場合、受信部７４は、処理をステップＳ２８に進める。
【０２０７】
ステップＳ２８において、データ統合部６５は、受信部７４より供給された、スレーブ１３の関節角センサデータ３４およびボール座標データ３７と、センサデータ・コマンド変換部６３より供給された関節角コマンド３３とを統合する。
【０２０８】
データ記録部２２は、ステップＳ２９において、その統合された統合情報（ベクトルデータ）を時系列データの１つとして記録し、処理をステップＳ２１に戻し、それ以降の処理を繰り返させる。
【０２０９】
ステップＳ２１において、ユーザがセンサモータレコーダ画面５３０において記録処理の終了を指示しており、記録処理を終了すると判定した場合、主制御部５１は、記録処理を終了する。
【０２１０】
次に、図２３のフローチャートを参照して、図７の制御装置１１（制御装置１１Ａ）の再生部６６による、再生処理の流れの例を説明する。
【０２１１】
表示部５３に表示されたセンサモータレコーダ画面５３０に対する操作入力が、入力部５２に入力され、再生処理が開始されると、再生部６６は、ステップＳ４１において、指定されたファイルに含まれる関節角コマンド３３をデータ記録部２２より読み出す。
【０２１２】
データ記録部２２には、ユーザがマスタ１２を操作して入力した情報より生成された関節角コマンド３３を含む時系列データが、その記録単位毎にファイル化されて管理されている。つまり、上述した記録処理１回分の時系列データが１つのファイルとして管理されている。再生処理においては、このようなファイル内の時系列データを時系列に沿って順次再生する。もちろん複数のファイルの時系列データを連続して再生するようにしてもよいし、ファイルに含まれる時系列データの一部のみを再生するようにしてもよい。
【０２１３】
ステップＳ４２において、再生部６６は、その読み出した関節角コマンド３３を、送信部７３を介してスレーブ１３に供給する。関節角コマンド３３を供給されたスレーブ１３は、その関節角コマンド３３に基づいた動作を行う。再生部６６は、ステップＳ４３において、指定されたファイルの全ての関節角コマンドを供給したか否かを判定し、未処理の関節角コマンドが存在すると判定した場合、処理をステップＳ４１に戻し、それ以降の処理を繰り返す。また、ステップＳ４３において、ファイル内の全ての関節角コマンドを供給したと判定した場合、再生部６６は、再生処理を終了する。
【０２１４】
次に、図２４のフローチャートを参照して、学習処理の流れの例を説明する。
【０２１５】
学習処理が開始されると、データ学習部２３のダイナミクス記憶ネットワーク取得部１２１は、ステップＳ６１において、ダイナミクス記憶ネットワークを時系列予測器９３より取得し、ダイナミクス記憶ネットワーク保持部１２２に保持させる。
【０２１６】
ステップＳ６２において、学習部１２４は、ダイナミクス記憶ネットワーク保持部１２２に保持されているダイナミクス記憶ネットワーク１３１を取得し、その全てのパラメータの初期化を行う。具体的には、ダイナミクス記憶ネットワーク１３１の各ノードの内部状態量を持つ力学系近似モデルのパラメータに、適当な値が初期値として付与される。
【０２１７】
ステップＳ６３において、学習部１２４は、学習処理を終了するか否かを判定し、時系列データもまだ供給され続けており、終了しないと判定した場合、処理をステップＳ６４に進める。
【０２１８】
ステップＳ６４において、時系列データ取得部１２３は、関節角コマンド３３、関節角線─データ３４、およびボール座標データ３７等をまとめたベクトルデータよりなる時系列データの、新たな時刻のデータを取得する。学習部１２４は、ステップＳ６５において、その時系列データに対して、ダイナミクス記憶ネットワークに含まれる各ノードに対応する内部状態量を持つ力学系近似モデルとのスコア計算を、内部状態量を更新しながら行う。
【０２１９】
内部状態量を持つ力学系近似モデルがリカレントニューラルネットワークで与えられる場合には、出力誤差がスコアとして利用される。出力誤差の計算方法には、一般的に平均二乗誤差が用いられる。スコア計算の結果、入力データに対して、全てのノードにスコアが付与されることになる。
【０２２０】
学習部１２４は、ステップＳ６６において、ダイナミクス記憶部ネットワークを構成するノードそれぞれのスコアを比較することによって、最もスコアの良いノード、すなわち勝者ノードを決定する。さらに、学習部１２４は、ステップＳ６７において、勝者ノードを中心として各ノードの学習の重みを決定し、ステップＳ６８において、各ノードの内部状態量を持つ力学系近似モデルのパラメータの更新を、学習の重みに応じて行う。
【０２２１】
ここで、勝者ノードのパラメータだけを更新する方法はWTA(winner-take-all)に対応し、勝者ノードの近傍のノードに対してもパラメータの更新を行う方法がSMA(soft-max adaptation)に対応する。学習部１２４は、SMAで、パラメータの更新を行う。
【０２２２】
図２５は、ノードのパラメータをSMAで更新するときに用いられる学習の重みを示している。
【０２２３】
図２５の左において、ノード５４１乃至ノード５４６は、ダイナミクス記憶ネットワークを構成するノードである。ノード５４１乃至ノード５４６のうちのノード５４１は、勝者ノードであり、ノード５４２乃至ノード５４６は、勝者ノード５４１からの距離が近い順に並べられている。
【０２２４】
図２５の右のグラフは、学習の重みと勝者ノードからの距離の関係を示しており、横軸は学習の重みを、縦軸は勝者ノードからの距離を、それぞれ示している。
【０２２５】
図２５の右のグラフによれば、勝者ノード５４１に対しては、学習の重みを最も大きくし、他のノード５４２乃至ノード５４６それぞれに対しては、勝者ノード５４１からの距離が離れるにしたがって、学習の重みが小さくなるように学習の重みが決定される。
【０２２６】
勝者ノードからの距離は、ダイナミクス記憶ネットワークのリンクによって与えられる空間上のノードの配置構造に基づいて決定される。例えば、図１２の２次元上にノード１４１乃至ノード１５９が配置されたダイナミクス記憶ネットワーク１５０において、勝者ノードが、例えばノード１５６であれば、その勝者ノード１５６に隣接するノード１５３、ノード１５５、およびノード１５９が最も近く、ノード１５２、ノード１５４、およびノード１５８がその次に近く、ノード１５１とノード１５７が最も遠いものとなる。この場合、ノードとノードをつなぐ最小のリンク数を距離として利用すると、近い順に距離は１、２、３として与えられることになる。
【０２２７】
図１１のようにリンクを与えない場合には、入力データ（ノードのスコアの計算に用いられる時系列データ）に基づき各ノードにおいて計算されたスコアの良い順にノードを並べ、その順位が勝者ノードからの距離として利用される。つまり、勝者ノードから順に、０、１、２、３、・・・が距離として与えられる。このような勝者ノードからの距離の与え方は、ベクトル・パターンのカテゴリー学習に用いられる自己組織化マップ（SOM（self-organization map），例えば、『T.コホネン、「自己組織化マップ」、シュプリンガー・フェアラーク東京』参照）やNeural-Gas algorithmで利用されている方法と同じである。この勝者ノードからの距離と学習の重みの関係を示したのが次式である。
【０２２８】
α＝Ｇ×γd/△                    .....（１）
【０２２９】
式（１）において、αは学習の重み、Ｇは（学習の重みαのうちの）勝者ノードに与える学習の重み、γは減衰係数で０＜γ＜１の範囲の定数、ｄは勝者ノードからの距離、ΔはSMAにおける近傍に対する学習の重みを調整するための変数を、それぞれ示している。
【０２３０】
今、距離ｄに関しては、勝者ノードからの距離が近い順に１、２、３で与えられるとし、勝者ノードに対してはｄ＝０が与えられたとする。この時、例えば、Ｇ＝８、γ＝０．５、Δ＝１とすれば、学習の重みαは、勝者ノードからの距離ｄが離れるにしたがって、８、４、２、１と求まることになる。ここで、変数Δを少しずつ０に近づけていくと、学習の重みαは勝者ノードから離れるにしたがってより小さい値となる。そして、変数Δが０に近くなると、勝者ノード以外のノードの学習重みはほとんど０となり、これはWTAと同様となる。このように、変数Δを調整することで、SMAにおける勝者ノードの近傍に対する学習の重みαを調整することが可能となる。基本的には、変数Δは学習の開始時は大きくし、時間の経過と伴に小さくなるように調整が行われる。
【０２３１】
このような学習の重みαに基づき、勝者ノードのパラメータは入力データの影響を最も強く受け、勝者ノードから離れるにしたがって、その影響が小さくなるように、他のノード（勝者ノード以外のノード）のパラメータの更新が行われる。
【０２３２】
図２６は、ノードのパラメータの更新の方法を説明する図である。
【０２３３】
いま、あるノードのパラメータ更新前の内部状態量を持つ力学系近似モデル１６１のパラメータの学習に使われた学習データ（教示データ）である時系列データが学習データ記憶部１６２に格納されているとする。
【０２３４】
この更新前の学習データを旧学習データと呼ぶものとする。
【０２３５】
ノードのパラメータの更新は、例えば、そのノードに対して決定された学習の重みαに応じて、入力データ５５１を、旧学習データ５５２に追加し、その結果得られる新学習データを用いて行われる。即ち、学習の重みαに応じて、入力データ５５１と旧学習データ５５２を足し合わせる（混合する）ことで、新学習データが構成され、この新学習データが学習データ記憶部１６２に記憶される。そして、その新学習データによって、内部状態量を持つ力学系近似モデル１６１のパラメータが更新される。
【０２３６】
パラメータの更新には、例えば、Back-Propagation Through Time 法が適用される。その場合、具体的には、更新前の内部状態量を持つ力学系近似モデル１６１のパラメータを初期値とし、新学習データに基づくパラメータの推定がBack-Propagation Through Time 法によって行われる。
【０２３７】
ここで、新学習データを構成する際の、入力データ５５１と旧学習データ５５２とを足し合わせる比率に関して説明する。
【０２３８】
仮に、入力データ５５１と旧学習データ５５２との比率を１：０にすると、新学習データは完全に入力データ５５１だけで構成されることになる。
【０２３９】
一方、入力データ５５１と旧学習データ５５２との比率を０：１にすると、新学習データには入力データ５５１は追加されず、旧学習データ５５２だけで構成されることになる。つまり、入力データ５５１と旧学習データ５５２との比率を変えることで、パラメータに与える入力データ５５１の影響の強さを変えることができる。
【０２４０】
入力データ５５１と旧学習データ５５２との比率を、前に述べた学習の重みαに基づいて適切に調整することによって、入力データの影響を適切にパラメータに与える学習を行うことができる。その調整方法の１つのやり方について説明する。
【０２４１】
まず、ノードが学習データ記憶部１６２に保持できる時系列データの個数を一定とし、その値をＨとする。つまり、Ｈ個の時系列データで内部状態量を持つ力学系近似モデル１６１のパラメータが学習されるものとする。そして、入力データ５５１と旧学習データ５５２との比率を、ノードの学習の重みαに応じて、α：Ｈ−αとなるように調整する。例えば、Ｈ＝１００とすれば、α＝８の場合、入力データ５５１と旧学習データ５５２との比率は、８：９２となるように調整が行われることになる。そして、このような比率で、入力データ５５１と旧学習データ５５２とを足し合わせることで、Ｈ個の新学習データが構成される。
【０２４２】
α：Ｈ−αの比率で、入力データ５５１と旧学習データ５５２とを足し合わせる方法としては、例えば、以下のような方法を採用することができる。
【０２４３】
即ち、まず、入力データ５５１については、時系列データが１つ与えられるだけなので、これをα倍したデータを追加する。例えば、α＝８の場合、入力データ５５１としての同一の時系列データを８個追加する。
【０２４４】
一方、旧学習データ５５２については、その個数はＨであり、これをＨ−αに調整する必要がある。例えば、上述したように、α＝８の場合、旧学習データ５５２を、１００から９２に減らす必要がある。そこで、学習データ記憶部１６２に記憶された旧学習データ５５２としての１００の時系列データの順番に応じて、最も古いものからα個だけ除去することで、旧学習データ５５２の個数をＨ−α個に調整する。
【０２４５】
以上のようにして個数を調整した入力データ５５１と旧学習データ５５２とを足し合わせて新学習データとすることにより、学習データ記憶部１６２には、常に最新のＨ個の時系列データだけが学習データとして保持される。このように、学習データ（新学習データ）に占める入力データ５５１の割合を学習の重みαによって調整することができる。
【０２４６】
なお、ここで説明した方法以外にも、学習の重みαに応じて入力データ５５１をパラメータに反映させる方法であればどのような方法を用いても良い。重要なのは、新しいデータ（入力データ５５１）が与えられるたびにパラメータを少しずつ修正することと、その際に、学習の重みαに応じて入力データ５５１の学習に与える影響の強さを調整することである。
【０２４７】
また、学習を適切に行うには、学習の重みαを時間の経過とともに適切に調整することが非常に重要であり、本実施の形態では、変数Δによって、学習の重みαを調整する方法を述べたが、基本的には、入力データ５５１の影響を受けるノードが、勝者ノードを中心とする広い範囲のノードから徐々に狭い範囲のノードへになるように、学習の重みαを調整していくことが重要であり、それを実現する方法であれば、どのような方法を用いても良い。
【０２４８】
以上のような学習手法により、ダイナミクス記憶ネットワークの各ノードのパラメータは、学習部１２４に時系列データ（入力データ）が入力されるたびに、自己組織的に学習されることになる。
【０２４９】
図２４に戻り、ステップＳ６８の処理を終了すると、学習部１２４は、処理をステップＳ６３に戻し、それ以降の処理を繰り返す。すなわち、データ学習部２３は、時系列データの取得を終了するまで、ステップＳ６３乃至ステップＳ６８の処理を繰り返す。
【０２５０】
ステップＳ６３において、学習処理を終了すると判定した場合、学習部１２４は、更新したダイナミクス記憶ネットワーク１３１をダイナミクス記憶ネットワーク保持部１２２に戻し、処理をステップＳ６９に進める。ステップＳ６９において、ダイナミクス記憶ネットワーク供給部１２５は、ダイナミクス記憶ネットワーク保持部１２２に保持されているダイナミクス記憶ネットワーク１３１を、主制御部５１を介して、時系列予測器９３に供給し、学習処理を終了する。
【０２５１】
次に、図２７のフローチャートを参照して、図８の制御装置１１（制御装置１１Ｂ）による、スレーブ１３の制御処理の流れの例を説明する。
【０２５２】
制御処理が開始されると、主制御部５１は、ステップＳ８１において、制御処理を終了するか否かを判定し、ユーザより終了指示が入力されたりしておらず、制御処理を終了しないと判定した場合、処理をステップＳ８２に進める。
【０２５３】
ステップＳ８２において、受信部１０２は、スレーブ１３の、関節角センサデータ３４およびボール座標データ３７を受け付け、ステップＳ８３において、そのスレーブ１３の関節角センサデータ３４およびボール座標データ３７を取得したか否かを判定する。取得していないと判定した場合、処理をステップＳ８１に戻し、それ以降の処理を繰り返す。
【０２５４】
ステップＳ８２において、スレーブ１３の関節角センサデータ３４およびボール座標データ３７を取得したと判定した場合、受信部１０２は、処理をステップＳ８４に進める。ステップＳ８４において、データ統合部９２は、関節角センサデータ３４、ボール座標データ３７、および、１つ前のステップの関節角コマンド３３を統合し、ベクトルデータを生成し、そのベクトルデータを時系列データとして時系列予測器９３に供給する。ステップＳ８５において、時系列予測器９３は、現在の時系列データに基づいて、次の時刻の時系列データ（予測情報）を予測し、生成する。この予測処理の詳細については、後述する。
【０２５５】
ステップＳ８６において、データ統合部９２は、ステップＳ８５において生成された次の時刻の予測情報に含まれる、次の時刻の関節角コマンド３３を、送信部１０１を介してスレーブ１３に供給し、処理をステップＳ８１に戻す。
【０２５６】
すなわち、スレーブ制御部２４の各部は、主制御部５１がステップＳ８１において終了すると判定するまで、ステップＳ８２乃至ステップＳ８６の処理を繰り返す。ステップＳ８１において、主制御部５１がユーザ指示等に基づいて、制御処理を終了すると判定した場合、制御処理を終了する。
【０２５７】
次に、図２７のステップＳ８５において実行される予測処理の詳細の流れについて、図２８のフローチャートを参照して説明する。
【０２５８】
ステップＳ１０１において、時系列予測部９３は、予測処理を終了するか否かを判定し、終了しないと判定した場合、ステップＳ１０２に処理を進める。ステップＳ１０２において、入力部１７１が時系列データを取得し、ステップＳ１０３において、特徴抽出部１７２が時系列データより特徴を抽出する。内部状態量更新部１８１が内部状態記憶部１７５に記憶されている内部状態量を更新した後、ステップＳ１０４において、スコア計算部１８２がスコア計算を行い、ステップＳ１０５において、勝者ノード決定部１８３が勝者ノードを決定し、ステップＳ１０６において、認識結果出力部１８４が認識結果を出力する。
【０２５９】
生成部１７６は、ステップＳ１０７において、その認識結果を制御信号として取得する。ステップＳ１０８において、生成ノード決定部１９１が予測情報の生成に用いるノードを決定し、ステップＳ１０９において、内部状態読み込み部１９２がダイナミクス記憶ネットワークの内部状態を読み込み、ステップＳ１１０において、時系列データ生成部１９３が予測情報を生成し、ステップＳ１１１において、生成結果出力部１９４が予測情報をデータ統合部９２に出力する。
【０２６０】
ステップＳ１１１の処理を終了すると、生成結果出力部１９４は、処理をステップＳ１０１に戻し、それ以降の処理を繰り返し実行させる。すなわち、時系列予測器９３の各部は、ステップＳ１０１において、予測処理を終了すると判定されるまで、ステップＳ１０１乃至ステップＳ１１１の処理を繰り返し実行する。ステップＳ１０１において、予測処理を終了すると判定した場合、時系列予測器９３は、予測処理を終了し、処理を図２７のステップＳ８５に戻し、ステップＳ８６以降の処理を実行させる。
【０２６１】
以上のようにして、各処理が実行される。これにより、情報処理システム１０は、制御における通信や処理の遅延や環境の変化に対する耐性を向上させ、制御の負荷や破綻を抑制することができる。
【０２６２】
特に、スレーブ１３に対して送信される関節角コマンド３３と、そのスレーブ１３から受信された関節度センサデータ３４およびボール座標データ３７を統合化して記録することにより、これらのデータを、同期を取りながら時系列データとして収集することができる。
【０２６３】
また、その収集された関節角コマンド３３をスレーブ１３において再生することによって環境とのインタラクションを行わせることができ、情報処理システムが有する制御遅延を反映した自律制御用の時系列教示データを作成することができる。つまり、制御装置１１は、制御遅延を含む関係の制御コマンドおよびセンサ情報の時系列データを教示データ（学習データ）として、時系列予測器の予測モデルの学習を行うことにより、その時系列予測器を用いてスレーブ１３のセンサ情報に対して制御遅延時間分先の時刻にスレーブ１３を制御する制御コマンドを予測して生成することができ、制御における通信や処理の遅延に対する耐性を向上させ、制御の負荷や破綻を抑制することができる。
【０２６４】
さらに、マスタ１２に、スレーブ１３と実質的に同一の幾何形状を有する装置（幾何モデルが共通のロボット）を適用することにより、幾何モデルの変換等の処理が不要になるので、関節角コマンド３３の生成が容易になる。また、制御対象であるスレーブ１３の動きを確認しながら、コントローラであるマスタ１２を操作するユーザも、直感的にマスタ１２の操作方法を理解することができ、容易に、スレーブ１３をユーザの思い通りに制御するように、マスタ１２を操作することができる。さらに、そのマスタ１２の各関節のサーボのゲインをそれぞれ個別に値を設定することにより、各関節のゲインを適切に設定することができ、不必要な関節を動かさずに教示を行うことが可能になる。つまり、教示時に、不要な関節を手で支える等の、余分な自由度を制御する必要がなくなるので、教示者に及ぼす負担を軽減させることができる。
【０２６５】
また、マスタ１２の操作によって生成された関節角コマンド３３をスレーブ１３において再生することにより、ユーザは、スレーブ１３の制御結果（動き）を確認しながらマスタ１２を操作し、制御装置１１に、関節角コマンド３３を生成させることができる。つまり、ユーザは、スレーブ１３の動きを確認しながらマスタ１２の操作（つまり、スレーブ１３の制御や、予測モデルの学習のための教示データの生成）を行うこともできる。このようにすることにより、多様に変化して予測が困難な環境においても、ユーザは、容易に、スレーブ１３と環境との複雑な相互作用の教示を行うことができる。すなわち、環境の変化への耐性を向上させることができる。
【０２６６】
なお、このような教示者の負担を軽減や操作性の向上は、スレーブ１３の制御操作や教示データの生成を容易にし、適切な予測モデルの生成、すなわち、制御における通信や処理の遅延や環境の変化に対する耐性を向上させ、制御の負荷や破綻を抑制することにも寄与する。
【０２６７】
なお、以上においては、時系列予測器９３は、入力された時系列データより予測情報を生成するのみであるように説明したが、これに限らず、この予測情報を生成するとともに、入力された時系列データを教示データとして学習を行うようにしてもよい。
【０２６８】
図２９は、時系列予測器の他の構成例を示すブロック図である。
【０２６９】
図２９に示される時系列予測器６９３は、基本的に図１４に示される時系列予測器９３と同様の構成を有しているが、時系列予測器９３の構成に加えて、データ学習部２３を有している点で異なる。
【０２７０】
このデータ学習部２３は、図８に示されるデータ学習部２３と同様のものであるのでその詳細についての説明は省略する。
【０２７１】
図２９において、データ学習部２３は、時系列データ生成部１９３に供給されるのと同一の、特徴抽出部１７２において特徴を抽出された時系列データに基づいてネットワーク記憶部１７４に記憶されているダイナミクス記憶ネットワークの学習を行い、ダイナミクス記憶ネットワークを更新する。
【０２７２】
このようにすることにより、制御装置１１は、スレーブ１３のセンサ情報を用いた自律制御中に、時系列予測器の予測モデルの学習を行い、ダイナミクス記憶ネットワークを更新することができる。
【０２７３】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図３０に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【０２７４】
図３０において、パーソナルコンピュータ７００のCPU（Central Processing Unit）７０１は、ROM（Read Only Memory）７０２に記憶されているプログラム、または記憶部７１３からRAM（Random Access Memory）７０３にロードされたプログラムに従って各種の処理を実行する。RAM７０３にはまた、CPU７０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２７５】
CPU７０１、ROM７０２、およびRAM７０３は、バス７０４を介して相互に接続されている。このバス７０４にはまた、入出力インタフェース７１０も接続されている。
【０２７６】
入出力インタフェース７１０には、キーボード、マウスなどよりなる入力部７１１、CRTやLCDなどよりなるディスプレイ、並びにスピーカなどよりなる出力部７１２、ハードディスクなどより構成される記憶部７１３、モデムなどより構成される通信部７１４が接続されている。通信部７１４は、インターネットを含むネットワークを介しての通信処理を行う。
【０２７７】
入出力インタフェース７１０にはまた、必要に応じてドライブ７１５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア７２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部７１３にインストールされる。
【０２７８】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０２７９】
この記録媒体は、例えば、図３０に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM,DVDを含む）、光磁気ディスク（MDを含む）、もしくは半導体メモリなどよりなるリムーバブルメディア７２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM７０２や、記憶部７１３に含まれるハードディスクなどで構成される。
【０２８０】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２８１】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。
【０２８２】
なお、以上において、一つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて一つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【産業上の利用可能性】
【０２８３】
本発明は、ロボット制御情報教示システムに適用することが可能である。
【図面の簡単な説明】
【０２８４】
【図１】制御の遅延を説明するグラフである。
【図２】本発明を適用した情報処理システムの構成例を示すブロック図である。
【図３】図２の情報処理システムの、制御システムとしての構成例を示すブロック図である。
【図４】図２の情報処理システムの、記録システムとしての構成例を示すブロック図である。
【図５】図２の情報処理システムの、学習システムとしての構成例を示すブロック図である。
【図６】図２の制御装置の構成例を示すブロック図である。
【図７】図６の制御装置の、記録装置としての構成例を示すブロック図である。
【図８】図６の制御装置の、学習装置としての構成例を示すブロック図である。
【図９】リカレントニューラルネットワークのモデルの例を示す図である。
【図１０】データ学習部の構成例を示す図である。
【図１１】ダイナミクス記憶ネットワークの例を示す図である。
【図１２】ダイナミクス記憶ネットワークの他の例を示す図である。
【図１３】ダイナミクス記憶ネットワークのノードを説明する図である。
【図１４】時系列予測器の詳細な構成例を示すブロック図である。
【図１５】マスタの斜視図である。
【図１６】マスタの可動な関節を説明する図である。
【図１７】マスタの内部の構成例を示す図である。
【図１８】モードコントロールコマンダ画面の例を説明する図である。
【図１９】センサモータビューア画面の例を説明する図である。
【図２０】センサモータレコーダ画面の例を説明する図である。
【図２１】サーボゲイン設定処理の流れの例を説明するフローチャートである。
【図２２】記録処理の流れの例を説明するフローチャートである。
【図２３】再生処理の流れの例を説明するフローチャートである。
【図２４】学習処理の流れの例を説明するフローチャートである。
【図２５】勝者ノードからの距離と、学習の重みとの関係を示す図である。
【図２６】学習データの更新の方法を説明する図である。
【図２７】制御処理の流れの例を説明するフローチャートである。
【図２８】予測処理の流れの例を説明するフローチャートである。
【図２９】時系列予測器の他の構成例を示すブロック図である。
【図３０】本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０２８５】
１０  情報処理システム，  １１  制御装置，  １２  マスタ１２  スレーブ，  １４  ボール，  ２１  マスタスレーブ制御部，  ２２  データ記録部，  ２３  データ学習部，  ２４  スレーブ制御部，  ２５  データ表示制御部，  ５１  主制御部，  ５２  入力部，  ５３  出力部，  ６１  サーボゲイン設定部，  ６２  無線通信部，  ６３  センサデータ・コマンド変換部，  ６４  無線通信部，  ６５  データ統合部，  ６６  再生部，  ９１  無線通信部，  ９２  データ統合部，  ９３  時系列予測器，  １２１  ダイナミクス記憶ネットワーク取得部，  １２２  ダイナミクス記憶ネットワーク保持部，  １２３  時系列データ取得部，  １２４  学習部，  １２５  ダイナミクス記憶ネットワーク供給部，  １６２  学習データ記憶部，  １７３  認識部，  １７４  ネットワーク記憶部，  １７５  内部状態記憶部，  １７６  生成部，  １８１  内部状態量更新部，  １８２  スコア計算部，  １８３  勝者ノード決定部，  １８４  認識結果出力部，  １９１  生成ノード決定部，  １９２  内部状態読み込み部，  １９３  時系列データ生成部，  １９４  生成結果出力部，  ２０１  ロボット装置
【図１】
2007276052.tif 000003
【図２】
2007276052.tif 000004
【図３】
2007276052.tif 000005
【図４】
2007276052.tif 000006
【図５】
2007276052.tif 000007
【図６】
2007276052.tif 000008
【図７】
2007276052.tif 000009
【図８】
2007276052.tif 000010
【図９】
2007276052.tif 000011
【図１０】
2007276052.tif 000012
【図１１】
2007276052.tif 000013
【図１２】
2007276052.tif 000014
【図１３】
2007276052.tif 000015
【図１４】
2007276052.tif 000016
【図１５】
2007276052.tif 000017
【図１６】
2007276052.tif 000018
【図１７】
2007276052.tif 000019
【図１８】
2007276052.tif 000020
【図１９】
2007276052.tif 000021
【図２０】
2007276052.tif 000022
【図２１】
2007276052.tif 000023
【図２２】
2007276052.tif 000024
【図２３】
2007276052.tif 000025
【図２４】
2007276052.tif 000026
【図２５】
2007276052.tif 000027
【図２６】
2007276052.tif 000028
【図２７】
2007276052.tif 000029
【図２８】
2007276052.tif 000030
【図２９】
2007276052.tif 000031
【図３０】
2007276052.tif 000032