以下、図面を参照しながら本発明の実施形態について詳解する。
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が上述したすべての自由度を装備しなければならない訳でも、あるいはこれに限定される訳でもない。設計・製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
なお、本実施形態に係る脚式移動ロボット100は、腰部位置に重心が設定されており、姿勢安定制御の重要な制御対象点であるとともに、装置の「基体」を構成する。
図4には、脚式移動ロボット100の制御システム構成を模式的に示している。同図に示すように、脚式移動ロボット100は、ヒトの四肢を表現した各機構ユニット30、40、50R/L、60R/Lと、各機構ユニット間の協調動作を実現するための適応制御を行なう制御ユニット80とで構成される(但し、R及びLの各々は、右及び左の各々を示す接尾辞である。以下同様)。
脚式移動ロボット100全体の動作は、制御ユニット80によって統括的に制御される。制御ユニット80は、CPU(Central Processing Unit)やメモリなどの主要回路コンポーネント(図示しない)で構成される主制御部81と、電源回路やロボット100の各構成要素とのデータやコマンドの授受を行なうインターフェース(いずれも図示しない)などを含んだ周辺回路82とで構成される。
ここで言う周辺回路82は、機体に搭載される周辺機器類の他、ケーブルや無線を通して接続される外付けの周辺機器、充電ステーション(図示しない)やその他の周辺機器を接続するためのインターフェース・コネクタなどを含むものとする。
本発明を実現する上で、この制御ユニット80の設置場所は特に限定されない。図4では体幹部ユニット40に搭載されているが、頭部ユニット30に搭載してもよい。あるいは、脚式移動ロボット100外に制御ユニット80を配置して、脚式移動ロボット100本体とは有線若しくは無線で交信するようにしてもよい。
図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が配置されている。
各関節に用いられる回転型アクチュエータA1、A2、A3…は、より好ましくは、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニット内に搭載したタイプの小型アクチュエータ・モータで構成される。この種のACサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開2000−299970号公報に開示されている。各関節アクチュエータには、モータ・トルクを検出するトルク・センサや、回転位置若しくは関節位置を検出する角度・位置センサがそれぞれ配設されている。
頭部ユニット30、体幹部ユニット40、腕部ユニット50、各脚部ユニット60などの機構ユニット毎に、アクチュエータ駆動制御用の副制御部35、45、55、並びに65がそれぞれ配置されている。
体幹部40には、加速度センサ95と姿勢センサ96が配設されている。加速度センサ95は、例えばX、Y、Z各軸方向に配置する。機体の腰部に加速度センサ95を配設することによって、質量操作量が大きな部位である腰部を制御対象点として設定して、その位置における姿勢や加速度を直接計測して、ZMPに基づく姿勢安定制御を行なうことができる。
また、各脚部60R及び60Lには、1以上の接地確認センサ91及び92と、加速度センサ93及び94がそれぞれ配設されている。接地確認センサ91及び92は、例えば足底に圧力センサを装着することにより構成され、床反力の有無により足底が着床したか否かを検出することができる。接地確認センサ91及び92に出力に基づいて、例えば両脚支持期、単脚支持期の判定や、さらには物理振動子としての可動脚の位相φや角周波数ωを推定することができる。
また、加速度センサ93並びに94は、少なくともX及びYの各軸方向に配置する。左右の足部に加速度センサ93及び94を配設することにより、床反力やその他の外部環境に関する情報を得ることができる。勿論、これらの加速度センサ出力に基づいて床反力から加速度項若しくはモーメント項を直接得て、ZMP位置に最も近い足部におけるZMP方程式を組み立てることができる。
主制御部80は、各センサ91〜93の出力に基づいて、ロボット100の内部状態や外部環境に応じた姿勢安定制御を行なう。より具体的には、副制御部35、45、55、65の各々に対して適応的な制御を行ない、脚式移動ロボット100の上肢、体幹、及び下肢が協調して駆動する。ここで、姿勢安定制御の第1の方法として、例えば歩行運動中に脚など可動部位の少なくとも一部において周期運動を抽出して、内部状態や外部環境に応じてその位相信号を発生し、この位相信号に基づいて可動部の駆動制御を行なう。また、姿勢安定制御の第2の方法として、ZMPを規範として、すべての瞬間において、動的釣り合いを取るように運動を計画し目標ZMP制御を行なうことができる。
B.振動子を用いたロボット装置の運動制御
ZMP規範に基づくロボット装置の運動制御方法は、制御工学的手法に基づく簡単化を施した後、解析的に解を求めることが可能であり、汎用性が非常に高い。その反面、ロボット装置及び外部環境とも精緻なモデル化を必要とし、その結果,実際のハードウェアに対する要求精度は非常に高くなる。また、数学的に導出される運動は、見かけの上でも人間の歩行様式とは異なるものとなる。
一方、ヒトを始めとする脚式歩行の生体メカニズムでは、現在実現されているZMP規範の軌道とは異なる形態で、四肢が持つ物理法則を好適に利用し、自然な歩行動作を行なっている。ロボット装置も、このような物理法則を有効に利用することで、精緻なモデルを必要とせず(すなわち低い計算コストで)、より低いアクチュエータの駆動トルクで、且つ高いエネルギ変換効率で、歩行動作を実現することができると思料される。
本発明者らは、以上の問題意識から、運動生理学・脳神経科学・計算機学習の知見を用いて「より人間に近い歩行制御法」について開示する。すなわち、ロボット装置における脚などの可動部位の少なくとも一部を物理振動子として捉え、歩行やその他の動作を周期運動として扱い、この振動子の位相や振動数を決定又は制御するという形態で歩行動作を制御する。この場合、周期運動が継続することを、ロボット装置の「安定な歩行」とみなすことができる。
振動子を用いたロボット装置の運動制御の原理について、図5及び図6を参照しながら説明する。
ロボット装置全体、あるいは脚部や腕部、腰部、頭部など可動部位の動作は、周期的な運動を行なう振動子として記述される。この振動子は、図5に示すように、定常的に自励発振を行なう。ここで、外部環境の変化などによるフィードバック信号が入力として与えられると、振動子の振幅や周期、位相などが一時的に乱れるものの、やがて図6に示すように、入力信号に対し位相差が固定された発振を行なう出力信号を得ることができる。
このように、入出力間で位相関係が固定されることを、引き込み現象(Entrainment)と呼ぶ。振動子を用いたロボット装置の運動制御においては、外部環境からの信号を用いて引き込み現象を有効に利用し,自律的に調整された振動子の出力位相情報φに基づいて、ロボット装置又はその一部の可動部位に対する制御量Uを得ることができる。
引き込み特性を持つ振動子としては、工学的には、検波回路などに用いられるPLL(Phase Lock Loop)回路などが挙げられる。その他の例として、非線形振動子や位相振動子を挙げることができる。
あるいは、非線形微分方程式により記述される神経振動子である松岡オシレータ(例えば、Matsuoka, K.著“Sustained oscillations generated by mutually inhibiting neurons with adaption”(Biological Cybernetics,52,pp.345−353(1985))を参照のこと)を振動子に用いることもできる。この種の振動子は、図7のように構成され、以下のように記述される。
ここでu1、u2、v1、v2 は内部変数であり、τ1、τ2、c、β、γ、hjは定数である。また、gjとCPGはそれぞれ入力信号並びに出力信号である。2つのニューロンが相互抑制結合することで、入力信号なしでも振動子の出力は自励発振する。このとき、出力の振動数と波形は時定数τ1、τ2、振幅はcにより調節可能であることが数値的に示されている(例えば、M.Williamson著“Neural Control of Rhythmic Arm Movements”(Neural Networks,Vol.11,issues 7−8,pp.1379−1394(1998)を参照のこと)。
図8には、振動子における入力信号と出力信号の関係を示している。但し、入力信号を点線で、出力信号を実線でそれぞれ描いている。図示のように、出力信号が入力信号に引き込まれていく、すなわち一定の位相差が保たれていく様子が分る。
十分な振幅で、振動子の固有振動数に近い信号が入力されるとき、引き込み現象によりその入出力間の位相が一定値に固定される。したがって、ロボット装置の状態を神経振動子に適切な入力信号gj、ゲインhjで入力することで、環境との相互作用に応じた堅牢な制御系を構築することができる(例えば、G.Taga著“A model of the neuro−musculo−skeletal system for human locomotion I”(Emergence of basic gait,Biological Cybernetics,vol.73,pp.97−111(1995))、並びに、H.Kimura、Y.Fukuoka、T.Mimura共著“Dynamics Based Integration of Motion Adaptation for a Quadruped Robot”(Proc.of 2nd International Symposium on Adaptive Motion of Animals and Machines,ThP−I−2(2003))を参照のこと)。本実施形態において使用する振動子パラメータを以下に示しておく(c=2.05のときCPGoutput=1.0)。
なお、振動子に対する入力信号としては、主にセンサなどの検出信号から得られる外部環境を扱うことができるが、その他にロボット装置内で管理される本能や感情で構成される情動などの内部状態や、その他の状態値を入力信号に用いてもよい。
図9には、振動子を用いたロボット装置の姿勢安定制御メカニズムの構成を概念的に示している。ロボット装置は、可動部の運動を周期運動と捉え、歩行やその他の可動部の動作を位相で記述する。
ロボット・システムを構成する物理系毎に1つ以上の位相発生器が定義される。制御器は、位相発生器からの連続した位相情報φに基づいて、ロボットの可動部の駆動を制御する。
図示の例では、制御則が異なる複数の制御器が用意されており、ロボット・システムからの位相出力に応じて、適切な制御器が選択される。勿論、1つの制御器のみを用いて位相発生器からの位相出力を処理するように構成することもできる。
ロボット・システム上に配設されたセンサでは、駆動時における状態量が検出される。位相推定器は、センサ情報に基づいて、実現された角周波数ωと位相φを推定する。
そして、推定された運動の位相や角周波数を基に、位相発生器では可動部の周期運動における位相と各周波数を調節する。
例えば、歩行運動そのものを周期運動として捉え、神経振動子のようなもので周期信号を発生し、それを用いてアクチュエータの制御を行ない、観測される歩行運動の周期的な信号と神経振動子を干渉させることで引き込みを行ない、安定な歩行運動を得ることができる。
あるいは、上述のように周期運動を神経振動子のように直接振幅信号を発生させるのではなく、位相信号を発生させ、位相信号から制御量としての振幅信号に発生させるようにしてもよい。この場合、引き込み制御や安定領域を広く、設計し易いものにする。
位相信号は、典型的には、以下の更新則により調整される。
上式で、ΔωとΔφは、運動を観測して得られる運動の位相推定値と位相発生器との位相誤差推定値であり、運動の位相推定はロボット・センサから推定される。具体的には、歩行運動であれば、足底スイッチ(又は接地確認センサ)の接地時点とその周期、腕部の運動であれば、手先の接触スイッチの時点とスタートからそこに至るまでの時間から予測される周期全身協調運動であれば、同様な関節運動が始まる時点とその周期より推定される。
位相信号発生手段で生成する位相信号φから適当な変換を用いて、ロボットの可動部への入力信号(制御量)Uを得る。
観測信号のベクトルVから推定される位相並びに角周波数をそれぞれφ0、ω0とおくと、下式により位相誤差推定値を得ることができる。(変形として、この推定を制御量Uと観測ベクトルVから比較する方法や、φとVから推定する方法、φ0とUから推定する方法、U、V、φから推定する方法なども考えられる。)
滑らかな運動を保証するために、位相を緩やかに変化させる、あるいはダイナミクスを用いて操作するなどの方法が考えられる。例えば、
として、
とすることなどが考えられる。また、急峻な位相変化が予想される場合(例えば、歩行中に躓くなど)には、ダイナミカル・システムを用いてロボットの可動部への入力信号(制御量)Uを操作する方法が考えられる。例えば、
とすることにより、滑らかな運動が実現される。(位相で滑らかにつなぐ場合は、例えば傾斜面歩行のような、数歩で収束するような場合に適している。これに対し、躓くなど早い対応が必要な場合には、位相を急峻に変化させ、制御器そのものをスイッチングするべきである。このときの運動の滑らかさは制御器側で保証する。)
ロボット装置の可動部位における運動を周期運動として捉えると、時間をパラメータとして目標軌道を記述することができる。これに対し、位相φを用いて目標軌道を記述することもできる。
また、単一のロボット・システムを位相発生器で記述するだけでなく、複数の位相発生器を定義することも可能である。位相発生器の構成は特に限定されないが、位相リセットによる振る舞いの解析解が求まることが設計論的に望ましい。位相発生器はロボット装置そのものであり、例えば装置全体として1つの位相発生器とみなすこともできるし、関節自由度毎に位相発生器として捉えることもでき(後述)、任意性がある。
図9に示したように複数の制御器を設ける場合、ロボット・システムからの位相出力φに応じて適切な制御器を選択するようにしてもよい。例えば、下表に示すように、左右の脚状態に基づいてロボット・システムの位相が判別され、各状態について適切な制御器が用意されている。あるいは、2以上の制御器が同じPD制御などであっても、制御パラメータ(例えばゲイン値)が異なるようにする。
制御器は、連続した位相情報φを基に可動部を制御する。また、運動をダイナミカル・システムで記述してあれば、急峻な位相変化が到来しても、制御器側で滑らかさを保証することができる。
図10には、2足の脚式移動ロボットが左右の脚を交互に支持脚、遊脚に切り替えて歩行動作を行なうときの、位相情報φに基づいて制御器を適宜選択するメカニズムについて図解している。
図示の例では、遊脚を持ち上げる動作を位相情報φに基づいて制御する制御器(Swing Controller)、遊脚を接地させる動作を位相情報φに基づいて制御する制御器(Touch Down Controller)、両脚支持期の動作を位相情報φに基づいて制御する制御器(Double SUpport Controller)、単脚支持期の動作を位相情報φに基づいて制御する制御器(Single Supprot Controller)が用意されている。
位相発生器(Phase Controller)は、歩行運動中の現時点での位相φを発生させる。そして、位相φに基づいて制御器が選択され、これに位相情報φが供給される。
制御器では、供給された位相情報φに基づいて、ロボットの可動部への制御量Uを生成する。ロボットの可動部は、制御量Uに従って歩行運動のための駆動を行なう。
歩行運動中には、可動部における各関節の角度、角速度、角加速度、その他のセンサ出力値が取得され、位相推定器(Phase Estimator)に投入される。位相推定器では、これらのセンサ出力値すなわち可動部の状態量に基づいて、周期運動における位相並びに角周波数を推定し、これを位相発生器に供給する。
位相発生器では、推定された位相又は角周波数に基づいて、位相信号Φを更新し、ロボット・システムの周期運動の位相を調整する。
ここで、ロボットの可動部は例えば1以上の関節自由度で構成されている。このような場合、例えばモータ・エンコーダなどのセンサにより関節角を状態量として検出する。そして、位相推定器では関節角に基づいて関節の周期運動に関する位相又は各周波数を推定することができる。
最も単純な例として、位相を関節角度として出力する。すなわち、横軸に周期(時間)Tをとり、縦軸に関節角度θをとると、正弦波形のチャートとなる(図11を参照のこと)。ここで、横軸に関節角をとり、縦軸に関節角速度をとると、単位円上を周回するチャートとなる。このとき、ある時点における回転角(単位円上の時点と原点を結ぶ直線が横軸となす角)φが周期運動の位相となる(図12を参照のこと)。
本実施形態では、ロボット装置は複数の可動脚を備えている。この場合、例えば可動脚の各足底に配設されている接地確認センサ91及び92により検出される床反力を状態量として検出し、振動子としての位相発生器への入力信号として利用することができる。そして、位相推定器は、各可動脚の足底における床反力に基づいて位相又は角周波数を推定する。例えば、床反力に基づいて、左右いずれかの脚による単脚支持期又は両脚支持期を判定することができ、この支持脚判定結果を歩行運動における位相φとして推定することができる。
また、位相推定器は、各可動脚の足底における床反力に基づいて前記可動部の周期運動における位相又は角周波数を推定するようにしてもよい。
あるいは、可動脚の各足底において進行方向又はその直交方向に受ける床面からの摩擦力を状態量として検出し、振動子としての位相発生器への入力信号として利用することができる。この場合、位相推定器は、各可動脚の足底で床面から受ける摩擦力に基づいて、可動脚の周期運動における位相又は角周波数を推定するようにしてもよい。
また、本実施形態に係るロボット装置は体幹部を備えているが、姿勢センサ95から得られる体幹部の傾きを状態量として検出し、これを振動子としての位相発生器への入力信号として利用することができる。そして、位相推定器は、体幹部の傾きに基づいて、体幹部やその他の可動部の周期運動における位相又は角周波数を推定するようにしてもよい。
また、体幹部や足底に設けられた加速度センサ93、94、96から得られるロボット装置又は可動部毎の加速度を状態量として検出し、振動子としての位相発生器への入力信号として利用することができる。位相推定器は、これら加速度情報からなる状態量に基づいてロボット装置又はその可動部の周期運動における位相又は角周波数を推定するようにしてもよい。
また、位相推定器は、所定の事象の発生に応答して、前記関節の周期運動に関する位相をリセットするようにしてもよい。
また、位相推定器は、検出された状態量と可動部の周期に関する教師信号を学習し、前記の学習された教師信号に基づいて位相又は角周波数を推定するようにしてもよい。
例えば、位相推定器を、検出された状態量に応じて前記可動部の周期運動に関する位相又は角周波数を出力するニューラル・ネットワークで構成することができる。
あるいは、位相推定器を、連続した複数の内界センサ情報を基に、フィードフォワード・ニューラル・ネットワークで構成し、位相や角周波数を連続的に推定するようにしてもよい。
あるいは、位相を離散的に推定する場合には、例えば歩行動作において各脚の接地を位相0、一方の脚の接地を位相πと定義して、足底の接地確認センサの出力により観測することができる。また、この場合の各周波数は、左右の脚の接地の時間間隔より算出することができる。
C.振動子の定義
本発明に係るロボット装置においては、物理系毎に1つ以上の振動子が定義される。ここで、図13に示すように、ロボット装置全体を周期運動を行なう1つの物理振動子として捉え、ロボット装置全体で1つの振動子を定義するようにしてもよい。
あるいは、歩行やその他の脚式運動においては、左右の各脚の動作をそれぞれ独立した周期運動と捉え、図14に示すように、脚毎に1つの振動子を定義するようにしてもよい。
また、歩行やその他の脚式運動においては、左右の脚部が協調的に動作し、単脚支持と両脚支持を交互に繰り返すことから、下肢においては1つの周期運動と捉えることができる一方、上肢と体幹などその他の部位においては別の周期運動と捉えることができる。このような場合、図15に示すように、下肢と、上肢及び体幹において、それぞれ異なる振動子を定義することができる。勿論、このときも左右の各脚の動作をそれぞれ独立した周期運動と捉え、図16に示すように、脚毎に1つずつ振動子を定義するようにしてもよい。
また、歩行やその他の運動において、左右の脚、左右の腕、体幹、頭部の動作をそれぞれ独立した周期運動と捉え、図17に示すように、部位毎に1つの振動子を定義するようにしてもよい。
また、上述したように可動部毎に、すなわち隣接する関節の運動を組み合わせて1つの周期運動と捉える必要は必ずしもない。例えば、図18に示すように、運動制御システムにおける直接の制御対象となる関節毎に独立した周期運動を行なっているものと捉えて、関節毎に振動子を定義することもできる。
図14〜図18に示したように、単一のロボット装置上で複数の振動子を定義した場合、振動子毎すなわち周期運動と捉えられる可動部毎に、対応した制御則を備えた制御器が配設されることになる。このような場合、装置全体の協調動作を実現するために可動部毎の制御器からの制御量を調停する調停手段をさらに備えていてもよい。
また、ロボット装置を構成するすべての可動部の運動を周期運動と捉えることができるとは限らない。すなわち、周期運動と捉えられる可動部と、周期運動と捉えられない可動部を含む場合がある。このような場合、周期運動と捉えられない可動部のために、周期運動とは無関係の制御則に基づいて可動部を制御する第2の制御手段を配置すればよい。このような第2の制御手段は、例えばZMP安定度判別規範に基づいて制御信号を生成する。あるいはステートマシンに基づいて制御信号を生成する。
そして、このような場合、装置全体の協調動作を実現するためには、前記制御手段による周期運動の位相に基づく可動部の制御量と、周期運動を行なわない可動部に対する第2の制御手段からの制御量とを調停する調停手段をさらに備えていてもよい(図19を参照のこと)。
D.振動子を用いた2足歩行運動
本実施形態に係るロボット装置は、制御部による全身協調的な動作制御により、2足歩行を実現することができる。かかる2足歩行は、一般に、以下に示す各動作期間に分割される歩行周期を繰り返すことによって行なわれる。すなわち、
(1)右脚を持ち上げた、左脚による単脚支持期
(2)右足が接地した両脚支持期
(3)左脚を持ち上げた、右脚による単脚支持期
(4)左足が接地した両脚支持期
要するに、歩行運動は、離散的な接地と支持脚と遊脚の切り替えを周期的に繰り返すことにより実現される。
D−1.2次元モデルへの振動子の適用
人間の歩行運動と類似性があり、また直観的な見通しも良いモデルとして、例えば、2次元平面拘束コンパス型モデル(Compass−like Biped)を挙げることができる。このモデルは、脚を腰関節から接地点までの直動(Linear Motion:LM)と、腰回りの回転(SWing motion:SW) に分解して歩行運動を取り扱うものである(図20を参照のこと)。すなわち、腰関節回りの極座標系に分解する。直動関節は主に体重を支え、進行方向へ重心を送り出す動きを行なう。これに対し、腰関節回りの回転は脚を前に進めるとともに接地点の制御及び歩幅の調整を行なう。
このような2次元平面拘束コンパス型モデルにおいて、直動脚長さを正弦波で駆動し、腰関節をフリー(Passive)関節にした場合でも、適切な初期条件の下では人間の歩行に類似した運動を生成可能であることがシミュレーションにより確かめられている(例えば、宮腰、山本、多賀、國吉共著「脚伸縮機構による二足歩行シミュレーション」(第18回日本ロボット学会学術講演会予稿集、第3巻、pp.1107−1108(2000))を参照のこと)。このときに得られる床反力は、人間の測定データとの類似生が高い。
そこで、本発明者らは、この直動脚LMと腰回転関節SMに対して、それぞれ振動子を配置する(図20を参照のこと)。このような振動子配置によれば、直動脚の振動子は主に自重を支持し、バランスを保つ機能を担うことを直観的に理解し易い。また、腰回転関節は脚の歩幅を規定することから、速度の調節や接地点選択による歩行を安定化する機能を担うことを直観的に理解し易い。すなわち、振動子を用いた制御が直観的で理解し易い配置にすることにより、振動子パラメータの調節が容易になる。
図21には、直動脚LMに振動子を配置した構成を模式的に示している。同図に示すように、脚を前後に開き、その場で足踏みを生成するフィードバック系が構成され、振動子に対する入出力を備えている。
左右の両脚は、逆位相で収縮及び伸展を行なうことから、ロボット装置の上体は前後方向に揺動を行なうことになる。このとき、定常的に振動を継続するよう、上体の絶対角を両脚支持期の振動子にフィードバックする。すなわち、上体が前方に倒れているようであれば、前側の脚を伸展し後脚を収縮させることで復帰モーメントを発生させる。フィードバックの符号は脚接地点と重心の相対位置(Stability Measure)によって前後脚を判断し反転させている。また、床面との十分なクリアランスを確保するため、遊脚時には脚収縮を大きくするようフィードバックを加えている。遊脚期並びに支持脚期における振動子に対するパラメータを以下に示す。
また、支持脚期における直動脚LMに配置した振動子に対するパラメータを以下に示す。
また、図22には、腰回転関節SMに振動子を配置した構成を模式的に示している。同図に示すように、腰回転関節SMは直動脚LMと協調して動作することが必要であることから、LMの出力をSMの入力信号として用いることにより、腰回転関節SMについてフィードバック系が構成される。
脚長が最大になるとき、接地点は最後方の位置、最小となるとき接地点は最前方の位置を取るように符号を決定する。これにより、前脚は常に後脚より短くなることから、前方に倒れこむモーメントが発生するので、ロボット装置はこのモーメントを用いて推進することができる。これはPassive Dynamic Walker(受動動的歩行器)を駆動する重力場を定性的に類似する。腰回転関節SMに配置した振動子に関するパラメータを以下に示す。
D−2.3次元モデルへの振動子の適用
図3及び図4に示したように、本実施形態に係るロボット装置は関節軸毎に回転型アクチュエータを配置し、これらの位置制御に基づいて所望の装置運動を実現する。例えば、直接の制御対象である関節軸毎に振動子を配置し、環境からのフィードバック情報を用いて歩行やその他の運動を生成することが考えられる(例えば、非特許文献2を参照のこと)。図18に示したように、6自由度の脚に対し関節毎に振動子を定義することもできる。
ところが、このような順動力学での振動子の配置が、振動子の振る舞いを系全体の挙動として理解することを難しくする、という問題がある。すなわち、個々の関節角の動作が作用点としての足部の挙動(接地点や歩幅など)にどれだけ寄与するのか、判りにくい。
そこで、本実施形態では、振動子の配置において、逆キネマティクスを導入する。制御目標である可動部位に対する基準座標系を設定し、この基準座標系の座標軸毎に可動部位についての振動子を記述する。この場合、振動子の可動部位の状態量に対する引き込み現象により、基準座標系における可動部位への指令値を得ることができる。このような可動部位に対する位置指令を逆キネマティクス演算により関節角度指令に変換することができる。
基準座標系の座標軸毎に可動部位についての振動子を記述するので、ロボット装置が実現する機能に応じた振動子の配置を実現することができる。また、制御目標である可動部位の作用点について振動子を記述するので、振動子の役割を直観的に理解し易い配置となり、振動子のパラメータ調節が容易になる。そして、振動子による可動部位に対する指令値を該当する関節部に対する指令値に変換することで、直接の制御対象である関節部アクチュエータの指令値を得ることができるので、ロボット装置の力学的特性にも有効に引き込みを行ない、振動子による引き込み現象をより有効に利用することができる。
図23には、XYZ直交座標系により基準座標系が構成され,その軸に沿って振動子を配置した例を示している。すなわち、ロボット装置の自重を支持する動作はZ方向であり、歩を進めるための動作はX方向、左右のバランスを保つための腰揺動はY方向であると機能的に分解することができる。そして、XYZの各方向に振動子φx、φy、φzをそれぞれ配置し、左右の脚で合計6個の振動子を使用する。足先姿勢に関しても、同様に基準座標系で考えることができる。
ここで、図23に示した振動子の配置構成をした脚を用いた定常直進歩行について考察する。但し、説明の簡単化のため、足先姿勢は基準姿勢のままであるとする。
絶対空間上に座標系Rworldを設定する。また、ロボットに固定された座標系Rbodyを設定する。ここでは、図24に示すように原点と座標軸をとる。絶対座標系Rworldから見たロボット座標系Rbodyの原点位置を姿勢を以下のように表す。
この場合、ロボット装置に固定された座標系Rbodyから見た左右の足先位置(x, y,z)、並びに姿勢(roll,pitch,yaw)をそれぞれ以下のように表す。但し、記号Lは左、Rは右を意味する。
これら足先位置が与えられたとき、逆キネマティクス演算を用いて関節角を算出することができる。
XZ平面は矢状面(Sagittal Plane)であり、YZ平面は前額面(Lateral Plane)である。ここでは、X軸正方向に進むことを前進、負方向に進むことを後進と呼ぶことにする。
まず始めに、前後進を伴わないその場足踏み、すなわち前額面内での運動にのみ着目する。歩行運動を矢状面・前額面に分解して検討することは広く一般に用いられる考え方である。これに続いて、矢状面内での運動を考え、前後進を伴う歩行運動について述べる。
前額面(YZ平面)内運動を、さらにZ方向とY方向と独立に分解して考える。Z方向運動は、自重を支える運動と、遊脚のためのクリアランスをとる動きを交互に行なう。足踏み運動は左右対称動作と仮定し、左右で符号反転させた振動し出力を位置指令として送る。安定した足踏み動作を継続するため、足底の力センサ(接地確認センサ91及び92)のセンサ情報を抑制結合として振動子φzにフィードバックする。すなわち、床反力が大きくなると、それ以上脚を踏み込む動作を抑制する動作である。これにより、ロボット装置の接地状態に応じて振動子の引き込み現象が生じ、足踏みの振動数が調整される。
ここで、Z方向に沿って配置した振動子φzの出力をCPGZとおき、Z方向初期基準位置をZoffsetとおく。下式のように、脚Z位置を駆動すれば足踏み運動を生成することができる(図25を参照のこと)。しかしながら、ロボットの固有振動数と振動子の固有振動数が異なれば定常的な振動は継続できず、外乱にも弱い。
定常的な発振を行なうため、床反力を入力信号とし引き込みを行なう。計測される左右脚床反力をそれぞれFL_Z、及びFR_Zとおく。また、ロボットの質量をm、重力加速度をgとおく。このとき、振動子CPGZへのフィードバック信号gzを下式のように設定することができる。
なお、フィードバック・ゲインhZの調節がし易いように、mgで正規化している。hZ<0と設定することで、床反力が大きくなったとき、より脚を踏み込むように動作し、常に床面からの体幹高さpbody_Zを高く保持することができる(図26を参照のこと)。
上記の式[数15]では左右の床反力を用いていたが、支持脚切り替えが瞬間的に起こると近似できる場合は、床反力波形は矩形波で観測されるため、片側の床反力のみで実現することができる。hZ<0としたとき、振動子CPGzへのフィードバック信号gz を以下のいずれかの式で表すか、又は簡単に接地状態を検出するON−OFFスイッチを設け、矩形波信号を取り出すようにしてもよい。この場合、フィードバック信号を安価なセンサで実現できることから、装置コスト並びに計算コストを削減することができる。
2足歩行ロボットの場合は一般に、重心位置は対称性に注意して矢状面内に設計される。また、左右脚は干渉しないよう、Y方向にオフセットを以って設計される。したがって、Z方向のみの運動では、図27に示すように、pbody_Rollが大きく揺動することになる。そこで、次にY方向の前額面内運動を考える。
Y方向の前額面内運動は、遊脚と支持脚の交換を行ない易くするために、振動子を用いた制御を補助的に行なう。Y方向は左右の脚で同じ方向に駆動し、平行リンクとして体幹を移動させる。Y方向運動は、Z方向の運動と同期協調する必要があることから、Z方向と同様の振動子フィードバック系を構成し、振動子φyは引き込み現象を起こす。
Y方向に沿って配置した振動子φyの出力をCPGYとし、初期基準位置をYoffsetとおく。このときの足先Y座標は下式のように定められる。
図28に示すように、FL_Zを引き込みに用いて常に足底上に重心があるように揺動をさせることにより、pbody_Rollを小さくすることができる。このとき、フィードバック信号gYは下式のように表される。
また逆に、h y <0とした場合、体幹部のロールはより大きくなるが、図29に示すように、常に遊脚側に倒れる向きに重心を移動させる。このため、Y方向への静的安定余裕が増し、外乱に強くなるという効果がある。
なお、上記[数18]の第一式の右辺は、先述の[数15]の第一式の右辺と同じであることから、上記の式[数16]に示したように片方の力センサ情報のみでも同様に簡略化することが可能である。
このようにYZの2方向の振動子と、床反力という1種類のセンサ情報のみを用いて、安定な足踏み運動を生成することができる。図30には、振動子を用いた足踏み運動、すなわち前額面内運動の制御を行なったときのシミュレーション結果を示している。但し、振動子の内部変数には適切な初期値をあらかじめ与えてある。また、実線は振動子φzの出力CPGZを、点線は同振動子へのフィードバック信号gzを示している。なお、理解を容易にするために、適当な係数を掛けている。足踏み開始時の過渡的な挙動の後、およそ2秒後に定常状態に達した。上記の式[数14]より、gzが負になる、すなわち右脚に荷重が印加されているとき、振動子φzの出力CPGZも負になっていることから、荷重が掛かると踏み込む運動であり、定常的な足踏みが行なわれている、ということが理解できよう。
続いて、YZの2方向の振動しフィードバック系に対し、さらにX方向の脚運動を加え、歩行を生成する場合について考察してみる。
XZ平面で見ると、足先軌道は、楕円のような軌道であれば歩行が可能である。この場合、Z方向の運動とは、位相が90度ずれた信号が必要である。そこで、体幹のロール方向の角速度を用いることとする。主にZ方向の運動が体幹のロール角度を生じていることから、その1階微分であるロール角速度は位相が90度ずれるものと考えられる。振動子φxは、このロール角速度を用いて、X方向の運動を引き込む。また、歩行を左右対称な運動であると仮定し、Z方向と同様に、振動子出力を符号反転し、左右対称に駆動する。
矢状面内運動は、例えば図31に示すような右回りの楕円軌道を描けば、ロボット装置はX方向に移動することができる。このときの足先X座標は下式のようになる。但し、a及びbを定数、φを位相としてパラメータ表示する。
上式より、X方向の振動にはZ方向の振動と位相が90度ずれた信号が必要となる.そこで定性的に以下の考察をする。図32に示すようにpbody_Rollは振動子φzの出力CPGZにより片脚を踏み込んだ場合に生じていると考えられる。すなわち、足先位置pbody_Rollと振動子出力CPGZは同位相で振動していると考えられる。仮にCPGZが正弦波で駆動されているとするならば、その1階微分は余弦波となり、90度の位相差が得られる。すなわち、pbody_Rollの1階微分は90度の位相差があると予想される。
そこで、定常足踏みの際の、体幹のロール方向角速度をシミュレーションから求めると、図33に示すような結果が得られた。同図から、Z方向の引き込みに用いられている床反力の値と、体幹のロール方向角速度値はほぼ90度の位相差があることが分る。
矢状面内運動X方向に関して、下式のように振動子φxを配置する。左右脚を交互に踏み出すため、振動子φxの出力CPGXの符号を左右で反転している。
このとき、振動子φxへのフィードバック信号は以下のように定める。
図34に示すように、引き込みにより定常的な脚軌道が得られ、歩行が可能になる。図35には、歩行時の(pbody_Z,pbody_Z,pbody_Z)を示している。図示の例では、およそ毎秒0.13メートルの速度でX方向にほぼ一定の速度で歩行できていることが分る。また、Z方向高さがほぼ一定であることから、転倒も起こっていないことが分る。
なお、上記の[数20]に示した各式に振幅を可変する定数Axをかけることにより、歩幅の調節が可能になる。前額面内の振動周期は一定であるから、歩幅が広がることにより、移動速度の調節が可能になる。また、Ax<0とすれば後退の動作も可能である。なお、Axを明示的に用いなくとも、神経振動子の出力振幅を可変するパラメータcを用いても同様の操作ができる。その場合はフィードバック係数hxも可変する必要がある。
以上により、逆キネマティクスを導入し,デカルト座標系で振動子の配置を行ない、フィードバック系を求めることにより、ロボット装置の歩行運動を生成可能であることが理解できよう。このように振動子を配置した制御システムは、機能すなわち座標軸毎の3つの振動子と、左右の足部における床反力を検出する2つの力センサで構成することができる。すなわち、単純な仕組みでありながら、歩行が可能である。
また、図36には、他の構成例として,基準座標系を脚先のデカルト座標系として選び、各軸回りの揺動、すなわちロール、ピッチ、ヨーに対しそれぞれ振動子φRoll、φPitch、φYawを配置した例を示す.左右の脚で合計6個の振動子を使用する。
また、図37には、他の構成例として、基準座標系を脚先の極座標系として記述した場合を示している。左右それぞれの脚には、脚の長さ方向(Length)、ロール方向(Roll)、及びピッチ方向(Pitch)に3つの振動子φLength、φRoll、φPitchが配置され、合計で6個の振動子を使用する。
各振動子φLength、φRoll、φPitchは状態量に対する引き込み現象により脚の該当方向に対する指令値を生成する。脚の長さ方向の振動子φLengthは、主に自重を支持し、バランスを保つ機能を担う。φPitchの引き込みは、φLengthの出力となる。振動子の配置以外は、2次元コンパス・モデル(前述)をそのまま使用して好適に歩行を実現することができる。
図23並びに図36に示した例では、脚の足先位置をXYZ直交座標からなるデカルト座標系で振動子を記述したが、本発明の要旨はこれに限定されるものではない。図37に示す例では、足先位置を仮想的に股関節回りの極座標系を用いて表示している。このような仮想脚は“Virtual Leg”と呼ばれ、ホッピング・ロボットなどに適用されている(例えば、Marc Raibert著“Legged Robot that Balance”(Massachusetts Institute of Technology Cambridge,MA,USA)を参照されたい)。
図37に示した例では、足先位置をこの仮想脚(VLと表記する)の脚長(pVL_length)、前額面内回転角(pVL_roll)、矢状面内回転角(pVL_pitch)で表記することを考える。
この場合、前述のデカルト座標系の例と対比させて、下式のように定性的に考えることができる。
歩行運動の解析をする場合、バイオメカニクスの分野では膝関節の部分を直動として扱う。コンパス型モデルが説明に良く用いられ、このような近似が比較的良く成り立つことが知られている。よって、振動子を極座標表示に対して適用することで、より人間に近い、自然な脚軌道を記述することができる。
また、図38には、他の構成例として,左右2つのXYZ直交座標系により基準座標系が構成される例を示している。左右それぞれの脚にはXYZの各方向に振動子φx、φy、φzが配置され、合計で6個の振動子を使用する。ロボット装置の自重を支持する動作はZ方向であり、歩を進めるための動作はX方向、左右のバランスを保つための腰揺動はY方向であると機能的に分解することができる。この場合、左右のXZ方向の振動子φx、φzの位相差は180度、φyの位相差は0度であることが好ましい。
D−3.振動子と状態遷移機械との組み合わせ
ロボット装置か2足歩行運動を行なう場合、前額面内運動と矢状面内運動を独立して扱うことができる、ということは当業者において一般に知られている。そこで、このうち一方を振動子による引き込み現象を利用して制御するとともに、他方を異なる制御器を用いて制御するというシステムを想到することができる。
脚部の振動子の基準座標系をXYZ直交座標系で構成する場合、Z方向はロボット装置の自重を支持する動作に相当し、Y方向は、左右のバランスを保つための揺動動作に相当し、X方向は歩を進める(すなわち、接地点や歩幅を決定する)動作に相当する。そこで、本発明者らは、前額面内の運動を振動子により行ない、矢状面内運動をステートマシン(状態遷移機械)により制御するハイブリッド制御システムについて提案する。
前額面内運動の制御には、上述した足踏み運動と同様の振動子制御システムを用いる。これにより、定常的な足踏み動作を実現することができる。
ここで、遊脚期となる脚はX軸の正方向に脚位置を線形的に変化し、支持脚期となる脚はX軸の負方向に脚位置を線形的に駆動すれば、X方向へ進む歩行運動が生成される。
前額面内足踏み運動により生成される一歩の時間をT秒、歩幅をStメートル、Z方向床反力をFZニュートン、遊脚−支持脚切り替え時の床反力FZの閾値をFZ_thニュートンとおき、デューティ比を0.5と仮定した場合、足先速度を下式のように記述することができる。
なお、歩幅の中心値が基準位置Xoffsetを保持するように、以下に示すようにX位置の最大値及び最小値を制限する。
このようにX方向に対してステートマシンを設定することで、歩行が可能となる。支持脚時の足先速度は常に一定であることから、デューティ比が0.5異常で両脚支持期が存在する場合であっても、左右の脚で相対速度がないことから、足裏滑りを生じず、消費電力を低減することができる。これは、未知の路面高さや外乱などによって両脚支持期が存在する場合にも当てはまる。
進行方向を変える場合では、旋回半径を規定し、幾何学的に矛盾が生じないよう、円弧に沿ってY方向速度並びにヨー回転を記述することで実現可能である。
Y方向に移動する場合も同様の考え方を用いることができる。Y方向は振動子により制御されているが、その出力に対してステートマシンの出力を重ね合わせることで、Y方向の移動も実現可能である。
また、複数のステートマシンを用意しておき、床反力の値に応じてステートマシンを切り替えて使用するようにしてもよい。また、足踏み運動は、振動子が床反力に引き込まれることで継続されている。したがって、矢状面内運動も床反力を介して振動し出力に引き込まれることになり、結果として適切なタイミングで脚を駆動することが可能である。
E.歩行運動以外の運動に対する振動子の適用
これまで2足歩行の脚式移動ロボットを例にとって振動子の配置方法について説明してきたが、本発明の要旨はこれに限定されるものではない。他のタイプの脚式移動ロボット装置、脚式移動以外のロボット装置若しくは移動装置においても、姿勢やその他の安定制御に振動子による引き込み現象を利用することができる。
E−1.脚式以外の移動体への振動子の適用
例えば、足先にローラースケートが配設された、脚と車輪を組み合わせたハイブリッド移動体におけるローラースケート運動の制御に、振動子による引き込み現象を利用することができる。このとき、接地点では抗力の異方性がある。すなわち、車輪の回転軸方向は摩擦があるが進行せず、これに対し車輪の回転方向は進行するが摩擦がない。このため、車輪転がり方向には移動し易く、軸方向には移動しにくい。このような異方性に着目し、作用点軌道に振動子を配置することができる(図39を参照のこと)。
なお、脚車輪ハイブリッド移動体に関しては、例えば、Endo,G.,Hirose,S.共著“Study on Roller−Walker (multi−mode steering control and self−contained locomotion)”(Robotics and Automation, 2000.Proceedings.ICRA ‘00.IEEE International Conference on, Volume3,24−28 April 2000,Pages2808−2814 vol.3)を参照されたい。
E−2.ロボット装置の移動作業以外の運動への振動子の適用
さらに上述した他にも、ロボット装置における移動以外のさまざまな運動に関しても、作用点軌道を振動子で記述することにより、同様に本発明を適用することができる。
例えば、左右の両腕を用いて鋸を引く運動の場合、鋸を引く動作若しくは機能と、鋸を被削物に押し付ける動作若しくは機能に分解することができ、これらの独立した運動毎に振動子を記述する。具体的に言えば、胴体に対し腕部を支持する肩関節部に振動子φShoulderを配置し、鋸を引いたり被削物に押し付けたりする作用点としての肘部に振動子φElbowを配置し、被削物に対して直接作用を及ぼす鋸の刃先に振動子φSawを配置する。そして、これらの引き込み現象により、系全体として鋸で被削物を切断するという作業を好適に実現することができる。
あるいは、主たる運動方向である鋸の歯に沿った向きに一方の振動子を配置し、また、鋸の歯を被削物押し当てる向きに力制御など別の制御則に基づく制御器を用いることも可能である。