(57)【特許請求の範囲】
【請求項１】
当該ロボットの歩行時に動ける各関節を含むロボット関節部と、
当該ロボットの足の着地の有無及び該足に加わえられる荷重に関する情報である着地情報と鉛直軸に対する当該ロボットの上体の傾斜角度及び傾斜角速度に関する情報である姿勢情報とを測定するセンサ部と、
前記着地情報と前記姿勢情報とを用いて前記各関節の関節位置軌跡を生成する関節位置軌跡生成部と、
前記着地情報と前記姿勢情報とを用いて前記各関節の関節位置軌跡を補正するための関節位置軌跡補正値を計算する関節位置軌跡補正値計算部と、
前記関節位置軌跡補正値を用いて前記各関節の関節位置軌跡を補正し、補正された各関節の関節位置軌跡によって各関節の関節トルクを計算する関節トルク計算部と、
前記着地情報と前記姿勢情報とを用いて前記各関節の関節トルクを補正するための関節トルク補正値を計算する関節トルク補正値計算部と、
前記関節トルク補正値を用いて前記各関節の関節トルク命令を補正し、補正された各関節の関節トルク命令に追従するようにモータ電流を計算し、計算されたモータ電流によって前記各関節に設置されたモータのトルクのサーボ制御を行う関節トルクサーボ制御部と、を含む人間型ロボット。
【請求項２】
前記センサ部は、当該ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサと、当該ロボットの姿勢を測定するためのポーズセンサと、を含む、請求項１に記載の人間型ロボット。
【請求項３】
前記関節位置軌跡生成部は、左足又は右足が地面に着地する場合、互いにスイッチングする複数のマシン状態と、前記複数のマシン状態のスイッチングによって左足又は右足の着地状態を判断し、前記各関節の関節位置軌跡命令を計算する関節位置軌跡計算部と、を含む、請求項１に記載の人間型ロボット。
【請求項４】
前記関節トルク計算部は、第１〜第３の位置演算器、比例ゲイン制御器及び微分ゲイン制御器を含み、式（１）のように前記各関節の関節トルク命令（τｄ）を計算し、
【数６３】
0005916998.tif 000064
前記第１の位置演算器は、関節位置軌跡命令（θｄ）と前記モータからフィードバックされる現在の関節位置（θ）との減算値（θｄ−θ）を出力し、
前記比例ゲイン制御器は、前記減算値（θｄ−θ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（θｄ−θ））を前記第２の位置演算器に出力し、
前記第３の位置演算器は、微分された関節位置軌跡命令
【数６４】
0005916998.tif 000065
と微分された現在の関節位置
【数６５】
0005916998.tif 000066
との減算値
【数６６】
0005916998.tif 000067
を前記微分ゲイン制御器に出力し、
前記微分ゲイン制御器は、前記減算値
【数６７】
0005916998.tif 000068
と微分ゲイン（ｋｄ）との乗算値
【数６８】
0005916998.tif 000069
を前記第２の位置演算器に出力し、
前記第２の位置演算器は、二つの乗算値（ｋｐ（θｄ−θ））及び
【数６９】
0005916998.tif 000070
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（τｆｆ）とを加算し、前記各関節の関節トルク命令（τｄ）を出力する、請求項１に記載の人間型ロボット。
【請求項５】
前記センサ部は、前記モータに設置されたエンコーダをさらに含み、
前記エンコーダで前記現在の関節位置（θ）を測定する、請求項４に記載の人間型ロボット。
【請求項６】
前記関節トルクサーボ制御部は、モータ制御器と、前記モータのトルクを測定するトルクセンサと、を含み、
前記モータ制御器は、前記トルクセンサによって測定された関節トルク値のフィードバックを受け、前記各関節の関節トルク命令に追従するように前記モータを駆動する、請求項１に記載の人間型ロボット。
【請求項７】
前記モータ制御器は、第１〜第３のトルク演算器、比例ゲイン制御器、積分器、積分ゲイン制御器及び微分ゲイン制御器を含み、式（２）のようにモータ電流（ｉ）を計算し、
【数７０】
0005916998.tif 000071
前記第１のトルク演算器は、関節トルク命令（τｄ）と前記トルクセンサからフィードバックされる現在のモータトルク（τ）との減算値（τｄ−τ）を出力し、
前記比例ゲイン制御器は、前記減算値（τｄ−τ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（τｄ−τ））を前記第２のトルク演算器に出力し、
前記積分器は、前記減算値（τｄ−τ）を積分して前記積分ゲイン制御器に出力し、
前記積分ゲイン制御器は、積分した減算値
【数７１】
0005916998.tif 000072
と積分ゲイン（ｋｉ）との乗算値
【数７２】
0005916998.tif 000073
を前記第２のトルク演算器に出力し、
前記第３のトルク演算器は、微分された関節トルク命令
【数７３】
0005916998.tif 000074
と微分された現在のモータトルク
【数７４】
0005916998.tif 000075
との減算値
【数７５】
0005916998.tif 000076
を前記微分ゲイン制御器に出力し、
前記微分ゲイン制御器は、前記減算値
【数７６】
0005916998.tif 000077
と微分ゲイン（ｋｄ）との乗算値
【数７７】
0005916998.tif 000078
を前記第２のトルク演算器に出力し、
前記第２のトルク演算器は、前記乗算値（ｋｐ（τｄ−τ））、
【数７８】
0005916998.tif 000079
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（ｉｆｆ）とを加算し、モータ電流（ｉ）を出力する、請求項６に記載の人間型ロボット。
【請求項８】
前記センサ部は、当該ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサと、当該ロボットの姿勢を測定するためのポーズセンサと、を含み、
前記関節位置軌跡補正値計算部は、当該ロボットの足が地面に接触するとき、前記多軸Ｆ／Ｔセンサから力とモーメントとの情報の入力を受け、前記ポーズセンサから前記姿勢情報の入力を受けて関節位置軌跡補正値（ｈ）を計算し、
前記関節トルク計算部は、前記関節位置軌跡補正値（ｈ）を用いて式（３）のような補正された関節位置軌跡命令（θｄ）に従って関節トルクを計算する、請求項１に記載の人間型ロボット。
θｄ＝θｄ０＋ｈ（ｘ，ｆ，ｍ，ＺＭＰ，φ） （３）
（ここで、θｄ０は元の関節位置軌跡命令で、前記関節位置軌跡補正値（ｈ）は、当該ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、当該ロボットのＺＭＰ、当該ロボットの傾斜角（φ）のうちいずれか一つのパラメータの関数で計算される。）
【請求項９】
前記関節位置軌跡補正値は、式（４）のように計算される、請求項８に記載の人間型ロボット。
【数７９】
0005916998.tif 000080
（ここで、ｘｄはロボットの重心命令値で、ｘはロボットの重心の実際値で、ｋｐｘは比例ゲインで、
【数８０】
0005916998.tif 000081
はロボットの重心速度で、
【数８１】
0005916998.tif 000082
はロボットの重心速度の実際値で、ｋｄｘは微分ゲインである。）
【請求項１０】
前記センサ部は、当該ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサと、当該ロボットの姿勢を測定するためのポーズセンサと、を含み、
前記関節トルク補正値計算部は、当該ロボットの足が地面に接触するとき、前記多軸Ｆ／Ｔセンサから力とモーメントとの情報の入力を受け、前記ポーズセンサから前記姿勢情報の入力を受けて関節トルク補正値（ｇ）を計算し、
前記関節トルクサーボ制御部は、式（５）のような補正された関節トルク命令（τｄ）に従って関節トルクを計算する、請求項１に記載の人間型ロボット。
τｄ＝τｄ０＋ｇ（ｘ，ｆ，ｍ，ＺＭＰ，φ） （５）
（ここで、τｄ０は元の関節トルク命令で、前記関節トルク補正値（ｇ）は、当該ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、当該ロボットのＺＭＰ、当該ロボットの傾斜角（φ）のうちいずれか一つのパラメータの関数で計算される。）
【請求項１１】
前記関節トルク補正値は、式（６）のように計算される、請求項１０に記載の人間型ロボット。
【数８２】
0005916998.tif 000083
（ここで、ｘｄはロボットの重心命令値で、ｘはロボットの重心の実際値で、ｋ’ｐｘは比例ゲインで、
【数８３】
0005916998.tif 000084
はロボットの重心速度で、
【数８４】
0005916998.tif 000085
はロボットの重心速度の実際値で、ｋ’ｄｘは微分ゲインである。）
【請求項１２】
ロボットの足の着地の有無及び該足に加わえられる荷重に関する情報である着地情報と鉛直軸に対する前記ロボットの上体の傾斜角度及び傾斜角速度に関する情報である姿勢情報とを測定し、
前記ロボットの歩行のために前記着地情報と前記姿勢情報とを用いて各関節の関節位置軌跡を計算し、
前記着地情報と前記姿勢情報とを用いて前記各関節の関節位置軌跡を補正するための関節位置軌跡補正値を計算し、
前記関節位置軌跡補正値を用いて補正した関節位置軌跡によって前記各関節の関節トルクを計算し、
前記着地情報と前記姿勢情報とを用いて前記各関節の関節トルクを補正するための関節トルク補正値を計算し、
前記関節トルク補正値を用いて補正した関節トルク命令に追従するようにモータ電流を計算し、計算されたモータ電流によって各関節に設置されたモータのトルクのサーボ制御を行うことを含む人間型ロボットの歩行制御方法。
【請求項１３】
前記関節位置軌跡を計算するのは、左足又は右足が地面に着地した状態を判断し、前記各関節の関節位置軌跡命令を計算することを含む、請求項１２に記載の人間型ロボットの歩行制御方法。
【請求項１４】
前記各関節のトルクを計算するのは、
各関節の関節位置軌跡命令（θｄ）と現在の関節位置（θ）との減算値（θｄ−θ）を出力し、前記減算値（θｄ−θ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（θｄ−θ））を出力し、微分された関節位置軌跡命令
【数８５】
0005916998.tif 000086
と微分された現在の関節位置
【数８６】
0005916998.tif 000087
との減算値
【数８７】
0005916998.tif 000088
を出力し、前記減算値
【数８８】
0005916998.tif 000089
と微分ゲイン（ｋｄ）との乗算値
【数８９】
0005916998.tif 000090
を出力し、二つの乗算値（ｋｐ（θｄ−θ））及び
【数９０】
0005916998.tif 000091
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（τｆｆ）とを加算し、前記各関節の関節トルク命令（τｄ）を出力することを含む、請求項１２に記載の人間型ロボットの歩行制御方法。
【請求項１５】
前記モータ電流を計算するのは、
関節トルク命令（τｄ）と現在のモータトルク（τ）との減算値（τｄ−τ）を出力し、
前記減算値（τｄ−τ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（τｄ−τ））を出力し、
前記減算値（τｄ−τ）を積分し、前記積分した減算値
【数９１】
0005916998.tif 000092
と積分ゲイン（ｋｉ）との乗算値
【数９２】
0005916998.tif 000093
を出力し、微分された関節トルク命令
【数９３】
0005916998.tif 000094
と微分された現在のモータトルク
【数９４】
0005916998.tif 000095
との減算値
【数９５】
0005916998.tif 000096
を出力し、前記減算値
【数９６】
0005916998.tif 000097
と微分ゲイン（ｋｄ）との乗算値
【数９７】
0005916998.tif 000098
を出力し、前記乗算値（ｋｐ（τｄ−τ））、
【数９８】
0005916998.tif 000099
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（ｉｆｆ）とを加算し、モータ電流（ｉ）を出力することを含む、請求項１２に記載の人間型ロボットの歩行制御方法。
【請求項１６】
前記ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサから前記着地情報の入力を受け、前記ロボットの姿勢を測定するためのポーズセンサから前記姿勢情報の入力を受けて前記関節位置軌跡補正値を計算し、
前記関節位置軌跡補正値（ｈ）は、前記ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、前記ロボットのＺＭＰ、前記ロボットの傾斜角（φ）のうちいずれか一つのパラメータの関数で計算され、
前記補正された関節トルク命令（θｄ）は、元の関節位置軌跡命令（θｄ０）と計算された関節位置軌跡補正値（ｈ）とを加算して求める、請求項１２に記載の人間型ロボットの歩行制御方法。
【請求項１７】
前記ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサから前記着地情報の入力を受け、前記ロボットの姿勢を測定するためのポーズセンサから前記姿勢情報の入力を受けて前記関節トルク補正値を計算し、
前記関節トルク補正値（ｇ）は、前記ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、前記ロボットのＺＭＰ、前記ロボットの傾斜角（φ）のうちいずれか一つのパラメータの関数で計算され、
前記補正された関節トルク命令（τｄ）は、元の関節トルク命令（τｄ０）と計算されたトルク補正値（ｇ）とを加算して求める、請求項１２に記載の人間型ロボットの歩行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関節に設置されたモータのトルクのサーボ制御を行い、安定的な歩行を具現する人間型ロボット及びその歩行制御方法に関するものである。
【背景技術】
【０００２】
人間と類似した関節体系を有し、人間の作業及び生活空間に容易に適用される二つの足で歩く歩行ロボットの研究開発が活発に行われている。
【０００３】
二足ロボットの歩行制御方法としては、位置基盤のＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）基盤の歩行制御方法、トルク基盤の動的歩行制御方法又はＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）基盤の歩行制御方法がある。
【０００４】
ＺＭＰ基盤の歩行制御方法は、歩行方向、歩行幅、歩行速度などを予め設定し、この設定に対応する両足と胴体の歩行パターンをＺＭＰ拘束条件によって生成し、その歩行パターンの逆運動学（Ｉｎｖｅｒｓｅ  Ｋｉｎｅｍａｔｉｃｓ）計算を通して各脚の関節位置軌跡を計算する。また、ＺＭＰ基盤の歩行制御方法は、各脚の関節を計算された関節位置軌跡に追従させる位置サーボ制御によって具現される。歩行の際の各脚の関節は、歩行パターンから求めた関節位置の軌跡に正確に追従するように制御される。
【０００５】
ＺＭＰ基盤の歩行制御方法によれば、逆運動学から各関節の角度を計算するとき、運動学的な特異点を避けるべきであるので、歩行中に膝を常に曲げた姿勢を維持しなければならず、その結果、人間とは異なる不自然な歩行をするようになる。
【０００６】
ＺＭＰ基盤の歩行制御方法は、ＺＭＰを制御するために各関節の正確な位置制御を行わなければならないので、高い位置サーボ制御ゲインを必要とする。その結果、モータで高い電流を必要とするので、エネルギー的に非効率で、関節の剛性が大きくなり、周囲環境との衝突時に大きな衝撃を与えるおそれがある。
【０００７】
ＦＳＭ基盤の歩行制御方法は、歩行ロボットの各動作の状態（ここで、状態とは、ＦＳＭでの状態を意味する。）を予め定義しておき、歩行時の各動作の状態を参照して各関節のトルクを制御し、適切に歩行する方式である。
【０００８】
ＦＳＭ基盤の歩行制御方法によれば、歩行時に動作状態を変えることによって、ロボットが多様なポーズを取ることができるが、限定された動作状態から選定しなければならないという制約のため、任務遂行のための歩行動作とは関係なしに、ロボットの均衡を維持するための別途の動作をするようになる。このようなバランシング動作としては、ロボットが足で踏むステップモーションが代表的であり、このような不必要な動作によって時間遅延が発生し、エネルギーの浪費をもたらす。
【０００９】
４足歩行ロボットに比べて均衡維持が難しい二足ロボットである人間型ロボットにＦＳＭ基盤の歩行を適用するためには、人間型ロボットと周囲環境との相互作用を勘案する必要がある。すなわち、周囲環境によってロボットの動作状態をフィードバックし、歩行動作を制御することが要求される。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ＦＳＭ基盤の歩行制御時、各関節に設置されたモータのトルクのサーボ制御を行い、安定的な歩行を具現する人間型ロボット及びその歩行制御方法を開示する。
【課題を解決するための手段】
【００１１】
本発明の実施例に係る人間型ロボットは、当該ロボットの歩行時に動ける各関節を含むロボット関節部と、当該ロボットの着地情報と姿勢情報とを測定するセンサ部と、当該ロボットの着地情報と姿勢情報とを用いて前記各関節の関節位置軌跡を生成する関節位置軌跡生成部と、前記各関節の関節位置軌跡を補正するための関節位置軌跡補正値を計算する関節位置軌跡補正値計算部と、前記関節位置軌跡補正値を用いて前記各関節の関節位置軌跡を補正し、補正された各関節の関節位置軌跡によって各関節の関節トルクを計算する関節トルク計算部と、前記各関節の関節トルクを補正するための関節トルク補正値を計算する関節トルク補正値計算部と、前記関節トルク補正値を用いて前記各関節の関節トルク命令を補正し、補正された各関節の関節トルク命令に追従するようにモータ電流を計算し、計算されたモータ電流によって前記各関節に設置されたモータのトルクのサーボ制御を行う関節トルクサーボ制御部とを含む。
【００１２】
前記センサ部は、ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサと、前記ロボットの姿勢を測定するためのポーズセンサとを含む。
【００１３】
前記関節位置軌跡生成部は、左足又は右足が地面に着地する場合、互いにスイッチングする複数のマシン状態と、前記複数のマシン状態のスイッチングによって左足又は右足の着地状態を判断し、前記各関節の関節位置軌跡命令を計算する関節位置軌跡計算部とを含む。
【００１４】
前記関節トルク計算部は、第１〜第３の位置演算器、比例ゲイン制御器及び微分ゲイン制御器を含み、式（１）のように前記各関節の関節トルク命令（τｄ）を計算する。
【００１５】
【数１】
0005916998.tif 000002
前記第１の位置演算器は、関節位置軌跡命令（θｄ）と前記モータからフィードバックされる現在の関節位置（θ）との減算値（θｄ−θ）を出力し、前記比例ゲイン制御器は、前記減算値（θｄ−θ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（θｄ−θ））を前記第２の位置演算器に出力し、前記第３の位置演算器は、微分された関節位置軌跡命令
【００１６】
【数２】
0005916998.tif 000003
と微分された現在の関節位置
【００１７】
【数３】
0005916998.tif 000004
との減算値
【００１８】
【数４】
0005916998.tif 000005
を前記微分ゲイン制御器に出力し、前記微分ゲイン制御器は、前記減算値
【００１９】
【数５】
0005916998.tif 000006
と微分ゲイン（ｋｄ）との乗算値
【００２０】
【数６】
0005916998.tif 000007
を前記第２の位置演算器に出力し、前記第２の位置演算器は、二つの乗算値（ｋｐ（θｄ−θ））及び
【００２１】
【数７】
0005916998.tif 000008
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（τｆｆ）とを加算し、前記各関節の関節トルク命令（τｄ）を出力する。
【００２２】
前記センサ部は、前記モータに設置されたエンコーダをさらに含み、前記エンコーダで前記現在の関節位置（θ）を測定する。
【００２３】
前記関節トルクサーボ制御部は、モータ制御器と、前記モータのトルクを測定するトルクセンサとを含み、前記モータ制御器は、前記トルクセンサによって測定された関節トルク値のフィードバックを受け、前記各関節の関節トルク命令に追従するように前記モータを駆動する。
【００２４】
前記モータ制御器は、第１〜第３のトルク演算器、比例ゲイン制御器、積分器、積分ゲイン制御器及び微分ゲイン制御器を含み、式（２）のようにモータ電流（i）を計算する。
【００２５】
【数８】
0005916998.tif 000009
前記第１のトルク演算器は、関節トルク命令（τｄ）と前記トルクセンサからフィードバックされる現在のモータトルク（τ）との減算値（τｄ−τ）を出力し、前記比例ゲイン制御器は、前記減算値（τｄ−τ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（τｄ−τ））を前記第２のトルク演算器に出力し、前記積分器は、前記減算値（τｄ−τ）を積分して前記積分ゲイン制御器に出力し、前記積分ゲイン制御器は、積分した減算値
【００２６】
【数９】
0005916998.tif 000010
と積分ゲイン（ｋi）との乗算値
【００２７】
【数１０】
0005916998.tif 000011
を前記第２のトルク演算器に出力し、前記第３のトルク演算器は、微分された関節トルク命令
【００２８】
【数１１】
0005916998.tif 000012
と微分された現在のモータトルク
【００２９】
【数１２】
0005916998.tif 000013
との減算値
【００３０】
【数１３】
0005916998.tif 000014
を前記微分ゲイン制御器に出力し、前記微分ゲイン制御器は、前記減算値
【００３１】
【数１４】
0005916998.tif 000015
と微分ゲイン（ｋｄ）との乗算値
【００３２】
【数１５】
0005916998.tif 000016
を前記第２のトルク演算器に出力し、前記第２のトルク演算器は、前記乗算値（ｋｐ（τｄ−τ））、
【００３３】
【数１６】
0005916998.tif 000017
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（iｆｆ）とを加算し、モータ電流（i）を出力する。
【００３４】
前記センサ部は、前記ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサと、前記ロボットの姿勢を測定するためのポーズセンサとを含み、前記関節位置軌跡補正値計算部は、ロボットの足が地面に接触するとき、前記多軸Ｆ／Ｔセンサから力とモーメントとの情報の入力を受け、前記ポーズセンサからロボットの姿勢情報の入力を受けて関節位置軌跡補正値（ｈ）を計算し、前記関節トルク計算部は、前記関節位置軌跡補正値（ｈ）を用いて式（３）のような補正された関節位置軌跡命令（θｄ）に従って関節トルクを計算する。
【００３５】
θｄ＝θｄ０＋ｈ（ｘ，ｆ，ｍ，ＺＭＰ，φ）      （３）
ここで、θｄ０は、元の関節位置軌跡命令で、前記関節位置軌跡補正値（ｈ）は、ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）のうちいずれか一つのパラメータの関数で計算される。
【００３６】
前記関節位置軌跡補正値は、式（４）のように計算される。
【００３７】
【数１７】
0005916998.tif 000018
ここで、ｘｄはロボットの重心命令値で、ｘはロボットの重心の実際値で、ｋｐｘは比例ゲインで、
【００３８】
【数１８】
0005916998.tif 000019
はロボットの重心速度で、
【００３９】
【数１９】
0005916998.tif 000020
はロボットの重心速度の実際値で、ｋｄｘは微分ゲインである。
【００４０】
前記センサ部は、前記ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサと、前記ロボットの姿勢を測定するためのポーズセンサとを含み、前記関節トルク補正値計算部は、ロボットの足が地面に接触するとき、前記多軸Ｆ／Ｔセンサから力とモーメントとの情報の入力を受け、前記ポーズセンサからロボットの姿勢情報の入力を受けて関節トルク補正値（ｇ）を計算し、前記関節トルクサーボ制御部は、式（５）のような補正された関節トルク命令（τｄ）に従って関節トルクを計算する。
【００４１】
τｄ＝τｄ０＋ｇ（ｘ，ｆ，ｍ，ＺＭＰ，φ）      （５）
ここで、τｄ０は元の関節トルク命令で、前記関節トルク補正値（ｇ）は、ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）のうちいずれか一つのパラメータの関数で計算される。
【００４２】
前記関節トルク補正値は、式（６）のように計算される。
【００４３】
【数２０】
0005916998.tif 000021
ここで、ｘｄはロボットの重心命令値で、ｘはロボットの重心の実際値で、ｋ’ｐｘは比例ゲインで、
【００４４】
【数２１】
0005916998.tif 000022
はロボットの重心速度で、
【００４５】
【数２２】
0005916998.tif 000023
はロボットの重心速度の実際値で、ｋ’ｄｘは微分ゲインである。
【００４６】
本発明の実施例に係る人間型ロボットの歩行制御方法は、ロボットの歩行のために各関節の関節位置軌跡を計算し、前記ロボットに設置されたセンサで測定した前記ロボットの着地情報と姿勢情報とを用いて前記各関節の関節位置軌跡を補正するための関節位置軌跡補正値を計算し、前記関節位置軌跡補正値を用いて補正した関節位置軌跡によって前記各関節のトルクを計算し、前記ロボットに設置されたセンサで測定した前記ロボットの着地情報と姿勢情報とを用いて前記各関節の関節トルクを補正するための関節トルク補正値を計算し、前記関節トルク補正値を用いて補正した関節トルク命令に追従するようにモータ電流を計算し、計算されたモータ電流によって各関節に設置されたモータのトルクのサーボ制御を行うことを含む。
【００４７】
前記関節位置軌跡を計算するのは、左足又は右足が地面に着地した状態を判断し、前記各関節の関節位置軌跡命令を計算することを含む。
【００４８】
前記各関節のトルクを計算するのは、各関節の関節位置軌跡命令（θｄ）と現在の関節位置（θ）との減算値（θｄ−θ）を出力し、前記減算値（θｄ−θ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（θｄ−θ））を出力し、微分された関節位置軌跡命令
【００４９】
【数２３】
0005916998.tif 000024
と微分された現在の関節位置
【００５０】
【数２４】
0005916998.tif 000025
との減算値
【００５１】
【数２５】
0005916998.tif 000026
を出力し、前記減算値
【００５２】
【数２６】
0005916998.tif 000027
と微分ゲイン（ｋｄ）との乗算値
【００５３】
【数２７】
0005916998.tif 000028
を出力し、前記二つの乗算値（ｋｐ（θｄ−θ））及び
【００５４】
【数２８】
0005916998.tif 000029
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（τｆｆ）とを加算し、前記各関節の関節トルク命令（τｄ）を出力することを含む。
【００５５】
前記モータ電流を計算するのは、関節トルク命令（τｄ）と現在のモータトルク（τ）との減算値（τｄ−τ）を出力し、前記減算値（τｄ−τ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（τｄ−τ））を出力し、前記減算値（τｄ−τ）を積分し、前記積分した減算値
【００５６】
【数２９】
0005916998.tif 000030
と積分ゲイン（ｋｉ）との乗算値
【００５７】
【数３０】
0005916998.tif 000031
を出力し、微分された関節トルク命令
【００５８】
【数３１】
0005916998.tif 000032
と微分された現在のモータトルク
【００５９】
【数３２】
0005916998.tif 000033
との減算値
【００６０】
【数３３】
0005916998.tif 000034
を出力し、前記減算値
【００６１】
【数３４】
0005916998.tif 000035
と微分ゲイン（ｋｄ）との乗算値
【００６２】
【数３５】
0005916998.tif 000036
を出力し、前記乗算値（ｋｐ（τｄ−τ））、
【００６３】
【数３６】
0005916998.tif 000037
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（ｉｆｆ）とを加算し、モータ電流（ｉ）を出力することを含む。
【００６４】
前記ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサから力とモーメントとの情報の入力を受け、前記ロボットの姿勢を測定するためのポーズセンサからロボットの姿勢情報の入力を受けて前記関節位置軌跡補正値を計算し、前記関節位置軌跡補正値（ｈ）は、ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）のうちいずれか一つのパラメータの関数で計算され、前記補正された関節位置軌跡命令（θｄ）は、元の関節位置軌跡命令（θｄ０）と計算された関節位置軌跡補正値（ｈ）とを加算して求める。
【００６５】
前記ロボットの着地状態を測定するための多軸Ｆ／Ｔセンサから力とモーメントとの情報の入力を受け、前記ロボットの姿勢を測定するためのポーズセンサからロボットの姿勢情報の入力を受けて前記関節トルク補正値を計算し、前記関節トルク補正値（ｇ）は、ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）のうちいずれか一つのパラメータの関数で計算され、前記補正された関節トルク命令（τｄ）は、元の関節トルク命令（τｄ０）と計算されたトルク補正値（ｇ）とを加算して求める。
【発明の効果】
【００６６】
以上のように、実施例に係る人間型ロボット及びその歩行制御方法は、ＦＳＭ基盤の歩行制御によってモータトルクのサーボ制御を行うので、既存の歩行方法に比べて次のような長所を有することができる。まず、歩行中に各関節の位置を正確に制御する必要がないので、低いサーボゲインで歩行が可能になり、エネルギー消費を減少させることができる。また、歩行中における各関節の低剛性によって、周囲環境との衝突時の衝撃を少なくすることができるので安全である。また、逆運動学的な計算を通じた既存の歩行方法では実行しにくい膝を広げる歩行が可能になるので、人間親和的な歩行を具現することができ、膝を曲げるのに必要なエネルギーを節約することができる。また、複雑な運動学方程式を解かなくてもよいので、６自由度の関節を有するロボットに適用することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施例に係る人間型ロボットの外観を示した図である。
【図２】図１の人間型ロボットの関節構造を示した図である。
【図３】本発明の一実施例に係るＦＳＭ基盤の歩行に適用されるロボットの動作状態及び制御動作を示した図である。
【図４】本発明の一実施例に係る人間型ロボットの制御ブロック図である。
【図５】図４の関節位置軌跡生成部の詳細構成図である。
【図６】本発明の一実施例に係る関節位置軌跡命令を用いて計算された関節トルク命令に従ってモータを駆動する動作を説明するブロック線図である。
【図７】図４の関節トルクサーボ制御部の詳細構成図である。
【図８】本発明の一実施例に係る関節トルク命令に従って駆動するモータのサーボ制御を行う動作を説明するブロック線図である。
【図９】本発明の一実施例に係る人間型ロボットの歩行制御方法を示したフローチャートである。
【発明を実施するための形態】
【００６８】
以下では、添付の図面を参照して本発明について詳細に説明する。
【００６９】
図１に示すように、人間型ロボット１００の上体１０２の上部には首１２０を介して頭１０４が連結される。上体１０２の上部両側には肩１１４Ｌ、１１４Ｒを介して二つの腕１０６Ｌ、１０６Ｒが連結される。二つの腕１０６Ｌ、１０６Ｒのそれぞれの末端には手３３Ｌ、３３Ｒが連結される。上体１０２の下部両側には二つの脚１１０Ｌ、１１０Ｒが連結される。二つの脚１１０Ｌ、１１０Ｒのそれぞれの末端には足１１２Ｌ、１１２Ｒが連結される。
【００７０】
頭１０４、二つの腕１０６Ｌ、１０６Ｒ、二つの脚１１０Ｌ、１１０Ｒ、それぞれ二つずつ備えられる手３３Ｌ、３３Ｒと足１１２Ｌ、１１２Ｒは、それぞれ関節を介して一定水準の自由度を有する。上体１０２の内部はカバー１１６によって保護される。参照符号における「Ｒ」と「Ｌ」は、それぞれロボット１００の右側と左側を示す。
【００７１】
図２は、図１に示したロボットの関節構造を示した図である。図２に示すように、人間型ロボット１００の二つの脚１１０Ｌ、１１０Ｒは、それぞれ大腿リンク２１、下腿リンク２２及び足１１２Ｌ、１１２Ｒを備えている。大腿リンク２１は大腿関節部２１０を介して上体１０２に連結される。大腿リンク２１と下腿リンク２２は膝関節部２２０を介して互いに連結され、下腿リンク２２と足１１２Ｌ、１１２Ｒは足首関節部２３０を介して互いに連結される。
【００７２】
大腿関節部２１０は３自由度を有する。具体的には、大腿関節部２１０は、ヨー方向（ｙａｗ、Ｚ軸周囲の回転）の回転関節２１１、ピッチ方向（ｐｉｔｃｈ、Ｙ軸周囲の回転）の回転関節２１２、及びロール方向（ｒｏｌｌ、Ｘ軸周囲の回転）の回転関節２１３を有する。
【００７３】
膝関節部２２０は、ピッチ方向の回転関節２２１を含み、１自由度を有する。足首関節部２３０は、ピッチ方向の回転関節２３１及びロール方向の回転関節２３２を含み、２自由度を有する。
【００７４】
二つの脚１１０Ｌ、１１０Ｒには三つの関節部２１０、２２０、２３０に対して６個の回転関節がそれぞれ設けられるので、二つの脚１１０Ｌ、１１０Ｒ全体に対しては１２個の回転関節が設けられる。
【００７５】
一方、二つの脚１１０Ｌ、１１０Ｒで、足１１２Ｌ、１１２Ｒと足首関節部２３０との間には多軸Ｆ／Ｔセンサ（Ｍｕｌｔｉ―Ａｘｉｓ  Ｆｏｒｃｅ  ａｎｄ  Ｔｏｒｑｕｅ  Ｓｅｎｓｏｒ）２４がそれぞれ設置される。多軸Ｆ／Ｔセンサ２４は、足１１２Ｌ、１１２Ｒから伝達される力の３方向成分（Ｆｘ、Ｆｙ、Ｆｚ）とモーメントの３方向成分（Ｍｘ、Ｍｙ、Ｍｚ）を測定することによって、足１１２Ｌ、１１２Ｒの着地の有無及び足１１２Ｌ、１１２Ｒに加えられる荷重を検出することができる。
【００７６】
頭１０４には、周囲を撮影するカメラ４１と、ユーザの音声を入力するマイクロフォン４２が設置される。
【００７７】
頭１０４は、首関節部２８０を介して上体１０２と連結される。首関節部２８０は、ヨー方向の回転関節２８１、ピッチ方向の回転関節２８２及びロール方向の回転関節２８３を含み、３自由度を有することができる。
【００７８】
首関節部２８０の各回転関節２８１、２８２、２８３には、頭回転用モータ（図示せず）がそれぞれ連結される。
【００７９】
肩関節アセンブリ２５０Ｌ、２５０Ｒは、上体１０２の両側に装着され、二つの腕１０６Ｌ、１０６Ｒを上体１０２に連結する。
【００８０】
二つの腕１０６Ｌ、１０６Ｒは、上膊リンク３１、下膊リンク３２及び手３３を備えている。上膊リンク３１は、肩関節アセンブリ２５０Ｌ、２５０Ｒを介して上体１０２に連結される。上膊リンク３１と下膊リンク３２は肘関節部２６０を介して互いに連結され、下膊リンク３２と手３３は手首関節部２７０を介して互いに連結される。
【００８１】
肘関節部２６０は、ピッチ方向の回転関節２６１及びヨー方向の回転関節２６２を含み、２自由度を有することができ、手首関節部２７０は、ピッチ方向の回転関節２７１及びロール方向の回転関節２７２を含み、２自由度を有することができる。
【００８２】
手３３には５個の指３３ａが設置される。それぞれの指３３ａには、モータによって駆動される多数の関節（図示せず）が設置される。指３３ａは、腕１０６の動きに連動し、物を把持したり、特定方向を指すような多様な動作を行う。
【００８３】
上体１０２にはポーズセンサ１４が設置される。ポーズセンサ１４は、鉛直軸に対する上体１０２の傾斜角度及びその角速度などを検出し、姿勢情報を発生させる。このポーズセンサ１４は、上体１０２のみならず、頭１０４に設置してもよい。また、上体１０２を構成する胸１０２ａと腰１０２ｂとの間には、胸１０２ａが腰１０２ｂに対して回転できるようにヨー方向の回転関節１５が設置される。
【００８４】
人間型ロボット１００には、各回転関節を駆動するモータ４０５（図６参照）などのようなアクチュエータが設置される。このモータ４０５を適宜制御することによって、人間型ロボット１００の多様な動作を具現することができる。
【００８５】
ＦＳＭ基盤の歩行制御方法は、図３に例示したように、ロボットの動作状態を予め定義された６個の動作状態Ｓ１、Ｓ２、Ｓ３、Ｓ４、Ｓ５、Ｓ６に区分することができる。それぞれの動作状態は、歩行時にロボットが取るポーズを意味する。
【００８６】
第１の状態（フライト）（Ｓ１）は足をスイングするポーズであり、第２の状態（ローディング）（Ｓ２）は足を地面に下ろすポーズであり、第３の状態（かかと接地）（Ｓ３）は足のかかとを地面に接触させるポーズであり、第４の状態（かかと及びつま先接地）（Ｓ４）は足のかかとと足のつま先を同時に地面に接触させるポーズであり、第５の状態（つま先接地）（Ｓ５）は足のつま先を地面に接触させるポーズであり、第６の状態（アンローディング）（Ｓ６）は足を地面から離すポーズである。
【００８７】
図４は、本発明の一実施例に係る人間型ロボットの制御ブロック図で、図５は、図４の関節位置軌跡生成部の詳細構成図である。図４に示すように、人間型ロボット１００は、関節位置軌跡生成部３００、関節トルク計算部３１０、関節トルクサーボ制御部３２０、ロボット関節部１０１、センサ部３３０、関節位置軌跡補正値計算部３４０及び関節トルク補正値計算部３５０を含む。
【００８８】
ロボット関節部１０１は、ロボット歩行のための二つの脚１１０Ｌ、１１０Ｒの大腿関節部２１０、膝関節部２２０、足首関節部２３０の全体に対して１２個の回転関節を含むもので、このとき、二つの脚に属する関節のみに限定されることなく、安定的な歩行のために上体と腕などの人間型ロボット１００の全ての関節を含むことができる。
【００８９】
センサ部３３０は、上体１０２に設置されたポーズセンサ１４と、足首関節部２３０に設置された多軸Ｆ／Ｔセンサ２４と、ロボット関節部１０１の各関節に設置されたモータ４０５の回転を測定するエンコーダ４０５ａとを含む。
【００９０】
関節位置軌跡生成部３００は、センサ部３３０の測定値を用いて各関節の関節位置軌跡命令（θｄ）を生成する。
【００９１】
図５で、関節位置軌跡生成部３００は、第１マシン状態３０１、第２マシン状態３０２及び関節位置軌跡計算部３０３を含む。
【００９２】
第１マシン状態３０１と第２マシン状態３０２は、右足又は左足が地面に着地する場合、足首関節部２３０に設置されたＦ／Ｔセンサ２４の着地信号によって互いにスイッチングを行う。すなわち、左足がスイングし、右足が着地状態であれば、第２マシン状態３０２から第１マシン状態３０１にスイッチングする一方、右足がスイングし、左足が着地状態であれば、第１マシン状態３０１から第２マシン状態３０２にスイッチングする。
【００９３】
関節位置軌跡計算部３０３は、第１マシン状態３０１と第２マシン状態３０２のスイッチングによって左足と右足の着地状態を判断し、ロボット関節部１０１の各関節の関節位置軌跡命令（θｄ）を計算する。
【００９４】
関節位置軌跡命令（θｄ）を生成する他の実施例では、人間のモーションをキャプチャし、一つの周期内で各関節の動きを抽出した後、この抽出情報に基づいて人間型ロボットの関節位置にマッチングさせて関節位置軌跡命令を計算することもできる。
【００９５】
関節トルク計算部３１０は、各関節の関節位置軌跡命令（θｄ）を用いて各関節の関節トルク命令（τｄ）を計算する。
【００９６】
図６は、本発明の一実施例に係る関節位置軌跡命令を用いて計算された関節トルク命令に従ってモータを駆動する動作を説明するブロック線図である。図６で、第１の位置演算器４０１は、関節位置軌跡命令（θｄ）とモータ４０５からフィードバックされる現在の関節位置（θ）との減算値（θｄ−θ）を比例ゲイン制御器４０２に出力する。ここで、現在の関節位置（θ）は、モータ４０５に設置されたエンコーダ４０５ａによって測定される。
【００９７】
比例ゲイン制御器４０２は、減算値（θｄ−θ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（θｄ−θ））を第２の位置演算器４０３に出力する。
【００９８】
第３の位置演算器４０８は、微分制御器４０７によって微分された関節位置軌跡命令
【００９９】
【数３７】
0005916998.tif 000038
と微分制御器４０６によって微分された現在の関節位置
【０１００】
【数３８】
0005916998.tif 000039
との減算値
【０１０１】
【数３９】
0005916998.tif 000040
を微分ゲイン制御器４０９に出力する。微分ゲイン制御器４０９は、減算値
【０１０２】
【数４０】
0005916998.tif 000041
と微分ゲイン（ｋｄ）との乗算値
【０１０３】
【数４１】
0005916998.tif 000042
を第２の位置演算器４０３に出力する。
【０１０４】
第２の位置演算器４０３は、二つの乗算値（ｋｐ（θｄ−θ））及び
【０１０５】
【数４２】
0005916998.tif 000043
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（τｆｆ）とを加算し、その加算値（τｄ）を出力する。ここで、加算値（τｄ）は、関節トルク計算部３１０で計算される各関節の関節トルク命令（τｄ）を意味し、その一つの例は式（１）のように示すことができる。
【０１０６】
【数４３】
0005916998.tif 000044
式（１）は、比例微分（ＰＤ）制御器とフィードフォワード（ＦＦ）制御器を用いたものであるが、これに限定するのではなく、各関節の位置（θ）が関節位置軌跡命令（θｄ）に追従できる如何なる制御器も用いることができる。式（１）で、比例ゲイン、微分ゲイン及びフィードフォワードパラメータは、安定的な歩行のために反復的なチューニング作業を通じて求めることができる。
【０１０７】
関節トルク命令（τｄ）は、減衰制御器４０４でモータトルク定数（１／Ｋｔ）と乗算され、その乗算値であるモータ電流（ｉ）によってロボット関節部１０１の各関節に設置されたモータ４０５を駆動することができる。このとき、関節トルク計算部３１０によって計算された各関節の関節トルク命令（τｄ）が関節トルクサーボ制御部３２０に提供される。
【０１０８】
図７で、関節トルクサーボ制御部３２０は、モータ制御器３２１を含む。モータ制御器３２１は、トルクセンサ４０５ｂによって測定された関節トルク値のフィードバックを受け、関節トルク命令（τｄ）に追従するようにモータ４０５を駆動する。このとき、モータ制御器３２１は、トルクセンサ４０５ｂによって測定された関節トルク値のフィードバックを受けるものに限定されず、モータ４０５の電流を測定する電流センサで測定された電流から推定された関節トルク値を用いることもできる。
【０１０９】
図８は、本発明の一実施例に係る関節トルク命令に従って駆動するモータのサーボ制御を行う動作を説明するブロック線図である。
【０１１０】
図８で、第１のトルク演算器５０１は、前記各関節のトルク命令（τｄ）とトルクセンサ４０５ｂからフィードバックされる現在のモータトルク（τ）との減算値（τｄ−τ）を比例ゲイン制御器５０２に出力する。比例ゲイン制御器５０２は、減算値（τｄ−τ）と比例ゲイン（ｋｐ）との乗算値（ｋｐ（τｄ−τ））を第２のトルク演算器５０５に出力する。
【０１１１】
積分器５０３は、減算値（τｄ−τ）を積分して積分ゲイン制御器５０４に出力し、積分ゲイン制御器５０４は、積分した減算値
【０１１２】
【数４４】
0005916998.tif 000045
と積分ゲイン（ｋｉ）との乗算値
【０１１３】
【数４５】
0005916998.tif 000046
を第２のトルク演算器５０５に出力する。
【０１１４】
第３のトルク演算器５０８は、微分制御器５０７によって微分された関節トルク命令
【０１１５】
【数４６】
0005916998.tif 000047
と微分制御器５０６によって微分された現在のモータトルク
【０１１６】
【数４７】
0005916998.tif 000048
との減算値
【０１１７】
【数４８】
0005916998.tif 000049
を微分ゲイン制御器５０９に出力する。微分ゲイン制御器５０９は、減算値
【０１１８】
【数４９】
0005916998.tif 000050
と微分ゲイン（ｋｄ）との乗算値
【０１１９】
【数５０】
0005916998.tif 000051
を第２のトルク演算器５０５に出力する。
【０１２０】
第２のトルク演算器５０５は、三つの乗算値（ｋｐ（τｄ−τ））、
【０１２１】
【数５１】
0005916998.tif 000052
と逆運動学方程式を用いて予め計算されたフィードフォワードパラメータ（ｉｆｆ）とを加算し、その加算値を出力する。ここで、加算値は、モータ４０５に印加されるモータ電流（ｉ）であって、その一つの例は式（２）のように示すことができる。
【０１２２】
【数５２】
0005916998.tif 000053
式（２）は、比例積分微分（ＰＩＤ）制御器とフィードフォワード（ＦＦ）制御器を用いたものであるが、これに限定するのではなく、各関節の位置（θ）が関節位置軌跡命令（θｄ）に追従できる如何なる制御器も用いることができる。式（２）で、比例ゲイン、微分ゲイン、積分ゲイン及びフィードフォワードパラメータは、安定的な歩行のために反復的なチューニング作業を通じて求めることができる。
【０１２３】
このように、関節トルクサーボ制御部３２０によって、ロボット関節部１０１は、トルクサーボ制御に基づいて歩行動作を行うことができる。
【０１２４】
ロボットがポーズを切り替えて歩行するとき、歩行面の状態、障害物の出現などの周囲環境によって歩行制御が不適切になり、ロボットが均衡を失うおそれがあるので、人間型ロボットにおいては、周囲環境と相互作用する情報とロボットの姿勢情報のフィードバックを受け、関節位置軌跡命令と関節トルク命令を補正し、歩行動作を安定的に制御する必要がある。
【０１２５】
図４で、関節位置軌跡補正値計算部３４０は、センサ部３３０によって測定された値を用いて関節位置軌跡命令を補正するための関節位置軌跡補正値を生成し、これを関節トルク計算部３１０に提供する。すなわち、ロボットの足が地面に接触するとき、関節位置軌跡補正値計算部３４０は、多軸Ｆ／Ｔセンサ２４から力とモーメントとの情報の入力を受け、ポーズセンサ１４からロボットの姿勢情報の入力を受けて関節位置軌跡補正値（ｈ）を計算することができる。
【０１２６】
その結果、関節トルク計算部３１０は、式（３）のような補正された関節位置軌跡命令（θｄ）に従って関節トルクを計算することができる。
【０１２７】
θｄ＝θｄ０＋ｈ（ｘ，ｆ，ｍ，ＺＭＰ，φ）      （３）
ここで、θｄ０は元の関節位置軌跡命令で、ｈは関節位置軌跡補正値で、多様なパラメータの関数から計算される。そして、多様なパラメータは、ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）になり得る。
【０１２８】
【数５３】
0005916998.tif 000054
式（４）は、関節位置軌跡補正値（ｈ（ｘ））の一例である。
関節位置軌跡補正値（ｈ（ｘ））は、ロボットの重心命令値（ｘｄ）と実際値（ｘ）との差（ｘｄ−ｘ）に比例ゲイン（ｋｐｘ）を乗算し、ロボットの重量中心速度
【０１２９】
【数５４】
0005916998.tif 000055
と実際値
【０１３０】
【数５５】
0005916998.tif 000056
との差
【０１３１】
【数５６】
0005916998.tif 000057
に微分ゲイン（ｋｄｘ）を乗算した後、二つの乗算値（ｋｐｘ（ｘｄ−ｘ））及び
【０１３２】
【数５７】
0005916998.tif 000058
を加算して得られる。
【０１３３】
その他に、関節位置軌跡補正値（ｈ）は、他のパラメータに該当する地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）のうちいずれか一つによって計算される。
【０１３４】
関節トルク補正値計算部３５０は、センサ部３３０によって測定された値を用いて関節トルク命令を補正するための関節トルク補正値を生成し、これを関節トルクサーボ制御部３２０に提供する。すなわち、ロボットの足が地面に接触するとき、関節トルク補正値計算部３５０は、多軸Ｆ／Ｔセンサ２４から力とモーメントとの情報の入力を受け、ポーズセンサ１４からロボットの姿勢情報の入力を受けて関節トルク補正値（ｇ）を計算することができる。
【０１３５】
その結果、関節トルクサーボ制御部３２０は、式（５）のような補正された関節トルク命令（τｄ）に従って関節トルクを計算することができる。
【０１３６】
τｄ＝τｄ０＋ｇ（ｘ，ｆ，ｍ，ＺＭＰ，φ）      （５）
ここで、τｄ０は元の関節トルク命令で、ｇは関節トルク補正値で、多様なパラメータの関数から計算される。そして、多様なパラメータは、ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）になり得る。
【０１３７】
【数５８】
0005916998.tif 000059
式（６）は、関節トルク補正値（ｇ（ｘ））の一例である。
【０１３８】
関節トルク補正値（ｇ（ｘ））は、ロボットの重心命令値（ｘｄ）と実際値（ｘ）との差（ｘｄ−ｘ）に比例ゲイン（ｋ’ｐｘ）を乗算し、ロボットの重量中心速度
【０１３９】
【数５９】
0005916998.tif 000060
と実際値
【０１４０】
【数６０】
0005916998.tif 000061
との差
【０１４１】
【数６１】
0005916998.tif 000062
に微分ゲイン（ｋ’ｄｘ）を乗算した後、二つの乗算値（ｋ’ｐｘ（ｘｄ−ｘ））及び
【０１４２】
【数６２】
0005916998.tif 000063
を加算して得る。
【０１４３】
その他に、関節トルク補正値（ｇ）は、他のパラメータに該当する地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）のうちいずれか一つによって計算される。
【０１４４】
実施例では、関節位置軌跡命令と関節トルク命令をいずれも補正したが、関節位置軌跡命令及び関節トルク命令のうちいずれか一つを補正する方式を適用し、人間型ロボットの安定的な歩行動作を具現することもできる。
【０１４５】
以下では、本発明の一実施例に係る人間型ロボットの歩行制御方法を説明する。
【０１４６】
基本的に、ＦＳＭに基づいて人間型ロボット１００が歩行する。歩行動作を行うために、関節位置軌跡計算部３０３は、センサ部３００の測定値を用いて左足と右足の着地状態を判断し、ロボット関節部１０１の各関節の関節位置軌跡命令（θｄ）を計算する（６０１）。ここで、関節位置軌跡命令（θｄ）を生成する他の例では、人間のモーションをキャプチャし、一つの周期内で各関節の動きを抽出した後、この抽出情報に基づいて人間型ロボットの関節位置にマッチングさせて関節位置軌跡命令を計算することもできる。
【０１４７】
計算された関節位置軌跡命令（θｄ）は関節トルク計算部３１０に提供される。
【０１４８】
関節位置軌跡補正部３４０は、多軸Ｆ／Ｔセンサ２４から力とモーメントとの情報の入力を受け、ポーズセンサ１４からロボットの姿勢情報の入力を受けて関節位置軌跡補正値（ｈ）を計算する（６０３）。ここで、関節位置軌跡補正値（ｈ）は多様なパラメータの関数から計算され、多様なパラメータは、ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）になり得る。
【０１４９】
計算された関節位置軌跡補正値（ｈ）は関節トルク計算部３１０に提供される。その結果、関節トルク計算部３１０は、元の関節位置軌跡命令（θｄ０）に関節位置軌跡補正値（ｈ）を加算して補正し（６０５）、式（３）のように補正された関節位置軌跡命令（θｄ）に従って関節トルクを計算することができる（６０７）。
【０１５０】
関節トルク補正値計算部３５０は、多軸Ｆ／Ｔセンサ２４から力とモーメントとの情報の入力を受け、ポーズセンサ１４からロボットの姿勢情報の入力を受けて関節トルク補正値（ｇ）を計算する（６０９）。ここで、関節トルク補正値（ｇ）は多様なパラメータの関数から計算され、多様なパラメータは、ロボットの重心（ｘ）、地面との力（ｆ）、地面とのモーメント（ｍ）、ロボットのＺＭＰ、ロボットの傾斜角（φ）になり得る。
【０１５１】
計算された関節トルク補正値（ｇ）は関節トルクサーボ制御部３２０に提供される。その結果、関節トルクサーボ制御部３２０は、元の関節トルク命令（τｄ０）に関節トルク補正値（ｇ）を加算して補正し（６１１）、図５のように補正された関節トルク命令（τｄ）に従ってロボット関節部１０１の各関節に設置されたモータ４０５を駆動する（６１３）。
【０１５２】
モータを駆動するとき、関節トルクサーボ制御部３２０は、トルクセンサ４０５ｂによって測定された関節トルク値のフィードバックを受け、関節トルク命令（τｄ）に追従するようにモータ電流（ｉ）を制御するサーボ制御によってモータ４０５を駆動する（６１５）。
【符号の説明】
【０１５３】
３００    関節位置軌跡生成部
３１０    関節トルク計算部
３２０    関節トルクサーボ制御部
３３０    センサ部
３４０    関節位置軌跡補正値計算部
３５０    関節トルク補正値計算部
【図１】
0005916998.tif 000100
【図２】
0005916998.tif 000101
【図３】
0005916998.tif 000102
【図４】
0005916998.tif 000103
【図５】
0005916998.tif 000104
【図６】
0005916998.tif 000105
【図７】
0005916998.tif 000106
【図８】
0005916998.tif 000107
【図９】
0005916998.tif 000108