こんにちは、GMOインターネットグループ株式会社エキスパートの真次です。この記事は GMOインターネットグループ Advent Calendar 2025 15日目の記事です。
2025年12月に開催された「2025国際ロボット展(iREX 2025)」に、GMOインターネットグループのGMO AI&ロボティクス商事株式会社が出展しました。本記事では、ブースで披露したヒューマノイドロボット「Unitree G1」によるダンスショーについて、その舞台裏で使われている強化学習・フィジカルAI技術を、エンジニアでない方にも伝わるよう、解説します。
2025国際ロボット展とは?
国際ロボット展(iREX)は、国内外の多くの企業が集結しロボットに関する出展を行う、隔年開催の大きなイベントであり、近年では“世界最大規模のロボット専門展”として高く評価されています。2025国際ロボット展(iREX2025)は、12月3日〜6日に東京ビッグサイトで開催され、公式のアナウンスによると、来場者数は延べ15万6千人に達しました。
今年の開催では、産業用ロボットからサービスロボット、ヒューマノイド、さらにAI・ICT・各種要素技術まで、ロボット関連の最先端技術が一堂に集まり、「ロボティクスがもたらす持続可能な社会」をテーマに、労働力不足への対応や次世代自動化ソリューションをアピールする場になっていたことが特徴的でした。
GMO AI&ロボティクス商事ブースではロボットが踊った!
さて、我々の展示はというと、四足歩行ロボットが悪路を乗り越えたり、カフェや倉庫で働くヒューマノイドロボットがいたりと、ブース内のさまざまな場所に、ご来場者様が集まってくださいましたが、中でも好評だったのは舞台上でのロボットによるダンスだったと思います。
https://twitter.com/GMO_AIR/status/1996027705469665764?s=20
https://twitter.com/GMO_AIR/status/1996411593245286588?s=20
いかがでしょう。"ロボットのダンス"と聞いて想像するものよりしっかり踊っていたんじゃないでしょうか?
開発チームは、はじめてラボでこれを見たとき、「えっ、マジで踊れちゃった...」と驚愕しました。
この後の章では、ヒューマノイドが踊れるようになるまでのステップと、やってみて明らかになった課題について解説したいと思います。
ヒューマノイド「G1」が人間っぽいダンスを覚えるまで
この機体は、中国のUnitree社が開発した、G1という名前のヒューマノイドロボットになります。
開発者向けの情報が多いため、ヒューマノイドを使って何か二次開発してみるならまずこれ、というスタンダードな機体といえます。
ショップブースの前に立つG1
彼にはデフォルトでもなかなかキレのあるダンスやカンフーを披露するコマンドが用意されているのですが、今回は音楽に合わせて新たに振り付けを覚えてもらいます。
全体的な流れとしては、次のような形となります。
ダンサーさんによるダンスをモーションキャプチャして、関節データを得る関節データを、G1の関節構造に合うように修正する(リターゲティング)シミュレーター上でダンスを強化学習する実機にデプロイし、現実空間で踊らせてみる(ダメなら1~3のどこかを修正してもう一度)
順に様子を見ていきます!
ダンサーさんによるダンスをモーションキャプチャして、関節データを得る
今回のダンスを学習するにあたっては、プロのダンサー様、撮影スタジオ様にご協力いただき、人間の踊りを関節データとして取得しました。
Bling-Bang-Bang-Bornだとこんな感じです。
さすが、綺麗に踊っていただけてますし、データも乱れなく取得できていますね...!
しかし、実際にG1がダンスをするデータにするためには、G1の身体の構造に合わせたデータに変換する必要があります。
関節データを、G1の関節構造に合うように修正する(リターゲティング)
我々が所持しているG1は、29自由度(=モーターの数)となっており、先ほどの関節データをこれらのモーターの角度の制御でなるべく再現する必要があります。
このような技術をリターゲティングと呼びます。リターゲティングは人→ロボットの変換だけでなく、自由度や構造の違う別のロボットへの変換手法も存在します。
実際にリターゲティングした様子がこちら。
Bling-Bang-Bang-Born(リターゲティング後)
見た目では少しわかりづらいかもしれませんが、膝と足首の動きに注目してみてください。
G1では膝を横に動かす(足首を左右に捻る)方向の自由度が無いため、左右の脚を交互に曲げるのみで再現しています。(動画を見返すと、元の関節データでは膝が身体の中心(正中線)を超える程度に内側に入っているのですが、残念ながらG1では不可能な動きです。)
言われてみれば結構違う動きなんですが、元のダンスが頭に入っているので案外気が付かなそうですね...
さて、これで学習の準備が整いました。
シミュレーター上でダンスを強化学習する
ここからはシミュレーターとGPUの出番です。
このダンスを転ばずに踊り切れるよう、大量の試行を繰り返し、修正していきます。
この「転ばずに」がポイントです。実は、そのまま先ほどの関節データをデプロイ(実機に実装)すると、大抵の場合すぐに転んでしまいます。なぜなら、「関節の初期角度」「床との摩擦」「風・空気抵抗」「モーターの温度」など、ロボットにとっては繊細な条件の変化(外乱)がたくさん現れてしまうためです。
つまり、
関節データにピッタリと合う(=理想的なダンスとなる)ようモーターの角度を制御したい転びそうになったら、理想的なダンスからなるべく遠ざからないようにバランスを取りたい
という二つの狙いを同時に覚えてもらう必要があります。
このような際には、強化学習がよく用いられます。ロボットにおける強化学習は、シミュレーター上での試行錯誤を積みながら、AIが「この時はこうしておいた方がバランスが良さそう」「もし後ろから押されたらこんな風に堪えよう」といった様々な要求を同時に満たす「踊り方の作戦」のようなものを見つけます。
そのおかげで、実際にダンス中のロボットを押したり引いたりしても、転ばずに踊り切るようなロバストなダンスを実現できます。
実際のシミュレーター上での学習の様子がこちら。
シミュレーション中の様子
現在の我々の環境では、4,000体程度の試行を並列に計算しているため、大量のロボットが同時に動いています。また、振り付け全体を細かく区切って、それぞれの個体に割り振って練習させています。(止まっている個体が多いのは、振り付けの前後に静止しているモーションが含まれているためです。)
ちなみに、このような動きになるまで、シミュレーター上ではAIが「次にどんな動きをするべきか?」という判断を累計50億回程度行っており、その計算に大体丸1日要しています。1体だと数年を要するような練習量を1日程度でこなせてしまう訳ですから、並列計算のパワーを感じますね。
さて、話を戻しまして、大体想像していた動きがここで確認できたら、いよいよ実機にデプロイします!
実機にデプロイし、現実空間で踊らせてみる(Sim-to-Real)
...と見出しとして立項しましたが、この結果が冒頭でご紹介したダンスになります。
(再掲)
https://twitter.com/GMO_AIR/status/1996027705469665764?s=20
シミュレーター上で高速に学習を行い、得られた動作を実機に搭載する技術はSim-to-Realと呼ばれます。当然現実世界にだけ現れる環境があっては上手く適応できないため、シミュレーターと現実世界のギャップを減らすことが、フィジカルAIの成功の鍵と言えるでしょう。
ロボットのダンスの難しさ
さて、ここまで手順を紹介してきましたが、一通りこれらの作業をやってみて、苦労した点や残っている課題について述べたいと思います。
失敗した際の改善策が「既存の上手くいっている部分」と干渉する
これはフィジカルAI全般における頻出課題かと思いますが、学習が上手く行かなかった際、シミュレーターや実機の動きを見て、何が悪いのかを考えなくてはなりません。
ここでいう上手くいかないとは、
シミュレーター上で学習が収束しない収束はしたが、想定した動作を覚えてくれない実機に移すと、シミュレーターと同じ動きを再現できない
と言ったことを指します。その原因は、そもそものモーションキャプチャやリターゲティングの精度など、様々な要因が考えられます。とりわけ厄介な改善作業の一つに、強化学習時のパラメータの微調整が挙げられます。
例えば、「1: 関節データ通りに動く」と「2: 身体がθ度以上傾かない」という二つの要求があった時、強化学習ではそれぞれに重みづけをして、どちらがどれくらい大事かを調整する必要があります。
もしこのような設定で学習した際に、「腕同士が激しく接触して機体を傷つけてしまう」という失敗に気付いたとして、「3: 自己衝突しない」という要求を追加したとしましょう。
この時、元の1,2の要求に新しい要求3が混ざって、重み付けが変更されるわけですから、当然これまでより1,2の要求は達成しづらくなってしまいます。そのため、それら全てを上手く達成できる良いバランスを我々も微調整していかなければなりません。
実際には、パラメータは10や20を超えるケースもありますから、この調整は非常に繊細な作業になります。これを上手く自動化する、という研究もあるくらいには地道で大変な作業です。
実際の環境が想定しているより難しい
我々は、今回シミュレーター側で床の凹凸や外乱の強さを変えながら学習させることで、なるべく悪い環境でも転ばないように強化学習を行っていました。しかし、実際に動かす環境がシミュレーター上より難易度が高い場合、それらの環境への適応は困難です。
これは実際に、ロボット展の最終日に発覚した例があります。
それは、床がカーペット材だったために、過去4日(3日+リハ1日)ロボットのダンスにより摩耗・毛羽立ちが発生してしまい、日に日に滑りやすくなっていってしまったのです。
こちらは、その最終日に撮影した足元の映像です。
ダンス中に摩耗した床で足が滑っている様子
ステップによって左足が大きくスライドしてしまっているのがハッキリとわかると思います。
実際にこれによって転倒することはなかったのですが、ポジションが大きく乱れてしまうため、後ろのディスプレイとの衝突リスクが上がってしまい、何度か人手でガードする展開になってしまいました。
このように、デプロイするとわかる学びも非常に多くあり、我々としても収穫の多いイベントとなりました。
まとめ
本記事では、ヒューマノイドのダンスを実現するまでの大まかな手順と、その課題についてご紹介しました。本番ではG1を酷使しすぎて挙動が不安定になったり、バッテリー交換の猶予がギリギリだったりと、紹介しきれない雑多な反省点も多く、エンジニア一同は慌ただしく過ごしておりましたが、なんとか4日間にわたり、事故なくG1のダンスをお披露目することができました。
特に、1日目にメディア・SNSをご覧になって、2日目以降に直接足を運んで下さった方も多くいらっしゃったようです。見に来ていただいた皆様、誠にありがとうございました。
今後もダンスだけではないヒューマノイド開発の様子を取り上げて参りますので、GMO AI&ロボティクス商事のSNSアカウントをフォローして、応援していただけますと幸いです。
参考文献
・https://irex.nikkan.co.jp/ - 2025国際ロボット展・https://www.unitree.com/g1 - G1の公式ページ・https://arxiv.org/pdf/2509.20717 - ロボットによるダンスの新しい論文・https://arxiv.org/abs/2512.01996 - G1をシミュレーションから実機に高速にデプロイする論文