(57)【特許請求の範囲】
【請求項１】
少なくとも上体と、前記上体に関節を介して連結される複数本の脚部リンクとからなる脚式移動ロボットの歩容生成装置において、
ａ．少なくとも１歩分の歩容について、それぞれ床反力に関するパラメータを含むパラメータの集合からなる複数種の標準歩容を記憶する標準歩容記憶手段、
ｂ．歩容に関する要求を行う歩容要求手段、
および
ｃ．前記歩容に関する要求に対して前記標準歩容を１個から複数個選択し、前記選択した標準歩容を基に近似演算を行うことにより、前記歩容に関する要求を満足する近似歩容を生成する歩容生成手段、
を備えたことを特徴とする脚式移動ロボットの歩容生成装置。
【請求項２】
前記歩容生成手段は、前記選択した歩容を加重平均して前記近似歩容を求めることを特徴とする請求項１項記載の脚式移動ロボットの歩容生成装置。
【請求項３】
前記歩容生成手段は、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求めることを特徴とする請求項１項記載の脚式移動ロボットの歩容生成装置。
【請求項４】
前記歩容生成手段は、前記選択した歩容を加重平均すると共に、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求めることを特徴とする請求項１項記載の脚式移動ロボットの歩容生成装置。
【請求項５】
前記歩容生成手段は、
ｄ．前記標準歩容の少なくとも１個についてその単位変更量当たりの他のパラメータの変更量を前記歩容のパラメータ感度として求めて記憶する記憶手段、
を備え、前記記憶された歩容のパラメータ感度を用いて前記近似歩容を求めることを特徴とする請求項３項または４項記載の脚式移動ロボットの歩容生成装置。
【請求項６】
前記標準歩容生成手段は、
ｅ．前記標準歩容の床反力に関するパラメータに対するその他のパラメータの摂動の関係を表現する表現手段、
を備え、前記表現された摂動の関係に基づいて前記近似歩容を補正し、境界条件において少なくとも変位および速度が連続するように前記歩容に関する要求を満足する歩容を生成することを特徴とする請求項１項から５項のいずれかに記載の脚式移動ロボットの歩容生成装置。
【請求項７】
前記その他のパラメータの摂動が上体の水平位置の摂動であることを特徴とする請求項６項記載の脚式移動ロボットの歩容生成装置。
【請求項８】
前記関係が線形モデルで表現されることを特徴とする請求項６項または７項記載の脚式移動ロボットの歩容生成装置。
【請求項９】
前記関係が倒立振子モデルで表現されることを特徴とする請求項８項記載の脚式移動ロボットの歩容生成装置。
【請求項１０】
前記関係が時系列値で表現されることを特徴とする請求項６項または７項記載の脚式移動ロボットの歩容生成装置。
【請求項１１】
前記歩容生成手段は、前記床反力に関するパラメータが所定の条件にあるときは、そのパラメータを除外して前記近似歩容を求めることを特徴とする請求項１項から１０項のいずれかに記載の脚式移動ロボット歩容生成装置。
【請求項１２】
前記歩容生成手段は、
ｆ．前記生成された歩容に基づいて前記ロボットの関節角度を算出する関節角度算出手段、
および
ｇ．算出された関節角度となるように前記ロボットの関節を駆動制御する関節駆動制御手段、
を備えることを特徴とする請求項１項から１１項のいずれかに記載の脚式移動ロボットの歩容生成装置。
【請求項１３】
前記関節角度決定手段は、
ｈ．前記ロボットの状態量を検出する検出手段、
および
ｉ．検出された状態量に基づいて前記ロボットの位置および姿勢を修正する修正手段、
を備え、前記関節角度算出手段は、修正された位置および姿勢となるように前記ロボットの関節角度を算出することを特徴とする請求項１２項記載の脚式移動ロボットの歩容生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、脚式移動ロボットの歩容生成装置に関し、より詳しくは脚式移動ロボットにおいてその歩容を自在かつリアルタイムに生成できるようにしたものに関する。
【０００２】
【従来の技術】
従来の脚式移動ロボットにおいて、例えば特開平５−２８５８６８号公報記載の技術に示されるように、直進、方向転換などの種々の歩容を予めオフラインで設計し、設計値をロボットに搭載した制御用マイクロコンピュータのメモリに記憶させておき、歩行時に適当な順で出力して実行することが提案されている。
【０００３】
また、特開昭６２−９７００６号（特公平５−６２３６３号）公報記載の技術も同様に予めオフラインで生成した歩行パターンデータをメモリに記憶させておき、歩行時に出力すると共に、必要に応じて記憶された時系列データ間を時間的に補間して刻み時間を細分化することを提案している。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記した従来技術にあっては、歩容データが予め決められているので、任意の歩幅や旋回角を実現するなど歩容を自在かつリアルタイムに生成することができなかった。
【０００５】
この発明の第１の目的は従来技術の上記した不都合を解消し、脚式移動ロボットにおいて、床反力を含む歩容を自在かつリアルタイムに生成して任意の歩幅や旋回角などを実現できるようにした脚式移動ロボットの歩容生成装置を提供することにある。
【０００６】
この発明の第２の目的は従来技術の上記した不都合を解消し、脚式移動ロボットにおいて歩容を自在かつリアルタイムに生成すると共に、生成された歩容同士の境界においてロボットの各部位の変位および速度が連続であるようにした脚式移動ロボットの歩容生成装置を提供することにある。
【０００７】
この発明の第３の目的は従来技術の上記した不都合を解消し、脚式移動ロボットにおいて、リアルタイムに生成した歩容に基づいて脚式移動ロボットを駆動制御するようにした脚式移動ロボットの歩容生成装置を提供することにある。
【０００８】
【課題を解決するための手段】
上記の第１および第２の目的を達成するために、例えば請求項１項において、少なくとも上体と、前記上体に関節を介して連結される複数本の脚部リンクとからなる脚式移動ロボットの歩容生成装置において、少なくとも１歩分の歩容について、それぞれ床反力に関するパラメータを含むパラメータの集合からなる複数種の標準歩容を記憶する標準歩容記憶手段、歩容に関する要求を行う歩容要求手段、および前記歩容に関する要求に対して前記標準歩容を１個から複数個選択し、前記選択した標準歩容を基に近似演算を行うことにより、前記歩容に関する要求を満足する近似歩容を生成する歩容生成手段を備える如く構成した。
【０００９】
請求項２項にあっては、前記歩容生成手段は、前記選択した歩容を加重平均して前記近似歩容を求める如く構成した。
【００１０】
請求項３項にあっては、前記歩容生成手段は、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求める如く構成した。
【００１１】
請求項４項にあっては、前記歩容生成手段は、前記選択した歩容を加重平均すると共に、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求める如く構成した。
【００１２】
請求項５項にあっては、前記歩容生成手段は、前記標準歩容の少なくとも１個についてその単位変更量当たりの他のパラメータの変更量を前記歩容のパラメータ感度として求めて記憶する記憶手段を備え、前記記憶された歩容のパラメータ感度を用いて前記近似歩容を求める如く構成した。
【００１３】
請求項６項にあっては、前記標準歩容生成手段は、前記標準歩容の床反力に関するパラメータに対するその他のパラメータの摂動の関係を表現する表現手段、を備え、前記表現された摂動の関係に基づいて前記近似歩容を補正し、境界条件において少なくとも変位および速度が連続するように前記歩容に関する要求を満足する歩容を生成する如く構成した。
【００１４】
請求項７項にあっては、前記その他のパラメータの摂動が上体の水平位置の摂動である如く構成した。
【００１５】
請求項８項にあっては、前記関係が線形モデルで表現される如く構成した。
【００１６】
請求項９項にあっては、前記関係が倒立振子モデルで表現される如く構成した。
【００１７】
請求項１０項にあっては、前記関係が時系列値で表現される如く構成した。
【００１８】
請求項１１項にあっては、前記歩容生成手段は、前記床反力に関するパラメータが所定の条件にあるときは、そのパラメータを除外して前記近似歩容を求める如く構成した。
【００１９】
請求項１２項にあっては、前記歩容生成手段は、前記生成された歩容に基づいて前記ロボットの関節角度を算出する関節角度算出手段、および算出された関節角度となるように前記ロボットの関節を駆動制御する関節駆動制御手段を備える如く構成した。
【００２０】
請求項１３項にあっては、前記関節角度決定手段は、前記ロボットの状態量を検出する検出手段、および検出された状態量に基づいて前記ロボットの位置および姿勢を修正する修正手段を備え、前記関節角度算出手段は、修正された位置および姿勢となるように前記ロボットの関節角度を算出する如く構成した。
【００２１】
【作用】
床反力を含む歩容を自在かつリアルタイムに生成して任意の歩幅や旋回角などを実現することができる。また、生成された歩容同士の境界においてロボットの各部位の変位および速度が連続させることができる。更に、リアルタイムに生成した歩容に基づいて脚式移動ロボットを駆動制御することができる。
【００２２】
【発明の実施の形態】
以下、添付図面を参照してこの発明に係る脚式移動ロボットの歩容生成装置を説明する。尚、脚式移動ロボットとしては２足歩行ロボットを例にとる。
【００２３】
図１はその２足歩行ロボット１を含む装置全体の説明図である。
【００２４】
図示の如く、２足歩行ロボット１は左右それぞれの脚部リンク２に６個の関節を備える（理解の便宜のために各関節をそれを駆動する電動モータで示す）。６個の関節は上から順に、股（腰部）の脚部回旋用の関節１０Ｒ，１０Ｌ（右側をＲ、左側をＬとする。以下同じ）、股（腰部）のピッチ方向（Ｙ軸まわり）の関節１２Ｒ，１２Ｌ、同ロール方向（Ｘ軸まわり）の関節１４Ｒ，１４Ｌ、膝部のピッチ方向の関節１６Ｒ，１６Ｌ、足部のピッチ方向の関節１８Ｒ，１８Ｌ、同ロール方向の関節２０Ｒ，２０Ｌから構成される。
【００２５】
足部には足平２２Ｒ，２２Ｌが取着されると共に、最上位には上体（基体）２４が設けられ、その内部に図２に関して後述するマイクロコンピュータからなる制御ユニット２６などが格納される。上記において股関節（あるいは腰関節）は関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）から、足関節は関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）から構成される。また股関節と膝関節とは大腿リンク２８Ｒ，２８Ｌ、膝関節と足関節とは下腿リンク３０Ｒ，３０Ｌで連結される。
【００２６】
上記の構成により、脚部リンク２は左右の足についてそれぞれ６つの自由度を与えられ、歩行中にこれらの６＊２＝１２個の関節を適宜な角度で駆動することで、足全体に所望の動きを与えることができ、任意に３次元空間を歩行させることができる（この明細書で「＊」は乗算を示す）。
【００２７】
尚、この明細書で後述する上体の位置およびその速度は、上体２４の所定位置、具体的には上体２４の重心位置などの代表点およびその（変位）速度を意味する。
【００２８】
図１に示す如く、足関節の下方には公知の６軸力センサ４４が取着され、力の３方向成分Ｆｘ，Ｆｙ，Ｆｚとモーメントの３方向成分Ｍｘ，Ｍｙ，Ｍｚとを測定し、足部の着地の有無ないしは接地荷重などを検出する。また、上体２４には傾斜センサ６０が設置され、Ｚ軸（鉛直方向）に対する傾きとその角速度を検出する。また各関節の電動モータには、その回転量を検出するロータリエンコーダが設けられる。
【００２９】
更に、図１では図示を省略するが、２足歩行ロボット１の適宜な位置にはジョイスティック６２が設けられ、外部から必要に応じて直進歩行しているロボットを旋回させるなど要求歩容を入力できるように構成される。
【００３０】
図２は制御ユニット２６の詳細を示すブロック図であり、マイクロ・コンピュータから構成される。そこにおいて傾斜センサ６０などの出力はＡ／Ｄ変換器７０でデジタル値に変換され、その出力はバス７２を介してＲＡＭ７４に送られる。また各電動モータに隣接して配置されるエンコーダの出力はカウンタ７６を介してＲＡＭ７４内に入力される。
【００３１】
制御ユニット内にはＣＰＵからなる第１、第２の演算装置８０，８２が設けられており、第１の演算装置８０は後述の如く、ＲＯＭ８４に格納されている標準歩容に基づいて自在かつリアルタイムに歩容を生成すると共に目標関節角を算出し、ＲＡＭ７４に送出する。また第２の演算装置８２はＲＡＭ７４からその目標値と検出された実測値とを読み出し、各関節の駆動に必要な制御値を算出してＤ／Ａ変換器８６とサーボアンプを介して各関節を駆動する電動モータに出力する。
【００３２】
図３はこの装置の動作を機能的に示すブロック図であり、図４はその中の歩容混合ないし歩容生成処理を示すフロー・チャート（構造化フロー・チャート）である（この明細書では歩容生成を『歩容混合』ともいう）。
【００３３】
最初にこの装置が生成する歩容について説明すると、この発明の目的は前記したように歩容をリアルタイムに生成する装置を提供することにあり、より具体的には本出願人が先に特開平５−３０５５８５号公報において提案した両脚コンプライアンス制御によるロボットの姿勢安定化制御を行うために必要な目標歩容を自在に生成することを目的としている。
【００３４】
そこで先ず、先に提案した姿勢安定化制御について簡単に説明すると、その技術にあっては床反力（ＺＭＰ）の目標位置と実測位置の偏差を検出し、その偏差を解消するように脚部の一方または双方を駆動して姿勢の安定化を図っている。それと共に、ロボットが倒れそうになると、目標床反力を意図的にずらすことによって実床反力をずらし、姿勢復元力を得るようにしている。
【００３５】
かかる如く、脚式移動ロボットにおいては、目標運動軌跡と目標床反力パターンの関係が動力学的平衡条件を満足していなければ、安定した歩行が実現できない。動力学的平衡条件とは、具体的には、例えば、目標床反力中心点（目標床反力分布の２次モーメントが０になる床上の作用点）とＺＭＰ（Zero Moment Point...運動による慣性力と重力の合力が床と交わる点）が一致することである。一致していないと、コンプライアンス制御が働いた時に、慣性力と重力の合力と床反力との間の動バランスを崩し、転倒する。
【００３６】
先に提案した技術においては、それをロボットが不安定となったときの姿勢回復に逆用しているが、上記から明らかな如く、脚式移動ロボットにおいてはこのように歩行制御に与える目標値として、目標の運動パターンだけではなく、目標の運動パターンと動力学的平衡条件を満足する目標床反力パターンも必要である。
【００３７】
目標床反力は、一般的には、作用点とその点に作用する力と力のモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に前述の目標床反力中心点を作用点にして目標床反力を表現すると、力のモーメントは、床に垂直な成分を除けば、０になる。
【００３８】
尚、前述のように、目標の運動軌道と動力学的平衡条件を満足する目標床反力中心点軌道はＺＭＰと一致するから、目標床反力作用中心点軌道の代わりに目標ＺＭＰ軌道を与えると言っても同じことである。
【００３９】
従って、上記は、『歩行制御に与える目標値としては、目標運動軌跡だけでなく、目標ＺＭＰ軌道（目標床反力パターン）も必要である』と言い換えることができる。このような背景から、この明細書では目標歩容を、次のように定義する。
【００４０】
ａ）広義の目標歩容とは、１歩ないしは複数歩の期間の目標運動軌跡とその目標床反力パターンの組である。
ｂ）狭義の目標歩容とは、１歩の期間の目標運動軌跡とそのＺＭＰ軌道の組である。
ｃ) 一連の歩行は、いくつかの歩容がつながったものとする。
【００４１】
尚、以下では、理解を容易にするために、特にことわらない限り、目標歩容は狭義の目標歩容の意味で使用する。より詳しくは、この明細書では、目標歩容は、両脚支持期の初期から片脚支持期の終端までの意味で使用する。尚、両脚支持期とは言うまでもなく、ロボット１がその自重を脚部リンク２の双方で支持する期間を、片脚支持期とは脚部リンク２の一方で支持する期間をいう。片脚支持期においてロボット１の自重を支持しない側の脚部（リンク）を遊脚と呼ぶ。
【００４２】
この発明は、具体的には、上記に定義した目標歩容を自在かつリアルタイムに生成することを目的としている。自在かつリアルタイムに生成できれば、例えばロボット１を遠隔操縦によってオペレータが自由自在に操ることができ、また、自動操縦においても、単なる固定シーケンス通りに移動するだけでなく、誘導制御やデリケートな位置決めも可能となる。
【００４３】
ここで、目標歩容としての条件を説明する。
【００４４】
目標歩容が満たさなければならない条件は、大きく分けて以下の５つに分類される。
条件１）動力学的平衡条件を満足していること。即ち、ロボット１の目標運動軌跡から動力学的に算出されるＺＭＰ軌道が目標ＺＭＰ軌道と一致していること。
条件２）ロボット１の歩行計画部や歩行経路誘導部（共に図示せず）、あるいはオペレータから歩幅や旋回角など歩容が満たすべき条件が要求される場合、それらの要求条件を満たしていること。
【００４５】
条件３）足平が床を掘ったり擦ったりしない、関節角度が可動範囲を超えない、関節速度が限界を超えないなどの、キネマティクス（運動学）に関する制約条件を満たしていること。
条件４）片脚支持期においてＺＭＰが支持脚足平接地面内になければならない、駆動系の最大能力を超えないなどの、ダイナミクスに関する制約条件を満たしていること。
【００４６】
条件５）境界条件を満たしていること。即ち、条件１）の当然の帰結として、歩容と歩容の境界では、少なくとも、各部位の変位と（変位）速度が連続であるという境界条件が導かれる（不連続であれば、無限大の力が発生したり、ＺＭＰが接地面からはるかに遠くの点に移動してしまうから）。
【００４７】
また、第ｎ＋１回歩容の初期状態は、第ｎ回歩容の終端状態（特に、足平位置に対する上体の位置・姿勢および速度）に一致するように設定されなければならない。このとき、第ｎ回歩容の終端状態は、第ｎ＋１回歩容の初期状態が決まっていれば、第ｎ＋１回歩容の初期状態に一致させれば良い。
【００４８】
決まっていなければ、第ｎ回歩容の終端状態が、姿勢が崩れないで長期的な歩行ができる範囲に入っていれば良い。但し、後述するように、姿勢が崩れないで長期的な歩行ができるための終端状態の範囲を求めることは、極めて難しい。
【００４９】
一般的に、目標歩容は、後述する標準歩容のように、パラメータ値あるいは時系列テーブルを含む歩容発生アルゴリズムによって発生させられる（歩容を決定するということは、パラメータ値あるいは時系列テーブルを適当に設定することに他ならない）。
【００５０】
パラメータ値あるいは時系列テーブルを変えることによって、様々な歩容が生成される。しかし、パラメータ値あるいは時系列テーブルを十分な配慮もせずに設定しただけでは、作成された歩容が前記の歩容条件をすべて満足しているか否かは分からない。
【００５１】
特に、長期的歩行に適した終端上体位置および速度の範囲が分かっていたとしても、ＺＭＰ軌道に基づいて上記した条件１）を満足する上体の軌道を歩容発生アルゴリズムに従って生成する場合には、発生した歩容の終端での上体位置と速度の両方がその範囲に入るようにＺＭＰ軌道に関するパラメータを設定することは、極めて難しい。
【００５２】
その理由は次の通りである。
理由１）上体は、一旦、ＺＭＰから遠くに離れると、さらに遠くに離れようとする発散傾向がある。これを説明するために、ロボットの上体の挙動に近い倒立振子の挙動を例に挙げる。
【００５３】
倒立振子は重心の床投影点が支点からずれると、ずれが発散して倒れる。しかし、そのときも倒立振子の慣性力と重力の合力は支点上に作用し（即ち、ＺＭＰが支点に一致し）、支点から受ける床反力に釣り合っている。即ち、動力学的平衡条件は、運動する物体のその瞬間における慣性力と重力と床反力の関係を表すだけのものである。
【００５４】
動力学的平衡条件を満足していればロボットの長期歩行が保証されたように錯覚しやすいが、ロボットの姿勢が崩れているか否かとは全く関係がない。倒立振子の重心が支点の真上から離れると、ますます遠くに離れようとする傾向があるように、ロボットの重心がＺＭＰの真上から遠くに離れるとますます遠くに離れようとする発散傾向がある。
【００５５】
理由２）片脚支持期においてＺＭＰが支持脚足平接地面内になければならないなどの厳しい制約条件があるために、上体の加減速パターンを恣意的に設定することができず、位置を合わせようとすると速度が合わず、速度を合わせようとすると位置が合わず、なかなか両方を同時に一致させることは難しい。例えて言えば、自動車の運転において、ブレーキを踏む力をある狭い範囲に限定されている状況で、決められた時刻にぴったりと目標停止線の上で停止するようなものである。
【００５６】
以上の問題点のために、前記歩容条件を全て満たした目標歩容のパラメータやテーブルをリアルタイムに決定することは、従来では不可能であった。そのため、前記した従来技術では、自在な歩行は実現されていなかった。
【００５７】
上記を前提として図３を参照してこの発明に係る装置を説明する。尚、同図は、図４フロー・チャートに示すこの装置の動作を理解の便宜のために機能的に示すブロック図である。
【００５８】
この装置にあっては図示の如く、オフラインで作成され、ＲＯＭ８４に格納されている標準歩容に基づき、歩行時にリアルタイムに発せられる歩容に対する要求（歩容の変更など）を満足するように、混合歩容瞬時値発生器において歩容が生成される。
【００５９】
標準歩容はオフラインにおいて種々の歩容を試行錯誤して作成し、その中から上体が発散せず、その後の継続的な歩行が保証される終端状態を持つ歩容を選択し、前記ＲＯＭ８４に記憶されてなる。例えば、静止状態から歩き始める歩容、加速歩容、等速度歩容、減速歩容、停止歩容など、一連の継続した歩容の列などは、継続的な歩行が保証された標準歩容の代表例である。
【００６０】
歩容は、歩容パラメータによって記述される。歩容パラメータは、運動パラメータとＺＭＰパラメータ（より一般的に表現すれば、床反力パラメータ）から構成される。尚、この明細書で『床反力パラメータ』なる語は、『床反力の時間的なパターンに関するパラメータ』を意味するものとして使用する。
【００６１】
ＺＭＰパラメータは後で図７などに示すように、Ｘ，Ｙ，Ｚ座標（方向）について折れ線グラフ状のＺＭＰ軌道の折れ点の位置と通過時刻で示す（Ｘ座標のみ図示）。混合歩容瞬時値発生器においては、ＺＭＰパラメータに基づいてＺＭＰ生成器でＺＭＰ（軌道）の瞬時値（今回（現在時刻）制御周期の値）が算出される。
【００６２】
運動パラメータは、足平（軌道）パラメータと上体（軌道）パラメータとから構成される。
【００６３】
足平軌道パラメータは、初期（離床時）遊脚位置および姿勢、終端（着床時）遊脚位置および姿勢、両脚支持期時間、片脚支持期時間などを含む。これらに基づき、足平軌道発生器において先に本出願人が特開平５−３１８３３９号および特開平５−３２４１１５号公報などで提案した技術を用いて、両足平の位置（ｘf ，ｙf ，ｚf ）および姿勢（θｘf ，θｙf ，θｚf ）の瞬時値が求められる。尚、ここで『姿勢は空間上の傾斜または向き』を意味する。
【００６４】
上体軌道パラメータは、上体の姿勢（空間上の上体２４の向きあるいは傾き）を決定するパラメータ、上体高さ（Ｚ方向の値）を決定するパラメータ、初期の上体位置（変位）および速度パラメータなどから構成される。
【００６５】
上体水平位置発生器においては、上体の位置および姿勢を決定するパラメータに基づいて時間関数または先に特開平５−３２４１１５号公報で本出願人が提案した技術などで上体の水平位置（ｘb ，ｙb ）および姿勢（θｘb ，θｙb ，θｚb ）の瞬時値が求められる。尚、前記したように上体の位置は、上体２４の重心位置などの代表点を意味する。また上体高さ決定器において、上体高さｚb は適宜な手法、例えばこの出願と同時に本出願人が提案する手法で決定される。
【００６６】
脚式移動ロボット１の関節は図１に示すように１２関節から構成されているので、得られた両足平の位置・姿勢と上体位置・姿勢とから、逆キネマティックス演算によって目標関節変位が一義的に決定される。即ち、今回のロボットの目標姿勢が一義的に決定される。（正確には、両足平の目標位置・姿勢が両脚コンプライアンス制御によって修正された後、目標関節変位が計算される。）
【００６７】
尚、本来、歩容は歩容パラメータだけで一義的に表現されているが、この実施の形態では歩行時の演算量を低減するために、標準歩容の上体軌跡をあらかじめオフラインで計算しておいて時系列テーブルにして記憶させておき、制御周期毎に現在時刻データを吐き出すようにした。尚、若干誤差が発生するが、ＲＯＭ８４の容量が少ない場合には標準歩容の上体軌跡を多項式で近似し、時系列テーブルの代わりに、その近似式の係数を歩容パラメータの一種として記憶しても良い。
【００６８】
ここで標準歩容についての説明を補足すると、標準歩容はより具体的には、この明細書で時間関数として表し、１つの歩容は次のように定義されるg(t)とf(t)の組で表すようにした。
g(t)：運動を記述する関数（この関数値は、時刻ｔにおけるロボット全体の位置・姿勢を表す。具体的には全体の位置・姿勢は図３に示すように、上体の位置・姿勢、両足平の位置・姿勢で表される）。
f(t)：ＺＭＰ軌道を記述する関数（この関数の値は前記の如く、時刻ｔにおけるＺＭＰの位置(x,y,z)を表す）。
【００６９】
また歩容関数はパラメータを意識して記号表記するようにした。即ち、g(t)とf(t)は、共に歩容パラメータをパラメータとして持つ関数である。異なる歩容を明確に示すためには全パラメータを明示的に表記すべきであるが、パラメータの種類は非常に多いので、以降の説明に必要なパラメータ変数だけを明記した、以下の表記を用いることとする。
g( t:  a, b, c, d, x(k), y(k))：運動軌道を記述する関数
f( t:  a, b, c, d)：ＺＭＰ軌道を記述する関数（床反力を記述する関数）
但し、
a ：初期遊脚足平向き（ロボット旋回角）
b ：初期遊脚足平前後位置（歩幅）
c ：片脚支持期のＺＭＰのＸ座標
d ：片脚支持期のＺＭＰのＹ座標
x(k) ：上体位置のＸ座標時系列
y(k) ：上体位置のＹ座標時系列
【００７０】
この表記では、時系列も一種のパラメータとして扱っている。本来は、初期上体位置・速度パラメータを与えれば、上体位置の時系列テーブルがなくても歩容は一義的に定まる。即ち、上体位置の時系列は冗長なものであるが、前述したようにリアルタイム歩容生成の演算時間短縮のために、上体位置の時系列テーブルも歩容を記述するパラメータのように扱っている。
【００７１】
この実施の形態では、初期上体位置・速度パラメータも歩容によって異なるが、上体位置の時系列を明記している場合には、時系列の最初の２つから初期上体位置・速度パラメータ値が算出できるので、その記述を省略する。
【００７２】
この実施の形態においては標準歩容として、前記した如く、静止状態から歩き始める歩容など複数種の歩容をオフラインで予め作成しておくが、以下３種の歩容を具体例として例示する。
第０標準歩容
g( t:  a0, b0, c0, d0, x0(k), y0(k))
f( t:  a0, b0, c0, d0)
第１標準歩容
g( t:  a1, b0, c1, d1, x1(k), y1(k))
f( t:  a1, b0, c1, d1)
第２標準歩容
g( t:  a0, b2, c2, d2, x2(k), y2(k))
f( t:  a0, b2, c2, d2)
【００７３】
これら標準歩容の初期遊脚足平位置・姿勢と終端遊脚足平位置・姿勢などを、図５ないし図１１に示す。歩容を表現するために、座標系を本図に示すように、支持脚足平接地位置のある基準点を原点にし、支持脚足平の前後方向をＸ軸、左右方向をＹ軸にとる。
【００７４】
図４フロー・チャートの説明に入る前に、ここで図１２および図１３に示すような歩容に関する要求が与えられたと仮定し、上記した標準歩容から前記歩容条件を満たすように要求歩容（前記した近似歩容）（以下「第３歩容」と言う）を生成する作業を例にとってこの装置の動作を説明する。尚、第３歩容は、任意の初期遊脚足平向きａ３および任意の初期遊脚足平前後位置ｂ３を持つ。
【００７５】
当然、第３歩容のパラメータａの値はａ３、ｂの値はｂ３である。問題は、歩容の条件を満たすように、その他のパラメータｃ，ｄおよびテーブルx(k), y(k)を如何に決定するかである。
【００７６】
そこで、第３歩容を
g( t:  a3, b3, c3, d3, x3(k), y3(k))
f( t:  a3, b3, c3, d3)
とおき、パラメータc3, d3および時系列テーブルx3(k), y3(k)を決定する。
【００７７】
ここで、用語を定義すると、パラメータａおよびｂは、この装置以外の外部（オペレータのジョイスティック６２などの操作による）または別の装置（図３ブロック図において両脚コンプライアンス制御器など）からこの装置に対して要求設定値（前記した「歩容に関する要求」に同じ）として入力される値を含む。このように、直接的にある設定値を要求されるパラメータを直接設定パラメータと呼ぶ。
【００７８】
この実施の形態では説明の簡略化のため、初期遊脚足平向きと前後位置（歩幅）のみを任意に変更できるようにしたが、これ以外に要求設定値として入力されるものは、今述べた
１）オペレータからの指示（旋回角度および角速度指令、移動速度指令など）
２）他の処理装置（軌道誘導装置など）を設けた場合、それからの要求（終端遊脚足平位置・姿勢など）
の他に、
３）前および／または次の歩容との境界条件（初期上体位置および姿勢、初期遊脚足平位置・姿勢など）
を挙げることができる。３）については第４の実施の形態で触れる。
【００７９】
それに対し、パラメータｃ，ｄおよびテーブルx(k), y(k)のように、直接設定パラメータの値に応じて歩容の条件を満たすように値が決定されるパラメータ（またはテーブル）を、従属パラメータ（または従属テーブル）と呼ぶ。時系列テーブルを直接的に設定することは極めて難しいので、時系列テーブルが直接設定パラメータとなることはほとんどない。
【００８０】
また、第０標準歩容以外の第１および第２標準歩容は、第０標準歩容を基準として、直接設定パラメータ（ここでは、パラメータａとｂ）の内でただひとつだけを変えたものである。このように、選択された標準歩容の核となる歩容（第０標準歩容）をベース歩容と呼ぶ。
【００８１】
ここで、要求歩容のパラメータ（この明細書では要求歩容のパラメータを「混合パラメータ」とも言う）の求め方を説明すると、従属パラメータc3, d3および従属時系列テーブルx3(k), y3(k)は、いずれも、歩容の条件を満たすために、直接設定パラメータａとｂに応じて変化する。しかも、パラメータａとｂの変化に対して、これらの値は連続的に変化するものと考えられる。即ち、これらは、パラメータａとｂの連続関数である。そこで以下に述べる近似原理を利用することができる。即ち、近似演算を行うことにより要求歩容のパラメータを求めることができる。
【００８２】
関数Pが滑らかな連続関数であるならば、
P(a0+Δa, b0+Δb) = P(a0, b0) + δP /δa｜(a=a0,b=b0)＊Δa + δP
／δb｜(a=a0,b=b0) ＊Δb・・・近似式１
但し、
δP /δa｜(a=a0,b=b0) ：a=a0,b=b0でのPのaに関する偏微分値
δP /δb｜(a=a0,b=b0) ：a=a0,b=b0でのPのbに関する偏微分値
【００８３】
更に、
δP /δa｜(a=a0,b=b0)  =  ( P(a0+ Δa1, b0)  - P(a0, b0) ) / Δa1
δP /δb｜(a=a0,b=b0)  =  ( P(a0, b0+ Δb2)  - P(a0, b0) ) / Δb2
であるので、近似式１は
Ｐ（ａ０＋Δa, b0+Δb) = P(a0, b0)
＋  （  Ｐ（ａ０＋Δa1, b0)  - P(a0, b0) )／ Δa1＊Δa
+ ( P(a0, b0+Δb2)  - P(a0, b0) )／Δb2＊Δb
・・・・・・・・・・・・・・近似式２
【００８４】
第１の実施の形態は近似式２を発展させたものであり、後述する第２の実施の形態は近似式１を発展させたものである。
【００８５】
要求歩容のパラメータの求め方の説明を続けると、具体的には以下の式のように全ての従属パラメータ、全ての従属時系列テーブルに対して内分または外分することによって、標準歩容から第３歩容のパラメータを求める。これは、直接設定パラメータと従属パラメータとは比例関係にあると考えることができるからである。
【００８６】
ａ３がａ１とａ２の内側にあれば内分、外側にあれば外分である。また、違いが動力学的に無視できる一部のパラメータ、一部の時系列テーブルは、内分、外分せず、ベース歩容のままであっても良い。更に、時系列テーブルに関しては、全時刻のデータをすべて一度に計算すると第１の演算装置８０の負荷が大き過ぎるので、制御周期毎に今回時刻のデータだけ内分、外分すれば良い。
【００８７】
以下に従属パラメータおよび従属テーブルの混合式（内分または外分による）を示す（後でこの混合式を「式１」と言う）。
c3 = c0
+ ( c1 - c0 ) ＊( a3 - a0 ) / ( a1 - a0 )
+ ( c2 - c0 ) ＊( b3 - b0 ) / ( b2 - b0 )
ｄ３  ＝  ｄ０
+ ( d1 - d0 ) ＊( a3 - a0 ) / ( a1 - a0 )
+ ( d2 - d0 ) ＊( b3 - b0 ) / ( b2 - b0 )
ｘ３（ｋ）  ＝  ｘ０（ｋ）
+ ( x1(k) - x0(k) ) ＊( a3 - a0 ) / ( a1 - a0 )
+ ( x2(k) - x0(k) ) ＊( b3 - b0 ) / ( b2 - b0 )
ｙ３（ｋ）  ＝  ｙ０（ｋ）
+ ( y1(k) - y0(k) ) ＊( a3 - a0 ) / ( a1 - a0 )
+ ( y2(k) - y0(k) ) ＊( b3 - b0 ) / ( b2 - b0 )
【００８８】
上記の式１は、各標準パラメータおよびテーブル値の加重平均（重み付き平均）となっている。例えば、c3を求める式を変形すると、
c3 = ( 1 - ( a3 - a0 ) / ( a1 - a0 ) -  ( b3 - b0 ) / ( b2 - b0 ) ) ＊c0
＋    （  ａ３  −  ａ０  ）  ／  （  ａ１  −  ａ０  ）＊c1
＋    （  ｂ３  −  ｂ０  ）  ／  （  ｂ２  −  ｂ０  ）＊ c2
となり、c0とc1とc2の係数の和が１になっているので、c3は、c0とc1と c2 に対する重みがそれぞれ
( 1 - ( a3 - a0 ) / ( a1 - a0 ) -  ( b3 - b0 ) / ( b2 - b0 ) )
( a3 - a0 ) / ( a1 - a0 )
（  ｂ３  −  ｂ０  ）  ／  （  ｂ２  −  ｂ０  ）
の加重平均となっている。
【００８９】
尚、終端上体位置・速度も直接設定パラメータとして任意の値に設定したい場合には、ベース歩容とＺＭＰパラメータが異なる標準歩容をいくつか選択して加重平均すれば良い。混合歩容の終端状態は混合される各標準歩容の終端状態の加重平均にほぼ一致するので、混合歩容の終端状態の全て（上体の前後左右の位置・速度）が要求値になるように加重平均の重みを求めれば良い。
【００９０】
また上体位置を時系列テーブルから求める場合には、終端条件は完全に一致する。但し、後で第７の実施の形態で触れるように、動力学演算でＺＭＰ設定軌道を満足するように上体位置を逐次的に求める場合には若干ずれる。
【００９１】
またこのとき、重みを決定するためには、混合される各標準歩容の終端状態が必要であるので、各標準歩容の終端状態を予め記憶したテーブルを利用すれば、処理時間を短縮することができる。
【００９２】
上記の手法によって混合歩容のパラメータを決定し、次いでオフラインで作成された標準歩容と同一の歩容生成アルゴリズムによって要求歩容の各時刻における瞬時値を生成する、ないし発生させることができる。
【００９３】
以下、図４フロー・チャートを参照してこの装置の動作を説明すると、Ｓ１０でオフラインで作成した前記標準歩容のデータ群をＲＯＭ８４に予め記憶させておくものとする。次いでＳ１２に進み、各々の標準歩容の終端上体位置および速度を求めて記憶する。
【００９４】
先に述べた如く、上体２４の位置が関数x(k),y(k) としてテーブル化されているので、速度はテーブルの最後とその直前の時刻のデータから求める。具体的には最後の時刻の値を位置とすると共に、最後とその直前の時刻の値の差分を求めて速度とする。
【００９５】
次いで、Ｓ１４に進んでタイマ値ｔを０とし（タイマをスタートさせ）、Ｓ１６を経てＳ１８に進み、タイマ割り込みを待つ（Ｓ１４のタイマとは異なる）。図４のフロー・チャートは例えば、２０ｍｓごとに起動される。即ち、制御周期は２０ｍｓごとである。
【００９６】
次いでＳ２０に進んで歩容の切り替わり目、具体的には１歩の切り替わり目であるか否か判断し、肯定されるときはＳ２２に進んでタイマを０にリセットし、Ｓ２４に進んで歩容に対する要求値（具体的には今回歩容の直接設定パラメータの要求値（前記したａ，ｂ）を読み込む。
【００９７】
次いでＳ２６に進んで歩容の混合処理を行う。
【００９８】
図１４はその作業を示すサブルーチン・フロー・チャートである。
【００９９】
先ず、Ｓ１００において直接設定パラメータの値が要求値に近い標準歩容をベース歩容として選択する。図１５を参照して説明すると、直接設定パラメータａ，ｂの値が要求値（第３歩容）のａ３，ｂ３に近い標準歩容は第０標準歩容であるので、それをベース歩容として選択する。
【０１００】
次いでＳ１０２に進んで上記の直接設定パラメータに着目し、そのパラメータの１つだけがベース歩容と異なる標準歩容を１つずつ選択する。候補が複数個ある場合には、その候補のパラメータ値が着目したパラメータの値になるべく近く、また、できれば、ベース歩容のパラメータ値とその候補のパラメータ値の間に要求値が位置するものを選択する。例えば図１６に示すような場合では、パラメータａについて標準歩容候補１を採用する。
【０１０１】
尚、後で第５の実施の形態で述べるように、脚部リンク２の質量が上体２４に較べて十分に小さい場合には、直接設定パラメータの中、終端遊脚足平位置・姿勢パラメータだけを少し変更しても、ロボット１が発生する慣性力はほとんど変わらない。即ち、そのパラメータ値を変更しても、動力学的平衡条件を満足する上でその他のパラメータにほとんど影響を与えないものと考えることが可能である。
【０１０２】
従って、終端遊脚足平位置・姿勢パラメータがベース歩容と少し違うだけなら、ベース歩容のそのパラメータ値を要求値通りに書き換えてしまえば良い。従って、終端遊脚足平位置・姿勢パラメータだけがベース歩容と異なる歩容を混合のために選択する必要もない。
【０１０３】
次いでＳ１０４に進んで混合歩容の直接設定パラメータに要求値を代入し、Ｓ１０６に進んで前記のパラメータ算出式（式１）により混合歩容の従属パラメータ値を算出し、混合歩容パラメータに代入する。
【０１０４】
図４に戻ると、続いてＳ２８に進んで混合歩容パラメータ（テーブル）を目標歩容パラメータ（テーブル）に代入し、Ｓ３０に進んで目標歩容の瞬時値（今回制御周期の値）を算出する。
【０１０５】
図１７はその作業を示すサブルーチン・フロー・チャートである。
【０１０６】
先ず、Ｓ２００において混合歩容パラメータに基づいて時刻ｔのＺＭＰを求め、Ｓ２０２に進んで混合歩容パラメータに基づき、前記の提案技術を用いて時刻ｔの両足平位置・姿勢を求める。
【０１０７】
続いてＳ２０４に進んで時刻ｔの両足平位置・姿勢と時刻ｔ−Δｔの上体水平位置から時刻ｔの上体高さを求める。尚、その詳細は先にも述べたように同時に提案する別の出願に記載されており、この発明の要旨と直接の関連を有しないので、省略する。
【０１０８】
続いてＳ２０６に進んで選択した標準歩容（ベース歩容含む）の時刻ｔの上体位置に基づいて先に述べた混合式（式１）に従い、時刻ｔの混合歩容上体水平位置を算出する。
【０１０９】
続いて図４フロー・チャートのＳ３２に戻って時刻ｔをΔｔだけ更新し、Ｓ１８に戻って上記の処理を繰り返す。
【０１１０】
尚、上記の如くして生成した歩容に基づいて両脚コンプライアンス制御器において両脚コンプライアンスが行われ、次いで目標関節角が求められ、目標値に向けて駆動制御される。
【０１１１】
図１８フロー・チャートを参照して両脚コンプライアンス制御について簡単に説明すると、先ずＳ３００で両脚コンプライアンス操作量が演算される。
【０１１２】
図１９はその作業を示すサブルーチン・フロー・チャートであり、Ｓ４００において６軸力センサ４４の検出値を読み込み、Ｓ４０２に進んで検出値からＺＭＰの実測位置（実床反力中心点）を求め、Ｓ４０４に進んでＺＭＰ目標位置と比較して偏差、即ち、ずれ方向およびずれ量Ｘを求め、Ｓ４０６に進んで図示の式に従って足平の操作量を求め、Ｓ４０８に進んで両足平の目標位置・姿勢を求めた操作量に応じてずらす。尚、実ＺＭＰ位置と実床反力中心点は一致するため、この明細書では同義として扱う。
【０１１３】
図１８フロー・チャートに戻ると、次いでＳ３０２に進んで足平位置・姿勢（コンプライアンス制御により修正されたときは修正値）および上体位置・姿勢に基づいて公知の逆キネマティクス演算を介して１２個の関節の目標角度を算出し、Ｓ３０４に進んで傾斜センサ１１の出力からロボット１が不安定と判断されるときは、床反力中心点を故意にずらすように目標姿勢を修正する。次いでＳ３０６に進んで全関節を目標角度に追従制御する。これは具体的には第２の演算装置８２が行う。
【０１１４】
この実施の形態は上記の如く構成したので、歩容を自在かつリアルタイムに生成して任意の歩幅や旋回角を実現することができる。更には、リアルタイムに生成された歩容に基づいて脚式移動ロボットを目標関節角度に駆動制御させつつ、自在に歩行させることができる。
【０１１５】
より詳しくは、歩幅や旋回角についての任意の要求に対して記憶された幾つかの標準歩容からベースとなる歩容を適当に選択し、合成や変形などの混合操作、即ち、前記した近似演算を行うことにより、前記した歩容条件や歩容に関する要求を満足する近似歩容をリアルタイムに生成することができる。
【０１１６】
更には上記の如く構成したことから、微妙な角度・歩幅に設定することができ、ある程度（境界状態が近ければ）既存の標準歩容同士を組み合わせて混合することにより、それらの中間的な歩容を任意に生成することも可能である。
【０１１７】
また、上記の如く構成したことで演算量を低減することができる。具体的には、リアルタイムにダイナミクスを解くのに比べて第１の演算装置８０の演算量が１／１０程度に低減する。更に、最適な標準歩容を記憶しておき、それらを混合して歩容を生成するので、メモリ（ＲＯＭ８４）の容量も低減させることができる。更に、最適性を満足するので、条件１）から５）を満足する歩容を、試行錯誤を経ずに、容易に得ることができる。
【０１１８】
図２０は、この発明の第２の実施の形態を示すフロー・チャートである。
【０１１９】
第２の実施の形態においては、標準歩容と共に、歩容パラメータについての感度を用いた。一般的に、「感度」は、システムの出力や特性が入力やパラメータ、あるいは環境状況の変化によって受ける影響の程度を意味するが、第２の実施の形態においてはある歩容パラメータの単位変更量当たりの他のパラメータの変更量（以下「歩容パラメータ感度」という）を求め、それを用いてパラメータの変更量（あるいは変化量）を求めるようにした。
【０１２０】
より具体的には、歩容パラメータ感度は、標準歩容において、直接設定パラメータ（例えば、第１の実施の形態の初期遊脚向きａ、初期遊脚前後位置ｂなど）を微小量変更したときに、その歩容が望ましい標準歩容となるためには、他の従属的なパラメータをどれだけ変化させなければならないかを示す意味で使用する。このように具体的には、歩容パラメータ感度は、直接設定パラメータの単位量変更あたりの従属パラメータの変更量と定義する。
【０１２１】
その結果として、第２の実施の形態においては標準歩容の個数を低減し、ベース歩容となるものだけを用いるようにした。即ち、例えば静止状態から歩き始める歩容、加速歩容、等速度歩容、減速歩容、停止歩容など、一連の継続したベース歩容の列などを用意するが、それらから各種パラメータを少しずらした標準歩容は用意しないようにした。
【０１２２】
具体的には、ある標準歩容i においてパラメータｐに対するパラメータｑの感度をＤi (q,p) と記述する。時系列テーブルも同様、パラメータｐに対するｋ番目データx(k)の感度をＤi (x(k),p) と記述する。
【０１２３】
第２の実施の形態における要求歩容の生成手法について説明する。
【０１２４】
先の第０標準歩容におけるパラメータａに対するパラメータｃの感度Ｄ0(ｃ，ａ) などと、第１標準歩容との関係は、以下のようになる。
(a1 - a0) が十分に小さければ、定義に従って、
Ｄ0(ｃ,a ) =  (c1 - c0) / (a1 - a0)
Ｄ0( d ,a ) = (d1 - d0) / (a1 - a0)
Ｄ0( x(k) ,a ) = (x1(k) - x0(k) ) / (a1 - a0)
Ｄ0( y(k) ,a ) = (y1(k) - y0(k) ) / (a1 - a0)
である。
【０１２５】
同様に、第０標準歩容におけるパラメータｂに対するパラメータｃの感度Ｄ0(ｃ，ｂ) などと、第２標準歩容との関係は、以下のようになる。
(b2 - b0) が十分に小さければ、定義に従って、
Ｄ0(ｃ,b) =  (c2 - c0) / (b2 - b0)
Ｄ0( d ,b) = (d2 - d0) / (b2 - b0)
Ｄ0( x(k) ,b) = (x2(k) - x0(k) ) / (b2 - b0)
Ｄ0( y(k) ,b) = (y2(k) - y0(k) ) / (b2 - b0)
である。
【０１２６】
第１の実施の形態のパラメータおよびテーブルの混合式にこれらを代入することにより、パラメータ決定式（パラメータ感度を用いた）として次式（以下「式２」という）を得る。
【０１２７】
c3 = c0
+ Ｄ0( c,a )＊( a3 - a0 )
+ Ｄ0( c,b )＊( b3 - b0 )
ｄ３  ＝  ｄ０
+ Ｄ0( d,a )＊( a3 - a0 )
+ Ｄ0( d,b )＊( b3 - b0 )
x3(k) = x0(k)
+ Ｄ0( x(k) ,a )＊ ( a3 - a0 )
+ Ｄ0( x(k) ,b )＊( b3 - b0 )
ｙ３（ｋ）  ＝  ｙ０（ｋ）
+ Ｄ0( y(k) ,a )＊ ( a3 - a0 )
+ Ｄ0( y(k) ,b )＊ ( b3 - b0 )
【０１２８】
上記を前提として図２０フロー・チャートを参照して説明すると、Ｓ５００においてオフラインで作成したベース歩容と歩容パラメータ感度を記憶しておき、Ｓ５０２からＳ５１４まで第１の実施の形態と同様の処理を行ってＳ５１６に進み、歩容の混合処理を行う。
【０１２９】
図２１はその作業を示すサブルーチン・フロー・チャートであり、Ｓ６００で直接設定パラメータの値が要求値に近いベース歩容を選択し、Ｓ６０２に進んで混合歩容の直接設定パラメータに要求値を代入し、Ｓ６０４に進んで式２に従って従属パラメータを求める。尚、上体水平位置の時系列テーブルは一度に計算しても良いが、演算量が多いので、後述する瞬時値発生サブルーチンの中で制御周期ごとに必要な値だけを演算しても良い。
【０１３０】
図２０に戻り、Ｓ５１８およびＳ５１０を経てＳ５２０に進んで目標歩容の瞬時値を算出する。
【０１３１】
図２２はその作業を示すサブルーチン・フロー・チャートであり、第１の実施の形態と同様にＳ７００からＳ７０６までの処理を行って足平および上体の位置・姿勢を算出する。尚、Ｓ７０６では式２の中のｘ，ｙに関する式に従って上体水平位置を算出する。続いて図２０に戻ってＳ５２２を経てＳ５０８に戻って以上の処理を繰り返す。
【０１３２】
第２の実施の形態は上記の如く構成したことから、第１の実施の形態と同様の効果を得ることができる。
【０１３３】
但し、記憶する標準歩容の組合せや標準歩容の性質によっては、第１の実施の形態に対する第２の実施の形態の優位性は異なる。例えば、直接設定パラメータの組が作る全空間をパラメータ空間と呼ぶとき、第１の実施の形態において直接設定パラメータのそれぞれに対してある間隔毎に離散化し、パラメータ空間内に格子状の不連続部分空間を作り、その不連続部分空間のすべての直接設定パラメータの組に対して望ましい標準歩容を作成する。即ち、直接設定パラメータ以外のパラメータ（従属パラメータ）の値を望ましい歩容になるように調整する。
【０１３４】
このようにして作成した標準歩容を持っていれば、ほとんどの標準歩容がベース歩容としての条件を満たす（ベース歩容の条件は、その歩容から全ての変更したいパラメータに対してその１つだけが異なる標準歩容が存在することである）。従って、第１の実施の形態の手法で任意の歩容が作成でき、パラメータ感度を持つ必要がない。
【０１３５】
尚、第２の実施の形態において、広範囲の歩容に対してパラメータ感度がほぼ等しい場合には、１つ１つの歩容に対してパラメータ感度を持つのではなく、広範囲の歩容において共有すれば良い。こうすれば、メモリ（ＲＯＭ８４）の容量を節約することができ、その場合には第１の実施の形態に比較してはるかに少ないメモリ容量で足る。
【０１３６】
例えば、Ｄ0(c, a),Ｄ1(c, a),Ｄ2(c, a）,...Ｄn(c, a) がほぼ同一値であるならば、その平均値をＤ(c, a)として、上記のパラメータ感度を用いたパラメータ決定式におけるＤ0(c, a),Ｄ1(c, a),..の代わりにＤ(c, a)を共通に使えば良い。
【０１３７】
図２３はこの発明の第３の実施の形態を示すフロー・チャートである。
【０１３８】
第３の実施の形態においては、第１の実施の形態と同様の標準歩容を用いると共に、第２の実施の形態の歩容パラメータ感度も用いるようにした。
【０１３９】
第３の実施の形態における要求歩容の生成手法を説明する。
【０１４０】
第３の実施の形態においては、従属パラメータの値を求めるに当たって、直接設定パラメータの影響を、一部は第１の実施の形態の手法で、残りは第２の実施の形態の手法を用いて求める。即ち、歩容の混合と、歩容パラメータ感度による摂動分の加算を併用するようにした。
【０１４１】
例えば、直接設定パラメータの内のａの影響に対しては第１の実施の形態、ｂの影響に対しては第２の実施の形態の手法を用いると、次式のようになる。
c3 = c0
＋  （  ｃ１  −  ｃ０  ）  ＊( a3 - a0 ) / ( a1 - a0 )
+ Ｄ0( c,b )＊( b3 - b0 )
d3 = d0
+ ( d1 - d0 ) ＊( a3 - a0 ) / ( a1 - a0 )
+ Ｄ0( d,b )＊( b3 - b0 )
ｘ３（ｋ）  ＝  ｘ０（ｋ）
+ ( x1(k) - x0(k) ) ＊( a3 - a0 ) / ( a1 - a0 )
+ Ｄ0( x(k) ,b )＊( b3 - b0 )
ｙ３（ｋ）  ＝  ｙ０（ｋ）
+ ( y1(k) - y0(k) ) ＊( a3 - a0 ) / ( a1 - a0 )
+ Ｄ0( y(k) ,b )＊( b3 - b0 )
【０１４２】
図２３を参照して説明すると、Ｓ８００においてオフラインで作成した標準歩容と歩容パラメータ感度を記憶し、Ｓ８０２以降に進んで第１の実施の形態と同様の処理を行い、Ｓ８１６から図２４フロー・チャートに進んでＳ９００以降において歩容の混合を行う。また図２３フロー・チャートのＳ８２０から図２５フロー・チャートのＳ１０００以降に進んで瞬時値を算出する。
【０１４３】
第３の実施の形態は上記の如く構成したことから、従前の実施の形態と同様の効果を有する。
【０１４４】
図２６はこの発明の第４の実施の形態を示すフロー・チャートである。
【０１４５】
標準歩容から得られる混合歩容（要求歩容）同士は、図２７に示す如く、歩容境界における上体位置・速度が少しずれる傾向があるので、ある混合歩容の終端上体位置・速度を次の混合歩容の初期上体位置・速度に合わせる必要が生じる。そこで第４の実施の形態では、上体位置・速度の境界条件を任意に設定するようにした。即ち、初期上体位置・速度および終端上体位置・速度も直接設定パラメータとして考慮し、上体位置・速度が境界条件において連続するようにした。
【０１４６】
その手法を要約すると、先ず第１ないし第３の実施の形態の手法を用いて、初期上体位置・速度および終端上体位置・速度を除く、直接設定パラメータが全て望み通りに設定された混合歩容を生成し、次いで初期上体位置・速度および終端上体位置・速度も望み通りになるように、ＺＭＰパラメータを補正する。
【０１４７】
前半の処理は従前の実施の形態と同様であるので説明を省略し、以下、後半の初期上体位置・速度および終端上体位置・速度も望み通りになるようにＺＭＰパラメータを補正する手法を説明する。
【０１４８】
前述の歩容生成手法において、初期上体位置・速度、終端上体位置・速度およびＺＭＰパラメータ以外の歩容パラメータが固定されている場合を考える。
【０１４９】
この場合、初期上体位置・速度とＺＭＰパターンを設定すると動力学的平衡条件を満足する歩容が一義的に決定されるので、終端上体位置・速度も一義的に決定される。逆に、終端上体位置・速度とＺＭＰパターンを与えると、初期上体位置・速度が一義的に決定される。従って、初期上体位置・速度と終端上体位置・速度を任意に設定するためには、ＺＭＰパターンはそれに合わせて調整しなければならない。即ち、ＺＭＰパターンを決めてしまえば、初期上体位置・速度と終端上体位置・速度は、１対１写像の関係になっている。
【０１５０】
以下では、説明を簡単にするために上体の前後方向（Ｘ方向）の挙動だけを考えることとすると、状態量は位置と速度の２変数であるから、これらに関する境界条件を任意に設定できるようにするためには、ＺＭＰパターンに２個以上のパラメータが必要である。
【０１５１】
ここでは、ＺＭＰパラメータの一部をわずかに変更するだけで、上体境界位置・速度を大きく変更できるように、ＺＭＰパターンとそのパラメータを図２８のように設定する。
【０１５２】
これは、従前の実施の形態で用いるＺＭＰパターンよりも複雑なパターンとなっている。なぜなら、従前の実施の形態で用いたのと同様のＺＭＰパターンを用いると、上体の前後方向の位置と速度の両方を同時に満足させるためには、パラメータｃ以外に足平軌道に影響を与えない時間のパラメータｔ２も変更しなくてはならないが、ｔ２を大きく変更しても、上体境界位置・速度はわずかしか修正できないからである。
【０１５３】
第４の実施の形態においてＺＭＰパラメータの決定は、第１の実施の形態あるいは第２の実施の形態のいずれの手法を用いても可能であるが、ここでは第２の実施の形態の手法を採用してＺＭＰパラメータの補正量と上体の補正軌跡を以下の手順で決定するようにした。尚、ＺＭＰパラメータの補正量は、混合歩容の上体境界条件を望みの値にするために混合歩容のＺＭＰパラメータに加える補正量を意味する。
【０１５４】
図２６を参照して第４の実施の形態の動作を説明すると、Ｓ１１００において従前の実施の形態と同様にオフラインで作成した標準歩容を記憶しておき、Ｓ１１０２に進んで各種標準歩容の終端上体位置・速度を求めて記憶した後、Ｓ１１０４に進んで以下の処理を行う。
【０１５５】
先ず、混合歩容においてＺＭＰパラメータｃに着目し、これを図２９に示すようにΔｃだけ微小摂動させ、それに伴って、動力学平衡条件を満足するように上体位置の時系列データの摂動分Δx(k)を求める。
【０１５６】
このとき、
Ｒmix(x(k),ｃ)＝Δx(k)／Δｃ
とおく。このＲmix(x(k), c)をｃに対するx(k)の偏微分的感度（前記歩容パラメータ感度に相当）と呼ぶ。同様に、図３０に示すように、ＺＭＰパラメータｅに関してＲmix(x(k),ｅ)を求める。
【０１５７】
第２の実施の形態においては、ある注目したパラメータに対するx(k)の感度を求めるときに、制約条件として歩容の最適性を維持しながら、注目したパラメータとx(k)を除く複数の従属パラメータを調整した。それに対して、第４の実施の形態では、歩容の最適性を無視して、注目したパラメータとx(k)を除く全てのパラメータを固定して感度を求めるようにした。言ってみれば、第２の実施の形態は最適性を制約条件にした全微分、第４の実施の形態は最適性を無視した偏微分を求めることになる。
【０１５８】
次にＳ１１０６に進み、Ｒmix(x(k), c)とＲmix(x(k), e)の終端とその直前の値から、混合歩容におけるＺＭＰパラメータｃに対する終端上体位置の偏微分的感度Ｒmix(Xe, c)、終端上体速度の偏微分的感度Ｒmix(Ve, c)、ＺＭＰパラメータｅに対する終端上体位置の偏微分的感度Ｒmix(Xe, e)、終端上体速度の偏微分的感度Ｒmix(Ve, e)を次式によって求める。
【０１５９】
Ｒmix(Xe,ｃ)＝Ｒmix(x(ke),ｃ)
Ｒmix(Ve,ｃ)＝(Ｒmix(x(ke),ｃ) -Ｒmix(x(ke-1),ｃ)) / Δｔ
Ｒmix(Xe,ｅ)＝Ｒmix(x(ke),ｅ)
Ｒmix(Ve,ｅ)＝(Ｒmix(x(ke),ｅ) - Ｒmix(x(ke-1),ｅ)) / Δｔ
但し、ke：時系列の最後の配列番号、Δｔ：時系列の刻み時間（離散系のサンプル時間）である。
【０１６０】
次いでＳ１１０８に進み、求めた感度から第１行第１列の要素がＲmix(Xe, c)、第１行第２列の要素がＲmix(Xe, e)、第２行第１列の要素がＲmix(Ve, c)、第２行第２列の要素がＲmix(Ve, e)の２＊２行列を作成する。
【０１６１】
次いでＳ１１１０に進んで作成した行列の逆行列を求める。この逆行列の第１行第１列の要素は、終端上体位置Ｘe に対するパラメータｃの偏微分的感度Ｒmix(c, Xe)、第２行第１列の要素は、終端上体位置Ｘe に対するパラメータｅの偏微分的感度Ｒmix(e, Xe)、第１行第２列の要素は、終端上体速度Ｖe に対するパラメータｃの偏微分的感度Ｒmix(c, Ve)、第２行第２列の要素は、終端上体速度Ｖe に対するパラメータｅの偏微分的感度Ｒmix(e, Ve)とする。
【０１６２】
尚、あらゆる混合歩容において上記感度がほとんど変化しない場合には、その平均的な値をそれぞれＲ(c, Xe),Ｒ(e, Xe),Ｒ(c, Ve),Ｒ(e, Ve) として、全歩容に共通に用いれば良い。
【０１６３】
次いでＳ１１１２に進んで混合歩容において初期上体位置に着目し、これだけを図３１に示すようにΔx0だけ微小摂動させ、それに伴って、動力学平衡条件を満足するように上体位置の時系列データの摂動分Δx(k)を求める。当然、
Δx(0)＝Δx0
である。
【０１６４】
このとき、
Ｒmix(x(k), x0)＝Δx(k)／Δx0
とおく。同様に、図３２に示すように初期上体速度だけをΔv0だけ微小摂動させ、Ｒmix(x(k), v0)を求める。
【０１６５】
次にＳ１１１４に進み、求めた感度Ｒmix(x(k), x0) とＲmix(x(k), v0) の終端とその直前の値に基づいて、混合歩容における初期上体位置に対する終端上体位置の偏微分的感度Ｒmix(Xe, x0) 、終端上体速度の偏微分的感度Ｒmix(Ve, x0) 、初期上体速度に対する終端上体位置の偏微分的感度Ｒmix(Xe, v0) 、終端上体速度の偏微分的感度Ｒmix(Ve, v0) を次式によって求める。
【０１６６】
Ｒmix(Xe, x0)＝Ｒmix(x(ke), x0)
Ｒmix(Ve, x0)＝(Ｒmix(x(ke), x0) - Ｒmix(x(ke-1), x0)) / Δｔ
Ｒmix(Xe, v0)＝Ｒmix(x(ke), v0)
Ｒmix(Ve, v0)＝(Ｒmix(x(ke), v0) - Ｒmix(x(ke-1), v0)) / Δｔ
但し、ke：時系列の最後の配列番号、Δｔ：時系列の刻み時間である。
【０１６７】
続いてＳ１１１６に進んでタイマを０にリセットしてスタートさせ、Ｓ１１１８を経てＳ１１２０に進んでタイマ割り込みを待機し、Ｓ１１２２に進んで歩容の切り替わり目にあるか否か判断し、肯定されるときはＳ１１２４に進んでタイマを０にリセットし、次いでＳ１１２６に進んで直接設定パラメータの要求値を読み込み、Ｓ１１２８に進んで歩容の混合を行う。
【０１６８】
即ち、図３３サブルーチン・フロー・チャートのＳ１２００に進んで第１ないし第３の実施の形態と同様の手法を用いて混合歩容パラメータを作成する。この際に、初期上体位置・速度および終端上体位置・速度も要求値に近いものをベース歩容として選択する。
【０１６９】
但し、ベース歩容を選択した後、初期上体位置・速度および終端上体位置・速度に関しては、直接設定パラメータから除外し、従前の実施の形態と同様に混合歩容を生成する。
【０１７０】
次いでＳ１２０２に進んで初期上体位置・速度要求値と混合歩容の初期上体位置・速度との差を求め、これをΔｘ0,Δｖ0 とする。同様に、終端上体位置・速度要求値と混合歩容の終端上体位置・速度との差を求め、これをΔＸe,ΔＶeとする。
【０１７１】
次いでＳ１２０４に進み、混合歩容において初期上体位置・速度だけを初期上体位置・速度要求値に変更し、それに伴って、動力学平衡条件を満足するように、上体位置の時系列データを摂動させた歩容の、終端上体位置・速度の摂動量ΔＸse、ΔＶseを次式により求める。
ΔＸse＝Ｒmix(Xe, x0)＊Δｘ0＋Ｒmix(Xe, v0)＊Δｖ0
ΔＶse＝Ｒmix(Ｖe, x0)＊Δｘ0＋Ｒmix(Ｖe, v0)＊Δｖ0
【０１７２】
Ｓ１２０４の歩容は、初期上体位置・速度は要求値に一致しているが、終端上体位置・速度要求値とこの歩容の終端上体位置・速度との差は、ΔＸe ＋ΔＸse，ΔＶe ＋ΔＶseである。そこでＳ１２０６に進み、その差を０にするためのＺＭＰパラメータの補正量Δｃ，Δｅを次式によって求める。
Δｃ＝Ｒmix(ｃ, Ｘe)＊(ΔＸe ＋ΔＸse)＋Ｒmix(ｃ, Ｖe)＊(ΔＶe ＋ΔＶse)
Δｅ＝Ｒmix(ｅ, Ｘe)＊(ΔＸe ＋ΔＸse)＋Ｒmix(ｅ, Ｖe)＊(ΔＶe ＋ΔＶse)
【０１７３】
次いでＳ１２０８に進んでＺＭＰパラメータｃ，ｅを次式によって求める。
ｃ＝ｃmix＋Δｃ
ｅ＝ｅmix＋Δｅ
但し、ｃmix:混合歩容のパラメータｃの値、ｅmix:混合歩容のパラメータｅの値である。
【０１７４】
次いで図２６フロー・チャートに戻り、Ｓ１１３０に進んで目標歩容のパラメータに上記混合歩容のパラメータを代入する。但し、ＺＭＰパラメータｃ，ｅには、Ｓ１２０８で求めた値を代入する。次いでＳ１１２２を経てＳ１１３２に進んで目標歩容の瞬時値を算出する。
【０１７５】
具体的には、図３４サブルーチン・フロー・チャートのＳ１３００に進んで従前の実施の形態と同様の手法で時刻ｔのＺＭＰを求め、Ｓ１３０２に進んで従前の実施の形態と同様の手法で時刻ｔの両足平の位置・姿勢を求め、Ｓ１３０４に進んで目標歩容の上体位置を次式で求める。
ｘ(k) ＝xmix(x) ＋Ｒmix(x(k),c) ＊Δｃ＋Ｒmix(x(k),e) ＊Δe ＋Ｒmix(x(k),x0)＊Δx0＋Ｒmix(x(k),v0)＊Δv0
但し、xmix(x) ：混合歩容の上体軌道時系列のｋ番データである。尚、説明は省略するが、Ｙ方向の上体位置も同様に算出することは言うまでもない。また、Ｚ方向の上体位置はＸ，Ｙ方向の値と同様に算出しても、前記のこの出願と同時に提案する手法で算出しても良い。
【０１７６】
上記した処理によって具体的には図２７および図２９ないし図３２に示す波形を重ね合わせることとなり、それにより図３５に示すように、所望の境界条件を備えた目標歩容を生成することができる。尚、図３５に示す状況では、
ｃ＜０，ｃ＋Δｃ＜０，ｅ＜０，ｅ＋Δｅ＞０
とした。
【０１７７】
第４の実施の形態は上記の如く構成したので、歩容を自在かつリアルタイムに生成すると共に、生成された歩容同士の境界においてロボットの各部位の変位および変位速度を連続させることができる。
【０１７８】
図３６はこの発明の第５の実施の形態を示すフロー・チャートである。
【０１７９】
先の第４の実施の形態では、混合歩容におけるＺＭＰパラメータｃに対する上体位置時系列の偏微分的感度Ｒmix(x(k), c)、ＺＭＰパラメータｅに対する上体位置時系列の偏微分的感度Ｒmix(x(k), e)、初期上体位置に対する上体位置時系列の偏微分的感度Ｒmix(x(k), x0) 、初期上体速度に対する上体位置時系列の偏微分的感度Ｒmix(x(k), v0) を用いていた。言わば、ＺＭＰの摂動に対する上体軌道の摂動のモデルを時系列テーブルの形で持っていたと言える。
【０１８０】
第５の実施の形態では、その代わりに、以下の式で表されるロボットの線形摂動動力学モデル（ＺＭＰの摂動に対する上体位置速度の摂動の関係を表す線形化モデル）を用いて、上体位置・速度に関する境界条件を要求値に一致させるようにした。
【０１８１】
以下に、この手法の基本原理を説明する。尚、以下の説明では上体挙動とＺＭＰ軌道の前後方向（Ｘ方向）成分についてのみ議論するが、左右方向（Ｙ方向）も同様に考えれば良い。
【０１８２】
ロボット１の上体２４の質量がそれ以外の部位の質量に較べて十分に大きく、かつ歩行時に上体の上下加速度が小さいとする。この特殊条件が成立する場合には、ＺＭＰの摂動に対する上体位置・速度の摂動の関係、即ち、摂動動力学モデルは、次式および図３７で示される線形倒立振子モデルで近似される。図示の如く、このモデルにあっては支点２２ａも移動自在である。
【０１８３】
dxmdl/dt＝v
dvmdl/dt ＝ω0＊（xmdl‐ＺＭＰmdl）
ここで、xmdlは線形倒立振子の重心位置、vmdlは線形倒立振子の重心速度である。またω0は正の定数であり、上体重心高さｈおよび重力加速度ｇとほぼ次の関係を持つ。
ω0＝√（ｇ /ｈ）
【０１８４】
上記特殊条件が成立している場合には、第４の実施の形態における一般性の高い摂動動力学モデルＲmix(x(k), c), Ｒmix(x(k), e), Ｒmix(x(k), x0),Ｒmix(x(k), v0)の代わりに、上記した線形倒立振子モデルを用いることができる。以降、モデルの状態の表記に、時刻ｔを明示したい場合には、
xmdl(t) ，vmdl(t)
と表記する。
【０１８５】
上記を前提として図３６フロー・チャートを参照して説明する。尚、ＺＭＰパターンの構造は、第４の実施の形態と同一にする。
【０１８６】
先ず、Ｓ１４００において標準歩容を記憶しておき、Ｓ１４０２に進んで各標準歩容の終端上体位置・速度を求めて記憶した後、Ｓ１４０４に進み、ＺＭＰパラメータの内でｃとｅをｃ＝１，ｅ＝０、またｐ（図３５に示すように時刻０におけるＺＭＰの値）＝０、その他の折点でのＺＭＰの値を０、初期状態をx0＝０，v0＝０とし、歩容の終端時刻まで摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【０１８７】
具体的には、図２９におけるΔｃを１に設定したときのΔｃによるＺＭＰパターン補正量をモデル入力としてモデルの挙動を得、モデル終端状態を求め、続いてＺＭＰパラメータｃに対する終端モデル位置Xeの偏微分的感度を次式によって求める。
Ｒ(Xe,ｃ)＝Xe
【０１８８】
同様にＺＭＰパラメータｃに対する終端モデル速度Veの偏微分的感度を次式によって求める。
Ｒ(Ve,ｃ)＝Ve
【０１８９】
尚、摂動動力学モデルの挙動の計算は、モデルを離散化してから逐次演算によって求めても良いし、解析的に解いても良い。
【０１９０】
次いでＳ１４０６に進み、ＺＭＰパラメータの内でｃとｅをｃ＝０，ｅ＝１、またｐ＝０、その他の折点でのＺＭＰの値を０、初期状態をx0＝０，v0＝０として、歩容の終端時刻まで、摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【０１９１】
次いでＺＭＰパラメータｅに対する終端モデル位置Xeの偏微分的感度を次式によって求める。
Ｒ(Xe,ｅ)＝Xe
【０１９２】
同様にＺＭＰパラメータｅに対する終端モデル速度の偏微分的感度を次式によって求める。
Ｒ(Ve,ｅ)＝Ve
【０１９３】
次いでＳ１４０８に進み、ＺＭＰパラメータの内でｃとｅをｃ＝０，ｅ＝０、またｐ＝０、その他の折点でのＺＭＰの値を０、初期状態をx0＝１，v0＝０として、歩容の終端時刻まで摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【０１９４】
次いで初期モデル位置x0に対する終端モデル位置Xeの偏微分的感度を次式によって求める。
Ｒ(Xe, x0)＝Xe
【０１９５】
同様に、初期モデル位置x0に対する終端モデル速度Veの偏微分的感度を次式によって求める。
Ｒ(Ve, x0)＝Ve
【０１９６】
次いでＳ１４１０に進み、ＺＭＰパラメータの内でｃとｅをｃ＝０，ｅ＝０、またｐ＝０、その他の折点でのＺＭＰの値を０、初期状態をx0＝０，v0＝１として、歩容の終端時刻まで、摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【０１９７】
次いで初期モデル速度v0に対する終端モデル位置Xeの偏微分的感度を次式によって求める。
Ｒ(Xe, v0)＝Xe
【０１９８】
同様に、初期モデル速度v0に対する終端モデル速度Veの偏微分的感度を次式によって求める。
Ｒ(Ve, v0)＝Ve
【０１９９】
次いでＳ１４１１に進み、ｃ＝０，ｅ＝０，ｐ＝１、その他の折点でのＺＭＰを０、初期状態をx0＝０，v0＝０として歩容の終端時刻までの摂動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veの偏微分感度を求める。
【０２００】
次いで初期モデル速度ｖ0 に対する終端モデル位置Xeの偏微分的感度を次式によって求める。
Ｒ(Xe, p）＝Xe
【０２０１】
次いで初期モデル速度ｖ0 に対する終端モデル速度Veの偏微分的感度を次式によって求める。
Ｒ(Ve, p）＝Ve
【０２０２】
次いでＳ１４１２に進み、求めた感度から第１行第１列の要素がＲ(Xe, c) 、第１行第２列の要素がＲ(Xe, e) 、第２行第１列の要素がＲ(Ve, c) 、第２行第２列の要素がＲ(Ve, e) の２＊２行列を作成する。
【０２０３】
次いでＳ１４１４に進み、作成した行列の逆行列を求める。逆行列の第１行第１列の要素は、終端モデル位置Ｘeに対するパラメータｃの偏微分的感度Ｒ(c, Xe) 、第２行第１列の要素は、終端モデル位置Ｘeに対するパラメータｅの偏微分的感度Ｒ(e, Xe) 、第１行第２列の要素は、終端モデル速度Ｖeに対するパラメータｃの偏微分的感度Ｒ(c, Ve) 、第２行第２列の要素は、終端モデル速度Ｖeに対するパラメータｅの偏微分的感度Ｒ(e, Ve)とする。
【０２０４】
次いでＳ１４１６でタイマを０にリセットしてスタートさせ、Ｓ１４１８，Ｓ１４２０を経てＳ１４２２に進んで歩容の切り替わり目にあるか否か判断し、否定されるときはＳ１４３２に進むと共に、肯定されるときはＳ１４２４，Ｓ１４２６を経てＳ１４２８に進んで歩容の混合を行う。
【０２０５】
図３８フロー・チャートを参照してその歩容の混合処理を説明すると、Ｓ１５００において従前の実施の形態のいずれかの手法で混合歩容パラメータを生成する。このとき、初期および終端上体位置・速度要求値に近い標準歩容をベース歩容として選択するが、それ以外の混合歩容パラメータを生成する過程では、初期および終端上体位置・速度を直接設定パラメータから除外し、他の実施の形態と同様に、混合歩容パラメータを求める。次いでＳ１５０２に進んで初期および終端上体位置・速度要求値と混合歩容の初期および終端上体位置・速度との差Δx0, Δv0, ΔXe, ΔVeを求める。
【０２０６】
続いてＳ１５０４に進み、モデルの初期位置・速度をΔｘ0,Δｖ0 とし、ＺＭＰを０とした場合の終端位置・速度ΔＸse, ΔＶseを次式により求める。
ΔＸse＝Ｒ(Xe, x0)＊Δｘ0＋Ｒ(Xe, v0)＊Δｖ0
ΔＶse＝Ｒ(Ｖe, x0)＊Δｘ0＋Ｒ(Ｖe, v0)＊Δｖ0
【０２０７】
次いでＳ１５０６に進み、ＺＭＰパラメータの補正量Δｃ，Δｅを次式によって求める。
Δｃ＝Ｒ(ｃ, Ｘe)＊(Δｘ＋ΔＸse)＋Ｒ(ｃ, Ｖe)＊(Δｖ＋ΔＶse)
Δｅ＝Ｒ(ｅ, Ｘe)＊(Δｘ＋ΔＸse)＋Ｒ(ｅ, Ｖe)＊(Δｖ＋ΔＶse)
【０２０８】
次いでＳ１５０８に進んでＺＭＰパラメータｃ，ｅをＳ１２０８で用いたのと同じ式によって求める。続いて図３６フロー・チャートのＳ１４３０，Ｓ１４３２を経て図３９フロー・チャートに進み、Ｓ１６００およびＳ１６０２で第４の実施の形態と同様の処理を行ってＳ１６０４に進み、ＺＭＰ軌道補正量を求める。これは、図２８においてパラメータｃ＝Δｃ，ｅ＝Δｅ、その他の折点のＺＭＰの値を０としたパターンである。
【０２０９】
次いでＳ１６０６に進み、モデル初期位置・速度を xmdl(0)=Δx0，vmdl(0)=Δv0とし、ＺＭＰmdl として上記ＺＭＰ軌道補正量を入力し、モデルの挙動を逐次演算によって計算する。即ち、モデルの前回（時刻ｔ−Δｔ）の位置・速度と今回（時刻ｔ）のＺＭＰ軌道補正量に基づいて離散化モデル式によってモデルの今回（時刻ｔ）の位置・速度を求める。但し、最初の制御周期では、モデルの今回の位置・速度を xmdl(0)=Δx0、vmdl(0)=Δv0とする。尚、離散化モデルには、現代制御理論で一般的に用いられるマトリクス表現モデルを用いれば良い。
【０２１０】
次いでＳ１６０８に進んで次式に従って、モデル位置を補正量として混合上体位置に加えることによって目標上体位置を求める。
x(k)＝xmix(k)＋xmdl(kΔt)
但し、x(k)：目標上体位置
xmix(k)：混合歩容の上体軌跡時系列のk番データ
xmdl(kΔt)：時刻kΔtのモデル位置、である。
【０２１１】
第５の実施の形態は上記の如く構成したことから、第４の実施の形態と同様の効果を得ることができる。
【０２１２】
より具体的には線形倒立振子モデルを用いたことから、メモリ（ＲＯＭ８４）の容量が僅少で足り、逐次演算などによってわずかな計算量でリアルタイムに上体軌道の摂動を計算することができる。また、このモデル式は厳密解が容易に求められ、この厳密解から将来の挙動予測を容易に行うことができる。
【０２１３】
尚、ＺＭＰパラメータに対する終端上体位置・速度の感度は厳密解によって求められるが、指数関数演算を含んでいるので、予めその値を求めて記憶しておいた方が演算時間を一層節約することができる。
【０２１４】
図４０はこの発明の第６の実施の形態を示すフロー・チャートである。
【０２１５】
先にも触れたが、初期遊脚足平位置、終端遊脚足平位置を摂動させても、それによる慣性力が無視できる場合、すなわちＺＭＰがほとんど変化しない場合には、歩容の生成を簡略化することができる。第６の実施の形態は、それを意図した。
【０２１６】
この明細書で定義する歩容では、終端時刻は遊脚が着地した瞬間であり、そのときにはＺＭＰは未だ支持脚足平の接地面に設定されている。従って、終端遊脚足平位置を変えても、それによる慣性力が無視できるなら、ＺＭＰパラメータを変える必要はないが、設定ＺＭＰパターンの初期位置が初期遊脚足平位置・姿勢のつまさきに存在するように通常設定されることから、初期遊脚足平位置を変えるときは、ＺＭＰパターンも変更しなければならない。
【０２１７】
以下、初期遊脚足平位置を変えるなどＺＭＰパラメータを変更する場合を例にとって、第５の実施の形態との相違点に焦点をおいて説明する。
【０２１８】
図４０フロー・チャートにおいてＳ１７００からＳ１７１０まで第５の実施の形態と同様の処理を経てＳ１７１２に進む。第６の実施の形態では動力学的平衡条件を満足させるために、ＺＭＰパターンの変更に伴い、以下の処理を追加変更した。
【０２１９】
即ち、Ｓ１７１２においては図４１に示すように、時刻０におけるＺＭＰの値をｐとすると共に、ＺＭＰパラメータの内でｃとｅとｐを、ｃ＝０，ｅ＝０，ｐ＝１、その他の折点でのＺＭＰの値を０、初期状態をx0＝０，v0＝０として、歩容の終端時刻まで摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【０２２０】
次いでＺＭＰパラメータｐに対する終端モデル位置Xeの偏微分的感度を次式によって求める。
Ｒ(Xe,ｐ)＝Xe
【０２２１】
同様に、ＺＭＰパラメータｐに対する終端モデル速度Veの偏微分的感度を次式によって求める。
Ｒ(Ve,ｐ)＝Ve
【０２２２】
続いてＳ１７２８まで第５の実施の形態と同様の処理を行い、Ｓ１７３０に進んで歩容の混合を行う。即ち、図４２フロー・チャートのＳ１８００において従前の実施の形態のいずれかの手法で混合歩容パラメータを作成する。このとき、初期上体位置・速度、終端上体位置・速度、初期遊脚足平位置および終端遊脚足平位置も要求値に近いものをベース歩容として選択する。
【０２２３】
但し、ベース歩容を選択した後、初期上体位置・速度、終端上体位置・速度、初期遊脚足平位置および終端遊脚足平位置に関しては、直接設定パラメータから除外して、他の実施例と同様に混合歩容を作成する。従って、初期上体位置・速度、終端上体位置・速度、初期遊脚足平位置および終端遊脚足平位置は、ベース歩容のままの値となる。
【０２２４】
続いてＳ１８０２，Ｓ１８０４の処理を経てＳ１８０６に進み、初期遊脚足平位置要求値と混合歩容の初期遊脚足平位置との差を求め、それをΔｐとする。続いてＳ１８０８に進んでモデルの初期ＺＭＰをΔｐとし、その他の折点でのＺＭＰを０とした場合の終端位置・速度ΔＸpe、ΔＶpeを次式により求める。
ΔＸpe＝Ｒ(Xe, ｐ)＊Δｐ
ΔＶpe＝Ｒ(Ｖe, ｐ)＊Δｐ
【０２２５】
続いてＳ１８１０に進んでＺＭＰパラメータの補正量Δｃ，Δｅを次式によって求める。
Δｃ＝Ｒ(ｃ, Ｘe)＊(ΔＸe ＋ΔＸse＋ΔＸpe)＋Ｒ(ｃ, Ｖe)＊(ΔＶe ＋ΔＶse＋ΔＶpe)
Δｅ＝Ｒ(ｅ, Ｘe)＊(ΔＸe ＋ΔＸse＋ΔＸpe)＋Ｒ(ｅ, Ｖe)＊(ΔＶe ＋ΔＶse＋ΔＶpe)
【０２２６】
続いて図４０フロー・チャートに戻り、Ｓ１７３２に進んで目標歩容のパラメータに上記混合歩容のパラメータを代入する。但し、ＺＭＰパラメータｃ，ｅには、Ｓ１８１２で求めた値を代入する。また、初期遊脚足平位置パラメータおよび終端遊脚足平位置パラメータには要求値を代入する。
【０２２７】
続いてＳ１７３４から図４３フロー・チャートに進み、Ｓ１９００，Ｓ１９０２で第５の実施の形態と同様の処理を行う。これによって初期遊脚足平位置と終端遊脚足平位置の要求を満足する足平軌道と、補正されたＺＭＰ軌道が得られる。次いでＳ１９０４に進み、ＺＭＰ軌道補正量を求める。これは図４４に示す如く、パラメータｃ＝Δｃ，ｅ＝Δｅ，ｐ＝Δｐ、その他の折点のＺＭＰの値を０としたＺＭＰパターンである。
【０２２８】
尚、残余の構成は、第５の実施の形態と異ならない。
【０２２９】
第６の実施の形態は上記の如く構成したので、第４ないし第５の実施の形態と同様の効果を得ることができると共に、初期上体位置・速度が異なる歩容を標準歩容として記憶しておく必要がないので、記憶容量を一層低減することができる。
【０２３０】
図４５はこの発明の第７の実施の形態を示す、図３に示す第１の実施の形態と同様の歩容生成装置のブロック図である。但し、第７の実施の形態では上体水平位置の算出手法が異なる。
【０２３１】
第７の実施の形態においては、得られた今回（時刻ｔ）の混合歩容の両足平の位置・姿勢、ＺＭＰおよび上体高さＺと前回（時刻ｔ−Δｔ）の状態（上体位置・速度など）をロボット運動モデル（ダイナミクスとキネマティクスと各種拘束式、制約条件式からなる）に入力して、動力学的平衡条件を満足した上体位置の水平座標（Ｘ、Ｙ）の今回値（瞬時値）を算出するようにした。
【０２３２】
即ち、第７の実施の形態においては、第２の実施の形態と同様に、図４６フロー・チャートのＳ２０００ないし２０１４から図４７フロー・チャートのＳ２１００ないしＳ２１０４の処理を経て図４６に戻り、Ｓ２０２２から図４８のＳ２２００以降に進み、Ｓ２２０６において混合歩容の上体と混合歩容の足平の運動から動力学的に計算されるＺＭＰが混合歩容のＺＭＰパラメータから求められる設定ＺＭＰに一致するように、混合歩容の上体軌道を逐次演算によって求めるようにした。
【０２３３】
但し、歩容初期では、上体の位置・速度には適宜設定した初期上体位置・速度パラメータ値を使用する。即ち、１歩の歩容は、初期上体位置・速度パラメータ値から始まって、逐次演算によって順々に計算することによって求められる。
【０２３４】
この手法では、演算量が多く、終端上体位置姿勢が要求値から若干ずれる欠点があるが、動力学的平衡条件を厳密に満足させることができる。
【０２３５】
尚、第７の実施の形態において、今回の上体高さと上体水平位置を、動力学的平衡条件と上体高さ決定法の拘束式を同時に満足するように求めても良い。従前の実施の形態では、演算時間短縮のため、上体高さは短時間に大きく変化することはないと仮定して、前回上体水平位置を用いて上体高さを算出した。
【０２３６】
このように上記した第１ないし第７の実施の形態において、少なくとも上体２４と、前記上体に関節１０，１２，１４Ｒ（Ｌ）を介して連結される複数本の脚部リンク２とからなる脚式移動ロボットの歩容生成装置において、少なくとも１歩分の歩容について、それぞれ床反力に関するパラメータを含むパラメータの集合からなる複数種の標準歩容を記憶する標準歩容記憶手段（Ｓ１０など）、歩容に関する要求を行う歩容要求手段（Ｓ２４など）、および前記歩容に関する要求に対して前記標準歩容を１個ないし複数個選択し、前記選択した標準歩容を基に近似演算を行うことにより、前記歩容に関する要求を満足する近似歩容を生成する歩容生成手段（Ｓ２６ないしＳ３０，Ｓ１００ないしＳ１０６，Ｓ２００ないしＳ２０６など）を備える如く構成した。
【０２３７】
また、前記歩容生成手段は、前記選択した歩容を加重平均して前記近似歩容を求める（Ｓ１００ないしＳ１０６，Ｓ２００ないしＳ２０６など）如く構成した。
【０２３８】
また、前記歩容生成手段は、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求める（Ｓ５００，Ｓ６００ないしＳ６０４、Ｓ７００ないしＳ７０６など）如く構成した。
【０２３９】
また、前記歩容生成手段は、前記選択した歩容を加重平均すると共に、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求める（Ｓ８００，Ｓ９００ないしＳ９０６，Ｓ１０００ないしＳ１００６など）如く構成した。
【０２４０】
また、前記歩容生成手段は、前記標準歩容の少なくとも１個についてその単位変更量当たりの他のパラメータの変更量を前記歩容のパラメータ感度として求めて記憶する記憶手段（Ｓ５００，Ｓ８００など）を備え、前記記憶された歩容のパラメータ感度を用いて前記近似歩容を求める如く構成した。
【０２４１】
また、前記標準歩容生成手段は、前記標準歩容の床反力に関するパラメータに対するその他のパラメータの摂動の関係を表現する表現手段（Ｓ１１０４ないしＳ１１１４など）を備え、前記表現された摂動の関係に基づいて前記近似歩容を補正し、境界条件において少なくとも変位および速度が連続するように前記歩容に関する要求を満足する歩容を生成する（Ｓ１１２８，Ｓ１２００ないしＳ１２０８）如く構成した。
【０２４２】
また、前記その他のパラメータの摂動が上体の水平位置の摂動である如く構成した。
【０２４３】
また、前記関係が線形モデルで表現される如く構成した。
【０２４４】
また、前記関係が倒立振子モデルで表現される如く構成した。
【０２４５】
また、前記関係が時系列値で表現される如く構成した。
【０２４６】
また、前記歩容生成手段は、前記床反力に関するパラメータが所定の条件にあるときは、そのパラメータを除外して前記近似歩容を求める（Ｓ１７３０，Ｓ１８００ないしＳ１８１２）如く構成した。
【０２４７】
また、前記歩容生成手段は、前記生成された歩容に基づいて前記ロボットの関節角度を算出する関節角度算出手段（Ｓ３０２）、および算出された関節角度となるように前記ロボットの関節を駆動制御する関節駆制御手段（Ｓ３０６）を備える如く構成した。
【０２４８】
また、前記関節角度決定手段は、前記ロボットの状態量を検出する検出手段（Ｓ３００，Ｓ４００ないしＳ４０６）、および検出された状態量に基づいて前記ロボットの位置および姿勢を修正する修正手段（Ｓ４０８）を備え、前記関節角度算出手段は、修正された位置および姿勢となるように前記ロボットの関節角度を算出する如く構成した。
【０２４９】
尚、上記した第１ないし第７の実施の形態において、近似演算の例は図示のもの止まらず、他にも種々の変形が可能である。
【０２５０】
また、上記した第１ないし第７の実施の形態において、上体位置は上体２４内のある基準点を支持脚接地点から見た座標で記述している。この基準点は左右方向に関しては、中心に設定すべきであるが、前後方向に対しては以下のように幾つかの設定法がある。
設定法1）上体の重心に設定する（第１ないし第７の実施の形態で採用）
設定法２）直立時に全体重心位置と一致するような位置に設定する。
設定法３）試行錯誤によって、適当な位置に設定する。
【０２５１】
いずれの設定方式を採用しても、上体の向きが一定である歩行の場合には差が生じないが、旋回歩行など、上体の向きが変化する場合には、基準点の取り方によって誤差の生じ方が異なってくる。たとえば、図４９に示すように、基準点を紙面右方向に移動させながら、基準点まわりに上体を回転させる場合を考えると、基準点が上体の中央にある場合と、前寄りにある場合とでは、明らかに上体の位置関係が異なっていることが分かる。
【０２５２】
混合歩容（要求歩容）を生成する際に、異なる旋回角を持つ歩容を混合する例を示したが、歩容を混合することは一種の近似である。しかし、以上の理由から、基準点の設定次第で混合された歩容が微妙に異なり、動力学平衡条件に対する近似精度が変化する。
【０２５３】
従って基準点は、なるべく動力学平衡条件に対する誤差が小さくなるように設定されるべきである。上記の設定法のいずれが最適であるか、または、いずれであっても支障ないかは、ロボットの構造や歩行のさせ方による。
【０２５４】
更に、動力学平衡条件の精度を高めるために、上体位置の時系列テーブルの代わりに、ロボット全体重心の時系列テーブルを使うことも考えられる。但し、欠点として、ロボット全体重心が指示された位置になるようにロボットの姿勢を求めるために、かなりの演算が必要となる。
【０２５５】
また、上記において、歩容パラメータとして（変位）加速度については述べなかったが、歩容の境界において加速度まで合わせる方が、より滑らかな歩容が生成されることは言うまでもない。
【０２５６】
また、この発明を２足歩行ロボットに関して説明してきたが、２足歩行ロボットに限らず、多脚ロボットにも応用することができる。
【０２５７】
【発明の効果】
床反力を含む歩容を自在かつリアルタイムに生成して任意の歩幅や旋回角などを実現することができる。また、生成された歩容同士の境界においてロボットの各部位の変位および速度が連続させることができる。更に、リアルタイムに生成した歩容に基づいて脚式移動ロボットを駆動制御することができる。
【図面の簡単な説明】
【図１】この発明に係る脚式移動ロボットの歩容生成装置を全体的に示す説明図である。
【図２】図１に示す２足歩行ロボットの制御ユニットの詳細を示すブロック図である。
【図３】この発明に係る脚式移動ロボットの歩容生成装置の動作を機能的に示すブロック図である。
【図４】この発明に係る脚式移動ロボットの歩容生成装置の動作を示すメイン・フロー・チャートである。
【図５】図３および図４の歩容生成動作で使用する標準歩容の中の第０標準歩容の遊脚位置および姿勢を示す説明図である。
【図６】図５の第０標準歩容の足平軌跡を示すタイミング・チャートである。
【図７】図５の第０標準歩容のＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図８】図３および図４の歩容生成動作で使用する標準歩容の中の第１標準歩容の遊脚位置および姿勢を示す説明図である。
【図９】図８の第１標準歩容のＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図１０】図３および図４の歩容生成動作で使用する標準歩容の中の第２標準歩容の遊脚位置および姿勢を示す説明図である。
【図１１】図１０の第２標準歩容のＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図１２】図３および図４の歩容生成動作で要求された要求歩容の遊脚位置および姿勢を示す説明図である。
【図１３】図１２の要求歩容のＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図１４】図４フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図１５】図１４フロー・チャートの動作を説明する説明図である。
【図１６】図１５と同様に図１４フロー・チャートの動作を説明する説明図である。
【図１７】図４フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図１８】図３および図４の歩容生成動作で生成された歩容に基づいて行われる、本出願人が先に提案した両脚コンプライアンス制御のフロー・チャートである。
【図１９】図１８フロー・チャートの中の両脚コンプライアンス操作量算出作業を示すサブルーチン・フロー・チャートである。
【図２０】この発明の第２の実施の形態に係る装置の動作を示す、図４と同様のメイン・フロー・チャートである。
【図２１】図２０フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図２２】図２０フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図２３】この発明の第３の実施の形態に係る装置の動作を示す、図４と同様のメイン・フロー・チャートである。
【図２４】図２３フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図２５】図２３フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図２６】この発明の第４の実施の形態に係る装置の動作を示す、図４と同様のメイン・フロー・チャートである。
【図２７】従前の実施の形態で生成された上体位置などの歩容を示すタイミング・チャートである。
【図２８】図２６フロー・チャートの動作における境界条件合わせを説明するＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図２９】図２６フロー・チャートの動作の動作を説明するＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図３０】同様に図２６フロー・チャートの動作の動作を説明するＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図３１】同様に図２６フロー・チャートの動作の動作を説明するＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図３２】同様に図２６フロー・チャートの動作の動作を説明するＺＭＰ（Ｘ座標）のタイミング・チャートである。
【図３３】図２６フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図３４】図２６フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図３５】図２６フロー・チャートに示す第４の実施の形態で生成される歩容を示す説明タイミング・チャートである。
【図３６】この発明の第５の実施の形態に係る装置の動作を示す、図４と同様のメイン・フロー・チャートである。
【図３７】第５の実施の形態で使用する倒立振子モデルの説明図である。
【図３８】図３６フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図３９】図３６フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図４０】この発明の第６の実施の形態に係る装置の動作を示す、図４と同様のメイン・フロー・チャートである。
【図４１】図４０フロー・チャートの第５の実施の形態の動作を説明するタイミング・チャートである。
【図４２】図４０フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図４３】図４０フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図４４】図４０フロー・チャートの動作を説明するタイミング・チャートである。
【図４５】この発明の第７の実施の形態に係る装置の構成および動作を示す、図３と同様のブロック図である。
【図４６】第７の実施の形態に係る装置の動作を示すメイン・フロー・チャートである。
【図４７】図４４フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図４８】図４４フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図４９】この発明に係る脚式移動ロボットの歩容生成装置が生成する歩容における上体の位置を説明する説明図である。
【符号の説明】
１                      ２足歩行ロボット（脚式移動ロボット）
２                      脚部リンク
１０，１２，１４Ｒ，Ｌ  股関節
１６Ｒ，Ｌ              膝関節
１８，２０Ｒ，Ｌ        足関節
２２Ｒ，Ｌ              足平
２４                    上体
２６                    制御ユニット
【図１】
0003658147.tif 000002
【図２】
0003658147.tif 000003
【図３】
0003658147.tif 000004
【図４】
0003658147.tif 000005
【図５】
0003658147.tif 000006
【図６】
0003658147.tif 000007
【図７】
0003658147.tif 000008
【図８】
0003658147.tif 000009
【図９】
0003658147.tif 000010
【図１０】
0003658147.tif 000011
【図１１】
0003658147.tif 000012
【図１２】
0003658147.tif 000013
【図１３】
0003658147.tif 000014
【図１４】
0003658147.tif 000015
【図１５】
0003658147.tif 000016
【図１６】
0003658147.tif 000017
【図１７】
0003658147.tif 000018
【図１８】
0003658147.tif 000019
【図１９】
0003658147.tif 000020
【図２０】
0003658147.tif 000021
【図２１】
0003658147.tif 000022
【図２２】
0003658147.tif 000023
【図２３】
0003658147.tif 000024
【図２４】
0003658147.tif 000025
【図２５】
0003658147.tif 000026
【図２６】
0003658147.tif 000027
【図２７】
0003658147.tif 000028
【図２８】
0003658147.tif 000029
【図２９】
0003658147.tif 000030
【図３０】
0003658147.tif 000031
【図３１】
0003658147.tif 000032
【図３２】
0003658147.tif 000033
【図３３】
0003658147.tif 000034
【図３４】
0003658147.tif 000035
【図３５】
0003658147.tif 000036
【図３６】
0003658147.tif 000037
【図３７】
0003658147.tif 000038
【図３８】
0003658147.tif 000039
【図３９】
0003658147.tif 000040
【図４０】
0003658147.tif 000041
【図４１】
0003658147.tif 000042
【図４２】
0003658147.tif 000043
【図４３】
0003658147.tif 000044
【図４４】
0003658147.tif 000045
【図４５】
0003658147.tif 000046
【図４６】
0003658147.tif 000047
【図４７】
0003658147.tif 000048
【図４８】
0003658147.tif 000049
【図４９】
0003658147.tif 000050