(57)【特許請求の範囲】
【請求項１】
脚式ロボットの歩行制御において，目標とする歩行方向と速度を表す水平方向のベクトル（以下，目標歩行速度ベクトルと呼ぶ）に平行な鉛直面（平面Ａとする）と，平面Ａと直交する鉛直面（平面Ｂとする）に歩行運動を分離し，平面Ａを用いて目標の歩行方向への歩行速度に関する制御を行い，平面Ｂを用いて，遊脚を持ち上げることによって生じる脚式ロボットの体幹（胴体）の横方向の揺れ（以下，この振動を「体幹の横揺れ」と呼ぶ）を制御する工程を有することを特徴とする脚式ロボットの歩行制御方法．
【請求項２】
脚式ロボットの全体または一部分の重心点，または脚式ロボット内の特定の点，（以下，これらの点を「脚式ロボットの特定点」と呼ぶ）を前記平面Ａに射影し（この射影点を射影点ａとする），平面Ａにおける射影点ａの現在の速度の水平成分と目標の歩行速度との偏差をもとに，支持脚の伸長力（支持脚を伸ばす力）を決定する工程を有することを特徴とする請求項１記載の脚式ロボットの歩行制御方法．
【請求項３】
脚式ロボットの特定点を前記平面Ｂに射影し（この射影点を射影点ｂとする），平面Ｂにおける射影点ｂの現在の速度の水平成分と，体幹の横揺れに伴う前記特定点の横揺れに関する目標速度との偏差をもとに，支持脚の伸長力を決定する工程を有することを特徴とする請求項１記載の脚式ロボットの歩行制御方法．
【請求項４】
脚式ロボットが歩行するために必要な力を支持脚の伸長によって得る際，脚式ロボットの特定点の加速制御，減速制御，横揺れ制御（体幹の横揺れに伴う前記特定点の横揺れの制御），高さ制御，のために必要な力を個別に求め，これらの力を加算することにより支持脚の伸長力を決定するが，その際，それぞれの制御を行うのに適した空間的な領域を設定し，その上で脚式ロボットの特定点の現在の位置がそれらの領域のうちどの領域にどの程度属しているかの度合いに応じて，前記加速制御，減速制御，横揺れ制御，高さ制御のために個別に求めた力を加算する割合を加減して，支持脚の伸長力を決定する工程を備えたことを特徴とする請求項１記載の脚式ロボットの歩行制御方法．
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は，脚式ロボットの歩行制御方法に関する．詳しくは，設定された目標の進行方向および目標速度に追従する歩行制御法に関する．
【背景技術】
【０００２】  脚式ロボットの歩行を制御する技術において，ＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）に基づいた制御方法（「非特許文献１，２」参照）が脚式ロボットの実用化の側面で大きな成果を挙げている．このＺＭＰ規範の制御を備えた脚式ロボットの中には走行が可能なものも実現されており，速度や安定性の面において人間の歩行・走行に近いものになりつつある．
【非特許文献１】梶田：“ゼロモーメントポイント（ＺＭＰ）と歩行制御”，日本ロボット学会誌，Ｖｏｌ．２０，Ｎｏ．３，ｐｐ．２２９−２３２，２００２．
【非特許文献２】高西：“上体の運動によりモーメントを補償する２足歩行ロボット”，日本ロボット学会誌，Ｖｏｌ．１１，Ｎｏ．３，ｐｐ３４８−３５３，１９９３．
【発明の開示】
【発明が解決しようとする課題】
【０００３】  しかしＺＭＰ規範の歩行制御は非常に多くの計算処理を必要とする．そこでより少ない計算処理で自在な歩行が行える脚式ロボットの歩行制御方法を提案することが本発明における課題である．その際，目標の歩行方向と速度が目標歩行速度ベクトルとして与えられ，これに追従するよう歩行を行うものとする．
【課題を解決するための手段】
【０００４】  本発明における課題解決の手段には３つの要点がある．以下それらについて説明を行う．まず一点目は歩行制御に用いるＳａｇｉｔｔａｌ面とＬａｔｅｒａｌ面の設定の仕方についてである．
脚式ロボットの歩行における運動は，（ａ）歩行方向に進むために生じる前後方向の体幹の動きと，（ｂ）支持脚側に重心を移動させ，遊脚が自由に動けるように地面から持ち上げることによって生じる左右方向の体幹の横揺れ，という２種類の動きから構成されている．脚式ロボットの歩行を制御する際，これら２つの動きをＳａｇｉｔｔａｌ面，Ｌａｔｅｒａｌ面と呼ばれる２つの直交する鉛直平面に分離して制御する手法が知られている．その際，Ｓａｇｉｔｔａｌ面には前記（ａ）の動きを抽出し，Ｌａｔｅｒａｌ面には前記（ｂ）の動きを抽出する．従来の技術においては，Ｓａｇｉｔｔａｌ面は脚式ロボットが現在歩行している方向に沿った鉛直面として設定され，またＬａｔｅｒａｌ面はそれと直交する鉛直面として設定される．もしくはロボットの胴体を前後，左右に分割する鉛直面（前頭面，矢状面）をＳａｇｉｔａｌ面，Ｌａｔｅｒａｌ面とする．このような平面設定を行うことで脚式ロボットの左右方向の構造的な対称性が利用できるため，制御が容易になるという利点がある．【０００５】  しかし直線的な歩行のみを対象とする場合はこのような平面設定で問題ないが，２次元平面の上を自由に移動する脚式ロボットを制御対象とする場合は不都合を生じる．例えば歩行する方向を現在の方向から別の方向へ変更しつつ移動をしている途中の状態においては，前記（ａ）の動きと前記（ｂ）の動きを，Ｓａｇｉｔｔａｌ，Ｌａｔｅｒａｌ両平面に正確に分離することができない．そのため複雑な制御が必要となる．【０００６】  本発明では，この問題を解消するためにＳａｇｉｔｔａｌ面を現在のロボットの歩行方向や体幹の向きとは無関係に設定する．具体的には目標歩行速度ベクトルに水平な鉛直面をＳａｇｉｔｔａｌ面として定義し（請求項１記載の平面Ａ），これと直交する鉛直面をＬａｔｅｒａｌ面として定義する（請求項１記載の平面Ｂ）．これにより前記（ａ），（ｂ）の動きを両平面に分離して考えることができ，容易に歩行制御を行うことが可能となる．なお，目標の歩行速度が０に設定されたときはＳａｇｉｔｔａｌ面（平面Ａ）が設定できないが，この場合は直前までの平面Ａをそのまま用いるか，胴体を前後，左右に分割する鉛直面等で代用すればよい．【０００７】  請求項１に示したように，課題解決手段の一つ目の要点をまとめると次のようになる．脚式ロボットの歩行制御において，目標歩行速度ベクトルに平行な鉛直面（平面Ａ）と，それと直交する鉛直面（平面Ｂ）に歩行運動を分離し，平面Ａを用いて目標の歩行方向への歩行速度に関する制御を行い，平面Ｂを用いて，脚式ロボットの体幹の横揺れを制御する．【０００８】  課題解決手段の二つ目の要点は，支持脚の伸長力の決定方法に関してである．本発明で対象とする脚式ロボットでは支持脚を伸長することにより体幹が押され，この力を利用してロボットの歩行が行われる．歩行中の支持脚は後述するように，加減速や体幹の横揺れの制御など複数の役割を担っており，これらの要素を総合的に考慮した上で支持脚の伸長力を決定する必要がある．まずはそれぞれの役割を担うためにはどの程度の伸長力が必要となるかについて，個別に説明する．【０００９】  まず支持脚の役割のひとつである歩行速��の加速または減速の制御について述べる．これは請求項１に示したように前記平面Ａを利用して行われるが，より詳しくは次のように制御を行う．脚式ロボットの特定点を前記平面Ａに射影し（射影点ａとする），射影点ａの現在の速度の水平成分と目標の歩行速度との偏差をもとに，支持脚の伸長力（支持脚を伸ばす力）を決定する．その際，Ｐ制御，ＰＤ制御，ＰＩＤ制御，ファジイ制御，ニューラルネットワーク制御のうちの一つ以上の手法を用いて伸長力を決定する．以上を請求項２として記載した．ただし前述のように支持脚の伸長力は，上記速度偏差のみではなく他の要素も考慮した上で決定される．【００１０】  次に前記平面Ｂを利用した体幹の横揺れを制御する方法について述べる．請求項３に示したように，脚式ロボットの特定点を前記平面Ｂに射影し（射影点ｂとする），射影点ｂの現在の速度の水平成分と，体幹の横揺れに伴う前記特定点の横揺れに関する目標速度との偏差をもとに，支持脚の伸長力を決定する．ここで特定点の横揺れに関する目標速度とは，体幹の横揺れに関する目標軌道にもとに求められる値である．例えば射影点ｂの位置及び／または速度を入力として，その時点での射影点ｂがとるべき最適な速度を返すような関数を事前に定義しておき，その出力値を目標速度として用いることができる．これらの値をもとに，Ｐ制御，ＰＤ制御，ＰＩＤ制御，ファジイ制御，ニューラルネットワーク制御のうちの一つ以上の手法を用いて伸長力を決定する．【００１１】  次に脚式ロボットの特定点の高さ制御に関して，目標の高さと現在の高さとの偏差をもとに支持脚の伸長力を決定する．この力もＰ制御，ＰＤ制御，ＰＩＤ制御，ファジイ制御，ニューラルネットワーク制御等を用いて決定することができる．【００１２】  以上のように求めた支持脚の伸長力をもとにして最終的に支持脚が出力すべき力をどのように決定するかについて述べる．脚式ロボットが歩行するために必要な力を支持脚の伸長によって得る際，
（ａ）脚式ロボットの特定点の加速制御，
（ｂ）脚式ロボットの特定点の減速制御，
（ｃ）脚式ロボットの特定点の横揺れ制御
（体幹が横揺れに伴う特定点の横揺れの制御），
（ｄ）脚式ロボットの特定点の高さ制御，
のために必要な力を個別に求め，これらの力を加算することにより支持脚の伸長力を決定する．その際，それぞれの制御を行うのに適した空間的な領域を設定し，その上で脚式ロボットの特定点の現在の位置がそれらの領域のうちどの領域にどの程度属しているかの度合いに応じて，前記（ａ）〜（ｄ）のために個別に求めた力を加算する割合を加減して，支持脚の伸長力を決定する．以上を請求項４として記載した．【００１３】  さらに，上述の「それぞれの制御を行うのに適した空間的な領域」について具体的に示すと次のようになる．支持脚の接地点を原点とする３次元空間において，
（ｅ）上記（ａ）の制御のために用いる空間的な領域を目標の歩行方向（前方向）に，
（ｆ）上記（ｂ）の制御のために用いる空間的な領域を目標の歩行方向と逆方向（後方向）に，
（ｇ）上記（ｃ）の制御のために用いる空間的な領域を目標の歩行方向及び鉛直方向の両方に直交する方向（左右方向）に，
（ｈ）上記（ｄ）の制御のために用いる空間的な領域を鉛直上向き方向に，
それぞれ設定する．その上で脚式ロボットの特定点の現在の位置が上記４つの領域のうちどの領域にどの程度属しているかの度合いに応じて，前記（ａ）〜（ｄ）のために個別に求めた力を加算する割合を加減して，支持脚の伸長力を決定する．ただし（ｇ）の領域は左右方向となっているが，これは支持脚が右脚のときは目標の歩行方向に向かって左側にある領域を，支持脚が左脚のときは目標の歩行方向に向かって右側にある領域を用いる．以上を請求項５として記載した．【００１４】  課題解決手段の三つ目の要点は遊脚の着地目標位置の算出方法についてである．まず支持脚の接地点を原点とし目標歩行速度ベクトル方向にｘ軸，鉛直方向上向きにｚ軸，それらと直交するようにｙ軸をとったローカル座標系Σａを考える．遊脚の着地目標位置のｘ座標は以下の値を用いて決定する．
（ア）脚式ロボットの特定点のｘ座標
（イ）脚式ロボットの特定点の現在の速度のｘ成分
（ウ）脚式ロボットの特定点の現在の速度のｘ成分と目標歩行速度ベクトルの大きさとの偏差
具体的には上記の値をもとにＰ制御，ＰＤ制御，ＰＩＤ制御，ファジイ制御，ニューラルネットワーク制御のうちの一つ以上の手法を用いて決定する．以上を請求項６として記載した．【００１５】  また着地目標位置のｙ座標は以下の値を用いて決定する．
（エ）脚式ロボットの特定点のｙ座標
（オ）脚式ロボットの特定点の現在の速度のｙ成分
具体的には，（オ）の値に制御ゲインを乗じた値と（エ）の値とを加算した値を用いる方法，または（エ）の値と（オ）の値を入力とするファジイ制御を用いた方法，または（エ）の値と（オ）の値を入力とするニューラルネットワーク制御を用いた方法の３つのうちの一つ以上を用いて遊脚の着地目標位置のｙ座標を決定する．これを請求項７として記載した．【００１６】  以上をさらに具体的に示すと次のようになる．着地目標位置のｘ座標は前記（ア）の値と，前記（イ）と（ウ）の値に制御ゲインを乗じた値とを加算して求めた値を用いて決定し，着地目標位置のｙ座標は，（オ）の値に制御ゲインを乗じた値と（エ）の値とさらに脚式ロボットが歩行する際の左右の脚幅に応じて決められた値とを加算して求められた値を用いて決定する．以上を請求項８として記載した．さらに安定性の良い歩行制御を行うには，脚式ロボットの特定点のｚ座標や速度偏差の微分値や積分値も考慮して着地目標位置を決定するとよい．【００１７】  以上に説明した請求項１〜３，請求項４と５，及び請求項６〜８記載の方法について，個別に用いても課題を解決するために効果を発揮するが，合わせて用いることでより良い歩行制御が可能となる．そのためこれらの請求項の組み合わせを請求項９〜１７に記載した．
【発明の効果】
【００１８】  本発明の歩行制御方法を用いることにより，少ない計算処理で自在な歩行が可能となる．そのため安価な計算機や制御装置を用いて，自在な歩行が行える脚式ロボットを開発することが可能となる．
【発明を実施するための最良の形態】
【００１９】
0004840649.tif 000002
ように脚式ロボットの歩行制御を行う．図２に示すロボットは，体幹と体幹に接続された脚を有し，人とおなじように接地している脚（支持脚）と接地していない脚（遊脚）を交互に切換えながら歩行を行う．さらに脚の膝の部分に配置されているリニアアクチュエータにより脚の伸縮が可能である．また体幹と脚の接続部分にはモータを備えており，体幹と脚の角度を自由に変更できる．また支持脚の最上部のモータ（モータ２またはモータ８）を用いて体幹の向きを変更でき，遊脚の最上部のモータ（モータ２またはモータ８）を用いて遊脚のつま先の向きを変更できる．足首に配置された左右２つずつのモータに関して，遊脚のモータは着地の際にその衝撃を和らげるために用いられ，歩行中の支持脚のモータは脱力状態を維持する．なお本実施例の脚式ロボットは膝部にリニアアクチュエータを用いているが，代わりにモータを人間の膝とおなじような形で配置した場合でも，リニアアクチュエータを使用した場合と同様に本発明を実施することが可能である．またロボットに搭載した各種センサ（モータに設けられた回転角度検出装置や傾斜センサ，ジャイロ，方位センサ等）によって，脚式ロボットの特定点の速度や前記ローカル座標系Σａにおける位置等，歩行制御に必要な値を得ることができる．【００２０】  前術のように目標歩行速度ベクトルに平行な鉛直面をＳａｇｉｔｔａｌ面とし，これに直交する鉛直面をＬａｔｅｒａｌ面とする．また本実施例では，脚式ロボットの特定点として脚式ロボット全体の重心を用いる．まず支持脚の力制御の方法について述べる．請求項４に示したように脚式ロボットの歩行における制御を目的別に，（Ａ）目標歩行速度ベクトルの方向に重心を加速する制御，（Ｂ）目標歩行速度ベクトルと逆向きの方向に減速する制御，（Ｃ）重心の横揺れの制御，（Ｄ）重心の高さの制御，の４つの項目に分類して考える．【００２１】  次に上述の制御目的に対応する４つの領域「加速制御領域」，「減速制御領域」，「揺動制御領域」，「重心高さ制御領域」を，前記ローカル座標系Σａを用いて定義する．その概念図を図１に示す．図１において「揺動制御領域」は左右方向に２つ描かれているが，これは支持脚が右脚のときと左脚のときとで使い分け，支持脚が右脚のときは前記ローカル座標系のｙ軸の正方向に位置する領域を用い，逆に支持脚が左脚のときはｙ軸の負方向に位置する領域を用いる．また図１においては，各領域のイメージをつかみ易くするために，領域の境界を明確に描いたが，実際には上記４つの領域は明確な境界を持っているわけではなく，各領域どうしが重なり合って存在しているものとする．この状態を表現するために，空間上の各点に対して，ある領域にどの程度属しているかという度合い（帰属度）を数値として定義する．ここで定義する帰属度は，領域の中心方向に点が位置している場合ほどその点の帰属度の値は大きく，中心方向から離れるに従って帰属度の値が小さくなるように定義する．例えばファジイ理論で用いられるメンバーシップ関数と同種の意味合いをもつ関数によって定義することができる。具体的には，θｘ，θｙ，θｚをそれぞれ重心の位置ベクトルとｘ，ｙ，ｚ軸とのなす角とし，「加速制御領域」，「減速制御領域」，���揺動制御領域」，「重心高さ制御領域」に対する帰属度を、μｘ＋（θｘ），μｘ−（θｘ），μｙ（θｙ），μｚ（θｚ）なる関数によって定義する．μｘ＋（θｘ）の一例を図３に示す．その他の関数についても同様に定義する．ただしファジイ理論におけるメンバーシップ関数とは異なり，その値域を区間［０，１］に限定する必要はない．【００２２】  次に上記の領域を用いて，どのように支持脚の伸長力を決定するかについて説明する．ロボットが歩行するために必要な力を，前記（Ａ）〜（Ｄ）の制御目的に対応させてＦｘ＋，Ｆｘ−，Ｆｙ，Ｆｚとする。これら４つの制御は互いに干渉しあうが，本実施例では単純にそれぞれに対して独立にＰＤ制御を適用し，以下の数２，数４，数６の力を求める．【００２３】
【数１】
0004840649.tif 000003
【００２４】
【数２】
0004840649.tif 000004
【００２５】
【数３】
0004840649.tif 000005
【００２６】
【数４】
0004840649.tif 000006
【００２７】
【数５】
0004840649.tif 000007
【００２８】
【数６】
0004840649.tif 000008
【００２９】ただしＰｘ±，Ｐｙ，Ｐｚは比例係数，Ｄｘ±，Ｄｙ，Ｄｚは微分係数である．またＦｘ，Ｆｙ，Ｆｚにはそれぞれ上限値，下限値を設けそれらの値を超えるときは上限値または下限値で代用する．また，ｒｅｆνｘは目標歩行速度ベクトルの大きさ，νｘは現在の速度ベクトルのｘ成分とする．またＲνｙは重心の横揺れに関する目標軌道をもとにして得られる速度とする．例えば，Ｌａｔｅｒａｌ平面に射影された重心の位置ベクトルと，ｚ軸とのなす角度及び角速度を入力とし，その入力に対して，重心の横揺れ関する目標軌道をもとにその時点における最適な横揺れの速度を返す関数を定義し，その出力をＲνｙとする．またνｙは現在の速度ベクトルのｙ成分，ｒｅｆｐｚは重心の高さの目標値，ｐｚは現在の重心の高さとする．またＰｙ，Ｄｙについては支持脚の左右に応じてその符号を調整する．【００３０】  脚式ロボットを，目標歩行速度ベクトルに追従して歩行させるためには以上の力をｘ，ｙ，ｚ軸の各方向に加える必要がある．この力は支持脚のリニアアクチュエータを使って体幹に伝えられることになるが，その際，支持脚の接地点から見て脚の付け根の方向のみにしか力を加えることができない．換言すると脚式ロボットの姿勢に応じて体幹を押すことができる方向が限定される．そこで，この制限のもとで適切な力を適切なタイミングで体幹に与えるために，前記の帰属度関数μを一種のフィルタとして用いる．具体的には次式を用いて，その時々のロボットの姿勢に対応する適切な力を求める．【００３１】
【数７】
0004840649.tif 000009
【００３２】  ここで求められた力Ｆを支持脚の伸長力としてリニアアクチュエータを用いて体幹に伝える．なお右辺最終項は，線形倒立振子（［非特許文献３］参照）に用いられる力である．また右辺最終項は通常の倒立振子を表現する際に用いられる力とすることも可能である．
【非特許文献３】梶田，谷：“凹凸路面における動的２足歩行の制御について”，計測自動制御学会論文集，Ｖｏｌ．２７，Ｎｏ．２，ｐｐ．１７７−１８４，１９９１．
【００３３】  続いて支持脚と遊脚の切換えについて説明する．遊脚が地面に設置することによって支持脚となり，その際，これまで支持脚だった脚は持ち上げられて遊脚となり，脚の切換えが行われる．脚の切換えのタイミングは次のようにして決められる．脚式ロボットはセンサを用いて自身の状態を監視し，次の条件のうちの何れかが成立したとき，着地目標位置に遊脚を着地するよう動作を開始する．
条件１．右脚支持の状態で，かつ次式を満たす場合
【数８】
0004840649.tif 000010
または，左脚支持の状態で，次式を満たす場合
【数９】
0004840649.tif 000011
条件２．右脚支持の状態で次式を満たす場合
【数１０】
0004840649.tif 000012
または，左脚支持の状態で次式を満たす場合
【数１１】
0004840649.tif 000013
条件３．次式を満たす場合
【数１２】
0004840649.tif 000014
【００３４】  条件１は重心の位置ベクトルとｚ軸とのなす角が予め設定された値を越えて倒れこんだ場合を表現している．その際支持脚の左右に応じて重心の速度のｙ成分を限定している．また条件２は重心のｙ座標が両脚の外側に出てしまった場合を表す．条件３は脚の長さが一定値を超えた場合を表している．なお脚の切替えは後述の着地目標位置に向かって，遊脚を伸ばすことにより行われる．【００３５】  脚の切換えにおいては，遊脚を適切な位置に着地させることが，安定な歩行を継続させるための重要なポイントとなる．そこで本実施例では，次に述べる方法によって着地目標位置を決定する．脚式ロボットの歩行に対するＳａｇｉｔｔａｌ，Ｌａｔｅｒａｌ面は目標歩行速度ベクトルを基準に設定されているので，Ｓａｇｉｔｔａｌ面に対しては目標の速度を実現するように着地目標位置を決め，Ｌａｔｅｒａｌ面に対しては重心の横揺れを安定化するように遊脚の着地目標位置を決めればよい．この目標位置は目標歩行速度ベクトル，重心の現在の速度ベクトル，及び重心の高さに依存するが，簡単のため本実施例では以下の式を用いてｘ−ｙ平面上の着地位置（ｐｘ，ｐｙ）を決定する．【００３６】
【数１３】
0004840649.tif 000015
【００３７】
【数１４】
0004840649.tif 000016
【００３８】
0004840649.tif 000017
ための左右の足幅に対応した値で，遊脚の左右に応じて符号を逆にする．またＬｘ，Ｌｙは着地点が重心から離れすぎないようにするための定数である．【００３９】  以上に説明した方法を用いて，脚式ロボットの歩行制御を行う．具体的には次の状態を保つことにより目標歩行速度ベクトルに追従するように歩行が行われる．
（Ａ）数７で求まる力Ｆを支持脚の伸長力としてリニアアクチュエータを用いて出力する．
（Ｂ）センサを用いて脚式ロボットの状態を監視し，切換え条件が成立した場合は脚の切換え動作を開始する．その際遊脚の着地目標位置は数１３及び数１４により得られる値を用いる．
【図面の簡単な説明】
【図１】歩行制御を行う際に用いられる領域のイメージを示す図である．
【図２】脚式ロボットの構成図である．
【図３】空間上の点が「加速制御領域」に属する度合いμｘ＋を，その点の位置ベクトルとローカル座標系Σａのｘ軸とのなす角θｘをもとに表した図である．
【符号の説明】
１                    脚式ロボットの体幹
２，３，４            モータ
５                    リニアアクチュエータ
６，７，８，９，１０  モータ
１１                  リニアアクチュエータ
１２，１３            モータ
【図１】
0004840649.tif 000018
【図２】
0004840649.tif 000019
【図３】
0004840649.tif 000020