IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人京都大学の特許一覧 ▶ トヨタ自動車株式会社の特許一覧

<>
  • 特許-非線形モデル予測制御装置 図1
  • 特許-非線形モデル予測制御装置 図2
  • 特許-非線形モデル予測制御装置 図3
  • 特許-非線形モデル予測制御装置 図4
  • 特許-非線形モデル予測制御装置 図5
  • 特許-非線形モデル予測制御装置 図6
  • 特許-非線形モデル予測制御装置 図7
  • 特許-非線形モデル予測制御装置 図8
  • 特許-非線形モデル予測制御装置 図9
  • 特許-非線形モデル予測制御装置 図10
  • 特許-非線形モデル予測制御装置 図11
  • 特許-非線形モデル予測制御装置 図12
  • 特許-非線形モデル予測制御装置 図13
  • 特許-非線形モデル予測制御装置 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-06
(45)【発行日】2023-02-14
(54)【発明の名称】非線形モデル予測制御装置
(51)【国際特許分類】
   G05B 13/04 20060101AFI20230207BHJP
   G05B 13/02 20060101ALI20230207BHJP
【FI】
G05B13/04
G05B13/02 J
【請求項の数】 1
(21)【出願番号】P 2019158051
(22)【出願日】2019-08-30
(65)【公開番号】P2021036390
(43)【公開日】2021-03-04
【審査請求日】2022-01-17
【新規性喪失の例外の表示】特許法第30条第2項適用 平成30年8月31日開催の「非線形現象の特徴化に基づく制御理論調査研究会 第5回研究会」にて発表
(73)【特許権者】
【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】大塚 敏之
(72)【発明者】
【氏名】片山 想太郎
(72)【発明者】
【氏名】土井 将弘
【審査官】藤崎 詔夫
(56)【参考文献】
【文献】特開2016-198873(JP,A)
【文献】特開2018-185747(JP,A)
【文献】特開平9-251320(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 13/04
G05B 13/02
(57)【特許請求の範囲】
【請求項1】
制御対象の非線形制御モデルの最適化問題を演算しながらフィードバック制御を行うことによって、各時刻において将来の制御対象の応答を予測しながら制御対象の制御を行うことが可能に構成された非線形モデル予測制御装置であって、
繰り返し周囲物との衝突が発生することを前提とする動作を実行制御されるように構成された制御対象に対して、各時刻において当該時刻から所定期間後までにおける当該衝突の回数を予測する予測手段と、
周囲物との衝突が発生することを前提とした前記非線形制御モデルの最適化問題の演算を、予測した衝突回数に応じて実行する演算手段と、
を備える、非線形モデル予測制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、非線形モデル予測制御装置に関する。
【背景技術】
【0002】
二足歩行ロボットのような安定性の低いシステムを制御する際には、未来(有限時間後まで)のシステム挙動を予測しながら制御を行うモデル予測制御(receding horizon control;リシーディングホライゾン制御)を用いることが有効である。モデル予測制御は、制御周期(サンプリング周期)ごとに各時刻から有限時間未来までの最適制御問題を解き、制御入力値を決定するフィードバック制御である。
【0003】
フィードバック制御において、二足歩行ロボットは歩行動作等を伴う非線形性の高いシステムであるので、二足歩行ロボットの制御は、非線形モデル予測制御によって行われることが好ましい。
【0004】
非特許文献1には、周囲物との衝突を前提とした制御対象(例えばロボットの脚の動作)の非線形制御モデル制御装置が開示されている。
【先行技術文献】
【非特許文献】
【0005】
【文献】M. Yamakita, A. Taura, and Y. Onodera、「An application of nonlinear receding horizon control to posture control with collisions」、Proceedings of lnternational Conference on Advanced lntelligent Mechatronics、2005年7月、p.1505-1510
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、周囲物との衝突(例えばロボットの脚の接地)が将来(次の瞬間)のどのタイミングで発生するかを予測しながら制御することは難しい。そのため、非特許文献1に記載の技術では、周囲物との衝突のタイミングを予め設定した仮の時刻として制御を実行している。よって、将来の実際の衝突タイミングに制御結果がより良く合う高精度な非線形モデル予測制御装置が望まれる。
【0007】
本発明は、上述のような実状に鑑みてなされたものであり、周囲物と衝突することを前提とした制御対象に対し、将来の実際の衝突タイミングに制御結果がより良く合う高精度な非線形モデル予測制御装置を提供することを、その目的とする。
【課題を解決するための手段】
【0008】
本発明にかかる非線形モデル予測制御装置は、制御対象の非線形制御モデルの最適化問題を演算しながらフィードバック制御を行うことによって、各時刻において将来の制御対象の応答を予測しながら制御対象の制御を行うことが可能に構成された非線形モデル予測制御装置であって、繰り返し周囲物との衝突が発生することを前提とする動作を実行制御されるように構成された制御対象に対して、各時刻において当該時刻から所定期間後までにおける当該衝突の回数を予測する予測手段と、周囲物との衝突が発生することを前提とした前記非線形制御モデルの最適化問題の演算を、予測した衝突回数に応じて実行する演算手段と、を備える、ものである。
【0009】
本発明は、上述したように、各時刻において所定期間後までに制御対象が衝突する回数を予測し、その予測した衝突回数に応じて非線形制御モデルの最適化問題を演算している。したがって、本発明にかかる非線形モデル予測制御装置によれば、将来の実際の衝突タイミングに制御結果がより良く合う高精度な予測制御を実行することができる。
【発明の効果】
【0010】
本発明によれば、周囲物と衝突することを前提とした制御対象に対し、将来の実際の衝突タイミングに制御結果がより良く合う高精度な非線形モデル予測制御装置を提供できる。
【図面の簡単な説明】
【0011】
図1】実施の形態1にかかるロボットシステムを示す概略図である。
図2】実施の形態1にかかるロボットシステムの構成を示す機能ブロック図である。
図3】実施の形態1にかかるロボットをコンパス型モデルに適用する方法を説明するための図である。
図4】実施の形態1にかかるコンパス型ロボットを示す模式図である。
図5図4のコンパス型ロボットにおける片脚支持期と両脚支持期の2つの状態を示す模式図である。
図6】実施の形態1にかかるモデルを示す図である。
図7】実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。
図8】実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。
図9】実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。
図10】実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。
図11】実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。
図12】実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。
図13】実施の形態1にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果の、ホライゾン上での予測衝突時刻のグラフを示す図である。
図14図13の一部を拡大したグラフを示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施の形態について説明する。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0013】
<実施の形態1>
図1は、実施の形態1にかかるロボットシステム1を示す概略図である。また、図2は、実施の形態1にかかるロボットシステム1の構成を示す機能ブロック図である。ロボットシステム1は、ロボット100と、ロボットの動作を制御する制御装置2とを有する。
【0014】
ロボット100は、胴体102と、2つの脚である右脚110R及び左脚110Lとを有する。ロボット100は、2つの脚(右脚110R及び左脚110L)を用いて歩行動作を行うことが可能な二足歩行ロボットである。右脚110R及び左脚110Lは、ロボット100の胴体102の下部に設けられている。ここで、図1に示すように、ロボット100の前方向をX軸方向、上方向をY軸方向とする。また、以下、右脚110Rに関する構成要素の符号に「R」を付し、左脚110Lに関する構成要素の符号に「L」を付すが、それぞれの構成要素について左右を区別しない場合には、「R」及び「L」は、適宜、省略され得る。
【0015】
右脚110Rは、胴体102に近い方から順に、股関節部120Rと、上腿部112Rと、膝関節部122Rと、下腿部114Rと、足首関節部124Rと、足部116Rとを有する。同様に、左脚110Lは、胴体102に近い方から順に、股関節部120Lと、上腿部112Lと、膝関節部122Lと、下腿部114Lと、足首関節部124Lと、足部116Lとを有する。足部116R及び足部116Lの底部には、それぞれ足裏センサ118が設けられている。足裏センサ118は、足部116の底部に加わる荷重を検出する。
【0016】
股関節部120R及び股関節部120Lは、胴体102の下部に取り付けられている。そして、股関節部120R及び股関節部120Lを介して、それぞれ、上腿部112R及び上腿部112Lが胴体102と接続されている。言い換えると、右脚110R及び左脚110Lは、それぞれ、股関節部120R及び股関節部120Lを介して、胴体102と接続されている。
【0017】
また、膝関節部122Rを介して、上腿部112Rと下腿部114Rとが接続されている。同様に、膝関節部122Lを介して、上腿部112Lと下腿部114Lとが接続されている。また、足首関節部124Rを介して、下腿部114Rと足部116Rとが接続されている。同様に、足首関節部124Lを介して、下腿部114Lと足部116Lとが接続されている。
【0018】
股関節部120は、XY平面に垂直な軸(つまりロボット100の横方向に水平な軸)の周りに回転する。これにより、右脚110R及び左脚110Lは、前後に動作し得る。したがって、ロボット100は、右脚110R及び左脚110Lを交互に前に出すことにより歩行動作を行うことができる。
【0019】
膝関節部122は、XY平面に垂直な軸の周りに回転する。これにより、右脚110R及び左脚110Lは、膝関節部122で屈曲動作を行うことができる。また、足首関節部124は、XY平面に垂直な軸の周りに回転する。これにより、足部116は、下腿部114に対して上下に動作し得る。
【0020】
図2に示すように、ロボット100の各関節部(股関節部120、膝関節部122及び足首関節部124)は、角度センサ130と、モータ140とを有する。角度センサ130は、例えばエンコーダであって、各関節部の関節角度を検出する。モータ140は、各関節部を動作させる、アクチュエータとしての機能を有する。また、各関節部は、各関節部のモータ140のトルクを検出するトルクセンサ136を有してもよい。また、ロボット100の周囲の状態を検出するためのカメラが、胴体102に内蔵されていてもよい。
【0021】
制御装置2は、例えばコンピュータとしての機能を有する。制御装置2は、ロボット100の内部(例えば胴体102)に搭載されてもよい。また、制御装置2は、ロボット100と物理的に離れていてもよく、その場合、ロボット100と有線又は無線を介して通信可能に接続されてもよい。制御装置2は、ロボット100の動作、特に、右脚110R及び左脚110Lの動作を制御する。さらに具体的には、制御装置2は、各関節部のモータのトルクを制御することで、右脚110R及び左脚110Lの姿勢を制御する。つまり、ロボットシステム1において、制御装置2はマスタ装置としての機能を有し、ロボット100はスレーブ装置としての機能を有する。
【0022】
制御装置2は、主要なハードウェア構成として、CPU(Central Processing Unit)4と、ROM(Read Only Memory)6と、RAM(Random Access Memory)8とを有する。CPU4は、制御処理及び演算処理等を行う演算装置としての機能を有する。ROM6は、CPU4によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。RAM8は、処理データ等を一時的に記憶するための機能を有する。
【0023】
また、制御装置2は、状態取得部12、非線形モデル予測制御部14、及びサーボ制御部16(以下、「各構成要素」と称する)を有する。各構成要素は、例えば、CPU4がROM6に記憶されたプログラムを実行することによって実現可能である。また、各構成要素は、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールするようにして、実現するようにしてもよい。なお、各構成要素は、上記のようにソフトウェアによって実現されることに限定されず、何らかの回路素子等のハードウェアによって実現されてもよい。
【0024】
状態取得部12は、ロボット100の現在の歩行に関する状態を示すデータ(状態パラメータ)を取得する、状態取得手段としての機能を有する。状態取得部12は、各センサ(角度センサ130、足裏センサ118及びトルクセンサ136)から、各センサの検出値を取得する。そして、状態取得部12は、取得された検出値(及び検出値から得られた値)を非線形モデル予測制御部14に対して出力する。なお、「検出値から得られた値」とは、例えば、「検出値」が角度センサ130から検出された関節角度である場合、関節角度の速度(変化量,時間微分)であってもよい。この場合、状態パラメータは、関節角度及び関節角度の速度を示してもよい。
【0025】
非線形モデル予測制御部14は、本実施の形態にかかる非線形モデル予測制御装置に相当する部位である。非線形モデル予測制御部14は、ロボット100の動作を制御するための制御入力値(入力値)を算出する算出手段としての機能を有する。非線形モデル予測制御部14は、状態取得部12からの検出値(及び検出値から得られた値)の少なくとも一部を状態パラメータとして入力することができる。非線形モデル予測制御部14は、その状態パラメータに基づいて、モデル予測制御のアルゴリズムを使用してロボット100の動作を制御するための制御入力値を算出する。また、非線形モデル予測制御部14は、算出された制御入力値をサーボ制御部16に対して出力する。
【0026】
非線形モデル予測制御部14は、その状態パラメータに基づいて、非線形モデル予測制御(モデル予測制御)のアルゴリズムを使用して制御対象の動作を制御するための制御入力値を算出し、サーボ制御部16に出力する。非線形モデル予測制御についての詳細は後述する。また、非線形モデル予測制御部14は、ロボットシステム1の外部の上位コントローラ(図示せず)によって、必要な指示値(歩幅、歩行周期等)を入力されてもよい。なお、制御対象がロボット以外のものであった場合でも、出力先が制御対象の部位になるだけで基本的に同様である。
【0027】
サーボ制御部16は、非線形モデル予測制御部14によって算出された制御入力値を用いてロボット100の動作を制御する制御手段としての機能を有する。サーボ制御部16は、算出された制御入力値となるように、ロボット100の各関節部を制御する。また、サーボ制御部16は、サーボアンプの機能を有してもよい。また、サーボ制御部16は、トルク制御を行う場合、各関節部のトルク(関節トルク)が算出された制御入力値となるように、各関節のモータ140を制御する。このとき、サーボ制御部16は、各関節部のトルクセンサ136によって検出されたトルク値を用いてフィードバック制御を行ってもよい。
【0028】
次に、本実施の形態にかかる非線形モデル予測制御について説明する。
非線形モデル予測制御とは、非線形システムに対し、各サンプリング時刻で有限時刻未来までの最適入力(制御入力値の最適解)を求め、得られた入力のうち初期値を実際の入力とする制御である。換言すれば、非線形モデル予測制御部14は、制御対象の非線形制御モデルの最適化問題を演算しながらフィードバック制御を行うことによって、各時刻において将来の制御対象の応答を予測しながら制御対象の制御を行うことが可能に構成されている。非線形モデル予測制御には、非線形最適制御である、フィードバック制御である、及び、拘束条件を組み込み易いという、3つの利点がある。
【0029】
このように、非線形モデル予測制御は、フィードバック制御であるため外乱に対して強く、拘束条件も多様に組み合わせることができる。このような特徴があるため、非線形モデル予測制御は、多くのシステムへの導入が期待されている。しかしながら、ニュートン法などの従来の反復法では、サンプリング周期内で最適解に収束させることは困難であった。
【0030】
近年、この問題に対する有効な数値計算法として、C/GMRES(continuation/generalized minimum residual method)法が新たに考案された。C/GMRES法は、連続変形法(continuation method)とGMRES法とを組み合わせたアルゴリズムである。C/GMRES法は、状態変化が連続であるシステムに対し、最適解の連続性を利用して、最適解の変化率を求めながら最適解を追跡していく計算方法である。このC/GMRES法を用いることにより、非線形モデル予測制御においても、実時間(リアルタイム)でシステムを制御することが可能となる。つまり、C/GMRES法を用いることで有限時刻未来までの最適制御問題をサンプリング周期内で解くことが可能になった。本実施の形態においても、C/GMRES法での計算を適用することができる。なお、C/GMRES法については後述する。
【0031】
そして、本実施の形態にかかる非線形モデル予測制御部14は、その主たる特徴として、次の予測手段及び演算手段を備える。この予測手段は、繰り返し周囲物との衝突(周囲環境との接触等)が発生することを前提とする動作(例えば歩行)を実行制御されるように構成された制御対象に対して、各時刻において当該時刻から所定期間後までにおける当該衝突の回数を予測する。この予測手段は、衝突回数予測手段と称することもできる。
【0032】
上記の演算手段は、周囲物との衝突が起こり得ることを前提とした非線形制御モデルの最適化問題の演算を、予測した衝突回数に応じて(予測した衝突回数ごとに区別して)実行する。以下、このような非線形モデル予測制御部14における制御例について説明する。
【0033】
[制御対象と制御目的]
次に、上述した非線形モデル予測制御を、本実施の形態にかかるロボット100の動作の制御に適用した例について説明する。なお、実施の形態1においては、制御対象としてのロボット100がコンパス型モデルである例について説明するが、非線形モデル予測制御は、ロボット100がコンパス型モデルでなくても適用可能である。
【0034】
なお、ロボット100の歩行動作は、地面に着いていない脚である遊脚が地面と衝突する(着地する)という動作を含む。この衝突の前後で、ロボット100の一般化速度が不連続に変化する。つまり、このとき、状態ジャンプが発生する。また、一般的に、歩行動作は、周期的な運動である。したがって、ロボット100を、予め定められた周期ごとに状態ジャンプを生じさせる(つまり遊脚を着地させる)ように制御を行うことが可能である。なお、「着地」とは、遊脚が地面と衝突(接触)することに限定されない。つまり、「着地」とは、ロボット100がその上を歩行している面(歩行面)に遊脚が接触することを意味する。
【0035】
図3は、実施の形態1にかかるロボット100をコンパス型モデルに適用する方法を説明するための図である。図3に示した例では、右脚110Rが片脚で支持している期間に地面90に着いている脚支持脚であり、左脚110Lが遊脚(振り脚)である。制御装置2は、支持脚が地面と点接触していることを模擬するため、支持脚(図3の例では右脚110R)の足首関節部124に設けられたトルクセンサ136を用いて、支持脚の足首関節部124のトルクを0に制御する。また、制御装置2は、右脚110R及び左脚110Lの膝関節部122を、伸展状態でロックするように制御する。つまり、制御装置2は、右脚110R及び左脚110Lの膝関節部122の関節角度が伸展状態に対応する角度(例えば0)となるように、膝関節部122のモータ140を制御する。さらに、制御装置2は、遊脚(図3の例では左脚110L)の足裏センサ118を用いて、遊脚の着地を検出する。このようにして、ロボットシステム1は、コンパス型モデルを模擬することができる。
【0036】
図4は、実施の形態1にかかるロボット100をコンパス型モデルに適用した例を説明するための図で、コンパス型ロボットを示す模式図である。図4で例示するロボット(2足歩行ロボット)100は、関節150と、支持脚リンク151と、遊脚リンク152とから構成されるコンパス型モデルにモデル化されている。ここで、関節150は、胴体102及び股関節部120に対応する。また、支持脚リンク151は、右脚110R及び左脚110Lのうちの支持脚に対応する。また、遊脚リンク152は、右脚110R及び左脚110Lのうちの遊脚に対応する。
【0037】
関節150の質量をm0とする。また、図4の矢印で示すように、関節150の周りに、制御入力値として入力トルクuが入力される。ここで、支持脚リンク151及び遊脚リンク152の物理的性質は、互いに同じであるとする。支持脚リンク151及び遊脚リンク152の長さを、lとする。また、支持脚リンク151及び遊脚リンク152の質量を、mとする。関節150から各リンクの重心(重心151m及び重心152m)までの長さを、dとする。支持脚リンク151及び遊脚リンク152の重心(重心151m及び重心152m)周りの慣性モーメントを、Iとする。
【0038】
また、鉛直方向に対する支持脚リンク151の角度をθ1とし、鉛直方向に対する遊脚リンク152の角度をθ2とする。但し、図4において時計回り(各リンクの下端を中心に関節150が前方に回る方向)を正とする。したがって、図4の状態では、θ2<0である。
【0039】
非線形モデル予測制御部14は、図1のロボット100で例示でき且つ図4で表されるような2足歩行ロボット100を最も単純化したモデル(コンパス型モデル)に対し、制御を行うことになる。この制御は、非線形モデル予測制御を用いた実時間での動的歩行制御である。
【0040】
図5は、コンパス型ロボットの片脚支持期と両脚支持期の2つの状態を示す模式図である。図4に示すロボット100の運動では、図5に示すロボット100-1,100-2のようにロボットが2つの状態をとる。ロボット100-1で示す1つの状態は、片脚が地面90に着きもう一方の脚が地面90から離れている状態(片脚支持期)である。ロボット100-2で示すもう1つの状態は、両脚が地面90に着いている状態(両脚支持期)である。以下では、このような片脚支持期に地面90に着いている脚を支持脚、その片脚支持期に地面90に着いていない脚を遊脚と称する。
【0041】
また、歩行動作について次の4つの仮定を置く。
・遊脚と地面90との衝突は完全非弾性衝突とする。すなわち、地面90と衝突した脚が跳ね返ることはない。
・衝突の直後に、それまで支持脚だった脚は相互作用無しで地面90から離れる。
・遊脚と地面90との衝突は一瞬とする。すなわち、両脚支持期は一瞬とする。
・衝突の撃力によりロボットの速度は瞬間的に変わるが、座標は瞬間的には変わらないとものする。
【0042】
これらの仮定により、ロボットの歩行動作におけるダイナミクスは、片脚支持期の運動という連続変化、遊脚と地面90との衝突という不連続変化、という2つの事象に分けることができる。次に、これらの仮定に基づき、2つの方程式を導出する。
【0043】
まず片脚支持期の運動方程式は、一般化座標qを
【数1】
ととると、ラグランジュの運動方程式が、
【数2】
と得られる。
【0044】
ここで、τ(u)はジョイント部に対する制御入カトルク、M(q)は慣性行列、H(q,q(ドット))は重力とコリオリの力を表す項であり、それぞれ次のような運動方程式で示される通りである。
【数3】
【0045】
これより、ロボットの運動方程式及び状態空間ベクトルxを
【数4】
とすると、制御に用いるための状態方程式が
【数5】
と得られる。
【0046】
なお、ここで説明するコンパス型モデルでは、歩行の拘束条件として、ZMP(zero moment point)は考慮されないものとする。
【0047】
次に、衝突の式を導出する。簡単のため、本実施の形態では衝突後にθ=θという座標の取り直しを行う(但しこの際物理的な意味は一切不変である)。衝突の際に物理的な座標は変わらないという仮定から、衝突直前の座標をq=[θ θ Τ、直後の座標をq=[θ θ Τと置き、正方行列を次式のI(バー)で置く。
【数6】
【0048】
すると、次式が成り立つ。
【数7】
【0049】
それぞれ次式で表される衝突直前の速度、衝突直後の速度
【数8】
については、遊脚についての角運動量保存則から次式が成り立つ。
【0050】
【数9】
【0051】
但し、Q、Qは下式で示す通りである。
【数10】
【0052】
以上により、衝突前後のコンパス型ロボットの状態の変化は、衝突直前と直後の座標x、xを用いて
【数11】
と表すことができる。また、衝突が起きる条件としては遊脚の先端の地面90からの高さが0になること、すなわち
ψ(x)=l(cosθ-cosθ)=0 ・・・(A14)
である。
【0053】
上述の説明から分かるように、本実施の形態で例示するコンパス型歩行モデルは、図6で表されるような一般的なモデルで表すことができる。但し、f(x(t),u(t))はk歩目の時のコンパス型モデルの状態方程式、ψ(x)はk歩目の衝突の条件、γ(x)はk歩目の衝突による状態の不連続変化を表す。また、このモデルは歩行以外にもロボット等が外界との接触を行うモデル全般を表すことができる。
【0054】
[非線形モデル予測制御とC/GMRES法による実時間制御アルゴリズム]
次に、このように一般化したモデルに対して非線形モデル予測制御を適用する際の最適制御問題の定式化を予測ホライゾン上の衝突の回数ごとに導出するとともに、この非線形モデル予測制御を実時間で実行する実時間制御アルゴリズムについて説明する。
【0055】
ここでは、図6で示した歩行動作を一般化したモデルに対して非線形モデル予測制御を適用する手法を説明する。非線形モデル予測制御(Nonlinear model predictive control;以下NMPC)は、制御対象システムのモデルと、システムの現時刻tの状態に基づき制御される。ここでのモデルは、本実施の形態で言えば状態方程式x(ドット)=fk(x,u)と衝突の式x+=γk(x-)となる。具体的には、NMPCは、上記モデルと現時刻tの状態に基づき、現時刻tから未来t+Tまでのシステムの挙動が最適になるような制御入力uOPT(τ)(t≦τ≦t+Τ)を求める制御則である。また、NMPCは、実際のシステムへの制御入力u(t)を、得られた最適制御入力の初期値、すなわちu(t)=uopt(τ)として与える制御則である。
【0056】
*最適性条件の導出*
ここで、システムが衝突のような不連続現象を含む際は、それに応じた最適性条件を導出する必要がある。そこで、ここでは、ホライゾン上での衝突回数に応じた最適性条件を導出する。
【0057】
図6のような状態方程式の切り替えを持つシステムにおいて、状態x∈Rが状態方程式がf(x,u)に支配されている時、状態xはサブシステムkに支配され、サブシステムkがアクティブであると記述する。
【0058】
すなわち、図6のモデルは、サブシステムkがアクティブな時、状態x∈R
【数12】
に従い、ある条件ψ(x)∈Rについて
ψ(x(t-))=0 ・・・(A16)
を満たすことで、状態ジャンプ(状態の不連続変化)
x(t+)=γ(x(t-)) ・・・(A17)
が起きる。
【0059】
また、アクティブなサブシステムは、サブシステムkからサブシステムk+1にスイッチし、状態は
【数13】
に支配される。
【0060】
このモデルをNMPCによって制御する際には、最適性条件、最適制御の必要条件を導出し、それを数値的に解く必要がある。一方、システムが衝突のような不連続事象を含む際はホライゾン上の衝突の数に応じて最適制御の必要条件が変わってくる。したがって、ここでは次の3つの場面、(場面1)ホライゾン上で衝突が起きない時、(場面2)ホライゾン上で衝突が1回起きる時、(場面3)ホライゾン上で衝突が複数回起きる時、についてそれぞれ最適性条件を導出する。
【0061】
つまり、上述のように、非線形モデル予測制御部14は周囲物との衝突が起こり得ることを前提とした非線形制御モデルの最適化問題の演算を行うが、その際、これらの場面に応じて演算を行うことになる。具体的には次の(場面1)~(場面3)に説明するように、衝突が無い場合から複数回発生する場合(総じて、衝突が起こりえる場合)それぞれにおいて最適化問題の演算を行う。
【0062】
(場面1)ホライゾン上で衝突が起きない時
ホライゾン上で衝突が起きない時、NMPCではシステムのモデル(A15)とシステムの現時刻の状態x(t)に基づき、評価関数
【数14】
が最小になるようなホライゾン上の最適制御入力uOPT(τ)(t≦τ≦t+Τ)を求める。そして、NMPCでは、実際のシステムヘの制御入力をu(t)=uOPT(t)として与える。
【0063】
但し、Lはサブシステムkに割り当てられたステージコスト関数、φはサブシステムkに割り当てられた終端コスト以降では変数τ(0≦τ≦Τ)を評価区間上の時間パラメータとして扱い、tは定数パラメータとして扱う。また、x(τ;t)、u(τ;t)をそれぞれx(t+τ)、u(t+τ)に一致するものとして扱う。
【0064】
このとき、NMPCの最適制御問題は
【数15】
のもとで、評価関数
【数16】
を最小にするような最適制御入力u(τ;t)(0≦τ≦Τ)を求める問題となる。
【0065】
また、実際のシステムヘの制御入力は、
u(t)=u(0;t) ・・・(A23)
として与えられる。
【0066】
次に、この非線形最適制御問題を数値的に解くために最適制御問題を離散化して扱う。ホライゾンTをN分割すると、解くべき最適制御問題は、
(t)=x(t) ・・・(A24)
i+1 (t)=xi (t)+f(xi (t),ui (t))Δτ,
i=0,・・・,N-1
・・・(A25)
のもとで、評価関数
【数17】
を最小にするような制御入力ui (t)、i=0,・・・,N-1を求める問題になる。但し、Δτ=Τ/Nであり、xi (t)、ui (t)はそれぞれxi (iΔτ;t)、ui (iΔτ;t)に相当する値である。
【0067】
この問題に対して停留条件、最適性条件を導出すると、
【数18】
が得られる。但し、H(x,λ,u)はサブシステムkに対するハミルトニアン、
(x,u,λ)=L(x,u)+λ(x,u) ・・・(A30)
である。
【0068】
このとき、最適制御問題は、(A24)-(A29)を満たすような未知量x (t),・・・,x (t)、u (t),・・・,uN-1 (t)、λ (t),・・・,λ (t)を求める問題となる。もしu (t),・・・,uN-1 (t)を知っていればx (t),・・・,x (t)、λ (t),・・・,λ (t)は(A24)-(A28)から計算することができる。
【0069】
そこで、本質的な未知量としてU(t)を
【数19】
として定義する。
【0070】
このとき、U(t)についての最適性条件で構成されたベクトルは
【数20】
となる。
【0071】
(場面2)ホライゾン上で衝突が1回起きる時
次に、ホライゾン上で衝突が1回起きる場合について最適性条件を導出する。ホライゾン上の時刻τで衝突が起きるとすると、状態について、
【数21】
と予測することができる。
【0072】
このとき、最適制御問題は、これらの状態についての方程式のもとで
【数22】
を最小にするような最適制御入力u(τ;t)(0≦τ≦Τ)を求める問題となる。
【0073】
次に、ホライゾン上で衝突が起きない場合と同様にホライゾン上を離散化して最適性条件を求める。まず、衝突が起きるステップi
Δτ≦τ≦(i+1)Δτ ・・・(A38)
として定義すると、状態の予測は
【数23】
として行うことができる。ここで、Δτk1=τ-iΔτ、Δτk2=Δτ-Δτk1である。
【0074】
また、ホライゾン上の状態の初期値はこれまでと同様に
(t)=x(t) ・・・(A45)
として与えられる。評価関数Jは
【数24】
と離散化される。
【0075】
このとき最適制御問題は、(A39)-(A45)のもとで評価関数(A46)を最小にするような制御入力の系列ui (t)(i=0,・・・,N-1)、u(τ+;t)を求める制御入力を求める問題に帰着される。この問題に対して最適性条件を導出するために、衝突条件(A41)に対してラグランジュ乗数ν∈Rを導入する。このとき、最適性条件は次のように得られる。
【0076】
【数25】
【0077】
【数26】
【0078】
このとき、最適制御問題は、(A39)-(A45)、(A48)-(A57)を満たすようなx (t),・・・,xik (t),x(τ-;t),x(τ+;t),xik+1 (t),・・・,x (t),λ (t),・・・,λik (t),λ(τ-;t),λ(τ+;t),λik (t),・・・,λ (t),u (t),・・・,uik (t),u(τ+;t),uik+1 (t),・・・,uN-1 (t),ν (t),τを求める問題に帰着される。
【0079】
これらの未知量のうち、本質的な未知量を次のように定義する。
【数27】
【0080】
但し、U(t)を次のように定義する。
【数28】
【0081】
このような定義により、このU(t)が分かっていればx (t),・・・,xik (t),x(τ-;t),x(τ+;t),xik+1 (t),・・・,x (t),λ (t),・・・,λik (t),・・・,λ(τ-;t),λ(τ+;t),λik (t),・・・,λ (t)を(A39)-(A45)、(A47)-(A52)から求めることができる。
【0082】
このときU(t)が満たすべき条件は、
【数29】
と得られる。
【0083】
但しF(U(t),t)は次式で示される。
【数30】
【0084】
(場面3)ホライゾン上で衝突が複数回起きる時
ホライゾンで複数回衝突が起きる場合の最適性条件は、衝突の回数が1回の場合の最適性条件を拡張することで求めることができる。k,・・・,k+l回目の衝突がホライゾン上の時刻τ,・・・,τk+lで起きるとする。このとき、(A38)で求めた衝突が起きるステップi,・・・,ik+lについて、(A40)-(A43)からx(τ-;t),x(τ+;t),xik+1 (t)を、k=k,・・・,k+lについて求めることができる。λについても同様に、(A49)-(A51)からλ(τ-;t),λ(τ+;t),λik (t)を各i,・・・,ik+lについて求めることができる。i,・・・,ik+l以外の全てのiについては、xとλはそれぞれ(A39)、(A52)から計算することができる。
【0085】
このとき本質的な未知量は、
【数31】
として定義することができる。
【0086】
このときU(t)が満たすべき条件は次のようになる。
【数32】
【0087】
ここで、Fは(A61)であり、Fの要素の各iステップ目については、
【数33】
の代わりに
【数34】
を代用する。
【0088】
*非線形モデル予測制御の実行アルゴリズム*
非線形モデル予測制御を行うためには、上述のように求めた最適性条件を数値的に解く必要がある。本実施の形態では短いサンプリング周期内でもロボットのような複雑なシステムの制御を目標とするため、NMPCの高速数値計算アルゴリズムであるC/GMRES法を用いる。
【0089】
**C/GMRES法**
C/GMRES法は連続変形法とGMRES法を組み合わせた手法である。C/GMRES法では、非線形方程式F(U(t),x(t),t)=0を直接解いてU(t)を直接求めるのではない。C/GMRES法では、U(t)の時間についての連続性を前提として、各サンプリング時刻で最適なU(t)を求め、
U(t+Δt)=U(t)+U(t)Δt ・・・(A64)
として更新する。但し、Δtはサンプリング周期である。
【0090】
C/GMRES法ではU(t)を求めるために連続変形法を用いてF=0を
【数35】
として変形する。ここで、ζ>0は安定化パラメータである。この方程式は
【数36】
についての線形方程式としてみなすことができる。そこで、この方程式を線形方程式の高速数値解法であるGMRES法を用いて解く。以上がC/GMRES法の簡単な説明である。
【0091】
**C/GMRES法の衝突現象への拡張**
C/GMRES法はU(t)の連続性が前提にされている。その一方で、C/GMRES法は、衝突現象を含むシステムに対する問題は不連続現象が伴い、この(A64)による更新では解の連続性の前提が成り立たなくなる場合がある。この連続性を成り立たせるためには、ホライゾン上でのあるサブシステムkに割り当てられた制御入力が、同様にあるサブシステムに割り当てられた制御入力によって更新される必要がある。
【0092】
すなわち、ホライゾン上の任意の衝突kについて、τ(t+Δt)<iΔτのとき、τ(t+Δt)/Δτ<i≦iである各iについてu (t+Δt)は
【数37】
として更新する。
【0093】
同様に、(i+1)Δτ<τ(t+Δt)のとき、i<i<τ(t+Δt)/Δτを満たす各iについて、u (t+Δt)を
【数38】
として更新する。
【0094】
もう1つの修正点としてヤコビ行列とベクトルの前進差分近似がある。式(A65)のヤコビ行列は、あるベクトルW∈RmN、w∈R、ω∈R、十分小さな実数h>0を用いて、
【数39】
として前進差分近似される。
【0095】
この差分近似も時刻tとt+hにおける予測ホライゾン上のサブシステムについての連続性を前提としている。その一方で、
Δτ≦τ(t)<iΔτ+h ・・・(A69)
のとき、この連続性が成り立たなくなる。
【0096】
そこで、そのような場合は
【数40】
として後退差分近似を行う。但し、hを十分小さくしておけば、(A69)はほとんど起こらない。
【0097】
**スイッチによって追加される変数の初期化アルゴリズム**
次に、衝突によって追加される変数の初期化アルゴリズムについて説明する。
もし時刻t-Δtのホライゾン上にスイッチkが存在しないが、時刻tには存在する場合、すなわちスイッチkが時刻tにホライゾン上に現れる場合、次のようになる。すなわち、このような場合、時刻t-Δtのときの最適制御問題には含まれていなかった新たな変数u(τ+;t)、ν 、τが時刻tに追加されることになる。このとき新たな変数u(τ+;t)、ν 、τは前の時刻で求めてはいないため、C/GMRES法によりこれらを求めることができない。また、スイッチkがN-1ステップ以前のiで起きたとき、それまでサブシステムkについて最適に求められたuik (t),・・・,uN-1 (t)をサブシステムk+1について最適に求め直す必要がある。但し、サンプリング周期を十分小さくしている限り、ほとんどのケースでは、i=N-1であり、このとき初期化する変数はu(τ+;t)、ν 、τだけでよい。このとき、本来であればホライゾン全体についてニュートン法などを用いてもう1度最適制御問題を解く必要があるが、計算時間が膨大になってしまうという問題点がある。そこで、少ない計算時間で部分的に最適な値を求めることでこれらの値を初期化する手法を採用するとよい。以下に、そのような手法について説明する。
【0098】
まず、ホライゾン上で衝突条件ψ=0が満たされたことを観測したとする。すなわち、あるステップで初めて
【数41】
を観測したときを考える。このとき、部分的に初期化を行うためにまずiステップ目までの制御入力、状態の系列は最適であると仮定する。すなわち、iステップ目以降での最適な変数を求める問題を定義し解くことでこの追加された変数の初期化を行う。以降では、i=N-1のとき、i<N-1の2通りに分けて記述を行う。
【0099】
=N-1のとき:
このとき、もしτ、u(τ+;t)、ν が分かっていれば、既に計算されたxN-1 (t)、uN-1 (t)を用いて、
【数42】
が計算できる。
【0100】
ここで解く最適制御問題は、(A72)-(A75)のもとで、N-1ステップ以降の評価関数
【数43】
を最小にするようなu(τ+;t)、ν 、τを求める問題である。
【0101】
この問題に対して最適性条件を導出すると、
【数44】
が得られる。
【0102】
この初期化の実行は以下のように行われる。ここではホライゾン上で初めてψ(x (t))<0となるのがi=Nである場合を考えているため、まずτをψ(xN-1 (t))とψ(x (t))から
【数45】
として与える。次に、u(τ+;t)とν (t)とについて、ニュートン法を行うための適当な初期推定解を与える。
【0103】
そして求めたい未知量を
【数46】
とする。
【0104】
また、Uk,init(t)が満たすべき条件を
【数47】
とする。
【0105】
上述した求めたい未知量及びUk,init(t)が満たすべき条件に対して、前進差分ニュートンGMRES法による反復を行う。次のアルゴリズム1では、このUk,init(t)についてこの初期化をまとめている。
【0106】
[アルゴリズム1:Uk,init(t)の初期化(i=N-1のとき)]
1:τを(A98)により初期化する。
2:u(τ+;t)とν (t)に適当な初期推定解を代入する。
3:x(τ-;t),x(τ+;t),x (t),λ (t),λ(τ+;t)を求め、Fk,init(Uk,init(t),t)を計算する。
4:while |Fk,init(Uk,init(t),t)|<τinit or i<imax do
5:前進差分Newton-GMRES法をFk,init(Uk,init(t),t)に用いることでΔUk,initを求める。
6:Uk,init(t)をUk,init(t)←Uk,init(t)+ΔUk,initと更新する。
7:x(τ-;t),x(τ+;t),x (t),λ (t),λ(τ+;t)を求め、Fk,init(Uk,init(t),t)を計算する。
8:end while
9:Uk,init(t)の初期化終わり。
【0107】
<N-1のとき:
このとき解くべき最適制御問題とは、
【数48】
のもとで、
【数49】
を最小にするようなu(τ+;t)、uik+1 (t),・・・,uN-1 (t)、ν 、τを求める問題である。
【0108】
この問題に対して最適性条件を導出すると、次のようになる。
【数50】
【0109】
=N-1の場合と同様に、xik (t),uik (t)がこの初期化問題の境界条件として与えられる。この初期化の実行はi=N-1のときと同様である。まず、τをψ(xik (t))とψ(xik+1 (t))から
【数51】
として与える。
【0110】
次に、u(τ+;t)とν (t)に適当な初期推定解を与える。uik+1 (t),・・・,uN-1 (t)については前のサンプリング時刻で求めた値をそのままNewton-GMRES法の初期推定解として用いる。求める未知量を
【数52】
とする。
【0111】
k,init(t)が満たすべき条件は
【数53】
となる。
【0112】
上述した求めたい未知量及びUk,init(t)が満たすべき条件に対して、前進差分ニュートンGMRES法による反復を行う。次のアルゴリズム2では、このUk,init(t)についてこの初期化をまとめている。
【0113】
[アルゴリズム2:Uk,init(t)の初期化(i<N-1のとき)]
1:τを(A98)により初期化する。
2:u(τ+;t)とν (t)に適当な初期推定解を代入する。
3:x(τ-;t),x(τ+;t),xik+1 (t),・・・,x (t),λ (t),・・・,λik+2 (t),λ(τ+;t)を求め、Fk,initを計算する。
4:while |Fk,init(U(t),x(t),t)|<τinit or i<imax do
5:前進差分Newton-GMRES法をFk,init(U(t),x(t),t)に用いることでΔUk,initを求める。
6:Uk,init(t)をUk,init(t)←Uk,init(t)+ΔUk,initと更新する。
7:x(τ-;t),x(τ+;t),xik+1 (t),・・・,x (t),λ (t),・・・,λik+2 (t),λ(τ+;t)を求め、Fk,initを計算する。
8:end while
9:Uk,init(t)の初期化終わり。
【0114】
[数値シミュレーション]
次に、上述した手法を用いて具体的にコンパス型モデルの歩行制御の数値シミュレーションを実行した結果を示す。以下に説明するシミュレーションは、本実施の形態にかかる非線形モデル予測制御のアルゴリズムを、図4で例示したコンパス型モデルにかかるロボット100に適用したものである。
【0115】
*評価関数*
まず、コンパス型歩行制御に用いる際の評価関数を設定する。継続的な歩行制御を実現するために、振り足を前に出す動作を評価関数として加えることを考える。すなわち、遊脚を前に出す速度
【数54】
を、適当な目標値νrefに近づけるような項
【数55】
を評価関数に加える。また、その際に遊脚が地面から高く上がりすぎて非効率な穂動きをしないようq(θ+θも加える。最後に、使用エネルギーの少ない自然な歩行を実現するため、ruを加える。
【0116】
以上から、評価関数は、
【数56】
となる。また、本実施の形態では、終端コストについてφ(x)=0としている。
【0117】
*シミュレーション条件*
シミュレーションに用いたコンパス型モデルの物理パラメータは、m=m=1.0[kg]、l=1.0[m]、d=0.5[m]、I=0.08333[kg・m]として与える。
【0118】
シミュレーション条件としては、(A6)に基づく状態の初期値はx(0)=[-0.14 0.14 0.50 0.58]、シミュレーション中のモデルの状態の更新及びサンプリング周期はΔt=0.001[s]とする。評価関数内のパラメータは、q=q=1.0、r=0.5、νref=0.5[rad/s]とする。ホライゾンの長さはT(t)=T(1-e-αt)、α=1.0、T=0.8[s]とし、評価区間の分割数は、N=80とする。また、差分近似(A68)、(A70)の差分は、h=1.0×10-8として与える。
【0119】
*シミュレーション結果*
図7図12は、本実施の形態にかかる非線形モデル予測制御の例として、コンパス型モデルの歩行制御をシミュレーションした結果を示す図である。図13はその歩行制御におけるホライゾン上での予測衝突時刻のグラフを示す図で、図14図13の一部を拡大したグラフを示す図である。
【0120】
図7ではθの変化を、図8ではθの変化を、図9ではθ(ドット)の変化を、図10ではθ(ドット)の変化を、図11ではuの変化を、図12では||F||の変化を、それぞれ示している。
【0121】
図12における||F||(エラーノルム)は、(A32),(A61),(A63)で示す各場面におけるF(U(t),x(t),t)の大きさ、すなわち最適解からの現在の解の誤差を表す。||F||が他の点と比べ大きくなっている点がある。これは、θ、θが垂直になっている時刻、すなわち実際の制御対象が地面と衝突を起こしている時刻と一致している。よって、これは衝突によってホライゾン上の最適性条件(場面1~3について説明した最適性条件)が変わったために生じたと考えられる。その点を考慮すると、図7図12で示すこのシミュレーション結果は、制御入力が滑らかな挙動となっているのが分かる。
【0122】
図13においては、t=0になっている時刻では、評価区間上に衝突を検出していないことを表している。また、このシミュレーションで設定した評価区間長さでは、ホライゾン上において1回の衝突のみが起こっていた。図14では、各時刻でホライゾン上の衝突時刻が最適化されていることが分かる。また、サンプリング周期を1[ms]として行った本シミュレーションで、NMPCの1サンプリングあたりの更新時刻は0.8[ms]前後であり、実時間での歩行制御に成功しているのが分かる。
【0123】
[本実施の形態の特徴について]
上述したように、本実施の形態では、その主たる特徴の一つとして、上記予測手段が制御対象に対して、各時刻において当該時刻から所定期間後までにおける当該衝突の回数を予測する。
【0124】
このような未来の衝突回数の予測について簡単に補足説明する。この予測は制御周期ごとに実行され、上述のような最適制御では求解の過程で未来(予測区間内)の各時刻における状態も予測されることになる。よって、今回の最適制御を実行する前に、前回の最適制御で予測された未来の状態に対して例えば(A33)~(A36)を適用することで、未来の衝突回数を予測することができる。また、上述のようにこの予測は制御周期ごとに実行されるため、予測区間(ホライゾン)の長さを一定とすると、歩行速度が上がる程、予測される衝突回数が増え、減速する程、予測される衝突回数が減少することになる。
【0125】
そして、上述したように、本実施の形態では、上記演算手段は、周囲物との衝突が起こり得ることを前提とした非線形制御モデルの最適化問題の演算を、予測した衝突回数に応じて(予測した衝突回数ごとに区別して)実行する。この演算について簡単に補足説明する。
【0126】
本実施の形態では、最適制御問題の中に衝突時刻を組み込んでいる。すなわち、本実施の形態では、「最適性条件の導出」において場面1~3ごとの制御について例示したように、衝突回数の予測に基づいて上記場面1~3のいずれを用いるか(どの最適制御の必要条件を用いるか)により最適制御問題の切り替えを行っている。なお、衝突時刻を最適化問題に組み込まない、即ち衝突時刻を変更しない場合は、所定の衝突時刻に衝突が起こるように定式化を行い、通常通りC/GMRES法を用いて制御を行うことができる。
【0127】
但し、単純に衝突時刻も最適制御問題に組み込むと、衝突回数によって解くべき最適制御問題が変化するため、前回の求解結果を用いたC/GMRES法のような手法では前回の求解結果を得ることが困難となる場合がある。これは、衝突回数が前回と今回の制御周期で異なっている場合には、前回解いた最適制御問題が今回解こうとしている最適制御問題と異なるためである。具体的には、衝突回数が変わると最適制御問題自体が変わるため、解ベクトルも異なった形になる。例えば衝突条件に対するラグランジュ定数vと衝突時間τなど、前回の最適化問題では解ベクトルに含まれていなかった変数が今回の最適化問題には含まれるようになる。
【0128】
したがって、本実施の形態として説明したように、最適性条件を切り替えるだけでなく、この切り替えに伴って新たに加わる制御の変数を初期化することが望ましい。この初期化は、前回の求解結果を基にして解ベクトルを初期化するものとなっている。「スイッチによって追加される変数の初期化アルゴリズム」において例示したように、この切り替えに伴って新たに加わる制御の変数とは例えばu(τ+;t)、ν 、τを指す。
【0129】
このように、本実施の形態では、衝突回数の予測に基づいて最適制御問題を演算し、前回解いた最適制御問題の解を利用して、今回の最適制御問題の初期値を適切に設定することが好ましい。
【0130】
以上に説明したように、本実施の形態は、各時刻において所定期間後までに制御対象が衝突する回数を予測し、その予測した衝突回数に応じて非線形制御モデルの最適化問題を演算している。すなわち、本実施の形態では、繰り返し衝突が発生することを前提とする場合において、例えば同じ期間内に衝突が発生する回数ごとに変えて非線形制御モデルを最適化する。
【0131】
よって、本実施の形態によれば、個々の衝突におけるタイミングの予測と実際のずれが小さくなる確率が上がり、また、統計的に見るほど予測と実際のずれはより無くなっていく。これにより、本実施の形態にかかる非線形モデル予測制御装置は、将来の実際の衝突タイミングに制御結果がより良く合う高精度な予測制御を実行することができる。
【0132】
換言すれば、本実施の形態では、最適制御の予測区間上での衝突の回数に応じた定式化を行い、動作の制御に関する制御入力と衝突時刻を同時に最適化しており、それにより、状態に応じて適応的且つ最適な動作が生成可能となる。このような最適制御手法は、任意時刻での切り替えに対応した形で最適制御問題を定式化するとともに、切り替え時刻も制御変数に含めて制御入力と同時に最適化することにより、切替タイミングと予測区間の制御入力を同時最適化する手法と言える。
【0133】
よって、本実施の形態によれば、状態に応じて適切な切り替えタイミングと制御入力を発生できるため、制御対象のより効率的で安定な動作を実現できる。例えば、切り替えのタイミングを予め決めておく場合には、制御の最適性を満たすことは困難となり、どのような状態であっても決められた時刻に衝突を行おうとするため、不自然な動作になったり、電力が大きくなるような入力が必要となったりしてしまう。これに対し、本実施の形態では適切な切り替えタイミングを発生させることができるため制御の最適性を満たすことができる。例えば、歩行動作を例に考えると、外乱が生じて定常的な歩行動作から状態が外れた場合、動作軌道だけでなく、次の足が着地するタイミングも変更することで無理なく(より少ないトルクで)定常状態に戻すことができる。
【0134】
(変形例)
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、ロボット100の片方の脚は、股関節部120、膝関節部122及び足首関節部124を有するとしたが、このような構成に限られない。ロボット100の脚は、3個よりも少ない数の関節部を有してもよいし、3個よりも多い数の関節部を有してもよい。この場合、状態ベクトル及び関節トルクベクトル(制御入力値)は、関節部の数に応じて、適宜、変更され得る。そして、状態方程式等の関数も、関節部の数に応じて、適宜、変更され得る。
【0135】
また、上述した実施の形態においては、非線形システムが二足歩行ロボットである例について説明した。しかし、本実施の形態にかかる非線形モデル予測制御のアルゴリズムは、二足歩行ロボット以外の非線形システムについても適用可能であり、またコンパス型モデルでなくても適用可能である。
【0136】
つまり、本実施の形態にかかる非線形システムの制御方法は、以下に例示するような、繰り返し周囲物との衝突が発生することを前提とする任意の非線形システムに対して、適用可能である。なお、一見して周囲物との衝突が繰り返し起こりそうもないような制御対象であっても、周囲物との衝突が繰り返し起こり得るような制御を意図的に行うことはあり得るため、本実施の形態は、そのような制御を行う場合にも有益となる。
【0137】
例えば、ロボットに設けたロボットハンド又はロボットアーム等を制御対象とすることもできる。この例における衝突は、ロボットハンド又はロボットアームが、周辺環境又は操作対象等の物体を押圧するとき、物体を把持し又は離すとき、球体等の物体を叩く又は打ち返すとき等に、発生し得る。なお、球体等の物体を打ち返す非線形システムの例として、例えば、卓球ロボットがある。
【0138】
また、例えば、本実施の形態での制御対象は、腕及び脚を同時に床等に着地して移動可能な人型ロボット又は動物型ロボット等であってもよい。この例における衝突は、人型ロボット又は動物型ロボットが、腕と脚とを同時に、壁、床又はテーブル等に接触して移動するとき、又は、人型ロボット又は動物型ロボットが、梯子又は壁等を登るとき等に、発生し得る。
【0139】
また、例えば、本実施の形態での制御対象は、ドローン等の無人航空機などであってもよい。この例における衝突は、無人航空機が、操作対象又は検査対象の物体に接触するとき又はその物体から離れるとき、輸送対象又は捕獲対象の物体を把持し又は離すとき等に、発生し得る。
【0140】
また、例えば、本実施の形態での制御対象は、加工機械の工具等であってもよい。この例における衝突は、加工機械の工具が、加工対象等の物体に接触し又は離れるとき等に、発生し得る。
【0141】
また、例えば、本実施の形態での制御対象は、自動車のトランスミッション等であってもよい。この例における衝突は、トランスミッションのクラッチが、接触状態(動力の伝達状態)となったとき又は離間状態(動力の遮断状態)なったとき等に、発生し得る。
【0142】
また、例えば、本実施の形態での制御対象は、飛行機等であってもよい。この例における衝突は、飛行機の離着陸において、接地の前後を含めて運動を最適化するように制御するとき等に、発生し得る。具体的には、所望の経路で着陸しつつ、着陸後すみやかに減速するようにエンジン及び機体を制御するような場合である。
【0143】
また、例えば、本実施の形態での制御対象は、列車等であってもよい。この例における衝突は、列車の連結において、連結の前後を含めて運動を最適化するように制御するとき等に、発生し得る。具体的には、連結時の衝撃及び駆動モータの負荷を軽減するようにモータを制御するような場合である。
【0144】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0145】
1・・・ロボットシステム、2・・・制御装置、12・・・状態取得部、14・・・非線形モデル予測制御部、16・・・サーボ制御部、100,100-1,100-2・・・ロボット、102・・・胴体、110L・・・左脚、110R・・・右脚、112・・・上腿部、114・・・下腿部、116・・・足部、118・・・足裏センサ、120・・・股関節部、122・・・膝関節部、124・・・足首関節部、130・・・角度センサ、136・・・トルクセンサ、140・・・モータ、150・・・関節、151・・・支持脚リンク、152・・・遊脚リンク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14