(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024076330
(43)【公開日】2024-06-05
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
B25J 5/00 20060101AFI20240529BHJP
G06N 20/00 20190101ALN20240529BHJP
【FI】
B25J5/00 F
G06N20/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023125874
(22)【出願日】2023-08-01
(31)【優先権主張番号】P 2022187489
(32)【優先日】2022-11-24
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(71)【出願人】
【識別番号】504143441
【氏名又は名称】国立大学法人 奈良先端科学技術大学院大学
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】郭 政佑
(72)【発明者】
【氏名】松原 崇充
(72)【発明者】
【氏名】進 寛史
(72)【発明者】
【氏名】上岡 拓未
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS24
3C707CS08
3C707JS03
3C707LS20
3C707LW07
3C707LW08
3C707LW12
3C707WA13
3C707WK03
(57)【要約】
【課題】より簡素でコンパクトなダイナミクスモデルを用いてロボットの最適な行動を決定することができる情報処理装置、情報処理方法、及びプログラムを提供する。
【解決手段】実施形態に係る情報処理装置は、対象物のダイナミクスに関する複数のエネルギーを含む前記対象物の状態を取得する取得部と、モデル予測制御計画を用いて、前記ダイナミクスがモデル化されたダイナミクスモデルと前記取得された状態とに基づいて、前記対象物が目標の状態となるために前記対象物にとらせるべき行動を決定する演算部と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
対象物のダイナミクスに関する複数のエネルギーを含む前記対象物の状態を取得する取得部と、
モデル予測制御計画を用いて、前記ダイナミクスがモデル化されたダイナミクスモデルと前記取得された状態とに基づいて、前記対象物が目標の状態となるために前記対象物にとらせるべき行動を決定する演算部と、
を備える情報処理装置。
【請求項2】
前記ダイナミクスモデルは、予め想定される前記対象物の状態が互いに異なる複数のフェーズの其々に対応して存在し、かつ前記複数のフェーズ間でエネルギー保存則が成立するモデルであり、
前記演算部は、
前記複数のフェーズの中から、前記取得された状態に対応した特定フェーズを選択し、
前記特定フェーズに対応する前記ダイナミクスモデルと前記取得された状態とに基づいて、前記行動を決定する、
請求項1に記載の情報処理装置。
【請求項3】
前記ダイナミクスモデルは、エネルギー発生源の一部のエネルギーを含む、
請求項1又は2に記載の情報処理装置。
【請求項4】
前記モデル予測制御計画の目的関数は、前記ダイナミクスモデルの状態に依存する軌道である、
請求項1又は2に記載の情報処理装置。
【請求項5】
前記対象物は、2つの脚を用いてホッピングするロボットであり、
前記複数のフェーズには、前記2つの脚のいずれもが接地しておらず前記ロボットが自由落下する第1フェーズと、前記2つの脚の片方で着地する第2フェーズと、前記2つの脚の両方で着地する第3フェーズと、前記2つの脚の片方で地面を蹴りだす第4フェーズと、前記2つの脚の両方で飛び跳ねる第5フェーズと、が含まれる、
請求項1又は2に記載の情報処理装置。
【請求項6】
前記対象物には、ばねが設けられており、
前記複数のエネルギーには、少なくとも前記ばねの弾性エネルギーが含まれる、
請求項1又は2に記載の情報処理装置。
【請求項7】
コンピュータを用いた情報処理方法であって、
対象物のダイナミクスに関する複数のエネルギーを含む前記対象物の状態を取得すること、
モデル予測制御計画を用いて、前記ダイナミクスがモデル化されたダイナミクスモデルと前記取得された状態とに基づいて、前記対象物が目標の状態となるために前記対象物にとらせるべき行動を決定すること、
を含む情報処理方法。
【請求項8】
コンピュータに実行させるためのプログラムであって、
対象物のダイナミクスに関する複数のエネルギーを含む前記対象物の状態を取得すること、
モデル予測制御計画を用いて、前記ダイナミクスがモデル化されたダイナミクスモデルと前記取得された状態とに基づいて、前記対象物が目標の状態となるために前記対象物にとらせるべき行動を決定すること、
を含むプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。本願は、2022年11月24日に日本に出願された特願2022-187489号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【0002】
二足歩行ロボットは、人間環境での展開の可能性が高いため、研究者の注目を集めており、高剛性二足歩行ロボットを用いた二足歩行運動の結果がいくつか得られている。しかしながら、高剛性二足歩行ロボットが人間のように振る舞うことは難しく、特に人間の組織や筋肉が弾性的に作用する走行時やホッピング時の衝撃を処理することには適していない。そこで、SLIP(Spring Loaded Inverted Pendulum)を応用した二足歩行ロボット(SLIP-biped)が広く用いられており,その弾力性は衝撃に対する耐障害性を効果的に向上させる。SLIP-bipedの多くは、脚部に複雑なリンク機構とばねを採用し、ロボットの俊敏性と動力効率を向上させることができる。
【0003】
SLIP-bipedの運動を解析することにはいくつかの理由から困難である。
1)SLIP-bipedのばね付きリンク機構は、SLIPとは質量分布が異なり、ばねは衝撃に対して非線形かつ非吸収性の挙動を示す。
2)浮遊型二足歩行ロボットのダイナミクスは、運動中の接触状態に大きく依存する。
3)SLIPの制御のための解析的な動力学モデルの構築は困難である。
【0004】
強化学習(Reinforcement Learning:RL)は、ロボットのダイナミクスをモデル化しないモデルフリーRLとして、シミュレーションや実機でSLIP-Bipedの運動を実現することができる。しかしながら、強化学習のようにダイナミクスモデルを用いないモデルフリーなアプローチは、タスクに特化し、膨大な学習サイクルを必要とする傾向がある。
【0005】
これに対して、ロボットのダイナミクスをモデル化するモデルベースRL(MBRL)は、複数の制御目的に活用できるデータ駆動型のダイナミクスを捉え、より汎用的な手法である。モデル予測制御(MPC)を用いたMBRLは、ロボットのダイナミクスを把握し、オンライン/オフラインの制御計画を行うロボットアプリケーションに広く実装することができる。一般的なダイナミクスモデリング手法として、ガウス過程(GP)ベースのダイナミクスモデルは、高いサンプル効率を実証している(例えば特許文献1参照)。
【0006】
一方、ニューラルネットワークベースのダイナミクスモデルは、複雑なダイナミクスをモデル化するのに優れている。両手法とも複雑なロボットのダイナミクスをモデル化することができるが,ニューラルネットワークベースモデルは膨大なサンプルを必要とし、ガウス過程ベースモデルは高い計算負荷により実時間計画能力に限界がある。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
従来の手法では、複雑で大規模なダイナミクスモデルであったため、SLIP-bipedのようなロボットの実装の実現性が低かった。この結果、ロボットに最適な行動をとらせることができない場合があった。
【0009】
本発明は、このような事情を考慮してなされたものであり、より簡素でコンパクトなダイナミクスモデルを用いてロボットの最適な行動を決定することができる情報処理装置、情報処理方法、及びプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【0010】
本発明に係る情報処理装置、情報処理方法、及びプログラムは以下の構成を採用した。
(1)本発明の第1の態様は、対象物のダイナミクスに関する複数のエネルギーを含む前記対象物の状態を取得する取得部と、モデル予測制御計画を用いて、前記ダイナミクスがモデル化されたダイナミクスモデルと前記取得された状態とに基づいて、前記対象物が目標の状態となるために前記対象物にとらせるべき行動を決定する演算部と、を備える情報処理装置である。
【0011】
(2)本発明の第2の態様は、第1の態様において、前記ダイナミクスモデルは、予め想定される前記対象物の状態が互いに異なる複数のフェーズの其々に対応して存在し、かつ前記複数のフェーズ間でエネルギー保存則が成立するモデルであり、前記演算部は、前記複数のフェーズの中から、前記取得された状態に対応した特定フェーズを選択し、前記特定フェーズに対応する前記ダイナミクスモデルと前記取得された状態とに基づいて、前記行動を決定するものである。
【0012】
(3)本発明の第3の態様は、第1又は第2の態様において、前記ダイナミクスモデルが、エネルギー発生源の一部のエネルギーを含むものである。
【0013】
(4)本発明の第4の態様は、第1又は第2において、前記モデル予測制御計画の目的関数が、前記ダイナミクスモデルの状態に依存する軌道であるものである。
【0014】
(5)本発明の第5の態様は、第1又は第2の態様において、前記対象物は、2つの脚を用いてホッピングするロボットであり、前記複数のフェーズには、前記2つの脚のいずれもが接地しておらず前記ロボットが自由落下する第1フェーズと、前記2つの脚の片方で着地する第2フェーズと、前記2つの脚の両方で着地する第3フェーズと、前記2つの脚の片方で飛び跳ねる第4フェーズと、前記2つの脚の両方で飛び跳ねる第5フェーズと、が含まれるものである。
【0015】
(6)本発明の第6の態様は、第1又は第2において、前記対象物には、ばねが設けられており、前記複数のエネルギーには、少なくとも前記ばねの弾性エネルギーが含まれるものである。
【0016】
(7)本発明の第7の態様は、コンピュータを用いた情報処理方法であって、対象物のダイナミクスに関する複数のエネルギーを含む前記対象物の状態を取得すること、モデル予測制御計画を用いて、前記ダイナミクスがモデル化されたダイナミクスモデルと前記取得された状態とに基づいて、前記対象物が目標の状態となるために前記対象物にとらせるべき行動を決定すること、を含む情報処理方法である。
【0017】
(8)本発明の第8の態様は、コンピュータに実行させるためのプログラムであって、対象物のダイナミクスに関する複数のエネルギーを含む前記対象物の状態を取得すること、モデル予測制御計画を用いて、前記ダイナミクスがモデル化されたダイナミクスモデルと前記取得された状態とに基づいて、前記対象物が目標の状態となるために前記対象物にとらせるべき行動を決定すること、を含むプログラムである。
【発明の効果】
【0018】
上記の態様によれば、より簡素でコンパクトなダイナミクスモデルを用いてロボットの最適な行動を決定することができる。
【図面の簡単な説明】
【0019】
【
図2】第1実施形態に係る情報処理装置100の構成の一例を表す図である。
【
図3】第1実施形態に係る二足歩行ロボット10の実機の外観図である。
【
図4】第1実施形態に係る二足歩行ロボット10のメカニズムを表す図である。
【
図5】第1実施形態に係る二足歩行ロボット10のシミュレーション結果を表す図である。
【
図6】第1実施形態に係る二足歩行ロボット10のロボット座標系を表す図である。
【
図7】第1実施形態に係る二足歩行ロボット10のパラメータを纏めたテーブルである。
【
図8】シミュレーションロボットに搭載されているセンサの一覧を示すテーブルである。
【
図9】ホッピングタスクを分解した各フェーズを模式的に表すである。
【
図10】ホッピングタスクを分解した各フェーズの説明と条件を表すテーブルである。
【
図11】第1実施形態の処理部150によって実行されるTDE2-MBRLの一連の処理の流れを表すフローチャートである。
【
図12】第1実施形態の処理部150によって実行されるTDE2-MBRLのアルゴリズムを表す図である。
【
図13】第2実施形態の歩行パラメータを説明するための図である。
【
図14】第2実施形態に係る二足歩行ロボット10の構成の一例を表す図である。
【
図15】第2実施形態に係る二足歩行ロボット10に用いられる変数(システム変数)の対応関係を表すテーブルである。
【発明を実施するための形態】
【0020】
以下、図面を参照し、本発明の情報処理装置、情報処理方法、及びプログラムの実施形態について説明する。
【0021】
(第1実施形態)
[概要]
第1実施形態では、二足歩行ロボット(「対象物」の一例)のダイナミクスモデルを、より簡素かつコンパクトにするため、2つのコンセプトが採用される。1つ目のコンセプトは、二足歩行ロボットに設けられた各ばねのダイナミクスを明示的にモデル化する代わりに、エネルギー交換のダイナミクスをモデル化することにより、ダイナミクスの次元を削減することである。エネルギー交換のダイナミクスとは、ロボットの運動エネルギー、重力エネルギー、及びばねの弾性エネルギーの間でエネルギーが流動しかつ保存されることを考慮してモデル化されたロボットのダイナミクスである。2つ目のコンセプトは、ロボットによって実行される一連のタスクをいくつかのグループに分解するタスク分解技術により、各運動フェーズにおいて、より複雑度の低いダイナミクスを個別に捕捉することである。モデル予測制御(MPC)は、各フェーズにおいて、当該フェーズに対応するダイナミクスモデルと目的関数を利用する。ダイナミクスのモデル化には、フーリエ特徴と線形ガウスモデル(LGM)で近似したGPダイナミクス(LGM-FF)を利用し、高いサンプル効率を持ちながら計算負荷を軽減することが可能である。
【0022】
[準備(Preliminaries)]
第1実施形態で提案する手法(2種類のコンセプトを採用した手法)を説明するのに先立って、まずは、その提案手法に採用されるLGM-FFと、MPC、モデルベース強化学習(MBRL)について説明する。
【0023】
[LGM-FF]
LGM-FFとは、上述したように、フーリエ特徴と線形ガウスモデル(LGM)で近似したガウス過程(GPs)ダイナミクスである。確率的GPsモデルを用いたMBRLは高いサンプル効率を示すものの、MPCの制御頻度は学習サンプルサイズに反比例することが知られている。従って、第1実施形態では、LGM-FFを用いて、学習サンプルサイズと制御頻度のトレードオフを緩和する。
【0024】
GPsダイナミカルシステムは、xt+1=f(xt,ut)+εのようにシステムの真の状態遷移を表すことができる。ここで、xt∈X⊂RDは、ロボットの状態を表し、ut∈U⊂RUは、ロボットに与える制御コマンドを表し、ε~N(0,Σn)は、システムノイズを表している。システムノイズεには、共分散行列Σn=diag[σ2
n,1,…,σ2
n,D]が含まれる。各ターゲット次元i(i=1,…,D)に対して、潜在的なGPsダイナミクスfi(・)をLGM-FFで近似し、N個のサンプルで学習する。入力X~=[x~
1,…,x~
N]およびターゲットyi=[xi,2,…,xi,N+1]Tとしたとき、xi,tは、xtとx~
t:=[xT
t,uT
t]T∈RD+Uのi番目のサンプルである。X~の記号「~」はチルダを表している。
【0025】
学習済みの潜在的なGPsダイナミクスfi(・)を用いると、入力x~*が与えられたときのロボットの状態分布を予測することができる。数式(1)は、予測される状態分布を表す。
【0026】
【0027】
wi∈RM×1は、対応する重みを表し、Φ*
i:=Φi(x*)であり、フーリエ特徴量マップΦi(・):X×U→RMを用いている。
【0028】
[LGM-FFを用いた確率的MPC]
確率的MPC(pMPC)は、確率的なダイナミクスモデルによる予測を利用して制御計画を行うMPCである。確率的MPCを用いて再帰的に状態を予測することは、将来の状態をガウス分布として近似する解析的モーメントマッチング技術によって導かれる。各潜在的状態予測に対して、LGM-FFダイナミクスfi(・)を状態分布p(xt)に積分して、ガウス分布の未来状態p(xt+1)≒N(μt+1,Σt+1)を求める。μt+1∈RDとΣt+1∈RD×Dのi番目(対角)の要素は、数式(2)及び(3)に示す通りである。
【0029】
【0030】
【0031】
qi=Ext,[Φi|μt,Σt]及びQi=Ext,[ΦiΦT
i|μt,Σt]は、公知の研究によって解析的な解が提供されている。
【0032】
pMPCは、再帰的状態予測に基づき、Hステップの長期損失Lを最小化することにより、最適制御シーケンスu*=u^1,…,u^Hを求めることができる。最適制御シーケンスu*とは、ロボットが最適な行動をとるように、そのロボットにシーケンシャルに与える制御コマンドの集合である。数式(4)は、Hステップにおける長期損失Lの最小化問題を表す。u^の「^」はハットを表している。
【0033】
【0034】
ここでx^1=xtであり、l:X→Rは即時損失である。
【0035】
M個の特徴とN個のサンプルを仮定すると、LGM-FFと標準的GPsダイナミクスによるモーメントマッチングの計算コストは、O(M2)とO(N2)であり、LGM-FFの計算コストは、サンプルサイズNに依存しない。また、フーリエ特徴の効率性は既に証明されており、ロボットタスクにおいてM≪Nが実証された。
【0036】
[モデルベース強化学習(MBRL)を用いたMPC計画]
MBRLの学習過程はN回の試行を含み、1回の試行につきLstep個のステップがある。各ステップにおいて、MPCは状態予測を再帰的に利用して長期損失Lを最小化することにより、Hステップの最適制御シーケンスu*=u^1,…,u^Hを計画し、制御u^1を環境へ適用する。つまり、u^1という制御コマンドに基づいてロボットを制御する。各試行が終了する前に、MBRLは以前の全ての試行から収集したサンプルでダイナミクスモデルを再トレーニングする。
【0037】
制御遅れを補償し、MPCの制御頻度を上げるために、時間ステップtにおいて、MPCは予測された状態x^t+1に基づいて最適制御ut+1を計画する。このように、各ステップにおいて、次のステップの制御計画の前に、現在のステップの最適制御が実行される。
【0038】
[提案手法]
以下、第1実施形態の提案手法について説明する。二足歩行ロボット(SLIP-biped)の運動は、以下の理由で非常に複雑である。
1)多くの二足歩行ロボットは、先端から質量中心(CoM)までの中心線が揃っていない複数のバネを有している。これらのバネはエネルギーを蓄積し、衝撃に対して非線形な挙動を示す。
2)浮遊型二足歩行ロボットのダイナミクスは、運動中に変化する接触条件に大きく依存する。
【0039】
そのため、MBRLを用いて二足歩行ロボットのダイナミクスをモデル化するには、ばねを含むすべての状態遷移を表現する高次元のモデルと、運動フェーズ間のダイナミクスの非類似性を捉えるための高い複雑性が必要となる。高次元かつ高複雑なダイナミクスモデルの学習は、大規模なサンプルセットとより多くの特徴量を用いることで実現できる可能性があるが、その計算負荷によりMPC計画は、実時間制御において非現実的である。
【0040】
二足歩行ロボットのダイナミクスの高次元性と複雑性を緩和するために、MBRLを用いたタスク分解型エネルギー交換ダイナミクス学習(以下、TDE2-MBRLという)を提案する。
【0041】
エネルギー保存の法則に基づき、閉じたシステム内のエネルギーは増幅も減衰もできない。そこで、二足歩行ロボットとそのバネの間の相互作用を表現するために、MBRLを用いてエネルギー交換のダイナミクスをモデル化する。エネルギー交換をモデル化することで、二足歩行ロボットのモデリング次元は小さくなるが、接触状態の変化によるダイナミクスの違いを扱うには、複雑なモデルが必要となる。有限状態マシン(FSM)は、運動タスクをフェーズに分解し、フェーズ間で制御目標を切り替えるものである。本手法では、FSMにヒントを得て、
図1に示すように、独立した制御目標に加えて、より複雑度の低いダイナミクスモデルを運動タスクのフェーズごとに独立にモデル化する。また、各フェーズにおけるMPC計画では、タスク分解されたダイナミクスモデルを利用して予測値を利用する。
【0042】
図1は、TDE2-MBRLの概念図である。二足歩行ロボットのダイナミクスモデルは、タスクに応じて分解された二足歩行ロボットの一連の運動フェーズの其々に対応して存在している(フェーズP
1には、モデルf
1(・)があり、フェーズP
2には、モデルf
2(・)がある)。またタスク分解された各運動フェーズにおいて、ダイナミクスモデルを学習するためのサンプルが収集される。MPC計画における目標は、運動フェーズ毎に設定される。図中のフェーズP
3のように、一連の運動フェーズのなかには、非MBRLアプローチが適用されたフェーズが含まれていてもよい。
【0043】
[MBRLのエネルギー交換ダイナミクス]
MBRLでエネルギー交換のダイナミクスをモデル化するために、LGM-FFモデルの状態にエネルギー関連の項を追加する。ここで、Θt∈REは、ロボットの局所空間におけるバネと無関係な状態の集合(例えば関節位置)を表す。PCoM=[Px,Py,Pz]∈R3は、ワールド座標空間におけるロボットの質量中心(CoM)位置を示し、その基準原点は地表に位置している。
【0044】
Ns個のバネを持つ二足歩行ロボットを想定した場合、エネルギー交換モデルの状態は数式(5)のように定義される。
【0045】
【0046】
ここで、重力エネルギーEG∈R、ユークリッド空間での運動エネルギーEK∈R3、バネの複合弾性エネルギーES∈Rは、数式(6)~(8)で求められる。
【0047】
【0048】
【0049】
【0050】
ここで,m∈Rはロボットの質量であり、km∈Rはm番目のバネのバネ定数であり、Δlmは、m番目のバネの変形量である。“o”は要素ごとの演算を表す。
【0051】
これに対して、等価な非エネルギーモデルの状態は数式(9)で求められる。
【0052】
【0053】
ばねl=[Δlm]T
m=1,…,Nとすると、エネルギー内包型状態は状態の次元が(Ns-1)減少していることがわかる。
【0054】
[タスク分解型ダイナミクス]
Np個のあらかじめ定義されたフェーズP:={Pn}n=1,…,Npに対して、タスク分解ダイナミクスモデルfn(・)に対応する状態xnを定義した。具体的には、タスク分解された状態xnのエントリ(fn(・)の説明変数)、つまり入力は、上述した数式(5)の状態xから選択される。
【0055】
【0056】
選択行列Hnのij番目のエントリは数式(11)のように定義される。
【0057】
【0058】
ここで、xjはxのj番目のエントリ、xn
iはxnのi番目のエントリである。各Hnの行の和は、選択の重複を避けるために1とする。
【0059】
[TDE2-MBRL]
TDE2-MBRLは、タスク分解されたエネルギー交換のダイナミクスをモデル化し、二足歩行ロボットのダイナミクスモデルの次元と複雑さを軽減する。TDE2-MBRLの詳細な処理の流れやアルゴリズムは、後述の
図11及び
図12において説明する。
【0060】
[装置構成]
図2は、第1実施形態に係る情報処理装置100の構成の一例を表す図である。情報処理装置100は、単一の装置であってもよいし、ネットワークNWを介して接続された複数の装置が互いに協働して動作する一つのシステムであってもよい。ネットワークNWは、LAN(Local Area Network)やWAN(Wide Area Network)などを含む。すなわち、情報処理装置100は、分散コンピューティングシステムやクラウドコンピューティングシステムに含まれる複数のコンピュータ(プロセッサ)によって実現されてもよい。
【0061】
第1実施形態に係る情報処理装置100は、例えば、通信インターフェース110と、入力インターフェース120と、出力インターフェース130と、記憶部140と、処理部150とを備える。
【0062】
通信インターフェース110は、ネットワークNWを介して他の装置と通信したり、バスのような通信線を介してロボット10と通信したりする。通信インターフェース110には、例えば、受信機や送信機を含む無線通信モジュールや、NIC(Network Interface Card)などが含まれる。
【0063】
入力インターフェース120は、ユーザによる各種の入力操作を受け付け、受け付けた入力操作に応じた電気信号を処理部150に出力する。例えば、入力インターフェース120は、マウスやキーボード、タッチパネル、ドラッグボール、スイッチ、ボタンなどである。
【0064】
出力インターフェース130は、例えば、ディスプレイやスピーカである。ディスプレイは、例えば、LCD(Liquid Crystal Display)や、有機EL(Electro Luminescence)ディスプレイなどであってよい。ディスプレイは、入力インターフェース120と一体として構成されるタッチパネルであってもよい。
【0065】
記憶部140は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などにより実現される。記憶部140は、ファームウェアやアプリケーションプログラムなどの各種プログラムを格納する。
【0066】
処理部150は、例えば、取得部152と、演算部154と、出力制御部156とを備える。これらの構成要素は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などのプロセッサが記憶部140に格納されたプログラムを実行することにより実現される。これらの構成要素の一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。処理部150の各機能については後述する。
【0067】
[ロボット構成]
図3は、第1実施形態に係る二足歩行ロボット10の実機の外観図である。
図4は、第1実施形態に係る二足歩行ロボット10のメカニズムを表す図である。
図5は、第1実施形態に係る二足歩行ロボット10のシミュレーション結果を表す図である。
図6は、第1実施形態に係る二足歩行ロボット10のロボット座標系を表す図である。
図7は、第1実施形態に係る二足歩行ロボット10のパラメータを纏めたテーブルである。
【0068】
第1実施形態では、
図3及び4に示すように、軽量なパラレルリンク構造とバネ式アクチュエータを有する二足歩行ロボット10を採用した。この二足歩行ロボット10は、2つの脚の其々に設けられた2つのバネ式アクチュエータ(図中k
rocとk
thigh)により、レバーリンクと大腿リンクを駆動して速度制御される。ロボットの各種パラメータ(重力g、質量m、各リンク長l
thigh、lshin、l
roc、l
lever、l
knee、膝の関節角度θ
knee,ばね係数k
thigh,k
roc)は
図7のテーブルに示す通りである。
【0069】
二足歩行ロボット10の機械的仕様をもとに、実機の二足歩行ロボット10の速度制御模擬レプリカをシミュレータ上で実装した(
図5参照)。実機との動力学的な差異が最小となるように、部品のCoM位置と慣性、バネ式アクチュエータの応答、関節特性などを設定した。実機のロボットの運動は矢状面に制約があるため、模擬ロボットの運動はxz平面内に限定している。模擬ロボットの更新レートと制御周波数は60Hzである。
【0070】
[センサ構成とタスク空間表現]
センサは、ローカル空間とワールド空間における時間依存の状態を捕捉するために、シミュレーションロボットに取り付けられている。
図8は、シミュレーションロボットに搭載されているセンサの一覧を示すテーブルである。略号は以下の通りである。回転(Rot.)、位置(Pos.)、速度(Vel.)、力(Frc.)、左(L.)、右(R.)、アクチュエータ(Act.)、ばね(Spr.)。
【0071】
実際のロボットでは、正確なCoMの推定は困難であるため、シミュレーションでは、実際のロボットのシナリオを模倣するために、股関節の位置を推定CoMとして使用する(
図5参照)。
【0072】
このセンサを基に、二足歩行ロボット10のタスク空間表現は、
図6のように定義される。各脚(左右)に対して、タスク空間表現φ、ψは、数式(12)~(15)のように定義される。
【0073】
【0074】
【0075】
【0076】
【0077】
[ホッピングスキル習得のためのTDE2-MBRL]
1)タスクの概要
二足歩行ロボット10のタスクとして様々なタスクを採用することができる。第1実施形態では一例として、衝撃でバネが大きくたわむTDE2-MBRLの有効性を強調するために、MBRLの目的としてホッピングスキルを選択する。具体的には、TDE2-MBRLが二足歩行ロボット10のダイナミクスを捉え、pMPCがホッピングにより目標高さh*=0.55mに到達するよう二足歩行ロボット10を誘導する。
【0078】
性能は各試行のホップ成功回数で評価され、両足が地上0.05mに到達し,どちらかの足が終端条件を満たすことなく着地した場合と定義される。終端条件は、どちらかの膝が地面につくか、体が過度に傾いた(例えば|θB|≧90°)ことを含む。MBRL処理では、終端条件が満たした時点で現在の試行を終了し、二足歩行ロボット10は初期状態に戻される。初期状態は、例えば、φL=φR=25°であり、ψL=-ψR=20°であり、θB=0であり、バネの変形はないような状態であってよい。二足歩行ロボット10は最初に地上0.1mの高さから解放され、pMPCの目的は二足歩行ロボット10にホッピングを継続させることである。
【0079】
2)状態と制御の定義
重力エネルギーEG、運動エネルギーEK、弾性エネルギーESを式(6)~(8)により求める。従って、エネルギー交換状態は数式(16)のように定義される。
【0080】
【0081】
ここで、Θ=[φL,ψL,φR,ψR,θB]T∈R5であり、EKxは、運動エネルギーEKのx成分であり、EKzは、運動エネルギーEKのz成分である。
【0082】
以下のベースライン比較のために、等価な非エネルギー状態を数式(17)のように定義する。
【0083】
【0084】
ここで,l:=[θLS1,θLS2,θRS1,θRS2]T∈R4である。pMPC計画では、制御コマンドuは、数式(18)のように、タスク空間における離散的な加速度として定義される。
【0085】
【0086】
3)フェーズの定義
ホッピング中に起こりうる全ての接触条件を基に、二足歩行ロボット10によるホッピングタスクをいくつかのフェーズに分解した。
図9は、ホッピングタスクを分解した各フェーズを模式的に表すである。
図9の三角形は接地を表し、ロボットの体の横の矢印は体感速度Pzの方向を表している。
図10は、ホッピングタスクを分解した各フェーズの説明と条件を表すテーブルである。
【0087】
図9及び
図10に示すように、ホッピングタスクは、7種類のフェーズP:={P
F,P
C,P
LC,P
RC,P
K,P
LK,P
RK}に分解することができる。
【0088】
PFは、2つの脚のいずれもが接地しておらずロボットが自由落下するフェーズ(「第1フェーズ」の一例)である。PCは、両脚で着地し、CoM及びZ軸方向の速度が負になるフェーズ(「第3フェーズ」の一例)である。PLCは、左脚で着地し、CoM及びZ軸方向の速度が負になるフェーズ(「第2フェーズ」の一例)である。PRCは、右脚で着地し、CoM及びZ軸方向の速度が負になるフェーズ(「第2フェーズ」の他の例)である。PKは、接地した両脚で地面を蹴りだして飛び跳ねることで、CoM及びZ軸方向の速度が正になるフェーズ(「第5フェーズ」の一例)である。PLKは、接地した左脚で地面を蹴りだして飛び跳ねることで、CoM及びZ軸方向の速度が正になるフェーズ(「第4フェーズ」の一例)である。PRKは、接地した右脚で地面を蹴りだして飛び跳ねることで、CoM及びZ軸方向の速度が正になるフェーズ(「第4フェーズ」の他の例)である。
【0089】
4)タスク分解された制御目的。
各フェーズの制御目的は、衝撃を受けたときのバネの変形を最大化することである。例えば、キック系フェーズ{PK,PRL,PLK}はpMPCを実装し,ホッピングを行う。地面からの離陸後、PFにおいては、PID制御(Proportional-Integral-Differential Controller)によりロボットのアクチュエータは初期位置へ戻る。圧縮関連フェーズ{PC,PRC,PLC}では、タッチダウン後の衝撃に対してばねの変形を最大にするために、PID制御によりアクチュエータの初期位置を保持する。
【0090】
[TDE2-MBRLのアルゴリズム]
以下、TDE2-MBRLのアルゴリズムとそのフローチャートについて説明する。
図11は、第1実施形態の処理部150によって実行されるTDE2-MBRLの一連の処理の流れを表すフローチャートである。
図12は、第1実施形態の処理部150によって実行されるTDE2-MBRLのアルゴリズムを表す図である。以下の説明では、一例として、二足歩行ロボット10に与えられたタスクがホッピングであるものとして説明する。
【0091】
まず、演算部154は、タスク分解されたNp個のフェーズの其々の入力パラメータを初期化する(ステップS100)。二足歩行ロボット10に与えられたタスクがホッピングである場合、Npは7である。つまり演算部154は、7種類のフェーズ{PF,PC,PLC,PRC,PK,PLK,PRK}の其々の入力パラメータを初期化する。入力パラメータには、Pn、Hn、Xn、Yn、fn(・)、Lnが含まれる。
【0092】
次に、出力制御部156は、二足歩行ロボット10を所定の初期姿勢に戻すための指令を、通信インターフェース110を介して、二足歩行ロボット10に送信する(ステップS102)。これを受けて、二足歩行ロボット10の姿勢は、初期姿勢に戻る。
【0093】
次に、演算部154は、各フェーズのダイナミクスモデルfn(・)及び(Xn、Yn)を更新する(ステップS104)。
【0094】
次に、取得部152は、通信インターフェース110を介して、二足歩行ロボット10に設けられた複数のセンサから、二足歩行ロボット10の現在の状態xtとして各種検出値を取得する(ステップS106)。
【0095】
次に、演算部154は、S106の処理において取得された状態xtを基に、現在の二足歩行ロボット10のフェーズPnを更新(又は決定)する(ステップS108)。
【0096】
次に、演算部154は、タスク分解ダイナミクスモデルfn(・)に対応する状態xn、つまりタスク分解された状態xnの初期状態xn
0を算出する(ステップS110)。例えば、演算部154は、S108の処理で更新された現在の二足歩行ロボット10のフェーズPnに応じた選択行列Hを状態xtに乗算することで、ダイナミクスモデルfn(・)に説明変数として入力する初期状態xn
0を算出する。
【0097】
次に、演算部154は、Lstepを含むMPC計画の最初の区間の最適化を実行する(ステップS112)。
【0098】
次に、取得部152は、通信インターフェース110を介して、二足歩行ロボット10に設けられた複数のセンサから、二足歩行ロボット10の現在の状態xtとして各種検出値を取得する(ステップS114)。
【0099】
次に、演算部154は、S114の処理において取得された状態xtを基に、現在の二足歩行ロボット10のフェーズPnを更新(又は決定)する(ステップS116)。
【0100】
次に、演算部154は、タスク分解されたj番目の入力である状態xn
jを算出する(ステップS110)。例えば、演算部154は、S116の処理で更新された現在の二足歩行ロボット10のフェーズPnに応じた選択行列Hを状態xtに乗算することで、ダイナミクスモデルfn(・)に説明変数として入力するj番目の状態xn
jを算出する。
【0101】
次に、演算部154は、現試行において最適な制御コマンドutを算出し、出力制御部156は、算出された制御コマンドutを、通信インターフェース110を介して、二足歩行ロボット10に送信し、二足歩行ロボット10を制御する(ステップS120)。
【0102】
次に、演算部154は、MPC計画の次の区間の最適化を実行する(ステップS122)。
【0103】
次に、演算部154は、MPC計画に含まれる全Lステップの最適化が実行されたか否かを判定する(ステップS124)。
【0104】
全Lステップの最適化が実行されていない場合、演算部154は、S114の処理に戻り、残りのステップの最適化を実行することを繰り返す。
【0105】
一方、全Lステップの最適化が実行された場合、演算部154は、更に、全N回の試行が実行されたか否かを判定する(ステップS126)。
【0106】
全N回の試行が実行されていない場合、演算部154は、S102の処理に戻り、残りの試行を実行することを繰り返す。
【0107】
一方、全N回の試行が実行された場合、演算部154は、本フローチャートの処理を終了させる。
【0108】
以上説明した第1実施形態によれば、情報処理装置100は、二足歩行ロボット10の状態xtを取得する。この状態xtには、二足歩行ロボット10ダイナミクスに関する複数のエネルギー(重力エネルギーEG∈R、ユークリッド空間での運動エネルギーEK∈R3、バネの複合弾性エネルギーES∈R)が含まれる。
【0109】
情報処理装置100は、モデル予測制御(MPC)計画を用いて、二足歩行ロボット10のダイナミクスがモデル化されたダイナミクスモデル(TDE2-MBRL)と、状態xtとに基づいて、二足歩行ロボット10に最適な行動をとらせるための最適制御シーケンスu*を決定する。このように、TDE2-MBRLによりモデル化されたタスク分解ダイナミクスモデル(より簡素でコンパクトなダイナミクスモデル)を用いて最適制御シーケンスu*を決定することで、二足歩行ロボット10に最適な行動をとらせることができる。特にTDE2-MBRLを用いているため、バネによる運動をエネルギーに集約できるというコンセプトのもと状態xtにエネルギーを含ませるため、バネを含まないモデルの状態数に比べてわずか3変数の増加でバネを含むシステムを学習することができる。
【0110】
(第2実施形態)
以下、第2実施形態について説明する。上述した第1実施形態では、TDE2-MBRLによりモデル化されたタスク分解ダイナミクスモデル(より簡素でコンパクトなダイナミクスモデル)を用いて最適制御シーケンスu*を決定するものと説明した。
【0111】
これに対して、第2実施形態では、第1実施形態に比べてより次元数の少ないタスク分解ダイナミクスモデル(第1実施形態に比べて更に簡素でコンパクトなダイナミクスモデル)を用いて最適制御シーケンスu*を決定する点で、上述した第1実施形態と相違する。以下、第1実施形態との相違点を中心に説明し、第1実施形態と共通する点については説明を省略する。第2実施形態の説明において、第1実施形態と同じ部分については同一符号を付して説明する。
【0112】
[提案手法]
以下、第2実施形態の提案手法について説明する。第2実施形態では、二足歩行ロボット(SLIP-biped)の歩行運動を実現するために、以下の3つの戦略を含むMBRLのアプローチを提案する。
【0113】
1)エネルギー交換ダイナミクス及びエネルギー状態
エネルギー状態を持つLGM-FFを使用して、二足歩行ロボット10のエネルギー交換ダイナミクスをモデル化し、CoM(二足歩行ロボット10の質量中心)、弾性コンポーネント(ばね等)、及びアクチュエータ(モータ等)のダイナミクスを、エネルギー交換によって特徴づけられる相互作用とエネルギーの定式化で表現する。エネルギー交換ダイナミクスにより、弾性コンポーネントを単一のエネルギーストレージとして扱うことで次元を減らすことができ、いくつかの状態の過程を暗黙的に表現することができる。アクチュエータは「エネルギー発生源」の一例である。
【0114】
2)エネルギー状態に基づく二足歩行ロボット10の歩行軌道
確率的MPC(pMPC)は、多段階の状態予測を活用して、最適な制御を見つける。そのため、エネルギー状態を利用することで、意図した歩行タスクがエネルギー制御問題に変換される。そこで、pMPCによる歩行を成功させるために、エネルギー保存の法則を取り入れ、エネルギー状態に基づく二足歩行ロボット10の基準となる歩行軌道を設計する。
【0115】
3)状態を意識した制御空間
各pMPCの将来の状態展開は独立しているため、pMPCからの信頼性の高い制御を確保することは困難である。そこで、エネルギー状態に基づく軌道と観測された二足歩行ロボット10の状態の両方を利用して、pMPCの探索を制約する状態認識型制御空間を提案する。
【0116】
[A.簡略化されたシステム変数と歩行パラメータ(Gait Parameters)]
まず、簡略化したばね式の平面二足歩行システムを用いて、第2実施形態のアプローチを説明し、続いて、ばね式の平面二足歩行システムが実装された二足歩行ロボット10について説明する。
【0117】
1)簡略化されたシステム変数
ばね定数行列K∈Rk×kによって特徴付けられる、k個のばね付きアクチュエータを備えたm-kg点質量の平面二足歩行ロボットシステムを考える。質量中心(CoM)の高さh、CoMの速度v∈RV、ばねのたわみΘS∈Rk、アクチュエータの位置Θ∈RV,アクチュエータの速度Θ(・)∈Rkと仮定する。
【0118】
2)歩行パラメータ
図13は、第2実施形態の歩行パラメータを説明するための図である。L
swgは、遊脚の脚長を表し、L
supは、支持脚の脚長を表す。これら脚長L
swg、L
supは、ワールド座標空間Ψ
w
swg、Ψ
w
supにおけるそれぞれの向きを表す。LとΨ
wは、アクチュエータとばねの位置ΘとΘ
Sから得られると仮定する。図示のように、歩行は、どちらの脚も接地したときの脚長であるスタンス脚長L
stan、一方の脚のみが接地し、他方の脚が上げられたときの脚長であるリフト脚長L
lift、所望の歩幅角θ
stride、ピーク時の所望のCoM速度v
p∈R
Vという4つのパラメータで記述される。この歩行は、異なる目的を持つ2つの段階に分離可能である。1つ目はダブルサポート(DS)であり、2つ目はシングルサポート(SS)である。DSフェーズの後脚は支持脚である。
【0119】
3)歩行動作
歩行パラメータを用いると、
図13に示すような目標歩行動作となる。これには以下のような必要条件が伴う。
【0120】
・DSフェーズ:両脚の角度が所望の歩幅角θstrideに一致し,遊脚の長さが立脚の長さに一致する。これらの必要条件をRDS={Ψw
swg=-0.5θstride、Ψw
sup=0.5θstride、Lswg=Lstan}と表記する。
【0121】
・SSフェーズ:支持脚の長さが立脚の長さと一致し、システムが倒立振子として機能する。これらの必要条件をRSS={Lsup=Lstan}と表記する。
【0122】
[B.エネルギー交換(EED)モデルとエネルギー状態]
MBRLを用いてロボットのエネルギー交換モデル(xt+1=f(xt,ut)+ε)を学習するには、エネルギー項で定式化された状態xと、アクチュエータの制御方法に基づくユーザ定義の制御utが必要である。
【0123】
まず、システムエネルギーE∈RV+2を数式(19)のように表す。
【0124】
【0125】
Egは重力エネルギー、Ekは運動エネルギー、Esはばねの全弾性エネルギー、gは重力ベクトル、oは要素別演算を表す。外部エネルギー源がない場合、システムの総エネルギーは一定である。1TE=const、ここで1は1つのベクトルである。
【0126】
次に、ロボットシステムのエネルギー源はアクチュエータだけであると仮定する。アクチュエータのエネルギーEactは、数式(20)のように表すことができる。数式(20)のように、アクチュエータのエネルギーEactは、その運動方程式(EoM)の運動の積分によって導かれる。τ=JΘ(・・)+KΘ+DΘ(・)である。
【0127】
【0128】
τはアクチュエータのトルク、Jは慣性行列、Dは減衰行列を表している。アクチュエータのエネルギーを導入することで、システムのエネルギー保存式は数式(21)のように表すことができる。
【0129】
【0130】
数式(21)は、ロボットのシステムエネルギーEが、アクチュエータの位置Θと速度Θ(・)の関数であることを示している。システムエネルギーEは、観測されたCoMの状態やばねのたわみから得られる。そのため、アクチュエータの位置Θと速度Θ(・)は暗黙のうちに互いに表現することができる。第2実施形態では、アクチュエータの位置を選択し、エネルギー状態を数式(22)のように設計することができる。
【0131】
【0132】
一方、基準状態は数式(23)のように表すことができる。
【0133】
【0134】
数式(22)と数式(23)とを比較するとわかるように、エネルギー交換モデルのモデリングは、2k-1次元を削減することができる。つまり、第2実施形態では、第1実施形態に比べて、次元数が2k-1分少ないタスク分解ダイナミクスモデルを用いて最適制御シーケンスu*を決定することができる。
【0135】
[C.エネルギー状態に基づく歩行軌道]
ダブルサポート(DS):エネルギー保存の法則と与えられた歩行パラメータに基づき、システムは目標エネルギーE*∈Rを保有させることで、所望の歩行に従うことができる。目標エネルギーE*は、数式(24)のように表すことができる。
【0136】
【0137】
E*
g∈RとE*
k∈Rは、目標とする重力エネルギーと運動エネルギーである。vpは、ピーク時の望ましいCoM速度である。したがって、目的は、pMPCがシステム(ロボット)を前進させるために必要なエネルギーを供給する最適制御を見つけることができる軌道(歩行軌道ともいう)を提供することである。目標エネルギーが一定であるため、タイムステップtでの基準軌道は、数式(25)及び数式(26)のように表すことができる。
【0138】
【0139】
【0140】
ダブルサポート(DS)のフェーズの対応する基準軌道は、数式(27)のように表すことができる。
【0141】
【0142】
シングルサポート(SS):ダブルサポート(DS)のフェーズを経てシステムがエネルギーを得たと仮定する。この場合、シングルサポート(SS)の目的は、再度ダブルサポート(DS)のフェーズに進むために、安定して遊脚を振ることである(遊脚で安定したレッグスイングを実行することである)。
【0143】
倒立振子のスイング運動を同期させるために、遊脚の基準脚長であるL*
swgとL*
supは、支持脚の向きΨw
supの関数である必要がある。遊脚の終端姿勢がダブルサポート(DS)のフェーズで定義された姿勢と一致し、フェーズを確実に移行する限り、遊脚の中間軌道は所望の歩行パターンに従って選択することができる。遊脚の軌道は数式(28)、(29)のように表すことができる。
【0144】
【0145】
【0146】
SL,SΨ:R→Rは、支持脚の向きと参照する遊脚の軌道の間のマッピングを記述する関数である。シングルサポート(SS)のフェーズの対応する基準軌道は、数式(29)のように表すことができる。
【0147】
【0148】
シングルサポート(SS)のフェーズの基準軌道は位置として定式化されている。しかしながら、エネルギー交換モデルが位置とエネルギーとして特徴づけられることから、pMPCでは将来の位置を予測するためにエネルギーが組み込まれる。
【0149】
[D.状態認識制御空間(State-aware Control Space)]
pMPCの状態認識制御空間は、pMPCが信頼性の低い制御を行う可能性を低減するために、数式(31)の探索制御空間Uを修正する。
【0150】
【0151】
探索制御空間Uは、各タイムステップtにおいて、システムの状態xt、基準軌道x*
t、どの制御信号がより信頼できるのかというユーザの事前知識に基づいて修正される。修正された探索制御空間U′tは、数式(32)によって表すことができる。
【0152】
【0153】
[MBRLのためのエネルギー交換モデルの構成]
図14は、第2実施形態に係る二足歩行ロボット10の構成の一例を表す図である。
図15は、第2実施形態に係る二足歩行ロボット10に用いられる変数(システム変数)の対応関係を表すテーブルである。このテーブルは、ローカル空間(関節空間)、タスク空間、及びワールド空間のそれぞれの変数の対応関係を表している。
【0154】
第2実施形態では、MBRLを用いて、LGM-FFによりロボットの各フェーズの状態遷移ダイナミクスを学習する。
【0155】
ダブルサポート(DS)フェーズ下のロボットの状態と、シングルサポート(SS)フェーズ下のロボットの状態とは、数式(33)のように定義される。数式(33)に表されるように、各フェーズのロボットの状態x∈R9は、位置Θ、胴体の向きθT、システムエネルギーEの組み合わせとして定義される。
【0156】
【0157】
胴体の向きθTは、ワールド空間の脚の向きを得るために状態xの定義式に加えられる。位置Θは、数式(34)のように定義され、システムエネルギーEは数式(35)のように定義される。
【0158】
【0159】
【0160】
Egは重力エネルギー、ESは全てのばねの弾性エネルギーの総和、ERは半径方向のCoM速度(PR(・))から得られる運動エネルギー、ETは接線方向のCoM速度(PT(・))から得られる運動エネルギーである。
【0161】
図14に示すように、これら運動エネルギーE
R、E
Tは、支持脚に対応する。接線方向の運動エネルギーE
Tにはプラス又はマイナスの方向が付加され、付加的な情報となる(前方に歩く場合は常に正)。φとψはともにばねのたわみを含み、歩行タスク制御問題を単純化するためにタスク空間(数式(12)~(15)参照)で構成される。ダブルサポート(DS)フェーズとシングルサポート(SS)フェーズのダイナミクスモデルは、それぞれのフェーズで収集されたサンプルで独立して学習される。
【0162】
[pMPCの計画目標]
1)歩行時の歩行パラメータ
スタンス脚長Lstan、リフト脚長Lliftは、関節角度φmin=14°、φmax=37°、目標歩幅角度θS=28°、ピーク時の目標速度vpがx方向に0.4m/sのときに測定された。したがって、目標エネルギーは数式(36)のように求められる。
【0163】
【0164】
フェーズ間の遷移は、足の接地反力FSWGとFsupによって決定される。その必要条件は、以下の(a)と(b)である。FSWGとFsupはフェーズ間の遷移を識別するためにのみ使用し、pMPC計画には使用しない。
【0165】
(a)DS→SS if |Fsup|≦5N
(b)SS→DS if |FSWG|≧20N
【0166】
2)シングルサポート(SS)フェーズの基準となる遊脚の軌道
スムーズな動きを実現するために、基準となる遊脚の軌道を、複数のシグモイド関数を用いて、人間の歩行にヒューリスティックに適合させる。これによって、安定した脚の振りを実行することができる。
【0167】
3)制御方式とpMPCの目的関数
数式(27)と数式(30)の基準軌道(DSフェーズの基準軌道Tt
DSと、SSフェーズの基準軌道Tt
SS)と、3)歩行動作で説明した目標歩行動作に必要な各種必要条件(DSフェーズの必要条件RDSと、SSフェーズの必要条件RSS)とを関連付けて、以下の軌道を設計する。
【0168】
ダブルサポート(DS):キック動作は、システムに必要なエネルギーを供給することが予想されるため、ダブルサポート下における最適制御シーケンスuを数式(37)のように定義する。
【0169】
【0170】
また、pMPCの即時損失は、数式(38)のように決定される。
【0171】
【0172】
ここで、数式(35)の方向性(半径方向と接線方向)をもつ運動エネルギーは、pMPCが前方に蹴り出すことによってエネルギーを得ることを促す。DSフェーズの必要条件RDSと、(φsup,ψsup,ψswg)の位置は、例えば、PDコントローラを介して保持されてよい。
【0173】
シングルサポート(SS):ハードウェアの制約によりアクチュエータの限界を超えないように、例えば、胴体の向きを-5°に保ったまま脚の振りを行うことを目標とする。SSフェーズの必要条件RSSが与えられた場合、支持脚の長さは、胴体の傾きを打ち消すためにPDコントローラによって追加ψsup=(-5°-θT)で保持される。一方、基準状態が与えられると、最適な遊脚制御が行われる。最適な遊脚制御(シングルサポート下における最適制御シーケンスu)は、数式(39)のように表すことができる。
【0174】
【0175】
シングルサポート下における最適制御シーケンスuは、pMPCによって即時損失が設定されている。この即時損失は、数式(40)のように表すことができる。
【0176】
【0177】
数式(41)は、ローカル空間(θ1,θ2)、タスク空間(φ,ψ,L)、ワールド空間(ψw,θT)間の変換を導く。ここで、θactはアクチュエータから読み出された角度(測定値)であり、θsprはスプリングから読み出された角度(測定値)である。
【0178】
【0179】
ここでL*
swg,kは、数式(41)により、φ*
swg,kに変換される。さらにψwは、数式(41)により、状態から得られるワールド空間の脚の向きである。
【0180】
4)状態認識型制御空間
pMPCが最適な制御を見出すための信頼性の高い制御空間を提供することを目的とする。pMPCの基準状態(φ*
swg,ψ*
swg,E*)は既に知られている。したがって、この基準状態に対して理想的な制御を見つけ、その制御範囲を設定する。
【0181】
次に、理想的な速度u*
i上に速度範囲[-δ,δ]を追加するように制御空間を修正する。具体的には数式(42)の通りである。
【0182】
【0183】
ダブルサポート(DS)のフェーズの各ステップにおいて、必要な半径方向の運動エネルギーE*
Rから支持脚による理想的な蹴り出し速度L(・)*
supを求める。数式(43)は、運動エネルギーE*
Rを表しており、数式(44)は、蹴り出し速度L(・)*
supを表している。
【0184】
【0185】
【0186】
ここで、数式(43)は、半径方向の運動エネルギーE*
Rが提供できる不足エネルギーを計算し、数式(44)は、そのエネルギーを理想的な速度に変換する。最後に、数式(41)により、L(・)*
supをφ(・)*
supに変換する。
【0187】
シングルサポート(SS)のフェーズの各ステップにおいて、理想的な速度ψ(・)*
swg及びψ(・)*
supは、現在の状態と基準軌道との間の距離をスケーリングすることによって得られる。
【0188】
【0189】
【0190】
ここで、αはスケーリングファクター(制御周波数)を表している。スケーリングファクターαは、例えば、位置から速度への正確な変換のために40に設定されてよい。
【0191】
各タイムステップの理想的な速度に基づき、ダブルサポート(DS)フェーズの制御空間を数式(47)のように定義し、シングルサポート(SS)フェーズの制御空間を数式(48)のように定義する。
【0192】
【0193】
【0194】
ここで、δは、シミュレーションロボットでは1.2rad/sと定義され、ハードウェアでは0.6rad/sと定義され、pMPCはアクチュエータの全能力の約20%と10%を探索する。
【0195】
[MBRLの学習プロセス]
MBRLは、目標サンプル時間に達するまで試行が繰り返される。各試行では、終了条件が満たされるまで、例えば40Hz毎にステップが繰り返される。各ステップにおいて、pMPCは、シミュレーションとハードウェアの両方で、有限ホライズン損失Lを最小化する長さH=3の最適制御シーケンスu*=[u^1,…,u^H]を決定するために使用される。そして、最初の最適制御u^1がシステム(二足歩行ロボット10)に適用される。各試行が終了する度に、MBRLは以前の全ての試行から収集したサンプルを用いてモデルを更新する。
【0196】
以上説明した第2実施形態によれば、二足歩行ロボット10のエネルギーEがアクチュエータの位置Θと速度Θ(・)の両方を表現することに着目し、二足歩行ロボット10の状態xtを、第1実施形態の状態xt(数式(23)参照)と比べてより次元数の少ない状態(数式(22)参照)とした。
【0197】
具体的には、アクチュエータ(モータ等)のようなエネルギー発生源の一部のエネルギーを含むようにタスク分解ダイナミクスモデルを設計したため、エネルギー発生源のエネルギーと二足歩行ロボット10全体のエネルギーとが等価という点に着目し、エネルギー発生源の状態量または二足歩行ロボット10の状態量のどちらか一方を削減した。
【0198】
これによって、第1実施形態に比べてより次元数の少ないタスク分解ダイナミクスモデル(第1実施形態に比べて更に簡素でコンパクトなダイナミクスモデル)を用いて最適制御シーケンスu*を決定することができる。
【0199】
また第2実施形態によれば、pMPCの目的関数を、タスク分解ダイナミクスモデルの状態に依存する軌道としたため、pMPCの計算コストを小さくすることができる。
【0200】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0201】
10…二足歩行ロボット、100…情報処理装置、110…通信インターフェース、120…入力インターフェース、130…出力インターフェース、140…記憶部、150…処理部、152…取得部、154…演算部、156…出力制御部