(57)【要約】【課題】センサの故障に対してロバストな制御を可能にする。【解決手段】予測部１１２は、学習したダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、回帰部１０３は、予測データを回帰し、修正データ生成部１０１は、入力データと回帰された予測データとを合成して修正データを生成し、縮約部１１１は、高次元の修正データの次元を縮約して、入力データより低次元の、制御対象の動作を制御するための位相データを生成する。本発明は、例えばロボットやモータの制御に適用することができる。【選択図】図４
2008304970.tif 000002
【特許請求の範囲】
【請求項１】
ダイナミクスを学習し、制御対象の動作を制御する制御装置において、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成する予測手段と、
前記予測データを回帰する回帰手段と、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成する修正データ生成手段と、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する縮約手段と
を備える制御装置。
【請求項２】
前記入力データと前記予測データとの予測誤差に基づいて、回帰割合を調節する回帰割合調節手段をさらに備え、
前記修正データ生手段は、前記入力データと前記予測データとを、前記回帰割合に基づいて合成して前記修正データを生成する
請求項１に記載の制御装置。
【請求項３】
前記縮約手段は、前記制御対象の状態を観測して得られる高次元の観測データである前記入力データを、前記観測データで規定される空間内に表される閉曲線の位置を一義的に特定する次元に縮約する
請求項１に記載の制御装置。
【請求項４】
前記予測手段と前記縮約手段は、リカレントニューラルネットワークとして一体的に形成されている
請求項１に記載の制御装置。
【請求項５】
前記回帰割合をαとするとき、前記修正データ生成手段は、前記入力データとαの積と、前記予測データと１からαを減算した値との積の和を演算して前記修正データを生成する
請求項２に記載の制御装置。
【請求項６】
前記回帰割合調節手段は、前記入力データの次元ごとの前記予測誤差を算出し、着目する次元以外の前記予測誤差を最小化するように、着目する前記回帰割合を調節する
請求項２に記載の制御装置。
【請求項７】
前記回帰割合調節手段は、前記入力データの予測誤差が基準値以下か、または繰り返し調節回数が基準回数以上になるまで前記回帰割合を調節する
請求項２に記載の制御装置。
【請求項８】
前記修正データ生成手段は、前記入力データに前記位相データも含めて前記修正データを生成する
請求項２に記載の制御装置。
【請求項９】
前記予測処理と前記縮約処理を行うパラメータを学習する場合において、前記予測データの目標出力値との誤差の平均二乗誤差に次元ごとに重みを与える重み付加手段をさらに備える
請求項２に記載の制御装置。
【請求項１０】
前記位相データから前記制御対象の所定の位置を指令する指令データを生成する指令データ生成手段をさらに備え、
前記修正データ生成手段は、前記入力データに前記指令データも含めて前記修正データを生成する
請求項２に記載の制御装置。
【請求項１１】
前記指令データ生成手段は、前記指令データに基づいて、前記制御対象を制御する制御データをさらに生成する
請求項１０に記載の制御装置。
【請求項１２】
前記修正データ生成手段は、０．５乃至１．０周期の前記修正データを生成する
請求項１に記載の制御装置。
【請求項１３】
ダイナミクスを学習し、制御対象の動作を制御する制御装置の制御方法において、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、
前記予測データを回帰し、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する
処理を含む制御方法。
【請求項１４】
ダイナミクスを学習し、制御対象の動作を制御するプログラムにおいて、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、
前記予測データを回帰し、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置および方法、並びにプログラムに関し、特に、観測ノイズやセンサの故障に対してロバストな制御をする制御装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、電子制御デバイスとそれを制御するコンピュータの急速な発達により、制御対象に対し多くのセンサを装備し、その測定値に基づいて制御を行うことが可能になった。また多くの制御出力を用いて制御対象に働きかけることが可能になっている。このような制御対象の代表的な例として人間型の２足歩行ロボットの運動が挙げられる。
【０００３】
２足歩行ロボットは歩行運動を始め全身を協調させた運動を生成するため、各関節の角度を計測するエンコーダをはじめとして、床反力センサ、加速度センサ、角速度センサなど実に多くのセンサを装備している。また制御出力もアクチュエータの数だけ必要であり、典型的な脚機構の自由度は両脚で１２になる。一般に物体の位置姿勢を表す自由度は６で十分であることから、これに比して次元数の高い冗長な制御系であることが判る。
【０００４】
ロボットの行動や運動は、時間発展法則により定められる力学系（dynamical Systems）として記述することができ、様々な行動はその力学系がある特定のアトラクタダイナミクス（attractor dynamics）によって実現できることが知られている。
【０００５】
例えば、２足型ロボットの歩行運動は、系の運動状態が様々な初期状態からある特定の周期軌道に落ち着くことを特徴とするリミットサイクルダイナミクス（limit cycle dynamics）として記述することができる（非特許文献１）。
【０００６】
また、腕を用いてある対象物に対して手先を伸ばすようなリーチング運動は、様々な初期状態からある特定の固定点に落ち着くことを特徴とする不動点ダイナミクス（fixed-point dynamics）として記述することができる。さらに、全ての運動は、不動点ダイナミクスで実現可能な離散運動（discrete movement）とリミットサイクルダイナミクスで実現可能な周期運動（cyclic movement）の組み合わせにより実現できるとも言われている。
【０００７】
以下、ロボットの周期的な歩行運動を例として説明する（なお不動点ダイナミクスについても位相データを距離と読み替えることで同様に考えることができる）。
【０００８】
歩行運動をリミットサイクルダイナミクスに基づいて制御する４足歩行ロボットが知られている（例えば、非特許文献２）。図１は、この従来の４足歩行ロボットシステムの構成を表している。このシステムは、４足歩行ロボット１とそれを制御する制御部２とにより構成されている。制御部２は認識部１１と生成部１２により構成されている。
【０００９】
認識部１１は神経振動子により構成されている。４足歩行ロボット１のセンサ（図示せず）より出力されたセンサデータＳtが認識部１１の神経振動子に入力されると、神経振動子は、センサデータＳtの振動と同期する発振出力としての位相データφtを生成し、出力する。この位相データφtを４足歩行ロボット１の脚運動の位相に対応させ、位相に応じた複数の生成器２１Ｕ,２１Ｄ,２２Ｕ,２２Ｄを用意し、認識部１１より出力された位相データφtを、制御対象とする所定の位相の生成器に切り替えて供給することで、４足歩行ロボット１の歩行運動を制御する制御データｕtが生成される。
【００１０】
このように、センサデータＳtを位相データφtに変換することにより、脚運動の定性的な状態量が直感的に理解し易くなる。例えば、位相データの位相φtが、０＜φ＜π／２のときは遊脚前期、すなわち脚が地面から離れ、脚を持ち上げるように運動させている状態、π／２＜φ＜πのときは遊脚後期、すなわち浮いている脚を地面に接地させるよう脚を下げている状態といったように、１サイクルの歩行中の動作を、人間が理解し易い部分に分割することが可能である。このようにすれば、位相データの位相φに応じて、遊脚前期の生成器２１Ｕと遊脚後期の生成器２１Ｄをスイッチ２３で切り替えて利用することが可能となり、生成器の設計が簡便になる。
【００１１】
以上のことは、４足歩行ロボット１を地面上に支持している他の支持脚の生成器２２Ｕ，２２Ｄについても同様である。
【００１２】
【非特許文献１】多賀 厳太郎著「脳と身体の動的デザイン−運動・知覚の非線形力学系と発達」、金子書房
【００１３】
【非特許文献２】福岡泰宏、木村浩 (2001) 「４足ロボットの生物規範型不整地適応動歩行 − 体性感覚・前庭感覚による調整」、日本ロボット学会誌、Vol.19、 No.4、 510-517
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、図１の認識部１１は、センサデータＳtから位相データφtを生成するのに、複数の次元のセンサデータＳtの中の一部を選択し、その選択したセンサデータＳtを線形変換することで、４足歩行ロボット１が出力するセンサデータＳtの次元より低い次元の位相データφtを生成していた。その結果、選択したセンサデータＳtにノイズが重畳していたり、センサ自身が故障していたりした場合に対するロバスト性が低かった。
【００１５】
本発明は、このような状況に鑑みてなされたものであり、センサ故障やノイズに対してロバストな制御ができるようにするものである。
【課題を解決するための手段】
【００１６】
本発明の側面は、ダイナミクスを学習し、制御対象の動作を制御する制御装置において、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成する予測手段と、
前記予測データを回帰する回帰手段と、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成する修正データ生成手段と、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する縮約手段と
を備える制御装置である。
【００１７】
前記入力データと前記予測データとの予測誤差に基づいて、回帰割合を調節する回帰割合調節手段をさらに備え、
前記修正データ生手段は、前記入力データと前記予測データとを、前記回帰割合に基づいて合成して前記修正データを生成することができる。
【００１８】
前記縮約手段は、前記制御対象の状態を観測して得られる高次元の観測データである前記入力データを、前記観測データで規定される空間内に表される閉曲線の位置を一義的に特定する次元に縮約することができる。
【００１９】
前記予測手段と前記縮約手段は、リカレントニューラルネットワークとして一体的に形成されていることができる。
【００２０】
前記回帰割合をαとするとき、前記修正データ生成手段は、前記入力データとαの積と、前記予測データと１からαを減算した値との積の和を演算して前記修正データを生成することができる。
【００２１】
前記回帰割合調節手段は、前記入力データの次元ごとの前記予測誤差を算出し、着目する次元以外の前記予測誤差を最小化するように、着目する前記回帰割合を調節することができる。
【００２２】
前記回帰割合調節手段は、前記入力データの予測誤差が基準値以下か、または繰り返し調節回数が基準回数以上になるまで前記回帰割合を調節することができる。
【００２３】
前記修正データ生成手段は、前記入力データに前記位相データも含めて前記修正データを生成することができる。
【００２４】
前記予測処理と前記縮約処理を行うパラメータを学習する場合において、前記予測データの目標出力値との誤差の平均二乗誤差に次元ごとに重みを与える重み付加手段をさらに備えることができる。
【００２５】
前記位相データから前記制御対象の所定の位置を指令する指令データを生成する指令データ生成手段をさらに備え、
前記修正データ生成手段は、前記入力データに前記指令データも含めて前記修正データを生成することができる。
【００２６】
前記指令データ生成手段は、前記指令データに基づいて、前記制御対象を制御する制御データをさらに生成することができる。
【００２７】
前記修正データ生成手段は、０．５乃至１．０周期の前記修正データを生成することができる。
【００２８】
本発明の側面はまた、ダイナミクスを学習し、制御対象の動作を制御する制御装置の制御方法またはプログラムにおいて、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、
前記予測データを回帰し、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する
処理を含む制御方法またはプログラムである。
【００２９】
本発明の側面においては、学習したダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データが生成され、予測データが回帰され、入力データと回帰された予測データとを合成して修正データが生成され、高次元の修正データの次元を縮約して、入力データより低次元の、制御対象の動作を制御するための位相データが生成される。
【発明の効果】
【００３０】
本発明の側面によれば、センサ故障やノイズに対してロバストな制御が可能となる。
【発明を実施するための最良の形態】
【００３１】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３２】
本発明の側面は、ダイナミクスを学習し、制御対象（例えば、図４の制御対象６１）の動作を制御する制御装置（例えば、図４の制御部６２）において、
学習した前記ダイナミクスに基づいて、過去の複数のタイミング（例えば、時刻ｔ−ｋ乃至時刻ｔ−１）の高次元の修正データ（例えば、図４の修正データＳat-k,…,Ｓat-2,Ｓat-1）から、それより後のタイミング（例えば、時刻ｔ）の高次元の入力データ（例えば、図４のセンサデータＳt）を予測した予測データ（例えば、図４の予測データＳpt）を生成する予測手段（例えば、図４の予測部１１２）と、
前記予測データを回帰する回帰手段（例えば、図４の回帰部１０３）と、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成する修正データ生成手段（例えば、図４の修正データ生成部１０１）と、
高次元の前記修正データ（例えば、図４の修正データＳat-1）の次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データ（例えば、図４の位相データφpt）を生成する縮約手段（例えば、図４の縮約部１１１）と
を備える制御装置。
【００３３】
前記入力データと前記予測データとの予測誤差に基づいて、回帰割合を調節する回帰割合調節手段（例えば、図４の回帰割合調節部１０４）をさらに備え、
前記修正データ生手段は、前記入力データと前記予測データとを、前記回帰割合に基づいて合成して前記修正データを生成することができる。
【００３４】
前記予測手段と前記縮約手段は、リカレントニューラルネットワークとして一体的に形成されている（例えば、図６の予約縮約部１０２）ことができる。
【００３５】
前記予測処理と前記縮約処理を行うパラメータを学習する場合において、前記予測データの目標出力値との誤差の平均二乗誤差に次元ごとに重みを与える重み付加手段（例えば、図１１の出力重み調整部３０３）をさらに備えることができる。
【００３６】
前記位相データから前記制御対象の所定の位置を指令する指令データ（例えば、図４の中間制御データｕ’t）を生成する指令データ生成手段（例えば、図４の生成部８２）をさらに備え、
前記修正データ生成手段は、前記入力データに前記指令データも含めて前記修正データを生成することができる。
【００３７】
本発明の側面はまた、ダイナミクスを学習し、制御対象（例えば、図４の制御対象６１）の動作を制御する制御装置（例えば、図４の制御部６２）の制御方法またはプログラムにおいて、
学習した前記ダイナミクスに基づいて、過去の複数のタイミング（例えば、時刻ｔ−ｋ乃至時刻ｔ−１）の高次元の修正データ（例えば、図４の修正データＳat-k,…,Ｓat-2,Ｓat-1）から、それより後のタイミング（例えば、時刻ｔ）の高次元の入力データ（例えば、図４のセンサデータＳt）を予測した予測データ（例えば、図４の予測データＳpt）を生成し（例えば、図２５のステップS９７）、
前記予測データを回帰し（例えば、図２５のステップS９８）、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し（例えば、図２５のステップＳ９６）、
高次元の前記修正データ（例えば、図４の修正データＳat-1）の次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データ（例えば、図４の位相データφpt）を生成する（例えば、図２５のステップＳ１０１）
処理を含む制御方法またはプログラムである。
【００３８】
以下、図を参照して本発明の実施の形態について説明する。
【００３９】
図２は、本発明を適用した制御システムの一実施の形態の構成を表している。この制御システム５０は、制御対象５１と、その動作を制御する制御部５２により構成されている。制御部５２は制御対象５１が出力する状態変数データｘtを入力して、制御変数データｕtを算出し、制御対象５１に出力する。制御対象５１は制御変数データｕtに従って動作し、その結果制御対象５１の状態が変化し、状態変数データｘtが変化する。この処理のループが繰り返されることで、制御対象５１が所望の状態に制御される。
【００４０】
このような制御システム５０は、例えば、プラント、自動車、航空機、ロボットなどに適用されるが、以下においては、ロボットに適用される場合を例として、本発明の実施の形態について説明する。
【００４１】
図３の制御システム６０は、ロボットの運動を制御するシステムであり、ロボットとしての制御対象６１と、ダイナミクスを学習し、制御対象６１の動作を制御する制御部６２により構成される。制御対象６１であるロボットには、運動を実行するアクチュエータ７２と、その運動状態を観測するセンサ部７１が具備されている。センサ部７１は複数のセンサ（図示せず）により構成され、その数に対応する次元の状態を観察し、対応する状態変数データｘtを出力する。ロボットの運動を記述する状態変数データｘtは、センサデータＳtとして、制御部６２に出力される。観測データである状態変数データｘtとセンサデータＳtは、それぞれの次元のベクトルで表わされるが、必ずしも同じ次元ではない。物理的な制約によりすべてのセンサが配置できない場合もあるし、安全性を考え、冗長にセンサを導入することもあり得るからである。
【００４２】
例えば、物理量としては１つの状態である加速度を、２個の加速度センサで観測する場合、２個のセンサの出力をそのまま使用するとき、センサデータの次元（＝２）が状態変数データの次元（＝１）より大きくなる。逆に、必ずしもすべての状態変数データを使用する必要はないので、一部の状態変数データのみを使用する場合には、センサデータの次元が状態変数データの次元より小さくなる。
【００４３】
制御部６２は認識部８１と生成部８２で構成される。認識部８１はセンサ部７１からのセンサデータＳtを受け取り、より低次元に縮約して、位相データφtを生成し、出力する。すなわちdimＳt-1 > dimφtである。なお、dimは次元を表わす。生成部８２は認識部８１からの位相データφtを入力として、制御変数データｕtを算出し、出力する。制御変数データｕtによりアクチュエータ７２が駆動され、制御対象６１としてのロボットが運動する。その結果、次の時刻の状態変数データｘt+1が変化する。
【００４４】
なお、ｔは、時刻またはタイミングを表わしている。現在時刻をｔとすれば、ｔ−１は、現在時刻より１クロック分だけ相対的に前の時刻を意味し、ｔ＋１は１クロック分だけ相対的に後の時刻を意味する。例えば、認識部８１は、時刻ｔのセンサデータＳtに基づいて、その時刻ｔの位相データφtを生成する。以下、時刻またはタイミングを表わす必要がない場合には、状態変数データｘt、センサデータＳt、位相データφt、制御変数データｕt等は、それぞれ、状態変数データｘ、センサデータＳ、位相データφ、制御変数データｕ等とも表わす。他のデータの記号についても同様である。また、これらのデータも、それぞれの次元のベクトルで表わされる。
【００４５】
図４は、図３の制御システム６０の特に認識部８１の機能的構成をより詳細に表した図である。時刻ｔにおけるセンサデータＳtを入力し、より低次元の位相データφptを出力する認識部８１は、内部に、修正データ生成部１０１、縮約部１１１と予測部１１２を有する予約縮約部１０２、回帰部１０３、および回帰割合調節部１０４を有する。
【００４６】
修正データ生成部１０１は、制御対象６１の状態を観測して得られる高次元の入力データとしての観測データと、回帰された予測データを合成して修正データを生成する。すなわち、修正データ生成部１０１は、基本的にはセンサ部７１から時々刻々と入力されるセンサデータと回帰部１０３より入力される予測データをｋ＋１ステップ分保持することで、現在時刻ｔからｋ（ｋ>０なる整数）ステップ過去までのセンサデータＳt-k,…,Ｓt-2,Ｓt-1の修正データＳat-k,…,Ｓat-2,Ｓat-1よりなる時系列データを生成する。時系列データとされた修正データＳat-k,…,Ｓat-2,Ｓat-1は予測部１１２および縮約部１１１に入力される。
【００４７】
予測部１１２は、学習したダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成する。すなわち、予測部１１２は、ｋ（ｋは２以上の正の整数）ステップ過去から１ステップ過去までの時系列データとされた修正データＳat-k,…,Ｓat-2,Ｓat-1を用いて、現在時刻のセンサデータＳtを予測したデータである予測データＳptを予測する。このように、過去の複数のタイミングの修正データを用いて予測を行うことで、正確な予測が可能となる。
【００４８】
回帰部１０３は、この予測データＳptを修正データ生成部１０１に回帰する。これにより、修正データ生成部１０１において予測データＳptをそのまま入力として、再び予測部１１２に供給することで、予測データＳpt+1, Ｓpt+2,Ｓpt+3,…と、順次、未来の時系列データを自己生成することができる。
【００４９】
回帰割合調節部１０４は、入力データと予測データの次元ごとの予測誤差を算出し、着目する次元以外の観測データと予測データとの予測誤差を最小化するように、着目する回帰割合を調節する。すなわち、回帰割合調節部１０４は過去のｋステップの修正データＳat-k，・・・，Ｓat-1に基づいて予測された現在時刻ｔの予測データＳptと、現在時刻の観測データとしてのセンサデータＳtを比較することで、その予測誤差を算出し、その予測誤差に基づいて、予測誤差が大きいほど、予測データＳptが回帰する割合が大きくなるように、すなわち、時系列データＳatにおいてセンサデータＳtの成分が占める割合が小さくなるように、回帰割合を調節する。具体的には、回帰割合調節部１０４は、回帰割合を規定する入力重みαstを予測誤差の値に応じて所定の値に設定する。設定された入力重みαstは、修正データ生成部１０１に入力される。
【００５０】
センサ部７１を構成する複数のセンサのそれぞれが正常であれば、それぞれの出力に基づく予測誤差は小さくなり、故障していればそのセンサの出力に基づく予測誤差は大きくなる。従って、修正データ生成部１０１は、入力重みαstの大きさ（すなわち予測誤差の大きさ）に応じて予測データＳptの回帰割合を調節し、予測誤差が予め設定されている閾値より大きいセンサは故障しているものとして、そのセンサが出力するセンサデータは採用せず、予測部１１２により他の正常なセンサのセンサデータにより導出された予測データを採用するように、入力重みαstに基づく合成処理を実行する。この処理によりセンサの故障により欠落したセンサデータを、他の正常なセンサのセンサデータから補った時系列データを生成することができる。
【００５１】
修正データ生成部１０１における入力重みαsに基づく合成処理を式を用いて説明すると次のようになる。すなわち、時刻ｔにおけるｎ次元のセンサデータＳtを次の式で表すとする。なお、次式におけるＳitのｉは次元を表わす。
Ｓt＝（Ｓ1t，Ｓ2t，Ｓ3t，…，Ｓnt）          …（１）
【００５２】
仮に２番目（２次元目）のセンサが故障していた場合、その出力データＳ2tは異常値である可能性が高い。そこで、修正データ生成部１０１において、２番目のセンサデータＳ2tの予測データＳa2tを用いて、次式で表される修正データＳatが生成される。
Ｓat＝（Ｓ1t，Ｓa2t，Ｓ3t，…，Ｓnt）        …（２）
【００５３】
すなわち、故障しているセンサのデータを含むセンサデータＳが、次式における入力重みαsitをαsit＝０と設定することで、故障しているセンサのデータを含まない時系列データＳaに修正される。
【００５４】
【数１】
2008304970.tif 000003
【００５５】
縮約部１１１は、高次元の修正データの次元を縮約して、入力データより低次元の、制御対象６１の動作を制御するための位相データを生成する。すなわち、縮約部１１１は、高次元のセンサデータの修正データＳat-1を、それより低い次元の位相データφptに写像する。縮約部１１１に入力される修正データＳat-1は、修正データ生成部１０１、予測部１１２、回帰部１０３、および回帰割合調節部１０４によりセンサ故障を正常なセンサの出力を用いて自己修正したデータであるので、耐故障性の高い安定した位相データφptを出力することができる。
【００５６】
また図４の実施の形態においては、位相データφptから制御変数データｕtを生成し、制御対象６１のアクチュエータ７２に出力する生成部８２が、内蔵する目標軌道生成部４５１（図３２を参照して後述する）により、位相データφtに基づき中間制御データｕ’tを算出し、回帰割合調整部１０４に供給するとともに、修正データ生成部１０１に入力データとして供給する。この中間制御データｕ’tは、２足２腕のロボットの脚先のＸ方向位置指令値を表す（その詳細は図９を参照して後述する）。
【００５７】
予測部１１２は、修正データ生成部１０１より入力された修正データとしての中間制御データｕ’at-1に基づいて、その予測データｕ’ptを生成する。回帰部１０３はこの中間制御データの予測データｕ’ptを修正データ生成部１０１に回帰する。回帰割合調節部１０４は、生成部８２からの中間制御データｕ’tと、予測部１１２からの予測データｕ’ptとの予測誤差を演算し、その予測誤差に対応する入力重みαutを修正データ生成部１０１に供給する。修正データ生成部１０１は、この入力重みαutに基づいて、中間制御データｕ’tと予測データｕ’ptとを次式に基づいて合成する。すなわち、中間制御データｕ’tが予測データｕ’ptにより修正される。修正された中間制御データは、次回のタイミングで予測部１１２に出力される。
【００５８】
【数２】
2008304970.tif 000004
【００５９】
図４の実施の形態においては、センサデータの予測データＳptと中間制御デーの予測データｕ’ptとを回帰させるようにしたが、図５に示されるように、センサデータの予測データＳptだけを回帰させるようにしてもよい。
【００６０】
さらに図４の実施の形態においては、予測縮約部１０２において、縮約部１１１と予測部１１２を独立の構成としたが、図６に示されるように、縮約部１１１と予測部１１２を一体的に構成することもできる。この場合、図１４を参照して後述するように、予測縮約部１０２は、リカレントニューラルネットワーク３６１で構成することができる。
【００６１】
センサデータＳtがより小さい次元の位相データφtで代表できることを概念的に説明すると、次のようになる。図７はリミットサイクルアトラクタによる周期運動を示し、図８は不動点アトラクタによる到達運動を示している。ここでは３次元のセンサデータから、位相データを１次元のスカラ値として取り出す例を示している。
【００６２】
リミットサイクルアトラクタはＳ1,Ｓ2,Ｓ3の３次元のセンサ空間内に閉曲線１３１として表され、その閉曲線１３１上をセンサデータベクトルＳtは周回する。周期軌道である閉曲線１３１の周辺にはアトラクタ構造（すなわち、引き込み領域１３２）があるため、軌道からずれたセンサデータベクトルでも、時間発展と共に次第に引き込まれ、周期軌道に収束する。センサデータベクトルが周期軌道上を周回しているとき、周期軌道上のどの位置にあるのかを記述することができれば、現在のセンサデータベクトルを用いずとも、小さい次元で状態を表すことができる。例えば周期軌道にもっとも近い平面１３３を設定し、その平面１３３上に周期軌道を投影する。そして適当に定めた周期軌道内の原点Ｏおよび投影軌道上の１点φ0を基準として、センサデータベクトルＳtの位置を角度φtで表す。このようにすれば３次元のセンサデータベクトルＳtを角度φtという１次元のスカラ値で代表させることができる。すなわち、縮約部１１１は、高次元の観測データである入力データを、観測データで規定される空間内に表される閉曲線の位置を一義的に特定する次元に縮約する。
【００６３】
図８に示す不動点ダイナミクスの場合、到達運動制御の観点から、最も重要なパラメータは、図中、×印で示される不動点アトラクタとセンサデータベクトルＳtとの距離であると考えられる。不動点アトラクタの周囲に引き込み領域１４１が形成されている。従ってこの距離をφtとして抽出することで、到達運動の達成度合いを測ることができる。上記例では原点の設定や位相０の点の設定など任意性があるものの、運動制御に重要と思われる情報を、次元を減らして取り出し得る。
【００６４】
高次元のセンサデータをそのまま扱うのではなく、一旦低次元化した位相データにすることで、運動を人間が直感的に理解し易くすることができ、また、生成部８２の設計も容易にすることができる。さらに、センサ故障やノイズに対してロバストな制御が可能となる。
【００６５】
力学系の観点からロボットの運動を見たとき、今現在の運動状態を表す変数が、必ずしもセンサと同様に多次元である必要はない。例えば特定の周期軌道を持つリミットサイクルダイナミクスの場合を考えると、定常周期運動をしているとき、ある時刻におけるロボットの状態は、周期軌道上のどの位置にあるかを指し示す位相さえ判れば一意に定まる。不動点ダイナミクスの場合では、固定点からの距離が運動の状態を代表する変数になりうる。このように多次元のセンサ情報を、位相あるいは距離という低次元の情報に縮約し、それを用いて制御することで、多次元の複雑な問題が扱い易くなる。
【００６６】
例えば、人間型２足歩行ロボットの直進歩行運動における縮約の例について説明する。
【００６７】
図９は本発明の実施の形態としての「人間型」の脚式移動ロボット２００が直立している様子を示している。この脚式移動ロボット２００においては、座標軸が、ロボットの進行方向がＸ、右水平方向がＹ、鉛直方向がＺ、とされている。脚式移動ロボット２００は、下方に腰部２１４を有し、上方に首２１２により結合されている頭部２１１を有する胴体部２１３、胴体部２１３の左右側面上方に取り付けられている左右の上肢部２１５、腰部２１４の下方に取り付けられている脚式移動を行なう左右２足の下肢部２１６により構成されている。
【００６８】
上肢部２１５は、上腕部２２１、肘２２２、前腕部２２３、および手先２２４により構成されている。下肢部２１６は、股関節２３１、大腿部２３２、膝関節２３３、脛部２３４、足首２３５、および足平２３６により構成されている。
【００６９】
腰部２１４には、腰部センサ２５１が内蔵されている。腰部センサ２５１としては、図１０に示されるように、３軸並進加速度センサ２６１と３軸角速度センサ２６２が設けられている。これらのセンサを組み合わせることで、絶対空間座標系における腰部２１４の傾き角であるロール角とピッチ角も算出することができる。
【００７０】
足平２３６の底には力センサ２５２が設けてあり、床反力中心点が計測できるようになっている。腰部２１４の並進加速度３次元、腰部２１４の回転角速度３次元、絶対空間座標系における腰部２１４の傾き角であるロール角とピッチ角の２次元、胴体座標系における床反力中心点(COP:Center of Pressure)のＸ，Ｙ座標の２次元の合計１０次元がセンサデータとされる。この１０次元のセンサデータが、１次元のスカラ値としての位相データに縮約される。
【００７１】
直進歩行運動の脚運動はその場での足踏み運動と、前後方向（Ｘ方向）への運動に簡易的に分解することができる。ここで制御対象とする問題は、直進歩行運動の前後方向への脚運動である。つまり、足踏み運動を行っている状態において、どのように歩を前に進めるかという運動制御問題である。１０次元のセンサデータを１次元の位相データに縮約し、その位相データに同期するように脚を前後に駆動し、ロボットを直進させる。
【００７２】
この場合、認識部８１は、アトラクタダイナミクスを持つ多次元のセンサデータＳtを、より低次元の位相データφtに写像する、具体的には、１０次元のセンサデータを縮約し、１次元のスカラ値を算出する写像関数としての機能を有する。
【００７３】
アトラクタダイナミクスを持つ力学系の状態を観測している多数のセンサは、異なる状態量を観測対象としていても、程度の差こそあれ、何らかの相関関係を持っていると考えられる。例えば腰部２１４の角度と角速度は微分関係にあり、各々が独立に変化することはあり得ない。そこで本発明の実施の形態では、多次元のセンサベクトルすべての次元を入力として、１のアトラクタダイナミクスとしてその力学系構造を記憶し、その中から位相データを抽出する。
【００７４】
すなわち、本明細書における縮約とは、複数のＮ個の次元の中の一部のＭ（Ｎ＞Ｍ）個の次元を選択あるいは抽出し、残りのＮ−Ｍ個の次元を捨象することにより、Ｍ個の次元とする処理ではなく、複数のＮ個の次元から、その一部を捨象することなく、Ｎ個の次元の相互の関連性を利用して、Ｎ個の次元のすべてを利用して、それより小さい数の新たなＭ個の次元を生成する処理である。これにより、一部のセンサの出力にノイズが乗ったりセンサが故障したりしても、残りのセンサの出力を用いることで、ロバストに位相データを算出することができる。すなわち、複数の次元が１つのダイナミクスを構成し、そのダイナミクスが記憶されているので、センサ故障などに対してロバストなシステムを実現することができる。
【００７５】
このように認識部８１は、アトラクタダイナミクスを持つセンサデータＳtを、より低次元の位相データφtに写像する関数としての機能を有する。多次元のセンサデータＳtがどのようなアトラクタダイナミクスであるか、解析的に求めることは困難な場合が多い。そこで、認識部８１に、学習により写像関係を獲得する構成を採用することができる。その構成の１つに、リカレントニューラルネットワーク（RNN:Recurrent Neural Network）がある。リカレントニューラルネットワーク（以下、RNNとも称する）はネットワークに回帰ループで結合されるコンテキストユニットを持ち、そこに内部状態を保持することによって、理論的には任意の力学系を近似可能であることが知られている。
【００７６】
図１１は、認識部８１として使用可能な３層型ニューラルネットワークであるリカレントニューラルネットワーク３０１の構成を示したものである。出力層から入力層への回帰ループを持つこのリカレントニューラルネットワーク３０１を用いて、時系列データである時刻ｔ-１の入力データＸt-1を入力し、時刻ｔの入力データＸtを予測して出力することを予測学習（prediction learning）することにより、対象となる時系列データの時間発展法則を学習することができる。なお、ここにおける入力データは、図４におけるセンサデータＳtと中間制御データｕ’tを表わす。
【００７７】
リカレントニューラルネットワークのような内部状態量を持つ力学系近似モデルのパラメータ（各ユニット間のパスに対して設定される結合重み係数）の推定方法には、一般的には、Back-Propagation Through Time 法（以下、BPTT法と称する）が適用可能であることが知られている。BPTT法はよく知られており、ここではその説明を省略するが、例えば 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に開示されている。
【００７８】
内部状態量を持つ力学系近似モデルとしてのリカレントニューラルネットワーク３０１は、学習に使われる時系列データに基づいてダイナミクスを学習することになる。修正データ生成部１０１を構成する入力重み調整部３０２は、リカレントニューラルネットワーク３０１に入力されるデータに対して、どの次元に着目すべきかの調整を行う。出力重み調整部３０３は、リカレントニューラルネットワーク３０１から出力されるデータに対して、どの次元に着目すべきかの調整を行う。
【００７９】
図１２は、入力層３１２、中間層３１３、および出力層３１４の３層で構成されるリカレントニューラルネットワーク３０１と、入力重み調整部３０２として機能する合成部３１１の構成を示している。入力層３１２には時刻ｔ−ｋ乃至ｔ−１の時系列データとされた修正データＸat-k，・・・，Ｘat-1が入力される。なお、簡単のため、図１２には、時刻ｔ−１の修正データＸat-1のみが示されている。この例では、時系列データとされた修正データＸat-1は次式で表されるように、１０次元のデータである。他の時刻の修正データも同様である。
【００８０】
【数３】
2008304970.tif 000005
【００８１】
一方、入力層３１２への修正データＸat-k，・・・，Ｘat-1の入力に基づいて、出力層３１４からは、時刻tの時系列データの予測データＸptが出力される。この例では、予測データＸptは次式で表されるように、１０次元のデータである。
【００８２】
【数４】
2008304970.tif 000006
【００８３】
また、入力層３１２と出力層３１４には、入出力データとは直接関係を持たない隠れユニットが用意される。このユニットを用いて出力層３１４から入力層３１２への回帰ループが構成される。この図１２の例では、隠れユニットへの入力データと出力データは、ｃt-1とｃptによってそれぞれ表されている。
【００８４】
出力層３１４から出力される予測データＸp1t, Ｘp2t, …,Ｘp10tは、回帰部１０３により合成部３１１に回帰される。合成部３１１は、入力データＸt＝（ｘ1t, ｘ2t, …,ｘ10t）と、予測データＸpt＝（Ｘp1t, Ｘp2t, …,Ｘp10t）の予測誤差を演算し、その予測誤差に応じて入力重みαを演算し、次式に基づいて入力データＸtと予測データＸptを合成し、修正データとして入力層３１２に供給する。
【００８５】
【数５】
2008304970.tif 000007
【００８６】
αiは、０≦αi≦１の範囲で与えられるi次元目のデータに対応する混合比を指定するパラメータとしての入力重みであり、予測データの入力への回帰割合を表している。αi＝１の場合、センサ部７１により観測されるデータだけが入力層３１２に入力されることになり、αi＝０の場合、１時刻前までの修正データに基づき予測された予測データだけが入力層３１２に入力されることになる。入力重みαiは入力データの各次元ごとに調整することが可能である。図１１の入力重み調整部３０２は、この入力重みαiを調整することで、観測される時系列パターンのうちの所定の次元に対して着目させる。
【００８７】
例えば、図１２の例において、入力重みαiを次式のように調整した場合、入力されるデータｘitのうちの、２つの次元のデータｘ1t, ｘ3tのみに着目することになり、それ以外の次元の時系列データとしては、入力データは用いられず、予測データが用いられることになる。つまり２つの次元１,３以外の次元（２，４，５，６，７，８，９，１０の次元）の時系列データは、リカレントニューラルネットワーク３０１により自己生成された値が用いられる。
α1＝α3＝１
α2＝α4＝α5＝α6＝α7＝α8＝α9＝α10＝０  …  （８）
【００８８】
また、入力重みαiを次式のように調整した場合、すべての次元の入力データを同じ重みで着目することになり、観測される入力データｘitと、回帰部１０３による回帰ループよって入力される予測データｘpitを同じ割合で混合したデータｘaitが、時系列データとして利用されることになる。
α1＝α2＝α3＝α4＝α5＝α6＝α7＝α8＝α9＝α10＝０．５  …  （９）
【００８９】
一方、リカレントニューラルネットワーク３０１のパラメータ推定方法として、ＢＰＴＴ法を適用するものとすると、時刻 tの入力データを予測して出力することを学習することになるので、次式で与えられる重みつき平均二乗誤差によって与えられる出力誤差が、評価値として学習に利用される。出力重み調整部３０３は、予測処理と縮約処理を行うパラメータを学習する場合において、予測データの目標出力値との誤差の平均二乗誤差に次元ごとに重みを与える重み付加手段としての機能を有する。
【００９０】
【数６】
2008304970.tif 000008
【００９１】
上記式において、ｘpitは出力層３１４から出力される予測データの値であり、ｒitは予測データの目標出力値である。βiは０≦βi≦１の範囲で与えられるi次元目の重み係数であり、この係数を調整することで、どの次元に着目して力学系の近似精度の評価を行うかを調整することができる。そして、上記式で与えられる出力誤差Eを最小化するようにリカレントニューラルネットワークのパラメータ推定が行われることになる。このパラメータβiは出力層３１４から出力される予測データに関する予測誤差を評価するために利用されることから、出力重みと称する。出力重み調整部３０３は、この出力重みβiを調整することで、出力層３０３から出力される予測データに基づく予測誤差を評価する際の着目すべき次元の調整を行う。
【００９２】
例えば図１２の実施の形態において、次式で示されるように出力重みβiを調整した場合、入力データのうちの２つの次元１，３の入力データｘ1t, ｘ3tに着目した予測誤差が評価値として利用されることになる。
β1＝β3＝１
β2＝β4＝β5＝β6＝β7＝β8＝β9＝β10＝０  …  （１１）
【００９３】
図６に示されるように、図４に示される予測部１１２と縮約部１１１を、１つのリカレントニュートラルネットワークで実現した場合、予測部１１２と縮約部１１１を別々に学習する必要がなくなり、演算速度を向上させることができ、また必要なメモリの容量を小さい値に抑えることができる。さらに学習に要する教師データも共通化でき、効率的に学習を行うことができる。また予測部１１２と縮約部１１１が隠れユニットの回帰ループを共有することから、ノイズに対してロバストな位相データの抽出が期待できる。
【００９４】
予測縮約部１０２は、センサデータと位相データを組み合わせた時系列データを教師データとして、そのダイナミクスを学習することで構成される。
【００９５】
図１３に予測縮約部１０２に学習させる場合の構成を示す。本実施の形態では、予測縮約部１０２の予測部１１２と縮約部１１１は１つのリカレントニューラルネットワークによって実現されている。従って入力の時系列教師データと出力の予測データは、センサデータと位相データが組みになったものである。学習部３３１は時系列教師データと予測データを比較し、予測がより良くなるようにリカレントニューラルネットワークのパラメータを更新する。
【００９６】
すなわち、予測部１１２と縮約部１１１が一体化されている予測縮約部１０２を構成するリカレントニューラルネットワーク３６１は、学習時、図１４に示される予測動作が実行できるように構成される。リカレントニューラルネットワーク３６１は、入力層３６２、中間層３６３、および出力層３６４を有し、修正データ生成部１０３の入力重み調整部３０２を構成する合成部３６５は、入力される教師データと、出力層３６４から出力され、回帰されるデータとを、入力重みαで合成し、入力層３６２に時系列データとされた修正データとして供給する。リカレントニューラルネットワーク３６１は、入力層３６２に入力された時系列データとされた修正データの予測データを出力層３６４から出力する。
【００９７】
ダイナミクス学習のために用いられる教師データは、１０次元のセンサデータＳ1t-1乃至Ｓ10t-1、１次元の中間制御データｕ’t-1、および１次元の目標位相データφt-1の、合計１２次元のデータで構成される。
【００９８】
センサデータは、ロボットに装備されているセンサ部７１から出力されるデータであって、腰部センサ２５１の３軸並進加速度センサ２６１の３次元の出力、３軸角速度センサ２６２の３次元の出力、それらより生成される腰部２１４の傾き角であるロール角とピッチ角の２次元の出力、力センサ２５２の出力に基づく床反力中心点のＸ，Ｙ座標の２次元の出力からなる、Ｓ1t-1乃至Ｓ10t-1の合計１０次元のデータである。
【００９９】
中間制御データｕ’t-1は位相データφt-1に基づき生成部８２の内部の目標軌道生成部４５１によって算出される脚先のＸ方向位置指令値である。すなわち、生成部８２は、位相データから制御対象６１の所定の位置を指令する指令データとしての中間制御データｕ’を生成する指令データ生成手段としての機能と、指令データに基づいて、制御対象６１を制御する制御データとしての制御変数データｕtをさらに生成する機能を有する。本実施の形態では図３２を参照して後述するように、目標軌道生成部４５１に内部変数を持つ神経振動子を用いていることから、位相データφt-1と中間制御データｕ’t-1は一対一には対応しない。従って運動に直接影響を与える中間制御データの値も仮想的な内界センサとみなし、ダイナミクス学習の入力次元とされている。この意味で、Ｓ1t-1乃至Ｓ10t-1と中間制御データｕ’t-1を合わせた１１次元を、センサデータと考えることもできる。
【０１００】
次に、教師データの生成処理について説明する。学習部３３１は教師データを生成するために、図１５に示されるように、取得部３４１、除去部３４２、正規化部３４３、および正弦波生成部３４４を機能的に有し、それぞれは、センサデータの教師データを生成するために図１６のフローチャートに示される処理を実行し、位相データの教師データを生成するために図１７のフローチャートに示される処理を実行する。
【０１０１】
取得部３４１は、ロボット歩行時のセンサ時系列データを取得する。除去部３４２は、センサ時系列データのオフセットを除去する。正規化部３４３は、時系列データを正規化する。正弦波生成部３４４は、正弦波を生成する。
【０１０２】
センサデータの教師データを生成するために、ステップＳ１において、取得部３４１は、ロボット歩行時のセンサ時系列データを取得する。腰部２１４のロール方向角速度を線形変換したものを位相データとすることで定常直進歩行が可能であることが判っている。そこで、既に歩行可能に調整されたロボットを二足歩行させたとき記録されたセンサ時系列データが取得される。
【０１０３】
ステップＳ２において、除去部３４２は、ステップＳ１で取得されたセンサ時系列データのオフセットを除去する。このオフセットの除去は、センサごとに行われる。ステップＳ３において、正規化部３４３は、オフセットが除去された時系列データを正規化する。具体的にはセンサ時系列データの最大値、最小値、および平均値をあらかじめ各次元ごとに算出し、これを用いることで正規化が行われる。
【０１０４】
また、位相データの教師データを生成するために、ステップＳ３１にいて、正弦波生成部３４４は、ロール方向角速度と二乗誤差が最小となるように、周波数と位相を調整した正弦波を生成する。
【０１０５】
このほか、目標位相データはさまざまな方法により設定することが出来る。例えば、ある特定のセンサ値を線形変換したものや，複数のセンサ出力の重み付き線形和、あるいはセンサ時系列データをフーリエ級数展開し，パワースペクトルが最大となる振動数を設定した正弦波を目標の位相データとすることができる。またある特定の少数のセンサ時系列のみに着目し、これを入力として強化学習により試行錯誤的に導出してもよい。
【０１０６】
教師データを利用して学習処理を実行するために、学習部３３１は、さらに図１８に示されるように、初期化部３５１、入力部３５２、判定部３５３、更新部３５４、および保存部３５５を機能的に有し、図１９に示されるような学習処理を実行する。
【０１０７】
初期化部３５１は、リカレントニューラルネットワーク３６１のパラメータを初期化する。入力部３５２は、教師時系列データを入力する。判定部３５３は、予測誤差を演算し、その値が基準値以下であるかを判定する。更新部３５４は、ＢＰＴＴ法により学習しているとき、リカレントニューラルネットワーク３６１のパラメータを更新する。保存部３５５はリカレントニューラルネットワーク３６１のパラメータを保存する。
【０１０８】
次に図１９を参照して、学習処理について説明する。ステップＳ６１において、初期化部３５１は、予測縮約部１０２を構成するリカレントニューラルネットワーク３６１のパラメータ（すなわちユニットの結合重み係数）を初期化する。ステップＳ６２において、入力部３５２は教師時系列データを入力する。すなわち、入力部３５２は、教師データとしてのセンサデータＳ1t-1乃至Ｓ10t-1、中間制御データｕ’t-1、および位相データφt-1を入力し、修正データ生成部１０１の入力重み調整部３０２としての合成部３６５に供給する。合成部３６５は、入力された教師データと出力層３６４からの回帰成分を、式（７）に基づいて入力重みαで合成し、教師時系列データとしての教師修正センサデータＳa1t-1乃至Ｓa10t-1、教師修正中間制御データｕ’at-1、および教師修正位相データφat-1を生成して、リカレントニューラルネットワーク３６１の入力層３６２に入力する。
【０１０９】
ステップＳ６３において、リカレントニューラルネットワーク３６１は、教師時系列データの予測データを演算する。すなわち、教師時系列データとしての教師修正センサデータＳa1t-1乃至Ｓa10t-1、教師修正中間制御データｕ’at-1、および教師修正位相データφat-1の予測データとしての予測センサデータＳp1t乃至Ｓp10t、予測中間制御データｕ’pt、および予測位相データφptが生成される。
【０１１０】
ステップＳ６４において、判定部３５３は、教師時系列データと予測データとの予測誤差が基準値以下であるかを判定する。予測誤差が予め定められている基準値より大きい場合には、ステップＳ６５において、更新部３５４は、ＢＰＴＴ法によりリカレントニューラルネットワーク３６１のパラメータを更新する。その後、ステップＳ６３において、リカレントニューラルネットワーク３６１は、更新されたパラメータに基づいて、再び教師時系列データから予測データを演算する。再度演算された予測データの予測誤差が基準値以下であるかがステップＳ６４において再び判定され、基準値より大きい場合には、さらにステップＳ６３の処理が実行される。
【０１１１】
このようにして、演算された予測データの予測誤差が基準値以下になるまでステップＳ６３乃至Ｓ６５の処理が繰り返され、近似精度が向上するように、リカレントニューラルネットワーク３６１のパラメータの学習が行われる。予測誤差が十分小さくなり、ステップＳ６４において、演算された予測データの予測誤差が基準値以下であると判定された場合、ステップＳ６６において、保存部３５５は、ステップＳ６５の処理で更新されたリカレントニューラルネットワーク３６１のパラメータを保存する。このパラメータが後述する図２５のステップＳ９１において読み出され、認識処理に使用される。
【０１１２】
実験においては、リカレントニューラルネットワーク３６１の各層のユニット数を、入力層：１２、中間層：８、出力層：１２とし、隠れユニットの数を３と設定した。また入力重みαi＝０．１、出力重みβi＝１と一様に設定した。これは各センサ情報を均等に扱うことで、ある特定のセンサに依存せずに位相データを予測できるようにするためである。入力重みαiを０．１と小さい値に設定した理由は、リカレントニューラルネットワーク３６１の自己生成によって教師データを予測するようにするためである。
【０１１３】
学習結果の例を図２０と図２１に示す。これらの図において、横軸は時間を表し、縦軸は正規化後の値を示している。図２０Ａはロール角速度、図２０Ｂはロール角度、図２０Ｃはピッチ角速度、図２０Ｄはピッチ角度、図２０Ｅはヨー角度、図２０ＦはＸ軸のＣＯＰ、図２１ＡはＸ軸の並進加速度、図２１ＢはＹ軸のＣＯＰ、図２１ＣはＹ軸の並進加速度、図２１Ｄは中間制御データｕ’t、図２１ＥはＺ軸の並進加速度、図２１Ｆは位相データφtを、それぞれ表している。
【０１１４】
これらの図において、破線は教師データを表し、実線はリカレントニューラルネットワーク３６１の出力データを表す。どの次元の出力データも教師データをよく近似できていることが判る。
【０１１５】
目標位相データの設定は任意性がある。このことを示すため、目標位相データを腰部２１４のロール方向角速度から９０°進めた場合の学習結果を図２２と図２３に示す。
【０１１６】
これらの図においても、図２０と図２１における場合と同様に、横軸は時間を表し、縦軸は正規化後の値を示している。図２２Ａはロール角速度、図２２Ｂはロール角度、図２２Ｃはピッチ角速度、図２２Ｄはピッチ角度、図２２Ｅはヨー角度、図２２ＦはＸ軸のＣＯＰ、図２３ＡはＸ軸の並進加速度、図２３ＢはＹ軸のＣＯＰ、図２３ＣはＹ軸の並進加速度、図２３Ｄは中間制御データｕ’t、図２３ＥはＺ軸の並進加速度、図２３Ｆは位相データφtを、それぞれ表している。
【０１１７】
これらの図においても、破線は教師データを表し、実線はリカレントニューラルネットワーク３６１の出力データを表す。この場合も各次元の出力データは教師データをよく近似できていることが判る。
【０１１８】
このようにセンサデータと目標位相データに位相ずれがあるとき、従来技術で行われていた単一のセンサデータの線形写像では対応できないが、本実施の形態によれば細かな位相ずれまで設計可能である。
【０１１９】
リカレントニューラルネットワーク３６１においては、以上のようにして学習が行われた後、センサデータと中間制御データとから位相データを生成する認識処理が実行される。認識処理時においては、リカレントニューラルネットワーク３６１は図２４に示されるように動作する。図２４を図１４と比較して明らかなように、入力データとしての位相データは合成部３６５に入力されない。すなわち、位相データは、リカレントニューラルネットワーク３６１がユニット間の結合重みであるパラメータとして学習したダイナミクス構造によって算出される。
【０１２０】
次に、図２５のフローチャートを参照して、図６の制御システム６０が実行する認識処理について説明するが、この処理を行うため、修正データ生成部１０１は図２６に示される機能的構成を有し、回帰割合調節部１０４は、図２７に示される機能的構成を有する。
【０１２１】
図２６に示されるように、修正データ生成部１０１は、入力部３７１、作成部３７２、正規化部３７３および出力部３７４を有している。入力部３７１は、センサデータ、中間制御データなどを入力する。作成部３７２は、時系列データを作成する。正規化部３７３は、時系列データを正規化する。出力部３７４は位相データを生成、出力する。
【０１２２】
図２７に示されるように、回帰割合調節部１０４は、設定部３９１および判定部３９２を有している。設定部３９１は、入力重みを設定する。判定部３９２は、入力重みの設定処理を繰り返す必要があるかを判定する。
【０１２３】
図２５の認識処理は、ロボットの電源をオンしたとき開始され、電源がオフされるまで継続される。図２５に示されるように、最初にステップＳ９１において、予測縮約部１０２は、図１９の学習処理のステップＳ６６において保存されたリカレントニューラルネットワーク３６１のパラメータ読み込む。次にステップＳ９２において、修正データ生成部１０１の入力部３７１は、現在時刻の入力データを入力する。この実施の形態の場合、入力データはセンサデータＳtと中間制御データｕ’tである。センサデータＳtは、制御対象６１の状態をセンサ部７１が観測して出力したものである。中間制御データｕ’tは、生成部８２において、位相データφptに基づき生成されるものなので、最初の時刻においては、その値は０である。
【０１２４】
ステップＳ９３にいて、作成部３７２は時系列データを作成する。すなわち、それまで保持されていた過去の複数ステップ分のデータが集合される。具体的には、時系列データは式（３）により修正されたセンサデータＳの過去ｋステップ分の修正データＳat-k乃至Ｓat-1、式（４）により修正された中間制御データｕ’の過去ｋステップ分の修正データｕ’at-k乃至ｕ’at-1、並びに過去ｋステップ分の位相データφpt-k乃至φpt-1で構成される。過去のまだ存在しないステップが存在する場合には、その存在しないステップの分の値は０とされる。
【０１２５】
次にステップＳ９４において、正規化部３７３は、作成部３７２により作成された時系列データを正規化する。この処理は、図１６のステップＳ３における学習時の教師データ正規化処理と同様の処理である。
【０１２６】
ステップＳ９５において、回帰割合調節部１０４の設定部３９１が入力重みを設定する。すなわち、入力重みαiが各次元ごとに所定の値に設定される（すなわち、調節される）。
【０１２７】
具体的には、設定部３９１は、次の式（１２）と式（１３）に従って、入力重みαiの良否を判定する評価基準Ｅiを演算する。なお、これらの式において、εjはセンサデータＳあるいは中間制御データｕ’のｊ番目の次元の予測誤差であり、ｎはセンサデータと中間制御データの次元である。予測誤差は、センサデータの場合、式（１４）のように表され、中間制御データの場合、式（１５）のように表される。ここで使用される予測誤差は、後述するステップＳ９９で演算されたものであり、初回は、現在の時刻ｔの直前の時刻ｔ−１において、決定された値が利用される。
【０１２８】
【数７】
2008304970.tif 000009
【数８】
2008304970.tif 000010
【０１２９】
設定部３９１は、ｉ番目のセンサに対する入力重みαiを、評価基準Ｅiが最小化するように最適化する。すなわち、ｉ番目のセンサを除く他のセンサすべての予測誤差εjがなるべく小さくなるように入力重みαiが最適化される。最適化は、例えば、全検索、最急降下法、黄金分割法などにより行うことができる。
【０１３０】
単純化して説明すると、例えば、ｉ番目の入力重みαiを調節する場合、式（１６）に示されるように、入力重みαiを０に設定した場合の式（１３）で表される評価基準Ｅi（式（１６）における左辺の項）と、入力重みαiを１に設定した場合の式（１３）で表される評価基準Ｅi（式（１６）における右辺の項）とがそれぞれ演算され、後者が前者より小さければ、入力重みαiは１がより適正と判断される。これに対して、式（１７）に表されるように、入力重みαiを０に設定した場合の式（１３）で表される評価基準Ｅi（式（１７）における左辺の項）が、入力重みαiを１に設定した場合の式（１３）で表される評価基準Ｅi（式（１７）における右辺の項）より小さければ、入力重みαiは０がより適正と判断される。このような判断が各次元ｉについて順次行われ、最終的に評価基準Ｅiが最小となる場合の入力重みαiが選択され、設定される。
【０１３１】
なお認識時においては位相データの入力データが存在しないので、その入力重みは常にαi＝０と設定される。
【０１３２】
ステップＳ９６において、合成部３６５は、入力重みに基づき時系列データを修正する。すなわち、ステップＳ９５で演算された入力重みαiを利用して、式（７）に基づいて、時系列データが演算される。つまり、修正データ生成部１０１は、観測データと回帰割合としての入力重みαの積と、予測データと１から入力重みαを減算した値との積の和を演算して時系列データを生成する。
【０１３３】
ステップＳ９７において、リカレントニューラルネットワーク３６１は、時系列データから現在の入力データの予測データを演算する。すなわち、現在のステップのｋステップ前から１ステップ前までのｋ個のステップの時系列データが、各ステップごとに、予測縮約部１０２を構成するリカレントニューラルネットワーク３６１に順次入力される。ｋ個のステップのうちの最後の１個のステップの時系列データをリカレントニューラルネットワーク３６１に入力したときに得られる予測データが、過去のｋ個のステップの時系列データに基づく予測データとされる。このようにして、現在のセンサデータＳtの予測データである予測センサデータＳpt、および現在の予測中間制御データｕ’tの予測データである予測中間制御データｕ’ptが得られるとともに、位相データφptが生成される。過去ｋステップ分の入力データの履歴を考慮することで、より正確に予測データと位相データを生成することが可能になる。
【０１３４】
ステップＳ９８において、回帰部１０３は予測データと位相データを修正データ生成部１０１の合成部３６５に回帰する。すなわち、予測センサデータＳptおよび予測中間制御データｕ’ptは、合成部３６５に回帰される。また予測センサデータＳptおよび予測中間制御データｕ’ptは回帰割合調節部１０４の判定部３９２にも供給される。
【０１３５】
ステップＳ９９において、回帰割合調節部１０４の設定部３９１は、ステップＳ９７で演算された予測センサデータＳptおよび予測中間制御データｕ’ptと、現在のセンサデータＳtおよび中間制御データｕ’tとを比較し、それぞれの予測誤差を算出する。ステップＳ１００で判定部３９２は、予測誤差が十分小さいか、または繰り返し調節回数が基準回数以上かを判定する。予測誤差が十分小さいかは、例えば、予測誤差が予め設定されている基準値以下であるかを、両者の大きさを比較することで判定することができる。予測誤差がまだ十分小さくない場合、処理はステップＳ９５に戻り、入力重みが再び設定され、時系列データ修正処理、予測処理、回帰処理、予測誤差演算処理、判定処理が実行される。すなわち、ステップＳ９５乃至Ｓ１００の処理が、ステップＳ１００において、予測誤差が十分小さくなったと判定されるまで繰り返される。これにより、実用に耐え得る予測が可能となる。
【０１３６】
また予測誤差が十分小さくならなくとも、ステップＳ１００で、入力重みの再設定処理が、予め定められた基準回数以上になったと判定された場合には、ステップＳ９５乃至Ｓ１００の処理の繰り返しは中止される。これにより、予測誤差を小さくすることができるとしても、あまりにも長い時間がかかる場合には、処理を中止することで、実質的に位相データを生成できなくなることが防止され、実用性が確保される。
【０１３７】
予測誤差が十分小さくなったか、繰り返し回数が基準回数以上になった場合には、ステップＳ１０１において、その時点においてリカレントニューラルネットワーク３６１の出力層３６４により生成された位相データが、過去のｋステップの入力データから生成された位相データとされる。すなわちこれが縮約された位相データとされ、生成部８２に出力される。
【０１３８】
その後、処理は再びステップＳ９２に戻り、次の時刻の入力データに対して同様の処理が実行される。以上の処理を繰り返すことにより、新たな入力データとしてのセンサデータと中間制御データが入力される毎に位相データが算出され、出力される。
【０１３９】
このようにして生成された位相データが生成部８２に供給され、制御変数データに変換され、制御対象６１のアクチュエータ７２に供給され、ロボットが運動することになる。この点についての詳細は、図３１乃至図３４を参照して後述する。
【０１４０】
ステップＳ９２で入力したセンサデータと中間制御データからなる入力データに基づいて、ステップＳ１０１で位相データ出力をする一連の演算が時間を要する場合、入力データに対して時間遅れを伴う。従って遅れた位相データをそのまま生成部８２に入力し制御を行うと、不都合が生ずる場合も考えられる。これを補償するために、ステップＳ１０１において、位相データのｍステップ未来の値を予測し、算出することも可能である。未来の位相データを予測するために、一時的に回帰割合調節部１０４において、入力重みαi＝０と設定し、予測縮約部１０２の演算をｍ回繰り返すことができる。このときすべての入出力ユニットは回帰結合され、予測縮約部１０２に獲得された内部ダイナミクスのみに基づいて時間発展が行われる。
【０１４１】
以上のような認識処理が行われる結果、次のような効果が得られる。すなわち、例えばｉ番目のセンサが故障した場合を仮定する。調節する入力重みαiの値は簡単のため０あるいは１とする。ｉ番目のセンサは故障しているのであるから、そのセンサの出力は異常値となる。従ってステップＳ１００で、ｉ番目のセンサデータを基に算出した予測誤差εiが大きいと判定される。そこで故障したｉ番目のセンサを除く、その他のセンサの予測がもっとも正確になるように入力重みαiが調節される。すなわち、ステップＳ９５で、αi＝０とされるので、ステップＳ９７で、ｉ番目のセンサデータが無視され、代わりに記憶されたダイナミクスから生成される予測データが時系列データとして用いられる。その結果、センサベクトルの時系列変化はすべての次元が干渉し合い、１つのリカレントニューラルネットワーク３６１内に記憶されていることから、故障による異常な値のセンサデータがそのまま入力されれば、それに引きずられ正常なセンサの予測精度までもが低下してしまうが、そのようなことが防止される。
【０１４２】
図２８と図２９に実験例を示す。図２８は、故障したセンサについて、入力重みαi＝１として調節を行わなかった場合を示し、図２９は故障している時刻では入力重みαi＝０として調節した場合を示している。図２８Ａと図２９Ａにおいて、細い実線はロール角度センサデータを、太い実線は予測データを、また点線は予測誤差の絶対値をそれぞれ示す。図２８Ｂと図２９Ｂにおいて、細い実線は中間制御データを、太い実線は予測データを、また点線は予測誤差の絶対値をそれぞれ示す。図２８Ｃと図２９Ｃにおいて、太い実線は位相データを、また点線は予測誤差の絶対値をそれぞれ示す。ただし予測誤差は１０倍にスケールしている。時刻３．２秒から６．４秒まで、ロール角速度センサ（３軸角速度センサ２６２の出力の１つが対応する）が故障してセンサ値が一定値０．５０７になったと設定した。
【０１４３】
故障している時間（時刻３．２秒から６．４秒まで）に注目すると、調整を行わない場合（図２８の場合）、ロール角速度の予測誤差は調整をした場合（図２９Ａ）に比較して小さくなるものの（図２８Ａ）、その他の入力センサの予測、例えば内界センサである中間制御出力の予測誤差を生み（図２８Ｂ）、その結果位相データの波形も乱れることが判る（図２８Ｃ）。
【０１４４】
これに対して調整を行った場合（図２９の場合）、ロール角速度の予測誤差は調整をしない場合（図２８Ａ）に比較して大きくなるものの（図２９Ａ）、その他のセンサは予測誤差が小さく（図２９Ｂ）、その結果位相データの乱れが少ないことが判る。またロール角速度センサは故障時においてもリカレントニューラルネットワークの内部ダイナミクスと他の正常なセンサ入力のおかげで、正常時とほぼ同様の波形を再構成することが可能であることが判る（図２９Ｃ）。
【０１４５】
なお、このとき予測に用いるセンサ時系列データの長さが重要である。なぜなら入力重みαi＝０とした場合、予測データはそのまま入力として用いられ回帰ループを構成する。一般にこのようなノードはコンテクストノードと呼ばれ、過去の履歴を反映した値を取る。従って、ある程度以上のステップ数を持ったセンサ時系列データを用いなければ正確な値を予測することができない。実験の結果、周期運動であれば０．５乃至１．０周期程度の時系列データを用いれば正確な予測ができることが確かめられた。
【０１４６】
図３０はその結果を表している。時刻３．２秒でロール角速度センサのセンサデータの値が一定値（約０．５）になったと仮定し、このときのセンサデータを点線、予測データを実線で表している。図３０Ａは２ステップの時系列データ（１周期の８％の時系列データ）による予測の場合、図３０Ｂは４ステップの時系列データ（１周期の１６％の時系列データ）による予測の場合、図３０Ｃは８ステップの時系列データ（１周期の３２％の時系列データ）による予測の場合、図３０Ｄは１６ステップの時系列データ（１周期の６４％の時系列データ）による予測の場合、図３０Ｅは３２ステップの時系列データ（１周期の１２８％の時系列データ）による予測の場合、をそれぞれ表している。予測に用いる時系列データの長さが長くなるほど、つまり長い過去の履歴を参照するほど（図３０Ａの場合より図３０Ｅの場合の方が）、予測データの再構成が適切に行われていることがわかる。
【０１４７】
以上においては、１次元の入力重みαiの調整について述べたが、同様に複数次元についても調節を行えば、複数のセンサに故障が起こる場合でも対応できる。この場合、入力重みの調整方法として、例えば次のようなことが考えられる。
（１）各次元を１番から順番に調節する。
（２）位相データへの影響の高いものから順番に調節する。
（３）評価基準Ｅの絶対値が最小となるように入力重みベクトルα＝（α1，α2，…，αi）（１≦ｉ≦ｎ）を最適化する。
上記した（３）の方法における最適化手法として遺伝的アルゴリズムその他の任意のものを用いることができる。
【０１４８】
図６に示す生成部８２は、認識部８１において算出された位相データφtを入力として、制御対象６１へ制御変数データｕtを出力する。すなわち生成部８２は、位相データφtを制御変数データｕtに写像する。例えばロボットの運動制御問題では制御変数データｕtは各アクチュエータ７２へのトルクである。位相データφtから制御変数データｕtへの写像は、さまざまな方法が考えられる。例えば２足歩行運動制御問題において、位相データをパラメータとして脚関節を正弦波によって駆動したり、ロボットの胴体座標系において、位相データをパラメータとして脚先軌道を記述することで歩行運動を生成することができる。生成部８２ではどのような写像を選んでも良いが、この実施の形態では、神経振動子を用いた歩行運動制御法が用いられる。
【０１４９】
図３１に神経振動子を用いた２足歩行運動の概要を示す。直進歩行運動は、その場足踏み運動と前方への推進運動に分解することができる。その場足踏み運動は、Ｚ方向の脚位置を左右対称に上下させることで生成される。この足踏み運動に同期するように脚をＸ方向、すなわち前後方向に駆動させれば歩行運動を生成することができる。これらＸ方向、Ｚ方向、各々の脚位置が神経振動子を用いて制御される。
【０１５０】
神経振動子は、生物の脊髄に内在するといわれる非線形振動子を数学的にモデル化したもので、自励発振すると共に、十分な大きさの入力データｇに対して出力データｑの振動数が同調する引き込み現象を有している。 図３１にいては、それぞれＸ方向の神経振動子４０１の入力がｇx、出力がｑxとされている。また、Ｚ方向の振動子４０２の入力がｇz、出力がｑzとされている、Ｚ方向の運動に関しては、床反力と腰部２１４のロール角度を線形結合した値をｇzとして用いれば、その場での足踏み運動が継続できることが知られている。また定常的に足踏み運動が生成されているとき、腰部２１４のロール方向角速度センサ値をｇxとして、Ｘ方向の神経振動子４０１に入力すると直進歩行が可能であることが実験により確かめられている。そこでこのロール方向角速度センサ値の代わりに、認識部８１により出力される位相データが用いられる。
【０１５１】
図３２に、位相データφtを入力として、制御変数データｕt（ここではアクチュエータトルクデータ）を出力する生成部８２の一実施の形態の構成を機能ブロック図で示す。生成部８２は、目標軌道生成部４５１と局所フィードバック制御部４５２を内部に有している。
【０１５２】
図３３に示されるように、目標軌道生成部４５１は、振幅調整部４７１、神経振動子４７２、オフセット調整部４７３、設定部４７４、および逆運動学計算部４７５の機能ブロックを有している。
【０１５３】
振幅調整部４７１は、位相データの振幅を調整する。図３１の神経振動子４０１,４０２に対応する神経振動子４７２は、位相データに同期した発振データを生成する。オフセット調整部４７３は、神経振動子４７２の出力のオフセット調整や振幅調整を行う。設定部４７４は、オフセット調整された神経振動子４７２の出力を、目標先位置として逆運動学計算部４７５に設定する。逆運動学計算部４７５は、目標脚先位置を実現するように逆運動学計算を行い、目標とする各関節位置を算出する。
【０１５４】
次に、図３４のフローチャートを参照して、生成部８２の制御変数データ生成処理について、ロボットの脚をＸ方向に駆動する場合を例として説明する。この処理は、予約縮約部１０２から位相データが生成部８２に入力されたとき開始される。
【０１５５】
位相データφtが入力されると、目標軌道生成部４５１の振幅調整部４７１は、まずはじめに位相データの振幅を調整する。振幅調整が行われた位相データは、Ｘ方向の神経振動子４７２（図３１の神経振動子４０１に対応する）に入力される。ステップＳ１８２において、神経振動子４７２は、位相データに同期した発振データを生成する。すなわち、位相データの振動数に同期するよう発振周期が調節され、結果としてロボット物理系が持つダイナミクスに同期した振動出力が得られる。
【０１５６】
ステップＳ１８３において、オフセット調整部４７３は、神経振動子４７２の出力のオフセットを調整する。このとき振幅も適宜調整される。ステップＳ１８４において、設定部４７４は、オフセット調整された神経振動子４７２の出力を、目標先位置として逆運動学計算部４７５に設定する。すなわち、胴体座標系における目標Ｘ方向脚先位置として設定が行われる。また、上述したように、このＸ方向の目標脚先位置は、中間制御データｕ’tとして必要に応じて合成部３６５に回帰される。
【０１５７】
次にステップＳ１８５において、逆運動学計算部４７５は、目標脚先位置を実現するように逆運動学計算を行い、目標とする各関節位置を計算する。本実施の形態の場合、目標軌道生成部４５１は以上のステップＳ１８１乃至Ｓ１８５の処理により、位相データを入力として各関節アクチュエータへの目標位置を出力する。
【０１５８】
次にステップＳ１８６において、局所フィードバック制御部４５２は、各関節アクチュエータ目標位置を入力として目標位置に追従するよう各関節ごとに必要とされるトルクを算出する。具体的には例えばＰＩＤ制御を用いて、目標位置となるように各関節をサーボ制御する。サーボ制御の出力は例えば電圧などで指令され、最終的には関節のアクチュエータ７２のトルクとして用いられる。
【０１５９】
本実施の形態では位相データからアクチュエータトルクへの変換は、脚先位置と各関節目標位置を経由して行ったが、例えば速度や加速度を媒介変数としてもよいのは勿論である。
【０１６０】
図３５乃至図３７は、定常歩行時に、時刻３．２秒において、ロール角速度センサが故障した場合の動力学シミュレーション実験結果を表す。細い実線、太い実線、点線、直線は、それぞれセンサデータ、予測データ、予測誤差、入力重みを表している。センサデータ、予測データ、および入力重みはグラフ中左側の座標軸の数値で表わされる。予測誤差は絶対値を表わし、グラフ中右側の座標軸の数値で表される。センサデータは図２５のステップＳ９４の正規化処理後の値である。横軸は時刻を表しており、時刻３．２秒でロール角速度センサデータが、０．５の一定値になった場合を図示している（図３５Ａ）。
【０１６１】
図３５Ａはロール角速度、図３５Ｂはロール角度、図３５Ｃはピッチ角速度、図３５Ｄはピッチ角度、図３６Ａはヨー角速度、図３６ＢはＸ方向ＣＯＰ、図３６ＣはＸ方向加速度、図３６ＤはＹ方向ＣＯＰ、図３７ＡはＹ方向加速度、図３７Ｂは中間制御データ（Ｘ方向神経振動子出力）、図３７ＣはＺ方向加速度、図３７Ｄは位相データ出力を、それぞれ表している。
【０１６２】
図３５乃至図３７では入力重みαの調節を行っていない（α＝１とされている）。そのため位相データ出力が大きく乱れ（図３７Ｄ）、時刻６．２秒でロボットが転倒に至った。このことから入力重みαを調整しなければセンサが故障した場合、すぐさま運動制御が破綻することが判る。
【０１６３】
これに対して図３８乃至図４０は、ロール角速度センサの出力に対する入力重みα1の調節を行った場合を示している。図３８Ａ乃至図３８Ｄ、図３９Ａ乃至図３９Ｄ、並びに図４０Ａ乃至図４０Ｄは、それぞれ図３５Ａ乃至図３５Ｄ、図３６Ａ乃至図３６Ｄ並びに図３７Ａ乃至図３７Ｄに対応する。
【０１６４】
ロール角速度センサは時刻３．２秒から６．４秒までの間、一定値０．５を取るものとしている（図３８Ａ）。ロール角速度の入力重みは、ロール角速度以外のセンサの予測誤差が最も小さくなるよう、０あるいは１いずれかに自動的に選択される。この場合、時刻３．２秒からおよそ０．２秒遅れて、入力重みα1が１から０に変化していることがわかる（図３８Ａ）。このとき、ロール角速度の予測誤差は図３５乃至図３７の場合に比べて増大しているが、その他のセンサでは低く抑えられている。その結果、位相データ出力もセンサが正常な場合とほぼ同じ波形を再構成できており、歩行運動が継続できている。また時刻６．２秒でセンサ値が正常値に戻った後、およそ０．４秒遅れで、再びロール角速度センサを用いて歩行している。このことから入力重みαを調整することで、センサの故障を判別し、頑健に位相データを生成できていることが判る。
【０１６５】
図４１と図４２に歩行の様子を示す。図４１が図３５乃至図３７に対応する入力重みαの調節がない場合を表し、図４２が図３８乃至図４０に対応する入力重みαの調節がある場合を表している。この例では入力重みαの調節がない場合（図４１の場合）、時刻６．２秒で転倒に至っている。これに対し入力重みαの調節を行った場合（図４２の場合）、転倒せずに歩行を継続できていることが判る。
【０１６６】
また発明者等は複数センサが故障する場合の動力学シミュレーションも行った。時刻３．２秒から１．６秒おきにロール角速度、Ｙ方向加速度、Ｘ方向加速度、ピッチ角度、ヨー角速度、Ｚ方向加速度、ピッチ角速度、ロール角度の順でセンサが故障したものと仮定した。ロール角速度ではセンサ故障後、入力重みαが０となり、センサデータを用いずに、予測縮約部１０２により出力が生成された。これに対し例えばピッチ角速度では入力重みは１のままで故障したセンサデータに追従した。けれども位相データ出力はさほど影響を受けていなかった。これはもともとピッチ角速度はノイズが多く、そのため予測部１１２の入力情報として重要度が低くなるようにリカレントニューラルネットワークの学習が行われていたため、結果的に入力重み如何にかかわらず、予測誤差の算出に影響を与えなかったものと考えられる。この実験結果から、順次センサが故障したとしても、入力重みを調節することで位相データ出力には大きな乱れが発生せず、ロボットは歩行を継続できることが確かめられた。
【０１６７】
次に、ロボット以外の実施の形態について説明する。
【０１６８】
機械接点のないブラシレスモータは静音性や寿命に優れており、光ディスクドライブの駆動やエアコンディショナなどに利用されている。ブラシレスモータを駆動するためにはロータの角度を計測し、それに応じてステータコイルに流す電流方向を制御する必要がある。本発明はこのようなブラシレスモータにも適用することができる。以下、典型的なブラシレスモータである３相ＤＣブラシレスモータに本発明を適用した実施の形態について説明する。
【０１６９】
図４３と図４４に３相ＤＣブラシレスモータ６００の駆動の原理を示す。中心に回転運動するロータ６０３が配置され、その周囲に３つのステータコイル６０１Ｕ，６０１Ｖ，６０１Ｗが等間隔で配置されている。これら３つのコイルはＵ，Ｖ，Ｗ相と呼ばれる。またステータコイル６０１Ｕ，６０１Ｖの間には、ホールセンサ６０２Ｖが配置され、ステータコイル６０１Ｖ，６０１Ｗの間には、ホールセンサ６０２Ｗが配置され、ステータコイル６０１Ｗ，６０１Ｕの間には、ホールセンサ６０２Ｕが配置されている。ホールセンサ６０２Ｕ，６０２Ｖ，６０２Ｗは、磁気の強さに比例して連続な電圧を出力する。ロータ６０３は、Ｎ極とＳ極の２つの永久磁石で構成されており、ロータ６０３が回転すると、その周りの磁気が変化し、ホールセンサ６０２Ｕ，６０２Ｖ，６０２Ｗでは周期的な電圧振動が観測される。
【０１７０】
ロータの回転角をφtとおくと、回転を続けるためには回転角φtに依存してステータコイル６０１Ｕ，６０１Ｖ，６０１Ｗに流す電流の向きを変える必要がある。この電流の向きが図４３と図４４に矢印で示されている。図４３Ａの期間Ｔ1のタイミングにおいては、ステータコイル６０１Ｕに正相、ステータコイル６０１Ｗに逆相の電流が流れ、図４３Ｂの期間Ｔ2のタイミングにおいては、ステータコイル６０１Ｗに逆相、ステータコイル６０１Ｖに正相の電流が流れ、図４３Ｃの期間Ｔ3のタイミングにおいては、ステータコイル６０１Ｖに正相、ステータコイル６０１Ｕに逆相の電流が流れ、図４４Ａの期間Ｔ4のタイミングにおいては、ステータコイル６０１Ｕに逆相、ステータコイル６０１Ｗに正相の電流が流れ、図４４Ｂの期間Ｔ5のタイミングにおいては、ステータコイル６０１Ｗに正相、ステータコイル６０１Ｖに逆相の電流が流れ、図４４Ｃの期間Ｔ6のタイミングにおいては、ステータコイル６０１Ｖに逆相、ステータコイル６０１Ｕに正相の電流が流れる。
【０１７１】
なお、便宜上、磁束の向きがロータ６０３の中心から外周に向かう場合を正相、中心に向かう場合を逆相としたが、逆に定義してもよい。
【０１７２】
図４５は、ステータコイル６０１Ｕ，６０１Ｖ，６０１Ｗに電流が流れるタイミングと方向をより詳細に表している。時刻ｔ2乃至時刻ｔ8のうち、時刻ｔ2とｔ3の期間が期間Ｔ1に、時刻ｔ3とｔ4の期間が期間Ｔ2に、時刻ｔ4とｔ5の期間が期間Ｔ3に、時刻ｔ5とｔ6の期間が期間Ｔ4に、時刻ｔ6とｔ7の期間が期間Ｔ5に、時刻ｔ7とｔ8の期間が期間Ｔ6に、それぞれ対応する。
【０１７３】
図４５Ａは、ステータコイル６０１Ｕに流れるＵ相の電流を表しており、図４５Ｂは、ステータコイル６０１Ｖに流れるＶ相の電流を表しており、図４５Ｃは、ステータコイル６０１Ｗに流れるＷ相の電流を表している。Ｕ相電流としては、時刻ｔ1からｔ7までの３６０度の回転角に対応する時間のうちの、時刻ｔ1から時刻ｔ3までの１２０度に対応する時間、正の電流が流れ、時刻ｔ4からｔ6までの１２０度に対応する時間、負の電流が流れる。Ｖ相電流としては、時刻ｔ1から時刻ｔ2までの６０度に対応する時間、負の電流が流れ、時刻ｔ3からｔ5までの１２０度に対応する時間、正の電流が流れ、時刻ｔ6から時刻ｔ7までの６０度に対応する時間、負の電流が流れる。Ｗ相電流としては、時刻ｔ2から時刻ｔ4までの１２０度に対応する時間、負の電流が流れ、時刻ｔ5からｔ7までの１２０度に対応する時間、正の電流が流れる。すなわち、Ｕ相、Ｖ相、Ｗ相の電流は、位相が１２０度ずつ順次異なっている。
【０１７４】
電流の切り替えは近接するホールセンサ６０２Ｕ，６０２Ｖ，６０２Ｗの信号に基づき行われるものとすると、もし１つのホールセンサが故障した場合、ロータ角度を正しく判定することができず、モータ回転を制御することができなくなる。
【０１７５】
この系に対して本発明を適用すると、センサデータは３つのホールセンサ６０２Ｕ，６０２Ｖ，６０２Ｗの出力値、ロータ６０３の回転角は位相データと見なすことができ、この写像は図３の認識部８１に実行させ、図４５に示した回転角と各コイルへの電流値の関係は、図３の生成部８２に実行させることができる。
【０１７６】
２足歩行運動の実施の形態で述べたとおり、認識部８１はたとえセンサが故障した場合でも、ロバストに位相推定ができる。従って本実施の形態の場合で考えると、１つのホールセンサが故障してもロータ回転角の算出をロバストに行うことができる。
【０１７７】
予測縮約部１０２の学習に用いる教師データは、センサ故障がないときの定常回転時のセンサデータを記録しておくことで用意できる。また位相データはセンサデータより計算により求めるか、あるいはモータに外付けした回転角測定手段（例えばロータリーエンコーダ）によって求めることができる。これを教師データとして予測縮約部１０２を学習すれば、センサ故障に対してロバストな回転角計測が可能であり、結果としてロバストな制御が実現できる。
【０１７８】
また回転運動をより効率的に行う場合、進角の調節などが一般に行われる。このような場合であっても進角を調整した位相データをあらかじめ教師データとして用いることで調節できる。これはセンサデータと位相データの写像関係を自由に設計できることの利点である。
【０１７９】
また本発明の実施の形態は冗長なセンサデータであっても扱うことが可能である。図４６には、２極の永久磁石よりなるロータ６６３の周囲に、ステータコイル６６１Ｕ，６６１Ｖ，６６１Ｗが配置され、さらに、ステータコイル６６１Ｕ，６６１Ｗの間に２つのホールセンサ６６２−１，６６２−２、ステータコイル６６１Ｗ，６６１Ｖの間に３つのホールセンサ６６２−３，６６２−４，６６２−５、ステータコイル６６１Ｖ，６６１Ｕの間に２つのホールセンサ６６２−６，６６２−７が、それぞれ配置されている３相ＤＣブラシレスモータ６５１の構成を示している。
【０１８０】
複数のセンサの数が多くなるほど、耐故障性に優れたシステムになる。センサの配置されている場所は必ずしも正確でなくてもよい。また、各々のセンサがすべて同じ特性でなくとも良い。なぜなら予測縮約部１０２がセンサデータと位相データの写像関係を学習するからである。従ってセンサを高い位置精度で配置する必要がなく、またセンサ特性を均一化する必要もないことから、製作コストを低減できる。 
【０１８１】
さらに、センサはホールセンサである必要はない。例えば人間が列車などの整備点検を行う際には故障判別に音の情報を用いる。ハンマーで叩いたり、走行中に異音がしないか、などである。これと同様に、本発明はセンサのモーダルには依存しないことから、例えばマイクロホンによりモータ作動音を計測し、それを用いて回転角を推定することが原理的に可能である。
【０１８２】
従って、本実施の形態により、以下の効果を実現することができる。
（１）多次元の入力データを、より次元の少ない位相データに縮約することで、制御部が設計し易くなる。
（２）ノイズや故障にロバストな位相データの抽出ができる。
（３）入力重みを調整することで未来の位相データ、センサデータを予測することができる。これにより認識部に遅れがある場合でもそれを補償することができる。
（４）センサの種類に制限がないことから、複数のモダリティのセンサデータから位相データを抽出できる。
（５）センサデータの予測を常に行っていることから、あるセンサが故障したとしても、他のセンサから予測データを算出することができる。これにより頑健な制御が可能となる。例えば、従来のＺＭＰ（ゼロモーメントポイント）を用いた２足歩行運動制御では、測定される床反力センサからＺＭＰを求め、それを用いて制御しているが、この場合、もし力センサが故障すればすぐに制御は破綻し、ロボットは転倒に至る。これに対し、予測処理と回帰割合調節処理を行えば、力センサが故障したとしても、他の正常なセンサからＺＭＰを算出することが可能であり、制御を継続できる。
（６）予測、縮約処理では、定常的なデータを元に学習を行えば、全センサ次元の予測誤差の絶対値の総和が増大した場合は、センサ故障ではなく、非定常的なデータが入力された場合であると考えることができる。これにより、定常状態と非定常状態の区別が可能となり、それに応じた制御部を構成することができ、それによりロバストな制御が可能となる。例えば、ロボットが定常歩行をしているとき、何らかの障害物に躓き、前のめりに転倒する場合を考える。もし、転倒しかかっている状態をいち早く検知できれば、歩幅を広げて転倒を防止するなどの制御が可能になる。転倒のような、系全体の大局的な変化は個別の個々のセンサ情報からは検知するのが難しいが、全センサの予測誤差を用いれば容易に検知できる。
【０１８３】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１８４】
プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１８５】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１８６】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１８７】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１８８】
【図１】従来の制御システムの構成を示すブロック図である。
【図２】本発明の制御システムの一実施の形態の構成を示すブロック図である。
【図３】図２の制御システムのより詳細な実施の形態の構成を示すブロック図である。
【図４】図３の制御システムのより詳細な構成を示すブロック図である。
【図５】図３の制御システムの認識部の他の実施の形態の構成を示すブロック図である。
【図６】図３の制御システムの他の実施の形態の構成を示すブロック図である。
【図７】リミットサイクルアトラクタを説明する図である。
【図８】不動点アトラクタを説明する図である。
【図９】脚式移動ロボットの構成を示す斜視図である。
【図１０】腰部センサの構成を示すブロック図である。
【図１１】入力重みと出力重みを説明する図である。
【図１２】リカレントニューラルネットワークの構成を説明する図である。
【図１３】図６の制御システムの学習時の構成を示すブロック図である。
【図１４】図６の予測縮約部を構成するリカレントニューラルネットワークの構成を説明する図である。
【図１５】図１３の学習部の機能的構成を示すブロック図である。
【図１６】センサデータの教師データ生成処理を説明するフローチャートである。
【図１７】位相データの教師データ生成処理を説明するフローチャートである。
【図１８】図１３の学習部の他の機能的構成を示すブロック図である。
【図１９】学習処理を説明するフローチャートである。
【図２０】学習結果を説明するグラフである。
【図２１】学習結果を説明するグラフである。
【図２２】学習結果を説明するグラフである。
【図２３】学習結果を説明するグラフである。
【図２４】図６の予測縮約部を構成するリカレントニューラルネットワークの学習時の構成を説明する図である。
【図２５】認識処理を説明するフローチャートである。
【図２６】図６の修正データ生成部の機能的構成を示すブロック図である。
【図２７】図６の回帰割合調節部の機能的構成を示すブロック図である。
【図２８】センサ故障時に入力重みを調節しない場合の予測処理を説明する図である。
【図２９】センサ故障時に入力重みを調節した場合の予測処理を説明する図である。
【図３０】時系列データに含まれるステップ数による予測の変化を説明する図である。
【図３１】神経振動子による動作を説明する図である。
【図３２】図６の生成部の機能的構成を示すブロック図である。
【図３３】図３２の目標軌道生成部の機能的構成を示すブロック図である。
【図３４】制御変数データ生成処理を説明するフローチャートである。
【図３５】センサ故障時に入力重みを調節しない場合の予測処理を説明する図である。
【図３６】センサ故障時に入力重みを調節しない場合の予測処理を説明する図である。
【図３７】センサ故障時に入力重みを調節しない場合の予測処理を説明する図である。
【図３８】センサ故障時に入力重みを調節した場合の予測処理を説明する図である。
【図３９】センサ故障時に入力重みを調節した場合の予測処理を説明する図である。
【図４０】センサ故障時に入力重みを調節した場合の予測処理を説明する図である。
【図４１】センサ故障時に入力重みを調節しない場合のロボットの運動を説明する図である。
【図４２】センサ故障時に入力重みを調節した場合のロボットの運動を説明する図である。
【図４３】３相ＤＣブラシレスモータの駆動電流を説明する図である。
【図４４】３相ＤＣブラシレスモータの駆動電流を説明する図である。
【図４５】図４３と図４４の３相ＤＣブラシレスモータの駆動電流の変化を説明するタイミングチャートである。
【図４６】３相ＤＣブラシレスモータの他の実施の形態の構成を説明する図である。
【符号の説明】
【０１８９】
６０  制御システム,  ６１  制御対象,  ６２  制御部,  ７１  センサ部,  ７２  アクチュエータ,  ８１  識別部,  ８２  生成部,  １０１  修正データ生成部,  １０２  予測縮約部,  １０３  回帰部,  １０４  回帰割合調節部,  １１１  縮約部,  １１２  予測部
【図１】
2008304970.tif 000011
【図２】
2008304970.tif 000012
【図３】
2008304970.tif 000013
【図４】
2008304970.tif 000014
【図５】
2008304970.tif 000015
【図６】
2008304970.tif 000016
【図７】
2008304970.tif 000017
【図８】
2008304970.tif 000018
【図９】
2008304970.tif 000019
【図１０】
2008304970.tif 000020
【図１１】
2008304970.tif 000021
【図１２】
2008304970.tif 000022
【図１３】
2008304970.tif 000023
【図１４】
2008304970.tif 000024
【図１５】
2008304970.tif 000025
【図１６】
2008304970.tif 000026
【図１７】
2008304970.tif 000027
【図１８】
2008304970.tif 000028
【図１９】
2008304970.tif 000029
【図２０】
2008304970.tif 000030
【図２１】
2008304970.tif 000031
【図２２】
2008304970.tif 000032
【図２３】
2008304970.tif 000033
【図２４】
2008304970.tif 000034
【図２５】
2008304970.tif 000035
【図２６】
2008304970.tif 000036
【図２７】
2008304970.tif 000037
【図２８】
2008304970.tif 000038
【図２９】
2008304970.tif 000039
【図３０】
2008304970.tif 000040
【図３１】
2008304970.tif 000041
【図３２】
2008304970.tif 000042
【図３３】
2008304970.tif 000043
【図３４】
2008304970.tif 000044
【図３５】
2008304970.tif 000045
【図３６】
2008304970.tif 000046
【図３７】
2008304970.tif 000047
【図３８】
2008304970.tif 000048
【図３９】
2008304970.tif 000049
【図４０】
2008304970.tif 000050
【図４１】
2008304970.tif 000051
【図４２】
2008304970.tif 000052
【図４３】
2008304970.tif 000053
【図４４】
2008304970.tif 000054
【図４５】
2008304970.tif 000055
【図４６】
2008304970.tif 000056