以下、脚式移動ロボットとして2足移動ロボットを例にとって、本発明の一実施形態を説明する。
図1に示すように、本実施形態の2足移動ロボット1(以下、単にロボット1という)は、上体24と、この上体24から下方に延設された左右一対の脚体(脚部リンク)2R,2Lとを備える。
上体24は、両脚体2R,2Lの基端部(上端部)に後述する股(腰)関節を介して連結されており、接床する脚体2R,2Lによって床面の上方に支持される。
両脚体2R,2Lは同一構造であり、それぞれ6個の関節を備える。その6個の関節は上体24側から順に、股の回旋用(上体24に対するヨー方向の回転用)の関節10R,10Lと、股のロール方向(X軸まわり)の回転用の関節12R,12Lと、股のピッチ方向(Y軸まわり)の回転用の関節14R,14Lと、膝部のピッチ方向の回転用の関節16R,16Lと、足首部のピッチ方向の回転用の関節18R,18Lと、足首部のロール方向の回転用の関節20R,20Lとから構成される。
なお、本実施形態の説明では、符号R,Lはそれぞれ右側脚体、左側脚体に対応するものであることを意味する。また、X軸、Y軸、Z軸は、後述する支持脚座標系の3つの座標軸を意味する。この支持脚座標系のX軸方向、Y軸方向は、水平面上で互いに直交する2軸方向であり、X軸方向はロボット1の前後方向(ロール軸方向)、Y軸方向はロボット1の左右方向(ピッチ軸方向)に相当する。また、Z軸方向は鉛直方向(重力方向)であり、ロボット1の上下方向(ヨー軸方向)に相当する。この場合、本実施形態では、X軸方向が、本発明における前後方向としての意味を持つ。
各脚体2R(L)の関節10R(L),12R(L),14R(L)によって3自由度の股関節が構成され、関節16R(L)によって1自由度の膝関節が構成され、関節18R(L),20R(L)によって2自由度の足首関節が構成されている。
そして、股関節10R(L),12R(L),14R(L)と膝関節16R(L)とは大腿リンク32R(L)で連結され、膝関節16R(L)と足首関節18R(L),20R(L)とは下腿リンク34R(L)で連結されている。また、各脚体2R(L)の足首関節18R(L),20R(L)の下部に、各脚体2R(L)の先端部(下端部)を構成する足平22R(L)が取着されている。また、各脚体2R(L)の上端部(基端部)が、股関節10R(L),12R(L),14R(L)を介して上体24に連結されている。
上記した各関節は、例えば本願出願人が特開平3−184782号などにて提案した公知の構造のものでよい。この場合、各関節を回転駆動するアクチュエータは、減速機を備える電動モータ42(図2参照)により構成される。
各脚体2R(L)の上記構成により、各脚体2R(L)の足平22R(L)は、上体24に対して6自由度を有する。そして、ロボット1の移動に際して両脚体2R,2Lを合わせて6×2=12個の関節をそれぞれ適宜な角度に駆動することで、両足平22R,22Lの所望の運動を行うことができる。これにより、ロボット1は歩行動作や走行動作等、3次元空間を移動する運動を行うことが可能となっている。
なお、図示は省略するが、本実施形態では、上体24の上部の両側部には左右一対の腕体が取り付けられると共に、上体24の上端部には頭部が搭載される。そして、各腕体は、それに備える複数の関節(肩関節、肘関節、手首関節など)によって、該腕体を上体24に対して前後に振る等の運動を行うことが可能となっている。ただし、これらの腕体及び頭部はなくてもよい。
上体24の内部にはロボット1の動作制御を行う制御ユニット26が格納されている。なお、図1では図示の便宜上、制御ユニット26を上体24の外部に記載している。
各脚体2R(L)の足首関節18R(L),20R(L)と足平22R(L)との間には6軸力センサ36R(L)が介装されている。この6軸力センサ36R(L)は、床から足平22R(L)を介して各脚体2R(L)に伝達される床反力の3軸方向の並進力成分及び3軸まわりのモーメント成分を検出し、その検出信号を制御ユニット26に出力する。
上体24には、鉛直方向(重力方向)に対する上体24の傾斜角(ロール方向及びピッチ方向の傾斜角)とその変化速度(角速度)とを計測するための傾斜センサ40が搭載されている。この傾斜センサ40は、より詳しくは、加速度センサとジャイロセンサ等のレートセンサ(角速度センサ)とから構成され、これらのセンサの検出信号を制御ユニット26に出力する。そして、制御ユニット26において、傾斜センサ40の出力を基に、公知の手法によって鉛直方向に対する上体24の傾斜角と角速度とが計測される。
また、各関節を回転駆動する電動モータ42(図2参照)には、各関節の回転角を検出するためのエンコーダ(ロータリエンコーダ)44(図2参照)が付設され、該エンコーダ44の検出信号が制御ユニット26に出力される。
次に、図2から図4を参照して、足平22R(L)の構成について説明する。なお、足平22R(L)は、左右対称であるため、ここでの説明では、符号R,Lを省略する。
足平22は、金属等の剛性体からなり、図3に示すように、船底形状に形成された足平本体23を備えている。該足平本体23の底面は、卵状の水平面からなる平底面25と、該平底面25の外周を取り囲むように存在する曲底面27とにより構成されている。曲底面27は、原点Oよりつま先側(X軸正方向側)のつま先側曲底面27aと、原点Oよりかかと側(X軸負方向側)のかかと側曲底面27bとからなり、両曲底面27a,27bは連続している。曲底面27は、本発明における底部外周面に相当するものである。
なお、原点Oは、足平22の平底面25を全面に亘って接床(床面に接触)させた状態において、脚体2の足首中心から床面に延ばした垂線が床面と交わる点である。そして、原点Oを通る水平面をXY平面としており、X軸方向、Y軸方向は、それぞれ足平22の前後方向、左右方向となる。
本実施形態では、曲底面27は、前後方向(X軸方向)に対して交差する鉛直面を含めた任意の鉛直面において曲率が連続している。ここでは、図4(a)から図4(c)に示した足平本体23の断面図に示されるように、原点Oを中心とした径方向において、平底面25(曲率は0)から連続的に曲率が増加するように、曲底面27が形成されている。具体的には、曲底面27は、原点Oを中心とした径方向の鉛直断面視において、平底面25の端点を始点として緩和曲線の一つであるクロソイド曲線となるように形成されている。なお、図4(c)は、図3のIVc−IVc線における断面図である。
そして、図2に示すように、足平22と6軸力センサ36との間には、バネ機構体29が配置されている。このバネ機構体29は、高剛性の金属材料から形成されたバネ機構体フレーム29aと、バネ機構体フレーム29aによって規定される空間内に収容された複数個のゴム製ブッシュ29bと、ブッシュ29bの上面に取り付けられ、高剛性の金属材料から形成されたバネ機構体プレート29cとからなる。このバネ機構体プレート29cの上部に6軸力センサ36が取り付けられると共に、6軸力センサ36の上部に足首関節18,20を介して脚部2の下腿リンク34が連結されている。
さらに、足平本体23の底面(平底面25及び曲底面27)の全面に亘って一定厚さの弾性板体、本実施形態ではゴムからなるソール31が貼付けられている。
このように、足平22にバネ機構体29及びソール31を設けることにより、ロボット1の足平22の着床時の衝撃を緩和すると共に制御性を高めている。なお、その詳細な説明は、本願出願人が先に出願した特開平5−305584号公報に記載されているので、本明細書では省略する。
次に、図5を参照して、制御ユニット26について説明する。制御ユニット26は、マイクロコンピュータを有する電子回路ユニットにより構成されており、CPUからなる第1演算装置50及び第2演算装置52、A/D変換器54、カウンタ56、D/A変換器58、RAM60、ROM62、並びにこれらの間のデータ授受を行うバスライン64を備えている。
この制御ユニット26では、前記6軸力センサ36及び傾斜センサ40の出力はA/D変換器54でデジタル値に変換された後、バスライン64を介してRAM60に入力される。また、ロボット1の各関節のエンコーダ44の出力はカウンタ56を介してRAM60に入力される。
第1の演算装置50は、後述する目標歩容を生成すると共に、関節変位指令(各関節の回転角の目標値)を算出し、RAM60に送出する。また、第2の演算装置52はRAM60から関節変位指令と、エンコーダ44の出力からカウンタ56を介して計測された実関節変位(各関節の回転角の実測値)とを読み出し、該実関節変位を関節変位指令に追従させるために必要な各関節の電動モータ42の駆動指令(電動モータ42の出力トルクを規定する指令値)を算出する。
そして、第2の演算装置52は、その算出した駆動指令をD/A変換器58を介して電動モータ42の駆動用のサーボアンプ46に出力する。このとき、サーボアンプ46は、入力された駆動指令に応じて電動モータ42を駆動する。これにより、各関節の実関節変位が関節変位指令に追従するように制御される。
次に、図6を参照して、本実施形態におけるロボット1の制御装置の動作の概要を説明する。図6中の「実ロボット」以外の部分が制御ユニット26が実行する処理(主として第1の演算装置60及び第2の演算装置62の処理)によって実現される機能である。
図6では、便宜上、ロボット1に搭載された前記の各センサの出力から制御ユニット26が認識する実測値(実関節変位など)が実ロボット1から出力されるものとして示している。また、以下の説明では、脚体2R,2Lの左右を特に区別する必要がないときは、符号R,Lを省略する。なお、制御ユニット26の構成及び動作は、本願出願人が先に出願したPCT国際公開公報WO2003/06191や特開平5−305584号公報などに詳細に記載されているので、本明細書ではその詳細な説明は省略する。
制御ユニット26は、ロボット1の動作(歩容)の目標である目標歩容を生成して出力する歩容生成装置100を備える。この歩容生成装置100が生成して出力する目標歩容は、本実施形態では、各足平22の目標位置及び目標姿勢の軌道である目標足平位置姿勢軌道と、上体24の目標位置及び目標姿勢の軌道である目標上体位置姿勢軌道と、各腕体の目標姿勢の軌道である目標腕姿勢軌道と、ロボット1に作用する全床反力の鉛直成分の目標の軌道である目標全床反力鉛直成分軌道と、ロボット1のZMP(Zero Moment Point)の目標位置の軌道である目標ZMP軌道とから構成される。なお、脚体2R,2Lや腕体以外に、上体24に対して可動な部位を備える場合には、その可動部位の目標位置姿勢軌道が目標歩容に加えられる。
歩容生成装置100には、ロボット1の運動形態に関する基本的な要求を表す要求パラメータが、ロボット1の外部の図示しない操縦装置やサーバ等から無線通信等により入力される。該要求パラメータは、例えば、ロボット1の運動種別(歩行、走行等)や、遊脚側の足平22の目標とする着床位置姿勢(到達予定位置姿勢)、目標とする着床時刻(到達予定時刻)、あるいは、これらを決定するために必要なパラメータ(例えばロボット1の平均移動速度や移動方向等)により構成される。なお、このような要求パラメータは、ロボット1の図示しない記憶装置に事前に記憶保持しておき、それを歩容生成装置100が所定のスケジュールで読み込むようにしてもよい。また、要求パラメータは、目標足平位置姿勢軌道等を直接的に指定するパラメータであってもよい。
そして、歩容生成装置100は、上記要求パラメータを用いて所定のアルゴリズムにより目標歩容を生成する。より詳しく言えば、本実施形態では、歩容生成装置100は、要求パラメータに応じて、目標歩容の目標足平位置姿勢軌道、目標床反力鉛直成分軌道等、目標歩容の一部の構成要素を規定するパラメータとしての歩容パラメータを決定した上で、目標歩容の瞬時値を逐次決定する。これにより、歩容生成装置100は、目標歩容の軌道を生成する。
ここで、目標歩容における「軌道」は時間的変化のパターン(時系列パターン)を意味し、歩容生成装置100の制御周期(演算処理周期)毎に算出される瞬時値の時系列により構成される。以下の説明では、「軌道」の代わりに「パターン」と称することもある。また、以下の説明では、誤解を生じるおそれがない場合には、しばしば「目標」を省略する。
上体24の位置及び速度は、上体24の予め定めた代表点(例えば左右の股関節の間の中央点等)の位置及びその移動速度を意味する。同様に、各足平22の位置及び速度は、各足平22の予め定めた代表点の位置及びその移動速度を意味する。各足平22の代表点は、本実施形態では、各足平22の底面上の点、各脚体2の足首関節の中心から各足平22の底面への垂線が該底面と交わる原点Oに設定される。
また、「姿勢」は空間的な向きを意味する。例えば上体姿勢は鉛直方向に対するロール方向(X軸まわり)の上体24の傾斜角(姿勢角)とピッチ方向(Y軸まわり)の上体24の傾斜角とで表され、足平姿勢は各足平22に固定的に設定された2軸の空間的な方位角で表される。本明細書では、上体姿勢は上体姿勢角ということもある。なお、上体姿勢にヨー方向(Z軸まわり)の上体24の回転角を含めてもよい。
また、歩容のうちの、床反力に係わる要素(目標ZMP及び目標全床反力)以外の構成要素、すなわち足平位置姿勢、上体位置姿勢等、ロボット1の各部の運動に係わる歩容を総称的に「運動」という。
また、各足平22に作用する床反力(並進力及びモーメントからなる床反力)を「各足平床反力」と呼び、ロボット1の全て(2つ)の足平22R,22Lについての「各足平床反力」の合力を「全床反力」という。ただし、以下の説明においては、特に断らない限り、「床反力」は「全床反力」と同義として扱う。
ZMPは、ロボット1の運動によって発生する慣性力とロボット1に作用する重力との合力がその点まわりに作用するモーメントの水平成分(水平軸まわりのモーメント成分)が零になる床面上の点を意味する。
目標各足平床反力は、一般的には、作用点とその点に作用する並進力及びモーメントとにより表現される。作用点はどこに設定してもよいが、本実施形態では、各足平における目標ZMPを目標床反力の作用点とする。目標ZMPを作用点とする目標各足平床反力のモーメント成分は、鉛直成分(Z軸まわりのモーメント成分)を除いて零になる。
歩容生成装置100により生成される目標歩容のうち、目標上体位置姿勢軌道と目標腕姿勢軌道とは、ロボット幾何学モデル(キネマティクス演算部)102に入力される。
また、目標足平位置姿勢軌道、目標ZMP軌道(目標床反力中心点軌道)、及び目標各足平床反力軌道は、複合コンプライアンス動作決定部104と目標床反力分配器106とに入力される。
そして、目標床反力分配器106にて、目標床反力は各足平22R,22Lに分配され、目標各足平床反力中心点(各足平22R,22Lの床反力中心点の目標位置)と、目標各足平床反力(各足平22R,22Lの床反力中心点に作用させる目標床反力)とが決定される。この決定された目標各足平床反力中心点及び目標各足平床反力の軌道は複合コンプライアンス動作決定部104に入力される。
複合コンプライアンス動作決定部104では、目標足平位置姿勢を修正してなる機構変形補償付き修正目標足平位置姿勢が求められ、この修正目標足平位置姿勢の軌道がロボット幾何学モデル102に入力される。
ロボット幾何学モデル102は、入力された目標上体位置姿勢と機構変形補償付き修正目標足平位置姿勢とを満足する両脚体2R,2Lの各関節の関節変位指令を、ロボット1のキネマティクスモデル(剛体リンクモデル)に基づく逆キネマティクス演算によって算出し、その算出した関節変位指令を変位コントローラ108に出力する。さらに、ロボット幾何学モデル102は、目標腕姿勢を満足する各腕体の各関節の関節変位指令を算出し、その算出した関節変位指令を変位コントローラ108に出力する。
そして、変位コントローラ108は、ロボット幾何学モデル102で算出された関節変位指令を目標値として、ロボット1の両脚体2R,2L及び両腕体の各関節の回転角(実関節変位)を前記サーボアンプ46を介して追従制御する。より詳しくは、変位コントローラ108は、エンコーダ44の出力から計測される実関節変位(実測値)を関節変位指令に一致させるように、電動モータ42の出力トルクを調整する。
上記のような追従制御によるロボット1の実際の運動によって該ロボット1の各足平22R,22Lに実際に作用する床反力である実各足平床反力が前記6軸力センサ36の出力から計測され、その実各足平床反力の実測値が前記複合コンプライアンス動作決定部104に入力される。
また、ロボット1の上体24の実際の姿勢角(鉛直方向に対する傾斜角)である実上体姿勢角が前記傾斜センサ40の出力から計測され、その実上体姿勢角の実測値が姿勢安定化制御演算部112に入力される。さらに、姿勢安定化制御演算部112には、歩容生成装置100が生成する目標上体位置姿勢のうちの目標上体姿勢角(鉛直方向に対する上体24の姿勢角の目標値)等も入力される。目標上体姿勢角は、本実施形態では一定値(固定値)であり、例えば、ロボット1の上体24の体幹軸が鉛直方向を向く姿勢での該上体24の姿勢角(=0)である。このように目標上体姿勢角が一定値(固定値)である場合には、姿勢安定化制御演算部112に目標上体姿勢角を入力することを省略してもよい。
そして、姿勢安定化制御演算部112は、入力される実上体姿勢角(実測値)と目標上体姿勢角との偏差である上体姿勢角偏差Δθを、これに所定値を乗じてなる後述の位置偏差ΔXに変換する。
さらに、姿勢安定化制御演算部112は、この位置偏差ΔXを“0”に収束させるための要求操作量(フィードバック要求操作量)として、目標ZMPまわりでロボット1に付加的に作用させる床反力モーメントの要求値である補償全床反力モーメントを、算出した位置偏差ΔXに応じてフィードバック制御則により算出する。
姿勢安定化制御演算部112で決定された補償全床反力モーメントは、補償全床反力モーメント分配器110を介してコンプライアンス制御用目標床反力モーメントとモデル操作床反力モーメントとに分配される。コンプライアンス制御用目標床反力モーメントは、上体姿勢角偏差Δθを“0”に近づけるために、実ロボット1に付加的に作用させる目標ZMPまわりの摂動床反力モーメントである。モデル操作床反力モーメントは、歩容生成装置100により決定された目標歩容の運動が目標ZMPまわりに発生する摂動床反力モーメントである。
歩容生成装置100にはモデル操作床反力モーメントが入力される。そして、歩容生成装置100は、該歩容生成装置100において決定される目標ZMPまわりの床反力モーメントの水平成分がモデル操作床反力モーメントとなるように、動力学モデルを用いて目標歩容の運動(目標運動)を生成する。なお、歩容生成装置100から複合コンプライアンス動作決定部104に対して出力される目標全床反力は、目標ZMPまわりの床反力モーメントの水平成分が“0”になることを目標とするものとして出力される。
また、補償全床反力モーメント分配器110で決定されたコンプライアンス制御用目標床反力モーメントは、複合コンプライアンス動作決定部104に入力される。そして、複合コンプライアンス動作決定部104は、歩容生成装置100が生成する目標歩容の運動にロボット1の運動を追従させつつ、目標ZMPまわりの実床反力モーメントが補償全床反力モーメントに近づくように、目標足平位置姿勢を修正することにより、機構変形補償付き修正目標足平位置姿勢(軌道)を決定する。
この場合、ロボット1の足平位置姿勢及び床反力の全ての状態を目標に一致させることは事実上不可能であるので、これらの間にトレードオフ関係を与えて妥協的になるべく一致させる。すなわち、複合コンプライアンス動作決定部104は、各目標に対する制御偏差に重みを与えて、制御偏差(あるいは制御偏差の2乗)の重み付き平均が最小になるように機構変形補償付き修正目標足平位置姿勢(軌道)を決定する。
換言すれば、目標ZMPまわりの実床反力モーメントと、ロボット1の実際の足平位置姿勢とがそれぞれ補償全床反力モーメント、目標足平位置姿勢にできるだけ近づくように機構変形補償付き修正目標足平位置姿勢(軌道)が決定される。そして、複合コンプライアンス動作決定部104は、この修正目標足平位置姿勢をロボット幾何学モデル102に足平位置姿勢の最終的な目標値として出力することで、ロボット1の動作を制御する。
以下、図7から図9の歩容を生成することを例にして、歩容生成装置100の歩容生成処理を説明する。
なお、以降の説明では、「床反力鉛直成分」、「床反力水平成分」は、それぞれ、特に断らない限り、「並進床反力鉛直成分」、「並進床反力水平成分」を意味するものとする。
また、歩容における「両脚支持期」とは、両脚体2R,2Lでロボット1の自重を支持する期間、「片脚支持期」とはいずれか一方のみの脚体2R(L)でロボット1の自重を支持する期間を言う。また、片脚支持期においてロボット1の自重を支持する側の脚体2R(L)を「支持脚」、自重を支持しない側の脚体2R(L)を「遊脚」と呼ぶ。本実施形態で説明する歩容では、両脚支持期と片脚支持期とが交互に繰り返される。
歩容生成装置100は、本実施形態では、両脚支持期の開始時点から片方の脚体2R(L)が離床・着床してから次の両脚支持期の開始時点となるまでの1歩分の歩容を単位として、目標歩容を順次に生成する。なお、目標歩容の歩容の区切りや単位歩容数などは、これに限定されるものではない。
歩容生成装置100が目標歩容を生成するとき、歩容生成装置100には、ロボット1の1歩先の遊脚側足平22の到達予定位置姿勢、到達予定時刻を規定する要求パラメータが入力される(あるいは歩容生成装置100が記憶装置から要求パラメータを読み込む)。そして、歩容生成装置100は、これらの要求パラメータを用いて、目標上体位置姿勢軌道、目標足平位置姿勢軌道、目標ZMP軌道、目標床反力鉛直成分軌道、目標腕姿勢軌道等を生成する。
まず、図7から図9に示す歩容を説明すると、この歩容は、いわゆる花魁歩きと同様の歩容である。そして、ここでは、片脚支持期に右側脚体2Rが遊脚となり、左側脚体2Lは常に支持脚となる1歩分の歩容である。この歩容では、両脚体2R,2Lがロボット1の自重を支持する両脚支持期の後の片脚支持期において、遊脚である右側脚体2Rの足平22Rが、支持脚である左側脚体2Lの右側を迂回するように空中を移動して、左脚足平22Lの左斜め前方(外側斜め前方)に着床する。なお、図7中の丸付きの数字は、歩容の時系列的な順番を示している。また、図7中の白抜き矢印は、ロボット1の進行方向を示している。
図7の1番目の状態は、両脚支持期の開始(初期)の状態であり、右脚足平22Rは平底面25Rが全面に亘って接床し、左脚足平22Lはかかとが着床してかかと側曲底面27bLの接床が開始した状態である。
続いて、右脚足平22Rの後側(かかと側)が上がり、左脚足平22Lの前側(つま先側)が下りて、図7の2番目に示すように、両脚支持期に続く片脚支持期の開始時(両脚支持期の終了時)の状態になる。この状態は、右脚足平22Rはかかと側曲底面27bLの接床が終了して離床が開始され、左脚足平22Lは平底面25Lが全面に亘って接床する状態である。
続いて、右脚足平22Rのつま先が離床して、図7の3番目に示すように、片脚支持期の中間時点の状態になる。この状態は、右脚足平22Rは空中に在り、左脚足平22Lは、2番目の状態に引き続き、平底面25Lが全面に亘って接床する状態である。
そして、右脚足平22Rがかかとから着床して、図7の4番目に示すように、片脚支持期の終了時(次の両脚支持期の開始時)の状態になる。この状態は、右脚足平22Rはかかとが着床してかかと側曲底面27bRの接床が開始され、左脚足平22Lは平底面25Lが接床する状態が継続している。
なお、目標上体位置姿勢及び目標足平位置姿勢はグローバル座標系で記述される。グローバル座標系は床に固定された座標系であり、本実施形態では、以下に説明する支持脚座標系が用いられる。該支持脚座標系は、支持脚である左側脚体2Lの足平22Lの平底面25Lを全面に亘って床面に接触させた状態において、該左側脚体2Lの足首中心から床面に延ばした垂線が床面と交わる点を原点Oとし、その原点Oを通る水平面をXY平面とする、床に固定された座標系である。この場合、X軸方向、Y軸方向は、それぞれ左脚足平22Lの前後方向、左右方向である。また、支持脚座標系の原点は、必ずしも支持脚側足平22の底面のほぼ全面を床面に接触させた状態での該足平22の代表点に合致する必要はなく、該代表点と異なる床面上の点に設定してもよい。
次に、歩容生成装置100の歩容生成処理を、図10から図15を参照して説明する。歩容生成装置100は、図10のフローチャート(構造化フローチャート)に示す歩容生成処理(メインルーチン処理)を実行することによって目標歩容を生成する。
まず、S010において時刻tを“0”に初期化するなど種々の初期化作業が行なわれる。この処理は、歩容生成装置100の起動時等に行なわれる。
次いで、S012を経てS014に進み、歩容生成装置100は、制御周期(図10のフローチャートの演算処理周期)毎のタイマ割り込みを待つ。制御周期はΔtである。
次いで、S016に進み、歩容生成装置100は、歩容の切り替わり目であるか否かを判断する。このとき、歩容の切り替わり目である場合には、S018に進み、切り替わり目でない場合には、S024に進む。ここで、「歩容の切り替わり目」は、前回の目標歩容の生成が完了し、今回の目標歩容の生成を開始するタイミングを意味し、例えば前回の目標歩容の生成を完了した制御周期の次の制御周期が歩容の切り替わり目になる。
S018に進むときは、時刻tが“0”に初期化される。次いで、S020に進み、歩容生成装置100は、目標歩容周期を決定する。目標歩容周期は、前記要求パラメータに基づき決定される。すなわち、本実施形態では、歩容生成装置100に入力される要求パラメータは、1歩先の右脚足平22Rの到達予定位置姿勢と到達予定時刻とを規定する要求値を含んでいる。そして、この1歩目の要求値が、目標歩容に対応するものとして、目標歩容の生成開始時以前に歩容生成装置100に与えられる。なお、これらの要求値は目標歩容の生成途中で変更し得るようにすることも可能である。
次いで、S022に進み、歩容生成装置100は、目標歩容の歩容パラメータを決定する。該歩容パラメータは、本実施形態では、目標歩容における目標足平位置姿勢軌道を規定する足平軌道パラメータ、目標上体姿勢軌道を規定する上体姿勢軌道パラメータ、目標腕姿勢軌道を規定する腕軌道パラメータ、目標全床反力鉛直成分軌道を規定する床反力鉛直成分軌道パラメータ、目標ZMP軌道を規定するZMP軌道パラメータを含む。
S022では、歩容生成装置100は、図11のフローチャートに示すサブルーチン処理を実行する。
まず、S100において、歩容生成装置100は、足平軌道パラメータを決定する。以下に具体的な決定方法を説明する。なお、以降の説明では、歩容の「初期」、「終端」はそれぞれ歩容の開始時刻、終了時刻、あるいは、それらの時刻における瞬時歩容を意味する。
足平軌道パラメータは、目標歩容の初期と終端とにおける足平22R,22Lの位置姿勢、目標歩容周期(各歩容の初期から終端までの時間)等から構成される。
図7から図9の目標歩容では、足平22R,22Lの位置姿勢は図8及び図9に示すように設定される。ただし、図9の膝間隔Disを確保するなど、実ロボット1の脚体2R,2Lが干渉しないように、目標歩容を設定することに留意する必要がある。
図7の1番目の状態である目標歩容初期においては、右脚足平22Rは平底面25Rが接床し、左脚足平22Lはかかと側曲底面27bLの後端部Eが接床している。そして、目標歩容終端においては、右脚足平22R及び左脚足平22Lの位置姿勢は、目標歩容初期における両足平22R,22Lの位置姿勢から、前記要求パラメータにおける両足平22R,22Lの到達予定位置姿勢の要求値(目標歩容における両足平22R,22Lの到達予定位置姿勢の要求値)もしくは該要求値に対応する目標歩容終端における両足平22R,2Lの位置姿勢に至る足平位置姿勢軌道を、目標歩容終端まで、例えば本願出願人が特許第3233450号にて提案した有限時間整定フィルタを用いて生成することにより求められる。
なお、図7の1番目から2番目の状態における目標歩容においては、右脚足平22Rの位置姿勢は、平底面25Rを接床させた水平姿勢から、つま先側曲底面27aRを接床させて、かかとを持ち上げるように斜め方向(ピッチ方向及びヨー方向)に回転させた位置姿勢となるように、決定される。一方、左脚足平22Lの位置姿勢は、かかと側曲底面27bLが接床した前上がり姿勢から、前側が下りて平底面25Rを接床させて水平姿勢となるように、決定される。
次いで、図7の2番目から3番目の状態における目標歩容においては、右脚足平22Rの位置姿勢は、かかと側曲底面27aRの外端部から離床した斜め後上がり姿勢から、空中での水平姿勢、あるいはその類似姿勢となるように、決定される。一方、左脚足平22Lの位置姿勢は、平底面25Lが接床した水平姿勢を維持するように、決定される。
次いで、図7の3番目から4番目の状態における目標歩容においては、右脚足平22Rの位置姿勢は、空中での水平姿勢、あるいはその類似姿勢からかかと側曲底面27bRの外端部が着床した斜め前上がり姿勢となるように、決定される。一方、左脚足平22Lの位置姿勢は、平底面25Lが接床した水平姿勢からつま先側曲底面27aLの先端部が接床する前上がり姿勢となるように、決定される。なお、図7の4番目の状態における両足平22R,22Lが到達予定位置姿勢となるように、決定される。
次に、S102に進み、歩容生成装置100は、目標歩容における目標上体姿勢軌道を規定する上体姿勢軌道パラメータを決定する。
この場合、本実施形態では、目標歩容の上体姿勢軌道パラメータは、それより規定される目標上体姿勢軌道が予め定められた所定パターンの基準上体姿勢の軌道に一致するように決定される。この基準上体姿勢は、本実施形態では、経時的な変化のない一定姿勢(固定的な姿勢)に設定されている。その基準上体姿勢は、例えば上体24の体幹軸が定常的に鉛直方向を向く姿勢(ロボット1の直立姿勢で起立した状態での上体姿勢)、すなわち、鉛直方向に対する上体姿勢角が定常的に“0”に保たれる姿勢である。そして、このような基準上体姿勢の軌道を規定するパタメータ(基準上体姿勢の一定の上体姿勢角の値等)が上体姿勢軌道パラメータとして決定される。なお、このように上体姿勢を一定姿勢とした場合には、必然的に上体姿勢角の角速度及び角加速度も定常的に“0”に保たれる。
ただし、上体姿勢は、一定姿勢である必要はない。
次に、S104に進み、歩容生成装置100は、目標歩容における腕姿勢軌道パラメータ、より詳しくは鉛直軸(あるいは上体24の体幹軸)まわりの両腕体の角運動量変化に関すること以外の腕姿勢軌道パラメータを決定する。例えば、上体24に対する腕体の手先の相対高さや腕体全体の相対重心位置などを規定するパラメータが腕姿勢軌道パラメータとして決定される。この場合、本実施形態では、腕体全体の相対重心位置は、上体24に対して一定に維持されるように設定される。
次に、S106に進み、歩容生成装置100は、目標歩容における床反力鉛直成分軌道パラメータを決定する。具体的には、目標歩容の目標床反力鉛直成分軌道は、例えば図12に示すようなパターンで設定される。このパターンでは、目標歩容において、目標床反力鉛直成分軌道は、両脚支持期では、床反力鉛直成分の減少側に凸(下に凸)の台形状に設定され、片脚支持期では床反力鉛直成分の増加側に凸(上に凸)の台形状に設定される。そして、このパターンの折れ点の時刻や、台形部分の高さ(ピーク値)が床反力鉛直成分軌道パラメータとして決定される。なお、目標床反力鉛直成分軌道は、実質的に連続になるように(値が不連続にならないように)設定することが好ましい。
この床反力鉛直成分軌道パラメータは、目標歩容における床反力鉛直成分の平均値をロボット1の自重と一致させるように決定される。すなわち、目標歩容の期間における床反力鉛直成分の平均値がロボット1の全体に作用する重力と同じ大きさで反対向きになるようにする。
次いで、S108に進み、歩容生成装置100は、目標歩容における目標ZMP軌道を規定するZMP軌道パラメータを決定する。
まず、歩容生成装置100は、目標歩容における各足平床反力中心点軌道を設定する。この目標各足平床反力中心点軌道は、例えば図8及び図13(a),(b)に示すように設定される。なお、図13(a)は目標各足平床反力中心点軌道のX軸方向位置(前後方向位置)を、図13(b)は目標各足平床反力中心点軌道のY軸方向位置(左右方向位置)を夫々示す。
図7から図9の歩容において、ロボット1は、図8に示すように、右脚足平22Rのつま先側底面27aRの外端部Bから離床し、右脚足平22Rのかかと側底面27bRの外端部Cで着床する。そこで、目標右脚足平床反力中心点軌道の形状は、左脚足平22Rの中心点ORを初期位置として、次に右脚足平22Rの平底面25R内を徐々に前方に移動して平底面25Rの前端点Aにまで至り、その後、右脚足平22Rを斜めに回動させてつま先側曲底面27aRの外端部Bに至って、右脚足平22Rが離床するように設定される。そして、空中軌道を経て、右脚足平22Rはかかと側曲底面27bRの外端部Cで再び接床し、その後、斜めに回動させて徐々に斜め前方に移動し平底面25Rの後端点Dにまで至り、さらに、平底面25内を徐々に前方向に移動して終端位置の中心点OR’に至るように設定される。一方、目標左脚足平床反力中心点軌道は、左脚足平22Lのつま先先端点Eを初期位置として、徐々に前方に移動して中心点Oに至るように設定される。
この例のように、目標各足平床反力中心点軌道は目標歩容の全期間において連続(実質的に連続)する軌道に設定される。
次に、歩容生成装置100は、目標歩容における目標各足平床反力分配率を設定する。図7から図9の歩容において、ロボット1は、前記したように、両脚支持期と片脚支持期とを交互に繰り返す。片脚支持期では、支持脚である左側脚体2Lの足平22Lに全ての目標合計足平床反力が分配される。一方、両脚支持期では、左右の各足平22R,22Lに目標合計足平床反力が分配される。目標各足平床反力分配率は、遊脚であった脚体2R(L)が接床時したときから徐々に増加し、再び離床するときに徐々に減少するように設定される。
そこで、目標各足平床反力分配率は、例えば図14に示すように設定される。この例では、目標各足平床反力分配率のパターンが、両脚支持期において直線状となるに設定されている。なお、図14においては、目標合計足平床反力が、右脚足平22Rに全て分配されるときの割合を“0”、左脚足平22Lに全て分配されるときの割合を“1”として示している。この例のように、目標各床反力分配率は目標歩容の全期間において連続(実質的に連続)する軌道に設定される
そして、歩容生成装置100は、設定した目標各足平床反力中心点軌道及び目標各足平床反力分配率から目標ZMP軌道の形状を求め、その折れ点の位置や時刻を、目標ZMP軌道を規定する歩容パラメータ(目標ZMP軌道パラメータ)として決定する。
以上が、図10のS022の処理の詳細である。
図10の説明に戻って、S022の処理を行った後、あるいはS016の判断結果が否定的である場合には、次にS024において、歩容生成装置100は、目標歩容瞬時値(現在の制御周期での目標足平位置姿勢等の瞬時値)を決定する。このS024では、前記姿勢安定化制御演算部112で決定されるモデル操作床反力モーメントが目標ZMPまわりに発生するように目標歩容瞬時値が決定される。 具体的には、図15のフローチャートに示すように、目標歩容瞬時値が決定される。
以下説明すると、まず、S200において、歩容生成装置100は、目標歩容パラメータ(より詳しくは床反力鉛直成分軌道パラメータ)を基に、目標床反力鉛直成分の現在時刻t(現在の制御周期)での瞬時値を求める。
さらに、S202において、歩容生成装置100は、目標歩容パラメータ(より詳しくはZMP軌道パラメータ)を基に、目標ZMPの現在時刻tでの瞬時値を求める。
次いで、S204に進み、歩容生成装置100は、目標歩容パラメータ(より詳しくは足平軌道パラメータ、上体姿勢軌道パラメータ、及び腕姿勢軌道パラメータ)を基に、目標足平位置姿勢(右脚足平22Rの目標位置姿勢)、目標上体姿勢及び目標腕姿勢の現在時刻tでの瞬時値をそれぞれ求める。
次いで、S206に進み、歩容生成装置100は、S306で求めた目標床反力鉛直成分を満足する(ロボット1の全体重心の鉛直方向の慣性力と重力との和を目標床反力鉛直成分に釣り合わせる)ように、現在時刻tでの上体鉛直位置を算出する。
次いで、S208に進み、歩容生成装置100は、補償全床反力モーメント分配器110から与えられたモデル操作床反力モーメントが目標ZMPまわりに発生するように、現在時刻tでの上体水平加速度を決定する。
言い換えると、ロボット1の慣性力と重力との合力が目標ZMPまわりに発生するモーメントがモデル操作床反力モーメントの符号を反転したモーメントに一致するように、現在時刻tでの上体水平加速度が決定される。
次いで、S210に進み、歩容生成装置100は、目標ZMPを満足するように、現在時刻tでの上体水平加速度(上体24の水平方向の加速度)を決定する。これにより、図10のS024の処理が完了する。
次いで、S026に進み、歩容生成装置100は、スピン力をキャンセルするための腕体の動作を決定する。具体的には、腕体を振らなかった場合の目標ZMPにおける床反力モーメント鉛直成分軌道を求める。すなわち、S024の処理によって生成された目標歩容の運動の瞬時値に釣り合う目標ZMP回りの床反力モーメント鉛直成分の瞬時値を求める。そして、この床反力モーメント鉛直成分の瞬時値を、腕振り運動の等価慣性モーメントで割ることにより、スピン力キャンセルに必要な腕振り動作の角加速度を求める。
次に、歩容生成装置100は、この角加速度を2階積分し、これを積分値が過大になるのを防ぐためのローカットフィルタに通して得た角度を腕振り動作角とする。
次いで、S028に進み、歩容生成装置100は、時刻tに制御周期Δtを加え、S014からの処理を再び実行する。
以上により、歩容の瞬時値が時系列的に生成されることとなる。
本実施形態では、足平22は、前後方向に対して交差する鉛直面内において曲率が連続する曲底面27(つま先側曲底面27a及びかかと側曲底面27b)を有している。そして、足平22の着床から離床までに至る過程において、当該足平22を曲底面27が接床する方向の軸回りに回転動作させることが可能である。
そのため、離床前に足平22を前後方向以外の斜め方向に軸回転させることが可能となり、離床時の足平22の姿勢が多様化するので、上記一般的な脚式移動ロボットや特許文献1に開示された脚式移動ロボットに比べて、歩容の制限を緩和、あるいは関節を駆動するアクチュエータの負荷を緩和することが可能となる。さらに、曲底面27が接床する方向の軸回りに、足平22を回転動作させることにより、曲底面27が連続的に順次接床するので、ロボット1の歩容が安定化する。また、離床前に足平を水平面内でのみ軸回転可能な上記特許文献2に開示された脚式移動ロボットに比べて、人間類似の自然な歩容を実現することができる。
そして、本実施形態では、曲底面27は、平底面25から連続的に曲率が増加するように形成されているので、離床前に足平22を前後方向以外の斜め方向に軸回転させるとき、当該軸回転の角速度と曲底面27の接床部の移動速度との変化が少なくなるので、ロボット1の歩容が安定化する。さらに、曲底面27は、原点Oを中心とした径方向の鉛直断面視において、平底面25の端点を始点としてクロソイド曲線となるように形成されており、軸回転の角速度と曲底面27の接床部の移動速度との比が一定となるので、足平22の回転角速度が急峻に変化せず、ロボット1の歩容がさらに安定化する。
また、足平22の底面(平底面25及び曲底面27)の下面にソール31が貼付されているので、曲底面27下方のソール31が変形して、床面との接触が点接触または線接触から面接触になる。そのため、床面と足平22の接触部が増加し、摩擦力が増すので、スピンやスリップの発生を抑制することができる。
なお、前記実施形態では、目標右脚足平床反力中心点軌道の形状は、図8に示されるように設定された。しかしながら、目標右脚足平床反力中心点軌道の形状は、これに限定されない。例えば、平底面25Rの前端点Aに至るまでに足平22Rの回動動作を開始させるように、図16に例示するように設定してもよい。また、原点Oで足平22Rの回動動作を開始させるように、図17に例示するように設定してもよい。
また、前記実施形態では、平底面25の外周に位置する曲底面27をつま先側曲底面27aとかかと側曲底面27bとからなるものとした。しかしながら、本発明の曲底面はこれに限定されない。例えば、曲底面は、つま先側曲底面27a、かかと側曲底面27bのいずれか1つのみからなるものであってもよい。あるいは、曲底面は、平底面25Rの左右両側や左右片側に存在しないものであってもよい。あるいは、曲底面は、平底面25の四隅部、前隅部や後隅部に隣接する部分にのみ存在するものであってもよい。さらに、平底面25や曲底面27の形状も限定されず、例えば、XY断面が矩形、三角形、多角形、円形や楕円形などであってもよく、左右対称にも限定されない。
また、前記実施形態では、平底面25は、水平面からなるものとした。しかしながら、本発明の平底面はこれに限定されない。例えば、平底面は、傾斜平面、緩曲面、多少の凹凸を有する面からなるものであってもよい。
また、本実施形態では、曲底面27は、原点Oを中心とした径方向の鉛直面において、平底面25から連続的に曲率が増加するように形成されるものとした。しかしながら、本発明の曲底面は、前後方向と交差する鉛直面において曲率が連続するものであれば、これに限定されない。例えば、曲底面は、前後方向と交差する鉛直面において曲率が一定の円の一部(円弧)となるように形成されてもよい。なお、曲底面は、足平22の回動中心を中心とした径方向の鉛直面において、平底面25から連続的に曲率が増加するように形成されることが好ましい。
また、本実施形態では、バネ機構体29及びソール31を設けた足平22を例にとって説明した。しかし、バネ機構体29、ソール31あるいはこれらに類似の衝撃緩和機構を足平に設けないものであってもよい。
さらに、前記実施形態では、脚式移動ロボットとして、2足移動ロボット1を例にとって説明した。しかし、本発明を適用可能な脚式移動ロボットは、2足移動ロボットに限られるものではない。例えば、3つ以上の脚体を有する脚式移動ロボットについても本発明を適用できる。