GMO AI&ロボティクス商事株式会社

ヒューマノイドブログ

押されても倒れないヒューマノイドをつくる:FALCON/Thorの追実装とUnitree G1でのSim2Real

エンジニアブログ

お問い合わせ
押されても倒れないヒューマノイドをつくる:FALCON/Thorの追実装とUnitree G1でのSim2Real

1.はじめに

慶應義塾大学理工学研究科後期博士課程2年の田中雄輝と申します。2026年8月3日から8月28日までの約1ヶ月間、GMOインターネットグループ グループ研究開発本部でのAI・ROBOTICS INTERNSHIP研究コースに参加し、ヒューマノイドロボット Unitree G1 を対象としたLoco-Manipulationの研究に取り組みました。同じタームの研究コースには他に博士課程の方が2人参加されており、メンターの方とのディスカッションの結果3人チームで一つの問いに取り組むことになりました。研究コースでは自分たちで研究トピックを決め、基本的には先行研究サーベイから提案を考えて実装し、実機でテストするという普段の研究そのものの流れでした。

チームとして掲げたのは、「ヒューマノイドが物を扱いながら、外から力を受けても安全に動き続けられるか」という問いです。私は主に、既存手法の再現とベースラインの性能向上を担当しました。

2.やったこと

外力にロバストな全身制御下位ポリシーのSOTA、FALCONの追実装

はじめに、ヒューマノイドのLoco-Manipulationに関する先行研究を調査しました。その中でどうやらFALCONという手法がSOTAであり、単に全身の参照姿勢に追従するのではなく、タスクを実行中にエンドエフェクタに外力を受けても姿勢が崩れないポリシーだということがわかりました。FALCONはGithubのリポジトリがあり、学習済みのポリシーも公開されていたので、まず最初にSim2Simデプロイをテストし、その後実機のG1でSim2Realをテストしました。結果難なく動き、手先に外力を加えても非常にロバストに姿勢を維持することがわかりました。また、棒を手先に持たせると持続的な振動を引き起こしてしまうこともわかりました。

そこで、FALCONのように外力へのロバスト性や追従性能を維持したうえでツールを把持した際の振動を抑制することができないか、という発想が生まれました。そこでまずはFALCONの学習を回せるようにしてから機能を追加していく戦略を取ろうということになったのですが、ここで最初の壁にぶつかります。公式の実装環境が、Isaac Gym(現在は後継のIsaac Labに移行)で作られており、こちらの環境はMuJoCo Warp。Isaac Gymに合わせたとしてもGPUの相性問題でそのままでは学習できないことがわかりました。すべてを古い環境で進める、という案も出たのですが、メンターの方と相談したうえで、無理に合わせるのではなくMuJoCo Warpに一つずつFALCONの要素を移植していくという方針に切り替えました。

作業風景。シミュレータ上で学習済みのポリシーに外力を加えて遊んでいるところ

「本当に再現できているのか」を疑う

追実装に関してはインターン期間中Claudeが使えることもあり、どんどん進められたのですが、そのうち「これは本当に元の手法を再現できているのか?」という疑問が出てきました。動いてはいるが、論文通りとは限りません。そこで、自分たちの実装を論文および公式リポジトリ実装の両方に突き合わせて差分を洗い出す作業を行いました。Claudeに何度も論文とリポジトリを読み込ませ、報酬関数や制御ゲインに至るまでなるべく一致させるのは手間がかかりました。が、ここで見つかった細かなズレを潰していくにつれ、徐々に公式ポリシーに性能が近づいていきました。また論文では言及されているが実装ではコメントアウトされていたり、READMEをよく読むと実行時にハイパーパラメータを上書きしていたりといろいろな問題点も浮かび上がってきました。

評価基盤を整えつつ実装を進める

