(57)【特許請求の範囲】
【請求項１】
少なくとも複数本の可動脚を備えた脚式移動ロボットのための動作制御システムであって、
所定動作実行中の各時刻毎のＺＭＰ安定領域を算出する安定領域算出手段と、
各時刻毎のＺＭＰ安定領域内の所定位置に設定した目標ＺＭＰ位置からなるＺＭＰ目標軌道を算出するＺＭＰ目標軌道算出手段と、
を具備し、
前記ＺＭＰ目標軌道算出手段は、各ＺＭＰ安定領域の中心よりも次の進行方向寄りに設定した目標ＺＭＰ位置を連結してなるＺＭＰ目標軌道を算出し、
ＺＭＰ目標軌道に従って前記の所定動作の実行を制御することを特徴とする動作制御システム。
【請求項２】
前記安定領域算出手段は、各可動脚の足底接地点支持多角形に基づいて前記ＺＭＰ安定領域を算出することを特徴とする請求項１に記載の脚式移動ロボットの動作制御システム。
【請求項３】
さらに、算出された目標ＺＭＰ軌道を実現する前記脚式移動ロボットの運動パターンを生成する運動パターン生成手段を具備することを特徴とする請求項１に記載の脚式移動ロボットの動作制御システム。
【請求項４】
さらに、
算出された目標ＺＭＰ軌道を実現する前記脚式移動ロボットの運動パターンを生成する運動パターン生成手段と、
該生成された運動パターンが前記脚式移動ロボットの仕様を満足するか否かを判断する仕様判断手段と、
否定的な仕様判断結果に応答して、該仕様の不足量に基づいて目標ＺＭＰ軌道を修正する目標ＺＭＰ軌道修正手段と、
を具備することを特徴とする請求項１に記載の脚式移動ロボットの動作制御システム。
【請求項５】
さらに、
算出された目標ＺＭＰ軌道を実現する前記脚式移動ロボットの運動パターンを生成する運動パターン生成手段と、
該生成された運動パターンに基づいて実現される実現ＺＭＰ軌道を算出する実現ＺＭＰ算出手段と、
目標ＺＭＰ軌道と実現ＺＭＰ軌道間のＺＭＰ誤差を算出するＺＭＰ誤差算出手段と、
ＺＭＰ誤差が所定値を越えたことに応答して、該ＺＭＰ誤差に基づいて目標ＺＭＰ軌道を修正する目標ＺＭＰ軌道修正手段と、
を具備することを特徴とする請求項１に記載の脚式移動ロボットの動作制御システム。
【請求項６】
少なくとも複数本の可動脚を備えた脚式移動ロボットのための動作制御方法であって、
所定動作実行中の各時刻毎のＺＭＰ安定領域を算出する安定領域算出ステップと、
各時刻毎のＺＭＰ安定領域内の所定位置に設定した目標ＺＭＰ位置からなるＺＭＰ目標軌道を算出するＺＭＰ目標軌道算出ステップと、
を有し、
前記ＺＭＰ目標軌道算出ステップでは、各ＺＭＰ安定領域の中心よりも次の進行方向寄りに設定した目標ＺＭＰ位置を連結してなるＺＭＰ目標軌道を算出し、
ＺＭＰ目標軌道に従って前記の所定動作の実行を制御することを特徴とする動作制御方法。
【請求項７】
前記安定領域算出ステップでは、各可動脚の足底接地点支持多角形に基づいて前記ＺＭＰ安定領域を算出することを特徴とする請求項６に記載の脚式移動ロボットの動作制御方法。
【請求項８】
さらに、算出された目標ＺＭＰ軌道を実現する前記脚式移動ロボットの運動パターンを生成する運動パターン生成ステップを有することを特徴とする請求項６に記載の脚式移動ロボットの動作制御方法。
【請求項９】
さらに、
算出された目標ＺＭＰ軌道を実現する前記脚式移動ロボットの運動パターンを生成する運動パターン生成ステップと、
該生成された運動パターンが前記脚式移動ロボットの仕様を満足するか否かを判断する仕様判断ステップと、
否定的な仕様判断結果に応答して、該仕様の不足量に基づいて目標ＺＭＰ軌道を修正する目標ＺＭＰ軌道修正ステップと、
を有することを特徴とする請求項６に記載の脚式移動ロボットの動作制御方法。
【請求項１０】
さらに、
算出された目標ＺＭＰ軌道を実現する前記脚式移動ロボットの運動パターンを生成する運動パターン生成ステップと、
該生成された運動パターンに基づいて実現される実現ＺＭＰ軌道を算出する実現ＺＭＰ算出ステップと、
目標ＺＭＰ軌道と実現ＺＭＰ軌道間のＺＭＰ誤差を算出するＺＭＰ誤差算出ステップと、
ＺＭＰ誤差が所定値を越えたことに応答して、該ＺＭＰ誤差に基づいて目標ＺＭＰ軌道を修正する目標ＺＭＰ軌道修正ステップと、
を有することを特徴とする請求項６に記載の脚式移動ロボットの動作制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、少なくとも複数本の可動脚を備えた脚式移動ロボットの動作制御システム及び動作制御方法に係り、特に、可動脚を用いた歩行その他の脚式移動作業を効率的に行うための脚式移動ロボットの動作制御システム及び動作制御方法に関する。
【０００２】
更に詳しくは、本発明は、ＺＭＰ（Zero Moment Point）を歩行の安定度判別の規範として用いて可動脚による脚式移動作業を行う脚式移動ロボットの動作制御システム及び動作制御方法に係り、特に、ＺＭＰの位置設定を効果的に制御することでロボットの動作遷移を円滑且つ安定的に実行するための脚式移動ロボットの動作制御システム及び動作制御方法に関する。
【０００３】
【従来の技術】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語のＲＯＢＯＴＡ(奴隷機械)に由来すると言われている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（industrial robot）であった。
【０００４】
アーム式ロボットのように、ある特定の場所に植設して用いるような据置きタイプのロボットは、部品の組立・選別作業など固定的・局所的な作業空間でのみ活動する。これに対し、移動式のロボットは、作業空間は非限定的であり、所定の経路上または無経路上を自在に移動して、所定の若しくは任意の人的作業を代行したり、ヒトやイヌあるいはその他の生命体に置き換わる種々の幅広いサービスを提供することができる。なかでも脚式の移動ロボットは、クローラ式やタイヤ式のロボットに比し不安定で姿勢制御や歩行制御が難しくなるが、階段や梯子の昇降や障害物の乗り越えや、整地・不整地の区別を問わない柔軟な歩行・走行動作を実現できるという点で優れている。
【０００５】
最近では、イヌやネコのように４足歩行の動物の身体メカニズムやその動作を模したペット型ロボット、あるいは、ヒトのような２足直立歩行を行う動物の身体メカニズムや動作をモデルにしてデザインされた「人間形」若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ  ｒｏｂｏｔ）など、脚式移動ロボットに関する研究開発が進展し、実用化への期待も高まってきている。
【０００６】
人間形若しくは人間型と呼ばれる脚式移動ロボットを研究・開発する意義を、例えば以下の２つの視点から把握することができよう。
【０００７】
１つは、人間科学的な視点である。すなわち、人間の下肢及び／又は上肢に似た構造のロボットを作り、その制御方法を考案して、人間の歩行動作をシミュレートするというプロセスを通じて、歩行を始めとする人間の自然な動作のメカニズムを工学的に解明することができる。このような研究成果は、人間工学、リハビリテーション工学、あるいはスポーツ科学など、人間の運動メカニズムを扱う他のさまざまな研究分野の進展に大いに還元することができるであろう。
【０００８】
もう１つは、人間のパートナーとして生活を支援する、すなわち住環境その他の日常生活上の様々な場面における人的活動の支援を行う実用ロボットの開発である。この種のロボットは、人間の生活環境のさまざまな局面において、人間から教わりながら個々に個性の相違する人間又は環境への適応方法を学習し、機能面でさらに成長していく必要がある。このとき、ロボットが「人間形」すなわち人間と同じ形又は同じ構造をしている方が、人間とロボットとのスムースなコミュニケーションを行う上で有効に機能するものと考えられる。
【０００９】
例えば、踏んではならない障害物を避けながら部屋を通り抜ける方法を実地においてロボットに教示するような場合、クローラ式や４足式ロボットのように教える相手が自分と全く違う構造をしているよりも、同じような格好をしている２足歩行ロボットの方が、ユーザ（作業員）ははるかに教え易く、またロボットにとっても教わり易い筈である（例えば、高西著「2足歩行ロボットのコントロール」（自動車技術会関東支部＜高塑＞Ｎｏ．２５，１９９６ＡＰＲＩＬ）を参照のこと）。
【００１０】
人間の作業空間や居住空間のほとんどは、２足による直立歩行という人間が持つ身体メカニズムや行動様式に合わせて形成されている。言い換えれば、人間の住空間は、車輪その他の駆動装置を移動手段とした現状の機械システムが移動するのにはあまりに多くの障壁が存在する。機械システムすなわちロボットが様々な人的作業を支援又は代行し、さらに人間の住空間に深く浸透していくためには、ロボットの移動可能範囲が人間のそれとほぼ同じであることが好ましい。これが、脚式移動ロボットの実用化が大いに期待されている所以でもある。人間型の形態を有していることは、ロボットが人間の住環境との親和性を高める上で必須であると言える。
【００１１】
２足歩行による脚式移動を行うタイプのロボットに関する姿勢制御や安定歩行に関する技術は既に数多提案されている。ここで言う安定な「歩行」とは、「転倒することなく、脚を使って移動すること」と定義することができる。
【００１２】
ロボットの姿勢安定制御は、ロボットの転倒を回避する上で非常に重要である。何故ならば、転倒は、ロボットが実行中の作業を中断することを意味し、且つ、転倒状態から起き上がって作業を再開するために相当の労力や時間が払われるからである。また、何よりも、転倒によって、ロボット本体自体、あるいは転倒するロボットと衝突する相手側の物体にも、致命的な損傷を与えてしまう危険があるからである。したがって、脚式移動ロボットの設計・開発において、姿勢安定制御や歩行時の転倒防止は最も重要な課題の1つである。
【００１３】
歩行時には、重力と歩行運動に伴なって生じる加速度によって、歩行系から路面には重力と慣性力、並びにこれらのモーメントが作用する。いわゆる「ダランベールの原理」によると、それらは路面から歩行系への反作用としての床反力、床反力モーメントとバランスする。力学的推論の帰結として、足底接地点と路面の形成する支持多角形の辺上あるいはその内側にピッチ及びロール軸モーメントがゼロとなる点、すなわち「ＺＭＰ（Zero Moment Point）」が存在する。
【００１４】
脚式移動ロボットの姿勢安定制御や歩行時の転倒防止に関する提案の多くは、このＺＭＰを歩行の安定度判別の規範として用いている。ＺＭＰ規範に基づく２足歩行パターン生成は、足底着地点を予め設定でき、路面形状に応じた足先の運動学的拘束条件を考慮し易いなどの利点がある。
【００１５】
例えば、特開平５−３０５５７９号公報には、脚式移動ロボットの歩行制御装置について開示している。同公報に記載の歩行制御装置は、ＺＭＰ（Zero Moment Point）すなわち歩行するときの床反力によるモーメントがゼロとなる床面上の点を目標値に一致させるように制御するものである。
【００１６】
また、特開平５−３０５５８１号公報に記載の脚式移動ロボットは、ＺＭＰが支持多面体（多角形）内部、又は、着地、離床時にＺＭＰが支持多面体（多角形）の端部から少なくとも所定の余裕を有する位置にあるように構成した。この結果、外乱などを受けても所定距離だけＺＭＰの余裕があり、歩行の安定性の向上を図ることができる。
【００１７】
また、特開平５−３０５５８３号公報には、脚式移動ロボットの歩き速度をＺＭＰ目標位置によって制御する点について開示している。すなわち、同公報に記載の脚式移動ロボットは、予め設定された歩行パターン・データを用い、ＺＭＰを目標位置に一致させるように脚部関節を駆動するとともに、上体の傾斜を検出して、その検出値に応じて設定された歩行パターン・データの吐き出し速度を変更するようにしている。この結果、予期しない凹凸を踏んでロボットが例えば前傾するときは吐き出し速度を速めることで姿勢を回復できる。またＺＭＰが目標位置に制御できるので、両脚支持期において吐き出し速度を変更しても支障がない。
【００１８】
また、特開平５−３０５５８５号公報には、脚式移動ロボットの着地位置をＺＭＰ目標位置によって制御する点について開示している。すなわち、同公報に記載の脚式移動ロボットは、ＺＭＰ目標位置と実測位置とのずれを検出して、それを解消する様に脚部の一方または双方を駆動するか、又は、ＺＭＰ目標位置まわりにモーメントを検出してそれが零になる様に脚部を駆動することで安定歩行を行うようになっている。
【００１９】
また、特開平５−３０５５８６号公報には、脚式移動ロボットの傾斜姿勢をＺＭＰ目標位置によって制御する点について開示している。すなわち、同公報に記載の脚式移動ロボットは、ＺＭＰ目標位置まわりのモーメントを検出し、モーメントが生じているときは、それが零になるように脚部を駆動することで安定歩行を行うようになっている。
【００２０】
【発明が解決しようとする課題】
脚式ロボットにおけるＺＭＰの位置は、指令値として任意に設定することができる。すなわち、支持多角形（上述）として定義される安定領域の内部にＺＭＰを位置設定することで、歩行の安定性を向上させることができる。
【００２１】
しかしながら、上述した各従来技術はいずれも、安定領域内のどの場所にＺＭＰ位置を設定すべきかを、明確には開示していない。例えば、歩行の安定性を優先してＺＭＰの位置設定を行った場合、歩行期間中にＺＭＰ位置がとる軌跡が長い距離となってしまい、動作が非効率的となり、また早い動きを表現することができない。すなわち、次の（又は近未来的な）動作や姿勢を考慮してＺＭＰの位置設定を行うことができない場合がある。
【００２２】
４足脚式ロボットは支持多角形が充分に大きいので、ＺＭＰの位置設定はさほど問題にはならない。言い換えれば、４足脚式ロボットの場合、歩行の安定性と動作遷移の効率化の双方を要求することができた。
【００２３】
これに対し、ヒューマノイド・ロボットのように２足歩行型の場合、歩行その他の脚式動作中の支持多角形は極端に狭くなるので、次の動作への効率的な遷移を重視してＺＭＰを位置設定すると、歩行時の姿勢安定性を充分に確保することができず、転倒などの事態を将来しかねない。ロボットが転倒すると、ロボットや衝突する相手側の物体に致命的な損傷を与える危険性がある。
【００２４】
例えば、ＺＭＰ位置が安定領域内の適当な場所に設定することによって、比較的少ない演算処理で歩行動作を適度に安定化させることができる。
【００２５】
脚式ロボットにおいては、各可動脚が、全く拘束のない「遊脚期」、完全に拘束される「立脚期」、これらの中間の「着地期」からなる歩行周期を交互に繰り返すことによって、歩行動作を実現するのが一般的である。
【００２６】
図１８には、足底接点の支持多角形で定義される安定領域内に適当にＺＭＰを設定して前方歩行した場合において、左右それぞれの脚部が立脚及び遊脚を交互に繰り返す間にＺＭＰが移動する様子を示している。また、図１９には、左右それぞれの脚部が立脚及び遊脚を交互に繰り返す間にＺＭＰが安定領域内で適当な軌跡で移動する様子を示している。図１９に示すＺＭＰ軌跡は必ずしも最短の経路を辿るとは限らない。
【００２７】
また、図２０には、支持多角形で定義される安定領域内の適当な位置にＺＭＰを設定して２足の脚式ロボットが左右方向に歩行した場合において、歩行周期の間にＺＭＰが移動する様子を示している。この場合、左右の脚部が交互に立脚となる期間中、ＺＭＰ位置は大きく移動し、ＺＭＰ軌跡の距離は長くなる。
【００２８】
すなわち、図１８〜図２０からも容易に分かるように、支持多角形で定義される安定領域内の適当な場所にＺＭＰ位置を設定した場合、ある状態から次の状態に動作遷移する期間中におけるＺＭＰの移動距離が長くなってしまい、その分だけ動作完了までに時間がかかってしまい、より速く移動することに支障が生じる可能性がある。
【００２９】
また、安定領域内の適当な場所にＺＭＰ位置を設定して２足脚式ロボットが前進歩行する場合には、脚式移動ロボットの重心位置Ｇは、例えば図２１に示すよう略中央付近に設定される可能性がある。このような場合、後足が後方に向かって床面を蹴り出す力や、進行方向すなわち前方に印加される加速力の成分は低くなってしまうので、より速く移動を開始するために必要なより大きな加速度を発生させるには不利な状態にある。
【００３０】
同様に、安定領域内の適当な場所にＺＭＰ位置を設定して２足脚式ロボットが横方向に歩行する場合には、脚式移動ロボットの重心位置Ｇは、例えば図２２に示すよう略中央付近に設定される。このような場合、蹴り出し力の方向は重力方向とほぼ一致してしまい、分力としての横方向加速度はほとんどゼロになってしまうので、より速く移動を開始するために必要なより大きな加速度を発生させるには不利な状態にある。
【００３１】
本発明は上記のような技術的課題に鑑みたものであり、その目的は、可動脚を用いた歩行その他の脚式移動作業を効果的に行うことができる、優れた脚式移動ロボット及びその制御方法を提供することにある。
【００３２】
本発明の更なる目的は、ＺＭＰを歩行の安定度判別の規範として用いて効率的な脚式移動作業を行うことができる、優れた脚式移動ロボットの動作制御システム及び動作制御方法を提供することにある。
【００３３】
本発明の更なる目的は、ＺＭＰの位置設定又はＺＭＰ目標軌道設定を効果的に制御することでロボットの動作遷移を円滑且つ安定的に実行することができる、優れた脚式移動ロボットの動作制御システム及び動作制御方法を提供することにある。
【００３４】
本発明の更なる目的は、２足による脚式作業中における次の動作・姿勢への効率的な遷移を考慮してＺＭＰの位置設定又はＺＭＰ目標軌道設定を行うことができる、優れた脚式移動ロボットの動作制御システム及び動作制御方法を提供することにある。
【００３５】
【課題を解決するための手段】
本発明は、上記課題を参酌してなされたものであり、少なくとも複数本の可動脚を備えた脚式移動ロボットのための動作制御システム又は動作制御方法であって、
所定動作実行中の各時刻毎のＺＭＰ安定領域を算出する安定領域算出手段又はステップと、
各時刻毎のＺＭＰ安定領域内の所定位置に設定した目標ＺＭＰ位置からなるＺＭＰ目標軌道を算出するＺＭＰ目標軌道算出手段又はステップと、
を具備し、ＺＭＰ目標軌道に従って前記の所定動作の実行を制御することを特徴とする動作制御システム又は動作制御方法である。
【００３６】
ここで、前記安定領域算出手段又はステップは、各可動脚の足底接地点支持多角形に基づいて前記ＺＭＰ安定領域を算出することができる。
【００３７】
また、前記ＺＭＰ目標軌道算出手段又はステップは、各ＺＭＰ安定領域間のＺＭＰ移動量が最小となるＺＭＰ目標軌道を算出するようにしてもよい。
【００３８】
また、前記ＺＭＰ目標軌道算出手段又はステップは、各ＺＭＰ安定領域の略中心を基準として設定した目標ＺＭＰ位置を連結してなるＺＭＰ目標軌道を算出するようにしてもよい。
【００３９】
また、前記ＺＭＰ目標軌道算出手段又はステップは、各ＺＭＰ安定領域の略中心よりも次の進行方向寄りに設定した目標ＺＭＰ位置を連結してなるＺＭＰ目標軌道を算出するようにしてもよい。
【００４０】
また、前記ＺＭＰ目標軌道算出手段又はステップは、各ＺＭＰ安定領域の略中心に設定した目標ＺＭＰ位置を連結してなるＺＭＰ目標軌道を算出するようにしてもよい。
【００４１】
また、脚式移動ロボットの動作制御システム又は動作制御方法は、さらに、算出された目標ＺＭＰ軌道を実現する前記脚式移動ロボットの運動パターンを生成する運動パターン生成手段を備えてもよい。
【００４２】
このような場合、さらに、
該生成された運動パターンが前記脚式移動ロボットの仕様を満足するか否かを判断する仕様判断手段と、
否定的な仕様判断結果に応答して、該仕様の不足量に基づいて目標ＺＭＰ軌道を修正する目標ＺＭＰ軌道修正手段と、
を備えることで、実現可能で且つ効率的な目標ＺＭＰ軌道を探索することができる。
【００４３】
あるいは、さらに、
該生成された運動パターンに基づいて実現される実現ＺＭＰ軌道を算出する実現ＺＭＰ算出手段と、
目標ＺＭＰ軌道と実現ＺＭＰ軌道間のＺＭＰ誤差を算出するＺＭＰ誤差算出手段と、
ＺＭＰ誤差が所定値を越えたことに応答して、該ＺＭＰ誤差に基づいて目標ＺＭＰ軌道を修正する目標ＺＭＰ軌道修正手段と、
を備えることで、実現可能で且つ効率的な目標ＺＭＰ軌道を探索することができる。
【００４４】
【作用】
本発明では、いわゆるＺＭＰを安定度判別規範として用いて脚式移動ロボットの効率的な動作制御を行うようになっている。
【００４５】
より具体的には、安定歩行可能なＺＭＰ位置の移動量が最小となるようなＺＭＰ目標軌道を利用して、脚式移動ロボットの歩行その他の動作パターンを生成することができる。
【００４６】
脚式移動ロボットがＺＭＰ位置の移動量が最小となるＺＭＰ目標軌道を辿る場合、ＺＭＰ位置は、足底接地点からなる支持多角形で定まる安定領域の中心よりも進行方向寄りの場所に設定される傾向をとる。
【００４７】
例えば、左右それぞれの脚部が立脚及び遊脚を交互に繰り返して通常の２足歩行を実行する場合、ＺＭＰ位置は、常に安定領域の中心よりも前方寄りの場所に設定される。したがって、歩行期間中におけるＺＭＰ位置の移動距離は最小となり、その分だけ動作完了までの所要時間が短縮化され、より速く移動することが可能となる。また、ＺＭＰ位置を安定領域の中心よりも進行方向すなわち前方寄りの場所に設定するためには、脚式移動ロボットの重心位置Ｇは必然的に進行方向寄りに移動するので、より大きな加速度を発生させることが比較的容易となり、動作遷移が効率化するとともに、敏捷な動作が実現可能となる。
【００４８】
同様に、横方向に移動開始する場合においても、ＺＭＰ位置は、安定領域の中心よりも進行方向すなわち他方の足底寄りの場所に設定される。したがって、ＺＭＰ位置の移動距離は最小となり、その分だけ動作完了までの所要時間が短縮化され、素早い動作を実現することが可能となる。また、横方向に歩行中の脚式移動ロボットの重心位置Ｇが他方の足側寄りに移動しているので、一方の足が外側に向かって床面を蹴り出す力や、進行方向すなわち横方向に印加される加速力の成分は必然的に大きくなる。この結果、より速く移動を開始するときや移動方向を変更するときに必要なより大きな加速度を発生させることが比較的容易となり、動作遷移が効率化するとともに、敏捷な動作が実現可能となる。
【００４９】
すなわち、ＺＭＰ位置の移動量が最小となるＺＭＰ目標軌道を利用することによって、次の動作や姿勢へ円滑且つ安定的に遷移することができるような、効果的なＺＭＰ位置設定を行うことができる。
【００５０】
また、本発明によれば、脚式移動ロボットの動作遷移の効率よりも歩行安定性を優先して、安定余裕が最大となる場所にＺＭＰ位置が設定されるようなＺＭＰ目標軌道を算出することもできる。
【００５１】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００５２】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施例を詳解する。
【００５３】
図１及び図２には、本発明の実施に供される「人間形」又は「人間型」の脚式移動ロボット１００が直立している様子を前方及び後方の各々から眺望した様子を示している。図示の通り、脚式移動ロボット１００は、脚式移動を行う左右２足の下肢と、体幹部と、左右の上肢と、頭部とで構成される。
【００５４】
左右各々の下肢は、大腿部と、膝関節と、脛部と、足首と、足平とで構成され、股関節によって体幹部の略最下端にて連結されている。また、左右各々の上肢は、上腕と、肘関節と、前腕とで構成され、肩関節によって体幹部上方の左右各側縁にて連結されている。また、頭部は、首関節によって体幹部の略最上端中央に連結されている。
【００５５】
体幹部ユニット内には、図１及び図２上では見えていない制御部が配備されている。この制御部は、脚式移動ロボット１００を構成する各関節アクチュエータの駆動制御や各センサ（後述）などからの外部入力を処理するコントローラ（主制御部）や、電源回路その他の周辺機器類を搭載した筐体である。制御部は、その他、遠隔操作用の通信インターフェースや通信装置を含んでいてもよい。
【００５６】
図３には、本実施例に係る脚式移動ロボット１００が具備する関節自由度構成を模式的に示している。図示の通り、脚式移動ロボット１００は、２本の腕部と頭部１を含む上体と、移動動作を実現する２本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成される。
【００５７】
頭部１を支持する首関節は、首関節ヨー軸２と、首関節ピッチ軸３と、首関節ロール軸４という３自由度を有している。
【００５８】
また、各腕部は、肩関節ピッチ軸８と、肩関節ロール軸９と、上腕ヨー軸１０と、肘関節ピッチ軸１１と、前腕ヨー軸１２と、手首関節ピッチ軸１３と、手首関節ロール軸１４と、手部１５とで構成される。手部１５は、実際には、複数本の指を含む多関節・多自由度構造体である。但し、手部１５の動作自体は、ロボット１００の姿勢安定制御や歩行動作制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、左右の各腕部は７自由度を有するとする。
【００５９】
また、体幹部は、体幹ピッチ軸５と、体幹ロール軸６と、体幹ヨー軸７という３自由度を有する。
【００６０】
また、下肢を構成する左右各々の脚部は、股関節ヨー軸１６と、股関節ピッチ軸１７と、股関節ロール軸１８と、膝関節ピッチ軸１９と、足首関節ピッチ軸２０と、関節ロール軸２１と、足部（足底又は足平）２２とで構成される。股関節ピッチ軸１７と股関節ロール軸１８の交点は、本実施例に係るロボット１００の股関節位置を定義するものとする。人体の足部（足底）２２は、実際には多関節・多自由度の足底を含んだ構造体であるが、本実施例に係る脚式移動ロボット１００の足底はゼロ自由度とする。したがって、左右の各脚部は６自由度で構成される。
【００６１】
以上を総括すれば、本実施例に係る脚式移動ロボット１００全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。但し、脚式移動ロボット１００が必ずしも３２自由度に限定される訳ではない。設計・製作上の制約条件や要求仕様等に応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【００６２】
脚式移動ロボット１００が持つ上述の各関節自由度は、実際にはアクチュエータによる能動的な動作として実現される。装置の外観上で余分な膨らみを排してヒトの自然体形状に近似させることや、２足歩行という不安定構造体に対して姿勢制御を行うことなどの種々の要請から、関節アクチュエータは小型且つ軽量であることが好ましい。本実施例では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載することとした。なお、脚式ロボットに適用可能な小型ＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特願平１１−３３３８６号明細書に開示されている。
【００６３】
図４には、本実施例に係る脚式移動ロボット１００の制御システム構成を模式的に示している。同図に示すように、該システムは、ユーザ入力などに動的に反応して情緒判断や感情表現を司る思考制御モジュール２００と、関節アクチュエータの駆動などロボットの全身協調運動を制御する運動制御モジュール３００とで構成される。
【００６４】
思考制御モジュール２００は、情緒判断や感情表現に関する演算処理を実行するＣＰＵ（Central Processing Unit）２１１や、ＲＡＭ（Random Access Memory）２１２、ＲＯＭ（Read Only Memory）２１３、及び、外部記憶装置（ハード・ディスク・ドライブなど）２１４で構成される、自己完結処理を行うことができる独立した情報処理装置である。
【００６５】
思考制御モジュール２００には、ＣＣＤ（Charge Coupled Device）カメラなどの画像入力装置２５１や、マイクなどの音声入力装置２５２、スピーカなどの音声出力装置２５３、ＬＡＮ（Local Area Network：図示しない）などを経由してロボット１００外のシステムとデータ交換を行う通信インターフェース２５４など各種の装置が、バス・インターフェース２０１経由で接続されている。
【００６６】
思考制御モジュール２００では、画像入力装置２５１から入力される視覚データや音声入力装置２５２から入力される聴覚データなど、外界からの刺激などに従って、脚式移動ロボット１００の現在の感情や意思を決定する。さらに、意思決定に基づいた振舞い又は行動、すなわち四肢の運動を実行するように、運動制御モジュール３００に対して指令を発行する。
【００６７】
一方の運動制御モジュール３００は、ロボット１００の全身協調運動を制御するＣＰＵ（Central Processing Unit）３１１や、ＲＡＭ（Random Access Memory）３１２、ＲＯＭ（Read Only Memory）３１３、及び、外部記憶装置（ハード・ディスク・ドライブなど）３１４で構成される、自己完結処理を行うことができる独立した情報処理装置である。外部記憶装置３１４には、例えば、オフラインで算出された歩行パターンやＺＭＰ目標軌道、その他の行動計画を蓄積することができる。
【００６８】
運動制御モジュール３００には、ロボット１００の全身に分散するそれぞれの関節自由度を実現する関節アクチュエータ（図３を参照のこと）、体幹部の姿勢や傾斜を計測する姿勢センサ３５１、左右の足底の離床又は着床を検出する接地確認センサ３５２及び３５３、バッテリなどの電源を管理する電源制御装置などの各種の装置が、バス・インターフェース３０１経由で接続されている。
【００６９】
運動制御モジュール３００では、思考制御モジュール２００から指示された行動を体現すべく、各関節アクチュエータによる全身協調運動を制御する。すなわち、ＣＰＵ３１１は、思考制御モジュール２００から指示された行動に応じた動作パターンを外部記憶装置３１４から取り出し、又は、内部的に動作パターンを生成する。そして、ＣＰＵ３１１は、指定された動作パターンに従って、足部運動、ＺＭＰ（Zero Moment Point）軌道、体幹運動、上肢運動、腰部水平位置及び高さなどを設定するとともに、これらの設定内容に従った動作を指示する指令値を各関節アクチュエータに転送する（「ＺＭＰ」とは、歩行中の床反力によるモーメントがゼロとなる床面上の点のことであり、また、「ＺＭＰ軌道」とは、例えばロボット１００の歩行動作期間中などにＺＭＰが動く軌跡を意味する）。
【００７０】
また、ＣＰＵ３１１は、姿勢センサ３５１の出力信号によりロボット１００の体幹部分の姿勢や傾きを検出するとともに、各接地確認センサ３５２及び３５３の出力信号により各可動脚が遊脚又は立脚のいずれの状態であるかを検出することによって、脚式移動ロボット１００の全身協調運動を適応的に制御することができる。
【００７１】
さらに、運動制御モジュール３００は、思考制御モジュール２００において決定された意思通りの行動がどの程度体現されたか、すなわち処理の状況を、思考制御モジュール２００に返すようになっている。
【００７２】
思考制御モジュール２００と運動制御モジュール３００は、共通のプラットフォーム上で構築され、両者間はバス・インターフェース２０１及び３０１を介して相互接続されている。
【００７３】
次いで、本実施例に係る脚式移動ロボット１００の歩行制御について説明する。
【００７４】
脚式移動ロボット１００は、例えば、歩行などの脚式作業の動作パターンを予めオフラインで計算してメモリなどに格納しておく。そして、所定の動作パターンをメモリなどから逐次読み出して各関節アクチュエータの駆動制御を実行することで、計算された動作パターン通りの脚式作業を実現することができる。
【００７５】
本実施例では、ＺＭＰを安定度判別規範として用いて動作パターンを生成する。さらに具体的に言えば、安定歩行可能なＺＭＰ位置の移動量が最小となるようなＺＭＰ目標軌道を利用して動作パターンを生成するようになっている。ＺＭＰ位置の移動量が最小となるＺＭＰ目標軌道を利用することによって、次の動作や姿勢へ円滑且つ安定的に遷移することができるような、効果的なＺＭＰ位置設定を行うことができる。
【００７６】
図５及び図６には、安定歩行可能なＺＭＰ位置の移動量が最小となるようなＺＭＰ目標軌道を算出するための処理手順をフローチャートの形式で図解している。以下、このフローチャートに従って説明する。
【００７７】
まず、歩行路面を設定するとともに（ステップＳ１１）、この設定した歩行路面に基づいて足部運動パターンを設定する（ステップＳ１９）。足部運動パターンは、ｘｙｚ各座標値及び時刻ｔの関数である。
【００７８】
次いで、設定された歩行路面及び足部運動パターン（ｘ，ｙ，ｚ，ｔ）に基づいて、足底接地点を算出する（ステップＳ１２）。足底接地点は、ｘｙｚ各座標値及び時刻ｔの関数である。
【００７９】
次いで、足底接地点（ｘ，ｙ，ｚ，ｔ）によって形成される支持多角形を算出する（ステップＳ１３）。支持多角形は時刻ｔの関数である。
【００８０】
この結果、理想的安定領域が求まる（ステップＳ１４）。理想的安定領域は、ｘｙｚ各座標値及び時刻ｔの関数である。
【００８１】
この理想的安定領域（ｘ，ｙ，ｚ，ｔ）、並びに、別途算出されているＺＭＰ制御最大誤差群（Ｓ２０）を基に、実質的安定領域を算出する（ステップＳ１５）。実質的安定領域は、ｘｙｚ各座標値及び時刻ｔの関数である。この結果、安定領域が求まる（ステップＳ１６）。この安定領域も、ｘｙｚ各座標値及び時刻ｔの関数である。
【００８２】
次いで、ＺＭＰ群を算出する（ステップＳ１７）。このＺＭＰ群はｘｙｚ各座標値及び時刻ｔの関数である。
【００８３】
そして、時刻ｔ＝０〜Ｔにおける、ＺＭＰ移動量が最小となるようなＺＭＰ目標軌跡を算出する（ステップＳ１８）。
【００８４】
次いで、算出されたＺＭＰ目標軌道（ｘ，ｙ，ｚ，ｔ＝０〜Ｔ）を基にして（Ｓ２１）、このＺＭＰ目標軌道を実現する全身運動パターンを算出する（ステップＳ２２）。全身運動パターンの算出処理は、別途定義済みの処理フローによって実現されるが、その詳細は後述に譲る。
【００８５】
次いで、生成された全身運動パターンが、適用機械モデルの仕様を満たしているか否かをチェックする（ステップＳ２３）。この場合の適用機械モデルとは脚式ロボット１００のことであり、また、その仕様とは各関節の可動角、関節角速度、関節角速度、関節角加速度、関節トルクなどで構成される。
【００８６】
算出された全身運動パターンが適用機械モデルの仕様を満たしていない場合には、適用機械モデルの仕様に対する不足量を用いたＺＭＰ目標軌道の修正を行う（ステップＳ２９）。そして、この新たなＺＭＰ目標軌道を実現する全身運動パターンを再度算出する（ステップＳ２２）。
【００８７】
他方、算出された全身運動パターンが適用機械モデルの仕様を満たす場合には、適用機械モデルと算出された全身運動パターンを用いて、実現ＺＭＰの軌道を算出する（ステップＳ２４）。ＺＭＰ軌道はｘｙｚ各座標値及び時刻ｔの関数である。但し、数学的演算処理によりＺＭＰ軌道の厳密解又は非厳密解を求めるのではなく、推定、あるいは実験・試行錯誤によりＺＭＰ軌道を特定するのであってもよい。
【００８８】
次いで、時刻ｔ＝０〜ＴにおけるＺＭＰの誤差を算出して（ステップＳ２５）、この誤差が許容値以下か否かをチェックする（ステップＳ２６）。
【００８９】
ＺＭＰ誤差が許容値を越える場合には、ステップＳ２８に進み、ＺＭＰ誤差を用いたＺＭＰ目標軌道の修正を行う。そして、この新たなＺＭＰ目標軌道を実現する全身運動パターンを再度算出して（ステップＳ２２）、上述と同様の処理を繰り返し実行する。
【００９０】
他方、ＺＭＰ誤差が許容値以下に収まった場合には、算出されたＺＭＰ目標軌道をＺＭＰ移動量が最小となり且つ安定歩行可能なＺＭＰ目標軌道（Ｓ２７）として出力するとともに、本処理ルーチン全体を終了する。
【００９１】
ＺＭＰ位置の移動量が最小となるＺＭＰ目標軌道を辿る場合、ＺＭＰ位置は、足底接地点からなる支持多角形で定まる安定領域の中心よりも進行方向寄りの場所に設定される傾向をとる。
【００９２】
例えば、左右それぞれの脚部が立脚及び遊脚を交互に繰り返して通常の２足歩行を実行する場合、図７に示すように、ＺＭＰ位置は、常に安定領域の中心よりも進行方向すなわち前方寄りの場所に設定される。また、この期間中のＺＭＰ軌跡は図８に示す通りとなる。
【００９３】
したがって、本実施例に従えば、左右それぞれの脚部が立脚及び遊脚を交互に遷移する期間中におけるＺＭＰ位置の移動距離は最小となり、その分だけ動作完了までの所要時間が短縮化され、より速く移動することが可能となる。
【００９４】
また、ＺＭＰ位置を安定領域の中心よりも進行方向すなわち前方寄りの場所に設定するためには、適用機械すなわち脚式移動ロボット１００の重心位置Ｇは必然的に進行方向寄りに移動する。
【００９５】
図９には、前方に歩行中の脚式移動ロボット１００を描写しているが、その重心位置Ｇが前方に移動しているので、後足が後方に向かって床面を蹴り出す力や、進行方向すなわち前方に印加される加速力の成分は必然的に大きくなる。この結果、より速く移動を開始するときや移動方向を変更するときに必要なより大きな加速度を発生させることが比較的容易となり、動作遷移が効率化するとともに、敏捷な動作が実現可能となる。
【００９６】
前方に向かう敏捷な動作は、脚式ロボットが例えばサッカー・ゲームのような大きな加速度の変化を必要とするスポーツをプレイするときに、極めて有効である。
【００９７】
さらに、図７〜図９に示すように脚式移動ロボット１００が前方方向に移動する場合だけでなく、横方向に移動開始する場合においても、同様に効果を奏することができる。このような場合、ＺＭＰ位置は、図１０に示すように常に安定領域の中心よりも進行方向すなわち他方の足底寄りの場所に設定される。したがって、ＺＭＰ位置の移動距離は最小となり、その分だけ動作完了までの所要時間が短縮化され、素早い動作を実現することが可能となる。
【００９８】
また、図１１には、横方向に歩行中の脚式移動ロボット１００を描写しているが、その重心位置Ｇが他方の足側寄りに移動しているので、一方の足が外側に向かって床面を蹴り出す力や、進行方向すなわち横方向に印加される加速力の成分は必然的に大きくなる。この結果、より速く移動を開始するときや移動方向を変更するときに必要なより大きな加速度を発生させることが比較的容易となり、動作遷移が効率化するとともに、敏捷な動作が実現可能となる。
【００９９】
横方向の敏捷な動作は、脚式ロボットが例えばサッカー・ゲームのような大きな加速度の変化並びに素早い方向転換を必要とするスポーツをプレイするときに、極めて有効である。
【０１００】
図１２及び図１３には、ＺＭＰ目標軌道を算出する処理手順の他の例について、フローチャートの形式で図解している。この実施例では、安定余裕が最大となる場所、より具体的には、安定領域のほぼ中心にＺＭＰ位置が設定されるようなＺＭＰ目標軌道を算出することができる。以下、このフローチャートに従って説明する。
【０１０１】
まず、歩行路面を設定するとともに（ステップＳ４１）、この設定した歩行路面に基づいて足部運動パターンを設定する（ステップＳ４８）。足部運動パターンは、ｘｙｚ各座標値及び時刻ｔの関数である。
【０１０２】
次いで、設定された歩行路面及び足部運動パターン（ｘ，ｙ，ｚ，ｔ）に基づいて、足底接地点を算出する（ステップＳ４２）。足底接地点は、ｘｙｚ各座標値及び時刻ｔの関数である。
【０１０３】
次いで、足底接地点（ｘ，ｙ，ｚ，ｔ）によって形成される支持多角形を算出する（ステップＳ４３）。支持多角形は時刻ｔの関数である。
【０１０４】
この結果、理想的安定領域が求まる（ステップＳ４４）。理想的安定領域は、ｘｙｚ各座標値及び時刻ｔの関数である。
【０１０５】
この理想的安定領域（ｘ，ｙ，ｚ，ｔ）、並びに、別途算出されているＺＭＰ制御最大誤差群（Ｓ４９）を基に、実質的安定領域を算出する（ステップＳ４５）。実質的安定領域は、ｘｙｚ各座標値及び時刻ｔの関数である。この結果、安定領域が求まる（ステップＳ４６）。この安定領域も、ｘｙｚ各座標値及び時刻ｔの関数である。
【０１０６】
そして、安定領域の重心位置をＺＭＰ位置として、時刻ｔ＝０〜ＴにおけるＺＭＰ目標軌跡を算出する（ステップＳ４７）。
【０１０７】
次いで、算出されたＺＭＰ目標軌道（ｘ，ｙ，ｚ，ｔ＝０〜Ｔ）を基にして（Ｓ５１）、このＺＭＰ目標軌道を実現する全身運動パターンを算出する（ステップＳ５２）。全身運動パターンの算出処理は別途定義済みの処理フローによって実現されるが、その詳細は後述に譲る。
【０１０８】
次いで、生成された全身運動パターンが、適用機械モデルの仕様を満たしているか否かをチェックする（ステップＳ５３）。この場合の適用機械モデルとは脚式ロボット１００のことであり、また、その仕様とは各関節の可動角、関節角速度、関節角速度、関節角加速度、関節トルクなどで構成される。
【０１０９】
算出された全身運動パターンが適用機械モデルの仕様を満たしていない場合には、適用機械モデルの仕様に対する不足量を用いたＺＭＰ目標軌道の修正を行う（ステップＳ５９）。そして、この新たなＺＭＰ目標軌道を実現する全身運動パターンを再度算出する（ステップＳ５２）。
【０１１０】
他方、算出された全身運動パターンが適用機械モデルの仕様を満たす場合には、適用機械モデルと算出された全身運動パターンを用いて、実現ＺＭＰの軌道を算出する（ステップＳ５４）。ＺＭＰ軌道はｘｙｚ各座標値及び時刻ｔの関数である。但し、数学的演算処理によりＺＭＰ軌道の厳密解又は非厳密解を求めるのではなく、推定、あるいは実験・試行錯誤によりＺＭＰ軌道を特定するのであってもよい。
【０１１１】
次いで、時刻ｔ＝０〜ＴにおけるＺＭＰの誤差を算出して（ステップＳ５５）、この誤差が許容値以下か否かをチェックする（ステップＳ５６）。
【０１１２】
ＺＭＰ誤差が許容値を越える場合には、ステップＳ５８に進み、ＺＭＰ誤差を用いたＺＭＰ目標軌道の修正を行う。そして、この新たなＺＭＰ目標軌道を実現する全身運動パターンを再度算出して（ステップＳ５２）、上述と同様の処理を繰り返し実行する。
【０１１３】
他方、ＺＭＰ誤差が許容値以下に収まった場合には、算出されたＺＭＰ目標軌道を安定余裕が最大となるＺＭＰ目標軌道（Ｓ７７）として出力するとともに、本処理ルーチン全体を終了する。
【０１１４】
図１２及び図１３に示す処理ルーチンによれば、脚式移動ロボット１００の動作遷移の効率よりも歩行安定性を優先したＺＭＰ目標軌道及び動作パターンを生成することができる。
【０１１５】
最後に、図９におけるステップＳ２２、並びに、図１３におけるステップＳ５２において実行する全身運動パターンの算出処理について説明しておく。
【０１１６】
本実施例では、全身運動パターン算出のために、図１〜図３に示す構造の脚式移動ロボット１００を図１４及び［数１］（後述）に示すような線形且つ非干渉の多質点近似モデルに置き換えて計算することにした。
【０１１７】
図１４において、Ｏ−ＸＹＺ座標系は絶対座標系におけるロール、ピッチ、ヨー各軸を表し、また、Ｏ'−Ｘ'Ｙ'Ｚ'座標系は脚式移動ロボット１００とともに動く運動座標系におけるロール、ピッチ、ヨー各軸を表している。同図に示す多質点モデルでは、ｉはｉ番目に与えられた質点を表す添え字であり、ｍiはｉ番目の質点の質量、ｒ'iはｉ番目の質点の位置ベクトル（但し運動座標系）を表すものとする。また、後述する全身協調運動パターン生成処理において特に重要な腰部質点の質量はｍh、その位置ベクトルはｒ'h（ｒ'hx，ｒ'hy，ｒ'hz）とし、また、ＺＭＰの位置ベクトルをｒ'zmpとする。
【０１１８】
図１４に示す非厳密の多質点近似モデルにおいては、モーメント式は線形方程式の形式で記述され、該モーメント式はピッチ軸及びロール軸に関して干渉しない、という点を充分理解されたい。
【０１１９】
このような多質点近似モデルは、概ね以下の処理手順により生成することができる。すなわち、
（１）ロボット１００全体の質量分布を求める。
（２）質点を設定する。質点の設定方法は、設計者のマニュアル入力であっても、所定の規則に従った自動生成のいずれでも構わない。
（３）各領域i毎に、重心を求め、その重心位置と質量ｍiを該当する質点に付与する。
（４）各質点ｍiを、質点位置ｒiを中心とし、その質量に比例した半径に持つ球体として表示する。
（５）現実に連結関係のある質点すなわち球体同士を連結する。
【０１２０】
多質点モデルは、言わば、ワイヤフレーム・モデルの形態でロボットを表現したものである。本実施例では、図１４を見ても判るように、この多質点近似モデルは、両肩、両肘、両手首、体幹、腰部、及び、両足首の各々を質点として設定したものである。
【０１２１】
なお、図１４に示す多質点モデルの腰部情報における各回転角（θhx，θhy，θhz）は、脚式移動ロボット１００における腰部の姿勢すなわちロール、ピッチ、ヨー軸の回転を規定するものである（図１５には、多質点モデルの腰部周辺の拡大図を示しているので、確認されたい）。
【０１２２】
次いで、上記の多質点近似モデルを用いて脚式移動ロボット１００の全身運動パターンを生成するための処理手順について説明する。
【０１２３】
図１６には、脚式移動ロボット１００全身運動パターンを生成するための処理手順をフローチャートの形式で示している。但し、以下では、図１４に示す線形・非干渉多質点近似モデルを用いてロボット１００の各関節位置や動作を記述するものとし、且つ、計算に際して下式のようなパラメータを用いることとする。但し、ダッシュ（'）付きの記号は運動座標系を記述するものと理解されたい。
【０１２４】
【数１】
0004518615.tif 000002
【０１２５】
また、ロボット１００の腰部高さが一定（ｒ'hz＋ｒqz＝const）で、且つ、膝部質点がゼロであることを前提とする。以下、図１６に示すフローチャートに従って説明する。
【０１２６】
まず、図５のステップＳ１９（又は図１２のステップＳ４８）で与えられる足部運動、足部運動から導出されたＺＭＰ目標軌道（図６のＳ２１又は図１３のＳ５１）、体幹運動、上肢運動、腰部の姿勢や高さなど、各部の駆動・動作を実際に決定するためのパターンが設定される（ステップＳ１１１）。但し、腰部の運動に関しては、Ｚ'方向のみ設定し、Ｘ'及びＹ'の各方向については未知とする。
【０１２７】
次いで、線形・非干渉多質点近似モデルを用いて、足部、体幹、そして上肢運動により発生する設定ＺＭＰ上でのピッチ軸、ロール軸まわりの各モーメント（Ｍx，Ｍy）を算出する（ステップＳ１１２）。
【０１２８】
次いで、線形・非干渉多質点近似モデルを用いて、腰部水平面内運動（ｒ'hx，ｒ'hy）によって発生する設定ＺＭＰ上でのモーメントを算出する（ステップＳ１１３）。
【０１２９】
次いで、設定ＺＭＰ上におけるモーメントに関する釣り合い式を、ロボットとともに動く運動座標系Ｏ'−Ｘ'Ｙ'Ｚ'上で導出する（ステップＳ１１４）。より具体的には、足部、体幹、そして上肢運動により発生するモーメント（Ｍx，Ｍy）を既知変数の項として右辺に、腰部質点の水平運動に関する項（ｒhx，ｒhy）を未知変数の項として左辺にまとめ、下式に示すような線形・非干渉なＺＭＰ方程式（１）を導出する。
【０１３０】
【数２】
0004518615.tif 000003
【０１３１】
但し、以下が成立するものとする。
【０１３２】
【数３】
0004518615.tif 000004
【０１３３】
次いで、上記のＺＭＰ方程式（１）を解いて、腰部水平面内軌道を算出する（ステップＳ１１５）。例えば、オイラー法やルンゲ・クッタ法などの数値的解法（周知）を用いてＺＭＰ方程式（１）を解くことで、未知変数としての腰部の水平絶対位置（ｒhx，ｒhy）の数値解を求めることができる（ステップＳ１１６）。ここで求められる数値解は、安定歩行可能な腰部運動パターンの近似解であり、より具体的にはＺＭＰが目標位置に入るような腰部水平絶対位置である。ＺＭＰ目標位置は、通常、着床した足底に設定される。
【０１３４】
算出された近似解上では予め設定した体幹・上肢運動が実現できない場合には、体幹・上肢運動パターンの再設定・修正を行う（ステップＳ１１７）。この際、膝部の軌道を算出してもよい。
【０１３５】
次いで、上述のようにして得られた全身運動パターンを代入して、厳密モデル（すなわち、剛体、若しくは非常に多くの質点からなるロボット１００の精密なモデル）における設定ＺＭＰ上のモーメント（ｅＭx，ｅＭy）を算出する（ステップＳ１１８）。非厳密モデルでは上記の［数３］が成立することを前提としたが、厳密ではかかる前提を要しない（すなわち時間の変化に対して一定である必要はない）。
【０１３６】
厳密モデルにおけるモーメント（ｅＭx，ｅＭy）は、腰部運動の発生するモーメント誤差である。続くステップＳ１１９では、このモーメント（ｅＭx，ｅＭy）が非厳密モデルにおける近似モーメントの許容値（εＭx，εＭy）未満か否かを判定する。許容値ε未満であれば、腰部安定運動パターンの厳密解及び安定歩行を実現できる（ステップＳ１２０）。本実施例のように片足が６自由度を持つ脚式ロボット（図３を参照のこと）の場合、各足部の位置と腰部の水平位置及び高さによって両脚の姿勢が一意に定まる。すなわち、腰部運動パターンを生成することはロボット１００の「歩容」すなわち全身運動パターンを決定すること相当する。そこで、ステップＳ１２０を以って本ルーチン全体を終了する。
【０１３７】
他方、厳密モデルにおけるモーメント（ｅＭx，ｅＭy）が近似モデルにおけるモーメントの許容値（εＭx，εＭy）以上であった場合には、厳密モデルにおけるモーメント（ｅＭx，ｅＭy）を用いて近似モデルにおける既知発生モーメント（Ｍx，Ｍy）を修正して（ステップＳ１２１）、再びＺＭＰ方程式の導出を行い、許容値ε未満に収束するまで、腰部運動パターンの近似解の算出と修正を繰り返し実行する。
【０１３８】
また、図１７には、脚式移動ロボット１００全身運動パターンを生成する処理手順の他の例をフローチャートの形式で示している。但し、図１６に示した例と同様に、線形・非干渉多質点近似モデルを用いてロボット１００の各関節位置や動作を記述するものとする。
【０１３９】
まず、図５のステップＳ１９（又は図１２のステップＳ４８）で与えられる足部運動、足部運動から導出されたＺＭＰ目標軌道（図６のＳ２１又は図１３のＳ５１）、体幹運動、上肢運動、腰部の姿勢や高さなど、各部の駆動・動作を実際に決定するためのパターンが設定される（ステップＳ１３１）。但し、腰部の運動に関しては、Ｚ'方向のみ設定し、Ｘ'及びＹ'の各方向については未知とする。
【０１４０】
次いで、線形・非干渉多質点近似モデルを用いて、足部、体幹、そして上肢運動により発生する設定ＺＭＰ上でのピッチ軸、ロール軸まわりの各モーメント（Ｍx，Ｍy）を算出する（ステップＳ１３２）。
【０１４１】
次いで、腰部水平面内運動（ｒ'hx，ｒ'hy）をフーリエ級数展開する（ステップＳ１３３）。当業界において既に周知のように、フーリエ級数展開することにより、時間軸成分を周波数成分に置き換えて演算することができる。すなわち、この場合には腰部の動きを周期的な動きとして捉えることができる。また、ＦＦＴ（高速フーリエ変換）を適用することができるので、計算速度を大幅に向上させることができる。
【０１４２】
次いで、設定ＺＭＰ上でのピッチ軸、ロール軸まわりの各モーメント（Ｍx，Ｍy）についてもフーリエ級数展開する（ステップＳ１３４）。
【０１４３】
次いで、腰部水平面内軌道のフーリエ係数を算出し、さらに逆フーリエ級数展開することで（ステップＳ１３５）、腰部運動の近似解が求まる（ステップＳ１３６）。ここで求められる近似解は、安定歩行可能な腰部運動パターンを規定する腰部の水平絶対位置の近似解（ｒhx，ｒhy）であり、より具体的にはＺＭＰが目標位置に入るような腰部水平絶対位置である。ＺＭＰ目標位置は、通常、着床した足底に設定される。
【０１４４】
算出された近似解上では予め設定した体幹・上肢運動が実現できない場合には、体幹・上肢運動パターンの再設定・修正を行う（ステップＳ１３７）。この際、膝部の軌道を算出してもよい。
【０１４５】
次いで、上述のようにして得られた全身運動パターンを代入して、厳密モデル（すなわち、剛体、若しくは非常に多くの質点からなるロボット１００の精密なモデル）における設定ＺＭＰ上のモーメント（ｅＭx，ｅＭy）を算出する（ステップＳ１３８）。非厳密モデルでは上記の［数３］が成立することを前提としたが、厳密ではかかる前提を要しない（すなわち時間の変化に対して一定である必要はない）。
【０１４６】
厳密モデルにおけるモーメント（ｅＭx，ｅＭy）は、腰部運動の発生するモーメント誤差である。続くステップＳ１３９では、このモーメント（ｅＭx，ｅＭy）が近似モデルにおけるモーメントの許容値（εＭx，εＭy）未満か否かを判定する。許容値ε未満であれば、腰部安定運動パターンの厳密解及び安定歩行を実現できる全身運動パターンを得ることができたことになるので（ステップＳ１４０）、本ルーチン全体を終了する。
【０１４７】
他方、厳密モデルにおけるモーメント（ｅＭx，ｅＭy）が近似モデルにおけるモーメントの許容値（εＭx，εＭy）以上であった場合には、厳密モデルにおけるモーメント（ｅＭx，ｅＭy）を用いて非厳密モデルにおける既知発生モーメント（Ｍx，Ｍy）を修正して（ステップＳ１４１）、再びフーリエ級数展開して、許容値ε未満に収束するまで、腰部運動パターンの近似解の算出と修正を繰り返し実行する。
【０１４８】
［追補］
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１４９】
【発明の効果】
以上詳記したように、本発明によれば、可動脚を用いた歩行その他の脚式移動作業を効果的に行うことができる、優れた脚式移動ロボットの動作制御システム及び動作制御方法を提供することができる。
【０１５０】
また、本発明によれば、ＺＭＰを歩行の安定度判別の規範として用いて効率的な脚式移動作業を行うことができる、優れた脚式移動ロボットの動作制御システム及び動作制御方法を提供することができる。
【０１５１】
また、本発明によれば、ＺＭＰの位置設定を効果的に制御することでロボットの動作遷移を円滑且つ安定的に実行することができる、優れた脚式移動ロボットの動作制御システム及び動作制御方法を提供することができる。
【０１５２】
また、本発明によれば、２足による脚式作業中における次の動作・姿勢への効率的な遷移を考慮してＺＭＰの位置設定を行うことができる、優れた脚式移動ロボットの動作制御システム及び動作制御方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の実施に供される脚式移動ロボット１００を前方から眺望した様子を示した図である。
【図２】本発明の実施に供される脚式移動ロボット１００を後方から眺望した様子を示した図である。
【図３】本実施例に係る脚式移動ロボット１００が具備する自由度構成モデルを模式的に示した図である。
【図４】本実施例に係る脚式移動ロボット１００の制御システム構成を模式的に示した図である。
【図５】安定歩行可能なＺＭＰ位置の移動量が最小となるようなＺＭＰ目標軌道を算出するための処理手順（前半）を示したフローチャート（本実施例）である。
【図６】安定歩行可能なＺＭＰ位置の移動量が最小となるようなＺＭＰ目標軌道を算出するための処理手順（後半）を示したフローチャート（本実施例）である。
【図７】安定領域の中心よりも進行方向寄りの場所にＺＭＰ位置を設定した場合において、脚式移動ロボット１００の左右それぞれの脚部が立脚及び遊脚を交互に繰り返す通常の２足歩行期間中にＺＭＰ位置が移動する様子を描写した図（本実施例）である。
【図８】安定領域の中心よりも進行方向寄りの場所にＺＭＰ位置を設定した場合において、脚式移動ロボット１００の左右それぞれの脚部が立脚及び遊脚を交互に繰り返す通常の２足歩行期間中のＺＭＰ軌跡を描写した図（本実施例）である。
【図９】安定領域の中心よりも進行方向寄りの場所にＺＭＰ位置を設定した場合において、前方に歩行中の脚式移動ロボット１００及びその重心位置Ｇを示した図（本実施例）である。
【図１０】安定領域の中心よりも進行方向寄りの場所にＺＭＰ位置を設定した場合において、脚式移動ロボット１００が横方向に移動する動作期間中にＺＭＰ位置が移動する様子を描写した図（本実施例）である。
【図１１】安定領域の中心よりも進行方向寄りの場所にＺＭＰ位置を設定した場合において、横方向に歩行中の脚式移動ロボット１００及びその重心位置Ｇを示した図（本実施例）である。
【図１２】安定余裕が最大となる場所にＺＭＰ位置が設定されるようなＺＭＰ目標軌道を算出するための処理手順（前半）を示したフローチャート（他の実施例）である。
【図１３】安定余裕が最大となる場所にＺＭＰ位置が設定されるようなＺＭＰ目標軌道を算出するための処理手順（後半）を示したフローチャート（他の実施例）である。
【図１４】本実施例に係る歩行制御の計算のために導入される、脚式移動ロボット１００の線形且つ非干渉の多質点近似モデルを示した図である。
【図１５】図１４に示した脚式移動ロボット１００の多質点近似モデルにおける腰部周辺の拡大図である。
【図１６】脚式移動ロボット１００の全身運動パターンを生成するための処理手順を示したフローチャートである。
【図１７】脚式移動ロボット１００の全身運動パターンを生成する処理手順の他の例を示したフローチャートである。
【図１８】足底接点の支持多角形で定義される安定領域内に適当にＺＭＰを設定して前方歩行した場合において、２足脚式ロボットの左右それぞれの脚部が立脚及び遊脚を交互に繰り返す間にＺＭＰが移動する様子（従来例）を示した図である。
【図１９】２足脚式ロボットの左右それぞれの脚部が立脚及び遊脚を交互に繰り返す間にＺＭＰが安定領域内で適当な軌跡で移動する様子（従来例）を示した図である。
【図２０】支持多角形で定義される安定領域内の適当な位置にＺＭＰを設定して２足の脚式ロボットが左右方向に歩行した場合においてＺＭＰ位置が移動する様子（従来例）を示した図である。
【図２１】安定領域内の適当な場所にＺＭＰ位置を設定して２足脚式ロボットが前進歩行する様子及びその重心位置Ｇ（従来例）を示した図である。
【図２２】安定領域内の適当な場所にＺＭＰ位置を設定して２足脚式ロボットが横方向に歩行する様子及びその重心位置Ｇ（従来例）を示した図である。
【符号の説明】
１…頭部，２…首関節ヨー軸
３…首関節ピッチ軸，４…首関節ロール軸
５…体幹ピッチ軸，６…体幹ロール軸
７…体幹ヨー軸，８…肩関節ピッチ軸
９…肩関節ロール軸，１０…上腕ヨー軸
１１…肘関節ピッチ軸，１２…前腕ヨー軸
１３…手首関節ピッチ軸，１４…手首関節ロール軸
１５…手部，１６…股関節ヨー軸
１７…股関節ピッチ軸，１８…股関節ロール軸
１９…膝関節ピッチ軸，２０…足首関節ピッチ軸
２１…足首関節ロール軸，２２…足部（足底）
１００…脚式移動ロボット
２００…思考制御モジュール
２０１…バス・インターフェース
２１１…ＣＰＵ，２１２…ＲＡＭ，２１３…ＲＯＭ
２１４…外部記憶装置
２５１…画像入力装置（ＣＣＤカメラ）
２５２…音声入力装置（マイク）
２５３…音声出力装置（スピーカ）
２５４…通信インターフェース
３００…運動制御モジュール
３０１…バス・インターフェース
３１１…ＣＰＵ，３１２…ＲＡＭ，３１３…ＲＯＭ
３１４…外部記憶装置，  ３５１…姿勢センサ
３５２，３５３…接地確認センサ
３５４…電源制御装置
【図１】
0004518615.tif 000005
【図２】
0004518615.tif 000006
【図３】
0004518615.tif 000007
【図４】
0004518615.tif 000008
【図５】
0004518615.tif 000009
【図６】
0004518615.tif 000010
【図７】
0004518615.tif 000011
【図８】
0004518615.tif 000012
【図９】
0004518615.tif 000013
【図１０】
0004518615.tif 000014
【図１１】
0004518615.tif 000015
【図１２】
0004518615.tif 000016
【図１３】
0004518615.tif 000017
【図１４】
0004518615.tif 000018
【図１５】
0004518615.tif 000019
【図１６】
0004518615.tif 000020
【図１７】
0004518615.tif 000021
【図１８】
0004518615.tif 000022
【図１９】
0004518615.tif 000023
【図２０】
0004518615.tif 000024
【図２１】
0004518615.tif 000025
【図２２】
0004518615.tif 000026