以下、移動体として2肢−4肢式移動ロボットを例にとって、本発明の一実施形態を説明する。
(2肢−4肢移動ロボットの構成)
図1に示す如く、第1実施形態の2肢−4肢移動ロボット1(以下、単にロボット1という)は、基体としての上体4と、この上体4を床面上で移動させる移動機構として、該上体4と床との間に介在する左右一対の下肢(脚体)2R,2Lと、上体4の上部の両側部に取り付けられた左右一対の上肢(腕体)3R,3Lとを備える。
ロボット1は、接地した下肢2R、2Lにより上体4が床面の上方に支持される2肢状態(第1形態)と、接地した下肢2R、2L及び上肢3R、3Lにより上体4が床面の上方に支持される4肢状態(第2形態)とに遷移可能に構成されている。
上体4は、上部上体4aと、下部上体4bとを備える。上部上体4aと下部上体4bは、後述する腰椎関節を介して連結されている。上部上体4aは、両上肢3R、3Lの基端部(上端部)に後述する肩関節を介して連結されている。下部上体4bは、両下肢2R,2Lの基端部(上端部)に後述する腰関節(股関節)を介して連結されている。
なお、第1実施形態の説明では、符号Rは、右側下肢(右下肢)又は右側上肢(右上肢)に対応するものであることを意味し、Lは左側下肢(左下肢)又は左側上肢(左上肢)に対応するものであることを意味する。また、X軸、Y軸、Z軸は、後述する支持肢座標系の3つの座標軸を意味する。この支持肢座標系のX軸方向、Y軸方向は、水平面上で互いに直交する2軸方向であり、X軸方向はロボット1の前後方向(ロール軸方向)、Y軸方向はロボット1の左右方向(ピッチ軸方向)に相当する。また、Z軸方向は鉛直方向(重力方向)であり、ロボット1の上下方向(ヨー軸方向)に相当する。この場合、第1実施形態では、Z軸方向である鉛直方向が、本発明における上下方向としての意味を持つ。
両下肢2R,2Lは同一構造であり、それぞれ6個の関節を備える。その6個の関節は上体4側から順に、腰(股)の回旋用(上体4に対するヨー方向(Z軸回り)の回転用)の関節10R,10Lと、腰(股)のロール方向(X軸まわり)の回転用の関節11R,11Lと、腰(股)のピッチ方向(Y軸まわり)の回転用の関節12R,12Lと、膝部のピッチ方向の回転用の関節13R,13Lと、足首部のピッチ方向の回転用の関節14R,14Lと、足首部のロール方向の回転用の関節15R,15Lとから構成される。
各下肢2の関節10R(L),11R(L),12R(L)によって3自由度の腰関節(股関節)が構成され、関節13R(L)によって1自由度の膝関節が構成され、関節14R(L),15R(L)によって2自由度の足首関節が構成されている。
そして、腰関節(股関節)10R(L),11R(L),12R(L)と膝関節13R(L)とは大腿リンク17R(L)で連結され、膝関節13R(L)と足首関節14R(L),15R(L)とは下腿リンク18R(L)で連結されている。また、各下肢2の足首関節14R(L),15R(L)の下部に、各下肢2の先端部(下端部)を構成する接地部(下肢接地部)16R(L)が取着されている。また、各下肢2の上端部(基端部)が、腰関節(股関節)10R(L),11R(L),12R(L)を介して上体4に連結されている。
両上肢3R,3Lは同一構造であり、それぞれ7個の関節を備える。その7個の関節は上体4側から順に、肩の回旋用(上体4に対するピッチ方向の回転用)の関節30R、30Lと、肩のロール方向の回転用の関節31R,31Lと、肩のヨー方向の回転用の関節32R,32Lと、肘のピッチ方向の回転用の関節33R,33Lと、手首部のヨー方向の回転用の関節34R,34Lと、手首部のロール方向の回転用の関節35R,35Lと、手首部のピッチ方向の回転用の関節36R,36Lとから構成される。
各上肢3R(L)の関節30R(L),31R(L),32R(L)によって3自由度の肩関節が構成され、関節33R(L)によって1自由度の肘関節が構成され、関節34R(L),35R(L)、36R(L)によって3自由度の手首関節が構成されている。
そして、肩関節(股関節)30R(L),31R(L),32R(L)と肘関節33R(L)とは上腕リンク38R(L)で連結され、肘関節33R(L)と手首関節34R(L),35R(L)、36R(L)とは前腕リンク39R(L)で連結されている。また、各上肢3R(L)の手首関節35R(L),36R(L)の下部に、各上肢3R(L)の先端部(下端部)を構成する手平(上肢接地部)37R(L)が取着されている。また、各上肢3R(L)の上端部(基端部)が、肩関節30R(L),31R(L),32R(L)を介して上体4に連結されている。接地部37Rは、2肢状態において、物をつかむ等の各種の作業ができるよう複数の指を持つように構成されていてもよい。
上体4は、上部上体4aと下部上体4bとの間にピッチ方向の回転用の1個の関節4cを備える。関節4cによって1自由度の腰椎関節が構成されている。
上記した各関節は、例えば本出願人が特開平3−184782号公報などにて提案した公知の構造のものでよい。この場合、各関節を回転駆動するアクチュエータは、減速機を備える電動モータ42(図2参照)により構成される。
各下肢2R(L)の上記構成により、各下肢2R(L)の接地部16R(L)は、上体4に対して6自由度を有する。そして、ロボット1の移動に際して両下肢2R、2Lを合わせて6*2=12個(この明細書で「*」はスカラに対する演算においては乗算を示し、ベクトルに対する演算においては外積を示す)の関節をそれぞれ適宜な角度に駆動することで、接地部16R,16Lの所望の運動を行なうことができる。
また、各上肢3R(L)の上記構成により、各上肢3R(L)の接地部37R(L)は、上体4に対して7自由度を有する。そして、ロボット1の移動に際して両上肢3R、3Lを合わせて7*2=14個の関節をそれぞれ適宜な角度に駆動することで、両接地部37R,37Lの所望の運動を行なうことができる。
また、上体4の上記構成により、下部上体4bは、上部上体4aに対して1自由度を有する。ロボット1の移動に際して上体4の1個の関節を適宜な角度に駆動することで、2肢状態−4肢状態間の遷移動作、4肢歩行等の所望の運動を行なうことができる。
これにより、ロボット1は2肢歩行動作、2肢走行動作、4肢歩行動作(クロール歩行動作、トロット歩行動作)等、3次元空間を移動する運動を行うことが可能となっている。
2肢歩行、2肢走行の場合、両下肢2R、2Lが基体としての上体4を床面上で移動させる移動機構として機能する。また、基体としての上体4は、腰関節(股関節)を介して、下肢2R、2Lに対して相対運動を行い得るように該下肢2R、2Lに支持されることとなる。さらに、両下肢2R、2Lの各関節の駆動制御によって、床面に対する上体4の運動を制御することが可能である。
尚、この明細書で後述する上体4の位置およびその速度は、上体4の所定位置、具体的には上体4の代表点の位置およびその移動速度を意味する。それについては後述する。
4肢歩行の場合、両下肢2R、2L及び両上肢3R、3Lが基体としての上体4を床面上で移動させる移動機構として機能する。また、基体としての上体4は、腰関節(股関節)、肩関節を介して、下肢2R、2L、上肢3R、3Lに対して相対運動を行い得るように該下肢2R、2L、該上肢3R、3Lに支持されることとなる。さらに、両下肢2R、2L、両上肢3R、3Lの各関節の駆動制御によって、床面に対する上体4の運動を制御することが可能である。
ここで、上体4の運動には、上体4の水平方向(又は床面に平行な方向)の運動に加えて、上下方向(鉛直方向や、床面に垂直な方向等)の運動や、上体4の姿勢を変化させる運動も含まれる。
なお、第1実施形態では、上体4の上端部には頭部5が搭載される。頭部は無くてもよい。
上体4の内部にはロボット1の動作制御を行う制御ユニット26が格納されている。なお、図1では図示の便宜上、制御ユニット26を上体4の外部に記載している。
各下肢2の足首関節14R(L),15R(L)と接地部16R(L)との間には、6軸力センサ41aが介装されている。また、各上肢3R(L)の手首関節35R(L)、36R(L)と、接地部37R(L)との間には、6軸力センサ41bが介装されている。6軸力センサ41a、41bは、床から接地部16R(L)、接地部37R(L)を介して各下肢2R(L)、各上肢3R(L)に伝達される床反力の3軸方向の並進力成分Fx,Fy,Fz及び3軸まわりのモーメント成分Mx,My,Mzを検出し、その検出信号を制御ユニット26に出力する。
上体4には、鉛直方向(重力方向)に対する上体4の傾斜角(ロール方向及びピッチ方向の傾斜角)とその変化速度(角速度)とを計測するための傾斜センサ40が搭載されている。この傾斜センサ40は、より詳しくは、加速度センサとジャイロセンサ等のレートセンサ(角速度センサ)とから構成され、これらのセンサの検出信号を制御ユニット26に出力する。そして、制御ユニット26において、傾斜センサ40の出力を基に、公知の手法によって鉛直方向に対する上体4の傾斜角と角速度とが計測される。
また、各関節を回転駆動する電動モータ42(図2参照)には、各関節の回転角を検出するためのエンコーダ(ロータリエンコーダ)44(図2参照)が付設され、該エンコーダ44の検出信号が制御ユニット26に出力される。
図2は制御ユニット26の詳細を示すブロック図であり、マイクロ・コンピュータから構成される。そこにおいて傾斜センサ40などの出力はA/D変換器(図に「A/D」と示す)54でデジタル値に変換され、その出力はバス64を介してRAM60に送られる。また各電動モータ42に隣接して配置されるエンコーダ44の出力はカウンタ56を介してRAM60内に入力される。
制御ユニット26の内部にはそれぞれCPUからなる第1、第2の演算装置50,52が設けられており、第1の演算装置50は後述の如く、目標歩容を生成すると共に、後述の如く関節変位指令を算出し、RAM60に送出する。また第2の演算装置52はRAM60からその指令と検出された実測値とを読み出し、各関節の駆動に必要な操作量を算出してD/A変換器(図に「D/A」と示す)58とサーボアンプ46を介して各関節を駆動する電動モータ42に出力する。
図3は、この実施例に係る肢式移動ロボットの歩行(姿勢)制御装置の構成および動作を全体的に示すブロック図である。
以下説明すると、第1の演算装置50は歩容生成装置100を備える。歩容生成装置100は後述の如く目標歩容を自在かつリアルタイムに生成して出力する。目標歩容は、目標上***置姿勢(軌道)、目標接地部位置姿勢(軌道)、目標全床反力中心点(目標ZMP)(軌道)および目標全床反力(軌道あるいはパターン)からなる。
尚、各接地部(2肢歩行の場合、足平16R,L、4肢歩行の場合、足平16R,L、手平37R,L)の床反力を「各接地部床反力」と呼び、全ての接地部の床反力の合力を「全床反力」と呼ぶ。ただし、以降においては、各接地部床反力はほとんど言及しないので、断らない限り、「床反力」は「全床反力」と同義として扱う。
この歩行制御装置が生成する歩容は、大きく分けて、2肢で歩行するための歩容である2肢歩容(図4/時刻t1〜t3参照)、2肢状態から4肢状態へ遷移するための歩容である2肢−4肢遷移歩容(図4/時刻t4〜t7参照)、4肢で歩行するための歩容である4肢歩容(図4/時刻t8〜t9参照)、4肢状態から2肢状態へ遷移するための歩容である4肢―2肢遷移歩容(図4/時刻t10〜t13参照)である。より具体的には、本歩行制御装置は、本出願人が先に特開平10−277969号公報において提案した複合コンプライアンス制御によるロボットの姿勢安定化制御を行うために必要な目標歩容を自在に生成する。
その先に提案した姿勢安定化制御にあっては、床反力中心点(ZMP)の目標位置と実測位置の偏差を検出し、その偏差を解消するように接地部を駆動して姿勢の安定化を図っている。それと共に、ロボットが倒れそうになると、目標床反力を意図的にずらすことによって実床反力をずらし、姿勢復元力を得るようにしている。
かかる如く、肢式移動ロボットにおいては、目標運動軌跡と目標床反力パターンの関係が動力学的平衡条件を満足していなければ、安定した歩行が実現できない。動力学的平衡条件は前記した如く、具体的には、例えば、目標床反力中心点(目標床反力分布の2次モーメントが0になる床上の作用点)とZMPが一致することである。一致していないと、コンプライアンス制御が働いたときに、慣性力と重力の合力と床反力との間のバランスを崩し、最悪の場合、転倒する。
先に提案した技術においては、それをロボットが不安定となったときの姿勢回復に逆用しているが、上記から明らかな如く、本出願人が提案する肢式移動ロボットにおいてはこのように歩行制御に与える目標値として、目標の運動パターンだけではなく、目標の運動パターンに対して動力学的平衡条件を満足する目標床反力パターンも必要である。
目標床反力は、一般的には、作用点とその点に作用する力と力のモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に前述の目標床反力中心点を作用点にして目標床反力を表現すると、力のモーメントは、床に垂直な成分を除けば、0になる。
尚、前述のように、動力学的平衡条件を満足する歩容では、目標とする運動軌跡から算出されるZMPと目標床反力中心点は一致することから、目標床反力中心点軌道の代わりに目標ZMP軌道を与えると言っても同じことである。
従って、上記は、『歩行制御に与える目標値としては、目標運動軌跡だけでなく、目標ZMP軌道(目標床反力パターン)も必要である』と言い換えることができる。このような背景から、この明細書では目標歩容を、次のように定義する。
a)広義の目標歩容とは、1歩ないしは複数歩の期間の目標運動軌跡とその目標床反力パターンの組である。
b)狭義の目標歩容とは、1歩の期間の目標運動軌跡とそのZMP軌道の組である。
c) 一連の歩行は、いくつかの歩容がつながったものとする。
尚、以下では、理解を容易にするために、特にことわらない限り、目標歩容は狭義の目標歩容の意味で使用する。
より詳しくは、この明細書では目標歩容は、1歩分の歩容の意味で使用する。2肢歩行の場合における1歩分の期間とは、図5に示されるように、両脚支持期の初期から片脚支持期の終端までの期間である。
4肢歩行の場合における1歩分の期間とは、図5に示されるように、4肢支持期の初期から2肢支持期(又は3肢支持期)の終端までの期間ある。2肢−4肢遷移における1歩分の期間とは、2肢−4肢遷移の一連の遷移動作を所定のタイミングで複数の期間(手平着床期、ZMP移動期、4肢歩行準備期)に分割した場合におけるそのうちの一の期間を言う。
4肢―2肢遷移における1歩分の期間とは、4肢―2肢遷移の一連の遷移動作を所定のタイミングで複数の期間(腰移動期、ZMP移動期、手平離床期)に分割した場合におけるそのうちの一の期間を言う。
また、2肢歩行時において、両脚支持期とは、ロボット1がその自重を脚体2の双方で支持する期間を、片脚支持期とは脚体2の一方で支持する期間をいう。
片脚支持期においてロボット1の自重を支持しない側の脚部(リンク)を「遊肢」と呼ぶ。2肢歩行時の各支持期の定義の詳細は、先に提案した特開平10−86081号公報に記載されているので、この程度の説明に止める。
4肢歩行は、クロール歩行、トロット歩行、ベース歩行、ギャロップ歩行等の様々な歩行に分類されるが、第1実施形態では、図4に示されるロボット1が「左上肢及び右下肢」−「右上肢及び左下肢」の順に2肢ずつ持ち上げ及び接地を繰り返すトロット歩行をする場合及び図7に示されるロボット1が「左上肢」−「右下肢」−「右上肢」−「左下肢」の順に1肢ずつ持ち上げ及び接地を繰り返すクロール歩行をする場合について説明する。
4肢歩行時における2肢支持期とは、図4〜図6の時刻t8〜t9に示されるように、トロット歩行において、ロボット1がその自重を脚体2及び腕体3のうちの2肢で支持する期間をいう。3肢支持期及び2肢支持期においてロボット1の自重を支持しない側の肢体(脚体2、腕体3)を2肢歩行の場合と同様に「遊肢」とよぶ。
4肢歩行時における3肢支持期とは、図7/時刻t8’〜t9’’に示されるように、クロール歩行において、ロボット1がその自重を脚体2及び腕体3のうちの3肢で支持する期間をいう。
また、4肢歩行時における4肢支持期とは、ロボット1がその自重を脚体2及び腕体3のすべてで支持する期間をいう。
なお、本実施形態においては、トロット歩行及びクロール歩行のいずれにおいても、たとえば、図5に示されるように、各2肢支持期間又は各3肢支持期間の間に4肢支持期間が設けられている。
2肢−4肢遷移時における手平着床期とは、図4〜図7の時刻t4〜t5に示されるように、2肢歩行における両脚支持期の初期から、腰関節及び腰椎関節の回転により、両腕体3がロボット1の自重を支えるまで(より厳密には、両腕体3が空中にある期間の終端まで)の期間を言う。
2肢−4肢遷移時におけるZMP移動期とは、図4〜図7の時刻t6に示されるように、両腕体3がロボット1の自重を支えてから(より厳密には、両腕体3が着床した期間の初期から)、ZMPを両脚支持期における最適位置から4肢支持期における最適位置に移動させるようにロボット1の姿勢を整える(ZMPが4肢支持期における最適位置に移動する期間の終端)までの期間を言う。
2肢−4肢遷移時における4肢歩行準備期とは、図4〜図7の時刻t7に示されるように、ZMP移動期の終端から、腰の位置を4肢歩行に適した姿勢(4肢歩行における4肢支持期の姿勢)となるようにロボット1の姿勢を整えるまで(4肢歩行における4肢支持期の初期まで)の期間を言う。
4肢―2肢遷移時における腰移動期とは、図4〜図7の時刻t10に示されるように、4肢歩行における4肢支持期の初期から、ロボット1の姿勢が2肢遷移に適した姿勢となるように、腰の位置を所定の位置まで移動させる期間を言う。
4肢―2肢遷移時におけるZMP移動期とは、図4〜図7の時刻t11に示されるように、ZMPの位置を手平離床期(両脚体2のみでロボット1の自重を支持する期間)に最適な位置まで移動させるまでの期間を言う。
4肢―2肢遷移時における手平離床期とは、図4〜図7の時刻t12〜時刻t13に示されるように、ZMP移動期の終端から、腰関節及び腰椎関節の回転により、ロボット1が2肢で直立するまで(腰関節及び腰椎関節の回転が終了するまで)の期間をいう。
ここで、目標歩容としての条件を説明する。
目標歩容が満たさなければならない条件は、大きく分けて以下の5つに分類される。
条件1)動力学的平衡条件を満足していること。即ち、ロボット1の目標運動軌跡から動力学的に算出されるZMP軌道が目標ZMP軌道と一致していること。
条件2)ロボット1の歩行計画部や歩行経路誘導部(共に図示せず)、あるいはオペレータから歩幅や旋回角など歩容が満たすべき条件が要求される場合、それらの要求条件を満たしていること。
条件3)接地部(2肢歩行の場合「足平」、4肢歩行の場合「足平」及び「手平」)が床を掘ったり擦ったりしない、関節角度が可動範囲を越えない、関節速度が限界を越えないなどの、キネマティクス(運動学)に関する制約条件を満たしていること。
条件4)ZMPが後述する支持肢多角形内になければならない、駆動系の最大能力を越えないなどの、動力学に関する制約条件を満たしていること。
条件5)境界条件を満たしていること。即ち、条件1)の当然の帰結として、歩容と歩容の境界では、少なくとも、各部位の位置と速度が連続であるという境界条件が導かれる(不連続であれば、無限大の力が発生したり、ZMPが接地面からはるかに遠くの点に移動してしまう)。
また、第n+1回歩容の初期状態は、第n回歩容の終端状態(特に、接地部に対する上体の位置・姿勢および速度)に一致するように設定されなければならない。このとき、第n回歩容の終端状態は、第n+1回歩容の初期状態が決まっていれば、第n+1回歩容の初期状態に一致させれば良い。
決まっていなければ、第n回歩容の終端状態が、姿勢が崩れないで長期的な歩行ができる範囲に入っていれば良い。
歩容の説明を続けると、歩容は、歩容パラメータによって記述される。歩容パラメータは、運動パラメータとZMPパラメータ(より一般的に表現すれば、床反力パラメータ)から構成される。尚、この明細書で『床反力パラメータ』なる語は、『床反力の時間的なパターンに関するパラメータ』を意味するものとして使用する。ZMPパラメータは後で図13に示すように、X,Y,Z座標(方向)について折れ線グラフ状のZMP軌道の折れ点の位置と通過時刻で示す(X座標のみ図示)。
運動パラメータは、接地部(軌道)パラメータと上体(軌道)パラメータとから構成される。
接地部軌道パラメータは、足平16の初期(離床時)遊肢位置および姿勢、終端(着床時)遊肢位置および姿勢、手平37の初期(離床時)遊肢位置および姿勢、終端(着床時)遊肢位置および姿勢、両脚支持期時間、片脚支持期時間、4肢支持期時間、3肢支持期時間、2肢支持期時間、手平着床期時間、ZMP移動期時間、4肢歩行準備期時間、腰移動期時間、ZMP移動期時間、2肢歩行準備期時間などを含む。これらに基づき、先に本出願人が特開平5−318339号および特開平5−324115号公報などで提案した技術を用いて、両足平の位置(xf,yf,zf)および姿勢(θxf,θyf,θzf)の瞬時値及び両手平の位置(xh,yh,zh)および姿勢(θxh,θyh,θzh)の瞬時値が求められる。尚、ここで姿勢は『空間上の傾斜または向き』を意味する。
上体軌道パラメータは、下部上体4bの姿勢(空間上の下部上体4bの向きあるいは傾き)を決定するパラメータ、上部上体4aの下部上体4bに対する姿勢(下部上体4bに対する傾き)を決定するパラメータ、上体(上部上体4a)高さ(Z方向の値)を決定するパラメータ、初期の上体(代表点)の位置(変位)および速度パラメータなどから構成される。
上体の位置および姿勢を決定するパラメータに基づき、時間関数または先に特開平5−324115号公報で本出願人が提案した技術や後述する手法から上体(上部上体4a)の水平位置(xb,yb)および姿勢(θxb,θyb,θzb)の瞬時値が求められる。上体(上部上体4a)高さzb は適宜な手法、例えば本出願人が特開平10−86080号公報で提案する手法で決定される。
肢式移動ロボット1の関節は図1に示すように27関節から構成されているので、得られた各接地部の位置・姿勢と上***置・姿勢とから、後述するように逆キネマティクス演算によって目標関節変位が一義的に決定される。即ち、今回のロボットの目標姿勢が一義的に決定される。
ところで、理想的目標歩容は、物理法則に逆らうことができないので、希望する状態にすぐに到達することはできない。許容範囲内でZMPの軌道、着地位置および着地時期などの歩容パラメータを変更することによって、時間をかけて希望する状態に遷移しなければならない。特に、この実施例において2肢−4肢歩行ロボットの動力学系は、ZMPを入力、上***置を出力とする系とみなすと発散系になるので、慎重に歩容パラメータを変更しないと、正常な状態に復元するのが困難となる。
したがって、目標歩容を自在かつリアルタイムに生成するときは、ロボットの将来の挙動を予測し、どのように歩容パラメータ値を設定すれば、ロボットの将来、例えば数歩先の挙動が発散しないか否かを判断すると共に、発散する可能性が予測されるときは発散を防止するように歩容を調整することが、望ましい。
この実施例においては、ロボット1の動力学的挙動を記述する動力学モデルを単純化し、リアルタイムかつ解析的に将来挙動が予測計算できるようにした。図8に、その単純化した動力学モデルを示す。図示の如く、この動力学モデルは1質点モデルである。図9は、歩容生成装置100の動力学演算部において、図8に示す動力学モデルを用いて行われる動力学演算を示すブロック図である。
以下、この動力学モデルを説明する。
1)このモデルは、倒立振子の1質点から構成される。
2)倒立振子は、水平に移動するフリーの支点aと、支点aと質点24bとを結ぶ質量のない可変長のリンク24aと、ひとつの質点24bと、から構成される。
3)このモデルは質点24bを共通の中心とする回転成分を表す2つの無質量のフライホイールを含んでいる。
倒立振子質点は、物理的意味としては上体4の質点(必ずしも重心位置を意味しない)に対応する。したがって、倒立振子質点と上体質点は、今後、同意語として扱う。上体質点の位置(より広義に言えば変位)を、以降、略して「上体質点位置」と呼ぶ。
3)上体の水平位置は、上体質点の水平位置から幾何学的に決定される。具体的には、例えば、上体のある固定された代表点(この点を以降、「上体代表点」と呼ぶ)の水平位置(支持肢座標系から見たXY座標)を、上体質点の水平位置から傾斜センサが示す上体4が傾斜している方向へ所定距離移動させた点の水平位置として決定される。
次いで、図示の動力学演算モデルに関する変数およびパラメータなどの記述法について説明する。
この動力学モデルの挙動は、以下に示すように数式化される。ただし、説明を簡単にするために、サジタルプレーン(支持肢座標系のX軸とZ軸とを含む平面)での運動方程式のみを記述し、ラテラルプレーン(支持肢座標系のY軸とZ軸とを含む平面)での運動方程式を省略した。
説明の便宜上、動力学モデルに関する変数およびパラメータを以下のように定義する。
Zb:上体質点鉛直位置(Z軸方向位置)
Xb:上体質点水平位置(X軸方向位置)
Vxb:上体質点水平速度(X軸方向速度)
mb:上体質点質量
Xzmp:目標ZMPの水平位置(X軸方向位置)
Zzmp:目標ZMPの鉛直位置(Z軸方向位置)
Fx:床反力水平成分(詳しくは並進床反力のX軸方向成分)
Fz:床反力鉛直成分(詳しくは並進床反力のZ軸方向成分)
Mzmp_y:目標ZMPまわりの床反力モーメント(本発明の「制御対象外力要素」に相当する。)(詳しくは該床反力モーメントのY軸まわり成分)
Mb_y:支持肢座標系の原点まわりの床反力モーメント(詳しくは該床反力モーメントのY軸まわり成分)
θ1:腰関節の回転角度(下肢2に対する下部上体4bの関節12回り(ピッチ方向)の回転角度)
θ2:腰椎関節の回転角度(下部上体4bに対する上部上体4aの関節4c回り(ピッチ方向)の回転角度)
また、任意の変数Aに対して、dA/dtはAの1階時間微分値を表わし、d2A/dt2はAの2階時間微分値を表わす。したがって、変数Aが変位(位置)ならば、dA/dtは速度、d2A/dt2は加速度を意味する。gは重力加速度定数を示す。ここでは、gは正の値とする。
上記動力学モデルの運動方程式は、式01〜04で表される。
Fz=mb*(g+d2Zb/dt2) ……式01
Fx=mb*d2Xb/dt2 ……式02
Mb_y=−mb*Xb*(g+d2Zb/dt2)
+mb*Zb*(d2Xb/dt2) ……式03
Mzmp_y=−mb*(Xb−Xzmp)*(g+d2Zb/dt2)
+mb*(Zb−Zzmp)*(d2Xb/dt2) ……式04
この場合、Mb_yとMzmp_yとの間の関係は、次式05により表される。
Mb_y=Mzmp_y−mb*Xzmp*(g+d2Zb/dt2)
+mb*Zzmp*(d2Xb/dt2)
=Mzmp_y−Xzmp*Fz+Zzmp*Fx ……式05
なお、目標ZMPと支持肢座標系の原点との鉛直方向(Z軸方向)での位置の差は通常、“0”又はほぼ“0”となるので、Zzmp=0と見なしてもよい。
上体質点の水平位置及び速度は、以下の状態方程式により表される。
なお、Xzmp(t)はZMP軌道、I1は腰関節の慣性モーメント、I2は腰椎関節の慣性モーメントである。
式100bの右辺第2要素と式100dの右辺第2列とを掛け合わせた値が本発明の「第1の回転運動成分」に相当し、式100bの第3行と式100dの第3列とを掛け合わせた値が本発明の「第2の回転運動成分」に相当し、式100eの右辺分母が本発明の「重心位置成分」に相当し、式100eの右辺分子第2項が本発明の「慣性力依存操作量成分」に相当する。
なお、「第1の回転運動成分」及び「第2の回転運動成分」は、第1基体4b及び第2基体4aの回転のみならず、たとえば上肢3R,3Lの回転等によっても変化する成分である。
ここで、式100bにおけるd2θ1/dt2(t)およびd2θ2/dt2(t)は、平地における2肢歩行及び2肢走行の場合0に固定されてもよい。一方、2肢−4肢遷移、4肢歩行の場合、式100bにおけるd2θ1/dt2(t)およびd2θ2/dt2(t)は、0以外の値をとる。また、2肢歩行、2肢走行、4肢歩行の場合、Zb(t)を一定値とみなしてもよい。たとえば、Zb(t)として、2肢歩行、2肢走行の場合、2肢歩行又は2肢走行の重心の鉛直位置の平均値h1、4肢歩行の場合、4肢歩行の重心の鉛直位置の平均値h2が採用されうる。 式100を離散時間系での表現に書き直すことによって、次式102の状態方程式が得られる。
なお、添え字(k)、(k+1)を付した変数は、それぞれ、離散時間系のk番目の時刻での値、k+1番目の時刻での値を意味する。以降の説明では、k番目の時刻、k+1番目の時刻をそれぞれ、単に時刻k、時刻k+1、というように表現する場合がある。
式102におけるXVb(k)は、式100に関するただし書きで定義した通り、上体質点24bの水平位置Xbと、その時間的変化率である水平速度Vxbとをそれぞれ状態変数とする状態変数ベクトル(縦ベクトル)である。
また、式102におけるA(k)、B(k)は、それぞれ、2次の正方行列(状態遷移行列)、2行3列の行列であり、それぞれの各成分値が以下の式104a,106aの如く決定されるものである。なお、ΔTは離散時間系の刻み時間であり、ωは下記のただし書きの式108cによって定義される角周波数値である。また、exp( )は、自然対数の底の指数関数である。なお、重力gとd2Zb(t)/dt2との和がゼロよりも大きいか否かにより、A(K)、B(K)を決定する式は変化するが、通常の歩行においては、重力gとd2Zb(t)/dt2との和はゼロよりも大きい。このため、以下では、重力gとd2Zb(t)/dt2との和がゼロよりも大きい場合についてのみ説明する。
また、本発明の第2実施形態は、第1実施形態の式108c及び式108dに代えて、以下の式108e及び式108fを使用する点で第1実施形態と相違する。なお、h1は、2肢歩行時のロボット1の重心位置の平均値である。
また、本発明の第3実施形態は、第1実施形態の式106aに代えて、以下の式106bを使用する点で第1実施形態と相違する。
また、比較形態は、第1実施形態の式106a、式108ac及び式108dに代えて、上記式106b、式108e及び式108fを使用する点で第1実施形態と相違する。
図9を参照して歩容生成装置100(図3に示す)の動力学演算部の動作を説明する。動力学演算部の水平位置算出器200は、式100により、目標ZMPから上体質点水平位置Xbを算出する。
さらに、図9に示す如く、動力学演算部は、動力学演算部は上***置決定器202を備える。上***置決定器202は、上体質点水平位置Xbから上体の水平位置を決定する。
次いで、歩容の継続的姿勢安定性について述べる。
ここまで述べてきた動力学モデル自身は、単に、各瞬間における動力学的平衡条件を近似的に満足するように、目標ZMPから上体軌道を算出するだけのものであり、上体軌道が発散すること(上体24の位置が接地部の位置からかけ離れた位置にずれてしまうこと)を防止するものではない。
以下では、上体軌道の発散を防止し、上体と接地部の間の適切な位置関係を継続させるための手段について説明する。
まず、同一の歩容が無限に繰り返された場合に発散性を有する運動成分である発散成分について定義する。
上記式102の状態方程式により表される系では、状態変数ベクトルXVbの初期値XVb[0](k=0の時刻(時刻0)でのXVbの値)と、時刻0から時刻k−1までの入力モーメントMin(床反力モーメントの水平成分Mb_y)の時系列とが与えられたとき、任意の時刻k(>0)での状態変数ベクトルXVbの値XVb[k]は、次式110により与えられることとなる。
なお、上記式のIは単位行列である。
次に、前記した歩容での倒立振子モデルの挙動に着目し、歩容の初期時刻Tsをk=0の時刻、歩容の終端時刻Te(=Ts+Tcyc)をk=kcyc(ただし、kcyc≡Tcyc/ΔT)の時刻とし、初期時刻Tsでの歩容の運動により規定される状態変数ベクトルXVbがXVb(0)であるとする。そして、歩容の終端時刻Te(k=kcycの時刻)における状態変数ベクトルXVbのうち、歩容の初期時刻Tsでの状態変数ベクトルの値XVbに依存する成分をXVb(kcyc)とおく。このとき、XVb(kcyc)と、XVb(0)との間の関係は、上記式110に基づいて、次式112により表されることとなる。
XVb(kcyc)=φ(kcyc,0)*XVb(0) ……式112
ただし、φ(kcyc,0)=A(kcyc−1)*……*A(1)*A(0)
さらに、この式112の右辺の行列φ(kcyc,0)の2つの固有値をλ1,λ2、それぞれの固有値に対応する固有ベクトル(縦ベクトル)を(a11,a21)T、(a12,a22)T(なお、上付きのTはベクトル又は行列の転置を表す)、これらの固有ベクトルをそれぞれ第1列、第2列とする2次の正方行列をΓcycとおき、この行列Γcycを用いてφ(kcyc,0)を対角化してなる行列をΛとおく。すなわち、Λを次式114により定義する。以降、行列Γcycを対角化用行列という。
この式114と前記式112とから次式116が得られる。
Γcyc−1*XVb(kcyc)=Λ*Γcyc−1*XVb(0) ……式116
ここで、任意の時刻kでの状態変数ベクトルXVb(k)を、対角化用行列Γcycの逆行列Γcyc−1によって線形変換してなるベクトル(以降、変換状態変数ベクトルという)を(p(k),q(k))Tとおく。すなわち、変換状態変数ベクトル(p(k),q(k))Tを次式118により定義する。
(p(k),q(k))T≡Γcyc−1*XVb(k) ……式118
この式118と前記式116とから、次式120が得られる。
(p(kcyc),q(kcyc))T=Λ*(p(0),q(0))T ……式120
この式120において、λ1>1であれば、p(kcyc)の絶対値>初期値p(0)の絶対値となり、λ1≦1であれば、p(kcyc)の絶対値≦初期値p(0)の絶対値となる。同様に、λ2>1であれば、q(kcyc)の絶対値>初期値q(0)の絶対値となり、λ2≦1であれば、q(kcyc)の絶対値≦初期値q(0)となる。
一方、第1実施形態における歩容では、一般にφ(kcyc,0)の2つの固有値λ1,λ2の一方が、“1”よりも大きい値となり、他方が“1”よりも小さい値となる。
そこで、以降、λ1<1、λ2>1であるとする。すなわち、変換状態変数ベクトル(p(k),q(k))Tのうちの、第1成分p(k)が、“1”よりも小さい固有値λ1に対応する成分、第2成分q(k)が、“1”よりも大きい固有値λ2に対応する成分であるとする。このとき、p(k)は、無限に繰り返される歩容において収束性を有する運動成分の状態量としての意味を持ち、q(k)は、無限に繰り返される歩容において発散性を有する運動成分の状態量としての意味を持つ。
そこで、第1実施形態では、式118により定義した変換状態変数ベクトル(p(k),q(k))Tのうちの第2成分q(k)を前記発散成分として定義する。このようにして定義される発散成分q(k)は、状態変数Xb(k),Vxb(k)の線形結合値となる。この場合、その線形結合において、Xb(k),Vxb(k)にそれぞれ掛かる重み係数は、定常歩容の1周期の期間内での上体質点24bの慣性力の時系列に依存して定まるものとなる。なお、式118により定義した変換状態変数ベクトル(p(k),q(k))Tのうちの第1成分p(k)を収束成分と言う。
なお、前記式118で定義される収束成分p(k)及び発散成分q(k)は、詳しくはサジタルプレーン上での収束成分p(k)及び発散成分q(k)(X軸方向での上体質点24bの水平位置Xbと水平速度Vxbとを成分とする状態変数ベクトルXVbに対応する収束成分及び発散成分)であるが、これと同様に、ラテラルプレーン上での収束成分及び発散成分も定義される。具体的には、式118の右辺の状態変数ベクトルXVb(k)の各成分Xb、Vxbをそれぞれ、Y軸方向での上体質点24bの水平位置と水平速度とに置き換えた式によって、ラテラルプレーン上での収束成分及び発散成分が定義される。この場合、式118の行列Γcyc−1はX軸方向及びY軸方向のいずれの軸方向に関しても同一である。
次いで、前記発散成分を利用して歩行の継続性を保証する歩容生成アルゴリズムについて述べる。
先に、上体軌道の発散を防止し、上体と接地部の間の適切な位置関係を継続させるためには、発散成分を歩行に支障ない範囲(姿勢が大きく崩れない範囲)から越えないように、ZMP軌道パラメータなどを適切に決定することが重要であると述べた。次の問題は、歩行に支障ない発散成分の範囲あるいは適切な発散成分の値を如何に求めるかである。
この実施例に係る歩容生成装置100は、今回生成する歩容につながるべき歩容(以下「定常旋回歩容」と呼ぶ。これについては後述する)を仮に想定することによって、適切な発散成分の値を決定するようにした。以下に歩容生成装置100の動作を詳細に説明する。
歩容生成装置100は、2歩先までの遊肢接地部着地位置姿勢、着地時刻の要求値(要求)を入力として、目標上***置姿勢軌道、目標接地部位置姿勢軌道、目標ZMP軌道を決定する。このとき、歩容パラメータの一部は、歩行の継続性を満足するように修正される。生成しようとしている歩容を「今回歩容」、その次の歩容を「次回歩容」、さらにその次の歩容を「次次回歩容」と呼ぶ。
図10は、その歩容生成装置100の歩容生成処理を示すフロー・チャート(構造化フロー・チャート)である。
以下説明すると、まずS010において時刻tを0に初期化するなど種々の初期化作業を行う。次いでS012を経てS014に進み、制御周期毎のタイマ割り込みを待つ。制御周期はΔtである。次いでS016に進み、歩容切り変わり目であるか否かを判断し、肯定されるときはS018に進むと共に、否定されるときはS020に進む。
S018に進むときは時刻tを0に初期化し、次いでS022に進み、次回歩容支持肢座標系、次次回歩容支持肢座標系、今回歩容周期および次回歩容周期を読み込む。これらは前記した要求に相当するが、あらかじめ歩行スケジュールとして記憶しておいても良く、あるいは無線ネットワークなどを介した外部からの指令(要求)とそのときまでの歩行履歴を基に決定しても良い。
次いで、S024に進み、今回歩容の歩容パラメータを仮決定(仮に算出)する。
今回歩容初期遊肢接地部位置姿勢は、今回支持肢座標系から見た現在遊肢位置姿勢にする(初期値とする)。今回歩容初期支持肢接地部位置姿勢は、今回支持肢座標系から見た現在支持肢位置姿勢にする(初期値とする)。今回歩容終端遊肢接地部位置姿勢は、今回支持肢座標系から見た次回支持肢座標系に対応して決定する。即ち、今回歩容終端遊肢接地部位置姿勢から接地部を床に接触させたまま、すべらないように接地部を水平まで回転させたときの位置姿勢が、次回支持肢座標系となるように設定する。
今回歩容終端支持肢接地部位置姿勢は、現在支持肢位置姿勢から接地部を床に接触させたまま、すべらないように接地部を床に面接触するまで回転させたときの位置姿勢とする。したがって、床が平面であるならば、今回歩容終端支持肢接地部位置姿勢は、今回支持肢座標系に一致する。尚、この歩容では、歩容終端において支持肢接地部は水平になるが、必ずしも、このように設定する必要はない。
今回歩容のZMP軌道パラメータは、安定余裕が高く、かつ急激な変化をしないように決定する。(接地面を含む最小の凸多角形(凸領域)(いわゆる支持多角形)の中央付近にZMPが存在する状態を安定余裕が高いと言う(詳細は特開平10−86081号公報に記述))。ただし、今回歩容のZMP軌道パラメータは、仮決定されただけであり、後述するように修正される。
S024により、歩容生成装置100が全床反力中心点要求位置算出手段として機能する。詳細は後述する。
なお、第1〜第3実施形態では、接地面を含む凸多角形を「支持多角形」と表現しているが、接地面を含む領域は、必ずしも多角形である必要はなく、たとえば、円形の領域であってもよい。
4肢歩行のZMP決定方法については後述する。
次いでS026に進み、今回歩容につながる定常旋回歩容の歩容パラメータを決定する。
尚、この明細書で「定常旋回歩容」は、その歩容を繰り返したときに歩容の境界において運動状態に不連続が生じないような周期的歩容を意味するものとして使用する。
定常旋回歩容は、各歩容に応じて第1旋回歩容〜第n旋回歩容が構成される。
より具体的には、2肢歩行歩容の場合、次の2歩分の歩容が第1旋回歩容及び第2旋回歩容として構成される。
4肢歩行歩容のうち、クロール歩行歩容の場合、次の4歩分が第1旋回歩容〜第4旋回歩容として構成される。
4肢歩行歩容のうち、トロット歩行歩容の場合、次の2歩分が第1旋回歩容〜第2旋回歩容として構成される。
2肢−4肢遷移歩容の場合、その遷移状態に応じて、手平着床期の1歩、ZMP移動期の1歩、4肢歩行準備期の1歩及び続く4肢歩行の第1歩〜第4歩(又は第1歩〜第2歩)のうち、必要に応じた歩数分の歩容により、定常旋回歩容が構成される。
4肢―2肢遷移歩容の場合、その遷移状態に応じて、腰移動期の1歩、ZMP移動期の1歩、手平離床期の1歩及び続く2肢歩行の第1歩〜第2歩のうち、必要に応じた歩数分の歩容により定常旋回歩容が構成される。
尚、ここで「旋回」なる用語を用いたのは、旋回率を零とするときは直進を意味するので、直進も広義の意味で旋回に含ませることができるからである。定常旋回歩容は、歩容生成装置100で今回歩容の終端における発散成分を決定するために暫定的に作成されるものであり、歩容生成装置100からそのまま出力されるものではない。
先ず、今回歩容、第1旋回歩容、‥、第n旋回歩容の順に脚軌道がつながるように、第1旋回歩容〜第n旋回歩容の歩容パラメータ中の脚軌道の境界条件を設定する。
具体的には、第1旋回歩容初期遊肢接地部位置姿勢は、次回歩容支持肢座標系から見た今回歩容終端支持肢接地部位置姿勢とする。第1旋回歩容初期支持肢接地部位置姿勢は、次回歩容支持肢座標系から見た今回歩容終端遊肢接地部位置姿勢とする。
第1旋回歩容終端遊肢接地部位置姿勢は、今回歩容終端遊肢接地部位置姿勢の決定手法と同様に、次回歩容支持肢座標系から見た次次回歩容支持肢座標系に対応して決定する。第1旋回歩容終端支持肢接地部位置姿勢は、次回歩容支持肢座標系に一致させた接地部を床に接触させたまま、すべらないように接地部を床に面接触するまで回転させたときの位置姿勢とする。したがって、床が平面であるならば、第1旋回歩容終端支持肢接地部位置姿勢は、次回支持肢座標系に一致する。
第2旋回歩容初期遊肢接地部位置姿勢は、次次回歩容支持肢座標系から見た第1旋回歩容終端支持肢接地部位置姿勢にする。第2旋回歩容初期支持肢接地部位置姿勢は、次次回歩容支持肢座標系から見た第1旋回歩容終端遊肢接地部位置姿勢にする。
第2旋回歩容終端遊肢接地部位置姿勢は、今回支持肢座標系から見た今回歩容終端遊肢接地部位置姿勢にする。第2旋回歩容終端支持肢接地部位置姿勢は、今回支持肢座標系から見た今回歩容終端支持肢接地部位置姿勢にする。
これらの関係を図11に示す。
第1旋回歩容および第2旋回歩容の歩行周期は、次回歩容周期と同一にする(尚、同一にすることは必ずしも必要ではないが、次回歩容周期に応じて決定するのが好ましい)。今回歩容、第1旋回歩容および第2旋回歩容の上記以外の運動パラメータ(両脚支持期時間などの時間パラメータを含む)は、上記決定されたパラメータに応じて、歩容の条件(電動モータ(アクチュエータ)の速度が許容範囲に入っていることなど)を満足するように適宜決定する。
第1旋回歩容および第2旋回歩容のZMP軌道パラメータも、安定余裕が高くかつ急激な変化をしないように決定する。
ところで、上体代表点の初期位置と速度をある値Xb0,Vb0に設定すると、図8に示す単純モデルを用いて上記第1旋回歩容〜第n旋回歩容を生成し、再び第1旋回歩容の生成を開始するときの初期上体代表点位置速度が、前記設定した初期上体代表点位置速度の値Xb0,Vb0に一致する。
このように設定すると、図8に示す単純モデルを用いて第1旋回歩容〜第n旋回歩容(のうちの2肢歩行又は4肢歩行の部分)を繰り返し生成しても、演算誤差が蓄積しない限り、第1旋回歩容の初期上体代表点位置速度は、値Xb0,Vb0になる。即ち、歩行の継続性が保証される。このときの発散成分を、「定常旋回歩容の初期発散成分」と呼ぶ。
図10の説明に戻ると、次いでS028に進み、定常旋回歩容の初期発散成分を求める。
図12は、図10フロー・チャートのS028の定常旋回歩容の初期発散成分を算出するサブルーチン・フロー・チャートである。
ここで、同図の説明に入る前に、定常旋回歩容の初期発散成分の算出原理を説明する。
先に説明した発散成分qの定義に従って、定常歩容初期発散成分q[0]は次のように算出される。
定常歩容パラメータを基に、定常歩容の初期時刻0及び終端時kcycにおける上体質点鉛直位置Zb(0)、Zb(kcyc)、上体質点の鉛直加速度g+d2Zb/dt2(0)、g+d2Zb/dt2(kcyc)及びu(0)、u(kcyc)を求める。
ここで、Γcyc −1=(vp T、vq T)Tとおく。この時、時刻kの発散成分は、以下の式122により与えられる。
一方、前述した定常歩容の境界条件により、次の式124が成り立つ。
ただし、Rzは、対象の定常歩容の支持肢座標系からみた次の定常歩容の座標系(対象の定常歩容の第n旋回歩容に続く第1旋回歩容の座標系)の支持肢座標系の姿勢角θnextだけの回転移動の写像、onextは、対象の定常歩容の支持肢座標系からみた次の定常歩容の支持肢座標系の原点の座標、keは定常歩容の第n旋回歩容の終端の時刻である。
一方、前記した式122から、次式126が成り立つ。
式124、式126を整理して、次式128が得られる。
以上の如く定常歩容の初期発散成分q[0]を算出することが出来る。
上記した算出原理を前提とし、図12フロー・チャートを参照して説明すると、S100において目標ZMPによって発生する終端発散成分を上記手法で求め、次いでS102に進み、式128を用いて定常旋回初期発散成分q[0]を求める。定常旋回初期発散成分q[0]は、定常旋回歩容の支持肢座標系から見た値になっている。
次いで、S104に進み、定常旋回初期発散成分q[0]を今回歩容の支持肢座標系から見た値に変換する。これをq”とする。
次の課題は、今回歩容の終端発散成分がq”に一致するように、上記仮決定した今回歩容のパラメータを修正することである。この処理においては、上記定常旋回歩容における処理とほとんど同じであるので、以下では、変数、値、および記号を、改めて今回歩容に対応させる。
この実施例では、ZMP軌道パラメータを修正することとする。その他の歩容パラメータを修正しても良い。
前記した仮決定された目標ZMP(これを「仮目標ZMP」と呼ぶ)に、ZMP修正量(補正量あるいは付加量)を加えることにより、ZMPを修正する。修正されたZMPを改めて目標ZMPという。これらの関係を図13(a)(b)に示す。
同図に示す如く、目標ZMP=仮目標ZMP+ZMP修正量、となるように、目標ZMPパラメータを修正する。
ZMP修正量は図13(a)及び(b)の中段に示すように台形状であり、その高さをaとする。この高さaは、次の式130で示される。
たとえば、上記aは、以下の式130により算出される。
ただし、qtemplateはZMP修正量を調整するためのあらかじめ定められた係数である。
最後に、ZMP修正量を仮目標ZMPに加算したものが目標ZMPとなるように、目標ZMPのパラメータを修正すれば、今回歩容の終端発散成分が、定常旋回歩容の初期発散成分を今回歩容から見た値q’に一致する。
図10フロー・チャートの説明に戻ると、次いでS030に進み、今回歩容パラメータを修正する。具体的には、今回歩容の終端発散成分が定常旋回歩容の初期発散成分q’に一致するように、今回歩容のパラメータを修正する。
図14はその処理を示すサブルーチン・フロー・チャートである。
以下説明すると、S200において今回歩容の仮目標ZMPパターンによって発生する終端発散成分を求め、次いでS202に進み、a=1とした場合のZMP修正量によって発生する終端発散成分を求める。
次いでS204に進み、今回歩容の初期発散成分q[0]を初期上体質点位置と速度から求め、求めた値を式130に代入してZMP補正量の台形高さaを求める。次いでS206に進み、前記したように目標ZMPのパラメータを修正する。
以上が、歩容の切り変わり目の処理である。
図10フロー・チャートの説明に戻ると、次いでS020に進み、決定された歩容パラメータから今回歩容の瞬時値を決定する。
図15はその処理を示すサブルーチン・フロー・チャートである。
以下説明すると、S300において、今回歩容パラメータを基に、時刻tにおける目標ZMPを求め、S302に進み、今回歩容パラメータを基に、時刻tにおける目標接地部位置姿勢を求める。S304に進み、今回歩容パラメータを基に、時刻tにおける目標上***置姿勢を求める。
S306に進み、式100を用いて、目標ZMPから上体質点水平位置を算出する。次いでS308に進み、上体質点水平位置から上体の水平位置を決定する。
次いでS310に進み、本出願人が先に特開平10−86080号公報で提案した上体高さ決定手法を用いて上体高さを決定する。
図10フロー・チャートの説明に戻ると、次いでS032に進み、時刻tにΔtを加え、再びS014に戻り、上記の処理を繰り返す。
図3を参照してこの実施例に係る歩容生成装置の動作をさらに説明すると、歩容生成装置100において、上記したように目標歩容が生成される。生成された目標歩容の歩容パラメータの中、目標上***置姿勢(軌道)は、ロボット幾何学モデル(逆キネマティクス演算部)102に直接送られる。
また、その他の目標接地部位置姿勢(軌道)、目標全床反力中心点(即ち、目標ZMP)軌道、および目標全床反力(軌道)は、複合コンプライアンス動作決定部104に直接送られる一方、目標床反力分配器106にも送られ、そこで床反力は各接地部に分配され、目標各接地部床反力中心点および目標各接地部床反力が決定されて複合コンプライアンス動作決定部104に送られる。
複合コンプライアンス動作決定部104から、機構変形補償付き修正目標接地部位置姿勢(軌道)がロボット幾何学モデル102に送られる。ロボット幾何学モデル102は、目標上***置姿勢(軌道)、機構変形補償付き修正目標接地部位置姿勢(軌道)を入力されると、それらを満足する27個の関節(10R(L)など)の関節変位指令(値)を算出して変位コントローラ108に送る。変位コントローラ108は、ロボット幾何学モデル102で算出された関節変位指令(値)を目標値としてロボット1の27個の関節の変位を追従制御する。
よってロボット1に生じた床反力は実各接地部床反力検出器110(6軸力センサ41a、41b)によって検出される。検出値は前記した複合コンプライアンス動作決定部104に送られる。また、ロボット1に生じた姿勢傾斜偏差θerrx, θerryは傾斜センサ40によって検出され、検出値は姿勢安定化制御演算部112に送られ、そこで姿勢傾斜を復元する目標全床反力中心点まわり補償全床反力モーメント(本発明の「制御対象外力要素に対する目標値」に相当する。)が算出されて複合コンプライアンス動作決定部104に送られる。複合コンプライアンス動作決定部104は、入力値に基づいて目標値を修正する。
尚、この発明の要旨は歩容生成装置100におけるロボットの歩容生成にあり、上記した複合コンプライアンス動作決定部104などの構成および動作は、本出願人が先に出願した特開平10−277969号公報などに詳細に記載されているので、説明は以上に止める。
(4肢歩行の概要)
上記した目標歩容生成処理を前提として、以下、歩容生成装置100によるロボット1の4肢歩行における目標歩容生成処理について説明する。
図7及び図16を参照して、ロボット1のクロール歩行について説明する。図16は、縦軸を各肢(右上肢、左上肢、右下肢、左下肢)の離床状態及び着床状態、横軸を時間として、クロール歩行時の各肢の着床状態及び離床状態を示すグラフである。ロボット1は、時刻t=taにおいて、4肢で支持されている状態(4肢支持期、4肢すべてが着床している状態)である。ここから、ロボット1は、右上肢3Rを持ち上げ残りの3肢で支持されている状態(3肢支持期、4肢のうち3肢が着床している状態)を経て(図16の期間d1、図7のt8’参照)、その右上肢3Rを所定の位置に移動させて接地させる。以下、4肢支持期をはさみながら、ロボット1は、右上肢3Rと同様に、左下肢2L(図16の期間d2、図7のt8’’参照)、左上肢3L(図16の期間d3、図7のt9’参照)、右下肢2R(図16の期間d4、図7のt9’’参照)の持ち上げ及び接地を行う。ロボット1は、右下肢2Rの持ち上げ及び接地が終了した後、再び右上肢3Rの持ち上げ及び接地を行う(図16の期間d5以降参照)。
第1実施形態では、歩容生成装置100は、クロール歩容のうち、4肢支持期の開始時点から当該4肢支持期に続く1肢を持ち上げ残りの3肢で支持する3肢支持期の終了時点までを1歩の歩容と捉え、前記した歩容生成処理により目標歩容を生成する。
また、図4及び図17を参照して、ロボット1のトロット歩行について説明する。ロボット1は、図17の時刻t=tbにおいて、4肢で支持されている状態である。図17は、縦軸を各肢(右上肢、左上肢、右下肢、左下肢)の離床状態及び着床状態、横軸を時間として、トロット歩行時の各肢の着床状態及び離床状態を示すグラフである。ここから、ロボット1は、右上肢3R及び左下肢2Lを持ち上げ残りの2肢で支持されている状態(2肢支持期、4肢のうち2肢が着床している状態)を経て(図17の期間d6、図4のt8参照)、その右上肢3R及び左下肢2Lを所定の位置に移動させて接地させる。その後、ロボット1は、4肢支持期をはさんで、右上肢3R及び左下肢2Lと同様に、左上肢3L及び右下肢2Rの持ち上げ及び接地を行う(図17の期間d7、図4のt9参照)。以下、ロボット1は、右上肢3R及び左下肢2Lの持ち上げ及び接地と左上肢3L及び右下肢2Rの持ち上げ及び接地とを繰り返し行う(図17の期間d8以降参照)。
第1実施形態では、歩容生成装置は、トロット歩容のうち、4肢支持期の開始時点から当該4肢支持期に続く2肢を持ち上げ残りの2肢で支持する2肢支持期の終了時点までを1歩の歩容と捉え、前記した歩容生成処理により目標歩容を生成する。
目標歩容生成処理の基本的な流れは前記の通りであるが、定常歩容又は今回歩容におけるZMP軌道パラメータの仮決定(図10/S024)の算出処理がクロール歩容とトロット歩容とに応じて異なるため、以下で、詳しく説明する。
(4肢歩行におけるZMP軌道パラメータの決定処理の概要)
歩容生成装置100は、図10/S024において、ZMP軌道パラメータの仮決定の基礎となる4肢歩行の2肢支持期又は3肢支持期における仮目標ZMP候補(全床反力中心点要求位置)Pzmpを、以下の式200により算出する。
ただし、SP(i)(第1の全床反力中心基準位置)は、今回の支持肢座標系で表される、今回の支持多角形と次回の支持多角形とに基づいて定められる床面上の点である。たとえば、今回支持多角形と次回の支持多角形との重複領域の中心を基準として広がる領域に含まれる1点がSP(i)として採用されうる。
重複領域の中心とは、たとえば、その重複領域の重心であってもよいし、重複領域が縦長で線とみなせる場合には、その線の中点であってもよい。
重複領域の中心を基準として広がる領域としては、たとえば、重複領域の中心を円の中心とする、重複領域の内接円(より正確には、重複領域に完全に内包される円のうち、最大の大きさの円)により定められる範囲が採用されうる。
また、EP(i)(第2の全床反力中心基準位置)は、今回の支持肢座標系で表される床面上の点であり、遊肢線と支持肢線との交点を基準として広がる領域に含まれる1点である。ここで、遊肢線とは、遊肢(遊肢が複数の場合は右上肢→左上肢→右下肢の優先順で一つの遊肢を定める)の離床位置又は着床位置と当該遊肢の対角にある肢の位置とを結んだ線であり、支持肢線とは、残りの2つの支持肢の位置を結んだ線を言う。
交点の中心を基準として広がる領域としては、たとえば、交点を円の中心とする、重複領域の内接円(より正確には、重複領域に完全に内包される円のうち、最大の大きさの円)により定められる領域が採用されうる。
α(i)は、加減速に応じて現在のマージンと将来の安定度との重みを変化させる0≦α(i)<1のパラメタであり、たとえば以下の式202で定義される。これに代えて、α(i)は定数(たとえば0.5)であってもよい。
なお、Xswg[i]は、今回の遊肢(遊肢が複数の場合は右上肢→左上肢→右下肢の優先順で一つの遊肢を定める)の歩幅(移動量)を示し、Xswg[i+1]は、次回の遊肢の歩幅(移動量)を示す。
今回の遊肢の移動量に対する次回の遊肢の移動量が大きいほど式202の分母が大きくなるので、αは小さくなる。この結果、式200により、Pzmp(i)は、SP(i)に近づくように決定される。
一方、今回の遊肢の移動量に対する次回の遊肢の移動量が小さいほど式202の分母が小さくなるので、αは大きくなる。この結果、式200により、仮目標ZMP候補Pzmp(i)は、EP(i)に近づくように決定される。
また、仮目標ZMP候補Pzmp(i)は、線分SP(i)−EP(i)上に存在することとなる。
このように決定された仮目標ZMP候補のうち、今回歩容の仮目標ZMP候補(仮目標ZMP)は、前記したように、図10のS030で修正される。
(クロール歩容における仮目標ZMP候補の決定処理の具体例)
次に、図16及び図18〜図21を参照して、クロール歩容における仮目標ZMP候補の決定処理の具体例を説明する。クロール歩容において、SPは、今回の3肢支持期における支持多角形と次回の3肢支持期における支持多角形との重複領域の中心を基準として広がる領域内の1点として定義される。また、第1実施形態のクロール歩容における遊肢線は、遊肢の着地予定位置と遊肢の対角にある肢の着地位置を結んだ線で定義される。また、これに代えて、クロール歩容における遊肢線が、遊肢の離床位置と遊肢の対角にある肢の着地位置を結んだ線で定義されてもよい。
まず、図16に示される期間d1(i=1)が今回の3肢支持期である場合についての仮目標ZMP候補の決定処理を説明する。
歩容生成装置100は、以下のようにして、式200により仮目標ZMP候補Pzmp(1)を求める。
まず、歩容生成装置100は、今回の3肢支持期(期間d1)における支持肢(遊肢でない肢)3L,2L及び2Rの夫々の着地位置を囲む領域を今回の3肢支持期における支持多角形Sd1として求める。
そして、歩容生成装置100は、次回の3肢支持期(期間d2)における支持肢3R、3L及び2Rの夫々の着地位置又は着地予定位置を囲む領域を次回の3肢支持期における支持多角形Sd2として求める。
歩容生成装置100は、今回の支持多角形Sd1と次回の支持多角形Sd2との重複領域DR1を求める。
歩容生成装置100は、今回の3肢支持期における遊肢3Rの着地予定位置と、その対角にある肢2Lの着地位置とを結ぶ線(より詳しくは、図18(a)における遊肢3Rの着地予定位置内に定めた点(たとえば、3Rの着地予定位置内の中心点又は下辺の中点)と、肢2Lの着地位置内(たとえば、2Lの着地位置内の中心点又は上辺の中点)に定めた点とを結ぶ線)により、遊肢線L1を求める。
また、歩容生成装置100は、残りの2肢3L、2Rとを結ぶ線(より詳しくは、図18(a)における遊肢3Lの着地位置内に定めた点と肢2Rの着地位置内に定めた点とを結ぶ線)により、支持肢線L2を求める。
また、歩容生成装置100は、重複領域DR1内において、重複領域DR1の中心としての支持肢線L2の中点を基準として広がる領域(DR1の内接円)SC1を求める。
歩容生成装置100は、重複領域DR1内において、遊肢線L1と支持肢線L2との交点を基準として広がる領域EC1を求める。
歩容生成装置100は、領域SC1に含まれる1点を(本実施形態では、支持肢線L2の中点)を、点SP(1)として求める。
なお、図18(a)〜(d)、後述する図20、図22では、SP(1)、EP(1)、Pzmp(1)を単にSP1、EP1、Pzmp1のように示している。
また、歩容生成装置100は、領域EC1に含まれる1点(本実施形態では、遊肢線L1と支持肢線L2との交点)を点EP(1)として求める。
歩容生成装置100は、上記式200により、2点SP(1)、EP(1)をα(1)で重みづけをした点を仮目標ZMP候補Pzmp(1)を求め、それを仮目標ZMPとする。
なお、図18(a)〜図18(d)においては、α(i)=0.5として、Pzmp(i)を記載している。
この後、歩容生成装置100は、4肢支持期を経て、図16に示される期間d2に遷移する。この4肢支持期において、歩容生成装置100は、図21(a)(b)に示されるように、仮目標ZMPをPzmp(1)の位置から後述するPzmp(2)の位置まで移動させる。なお、図21及び後述する図23において、Pzmp(i)のXの値をPzmp(i)xとして表し、Pzmp(i)のYの値をPzmp(i)yとして表している。
次に、図16に示される期間d2(i=2)が今回の3肢支持期である場合についての仮目標ZMP候補の決定処理を説明する。
歩容生成装置100は、以下のようにして、式200により仮目標ZMP候補Pzmp(2)を求める。
まず、歩容生成装置100は、今回の3肢支持期(期間d2)における支持肢3R,3L及び2Rの夫々の着地位置を囲む領域を今回の3肢支持期における支持多角形Sd2として求める。
そして、歩容生成装置100は、次回の3肢支持期(期間d3)における支持肢3R、2L及び2Rの夫々の着地位置又は着地予定位置を囲む領域を次回の3肢支持期における支持多角形Sd3として求める。
歩容生成装置100は、今回の支持多角形Sd2と次回の支持多角形Sd3との重複領域DR2を求める。
歩容生成装置100は、今回の3肢支持期における遊肢2Lの着地予定位置と、その対角にある肢3Rの着地位置とを結ぶ線(より詳しくは、図18(b)における遊肢2Lの着地予定位置内に定めた点と肢3Rの着地位置内に定めた点とを結ぶ線)により、遊肢線L3を求める。
また、歩容生成装置100は、残りの2肢3L、2Rとを結ぶ線(より詳しくは、図18(b)における肢3Lの着地位置内に定めた点と、遊肢2Rの着地位置の内に定めた点とを結ぶ線)により、支持肢線L4を求める。
また、歩容生成装置100は、重複領域DR2内において、重複領域DR2の中心としての重複領域DR2の重心を基準として広がる領域(DR2の内接円)SC2を求める。
歩容生成装置100は、重複領域DR1内において、遊肢線L3と支持肢線L4との交点を基準として広がる領域EC2を求める。
歩容生成装置100は、領域SC2に含まれる1点を(本実施形態では、重複領域DR2の重心)を、点SP(2)として求める。
また、歩容生成装置100は、領域EC2に含まれる1点(本実施形態では、遊肢線L3と支持肢線L4との交点)を点EP(2)として求める。
歩容生成装置100は、上記式200により、2点SP(2)、EP(2)をα(2)で重みづけをした点を仮目標ZMP候補Pzmp(2)として求め、それを仮目標ZMPとする。
この後、4肢支持期を経て、図16に示される期間d3に遷移する。この4肢支持期において、歩容生成装置100は、図21(a)(b)に示されるように、仮目標ZMPをPzmp(2)の位置から後述するPzmp(3)の位置まで移動させる。
次に、図16に示される期間d3(i=3)が今回の3肢支持期である場合についての仮目標ZMP候補の決定処理を説明する。
歩容生成装置100は、以下のようにして、式200により仮目標ZMP候補Pzmp(3)を求める。
まず、歩容生成装置100は、今回の3肢支持期(期間d3)における支持肢3R,2L及び2Rの夫々の着地位置を囲む領域を今回の3肢支持期における支持多角形Sd3として求める。
そして、歩容生成装置100は、次回の3肢支持期(期間d4)における支持肢3R、3L及び2Lの夫々の着地位置又は着地予定位置を囲む領域を次回の3肢支持期における支持多角形Sd4として求める。
歩容生成装置100は、今回の支持多角形Sd3と次回の支持多角形Sd4との重複領域DR3を求める。
歩容生成装置100は、今回の3肢支持期における遊肢3Lの着地予定位置と、その対角にある肢2Rの着地位置とを結ぶ線(より詳しくは、図18(c)における遊肢3Lの着地予定位置内に定めた点と、肢2Rの着地位置内に定めた点とを結ぶ線)により、遊肢線L5を求める。
また、歩容生成装置100は、残りの2肢3R、2Lとを結ぶ線(より詳しくは、図18(c)における遊肢3Rの着地位置内に定めた点と肢2Lの着地位置内に定めた点とを結ぶ線)により、支持肢線L6を求める。
また、歩容生成装置100は、重複領域DR3内において、重複領域DR3の中心としての支持肢線L6の中点を基準として広がる領域(DR3の内接円)SC3を求める。
歩容生成装置100は、重複領域DR3内において、遊肢線L5と支持肢線L6との交点を基準として広がる領域EC3を求める。
歩容生成装置100は、領域SC3に含まれる1点を(本実施形態では、支持肢線L6の中点)を、点SP(3)として求める。
また、歩容生成装置100は、領域EC3に含まれる1点(本実施形態では、遊肢線L5と支持肢線L6との交点)を点EP(3)として求める。
歩容生成装置100は、上記式200により、2点SP(3)、EP(3)をα(3)で重みづけをした点を仮目標ZMP候補Pzmp(3)として求め、それを仮目標ZMPとする。
この後、4肢支持期を経て、図16に示される期間d4に遷移する。この4肢支持期において、歩容生成装置100は、図21(a)(b)に示されるように、仮目標ZMPをPzmp(3)の位置から後述するPzmp(4)の位置まで移動させる。
次に、図16に示される期間d4(i=4)が今回の3肢支持期である場合についての仮目標ZMP候補の決定処理を説明する。
歩容生成装置100は、以下のようにして、式200により仮目標ZMP候補Pzmp4)を求める。
まず、歩容生成装置100は、今回の3肢支持期(期間d4)における支持肢3R,3L及び2Lの夫々の着地位置を囲む領域を今回の3肢支持期における支持多角形Sd4として求める。
そして、歩容生成装置100は、次回の3肢支持期(期間d5)における支持肢3L、2L及び2Rの夫々の着地位置又は着地予定位置を囲む領域を次回の3肢支持期における支持多角形Sd5として求める。
歩容生成装置100は、今回の支持多角形Sd2と次回の支持多角形Sd3との重複領域DR4を求める。
歩容生成装置100は、今回の3肢支持期における遊肢2Rの着地予定位置と、その対角にある肢3Lの着地位置とを結ぶ線(より詳しくは、図18(d)における遊肢2Rの着地予定位置内に定めた点と肢3Lの着地位置内に定めた点とを結ぶ線)により、遊肢線L7を求める。
また、歩容生成装置100は、残りの2肢3R、2Lとを結ぶ線(より詳しくは、図18(d)における肢3Rの着地位置内に定めた点と、遊肢2Lの着地位置内に定めた点とを結ぶ線)により、支持肢線L8を求める。
また、歩容生成装置100は、重複領域DR4内において、重複領域DR4の中心としての重複領域DR4の重心を基準として広がる領域(DR4の内接円)SC4を求める。
歩容生成装置100は、重複領域DR4内において、遊肢線L7と支持肢線L8との交点を基準として広がる領域EC4を求める。
歩容生成装置100は、領域SC4に含まれる1点を(本実施形態では、重複領域DR4の重心)を、点SP(4)として求める。
また、歩容生成装置100は、領域EC4に含まれる1点(本実施形態では、遊肢線L7と支持肢線L8との交点)を点EP(4)として求める。
歩容生成装置100は、上記式200により、2点SP(4)、EP(4)をα(4)で重みづけをした点を仮目標ZMP候補Pzmp(4)として求め、それを仮目標ZMPとする。
この後、4肢支持期を経て、図16に示される期間d5に遷移する。この4肢支持期において、歩容生成装置100は、図24(a)(b)に示されるように、仮目標ZMPをPzmp(4)の位置から次の仮目標ZMPの位置まで移動させる。
また、歩容生成装置100は、今回の支持多角形Sdに基づき、ZMP許容領域PRdを求める。ZMP許容領域PRdは、たとえば、図19に示されるように、今回の支持多角形Sd内に今回の支持多角形Sdよりも小さい領域として定義される。換言すれば、ZMP許容領域PRdは、今回の支持多角形Sdのうち、安定余裕(マージン)が高い領域として設定される。
また、歩容生成装置100は、歩行環境におけるロボットの歩行の安定性に応じてZMP許容領域PRdの大きさを設定することが好ましい。
より詳しくは、歩容生成装置100は、歩行環境が平地のように、ロボットの安定的な歩行が可能な場合はZMP許容領域が比較的大きくなるように(図19のPRd’参照)ZMP許容領域を設定する一方、歩行環境が平地でなく、ロボットの安定的な歩行が困難な場合はZMP許容領域が比較的小さくなるように(図19のPRd’’参照)ZMP許容領域を設定することが好ましい。
そして、歩容生成装置100は、仮目標ZMP候補Pzmp(i)がZMP許容領域PRd内に存在しない場合、仮目標ZMP候補Pzmp(i)を仮目標ZMP候補Pzmp(i)から最短の距離にあるZMP許容領域PRdの境界線上の点(たとえば図19では、PRd’に対しては、Pzmp’(i)、PRd’’に対してはPzmp’’(i))に修正して、仮目標ZMPとして定める。
歩容生成装置100は、仮目標ZMP候補Pzmp(i)がZMP許容領域PRd内に存在する場合、仮目標ZMP候補Pzmp(i)をそのまま仮目標ZMPとして定める。
また、修正後の位置は、最短の距離にあるZMP許容領域PRdの境界線上の点に限られず、ZMP許容領域PRdの境界線の仮目標ZMPに対向する部分上であればどの位置でもよい。
より詳細には、仮目標ZMPを出発点として、ZMP許容領域PRdを通るように一の半直線(ZMP許容領域PRdを横断する直線(線分))を引くと、当該一の半直線とZMP許容領域PRdの境界線との交点が1または複数存在する。これらの交点のうちで仮目標ZMPとの距離が最短となる交点を、ここでは「最短交点」と呼ぶ。最短交点は、仮目標ZMPを出発点としてZMP許容領域PRdを通る一の半直線に対し1つ存在する。このような最短交点を仮目標ZMPを出発点としてZMP許容領域PRdを通るすべての半直線に対して考えた時、最短交点により1つの集合が形成される。ZMP許容領域PRdの境界線の仮目標ZMPに対向する部分は、これらの最短交点の集合により構成される部分である。
修正後の位置の説明に戻ると、ZMP許容領域PRdに内包される1の基準位置と仮目標ZMP候補Pzmp(i)とを結んだ線分と、ZMP許容領域PRdの境界線との交点が修正後の位置とされてもよい。
ZMP許容領域PRdに内包される1の基準位置としては、たとえば、上記の点SP(i)、又はZMP許容領域PRdの重心等が採用されうる。
点SP(i)は、必ずしもZMP許容領域PRdに内包されるわけではないので、歩容生成装置100は、たとえばSP(i)がZMP許容領域PRdに内包にされるかどうかを判定し、点SP(i)がZMP許容領域PRdに内包される場合には、点SP(i)を前記基準位置とする一方、点SP(i)がZMP許容領域PRdに内包されない場合には、ZMP共領域PRdの重心を前記基準位置とするように構成されていてもよい。
また、制御ユニット26は、特許第5404544号公報に記載される「コンプライアンス制御用目標床反力モーメントを出力する補償全床反力モーメント分配器」を備えてもよい。この場合、「ZMP許容領域PRdのうち、実ロボットの外力操作量(目標ZMPまわりの補償全床反力モーメント)が“0”であると仮定して決定されるコンプライアンス制御用目標床反力モーメント(制御対象外力要素の目標値)により規定される全床反力中心点の位置」が前記基準位置として採用されてもよい。
なお、この仮目標ZMP候補Pzmp(i)のZMP共領域PRdの境界線上への修正は、後述するトロット歩行においても同様に適用できる。
(クロール歩容における仮目標ZMP候補の軌跡)
図20(a)は、上記により生成された直進時の仮目標ZMP候補の軌跡を示している。LS1〜4は、それぞれ、右上肢3R、左下肢2L、左上肢3L、右下肢2Rの初期位置を示し、CS1〜CS10はクロール歩容における各遊肢の着地位置のそれぞれを示し、Pzmp1〜10は生成された仮目標ZMP候補を示す。なお、着地位置CS1〜CS10及びPzmp1〜10は番号が若いほど初期状態に近い点である。
また、図27は、仮目標ZMP候補を静的に安定する点(各時点の今回の支持多角形の重心とした点)として生成した場合の直進時の仮目標ZMPの軌跡を示している。図27において、LS1〜4は、それぞれ、右上肢3R、左下肢2L、左上肢3L、右下肢2Rの初期位置を示し、CS1〜CS10はクロール歩容における各遊肢の着床点のそれぞれを示し、CPzmp1〜10は生成された仮目標ZMPを示す。
図27と比較すると、図20(a)の仮目標ZMP候補の軌跡は、左右に大きく振れることがなく、安定している。この結果、図10/S030におけるZMPの修正量も小さくなり、安定した歩行が可能となる。
また、図20(b)は、左方向に旋回した場合の仮目標ZMP候補の軌跡を示している。図からもわかるように、左方向に旋回する場合でも、仮目標ZMP候補が大きく左右に振れることがなく、安定している。
上記仮目標ZMP候補決定処理によって決定された仮目標ZMP候補により決定された仮目標ZMPの図10/S030における修正量について、図21を参照して説明する。図21(a)(b)は、クロール歩容におけるロボット1の仮目標ZMP(一点鎖線)、修正後の目標ZMP(二点鎖線)及び重心位置(実線)の時間的変化を示したグラフである。図21(a)の縦軸がX軸方向における位置を示し、横軸が時間を示す。図21(b)は縦軸がY軸方向における位置を示し、横軸が時間を示す。図21(a)(b)からもわかるように、移動開始直後(時刻t=tc〜t=tdまで)は仮目標ZMPと修正後の目標ZMPが異なっているが、時刻t=td以後では、仮目標ZMPと修正後の目標ZMPとが一致している。移動開始直後(時刻t=tc〜t=tdまで)における仮目標ZMPの合計修正量は、接地部16R,16Lの大きさの10%程度と、かなり小さくなっている。この結果、ロボット1の安定した歩行が可能となる。
(トロット歩容における仮目標ZMP候補の決定処理の具体例)
次に、図17及び図22を参照して、トロット歩容における仮目標ZMP候補の決定処理の具体例を説明する。トロット歩容において、SPは、今回の2肢支持期における支持多角形と次回の2肢支持期における支持多角形との重複領域の中心を基準として広がる領域内の1点として定義される。本実施形態においては、SPは、支持肢線と遊肢の着床位置及び遊肢の対角にある肢の着床位置を結んだ線との交点として定義される。
また、第1実施形態のトロット歩容における遊肢線は、遊肢の離床位置及び遊肢の対角にある肢の離床位置を結んだ線で定義される。これに代えて、トロット歩容における遊視線が、遊肢の着床予定位置及び遊肢の対角にある肢の着床予定位置を結んだ線で定義されてもよい。
まず、図17に示される期間d6(i=6)が今回の2肢支持期である場合についての仮目標ZMP候補の決定処理を説明する。
歩容生成装置100は、以下のようにして、式200により仮目標ZMP候補Pzmp6)を求める。
まず、歩容生成装置100は、今回の2肢支持期(期間d6)における支持肢3L及び2Rの夫々の着地位置を囲む領域を今回の2肢支持期における支持多角形Sd6として求める。
そして、歩容生成装置100は、次回の2肢支持期(期間d7)における支持肢3L及び2Rの夫々の着地予定位置を囲む領域を次回の2肢支持期における支持多角形Sd7として求める。
歩容生成装置100は、今回の支持多角形Sd6と次回の支持多角形Sd7との重複領域DR6を求める。
歩容生成装置100は、今回の2肢支持期における遊肢3R、2Lの離床位置を結ぶ線(より詳しくは、図22(a)における遊肢3Rの離床位置内に定めた点と肢2Lの離床位置内に定めた点とを結ぶ線)により、第1の遊肢線L11を求める。
また、歩容生成装置100は、残りの2肢3L、2Rとを結ぶ線(より詳しくは、図22(a)における肢3Lの着地位置内に定めた点と、遊肢2Rの着地位置内に定めた点とを結ぶ線)により、支持肢線L12を求める。
歩容生成装置100は、今回の2肢支持期における遊肢3R、2Lの着床予定位置を結ぶ線(より詳しくは、図22(a)における遊肢3Rの着床予定位置内に定めた点と肢2Lの着床予定位置内に定めた点とを結ぶ線)により、第2の遊肢線L13を求める。
また、歩容生成装置100は、重複領域DR6内において、重複領域DR6の中心としての支持肢線L12と第2の遊肢線L13との交点を基準として広がる領域(DR6の内接円)SC6を求める。
歩容生成装置100は、重複領域DR6内において、第1の遊肢線L11と支持肢線L12との交点を基準として広がる領域EC6を求める。
歩容生成装置100は、領域SC6に含まれる1点を(本実施形態では、支持肢線L12と第2の遊肢線L13との交点)を、点SP(6)として求める。
また、歩容生成装置100は、領域EC6に含まれる1点(本実施形態では、第1の遊肢線L11と支持肢線L12との交点)を点EP(6)として求める。
歩容生成装置100は、上記式200により、2点SP(6)、EP(6)をα(6)で重みづけをした点を仮目標ZMP候補Pzmp(6)として求め、それを仮目標ZMPとする。
この後、4肢支持期を経て、図16に示される期間d7に遷移する。この4肢支持期において、歩容生成装置100は、図23(a)(b)に示されるように、仮目標ZMPをPzmp(6)の位置から後述するPzmp(7)の位置まで移動させる。
次に、図17に示される期間7(i=7)が今回の2肢支持期である場合についての仮目標ZMP候補の決定処理を説明する。
歩容生成装置100は、以下のようにして、式200により仮目標ZMP候補Pzmp7)を求める。
まず、歩容生成装置100は、今回の2肢支持期(期間d7)における支持肢3R及び2Lの夫々の着地位置を囲む領域を今回の2肢支持期における支持多角形Sd7として求める。
そして、歩容生成装置100は、次回の2肢支持期(期間d8)における支持肢3L及び2Rの夫々の着地予定位置を囲む領域を次回の2肢支持期における支持多角形Sd8として求める。
歩容生成装置100は、今回の支持多角形Sd7と次回の支持多角形Sd8との重複領域DR7を求める。
歩容生成装置100は、今回の2肢支持期における遊肢3L、2Rの離床位置を結ぶ線(より詳しくは、図22(b)における遊肢3Lの離床位置内に定めた点と肢2Rの離床位置内に定めた点とを結ぶ線)により、第1の遊肢線L14を求める。
また、歩容生成装置100は、残りの2肢3R、2Lとを結ぶ線(より詳しくは、図22(b)における肢3Rの着地位置内に定めた点と、遊肢2Lの着地位置内に定めた点とを結ぶ線)により、支持肢線L15を求める。
歩容生成装置100は、今回の2肢支持期における遊肢3L、2Rの着床予定位置を結ぶ線(より詳しくは、図22(b)における遊肢3Lの着床予定位置内に定めた点と肢2Rの着床予定位置内に定めた点とを結ぶ線)により、第2の遊肢線L16を求める。
また、歩容生成装置100は、重複領域DR7内において、重複領域DR7の中心としての支持肢線L15と第2の遊肢線L16との交点を基準として広がる領域(DR6の内接円)SC6を求める。
歩容生成装置100は、重複領域DR7内において、第1の遊肢線L14と支持肢線L15との交点を基準として広がる領域EC7を求める。
歩容生成装置100は、領域SC7に含まれる1点を(本実施形態では、支持肢線L15と第2の遊肢線L16との交点)を、点SP(7)として求める。
また、歩容生成装置100は、領域EC7に含まれる1点(本実施形態では、第1の遊肢線L14と支持肢線L15との交点)を点EP(7)として求める。
歩容生成装置100は、上記式200により、2点SP(7)、EP(7)をα(7)で重みづけをした点を仮目標ZMP候補Pzmp(7)として求め、それを仮目標ZMPとする。
この後、4肢支持期を経て、図16に示される期間d8に遷移する。この4肢支持期において、歩容生成装置100は、図23(a)(b)に示されるように、仮目標ZMPをPzmp(7)の位置から次回の仮目標ZMPの位置まで移動させる。
歩容生成装置100は、クロール歩容と同様に、ZMP許容領域に基づいて仮目標ZMP候補の修正を行う。
(トロット歩容における仮目標ZMP候補の軌跡)
図22(a)(b)に示されるように、仮目標ZMP候補Pzmp(6)〜Pzmp(7)は左右に大きく振れることがなく、安定している。この結果、図10/S030におけるZMPの修正量も小さくなり、安定した歩行が可能となる。
図10/S030におけるZMPの修正量が小さくなることを図23(a)(b)を参照して説明する。図23(a)(b)は、トロット歩容におけるロボット1の仮目標ZMP(一点鎖線)、修正後の目標ZMP(二点鎖線)及び重心位置(実線)の時間的変化を示したグラフである。図23(a)の縦軸がX軸方向における位置を示し、横軸が時間を示す。図23(b)は縦軸がY軸方向における位置を示し、横軸が時間を示す。図23(a)(b)からもわかるように、移動開始直後(時刻t=te〜t=tfまで)は仮目標ZMPと修正後の目標ZMPが異なっているが、時刻t=tf以後では、仮目標ZMPと修正後の目標ZMPとが一致している。移動開始直後(時刻t=te〜t=tfまで)における仮目標ZMPの合計修正量は、接地部16R,16Lの大きさの10%程度と、かなり小さくなっている。この結果、ロボット1の安定した歩行が可能となる。
(2肢−4肢遷移)
次に、図4〜図6を参照して、2肢−4肢遷移(4肢―2肢遷移)について説明する。図5は、2肢歩行状態(時刻t1〜t3)から、2肢−4肢遷移(時刻t4〜t7)を経て、トロット歩行状態(時刻t8〜t9)となったのち、4肢―2肢遷移(時刻t10〜t13)を経て、2肢起立状態(時刻t13以降)となるまでの、各肢2,3の離着床状態を示したものである。図4は、この一連の流れにおけるロボット1の姿勢の左側面図であり、図6(a)は、この一連の流れにおける上体質点水平位置Xbの変化を示すグラフ(縦軸:Xb、横軸:経過時間)である。図6(b)は、上体質点鉛直位置Zbの変化を示すグラフ(縦軸:Zb、横軸:経過時間)である。図6(c)は、6軸力センサ41a、41bにより検出された各肢2,3の夫々に係る力を示すグラフ(縦軸:力の大きさ、横軸:経過時間)であり、実線が右上肢3Rに係る力、破線が左上肢3Lに係る力、一点鎖線が左下肢2Lに係る力、二点鎖線が右下肢2Rに係る力をそれぞれ示す。図6(d)は、X軸回り及びY軸回りの回転角度を示したグラフ(縦軸:回転角度、横軸:経過時間)であり、実線がX軸回りの傾斜角度、破線がY軸回りの傾斜角度を示す。図6(e)は、X軸方向の目標ZMPの位置を示し、図6(f)はY軸方向の目標ZMPの位置を示す。
2肢歩行においては、図5〜図6の時刻t1、t3に示される片脚支持期と、時刻t2に示される両脚支持期を交互に繰り返す。図5に示すように、歩容生成装置100は、両脚支持期と、それに続く片脚支持期とを1歩とみなして、上述した目標歩容生成処理を行う。この2肢歩行については、図6(a)に示されるように、上体質点水平位置Xbが前方に移動する一方で、図6(b)に示されるように、上体質点鉛直位置Zbはほぼ一定である(時刻t1〜t3)。また、図6(c)に示されるように、右下肢2Rと左下肢2Lに交互に所定の大きさの床反力が働く(時刻t1〜t3)。この床反力は1歩の期間で平均するとロボットの自重と同じ大きさとなる。傾き角度についても、図6(d)に示されるように、X軸回り及びY軸回り夫々に比較的大きな傾斜角度が発生するが、周期は緩やかである(時刻t1〜t3)。
2肢歩行時の歩容切り替わり目において(図10/S016‥YES)、今回の歩容の運動種別の要求値が2肢−4肢遷移(又は次回歩容の運動種別の要求値が4肢歩容)であった場合、歩容生成装置100は、図4〜図6の時刻t=t4〜t=t7に示されるような2肢−4肢遷移のための歩容を生成する。この場合、歩容生成装置100は、図10/S022〜S030において2肢−4肢遷移を手平着床期、ZMP移動期、4肢歩行準備期に分け、夫々の繊維状態に応じて、今回の歩容パラメータを作成する。
2肢−4肢遷移においては、図6(a)〜図6(f)に示されるように、各パラメータが連続的に遷移する。また、図6(b)に示されるように、上体質点鉛直位置Zbは、2肢歩行時の平均高さh1(時刻t4)から、一時的に高さh3(h1>h2>h3)(時刻t6〜t7)まで低くなり、その後4肢歩行時の平均高さh2(時刻t8付近)にまで戻る。各支持肢が受ける床反力については、図6(c)に示されるように、手平着床期において下肢2R、2Lのみが床反力を受けている状態(時刻t4〜t5)から、ZMP移動期及び4肢歩行準備期において各上肢3R、3L、下肢2R、2Lが床反力を負担する状態(時刻t6〜t7)に遷移する。また、図6(d)に示されるように、X軸回り、Y軸回りの傾斜については、傾斜角度が比較的大きい状態(時刻t4)から傾斜角度が小さい状態(時刻t7)に変化する。また、図6(e)に示されるように、ZMP移動期t6において、X軸方向の目標ZMPの位置が前方に移動する。
歩容切り替わり目において(図10/S016‥YES)、今回の歩容の運動種別の要求値が4肢歩行であった場合、歩容生成装置100は、図4〜図6の時刻t=t8〜t=t9に示されるような4肢歩行のための歩容を生成する。この場合、歩容生成装置100は、図10/S022〜S030において次回以降の歩容を4肢歩容として今回歩容パラメータを決定する。
4肢歩行(トロット歩行)においては、図6(a)に示されるように、上体質点水平位置Xbは、2肢歩行時よりも早く前方に移動する(時刻t8〜t10参照)。各支持肢3R,3L,2R,2Lが受ける各床反力の大きさは、図6(c)に示されるように、2肢歩行時に両下肢2R,2Lが受ける各床反力よりも小さい(時刻t1〜t3、時刻t8〜t10)。また、上肢3R(L)が受ける床反力よりも下肢2R(L)が受ける床反力の方が大きい(時刻t8及びt9)。また、図6(d)に示されるように、X軸回り、Y軸回りの傾斜については、その傾斜角度は歩行時よりも小さいが、周期は短い(時刻t1〜t3、時刻t8〜t10)。
4肢歩行時の歩容切り替わり目において(図10/S016‥YES)、今回の歩容の運動種別の要求値が4肢−2肢遷移(又は次回の歩容の運動種別の要求値が2肢歩行)であった場合、歩容生成装置100は、時刻t10〜t13に示されるような4肢−2肢遷移のための歩容を生成する。この場合、歩容生成装置100は、図10/S022〜S030において次回以降の歩容を2肢歩容として今回歩容パラメータを決定する。
4肢−2肢遷移においては、図6(a)〜図6(f)に示されるように、各パラメータが連続的に遷移する。また、図6(b)に示されるように、上体質点鉛直位置Zbは、4肢歩行の平均高さh2(時刻t10)から一時的に高さh3(時刻t11)まで低くなり、その後2肢歩行時の平均高さh1(時刻t12〜t13)にまで戻る。各支持肢が受ける床反力については、図6(c)に示されるように、腰移動期及びZMP移動期において各上肢3R、3L、下肢2R,2Lが床反力を負担する状態(時刻t10〜t11)から手平離床期において下肢2R、2Lのみが床反力を受けている状態(時刻t12〜t13)に遷移する。また、図6(d)に示されるように、X軸回り、Y軸回りの傾斜については、傾斜角度が小さい状態(時刻t10〜t11)から傾斜角度が大きい状態(時刻t12〜t13)に変化する。また、図6(e)に示されるように、ZMP移動期t12において、Z軸方向の目標ZMPの位置が後方に移動する。
上述した各歩行のうち、2肢−4肢遷移及び4肢−2肢遷移を、2肢−4肢遷移を例にとってより詳しく説明する。
まず、図4を参照して、2肢−4肢遷移の動きの概略を説明する。これらの動きは、前述した目標歩容生成処理により生成された目標歩容に従って行われる。ロボット1は、2肢歩行状態からまず、手平着床期へと遷移する(時刻t=t4)。次に、ロボット1は、腰関節及び腰椎関節を回転させることにより、前傾姿勢を経て(時刻t=t5)。接地部37R,37Lを地面に着かせるZMP移動期に遷移する(時刻t=t6)。ZMP移動期及び続く4肢歩行準備期(時刻t=t7)において、ロボット1は、ZMPの位置及び腰の位置等を4肢歩行に適した状態へ遷移させる。
次に、図24を参照して、2肢−4肢遷移時における上体質点鉛直位置、腰関節回転角度、腰椎関節回転角度、右手(右上肢接地部)及び左手(左上肢接地部)の高さ、実ZMP及び実重心水平位置(X位置)との関係を説明する。
両脚支持期(時刻t=t4)においては、図24(a)に示されるように、上体質点鉛直位置は2肢歩行時の平均高さh1であり、図24(b)(c)に示されるように、腰関節回転角度θ1及び腰椎関節回転角度θ2はゼロ、図24(d)に示されるように、右手及び左手の高さ(接地部37R、37Lの最下端の位置)は2肢歩行時に手を下方向に伸ばした場合の高さh4、図24(e)に示されるように、実ZMP及び実重心水平位置は初期状態となっている。
前述したように、手平着床期の初期(時刻t=t4)から腰関節及び腰椎関節を回転させることにより、前傾姿勢を経て、ZMP移動期及び4肢歩行準備期(時刻t=t6〜t=t7)に遷移する。手平着床期(時刻t=t4)〜前傾姿勢(時刻t=t5)〜ZMP移動期(時刻t=t6)において、図24(a)に示されるように、上体質点鉛直位置は高さh3まで減少する一方、図24(b)(c)に示されるように、腰関節回転角度θ1及び腰椎関節回転角度θ2はそれぞれ所定角度θa、θb(θa<θb)まで増加する。手平着床期(時刻t=t4)〜前傾姿勢(時刻t=t5)〜ZMP移動期(時刻t=t6)において、図24(d)に示されるように、右手及び左手高さは、高さh4からゼロまで変化する。手平着床期(時刻t=t4)〜前傾姿勢(時刻t=t5)〜ZMP移動期(時刻t=t6)において、図24(e)に示されるように、X方向のZMPの位置は、開始時点において少し後退したのち、緩やかに前方に移動し、実重心水平位置は、緩やかに前方に移動する。
時刻t=t6から時刻t=t7までは、上体質点鉛直位置、腰関節回転角度θ1及び腰椎関節回転角度θ2、右手及び左手高さ、X方向の実ZMP及び実重心の位置はほとんど変化しない。
(第1実施形態〜第3実施形態の作用効果)
図25及び図26を参照して、第1実施形態〜第3実施形態の作用効果を説明する。
図25(a)(b)は、2肢−4肢遷移時(時刻t=t4〜t=t7)における、上体質点鉛直位置Zb,右手高さ、腰関節回転角度θ1及び腰椎関節回転角度θ2の時間的変化態様をそれぞれ示したグラフである。
図25(c)(d)は、同時期(2肢−4肢遷移時(時刻t=t4〜t=t7))における、Y軸回り(ピッチ方向)の傾斜角度及び実ZMPのX方向の位置を、第1〜第3実施形態と比較形態との間で比較したグラフである。
図25(e)(f)は、同時期(2肢−4肢遷移時(時刻t=t4〜t=t7))における、X軸方向及びY軸方向の仮目標ZMPの位置を示すグラフである。
図25(g)(h)は、同時期(2肢−4肢遷移時(時刻t=t4〜t=t7))における、腰関節及び腰椎関節の回転加速度を示すグラフである。
ここで、第2実施形態は、前述したように、第1実施形態の目標歩容生成処理における図15/S306における式100においてZ(t)を固定値hとした実施形態である。また、第3実施形態は、第1実施形態の目標歩容生成処理における図15/S306における式100においてθ2をゼロに固定した実施形態(又は腰椎関節を設けない形態)である。また、比較形態は、第1実施形態の目標歩容生成処理における図15/S306における式100においてZ(t)を固定値hとし、かつ、θ2をゼロに固定した形態である。
第1実施形態のY軸回りの傾斜角度は、手平着床期(時刻t=t4)においてゼロであり、その後、徐々に増大し、ZMP移動期の開始時点(時刻t=t6)前後においてピークを迎える。その後、時刻t=t7までにほぼゼロに収束する。
また、第1実施形態の実ZMPのX方向の位置は、手平着床期(時刻t=t4)の初期状態(ゼロ)から、徐々に前方に移動し、ZMP移動期(時刻t=t6)前後において、前方及び後方にやや変動し、その後、時刻t=t7までにほぼ所定の値に収束する。
第2実施形態のY軸回りの傾斜角度は、手平着床期(時刻t=t4)においてゼロであり、その後、徐々に増大し、ZMP移動期の開始時点(時刻t=t6)前後においてピークを迎え、その後、時刻t=t7までにほぼゼロに収束する点で、第1実施形態のY軸回りの傾斜角度の変化と類似する。他方、その変化量は第1実施形態のY軸回りの傾斜角度の変化量よりもやや大きい。
また、第2実施形態の実ZMPのX方向の位置は、手平着床期(時刻t=t4)の初期状態(ゼロ)から、徐々に前方に移動し、ZMP移動期(時刻t=t6)前後において、前方及び後方にやや変動し、その後時刻t=t7までにほぼ所定の値に収束する点で、第1実施形態のY軸回りの実ZMPのX方向の位置の変化と類似する。他方、その変化量は、第1実施形態のY軸回りの実ZMPのX方向の位置の変化量よりもやや大きい。
第3実施形態のY軸回りの傾斜角度は、手平着床期(時刻t=t4)においてゼロであり、その後、徐々に増大し、ZMP移動期の開始時点(時刻t=t6)前後においてピークを迎え、その後、時刻t=t7までにほぼゼロに収束する点で、第1実施形態のY軸回りの傾斜角度の変化と類似する。他方、その変化量は第1実施形態及び第2実施形態のY軸回りの傾斜角度の変化量よりもかなり大きい。
また、第3実施形態の実ZMPのX方向の位置は、手平着床期(時刻t=t4)の初期状態(ゼロ)から、徐々に前方に移動し、ZMP移動期(時刻t=t6)前後において、前方及び後方にやや変動し、その後時刻t=t7までにほぼ所定の値に収束する点で、第1実施形態のY軸回りの実ZMPのX方向の位置の変化と類似する。他方、その変化量は、第1実施形態及び第2実施形態のY軸回りの実ZMPのX方向の位置の変化量よりもかなり大きい。
比較形態のY軸回りの傾斜角度は、手平着床期(時刻t=t4)においてゼロであり、その後、徐々に増大し、ZMP移動期の開始時点(時刻t=t6)前後においてピークを迎え、その後、時刻t=t7までにほぼゼロに収束する点で、第3実施形態のY軸回りの傾斜角度の変化と類似する。他方、その変化量は第3実施形態のY軸回りの傾斜角度の変化量よりもやや大きい。
さらに、図26(a)に示されるように、時刻t6付近(2−4肢遷移時)において、第1実施形態〜第3実施形態におけるY軸回りの傾斜角度の変化量の最大値Δg1〜Δg3は、それぞれ比較形態におけるY軸回りの傾斜角度の変化量の最大値Δg4よりも小さく抑えられている。特に、第1実施形態及び第2実施形態における変化量の最大値Δg1及びΔg2は、2度程度とかなり小さく抑えらている。
また、比較形態の実ZMPのX方向の位置は、手平着床期(時刻t=t4)の初期状態(ゼロ)から、徐々に前方に移動し、ZMP移動期(時刻t=t6)前後において、前方及び後方にやや変動し、その後時刻t=t7までにほぼ所定の値に収束する点で、第3実施形態のY軸回りの実ZMPのX方向の位置の変化と類似する。他方、その変化量は、第3実施形態のY軸回りの実ZMPのX方向の位置の変化量よりもやや大きい。
さらに、図26(b)に示されるように、時刻t6付近(2−4肢遷移時)において、第1実施形態〜第3実施形態におけるX方向の実ZMP位置の変化量の最大値Δs1〜Δs3は、それぞれ比較形態におけるX方向の実ZMP位置の変化量の最大値Δs4と同等かΔs4よりも小さくなっている。また、第1実施形態〜第3実施形態におけるX方向の実ZMP位置の変化量が大きい期間Δpt1〜Δpt3は、比較形態におけるX方向の実ZMP位置の変化量が大きい期間Δpt4よりも短い。
以上の通り、本発明の実施形態である第1〜第3実施形態は、いずれも比較形態と比較して、2肢〜4肢遷移時において、Y軸回りの傾斜角度及び実ZMP位置の急劇な変化を緩和できるとともに、2肢〜4肢遷移にかかる時間を短縮することが出来る。
これは、第1〜第3実施形態のロボット1が、それぞれ比較形態のロボットよりも安定かつ迅速な2肢−4肢遷移を行えることを意味している。
また、第1実施形態〜第3実施形態では、上述した目標歩容生成処理において、同一の動力学モデルに基づいて2肢歩行、2肢走行、2肢−4肢遷移、4肢―2肢遷移、4肢歩行の目標歩容が生成されるので、動力学モデルの切り替えに伴う初期化をすることなく、各動作における目標歩容が生成される。これにより、長時間停止することなく、各動作の切り替えがスムーズに行われうる。
なお、本実施形態において用いた発散成分算出方法に代えて、たとえば特許第3726096号公報に記載される公知の発散成分算出方法を用いてもよい。