(57)【要約】【課題】  支持脚の足首関節を回転自由として受動的に動かして自然な動作で歩行するロボットにおいて、目標とする歩幅での歩行を実現することが可能な技術を提供する。【解決手段】  本発明のロボットは、足首関節を持つ脚リンクが股関節によって胴部に揺動可能に連結されており、その脚リンクが２以上存在するロボットであって、接地脚リンクの足首関節を揺動自由とし、残余の関節を前記足首関節の角度に基づいて調整し、接地脚を入れ替える度に揺動自由とする足首関節を切替えるロボットである。体側方向の足踏み動作の周期に合わせて遊脚を振り出すことで前進する。揺動自由とした関節の関節角と、足踏み運動の周期に応じて胴部の傾きを調整し、目標とする歩幅で歩行する。【選択図】  図３
2006082146.tif 000002
【特許請求の範囲】
【請求項１】
足首関節を持つ脚リンクが股関節によって胴部に揺動可能に連結されており、その脚リンクが２以上存在するロボットであり、下記のコントローラ、即ち、
接地脚リンクの足首関節の体側方向の関節角と進行方向の関節角を揺動自由とし、
揺動自由とした足首関節の体側方向の関節角と進行方向の関節角を計測し、
計測された足首関節の体側方向の関節角と進行方向の関節角に基づいて、残余の関節の目標関節角を計算し、
残余の関節角を調整するアクチュエータを制御して、残余の関節角を計算された目標関節角に調整し、
脚リンクの先端が接地して浮遊して再度接地する繰返し現象の進行に合わせて揺動自由とする足首関節を切替えることによって、揺動自由とする足首関節を接地脚リンクの側に維持する、
コントローラを備え、
計測された足首関節の体側方向の関節角と進行方向の関節角に基づいて残余の関節の目標関節角を計算する際に、
（１）目標関節角に調整したときの重心位置が、体側方向に関しては接地脚リンクの接地位置と遊脚リンクの接地予定位置の間において遊脚リンクの接地予定位置に向けて移動し、進行方向に関しては遊脚リンクの接地予定位置に向けて移動し、
（２）遊脚リンクが接地するときに、股関節が接地脚リンクの先端より前方に位置し、かつ遊脚リンクの先端が股関節より前方に位置し、
（３）胴部の傾きが、揺動自由とした足首関節の進行方向の関節角の経時的変化と、前記繰返し現象の周期と、目標とする歩幅とに基づいて決定される目標傾き角に一致する
という３つの関係を満たす目標関節角を計算することを特徴とする、関節角の受動変化を利用して歩行するロボット。
【請求項２】
足首関節を持つ脚リンクが股関節によって胴部に揺動可能に連結されており、その脚リンクが２以上存在するロボットの制御方法であり、
接地脚リンクの足首関節の体側方向の関節角と進行方向の関節角を揺動自由とする工程と、
揺動自由とした足首関節の体側方向の関節角と進行方向の関節角を計測する工程と、
計測された足首関節の体側方向の関節角と進行方向の関節角に基づいて、残余の関節の目標関節角を計算する工程と、
残余の関節角を計算された目標関節角に調整する工程と、
脚リンクの先端が接地して浮遊して再度接地する繰返し現象の進行に合わせて揺動自由とする足首関節を切替えることによって、揺動自由とする足首関節を接地脚リンクの側に維持する工程と
を備え、
計測された足首関節の体側方向の関節角と進行方向の関節角に基づいて残余の関節の目標関節角を計算する際に、
（１）目標関節角に調整したときの重心位置が、体側方向に関しては接地脚リンクの接地位置と遊脚リンクの接地予定位置の間において遊脚リンクの接地予定位置に向けて移動し、進行方向に関しては遊脚リンクの接地予定位置に向けて移動し、
（２）遊脚リンクが接地するときに、股関節が接地脚リンクの先端より前方に位置し、かつ遊脚リンクの先端が股関節より前方に位置し、
（３）胴部の傾きが、揺動自由とした足首関節の進行方向の関節角の経時的変化と、前記繰返し現象の周期と、目標とする歩幅とに基づいて決定される目標傾き角に一致する、
という３つの関係を満たす目標関節角を計算することを特徴とする、ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２以上の脚リンクが股関節によって胴部に揺動可能に連結されており、その脚リンクを揺動させることによって歩行するロボットに関する。
【背景技術】
【０００２】
左脚リンクと右脚リンクの相対的姿勢を変化させることによって歩行するロボットが開発されている。左脚リンクと腰と右脚リンクの相対的姿勢を変化させる場合、結果として歩行させることができるように、左脚リンクと腰と右脚リンクの相対的姿勢を変化させなければならない。このために、左足先と腰と右足先の位置と姿勢を指示する歩容データが利用される。
【０００３】
図１０に示すように、歩容データは、ロボットが活動する空間の座標を定めるグローバル座標系において、左足先と腰と右足先の位置と姿勢を指示する。左足先と腰と右足先の位置を指示するために、左足先には基準点Ｌ０が定められており、右足先には基準点Ｒ０が定められており、腰には基準点Ｗ０が定められている。左足先と腰と右足先の姿勢を指示するために、左足先に垂直なベクトルＬが想定されており、右足先に垂直なベクトルＲが想定されており、腰柱に沿って伸びるベクトルＷが想定されている。歩容データは、グローバル座標系において、左足先の基準点Ｌ０のｘ、ｙ、ｚ座標、右足先の基準点Ｒ０のｘ、ｙ、ｚ座標、腰の基準点Ｗ０のｘ、ｙ、ｚ座標を指示する。また、左足先に垂直なベクトルＬのピッチ角Ｌαと、ロール角Ｌβと、ヨー角Ｌγを指示し、右足先に垂直なベクトルＲのピッチ角Ｒαと、ロール角Ｒβと、ヨー角Ｒγを指示し、腰柱に沿って伸びるベクトルＷのピッチ角Ｗαと、ロール角Ｗβと、ヨー角Ｗγを指示する。歩容データは、左足先と腰と右足先の位置と姿勢を指示するデータを経時的に記憶している。
【０００４】
左足先と腰と右足先の位置と姿勢を指示する歩容データが与えられると、ロボットは、与えられた位置と姿勢をとるために必要な関節の関節角を計算し、計算された関節角に調整する。歩容データが経時的に変化することから、関節角も経時的に変えられる。歩容データに従って、左脚リンクと腰と右脚リンクの相対的姿勢を経時的に変化させることによってロボットは歩行する。
腰の位置（Ｗｘ、Ｗｙ，Ｗｚ）と姿勢（Ｗα、Ｗβ、Ｗγ）は、ロボットのＺＭＰ（zero moment point）を接地脚の足平内に維持する関係に設定されているために、ロボットは転倒しないで歩行を続ける。
上記の方式は、ロボットの全ての関節を能動的に動かして歩行する方式であるということができ、特許文献１等に記載されている。
【０００５】
本出願人は、上記した技術とは異なり、ロボットの関節を受動的に動作させて、自然な動きで歩行する歩行技術についての研究を実施している。
本出願人の先願である特願２００３−０７０７５８には、自然で安定した足踏み動作を実現し、足踏みの周期に合わせて遊脚を前方へ振り出すことによって、自然な動作で歩行するロボットとその制御方法が開示されている。上記の技術では、ロボットの支持脚の足首関節を揺動自由とし、揺動自由とした関節の関節角を計測して、計測した関節角に基づいて残余の関節角を調整する。残余の関節角は、ロボットの重心が各脚リンクの体側方向での接地位置の間において遊脚リンクが接地する位置に向けて移動するように調整される。上記の技術では、ロボットの支持脚の関節を回転自由としていることから、ロボットは自然で受動的な動作で歩行する。
【特許文献１】特開平０５−２５３８６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記の技術を用いることで、ロボットに自然な動作で足踏みをさせながら、歩行させることができる。上記の足踏み動作は、ロボットに作用する慣性と重力を有効に利用して実現されるため、全ての関節を能動的に動かす場合に比べて、少ないエネルギーで歩行することが可能である。
しかしながら、上記の歩行制御技術は、さらなる改善の余地を残している。
上記の歩行制御技術においては、ロボットは受動的な動作で歩行するため、外乱が作用すると、歩行の態様が変化し、歩幅が乱れることがある。上記の歩行制御技術では、歩幅が乱れた場合であっても、自然な動作で歩行を継続することができるが、所定の歩幅となるように歩行を制御することは困難である。
【０００７】
上記のように外乱が作用する場合であっても、目標とする歩幅で歩行させたい場合がある。支持脚の足首関節を受動的に動かしてロボットを自然な動作で歩行させながら、目標とする歩幅で歩行することが可能な技術が要望されている。
本発明では、上記課題を解決する。本発明では、支持脚の足首関節を回転自由として受動的に動かして自然な動作で歩行するロボットにおいて、目標とする歩幅での歩行を実現することが可能な技術を提供する。
【課題を解決するための手段】
【０００８】
本発明において具現化される一つのロボットは、足首関節を持つ脚リンクが股関節によって胴部に揺動可能に連結されており、その脚リンクが２以上存在する、関節角の受動変化を利用して歩行するロボットである。
そのロボットは、下記のコントローラ、即ち、接地脚リンクの足首関節の体側方向の関節角と進行方向の関節角を揺動自由とし、揺動自由とした足首関節の体側方向の関節角と進行方向の関節角を計測し、計測された足首関節の体側方向の関節角と進行方向の関節角に基づいて、残余の関節の目標関節角を計算し、残余の関節角を調整するアクチュエータを制御して、残余の関節角を計算された目標関節角に調整し、脚リンクの先端が接地して浮遊して再度接地する繰返し現象の進行に合わせて揺動自由とする足首関節を切替えることによって、揺動自由とする足首関節を接地脚リンクの側に維持する、コントローラを備えている。
そのロボットは、計測された足首関節の体側方向の関節角と進行方向の関節角に基づいて残余の関節の目標関節角を計算する際に、以下の３つの関係を満たす目標関節角を計算することを特徴とする。
（１）目標関節角に調整したときの重心位置が、体側方向に関しては接地脚リンクの接地位置と遊脚リンクの接地予定位置の間において遊脚リンクの接地予定位置に向けて移動し、進行方向に関しては遊脚リンクの接地予定位置に向けて移動する
（２）遊脚リンクが接地するときに、股関節が接地脚リンクの先端より前方に位置し、かつ遊脚リンクの先端が股関節より前方に位置する
（３）胴部の傾きが、揺動自由とした足首関節の進行方向の関節角の経時的変化と、前記繰返し現象の周期と、目標とする歩幅とに基づいて決定される目標傾き角に一致する
【０００９】
前記ロボットは、接地脚リンクの足首関節を揺動自由とするために、接地脚リンク自体は自然に受動的に倒れようとする。このときに他の関節角を能動的に調整し、ロボットが転倒する前に他方の脚リンクが接地して転倒を防止するように制御する。接地脚が入れ代わるために、ロボットは歩を進める。これを繰返すことによって、ロボットは接地脚を入れ替えながら歩行を続ける。
前方への歩行が継続している場合、ロボットの重心には前方に向けた慣性が作用する。このため、接地脚の足首関節の進行方向の関節角を回転自由とすると、ロボットの重心は接地脚の足首関節を支点とした倒立振子の挙動を示し、前方、すなわち遊脚リンクの接地予定位置に向けて移動する。遊脚リンクが接地するときに、股関節は接地脚リンクの先端よりも前方に位置し、遊脚リンクの先端は股関節よりも前方に位置するように、他の関節の関節角を能動的に調整するため、遊脚リンクは接地脚リンクの接地位置よりも前方で接地する。接地脚を入れ替えた時点で、ロボットの重心には前方に向けた慣性が作用しているため、ロボットの重心は入れ代わった接地脚の足首関節を支点とした倒立振子の挙動を示し、さらに前方に向けて移動していく。上記を繰返すことによって、ロボットは前方に向けて安定した歩行を続ける。
上記では自然で受動的に生じる動きを利用して歩行することから、自然な歩行動作が得られる。ロボットのダイナミクスに適用した動作を利用して歩行することから、歩行に要するエネルギーも節約できる。人がロボットに手を差し伸べて受動的な動きを停止させるとロボットは停止する。人とロボットの共存にも有利であり、高い安全性を確保することができる。
【００１０】
脚リンクを接地してから、遊脚リンクを浮遊させて接地させるまでの間のロボットの運動は、胴部の傾きに依存して、その様子が変化する。胴部を前方に傾けると、ロボットの重心位置は前方下方に移動し、運動の支点となる接地脚の足首関節からロボットの重心までの距離が短くなる。その結果、ロボットの重心は速く前方へ移動し、遊脚リンクの先端も速く前方へ移動する。胴部の傾きは足踏み運動の周期にそれほど影響を及ぼさないため、遊脚リンクを浮遊させてから接地させるまでの時間は、胴部の傾きの影響をそれほど受けない。従って、胴部を傾けることによって、遊脚リンクはより前方まで到達してから接地し、ロボットの歩幅は広がる。
上記の関係を利用して、接地脚を入れ替える時点で、目標とする歩幅を実現する胴部の傾きを特定し、その胴部の傾きが実現されるように能動的に動作させる関節角を調整することで、ロボットを所望の歩幅で歩行させることが可能となる。
【００１１】
脚リンクを接地してから、遊脚リンクを浮遊させて接地させるまでの間のロボットの歩行進行方向の運動は、揺動自由とした足首関節の進行方向の関節角の角度と角速度が既知であって、足踏み運動の周期が既知であれば、特定することができる。揺動自由とした足首関節の進行方向の関節角の角度と角速度は、その足首関節の関節角の経時的変化から知ることができる。足踏み運動の周期は、例えば歩行中に計測してもよいし、揺動自由とした足首関節の体側方向の関節角の経時的変化から、ロボットの動力学特性に基づいて算出してもよい。
【００１２】
揺動自由とした足首関節の進行方向の関節角の角度と、角速度と、足踏み運動の周期と、胴部の傾きと、実現される歩幅との関係については、例えば試験により予め取得しておいてもよいし、ロボットの動力学特性に基づいて算出してもよい。
【００１３】
上記した歩幅の制御では、接地脚リンクを入れ替える時点ごとに、そのときの揺動自由としていた関節角の経時的変化と、足踏み運動の周期と、目標とする歩幅とに基づいて、目標とする胴部の傾きを特定する。歩行を継続している際に、外乱が作用して歩行の態様が変化した場合であっても、そのときの歩行の態様から胴部の傾きを調整して、所望の歩幅での歩行を実現することができる。
【００１４】
本発明はロボットの制御方法としても具現化される。その方法は、足首関節を持つ脚リンクが股関節によって胴部に揺動可能に連結されており、その脚リンクが２以上存在するロボットの制御方法であり、接地脚リンクの足首関節の体側方向の関節角と進行方向の関節角を揺動自由とする工程と、揺動自由とした足首関節の体側方向の関節角と進行方向の関節角を計測する工程と、計測された足首関節の体側方向の関節角と進行方向の関節角に基づいて、残余の関節の目標関節角を計算する工程と、残余の関節角を計算された目標関節角に調整する工程と、脚リンクの先端が接地して浮遊して再度接地する繰返し現象の進行に合わせて揺動自由とする足首関節を切替えることによって、揺動自由とする足首関節を接地脚リンクの側に維持する工程とを備え、計測された足首関節の体側方向の関節角と進行方向の関節角に基づいて残余の関節の目標関節角を計算する際に、（１）目標関節角に調整したときの重心位置が、体側方向に関しては接地脚リンクの接地位置と遊脚リンクの接地予定位置の間において遊脚リンクの接地予定位置に向けて移動し、進行方向に関しては遊脚リンクの接地予定位置に向けて移動し、（２）遊脚リンクが接地するときに、股関節が接地脚リンクの先端より前方に位置し、かつ遊脚リンクの先端が股関節より前方に位置し、（３）胴部の傾きが、揺動自由とした足首関節の進行方向の関節角の経時的変化と、前記繰返し現象の周期と、目標とする歩幅とに基づいて決定される目標傾き角に一致する、という３つの関係を満たす目標関節角を計算することを特徴とする。
【発明の効果】
【００１５】
本発明のロボット制御技術によると、受動的で自然に変化する事象を利用しつつ、目標とする歩幅で歩行することができる。これは人間の歩行パターンによく一致しており、自然な歩容動作が得られる。またロボットのダイナミクスに無理なく適応しており、小さな消費エネルギで歩行することを可能とする。さらに受動的で自然に変化する現象を利用して歩行することから、人間がその変化を止めてやるとロボットは歩行動作を停止する。人が手を差し伸べることでロボットが停止するために、人とロボットが共存しやすく、高い安全性を確保することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を具現化した実施例について図面を参照して説明する。
【実施例】
【００１７】
図１は、ロボット２１の機械構成のスケルトン図を示す。股関節に２軸、膝関節に１軸、足首関節に２軸、肩関節に２軸、肘関節に１軸を備えている。各関節にエンコーダ付のモータを備えており、関節角を調整でき、関節角を計測することができる。θ１〜θ１０は関節角を示す。参照番号１７，１８は力センサを示し、１９，２０はホトセンサを示す。ホトセンサ１９，２０は、足平が接地しているのか浮遊しているのかを検出する。
図２は、ロボットのコントローラ２２の構成を示し、エンコーダ１〜１０の出力と、力センサ１７，１８の出力と、ホトセンサ１９，２０の出力を入力する。コントローラ２２は、モータ１〜１０に回転角を指示する。
【００１８】
図３は、歩行するロボットを正面から見た図を示し、（１）は右足で踏ん張っている状態を示し、（ａ）は（１）の状態から左傾して左足が接地する直前の状態を示し、（２）は左足が接地した状態を示し、（３）は（２）の状態からさらに左傾して左足で踏ん張っている状態を示し、（４）は（３）の状態から右傾して右足が接地した状態を示し、（５）は（４）の状態からさらに右傾して右足で踏ん張っている状態を示している。（１）と（５）は同一状態であり、（３）の状態と左右対称であり、（２）と（４）は左右対称である。
このロボット２１は、コントローラ２２によって、図３の（１）、（２）、（３）、（４）、（１）の状態を繰り返して左右に足踏みする動作を実現する。
【００１９】
図４は、歩行するロボットを側面から見た図を示している。図４の（１）、（ａ）、（２）、（３）、（４）、（５）の状態は、それぞれ図３の（１）、（ａ）、（２）、（３）、（４）、（５）の状態に対応している。（１）は右足を接地させて左足を浮遊した状態を示し、（ａ）は（１）の状態から前方に重心が移動して左足が接地する直前の状態を示し、（２）は左足が前方に接地した状態を示し、（３）は（２）の状態から右足が浮遊してさらに前方に重心が移動した状態を示し、（４）は（３）の状態から前方に重心が移動して右足が前方に接地した状態を示し、（５）は（４）の状態から左足が浮遊してさらに前方に重心が移動した状態を示している。（１）と（５）は同一状態である。
このロボット２１は、コントローラ２２によって、図３に示す足踏み動作に同期して、図４に示す歩行動作を実現して、前方に歩行していく。
【００２０】
図２に示すように、コントローラ２２は相判定手段２４をもち、判定された相によって、制御内容を切替える。相は、図３および図４に示すように、状態（１）から（２）までの右脚支持Ａ相と、状態（２）から（３）までの左脚支持Ｂ相と、状態（３）から（４）までの左脚支持Ａ相と、状態（４）から（５）までの右脚支持Ｂ相に分けられている。
【００２１】
図５は、左右に足踏みするロボット２１の、右足首の体側方向の関節の関節角θ９の時間的変化を示し、（１）の状態では−α（これがこの関節の最大関節角）であり、ｋα（ｋは１以下の定数）まで回転すると（２）の状態となって左足が接地し、（３）の状態では＋α（これがこの関節の最大関節角）であり、−ｋαまで回転すると（４）の状態となって右足が接地し、（５）の状態では−αとなって（１）の状態に戻る。
図６は、相判定手段２４による判定処理手順の一例を示し、右足首の体側方向の関節の関節角θ９によって相を判別する。ステップＳ２でθ９＝αであれば、左脚支持Ａ相であると判別する（ステップＳ４）。ステップＳ６でθ９＝−αであれば、右脚支持Ａ相であると判別する（ステップＳ８）。θ９が増大中で−α以上でｋα未満であれば、右脚支持Ａ相であると判別する（ステップＳ１４）。θ９が増大中でｋα以上であれば、左脚支持Ｂ相であると判別する（ステップＳ１６）。θ９が減少中でα以下で−ｋαよりも大きければ、左脚支持Ａ相であると判別する（ステップＳ２０）。θ９が減少中で−ｋα以下であれば、右脚支持Ｂ相であると判別する（ステップＳ２２）。
この相判定処理手順は一例に過ぎず、他に様々な手順が可能である。力センサ１７，１８やホトセンサ１９，２０の情報を活用して判定することもできる。
【００２２】
図２に示すコントローラ２２は、相判定手段２４の判定結果によって制御内容を切替える。
図２の（１）は、右脚支持状態での制御内容を示す。右脚支持状態では、次のように制御する。
１．接地脚の足首の体側方向の関節（この場合θ９）と進行方向の関節（この場合θ１０）のモータを回転自由とし、勝手に回転するのに任せる。関節θ９とθ１０を受動関節（フリー関節）とし、受動的に回転するのに任せる。
２．受動的に回転する関節角θ９とθ１０を計測する。
３．計測された関節角θ９に基づいて、接地脚の股関節の体側方向の関節（この場合θ７）の目標関節角を計算する。
４．遊脚の股関節の体側方向の関節（この場合θ２）の目標関節角をθ７に等しくする。この結果、接地脚リンクと遊脚リンクが進行方向からみて平行に維持される。
５．遊脚の足首関節の体側方向の関節（この場合θ４）の目標関節角をθ９に等しくする。この結果、接地脚の脚平と遊脚の脚平が平行に維持される。
６．膝関節（θ３とθ８）については、膝をまっすぐに伸ばした角度（ここではそれを０とする）に維持する。
７．計測された関節角θ１０に基づいて、接地脚の股関節の進行方向の関節（この場合θ６）の目標関節角を−θ１０＋γに等しくする。γは地面に対して垂直な方向からの胴部の傾きの目標値である。γの計算内容については後記する。
８．遊脚の股関節の進行方向の関節（この場合θ１）の目標関節角を−θ１０−γに等しくする。これによって、遊脚が進行方向に踏み出される。
９．遊脚の足首関節の進行方向の関節（この場合θ５）の目標関節角を−θ１０に等しくする。これによって、遊脚の足平と接地脚の足平が平行に維持される。
【００２３】
図２の（２）は、左脚支持状態での制御内容を示す。左脚支持状態では、次のように制御する。
１．接地脚の足首の体側方向の関節（この場合θ４）と進行方向の関節（この場合θ５）のモータを回転自由とし、勝手に回転するのに任せる。関節θ４とθ５を受動関節（フリー関節）とし、受動的に回転するのに任せる。
２．受動的に回転する関節角θ４とθ５を計測する。
３．計測された関節角θ４に基づいて、接地脚の股関節の体側方向の関節（この場合θ２）の目標関節角を計算する。この計算内容については後述する。
４．遊脚の股関節の体側方向の関節（この場合θ７）の目標関節角をθ２に等しくする。この結果、接地脚リンクと遊脚リンクが進行方向からみて平行に維持される。
５．遊脚の足首関節の体側方向の関節（この場合θ９）の目標関節角をθ４に等しくする。この結果、接地脚の脚平と遊脚の脚平が平行に維持される。
６．膝関節（θ３とθ８）については、膝をまっすぐに伸ばした角度（ここではそれを０とする）に維持する。
７．計測された関節角θ５に基づいて、接地脚の股関節の進行方向の関節（この場合θ１）の目標関節角をθ５−γに等しくする。γは地面に対して垂直な方向からの胴部の傾きの目標値である。γの計算内容については後記する。
８．遊脚の股関節の進行方向の関節（この場合θ６）の目標関節角をθ５＋γに等しくする。これによって、遊脚が進行方向に踏み出される。
９．遊脚の足首関節の進行方向の関節（この場合θ１０）の目標関節角を−θ５に等しくする。これによって、遊脚の足平と接地脚の足平が平行に維持される。
【００２４】
図２に示すように、コントローラ２２は、相判定手段２４を備え、判定された相に基づいて、モータ４とモータ５あるいはモータ９とモータ１０の何れか一方の組をフリーとし（２６）、フリーとした関節の回転角（θ４とθ５またはθ９とθ１０）を計測し（２８）、計測された関節角によってその他のモータの目標関節角を計算し（３０）、その他のモータの関節角を目標関節角に調整する（３４）。その他のモータの関節角を計算するときに、以下に説明する体側方向重心推移モデルと進行方向重心推移モデルを利用する。
【００２５】
以下では体側方向の重心推移モデルについて説明する。
図７に示すように、状態（１）で右足が踏ん張ってθ９＝−αに維持されている場合、ロボットの重心位置はＷ１の位置にある。状態（１）から左傾して左足が接地したときのθ９がｋαであれば、θ９＝ｋαのときのロボットの重心位置はＷ２の位置にある。
状態（１）以降、即ち、右脚支持Ａ相では、フリーにする関節角θ９に応じて重心位置が変化し、θ９＝−αでは重心位置がＷ１にあり、ロボットが左傾するにつれて重心位置がＷ１からＷ２に向けて移動し、θ９＝ｋαのときの重心位置がＷ２にあるようにすれば、状態（１）から状態（２）に変化する。
ロボットのラテラル面（歩行進行方向に対して垂直な面）の重心位置は、θ２、θ４、θ７、θ９で決定される。右脚支持状態では、θ９がフリーであり（計測はできるがアクティブに制御することはしない）、θ４はθ９に等しく、θ２はθ７に等しくされ、θ７がθ９によって計算される。θ９からθ７を計算するにあたって、計算されたθ７を利用してロボットの姿勢を調節したときのロボットの重心位置が、θ９＝−αのときの重心位置がＷ１にあり、ロボットが左傾するにつれて重心位置がＷ１からＷ２に向けて移動し、θ９＝ｋαのときの重心位置がＷ２にあるようにすれば、ロボットは、状態（１）から状態（２）に変化する。
θ９＝−αのときの重心位置Ｗ１は、右脚の接地位置よりも左方向にあり、それ以上には右傾することがない。ロボットは右側に転倒することがない。重心位置Ｗ１は、右脚の接地位置よりも左方向にあり、関節θ９を自由にすれば左傾する。
【００２６】
関節θ７の目標関節角は、計測されるθ９に対して、例えばロボットのラテラル面内における重心の位置がＷ１からＷ２に向けて直線的に移動するように、幾何学的な関係に基づいて、計算することができる。上記によってθ７を計算し、計算された関節角θ７に調整すると、ロボットの重心位置は、θ９＝−αのときにＷ１にあり、ロボットが左傾するにつれてＷ１からＷ２に向けて移動し、θ９＝ｋαのときにＷ２に移動する関係が得られる。
【００２７】
図７には、状態（２）から状態（３）における重心位置の推移も示しており、左足が踏ん張ってθ４＝αに維持されているときの重心位置がＷ３で示されている。θ４の変化に追従してθ２、θ７、θ９を制御することによって状態（３）では重心位置がＷ３に来るようにすれば、ロボットは状態（２）から状態（３）に変化する。
左脚支持Ｂ層では、θ４からθ２を計算し、θ７＝θ２、θ９＝θ４に制御するところ、ロボットの重心位置が、θ４＝−ｋαのときにＷ２にあり、ロボットが左傾するにつれてＷ２からＷ３に向けて移動し、θ４＝αのときにＷ３に移動する関係が得られれば、ロボットは状態（２）から状態（３）に変化する。この場合も、上記したθ７の計算と類似の方法を用いて、θ４からθ２を計算することができる。
θ４＝αのときの重心位置Ｗ３は、左脚の接地位置よりも右方向にあり、それ以上には左傾することがない。ロボットは左側に転倒することがない。重心位置Ｗ３は、左脚の接地位置よりも右方向にあり、関節θ４を自由にすれば右傾する。
【００２８】
図７には、状態（３）から状態（４）における重心位置の推移も示しており、ロボットが右傾してθ４が−ｋαで右足が接地したときの重心位置がＷ４の位置にあれば、ロボットは状態（３）から状態（４）に変化する。
同様に、状態（４）から状態（１）における重心位置の推移も示しており、ロボットがさらに右傾してθ９が−αで踏ん張っているときの重心位置がＷ１の位置にあれば、ロボットは状態（４）から状態（１）に変化する。
【００２９】
ラテラル面内での重心位置は、Ｗ１からＷ３の間にあるが、それは、左右の脚リンクの体側方向での接地位置の間Ｌにおいて存在している。左脚リンクが遊脚リンクになっている間の重心位置は、左脚リンクの接地位置に向けて移動し、右脚リンクが遊脚リンクになっている間の重心位置は右脚リンクの接地位置に向けて移動する。
状態（１）から（２）の右脚支持Ａ相では、重心位置が下降するために現象が自然に進行する。状態（２）から（３）の左脚支持Ｂ相では、重心位置が上昇するが、ロボットは状態（１）から（２）で左傾運動をしており、その慣性が存在することから重心位置が上昇する現象が自然に進行する。同様に、状態（３）から（４）の左脚支持Ａ相では、重心位置が下がるために現象が自然に進行する。状態（４）から（１）の右脚支持Ｂ相では、重心位置が上がるが、ロボットは状態（３）から（４）で右傾運動をしており、その慣性が存在することから重心位置が上がる現象が自然に進行する。
【００３０】
状態（１）から（４）の繰返し運動は、三角柱が反発係数１の床の上で振り子運動を繰り返すのに似ており、小さなエネルギで運動を持続することができる。揺動ないし回転自在とした関節の摩擦がなければ、状態（１）から（４）の繰返し運動が減衰することなく繰り返される。実際には、摩擦が存在する。回転自在とした関節のモータに、摩擦を相殺するだけのトルクを与えることによって、摩擦が存在しない状態を作り出すことができる。本発明で関節をフリーにするというのは、モータに電流を加えないで受動回転を許容するようにすることのみならず、摩擦を相殺するだけのトルクを与えることによって実質的には摩擦が存在しない状態とすることの両者を言う。
【００３１】
以下では進行方向の重心推移モデルについて説明する。
状態（１）から（４）の繰返し運動は、左右の脚の足踏み運動を実現する。この左右の脚の足踏み運動に同期して遊脚を踏み出す動作を加えると、ロボットは進行する。このとき、左右の傾動を利用することから遊脚の膝を曲げないでも遊脚は空中を移動する。
図８には、ロボットのサジタル面（ロボットの歩行進行方向と、鉛直方向を含む面）内での重心の移動の様子が示されている。図８では、説明のために、体側方向の揺動に伴う重心の上下動が図示されていないが、実際の重心の移動軌跡には体側方向の揺動に伴う重心の上下動が重畳される。
状態（１）では、右足を支持脚として、左足を遊脚としている。ロボットが前方に歩行する現象が継続している場合、ロボットの重心には前方に向けた慣性が存在する。右足の進行方向の足首関節θ１０をフリーとしているため、ロボットの重心は右足の足首関節を支点とする倒立振子の挙動を示し、前方に向けて移動する。このときロボットの胴部は、θ８＝０、θ６＝−θ１０＋γとしているから、鉛直上方からγだけ前方に傾いた姿勢を保ちながら前方へ移動する。脚リンクの股関節も重心の移動に合わせて前方へ移動する。遊脚である左足は、θ１＝−θ１０−γ、θ３＝０としているから、股関節をはさんで右足と対称となるように、前方へ向けて振り出される。左足の足平は、θ５＝−θ１０としているため、右足の足平と平行になっている。
体側方向の足踏み動作の結果、左足が接地して状態（２）になると、ロボットは左傾して支持脚を右足から左足へ切替え、左足の進行方向の足首関節θ５をフリーとする。ロボットの重心には前方に向けた慣性が存在するため、ロボットの重心は左足の足首関節を支点とする倒立振子の挙動を示し、前方に向けて移動する。このときロボットの胴部は、θ３＝０、θ１＝θ５−γとしているから、鉛直上方からγだけ前方に傾いた姿勢を保ちながら、前方へ移動する。脚リンクの股関節も重心の移動に合わせて前方へ移動する。浮遊して遊脚となった右足は、θ６＝θ５＋γ、θ８＝０としているから、股関節をはさんで左足と対称となるように、前方へむけて振り出される。右足の足平は、θ１０＝−θ５としているため、左足の足平と平行になっている。
状態（３）では、左足を支持脚として、右足を遊脚としている。ロボットの重心には前方に向けた慣性が存在するため、ロボットの重心は左足の足首関節θ５を支点とする倒立振子の挙動を示し、前方に向けて移動する。脚リンクの股関節も重心の移動に合わせて前方へ移動し、遊脚である右足は、股関節をはさんで左足と対称となるように、前方へ向けて振り出される。
体側方向の足踏み動作の結果、右足が接地して状態（４）になると、ロボットは右傾して支持脚を左足から右足へ切替え、右足の進行方向の足首関節をフリーとする。ロボットの重心には前方に向けた慣性が存在するため、ロボットの重心は右足の足首関節θ１０を支点とする倒立振子の挙動を示し、前方に向けて移動する。脚リンクの股関節も重心の移動に合わせて前方へ移動し、遊脚である左足は、股関節をはさんで右足と対称となるように、前方へ向けて振り出され、状態（１）へ移行する。
状態（１）から（４）の繰返し運動は、小さなエネルギーで運動を持続することができる。揺動ないし回転自在とした関節の摩擦と、遊脚の接地に伴うエネルギー損失がなければ、状態（１）から（４）の繰返し運動が減衰することなく繰り返される。実際には上記の摩擦およびエネルギー損失が存在する。回転自在とした関節のモータに、摩擦を相殺するだけのトルクを与えることによって、摩擦が存在しない状態を作り出すことができる。
【００３２】
上記したロボットのサジタル面内の運動は、ロボットの重心位置に依存して、様子が変化する。ロボットの重心位置は、例えば胴部を前方に傾けることによって、変化する。
図９にロボットのサジタル面内の運動と、胴部の傾きとの関係を示す。図には、左足が接地して右足を浮遊させるとき（状態（２））から、ロボットの重心が前方へ移動して、右足を接地させるとき（状態（４））までの運動を示している。破線で示す運動が胴部を傾けない場合の運動であり、実線で示す運動が胴部を傾けた場合の運動である。胴部を傾けた場合の重心位置をＷ２〜Ｗ４で示し、胴部を傾けない場合の重心位置をＷ２’〜Ｗ４’で示す。
胴部が傾くほど、ロボットの重心位置は歩行進行方向に対して前方下方に移る。重心位置が前方下方に移ると、支持脚の足首関節から重心までの距離は、状態（２）から状態（３）へ移り状態（４）へ移行するまでの間で、平均的に短いものとなる。
上記したサジタル面内での運動は、支持脚の足首関節を回転自由として自然な動きを実現するため、支持脚の足首関節から重心までの距離が短くなるほど、重心は速く前方へ進み、遊脚の先端も速く前方へ進む。
従って、足踏み運動の周期が同一の場合には、胴部を傾けるほど遊脚の先端は遠くまで到達し、ロボットの歩幅は広がる。
【００３３】
上記した胴部の傾きと歩幅との関係を用いることで、ロボットの歩幅を安定化することができる。遊脚を着地した直後の支持脚の進行方向の関節（θ１０あるいはθ５）の角度の経時的変化と、足踏み運動の周期と、目標とする歩幅とから、前記歩幅を実現するための胴部の傾きγを特定して、その胴部の傾きが実現するように他の関節角を調整する。
目標とする歩幅に対する胴部の傾きγの特定は、例えば対応表を用いることによって実現することができる。ロボットの歩行試験を実施して、フリーとしている関節の角度、角速度、足踏み運動の周期、胴部の傾きと、そのときの歩幅との関係を予め取得しておき、対応表を作成して、コントローラ２２に記憶しておく。フリーとしている関節の角度と角速度は、その関節の関節角の経時的変化を計測しておくことで、算出することができる。足踏み運動の周期は、例えば右脚支持Ａ相から左脚支持Ｂ相へ切り替わったタイミングから、左脚支持Ａ相から右脚支持Ｂ相へ切り替わったタイミングまでの時間を、歩行中に計測しておくことによって、取得することができる。コントローラ２２は、計測される関節の角度と、角速度と、足踏み運動の周期と、目標とする歩幅とから、対応表を用いて、目標とする胴部の傾きを算出する。目標とする胴部の傾きでロボットは歩行し、所望の歩幅での歩行が実現される。
【００３４】
上記したように、遊脚が着地した時点で胴部の傾きを調整して、次に遊脚が着地するまでの期間におけるロボットの運動を制御することによって、所望の歩幅を実現することができる。上記のように制御することで、ロボットが歩行を継続している間に、外乱の影響を受ける場合であっても、安定した歩幅で歩行を継続することが可能となる。
【００３５】
以上、本発明の実施形態について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００３６】
【図１】図１はロボットの機械構成を示すスケルトン図である。
【図２】図２はロボットのコントローラの構成を示す図である。
【図３】図３はロボットの左右の足踏み運動と、制御内容を対照して示す図である。
【図４】図４はロボットの前方への歩行運動と、制御内容を対照して示す図である。
【図５】図５は関節角θ９の時間的変化を示す図である。
【図６】図６は相判別処理手順を例示する図である。
【図７】図７は重心位置のラテラル面内での移動軌跡を示す図である。
【図８】図８は重心位置のサジタル面内での移動軌跡を示す図である。
【図９】図９は胴部の傾きと歩幅の関係を示す図である。
【図１０】図１０は従来のロボットの教示技術を示す図である。
【符号の説明】
【００３７】
θ１：左股関節の進行方向の関節
θ２：左股関節の体側方向の関節
θ３：左膝関節
θ４：左足首の体側方向の関節
θ５：左足首の進行方向の関節
θ６：右股関節の進行方向の関節
θ７：右股関節の体側方向の関節
θ８：右膝関節
θ９：右足首の体側方向の関節
θ１０：右足首の進行方向の関節
【図１】
2006082146.tif 000003
【図２】
2006082146.tif 000004
【図３】
2006082146.tif 000005
【図４】
2006082146.tif 000006
【図５】
2006082146.tif 000007
【図６】
2006082146.tif 000008
【図７】
2006082146.tif 000009
【図８】
2006082146.tif 000010
【図９】
2006082146.tif 000011
【図１０】
2006082146.tif 000012