(57)【特許請求の範囲】
【請求項１】
少なくとも上肢と、下肢と、足部と、体幹部及び腰部で構成され、下肢の運動により移動自在なロボットのための重心位置制御方法であって、
（ａ）前記ロボットのＺ軸又はＸ軸方向のうち少なくとも一方の前記ロボットの動作軌道における重心位置を設定するステップと、
（ｂ）前記ロボットの目標全身運動パターンを設定するステップと、
（ｃ）前記目標全身運動パターンを基に、安定化処理した前記ロボットの全身運動パターンを算出するステップと、
（ｄ）該算出された全身運動パターンが前記目標全身運動パターンとの軌道上の誤差が許容範囲内である場合には、該設定された重心位置を前記目標全身運動パターンにおける最適な重心位置として決定するステップと、
を有し、
前記ステップ（ｃ）は、
（ｃ−１）前記の設定した重心位置に基づいて、前記ロボットを有限数の離散的な質点からなる多質点近似モデルに置き換えるステップと、
（ｃ−２）前記ステップ（ｂ）で設定された目標全身運動パターンを実現するための足部運動、体幹運動、上肢運動、腰部の姿勢及び高さを設定するステップと、
（ｃ−３）前記ステップ（ｃ−２）で設定された足部運動に基づいてＺＭＰの軌道を設定するステップと、
（ｃ−４）前記ステップ（ｃ−２）で設定された足部運動、体幹運動、上肢運動により前記ＺＭＰ上で発生するモーメントを、前記多質点近似モデルを用いて算出するステップと、
（ｃ−５）腰部運動により前記ＺＭＰ上で発生するモーメントを、前記多質点近似モデルを用いて算出するステップと、
（ｃ−６）前記ステップ（ｃ−４）及び（ｃ−５）で算出された前記ＺＭＰ上におけるモーメントが釣り合う腰部運動の解を求めるステップと、
を有し、前記ステップ（ｃ−２）で設定した足部運動、体幹運動、上肢運動と、前記腰部運動の解からなる前記ロボットの全身運動パターンを生成する、
ことを特徴とするロボットの重心位置制御方法。
【請求項２】
該算出された全身運動パターンが前記目標全身運動パターンとの誤差が許容範囲外である場合には、前記ロボットの動作軌道における重心位置を再設定して全身運動パターンを再算出するステップをさらに有する、
ことを特徴とする請求項１に記載のロボットの重心位置制御方法。
【請求項３】
前記ロボットは前記ロボット全体の重心位置に影響を及ぼす重量物を前記上体に変位自在に取り付けており、
前記ステップ（ｄ）により決定された最適重心位置を形成するように該重量物の取付位置を決定する、
ことを特徴とする請求項１に記載のロボットの重心位置制御方法。
【請求項４】
前記ロボットは、
前記ロボットの少なくとも一部を駆動するための駆動電源を供給可能であるとともに、前記ロボット全体の重心位置に影響を及ぼす重量を有する電源手段と、
前記電源手段を前記上体に変位自在に取り付ける電源取付手段と、
を具備し、
前記ステップ（ｄ）により決定された最適重心位置を形成するように前記電源取付手段による前記電源手段の取付位置を決定する、
ことを特徴とする請求項１に記載のロボットの重心位置制御方法。
【請求項５】
前記電源取付手段は、前記電源手段をロボットのヨー軸又はロール軸のうち少なくとも一方に変位可能に取り付ける、
ことを特徴とする請求項４に記載のロボットの重心位置制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、生体のメカニズムや動作を模した構造を有するリアリスティックなロボットのメカニズムに係り、特に、例えばヒトやサルなどの直立歩行型の身体メカニズムや動作を模した構造を有する脚式移動型ロボットのメカニズムに関する。
【０００２】
更に詳しくは、本発明は、２足直立歩行による脚式移動を行うとともに下肢の上には体幹や上肢、頭部などのいわゆる上半身が搭載されてなる直立歩行・脚式移動型ロボットのメカニズムに係り、特に、歩行運動や、その他体幹や上肢などを含んだ全身協調運動時において好適な重心位置を設定可能な、直立歩行・脚式移動型ロボットのメカニズムに関する。
【０００３】
【従来の技術】
ロボットの語源は、スラブ語のＲＯＢＯＴＡ（奴隷機械）に由来するといわれている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（ｉｎｄｕｓｔｒｉａｌ  ｒｏｂｏｔ）であった。
【０００４】
最近では、ヒトやサルなどの２足直立歩行を行う動物の身体メカニズムや動作を模した脚式移動ロボットに関する研究開発が進展し、実用化への期待も高まってきている。２足直立による脚式移動は、クローラ式や４足若しくは６足式に比し不安定で姿勢制御や歩行制御が難しくなるが、階段の昇降や障害物の乗り越え等、柔軟な歩行・走行動作を実現できるという点で優れている。
【０００５】
脚式移動ロボットは、直立する五体全てを装備した形態ではなく、要素技術としての下肢部分のみによる脚式移動に関する研究からスタートしたという歴史的経緯がある。
【０００６】
例えば、特開平３−１８４７８２号公報には、脚式歩行ロボットのうち、胴体より下に相当する構造体に適用される関節構造について開示している。
【０００７】
また、特開平５−３０５５７９号公報には、脚式移動ロボットの歩行制御装置について開示している。同公報に記載の歩行制御装置は、ＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）すなわち歩行するときの床反力によるモーメントがゼロとなる床面上の点を目標値に一致させるように制御するものである。但し、同公報に記載の図１を見ても判るように、モーメントを作用する胴体２４はブラックボックス化されており、五体全てが完成した状態ではなく、要素技術としての脚式移動の提案にとどまる。
【０００８】
しかしながら、脚式移動ロボットの究極目的は、言うまでもなく、下肢単体による歩行動作にとどまらず、五体を完備した構造体による全身強調型の様々な動作パターンの実現である。すなわち、２足歩行を行う下肢と、腕などからなる上肢と、これら下肢と上肢を連結する体幹部とで構成された構造体により、２足による直立歩行を行うことにある。五体が完成したロボットは、２足を用いた直立・脚式移動作業を前提とし、各場面において、上肢、下肢、及び体幹部を所定の優先順位に従って協調的に動作するように姿勢安定制御する必要がある。
【０００９】
ヒトの生体メカニズムや動作をエミュレートした脚式移動ロボットのことを、特に、「人間形」、若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ  ｒｏｂｏｔ）と呼ぶ。人間型ロボットは、例えば、生活支援、すなわち住環境その他の日常生活上の様々な場面における人的活動の支援などを行うことができる。
【００１０】
人間形若しくは人間型と呼ばれるロボットを研究・開発する意義を、例えば以下の２つの視点から把握することができよう。
【００１１】
１つは、人間科学的な視点である。すなわち、人間の下肢及び／又は上肢に似た構造のロボットを作り、その制御方法を考案して、人間の歩行動作をシミュレートするというプロセスを通じて、歩行を始めとする人間の自然な動作のメカニズムを工学的に解明することができる。このような研究成果は、人間工学、リハビリテーション工学、あるいはスポーツ科学など、人間の運動メカニズムを扱う他の研究分野の進展に多いに還元することができるであろう。
【００１２】
もう１つは、人間のパートナーとして、生活支援、すなわち住環境その他の日常生活上の様々な場面における人的活動の支援を行うロボットの開発である。この種のロボットは、人間の生活環境のさまざまな局面において、人間から教わりながら個々に個性の相違する人間又は環境への適応方法を学習し、機能面でさらに成長していく必要がある。このときロボットが、「人間形」、すなわち、人間と同じ形又は同じ構造をしている方が、人間とロボットとのスムースなコミュニケーションを行う上で有効に機能するものと考えられる。
【００１３】
例えば、踏んでは行けない障害物を避けながら部屋を通り抜ける方法を実地でロボットに教示するような場合、クローラ式や４足式ロボットのように教える相手が自分と全く違う構造をしているよりも、同じような格好をしている２足歩行ロボットの方がはるかに教え易く、またロボットにとっても教わり易い筈であろう（例えば、高西著「２足歩行ロボットのコントロール」（自動車技術会関東支部＜高塑＞Ｎｏ．２５，１９９６ＡＰＲＩＬ）を参照のこと）。そもそも、人間の住環境のほとんどは人間が持つ形態や行動様式に合わせて形成されたものであるから、ロボットが人間型の形態を有していることは人間の住環境との親和性を高める上で必須であるとも言える。
【００１４】
人間型ロボットの用途の１つとして、産業活動・生産活動等における各種の難作業の代行が挙げられる。例えば、原子力発電プラントや火力発電プラント、石油化学プラントにおけるメンテナンス作業、製造工場における部品の搬送・組立作業、高層ビルにおける清掃、火災現場その他における救助といったような危険作業・難作業の代行などである。但し、この種の産業利用に特化したロボットは、特定の用途若しくは機能を実現することが設計・製作上の至上の主題であり、２足歩行を前提とはするものの、ヒトやサルなど直立歩行動物が本来持つ身体メカニズムや動作を機械装置として忠実に再現する必要は必ずしもない。例えば、特定用途を実現するために手先の自由度や動作機能を強化する一方で、用途には比較的関係が低いとされる頭部や腰部などの自由度を制限し又は省略される。この結果、２足歩行と謂えども、ロボットの作業や動作の外観上で、ヒトとしては不自然さが残ることがあるが、かかる点は妥協せざるを得ない。
【００１５】
また、人間型ロボットの他の用途として、難作業の代行などの生活支援というよりも、生活密着型、すなわち人間との「共生」という用途が挙げられる。この種のロボットは、ヒトやサルなどの２足の直立歩行を行う動物が本来持つ、全身協調型の動作メカニズムを忠実に再現し、その自然に円滑な動作を実現することを至上の目的とする。また、ヒトやサルなどの知性の高い直立動物をエミュレートする以上、四肢を用いた動作の表現力が豊かであることが望ましい。さらに、予め入力された動作パターンを単に忠実に実行するだけではなく、相手の言葉や態度（「褒める」とか「叱る」、「叩く」など）に呼応した、生き生きとした動作表現を実現することも要求される。この意味において、ヒトを模したエンターティンメント・ロボットは、まさに「人間型ロボット」と呼ぶに相応しい。
【００１６】
既に周知のように、人体は数百の関節すなわち数百に上る自由度を備えている。限りなくヒトに近い動作を脚式移動ロボットに付与するためには、ほぼ同じ自由度を与えることが好ましいが、これは技術的には極めて困難である。何故ならば、１つの自由度に対して少なくとも各１つのアクチュエータを配設する必要があるが、数百のアクチュエータをロボットという機械装置上に実装することは、製造コストの点からも、重量やサイズなど設計の観点からも不可能に等しい。また、自由度が多いと、その分だけ位置・動作制御や姿勢安定制御等のための計算量が指数関数的に増大してしまう。このため、人体よりもはるかに少ない数十程度の関節自由度で人間型ロボットを構成するのが一般的である。したがって、少ない自由度を用いてより自然な動作を如何にして実現するかが、人間型ロボットの設計・制御において重要な課題の１つといえる。
【００１７】
また、２足直立歩行を行う脚式移動ロボットは、柔軟な歩行・走行動作（例えば階段の昇降や障害物の乗り越え等）を実現できる点で優れている反面、重心位置が高くなるため、その分だけ姿勢制御や安定歩行制御が難しくなる。特に、生活密着型のロボットの場合、ヒトやサルなどの知性動物における自然な動作や感情を豊かに表現しながら姿勢や安定歩行を制御しなければならない。動作による感情表現の多くは、上肢や頭部などの上半身を利用するものであり、かかる動さ期間中のロボットの重心位置はダイナミックに変動する。
【００１８】
２足歩行による脚式移動を行うタイプのロボットに関する姿勢制御や安定歩行に関する技術は既に数多提案されている。ここで言う安定な「歩行」とは、転倒することなく、脚を使って移動すること、と定義することができよう。歩行時には、重力と歩行運動に伴なって生じる加速度によって、歩行系から路面には重力と慣性力、並びにこれらのモーメントが作用する。いわゆる「ダランベールの原理」によると、それらは路面から歩行系への反作用としての床反力、床反力モーメントとバランスする。力学的推論の帰結として、足底接地点と路面の形成する支持多角形の辺上あるいはその内側にピッチ及びロール軸モーメントがゼロとなる点、すなわち「ＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）」が存在する。
【００１９】
ロボットの安定歩行に関する提案の多くは、このＺＭＰを歩行の安定度判別の規範として用いている。ＺＭＰ規範に基づく２足歩行パターン生成は、足底着地点を予め設定でき、路面形状に応じた足先の運動学的拘束条件を考慮し易いなどの利点がある。
【００２０】
例えば、特開平５−３０５５７９号公報に記載の脚式移動ロボットは、ＺＭＰがゼロとなる床面上の点を目標値に一致させるようにして安定歩行を行うようになっている。
【００２１】
また、特開平５−３０５５８１号公報に記載の脚式移動ロボットは、ＺＭＰが支持多面体（多角形）内部、又は、着地、離床時にＺＭＰが支持多面体（多角形）の端部から少なくとも所定の余裕を有する位置にあるように構成した。この結果、外乱などを受けても所定距離だけＺＭＰの余裕があり、歩行の安定性の向上を図  ることができる。
【００２２】
また、特開平５−３０５５８３号公報には、脚式移動ロボットの歩き速度をＺＭＰ目標位置によって制御する点について開示している。すなわち、同公報に記載の脚式移動ロボットは、予め設定された歩行パターン・データを用い、ＺＭＰを目標位置に一致させるように脚部関節を駆動するとともに、上体の傾斜を検出してその検出値に応じて設定された歩行パターン・データの吐き出し速度を変更するようにしている。この結果、予期しない凹凸を踏んでロボットが例えば前傾するときは吐き出し速度を速めることで姿勢を回復できる。またＺＭＰが目標位置に制御できるので、両脚支持期において吐き出し速度を変更しても支障がない。
【００２３】
また、特開平５−３０５５８５号公報には、脚式移動ロボットの着地位置をＺＭＰ目標位置によって制御する点について開示している。すなわち、同公報に記載の脚式移動ロボットは、ＺＭＰ目標位置と実測位置とのずれを検出して、それを解消する様に脚部の一方または双方を駆動するか、又は、ＺＭＰ目標位置まわりにモーメントを検出してそれが零になる様に脚部を駆動することで安定歩行を行うようになっている。
【００２４】
また、特開平５−３０５５８６号公報には、脚式移動ロボットの傾斜姿勢をＺＭＰ目標位置によって制御する点について開示している。すなわち、同公報に記載の脚式移動ロボットは、ＺＭＰ目標位置まわりのモーメントを検出し、モーメントが生じているときは、それが零になるように脚部を駆動することで安定歩行を行うようになっている。
【００２５】
２足歩行ロボットの安定歩行制御を考えた場合、ロボットが実行する動作が、ロボットの重心が常に歩行中の足底の接地範囲にある「静歩行」であるか、あるいは、ロボットの重心が足底の外に外れるような「動歩行」であるかは重要な問題である。すなわち、２足歩行ロボットが安定に歩行するときは静歩行であれば系の重心を支持脚足裏におく必要がある。また、動歩行において、例えばＺＭＰを安定歩行規範として用いる制御方式であれば、ＺＭＰが目標軌道をたどるように制御しなければならない。
【００２６】
前者の静歩行時には、ロボットの重心を歩行中の足底の接地範囲内に収めるという要請から、ロボットの構成要素のうち重量物をできる限り下方に配設して重心位置を低くした方が、歩行の安定制御が容易となる。これに対し、後者の動歩行時には、いわゆる「倒立振子」の概念が導入される。倒立振子は、転倒方向に支持点を強く加速することで姿勢回復を図ることができる。歩行系においては、目標ＺＭＰを転倒方向に強く加速することに相当する。倒立振子制御を行う場合、ロボットの重心位置はむしろ高い方が、重心バランスを失ってから転倒するまでの時間すなわち倒立振子の周期が長いため、歩行制御の安定化には有利である。
【００２７】
ところで、ロボットは、トルク重量比の大きいアクチュエータと、比較的軽量な構造部材とで構成されるので、質量の大半はアクチュエータに集中する。言うまでもなく、各アクチュエータはロボットの関節自由度に相当し、その設置場所はほぼ固定的であり、重心位置の調整に利用することはできない。
【００２８】
システム系に対する設置場所がロボットの構造に特に依存しない構成要素としては、例えば、アクチュエータの駆動制御等を行う制御ボードや、アクチュエータや制御ボードなど各種電気系統に給電するための電源装置などが挙げられる。
【００２９】
制御ボードには、通常、米インテル社の”Ｐｅｎｔｉｕｍ”などのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）チップや、メモリ・チップその他の計算機の主要回路コンポーネントを搭載してなる「マザーボード」が利用される。マザーボードはせいぜい数百グラム程度の重量しかなく、重心位置の調整にはあまり寄与しない。
【００３０】
これに対し、電源装置は、ＡＣ電源（一般商用電源）に頼るか、又は、バッテリを用いた自立駆動型かで、重量は多いに相違する。前者であれば、直交変換器や変圧器などの回路コンポーネントを略１枚の印刷配線ボード上に実装されるので、ロボット全体の重心位置を左右する重量物を構成しない。これに対し、後者の場合、電源装置は十数本〜数十本のバッテリ・セルを包含するため、ロボット全体の重心位置を左右する重量物となり得る。特に、アクチュエータの初期駆動時には過大なインラッシュ電流を要するので、重量エネルギ密度が高いリチウム・イオン電池よりも、むしろ瞬時の供給電流量が大きいニッケル・カドミウム電池の方が優れている。ニッケル・カドミウム電池を用いた電源装置は、数キログラム程度の重量を有する。これは、小型の２足歩行ロボットにおける重量の１〜２割程度を占めることになる。
【００３１】
バッテリを用いた自立駆動型であれば、人間型ロボットの物理的な行動半径は、電源ケーブルによる制限を受けず、自由に歩行することができる。また、歩行やその他の上肢を含めた各種の運動時に、ロボットの上肢や下肢と電源ケーブルとの干渉を考慮する必要がなくなり、動作制御が容易になる。
【００３２】
【発明が解決しようとする課題】
本発明の目的は、例えばヒトやサルなどの直立歩行型の身体メカニズムや動作を模した構造を有する、優れた脚式移動型ロボットを提供することにある。
【００３３】
本発明の更なる目的は、２足直立歩行による脚式移動を行うとともに下肢の上には体幹や上肢、頭部などのいわゆる上半身が搭載されてなり、歩行運動や、その他体幹や上肢などを含んだ全身協調運動時において好適な重心位置を設定することができる、優れた直立歩行・脚式移動型ロボットを提供することにある。
【００３４】
【課題を解決するための手段】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、少なくとも下肢と、該下肢の上方に配設された上体とで構成され、下肢の運動により移動自在なロボットであって、
前記ロボット全体の重心位置に影響を及ぼす重量物を前記上体に変位自在に取り付けたことを特徴とするロボットである。
【００３５】
また、本発明の第２の側面は、少なくとも下肢と、該下肢の上方に配設された上体とで構成され、下肢の運動により移動自在なロボットであって、
前記ロボットの少なくとも一部を駆動するための駆動電源を供給可能であるとともに、前記ロボット全体の重心位置に影響を及ぼす重量を有する電源手段と、
前記電源手段を前記上体に変位自在に取り付ける電源取付手段と、
を具備することを特徴とするロボットである。
【００３６】
本発明の第２の側面に係るロボットにおいて、前記電源手段は、例えば、１以上のニッケル系バッテリ・セルで構成される。ニッケル系バッテリとは、例えば、ニッケル・カドミウム・バッテリや、ニッケル水素バッテリのことを指す。この種のニッケル系バッテリは、重量エネルギ密度が低い（すなわち比較的大重量を有する）ものの、インラッシュ電流を供給可能な出力特性を持ち、アクチュエータの駆動には適している。
【００３７】
また、前記電源取付手段は、前記電源手段すなわちバッテリ・パックをロボットのヨー軸又はロール軸のうち少なくとも一方に変位可能に取り付けるようになっている。ここで言うヨー軸とはすなわちＺ軸のことであり、重量物としてのパッテリ・パックの設置位置を上方に移動させることにより、ロボットを倒立振子に見立てることができる。倒立振子は、転倒方向に支持点を強く加速することで姿勢回復を図ることができる。歩行系においては、目標ＺＭＰを転倒方向に強く加速することに相当する。
【００３８】
また、本発明の第３の側面は、少なくとも下肢と、該下肢の上方に配設された上体とで構成され、下肢の運動により移動自在なロボットであって、
前記ロボットの少なくとも一部を駆動するための駆動用バッテリを前記上体に取り付けることによって、前記ロボット全体の重心位置を上方に移動させたことを特徴とするロボットである。
【００３９】
また、本発明の第４の側面は、少なくとも下肢と、該下肢の上方に配設された上体とで構成され、下肢の運動により移動自在なロボットのための重心位置制御方法であって、
（ａ）前記ロボットのＺ軸又はＸ軸方向のうち少なくとも一方の重心位置を設定するステップと、
（ｂ）前記ロボットの目標全身運動パターンを設定するステップと、
（ｃ）前記目標全身運動パターンを基に前記ロボットの全身運動パターンを算出するステップと、
（ｄ）該算出された全身運動パターンが前記目標全身運動パターンとの誤差が許容範囲内である場合には、該設定された重心位置を最適な重心位置として決定するステップと、
を具備することを特徴とするロボットの重心位置制御方法である。
【００４０】
本発明の第４の側面に係るロボットの重心位置制御方法は、該算出された全身運動パターンが前記目標全身運動パターンとの誤差が許容範囲外である場合には、前記ロボットの重心位置を再設定して全身運動パターンを再算出するステップをさらに含んでもよい。
【００４１】
また、前記ロボットは前記ロボット全体の重心位置に影響を及ぼす重量物を前記上体に変位自在に取り付けており、
前記ステップ（ｄ）により決定された最適重心位置を形成するように該重量物の取付位置を決定するようにしてもよい。
【００４２】
また、前記ロボットは、
前記ロボットの少なくとも一部を駆動するための駆動電源を供給可能であるとともに、前記ロボット全体の重心位置に影響を及ぼす重量を有する電源手段と、
前記電源手段を前記上体に変位自在に取り付ける電源取付手段と、
を具備し、
前記ステップ（ｄ）により決定された最適重心位置を形成するように前記電源取付手段による前記電源手段の取付位置を決定するようにしてもよい。
【００４３】
【作用】
人間型ロボットは、通常、脚式移動を行うための下肢と、下肢の上方に配設された上体とで構成される。上体は、さらに、下肢と股関節で連結する体幹部と、上肢と、頭部とに区分される。
【００４４】
ロボットの少なくとも一部を駆動するための駆動用電源としては、アクチュエータのインラッシュ電流を供給可能なニッケル系のバッテリ・セルからなるバッテリ・パックを用いるが、これは比較的大重量となり、小型ロボットの総重量の１〜２割程度を占める。
【００４５】
このようなバッテリ・パックを、ロボットの下肢ではなく上体に取り付けることによって、ロボット全体の重心位置を上方に移動させ、倒立振子とみなした動歩行制御が容易になる（倒立振子は、転倒方向に支持点を強く加速することで姿勢回復を図ることができる）。さらに、バッテリ・パックをＺ軸方向に可変に取り付けることにより、歩行、走行、ダンスなどさまざまな運動パターンに順応した重心位置を設定・再設定することが可能となる。
【００４６】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００４７】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施例を詳解する。
【００４８】
図１及び図２には本発明の実施に供される人間形又は人間型ロボット１００を前方及び後方の各々から眺望した様子を示している。さらに、図３には、この人間型ロボット１００が具備する関節自由度構成を模式的に示している。
【００４９】
図３に示すように、人間型ロボット１００は、２本の腕部と頭部１を含む上体と、移動動作を実現する２本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成される。
【００５０】
頭部１を支持する首関節は、首関節ヨー軸２と、首関節ピッチ軸３と、首関節ロール軸４という３自由度を有している。
【００５１】
また、各腕部は、肩関節ピッチ軸８と、肩関節ロール軸９と、上腕ヨー軸１０と、肘関節ピッチ軸１１と、前腕ヨー軸１２と、手首関節ピッチ軸１３と、手首関節ロール軸１４と、手部１５とで構成される。手部１５は、実際には、複数本の指を含む多関節・多自由度構造体である。但し、手部１５の動作はロボット１００の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書ではゼロ自由度と仮定する。したがって、各腕部は７自由度を有するとする。
【００５２】
また、体幹部は、体幹ピッチ軸５と、体幹ロール軸６と、体幹ヨー軸７という３自由度を有する。
【００５３】
また、下肢を構成する各々の脚部は、股関節ヨー軸１６と、股関節ピッチ軸１７と、股関節ロール軸１８と、膝関節ピッチ軸１９と、足首関節ピッチ軸２０と、あくび関節ロール軸２１と、足部（足底）２２とで構成される。股関節ピッチ軸１７と股関節ロール軸１８の交点は、本実施例に係るロボット１００の股関節位置を定義するものとする。人体の足部（足底）２２は、実際には多関節・多自由度の足底を含んだ構造体であるが、本実施例に係る人間型ロボット１００の足底はゼロ自由度とする。したがって、各脚部は６自由度で構成される。
【００５４】
以上を総括すれば、本実施例に係る人間型ロボット１００全体としては、合計で３＋７×２＋３＋６×２＝３２自由度を有することになる。但し、エンターティンメント向けの人間型ロボット１００が必ずしも３２自由度に限定される訳ではない。設計・製作上の制約条件や要求仕様等に応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【００５５】
上述したような人間型ロボット１００が持つ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定構造体に対して姿勢制御を行うことなどの要請から、アクチュエータは小型且つ軽量であることが好ましい。本実施例では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載することとした。なお、この種のＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特願平１１−３３３８６号明細書に開示されている。
【００５６】
図４には、人間型ロボット１００の制御システム構成を模式的に示している。同図に示すように、人間型ロボット１００は、ヒトの四肢を表現した各機構ユニット３０，４０，５０Ｒ／Ｌ，６０Ｒ／Ｌと、各機構ユニット間の協調動作を実現するための適応制御を行う制御ユニット８０とで構成される（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下同様）。
【００５７】
人間型ロボット１００全体の動作は、制御ユニット８０によって統括的に制御される。制御ユニット８０は、ＣＰＵ（Ｃｅｎｔｒａｌ  ＰｒｏｃｅｓｓｉｎｇＵｎｉｔ）チップやメモリ・チップ等の主要回路コンポーネント（図示しない）で構成される主制御部８１と、電源装置やロボット１００の各構成要素とのデータやコマンドの授受を行うインターフェース（いずれも図示しない）などを含んだ周辺回路８２とで構成される。
【００５８】
本実施例では、電源装置は、ロボット１００を自立的に駆動するためのバッテリを含んだ構成（図４には図示しない）となっている。自立駆動型であれば、人間型ロボット１００の物理的な行動半径は、電源ケーブルによる制限を受けず、自由に歩行することができる。また、歩行やその他の上肢を含めた各種の運動時に、電源ケーブルとの干渉を考慮する必要がなくなり、動作制御が容易になる。
【００５９】
また、本実施例では、バッテリは、各アクチュエータＡ2，Ａ3…のインラッシュ電流を供給可能な、ニッケル・カドミウム電池セルなどで構成される。このため、電源装置は、ロボット１００全体の１〜２割程度の重量を占める。
【００６０】
重量物である電源装置をロボット１００上半身、すなわち股関節より上方に配設することで、ロボット１００の重心位置をその上半身に設定した点は、特筆に価する。何故ならば、動歩行などの動作中は、ロボット１００という構造体をいわゆる倒立振子とみなして制御することが可能となるからである。倒立振子は、転倒方向に支持点を強く加速することで姿勢回復を図ることができる。歩行系においては、目標ＺＭＰを転倒方向に強く加速することに相当する。倒立振子制御を行う場合、ロボットの重心位置はむしろ高い方が、重心バランスを失ってから転倒するまでの時間すなわち倒立振子の周期が長いため、歩行制御の安定化には有利である。
【００６１】
図３に示したロボット１００内の各関節自由度は、それぞれに対応するアクチュエータによって実現される。すなわち、頭部ユニット３０には、首関節ヨー軸２、首関節ピッチ軸３、首関節ロール軸４の各々を表現する首関節ヨー軸アクチュエータＡ2、首関節ピッチ軸アクチュエータＡ3、首関節ロール軸アクチュエータＡ4が配設されている。
【００６２】
また、体幹部ユニット４０には、体幹ピッチ軸５、体幹ロール軸６、体幹ヨー軸７の各々を表現する体幹ピッチ軸アクチュエータＡ5、体幹ロール軸アクチュエータＡ6、体幹ヨー軸アクチュエータＡ7が配備されている。
【００６３】
また、腕部ユニット５０Ｒ／Ｌは、上腕ユニット５１Ｒ／Ｌと、肘関節ユニット５２Ｒ／Ｌと、前腕ユニット５３Ｒ／Ｌに細分化されるが、肩関節ピッチ軸８、肩関節ロール軸９、上腕ヨー軸１０、肘関節ピッチ軸１１、肘関節ロール軸１２、手首関節ピッチ軸１３、手首関節ロール軸１４の各々を表現する肩関節ピッチ軸アクチュエータＡ8、肩関節ロール軸アクチュエータＡ9、上腕ヨー軸アクチュエータＡ10、肘関節ピッチ軸アクチュエータＡ11、肘関節ロール軸アクチュエータＡ12、手首関節ピッチ軸アクチュエータＡ13、手首関節ロール軸アクチュエータＡ14が配備されている。
【００６４】
また、脚部ユニット６０Ｒ／Ｌは、大腿部ユニット６１Ｒ／Ｌと、膝ユニット６２Ｒ／Ｌと、脛部ユニット６３Ｒ／Ｌに細分化されるが、股関節ヨー軸１６、股関節ピッチ軸１７、股関節ロール軸１８、膝関節ピッチ軸１９、足首関節ピッチ軸２０、足首関節ロール軸２１の各々を表現する股関節ヨー軸アクチュエータＡ16、股関節ピッチ軸アクチュエータＡ17、股関節ロール軸アクチュエータＡ18、膝関節ピッチ軸アクチュエータＡ19、足首関節ピッチ軸アクチュエータＡ20、足首関節ロール軸アクチュエータＡ21が配備されている。
【００６５】
各アクチュエータＡ2，Ａ3…は、より好ましくは、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニット内に搭載したタイプの小型ＡＣサーボ・アクチュエータ（前述）である。
【００６６】
頭部ユニット３０、体幹部ユニット４０、腕部ユニット５０、各脚部ユニット６０などの各機構ユニット毎に、アクチュエータ駆動制御用の副制御部３５，４５，５５，６５が配備されている。さらに、各脚部６０Ｒ，Ｌの足底が着床したか否かを検出する接地確認センサ９１及び９２を装着するとともに、体幹部ユニット４０内には、姿勢を計測する姿勢センサ９３を装備している。これら各センサ９１〜９３の出力により、足底２２の着床及び離床期間、体幹部分の傾きなどを検出して、制御目標をダイナミックに補正することができる。
【００６７】
主制御部８０は、各センサ９１〜９３の出力に応答して副制御部３５，４５，５５，６５に対して適応的な制御を行い、人間型ロボット１００の上肢、体幹、及び下肢の協調した動作を実現する。主制御部８１は、ユーザ・コマンド等に従って、足部運動、ＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）軌道、体幹運動、上肢運動、腰部高さなどを設定するとともに、これらの設定内容に従った動作を指示するコマンドを各副制御部３５，４５，５５，６５に転送する。
【００６８】
そして、各々の副制御部３５，４５…では、主制御部８１からの受信コマンドを解釈して、各アクチュエータＡ2，Ａ3…に対して駆動制御信号を出力する。ここで言う「ＺＭＰ」とは、歩行中の床反力によるモーメントがゼロとなる床面上の点のことであり、また、「ＺＭＰ軌道」とは、例えばロボット１００の歩行動作期間中などにＺＭＰが動く軌跡を意味する。
【００６９】
次に、上述した人間型ロボット１００における、バッテリの位置調整機構について説明する。図５には、バッテリの位置調整機構に関する第１の例を図解している。
【００７０】
図示のバッテリ位置調整機構２００は、ロボット１００の上半身部分に取り付けられており、好ましくは体幹部ユニット４０内に収容されている。
【００７１】
バッテリ・パック２１０は、例えばニッケル・カドミウム電池セル数本〜数十本からなり、数キログラム程度の重量を持つ。このバッテリ・パック２１０は、バッテリ・パック搭載板２１５の上に固設されている。
【００７２】
バッテリ・パック搭載板２１５の左右略両端には、それぞれ長穴２２１ａ，２２１ｂ、及び長穴２２１ｃ，２２１ｄが形設されている。図５に示すように各長穴２２１ａ…に螺子を貫挿させることにより、バッテリ・パック搭載板２１５の左右端にＬ字板２０３Ａ及び２０３Ｂを固定することができる。このとき、各長穴２２１ａ…は、Ｘ軸すなわちロボット１００のロール軸方向に伸びるので、Ｌ字板２０３Ａ，２０３Ｂに対するバッテリ搭載板２１５のＸ軸方向設置位置を、長穴２２１ａ…の長軸寸法の範囲内で調整することができる。
【００７３】
他方、一対の支持板２０１Ａ及び２０１Ｂは、一対の連結板２０５Ａ及び２０５Ｂを介して所定間隔を保って連結されている。図５には示していないが、支持板２０１Ａ，２０１Ｂは、ロボット１００の体幹ユニット４０に一体的に取り付けられている（若しくは体幹ユニット４０の一部を形成する）ものと理解されたい。
【００７４】
各支持板２０１Ａ，２０１Ｂには、それぞれ４個の長穴２２５ａ〜２２５ｄが形設されており、各長穴に螺子を貫挿させることにより、Ｌ字板２０３Ａ，２０３Ｂを固定することができる。このとき、各長穴２２５ａ…は、Ｚ軸すなわちロボット１００のヨー軸方向に伸びるので、支持板２０１Ａ，２０１Ｂに対するＬ字板２０３Ａ，２０３ＢのＺ軸方向設置位置を、長穴２２５ａ…の長軸寸法の範囲内で調整することができる。
【００７５】
以上を要約すれば、支持板２０１Ａ，２０１Ｂすなわち体幹ユニット４０に対するバッテリ・パック２１０の搭載位置をＸ軸及びＺ軸の各方向で調整することができる。バッテリ・パック２１０は、ロボット１００の総重量の数パーセント乃至数十パーセントを占めるので、該搭載位置の調整により、ロボット１００の重心位置を設定することができるという点を理解されたい。
【００７６】
また、図６には、バッテリの位置調整機構に関する第２の例を図解している。以下、同図を参照しながら説明する。但し、図示のバッテリ位置調整機構３００は、ロボット１００の上半身部分に取り付けられており、好ましくは体幹部ユニット４０内に収容されているものと理解されたい（同上）。
【００７７】
バッテリ・パック３１０は、例えばニッケル・カドミウム電池セル数本〜数十本からなり、数キログラム程度の重量を持つ。このバッテリ・パック２１０は、バッテリ・パック搭載板３１５の上に固設されている。
【００７８】
図示の通り、バッテリ・パック搭載位置３１５は、４本のガイド・レール３２１ａ〜３２１ｂによってＺ軸方向の移動が規制されている。これらガイド・レール３２１ａ〜３２１ｂは、対向する一対の支持板３４１及び３４２に取り付けられている。支持板３４１，３４２は、ロボット１００の体幹ユニット４０に一体的に取り付けられている（若しくは体幹ユニット４０の一部を形成する）ものと理解されたい。
【００７９】
また、バッテリ・パック搭載位置３１５は、ボール螺子３３１を貫挿させた軸受３３２を備えている。したがって、駆動モータ３３３によってボール螺子３３１を回転させることにより、バッテリ・パック支持板３１５すなわちバッテリ・パック３１０のＺ軸方向位置を移動させることができる。駆動モータ３３３の駆動制御は、例えば主制御部８０において行われる。
【００８０】
バッテリ・パック３１０は、ロボット１００の総重量の数パーセント乃至数十パーセントを占める（同上）ので、駆動モータ３３３を用いて該搭載位置を調整することにより、ロボット１００の重心位置を動的に設定・再設定することができるという点を理解されたい。
【００８１】
図５又は図６に示すようなバッテリ位置調整機構によれば、上半身に重心を持つ人間型ロボット１００の重心位置をさらに適応的に制御することができる。但し、最適な重心位置は、ロボット１００が行う全身運動パターン（例えば、「歩く」、「走る」、「飛び跳ねる」、「ダンスする」など）に応じて決定される。以下では、重心位置（言い換えればバッテリの搭載位置）の決定方法について説明する。
【００８２】
図７には、ロボット１００の重心位置（バッテリの搭載位置）を決定するための処理手順をフローチャートの形式で示している。以下、このフローチャートの各ステップについて説明する。
【００８３】
まず、ロボット１００のＺ軸（ヨー軸）及びＸ軸（ロール軸）方向の重心位置を設定する（ステップＳ１１）とともに、ロボット１００の目標全身運動パターンを設定する（ステップＳ１２）。
【００８４】
［従来の技術］の欄でも既に述べたように、ロボット１００は、トルク重量比の大きいアクチュエータＡ2，Ａ3…と、比較的軽量な構造部材とで構成されるので、質量の大半はアクチュエータに集中する。但し、各アクチュエータは関節自由度に相当し、設置場所はほぼ固定となるので重心位置の調整に利用することはできない。したがって、ここで言うステップＳ１１で言う重心位置の設定は、バッテリ・パックの搭載位置を設定することと略同義である。バッテリ・パックのＺ軸及びＸ軸方向の搭載位置を調整可能であることは、図５又は図６を参照しながら既に説明した通りである。
【００８５】
また、目標全身運動パターンとは、「歩く」、「走る」、「飛び跳ねる」、「ダンスする」などの運動パターンのことであり、例えば、ティーチング・プレイバックやオフライン教示などの方式により、ロボット１００の主制御部８０に入力される。
【００８６】
次いで、ステップＳ１３では、先行ステップＳ１１において設定されたバッテリ・パックの搭載位置を基にして、ロボット１００の現在における質量分布データの算出を行う。このステップで求められた質量分布データは、後続のステップＳ１６などの計算処理等において利用される。また、質量分布データは、ロボット１００の多質点近似モデルを用いて算出することができるが、この点は後に詳解する。
【００８７】
次いで、ステップＳ１４では、運動パターンの実現のためにロボット１００の各関節において必要とされる運動性能を算出する。ここで言う運動性能には、関節の可動角、最大トルク、最大速度などが含まれる。
【００８８】
但し、各関節で使用されるアクチュエータＡ2，Ａ3…には、許容運動性能又は定格運動性能が規定されている。ステップＳ１４において求められた必要運動性能が、許容運動性能を越える場合には、判断ブロックＳ１５の分岐Ｎｏに抜けて、ロボット１００の重心位置（すなわちバッテリ・パックの搭載位置）を再設定してから（ステップＳ２１）、上記と同様の処理を繰り返し実行する。
【００８９】
次いで、ステップＳ１６では、先行ステップＳ１２にて入力された目標全身運動パターンを用いて、ロボット１００の全身運動パターンを算出する。該全身運動パターンは、例えばロボット１００の多質点近似モデルを用いて算出することができるが、詳細については後述に譲る。
【００９０】
次いで、判断ブロックＳ１７では、算出された全身運動パターンが、各関節すなわちアクチュエータ等の許容運動性能の範囲内で実現可能か否かを判断する。許容運動性能を逸脱する場合には、該判断ブロックの分岐Ｎｏに抜けて、ロボット１００の重心位置（すなわちバッテリ・パックの搭載位置）を再設定してから（ステップＳ２１）、上記と同様の処理を繰り返し実行する。
【００９１】
次いで、ステップＳ１８では、目標全身運動パターンと算出全身運動パターンとの誤差Ｅを算出する。
【００９２】
そして、判断ブロックＳ１９では、この誤差Ｅが許容範囲内か否かを判断する。許容範囲を逸脱する場合には、該判断ブロックの分岐Ｎｏに抜けて、ロボット１００の重心位置（すなわちバッテリ・パックの搭載位置）を再設定してから（ステップＳ２１）、上記と同様の処理を繰り返し実行する。
【００９３】
他方、誤差Ｅが許容範囲内であれば、設定された重心位置をロボット１００の最適な重心位置として出力し（ステップＳ２１）、当該処理ルーチン全体を終了する。
【００９４】
このようにして求められたロボット１００の最適な重心位置に基づいて、バッテリ・パックの最適な搭載位置を逆算することができる。この逆算された結果に従って、バッテリ・パックの位置を調整すればよい。該位置調整機構については、図５又は図６を参照されたい。
【００９５】
次いで、図７に示したフローチャートのステップＳ１３における質量分布データの算出処理について詳解する。
【００９６】
力学等の分野において既に周知のように、構造物の重心位置Ｒは、以下の式で算出することができる（但し、同式中で、ρ（ｘ，ｙ，ｚ）は点（ｘ，ｙ，ｚ）における重量密度を指す）。
【００９７】
【数１】
0004540156.tif 000002
【００９８】
厳密解を求める上では、ロボット１００を質点系ではなく剛体系として厳密にモデリングすることが好ましいが、その分だけ計算時間を要する。他方、ロボット１００は、トルク重量比の大きいアクチュエータと軽量の構造部材を使用している結果として、その質量の大半はアクチュエータすなわち関節部分に集中する。したがって、ロボット１００を多質点近似モデルとして扱っても、ほとんど支障がない（多質点近似モデルの詳細に関しては、後述に譲る）。
【００９９】
図８には、多質点近似モデルを用いた場合における質量分布データの算出処理手順の詳細をフローチャートの形式で示している。このフローチャート全体で、前述のステップＳ１３を構成するものと理解されたい。以下、このフローチャートの各ステップについて説明する。
【０１００】
まず、ステップＳ３１では、ロボット１００の全軸角度情報、全関節配置情報、及び全質点配置情報を入力する。これらの角度情報や配置情報は、ロボット１００の設計仕様によって定まる静的・固定的なデータであり、例えばロボット１００の設計時に作成したＣＡＤデータベースから供給を受けることができる。
【０１０１】
次いで、ステップＳ３２では、ロボット１００の左右股関節の中点を原点に設定した場合における、全関節位置情報、及び全質点位置情報を算出する。
【０１０２】
次いで、ステップＳ３３では、原点と左右各々の足底平面までの距離を算出し、判断ブロックＳ３４では、左右の足底平面のうちどちらが原点から離れているかを判断する。本実施例では、原点から離れている方の足底が、現在着床している足であるとする。
【０１０３】
右足底平面の方が離れている場合には、右足底平面がＸ−Ｙ平面となるように全質点位置を座標変換し（ステップＳ３５Ｒ）、他方、左足底平面の方が離れている場合には、左足底平面がＸ−Ｙ平面となるように全質点位置を座標変換する（ステップＳ３５Ｌ）。
【０１０４】
このように座標変換した後、全質点における質量と位置とから、ロボット１００の重心位置を算出することができる（ステップＳ３６）。
【０１０５】
図８において算出された重心位置の例を図９に示しておくので参照されたい。同図の例では、ロボット１００の重心位置は、腰部すなわち下肢よりも上方に設定されているので、ロボット１００を倒立振子とみなして動歩行時の安定姿勢制御を好適に行うことができる。倒立振子は、転倒方向に支持点を強く加速することで姿勢回復を図ることができる。歩行系においては、目標ＺＭＰを転倒方向に強く加速することに相当する。倒立振子制御を行う場合、ロボットの重心位置はむしろ高い方が、重心バランスを失ってから転倒するまでの時間すなわち倒立振子の周期が長いため、歩行制御の安定化には有利である。
【０１０６】
次いで、図７に示したフローチャートのステップＳ１６におけるロボット１００の全身運動パターンの算出処理について詳解する。ロボット１００は、通常動作する前に予め定められた全身運動パターンに従って各関節すなわちアクチュエータＡ2，Ａ3…を駆動制御することによって、所定の動作を実現するようになっている。
【０１０７】
ロボット１００自体は、無限すなわち連続的な質点の集合体である。但し、本実施例では、ロボット１００を有限数で離散的な質点からなる近似モデルに置き換えることにより、全身運動パターン算出の計算量の削減を図っている。ロボット１００は、トルク重量比の大きいアクチュエータと軽量の構造部材を使用している結果として、その質量の大半はアクチュエータすなわち関節部分に集中するので、多質点近似モデルとして扱っても、ほとんど支障がない
【０１０８】
図１０には、全身運動パターン算出のために導入される、ロボット１００の非干渉多質点近似モデルを図解している。
【０１０９】
図１０において、Ｏ−ＸＹＺ座標系は絶対座標系におけるロール、ピッチ、ヨー各軸を表し、また、Ｏ’−Ｘ’Ｙ’Ｚ’座標系はロボット１００とともに動く運動座標系におけるロール、ピッチ、ヨー各軸を表している。同図に示す多質点モデルでは、ｉはｉ番目に与えられた質点を表す添え字であり、ｍiはｉ番目の質点の質量、ｒ’iはｉ番目の質点の位置ベクトル（但し運動座標系）を表すものとする。また、後述する腰部運動制御において特に重要な腰部質点の質量はｍh、その位置ベクトルはｒ’h（ｒ’hx，ｒ’hy，ｒ’hz）とし、また、ＺＭＰの位置ベクトルをｒ’zmpとする。
【０１１０】
図１０に示す非厳密の非干渉多質点近似モデルにおいては、モーメント式は線形方程式の形式で記述され、該モーメント式はピッチ軸及びロール軸に関して干渉しない、という点を充分理解されたい。
【０１１１】
このような多質点近似モデルは、概ね以下の処理手順により生成することができる。
【０１１２】
（１）ロボット１００全体の質量分布を求める。
（２）ロボット１００を複数の領域に分割する。領域は質点を設定するためのものである。領域の分割方法は、設計者のマニュアル入力であっても、所定の規則に従った自動生成のいずれでも構わない。
（３）各領域ｉ毎に、重心を求め、その重心位置と質量ｍiを該当する質点に付与する。
（４）各質点ｍiを、質点位置ｒiを中心とし、その質量に比例した半径に持つ球体として表示する。
（５）現実に連結関係のある質点すなわち球体同士をワイヤーで連結する。
【０１１３】
多質点近似モデルは、言わば、ワイヤフレーム・モデルの形態でロボットを表現したものである。本実施例では、図１０を見ても判るように、この多質点近似モデルは、両肩、両肘、両手首、体幹、腰部、及び、両足首の各々を質点として設定したものである。
【０１１４】
なお、図１０に示す多質点モデルの腰部情報における各回転角（θhx，θhy，θhz）は、人間型ロボット１００における腰部の姿勢すなわちロール、ピッチ、ヨー軸の回転を規定するものである（図１１には、多質点モデルの腰部周辺の拡大図を示しているので、確認されたい）。
【０１１５】
図１２には、ロボット１００の全身運動パターンを算出するための処理手順をフローチャートの形式で示している。但し、以下では、図１０に示すような線形・非干渉多質点近似モデルを用いてロボット１００の各関節位置や動作を記述するものとし、且つ、計算に際し以下のようなパラメータを用いることとする。但し、ダッシュ（´）付きの記号は運動座標系を記述するものと理解されたい。
【０１１６】
【数２】
0004540156.tif 000003
【０１１７】
また、ロボット１００の腰部高さが一定（ｒ’hz＋ｒqz＝ｃｏｎｓｔ）で、且つ、膝部質点がゼロであることを前提とする。
【０１１８】
本実施例に係るロボット１００の場合、任意の足部運動パターン、ＺＭＰ軌道、体幹運動パターン、上肢運動パターン等に基づいて、安定歩行を可能とする腰部運動パターンを生成するようになっている。ここで言うＺＭＰ（Ｚｅｒｏ  Ｍｏｍｅｎｔ  Ｐｏｉｎｔ）軌道とは、歩行ロボットにおいて、足底（若しくは足裏）をある一点で床面に固定したとき、歩行動作中にモーメントが発生しないような点すなわちＺＭＰの軌道ことを言う（前述）。
【０１１９】
本実施例のように片足が６自由度を持つ２足歩行型ロボット（図３を参照のこと）の場合、各足部２２Ｒ／Ｌの位置と腰部の水平位置及び高さによって両脚の姿勢が一意に定まる。したがって、腰部運動パターンを生成することは、脚の姿勢すなわち下肢の「歩容」を決定することに他ならない（「歩容」とは、当業界において「関節角度の時系列変化」を意味する技術用語である）。
【０１２０】
まず、ステップＳ４１では、ステップＳ１２において設定された目標全身運動パターンに基づいて、足部（より具体的には足底）運動、足部運動から導出されるＺＭＰ軌道、体幹運動、上肢運動、腰部の姿勢や高さなど、各部の駆動・動作を実際に決定するためのパターンが設定される。より具体的には、まず足部運動パターン、次いでＺＭＰ軌道、体幹運動パターン、そして上肢運動パターンを設定する。また、腰部の運動に関しては、Ｚ’方向のみ設定し、Ｘ’及びＹ’の各方向については未知とする。
【０１２１】
次に、線形・非干渉多質点近似モデルを用いて、足部、体幹、そして上肢運動により発生する設定ＺＭＰ上でのピッチ軸、ロール軸まわりの各モーメント（Ｍx，Ｍy）を算出する（ステップＳ４２）。
【０１２２】
次いで、線形・非干渉多質点近似モデルを用いて、腰部水平面内運動（ｒ’hx，ｒ’hy）によって発生する設定ＺＭＰ上でのモーメントを算出する（ステップＳ４３）。
【０１２３】
次いで、設定ＺＭＰ上におけるモーメントに関する釣り合い式を、ロボットとともに動く運動座標系Ｏ’−Ｘ’Ｙ’Ｚ’上で導出する（ステップＳ４４）。より具体的には、足部、体幹、そして上肢運動により発生するモーメント（Ｍx，Ｍy）を既知変数の項として右辺に、腰部質点の水平運動に関する項（ｒhx，ｒhy）を未知変数の項として左辺にまとめ、下式に示すような線形・非干渉なＺＭＰ方程式（１）を導出する。
【０１２４】
【数３】
0004540156.tif 000004
【０１２５】
但し、以下が成立するものとする。
【０１２６】
【数４】
0004540156.tif 000005
【０１２７】
次いで、上記のＺＭＰ方程式（１）を解いて、腰部水平面内軌道を算出する（ステップＳ４５）。例えば、オイラー法やルンゲ・クッタ法などの数値的解法（周知）を用いてＺＭＰ方程式（１）を解くことで、未知変数としての腰部の水平絶対位置（ｒ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）を修正して（ステップＳ７１）、再びフーリエ級数展開して、許容値ε未満に収束するまで、腰部運動パターンの近似解の算出と修正を繰り返し実行する。
【０１４２】
図１６には、ロボット１００の重心位置（バッテリの搭載位置）を決定する処理手順の他の例をフローチャートの形式で示している。以下、このフローチャートの各ステップについて説明する。
【０１４３】
まず、ステップＳ８１では、ロボット１００のＺ軸方向重心位置の存在可能範囲を算出する。
【０１４４】
ロボット１００の重心位置の可動範囲はバッテリ・パックの搭載位置によって決定されることは既に述べた通りである。例えは図５に示す例では、長穴２２５ａ〜２２５ｄの長軸寸法によってＺ軸方向の存在範囲が決定される。また、図６に示す例では、ボール螺子３３１のストローク範囲に応じて重心位置のＺ軸方向の存在範囲が決定される。
【０１４５】
次いで、ステップＳ８２では、先行ステップＳ８１において求められた存在可能なＺ軸方向の重心位置の各々において、ロボット１００の最大歩行速度と最小基本パターン数を算出する。
【０１４６】
次いで、ステップＳ８３では、最大歩行速度と最小基本パターン数で構成される評価関数を基にして、各Ｚ軸方向重心位置における評価値を算出する。
【０１４７】
次いで、ステップＳ８４では、評価値が最も低くなるようなＺ軸方向重心位置を選択して、これをロボット１００の最適なＺ軸方向重心位置として出力する（ステップＳ８５）。
【０１４８】
このようにして求められたロボット１００の最適な重心位置に基づいて、バッテリ・パックの最適な搭載位置を逆算することができる。この逆算された結果に従って、バッテリ・パックの位置を調整すればよい。該位置調整機構については、図５又は図６を参照されたい。
【０１４９】
［追補］
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１５０】
なお、本発明の要旨を判断する上で、２足歩行のロボット１００についての関節等の呼び名は、図３を厳格に適用するのは妥当ではなく、現実のヒトやサルなどの２足直立歩行動物の身体メカニズムとの対比により柔軟に解釈されたい。
【０１５１】
参考のため、人間型ロボットの関節モデル構成を図１４に図解しておく。同図に示す例では、肩関節５から上腕、肘関節６、前腕、手首７及び手部８からなる部分を「上肢」と呼ぶ。また、肩関節５から股関節１１までの範囲を「体幹部」と呼び、ヒトの胴体に相当する。また、体幹部のうち特に股関節１１から体幹関節１０までの範囲を「腰部」と呼ぶ。体幹関節１０は、ヒトの背骨が持つ自由度を表現する作用を有する。また、股関節１１より下の大腿部１２、膝関節１４、下腿部１３、足首１５及び足部１６からなる部分を「下肢」と呼ぶ。一般には、股関節より上方を「上体」と呼び、それより下方を「下体」と呼ぶ
【０１５２】
また、図１５には、人間型ロボットの他の関節モデル構成を図解している。同図に示す例は、体幹関節１０を有しない点で図１４に示した例とは相違する。各部の名称については図を参照されたい。背骨に相当する体幹関節が省略される結果として人間型ロボットの上体の動きは表現力を失う。但し、危険作業やなお作業の代行など、産業目的の人間型ロボットの場合、上体の動きを要しない場合がある。なお、図１４及び図１５で用いた参照番号は、それ以外の図面とは一致しない点を理解されたい。
【０１５３】
【発明の効果】
以上詳記したように、本発明によれば、例えばヒトやサルなどの直立歩行型の身体メカニズムや動作を模した構造を有する、優れた脚式移動型ロボットを提供することができる。
【０１５４】
また、本発明によれば、２足直立歩行による脚式移動を行うとともに下肢の上には体幹や上肢、頭部などのいわゆる上半身が搭載されてなり、歩行運動や、その他体幹や上肢などを含んだ全身協調運動時において好適な重心位置を設定することができる、優れた直立歩行・脚式移動型ロボットを提供することができる。
【図面の簡単な説明】
【図１】本発明の実施に供される人間型ロボット１００を前方から眺望した様子を示た図である。
【図２】本発明の実施に供される人間型ロボット１００を後方から眺望した様子を示た図である。
【図３】本実施例に係る人間型ロボット１００が具備する自由度構成モデルを模式的に示した図である。
【図４】本実施例に係る人間型ロボット１００の制御システム構成を模式的に示した図である。
【図５】バッテリの位置調整機構に関する第１の例を示した図である。
【図６】バッテリの位置調整機構に関する第２の例を示した図である。
【図７】ロボット１００の重心位置（バッテリの搭載位置）を決定するための処理手順を示したフローチャートである。
【図８】多質点近似モデルを用いた場合の質量分布データの算出処理手順を示したフローチャートである。
【図９】図８に示すフローチャートに従って算出されたロボット１００の重心位置を例示した図である。
【図１０】全身運動パターン算出のために導入される、ロボット１００の非干渉多質点近似モデルを示した図である。
【図１１】図１０に示したロボット１００の多質点近似モデルにおける腰部周辺の拡大図である。
【図１２】ロボット１００の全身運動パターンを算出するための処理手順を示したフローチャートである。
【図１３】ロボット１００の全身運動パターンを算出するための処理手順の他の例を示したフローチャートである。
【図１４】人間型ロボットについての関節モデル構成の一例を模式的に示した図である。
【図１５】人間型ロボットについての関節モデル構成の他の例を模式的に示した図である。
【図１６】ロボット１００の重心位置（バッテリの搭載位置）を決定する処理手順の他の例を示したフローチャートである。
【符号の説明】
１…頭部，２…首関節ヨー軸
３…首関節ピッチ軸，４…首関節ロール軸
５…体幹ピッチ軸，６…体幹ロール軸
７…体幹ヨー軸，８…肩関節ピッチ軸
９…肩関節ロール軸，１０…上腕ヨー軸
１１…肘関節ピッチ軸，１２…前腕ヨー軸
１３…手首関節ピッチ軸，１４…手首関節ロール軸
１５…手部，１６…股関節ヨー軸
１７…股関節ピッチ軸，１８…股関節ロール軸
１９…膝関節ピッチ軸，２０…足首関節ピッチ軸
２１…足首関節ロール軸，２２…足部（足底）
３０…頭部ユニット，４０…体幹部ユニット
５０…腕部ユニット，５１…上腕ユニット
５２…肘関節ユニット，５３…前腕ユニット
６０…脚部ユニット，６１…大腿部ユニット
６２…膝関節ユニット，６３…脛部ユニット
８０…制御ユニット，８１…主制御部
８２…周辺回路
９１，９２…接地確認センサ
９３…姿勢センサ
１００…人間型ロボット
【図１】
0004540156.tif 000006
【図２】
0004540156.tif 000007
【図３】
0004540156.tif 000008
【図４】
0004540156.tif 000009
【図５】
0004540156.tif 000010
【図６】
0004540156.tif 000011
【図７】
0004540156.tif 000012
【図８】
0004540156.tif 000013
【図９】
0004540156.tif 000014
【図１０】
0004540156.tif 000015
【図１１】
0004540156.tif 000016
【図１２】
0004540156.tif 000017
【図１３】
0004540156.tif 000018
【図１４】
0004540156.tif 000019
【図１５】
0004540156.tif 000020
【図１６】
0004540156.tif 000021