ヒューマノイドが速く動く動画を見ても、それだけで「走れた」と判断してよいのでしょうか。
チームゼットでは、Isaac Sim上のG1を自分たちで強化学習させ、凸凹のある地面で移動を検証しました。今回、3種類の地形で20秒間、約39〜40mの移動を記録し、両足が地面を離れて左右交互に着地する走行相を確認できました。
一方、同じモデルでも速度指令を下げると横に逸れます。成功した動画と、そこに至るまでの修正、残った課題を紹介します。
動画:速度指令2.2m/s、実測平均約2.0m/s。20秒で前方39.45m移動。等倍速・50fpsのシミュレーション映像です。倉庫の棚は背景で、足が接触する地面には実際に凹凸を設定しています。
今回、何を学習させたのか
使ったのはIsaac Sim 5.1とIsaac LabのG1環境です。37関節のモデルに対し、PPOという強化学習の手法で制御方策を学習させました。今回の方策は、公開された学習済みモデルをそのまま動かしたものではなく、既存のシミュレーション・学習基盤を使ってチームゼットが学習させたものです。
平地と、高さの変動を−2〜+2cmに設定した凸凹地形を混ぜ、指示した速度への追従、姿勢の維持、脚を持ち上げるタイミングなどを段階的に調整しました。完了した学習は計3,200更新です。
ここで、入力にはシミュレーターから得た地形の高さや機体速度を使っています。評価時の方位補正にもシミュレーターの姿勢を使います。カメラやVisual SLAMで周囲を認識して走った結果ではありません。まずは移動制御そのものを検証しています。
「転ばない」「速い」だけでは足りなかった
初期のモデルは20秒間動き続けましたが、前方への移動は約30cm。その場を回っていたのです。胴体から見た前進速度だけでは、この問題を見落とします。そこで、地面に固定した座標での移動量や横ずれも評価するようにしました。
旋回を抑えるための罰点を強めた段階では、短時間で転倒する動作に偏りました。同時に複数の報酬を変更していたため、原因を一つには断定できません。罰点に上限を設けるなど、設定を見直して学習をやり直しました。
次のモデルでは約30m進めるようになりました。ただ、動画を見ると足の切り替えが細かく、狙っていた走り方とは違いました。
動画:途中のモデル、速度指令1.6m/s。20秒動き続けたものの、途中で凸凹の試験範囲を外れています。不整地を完走した例には数えていません。
そこで0.6秒の周期で脚を切り替える目標、遊脚を持ち上げる目標、両足の荷重を抜くタイミングを加えました。歩容が変わると方向への追従も変わるため、学習のたびに移動量と横ずれを確認しました。
速い指令では進めるのに、遅い指令では逸れる
最終モデルを、まず速度指令1.6m/sで平地3試行・凸凹3試行にかけました。6試行とも、約12〜15秒で横に逸れて試験範囲を外れました。
動画:最終モデル、凸凹地形seed 102。15.22秒で試験範囲を離脱したため終了。リセットした映像をつなげていません。
その結果を受け、学習に含まれる速度範囲内で指令を2.2m/sに変更しました。すると、3つの凸凹地形すべてで20秒の移動を継続し、試験範囲内にとどまりました。
| 地形seed | 移動時間 | 前方への移動 | 終了時の横ずれ | 実測平均速度 | 確認できた両足離地区間 |
|---|---|---|---|---|---|
| 100 | 20秒 | 40.00m | 0.37m | 2.044m/s | 31回 |
| 101 | 20秒 | 38.81m | 2.35m | 1.993m/s | 37回 |
| 102 | 20秒 | 39.45m | 0.24m | 2.005m/s | 34回 |
平均速度は開始3秒以降の世界座標X方向の速度。離地区間も開始3秒以降を集計しています。seedは地形生成などに使う乱数の指定値です。
速度を下げれば簡単になるとは限りませんでした。ただし、速度を上げたことだけが成功の原因だと結論づけるには、追加の比較が必要です。今回は途中結果を見て条件を追加した探索的な実験で、学習モデルは一つ、地形は3種類です。広い範囲での安定性を保証する結果ではありません。
両足が浮いたことを、どう確認したか
接触力が一瞬小さくなるだけでは、走行の根拠として弱いと考えました。そこで200Hzで足の接触力・位置・姿勢を記録し、足の衝突形状と、その足元の地形の高さを別途計算しました。
今回数えたのは、両足の接触力が閾値未満になり、かつ両足の衝突形状が局所の地面より保守的に見積もって1cm以上高い状態が、20ms以上続いた区間です。接触力の閾値を0.5N・1N・5Nに変えても、表の回数は変わりませんでした。着地順序も左右交互でした。
この方法は離地をすべて検出するものではありません。条件を満たした区間について、両足が離れていたと確認するための判定です。動画の見た目に加え、反復する走行相の根拠として使っています。
現場で使うために残っていること
今回の試験帯は幅8mあり、終了時に2.35mの横ずれが残った試行もあります。工場の狭い通路をまっすぐ走れる段階ではありません。低速への切り替え、停止、旋回、さらに大きな段差や異なる地面での検証が必要です。
また、簡略化した衝突形状を持つ37関節モデルでの結果です。実機のG1で同じ動作を確認したわけではなく、地形認識を含む自律移動にもまだつながっていません。
次は、速度が変わっても方向を保てる制御と、認識・自己位置推定をつなぐ部分を検証します。移動できた距離だけでなく、どの条件で崩れるかを残すことで、実装の次の課題を具体化していきます。
チームゼットでは、フィジカルAIのシミュレーション環境構築から、制御の実装・評価まで取り組んでいます。自社の現場で何を検証すべきか整理したい、動作デモを評価可能なPoCに進めたい、といったご相談はお問い合わせからお寄せください。
一次資料・実行条件
Isaac Sim 5.1、Isaac Lab(固定コミット 3c6e67bb5c7ada942a6d1884ab69338f57596f77)、RSL-RL 3.0.1で実行しました。G1環境とPPO基盤を利用し、学習設定・評価・録画を当社で実装しています。
当社が取得した評価結果とシミュレーション映像を掲載しています。第三者のコード・学習重み・ロボットや倉庫のUSD資産は本記事では配布しません。