(57)【要約】【課題】  外力の印加又は環境の変化によってスイング中の脚が地面に速く接触した場合、股関節部の次のノットポイントの時間を補正し、安定的な歩行を行えるようにする歩行ロボット及びその制御方法を提供する。【解決手段】  複数の脚にそれぞれ設けられた股関節部；姿勢を検出する姿勢検出部；前記姿勢から歩行状態を判断する歩行状態判断部；前記歩行状態に基づいてスイング脚と支持脚を確認し、前記複数の脚の歩行状態が変更されるとき、前記スイング脚が予め格納された時間以前に地面に接触したかどうかを判断し、前記スイング脚が予め格納された時間以前に地面に接触したと判断されると、前記スイング脚が行う次の支持周期を短縮させて変更し、前記の変更された次の支持周期に基づいて前記股関節部の目標角度軌跡を生成する目標角度軌跡生成部；前記股関節部の目標角度軌跡に追従するトルクを算出するトルク算出部；及び前記股関節部に前記トルクを出力することによって歩行を制御する制御部を含んで歩行ロボットを構成する。【選択図】      図５
2013126711.tif 000002
【特許請求の範囲】
【請求項１】
複数の脚にそれぞれ設けられた股関節部；
姿勢を検出する姿勢検出部；
前記姿勢から歩行状態を判断する歩行状態判断部；
前記歩行状態に基づいてスイング脚と支持脚を確認し、前記複数の脚の歩行状態が変更されるとき、前記スイング脚が予め格納された時間以前に地面に接触したかどうかを判断し、前記スイング脚が予め格納された時間以前に地面に接触したと判断されると、前記スイング脚が行う次の支持周期を短縮させて変更し、前記の変更された次の支持周期に基づいて前記股関節部の目標角度軌跡を生成する目標角度軌跡生成部；
前記股関節部の目標角度軌跡に追従するトルクを算出するトルク算出部；及び
前記股関節部に前記トルクを出力することによって歩行を制御する制御部を含む歩行ロボット。
【請求項２】
前記目標角度軌跡生成部は、
前記複数の脚のうちいずれか一つの脚がスイング状態であるとき、スイング周期の間前記姿勢に基づいて次の支持周期内の複数のノットポイントを生成する、請求項１に記載の歩行ロボット。
【請求項３】
前記目標角度軌跡生成部は、
前記スイング脚が予め格納された時間以前に地面に接触したと判断されると、前記スイング脚が地面に接触した時点の角度と前記次の支持周期の最初のノットポイントの角度との間の角度差と前記歩行速度に基づいて前記股関節部の次の支持周期の最初のノットポイントの時間を短縮させる、請求項１に記載の歩行ロボット。
【請求項４】
前記目標角度軌跡生成部は、
前記スイング脚が予め格納された時間以前に地面に接触したと判断されると、前記スイング脚が地面に接触した時点の角度と前記次の支持周期の最後のノットポイントの角度との間の角度差と前記歩行速度に基づいて前記股関節部の次の支持周期の最後のノットポイントの時間を短縮させる、請求項１に記載の歩行ロボット。
【請求項５】
前記ノットポイントは、
前記股関節部のピッチノットポイント及びロールノットポイントのうち少なくとも一つのノットポイントである、請求項１に記載の歩行ロボット。
【請求項６】
前記姿勢検出部は、
前記複数の脚の足に伝達される力を検出する力／トルク検出部を含み、
前記歩行状態判断部は、前記足に伝達される力／トルクに基づいて支持脚とスイング脚を判断する、請求項１に記載の歩行ロボット。
【請求項７】
前記目標角度軌跡生成部は、
前記スイング脚が地面に正常に接触する時点のノットポイントの時間を判断して予め格納する、請求項１に記載の歩行ロボット。
【請求項８】
前記目標角度軌跡生成部は、
前記スイング脚が地面に正常に接触する時点のノットポイントの時間と前記スイング脚が実際に地面に接触した時点の時間とを比較し、前記スイング脚が予め格納された時間以前に地面に接触したかどうかを判断する、請求項７に記載の歩行ロボット。
【請求項９】
複数の脚にそれぞれ設けられた股関節部；
姿勢を検出する姿勢検出部；
前記姿勢から歩行状態を判断する歩行状態判断部；
前記歩行状態に基づいてスイング脚と支持脚を確認し、各脚の股関節部のノットポイントを時間によって生成し、前記姿勢から前記重心を検出することによって次のノットポイントの角度及び時間の補償値を算出し、前記角度及び時間の補償値に基づいて次のノットポイントの時間と角度を補正し、前記時間と角度が補正された次のノットポイントを用いて前記股関節部の目標角度軌跡を生成する目標角度軌跡生成部；
前記股関節部の目標角度軌跡に追従するトルクを算出するトルク算出部；及び
前記股関節部に前記トルクを出力することによって歩行を制御する制御部を含む歩行ロボット。
【請求項１０】
前記目標角度軌跡生成部は、
前記スイング脚の次のノットポイントの時間及び角度を補正する、請求項９に記載の歩行ロボット。
【請求項１１】
前記目標角度軌跡生成部は、
前記股関節部のロールノットポイントを連結することによって目標ロール角度軌跡を生成する、請求項９に記載の歩行ロボット。
【請求項１２】
前記目標角度軌跡生成部は、
前記重心がＹ軸方向に変化したＹ軸方向の変化量を判断し、前記の判断されたＹ軸方向の重心の変化量とＹ軸方向の基準変化量とを比較することによってロール角度及び時間の補償値を算出する、請求項１１に記載の歩行ロボット。
【請求項１３】
前記目標角度軌跡生成部は、
前記歩行状態に基づいて前記スイング脚が予め格納された時間以前に地面に接触したかどうかを判断し、前記スイング脚が予め格納された時間以前に地面に接触したと判断されると、前記スイング脚が行う次の支持周期を短縮させ、短縮された支持周期に基づいて前記股関節部の目標角度軌跡を生成する、請求項９に記載の歩行ロボット。
【請求項１４】
前記目標角度軌跡は、
前記スイング脚の股関節部の目標ピッチ角度軌跡である、請求項１３に記載の歩行ロボット。
【請求項１５】
前記目標角度軌跡生成部は、
前記スイング脚が予め格納された時間以前に地面に接触したと判断されると、前記スイング脚が地面に接触した時点の角度、歩行速度及び予め格納された脚の長さに基づいて前記次の支持周期の時間を算出する、請求項１３に記載の歩行ロボット。
【請求項１６】
前記目標角度軌跡生成部は、
前記スイング脚が予め格納された時間以前に地面に接触したと判断されると、前記スイング脚が地面に接触した時点のピッチ角度、歩行速度及び前記重心の高さに基づいて前記次の支持周期の時間を算出する、請求項１３に記載の歩行ロボット。
【請求項１７】
複数の脚での歩行中に現在の周期でのロボットの姿勢を検出し、
前記ロボットの姿勢に基づいて前記複数の脚に対する次の周期内のノットポイントをそれぞれ生成し、
前記ロボットの姿勢から歩行状態を判断することによってスイング脚と支持脚を判断し、
前記スイング脚が予め格納された時間以前に地面に接触したかどうかを判断し、
前記スイング脚が予め格納された時間以前に地面に接触したと判断されると、前記スイング脚が行う次の周期である支持周期内のノットポイントの時間を短縮させて補正し、
前記時間が補正された支持周期のノットポイントを用いて前記股関節部の目標角度軌跡を生成し、
前記股関節部の目標角度軌跡に追従するトルクを算出し、
前記股関節部に前記トルクを出力することによって前記ロボットの歩行を制御する歩行ロボットの制御方法。
【請求項１８】
前記支持周期のノットポイントの時間を補正することは、
前記スイング脚に設けられた股関節部のピッチノットポイント及びロールノットポイントのうち少なくとも一つのノットポイントの時間を補正することを含む、請求項１７に記載の歩行ロボットの制御方法。
【請求項１９】
前記次のノットポイントの時間を補正することは、
前記スイング脚が地面に接触した時点の前記股関節部のピッチ角度が前記支持周期の最初のノットポイントのピッチ角度より大きいかどうかを判断し、
前記スイング脚が地面に接触した時点の前記股関節部のピッチ角度が前記支持周期の最初のノットポイントのピッチ角度より大きいと、前記スイング脚が地面に接触した時点の前記股関節部のピッチ角度と前記支持周期の最初のノットポイントのピッチ角度との角度差を算出し、
前記角度差、予め設定された歩行速度及び前記ロボットの脚の長さに基づいて時間を算出し、
前記の算出された時間に前記支持周期内の最初のピッチノットポイントの時間を短縮させて補正することを含む、請求項１８に記載の歩行ロボットの制御方法。
【請求項２０】
前記次のノットポイントの時間を補正することは、
前記スイング脚が地面に接触した時点の前記股関節部のピッチ角度が前記支持周期の最初のノットポイントのピッチ角度より大きいかどうかを判断し、
前記スイング脚が地面に接触した時点の前記股関節部のピッチ角度が前記支持周期の最初のノットポイントのピッチ角度以下であると、前記スイング脚が地面に接触した時点の前記股関節部のピッチ角度と前記支持周期の最後のノットポイントのピッチ角度との角度差を算出し、
前記角度差、予め設定された歩行速度及び前記ロボットの脚の長さに基づいて時間を算出し、
前記の算出された時間で前記支持周期内の最後のピッチノットポイントの時間を短縮させて補正することを含む、請求項１８に記載の歩行ロボットの制御方法。
【請求項２１】
前記股関節部の目標角度軌跡を生成することは、
前記時間が短縮されて補正されたノットポイントをスプラインで連結し、前記スイング脚に設けられた股関節部の目標角度軌跡を生成することを含む、請求項１７に記載の歩行ロボットの制御方法。
【請求項２２】
前記スイング脚が地面に正常に接触する時点のノットポイントの時間を獲得して予め格納することをさらに含む、請求項１７に記載の歩行ロボットの制御方法。
【請求項２３】
前記スイング脚が予め格納された時間以前に地面に接触したかどうかを判断することは、
前記スイング脚が地面に正常に接触する時点のノットポイントの時間と前記スイング脚が実際に地面に接触した時点の時間とを比較し、
前記スイング脚が地面に正常に接触する時点のノットポイントの時間より前記スイング脚が実際に地面に接触した時点の時間が短いと、前記スイング脚が予め格納された時間以前に地面に接触したと判断することを含む、請求項１７に記載の歩行ロボットの制御方法。
【請求項２４】
複数の脚で歩行するロボットの姿勢を検出し、
前記ロボットの姿勢から歩行状態を判断することによってスイング脚と支持脚を判断し、
前記各脚の股関節部の次のノットポイントを時間によって生成し、
前記ロボットの姿勢から前記ロボットの重心を検出することによって次のノットポイントの角度及び時間の補償値を算出し、
前記の算出された角度及び時間の補償値に基づいて次のノットポイントの時間と角度を補正し、
前記時間と角度が補正された次のノットポイントを用いて前記股関節部の目標角度軌跡を生成し、
前記股関節部の目標角度軌跡に追従するトルクを算出し、
前記股関節部に前記トルクを出力することによって前記ロボットの歩行を制御する歩行ロボットの制御方法。
【請求項２５】
前記次のノットポイントの時間と角度を補正することは、
前記スイング脚の次のロールノットポイントの時間及び角度を補正することを含む、請求項２４に記載の歩行ロボットの制御方法。
【請求項２６】
前記次のノットポイントの角度及び時間の補償値を算出することは、
前記重心がＹ軸方向に変化したＹ軸方向の変化量を判断し、
前記の判断されたＹ軸方向の重心の変化量とＹ軸方向の基準変化量とを比較することによってロール角度及び時間の補償値を算出することを含む、請求項２４に記載の歩行ロボットの制御方法。
【請求項２７】
前記重心のＹ軸変化量は、
前記重心のＹ軸方向の距離変化量と、前記重心のＹ軸方向の速度変化量と、を含む、請求項２６に記載の歩行ロボットの制御方法。
【請求項２８】
前記歩行状態に基づいて前記スイング脚が予め格納された時間以前に地面に接触したかどうかを判断し、
前記スイング脚が予め格納された時間以前に地面に接触したと判断されると、前記スイング脚の支持周期内のピッチノットポイントの時間を短縮させて補正し、
前記時間が短縮されて補正された前記支持周期内のピッチノットポイントを用いて前記スイング脚の股関節部の目標ピッチ角度軌跡を生成することをさらに含む、請求項２４に記載の歩行ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の脚に設けられた関節部の駆動を制御し、安定した歩行を行えるようにする歩行ロボット及びその制御方法に関するものである。
【背景技術】
【０００２】
ロボットは、人間と類似した関節体系を有し、この関節体系を用いて人間と同じ動作をする機械である。
【０００３】
初期には、工場の生産作業の自動化及び無人化のための産業用ロボットの開発が進行されたが、最近は、人間に各種サービスを提供するためのサービス用ロボットの開発が活発に進行されている。ここで、サービス用ロボットのうち一部のロボットは、歩行を行いながら人間にサービスを提供する。
【０００４】
このようなロボットの歩行を制御するための方法としては、ロボット関節の目標位置に追従する位置基盤のＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）制御方法、ロボット関節の目標トルクに追従するトルク基盤の動的歩行制御方法及びＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）制御方法がある。
【０００５】
ここで、ＺＭＰ制御方法は、ＺＭＰが支持多角形（ｃｏｎｖｅｘ  ｐｏｌｙｇｏｎ：一足で支持している場合はその足の領域、両足で支持している場合は両足の領域）内の安全領域に存在するように歩行方向、歩行幅、歩行速度などを予め設定し、この設定に対応する各脚の歩行パターンを生成し、その歩行パターンによって各脚の歩行軌跡を計算し、計算された歩行軌跡の逆機構学（Ｉｎｖｅｒｓｅ  Ｋｉｎｅｍａｔｉｃｓ）計算を通して各脚の関節の位置を計算し、各関節の現在の位置と目標位置に基づいて各関節の目標制御値を計算し、計算された各目標制御値で関節を制御する方法である。
【０００６】
このようなＺＭＰ制御方法は、正確な位置制御が可能であるが、各関節の正確な角度制御のために高いサーボゲイン及び高い電流を必要とするので、エネルギー効率が低く、関節の剛性が大きくなり、任意の物体との衝突時に該当の物体に大きな衝撃を加えるおそれがあるという問題を有する。
【０００７】
また、ＺＭＰ制御方法は、逆機構学を通して各関節の角度を計算するとき、機構学的特異点（Ｋｉｎｅｍａｔｉｃ  Ｓｉｎｇｕｌａｒｉｔｙ）を避けなければならないので、膝を曲げた姿勢を維持しながら歩行を行うようになるという問題を有する。
【０００８】
トルク基盤の動的歩行制御方法は、歩行時に制御時間ごとに各脚の位置が歩行パターンによる歩行軌跡に正確に追従するかどうかを検出し、検出された歩行軌跡に基づいて動的方程式を解いてモーターのトルクを調節することによって、各脚を歩行軌跡に正確に追従させる方法である。
【０００９】
このようなトルク基盤の動的歩行制御方法は、動的方程式が非常に複雑であり、６自由度以上の脚を有したロボットには適用しにくいという問題を有する。
【００１０】
ＦＳＭ制御方法は、歩行による動作状態を予め定めておき、歩行時に各動作状態（ＦＳＭでの状態である）に基づいて各関節の目標トルクを計算し、これに追従するように関節を制御する方法である。
【００１１】
このようなＦＳＭ制御方法は、トルク命令に応じて制御が行われるので、エネルギー効率が高く、剛性が低く、周囲環境に対して安全である。また、逆機構学の計算が必要でなく、特異点でも制御が可能であるので、膝を伸ばした状態の歩行が可能であるが、正確な位置制御が不可能であるので、階段を上ったり、障害物を避けるモーションを行いにくいという問題を有する。
【００１２】
また、ＦＳＭ制御方法で歩行を制御するとき、歩行速度を調節しながら歩行すると、歩行動作が不安定になり、また、最適化された歩行のためのトルクを算出するのに多くの時間がかかるという問題を有する。
【００１３】
また、歩行中にロボットに外力が加えられ、足が地面に速く着く場合、ロボットが不自然に動くという問題を有する。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明の一側面として、外力の印加又は環境の変化によってスイング中の脚が地面に速く接触した場合、股関節部の次のノットポイント（ｋｎｏｔ  ｐｏｉｎｔ）の時間を補正し、安定的な歩行を行えるようにする歩行ロボット及びその制御方法を提供する。
【００１５】
他の側面としては、外力が印加されたり、環境が変わった場合、重心に基づいて股関節部のノットポイントの角度及び時間を補正することによって安定的な歩行を行えるようにする歩行ロボット及びその制御方法を提供する。
【課題を解決するための手段】
【００１６】
上記の一側面に係る歩行ロボットは、複数の脚にそれぞれ設けられた股関節部と、姿勢を検出する姿勢検出部と、姿勢から歩行状態を判断する歩行状態判断部と、歩行状態に基づいてスイング脚と支持脚を確認し、複数の脚の歩行状態が変更されるとき、スイング脚が予め格納された時間以前に地面に接触したかどうかを判断し、スイング脚が予め格納された時間以前に地面に接触したと判断されると、スイング脚が行う次の支持周期を短縮させて変更し、変更された次の支持周期に基づいて股関節部の目標角度軌跡を生成する目標角度軌跡生成部と、股関節部の目標角度軌跡に追従するトルクを算出するトルク算出部と、股関節部にトルクを出力することによって歩行を制御する制御部とを含む。
【００１７】
目標角度軌跡生成部は、複数の脚のうちいずれか一つの脚がスイング状態であるとき、スイング周期の間の姿勢に基づいて次の支持周期内の複数のノットポイントを生成する。
【００１８】
目標角度軌跡生成部は、スイング脚が予め格納された時間以前に地面に接触したと判断されると、スイング脚が地面に接触した時点の角度と次の支持周期の最初のノットポイントの角度との間の角度差と歩行速度に基づいて股関節部の次の支持周期の最初のノットポイントの時間を短縮させる。
【００１９】
目標角度軌跡生成部は、スイング脚が予め格納された時間以前に地面に接触したと判断されると、スイング脚が地面に接触した時点の角度と次の支持周期の最後のノットポイントの角度との間の角度差と歩行速度に基づいて股関節部の次の支持周期の最後のノットポイントの時間を短縮させる。
【００２０】
ノットポイントは、股関節部のピッチノットポイント及びロールノットポイントのうち少なくとも一つのノットポイントである。
【００２１】
姿勢検出部は、複数の脚の足に伝達される力を検出する力／トルク検出部を含み、歩行状態判断部は、足に伝達される力／トルクに基づいて支持脚とスイング脚を判断する。
【００２２】
目標角度軌跡生成部は、スイング脚が地面に正常に接触する時点のノットポイントの時間を判断して予め格納する。
【００２３】
目標角度軌跡生成部は、スイング脚が地面に正常に接触する時点のノットポイントの時間とスイング脚が実際に地面に接触した時点の時間とを比較し、スイング脚が予め格納された時間以前に地面に接触したかどうかを判断する。
【００２４】
一方、上記他の側面に係る歩行ロボットは、複数の脚にそれぞれ設けられた股関節部と、姿勢を検出する姿勢検出部と、姿勢から歩行状態を判断する歩行状態判断部と、歩行状態に基づいてスイング脚と支持脚を確認し、各脚の股関節部のノットポイントを時間によって生成し、姿勢から重心を検出することによって次のノットポイントの角度及び時間の補償値を算出し、角度及び時間の補償値に基づいて次のノットポイントの時間と角度を補正し、時間と角度が補正された次のノットポイントを用いて股関節部の目標角度軌跡を生成する目標角度軌跡生成部と、股関節部の目標角度軌跡に追従するトルクを算出するトルク算出部と、股関節部にトルクを出力することによって歩行を制御する制御部とを含む。
【００２５】
目標角度軌跡生成部は、スイング脚の次のノットポイントの時間及び角度を補正する。目標角度軌跡生成部は、股関節部のロールノットポイントを連結することによって目標ロール角度軌跡を生成する。
【００２６】
目標角度軌跡生成部は、重心がＹ軸方向に変化したＹ軸方向の変化量を判断し、判断されたＹ軸方向の重心の変化量とＹ軸方向の基準変化量とを比較することによってロール角度及び時間の補償値を算出する。
【００２７】
目標角度軌跡生成部は、歩行状態に基づいてスイング脚が予め格納された時間以前に地面に接触したかどうかを判断し、スイング脚が予め格納された時間以前に地面に接触したと判断されると、スイング脚が行う次の支持周期を短縮させ、短縮された支持周期に基づいて股関節部の目標角度軌跡を生成する。
【００２８】
目標角度軌跡は、スイング脚の股関節部の目標ピッチ角度軌跡である。目標角度軌跡生成部は、スイング脚が予め格納された時間以前に地面に接触したと判断されると、スイング脚が地面に接触した時点の角度、歩行速度及び予め格納された脚の長さに基づいて次の支持周期の時間を算出する。
【００２９】
目標角度軌跡生成部は、スイング脚が予め格納された時間以前に地面に接触したと判断されると、スイング脚が地面に接触した時点のピッチ角度、歩行速度及び重心の高さに基づいて次の支持周期の時間を算出する。
【００３０】
また、更に他の側面に係る歩行ロボットの制御方法は、複数の脚での歩行中に現在の周期でのロボットの姿勢を検出し、ロボットの姿勢に基づいて複数の脚に対する次の周期内のノットポイントをそれぞれ生成し、ロボットの姿勢から歩行状態を判断することによってスイング脚と支持脚を判断し、スイング脚が予め格納された時間以前に地面に接触したかどうかを判断し、スイング脚が予め格納された時間以前に地面に接触したと判断されると、スイング脚が行う次の周期である支持周期内のノットポイントの時間を短縮させて補正し、時間が補正された支持周期のノットポイントを用いて股関節部の目標角度軌跡を生成し、股関節部の目標角度軌跡に追従するトルクを算出し、股関節部にトルクを出力することによってロボットの歩行を制御する。
【００３１】
支持周期のノットポイントの時間を補正することは、スイング脚に設けられた股関節部のピッチノットポイント及びロールノットポイントのうち少なくとも一つのノットポイントの時間を補正することを含む。
【００３２】
次のノットポイントの時間を補正することは、スイング脚が地面に接触した時点の股関節部のピッチ角度が支持周期の最初のノットポイントのピッチ角度より大きいかどうかを判断し、スイング脚が地面に接触した時点の股関節部のピッチ角度が支持周期の最初のノットポイントのピッチ角度より大きいと、スイング脚が地面に接触した時点の股関節部のピッチ角度と支持周期の最初のノットポイントのピッチ角度との角度差を算出し、角度差、予め設定された歩行速度及びロボットの脚の長さに基づいて時間を算出し、算出された時間で支持周期内の最初のピッチノットポイントの時間を短縮させて補正することを含む。
【００３３】
次のノットポイントの時間を補正することは、スイング脚が地面に接触した時点の股関節部のピッチ角度が支持周期の最初のノットポイントのピッチ角度より大きいかどうかを判断し、スイング脚が地面に接触した時点の股関節部のピッチ角度が支持周期の最初のノットポイントのピッチ角度以下であると、スイング脚が地面に接触した時点の股関節部のピッチ角度と支持周期の最後のノットポイントのピッチ角度との角度差を算出し、角度差、予め設定された歩行速度及びロボットの脚の長さに基づいて時間を算出し、算出された時間で支持周期内の最後のピッチノットポイントの時間を短縮させて補正することを含む。
【００３４】
股関節部の目標角度軌跡を生成することは、時間が短縮されて補正されたノットポイントをスプラインで連結し、スイング脚に設けられた股関節部の目標角度軌跡を生成することを含む。
【００３５】
歩行ロボットの制御方法は、スイング脚が地面に正常に接触する時点のノットポイントの時間を獲得して予め格納することをさらに含む。
【００３６】
スイング脚が予め格納された時間以前に地面に接触したかどうかを判断することは、スイング脚が地面に正常に接触する時点のノットポイントの時間とスイング脚が実際に地面に接触した時点の時間とを比較し、スイング脚が地面に正常に接触する時点のノットポイントの時間よりスイング脚が実際に地面に接触した時点の時間が短いと、スイング脚が予め格納された時間以前に地面に接触したと判断することを含む。
【００３７】
また、他の側面に係る歩行ロボットの制御方法は、複数の脚で歩行するロボットの姿勢を検出し、ロボットの姿勢から歩行状態を判断することによってスイング脚と支持脚を判断し、各脚の股関節部の次のノットポイントを時間によって生成し、ロボットの姿勢からロボットの重心を検出することによって次のノットポイントの角度及び時間の補償値を算出し、算出された角度及び時間の補償値に基づいて次のノットポイントの時間と角度を補正し、時間と角度が補正された次のノットポイントを用いて股関節部の目標角度軌跡を生成し、股関節部の目標角度軌跡に追従するトルクを算出し、股関節部にトルクを出力することによってロボットの歩行を制御する。
【００３８】
次のノットポイントの時間と角度を補正することは、スイング脚の次のロールノットポイントの時間及び角度を補正することを含む。次のノットポイントの角度及び時間の補償値を算出することは、重心がＹ軸方向に変化したＹ軸方向の変化量を判断し、判断されたＹ軸方向の重心の変化量とＹ軸方向の基準変化量とを比較することによってロール角度及び時間の補償値を算出することを含む。
【００３９】
重心のＹ軸変化量は、重心のＹ軸方向の距離変化量と、重心のＹ軸方向の速度変化量とを含む。
【００４０】
また更に、歩行ロボットの制御方法は、歩行状態に基づいてスイング脚が予め格納された時間以前に地面に接触したかどうかを判断し、スイング脚が予め格納された時間以前に地面に接触したと判断されると、スイング脚の支持周期内のピッチノットポイントの時間を短縮させて補正し、時間が短縮されて補正された支持周期内のピッチノットポイントを用いてスイング脚の股関節部の目標ピッチ角度軌跡を生成することを含む。
【発明の効果】
【００４１】
一つには、外力が印加されたり、環境が変わった場合、歩行中の均衡を維持するために次のノットポイントの時間と角度を調節することによって、柔軟かつ安定的な歩行を具現することができる。
【００４２】
また、歩行中に各関節部の回転角度を正確に制御する必要がないので、低いサーボゲインで歩行を行うことができ、その結果、既存の歩行に比べてエネルギー消費を減少させることができ、各関節が低剛性を有することによって周囲環境との衝突時における衝撃を減少させることができる。
【００４３】
また、逆機構学を解くべき既存の歩行方式では具現が不可能な膝伸ばし歩行を行うことによって人間型歩行を具現することができ、その結果、ロボットの人間親和性を向上させることができ、ロボットの膝曲げ時に消費されるエネルギーを節約することができる。
【００４４】
加えて、複雑な動的方程式を解く必要がないので、６自由度の関節を有したロボットの歩行を制御することができる。
【００４５】
各関節部の各ノットポイントをスプラインを用いて柔軟に連結することによって、人間の歩行と最大限に類似した歩行を具現することができる。
【図面の簡単な説明】
【００４６】
【図１】一実施例に係る歩行ロボットの例示図である。
【図２】一実施例に係る歩行ロボットの関節構造の例示図である。
【図３】一実施例に係る歩行ロボットの制御構成図である。
【図４】一実施例に係る歩行ロボットに設けられた歩行状態判断部２３０の歩行状態判断の例示図である。
【図５】一実施例に係る歩行ロボットの制御フローチャートである。
【図６】一実施例に係る歩行ロボットの歩行時における時間による右側脚の股関節部の目標ピッチ角度軌跡の例示図である。
【図７】一実施例に係る歩行ロボットの歩行時における時間による右側脚の股関節部の目標ピッチ角度軌跡の例示図である。
【図８】一実施例に係る歩行ロボットの歩行時における時間による右側脚の股関節部の目標ピッチ角度軌跡の例示図である。
【図９】他の実施例に係る歩行ロボットの制御構成図である。
【図１０Ａ】他の実施例に係る歩行ロボットの重心変化の例示図である。
【図１０Ｂ】他の実施例に係る歩行ロボットの重心変化の例示図である。
【図１１】他の実施例に係る歩行ロボットの目標角度軌跡生成部の詳細構成図である。
【図１２】他の実施例に係る歩行ロボットの制御フローチャートである。
【図１３】他の実施例に係る歩行ロボットの歩行中における時間による右側脚に設けられた股関節部の目標ロール角度軌跡の例示図である。
【発明を実施するための形態】
【００４７】
以下、添付の図面を参照して本発明について詳細に説明する。
【００４８】
図１は、一実施例に係るロボットの例示図で、図２は、一実施例に係る歩行ロボットの関節構造の例示図である。図１に示すように、歩行ロボット１００は、頭１１０、首１２０、胴体１３０、腕１４０Ｒ、１４０Ｌ、手１５０Ｒ、１５０Ｌからなる上体と、複数の脚１６０Ｒ、１６０Ｌ及び脚１７０Ｒ、１７０Ｌからなる下体とを有する。
【００４９】
このような上体及び下体の外部にはカバーが設けられており、このカバーによって歩行ロボットの各構成部が外部の衝撃から保護される。
【００５０】
より具体的に説明すると、歩行ロボット１００の上体は、頭１１０と、頭１１０の下部に首１２０を介して連結された胴体１３０と、胴体１３０の上部両側に連結された二つの腕１４０Ｒ、１４０Ｌと、これら二つの腕１４０Ｒ、１４０Ｌの末端にそれぞれ連結された手１５０Ｒ、１５０Ｌとを含む。
【００５１】
歩行ロボット１００の下体は、上体の胴体１３０の下部両側に連結された二つの脚１６０Ｒ、１６０Ｌと、二つの脚１６０Ｒ、１６０Ｌの末端にそれぞれ連結された足１７０Ｒ、１７０Ｌとを含む。
【００５２】
ここで、頭１１０、二つの腕１４０Ｌ、１４０Ｒ、二つの手１５０Ｌ、１５０Ｒ、二つの脚１６０Ｌ、１６０Ｒ、二つの足１７０Ｌ、１７０Ｒは、それぞれ関節を介して一定水準の自由度を有する。図中、「Ｒ」と「Ｌ」は、それぞれロボット１００の右側と左側を示す。
【００５３】
以下、図２を参照して具体的に説明する。
【００５４】
頭１１０には、周囲の映像を獲得する少なくとも一つのカメラ１１１と、周囲の音源を検出するマイクロホン１１２とが設けられている。
【００５５】
首１２０は、頭１１０と胴体１３０を連結する。このような首１２０は、３自由度を有する複数の首関節部からなる。
【００５６】
首関節部は、ヨー（ｙａｗ、Ｚ軸回転：Ｍｚ）の回転関節１２１と、ピッチ方向（ｐｉｔｃｈ、Ｙ軸回転：Ｍｙ）の回転関節１２２と、ロール方向（ｒｏｌｌ、Ｘ軸回転：Ｍｘ）の回転関節１２３とを含む。ここで、首関節部の複数の回転関節１２１、１２２、１２３には、頭回転用モーター（図示せず）がそれぞれ設けられている。
【００５７】
胴体１３０の上側両方には、二つの腕１４０Ｌ、１４０Ｒを連結する肩関節部１３１がそれぞれ設けられており、下側両方には二つの脚１６０Ｌ、１６０Ｒを連結する股関節部１６３がそれぞれ設けられており、胸と腰との間には胸が腰に対して回転できるようにヨー方向の回転関節部１３２が設けられている。
【００５８】
二つの腕１４０Ｌ、１４０Ｒは、上膊骨部１４１、下膊骨部１４２、肘関節部１４３及び手首関節部１４４をそれぞれ含む。
【００５９】
各肩関節部１３１には上膊骨部１４１が連結されており、各肘関節部１４３には下膊骨部１４２が連結されており、各手首関節部１４４には手１５０Ｒ、１５０Ｌが連結されている。
【００６０】
ここで、各肩関節部１３１は、ピッチ方向の回転関節１３１ａと、ロール方向の回転関節１３１ｂと、ヨー方向の回転関節１３１ｃとを含み、各肘関節部１４３は、ピッチ方向の回転関節１４３ａと、ヨー方向の回転関節１４３ｂとを含み、各手首関節部１４４は、ピッチ方向の回転関節１４４ａと、ロール方向の回転関節１４４ｂとを含む。
【００６１】
すなわち、肩関節部１３１はそれぞれ３自由度を有し、肘関節部１４３はそれぞれ２自由度を有し、各手首関節部１４４はそれぞれ２自由度を有する。
【００６２】
手１５０Ｒ、１５０Ｌには５個の指１５１が設けられており、各指１５１にはモーターによって駆動される多数の関節（図示せず）を設けることも可能である。このような指１５１は、腕１４０Ｒ、１４０Ｌの動きに連動して物を把持したり、特定方向を指すなどの多様な動作を行う。
【００６３】
歩行ロボット１００の二つの脚１６０Ｒ、１６０Ｌは、それぞれ大腿骨部１６１、下腿骨部１６２、股関節部１６３、膝関節部１６４及び足首関節部１６５をそれぞれ含む。
【００６４】
各股関節部１６３には大腿骨部１６１が連結されており、各膝関節部１６４には下腿骨部１６２が連結されており、各足首関節部１６５には脚１７０Ｌ、１７０Ｒが連結されている。
【００６５】
股関節部１６３は、ヨー方向（ｙａｗ、Ｚ軸回転）の回転関節１６３ａと、ピッチ方向（ｐｉｔｃｈ、Ｙ軸回転）の回転関節１６３ｂと、ロール方向（ｒｏｌｌ、Ｘ軸回転）の回転関節１６３ｃとを含み、膝関節部１６４は、ピッチ方向の回転関節１６４ａを含み、足首関節部１６５は、ピッチ方向の回転関節１６５ａと、ロール方向の回転関節１６５ｂとを含む。
【００６６】
すなわち、各股関節部１６３は３自由度を有し、各膝関節部１６４は１自由度を有し、足首関節部１６５は２自由度を有する。
【００６７】
このように二つの脚１６０Ｌ、１６０Ｒがそれぞれ三つの関節部１６３、１６４、１６５に設けられた６個の回転関節を含むので、二つの脚１６０Ｌ、１６０Ｒ全体に対して１２個の回転関節を含んでいる。
【００６８】
このような歩行ロボット１００の各回転関節にはモーター（図示せず）などのアクチュエーターが設けられている。その結果、各回転関節は、モーターの回転によって回転運動を適宜行うことによって多様な動作を具現することができ、歩行ロボットの歩行時に均衡を維持しながら安定的かつ自然な歩行を行えようにする。
【００６９】
以下、これを図３を参照して具体的に説明する。図３は、一実施例に係る歩行ロボットの制御装置２００の制御構成図であって、歩行ロボットの制御装置２００は、入力部２１０、姿勢検出部２２０、歩行状態判断部２３０、目標角度軌跡生成部２４０、トルク算出部２５０及び制御部２６０を含む。
【００７０】
入力部２１０は、ユーザーから歩行ロボットの歩行命令の入力を受け、また、歩行ロボットの歩行速度の入力を受ける。ここで、入力部２１０は、外部から伝送された歩行ロボットの歩行命令及び歩行速度を受信する通信部の機能を有することも可能である。
【００７１】
併せて、歩行速度は、予め設定されていることも可能である。すなわち、歩行ロボットは、入力部２１０を通して入力されたユーザーの命令と歩行ロボットの姿勢に基づいて各関節部１６３、１６４、１６５に設置された複数のモーター（図示せず）を駆動させることによって、ユーザーの命令に対応する歩行速度で安定した歩行を行う。
【００７２】
姿勢検出部２２０は、歩行ロボットの姿勢を検出し、検出された姿勢情報を歩行状態判断部２３０に伝送する。ここで、歩行ロボットの姿勢情報は、足が地面に接触した着地情報、着地に対応する支持脚とスイング脚の情報である。
【００７３】
このような姿勢検出部２２０は、歩行ロボットの上体傾きを検出する傾き検出部２２１と、歩行ロボットの着地の可否及び着地の可否に対応する支持脚とスイング脚を検出する力／トルク検出部２２２とを含む。
【００７４】
傾き検出部２２１は、胴体１３０に位置し、鉛直線に対する上体の傾きであるピッチ、ロール、ヨーの３個の軸の回転角度及びその角速度を検出する。ここで、傾き検出部２２１は、慣性を測定するＩＭＵ（Ｉｎｅｒｔｉａｌ  Ｍｅａｓｕｒｅｍｅｎｔ  ｕｎｉｔ）を含む。
【００７５】
ここで、各関節部の回転角度は、各関節部に設けられた複数のモーター（図示せず）の回転数を通して知ることができる。各モーター（図示せず）の回転数は、各モーターに連結されたエンコーダー（図示せず）を通して検出可能である。
【００７６】
力／トルク検出部（Ｍｕｌｔｉ―Ａｘｉｓ  Ｆｏｒｃｅ  ａｎｄ  Ｔｏｒｑｕｅ  Ｓｅｎｓｏｒ）２２２は、多軸センサーであって、各脚１６０Ｌ、１６０Ｒと脚１７０Ｒ、１７０Ｌとの間に位置し、足１７０Ｌ、１７０Ｒに加えられる荷重を検出する。
【００７７】
また、力／トルク検出部２２２は、足１７０Ｌ、１７０Ｒに伝達される力の３方向成分（Ｆｘ、Ｆｙ、Ｆｚ）とモーメントの３方向成分（Ｍｘ、Ｍｙ、Ｍｚ）を検出して歩行状態判断部２３０に伝送する。
【００７８】
歩行状態判断部２３０は、姿勢検出部２２０の力／トルク検出部２２２で検出された各足に加えられる荷重に基づいて着地の可否を判断し、荷重が検出された脚を支持状態と判断し、荷重が検出されていない脚をスイング状態と判断する。
【００７９】
以下、これを図４を参照して説明する。図４は、一実施例に係るロボットの歩行制御装置に設けられた歩行状態判断部２３０の歩行状態判断の例示図である。
【００８０】
歩行状態判断部２３０は、右側脚の足に荷重が加えられると判断されると、右側脚を支持状態、左側脚をスイング状態と判断し、この状態を「状態マシン０」と認識し、左側脚の足に荷重が加えられると判断されると、左側脚を支持状態、右側脚をスイング状態と判断し、この状態を「状態マシン１」と認識した後、認識データを目標角度軌跡生成部２４０に伝送する。
【００８１】
このような歩行状態判断部２３０は、ＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）に基づいた二つの脚の歩行状態データを格納する。ここで、ＦＳＭは、二つの脚の制限された状態変化を順次示したものである。
【００８２】
すなわち、歩行ロボットの各脚は、歩行時にＦＳＭに基づいてスイング状態と支持状態を交互に繰り返し、二つの脚は互いに異なる状態を行う。
【００８３】
目標角度軌跡生成部２４０は、歩行状態判断部２３０で判断された現在の各脚の歩行状態情報及び入力部２１０を通して入力された歩行速度に基づいて次の歩行を行うための複数の回転関節の回転角度を決定し、各関節部１６３、１６４、１６５に設けられた複数の回転関節の回転角度に基づいて複数の回転関節に対するノットポイント（Ｋｎｏｔ  Ｐｏｉｎｔ）をそれぞれ生成し、複数の回転関節のノットポイントをそれぞれスプラインで連結し、複数の回転関節に対する目標角度軌跡をそれぞれ生成する。
【００８４】
ここで、目標角度軌跡は、支持状態を行うための支持軌跡と、スイング状態を行うためのスイング軌跡とを含む。すなわち、目標角度軌跡生成部は、ロボットの姿勢及び歩行速度に基づいて支持軌跡とスイング軌跡を交互に繰り返して生成する。
【００８５】
ここで、スイング状態に対応するスイング軌跡がなす区間をスイング周期と称し、支持状態に対応する支持軌跡がなす区間を支持周期と称する。
【００８６】
目標角度軌跡生成部２４０は、スプライン関数を用いてノットポイント間の各値を生成する。これによって、複数のノットポイントをスプラインを通して連結する。例えば、スプライン関数には、５次関数であるクインティックスプライン（ｑｕｉｎｔｉｃ  ｓｐｌｉｎｅ）、３次関数であるキュービックスプライン（ｃｕｂｉｃ  ｓｐｌｉｎｅ）、キャットマルロムスプライン（ｃａｔｍｕｌｌ―ｒｏｍ  ｓｐｌｉｎｅ）などがある。
【００８７】
目標角度軌跡生成部２４０は、スイング脚が地面に正常に接触する時点に位置したノットポイントの時間とスイング脚が実際に地面に接触した時点の時間とを比較し、このとき、スイング脚が地面に正常に接触する時点に位置したノットポイントの時間よりスイング脚が実際に地面に接触した時点の時間が短いと、スイング脚が予め格納された時間以前に地面に接触したと判断する。
【００８８】
ここで、予め格納された時間は、スイング脚が地面に正常に接触する時点のノットポイントの時間であって、目標角度軌跡生成部２４０は、スイング脚が地面に正常に接触する時点のノットポイントの時間を判断して予め格納する。
【００８９】
目標角度軌跡生成部２４０は、環境の変化又は外力の印加によってスイング脚が予め格納された時間以前に地面に接触したと判断されると、地面に速く接触したスイング脚が次に行う支持周期を短縮させて補正し、短縮されて補正された支持周期内のノットポイントをスプラインで連結し、股関節部の目標角度軌跡を生成する。
【００９０】
ここで、支持周期を短縮させることは、スイング脚が地面に接触した時点に基づいてスイング脚が地面に正常的に接触したときに次の支持周期内のノットポイントの時間を短縮させることによって、全体的な周期を短縮させることである。
【００９１】
このようにスイングする脚が地面に速く接触すると、次に行うべき支持周期内のノットポイントの時間を短縮させることによって、歩行速度が遅くなることを防止することができる。
【００９２】
ここで、ノットポイントは、股関節部のピッチノットポイント及びロールノットポイントのうち少なくとも一つのノットポイントであって、目標角度軌跡は、股関節部の目標ピッチ角度軌跡及び股関節部の目標ロール角度軌跡のうち少なくとも一つの目標角度軌跡である。
【００９３】
目標角度軌跡生成部２４０は、目標ピッチ角度軌跡及び目標ロール角度軌跡をトルク算出部２５０にそれぞれ伝送する。トルク算出部２５０は、目標角度軌跡生成部２４０から伝送された各脚の股関節部１６３の目標ピッチ角度軌跡、股関節部１６３の目標ロール角度軌跡に追従するためのトルクをそれぞれ算出する。
【００９４】
このようなトルク算出部２５０は、各脚の股関節部１６３に設けられた各回転関節に印加されるトルクを算出するときにＰＤ（Ｐｒｏｐｏｒｔｉｏｎａｌ―Ｄｅｒｉｖａｔｉｖｅ）制御を用いる。ここで、トルクは、目標角度に追従するためのモーター（図示せず）の回転力である。
【００９５】
制御部２６０は、トルク算出部２５０で算出されたトルクを生成するために算出されたトルクに対応するＰＷＭを制御し、これを股関節部１６３に設けられたモーター（図示せず）にそれぞれ出力する。
【００９６】
図５は、一実施例に係るロボットの歩行制御方法のフローチャートで、これを図５〜図８を参照して説明する。
【００９７】
歩行ロボット１００は、入力部２１０を通して歩行命令が入力（３０１）されると、予め設定された歩行速度でロボットの歩行を制御する。併せて、歩行ロボットは、入力部２１０を通して歩行速度の入力を受けることも可能である。
【００９８】
まず、歩行ロボットは、各脚の現在の目標角度軌跡に基づいて歩行を行い、歩行中の姿勢を検出（３０２）する。次に、歩行ロボットは、次の歩行周期を行うために検出された姿勢に基づいて各脚のノットポイントを生成（３０３）する。
【００９９】
例えば、現在の歩行周期で右側脚がスイング状態で、左側脚が支持状態であると、次の歩行周期を行うために右側脚に対する支持状態のノットポイントを生成し、左側脚に対するスイング状態のノットポイントを生成する。
【０１００】
すなわち、支持状態を行う支持周期内のノットポイントと、スイング状態を行うスイング周期内のノットポイントとを生成する。ここで、一つの脚に対する目標角度軌跡のスイング周期及び支持周期内のノットポイントは、歩行の進行状態に基づいて生成されるので、互いに異なる時間値を有する。
【０１０１】
このとき、各脚に設けられた各関節部の複数の回転関節に対するノットポイントをそれぞれ生成する。そして、歩行ロボット１００は、次の歩行周期を行うために各脚に対するノットポイントの生成時にスイング脚が地面に正常に接触する時点の時間を判断して格納する。
【０１０２】
併せて、現在の歩行周期でスイング脚が地面に正常に接触する時点の時間は、以前の歩行周期で判断されて格納されたものである。
【０１０３】
歩行ロボット１００は、歩行中に各足首に加えられる荷重に基づいて地面に接触し、自分の体を支持する支持脚と、地面から分離されて空間をスイングするスイング脚とを判断（３０４）する。歩行ロボット１００は、環境の変化又は外力の印加によってスイング脚が予め格納された時間以前に地面に接触したかどうかを判断（３０５）する。
【０１０４】
このために、歩行ロボットは、支持脚とスイング脚の判断結果に基づいてスイング中の脚が地面に接触したと判断されると、スイング脚が地面に正常に接触する時点の時間とスイング脚が実際に地面に接触した時点の時間とを比較する。
【０１０５】
このとき、スイング脚が地面に正常に接触する時点の時間よりスイング脚が実際に地面に接触した時点の時間が短いと、スイング脚が予め格納された時間以前に地面に接触したと判断する。
【０１０６】
次に、歩行ロボット１００は、スイング脚が予め格納された時間に地面に接触したと判断されると、地面に接触したスイング脚の次の周期である支持周期のノットポイントの時間値を維持させる。
【０１０７】
一方、歩行ロボット１００は、環境の変化又は外力の印加によってスイング脚が予め格納された時間以前に地面に接触したと判断されると、地面に速く接触したスイング脚の次の周期である支持周期を短縮させる。
【０１０８】
より具体的には、スイング脚が地面に正常に接触したとき、次の支持周期内のノットポイントの時間をスイング脚が実際に地面に接触した時間に基づいて短縮させて変更（３０６）することによって、全体的な支持周期を短縮させる。
【０１０９】
次に、歩行ロボット１００は、ノットポイントをスプラインで連結して目標角度軌跡を生成（３０７）する。次に、ロボットは、各脚の関節部１６３、１６４、１６５の目標角度軌跡に追従するためのトルクをそれぞれ算出（３０８）する。
【０１１０】
次に、ロボットは、算出されたトルクがそれぞれ出力されるように電流のパルス幅変調（ＰＷＭ）を行い、パルス幅変調（ＰＷＭ）によって制御された電流を各関節部１６３、１６４、１６５に設けられた複数の回転関節のモーター（図示せず）にそれぞれ印加（３０９）することによって、複数のモーターをそれぞれ回転させる。ロボットは、これら複数のモーターの回転によって歩行を行う。
【０１１１】
ロボットは、モーターに印加されるトルクを算出するときにＰＤ（Ｐｒｏｐｏｒｔｉｏｎａｌ―Ｄｅｒｉｖａｔｉｖｅ）制御を用い、トルク算出式は次に示す通りである。
【０１１２】
Ｔ＝ｋｐ（θｄ−θｃ）＋ｋｄ（θｄ’−θｃ’）
ここで、ｋｐはＰＤ制御のＰゲインで、ｋｄはＰＤ制御のＤゲインで、θｄは目標角度で、θｃは現在の角度である。そして、Ｐ、Ｄゲインは、安定的な歩行を可能にするゲインであって、実験を通して獲得されたものである。ここで、トルクは、目標角度に追従するためのモーター（図示せず）の回転力である。
【０１１３】
本実施例で、ノットポイントは、股関節部のロールノットポイント及び股関節部のピッチノットポイントのうち少なくとも一つのノットポイントであって、目標角度軌跡は、股関節部の目標ロール角度軌跡及び股関節部の目標ピッチ角度軌跡のうち少なくとも一つの目標角度軌跡であり、トルクは、股関節部のピッチ回転関節に印加されるトルク及び股関節部のロール回転関節に印加されるトルクのうち少なくとも一つのトルクである。
【０１１４】
次に、図６〜図８を参照してスイング脚の地面接触時点によるノットポイントの生成と目標角度軌跡の生成について説明する。
【０１１５】
図６は、右側脚１６０Ｒの股関節部１６３の目標ピッチ角度軌跡の例示図であって、右側脚であるスイング脚が地面に正常に接触したときのノットポイント及び目標ピッチ角度の軌跡を示している。
【０１１６】
歩行ロボットの右側脚は、スイング状態及び支持状態を交互に繰り返し、左側脚と互いに異なる動作を行う。このとき、右側脚が支持状態であると、支持周期の間支持のための動作を行いながら次のスイング周期内のピッチノットポイントを生成し、右側脚がスイング状態であると、スイング周期の間スイングのための動作を行いながら次の支持周期内のピッチノットポイントを生成する。
【０１１７】
図６に示すように、歩行ロボットは、支持周期の間地面に足を接触させる時点、地面に足のかかと及びつま先を全て接触させる時点、足を離す時点に生成されたピッチノットポイント（Ｋ＝０、１、２）を連結した目標角度軌跡に追従しながら右側脚を通して支持を行い、支持中の姿勢に基づいて次の状態を行うためのピッチノットポイントを生成する。
【０１１８】
ここで、次の状態は、右側脚を通してスイングを行う状態であって、歩行ロボットは、右側脚のスイング周期内のピッチノットポイント（Ｋ＝３、４）を生成する。このとき、歩行ロボットは、足をスイングする時点、地面に足を接触させる時点にピッチノットポイント（Ｋ＝３、４）を生成する。
【０１１９】
歩行ロボットは、左側足が地面に接触すると、地面から足を離す時点のピッチノットポイント（Ｋ＝２）と新しく生成されたピッチノットポイント（Ｋ＝３、４）を連結してスイング周期の間の目標ピッチ角度軌跡を生成し、スイング周期の間の目標ピッチ角度軌跡に追従しながら右側脚を通してスイングを行い、スイング中の姿勢に基づいて次の状態を行うためのピッチノットポイントを生成する。
【０１２０】
ここで、次の状態は、右側脚を通して支持を行う状態であって、歩行ロボットは、右側脚の支持周期内のピッチノットポイント（Ｋ＝５、６）を生成する。このとき、歩行ロボットは、地面に足のかかと及びつま先を全て接触させる時点、再び足を離す時点にピッチノットポイント（Ｋ＝５、６）を生成する。
【０１２１】
歩行ロボットは、スイング中の右側足が地面に正常に接触すると、地面に足を接触させる時点のピッチノットポイント（Ｋ＝４）と新しく生成されたピッチノットポイント（Ｋ＝５、６）を連結し、支持周期の間の目標ピッチ角度軌跡を生成し、支持周期の間の目標ピッチ角度軌跡に追従しながら右側脚を通して支持を行い、支持中の姿勢に基づいて次の状態を行うためのピッチノットポイント（Ｋ＝７、８）を生成する。
【０１２２】
すなわち、ロボットは、ピッチノットポイント（Ｋ＝０、１、２）で支持を行い、ピッチノットポイント（Ｋ＝２、３、４）でスイングを行い、ピッチノットポイント（Ｋ＝４、５、６）で再び支持を行い、ピッチノットポイント（Ｋ＝６、７、８）で再びスイングを行う。このような過程を繰り返すことによって、歩行ロボットは歩行を安定的に行う。
【０１２３】
ここで、ピッチノットポイント（Ｋ＝１、２、４、６、８）は、スイング状態と支持状態との交差地点のピッチノットポイントであって、ピッチノットポイント（Ｋ＝０、１、２）の区間とピッチノットポイント（Ｋ＝４、５、６）の区間は支持周期で、ピッチノットポイント（Ｋ＝２、３、４）の区間とピッチノットポイント（Ｋ＝６、７、８）の区間はスイング周期である。
【０１２４】
図７及び図８は、右側脚１６０Ｒの股関節部１６３の目標ピッチ角度軌跡の例示図であって、右側脚であるスイング脚が予め格納された時間以前に地面に接触したときのノットポイント及び目標ピッチ角度軌跡を示している。
【０１２５】
歩行ロボットは、支持周期内のピッチノットポイント（Ｋ＝０、１、２）を連結した目標ピッチ角度軌跡に追従しながら右側脚を通して支持を行い、支持中の姿勢に基づいて次の状態であるスイング状態を行うためのピッチノットポイントを生成する。
【０１２６】
このとき、歩行ロボットは、足をスイングする時点、地面に足を接触させる時点にピッチノットポイント（Ｋ＝３、４）を生成する。
【０１２７】
歩行ロボットは、左側足が地面に接触すると、地面から足を離す時点のピッチノットポイント（Ｋ＝２）と新しく生成されたピッチノットポイント（Ｋ＝３、４）を連結し、スイング周期の間の目標ピッチ角度軌跡を生成する。
【０１２８】
そして、歩行ロボットは、右側脚のスイング周期が支持周期に転換される時点である右側脚が地面に接触する時点の時間（すなわち、ノットポイントＫ＝４の時間）を判断して格納する。
【０１２９】
歩行ロボットは、スイング周期の間の目標ピッチ角度軌跡に追従しながら右側脚を通してスイングを行い、スイング中の姿勢に基づいて次の状態である支持状態を行うためのピッチノットポイントを生成する。このとき、歩行ロボットは、地面に足のかかと及びつま先を全て接触させる時点、再び足を離す時点にピッチノットポイント（Ｋ＝５、６）を生成する。
【０１３０】
歩行ロボットは、右側脚のスイング中に右側脚が予め格納された時間より速く地面に接触したかどうかを判断する。
【０１３１】
より具体的には、スイングしている右側脚の足が地面に接触すると、右側足が地面に接触した時点の時間を判断し、右側足が地面に実際に接触した時間（ノットポイントＫ＝４'の時間）と予め格納された時間（ノットポイントＫ＝４の時間）とを比較し、右側足が地面に実際に接触した時間が予め格納された時間より短いと、スイング中の右側脚が予め格納された時間以前に地面に接触したと判断する。
【０１３２】
歩行ロボットは、右側脚が予め格納された時間より速く地面に接触したと判断されると、右側脚が地面に実際に接触した時点にピッチノットポイント（Ｋ＝４'）を生成し、スイング中の脚が速く地面に接触することによって歩行速度が遅くなることを防止するために、次に行われる支持周期を短縮させる。
【０１３３】
ここで、支持周期を短縮させることは、支持周期内のピッチノットポイントの時間を短縮させて変更することである。
【０１３４】
図７及び図８に示すように、スイング周期から支持周期に転換されるとき、股関節部のピッチ角度が小さくなるように制御を行う。
【０１３５】
その結果、スイング脚が地面に速く接触した状態で現在の股関節部のピッチ角度が支持周期の最初のノットポイントのピッチ角度より大きい場合、現在の股関節部のピッチ角度から支持周期の最初のノットポイントのピッチ角度までのピッチ角度の減少制御が可能である。
【０１３６】
しかし、現在の股関節部のピッチ角度が支持周期の最初のノットポイントのピッチ角度以下であると、現在の股関節部のピッチ角度から支持周期の最初のノットポイントのピッチ角度までのピッチ角度制御が不可能であるので、支持周期で最も小さいピッチ角度を有する、地面から足を離す時点のピッチノットポイントのピッチ角度に基づいて股関節部のピッチ角度を制御する。
【０１３７】
ここで、現在の股関節部のピッチ角度が支持周期の最初のノットポイントのピッチ角度以下であるときにピッチ角度制御が不可能である理由は、支持周期のために現在の股関節部のピッチ角度から支持周期の最初のノットポイントのピッチ角度までピッチ角度の上昇制御をしたり、支持周期のピッチ角度が現在のピッチ角度に到達するまでピッチ角度の遅延制御をしなければならないが、上昇制御をすると、二つの脚がいずれもスイング状態となり、遅延制御をすると、右側脚が停止状態となるためである。
【０１３８】
このような点を考慮した支持周期の短縮構成を図７及び図８を参照して具体的に説明する。
【０１３９】
図７は、スイング脚が地面に速く接触した状態で現在の股関節部のピッチ角度が支持周期内の最初のピッチノットポイントのピッチ角度より大きい場合（ｃ＞０）、現在の股関節部のピッチ角度から支持周期内の最初のピッチノットポイントのピッチ角度まで角度を制御するための例示図である。
【０１４０】
図７に示すように、歩行ロボットは、次の支持周期内のピッチノットポイント（Ｋ＝５）の時間が短縮されたピッチノットポイント（Ｋ＝５'）を生成する。
【０１４１】
より具体的に説明すると、スイング中の右側脚が地面に正常に接触した場合、ピッチノットポイント（Ｋ＝４）の角度からピッチノットポイント（Ｋ＝５）の角度まで制御に必要な時間はａである。
【０１４２】
しかし、スイング中の右側脚が地面に速く接触した場合、新しく生成されたピッチノットポイント（Ｋ＝４'）からピッチノットポイント（Ｋ＝５）までａ時間の間制御すると、歩行速度が遅くなるので、歩行速度を維持させるために次のピッチノットポイントの時間値を調整しなければならない。
【０１４３】
ここで、歩行速度が遅くなる理由を説明すると、ピッチノットポイント（Ｋ＝４'）の角度がピッチノットポイント（Ｋ＝４）の角度より小さいので、ピッチノットポイント（Ｋ＝４）と次のピッチノットポイント（Ｋ＝５）との角度変化量に比べてピッチノットポイント（Ｋ＝４'）と次のピッチノットポイント（Ｋ＝５）との角度変化量がより小さくなり、その結果、スイング中の右側脚が地面に速く接触した場合、同一の時間ａの間、より小さい角度変化量だけ制御するようになり、歩行速度が遅くなる。
【０１４４】
そのため、次のピッチノットポイント（Ｋ＝５）の時間を短縮させて補正する。ここで、次のピッチノットポイントの時間短縮は、足が地面に実際に接触する時点のピッチノットポイント（Ｋ＝４'）のピッチ角度と支持周期の最初のピッチノットポイント（Ｋ＝５）のピッチ角度とを比較して角度差ｃを算出し、算出された角度差ｃ、脚の長さＬ、歩行速度ｖに基づいて次のピッチノットポイント（Ｋ＝５'）の時間ｂを算出し、算出された時間に次のピッチノットポイントの時間を補正する。この算出式は、次に示す通りである。
【０１４５】
ｂ＝（ｃ×Ｌ）／ｖ
このとき、算出された角度差ｃ、重心の高さ、歩行速度ｖに基づいて次のピッチノットポイント（Ｋ＝５'）の時間ｂを算出することも可能である。
【０１４６】
併せて、ロボットの歩行速度を維持させるためにスイング中の脚の足が地面に正常に接触する時点のピッチノットポイント（Ｋ＝４）と次のピッチノットポイント（Ｋ＝５）をつなぐ第１の線分と、足が地面に実際に接触する時点のピッチノットポイント（Ｋ＝４'）から延長した第２の線分との交差地点の時間を判断し、判断された時間と次のピッチノットポイント（Ｋ＝５）の時間との時間差を算出し、算出された時間差をｂと決定することも可能である。
【０１４７】
また、以前のピッチノットポイント（Ｋ＝３）の時間と足が地面に実際に接触する時点の時間（Ｋ＝４'の時間）との時間差を算出し、算出された時間差をｂと決定することも可能である。
【０１４８】
このように次のピッチノットポイントの時間を補正することによって、右側脚が地面に速く接触した時点のピッチノットポイントから次のピッチノットポイントまでの制御時間を短縮させることができ、ロボットの歩行速度を維持させることができる。
【０１４９】
次に、ロボットは、右側脚が地面に速く接触した時点のピッチノットポイント（Ｋ＝４'）と時間が短縮されて補正された次のピッチノットポイント（Ｋ＝５'）、そして、その後のピッチノットポイント（Ｋ＝６'）をスプラインで連結し、支持周期の間の目標ピッチ角度軌跡を生成する。
【０１５０】
ここで、ピッチノットポイント（Ｋ＝６'）は、ピッチノットポイント（Ｋ＝５'）の時間短縮によって時間が短縮されただけで、二つのピッチノットポイント（Ｋ＝５、６）の時間間隔と二つのピッチノットポイント（Ｋ＝５'、６'）の時間間隔は同一である。
【０１５１】
ここで、脚はスイング脚である。併せて、支持脚の次のピッチノットポイントの時間を短縮させて変更することも可能である。また、ロールノットポイントの次のロールノットポイントの時間を短縮させて変更することも可能である。
【０１５２】
歩行ロボットは、短縮された支持周期の間の目標角度軌跡に追従しながら右側脚を通して支持を行い、支持中の姿勢に基づいて次の状態を行うためのノットポイント（Ｋ＝７'、８'）を生成する。
【０１５３】
ここで、ノットポイント（Ｋ＝６'、７'、８'）がなすスイング周期は、以前のスイング周期（Ｋ＝３、４、５）でスイング脚が地面に速く接触し、その次の支持周期が短縮されることによって遂行時間が速くなっただけで、その周期は一定している。併せて、支持周期内のピッチノットポイントの時間を全て短縮させることも可能である。
【０１５４】
例えば、足が地面に実際に接触する時点のピッチノットポイント（Ｋ＝４'）のピッチ角度と支持周期の最後のピッチノットポイント（Ｋ＝６、足を地面から離す時点のノットポイント）のピッチ角度とを比較して角度差を算出し、算出された角度差、脚の長さ、歩行速度に基づいて短縮のための時間を算出した後、支持周期内のピッチノットポイント（Ｋ＝５'、６'）の各時間に算出された時間の半分ずつ適用して短縮補正をする。
【０１５５】
このとき、二つのピッチノットポイント（Ｋ＝５、６）の時間間隔と二つのピッチノットポイント（Ｋ＝５'、６'）の時間間隔は異なっている。
【０１５６】
図８は、スイング脚が地面に速く接触した状態で現在の股関節部のピッチ角度が支持周期内の最初のピッチノットポイントのピッチ角度以下（ｃ＜＝０）である場合におけるノットポイントと目標ピッチ角度の軌跡の例示図である。
【０１５７】
図８に示すように、歩行ロボットは、次の支持周期内の最後のピッチノットポイントである地面から足を離す時点のピッチノットポイント（Ｋ＝６）の時間が短縮されたピッチノットポイント（Ｋ＝６'）を生成する。
【０１５８】
より具体的に説明すると、スイング中の右側脚が地面に正常に接触した場合、ピッチノットポイント（Ｋ＝４）の角度からピッチノットポイント（Ｋ＝６）の角度まで制御に必要な時間はａである。
【０１５９】
しかし、スイング中の右側脚が地面に速く接触した場合、ピッチ角度の変化量が少ないにもかかわらず、ａ時間の間支持周期を制御すると、歩行速度が遅くなる。その結果、歩行速度を維持させるためには、ピッチノットポイント（Ｋ＝６'）の時間値を調整しなければならない。
【０１６０】
ここで、地面から足を離す時点のピッチノットポイントの時間短縮は次のように行う。足が地面に実際に接触する時点のピッチノットポイント（Ｋ＝４'）のピッチ角度と支持周期の最後のピッチノットポイント（Ｋ＝６）のピッチ角度とを比較して角度差ｄを算出し、算出された角度差ｄ、脚の長さＬ、歩行速度ｖに基づいて次のピッチノットポイント（Ｋ＝６'）の時間ｅを算出し、算出された時間で次のピッチノットポイントの時間を補正する。その算出式は次に示す通りである。
【０１６１】
ｅ＝（ｄ×Ｌ）／ｖ
このとき、算出された角度差ｄ、重心の高さ、歩行速度ｖに基づいて次のピッチノットポイント（Ｋ＝６'）の時間ｅを算出することも可能である。
【０１６２】
このように支持周期のピッチノットポイントの時間を補正することによって、右側脚が地面に速く接触した時点のピッチノットポイントから次のピッチノットポイントまでの制御時間を短縮させることができ、ロボットの歩行速度を維持させることができる。
【０１６３】
次に、ロボットは、右側脚が地面に速く接触した時点のピッチノットポイント（Ｋ＝４'）と時間が短縮されて補正された次のピッチノットポイント（Ｋ＝６'）をスプラインで連結し、支持周期の間の目標ピッチ角度軌跡を生成する。
【０１６４】
ここで、脚はスイング脚である。併せて、支持脚の次のピッチノットポイントの時間を短縮させて変更することも可能である。また、ロールノットポイントの次のロールノットポイントの時間を短縮させて変更することも可能である。
【０１６５】
歩行ロボットは、短縮された支持周期の間の目標角度軌跡に追従しながら右側脚を通して支持を行い、支持中の姿勢に基づいて次の状態を行うためのピッチノットポイント（Ｋ＝７'、８'）を生成し、ピッチノットポイント（Ｋ＝６'）と新しく生成されたピッチノットポイント（Ｋ＝７'、８'）をスプラインを通して連結し、目標ピッチ角度軌跡を生成する。
【０１６６】
ここで、ノットポイント（Ｋ＝６'、７'、８'）がなすスイング周期は、以前のスイング周期（Ｋ＝３、４、５）でスイング脚が地面に速く接触し、その次の支持周期（Ｋ＝４'、６'）が短縮されることによって遂行時間が速くなっただけで、その周期は一定している。
【０１６７】
図９は、他の実施例に係るロボットの歩行制御装置２００の制御構成図であって、ロボットの歩行制御装置２００は、入力部２１０、姿勢検出部２２０、歩行状態判断部２３０、目標角度軌跡生成部２４０、トルク算出部２５０及び制御部２６０を含む。
【０１６８】
他の実施例に係る入力部２１０、姿勢検出部２２０、歩行状態判断部２３０、トルク算出部２５０及び制御部２６０は上述した一実施例と同一であるので、それに対する説明は省略する。
【０１６９】
この実施例では、姿勢検出部２２０は重心検出部２２３をさらに含む。重心検出部２２３は、傾き検出部２２１で検出された上体傾き情報及びロボットの現在の姿勢に対応した各関節部１３１、１４３、１４４、１６３、１６４、１６５の回転角度に基づいてロボットの重心を検出し、検出された重心の変化量を算出し、算出された重心の変化量を目標角度軌跡生成部２４０に伝送する。
【０１７０】
ここで、各関節部の回転角度は、各関節部に設けられた複数のモーター（図示せず）の回転数を通して知ることができる。各モーター（図示せず）の回転数は、各モーターに連結されたエンコーダー（図示せず）を通して検出可能である。
【０１７１】
図１０Ａ及び図１０Ｂに示すように、重心検出部２２３は、ロボットの歩行方向（Ｘ軸方向）に対する重心の変化量（Ｐｘ）と、ロボットの左右方向（Ｙ軸方向）に対する重心の変化量（Ｐｙ）を算出する。
【０１７２】
ここで、重心の変化量（Ｐｘ、Ｐｙ）は、ロボットの重心の鉛直線位置と地面に接触した足の足首位置との間のＸ方向距離及びＹ方向距離である。
【０１７３】
すなわち、ロボットは、歩行時のロボットの重心（ＣＯＭ：Ｃｅｎｔｅｒ  Ｏｆ  Ｍａｓｓ）の鉛直線が支持脚の足首位置と一致したときに均衡を維持できるので、ロボットの重心の鉛直線位置と支持脚の足首位置との間のＸ方向及びＹ方向の距離を検出する。
【０１７４】
目標角度軌跡生成部２４０は、歩行状態判断部２３０で判断された各脚状態情報に基づいて複数の関節部１６３、１６４、１６５に設けられた回転関節の角度をノットポイントとして生成し、このノットポイントを連結し、各関節部１６３、１６４、１６５に設けられた複数の回転関節に対する目標角度軌跡をそれぞれ生成する。
【０１７５】
目標角度軌跡生成部２４０は、現在の重心の変化量に基づいて次のノットポイントの時間と角度を補正し、補正されたノットポイントを連結して目標角度軌跡を生成し、生成された目標角度軌跡をトルク算出部２５０に伝送する。
【０１７６】
このとき、目標角度軌跡生成部２４０は、重心がＹ軸方向に変化したＹ軸方向の変化量を判断し、判断されたＹ軸方向の重心の変化量とＹ軸方向の基準変化量とを比較してロール角度及び時間の補償値を算出し、算出されたロール角度及び時間を補償して次のロールノットポイントを補正する。
【０１７７】
目標角度軌跡生成部２４０は、重心の変化量に基づいて次のロールノットポイントを補正した状態で、スイング脚が予め格納された時間以前に地面に接触したと判断されると、次の支持周期を短縮させて補正することも可能である。ここで、支持周期の短縮補正は、上述の一実施例で説明した通りである。
【０１７８】
以下では、このような目標角度軌跡生成部２４０を図１１を参照してより具体的に説明する。
【０１７９】
図１１は、他の実施例に係るロボットに設けられた目標角度軌跡生成部２４０の詳細構成図であって、目標角度軌跡生成部２４０は、支持ノットポイント補償部２４１、スイングノットポイント補償部２４２、スプライン生成部２４３、２４４、スイッチ部２４５、左側脚角度軌跡生成部２４６及び右側脚角度軌跡生成部２４７を含む。
【０１８０】
支持ノットポイント補償部２４１は、次に支持される脚の股関節部１６３のロールノットポイントの角度と時間補償値（△ｒ、△Ｔ）を計算し、支持脚の股関節部１６３のロールノットポイントを再生成する。
【０１８１】
スイングノットポイント補償部２４２は、次にスイングされるスイング脚の股関節部１６３のロールノットポイントの角度と時間補償値（△ｒ、△Ｔ）を計算し、スイング脚の股関節部１６３のロールノットポイントを再生成する。
【０１８２】
併せて、支持ノットポイント補償部２４１とスイングノットポイント補償部２４２でのロールノットポイントの角度と時間補償値は互いに異なり得る。
【０１８３】
スプライン生成部２４３は、支持脚の股関節部１６３のロールノットポイントをスプラインで連結し、支持脚の股関節部１６３の目標ロール角度軌跡を生成する。スプライン生成部２４４は、スイング脚の股関節部１６３のロールノットポイントをスプラインで連結し、スイング脚の股関節部１６３の目標ロール角度軌跡を生成する。
【０１８４】
併せて、ロールノットポイントの時間と角度が補正されない場合、最初に生成された支持脚とスイング脚のロールノットポイントを連結し、目標ロール角度軌跡をそれぞれ生成することも可能である。
【０１８５】
スイッチ部２４５は、歩行状態判断部２３０で伝送された各脚の歩行状態データ（０又は１）に対応して支持及びスイングする脚を判断し、判断結果に従って支持する脚に股関節部１６３の支持目標ロール角度軌跡を伝送し、スイングする脚に股関節部１６３のスイング目標ロール角度軌跡を伝送する。
【０１８６】
スイッチ部２４５は、二つの足がそれぞれ地面に着地するとき、力／トルク検出部２２２で検出された着地信号に基づいて各足の支持状態とスイング状態の転換を行う。
【０１８７】
左側脚角度軌跡生成部２４６は、スイッチ部２４５から伝送されたデータによって左側脚の股関節部１６３が追従すべき目標ロール角度軌跡を生成し、これをトルク算出部２５０に伝送する。
【０１８８】
右側脚角度軌跡生成部２４７は、スイッチ部２４５から伝送されたデータによって右側脚の股関節部１６３が追従すべき目標ロール角度軌跡を生成し、これをトルク算出部２５０に伝送する。
【０１８９】
図１２は、他の実施例に係るロボットの歩行制御方法のフローチャートであって、これを図１２及び図１３を参照して説明する。
【０１９０】
ロボット１００は、入力部２１０を通して歩行命令が入力（４０１）されると、予め設定された歩行速度でロボットの歩行を制御する。併せて、ロボットは、入力部２１０を通して歩行速度の入力を受けることも可能である。
【０１９１】
まず、歩行ロボットは、歩行制御時にロボットの姿勢を検出（４０２）する。このとき、各足首に加えられる荷重を判断する。
【０１９２】
歩行ロボット１００は、各足首に加えられる荷重に基づいて、地面に接触して自分の体を支持する支持脚と、地面から分離されて空間をスイングするスイング脚を判断（４０３）する。歩行ロボット１００は、支持脚とスイング脚の判断結果に基づいて次にスイングされるスイング脚の各関節部１６３、１６４、１６５のノットポイントと、次に支持される支持脚の各関節部１６３、１６４、１６５のノットポイントを生成（４０４）する。
【０１９３】
例えば、現在の歩行周期で右側脚がスイング状態で、左側脚が支持状態であると、次の歩行周期を行うために右側脚に対する支持状態のノットポイントを生成し、左側脚に対するスイング状態のノットポイントを生成する。
【０１９４】
すなわち、支持状態を行う支持周期内のノットポイントと、スイング状態を行うスイング周期内のノットポイントを生成する。ここで、一つの脚に対する目標角度軌跡のスイング周期及び支持周期内のノットポイントは、歩行の進行状態に基づいて生成されるので、互いに異なる時間値を有する。
【０１９５】
歩行ロボット１００は、ロボットの姿勢に基づいて次のノットポイント生成時の重心を検出し、検出された重心の変化量を判断した後、判断された重心の変化量に基づいてノットポイントの時間と角度を補正する。このとき、股関節部のロール方向の回転関節に対応するロールノットポイントを補正する。
【０１９６】
より具体的に説明すると、ロボット１００は、現在の実際の重心の変化量情報と基準重心の変化量情報とを比較し、ロールノットポイントの時間及び角度の補償値を算出（４０５）する。
【０１９７】
すなわち、歩行ロボット１００は、Ｙ軸方向の実際の重心の変化量（Ｐｙ）とＹ軸方向の基準重心の変化量（Ｐｒ）とを比較し、股関節部１６３のロールノットポイントの時間と角度の補償値（△ｒ、△Ｔ）を算出する。
【０１９８】
次に、歩行ロボット１００は、次のロールノットポイントに時間と角度の補償値（△ｒ、△Ｔ）を適用してロールノットポイントを補正（４０６）し、股関節部１６３の目標ロールノットポイントを生成する。このとき、スイング脚の次のロールノットポイントを補正するとともに、支持脚の次のロールノットポイントを補正することも可能である。
【０１９９】
このように重心によって股関節部のロールノットポイントが変更された場合、支持脚及びスイング脚の股関節部１６３のロールノットポイントをスプラインでそれぞれ連結し、支持脚とスイング脚の股関節部１６３の目標ロール角度軌跡を生成（４０７）する。
【０２００】
次に、ロボット１００は、各脚の股関節部１６３の目標ロール角度軌跡に追従するためのトルクを算出（４０８）する。次に、ロボット１００は、各トルクに対応するパルス幅変調（ＰＷＭ：Ｐｕｌｓｅ―Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）を制御し、股関節部１６３に設けられたモーター（図示せず）にトルクを印加（４０９）することによってモーターを回転させる。
【０２０１】
これを図１３を参照して具体的に説明する。図１３は、他の実施例に係るロボットの歩行中における時間による右側脚１６０Ｒに設けられた股関節部１６３の目標ロール角度軌跡の例示図であって、重心の変化による目標ロール角度軌跡の再生性の例示図である。
【０２０２】
ロボットは、現在右側脚を支持している状態でスイングのためのロールノットポイント（Ｋ＝１、２）を生成し、右側脚をスイングしている状態で支持のためのロールノットポイント（Ｋ＝３、４）を生成し、右側脚を支持している状態でスイングのためのロールノットポイント（Ｋ＝５、６）を生成する。
【０２０３】
まず、ロボットは、現在のノットポイント（Ｋ＝０）地点で次の状態を行うためのノットポイント（Ｋ＝１、２、…）を生成する。
【０２０４】
このとき、現在のノットポイント（Ｋ＝０）地点で重心（ＣＯＭ）の位置の変化量（Ｐｘ、Ｐｙ）を判断し、重心の変化量が基準変化量と一致すると、ロボットは、生成されたノットポイント（Ｋ＝１、２、…）の値を維持させ、ノットポイント（Ｋ＝１、２、…）をスプラインで連結して目標ロール角度軌跡を生成する。
【０２０５】
一方、歩行ロボットは、外力や環境の変化によって重心の変化量が基準変化量と一致しないと、現在のノットポイント（Ｋ＝０）地点で重心（ＣＯＭ）の変化量（Ｐｘ、Ｐｙ）を判断し、この重心の速度（Ｐｘ’、Ｐｙ'）を算出して次のロールノットポイント（Ｋ＝１'）を生成した後、現在のノットポイント（Ｋ＝０）と次のロールノットポイント（Ｋ＝１'）を連結して目標ロール角度軌跡を生成する。
【０２０６】
すなわち、重心の変化量が基準変化量と一致すると、ロールノットポイントがＫ＝１の地点に生成され、重心の変化量が基準変化量と一致しないと、重心の変化量によってロールノットポイントがＫ＝１'の地点に生成される。
【０２０７】
ここで、重心に基づいた次のロールノットポイントの時間と角度の補償値の算出式は、次に示す通りである。このとき、比例微分（ＰＤ：Ｐｒｏｐｏｒｔｉｏｎａｌ―Ｄｅｒｉｖａｔｉｖｅ）制御を用いる。
【０２０８】
△ｒ＝Ｋｐ１（Ｐｙ−Ｐｒ）＋Ｋｄ１（Ｐｙ’−Ｐｒ'）
△Ｔ＝Ｋｐ２（Ｐｙ−Ｐｒ）＋Ｋｄ２（Ｐｙ’−Ｐｒ'）
ここで、Ｋｐ１、Ｋｐ２は、ＰＤ制御のＰゲインで、Ｋｄ１、Ｋｄ２はＰＤ制御のＤゲインである。このＰＤゲインは、反復実験によって定められた値であって、最適の安定した歩行を行えるようにするゲインである。
【０２０９】
Ｐｙは、ロボットの重心の鉛直線位置と地面に接触した足のＹ軸方向の足首位置との間の実際の変化量で、Ｐｙ'は実際の距離を微分した実際の速度である。ここで、実際の速度Ｐｙ'は直接検出することも可能である。
【０２１０】
そして、Ｐｒは、歩行ロボットの歩行方向に対応したＹ軸方向の基準変化量で、Ｐｒ'は、この基準距離を微分した基準速度である。併せて、歩行ロボットは、基準距離を超える場合のみにロールノットポイントを補正することも可能である。
【０２１１】
次に、歩行ロボットは、現在のロールノットポイント（Ｋ＝０）と、時間と角度が補正された次のロールノットポイント（Ｋ＝１'）と、その後のピッチノットポイントとをスプラインで連結し、目標ピッチ角度軌跡を生成する。
【０２１２】
次に、歩行ロボットは、生成された目標ロール角度軌跡に追従するトルクを算出した後、算出されたトルクが出力されるように電流のパルス幅変調（ＰＷＭ）を制御し、各脚の股関節部１６３に算出されたトルクを印加（３１２）する。
【０２１３】
歩行ロボットは、モーターに印加されるトルクの算出時にＰＤ（Ｐｒｏｐｏｒｔｉｏｎａｌ―Ｄｅｒｉｖａｔｉｖｅ）制御を用いる。併せて、算出されたトルクに追従するためにＰＩＤ（Ｐｒｏｐｏｒｔｉｏｎａｌ  Ｉｎｔｅｇｒａｔｉｖｅ  Ｄｅｒｉｖａｔｉｖｅ）制御を用いることも可能である。
【０２１４】
本歩行制御方法は、ＦＳＭ制御構造及びトルクサーボ制御を用いるので、既存の歩行制御方式に比べて次のような長所を有している。
【０２１５】
ロボットに外力が印加されたり、環境が変わった場合、歩行中の均衡を維持するために次のノットポイントの時間と角度を調節することによって、柔軟かつ安定的な歩行を具現することができる。
【０２１６】
また、歩行中に各関節部の回転角度を正確に制御する必要がないので、低いサーボゲインで歩行を行うことができ、その結果、既存の歩行に比べてエネルギー消費を減少させることができ、各関節が低剛性を有することによって周囲環境との衝突時における衝撃を減少させることができる。
【０２１７】
また、逆機構学を解くべき既存の歩行方式では具現が不可能な膝伸ばし歩行を行うことができ、人間型歩行を具現することができる。その結果、ロボットの人間親和性を向上させることができ、ロボットの膝曲げ時に消費されるエネルギーを節約することができ、３倍の歩行速度を具現することができる。
【０２１８】
また、複雑な動的方程式を解く必要がないので、６自由度の関節を有したロボットの歩行を制御することができる。
【０２１９】
各関節部の各ノットポイントをスプラインを用いて柔軟に連結することによって、人間の歩行と最大限に類似した歩行を具現することができる。
【符号の説明】
【０２２０】
１６０Ｌ、１６０Ｒ    脚
１７０Ｌ、１７０Ｒ    足
１６３    股関節部
１６４    膝関節部
１６５    足首関節部
２２１    傾き検出部
２２２    力／トルク検出部
２２３    重量中心検出部
【図１】
2013126711.tif 000003
【図２】
2013126711.tif 000004
【図３】
2013126711.tif 000005
【図４】
2013126711.tif 000006
【図５】
2013126711.tif 000007
【図６】
2013126711.tif 000008
【図７】
2013126711.tif 000009
【図８】
2013126711.tif 000010
【図９】
2013126711.tif 000011
【図１０Ａ】
2013126711.tif 000012
【図１０Ｂ】
2013126711.tif 000013
【図１１】
2013126711.tif 000014
【図１２】
2013126711.tif 000015
【図１３】
2013126711.tif 000016