トピックハブ

脚式ロボットとヒューマノイド

歩行ロボットが倒れずに移動する仕組み。歩容と接地スケジュール、ZMPとキャプチャポイント、重心動力学とMPC、学習による歩行方策、そしてデモと製品の見分け方を解説します。

更新 2026年11月14日 · 脚式移動、歩容、ゼロモーメントポイント、キャプチャポイント、線形倒立振子、重心動力学、モデル予測制御、四脚ロボット、ヒューマノイド、強化学習

概要

脚式ロボットは、車輪の単純さと引き換えに、階段・瓦礫・縁石・隙間を越えて進める能力を得ます。ヒューマノイドは、さらに人間向けに作られた空間で働けるという期待を加えます。どちらも制御が難しい理由は一つです。胴体がどこにも固定されていないことです。ベースは劣駆動であり、ベースを動かす唯一の手段は足先の接触力です。接触力は押すことしかできず、引くことはできません。また、摩擦円錐の内側に収まらなければ足が滑ります。このページは、歩行コントローラを開発しているエンジニアや、現場に導入する脚式ロボットを評価しているエンジニアを対象としています。

重要な考え方

歩容と接地スケジュール

歩容とは、どの足がいつ地面に接するかのスケジュールです。四脚ロボットのゆっくりした歩行では、ほとんどの時間3本の足が接地しているため、重心(CoM)の投影を支持多角形の内側に保てます。これが静的安定です。ロボットがその場で動きを止めても倒れません。トロットでは対角の脚のペアを同時に動かします。支持多角形は線分まで縮み、バランスは運動に依存します。これが動的安定です。バウンドやギャロップでは、どの足も接地していない空中期が加わります。二足ロボットが接地できる足は最大2本で、支持領域も小さいため、実用的な歩行は動的になります。多くのコントローラは接地スケジュールを事前に固定し、それを前提に力と着地位置を計画します。

ZMPとキャプチャポイント

ゼロモーメントポイント(ZMP)は、接触力が水平軸まわりに転倒モーメントを生じない地面上の点です。平らな足裏の場合、ZMPは支持多角形の内側になければならず、外れると足が縁を支点に転がり始めます。VukobratovićとBorovacは、ZMPが用いられてきた35年間をレビューしています。Kajitaら(2003)は、ロボットを線形倒立振子としてモデル化し、重心が地面から一定の高さz_cにあると仮定しました。このとき重心は、ω = sqrt(g/z_c)で決まる速さでZMPから離れる向きに加速します。彼らは将来のZMP目標値に対する予見制御によって重心の運動を計画しました。Prattら(2006)は、ロボットが静止するにはどこに足を踏み出せばよいかを問いました。同じモデルでは、その答えはキャプチャポイント、すなわち重心位置に、重心速度をωで割った値を足した点です。そこへ踏み出すことがプッシュリカバリの基礎になります。

支持脚(支持多角形)ZMP pCoM速度 v高さ z_cキャプチャポイント次の着地点振子モデル:x’’ = omega^2 (x - p)omega = sqrt(g / z_c)キャプチャポイント:x + v / omegaxz
横から見た線形倒立振子(x前方、z上)。重心は一定の高さz_cで動き、支持脚の足裏の内側になければならないZMPから離れる向きに加速します。キャプチャポイント、すなわちxにvをωで割った値を足した点に踏み出すと、振子は静止します。

重心動力学とモデル予測制御

脚式ロボットの完全な動力学には数十の状態量があります。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

よくある間違い

  • 動画を製品の証拠とみなすこと。データシート、価格、サポート契約、顧客名を確認してください。
  • 理想的なモータのモデルでゲインを調整すること。関節摩擦・トルク制限・遅延が、コントローラが機能するかどうかを左右します。
  • 摩擦円錐を無視すること。法線力のμ倍を超える横方向の力を必要とする計画では、足が滑ります。
  • 質量・摩擦・モータ出力をランダム化せずに方策を学習させ、ハードウェアのせいにすること。
  • 成功率を単一の数字で読むこと。どんな地形で、何回試行したのか、人がロボットを受け止める準備をしていたのかを確認してください。

さらに深く

このトピックの最新ニュース

最近の論文

  • Runtime Safety and Emergency Stops on a Full-Size Humanoid: Deployment Lessons and a Case for Graduated Force Authority

    M. Conway, Y. Zhang, A. Devaraj et al. · arXiv cs.RO · ダイジェスト

    本論文は、著者らがUnitree H1-2ヒューマノイド向けのオープンソース自律ソフトウェアに組み込んだ安全レイヤについて説明しています。このレイヤは制御ソフトウェアとは独立して動作し、すべての関節指令を位置・速度・トルクの制限と照合します。状態推定値が古くなった場合や、有線の非常停止スイッチが押されたり抜かれたりした場合には、ロボットを停止させます。モデル予測制御(MPC)による下半身コントローラを用いた実機での押し試験では、ロボットは一度もバランスを回復できず、オペレータが毎回非常停止を押しました。停止するとバランス制御が失われるため、ロボットは転倒しました。マニピュレーション用に設定した関節制限は通常の歩行でも超過し、同じ停止を引き起こしました。著者らは、オペレータやバッテリパックのそばでは、停止の原因そのものよりも転倒のほうが大きな害をもたらしうると主張しています。そして、責任者を明示した上で力の権限を段階的に付与することを提案しています。ただし、これは実運用の経験から論じた立場であり、検証済みの手法ではありません。

  • BlinkMimic: Training a Humanoid Motion Tracker in Minutes on a Single GPU

    F. Chen · arXiv cs.RO · ダイジェスト

    BlinkMimicは、シミュレーション上のUnitree G1で、LAFAN1の全40モーションクリップを対象とする単一の全身トラッキング方策を、RTX 4090 1枚で3.4分で学習します。この時間は3つのシードの平均で、失敗するクリップがない状態で所定のリターン閾値に達するまでを計測したものです。土台となる先行研究は、並列シミュレーションのデータに当てはめたワールドモデルを通じて誤差逆伝播し、方策を学習します。BlinkMimicはこれに、学習がある程度進むとステップサイズを下げる仕組み、デプロイした方策の失敗をきっかけとするリセット、各イテレーション全体のGPUグラフキャプチャを追加しています。構成要素を1つずつ除いたアブレーションにより、各構成要素の効果を、イテレーションあたりのコスト、モーションへの当てはめに必要なイテレーション数、最後の失敗を解消するのに必要なイテレーション数のいずれかに帰属させています。実機での試験はありません。実ロボットへの転移の証拠ではなく、トラッキング方策を開発するための高速なループとして扱ってください。コードとシードごとの結果は公開されています。