Embodied.cpp: A Portable Inference Runtime of Embodied AI Models on Heterogeneous Robots
本論文は、多様なエッジロボットにおける多様なエンボディドAIモデル(VLAやWAMなど)の断片化されたデプロイメントを統一するために設計された、ポータブルなC++推論ランタイムであるEmbodied.cppを紹介するものであり、これは低遅延かつマルチレートのクローズドループ制御を可能にするモジュール式の5層アーキテクチャを提供することで、メモリ効率とタスク成功率を大幅に向上させるものである。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたは、非常に高度で知的なロボットの脳を構築したと想像してください。それは、見て、言葉を理解し、コップを持ち上げるために腕を動かす計画を立てることができます。しかし現在、この脳を実際のロボットに動作させることは、F1のエンジンを、ダクトテープとスイスアーミーナイフを使って自転車のフレームに組み込もうとするようなものです。
現在、科学者が新しいロボットの脳を作るたびに、彼らは全く新しい一連の「グルーコード(脳とロボットのセンサーやモーターを接続するソフトウェア)」を書かなければなりません。このコードはしばしば乱雑で、Pythonで書かれており、特定のコンピュータでしか動作しません。もしロボットや脳を変更した場合、接続全体を最初から作り直す必要があります。
「Embodied.cpp」の登場です。
Embodied.cppを、ロボットの脳のための、汎用で高性能なアダプターキットだと考えてください。これはC++(高速かつ効率的な言語として知られています)で書かれたソフトウェアの一部であり、あらゆる新しいロボットの脳と、あらゆるロボットの身体(チップ上の小さなロボットから、巨大なワークステーション・ロボットまで)との間の架け橋として機能します。
以下に、いくつかの簡単な比喩を用いて、その仕組みを説明します。
1. 問題点:「一つですべてに適合するものは、何にも適合しない」アダプター
スマートホームシステムを想像してみてください。ある照明は1秒ごとに点滅し、サーモスタットは1分ごとに温度を確認し、セキュリティカメラは1時間ごとに録画します。
- 従来の方法: デバイスごとに、個別のタイマー、個別のセンサー、個別のスイッチを構築します。新しいデバイスを追加する場合、回路全体を新しく配線し直さなければなりません。
- 論文が指摘する問題: ロボットの脳も同様です。一部のパーツ(目など)はゆっくりと更新される必要がありますが、他のパーツ(モーター制御など)は超高速で更新される必要があります。既存のソフトウェアは、すべてを同じ速度で実行しようとするため、非効率的であり、遅延の原因となります。
2. 解決策:モジュール式の「レゴ」システム
著者らは、Embodied.cppを、5つの特定のレイヤーを持つハイテクなレゴセットのように設計しました。
- 入力アダプター(Input Adapters): これらはユニバーサル・プラグのようなものです。ロボットがカメラを見ているのか、触覚センサーを感じているのか、あるいは力センサーを読み取っているのかに関わらず、このレイヤーはそれを脳が理解できる言語に翻訳します。
- シーケンスビルダー(Sequence Builders): これは、本を棚に並べる前の司書のように、データを整理します。
- バックボーン実行(Backbone Execution): これはメインの思考が行われる「エンジンルーム」です。
- ヘッドプラグイン(Head Plugins): これらは特化したツールです。あるロボットには「把握」ツールが必要かもしれませんが、別のロボットには「歩行」ツールが必要かもしれません。エンジンを再構築することなく、適切なプラグインをパチンとはめ込むだけです。
- デプロイメントアダプター(Deployment Adapters): これは出力レイヤーであり、現実世界と対話し、ロボットのモーターやシミュレーションソフトウェアにコマンドを送信します。
3. 3つのスーパーパワー
この論文は、このシステムが既存のものよりも優れている具体的な3つの方法を強調しています。
マルチレート実行(オーケストラの指揮者):
ロボットにおいて、「目」は「指」と同じ速さで瞬きする必要はありません。Embodied.cppは指揮者のように機能し、目がゆっくりとしたリズムで動き、指が速いリズムで動くことを、同一のシステム内で可能にします。古いソフトウェアは、全員に同じリズムで歩ませようとするため、エネルギーを浪費し、ラグを引き起こします。レイテンシ優先制御(レーシングカーのドライバー):
クラウドコンピューティング(AIとのチャットなど)では、速度は「一度にどれだけ多くのユーザーをサービスできるか」で測定されます。しかし、ロボットの場合、速度は**「単一のコマンドに対してどれだけ速く反応できるか」**で測定されます。もしロボットが落下する物体をキャッチしようとしているなら、計算の「バッチ(一括処理)」を待つことはできません。即座の回答が必要です。Embodied.cppは、異なる種類のハードウェア(小さなチップから大きなコンピュータまで)において、この瞬時の反応時間を優先するように構築されています。拡張可能なインターフェース(ユニバーサルリモコン):
ロボットは単に「言葉」や「トークン」を出力するだけではありません。「腕を30度動かす」「2秒後にボールがどこにあるかを予測する」「優しく握る」といった、複雑なものを出力します。Embodied.cppは、新しいロボットが発明されるたびに書き直すことなく、これらの特殊でカスタムされた出力を処理できるように構築されています。
4. 結果:それは機能するか?
著者らは、このシステムを2種類の異なるタイプのロボットの脳でテストしました。
- 「視覚・言語」脳(VLA): 彼らは2つのモデル(HY-VLAとpi0.5)をテストしました。システムは、ロボットがタスクを完了するように正常に制御できました。
- 結果: 一方のモデルは100%、もう一方は91%の成功率を記録しました。これは、このソフトウェアが、複雑な脳を実際のハードウェア上でクラッシュさせることなく実行できることを証明しました。
- 「世界・行動」脳(WAM): これらは、未来を予測しようとする(例:ボールがどこに転がるかを推測する)新しいタイプのモデルです。彼らはこの脳の一部をテストしました。
- 結果: この新しいソフトウェアを使用することで、その部分の脳を実行するために必要なメモリを、312 MiBから88 MiBへと削減しました。これは、重いバックパックを小さなポーチに縮小するようなものであり、より小さく安価なロボットでの実行をはるかに容易にします。
まとめ
Embodied.cppは、ロボットの知能のための、ポータブルで高速なエンジンです。これは、新しいロボットを作るたびに車輪を再発明しなければならないという状況を終わらせます。新しいプロジェクトごとに乱雑なカスタムコードを書く代わりに、彼らは新しいロボットの脳をこのユニバーサルなシステムにプラグインすることができ、そうすれば、高速かつ効率的に、ほぼあらゆるハードウェア上で、ただ動作するのです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。