脚式ロボットとヒューマノイド
歩行ロボットが倒れずに移動する仕組み。歩容と接地スケジュール、ZMPとキャプチャポイント、重心動力学とMPC、学習による歩行方策、そしてデモと製品の見分け方を解説します。
概要
脚式ロボットは、車輪の単純さと引き換えに、階段・瓦礫・縁石・隙間を越えて進める能力を得ます。ヒューマノイドは、さらに人間向けに作られた空間で働けるという期待を加えます。どちらも制御が難しい理由は一つです。胴体がどこにも固定されていないことです。ベースは劣駆動であり、ベースを動かす唯一の手段は足先の接触力です。接触力は押すことしかできず、引くことはできません。また、摩擦円錐の内側に収まらなければ足が滑ります。このページは、歩行コントローラを開発しているエンジニアや、現場に導入する脚式ロボットを評価しているエンジニアを対象としています。
重要な考え方
歩容と接地スケジュール
歩容とは、どの足がいつ地面に接するかのスケジュールです。四脚ロボットのゆっくりした歩行では、ほとんどの時間3本の足が接地しているため、重心(CoM)の投影を支持多角形の内側に保てます。これが静的安定です。ロボットがその場で動きを止めても倒れません。トロットでは対角の脚のペアを同時に動かします。支持多角形は線分まで縮み、バランスは運動に依存します。これが動的安定です。バウンドやギャロップでは、どの足も接地していない空中期が加わります。二足ロボットが接地できる足は最大2本で、支持領域も小さいため、実用的な歩行は動的になります。多くのコントローラは接地スケジュールを事前に固定し、それを前提に力と着地位置を計画します。
ZMPとキャプチャポイント
ゼロモーメントポイント(ZMP)は、接触力が水平軸まわりに転倒モーメントを生じない地面上の点です。平らな足裏の場合、ZMPは支持多角形の内側になければならず、外れると足が縁を支点に転がり始めます。VukobratovićとBorovacは、ZMPが用いられてきた35年間をレビューしています。Kajitaら(2003)は、ロボットを線形倒立振子としてモデル化し、重心が地面から一定の高さz_cにあると仮定しました。このとき重心は、ω = sqrt(g/z_c)で決まる速さでZMPから離れる向きに加速します。彼らは将来のZMP目標値に対する予見制御によって重心の運動を計画しました。Prattら(2006)は、ロボットが静止するにはどこに足を踏み出せばよいかを問いました。同じモデルでは、その答えはキャプチャポイント、すなわち重心位置に、重心速度をωで割った値を足した点です。そこへ踏み出すことがプッシュリカバリの基礎になります。
重心動力学とモデル予測制御
脚式ロボットの完全な動力学には数十の状態量があります。Orin、Goswami、Lee(2013)は、重心まわりの並進運動量と角運動量の総和、すなわち重心運動量(centroidal momentum)が、重力と接触力によってのみ変化することを示しました。これにより、バランスに関わる要素を保ったまま小さなモデルが得られます。Di Carloら(2018)はMIT Cheetah 3でさらに踏み込み、胴体を一つの剛体として扱いました。短い予測区間にわたる床反力を凸なモデル予測制御(MPC)問題として計画し、その力を関節トルクに変換しました。縮約モデルで計画し、全身コントローラで追従させる構成は、モデルベースの歩行制御で一般的です。
学習による歩行方策
シミュレーションでの強化学習は、いまや多くの歩行コントローラの学習に使われています。Hwangboら(2019)は四脚ロボットの方策をシミュレーションのみで学習させ、実機で動かしました。ロボットは速度指令に追従し、転倒から復帰しました。Leeら(2020)は固有受容感覚の信号だけを使うコントローラを学習させ、泥・雪・瓦礫・草木のある屋外で歩かせました。Rudinら(2021)は1台のワークステーションGPU上で数千台のロボットを並列に動かしました。著者らによれば、平地の歩行を4分未満、不整地の歩行を20分で学習させています。方策は、関節状態・ベースの運動・指令を、一定の周期で関節の目標値に写像します。高速で地形にもよく対応しますが、MPCに比べて中身を検証したり挙動の範囲を保証したりするのが難しくなります。
どこから始めるか
背景知識は動力学のトピックと制御のトピックで扱っています。MuJoCoでアームをシミュレーションするではMuJoCoを学べます。以下の歩行制御ツールのいくつかはMuJoCoを基盤にしています。PID制御では、どの脚式ロボットのコントローラも依然としてその上に載っている関節レベルのループを説明しています。学習と実機への転移はロボット学習のトピックとシミュレーションのトピックで扱っています。ロボット一覧表のSpotとGo2も参照してください。
ツールとプラットフォーム
| ツール | 用途 | ライセンス |
|---|---|---|
| Pinocchio | 微分付きの高速な剛体動力学・重心動力学の計算 | BSD-2-Clause |
| Crocoddyl | 接触シーケンスに対する最適制御 | BSD-3-Clause |
| OCS2 | 脚式ロボットに使われるスイッチド系MPC | BSD-3-Clause |
| Isaac Lab | GPU並列のロボット学習フレームワーク。legged_gymの環境は現在ここに収録 | BSD-3-ClauseとApache-2.0 |
| MuJoCo Playground | MuJoCo上のロボット環境と大規模バッチの強化学習 | Apache-2.0 |
| unitree_sdk2 | Unitreeロボットの低レベル・高レベル制御 | BSD-3-Clause |
よくある間違い
- 動画を製品の証拠とみなすこと。データシート、価格、サポート契約、顧客名を確認してください。
- 理想的なモータのモデルでゲインを調整すること。関節摩擦・トルク制限・遅延が、コントローラが機能するかどうかを左右します。
- 摩擦円錐を無視すること。法線力のμ倍を超える横方向の力を必要とする計画では、足が滑ります。
- 質量・摩擦・モータ出力をランダム化せずに方策を学習させ、ハードウェアのせいにすること。
- 成功率を単一の数字で読むこと。どんな地形で、何回試行したのか、人がロボットを受け止める準備をしていたのかを確認してください。
さらに深く
- VukobratovićとBorovac、Zero-Moment Point: Thirty Five Years of Its Life、2004年。
- Kajitaら、Biped walking pattern generation by using preview control of zero-moment point、ICRA 2003。
- Pratt、Carff、Drakunov、Goswami、Capture Point: A Step toward Humanoid Push Recovery、2006年。
- Orin、Goswami、Lee、Centroidal dynamics of a humanoid robot、2013年。
- Di Carloら、Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control、IROS 2018。
- Hwangboら、Learning agile and dynamic motor skills for legged robots、2019年。Leeら、Learning quadrupedal locomotion over challenging terrain、2020年。Rudinら、Learning to Walk in Minutes Using Massively Parallel Deep Reinforcement Learning、2021年。
- Tedrake、Underactuated Robotics、MITの講義ノート、オンラインで無料公開。