MicroduckとIsaac Lab 3.0:シミュレーションから実機へのロボットポリシーのトレーニングと展開
ロボティクスにおける重要な課題は、シミュレーションでトレーニングされたポリシーが実機で確実に動作することです。このワークフローは、MicroduckをNVIDIA Isaac Lab 3.0と統合することでこの課題を解決し、開発者が並列シミュレーションで堅牢な歩行ポリシーをトレーニングし、それを物理ロボットに直接展開できるようにします。
シミュレーションから実機へのワークフローの概要
NVIDIA Isaac Labは、数千のGPU並列シミュレーションでポリシーをトレーニングするために設計されたオープンソースフレームワークであり、シミュレーションと実世界のロボティクスのギャップを埋めるために重要です。Pollen Roboticsによって開発されたMicroduckロボットは、このワークフローのターゲットハードウェアとして機能します。Isaac LabをNewton(アクチュエータモデリングシステム)と組み合わせ、ドメインランダム化を実装することで、開発者はシミュレーションで歩行ポリシーをトレーニングし、それをONNXファイルとしてエクスポートし、物理的なMicroduckに展開できます。
このプロセスにより、研究者はシミュレーションの速度と安全性を活用しながら、摩擦、機械的遅延、サーボの遊びなどの実世界の要因を処理するのに十分な堅牢性を持つポリシーを確保できます。
トレーニング環境のセットアップ
シミュレーションとトレーニングのプロセスを開始するには、特定のハードウェアとソフトウェアの前提条件を満たす必要があります。シミュレーション部分には、サポートされているNVIDIA GPUとドライバを搭載したLinuxワークステーションが必要です。ソフトウェアの依存関係には、Gitとuvが含まれます。
最終的な展開フェーズには、設定済みの物理的なMicroduckロボットと、そのオンボードソフトウェアのインストール、およびペアリングされたゲームパッドなどのサポートされている制御インターフェースが必要です。
クイックインストール手順
インストールには、Isaac Labリポジトリのクローンと、uvを使用した依存関係の同期が含まれます。インストール後、ユーザーはuv run isaaclab list_envs --keyword MicroDuck --show_presetsコマンドを使用して、Microduckタスクとプリセットの利用可能性を確認できます。
Microduck環境の設定
Isaac Labは、ロボットモデル、シーン、報酬関数、ドメインランダム化機能を含む、Microduck用の完全でトレーニング可能な環境を提供します。初期タスクは平らな歩行に焦点を当てており、階段、坂道、不整地を導入するラフなバリアントも利用できます。
ポリシーインターフェースの詳細
歩行ポリシーは、固定インターフェースを使用して環境と対話します。61の観測値を受け入れ、14の関節位置を出力します。観測の順序、正規化、アクションスケーリングが、トレーニング、エクスポート、展開の各フェーズを通じて一貫していることが重要です。
移動トレーニングの高速化
移動トレーニングは、Isaac LabがGPU上で複数のシミュレーション環境を並列実行できる機能によって高速化されます。さらに、複数のGPUにわたる分散トレーニングを利用して、トレーニング速度とポリシーの堅牢性を向上させることができます。
実世界のダイナミクスのモデリング
シミュレーションからポリシーを確実に転送するために、トレーニングには高度な物理モデリングとランダム化技術が組み込まれています。
- アクチュエータモデリング: システムは、MJWarpソルバーとNewtonベースのBetter Actuator Models(BAM)を備えたNewtonを使用して、サーボ応答を正確にモデル化します。バックラッシュプリセットは、ファームウェアコントローラ、モーターの電気的限界、摩擦、遅延をモデル化し、位置ターゲットを現実的なサーボトルクに変換します。
- ドメインランダム化: ポリシーを実機に備えるために、各Microduckインスタンスのさまざまな物理パラメータがランダム化されます。これらのランダム化されたパラメータには、質量/重心、地面の摩擦、関節慣性、エンコーダオフセット、バッテリー電圧/サグ、コマンド遅延が含まれます。地形のバリエーションと外部からの押しも適用されます。
- バックラッシュシミュレーション: バックラッシュは、関節が方向を変えるときにギアボックス内で噛み合う前のわずかな動きとして定義され、トレーニング中に関節ごとにモデル化され、変化します。この露出により、ポリシーは物理ロボットで遭遇する機械的な遊びを処理できます。
トレーニングは、タスク(例:IsaacContrib-Velocity-Rough-MicroDuck)、環境数(例:4096)、およびbacklashプリセットを指定するコマンドを使用して開始できます。
ポリシーの評価とONNXエクスポート
ポリシーを物理ロボットに展開する前に、シミュレーションで評価し、ONNX形式にエクスポートする必要があります。Isaac LabのRSL-RL再生ワークフローがこの自動エクスポートを処理します。
評価プロセス
評価は、Newtonビジュアライザーで最新のチェックポイントを実行することによって実行されます。これにより、ユーザーはシミュレーション環境全体でのポリシーのパフォーマンスを観察できます。
ハードウェア引き渡しのためのエクスポート
展開のために、ポリシーはpolicy.onnxとしてエクスポートされます。このONNXファイルは、実行に関連付けられたexportedディレクトリに配置されます。Microduckのオンボードランタイムは、これらのONNXポリシーをロードして実行するように設計されています。
物理的なMicroduckへの展開
policy.onnxファイルがシミュレーションで検証されたら、標準のネットワークツールを使用して設定済みのMicroduckロボットに展開できます。
- 転送: ポリシーファイルは、
scpを使用してワークステーションからロボットのホストマシンにコピーされます。 - ロード: ポリシーは、
robotctl policy load walkコマンドを使用してロボットにロードされ、デフォルトの歩行ポリシーが置き換えられます。 - テスト: ロボットは、文書化されたコントロールを使用してテストし、立つ、歩く、曲がる、停止する動作を確認できます。展開されたポリシーは、倒された後に足場を回復する能力を含む堅牢性を示しています。
Isaac Lab 3.0で機能を拡張
Isaac Lab 3.0は、Microduckの機能を基本的な移動を超えて拡張するための広範なツールを提供し、複数のドメインにわたるGPU並列学習を可能にします。
- 高度な移動: ユーザーは、不整地タスク設定を適応させて、階段、坂道、不整地を含む地形の難易度を徐々に上げるカリキュラムを組み込むことができます。
- 知覚とナビゲーション: ヘッドカメラの深度とロボット状態の観測を含めることでポリシーを拡張でき、知覚ベースのタスクが可能になります。視覚対応の操作の例は、Kuka–Allegroの例で利用できます。
- 器用な操作: フレームワークは、Kuka–Allegroの持ち上げや向き直しタスクなど、操作タスクのためのアームと多指ハンドのトレーニングをサポートします。
- カスタム環境: 開発者は、プロジェクトジェネレータを使用してカスタムタスクを構築し、SimReady Central LibraryからSimReadyアセットを統合して、新しい課題に合わせて観測と報酬を調整できます。
コミュニティとリソース
エクスポートされたONNXポリシーは、Hugging Face Hubで共有したり、互換性のあるポリシーを共有課題と比較するために設計されたHugging Face SpaceであるMicroduck Arenaでテストしたりできます。このエコシステムは、ロボットAIモデルのコミュニティ貢献と検証を促進します。