🙄

Group2: 成果報告

に公開

はじめに

本記事では、AIRoA コンペティションにおける Group 2の取り組みと成果について報告します。
記事の作成にあたり、Group 2と運営の皆さまのご協力に深く感謝いたします。

※ロボット基盤コンペティションの詳細についてはこちら(https://zenn.dev/airoa/articles/99184bcc68eadc#ロボット基盤モデル開発の取り組み---ロボット基盤コンペティション)
をご覧ください。コンペティションでは、参画企業・研究機関をはじめとする有志メンバーを募り6つのテーマごとに研究グループで、それぞれが異なるアプローチで汎用的なロボット基盤モデルの開発に挑戦しています。

方針

Group 2ではまず第一に、「失敗しても良いから、時間が許す限り事前学習を試してみる」という方針のもとで進めていきました。そのため、最終的な性能が他のオープンモデル(例:Pi0, Pi0.5, Gr00t)より低かったとしても、実際に試行し、その過程から学ぶことに価値があると考えました。

当初は、Pi0.5のような手法を参考に、以下のような構成を想定していました。

  • Vision-Language Model (VLM)がサブタスクレベルの言語コマンドを予測
  • Vision-Language-Action (VLA)モデルが、そのコマンドをもとに連続的なアクションを生成

しかし実際に進めてみると、高品質なサブタスクコマンドのアノテーションをChatGPT や Gemini などなしで作成するのは非常に困難であり、時間的にも現実的ではないことが分かりました。

そこで、サブタスクレベルの言語コマンドの予測は諦め、代替アプローチとしてKeypoint情報の活用を試みました。Keypoint は比較的 Embodiment Transferを行いやすい表現の一つであり、タスク理解や動作に有効である表現を効果的に獲得できると考えたためです。結果的に、限られた期間の中で事前学習を十分に完了させることはできませんでしたが、Phase 1では「まずは自分たちの手で事前学習を試す」という姿勢を貫きました。

概要

Group2では、構造的に最も単純な Gr00tと同様のアーキテクチャをベースとして用いました。事前学習済みのVLMのバックボーンとしてはQwen2.5-VLを採用しました。Action Headについては、Gr00tと同様のアーキテクチャを用いて実験を実施しました。また、Pi0.5 に類似した構成も実装しましたが、時間的制約により事前学習まで進めることはできませんでした。

関連研究 [1] を参考に、Group 2 では VLM バックボーンと Action Head を End-to-End で同時に学習するのではなく、まずVLM をロボットデータでドメインアライメントし、その後VLMの重みを固定した状態で Action Head のみを学習しました。この方針は、ランダムに初期化された Action Head と事前学習済みの VLM を同時に学習させると、Action Head からの勾配が VLMの重みに悪影響を与え、既に獲得されている言語・視覚的能力が失われる恐れがあるためです。

1. 事前学習(Pre-training)

事前学習フェーズでは、事前学習済み VLM モデルをロボットのデータでドメインのアライメントを行いました。 具体的には、ロボットデータを入力として以下のタスクを学習させました:

  • Caption generation(キャプション生成)
  • Object detection(物体検出)
  • Discrete Action prediction(FAST Tokenizerを用いた離散アクション予測)
  • Visual Question Answering (VQA)

さらに、破局的忘却を防ぐため、ロボットデータに加えてVLMの汎用データセットも併用して学習を行いました。

2. 事後学習(Post-training)

事後学習フェーズでは、VLM のWeightを固定し、Action Head(Flow-Matching Policy)のみを学習対象としました。 この段階では、VLM で得られた視覚・言語表現を固定した上で、ロボット動作に特化した行動生成モジュールを最適化しています。

データの事前処理

まず、学習に使うデータのObservationとActionの間で、End-effectorの回転表現を統一することから始めました。具体的には、データセットに End-effector の情報が含まれている場合、

  • Observation:6D rotation representation
  • Action:Axis-angle representation

を使用するように揃えています。

次に、データセットごとに含まれるProprioceptive informationが異なる点に対応する必要がありました。 たとえば、あるデータセットでは関節角度が含まれていても、別のデータセットには含まれていない場合があります。そのため、同じロボットに対しては固定長の State / Action ベクトルを定義し、どの次元にどの Proprioceptive informationを格納するかを明確に決めました。

例:Franka Panda の場合

Index 範囲 内容 備考
0–6 Joint information 関節角度
7–9 End-effector position 位置情報
10–15 End-effector rotation 6D rotation representation

一方で、データセットに特定の情報(例:Joint angles)が含まれていない場合、その部分の値は 0でパディングしています。たとえば、Joint情報が欠けているデータセットであれば、Index 0–6 には 0 を入力として埋め込みます。

アノテーション生成

データの事前処理として、事前学習に用いるアノテーションの生成にも取り組みました。

1. キャプション

InternVL3 78Bを用いてキャプションを生成しました。また、単にキャプションを生成するだけでなく、シーン内に存在する物体も同時に出力するようにしています。この出力された物体の種類の情報は、後の物体検出のアノテーション生成に活用されます。


キャプション生成の例

2. 物体検出

Image Captioning で得られた物体の種類の情報をもとに、以下のようなパイプラインで物体検出ラベルを生成しました。

  1. Grounding DINOにエピソードの最初の画像と物体の種類を入力として与え、各物体のBounding Boxを取得。
  2. Bounding Box の位置が不正確だったり、誤った物体を検出する場合があるため、InternVL3 14Bを用いて、検出結果が正しいかを確認。具体的には、検出された Bounding Box に基づいて画像をクロップし、クロップされた画像に含まれる物体とラベルが一致しているかを質問形式で検証。一致しない場合、そのラベルを棄却。
  3. 最後に、SAM2を用いて検出された物体をトラッキングし、エピソード全体にわたって物体ごとのラベルを生成。

ロボット自体のラベルなど、一部のケースでは完全ではないものの、物体ラベルの精度は全体的に高く、安定して生成できています。


物体検出のアノテーション生成のパイプライン

3. Keypoint

CoTracker3を用いて各フレームのKeypointを生成しました。その後、エピソード全体を通して位置が変化しない Keypointを除外することで、タスクに関連する(Task-relevant)Keypointのみをラベルとして保存しています。


生成されたKeypointの例

同様にHSRのデータに対してもキーポイント生成を試みましたが、モバイルマニピュレーションの場合はヘッドカメラが固定されていないため、上記のようなタスク関連キーポイントを安定して抽出することが困難です。 そこで、Depth Estimation と組み合わせて 3D 空間上に Keypoint を投影するなど、いくつかの手法を試しましたが、十分に安定した結果は得られませんでした。そのため、今回は HSR のデータに対してはキーポイントラベル生成を除外しています。

学習

概要で述べたように、VLMをロボットのデータのみでアライメントした後にVLMの重みを固定し、Action headのみを学習する方法を主に試しました。この手法は、過去の研究[1]でも指摘されているように、ランダムに初期化されたAction headからの勾配がVLMに伝搬することで、VLMがこれまでに学習した知識を忘れてしまう可能性があるため、採用しました。

事前学習

事前学習では、Open X Embodiment、RoboMind、HSR、ManiSkill Hub など、複数のロボットプラットフォームから収集されたデータセットを使用しました。
さらに、ロボットドメインにおける VQA データセットである Robo2VLM に加え、
破壊的忘却(Catastrophic Forgetting)を防ぐため、VLM の学習でよく用いられる The Cauldron のデータセットも併用しました。このフェーズではVLM のみを学習対象とし、ロボットデータへのドメインアライメントを行いました。学習には32 枚の H200 GPUを使用し、約1 週間の事前学習を実施しました。

事後学習

事後学習はHSRのデータによるものと、Google RobotとWidow Xの混合データでの2種類行いました。以下は事後学習後のGoogle RobotとHSRのRolloutの例になります。


Google RobotのRollout例


HSRのRollout例

結果と考察

最終的な結果としては、SimplerEnv の Google Robot で成功率 29.9%(全体で 1 位)、Window X では成功率 8.7% と低い結果に留まりました。このような低い結果は主に以下の要因によるものと考えられます。

1. 事前学習の不十分さ

事前学習が十分に行われなかったため、得られた 視覚・言語表現がロボットタスクを解く上で不十分だった可能性が考えられます。 特に、ロボット固有の物体や動作を理解する表現が十分に獲得されていなかったと考えられます。

2. ラベル生成の精度

ラベル生成プロセスも完全ではなく、その中に含まれる ノイズが Downstream Task(行動生成)に悪影響 を与えた可能性があります。特に、誤った物体検出やキャプション生成のエラーが積み重なることで、学習の安定性が低下したと考えられます。

3. データキュレーションの課題(HSR でのデプロイ)

HSR に対するデプロイ では、特に性能が低くなりました。これは、データキュレーションが不十分であり、品質の低いデモンストレーションが含まれていた ことが主な要因と考えられます。

実際、事後学習(Post-training)ではデモンストレーションの質が極めて重要 であり、

  • どのようにして高品質なデータを収集するか
  • あるいは、どのようにして低品質データを除外・フィルタリングするか
    が、性能を左右することが改めて明らかになりました。

今後は、より厳密なデータ選定基準や自動的な品質評価手法を導入することで、学習の安定性と性能の向上が期待されます(Phase 2)。

4. アーキテクチャの改善

今回は、実装が比較的単純である Gr00t ベースの手法を試しましたが、Pi0.5 や SmolVLA のようなアーキテクチャの方がより適している可能性があります。今後は、より詳細な Ablation Studyを実施し、アーキテクチャの選択を体系的に検証していく必要があります。

まとめ

事前学習および事後学習を試した結果、残念ながら大きな成果を得ることはできませんでしたが、一連のプロセスを通じて多くの知見を得ることができたと考えています。

本来であれば、Ablation Study などを実施しながら段階的に検証を進める予定でしたが、想定以上にデータ処理やラベル生成に時間を要したため、十分な比較実験まで到達することはできませんでした。それでも、今回の試行を通じて今後の改善の方向性や実験体制の課題を明確にできた点は大きな成果でした。

主なボトルネックとしては、データの質に加え、学習パイプラインの非効率性が挙げられます。たとえば LeRobot のデータフォーマットでは、ビデオデータからフレームを逐次取得する仕組みになっていますが、エピソードの長さが長いデータほどロード時間が増大し、結果として学習全体のボトルネックとなっていました。

今後は、[2] で提案されているような高速データロードの導入など、学習パイプラインを抜本的に見直す必要性を強く感じました。また、今回は Gr00t のアーキテクチャを採用しましたが、Pi0 で用いられている Transfusion や SmolVLA のようなアーキテクチャを利用することで、より高い性能を得られる可能性があります。


残念ながら、Group 2 のメンバーはそれぞれの事情によりフェーズ 2 には参加できませんが、
これまでの進捗や知見は他のグループとも共有しています。今後、事前学習を進める際に今回の取り組みが少しでも参考になれば幸いです。

参考文献

[1] Danny Driess, Jost Tobias Springenberg, Brian Ichter, Lili Yu, Adrian Li-Bell, Karl Pertsch, Allen Z. Ren, Homer Walke, Quan Vuong, Lucy Xiaoyang Shi, Sergey Levine, "Knowledge Insulating Vision-Language-Action Models: Train Fast, Run Fast, Generalize Better"
[2] Kaiyuan Chen, Letian Fu, David Huang, Yanxiang Zhang, Lawrence Yunliang Chen, Huang Huang, Kush Hari, Ashwin Balakrishna, Ted Xiao, Pannag R Sanketi, John Kubiatowicz, Ken Goldberg, "Robo-DM: Data Management For Large Robot Datasets"

Discussion