改良フェーズでは、「実装する」と「評価する」を並走させることを意識しました。評価側では、ロバスト性や追従性を定量的に比較・可視化できるコードを整備し、シミュレーション画面上で状況を目視できる環境も作りました。この整備の過程で、設定が意図通りに効いていない箇所がいくつか見つかりました。これは数値だけの評価ではわからず、可視化しなければ気づけなかったもので、評価基盤整備の重要性を痛感しました。

学習側では、そうして見つかった課題を一つずつ潰しながら、バージョンを重ねて改良を進めました。効果のなかった変更は素直に捨て、効いた変更をベースに次を積む、という形です。最終的に、外力を受けながらの歩行という難しい条件で、初期版から明確な改善を確認できました。

さらに外力に強いThorを実装する

FALCONの追実装が落ち着いてきたタイミングでThorという手法の追実装にも手を広げました。Thorのコア技術はFAT2報酬であり、これは静的な外力とのつり合いの式から算出される理想的な体の傾きを参照させることでより大きな外力に耐える、というコンセプトです。FAT2報酬は論文内でのAblationにおいて大きな影響を占めていることが実証されており、自前学習したFALCONにFAT2を乗せこむ方針にしました。ただしThorはFALCONが行っている腰の指令値追従を意図的に外しているため、そのままの追加では各報酬やカリキュラムとコンフリクトがありました。また、実装が公開されていないため論文からうまく要素を抽出して実装を行いました。追実装したFAT2はシミュレーション・実機ともに外力が強くなるほど体全体を傾けて外力に耐えようとする傾向がみられ、評価スクリプト上でも良好な外力ロバスト性を示しました。

FAT2報酬を追加したポリシーが外力を受けて体を傾ける様子

まとめ

期間を通して、訓練が回せなかった既存手法を自分たちの環境に移植し、実機まで通し、論文との差分を潰し、評価基盤を整えたうえで改良を積み上げるという一連のサイクルを回しました。「差分を洗い出す」「評価を可視化する」という工程が、結果的にいちばん効いたと感じています。

3.よかったこと

本物のヒューマノイドを自分の手で動かせたことが本当に感動的でした。G1はシミュレーション環境がかなり整備されていて、予想していたSim2Realギャップもほとんどなく、シミュレーションの評価通りに実機が動くことが素晴らしいと思いました。シミュレーションで観測されていた棒を持たせると振動する、という現象が実機でも同じように起こった時は驚きました。G1の機体数も十分にあり、基本的にはデプロイしたいと思った瞬間に機体を融通してもらえました。計算資源についてもシードを振って厳密に検証するのは難しかったですが、いろいろなカリキュラムやパラメータ設定で並行して学習を回すことができました。最後は3台ほどマシンを並べて使用していました。

またチームメンバーやメンターの方のサポートも非常に助かりました。博士学生が3人ということもあり、初期のディスカッションから非常にスムーズにリサーチクエスチョンがまとまったり、実装のアイデアが出てきたのがよかったです。また普段は研究トピックとして成立するか、本当に既存研究ではアプローチできない領域なのか、という観点についてはメンターの方に非常に鋭く指摘していただけたと思っています。純粋に機械学習全般やヒューマノイド制御に関するTipsを幅広く共有いただけたのも勉強になりました。

4.もっとこうしたほうがよいと思ったこと

あまりないのですが、しいていえば毎日終業ギリギリに思いついたアイデアを実装しようとしてClaude待ちになることが多かったので(次の日まで学習を回しておきたい)、いつもバタバタしてしまい反省しています。このレベルの実装ならどれぐらいで終わるか、とかコンフリクトしない範囲は別のエージェントに任せるなどAIを活用したコーディングスキルやノウハウが自分にはもっと必要だと感じました。

5.おわりに

非常に刺激的な1ヶ月を過ごせました。ヒューマノイドをここまで自由に動かせて、かつ研究の深い議論もできる環境は他にないと思うので貴重な経験でした。

当サイトでは利便性の向上を目的にクッキーを使用しています。クッキーポリシーの詳細は こちら をご覧ください。

拒否