JP2008304970A - 制御装置および方法、並びにプログラム - Google Patents
制御装置および方法、並びにプログラム Download PDFInfo
- Publication number
- JP2008304970A JP2008304970A JP2007148865A JP2007148865A JP2008304970A JP 2008304970 A JP2008304970 A JP 2008304970A JP 2007148865 A JP2007148865 A JP 2007148865A JP 2007148865 A JP2007148865 A JP 2007148865A JP 2008304970 A JP2008304970 A JP 2008304970A
- Authority
- JP
- Japan
- Prior art keywords
- data
- prediction
- unit
- input
- sensor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Manipulator (AREA)
- Feedback Control In General (AREA)
Abstract
【課題】センサの故障に対してロバストな制御を可能にする。
【解決手段】予測部112は、学習したダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、回帰部103は、予測データを回帰し、修正データ生成部101は、入力データと回帰された予測データとを合成して修正データを生成し、縮約部111は、高次元の修正データの次元を縮約して、入力データより低次元の、制御対象の動作を制御するための位相データを生成する。本発明は、例えばロボットやモータの制御に適用することができる。
【選択図】図4
【解決手段】予測部112は、学習したダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、回帰部103は、予測データを回帰し、修正データ生成部101は、入力データと回帰された予測データとを合成して修正データを生成し、縮約部111は、高次元の修正データの次元を縮約して、入力データより低次元の、制御対象の動作を制御するための位相データを生成する。本発明は、例えばロボットやモータの制御に適用することができる。
【選択図】図4
Description
本発明は制御装置および方法、並びにプログラムに関し、特に、観測ノイズやセンサの故障に対してロバストな制御をする制御装置および方法、並びにプログラムに関する。
近年、電子制御デバイスとそれを制御するコンピュータの急速な発達により、制御対象に対し多くのセンサを装備し、その測定値に基づいて制御を行うことが可能になった。また多くの制御出力を用いて制御対象に働きかけることが可能になっている。このような制御対象の代表的な例として人間型の2足歩行ロボットの運動が挙げられる。
2足歩行ロボットは歩行運動を始め全身を協調させた運動を生成するため、各関節の角度を計測するエンコーダをはじめとして、床反力センサ、加速度センサ、角速度センサなど実に多くのセンサを装備している。また制御出力もアクチュエータの数だけ必要であり、典型的な脚機構の自由度は両脚で12になる。一般に物体の位置姿勢を表す自由度は6で十分であることから、これに比して次元数の高い冗長な制御系であることが判る。
ロボットの行動や運動は、時間発展法則により定められる力学系(dynamical Systems)として記述することができ、様々な行動はその力学系がある特定のアトラクタダイナミクス(attractor dynamics)によって実現できることが知られている。
例えば、2足型ロボットの歩行運動は、系の運動状態が様々な初期状態からある特定の周期軌道に落ち着くことを特徴とするリミットサイクルダイナミクス(limit cycle dynamics)として記述することができる(非特許文献1)。
また、腕を用いてある対象物に対して手先を伸ばすようなリーチング運動は、様々な初期状態からある特定の固定点に落ち着くことを特徴とする不動点ダイナミクス(fixed-point dynamics)として記述することができる。さらに、全ての運動は、不動点ダイナミクスで実現可能な離散運動(discrete movement)とリミットサイクルダイナミクスで実現可能な周期運動(cyclic movement)の組み合わせにより実現できるとも言われている。
以下、ロボットの周期的な歩行運動を例として説明する(なお不動点ダイナミクスについても位相データを距離と読み替えることで同様に考えることができる)。
歩行運動をリミットサイクルダイナミクスに基づいて制御する4足歩行ロボットが知られている(例えば、非特許文献2)。図1は、この従来の4足歩行ロボットシステムの構成を表している。このシステムは、4足歩行ロボット1とそれを制御する制御部2とにより構成されている。制御部2は認識部11と生成部12により構成されている。
認識部11は神経振動子により構成されている。4足歩行ロボット1のセンサ(図示せず)より出力されたセンサデータStが認識部11の神経振動子に入力されると、神経振動子は、センサデータStの振動と同期する発振出力としての位相データφtを生成し、出力する。この位相データφtを4足歩行ロボット1の脚運動の位相に対応させ、位相に応じた複数の生成器21U,21D,22U,22Dを用意し、認識部11より出力された位相データφtを、制御対象とする所定の位相の生成器に切り替えて供給することで、4足歩行ロボット1の歩行運動を制御する制御データutが生成される。
このように、センサデータStを位相データφtに変換することにより、脚運動の定性的な状態量が直感的に理解し易くなる。例えば、位相データの位相φtが、0<φ<π/2のときは遊脚前期、すなわち脚が地面から離れ、脚を持ち上げるように運動させている状態、π/2<φ<πのときは遊脚後期、すなわち浮いている脚を地面に接地させるよう脚を下げている状態といったように、1サイクルの歩行中の動作を、人間が理解し易い部分に分割することが可能である。このようにすれば、位相データの位相φに応じて、遊脚前期の生成器21Uと遊脚後期の生成器21Dをスイッチ23で切り替えて利用することが可能となり、生成器の設計が簡便になる。
以上のことは、4足歩行ロボット1を地面上に支持している他の支持脚の生成器22U,22Dについても同様である。
多賀 厳太郎著「脳と身体の動的デザイン−運動・知覚の非線形力学系と発達」、金子書房
福岡泰宏、木村浩 (2001) 「4足ロボットの生物規範型不整地適応動歩行 − 体性感覚・前庭感覚による調整」、日本ロボット学会誌、Vol.19、 No.4、 510-517
しかしながら、図1の認識部11は、センサデータStから位相データφtを生成するのに、複数の次元のセンサデータStの中の一部を選択し、その選択したセンサデータStを線形変換することで、4足歩行ロボット1が出力するセンサデータStの次元より低い次元の位相データφtを生成していた。その結果、選択したセンサデータStにノイズが重畳していたり、センサ自身が故障していたりした場合に対するロバスト性が低かった。
本発明は、このような状況に鑑みてなされたものであり、センサ故障やノイズに対してロバストな制御ができるようにするものである。
本発明の側面は、ダイナミクスを学習し、制御対象の動作を制御する制御装置において、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成する予測手段と、
前記予測データを回帰する回帰手段と、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成する修正データ生成手段と、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する縮約手段と
を備える制御装置である。
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成する予測手段と、
前記予測データを回帰する回帰手段と、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成する修正データ生成手段と、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する縮約手段と
を備える制御装置である。
前記入力データと前記予測データとの予測誤差に基づいて、回帰割合を調節する回帰割合調節手段をさらに備え、
前記修正データ生手段は、前記入力データと前記予測データとを、前記回帰割合に基づいて合成して前記修正データを生成することができる。
前記修正データ生手段は、前記入力データと前記予測データとを、前記回帰割合に基づいて合成して前記修正データを生成することができる。
前記縮約手段は、前記制御対象の状態を観測して得られる高次元の観測データである前記入力データを、前記観測データで規定される空間内に表される閉曲線の位置を一義的に特定する次元に縮約することができる。
前記予測手段と前記縮約手段は、リカレントニューラルネットワークとして一体的に形成されていることができる。
前記回帰割合をαとするとき、前記修正データ生成手段は、前記入力データとαの積と、前記予測データと1からαを減算した値との積の和を演算して前記修正データを生成することができる。
前記回帰割合調節手段は、前記入力データの次元ごとの前記予測誤差を算出し、着目する次元以外の前記予測誤差を最小化するように、着目する前記回帰割合を調節することができる。
前記回帰割合調節手段は、前記入力データの予測誤差が基準値以下か、または繰り返し調節回数が基準回数以上になるまで前記回帰割合を調節することができる。
前記修正データ生成手段は、前記入力データに前記位相データも含めて前記修正データを生成することができる。
前記予測処理と前記縮約処理を行うパラメータを学習する場合において、前記予測データの目標出力値との誤差の平均二乗誤差に次元ごとに重みを与える重み付加手段をさらに備えることができる。
前記位相データから前記制御対象の所定の位置を指令する指令データを生成する指令データ生成手段をさらに備え、
前記修正データ生成手段は、前記入力データに前記指令データも含めて前記修正データを生成することができる。
前記修正データ生成手段は、前記入力データに前記指令データも含めて前記修正データを生成することができる。
前記指令データ生成手段は、前記指令データに基づいて、前記制御対象を制御する制御データをさらに生成することができる。
前記修正データ生成手段は、0.5乃至1.0周期の前記修正データを生成することができる。
本発明の側面はまた、ダイナミクスを学習し、制御対象の動作を制御する制御装置の制御方法またはプログラムにおいて、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、
前記予測データを回帰し、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する
処理を含む制御方法またはプログラムである。
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、
前記予測データを回帰し、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する
処理を含む制御方法またはプログラムである。
本発明の側面においては、学習したダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データが生成され、予測データが回帰され、入力データと回帰された予測データとを合成して修正データが生成され、高次元の修正データの次元を縮約して、入力データより低次元の、制御対象の動作を制御するための位相データが生成される。
本発明の側面によれば、センサ故障やノイズに対してロバストな制御が可能となる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の側面は、ダイナミクスを学習し、制御対象(例えば、図4の制御対象61)の動作を制御する制御装置(例えば、図4の制御部62)において、
学習した前記ダイナミクスに基づいて、過去の複数のタイミング(例えば、時刻t−k乃至時刻t−1)の高次元の修正データ(例えば、図4の修正データSat-k,…,Sat-2,Sat-1)から、それより後のタイミング(例えば、時刻t)の高次元の入力データ(例えば、図4のセンサデータSt)を予測した予測データ(例えば、図4の予測データSpt)を生成する予測手段(例えば、図4の予測部112)と、
前記予測データを回帰する回帰手段(例えば、図4の回帰部103)と、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成する修正データ生成手段(例えば、図4の修正データ生成部101)と、
高次元の前記修正データ(例えば、図4の修正データSat-1)の次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データ(例えば、図4の位相データφpt)を生成する縮約手段(例えば、図4の縮約部111)と
を備える制御装置。
学習した前記ダイナミクスに基づいて、過去の複数のタイミング(例えば、時刻t−k乃至時刻t−1)の高次元の修正データ(例えば、図4の修正データSat-k,…,Sat-2,Sat-1)から、それより後のタイミング(例えば、時刻t)の高次元の入力データ(例えば、図4のセンサデータSt)を予測した予測データ(例えば、図4の予測データSpt)を生成する予測手段(例えば、図4の予測部112)と、
前記予測データを回帰する回帰手段(例えば、図4の回帰部103)と、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成する修正データ生成手段(例えば、図4の修正データ生成部101)と、
高次元の前記修正データ(例えば、図4の修正データSat-1)の次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データ(例えば、図4の位相データφpt)を生成する縮約手段(例えば、図4の縮約部111)と
を備える制御装置。
前記入力データと前記予測データとの予測誤差に基づいて、回帰割合を調節する回帰割合調節手段(例えば、図4の回帰割合調節部104)をさらに備え、
前記修正データ生手段は、前記入力データと前記予測データとを、前記回帰割合に基づいて合成して前記修正データを生成することができる。
前記修正データ生手段は、前記入力データと前記予測データとを、前記回帰割合に基づいて合成して前記修正データを生成することができる。
前記予測手段と前記縮約手段は、リカレントニューラルネットワークとして一体的に形成されている(例えば、図6の予約縮約部102)ことができる。
前記予測処理と前記縮約処理を行うパラメータを学習する場合において、前記予測データの目標出力値との誤差の平均二乗誤差に次元ごとに重みを与える重み付加手段(例えば、図11の出力重み調整部303)をさらに備えることができる。
前記位相データから前記制御対象の所定の位置を指令する指令データ(例えば、図4の中間制御データu’t)を生成する指令データ生成手段(例えば、図4の生成部82)をさらに備え、
前記修正データ生成手段は、前記入力データに前記指令データも含めて前記修正データを生成することができる。
前記修正データ生成手段は、前記入力データに前記指令データも含めて前記修正データを生成することができる。
本発明の側面はまた、ダイナミクスを学習し、制御対象(例えば、図4の制御対象61)の動作を制御する制御装置(例えば、図4の制御部62)の制御方法またはプログラムにおいて、
学習した前記ダイナミクスに基づいて、過去の複数のタイミング(例えば、時刻t−k乃至時刻t−1)の高次元の修正データ(例えば、図4の修正データSat-k,…,Sat-2,Sat-1)から、それより後のタイミング(例えば、時刻t)の高次元の入力データ(例えば、図4のセンサデータSt)を予測した予測データ(例えば、図4の予測データSpt)を生成し(例えば、図25のステップS97)、
前記予測データを回帰し(例えば、図25のステップS98)、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し(例えば、図25のステップS96)、
高次元の前記修正データ(例えば、図4の修正データSat-1)の次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データ(例えば、図4の位相データφpt)を生成する(例えば、図25のステップS101)
処理を含む制御方法またはプログラムである。
学習した前記ダイナミクスに基づいて、過去の複数のタイミング(例えば、時刻t−k乃至時刻t−1)の高次元の修正データ(例えば、図4の修正データSat-k,…,Sat-2,Sat-1)から、それより後のタイミング(例えば、時刻t)の高次元の入力データ(例えば、図4のセンサデータSt)を予測した予測データ(例えば、図4の予測データSpt)を生成し(例えば、図25のステップS97)、
前記予測データを回帰し(例えば、図25のステップS98)、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し(例えば、図25のステップS96)、
高次元の前記修正データ(例えば、図4の修正データSat-1)の次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データ(例えば、図4の位相データφpt)を生成する(例えば、図25のステップS101)
処理を含む制御方法またはプログラムである。
以下、図を参照して本発明の実施の形態について説明する。
図2は、本発明を適用した制御システムの一実施の形態の構成を表している。この制御システム50は、制御対象51と、その動作を制御する制御部52により構成されている。制御部52は制御対象51が出力する状態変数データxtを入力して、制御変数データutを算出し、制御対象51に出力する。制御対象51は制御変数データutに従って動作し、その結果制御対象51の状態が変化し、状態変数データxtが変化する。この処理のループが繰り返されることで、制御対象51が所望の状態に制御される。
このような制御システム50は、例えば、プラント、自動車、航空機、ロボットなどに適用されるが、以下においては、ロボットに適用される場合を例として、本発明の実施の形態について説明する。
図3の制御システム60は、ロボットの運動を制御するシステムであり、ロボットとしての制御対象61と、ダイナミクスを学習し、制御対象61の動作を制御する制御部62により構成される。制御対象61であるロボットには、運動を実行するアクチュエータ72と、その運動状態を観測するセンサ部71が具備されている。センサ部71は複数のセンサ(図示せず)により構成され、その数に対応する次元の状態を観察し、対応する状態変数データxtを出力する。ロボットの運動を記述する状態変数データxtは、センサデータStとして、制御部62に出力される。観測データである状態変数データxtとセンサデータStは、それぞれの次元のベクトルで表わされるが、必ずしも同じ次元ではない。物理的な制約によりすべてのセンサが配置できない場合もあるし、安全性を考え、冗長にセンサを導入することもあり得るからである。
例えば、物理量としては1つの状態である加速度を、2個の加速度センサで観測する場合、2個のセンサの出力をそのまま使用するとき、センサデータの次元(=2)が状態変数データの次元(=1)より大きくなる。逆に、必ずしもすべての状態変数データを使用する必要はないので、一部の状態変数データのみを使用する場合には、センサデータの次元が状態変数データの次元より小さくなる。
制御部62は認識部81と生成部82で構成される。認識部81はセンサ部71からのセンサデータStを受け取り、より低次元に縮約して、位相データφtを生成し、出力する。すなわちdimSt-1 > dimφtである。なお、dimは次元を表わす。生成部82は認識部81からの位相データφtを入力として、制御変数データutを算出し、出力する。制御変数データutによりアクチュエータ72が駆動され、制御対象61としてのロボットが運動する。その結果、次の時刻の状態変数データxt+1が変化する。
なお、tは、時刻またはタイミングを表わしている。現在時刻をtとすれば、t−1は、現在時刻より1クロック分だけ相対的に前の時刻を意味し、t+1は1クロック分だけ相対的に後の時刻を意味する。例えば、認識部81は、時刻tのセンサデータStに基づいて、その時刻tの位相データφtを生成する。以下、時刻またはタイミングを表わす必要がない場合には、状態変数データxt、センサデータSt、位相データφt、制御変数データut等は、それぞれ、状態変数データx、センサデータS、位相データφ、制御変数データu等とも表わす。他のデータの記号についても同様である。また、これらのデータも、それぞれの次元のベクトルで表わされる。
図4は、図3の制御システム60の特に認識部81の機能的構成をより詳細に表した図である。時刻tにおけるセンサデータStを入力し、より低次元の位相データφptを出力する認識部81は、内部に、修正データ生成部101、縮約部111と予測部112を有する予約縮約部102、回帰部103、および回帰割合調節部104を有する。
修正データ生成部101は、制御対象61の状態を観測して得られる高次元の入力データとしての観測データと、回帰された予測データを合成して修正データを生成する。すなわち、修正データ生成部101は、基本的にはセンサ部71から時々刻々と入力されるセンサデータと回帰部103より入力される予測データをk+1ステップ分保持することで、現在時刻tからk(k>0なる整数)ステップ過去までのセンサデータSt-k,…,St-2,St-1の修正データSat-k,…,Sat-2,Sat-1よりなる時系列データを生成する。時系列データとされた修正データSat-k,…,Sat-2,Sat-1は予測部112および縮約部111に入力される。
予測部112は、学習したダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成する。すなわち、予測部112は、k(kは2以上の正の整数)ステップ過去から1ステップ過去までの時系列データとされた修正データSat-k,…,Sat-2,Sat-1を用いて、現在時刻のセンサデータStを予測したデータである予測データSptを予測する。このように、過去の複数のタイミングの修正データを用いて予測を行うことで、正確な予測が可能となる。
回帰部103は、この予測データSptを修正データ生成部101に回帰する。これにより、修正データ生成部101において予測データSptをそのまま入力として、再び予測部112に供給することで、予測データSpt+1, Spt+2,Spt+3,…と、順次、未来の時系列データを自己生成することができる。
回帰割合調節部104は、入力データと予測データの次元ごとの予測誤差を算出し、着目する次元以外の観測データと予測データとの予測誤差を最小化するように、着目する回帰割合を調節する。すなわち、回帰割合調節部104は過去のkステップの修正データSat-k,・・・,Sat-1に基づいて予測された現在時刻tの予測データSptと、現在時刻の観測データとしてのセンサデータStを比較することで、その予測誤差を算出し、その予測誤差に基づいて、予測誤差が大きいほど、予測データSptが回帰する割合が大きくなるように、すなわち、時系列データSatにおいてセンサデータStの成分が占める割合が小さくなるように、回帰割合を調節する。具体的には、回帰割合調節部104は、回帰割合を規定する入力重みαstを予測誤差の値に応じて所定の値に設定する。設定された入力重みαstは、修正データ生成部101に入力される。
センサ部71を構成する複数のセンサのそれぞれが正常であれば、それぞれの出力に基づく予測誤差は小さくなり、故障していればそのセンサの出力に基づく予測誤差は大きくなる。従って、修正データ生成部101は、入力重みαstの大きさ(すなわち予測誤差の大きさ)に応じて予測データSptの回帰割合を調節し、予測誤差が予め設定されている閾値より大きいセンサは故障しているものとして、そのセンサが出力するセンサデータは採用せず、予測部112により他の正常なセンサのセンサデータにより導出された予測データを採用するように、入力重みαstに基づく合成処理を実行する。この処理によりセンサの故障により欠落したセンサデータを、他の正常なセンサのセンサデータから補った時系列データを生成することができる。
修正データ生成部101における入力重みαsに基づく合成処理を式を用いて説明すると次のようになる。すなわち、時刻tにおけるn次元のセンサデータStを次の式で表すとする。なお、次式におけるSi tのiは次元を表わす。
St=(S1 t,S2 t,S3 t,…,Sn t) …(1)
St=(S1 t,S2 t,S3 t,…,Sn t) …(1)
仮に2番目(2次元目)のセンサが故障していた場合、その出力データS2 tは異常値である可能性が高い。そこで、修正データ生成部101において、2番目のセンサデータS2 tの予測データSa 2 tを用いて、次式で表される修正データSatが生成される。
Sat=(S1 t,Sa 2 t,S3 t,…,Sn t) …(2)
Sat=(S1 t,Sa 2 t,S3 t,…,Sn t) …(2)
すなわち、故障しているセンサのデータを含むセンサデータSが、次式における入力重みαs i tをαs i t=0と設定することで、故障しているセンサのデータを含まない時系列データSaに修正される。
縮約部111は、高次元の修正データの次元を縮約して、入力データより低次元の、制御対象61の動作を制御するための位相データを生成する。すなわち、縮約部111は、高次元のセンサデータの修正データSat-1を、それより低い次元の位相データφptに写像する。縮約部111に入力される修正データSat-1は、修正データ生成部101、予測部112、回帰部103、および回帰割合調節部104によりセンサ故障を正常なセンサの出力を用いて自己修正したデータであるので、耐故障性の高い安定した位相データφptを出力することができる。
また図4の実施の形態においては、位相データφptから制御変数データutを生成し、制御対象61のアクチュエータ72に出力する生成部82が、内蔵する目標軌道生成部451(図32を参照して後述する)により、位相データφtに基づき中間制御データu’tを算出し、回帰割合調整部104に供給するとともに、修正データ生成部101に入力データとして供給する。この中間制御データu’tは、2足2腕のロボットの脚先のX方向位置指令値を表す(その詳細は図9を参照して後述する)。
予測部112は、修正データ生成部101より入力された修正データとしての中間制御データu’at-1に基づいて、その予測データu’ptを生成する。回帰部103はこの中間制御データの予測データu’ptを修正データ生成部101に回帰する。回帰割合調節部104は、生成部82からの中間制御データu’tと、予測部112からの予測データu’ptとの予測誤差を演算し、その予測誤差に対応する入力重みαutを修正データ生成部101に供給する。修正データ生成部101は、この入力重みαutに基づいて、中間制御データu’tと予測データu’ptとを次式に基づいて合成する。すなわち、中間制御データu’tが予測データu’ptにより修正される。修正された中間制御データは、次回のタイミングで予測部112に出力される。
図4の実施の形態においては、センサデータの予測データSptと中間制御デーの予測データu’ptとを回帰させるようにしたが、図5に示されるように、センサデータの予測データSptだけを回帰させるようにしてもよい。
さらに図4の実施の形態においては、予測縮約部102において、縮約部111と予測部112を独立の構成としたが、図6に示されるように、縮約部111と予測部112を一体的に構成することもできる。この場合、図14を参照して後述するように、予測縮約部102は、リカレントニューラルネットワーク361で構成することができる。
センサデータStがより小さい次元の位相データφtで代表できることを概念的に説明すると、次のようになる。図7はリミットサイクルアトラクタによる周期運動を示し、図8は不動点アトラクタによる到達運動を示している。ここでは3次元のセンサデータから、位相データを1次元のスカラ値として取り出す例を示している。
リミットサイクルアトラクタはS1,S2,S3の3次元のセンサ空間内に閉曲線131として表され、その閉曲線131上をセンサデータベクトルStは周回する。周期軌道である閉曲線131の周辺にはアトラクタ構造(すなわち、引き込み領域132)があるため、軌道からずれたセンサデータベクトルでも、時間発展と共に次第に引き込まれ、周期軌道に収束する。センサデータベクトルが周期軌道上を周回しているとき、周期軌道上のどの位置にあるのかを記述することができれば、現在のセンサデータベクトルを用いずとも、小さい次元で状態を表すことができる。例えば周期軌道にもっとも近い平面133を設定し、その平面133上に周期軌道を投影する。そして適当に定めた周期軌道内の原点Oおよび投影軌道上の1点φ0を基準として、センサデータベクトルStの位置を角度φtで表す。このようにすれば3次元のセンサデータベクトルStを角度φtという1次元のスカラ値で代表させることができる。すなわち、縮約部111は、高次元の観測データである入力データを、観測データで規定される空間内に表される閉曲線の位置を一義的に特定する次元に縮約する。
図8に示す不動点ダイナミクスの場合、到達運動制御の観点から、最も重要なパラメータは、図中、×印で示される不動点アトラクタとセンサデータベクトルStとの距離であると考えられる。不動点アトラクタの周囲に引き込み領域141が形成されている。従ってこの距離をφtとして抽出することで、到達運動の達成度合いを測ることができる。上記例では原点の設定や位相0の点の設定など任意性があるものの、運動制御に重要と思われる情報を、次元を減らして取り出し得る。
高次元のセンサデータをそのまま扱うのではなく、一旦低次元化した位相データにすることで、運動を人間が直感的に理解し易くすることができ、また、生成部82の設計も容易にすることができる。さらに、センサ故障やノイズに対してロバストな制御が可能となる。
力学系の観点からロボットの運動を見たとき、今現在の運動状態を表す変数が、必ずしもセンサと同様に多次元である必要はない。例えば特定の周期軌道を持つリミットサイクルダイナミクスの場合を考えると、定常周期運動をしているとき、ある時刻におけるロボットの状態は、周期軌道上のどの位置にあるかを指し示す位相さえ判れば一意に定まる。不動点ダイナミクスの場合では、固定点からの距離が運動の状態を代表する変数になりうる。このように多次元のセンサ情報を、位相あるいは距離という低次元の情報に縮約し、それを用いて制御することで、多次元の複雑な問題が扱い易くなる。
例えば、人間型2足歩行ロボットの直進歩行運動における縮約の例について説明する。
図9は本発明の実施の形態としての「人間型」の脚式移動ロボット200が直立している様子を示している。この脚式移動ロボット200においては、座標軸が、ロボットの進行方向がX、右水平方向がY、鉛直方向がZ、とされている。脚式移動ロボット200は、下方に腰部214を有し、上方に首212により結合されている頭部211を有する胴体部213、胴体部213の左右側面上方に取り付けられている左右の上肢部215、腰部214の下方に取り付けられている脚式移動を行なう左右2足の下肢部216により構成されている。
上肢部215は、上腕部221、肘222、前腕部223、および手先224により構成されている。下肢部216は、股関節231、大腿部232、膝関節233、脛部234、足首235、および足平236により構成されている。
腰部214には、腰部センサ251が内蔵されている。腰部センサ251としては、図10に示されるように、3軸並進加速度センサ261と3軸角速度センサ262が設けられている。これらのセンサを組み合わせることで、絶対空間座標系における腰部214の傾き角であるロール角とピッチ角も算出することができる。
足平236の底には力センサ252が設けてあり、床反力中心点が計測できるようになっている。腰部214の並進加速度3次元、腰部214の回転角速度3次元、絶対空間座標系における腰部214の傾き角であるロール角とピッチ角の2次元、胴体座標系における床反力中心点(COP:Center of Pressure)のX,Y座標の2次元の合計10次元がセンサデータとされる。この10次元のセンサデータが、1次元のスカラ値としての位相データに縮約される。
直進歩行運動の脚運動はその場での足踏み運動と、前後方向(X方向)への運動に簡易的に分解することができる。ここで制御対象とする問題は、直進歩行運動の前後方向への脚運動である。つまり、足踏み運動を行っている状態において、どのように歩を前に進めるかという運動制御問題である。10次元のセンサデータを1次元の位相データに縮約し、その位相データに同期するように脚を前後に駆動し、ロボットを直進させる。
この場合、認識部81は、アトラクタダイナミクスを持つ多次元のセンサデータStを、より低次元の位相データφtに写像する、具体的には、10次元のセンサデータを縮約し、1次元のスカラ値を算出する写像関数としての機能を有する。
アトラクタダイナミクスを持つ力学系の状態を観測している多数のセンサは、異なる状態量を観測対象としていても、程度の差こそあれ、何らかの相関関係を持っていると考えられる。例えば腰部214の角度と角速度は微分関係にあり、各々が独立に変化することはあり得ない。そこで本発明の実施の形態では、多次元のセンサベクトルすべての次元を入力として、1のアトラクタダイナミクスとしてその力学系構造を記憶し、その中から位相データを抽出する。
すなわち、本明細書における縮約とは、複数のN個の次元の中の一部のM(N>M)個の次元を選択あるいは抽出し、残りのN−M個の次元を捨象することにより、M個の次元とする処理ではなく、複数のN個の次元から、その一部を捨象することなく、N個の次元の相互の関連性を利用して、N個の次元のすべてを利用して、それより小さい数の新たなM個の次元を生成する処理である。これにより、一部のセンサの出力にノイズが乗ったりセンサが故障したりしても、残りのセンサの出力を用いることで、ロバストに位相データを算出することができる。すなわち、複数の次元が1つのダイナミクスを構成し、そのダイナミクスが記憶されているので、センサ故障などに対してロバストなシステムを実現することができる。
このように認識部81は、アトラクタダイナミクスを持つセンサデータStを、より低次元の位相データφtに写像する関数としての機能を有する。多次元のセンサデータStがどのようなアトラクタダイナミクスであるか、解析的に求めることは困難な場合が多い。そこで、認識部81に、学習により写像関係を獲得する構成を採用することができる。その構成の1つに、リカレントニューラルネットワーク(RNN:Recurrent Neural Network)がある。リカレントニューラルネットワーク(以下、RNNとも称する)はネットワークに回帰ループで結合されるコンテキストユニットを持ち、そこに内部状態を保持することによって、理論的には任意の力学系を近似可能であることが知られている。
図11は、認識部81として使用可能な3層型ニューラルネットワークであるリカレントニューラルネットワーク301の構成を示したものである。出力層から入力層への回帰ループを持つこのリカレントニューラルネットワーク301を用いて、時系列データである時刻t-1の入力データXt-1を入力し、時刻tの入力データXtを予測して出力することを予測学習(prediction learning)することにより、対象となる時系列データの時間発展法則を学習することができる。なお、ここにおける入力データは、図4におけるセンサデータStと中間制御データu’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に開示されている。
内部状態量を持つ力学系近似モデルとしてのリカレントニューラルネットワーク301は、学習に使われる時系列データに基づいてダイナミクスを学習することになる。修正データ生成部101を構成する入力重み調整部302は、リカレントニューラルネットワーク301に入力されるデータに対して、どの次元に着目すべきかの調整を行う。出力重み調整部303は、リカレントニューラルネットワーク301から出力されるデータに対して、どの次元に着目すべきかの調整を行う。
図12は、入力層312、中間層313、および出力層314の3層で構成されるリカレントニューラルネットワーク301と、入力重み調整部302として機能する合成部311の構成を示している。入力層312には時刻t−k乃至t−1の時系列データとされた修正データXat-k,・・・,Xat-1が入力される。なお、簡単のため、図12には、時刻t−1の修正データXat-1のみが示されている。この例では、時系列データとされた修正データXat-1は次式で表されるように、10次元のデータである。他の時刻の修正データも同様である。
一方、入力層312への修正データXat-k,・・・,Xat-1の入力に基づいて、出力層314からは、時刻tの時系列データの予測データXptが出力される。この例では、予測データXptは次式で表されるように、10次元のデータである。
また、入力層312と出力層314には、入出力データとは直接関係を持たない隠れユニットが用意される。このユニットを用いて出力層314から入力層312への回帰ループが構成される。この図12の例では、隠れユニットへの入力データと出力データは、ct-1とcptによってそれぞれ表されている。
出力層314から出力される予測データXp 1 t, Xp 2 t, …,Xp 10 tは、回帰部103により合成部311に回帰される。合成部311は、入力データXt=(x1 t, x2 t, …,x10 t)と、予測データXpt=(Xp 1 t, Xp 2 t, …,Xp 10 t)の予測誤差を演算し、その予測誤差に応じて入力重みαを演算し、次式に基づいて入力データXtと予測データXptを合成し、修正データとして入力層312に供給する。
αiは、0≦αi≦1の範囲で与えられるi次元目のデータに対応する混合比を指定するパラメータとしての入力重みであり、予測データの入力への回帰割合を表している。αi=1の場合、センサ部71により観測されるデータだけが入力層312に入力されることになり、αi=0の場合、1時刻前までの修正データに基づき予測された予測データだけが入力層312に入力されることになる。入力重みαiは入力データの各次元ごとに調整することが可能である。図11の入力重み調整部302は、この入力重みαiを調整することで、観測される時系列パターンのうちの所定の次元に対して着目させる。
例えば、図12の例において、入力重みαiを次式のように調整した場合、入力されるデータxi tのうちの、2つの次元のデータx1 t, x3 tのみに着目することになり、それ以外の次元の時系列データとしては、入力データは用いられず、予測データが用いられることになる。つまり2つの次元1,3以外の次元(2,4,5,6,7,8,9,10の次元)の時系列データは、リカレントニューラルネットワーク301により自己生成された値が用いられる。
α1=α3=1
α2=α4=α5=α6=α7=α8=α9=α10=0 … (8)
α1=α3=1
α2=α4=α5=α6=α7=α8=α9=α10=0 … (8)
また、入力重みαiを次式のように調整した場合、すべての次元の入力データを同じ重みで着目することになり、観測される入力データxi tと、回帰部103による回帰ループよって入力される予測データxp i tを同じ割合で混合したデータxa i tが、時系列データとして利用されることになる。
α1=α2=α3=α4=α5=α6=α7=α8=α9=α10=0.5 … (9)
α1=α2=α3=α4=α5=α6=α7=α8=α9=α10=0.5 … (9)
一方、リカレントニューラルネットワーク301のパラメータ推定方法として、BPTT法を適用するものとすると、時刻 tの入力データを予測して出力することを学習することになるので、次式で与えられる重みつき平均二乗誤差によって与えられる出力誤差が、評価値として学習に利用される。出力重み調整部303は、予測処理と縮約処理を行うパラメータを学習する場合において、予測データの目標出力値との誤差の平均二乗誤差に次元ごとに重みを与える重み付加手段としての機能を有する。
上記式において、xp i tは出力層314から出力される予測データの値であり、ri tは予測データの目標出力値である。βiは0≦βi≦1の範囲で与えられるi次元目の重み係数であり、この係数を調整することで、どの次元に着目して力学系の近似精度の評価を行うかを調整することができる。そして、上記式で与えられる出力誤差Eを最小化するようにリカレントニューラルネットワークのパラメータ推定が行われることになる。このパラメータβiは出力層314から出力される予測データに関する予測誤差を評価するために利用されることから、出力重みと称する。出力重み調整部303は、この出力重みβiを調整することで、出力層303から出力される予測データに基づく予測誤差を評価する際の着目すべき次元の調整を行う。
例えば図12の実施の形態において、次式で示されるように出力重みβiを調整した場合、入力データのうちの2つの次元1,3の入力データx1 t, x3 tに着目した予測誤差が評価値として利用されることになる。
β1=β3=1
β2=β4=β5=β6=β7=β8=β9=β10=0 … (11)
β1=β3=1
β2=β4=β5=β6=β7=β8=β9=β10=0 … (11)
図6に示されるように、図4に示される予測部112と縮約部111を、1つのリカレントニュートラルネットワークで実現した場合、予測部112と縮約部111を別々に学習する必要がなくなり、演算速度を向上させることができ、また必要なメモリの容量を小さい値に抑えることができる。さらに学習に要する教師データも共通化でき、効率的に学習を行うことができる。また予測部112と縮約部111が隠れユニットの回帰ループを共有することから、ノイズに対してロバストな位相データの抽出が期待できる。
予測縮約部102は、センサデータと位相データを組み合わせた時系列データを教師データとして、そのダイナミクスを学習することで構成される。
図13に予測縮約部102に学習させる場合の構成を示す。本実施の形態では、予測縮約部102の予測部112と縮約部111は1つのリカレントニューラルネットワークによって実現されている。従って入力の時系列教師データと出力の予測データは、センサデータと位相データが組みになったものである。学習部331は時系列教師データと予測データを比較し、予測がより良くなるようにリカレントニューラルネットワークのパラメータを更新する。
すなわち、予測部112と縮約部111が一体化されている予測縮約部102を構成するリカレントニューラルネットワーク361は、学習時、図14に示される予測動作が実行できるように構成される。リカレントニューラルネットワーク361は、入力層362、中間層363、および出力層364を有し、修正データ生成部103の入力重み調整部302を構成する合成部365は、入力される教師データと、出力層364から出力され、回帰されるデータとを、入力重みαで合成し、入力層362に時系列データとされた修正データとして供給する。リカレントニューラルネットワーク361は、入力層362に入力された時系列データとされた修正データの予測データを出力層364から出力する。
ダイナミクス学習のために用いられる教師データは、10次元のセンサデータS1 t-1乃至S10 t-1、1次元の中間制御データu’t-1、および1次元の目標位相データφt-1の、合計12次元のデータで構成される。
センサデータは、ロボットに装備されているセンサ部71から出力されるデータであって、腰部センサ251の3軸並進加速度センサ261の3次元の出力、3軸角速度センサ262の3次元の出力、それらより生成される腰部214の傾き角であるロール角とピッチ角の2次元の出力、力センサ252の出力に基づく床反力中心点のX,Y座標の2次元の出力からなる、S1 t-1乃至S10 t-1の合計10次元のデータである。
中間制御データu’t-1は位相データφt-1に基づき生成部82の内部の目標軌道生成部451によって算出される脚先のX方向位置指令値である。すなわち、生成部82は、位相データから制御対象61の所定の位置を指令する指令データとしての中間制御データu’を生成する指令データ生成手段としての機能と、指令データに基づいて、制御対象61を制御する制御データとしての制御変数データutをさらに生成する機能を有する。本実施の形態では図32を参照して後述するように、目標軌道生成部451に内部変数を持つ神経振動子を用いていることから、位相データφt-1と中間制御データu’t-1は一対一には対応しない。従って運動に直接影響を与える中間制御データの値も仮想的な内界センサとみなし、ダイナミクス学習の入力次元とされている。この意味で、S1 t-1乃至S10 t-1と中間制御データu’t-1を合わせた11次元を、センサデータと考えることもできる。
次に、教師データの生成処理について説明する。学習部331は教師データを生成するために、図15に示されるように、取得部341、除去部342、正規化部343、および正弦波生成部344を機能的に有し、それぞれは、センサデータの教師データを生成するために図16のフローチャートに示される処理を実行し、位相データの教師データを生成するために図17のフローチャートに示される処理を実行する。
取得部341は、ロボット歩行時のセンサ時系列データを取得する。除去部342は、センサ時系列データのオフセットを除去する。正規化部343は、時系列データを正規化する。正弦波生成部344は、正弦波を生成する。
センサデータの教師データを生成するために、ステップS1において、取得部341は、ロボット歩行時のセンサ時系列データを取得する。腰部214のロール方向角速度を線形変換したものを位相データとすることで定常直進歩行が可能であることが判っている。そこで、既に歩行可能に調整されたロボットを二足歩行させたとき記録されたセンサ時系列データが取得される。
ステップS2において、除去部342は、ステップS1で取得されたセンサ時系列データのオフセットを除去する。このオフセットの除去は、センサごとに行われる。ステップS3において、正規化部343は、オフセットが除去された時系列データを正規化する。具体的にはセンサ時系列データの最大値、最小値、および平均値をあらかじめ各次元ごとに算出し、これを用いることで正規化が行われる。
また、位相データの教師データを生成するために、ステップS31にいて、正弦波生成部344は、ロール方向角速度と二乗誤差が最小となるように、周波数と位相を調整した正弦波を生成する。
このほか、目標位相データはさまざまな方法により設定することが出来る。例えば、ある特定のセンサ値を線形変換したものや,複数のセンサ出力の重み付き線形和、あるいはセンサ時系列データをフーリエ級数展開し,パワースペクトルが最大となる振動数を設定した正弦波を目標の位相データとすることができる。またある特定の少数のセンサ時系列のみに着目し、これを入力として強化学習により試行錯誤的に導出してもよい。
教師データを利用して学習処理を実行するために、学習部331は、さらに図18に示されるように、初期化部351、入力部352、判定部353、更新部354、および保存部355を機能的に有し、図19に示されるような学習処理を実行する。
初期化部351は、リカレントニューラルネットワーク361のパラメータを初期化する。入力部352は、教師時系列データを入力する。判定部353は、予測誤差を演算し、その値が基準値以下であるかを判定する。更新部354は、BPTT法により学習しているとき、リカレントニューラルネットワーク361のパラメータを更新する。保存部355はリカレントニューラルネットワーク361のパラメータを保存する。
次に図19を参照して、学習処理について説明する。ステップS61において、初期化部351は、予測縮約部102を構成するリカレントニューラルネットワーク361のパラメータ(すなわちユニットの結合重み係数)を初期化する。ステップS62において、入力部352は教師時系列データを入力する。すなわち、入力部352は、教師データとしてのセンサデータS1 t-1乃至S10 t-1、中間制御データu’t-1、および位相データφt-1を入力し、修正データ生成部101の入力重み調整部302としての合成部365に供給する。合成部365は、入力された教師データと出力層364からの回帰成分を、式(7)に基づいて入力重みαで合成し、教師時系列データとしての教師修正センサデータSa 1 t-1乃至Sa 10 t-1、教師修正中間制御データu’at-1、および教師修正位相データφat-1を生成して、リカレントニューラルネットワーク361の入力層362に入力する。
ステップS63において、リカレントニューラルネットワーク361は、教師時系列データの予測データを演算する。すなわち、教師時系列データとしての教師修正センサデータSa 1 t-1乃至Sa 10 t-1、教師修正中間制御データu’at-1、および教師修正位相データφat-1の予測データとしての予測センサデータSp 1 t乃至Sp 10 t、予測中間制御データu’pt、および予測位相データφptが生成される。
ステップS64において、判定部353は、教師時系列データと予測データとの予測誤差が基準値以下であるかを判定する。予測誤差が予め定められている基準値より大きい場合には、ステップS65において、更新部354は、BPTT法によりリカレントニューラルネットワーク361のパラメータを更新する。その後、ステップS63において、リカレントニューラルネットワーク361は、更新されたパラメータに基づいて、再び教師時系列データから予測データを演算する。再度演算された予測データの予測誤差が基準値以下であるかがステップS64において再び判定され、基準値より大きい場合には、さらにステップS63の処理が実行される。
このようにして、演算された予測データの予測誤差が基準値以下になるまでステップS63乃至S65の処理が繰り返され、近似精度が向上するように、リカレントニューラルネットワーク361のパラメータの学習が行われる。予測誤差が十分小さくなり、ステップS64において、演算された予測データの予測誤差が基準値以下であると判定された場合、ステップS66において、保存部355は、ステップS65の処理で更新されたリカレントニューラルネットワーク361のパラメータを保存する。このパラメータが後述する図25のステップS91において読み出され、認識処理に使用される。
実験においては、リカレントニューラルネットワーク361の各層のユニット数を、入力層:12、中間層:8、出力層:12とし、隠れユニットの数を3と設定した。また入力重みαi=0.1、出力重みβi=1と一様に設定した。これは各センサ情報を均等に扱うことで、ある特定のセンサに依存せずに位相データを予測できるようにするためである。入力重みαiを0.1と小さい値に設定した理由は、リカレントニューラルネットワーク361の自己生成によって教師データを予測するようにするためである。
学習結果の例を図20と図21に示す。これらの図において、横軸は時間を表し、縦軸は正規化後の値を示している。図20Aはロール角速度、図20Bはロール角度、図20Cはピッチ角速度、図20Dはピッチ角度、図20Eはヨー角度、図20FはX軸のCOP、図21AはX軸の並進加速度、図21BはY軸のCOP、図21CはY軸の並進加速度、図21Dは中間制御データu’t、図21EはZ軸の並進加速度、図21Fは位相データφtを、それぞれ表している。
これらの図において、破線は教師データを表し、実線はリカレントニューラルネットワーク361の出力データを表す。どの次元の出力データも教師データをよく近似できていることが判る。
目標位相データの設定は任意性がある。このことを示すため、目標位相データを腰部214のロール方向角速度から90°進めた場合の学習結果を図22と図23に示す。
これらの図においても、図20と図21における場合と同様に、横軸は時間を表し、縦軸は正規化後の値を示している。図22Aはロール角速度、図22Bはロール角度、図22Cはピッチ角速度、図22Dはピッチ角度、図22Eはヨー角度、図22FはX軸のCOP、図23AはX軸の並進加速度、図23BはY軸のCOP、図23CはY軸の並進加速度、図23Dは中間制御データu’t、図23EはZ軸の並進加速度、図23Fは位相データφtを、それぞれ表している。
これらの図においても、破線は教師データを表し、実線はリカレントニューラルネットワーク361の出力データを表す。この場合も各次元の出力データは教師データをよく近似できていることが判る。
このようにセンサデータと目標位相データに位相ずれがあるとき、従来技術で行われていた単一のセンサデータの線形写像では対応できないが、本実施の形態によれば細かな位相ずれまで設計可能である。
リカレントニューラルネットワーク361においては、以上のようにして学習が行われた後、センサデータと中間制御データとから位相データを生成する認識処理が実行される。認識処理時においては、リカレントニューラルネットワーク361は図24に示されるように動作する。図24を図14と比較して明らかなように、入力データとしての位相データは合成部365に入力されない。すなわち、位相データは、リカレントニューラルネットワーク361がユニット間の結合重みであるパラメータとして学習したダイナミクス構造によって算出される。
次に、図25のフローチャートを参照して、図6の制御システム60が実行する認識処理について説明するが、この処理を行うため、修正データ生成部101は図26に示される機能的構成を有し、回帰割合調節部104は、図27に示される機能的構成を有する。
図26に示されるように、修正データ生成部101は、入力部371、作成部372、正規化部373および出力部374を有している。入力部371は、センサデータ、中間制御データなどを入力する。作成部372は、時系列データを作成する。正規化部373は、時系列データを正規化する。出力部374は位相データを生成、出力する。
図27に示されるように、回帰割合調節部104は、設定部391および判定部392を有している。設定部391は、入力重みを設定する。判定部392は、入力重みの設定処理を繰り返す必要があるかを判定する。
図25の認識処理は、ロボットの電源をオンしたとき開始され、電源がオフされるまで継続される。図25に示されるように、最初にステップS91において、予測縮約部102は、図19の学習処理のステップS66において保存されたリカレントニューラルネットワーク361のパラメータ読み込む。次にステップS92において、修正データ生成部101の入力部371は、現在時刻の入力データを入力する。この実施の形態の場合、入力データはセンサデータStと中間制御データu’tである。センサデータStは、制御対象61の状態をセンサ部71が観測して出力したものである。中間制御データu’tは、生成部82において、位相データφptに基づき生成されるものなので、最初の時刻においては、その値は0である。
ステップS93にいて、作成部372は時系列データを作成する。すなわち、それまで保持されていた過去の複数ステップ分のデータが集合される。具体的には、時系列データは式(3)により修正されたセンサデータSの過去kステップ分の修正データSat-k乃至Sat-1、式(4)により修正された中間制御データu’の過去kステップ分の修正データu’at-k乃至u’at-1、並びに過去kステップ分の位相データφpt-k乃至φpt-1で構成される。過去のまだ存在しないステップが存在する場合には、その存在しないステップの分の値は0とされる。
次にステップS94において、正規化部373は、作成部372により作成された時系列データを正規化する。この処理は、図16のステップS3における学習時の教師データ正規化処理と同様の処理である。
ステップS95において、回帰割合調節部104の設定部391が入力重みを設定する。すなわち、入力重みαiが各次元ごとに所定の値に設定される(すなわち、調節される)。
具体的には、設定部391は、次の式(12)と式(13)に従って、入力重みαiの良否を判定する評価基準Eiを演算する。なお、これらの式において、εjはセンサデータSあるいは中間制御データu’のj番目の次元の予測誤差であり、nはセンサデータと中間制御データの次元である。予測誤差は、センサデータの場合、式(14)のように表され、中間制御データの場合、式(15)のように表される。ここで使用される予測誤差は、後述するステップS99で演算されたものであり、初回は、現在の時刻tの直前の時刻t−1において、決定された値が利用される。
設定部391は、i番目のセンサに対する入力重みαiを、評価基準Eiが最小化するように最適化する。すなわち、i番目のセンサを除く他のセンサすべての予測誤差εjがなるべく小さくなるように入力重みαiが最適化される。最適化は、例えば、全検索、最急降下法、黄金分割法などにより行うことができる。
単純化して説明すると、例えば、i番目の入力重みαiを調節する場合、式(16)に示されるように、入力重みαiを0に設定した場合の式(13)で表される評価基準Ei(式(16)における左辺の項)と、入力重みαiを1に設定した場合の式(13)で表される評価基準Ei(式(16)における右辺の項)とがそれぞれ演算され、後者が前者より小さければ、入力重みαiは1がより適正と判断される。これに対して、式(17)に表されるように、入力重みαiを0に設定した場合の式(13)で表される評価基準Ei(式(17)における左辺の項)が、入力重みαiを1に設定した場合の式(13)で表される評価基準Ei(式(17)における右辺の項)より小さければ、入力重みαiは0がより適正と判断される。このような判断が各次元iについて順次行われ、最終的に評価基準Eiが最小となる場合の入力重みαiが選択され、設定される。
なお認識時においては位相データの入力データが存在しないので、その入力重みは常にαi=0と設定される。
ステップS96において、合成部365は、入力重みに基づき時系列データを修正する。すなわち、ステップS95で演算された入力重みαiを利用して、式(7)に基づいて、時系列データが演算される。つまり、修正データ生成部101は、観測データと回帰割合としての入力重みαの積と、予測データと1から入力重みαを減算した値との積の和を演算して時系列データを生成する。
ステップS97において、リカレントニューラルネットワーク361は、時系列データから現在の入力データの予測データを演算する。すなわち、現在のステップのkステップ前から1ステップ前までのk個のステップの時系列データが、各ステップごとに、予測縮約部102を構成するリカレントニューラルネットワーク361に順次入力される。k個のステップのうちの最後の1個のステップの時系列データをリカレントニューラルネットワーク361に入力したときに得られる予測データが、過去のk個のステップの時系列データに基づく予測データとされる。このようにして、現在のセンサデータStの予測データである予測センサデータSpt、および現在の予測中間制御データu’tの予測データである予測中間制御データu’ptが得られるとともに、位相データφptが生成される。過去kステップ分の入力データの履歴を考慮することで、より正確に予測データと位相データを生成することが可能になる。
ステップS98において、回帰部103は予測データと位相データを修正データ生成部101の合成部365に回帰する。すなわち、予測センサデータSptおよび予測中間制御データu’ptは、合成部365に回帰される。また予測センサデータSptおよび予測中間制御データu’ptは回帰割合調節部104の判定部392にも供給される。
ステップS99において、回帰割合調節部104の設定部391は、ステップS97で演算された予測センサデータSptおよび予測中間制御データu’ptと、現在のセンサデータStおよび中間制御データu’tとを比較し、それぞれの予測誤差を算出する。ステップS100で判定部392は、予測誤差が十分小さいか、または繰り返し調節回数が基準回数以上かを判定する。予測誤差が十分小さいかは、例えば、予測誤差が予め設定されている基準値以下であるかを、両者の大きさを比較することで判定することができる。予測誤差がまだ十分小さくない場合、処理はステップS95に戻り、入力重みが再び設定され、時系列データ修正処理、予測処理、回帰処理、予測誤差演算処理、判定処理が実行される。すなわち、ステップS95乃至S100の処理が、ステップS100において、予測誤差が十分小さくなったと判定されるまで繰り返される。これにより、実用に耐え得る予測が可能となる。
また予測誤差が十分小さくならなくとも、ステップS100で、入力重みの再設定処理が、予め定められた基準回数以上になったと判定された場合には、ステップS95乃至S100の処理の繰り返しは中止される。これにより、予測誤差を小さくすることができるとしても、あまりにも長い時間がかかる場合には、処理を中止することで、実質的に位相データを生成できなくなることが防止され、実用性が確保される。
予測誤差が十分小さくなったか、繰り返し回数が基準回数以上になった場合には、ステップS101において、その時点においてリカレントニューラルネットワーク361の出力層364により生成された位相データが、過去のkステップの入力データから生成された位相データとされる。すなわちこれが縮約された位相データとされ、生成部82に出力される。
その後、処理は再びステップS92に戻り、次の時刻の入力データに対して同様の処理が実行される。以上の処理を繰り返すことにより、新たな入力データとしてのセンサデータと中間制御データが入力される毎に位相データが算出され、出力される。
このようにして生成された位相データが生成部82に供給され、制御変数データに変換され、制御対象61のアクチュエータ72に供給され、ロボットが運動することになる。この点についての詳細は、図31乃至図34を参照して後述する。
ステップS92で入力したセンサデータと中間制御データからなる入力データに基づいて、ステップS101で位相データ出力をする一連の演算が時間を要する場合、入力データに対して時間遅れを伴う。従って遅れた位相データをそのまま生成部82に入力し制御を行うと、不都合が生ずる場合も考えられる。これを補償するために、ステップS101において、位相データのmステップ未来の値を予測し、算出することも可能である。未来の位相データを予測するために、一時的に回帰割合調節部104において、入力重みαi=0と設定し、予測縮約部102の演算をm回繰り返すことができる。このときすべての入出力ユニットは回帰結合され、予測縮約部102に獲得された内部ダイナミクスのみに基づいて時間発展が行われる。
以上のような認識処理が行われる結果、次のような効果が得られる。すなわち、例えばi番目のセンサが故障した場合を仮定する。調節する入力重みαiの値は簡単のため0あるいは1とする。i番目のセンサは故障しているのであるから、そのセンサの出力は異常値となる。従ってステップS100で、i番目のセンサデータを基に算出した予測誤差εiが大きいと判定される。そこで故障したi番目のセンサを除く、その他のセンサの予測がもっとも正確になるように入力重みαiが調節される。すなわち、ステップS95で、αi=0とされるので、ステップS97で、i番目のセンサデータが無視され、代わりに記憶されたダイナミクスから生成される予測データが時系列データとして用いられる。その結果、センサベクトルの時系列変化はすべての次元が干渉し合い、1つのリカレントニューラルネットワーク361内に記憶されていることから、故障による異常な値のセンサデータがそのまま入力されれば、それに引きずられ正常なセンサの予測精度までもが低下してしまうが、そのようなことが防止される。
図28と図29に実験例を示す。図28は、故障したセンサについて、入力重みαi=1として調節を行わなかった場合を示し、図29は故障している時刻では入力重みαi=0として調節した場合を示している。図28Aと図29Aにおいて、細い実線はロール角度センサデータを、太い実線は予測データを、また点線は予測誤差の絶対値をそれぞれ示す。図28Bと図29Bにおいて、細い実線は中間制御データを、太い実線は予測データを、また点線は予測誤差の絶対値をそれぞれ示す。図28Cと図29Cにおいて、太い実線は位相データを、また点線は予測誤差の絶対値をそれぞれ示す。ただし予測誤差は10倍にスケールしている。時刻3.2秒から6.4秒まで、ロール角速度センサ(3軸角速度センサ262の出力の1つが対応する)が故障してセンサ値が一定値0.507になったと設定した。
故障している時間(時刻3.2秒から6.4秒まで)に注目すると、調整を行わない場合(図28の場合)、ロール角速度の予測誤差は調整をした場合(図29A)に比較して小さくなるものの(図28A)、その他の入力センサの予測、例えば内界センサである中間制御出力の予測誤差を生み(図28B)、その結果位相データの波形も乱れることが判る(図28C)。
これに対して調整を行った場合(図29の場合)、ロール角速度の予測誤差は調整をしない場合(図28A)に比較して大きくなるものの(図29A)、その他のセンサは予測誤差が小さく(図29B)、その結果位相データの乱れが少ないことが判る。またロール角速度センサは故障時においてもリカレントニューラルネットワークの内部ダイナミクスと他の正常なセンサ入力のおかげで、正常時とほぼ同様の波形を再構成することが可能であることが判る(図29C)。
なお、このとき予測に用いるセンサ時系列データの長さが重要である。なぜなら入力重みαi=0とした場合、予測データはそのまま入力として用いられ回帰ループを構成する。一般にこのようなノードはコンテクストノードと呼ばれ、過去の履歴を反映した値を取る。従って、ある程度以上のステップ数を持ったセンサ時系列データを用いなければ正確な値を予測することができない。実験の結果、周期運動であれば0.5乃至1.0周期程度の時系列データを用いれば正確な予測ができることが確かめられた。
図30はその結果を表している。時刻3.2秒でロール角速度センサのセンサデータの値が一定値(約0.5)になったと仮定し、このときのセンサデータを点線、予測データを実線で表している。図30Aは2ステップの時系列データ(1周期の8%の時系列データ)による予測の場合、図30Bは4ステップの時系列データ(1周期の16%の時系列データ)による予測の場合、図30Cは8ステップの時系列データ(1周期の32%の時系列データ)による予測の場合、図30Dは16ステップの時系列データ(1周期の64%の時系列データ)による予測の場合、図30Eは32ステップの時系列データ(1周期の128%の時系列データ)による予測の場合、をそれぞれ表している。予測に用いる時系列データの長さが長くなるほど、つまり長い過去の履歴を参照するほど(図30Aの場合より図30Eの場合の方が)、予測データの再構成が適切に行われていることがわかる。
以上においては、1次元の入力重みαiの調整について述べたが、同様に複数次元についても調節を行えば、複数のセンサに故障が起こる場合でも対応できる。この場合、入力重みの調整方法として、例えば次のようなことが考えられる。
(1)各次元を1番から順番に調節する。
(2)位相データへの影響の高いものから順番に調節する。
(3)評価基準Eの絶対値が最小となるように入力重みベクトルα=(α1,α2,…,αi)(1≦i≦n)を最適化する。
上記した(3)の方法における最適化手法として遺伝的アルゴリズムその他の任意のものを用いることができる。
(1)各次元を1番から順番に調節する。
(2)位相データへの影響の高いものから順番に調節する。
(3)評価基準Eの絶対値が最小となるように入力重みベクトルα=(α1,α2,…,αi)(1≦i≦n)を最適化する。
上記した(3)の方法における最適化手法として遺伝的アルゴリズムその他の任意のものを用いることができる。
図6に示す生成部82は、認識部81において算出された位相データφtを入力として、制御対象61へ制御変数データutを出力する。すなわち生成部82は、位相データφtを制御変数データutに写像する。例えばロボットの運動制御問題では制御変数データutは各アクチュエータ72へのトルクである。位相データφtから制御変数データutへの写像は、さまざまな方法が考えられる。例えば2足歩行運動制御問題において、位相データをパラメータとして脚関節を正弦波によって駆動したり、ロボットの胴体座標系において、位相データをパラメータとして脚先軌道を記述することで歩行運動を生成することができる。生成部82ではどのような写像を選んでも良いが、この実施の形態では、神経振動子を用いた歩行運動制御法が用いられる。
図31に神経振動子を用いた2足歩行運動の概要を示す。直進歩行運動は、その場足踏み運動と前方への推進運動に分解することができる。その場足踏み運動は、Z方向の脚位置を左右対称に上下させることで生成される。この足踏み運動に同期するように脚をX方向、すなわち前後方向に駆動させれば歩行運動を生成することができる。これらX方向、Z方向、各々の脚位置が神経振動子を用いて制御される。
神経振動子は、生物の脊髄に内在するといわれる非線形振動子を数学的にモデル化したもので、自励発振すると共に、十分な大きさの入力データgに対して出力データqの振動数が同調する引き込み現象を有している。 図31にいては、それぞれX方向の神経振動子401の入力がgx、出力がqxとされている。また、Z方向の振動子402の入力がgz、出力がqzとされている、Z方向の運動に関しては、床反力と腰部214のロール角度を線形結合した値をgzとして用いれば、その場での足踏み運動が継続できることが知られている。また定常的に足踏み運動が生成されているとき、腰部214のロール方向角速度センサ値をgxとして、X方向の神経振動子401に入力すると直進歩行が可能であることが実験により確かめられている。そこでこのロール方向角速度センサ値の代わりに、認識部81により出力される位相データが用いられる。
図32に、位相データφtを入力として、制御変数データut(ここではアクチュエータトルクデータ)を出力する生成部82の一実施の形態の構成を機能ブロック図で示す。生成部82は、目標軌道生成部451と局所フィードバック制御部452を内部に有している。
図33に示されるように、目標軌道生成部451は、振幅調整部471、神経振動子472、オフセット調整部473、設定部474、および逆運動学計算部475の機能ブロックを有している。
振幅調整部471は、位相データの振幅を調整する。図31の神経振動子401,402に対応する神経振動子472は、位相データに同期した発振データを生成する。オフセット調整部473は、神経振動子472の出力のオフセット調整や振幅調整を行う。設定部474は、オフセット調整された神経振動子472の出力を、目標先位置として逆運動学計算部475に設定する。逆運動学計算部475は、目標脚先位置を実現するように逆運動学計算を行い、目標とする各関節位置を算出する。
次に、図34のフローチャートを参照して、生成部82の制御変数データ生成処理について、ロボットの脚をX方向に駆動する場合を例として説明する。この処理は、予約縮約部102から位相データが生成部82に入力されたとき開始される。
位相データφtが入力されると、目標軌道生成部451の振幅調整部471は、まずはじめに位相データの振幅を調整する。振幅調整が行われた位相データは、X方向の神経振動子472(図31の神経振動子401に対応する)に入力される。ステップS182において、神経振動子472は、位相データに同期した発振データを生成する。すなわち、位相データの振動数に同期するよう発振周期が調節され、結果としてロボット物理系が持つダイナミクスに同期した振動出力が得られる。
ステップS183において、オフセット調整部473は、神経振動子472の出力のオフセットを調整する。このとき振幅も適宜調整される。ステップS184において、設定部474は、オフセット調整された神経振動子472の出力を、目標先位置として逆運動学計算部475に設定する。すなわち、胴体座標系における目標X方向脚先位置として設定が行われる。また、上述したように、このX方向の目標脚先位置は、中間制御データu’tとして必要に応じて合成部365に回帰される。
次にステップS185において、逆運動学計算部475は、目標脚先位置を実現するように逆運動学計算を行い、目標とする各関節位置を計算する。本実施の形態の場合、目標軌道生成部451は以上のステップS181乃至S185の処理により、位相データを入力として各関節アクチュエータへの目標位置を出力する。
次にステップS186において、局所フィードバック制御部452は、各関節アクチュエータ目標位置を入力として目標位置に追従するよう各関節ごとに必要とされるトルクを算出する。具体的には例えばPID制御を用いて、目標位置となるように各関節をサーボ制御する。サーボ制御の出力は例えば電圧などで指令され、最終的には関節のアクチュエータ72のトルクとして用いられる。
本実施の形態では位相データからアクチュエータトルクへの変換は、脚先位置と各関節目標位置を経由して行ったが、例えば速度や加速度を媒介変数としてもよいのは勿論である。
図35乃至図37は、定常歩行時に、時刻3.2秒において、ロール角速度センサが故障した場合の動力学シミュレーション実験結果を表す。細い実線、太い実線、点線、直線は、それぞれセンサデータ、予測データ、予測誤差、入力重みを表している。センサデータ、予測データ、および入力重みはグラフ中左側の座標軸の数値で表わされる。予測誤差は絶対値を表わし、グラフ中右側の座標軸の数値で表される。センサデータは図25のステップS94の正規化処理後の値である。横軸は時刻を表しており、時刻3.2秒でロール角速度センサデータが、0.5の一定値になった場合を図示している(図35A)。
図35Aはロール角速度、図35Bはロール角度、図35Cはピッチ角速度、図35Dはピッチ角度、図36Aはヨー角速度、図36BはX方向COP、図36CはX方向加速度、図36DはY方向COP、図37AはY方向加速度、図37Bは中間制御データ(X方向神経振動子出力)、図37CはZ方向加速度、図37Dは位相データ出力を、それぞれ表している。
図35乃至図37では入力重みαの調節を行っていない(α=1とされている)。そのため位相データ出力が大きく乱れ(図37D)、時刻6.2秒でロボットが転倒に至った。このことから入力重みαを調整しなければセンサが故障した場合、すぐさま運動制御が破綻することが判る。
これに対して図38乃至図40は、ロール角速度センサの出力に対する入力重みα1の調節を行った場合を示している。図38A乃至図38D、図39A乃至図39D、並びに図40A乃至図40Dは、それぞれ図35A乃至図35D、図36A乃至図36D並びに図37A乃至図37Dに対応する。
ロール角速度センサは時刻3.2秒から6.4秒までの間、一定値0.5を取るものとしている(図38A)。ロール角速度の入力重みは、ロール角速度以外のセンサの予測誤差が最も小さくなるよう、0あるいは1いずれかに自動的に選択される。この場合、時刻3.2秒からおよそ0.2秒遅れて、入力重みα1が1から0に変化していることがわかる(図38A)。このとき、ロール角速度の予測誤差は図35乃至図37の場合に比べて増大しているが、その他のセンサでは低く抑えられている。その結果、位相データ出力もセンサが正常な場合とほぼ同じ波形を再構成できており、歩行運動が継続できている。また時刻6.2秒でセンサ値が正常値に戻った後、およそ0.4秒遅れで、再びロール角速度センサを用いて歩行している。このことから入力重みαを調整することで、センサの故障を判別し、頑健に位相データを生成できていることが判る。
図41と図42に歩行の様子を示す。図41が図35乃至図37に対応する入力重みαの調節がない場合を表し、図42が図38乃至図40に対応する入力重みαの調節がある場合を表している。この例では入力重みαの調節がない場合(図41の場合)、時刻6.2秒で転倒に至っている。これに対し入力重みαの調節を行った場合(図42の場合)、転倒せずに歩行を継続できていることが判る。
また発明者等は複数センサが故障する場合の動力学シミュレーションも行った。時刻3.2秒から1.6秒おきにロール角速度、Y方向加速度、X方向加速度、ピッチ角度、ヨー角速度、Z方向加速度、ピッチ角速度、ロール角度の順でセンサが故障したものと仮定した。ロール角速度ではセンサ故障後、入力重みαが0となり、センサデータを用いずに、予測縮約部102により出力が生成された。これに対し例えばピッチ角速度では入力重みは1のままで故障したセンサデータに追従した。けれども位相データ出力はさほど影響を受けていなかった。これはもともとピッチ角速度はノイズが多く、そのため予測部112の入力情報として重要度が低くなるようにリカレントニューラルネットワークの学習が行われていたため、結果的に入力重み如何にかかわらず、予測誤差の算出に影響を与えなかったものと考えられる。この実験結果から、順次センサが故障したとしても、入力重みを調節することで位相データ出力には大きな乱れが発生せず、ロボットは歩行を継続できることが確かめられた。
次に、ロボット以外の実施の形態について説明する。
機械接点のないブラシレスモータは静音性や寿命に優れており、光ディスクドライブの駆動やエアコンディショナなどに利用されている。ブラシレスモータを駆動するためにはロータの角度を計測し、それに応じてステータコイルに流す電流方向を制御する必要がある。本発明はこのようなブラシレスモータにも適用することができる。以下、典型的なブラシレスモータである3相DCブラシレスモータに本発明を適用した実施の形態について説明する。
図43と図44に3相DCブラシレスモータ600の駆動の原理を示す。中心に回転運動するロータ603が配置され、その周囲に3つのステータコイル601U,601V,601Wが等間隔で配置されている。これら3つのコイルはU,V,W相と呼ばれる。またステータコイル601U,601Vの間には、ホールセンサ602Vが配置され、ステータコイル601V,601Wの間には、ホールセンサ602Wが配置され、ステータコイル601W,601Uの間には、ホールセンサ602Uが配置されている。ホールセンサ602U,602V,602Wは、磁気の強さに比例して連続な電圧を出力する。ロータ603は、N極とS極の2つの永久磁石で構成されており、ロータ603が回転すると、その周りの磁気が変化し、ホールセンサ602U,602V,602Wでは周期的な電圧振動が観測される。
ロータの回転角をφtとおくと、回転を続けるためには回転角φtに依存してステータコイル601U,601V,601Wに流す電流の向きを変える必要がある。この電流の向きが図43と図44に矢印で示されている。図43Aの期間T1のタイミングにおいては、ステータコイル601Uに正相、ステータコイル601Wに逆相の電流が流れ、図43Bの期間T2のタイミングにおいては、ステータコイル601Wに逆相、ステータコイル601Vに正相の電流が流れ、図43Cの期間T3のタイミングにおいては、ステータコイル601Vに正相、ステータコイル601Uに逆相の電流が流れ、図44Aの期間T4のタイミングにおいては、ステータコイル601Uに逆相、ステータコイル601Wに正相の電流が流れ、図44Bの期間T5のタイミングにおいては、ステータコイル601Wに正相、ステータコイル601Vに逆相の電流が流れ、図44Cの期間T6のタイミングにおいては、ステータコイル601Vに逆相、ステータコイル601Uに正相の電流が流れる。
なお、便宜上、磁束の向きがロータ603の中心から外周に向かう場合を正相、中心に向かう場合を逆相としたが、逆に定義してもよい。
図45は、ステータコイル601U,601V,601Wに電流が流れるタイミングと方向をより詳細に表している。時刻t2乃至時刻t8のうち、時刻t2とt3の期間が期間T1に、時刻t3とt4の期間が期間T2に、時刻t4とt5の期間が期間T3に、時刻t5とt6の期間が期間T4に、時刻t6とt7の期間が期間T5に、時刻t7とt8の期間が期間T6に、それぞれ対応する。
図45Aは、ステータコイル601Uに流れるU相の電流を表しており、図45Bは、ステータコイル601Vに流れるV相の電流を表しており、図45Cは、ステータコイル601Wに流れるW相の電流を表している。U相電流としては、時刻t1からt7までの360度の回転角に対応する時間のうちの、時刻t1から時刻t3までの120度に対応する時間、正の電流が流れ、時刻t4からt6までの120度に対応する時間、負の電流が流れる。V相電流としては、時刻t1から時刻t2までの60度に対応する時間、負の電流が流れ、時刻t3からt5までの120度に対応する時間、正の電流が流れ、時刻t6から時刻t7までの60度に対応する時間、負の電流が流れる。W相電流としては、時刻t2から時刻t4までの120度に対応する時間、負の電流が流れ、時刻t5からt7までの120度に対応する時間、正の電流が流れる。すなわち、U相、V相、W相の電流は、位相が120度ずつ順次異なっている。
電流の切り替えは近接するホールセンサ602U,602V,602Wの信号に基づき行われるものとすると、もし1つのホールセンサが故障した場合、ロータ角度を正しく判定することができず、モータ回転を制御することができなくなる。
この系に対して本発明を適用すると、センサデータは3つのホールセンサ602U,602V,602Wの出力値、ロータ603の回転角は位相データと見なすことができ、この写像は図3の認識部81に実行させ、図45に示した回転角と各コイルへの電流値の関係は、図3の生成部82に実行させることができる。
2足歩行運動の実施の形態で述べたとおり、認識部81はたとえセンサが故障した場合でも、ロバストに位相推定ができる。従って本実施の形態の場合で考えると、1つのホールセンサが故障してもロータ回転角の算出をロバストに行うことができる。
予測縮約部102の学習に用いる教師データは、センサ故障がないときの定常回転時のセンサデータを記録しておくことで用意できる。また位相データはセンサデータより計算により求めるか、あるいはモータに外付けした回転角測定手段(例えばロータリーエンコーダ)によって求めることができる。これを教師データとして予測縮約部102を学習すれば、センサ故障に対してロバストな回転角計測が可能であり、結果としてロバストな制御が実現できる。
また回転運動をより効率的に行う場合、進角の調節などが一般に行われる。このような場合であっても進角を調整した位相データをあらかじめ教師データとして用いることで調節できる。これはセンサデータと位相データの写像関係を自由に設計できることの利点である。
また本発明の実施の形態は冗長なセンサデータであっても扱うことが可能である。図46には、2極の永久磁石よりなるロータ663の周囲に、ステータコイル661U,661V,661Wが配置され、さらに、ステータコイル661U,661Wの間に2つのホールセンサ662−1,662−2、ステータコイル661W,661Vの間に3つのホールセンサ662−3,662−4,662−5、ステータコイル661V,661Uの間に2つのホールセンサ662−6,662−7が、それぞれ配置されている3相DCブラシレスモータ651の構成を示している。
複数のセンサの数が多くなるほど、耐故障性に優れたシステムになる。センサの配置されている場所は必ずしも正確でなくてもよい。また、各々のセンサがすべて同じ特性でなくとも良い。なぜなら予測縮約部102がセンサデータと位相データの写像関係を学習するからである。従ってセンサを高い位置精度で配置する必要がなく、またセンサ特性を均一化する必要もないことから、製作コストを低減できる。
さらに、センサはホールセンサである必要はない。例えば人間が列車などの整備点検を行う際には故障判別に音の情報を用いる。ハンマーで叩いたり、走行中に異音がしないか、などである。これと同様に、本発明はセンサのモーダルには依存しないことから、例えばマイクロホンによりモータ作動音を計測し、それを用いて回転角を推定することが原理的に可能である。
従って、本実施の形態により、以下の効果を実現することができる。
(1)多次元の入力データを、より次元の少ない位相データに縮約することで、制御部が設計し易くなる。
(2)ノイズや故障にロバストな位相データの抽出ができる。
(3)入力重みを調整することで未来の位相データ、センサデータを予測することができる。これにより認識部に遅れがある場合でもそれを補償することができる。
(4)センサの種類に制限がないことから、複数のモダリティのセンサデータから位相データを抽出できる。
(5)センサデータの予測を常に行っていることから、あるセンサが故障したとしても、他のセンサから予測データを算出することができる。これにより頑健な制御が可能となる。例えば、従来のZMP(ゼロモーメントポイント)を用いた2足歩行運動制御では、測定される床反力センサからZMPを求め、それを用いて制御しているが、この場合、もし力センサが故障すればすぐに制御は破綻し、ロボットは転倒に至る。これに対し、予測処理と回帰割合調節処理を行えば、力センサが故障したとしても、他の正常なセンサからZMPを算出することが可能であり、制御を継続できる。
(6)予測、縮約処理では、定常的なデータを元に学習を行えば、全センサ次元の予測誤差の絶対値の総和が増大した場合は、センサ故障ではなく、非定常的なデータが入力された場合であると考えることができる。これにより、定常状態と非定常状態の区別が可能となり、それに応じた制御部を構成することができ、それによりロバストな制御が可能となる。例えば、ロボットが定常歩行をしているとき、何らかの障害物に躓き、前のめりに転倒する場合を考える。もし、転倒しかかっている状態をいち早く検知できれば、歩幅を広げて転倒を防止するなどの制御が可能になる。転倒のような、系全体の大局的な変化は個別の個々のセンサ情報からは検知するのが難しいが、全センサの予測誤差を用いれば容易に検知できる。
(1)多次元の入力データを、より次元の少ない位相データに縮約することで、制御部が設計し易くなる。
(2)ノイズや故障にロバストな位相データの抽出ができる。
(3)入力重みを調整することで未来の位相データ、センサデータを予測することができる。これにより認識部に遅れがある場合でもそれを補償することができる。
(4)センサの種類に制限がないことから、複数のモダリティのセンサデータから位相データを抽出できる。
(5)センサデータの予測を常に行っていることから、あるセンサが故障したとしても、他のセンサから予測データを算出することができる。これにより頑健な制御が可能となる。例えば、従来のZMP(ゼロモーメントポイント)を用いた2足歩行運動制御では、測定される床反力センサからZMPを求め、それを用いて制御しているが、この場合、もし力センサが故障すればすぐに制御は破綻し、ロボットは転倒に至る。これに対し、予測処理と回帰割合調節処理を行えば、力センサが故障したとしても、他の正常なセンサからZMPを算出することが可能であり、制御を継続できる。
(6)予測、縮約処理では、定常的なデータを元に学習を行えば、全センサ次元の予測誤差の絶対値の総和が増大した場合は、センサ故障ではなく、非定常的なデータが入力された場合であると考えることができる。これにより、定常状態と非定常状態の区別が可能となり、それに応じた制御部を構成することができ、それによりロバストな制御が可能となる。例えば、ロボットが定常歩行をしているとき、何らかの障害物に躓き、前のめりに転倒する場合を考える。もし、転倒しかかっている状態をいち早く検知できれば、歩幅を広げて転倒を防止するなどの制御が可能になる。転倒のような、系全体の大局的な変化は個別の個々のセンサ情報からは検知するのが難しいが、全センサの予測誤差を用いれば容易に検知できる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
60 制御システム, 61 制御対象, 62 制御部, 71 センサ部, 72 アクチュエータ, 81 識別部, 82 生成部, 101 修正データ生成部, 102 予測縮約部, 103 回帰部, 104 回帰割合調節部, 111 縮約部, 112 予測部
Claims (14)
- ダイナミクスを学習し、制御対象の動作を制御する制御装置において、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成する予測手段と、
前記予測データを回帰する回帰手段と、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成する修正データ生成手段と、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する縮約手段と
を備える制御装置。 - 前記入力データと前記予測データとの予測誤差に基づいて、回帰割合を調節する回帰割合調節手段をさらに備え、
前記修正データ生手段は、前記入力データと前記予測データとを、前記回帰割合に基づいて合成して前記修正データを生成する
請求項1に記載の制御装置。 - 前記縮約手段は、前記制御対象の状態を観測して得られる高次元の観測データである前記入力データを、前記観測データで規定される空間内に表される閉曲線の位置を一義的に特定する次元に縮約する
請求項1に記載の制御装置。 - 前記予測手段と前記縮約手段は、リカレントニューラルネットワークとして一体的に形成されている
請求項1に記載の制御装置。 - 前記回帰割合をαとするとき、前記修正データ生成手段は、前記入力データとαの積と、前記予測データと1からαを減算した値との積の和を演算して前記修正データを生成する
請求項2に記載の制御装置。 - 前記回帰割合調節手段は、前記入力データの次元ごとの前記予測誤差を算出し、着目する次元以外の前記予測誤差を最小化するように、着目する前記回帰割合を調節する
請求項2に記載の制御装置。 - 前記回帰割合調節手段は、前記入力データの予測誤差が基準値以下か、または繰り返し調節回数が基準回数以上になるまで前記回帰割合を調節する
請求項2に記載の制御装置。 - 前記修正データ生成手段は、前記入力データに前記位相データも含めて前記修正データを生成する
請求項2に記載の制御装置。 - 前記予測処理と前記縮約処理を行うパラメータを学習する場合において、前記予測データの目標出力値との誤差の平均二乗誤差に次元ごとに重みを与える重み付加手段をさらに備える
請求項2に記載の制御装置。 - 前記位相データから前記制御対象の所定の位置を指令する指令データを生成する指令データ生成手段をさらに備え、
前記修正データ生成手段は、前記入力データに前記指令データも含めて前記修正データを生成する
請求項2に記載の制御装置。 - 前記指令データ生成手段は、前記指令データに基づいて、前記制御対象を制御する制御データをさらに生成する
請求項10に記載の制御装置。 - 前記修正データ生成手段は、0.5乃至1.0周期の前記修正データを生成する
請求項1に記載の制御装置。 - ダイナミクスを学習し、制御対象の動作を制御する制御装置の制御方法において、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、
前記予測データを回帰し、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する
処理を含む制御方法。 - ダイナミクスを学習し、制御対象の動作を制御するプログラムにおいて、
学習した前記ダイナミクスに基づいて、過去の複数のタイミングの高次元の修正データから、それより後のタイミングの高次元の入力データを予測した予測データを生成し、
前記予測データを回帰し、
前記入力データと回帰された前記予測データとを合成して前記修正データを生成し、
高次元の前記修正データの次元を縮約して、前記入力データより低次元の、前記制御対象の動作を制御するための位相データを生成する
処理をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007148865A JP2008304970A (ja) | 2007-06-05 | 2007-06-05 | 制御装置および方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007148865A JP2008304970A (ja) | 2007-06-05 | 2007-06-05 | 制御装置および方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008304970A true JP2008304970A (ja) | 2008-12-18 |
Family
ID=40233681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007148865A Withdrawn JP2008304970A (ja) | 2007-06-05 | 2007-06-05 | 制御装置および方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008304970A (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019516611A (ja) * | 2016-05-13 | 2019-06-20 | トップ フライト テクノロジーズ, インコーポレイテッド | ハイブリッド発電機システムによって給電される乗客搬送無人航空車両 |
WO2019202900A1 (ja) * | 2018-04-15 | 2019-10-24 | 国立大学法人埼玉大学 | 行動推定装置、行動推定方法、および行動推定プログラム |
JP2019185158A (ja) * | 2018-04-03 | 2019-10-24 | 株式会社Ihi | 冗長系センサ異常判定装置及び制御装置 |
WO2020039646A1 (ja) * | 2018-08-21 | 2020-02-27 | 日本電気株式会社 | 脅威分析システム、脅威分析装置、脅威分析方法および脅威分析プログラム |
JP2020045773A (ja) * | 2018-09-14 | 2020-03-26 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
JP2020181256A (ja) * | 2019-04-23 | 2020-11-05 | Kddi株式会社 | 複数のセンサの時系列の計測値群における欠損値を補完するプログラム、装置及び方法 |
CN112109077A (zh) * | 2019-06-21 | 2020-12-22 | 发那科株式会社 | 学习工具状态的机器学习装置、机器人系统以及机器学习方法 |
US20210065023A1 (en) * | 2019-08-26 | 2021-03-04 | Kabushiki Kaisha Toshiba | Abnormality determination device, learning device, and abnormality determination method |
JP2022023714A (ja) * | 2020-07-27 | 2022-02-08 | トヨタ自動車株式会社 | 教師データ作成装置、教師データ作成方法及びプログラム |
CN114761182A (zh) * | 2019-09-30 | 2022-07-15 | 西门子股份公司 | 机器人控制系统和用于训练所述机器人控制系统的方法 |
WO2022224364A1 (ja) * | 2021-04-20 | 2022-10-27 | 日本電気株式会社 | 設定装置、設定方法および記録媒体 |
-
2007
- 2007-06-05 JP JP2007148865A patent/JP2008304970A/ja not_active Withdrawn
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019516611A (ja) * | 2016-05-13 | 2019-06-20 | トップ フライト テクノロジーズ, インコーポレイテッド | ハイブリッド発電機システムによって給電される乗客搬送無人航空車両 |
JP2019185158A (ja) * | 2018-04-03 | 2019-10-24 | 株式会社Ihi | 冗長系センサ異常判定装置及び制御装置 |
JP7147227B2 (ja) | 2018-04-03 | 2022-10-05 | 株式会社Ihi | 冗長系センサ異常判定装置及び制御装置 |
WO2019202900A1 (ja) * | 2018-04-15 | 2019-10-24 | 国立大学法人埼玉大学 | 行動推定装置、行動推定方法、および行動推定プログラム |
US11787037B2 (en) | 2018-04-15 | 2023-10-17 | University Of Tsukuba | Behavior estimation apparatus, behavior estimation method, and behavior estimation program |
JP7246751B2 (ja) | 2018-04-15 | 2023-03-28 | 国立大学法人 筑波大学 | 行動推定装置、行動推定方法、および行動推定プログラム |
JPWO2019202900A1 (ja) * | 2018-04-15 | 2021-04-22 | 国立大学法人 筑波大学 | 行動推定装置、行動推定方法、および行動推定プログラム |
JP7124873B2 (ja) | 2018-08-21 | 2022-08-24 | 日本電気株式会社 | 脅威分析システム、脅威分析装置、脅威分析方法および脅威分析プログラム |
WO2020039646A1 (ja) * | 2018-08-21 | 2020-02-27 | 日本電気株式会社 | 脅威分析システム、脅威分析装置、脅威分析方法および脅威分析プログラム |
JPWO2020039646A1 (ja) * | 2018-08-21 | 2021-08-10 | 日本電気株式会社 | 脅威分析システム、脅威分析装置、脅威分析方法および脅威分析プログラム |
JP2020045773A (ja) * | 2018-09-14 | 2020-03-26 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
JP2020181256A (ja) * | 2019-04-23 | 2020-11-05 | Kddi株式会社 | 複数のセンサの時系列の計測値群における欠損値を補完するプログラム、装置及び方法 |
JP6994812B2 (ja) | 2019-04-23 | 2022-01-14 | Kddi株式会社 | 複数のセンサの時系列の計測値群における欠損値を補完するプログラム、装置及び方法 |
CN112109077A (zh) * | 2019-06-21 | 2020-12-22 | 发那科株式会社 | 学习工具状态的机器学习装置、机器人系统以及机器学习方法 |
US11526783B2 (en) * | 2019-08-26 | 2022-12-13 | Kabushiki Kaisha Toshiba | Abnormality determination device, learning device, and abnormality determination method |
US20210065023A1 (en) * | 2019-08-26 | 2021-03-04 | Kabushiki Kaisha Toshiba | Abnormality determination device, learning device, and abnormality determination method |
CN114761182A (zh) * | 2019-09-30 | 2022-07-15 | 西门子股份公司 | 机器人控制系统和用于训练所述机器人控制系统的方法 |
CN114761182B (zh) * | 2019-09-30 | 2024-04-12 | 西门子股份公司 | 机器人控制系统和用于训练所述机器人控制系统的方法 |
JP7024829B2 (ja) | 2020-07-27 | 2022-02-24 | トヨタ自動車株式会社 | 教師データ作成装置、教師データ作成方法及びプログラム |
JP2022023714A (ja) * | 2020-07-27 | 2022-02-08 | トヨタ自動車株式会社 | 教師データ作成装置、教師データ作成方法及びプログラム |
WO2022224364A1 (ja) * | 2021-04-20 | 2022-10-27 | 日本電気株式会社 | 設定装置、設定方法および記録媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008304970A (ja) | 制御装置および方法、並びにプログラム | |
KR101100657B1 (ko) | 로봇 장치 및 로봇의 자세 제어 방법 | |
Koditschek et al. | Mechanical aspects of legged locomotion control | |
JP4836592B2 (ja) | ロボット装置及びその制御方法 | |
JP5052013B2 (ja) | ロボット装置及びその制御方法 | |
CN112428278A (zh) | 机械臂的控制方法、装置及人机协同模型的训练方法 | |
Tsuji et al. | Bio-mimetic trajectory generation of robots via artificial potential field with time base generator | |
Wang et al. | Hybrid adaptive control strategy for continuum surgical robot under external load | |
JP6228079B2 (ja) | 移動ロボットの動作目標生成装置 | |
EP3768472A1 (en) | Systems and methods for learning agile locomotion for multiped robots | |
Otis et al. | Determination and management of cable interferences between two 6-DOF foot platforms in a cable-driven locomotion interface | |
Jäntsch et al. | A scalable joint-space controller for musculoskeletal robots with spherical joints | |
Sreenivasa et al. | Walking to grasp: Modeling of human movements as invariants and an application to humanoid robotics | |
Ding et al. | Walking stabilization control for humanoid robots on unknown slope based on walking sequences adjustment | |
Kuehn et al. | Analysis of using an active artificial spine in a quadruped robot | |
Jimenez-Fabian et al. | Online reconfiguration of a variable-stiffness actuator | |
Mihalec et al. | Balance gait controller for a bipedal robotic walker with foot slip | |
JP2009072839A (ja) | 二足歩行ロボットの制御装置および歩容制御方法 | |
Wawrzyński | Reinforcement learning with experience replay for model-free humanoid walking optimization | |
Florez et al. | LWPR-model based predictive force control for serial comanipulation in beating heart surgery | |
Silva et al. | Modeling and simulation of walking robots with 3 dof legs | |
JP2011120786A (ja) | 動作推定装置及び動作補助装置 | |
JP5035005B2 (ja) | 脚式ロボット、その制御方法、その制御システム | |
Chalodhorn et al. | Learning humanoid motion dynamics through sensory-motor mapping in reduced dimensional spaces | |
Lee et al. | Development and walking control of emotional humanoid robot, KIBO |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100907 |