(57)【要約】  接触点計画設定工程では、移動手段を接地する接触点の位置と接地するときの移動手段の姿勢とを時系列のデータとした接触点計画を設定する。軌道生成工程では、移動手段を接地するときの接触力の微分値を入力とする予測モデルを構築して、この予測モデルによって所定時間幅の予測区間における移動ロボットの状態変化を表わし、予測区間において、所定の評価基準を用いて接触力の微分値の時系列データを求め、この求まった接触力の微分値の時系列データと前記予測モデルとから、移動ロボットの重心軌道を得る。評価基準には、「各接触点に対応して設定された重みに基づいて各接触点に接触力を配分する」という基準が含まれる。
2015087504.tif 000002
【特許請求の範囲】
【請求項１】
二以上の移動手段を交互に接地しながら移動する移動ロボットの移動制御方法であって、
前記移動手段を接地する接触点の位置と接地するときの前記移動手段の姿勢とを時系列のデータとした接触点計画を設定する接触点計画設定工程と、
前記接触点計画設定工程で設定したように前記移動手段を接触点に接地しながら移動するための軌道を生成する軌道生成工程と、を備え、
前記軌道生成工程は、
前記移動手段を接地するときの接触力の微分値を入力とする予測モデルを構築して、この予測モデルによって所定時間幅の予測区間における移動ロボットの状態変化を表わし、
前記予測区間において、所定の評価基準を用いて接触力の微分値の時系列データを求め、
この求まった接触力の微分値の時系列データと前記予測モデルとから、移動ロボットの重心軌道を得るものであり、
前記評価基準には、
各接触点に対応して設定された重みに基づいて各接触点に接触力と、接触力の微分値とを配分するという基準が含まれ、
前記評価基準は、接触力および接触力の微分値の二乗和を含む評価関数Jを予測区間内において最小化することである
ことを特徴とする移動ロボットの移動制御方法。
【請求項２】
請求項１に記載の移動ロボットの移動制御方法において、
前記評価関数Jの最小化問題を拘束条件のもとで求解するにあたり、
前記拘束条件の式には、移動ロボットの重心鉛直軌道と重心回りモーメント軌道とを含んでおり、
前記軌道生成工程は、
予測区間内において、移動ロボットの重心鉛直軌道と重心回りモーメント軌道とを一度仮設定する工程と、
前記評価関数Jの最小化問題を拘束条件のもとで一度求解した後、その結果に応じて、予測区間内において移動ロボットの動作が安定するように重心鉛直軌道と重心回りモーメント軌道とを修正し、
修正した重心鉛直軌道と重心回りモーメント軌道とを用いて少なくとも一回以上、前記評価関数Jの最小化問題を再計算する
ことを特徴とする移動ロボットの移動制御方法。
【請求項３】
請求項１または請求項２に記載の移動ロボットの移動制御方法において、
前記移動手段ごとに重みが設定されており、
前記評価関数Jにおいて、接触力および接触力の微分値にそれぞれ重みを乗算しておく
ことを特徴とする移動ロボットの移動制御方法。
【請求項４】
請求項１から請求項３のいずれかに記載の移動ロボットの移動制御方法において、
前記軌道生成工程において予測区間内で軌道を求め、
この予測区間の最初の一点のデータを現在の入力値として移動ロボットを駆動させ、
予測区間を微小時間だけ進めて、前記軌道生成工程を繰り返す
ことを特徴とする移動ロボットの移動制御方法。
【請求項５】
二以上の移動手段を交互に接地しながら移動する移動ロボットであって、
前記移動手段を接地する接触点の位置と接地するときの前記移動手段の姿勢とを時系列のデータとした接触点計画を設定する接触点計画設定部と、
前記接触点計画設定部で設定したように前記移動手段を接触点に接地しながら移動するための軌道を生成する軌道生成部と、を備え、
前記軌道生成部は、
前記移動手段を接地するときの接触力の微分値を入力とする予測モデルを構築して、この予測モデルによって所定時間幅の予測区間における移動ロボットの状態変化を表わし、
前記予測区間において、所定の評価基準を用いて接触力の微分値の時系列データを求め、
この求まった接触力の微分値の時系列データと前記予測モデルとから、移動ロボットの重心軌道を得るものであり、
前記評価基準には、
各接触点に対応して設定された重みに基づいて各接触点に接触力と、接触力の微分値とを配分するという基準が含まれ、
前記評価基準は、接触力および接触力の微分値の二乗和を含む評価関数Jを予測区間内において最小化することである
ことを特徴とする移動ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ロボットの移動制御方法、および移動ロボットに関する。より具体的には、多点に接触しながら移動する移動ロボットが安定に移動できるような軌道を生成するための軌道生成技術に関する。
【背景技術】
【０００２】
自律的に移動する機能を備えたロボットが開発されており、典型的には、二足歩行する脚式ロボットがある。二足歩行ロボットにあっては、ＺＭＰを用いた軌道生成と動作制御により、安定な二足歩行移動が実現されている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１７７８８４号公報
【特許文献２】特許５０３４２３５号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
これからのロボットには様々な環境で活躍することが期待されている。例えば、サービスロボットは人と同じ住空間で活動することが期待される。住空間のような環境でロボットが移動するためには、単に脚式の二足歩行ができるだけでは不十分であると考えられる。例えば、図１のような状況が考えられる。図１において、テーブルが壁の近くにあり、そして、テーブルの奥側において壁に近い方にボトルが置かれている。ロボットがこのボトルを掴むためには、単に二足歩行で進むだけでは無理である。ロボットは、壁やテーブルに手を着きながら移動したり、体を傾けて手を伸ばしたりしなければならない。このように、サービスロボットには、複数の任意の点で環境と接触しながら運動を行える能力が必要である。【０００５】
今後の説明のために、複数の任意の点で環境と接触しながら運動（移動）することを、本明細書では「多点接触移動」と称することにする。【０００６】
従来の人型ロボットの安定化手法は大多数が２足歩行の安定化に関する技術であり、多点接触移動に対応するための技術はこれまであまり開発されてこなかった。２足歩行も単脚状態と両脚状態とが切り替わりながら移動していく動作であるので多点接触移動の一種と言える。しかし、２足歩行の技術と多点接触移動の技術とで大きく違う点がある。２足歩行技術は多くの場合（ＺＭＰがその代表格）、各接触点（２足で言うと左足と右足）が同一平面内に含まれていることを前提にしている。（このことは、例えば、特許文献２の段落００１２にも記載されている。）すなわち、ＺＭＰ制御では、本来的には合計６次元である力・モーメントのうち２次元の情報しか表現できておらず、極めて限定された接触状態の遷移しか扱うことができないのである。【０００７】
多点接触移動に対応すべく開発された制御システムが特許文献２に開示されている。しかしながら、特許文献２に開示の技術には根本的問題として次ぎの点がある。すなわち、特許文献２に開示の技術では、接触点の計画だけではなく、目標重心位置や目標運動量を与えないと安定な軌道を作れないという問題がある。ユーザとしてはロボットに接触点の計画だけを与え、あとは、ロボットが設定された接触点の計画に基づいて自動的に安定な重心軌道を生成して自律的に移動してくれることが望ましい。【０００８】
そもそも、将来の目標重心位置を予め知ることはできないのであり、制御目標値として未知であるはずの将来の重心位置をユーザが設定するというのは無理がある。（２足歩行の場合で言い換えると、目標ＺＭＰ軌道が最初にあって、この目標ＺＭＰ軌道に基づいて重心軌道を生成するというのが軌道生成の技術であり、目標重心位置を予め知ることはできない。）【０００９】
また、特許文献２に開示の技術では、接触点の切替（接触状態の遷移）に伴う力の変化が急峻になってしまい、滑らかな力の遷移が実現できないという問題もある。【００１０】
上記のような問題は、住環境で活躍するようなサービスロボットだけではなく、狭い空間や障害物が多い空間などで活躍する移動ロボットにも共通する問題である。
本発明の目的は、上記問題に鑑み、接触点計画に基づいて自動的に安定な軌道を生成する移動ロボットの移動制御方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の移動ロボットの移動制御方法は、
二以上の移動手段を交互に接地しながら移動する移動ロボットの移動制御方法であって、
前記移動手段を接地する接触点の位置と接地するときの前記移動手段の姿勢とを時系列のデータとした接触点計画を設定する接触点計画設定工程と、
前記接触点計画設定工程で設定したように前記移動手段を接触点に接地しながら移動するための軌道を生成する軌道生成工程と、を備え、
前記軌道生成工程は、
前記移動手段を接地するときの接触力の微分値を入力とする予測モデルを構築して、この予測モデルによって所定時間幅の予測区間における移動ロボットの状態変化を表わし、
前記予測区間において、所定の評価基準を用いて接触力の微分値の時系列データを求め、
この求まった接触力の微分値の時系列データと前記予測モデルとから、移動ロボットの重心軌道を得るものであり、
前記評価基準には、
各接触点に対応して設定された重みに基づいて、各接触点に接触力を配分するという基準が含まれる
ことを特徴とする。【００１２】
本発明では、
前記評価基準には、さらに、
各接触点に対応して設定された重みに基づいて、各接触点に接触力の微分値を配分するという基準が含まれる
ことが好ましい。【００１３】
本発明では、
前記評価基準は、接触力および接触力の微分値の二乗和を含む評価関数Jを予測区間内において最小化することである
ことが好ましい。【００１４】
本発明では、
前記評価関数Jの最小化問題を拘束条件のもとで求解するにあたり、
前記拘束条件の式には、移動ロボットの重心鉛直軌道と重心回りモーメント軌道とを含んでおり、
前記軌道生成工程は、
予測区間内において、移動ロボットの重心鉛直軌道と重心回りモーメント軌道とを一度仮設定する工程と、
前記評価関数Jの最小化問題を拘束条件のもとで一度求解した後、その結果に応じて、予測区間内において移動ロボットの動作が安定するように重心鉛直軌道と重心回りモーメント軌道とを修正し、
修正した重心鉛直軌道と重心回りモーメント軌道とを用いて少なくとも一回以上、前記評価関数Jの最小化問題を再計算する
ことが好ましい。【００１５】
本発明では、
前記移動手段ごとに重みが設定されており、
前記評価関数Jにおいて、接触力および接触力の微分値にそれぞれ重みを乗算しておく
ことが好ましい。【００１６】
本発明では、
前記軌道生成工程において予測区間内で軌道を求め、
この予測区間の最初の一点のデータを現在の入力値として移動ロボットを駆動させ、
予測区間を微小時間だけ進めて、前記軌道生成工程を繰り返す
ことが好ましい。【００１７】
本発明の移動ロボットは、
二以上の移動手段を交互に接地しながら移動する移動ロボットであって、
前記移動手段を接地する接触点の位置と接地するときの前記移動手段の姿勢とを時系列のデータとした接触点計画を設定する接触点計画設定部と、
前記接触点計画設定部で設定したように前記移動手段を接触点に接地しながら移動するための軌道を生成する軌道生成部と、を備え、
前記軌道生成部は、
前記移動手段を接地するときの接触力の微分値を入力とする予測モデルを構築して、この予測モデルによって所定時間幅の予測区間における移動ロボットの状態変化を表わし、
前記予測区間において、所定の評価基準を用いて接触力の微分値の時系列データを求め、
この求まった接触力の微分値の時系列データと前記予測モデルとから、移動ロボットの重心軌道を得るものであり、
前記評価基準には、
各接触点に対応して設定された重みに基づいて、各接触点に接触力を配分するという基準が含まれる
ことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、設定された接触点の計画に基づいて移動ロボットが自動的に安定な重心軌道を生成して自律的に移動できる。このとき、接触点の切替（接触状態の遷移）に伴う力の変化が滑らかになり、移動ロボットの安定かつ滑らかな移動が実現される。
【図面の簡単な説明】
【００１９】
【図１】ロボットの動作の一例を示す図。
【図２】移動ロボットの機械構成の一例を示す図。
【図３】移動ロボットの機能ブロック図。
【図４】６軸力を示す図。
【図５】コントローラの機能ブロック図。
【図６】接触点計画の概要の一例を示す図。
【図７】接触点計画を示す図。
【図８】予測区間の例を示す図。
【図９】予測区間での動きを表わした図。
【図１０】予測区間のシフトを説明するための図。
【図１１】予測に用いる移動ロボットのモデルを示す図。
【図１２】予測区間の離散化を説明するための図。
【図１３】接触点の座標系（上添え字ｌ（エル）がついている）と、接触多角形（接触点の支持多角形）と、を示す図。
【図１４】接触点が不安定化する場合を例示した図。
【図１５】移動ロボットの移動制御方法の全体フローを示す図。
【図１６】軌道生成工程の手順を説明するための詳細なフローチャート。
【図１７】軌道生成工程の手順を説明するための詳細なフローチャート。
【図１８】軌道生成工程の手順を説明するための詳細なフローチャート。
【図１９Ａ】移動ロボットの多質点モデルを示す図。
【図１９Ｂ】移動ロボットの多質点モデルを示す図。
【図２０】手先、足先の軌道を補間した様子を示す図。
【図２１】二足歩行の場合の実験例を示す図。
【図２２】図２２は、実行結果のスナップショットを示す図。
【図２３Ａ】二足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフ。
【図２３Ｂ】二足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフ。
【図２３Ｃ】二足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフ。
【図２４】４足歩行の場合の実験例を示す図。
【図２５】実行結果のスナップショットである。
【図２６Ａ】４足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフ。
【図２６Ｂ】４足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフ。
【図２６Ｃ】４足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフ。
【図２７】４足歩行で手足の着き方をランダムにした場合の実験例を示す図。
【図２８】実行結果のスナップショットである。
【図２９Ａ】ランダム４足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフ。
【図２９Ｂ】ランダム４足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフ。
【図２９Ｃ】ランダム４足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフ。
【図３０】変形例を示す図。
【発明を実施するための形態】
【００２０】
本発明の実施形態を図示するとともに図中の各要素に付した符号を参照して説明する。
（第１実施形態）
本実施形態は移動ロボットの移動制御方法に特徴があり、具体的には、移動ロボットの移動動作を制御するための軌道生成に特徴を有するのであるが、具体的な制御（軌道生成）を説明する前に、制御対象となる移動ロボットのハードウェア構成について予め説明しておく。
【００２１】
図２は、移動ロボットの機械構成の一例を示した図である。
移動ロボット１００は、股関節が３軸、膝関節が１軸、足首関節が２軸。さらに、肩関節が３軸（肩ピッチ、肩ロール、肩ヨー）、肘関節が１軸（肘ピッチ）、および、手首関節が３軸（手首ヨー、手首ピッチ、手首ロール）、で夫々構成されている。（移動ロボットの機械構成はこれに限定されないが、手（腕）の自由度は６以上、足（脚）の自由度も６以上は必要である。）
移動ロボット１００は、各関節にエンコーダ付きモータ１、２、・・・、２８を有している。各関節のモータ（関節駆動手段）１ａ、２ａ、・・・、２８ａ（図３）は、各関節の関節角度θ１、θ２、・・・、θ２８を調整できる。一方、各関節のエンコーダ（関節角度検出手段）１ｂ、２ｂ、・・・、２８ｂは、各関節の関節角度θ１、θ２・・・、θ２８を計測することができる。
【００２２】
また、移動ロボット１００は、足先部（足平部）および手先部（手の平部）に接触力センサ２５を有している。ここで接触力とは６軸力であり、図４に示すように、ｘ軸、ｙ軸およびｚ軸方向の力ｆの組（ｆｘ、ｆｙ、ｆｚ）Ｔと、ｘ軸回り、ｙ軸回りおよびｚ軸回りの力τの組（τｘ、τｙ、τｚ）Ｔと、である。
【００２３】
この移動ロボットは、移動時に、右足、左足、右手および左手のうちの一つ以上を床、壁、あるいはテーブルなどに接触させながら移動する。そこで、本明細書の以下の説明では、右足、左足、右手および左手を接触点候補と称することがある。
また、手先、足先というのは、すなわち、移動手段のことである。
【００２４】
図３は、移動ロボット１００の機能ブロック図である。移動ロボット１００は、各関節のモータ１ａ〜２８ａ及びエンコーダ１ｂ〜２８ｂと、接触力センサ２５と、コントローラ２１０と、を備えている。
【００２５】
コントローラ２１０には、各関節のエンコーダ１ｂ〜２８ｂ及び接触力センサ２５から、センサ検出値が入力される。また、コントローラ２１０は、各関節のモータ１ａ〜２８ａに対して駆動信号を出力する。
【００２６】
コントローラ２１０は、主要なハードウェア構成として、制御処理、演算処理等を行うＣＰＵ（Central Processing Unit）２１０ａと、ＣＰＵ２１０ａによって実行される制御プログラム、演算プログラム等が記憶されたＲＯＭ（Read Only Memory）２１０ｂと、処理データ等を一時的に記憶するＲＡＭ（Random Access Memory）２１０ｃと、を有するマイクロコンピュータにより構成されている。また、これらＣＰＵ２１０ａ、ＲＯＭ２１０ｂ、及びＲＡＭ２１０ｃは、データバス２１０ｄによって相互に接続されている。必要なプログラムを不揮発性記録媒体に記録しておき、必要に応じてインストールするようにしてもよい。
【００２７】
コントローラ２１０の機能ブロック図を示すと図５のようになる。
コントローラ２１０は、ユーザから指令される接触点計画を格納する接触点計画設定部２２１と、接触点計画に従った動作を安定に実行できる軌道を生成する軌道生成部２２２と、生成された軌道に従って移動ロボット１００の全身動作を実行させる動作制御部２２３と、を有する。これら機能部の具体的な処理動作については後述する。
【００２８】
移動ロボットに多点接触移動を安定して行わせるためには、時々刻々と移り変わっていく接触点に応じて接触力を滑らかに適切に分配し、なおかつ、安定な重心軌道を生成する技術が必要である。このために本発明者はモデル予測制御を用いることを試みた。最初にモデル予測制御の概要を説明しておく。
【００２９】
（概要説明）
例えば図１に図示したような移動動作をロボットに行わせたいとする。ここでは、２本の腕と２本の脚とを有する人型ロボットに、テーブルの奥側にあるボトルを掴ませるという一連の動作を想定する。この場合、ユーザは、この一連動作（タスク）を実行できるような接触点計画を作成する。つまり、図６のように、手先および足先を、どの順番で、どこに、どのように、着くか、という計画を作成する。図６においては、床、壁およびテーブルにおいて足先および手先を接触させる箇所にマークを付けている。
【００３０】
この接触点計画は、具体的には図７のようになる。
接触点計画は、左手（ＬＨ）、右手（ＲＨ）、左足（ＬＦ）および右足（ＲＦ）に関し、どの順番で、どこに、どのように、着いていくか、という時系列のデータである。
図１、図６および図７の対応関係を簡単に説明する。
当初（ｔ０）左足１本だけで立ち、遊脚である右足を前に振り出し、そして、右足を着地させる（ｔ１）。この動きの計画を移動ロボットに指令するには、左足が最初に着地している床上の接触点の座標ＰＬＦ１、そのときの左足の姿勢ｒＬＦ１、そして、右足が着地する床上の接触点の座標ＰＲＦ１、そのときの右足の姿勢ｒＲＦ１、を指定することが必要である。ここで、接触点の座標は、空間座標としてＰ＝（Ｐｘ、Ｐｙ、Ｐｚ）の組で表わされる。また、姿勢というのは、接触点に着地したときの足の裏面の向きであり、例えばオイラー角の組としてｒ＝（ｒｘ、ｒｙ、ｒｚ）として表わされる。（すなわち、ｒｘ、ｒｙおよびｒｚは、ロール、ピッチおよびヨー角をそれぞれ表わす。）足に関する接触点の座標およびそのときの姿勢を指令する形式は今後の説明でも同様なので、以後は適宜説明を省略する。
【００３１】
両足で立った後、左足を振り出し（ｔ２）、左足を前方に着地する（ｔ４）。その間に、左手を壁に着くようにする（ｔ３）。ここで、左手を着く壁上の接触点の座標ＰＬＨ１、および、そのときの左手の姿勢ｒＬＨ１を指定する。この接触点の座標は空間座標としてＰ＝（Ｐｘ、Ｐｙ、Ｐｚ）の組で表わされ、姿勢は接触点に着いたときの手の平の向きとしてオイラー角の組としてｒ＝（ｒｘ、ｒｙ、ｒｚ）として表わされる。
【００３２】
これ以降の接触点計画は図１、図６および図７を対比して頂ければ自明と思われるので省略する。このようにしてユーザにより接触点計画が時系列のデータとして作成される。
【００３３】
このように作成された接触点計画が移動ロボットに入力されると、移動ロボットはこの接触点計画を実現するように軌道を生成して自律的に移動する。このとき、軌道生成にあたって、移動ロボットはモデル予測制御を行う。すなわち、ある時間幅を持った予測区間内で移動ロボットが安定移動できる軌道を生成し、予測区間を微小時間（Δｔ）ずつシフトさせながら安定動作を行える軌道を順次更新していくようにする。例えば、図８に予測区間の例を示す。現在から所定時間（例えば１．６秒）先の未来までを予測区間として設定する。
【００３４】
そして、この予測区間の間で発散しないように安定な軌道を生成する。この予測区間での動きをイメージしたものが図９である。このように、ある時間幅を持つ予測区間で安定な軌道を生成した上で、最初の一点だけを現在の入力値として使用する。
【００３５】
次の軌道更新周期（Δｔ秒後）には予測区間をシフトさせ、新たな予測区間において同様に安定な軌道を生成する（図１０参照）。
【００３６】
現在だけ、あるいは、現在から次ぎの制御周期（Δｔ秒）まで、だけを見るのではなく、上記のように、ある程度の未来までを予測区間とし、この予測区間内で発散しない軌道を生成するようにする。これを繰り返すことで移動ロボットは安定に移動することができる。
【００３７】
さて、ここで問題なのは、ある時間幅を持った予測区間のなかで時々刻々と移り変わっていく接触点に応じて接触力を滑らかに適切に分配し、なおかつ、安定な重心軌道を生成するにはどのようにすればよいか、ということである。
【００３８】
本発明者らは、ある予測区間における安定軌道の生成問題を凸二次計画問題（Quadratic Programming:QP）に帰着させるという着想を得た。具体的には、各接触点における接触力の二乗和と、前記６軸力の微分値の二乗和と、を含む評価関数Ｊを最小化するという問題を解くことで、多点接触移動の安定軌道を求める。
【００３９】
そこで、次に、この評価関数Ｊの導出およびその解法（凸二次計画問題への帰着）を説明する。この解法により、ある予測区間内で安定な多点接触移動を実現するための、重心位置、重心速度、接触力および接触力の微分値の時系列データが得られることを示す。
【００４０】
予測に用いる移動ロボットのモデルを改めて図１１に示す。移動ロボット全体の慣性を一つの重心Ｇで表わす。各接触点には６軸力を定義する。
【００４１】
この時、重心Ｇの並進運動量をＰ、重心回りの回転運動量（角運動量）をＬ、接触点の数をｎとすると、運動方程式は次のように書ける。
【００４２】
【数１】
2015087504.tif 000003
【００４３】
添え字ｉは接触点のインデックスを表す。例えば接触点の候補が左手、右手、左足、右足の４点であれば、ｎ＝４（左手：ＬＨ＝１、右手：ＲＨ＝２、左足：ＬＦ＝３、右足：ＲＦ＝４）とすればよい。ただし、床や壁に接触していない接触点候補については接触力を０にするように拘束条件を設定しておく。例えば図１１の例であれば次のようにする。
【００４４】
【数２】
2015087504.tif 000004
【００４５】
（１）式の第１式、第２式を微分すると次の式が得られる。（（１）式はベクトルで表現しているが、これをｘ、ｙ、ｚに分解した上で、上から順に第１式、第２式・・・第６式と称する。）
【００４６】
【数３】
2015087504.tif 000005
【００４７】
本実施形態では、この２式をシステムとして用いる。そして、（１）式の第３から第５式を拘束条件として定式化する。
【００４８】
【数４】
2015087504.tif 000006
【００４９】
さらに、予測区間内を図１２のように、Ｎ個の区間に分割し、（３）式、（４）式を離散化する。（３）式を離散化すると次のようになる。
【００５０】
【数５】
2015087504.tif 000007
【００５１】
また、サンプリング点で常に（４）式の拘束が成り立つとすると、（４）式は次のように離散化される。
【００５２】
【数６】
2015087504.tif 000008
【００５３】
ここで、パラメータを次ぎのように置く。
【００５４】
【数７】
2015087504.tif 000009
【００５５】
θｉは、６軸力としての接触力を並べたベクトルである。そして、ｘは、重心Ｇのｘ座標、重心Ｇのｘ軸方向速度、重心Ｇのｙ座標、重心Ｇのｙ軸方向速度、および、各接触点における接触力（６軸力）、を並べたベクトルである。このｘを、状態変数ｘと称する。さらに、ｕは、接触力（６軸力）の微分値を並べたベクトルである。
【００５６】
このようにパラメータを設定すると、（５）式を次ぎのように記述することができる。
【００５７】
【数８】
2015087504.tif 000010
【００５８】
この（８）式は、（ｊ＋１）のときの状態変数ｘを、その一つ前の状態で記述できることを表わしている。（８）式を用いて予測区間内の状態変数ｘを順に計算していくと次のようになる。
【００５９】
【数９】
2015087504.tif 000011
【００６０】
したがって、時系列的に求められる状態変数ｘを並べて大文字のＸで表わすと、状態変数の時系列データＸを次のように表わすことができる。
【００６１】
【数１０】
2015087504.tif 000012
【００６２】
この（１０）式は、接触力の微分値（U［ｋ］）を入力として、ある予測区間内における移動ロボットの状態遷移を表わす予測モデルとなる。
さて、ここで、本発明者らは、予測区間内において安定な軌道を生成するために次ぎのような評価関数Ｊを導入した。
【００６３】
【数１１】
2015087504.tif 000013
【００６４】
なお、Ｑｉ、Ｒｉは、適宜設定した重みである。重みの意味や接触点候補にどのように重みを配分するかなどの考え方については後ほど詳しく説明する。ここでは、例えば、接触点候補すべてに力を均等配分すると考えて、Ｑｉはすべて１とし、Ｒｉはすべて１×１０−６とするようなことをイメージして頂ければよい。
【００６５】
ここで、θｉは、６軸力としての接触力の成分を並べたベクトルであった。θｉ（・）は、接触力成分の微分値を並べたベクトルである。（後ろにカッコで付けたドットは微分を表わすと解釈されたい。）
したがって、（１１）式は、「予測区間内で、接触力（６軸力）と接触力（６軸力）微分値との２乗和を最小化する」という意味の式である。（１１）式の第１項は、接触力（６軸力）の２乗和を最小化することを意味する。
この第１項には、次の作用が含まれている。
（１）各接触点への接触力を均等分配すること。これにより、重心をできる限り安定な位置に動かすという効果がある。
（２）不必要な内力を打ち消すこと。
（３）接触点の接地安定性を高めること。すなわち、接触面内の反力中心点を接触面の中心に設定するという効果がある。
【００６６】
また、（１１）式の第２項は、接触力（６軸力）微分値（６軸力の時間変化率）の２乗和を最小化することを意味する。
この第２項には次の作用が含まれている。
（１）重心の発散を抑制すること。
（２）滑らかに接触力を切り替えていくこと。
【００６７】
これらをＱ、Ｒという重みによって適切に足し合わせることによって、この評価関数Ｊを最小化するということは、
「高い接触安定性、滑らかな接触力遷移、最低限の内力、といった条件を満たしながら、安定な重心軌道と各接触点の接触力とを出力する」
ということを意味することとなる。
【００６８】
（１１）式を離散化すると次の式が得られる。
【００６９】
【数１２】
2015087504.tif 000014
【００７０】
ここで、接触力（６軸力）については状態変数ｘに含まれているので、（７）式を変形すると次のようになる。
【００７１】
【数１３】
2015087504.tif 000015
【００７２】
したがって、（１２）式の一つめのシグマの計算は次ぎのようになる。
【００７３】
【数１４】
2015087504.tif 000016
【００７４】
したがって、（１２）式は次のようになる。
【００７５】
【数１５】
2015087504.tif 000017
【００７６】
さらに、（１０）式を用いることで評価関数Ｊを次のように定式化することができる。
【００７７】
【数１６】
2015087504.tif 000018
【００７８】
次に拘束条件について考える。
拘束条件としては、
（２）式のように非接触の接触点候補に対して６軸力が０という拘束、
（６）式の鉛直方向の力の釣り合いの拘束、および、
（６）式のｘｙ軸回りのモーメントの釣り合いの拘束、
が予測区間の全サンプリング点に渡って成り立つ必要がある。
ここで、例えば、あるサンプリング点ｊにおいて、ｉ番目とｉ＋２番目の接触点が非接触であったとする。この時、（２）式および（６）式は次のように記述できる。
【００７９】
【数１７】
2015087504.tif 000019
【００８０】
ここで、係数行列Ｃ［ｊ］、ｄ［ｊ］の成分はサンプリング点によって異なるが、接触点候補の接触／非接触といった情報や接触点位置は既に与えられている。
【００８１】
重心鉛直軌道（Ｇｚ［ｊ］）や重心回りモーメント（Ｌｘ（・）［ｊ］、Ｌｙ（・）［ｊ］）については詳しくは後述するが、ここでは、差し当って次ぎのように理解されたい。
もしも、重心鉛直軌道や重心回りモーメントが定まっていない場合には仮の値を設定して利用する。例えば、一つ前の制御サイクルで用いた重心鉛直軌道、重心回りモーメントを仮の値として利用してもよい。もしくは、重心鉛直軌道、重心回りモーメントは予測区間内においては現時点の状態から動かない、と仮設定してもよい。そして、仮の値で一度計算したあとで、得られた結果を用いて重心鉛直軌道、重心回りモーメントを更新し、求解を繰り返す。
このようにして、重心鉛直軌道や重心回りモーメントについても既知の値として計算を進行させ、ずれについては更新計算のなかで修正するとする。
【００８２】
さて、（１７）式が未来の全サンプリング点で成り立つためには、次式が成り立つ必要がある。
【００８３】
【数１８】
2015087504.tif 000020
【００８４】
この式に（１０）式を代入する。
【００８５】
【数１９】
2015087504.tif 000021
【００８６】
最後に、接触点が安定して接触を保つ為の条件を導入する。
図１３に接触点の座標系（上添え字ｌ（エル）がついている）と、接触多角形（接触点の支持多角形）と、を示した。接触点の座標系は、接触点を原点とし、かつ、接触面の姿勢ｒｉに合わせて定義されているとする。
ここで、接触点の座標系で定義される接触力（６軸力）θｉｌを次のように表わす。
θｉｌ＝［ｆｉｘｌ、ｆｉｙｌ、ｆｉｚｌ、τｉｘｌ、τｉｙｌ、τｉｚｌ］Ｔ
すると、接触力（６軸力）θｉｌは、接触面の姿勢行列Φｉ＝ｒｏｔ（ｒｉ）を用いて次ぎのように表現できる。なお、ｒｏｔは、オイラー角を姿勢行列に変換する関数である。
【００８７】
【数２０】
2015087504.tif 000022
【００８８】
接触点が安定して接触を保つ為には、
（１）接触点が離れないこと、
（２）接触点が滑らないこと、
（３）接触点が剥がれないこと、
という３つの条件を満たす必要がある。
上記３つの要件が理解しやすいように、図１４に、接触点が不安定化する場合を例示した。
【００８９】
（１）接触点が離れない為には、接触面の鉛直力が正であれば良い。
即ち、次式を満たす必要がある。
【００９０】
【数２１】
2015087504.tif 000023
【００９１】
（２）接触点が滑らない為には、接触面に平行な２軸力が摩擦力以下であれば良い。
即ち次式がその条件である。
ただし接触面の摩擦係数をμｉとする。
【００９２】
【数２２】
2015087504.tif 000024
【００９３】
（３）接触点が剥がれない為の条件は、接触多角形のｈ個の頂点座標
（ｘｉ１ｌ， ｙｉ１ｌ），・・・・・（ｘｉｈｌ， ｙｉｈｌ）
を用いて以下のように表される。
（ただし接触多角形の頂点は反時計回りに順に与えられているとする）。
【００９４】
【数２３】
2015087504.tif 000025
【００９５】
以上、（２１）、（２２）、（２３）式をまとめると次のようになる。
【００９６】
【数２４】
2015087504.tif 000026
【００９７】
（２４）式に（２０）式を代入し、ｊ番目のサンプリング点としてインデックスを付け加える。
【００９８】
【数２５】
2015087504.tif 000027
【００９９】
（２５）式は、ｊ番目のサンプリング点におけるｉ番目の接触点が安定な接触を保つ為に満たすべき条件であり、安定な多点接触動作を実現する為には、全サンプリング点の全接触点において（２５）式が成り立つ必要がある。
まずｊ番目のサンプリング点において全接触点が（２５）式を満たす為の条件は次のように書ける。
【０１００】
【数２６】
2015087504.tif 000028
【０１０１】
これが全サンプリング点で成り立つ条件は次のように書ける。
【０１０２】
【数２７】
2015087504.tif 000029
【０１０３】
これに（１０）式を代入する。
【０１０４】
【数２８】
2015087504.tif 000030
【０１０５】
最終的に、（１６）、（１９）、（２８）式により、多点接触時の安定軌道生成問題は次の凸２次計画問題に帰着される。
【０１０６】
【数２９】
2015087504.tif 000031
【０１０７】
凸２次計画問題（Quadratic Programming: QP）にまで帰着できてしまえば、凸２次計画問題（ＱＰ）自体はよく知られた最適化問題の１つであり、高速な求解が可能である。（求解するとＵ［ｋ］が求まる。）ＱＰの求解後は、重心軌道と各接触点の接触力とが次ぎのようにして計算される。
【０１０８】
【数３０】
2015087504.tif 000032
【０１０９】
このようにして、予測区間内において常に拘束条件（１）−（３）を満たし、かつ、評価関数Ｊを最小化するＸ［ｋ＋１］が求まる。
Ｘ［ｋ＋１］というのは、（７）式と（１０）式とを見てわかる通り、重心のｘ座標、重心のｘ軸方向速度、重心のｙ座標、重心のｙ軸速度、および、各接触点の接触力（６軸力）の時系列データである。
【０１１０】
さらに、式の展開の途中で説明したように、重心の鉛直軌道（ｚ座標）や重心回りモーメントについては更新計算のなかで修正されたものが得られている（詳しくは後述する）。すなわち、これで予測区間内で安定な移動を実現する軌道を得ることができたわけである。
【０１１１】
用語が混乱しないように付言しておく。
上記の演算過程およびこの演算で求められる結果を見て分かるように、ここでいう「軌道」というのは、重心の三次元的軌道に加えて、各接触点で発生すべき接触力（６軸力）の時系列データを含めて考えると分かりやすいであろう。なお、移動ロボットを移動させるための「軌道」といえば一般的には手先、足先の軌道も含む概念であろうが、本実施形態の説明において「軌道」といった場合には、手先、足先の軌道を含んでいてもいなくても大差無い。本実施形態における安定軌道生成という観点から見ると、手先、足先の軌道は、接触点計画、重心軌道および接触力の時系列データから補間によってほぼ自動的に決定され得るものである。したがって、本実施形態の説明において「軌道」といった場合には、手先、足先の軌道を含んでいてもいなくても大差無い。
【０１１２】
（移動ロボットの制御）
移動ロボットの移動制御方法を説明する。
図１５は、移動ロボットの移動制御方法の全体フローである。
移動ロボットの移動制御の工程には、大きく分けて、接触点計画の設定（ＳＴ１００）と、軌道生成（ＳＴ２００）と、動作指令（ＳＴ３００）と、動作制御の実行（ＳＴ４００）と、がある。
【０１１３】
接触点計画の設定（ＳＴ１００）においては、これまで概略説明してきたように、手先および足先を、どの順番で、どこに、どのように、着くか、という多点接触移動の計画（図７）をユーザが移動ロボットに入力する。入力された接触点計画は、コントローラ２１０の接触点計画設定部２２１に記憶される。
【０１１４】
軌道生成工程（ＳＴ２００）について説明する。
図１６、図１７、図１８に軌道生成工程（ＳＴ２００）の手順を説明するための詳細なフローチャートを示す。軌道生成工程（ＳＴ２００）はコントローラ２１０の軌道生成部２２２にて実行される。
まず、ＳＴ２０１において、軌道生成部２２２は現在状態ｘ［ｋ］を設定する。ここで、現在状態（ｘ［ｋ］）として設定すべきは、現在の重心のｘ座標、重心のｘ軸方向速度、重心のｙ座標、重心のｙ軸速度、および、各接触点の接触力（６軸力）である。各接触点における接触力は力センサ２５からの検出値によって得ることができる。重心のｘ座標、重心のｘ軸方向速度、重心のｙ座標および重心のｙ軸速度は、現在の移動ロボットの状態から推定して求める値である。
例えば、各エンコーダのセンサ値を取得して移動ロボットの全身姿勢を把握した上で、重心のｘ座標、重心のｘ軸方向速度、重心のｙ座標および重心のｙ軸速度を求めてもよい。あるいは、想定している姿勢に対して実際の移動ロボットの姿勢がどの程度傾いているか（ずれているか）を把握することによって、重心位置を修正するようにしてもよい。
【０１１５】
次に、ＳＴ２０２において、重み（Ｑｉ、Ｒｉ）を設定する。
（先の式の展開でいうと、重みは、（１１）式のところで評価関数Ｊに組み込まれたことを確認されたい。）
重み（Ｑｉ、Ｒｉ）は、ユーザが予め設定入力しているもので、軌道生成部２２２は、必要に応じて読み出し、更新設定する。（更新する必要がなければ、再設定の必要はない。）接触点候補すべてに力を均等配分する場合には、Ｑｉをすべて１とし、Ｒｉをすべて１×１０−６としてもよいが、もっと細かく設定することもできる。この重みを調整することで、接触力の変化をどれぐらい滑らかにするかや、手先にはあまり力を掛けないようにする、などの調整ができる。
【０１１６】
例えば、重みを全部同じにしたとする。すると、演算結果として、着地している手足（各接触点）に均等に力が掛かるような解が得られる。一般的に考えると、この場合が移動ロボットとしては一番安定した形（姿勢）になる。
【０１１７】
一方、重みの配分を変えたい場合もある。例えば、足に比べて手が弱い（脆弱な）移動ロボットであって手に荷重を掛け過ぎるとよくないという場合には、手の重みを「大きく」する。重みを大きくするほど、重みに乗算されている手のθｉなどが小さくなるので、手には接触力の分配が小さくなる。
【０１１８】
あるいは、テーブルに一方の手を着いて、他方の手を前方に大きく伸ばしたいとする。この場合、手足に均等に力が配分されているだけでは無理であり、体をもっと前に傾ける必要がある。体を傾け、重心をもっと前方にシフトさせるためには、一方の手に掛かる力の分配をやや大きくする必要がある。この場合、一方の手の重みを減らし、体を傾けられるようにし、他方の手をより大きく前方に伸ばすようにする、という調整が必要になる。
【０１１９】
一般的な動作では重みは変更の必要がないが、状況に応じて軌道更新のタイミングで毎回変更してもよい。
【０１２０】
次に、ＳＴ２０３において、予測区間を設定する。
これは、図８で説明したように、現在から所定の時間幅（例えば１．６秒）を予測区間として設定する、ということである。
【０１２１】
次に、ＳＴ２０４において、この予測区間内の接触点位置およびその姿勢（ｐｉ、ｒｉ）を設定する。これは、接触点計画（図７）のなかから予測区間内の接触点計画を切り出してくることに相当する。
【０１２２】
次に、ＳＴ２０５においては、重心鉛直軌道と重心回りモーメントとを仮設定する。
本実施形態のポイントは、次ステップの演算工程（ＳＴ２０６）で（２５）式（凸二次計画問題）を解いて、重心のｘｙ方向軌道、各接触点の接触力および接触力微分値、を得ることにある。
しかし、この求解には、各接触点の位置、姿勢、重心鉛直軌道、および、重心回りモーメントが与えられていることが前提となる。予測区間内における各接触点の位置および姿勢は、接触点計画で与えられる。一方、この予測区間内における重心鉛直軌道および重心回りモーメントは、未知である。
そこで、演算工程（ＳＴ２０６）で（２５）式（凸二次計画問題）が解けるように重心鉛直軌道および重心回りモーメントを一回仮設定する。
【０１２３】
全くの一回目の制御サイクルでは、例えば、重心鉛直軌道、重心回りモーメントは予測区間内においては現時点の状態から動かない、と仮設定してもよい。（例えば、重心高さは変化しない、と仮定してもよい。）もしくは、一つ前の制御サイクルで用いた重心鉛直軌道、重心回りモーメントを仮の値として利用してもよい。予測区間は１．６秒ほどの微小な時間であり、最終的に求まる安定軌道においてもこの間の重心高さの変化はやはり微小である。したがって、一回目の仮計算としては、重心高さが変化しないとしても、前回の制御周期と同じであるとしても計算は進められる。
【０１２４】
なお、この後、仮の演算で求まった重心のｘｙ方向軌道でも移動ロボットの動きが安定するように重心鉛直軌道および重心回りモーメントを修正する工程（ＳＴ２０９）がある。そして、この修正した重心鉛直軌道および重心回りモーメントを使って再度演算（ＳＴ２０６）するようにループを回すので、最終的には、重心鉛直軌道を含めて安定な軌道が適切に求まることはご理解頂けよう。
【０１２５】
ここで、重心回りモーメントを定義しておく。
移動ロボットをリンク同士が関節でジョイントされたリンク構造体と見なすと、重心回りモーメントは、各リンクに分布した質点の運動によって重心の回りに発生するモーメントの合計値である。
移動ロボットが図１９（Ａ）、（Ｂ）に示すような多質点モデルで表されており、Ｍ個の質点がそれぞれ、
質量：ｍｉ、
位置：ｓｉ＝［ｘｉ、ｙｉ、ｚｉ］Ｔ
のパラメータを持っているとする。
移動ロボット全体の重心をＧ＝（Ｇｘ、Ｇｙ、Ｇｚ）Ｔとすると、重心回りモーメントは次のように表わされる。
【０１２６】
【数３１】
2015087504.tif 000033
【０１２７】
次に、ＳＴ２０６において演算工程を実行する。
具体的には、（２９）式の凸二次計画問題を解くということである。
予測区間内において、接触点おのおのに力を適切に分散させつつ、なおかつ、この接触力を実現しながら重心（ここでの重心はｘとｙ）が安定に遷移するような軌道が求められるわけである。具体的には、Ｈ、Ｆ、Ｐ、Ｓ、Ｖ、Ｗが求まり、さらに、Ｕ［ｋ］が求まる。（このＵ［ｋ］は接触力微分値のベクトルであったことを思い出されたい。）そして、（３０）式によって、Ｘｏｕｔ［ｋ＋１］が求まる。（このＸｏｕｔ［ｋ＋１］は、重心のｘ座標、重心のｘ軸方向速度、重心のｙ座標、重心のｙ軸速度、および、各接触点の接触力（６軸力）の時系列データである。）
【０１２８】
続いて、ＳＴ２０８において、手先、足先の軌道を補間して求める。接触点計画においては、接触点とそのときの姿勢だけが設定されている。そこで、各接触点間を結ぶように手先、足先の補間軌道を求める。すると、図２０のように、接触点計画で指示された接触点同士の間が埋まる。
【０１２９】
なお。ＳＴ２０８は、次のＳＴ２０９の前であればどのタイミングで実行されてもよいものである。極端に言えば、接触点計画が入力された時点ですぐに手先足先の補間軌道を求めてしまってもよい。
【０１３０】
さて、次に、ＳＴ２０９において、重心鉛直軌道と重心回りモーメントとを修正する作業を行う。
まず、重心鉛直軌道を修正する。これまでの工程により、重心のｘｙ方向の軌道と、手先足先の軌道と、が得られている。（さらに、重心鉛直軌道も仮設定している。）これに基づいて、予測区間内における移動ロボットの姿勢の変化を推定することができるが、このとき、膝や腕が伸びきってしまうなど安定しない要因がある場合には安定するように重心鉛直軌道を調整する。例えば、膝が伸びきりそうになったら重心鉛直軌道を下げる、といった調整を行う。予測区間内における移動ロボットの姿勢が決定したら、それに基づいて重心回りモーメントの計算を行う。
【０１３１】
さて、次に、ＳＴ２１０において、ＳＴ２０６−ＳＴ２０９を１回以上繰り返したかどうかを判断し、繰り返していなければＳＴ２０６に戻って凸二次計画問題の求解を行う。
（ＳＴ２０８については必要に応じてスキップしてもよいことはもちろんである。）
この繰り返し演算（ＳＴ２０６）によって、修正された重心鉛直軌道および重心回りモーメントを用いて再度Ｘｏｕｔ［ｋ＋１］が求まる。
このようにして、予測区間内において移動ロボットの安定な移動を実現する、重心位置、重心速度および接触力の時系列データが求まった（ＳＴ２１１）。
【０１３２】
このように、ある時間幅を持つ予測区間で安定な軌道を生成した上で、最初の一点だけを現在の入力値として使用する。すなわち、最初の一点だけを動作指令として動作制御部２２３に出力する（ＳＴ３００）。
【０１３３】
所定の終了条件を満たすまで周期を更新（ＳＴ２１３）すなわち現時点を微小時間進ませて、先頭（ＳＴ２０１）に戻り、ループを繰り返す。このように、予測区間を微小時間だけ先に進ませながら軌道生成を繰り返す。このようにして多点接触移動を安定に実現する軌道の算出が行われる。
【０１３４】
動作指令を受けた動作制御部２２３が移動ロボット１００をどのように制御して動かすか（関節を駆動させるか）は本実施形態のポイントではないが、簡単に説明しておく。
本実施形態においては、重心および手先足先の軌道に加えて、各接触点における接触力も動作指令として与えられる。そこで、まず、各接触点で指示された接触力が発生するように手先足先の位置（軌道）を微修正するという工程が必要になる（ＳＴ４１０）。例えば、手先をテーブルに着いているときに、比較的大きな接触力が指示された場合には、手先をテーブルに押し込むように手先の軌道を微修正する。
【０１３５】
そして、各関節のモータを駆動して全身を動作させる（ＳＴ４２０）。これで移動ロボットが動作することになる。
【０１３６】
なお、動作の実行（ＳＴ４００）において、接触力制御（ＳＴ４１０）を行ったり、関節が指示した通りに正確に駆動しなかったり、外乱の影響を受けたりして、実機とモデルとの間には当然にずれが生じる。したがって、軌道生成（ＳＴ２００）のループにあっては、毎回、現在状態ｘの設定を行う必要がある（ＳＴ２０１）。
【０１３７】
以上、本実施形態によれば、設定された接触点の計画に基づいて移動ロボットが自動的に安定な重心軌道を生成して自律的に移動できる。そして、軌道生成のために用いた評価関数Jの意味から分かるように、接触点の切替（接触状態の遷移）に伴う力の変化が滑らかになり、移動ロボットの安定かつ滑らかな移動が実現される。
【０１３８】
（実験例）
実験例を説明する。
上記実施形態を２足歩行と４足歩行の場合に適用した実験例を示す。
図２１から図２３は二足歩行の場合の例である。図２１のような接触点計画を移動ロボットに与えた。（接触点は右足と左足だけであり、右手、左手は床や壁に接触しないものとした。）
【０１３９】
図２２は、実行結果のスナップショットである。
図が多くなりすぎても冗長であるので、途中および最後を間引いたが、接触点計画と付き合わせていただければ内容はご理解頂けるであろう。
安定した２足歩行が実現されており、そして、接触点の移り変わりに従って安定な重心軌道が生成されていることがわかる。
図２３（A）、（B）、（C）は、二足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフである。接触点の切り替えに伴う接触点反力が滑らかに遷移していることがわかる。
全反力中心が左右脚間で滑らかに遷移していることも確認できる。
【０１４０】
同様に、図２４から図２６は４足歩行の場合である。
図２４のような接触点計画を移動ロボットに与えた。
図２５が、実行結果のスナップショットである。（前記と同様に途中を間引いた。）
やはり、安定した４足歩行が実現されており、接触点の移り変わりに従って安定な重心軌道が生成されていることがわかる。
図２６（A）、（B）、（C）は、４足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフである。
【０１４１】
同様に、図２７から図２９は４足歩行であって、手足の着き方をランダムにしたものである。
図２７のような接触点計画を移動ロボットに与えた。
図２８が、実行結果のスナップショットである。
やはり、ランダム４足歩行でも安定した歩行が実現されており、接触点の移り変わりに従って安定な重心軌道が生成されていることがわかる。
図２９（A）、（B）、（C）は、ランダム４足歩行実行時の重心位置、反力中心の位置、および、接触点の鉛直方向荷重、を示したグラフである。
【０１４２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
移動ロボットとしてのハードウェア構成としては、二足歩行、４足歩行、さらには、６足でも８足でもよいのであって、手足の数に制限があるわけではない。
ただし、少なくとも一つの接触点がどこかに接地している必要がある。
（接地、というが、壁に手を着く場合も含めて解釈されたい。）
極端なケースであるが、例えば、図３０のように、足が１本、手が１本で、床と壁に手足を交互に着けながら移動するような移動ロボット１００であってもよい。
【０１４３】
この出願は、２０１３年１２月１０日に出願された日本出願特願２０１３−２５４９８９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１４４】
１ａ-２８ａ…モータ、１ｂ-２８ｂ…エンコーダ、２５…接触力センサ、１００…移動ロボット、２１０…コントローラ、２２１…接触点計画設定部、２２２…軌道生成部、２２３…動作制御部。
【図１】
2015087504.tif 000034
【図２】
2015087504.tif 000035
【図３】
2015087504.tif 000036
【図４】
2015087504.tif 000037
【図５】
2015087504.tif 000038
【図６】
2015087504.tif 000039
【図７】
2015087504.tif 000040
【図８】
2015087504.tif 000041
【図９】
2015087504.tif 000042
【図１０】
2015087504.tif 000043
【図１１】
2015087504.tif 000044
【図１２】
2015087504.tif 000045
【図１３】
2015087504.tif 000046
【図１４】
2015087504.tif 000047
【図１５】
2015087504.tif 000048
【図１６】
2015087504.tif 000049
【図１７】
2015087504.tif 000050
【図１８】
2015087504.tif 000051
【図１９Ａ】
2015087504.tif 000052
【図１９Ｂ】
2015087504.tif 000053
【図２０】
2015087504.tif 000054
【図２１】
2015087504.tif 000055
【図２２】
2015087504.tif 000056
【図２３Ａ】
2015087504.tif 000057
【図２３Ｂ】
2015087504.tif 000058
【図２３Ｃ】
2015087504.tif 000059
【図２４】
2015087504.tif 000060
【図２５】
2015087504.tif 000061
【図２６Ａ】
2015087504.tif 000062
【図２６Ｂ】
2015087504.tif 000063
【図２６Ｃ】
2015087504.tif 000064
【図２７】
2015087504.tif 000065
【図２８】
2015087504.tif 000066
【図２９Ａ】
2015087504.tif 000067
【図２９Ｂ】
2015087504.tif 000068
【図２９Ｃ】
2015087504.tif 000069
【図３０】
2015087504.tif 000070
【国際調査報告】
2015087504.tif 000071
2015087504.tif 000072
2015087504.tif 000073
2015087504.tif 000074