以下、図面を参照しながら本発明の実施形態について詳解する。
A.ロボット装置の構成
図1及び図2には本発明の実施に供される「人間形」又は「人間型」の脚式移動ロボット100が直立している様子を前方及び後方の各々から眺望した様子を示している。図示の通り、脚式移動ロボット100は、胴体部と、頭部と、左右の上肢部と、脚式移動を行なう左右2足の下肢部とで構成され、例えば胴体に内蔵されている制御部(図示しない)により機体の動作を統括的にコントロールするようになっている。
左右各々の下肢は、大腿部と、膝関節と、脛部と、足首と、足平とで構成され、股関節によって体幹部の略最下端にて連結されている。また、左右各々の上肢は、上腕と、肘関節と、前腕とで構成され、肩関節によって体幹部の上方の左右各側縁にて連結されている。また、頭部は、首関節によって体幹部の略最上端中央に連結されている。
制御部は、この脚式移動ロボット100を構成する各関節アクチュエータの駆動制御や各センサ(後述)などからの外部入力を処理するコントローラ(主制御部)や、電源回路その他の周辺機器類を搭載した筐体である。制御部は、その他、遠隔操作用の通信インターフェースや通信装置を含んでいてもよい。
このように構成された脚式移動ロボット100は、制御部による全身協調的な動作制御により、2足歩行を実現することができる。かかる2足歩行は、一般に、以下に示す各動作期間に分割される歩行周期を繰り返すことによって行なわれる。すなわち、
(1)右脚を持ち上げた、左脚による単脚支持期
(2)右足が接地した両脚支持期
(3)左脚を持ち上げた、右脚による単脚支持期
(4)左足が接地した両脚支持期
脚式移動ロボット100における歩行制御は、例えばZMPを安定度判別規範として、あらかじめ下肢の目標軌道を計画し、上記の各期間において計画軌道の修正を行なうことによっても実現される。この場合、両脚支持期では、下肢軌道の修正を停止して、計画軌道に対する総修正量を用いて腰の高さを一定値で修正する。また、単脚支持期では、修正を受けた脚の足首と腰との相対位置関係を計画軌道に復帰させるように修正軌道を生成する。
あるいは、後に詳解するように、脚式移動ロボット100の左右の脚部など、全身の可動部のうち少なくとも一部を、周期的運動を繰り返す振動子として捉えることができる。この場合、センサ出力などに基づいて得られる内部状態と外部環境に応じて振動子の位相を数学的操作により発生させて、機体の周期安定性を実現するとともに、未知の外乱に適応的に対応することができる。
図3には、この脚式移動ロボット100が具備する関節自由度構成を模式的に示している。同図に示すように、脚式移動ロボット100は、2本の腕部と頭部を含む上肢と、移動動作を実現する2本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成された、複数の肢を備えた構造体である。
頭部を支持する首関節(Neck)は、首関節ヨー軸1と、第1及び第2の首関節ピッチ軸2a及び2bと、首関節ロール軸3という3自由度を有している。
また、各腕部は、その自由度として、肩(Shoulder)における肩関節ピッチ軸4と、肩関節ロール軸5と、上腕ヨー軸6、肘(Elbow)における肘関節ピッチ軸7と、手首(Wrist)における手首関節ヨー軸8と、手部とで構成される。手部は、実際には、複数本の指を含む多関節・多自由度構造体である。
また、体幹部(Trunk)は、体幹ピッチ軸9と、体幹ロール軸10という2自由度を有する。
また、下肢を構成する各々の脚部は、股関節(Hip)における股関節ヨー軸11と、股関節ピッチ軸12と、股関節ロール軸13と、膝(Knee)における膝関節ピッチ軸14と、足首(Ankle)における足首関節ピッチ軸15と、足首関節ロール軸16と、足部とで構成される。
但し、エンターティンメント向けの脚式移動ロボット100が上述したすべての自由度を装備しなければならない訳でも、あるいはこれに限定される訳でもない。設計若しくは製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
図4には、脚式移動ロボット100の制御システム構成を模式的に示している。同図に示すように、脚式移動ロボット100は、ヒトの四肢を表現した各機構ユニット30、40、50R/L、60R/Lと、各機構ユニット間の協調動作を実現するための適応制御を行なう制御ユニット80とで構成される(但し、R及びLの各々は、右及び左の各々を示す接尾辞である。以下同様)。
脚式移動ロボット100全体の動作は、制御ユニット80によって統括的に制御される。制御ユニット80は、CPU(Central ProcessingUnit)やメモリなどの主要回路コンポーネント(図示しない)で構成される主制御部81と、電源回路やロボット100の各構成要素とのデータやコマンドの授受を行なうインターフェース(いずれも図示しない)などを含んだ周辺回路82とで構成される。
ここで言う周辺回路82は、機体に搭載される周辺機器類の他、ケーブルや無線を通して接続される外付けの周辺機器、充電ステーション(図示しない)やその他の周辺機器を接続するためのインターフェース・コネクタなどを含むものとする。
図3に示した脚式移動ロボット100は、関節軸毎に回転型アクチュエータを配置し、これらの位置制御に基づいて所望の装置運動を実現する。
頭部ユニット30には、首関節ヨー軸1、首関節ピッチ軸2、首関節ロール軸3の各々の自由度を実現する首関節ヨー軸アクチュエータA1、首関節ピッチ軸アクチュエータA2、首関節ロール軸アクチュエータA3が配設されている。
また、体幹部ユニット40には、体幹ピッチ軸9、体幹ロール軸10の各々の自由度を実現する体幹ピッチ軸アクチュエータA9、体幹ロール軸アクチュエータA10が配置されている。
また、腕部ユニット50R/Lは、上腕ユニット51R/Lと、肘関節ユニット52R/Lと、前腕ユニット53R/Lに細分化されるが、肩関節ピッチ軸4、肩関節ロール軸5、上腕ヨー軸6、肘関節ピッチ軸7、手首関節ヨー軸8の各々の自由度を実現する肩関節ピッチ軸アクチュエータA4、肩関節ロール軸アクチュエータA5、上腕ヨー軸アクチュエータA6、肘関節ピッチ軸アクチュエータA7、手首関節ヨー軸アクチュエータA8が配置されている。
また、脚部ユニット60R/Lは、大腿部ユニット61R/Lと、膝ユニット62R/Lと、脛部ユニット63R/Lに細分化されるが、股関節ヨー軸11、股関節ピッチ軸12、股関節ロール軸13、膝関節ピッチ軸14、足首関節ピッチ軸15、足首関節ロール軸16の各々の自由度を実現する股関節ヨー軸アクチュエータA11、股関節ピッチ軸アクチュエータA12、股関節ロール軸アクチュエータA13、膝関節ピッチ軸アクチュエータA14、足首関節ピッチ軸アクチュエータA15、足首関節ロール軸アクチュエータA16が配置されている。
頭部ユニット30、体幹部ユニット40、腕部ユニット50、各脚部ユニット60などの機構ユニット毎に、アクチュエータ駆動制御用の副制御部35、45、55、並びに65がそれぞれ配置されている。
体幹部40には、加速度センサ95と姿勢センサ96が配設されている。また、左右の脚部の足底60R及び60Lには、1以上の接地確認センサ91及び92と、加速度センサ93及び94がそれぞれ配設されている。また、手先やその他のエンド・エフェクタとなる部位に接触確認(若しくは感圧)センサを配置したりする(図示しない)。接地確認センサ91及び92は、例えば足底に圧力センサを装着することにより構成され、床反力の有無により足底が着床したか否かを検出することができる。
これらのセンサ出力値を環境情報に用いて、振動子へのフィードバック項を生成することができる。例えば、接地確認センサ91及び92に出力に基づいて、例えば両脚支持期、単脚支持期の判定や、さらには振動子としての可動脚の位相φや角周波数ωを推定することができる。
主制御部80は、各センサ91〜93の出力に基づいて、ロボット100の内部状態や外部環境に応じた姿勢安定制御を行なう。より具体的には、副制御部35、45、55、65の各々に対して適応的な制御を行ない、脚式移動ロボット100の上肢、体幹、及び下肢が協調して駆動する。歩行運動中に脚など可動部位の少なくとも一部において周期運動を抽出して、内部状態や外部環境に応じてその位相信号を発生し、この位相信号に基づいて可動部の駆動制御を行なうことにより、姿勢安定制御を行なうことができる。
B.振動子を用いたロボット装置の運動制御
ZMP規範に基づくロボット装置の運動制御方法は、制御工学的手法に基づく簡単化を施した後、解析的に解を求めることが可能であり、汎用性が非常に高い。その反面、ロボット装置及び外部環境とも精緻なモデル化を必要とし、その結果、実際のハードウェアに対する要求精度は非常に高くなる。また、数学的に導出される運動は、見かけの上でも人間の歩行様式とは異なるものとなる。
一方、ヒトを始めとする脚式歩行の生体メカニズムでは、現在実現されているZMP規範の軌道とは異なる形態で、四肢が持つ物理法則を好適に利用し、自然な歩行動作を行なっている。ロボット装置も、このような物理法則を有効に利用することで、精緻なモデルを必要とせず(すなわち低い計算コストで)、より低いアクチュエータの駆動トルクで、且つ高いエネルギ変換効率で、歩行動作を実現することができると思料される。
本発明者らは、以上の問題意識から、運動生理学、脳神経科学、計算機学習の知見を用いて「より人間に近い歩行制御法」について開示する。すなわち、ロボット装置における脚などの可動部位の少なくとも一部を振動子として捉え、歩行やその他の動作を周期運動として扱い、この振動子の位相や振動数を決定又は制御するという形態で歩行動作を制御する。この場合、周期運動が継続することを、ロボット装置の「安定な歩行」とみなすことができる。
振動子を用いたロボット装置の運動制御の原理について、図5及び図6を参照しながら説明する。
ロボット装置全体、あるいは脚部や腕部、腰部、頭部など可動部位の動作は、周期的な運動を行なう振動子として記述される。この振動子は、図5に示すように、定常的に自励発振を行なう。ここで、外部環境の変化などによるフィードバック信号が入力として与えられると、振動子の振幅や周期、位相などが一時的に乱れるものの、やがて図6に示すように、入力信号に対し位相差が固定された発振を行なう出力信号を得ることができる。
このように、入出力間で位相関係が固定されることを、引き込み現象(Entrainment)と呼ぶ。振動子を用いたロボット装置の運動制御においては、外部環境からの信号を用いて引き込み現象を有効に利用し、自律的に調整された振動子の出力位相情報φに基づいて、ロボット装置又はその一部の可動部位に対する制御量Uを得ることができる。
図35には、振動子が持つ引き込み特性を利用したロボットの制御システムの基本的構成を示している。図示のシステムは、神経振動子に基づいて指令値を生成するCPG制御部と、制御対象となるロボットと、神経振動子に対するフィードバック項を与える神経振動子フィードバック信号生成部で構成される。
CPG制御部は、神経振動子と、胴体座標系足先軌道生成部と、逆キネマティクス演算部と、関節指令値生成部を備えている。
神経振動子は、生物の神経系に存在すると言われるリズム発生器に相当する振動子であり、環境に対して引き込み特性を持つが、フィードバック信号なしの状態でも固有振動数で自励発振して、qiを出力する。
胴体座標系足先軌道生成部は、神経振動子の出力qiを、直交胴体座標系から見た足先軌道へ変換(マッピング)する。ここで言う足先軌道としては、位置や速度、力軌道などが考えられるが、以下の説明では位置軌道を扱うことにする。
逆キネマティクス演算部は、生成された足先軌道を実現するための脚部の各関節位置を逆キネマティクス演算により算出する。関節指令値生成部は、得られた関節位置に駆動するための指令値信号を生成して、各関節アクチュエータへ出力する。
実ロボットは、おおまかに言えば、CPG制御部による制御対象として運動を実現するアクチュエータと、運動実行時における物理環境との相互作用を観測するセンサで構成される。
神経振動子フィードバック信号生成部は、実ロボットのセンサから入力される観測値に基づいて、神経振動子へのフィードバック信号higiを生成する。ここで、hiはフィードバック信号giに対するゲインであり、higiはCPG制御部内の神経振動子への入力信号となる。神経振動子が持つ引き込み特性により、qiの発振周波数はgiの発振周波数と同期し、その位相関係は一定値に固定される。すなわち、フィードバック信号に基づいて神経振動子の位相や振動数を決定又は制御することでロボット装置の動作を制御するが、神経振動子はフィードバック信号に対し引き込み現象を持ち、その固有振動数は環境に応じて自律的に調整される。
このようにして、神経振動子は、ロボットのダイナミクスに応じた発振を続けることになり、環境に自律的に適応する枠組みとなる。
なお、実ロボットのセンサから入力される観測値を、どのように神経振動子への適切なフィードバック信号に変換(マッピング)するかという問題がある。学習を用いることで最適化を図るという解決方法があるが、この点の詳細については後述に譲る。
C.振動子の構成
引き込み特性を持つ振動子としては、工学的には、検波回路などに用いられるPLL(Phase Lock Loop)回路などが挙げられる。その他の例として、非線形振動子や位相振動子を挙げることができる。あるいは、非線形微分方程式により記述される神経振動子である松岡オシレータを振動子に用いることもできる。
なお、松岡オシレータに関しては、例えば、Matsuoka, K.著“Sustained oscillations generated bymutually inhibiting neurons with adaption”(Biological Cybernetics,52,pp.345−353(1985))に記載されている。但し、同文献では発振を継続する条件とその波形が例示されているだけであり、脚式移動ロボットの歩行運動などの可動部の周期運動における振動子の位相調整に適用したものではない。
以下では、生物神経系の相互抑制による自励発振を定式化した、松岡オシレータを、脚式移動ロボットの歩行運動に適用する場合について検討する。
図7には、神経振動子の構成例を示している。歩行運動の生成には、一般に2素子型の神経振動子が用いられている。この種の振動子は、以下のように記述される。
ここでu0、u1、v0、v1は内部変数であり、τ0とτ1は時定数、cは定常入力、βは疲労係数、γ01とγ10は素子間結合の重みである。また、gjは神経振動子に対するフィードバック信号、hjはフィードバック・ゲインであり、q1は神経振動子の出力信号である。2つのニューロンが相互抑制結合することで、フィードバック信号なしでも振動子の出力は自励発振する。このとき、出力の振動数と波形は時定数τ0、τ1、振幅は定常入力cにより調節可能であることが数値的に示されている(例えば、M.Williamson著“NeuralControl of Rhythmic Arm Movements”(Neural Networks,Vol.11,issues 7−8,pp.1379−1394(1998)を参照のこと)。
図8には、振動子における入力信号と出力信号の関係を示している。但し、入力信号を点線で、出力信号を実線でそれぞれ描いている。図示のように、出力信号が入力信号に引き込まれていく、すなわち一定の位相差が保たれていく様子が分かる。
十分な振幅で、振動子の固有振動数に近い信号が入力されるとき、引き込み現象によりその入出力間の位相が一定値に固定される。したがって、ロボット装置の状態を記述する神経振動子に対して適切なフィードバック信号gj並びにフィードバック・ゲインhjで入力することで、環境との相互作用に応じた堅牢な制御系を構築することができる(例えば、G.Taga著“Amodel of the neuro−musculo−skeletal system for human locomotion I”(Emergence ofbasic gait,Biological Cybernetics,vol.73,pp.97−111(1995))、並びに、H.Kimura、Y.Fukuoka、T.Mimura共著“DynamicsBased Integration of Motion Adaptation for a Quadruped Robot”(Proc.of 2nd InternationalSymposium on Adaptive Motion of Animals and Machines,ThP−I−2(2003))を参照のこと)。本実施形態において使用する振動子パラメータを以下に示しておく。
例えば、歩行運動そのものを周期運動として捉え、神経振動子のようなもので周期信号を発生し、それを用いて脚部の関節アクチュエータの制御を行なう。このとき、観測される歩行運動の周期的な信号と神経振動子を干渉させることによって引き込み現象が発生し、安定な歩行運動を得ることができる。
ここで、振動子に対するフィードバック系をどのように調整するかという点に技術的課題がある。また、ロボット装置上に複数の振動子が配置された構成では、振動子間の位相関係を調整しなければならない。振動子に対する入力信号としては、センサなどの検出信号から得られる外部環境を扱うことができる(非特許文献4〜6を参照)。しかしながら、実機上で実装可能なセンサ数は限定されており、しかもノイズや遅れを含む。また、過渡状態においては望ましい位相関係が得られない場合も多く、その結果、定常状態でなければ有効なセンサ・フィードバックが得られず、外乱に対する耐性が低い。振動子の位相調整に関しては後述に譲る。
D.振動子の配置
図3及び図4に示したように、本実施形態に係るロボット装置は関節軸毎に回転型アクチュエータを配置し、これらの位置制御に基づいて所望の装置運動を実現するので、直接の制御対象である関節軸毎に振動子を配置することが考えられる。例えば、6自由度の脚に対し関節毎に振動子を定義することもできる。
ところが、このような順動力学での振動子の配置が、振動子の振る舞いを系全体の挙動として理解することを難しくする、という問題がある。すなわち、個々の関節角の動作が作用点としての足部の挙動(接地点や歩幅など)にどれだけ寄与するのか、判りにくい。
このような振動子の配置方法は、ロボット工学的には、順運動学的な配置となり、各振動子の指令は非常に複雑なものとなる。例えば、歩行型ロボットの重心高さを制御する、あるいは脚の接地位置を制御するような特定のタスクを実行する場合、振動子が出力すべき指令は制御目標(すなわち重心高さや接地位置)と座標系が相違するため、振動子特性の設計が直観的に理解し難く、実現が困難である。このため、フィードバック経路が非常に複雑になり、試行錯誤的に多大な時間を要してしまう。
そこで、本実施形態では、逆キネマティクスを導入した振動子の配置を行なうようにしている。制御目標である可動部位に対する基準座標系を設定し、この基準座標系の座標軸毎に可動部位についての振動子を記述する。この場合、振動子の可動部位の状態量に対する引き込み現象により、外乱に対して十分な耐性を持たせることができると同時に、基準座標系における可動部位への指令値を得ることができる。そして、可動部位に対する位置指令を逆キネマティクス演算により、関節角度指令に変換することができる。図35に示した例では、胴体座標系を設定し、神経振動子の出力qiを当該座標系の足先軌道にマッピングし、さらに逆キネマティクス演算により脚部の各関節指令値を算出している。
基準座標系の座標軸毎に可動部位についての振動子を記述するので、ロボット装置が実現する機能に応じた振動子の配置を実現することができる。また、制御目標である可動部位の作用点について振動子を記述するので、振動子の役割を直観的に理解し易い配置となり、振動子のパラメータ調節が容易になる。そして、振動子による可動部位に対する指令値を該当する関節部に対する指令値に変換することで、直接の制御対象である関節部アクチュエータの指令値を得ることができる。したがって、ロボット装置の系全体の力学的特性にも有効に引き込みを行ない、振動子による引き込み現象をより有効に利用することができる。
図9には、XYZ直交座標系により基準座標系が構成され、その軸に沿って振動子を配置した例を示している。すなわち、ロボット装置の自重を支持する動作はZ方向であり、歩を進めるための動作はX方向、左右のバランスを保つための腰揺動はY方向であると機能的に分解することができる。そして、XYZの各方向に振動子φx、φy、φzをそれぞれ配置し、対称性を考慮して左右の脚で合計3個の振動子を使用する。足先姿勢に関しても、同様に基準座標系で考えることができる。
ここで、図9に示した振動子の配置構成をした脚を用いた定常直進歩行について考察する。但し、説明の簡単化のため、足先姿勢は基準姿勢のままであるとする。
絶対空間上に座標系Rworldを設定する。また、ロボットに固定された座標系Rbodyを設定する。ここでは、図10に示すように原点と座標軸をとる。絶対座標系Rworldから見たロボット座標系Rbodyの原点位置を姿勢を以下のように表す。
この場合、ロボット装置に固定された座標系Rbodyから見た左右の足先位置(x, y,z)、並びに姿勢(roll,pitch,yaw)をそれぞれ以下のように表す。但し、記号Lは左、Rは右を意味する。
これら足先位置が与えられたとき、逆キネマティクス演算を用いて関節角を算出することができる。
XZ平面は「矢状面(Sagittal Plane)」であり、YZ平面は「前額面(Lateral Plane)」である。本明細書では、X軸正方向に進むことを前進、X軸負方向に進むことを後進と呼ぶことにする。
E.4素子型神経振動子
歩行運動の生成には、図7に示したように、2素子型の神経振動子が一般に用いられている。このタイプの神経振動子の場合、正弦波(sinφ)を入力すると僅かに遅れを伴った正弦波が出力され、余弦波(cosφ)を入力すると僅かに遅れを伴った余弦波がそのまま出力される。すなわち、定常状態において、入出力間の位相差は一般にさほど大きく取れず、その位相関係も恣意的に可変することはできない。図11には、2素子型神経振動子に時刻2.6秒で正弦波入力した場合の出力の時系列変化を示している。入力に対してわずかな位相遅れを以って出力が引き込まれ、周期も調整されていることが理解できよう。
ここで、所定の位相関係を持つ2つの神経振動子がロボット装置に配置されている場合について考察してみる。これら振動子がともに図7に示した2素子型神経振動子で構成されている場合、位相関係を恣意的に調整することはできない。このため、例えば2つの振動子出力間で90度の位相差が必要であるとすると、あらかじめ90度の位相差を持つ入力信号を各々の振動子に入力することが必要となる(図12を参照のこと)。(振動子出力間で90度の位相差が必要となるケースについては後に詳解する。)
従来、振動子間でゼロあるいは180度以外の所定の位相関係を得るためには、センサ・フィードバックによって調整している(非特許文献4〜6を参照)。しかしながら、必ずしも90度ずれた入力信号が常にセンサから得られるとは限らない。また、これら2つの振動子の間には何の結合もなく、たとえ一方の振動子の周期が調整されたとしても、他方には影響を及ぼさない。また、センサ出力にはノイズや遅れを含むことから、定常状態でなければ有効なセンサ・フィードバックが得られず、外乱に対する耐性が低い。また、実機上で実装可能なセンサ数は限定されていることから、センサ・フィードバックを利用できない場合もある。さらに、試行錯誤的な学習によるフィードバック項の最適化を行なう場合、外乱に対する耐性が低く定常状態を得難いことから、学習に要する試行回数が増大するという問題もある。
そこで、本発明者らは、ロボット装置における可動部の周期運動を引き込み特性により制御する振動子として、従来の2素子型神経振動子に代えて、4素子型神経振動子を適用することを提案する。
図13には、4素子型神経振動子の構成を示している。これは、2素子型神経振動子を直交させて組み合わせ、環状に一方向の抑制結合を導入した構造であり、神経素子の組み(0−1)と(2−3)の各々の出力は90度の位相遅れを持った振動となる。この種の振動子は、以下のように記述される。
ここで、u0、u1、u2、u3、v0、v1、v2、v3は内部変数、τ0、τ1、τ2、τ3は時定数(>0)、cは定常入力(>0)、βは疲労係数(>0)、γ23、γ32、γ01、γ10、γ02、γ30、γ13、γ21は素子間結合の重み(>0)、gj及びgkはフィードバック信号、hj及びhkはフィードバック・ゲイン、q1及びq2はそれぞれの神経振動子からの出力である。
図14には、4素子型神経振動子の出力波形を示している。同図から分かるように、4素子型神経振動子は、センサ信号に頼ることなく、2つの振動子出力q1及びq2に対し構造的に90度の位相遅れを持たせることができる。したがって、あらかじめ90度の位相差を持つ入力信号を各々の振動子に入力することが必要となる運動の制御を行なう場合、4素子型神経振動子は2素子型神経振動子に比べて頑健である。
また、4素子型神経振動子の場合、振動子(0−1)の出力q1と振動子(2−3)の出力q2にそれぞれ重みを付けて線形結合することで、入力に対して任意の位相差を生成することができる。さらに、引き込み特性も2素子型と同様に持つことからセンサ信号に同期させることも可能である。また、2素子間に結合があることから、一方の周期が調節されると他方にも影響を及ぼすことにより、周期を自動調節することが可能である。
フーリエ級数展開では正弦波と余弦波の基底関数があれば任意の周期関数を表現できるということが当業界で知られている。したがって、4素子型の振動子と2素子型の振動子を用意することで、近似的にこれらの基底関数を用意することができ、これらを組み合わせることで、より広範な周期関数を表現することが可能となる。
位相調節可能な振動子として4素子型の神経振動子が既に提案されている(例えば、宮腰清一、多賀厳太郎、國吉康夫共著「神経振動子のパラメータ自動調節機構」(第5回ロボティクスシンポジア予稿集、シーパル須磨(神戸)、ロボティクスシンポジア運営委員会、pp.301−306、2000年)を参照のこと)。しかしながら、これは振り子の励振問題に4素子型神経振動子を適用したものであり、脚式移動ロボットの歩行運動などの可動部の周期運動における振動子の位相調整に適用したものではない。
これに対し、本発明では、可動部の周期運動を引き込み特性により制御する振動子として、任意の位相に調整可能となる4素子型の神経振動子を用いている。4素子型の神経振動子を用いたロボットの運動制御では、神経振動子に対するフィードバック項を学習により最適化する際、その学習の収束性を高めることができ、さらに報酬関数の設定により多様な運動を生成することができる。強化学習については後に詳解する。
F.振動子を用いた2足歩行運動
本実施形態に係るロボット装置は、左右の可動脚を備え、2足歩行を行なう。かかる2足歩行は、一般に、以下に示す各動作期間に分割される歩行周期を繰り返すことによって行なわれる。すなわち、
(1)右脚を持ち上げた、左脚による単脚支持期
(2)右足が接地した両脚支持期
(3)左脚を持ち上げた、右脚による単脚支持期
(4)左足が接地した両脚支持期
要するに、歩行運動は、離散的な接地と支持脚と遊脚の切り替えを周期的に繰り返すことにより実現される。
本実施形態では、基準座標系の座標軸毎に可動部位についての振動子を記述するようにしている。この場合、振動子の可動部位の状態量に対する引き込み現象により、外乱に対して十分な耐性を持つ、基準座標系における可動部位への指令値を得ることができる。このような可動部位に対する位置指令を逆キネマティクス演算により関節角度指令に変換することができる。また、4素子型の振動子と2素子型の振動子を用意することで、近似的にフーリエ級数展開における基底関数を用意することができ、これらを組み合わせることで、より広範な周期関数を表現することが可能となる。図15には、脚式移動ロボットの下肢の座標系と振動子の配置を示している。
歩行運動を矢状面と前額面に分解して検討することは広く一般に用いられる考え方である。以下では、まず始めに、前後進を伴わないその場足踏み、すなわち前額面内での運動にのみ着目する。これに続いて、矢状面内での運動を考え、前後進を伴う歩行運動について述べる。
F−1.前額面内の足踏み運動
前額面(YZ平面)内運動を、さらにZ方向とY方向と独立に分解して考える。Z方向運動は、自重を支える運動と、遊脚のためのクリアランスをとる動きを左右の脚で交互に行なう。足踏み運動は左右対称動作と仮定し、左右で符号反転させた振動子出力に基づいて、左右それぞれの脚への位置指令PL_z及びPR_zを求める。
ここで、Z方向に沿って配置した振動子φzの出力をqzとおき、Z方向初期基準位置をZ0とおく。下式のように、脚Z位置を駆動すれば足踏み運動を生成することができる(図16を参照のこと)。
しかしながら、ロボットの固有振動数と振動子の固有振動数が近い場合、共振により定常的な振動は継続できず、外乱にも弱い。また、振動子の固有振動数が小さい場合、脚を遊脚化できない。そこで、本実施形態では、振動子が定常的な発振を行ない、安定した足踏み動作を継続するため、振動子φzに対し、以下のようなフィードバック系を導入する。
(1)進展反応(Extensor Response)
除脳猫の実験では、脚が進展されているとき、足裏に力が加わるとより強く踏み込むことが知られており、「進展反応」と呼ばれる。このような動作は、鉛直方向床反力を神経振動子に対するフィードバックに用いることにより、実現することができる。計測される左右脚床反力をそれぞれFL_Z、FR_Zとおく。また、ロボットの質量をm、重力加速度をgとおく。このとき、Z方向に沿って配置した振動子φzへのフィードバック信号gERを下式のように設定することができる。なお、フィードバック・ゲインhERの調節を行ない易くなるようにmgで正規化している。
Z方向に沿って配置した振動子φzにより脚Z位置を駆動させて足踏み運動を生成する際、この振動子φzに対し上述したような進展反応を利用したフィードバック系を導入することにより、床反力が大きくなったとき、より脚を踏み込むように動作する。この結果、常に床面からの体幹高さPbody_Zを高く保持することができる。図17にはその様子を示している。
(2)前庭脊髄反応(Vestibulo−spinal Reflex)
生物の神経系には、体幹が傾斜した場合、傾きを止める側の筋肉が進展されることが知られており、これを「前庭脊髄反射」と呼ぶ。体幹のロール方向の傾きθrollに基づくフィードバック信号gVSRを振動子に入力することで、この反射を導入することができる。
ところで、神経振動子はパラメータを調節することにより、大きなフィードバック値が入力された場合に発振を止めることが可能である。図18にはその様子を示している。この性質を利用して、体幹が大きく傾いた場合、発振を一時的に抑制し、重力による復帰モーメントによって転倒を回避することができる。
図36には、ロボット装置の前額面内の足踏み運動を制御するシステム構成例を示している。図示のシステムは、2素子型神経振動子に基づいて指令値を生成するCPG制御部と、制御対象となるロボットと、神経振動子に対するフィードバック項を与える神経振動子フィードバック信号生成部で構成される。
CPG制御部は、神経振動子と、胴体座標系足先軌道生成部と、逆キネマティクス演算部と、関節指令値生成部を備えている。
2素子型神経振動子φzは、胴体座標系Z方向に沿って配置され、環境に対して引き込み特性を持つが、フィードバック信号なしの状態でも固有振動数で自励発振して、qzを出力する。2素子型神経振動子の出力は上式(1)に示した通りである。
胴体座標系足先軌道生成部は、神経振動子の出力qzを、直交胴体座標系から見た左右それぞれの脚部が足踏み運動する際の足先の位置軌道PL_z及びPR_zへ変換(マッピング)する。ここでは、左右脚の対称運動を仮定しており、左右それぞれの脚への位置指令PL_z及びPR_zは上式(7)及び(8)のように変換される。
逆キネマティクス演算部は、生成された足先軌道を実現するための脚部の各関節位置を逆キネマティクス演算により算出する。関節指令値生成部は、得られた関節位置に駆動するための指令値信号を生成して、各関節アクチュエータへ出力する。
神経振動子フィードバック信号生成部は、ロボットが足踏み運動を行なっている際におけるセンサから入力される観測値に基づいて、神経振動子へのフィードバック信号を生成する。ここでは、神経振動子フィードバック信号生成部は、足踏み運動により得られた体幹ロール角度θroll、及び左右脚のZ方向床反力FLz、FRzを入力し、上式(9)及び(10)に示したような、伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをそれぞれ生成し、CPG制御部内の神経振動子へ入力する。前額面内の足踏み運動は、進展反応、前庭脊髄反射のどちらの場合も2素子型神経振動子により駆動される。
神経振動子φzが持つ引き込み特性により、qzの発振周波数はgER及びgVSRの発振周波数と同期し、その位相関係は一定値に固定され、固有振動数は環境に応じて自律的に調整される。
以上、脚式移動ロボットの前額面内の足踏み運動を制御する振動子に対し、2つのフィードバック系gER及びgVSRを導入することによって、ロバストな足踏み運動を実現することができる。図19〜図22には、これらのフィードバック系gER及びgVSRを導入したときのロボットの前額面内における足踏み運動についてのシミュレーション結果を示している。
図19には、定常的な足踏み運動を行なっているとき、時刻0においてY方向の外力を印加した場合の体幹ロール角度θrollの変化を示している。フィードバックがない場合は転倒に至っているが、進展反応及び前庭脊髄反射を導入することにより足踏み運動を継続できることが分かる。
図20には、前額面内で定常的な足踏み運動を行なっているとき、ロボットの重力の15%に相当するY方向の力を0.1秒間だけロボットに印加した場合の挙動を示している。これに対し、進展反応及び前庭脊髄反射を利用したフィードバック系を導入することによって、足踏み運動の周期が延長され、足踏み運動が継続できていることが分かる。
図21には、固有周期に近い0.8秒間の足踏み運動中に、さまざまなタイミングでY方向の力をロボットに印加したとき、ロボット本体は転倒せずに足踏みを継続できる最大の外力の大きさを示している。ここでは、左足を接地したときを位相ゼロと定義し、1周期を横軸にとっている。比較のため、フィードバックなしの正弦波で駆動した場合と、フィードバックなしの神経振動子で駆動した場合を併せて示している。この場合も、進展反応及び前庭脊髄反射を利用したフィードバック系を導入した神経振動子により足踏み運動を行なう場合がより大きな外力に対して耐えられることが分かる。
図22には、より実際的な外乱として床面に段差がある場合を想定し、ロボットが転倒に至らない最大の高さを示している。同図からも、Z方向に沿って配置した神経振動子φzを用いて足踏み運動を行なわせる際、進展反応及び前庭脊髄反射を利用したフィードバック系を導入することの有効性が分かる。
F−2.矢状面内の歩行運動
続いて、YZ平面内の運動に、さらにX方向の脚運動を加えて歩行を生成する場合について考察してみる。
矢状面内運動は、XZ平面で見ると、足先軌道は、楕円のような軌道であれば歩行が可能である。例えば、図23に示すような右回りの楕円軌道を描けば、ロボット装置はX方向に移動することができる。この場合、X方向の運動は、Z方向の運動とは位相が90度だけずれたフィードバック信号が必要である、と本発明者らは理解している。このときの右脚の足先のX座標PR_x及びZ座標PR_zは下式のようになる。但し、a及びbを定数、ψを位相としてパラメータ表示する。また、左右の脚部運動は対称と考え、ここでは記載を省略する。
上式より、X方向の振動にはZ方向の振動と位相が90度ずれた信号が必要となる。以下、定性的に考察をする。図24に示すようにpbody_Rollは振動子φzの出力qzにより片脚を踏み込んだ場合に生じていると考えられる。すなわち、足先位置pbody_Rollと振動子出力qzは同位相で振動していると考えられる。仮にqzが正弦波で駆動されているとするならば、その1階微分は余弦波となり、90度の位相差が得られる。すなわち、pbody_Rollの1階微分は90度の位相差があると予想される。ロボット装置が定常足踏みを行なう際の、体幹のロール方向角速度をシミュレーションから求めると、図25に示すような結果が得られた。
主にZ方向の運動が体幹のロール角度を生じていることから、その1階微分であるロール角速度は位相が90度ずれるものと考えられる。したがって、X方向運動を記述する振動子φxに対するフィードバック信号として、体幹のロール方向の角速度を用いることができる。振動子φxは、体幹のロール角速度を用いて、X方向の運動を引き込む。また、歩行を左右対称な運動であると仮定し、Z方向と同様に、振動子出力を符号反転し、左右対称に駆動する。
矢状面内運動X方向に関して、下式のように振動子φxを配置する。左右脚を交互に踏み出すため、振動子φxの出力qxの符号を左右で反転している。
この場合、Z方向の運動とは位相が90度ずれた信号が必要である。図25から、足底の接地確認センサから得られる床反力の値と体幹のロール方向角速度値はほぼ90度の位相差があることが分かる。そこで、下式に示すように、体幹のロール方向角速度を用いてフィードバック信号gxを生成し、これを神経振動子φxに入力して引き込みを行ない、90度の位相差を生成することができる。
この場合、矢状面内のX方向歩行運動は、下式で表される2素子型神経振動子を用いて記述することができる。
図37には、ロボット装置の歩行運動を制御するシステム構成例を示している。ここでは、前額面内の足踏み運動は既に実現されているものとし、これに矢状面内の運動を重畳する。図示のシステムは、神経振動子に基づいて指令値を生成するCPG制御部と、制御対象となるロボットと、神経振動子に対するフィードバック項を与える神経振動子フィードバック信号生成部で構成される。
CPG制御部は、2素子型神経振動子φx及びφzと、胴体座標系足先軌道生成部と、逆キネマティクス演算部と、関節指令値生成部を備えている。
2素子型神経振動子φx及びφzは、それぞれ胴体座標系X方向及びZ方向に沿って配置され、環境に対して引き込み特性を持つが、フィードバック信号なしの状態でも固有振動数で自励発振する。振動子φxの出力信号qxは上式(15)に示した通りである。
胴体座標系足先軌道生成部は、神経振動子の出力qxを、直交胴体座標系から見た左右それぞれの脚部が前額面内及び矢状面内それぞれの歩行運動を行なう際の足先のZ方向の位置軌道PL_z及びPR_z、並びにX方向の位置軌道PL_x及びPR_zへ変換(マッピング)する。ここでは、左右脚の対称運動を仮定しており、左右それぞれの脚へのZ方向の位置指令は上式(7)及び(8)のように変換され、X方向の位置指令PL_z及びPR_zは上式(12)及び(13)のように変換される。
逆キネマティクス演算部は、生成された足先軌道を実現するための脚部の各関節位置を逆キネマティクス演算により算出する。関節指令値生成部は、得られた関節位置に駆動するための指令値信号を生成して、各関節アクチュエータへ出力する。
神経振動子フィードバック信号生成部は、運動により得られた体幹ロール角度θroll、及び左右脚のZ方向床反力FLz、FRzを入力し、上式(9)及び(10)に示したような、伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをそれぞれ生成し、CPG制御部内の2素子型神経振動子φzへ入力する。
また、神経振動子フィードバック信号生成部は、ロボットが歩行運動を行なっている際にセンサから入力される観測値に基づいて、神経振動子へのフィードバック信号を生成する。ここでは、神経振動子フィードバック信号生成部は、体幹ロール角度θroll、及び左右脚のZ方向床反力FLz、FRzに加えて、体幹ロール角速度を入力し、上式(14)に示したようなフィードバック信号gxを生成し、CPG制御部内の神経振動子φxへ入力信号する。
神経振動子φxが持つ引き込み特性により、qxの発振周波数は、体幹ロール角速度から求まるフィードバック信号gxの発振周波数と同期し、その位相関係は一定値に固定され、固有振動数は環境に応じて自律的に調整される。また、伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをそれぞれ生成して神経振動子φzへ入力すると、神経振動子φzが持つ引き込み特性によりqzの発振周波数がgER及びgVSRの発振周波数と同期することは、前述(図36を参照のこと)と同様である。
ところが、矢状面内の周期運動を制御する神経振動子φxとしてこのような2素子型振動子(図7を参照のこと)を用い、且つ、振動子φxに対するフィードバックをセンサ出力のみに頼った場合には、非定常状態のセンサ出力では適切なフィードバック信号とならず、また、運動学習に要する試行回数が増大するという問題がある(前述)。
そこで、X方向の振動子φxを2素子型神経振動子に代えて、2素子型神経振動子を直交させて組み合わせて構成される4素子型神経振動子(図13並びに図15を参照のこと)を用いることで、このような問題を解決することができる。4素子型の神経振動子は、構造的に各振動子から90度の位相差が得られるようになっているので、センサ・フィードバックのみに頼る必要がない。
図15において、4素子型神経振動子のうち、0と1で示した振動子にはZ方向振動子と同じフィードバック系を導入することで足踏み運動と同期させる。また、2と3で示した振動子には体幹のロール方向角速度をフィードバックする。4素子振動子の特性として、センサ・フィードバックに頼ることなく、図14で示したように90度の位相差を以って発振することから、神経振動子の引き込み現象は容易且つ安定して起こり、その位相関係は強固に固定される。この場合の矢状面内のX方向歩行運動は、下式で表される4素子型神経振動子を用いて記述することができる。
図38には、ロボット装置のX方向の振動子に4素子型の神経振動子を用いた場合の歩行運動を制御するシステム構成例を示している。ここでは、前額面内の足踏み運動は図37に示したシステムにおいて既に実現されているものとし、これに矢状面内の運動を重畳する。図示のシステムは、神経振動子に基づいて指令値を生成するCPG制御部と、制御対象となるロボットと、神経振動子に対するフィードバック項を与える神経振動子フィードバック信号生成部で構成される。
CPG制御部は、4素子型神経振動子φx及び2素子型神経振動子φzと、胴体座標系足先軌道生成部と、逆キネマティクス演算部と、関節指令値生成部を備えている。
4素子型神経振動子φx及び2素子型神経振動子φzはそれぞれ胴体座標系X方向及びZ方向に沿って配置され、環境に対して引き込み特性を持つが、フィードバック信号なしの状態でも固有振動数で自励発振して、qx及びqzを出力する。4素子型の神経振動子の出力は上式(16)にそれぞれ示した通りである。
胴体座標系足先軌道生成部は、神経振動子の出力qxを、直交胴体座標系から見た左右それぞれの脚部が前額面内及び矢状面内それぞれの歩行運動を行なう際の足先のZ方向の位置軌道PL_z及びPR_z、並びにX方向の位置軌道PL_x及びPR_zへ変換(マッピング)する。ここでは、左右脚の対称運動を仮定しており、左右それぞれの脚へのZ方向の位置指令は上式(7)及び(8)のように変換される。また、X方向の位置指令PL_z及びPR_zは、上式(12)及び(13)のように変換される。
逆キネマティクス演算部は、生成された足先軌道を実現するための脚部の各関節位置を逆キネマティクス演算により算出する。関節指令値生成部は、得られた関節位置に駆動するための指令値信号を生成して、各関節アクチュエータへ出力する。
神経振動子フィードバック信号生成部は、運動により得られた体幹ロール角度θroll、及び左右脚のZ方向床反力FLz、FRzを入力し、上式(9)及び(10)に示したような伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRを生成して、CPG制御部内の2素子型神経振動子φzへ入力する。
また、神経振動子フィードバック信号生成部は、ロボットが歩行運動を行なっている際にセンサから観測値として得られた体幹ロール角度θroll、及び左右脚のZ方向床反力FLz、FRz、体幹ロール角速度を入力し、上式(14)に示したようなフィードバック信号gxを生成し、CPG制御部内の4素子型神経振動子φxへ入力信号する。さらに伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをX方向の4素子型神経振動子φxにも入力する点で、図37に示したシステム構成とは相違する。
神経振動子φxが持つ引き込み特性により、qxの発振周波数は、体幹ロール角速度から求まるフィードバック信号gx、並びに伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRの発振周波数と同期し、その位相関係は一定値に固定され、固有振動数は環境に応じて自律的に調整される。また、伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをそれぞれ生成して神経振動子φzへ入力すると、神経振動子φzが持つ引き込み特性によりqzの発振周波数がgER及びgVSRの発振周波数と同期する。
ロボットの歩行における周期運動の制御に4素子型神経振動子を用いた場合、以下のような作用効果を得ることができる。
(1)フィードバック項を試行錯誤的な学習により最適化を行なう際、学習の収束が速くなる。
(2)前額面と矢状面内の脚のX及びZ方向の同期した歩行が可能となる。
(3)センサノイズや遅れに強くなる。
ここで、ロボットの歩行運動における前額面内運動と矢状面内運動の同期の例について示しておく。ロボットの定常直進歩行運動中にY方向への外力を印加した場合について考えてみる。
図26及び図27には、2素子型神経振動子及び4素子型神経振動子をそれぞれ用いてロボットに定常直進歩行運動を行なわせた場合のシミュレーション結果をそれぞれ示している。各図では、時刻6.7秒において、Y方向へ7.5[N](自重の11%)の外力を0.1秒間だけ印加した場合のそれぞれの振動子φx及びφzの出力qx及びqzと、体幹ピッチ角度と、基準姿勢時で正規化した腰の高さを時系列で示している。
外力が印加されることによって、図20で示したように、振動子の周期は大きくなる。このとき、2素子振動子を用いた場合には、Z方向とX方向振動子に直接の結合が無いため、図26中の点Pで示されるように、センサ・フィードバック系に頼ると、非定常状態では周期は十分に調節されない。このため、最終的にロボット装置は転倒に至ってしまう。これに対し、4素子振動子を用いた場合には、図27中の点Qで示されるように、環状の一方向抑制結合によりX方向振動子の周期も自律的に調節されることから、ロボットは歩行を継続できていることが分かる。
F−3.旋回運動への拡張
ここまでは、神経振動子の引き込み特性を利用した2足歩行ロボットの定常的な直進運動制御について説明してきた。ヒューマノイドを始めとする脚式ロボットには、このような直進運動に限らず、多様な移動方向の制御が必要である。そこで、この項では、神経振動子の引き込み特性を利用したロボットの運動制御を3次元の旋回2足歩行運動に拡張した実施形態について説明する。
上述したように、引き込み特性を持つ振動子をタスクに応じた作業座標系方向に配置することにより、2足歩行ロボットの周期的な歩行運動の制御を行なうことができる。歩幅と旋回半径が規定されたときに、幾何学的拘束条件を考慮して脚のヨー回転とy軸位置を定めることによって、歩幅と旋回半径より求められる幾何学的な関係から円弧に沿った旋回歩行を実現することができる。さらに、目標点に向かって到達するように旋回半径を規定することで、目標点への到達運動を実現することができる。また、目標点を複数設定することで、曲線的な経路に沿った歩行運動を行なうこともできる。
ここで、一定の旋回半径で示される円弧に沿った歩行運動を生成する場合について考察してみる。
図39には、2足歩行ロボットが円弧に沿って旋回運動を行なうときの左右の足平の軌道を示している。同図は、旋回歩行を上から見下ろした様子であり、点線の円弧に沿ってロボットの胴体座標系原点が時計回りに旋回歩行しているものとする。旋回半径をRdesiredと定め、時計回りに旋回するときを正方向と定義する。直進の歩幅に比して、円弧の中心に近い側の脚の歩幅を小さく、遠い方の脚の歩幅を大きくする必要がある。また、体幹をヨー軸回りに旋回させるために、脚のヨー軸を回転する必要がある。
直進歩行時の左右脚の歩幅をともにAxとおき、旋回歩行時の左脚と右脚の歩幅をそれぞれAl x及びAr xとおとき、左右脚のY方向の胴体座標系からみた各足平の基準位置をそれぞれyl 0及びyr 0とおく。旋回歩行時の左右それぞれの歩幅は幾何学的に下式(17)、(18)のように定めることができる。
上式より、左脚の歩幅は小さくなり、右脚の歩幅は大きくなる。振動子出力をqxとすると、左右の足先X方向位置pl x及びpr xはそれぞれ下式(19)、(20)のように表される。
次に、体幹をヨー周りに回転させるため、左右の足先ヨー角度をXの関数として円弧に沿うように下式(21)及び(22)のように定める。
また、左右の足先Y方向位置pl y及びpr yは、幾何学的に下式(23)及び(24)のように求められる。
以上から、歩幅Axと旋回半径Rdesiredが規定されたときに、幾何学的拘束条件から左右それぞれの脚の足先のXY位置及びヨー角度を求めることができる。
図40には、ロボット装置のX方向運動を4素子型神経振動子で記述するとともにZ方向運動を2素子型神経振動子で記述して、旋回運動を制御するシステム構成例を示している。図示のシステムは、神経振動子に基づいて指令値を生成するCPG制御部と、制御対象となるロボットと、神経振動子に対するフィードバック項を与える神経振動子フィードバック信号生成部で構成される。
CPG制御部は、4素子型神経振動子φx及び2素子型神経振動子φzと、胴体座標系足先軌道生成部と、逆キネマティクス演算部と、関節指令値生成部を備えている。
4素子型神経振動子φx及び2素子型神経振動子φzはそれぞれ胴体座標系X方向及びZ方向に沿って配置され、環境に対して引き込み特性を持つが、フィードバック信号なしの状態でも固有振動数で自励発振して、qx及びqzを出力する。2素子型神経振動子の出力は上式(1)に、4素子型の神経振動子の出力は上式(13)にそれぞれ示した通りである。但し、φxに4素子型ではなく2素子型の神経振動子を用いて実装することも可能である。
設計者(旋回運動などロボットの動作パターンを作成するデザイナの他、オペレータ、ユーザを含む)は、目標とする歩行速度と旋回半径で歩行するための歩幅Ax並びに旋回半径Rdesiredを陽に設定し、胴体座標系足先軌道生成部に入力する。
胴体座標系足先軌道生成部は、神経振動子の出力qxを、直交胴体座標系から見た左右それぞれの脚部が歩幅Axを以って所定の旋回半径Rdesiredで示される円弧に沿った旋回運動を行なう際の足先のX方向位置軌道pl x及びpr xへ変換(マッピング)する。ここでは、左右それぞれの脚への位置指令pl x及びpr xは上式(19)及び(20)のように変換される。さらに、足先X方向位置に基づいて、上式(21)及び(22)に従って足先ヨー方向の姿勢pl yaw及びpr yawが、上式(23)及び(24)に従って足先Y方向位置pl y及びpr yが決定される。
逆キネマティクス演算部は、生成された足先軌道を実現するための脚部の各関節位置を逆キネマティクス演算により算出する。関節指令値生成部は、得られた関節位置に駆動するための指令値信号を生成して、各関節アクチュエータへ出力する。
神経振動子フィードバック信号生成部は、ロボットが旋回運動を行なっている際のセンサからの観測値に基づいて、神経振動子へのフィードバック信号を生成する。ここで、神経振動子フィードバック信号生成部は、体幹ロール角度θroll、及び左右脚のZ方向床反力FLz、FRz、体幹ロール角速度を入力し、上式(14)に示したようなフィードバック信号gxを生成し、CPG制御部内の神経振動子φxへ入力信号する。
神経振動子φxが持つ引き込み特性により、qxの発振周波数はフィードバック信号gx、gER及びgVSRの発振周波数と同期し、その位相関係は一定値に固定され、固有振動数は環境に応じて自律的に調整される。
また、神経振動子フィードバック信号生成部は、伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをそれぞれ生成し、CPG制御部内の神経振動子φzへ入力する。そして、神経振動子φzが持つ引き込み特性によりqzの発振周波数がgER及びgVSRの発振周波数と同期する(前述並びに図36を参照のこと)。
本発明者らは、位置(0,0)よりX方向性に向かって歩行を開始した場合のロボットの重心軌跡について計算機シミュレーションを行なってみた。ここでは、直進時の歩幅Axを0.015メートルと規定し、旋回半径Rdesired=−0.3メートル、0.5メートル、1.0メートルのそれぞれに設定した(但し、反時計回りなので、符号はマイナスとしている)。なお、上式(23)及び(24)の右辺第2項は微小であるから無視した。
図41には、位置(0,0)よりX方向性に向かって歩行を開始した場合のロボットの重心軌跡の計算機シミュレーション結果を示している。同図をみると、与えた旋回半径とほぼ同じ大きさで一定の曲率半径で旋回運動が実現できていることが確かめられる。足先ヨー角度をXの関数として円弧に沿うようにして体幹をヨー回りに回転させるようにしたので、前額面内運動と矢状面内運動は分離不能となるが、この場合であっても、神経振動子の引き込み特性により歩行を継続することが可能となる。
上述したように、神経振動子の引き込み特性を利用してロボットの旋回運動制御が可能となるとき、さらに、目標点に向かって到達するように旋回半径を規定することで、目標点への到達運動を実現することができる。
本発明者らは、上記の旋回歩行を用いて、目標地点へ移動するロボットの運動制御の計算機シミュレーションを行なってみた。ここでは、絶対座標系において、到達目標位置及びロボットの重心位置・姿勢が計測可能であると仮定する。また、図42に示すように、ロボットの現在の進行方向と目標地点のなす角をθsteeringとし、目標地点までの距離をDとおくと、このときの旋回半径Rdesiredは下式(25)又は(26)のように決定することができる。
ここで、K1、K2は定数であり、K2は旋回運動が直進歩行と近似できる十分大きな値とする。また、目標到達点付近では、歩行速度を小さくし目標到達精度を向上させるため、調節の閾値をDthとして歩幅Axを下式(27)又は(28)を用いて調節する
上式において、cはX方向に配置された神経振動子の定常入力項であり、その振動子出力qxの振幅とcの間には線形関係があることが知られていることから、歩幅Axを調整することと等価な効果がある。
また、歩行開始時の急激な加速による転倒を防ぐため、下式(29)又は(30)に従って歩幅を調整する。ここで、tは歩行開始からの経過時間、tinitは加速時間を規定する定数である。
図43には、ロボット装置のX方向運動を4素子型神経振動子で記述するとともにZ方向運動を2素子型神経振動子で記述して、旋回運動を利用した目標地点への歩行を制御するシステム構成例を示している。図示のシステムは、図40に示したシステム構成とほぼ同一である。図40に示した旋回運動制御においては、設計者が陽に設定した歩幅Ax並びに旋回半径Rdesiredを胴体座標系足先軌道生成部に入力することで、目標とする歩行速度と旋回半径による歩行運動を制御する。これに対し、図43に示したシステムでは、ロボットの現在の進行方向と目標地点のなす角θsteeringと目標地点までの距離Dから、上式(25)〜(30)を用いて歩幅Ax並びに旋回半径Rdesiredを自動的に設定するアルゴリズムが導入され、該アルゴリズムの出力を胴体座標系足先軌道生成部に入力するように構成されている。
図44〜図49には、目標地点へ移動するロボットの運動制御の計算機シミュレーションを行なったときのロボットの重心軌跡を示している。+字記号で示した点が目標到達点であり、目標到達点を変更しながら合計で6回の試行を行なった。位置(0,0)から歩行を開始し、X方向におよそ0.25メートルだけ歩行した後、上述した旋回運動による目標地点への移動の制御方法を導入した、6回行なったすべての指向において目標値点に到達できていることが確認される。また、目標地点に近くなるに従い、前進速度が低下していることを、重心軌跡から理解することができよう。すべての場合で、0.01メートルを下回る目標到達精度を実現することができた。
このように、目標点に向かって到達するように旋回半径を規定することで、目標点への到達運動を実現することができる。さらに、最終的な目的地に至る途中で複数の目標点を順次設定して各目標点間の歩行を旋回運動で実現し、これらの旋回運動を接続することで複雑な歩行経路を指定して、曲線的な経路に沿った歩行運動を行なうこともできる。
図50には、複数の目標点を順次設定して各目標点間の旋回歩行により星型の経路を歩行させた場合の計算機シミュレーション結果を示している。同図から、想定した通りの経路を歩行することが可能であることが理解できよう。障害物回避動作など、より高次の指令に対応することも可能である。なお、図示の例では、目標到達点付近での歩幅調整は行なっていない。
G.神経振動子を用いたロボットの歩行運動制御と学習との組み合わせ
X方向振動子へのフィードバック項gxは上式(14)で示される体幹ロール角速度の線形フィードバックを直感的に用いたが、この項が最適であるとは限らない。そこで、学習を用いることで、振動子へのフィードバック項の最適化を図る。また、計算機シミュレーションと実機とではモデル化誤差があり、シミュレーション上で獲得されたフィードバックがそのまま実機に適用できるとは限らない。以下では、そのような場合であっても、シミュレーションのモデル化誤差を吸収するため実機上で追加学習を行なうことができることを説明する。
通常の学習ではすべての状態量を入力として学習を行なう。これに対し、ロボットの場合は多自由度、多次元であり、すべての状態量を扱うことが困難である。このため、一部の限られた観測可能な状態量から学習することが可能な学習法が適用される。
前項Fでは、X方向とZ方向の運動とで位相が90度ずれた信号が必要であることを述べた。ここで、上式(14)で示した歩行のためのフィードバック系(体幹ロール角速度を用いた神経振動子へのフィードバック)は、直観的に求めたものであり、最適であるとは限らない。そこで、4素子型神経振動子を用いた歩行制御と強化学習(Reinforcement Learning)とを組み合わせることで、最適化を図る。
ここでも、歩行運動を矢状面内運動と前額面内運動に分離できるものと考える。前額面内運動は前述の足踏み運動をそのまま用い、矢状面内運動はX方向に配置した神経振動子φxへのフィードバック項gxを学習する。この学習には、強化学習の一手法である方策勾配法を用いることにする。学習アルゴリズムへの入力は、体幹ロール角速度と体幹ピッチ角速度の2次元とし、出力はX方向に配置した神経振動子へのフィードバック項とする(図28を参照のこと)。
強化学習の一手法である方策勾配法を用いて、体幹ロール角速度及び体幹ピッチ角速度を入力し、フィードバック・ゲインhxも含めたフィードバック項を出力とする非線形マッピングfを獲得する。これにより、直観的に求めた式(14)を最適化することができる。すなわち、以下に示す4素子型神経振動子のフィードバック項gxを学習する。
多自由度のロボットの挙動を2次元の状態量に集約していることから、通常の機械学習の枠組みでは収束させることは一般に難しいと考えられる。これに対し、強化学習の一手法である方策勾配法によれば、このような部分観測マルコフ決定過程問題も扱うことができる、ということが当業界で知られている。
図51には、ロボット装置のX方向の振動子に4素子型の神経振動子を用いた場合の直進歩行運動の制御(図38を参照のこと)に対し、X方向振動子φxのフィードバック項gxを強化学習する仕組みを導入したシステム構成例を示している。ここでは、前額面内の足踏み運動は図37に示したシステムにおいて既に実現されているものとし、これに矢状面内の運動を重畳する。図示のシステムは、神経振動子に基づいて指令値を生成するCPG制御部と、制御対象となるロボットと、神経振動子に対するフィードバック項を与える神経振動子フィードバック信号生成部で構成される。
CPG制御部は、4素子型神経振動子φx及び2素子型神経振動子φzと、胴体座標系足先軌道生成部と、逆キネマティクス演算部と、関節指令値生成部を備えている。
4素子型神経振動子φx及び2素子型神経振動子φzはそれぞれ胴体座標系X方向及びZ方向に沿って配置され、環境に対して引き込み特性を持つが、フィードバック信号なしの状態でも固有振動数で自励発振して、qx及びqzを出力する。
胴体座標系足先軌道生成部は、神経振動子の出力qxを、直交胴体座標系から見た左右それぞれの脚部が前額面内及び矢状面内それぞれの歩行運動を行なう際の足先のZ方向の位置軌道PL_z及びPR_z、並びにX方向の位置軌道PL_x及びPR_zへ変換(マッピング)する。ここでは、左右脚の対称運動を仮定しており、左右それぞれの脚へのZ方向の位置指令は上式(7)及び(8)のように変換され、X方向の位置指令PL_z及びPR_zは上式(12)及び(13)のように変換される。
逆キネマティクス演算部は、生成された足先軌道を実現するための脚部の各関節位置を逆キネマティクス演算により算出する。関節指令値生成部は、得られた関節位置に駆動するための指令値信号を生成して、各関節アクチュエータへ出力する。
神経振動子フィードバック信号生成部は、体幹ロール角度θroll、及び左右脚のZ方向床反力FLz、FRzを入力し、上式(9)及び(10)に示したような伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRを生成して、CPG制御部内の2素子型神経振動子φzへ入力する。
また、神経振動子フィードバック信号生成部は、ロボットが歩行運動を行なっている際のセンサから入力される観測値である体幹ロール角度θroll、及び左右脚のZ方向床反力FLz、FRz、体幹ロール角速度及び体幹ピッチ角速度を入力し、上フィードバック信号gxを生成し、CPG制御部内の4素子型神経振動子φxへ入力信号する。さらに伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをX方向の4素子型神経振動子φxにも入力する。
ここで、X方向のフィードバック信号gxは、体幹ロール角速度の単純な線形マッピングが最適であるとは限らない。このため、神経振動子フィードバック信号生成部内では、X方向の神経振動子φxのフィードバック信号gxを強化学習により獲得して、最適化を行なう。なお、ゲインを含めて学習を行なうので、hxは不要となる。一方、Z方向神経振動子φzに対するフィードバック信号は、図38に示したと同様に、単純な線形フィードバックを用いている。
神経振動子φxが持つ引き込み特性により、qxの発振周波数は、体幹ロール角速度から求まるフィードバック信号gx、並びに伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRの発振周波数と同期し、その位相関係は一定値に固定され、固有振動数は環境に応じて自律的に調整される。また、伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをそれぞれ生成し、CPG制御部内の神経振動子φzへ入力し、神経振動子φzが持つ引き込み特性によりqzの発振周波数がgER及びgVSRの発振周波数と同期する。
強化学習は、試行錯誤を通じて環境に適応することに特徴がある学習であり、教師付き学習とは異なり状態入力に対する正しい行動出力を明示的に示す教師が存在しない代わりに、報酬というスカラを手がかりに学習する。報酬にはノイズや遅れがあるため、行動を実行した直後の報酬を見るだけでは、学習主体の行動の正否を判断することはできない。強化学習は、不確実性のある環境を扱える点や、報酬に遅れが存在し、離散的な状態遷移で段取り的な制御規則を必要とする問題にも適用できる点に特徴がある。
強化学習のメカニズムは、学習主体としての学習器と、制御対象となる環境で構成される。学習器は、時刻tにおいて環境の状態観測S(t)及び報酬r(t)に応じて意思決定を行ない、行動を出力する。上記の神経振動子に対するフィードバック信号の強化学習を行なう場合、状態観測はセンサ出力であり、行動出力はフィードバック信号gxに相当する。学習器が出力する行動により、環境は次時刻S(t+1)へ状態遷移し、その遷移に応じた報酬r(t+1)を学習器に与える。そして、学習器は、報酬r(t)の1試行中の総計を最大化することを目的として、状態観測から行動出力へのマッピングすなわち政策(policy)を獲得する。
図52には、神経振動子フィードバック信号生成部内の学習器と、制御対象としてのロボットとの関係を示している。図示の学習システムにおける強化学習の手順について以下に説明する。
まず、Actorと呼ばれる行動価値関数が何らかのフィードバック信号gxを出力し、これがX方向の神経振動子φxに入力されてX方向の振動が調整され、qxが規定される。この出力に従ってロボットの脚関節が駆動され運動が生成される。このとき得られる体幹ロール及びピッチ角速度を学習器に入力する状態ベクトルsとする。また、報酬r(t)は下式(33)より算出される。
Criticは、状態ベクトルsと報酬r(t)の情報を用いて、その行動の価値を価値関数Vwc(t)を用いて算出する。価値関数Vwc(t)は、現在の報酬のみならず、この行動を継続した場合に得られる未来までの価値の総和を予測する。
価値関数Vwc(t)の予測からのずれ量がTemporalDifference Error(TD−error)、δ(t)と呼ばれる。その予測が正しければδ(t)はゼロとなる。逆にδ(t)がゼロでない場合は、予測が正しくない訳であるから、価値関数をδ(t)を用いて正しい予測ができるよう、価値関数内部のパラメータwcを更新する。
また、Actorと呼ばれる行動価値関数は、状態ベクトルsと予測からのずれ量δ(t)の情報を用いて、より高い価値が得られるよう行動価値関数内部のパラメータwμとwσを更新し、新たなgxを出力する。
このようなループを繰り返すことにより強化学習が実行され、フィードバック信号gxは最適化される。
続いて、シミュレーションにより学習の効能について検討する。学習試行のシーケンスは以下の通りである。
(1)前述の線形フィードバック(式(14))を用いて、定常歩行させる。
(2)所定の時刻で線形フィードバックを停止し、同時に学習を開始する。
(3)腰の高さが一定値以下になったら転倒とみなし、試行を打ち切る。
(4)20秒間転倒せずに歩行を継続できたら、成功とみなし、次の試行を行なう。
歩行による移動速度は、より現実を反映するように、「体幹の接地脚に対する相対速度」と定義する。この移動速度を、ローパス・フィルタを通して使用する。移動速度に関する重みβを大きくすれば、より速く移動する歩行が獲得される。
図29及び図30には、2素子型神経振動子及び4素子型神経振動子をそれぞれ用いたロボットの歩行運動制御において、体幹ロール角θrollを時間で1次微分した体幹ロール角速度と体幹ピッチ角θpitchを時間で1次微分した体幹ピッチ角速度の2次元を入力とし、X方向に配置した神経振動子へのフィードバック項gxを学習する計算機シミュレーションを行なった際の学習曲線を示している。
2素子型神経振動子を用いた場合、図29に示すように、学習アルゴリズムへの入力値の初期条件(S(t0))を4回変えて試行した結果、初期条件3のときのみ収束し、その試行回数はおよそ400回程度であった。これに対し、4素子型神経振動子を用いた場合、同様に4つの初期条件すべてについて試行してみたが、図30に示すように、いずれの条件でも学習を収束させることが可能であり、これらの試行回数は50〜200程度であった。これは、2素子の場合に比しておよそ13%〜50%程度の試行回数であり、計算時間も大きく短縮されることが分かる。
図31には、4素子振動子を用いて獲得されたCritic及びActorを示している。同図左において、四角で示される箇所は、ロボットの歩行時に得られる角速度の軌跡を表している。定常的な軌道を描いていることから(定常的な軌跡では価値関数が大きい)、歩行が継続されていることが分かる。また、同図右は行動出力uの分布を表している。出力飽和関数を介してgxとして神経振動子φxにフィードバックされる。
行動の中間出力uは、下式(24)に示すように、最大値をgx maxとする飽和関数を通してgxに変換される(例えば、本出願人に既に譲渡されている特開2005−288594号公報を参照のこと)。
図31より、縦方向(すなわち、ピッチ角速度)にはあまり変化が見られず、横方向(すなわち、ロール角速度)に応じて出力値が変わっていることが分かる。ロール角速度が−0.7〜0.7の範囲では、ロール角速度を関数としてほぼ線形に出力uが変化している。したがって、獲得されたフィードバックは直観的に求めた式(14)の結果と矛盾しない。すなわち、生成される脚軌道も、図23で示した望ましい位相関係で脚軌道が生成されているということを理解できよう。
4素子振動子を用いて獲得された制御器を用いて実機で実験を行なったところ、シミュレーションとのモデル化誤差からそのままでは転倒する場合も観察された。そこで、実機により追加学習を行なうことで、より確実に歩行できるように改善する。
図32には、実機による結果を示している。同図から分かるように、試行回数が増加するに連れ、高い総報酬を得るよう方策が改善していることが理解できよう。なお、実機とシミュレーションでは報酬の計測方法そのものが異なることから、総報酬の絶対値そのものは意味がないことを注記しておく。
なお、ここで示した報酬関数はあくまで一例である。例えば、消費エネルギを罰として与えることで、より移動効率の高い歩行を得ることができる。
また、ヨー回りの目標角速度を与え、その誤差を罰として与えると旋回するための歩行が得られると考えられる。
勿論、これらの組み合わせでも良い。強化学習と組み合わせることで、抽象的な高次レベルでのフィードバック項の最適化が可能であるところが大きな利点である。
また、神経振動子のフィードバック項に対する強化学習は、定常直進歩行だけでなく旋回歩行時の運動制御においても導入することができる。図53には、ロボット装置のX方向運動を4素子型神経振動子で記述するとともに、Z方向運動を2素子型神経振動子で記述して所定の旋回半径の円弧に沿った旋回運動制御(図40を参照のこと)に対し、X方向振動子φxのフィードバック項gxを強化学習する仕組みを導入したシステム構成例を示している。図示のシステムは、神経振動子に基づいて指令値を生成するCPG制御部と、制御対象となるロボットと、神経振動子に対するフィードバック項を与える神経振動子フィードバック信号生成部で構成される。
CPG制御部は、4素子型神経振動子φx及び2素子型神経振動子φzと、胴体座標系足先軌道生成部と、逆キネマティクス演算部と、関節指令値生成部を備えている。
4素子型神経振動子φx及び2素子型神経振動子φzはそれぞれ胴体座標系X方向及びZ方向に沿って配置され、環境に対して引き込み特性を持つが、フィードバック信号なしの状態でも固有振動数で自励発振して、qx及びqzを出力する。2素子型神経振動子の出力は上式(1)に、4素子型の神経振動子の出力は上式(13)にそれぞれ示した通りである。
目標とする歩行速度と旋回半径で歩行するための歩幅Ax並びに旋回半径Rdesiredが陽に設定されると、胴体座標系足先軌道生成部は、神経振動子の出力qxを、直交胴体座標系から見た左右それぞれの脚部が歩幅Axを以って所定の旋回半径Rdesiredで示される円弧に沿った旋回運動を行なう際の足先のX方向位置軌道pl x及びpr xへ変換(マッピング)する。ここでは、左右それぞれの脚への位置指令pl x及びpr xは上式(19)及び(20)のように変換される。さらに、足先X方向位置に基づいて、上式(21)及び(22)に従って足先ヨー方向姿勢pl yaw及びpr yawが決定され、上式(23)及び(24)に従って足先Y方向位置pl y及びpr yが決定される。
逆キネマティクス演算部は、生成された足先軌道を実現するための脚部の各関節位置を逆キネマティクス演算により算出する。関節指令値生成部は、得られた関節位置に駆動するための指令値信号を生成して、各関節アクチュエータへ出力する。
神経振動子フィードバック信号生成部は、ロボットが旋回運動を行なっている際のセンサからの観測値に基づいて、神経振動子へのフィードバック信号を生成する。ここでは、神経振動子フィードバック信号生成部は、体幹ロール角度θroll、及び左右脚のZ方向床反力FLz、FRz、体幹ロール角速度、体幹ピッチ角速度を入力し、強化学習によりフィードバック信号gxを生成し、CPG制御部内の神経振動子φxへ入力信号する。
また、神経振動子フィードバック信号生成部は、伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをそれぞれ生成し、CPG制御部内の神経振動子φzへ入力する。
旋回運動においても、X方向のフィードバック信号gxは、上式(14)で示すような体幹ロール角速度の単純な線形マッピングを用いることが最適であるとは限らない。そこで、上述した直進歩行運動の場合と同様に、神経振動子フィードバック信号生成部内では、X方向の神経振動子φxのフィードバック信号gxを強化学習により獲得して、最適化を行なう。なお、ゲインを含めて学習を行なうので、hxは不要となる。一方、Z方向神経振動子φzに対するフィードバック信号は、図38に示したと同様に、単純な線形フィードバックを用いている。
神経振動子φxが持つ引き込み特性により、qxの発振周波数は、体幹ロール角速度から求まるフィードバック信号gx、並びに伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRの発振周波数と同期し、その位相関係は一定値に固定され、固有振動数は環境に応じて自律的に調整される。また、伸展反応及び前提脊髄反射を模した線形フィードバック信号gER及びgVSRをそれぞれ生成し、CPG制御部内の神経振動子φzへ入力し、神経振動子φzが持つ引き込み特性によりqzの発振周波数がgER及びgVSRの発振周波数と同期する。
図53に示したシステム構成によれば、旋回運動の神経振動子φxへのフィードバック項gを強化学習することができる。学習の枠組みは直進歩行と全く同じものを用いることができるが、この場合の学習器は旋回脚軌道を環境の変化とみなすことになる。直進歩行と旋回歩行のどちらの場合でも、学習アルゴリズムを変更する必要はなく最適化を図ることができるのは、大きな利点である。
図54には、歩幅Axを0.015メートル、旋回半径Rdesiredを0.3メートルに設定して神経振動子へのフィードバック項を強化学習で獲得する計算機シミュレーションを行なったときの学習曲線を示している。図示の例では、およそ300階の試行で旋回歩行が獲得されていることが分かる。総計45回の計算機実験を行なったところ、およそ80%の確率で旋回歩容が獲得された。
また、本発明者らは、歩幅Axを0.015メートル、旋回半径Rdesiredを0.3、0.5、1.0メートルにそれぞれ規定したときに、神経振動子へのフィードバック項を強化学習で獲得する計算機シミュレーションを試みた。図55〜図57には、それぞれの場合に獲得された行動の中間出力uを示している。また、これらの比較として、旋回半径が∞に相当する直進歩行の場合の結果を図58に示す。各図において、中間出力uが最大又は最小のピークとなる点を点線で結んでいる。
直進の場合は(図58を参照のこと)、点線が水平であることから、体幹ピッチ角速度に対して対称な出力になっている。これに対し、旋回半径Rdesiredが小さくなるにつれ、点線が徐々に傾きを持つようになることが分かる。これは、旋回半径Rdesiredが小さくなるに従い、体幹のヨー軸回りの回転の効果を無視することができなくなり、前額面と矢状面の運動の分離ができなくなることによるものと考えられる。実際、シミュレーションの様子を見ると、直進運動の場合と異なり、旋回歩行運動の場合、ピッチ方向への振動をより大きく生成している。しかしながら、この場合であっても、学習器は環境に応じて適切なフィードバック項を獲得することができるを示している。
また、図55〜図57では、獲得されたフィードバック出力は、異なる旋回半径Rdesiredであっても、概ね体幹ロール角速度に依存した傾向を示している。したがって、目標旋回半径が連続的に変化するような場合であっても、事前に求められた幾つかのフィードバック項を適切な重みで線形結合して重ね合わせることで対応することが可能と考えられる。具体例として、ここでは実験を行なわなかった旋回半径Rdesired=0.4メートルに対するフィードバック項は、Rdesired=0.3メートル及びRdesired=0.5メートルのフィードバック項を適切な重みで線形結合することで得ることができる。
また、本発明者らは、計算機シミュレーションにより獲得された神経振動子へのフィードバック項を実機に実装して検証してみた。その結果、およそ60%が実機歩行可能であった。残り40%あまりで歩行が実現できなかった原因はシミュレータのモデル化誤差によるものと考えられる。このような場合であっても、実機を用いて追加学習を行なうことができる。何故ならば、学習アルゴリズム自身は演算量が小さいことから、実機環境を用いてオンラインで学習を行なうことができるからである。
図59には、計算機シミュレーションで得られたフィードバック制御器を初期値として用い、実機環境下で追加学習を行なった結果を示している。同図において、横軸は試行回数、縦軸は1回の試行で獲得された総報酬を示している。追加学習開始直後には転倒していたが、およそ100回の試行でフィードバックが改善され、継続的な歩行を実現することができた。
追加学習を行なえば、計算機シミュレーションと実機のモデル化誤差を吸収することができる。また、シミュレーション上では学習していない未知の歩行面、例えば傾斜や段差のある環境においても、適応的に歩行パターンを学習することができる。
H.他の運動への適用
図33に示すように、2関節ロボットのアームを用いてクランクを廻すタスクを考える。振動子を関節に配置するのではなく、作業座標系に沿って配置する。このようにした場合、2素子振動子と4素子振動子を組み合わせて用い、図34に示すように配置することで、タスクに応じた位相差を振動子結合の構造として生成することができる。