Hugging Face出典公開日

シミュレーションで訓練し、実ロボットに展開する:Microduck と Isaac Lab 3.0

この記事は、Antoine Pirrone、Augustin Crampette、Matthieu Lapeyre、Coralie Deplanne、Anne-Charlotte Passanisi、Thomas Wolf との共著です。

この記事は、Antoine Pirrone、Augustin Crampette、Matthieu Lapeyre、Coralie Deplanne、Anne-Charlotte Passanisi、Thomas Wolf との共著です。

TL;DR

Microduck は、Pollen Robotics と Hugging Face が新たにリリースした手頃な価格のオープンソース二足歩行ロボットです。そして今、Isaac Lab と Newton を使って Microduck に歩行を訓練させることができます。ポリシーをテストし、ONNX としてエクスポートし、実ロボットに展開しましょう。Hugging Face Hub で共有したり、Microduck Arena で大会向けに検証したり、さらに NVIDIA Isaac Lab.

Introduction

シミュレーションで訓練された歩行ポリシーは、実ロボットのサーボが持つ摩擦、遅延、機械的な遊びにも対処できなければなりません。 NVIDIA Isaac Lab は、数千の GPU 並列シミュレーションにわたってポリシーを訓練するためのオープンソースフレームワークです。 Newton、アクチュエータモデリング、ドメインランダム化により、開発者は実ハードウェア向けにポリシーを準備できます。 Microduck は、このワークフローを実現します。シミュレーションで歩行ポリシーを訓練し、ONNX としてエクスポートし、実物の二足歩行ロボットに展開します。

このチュートリアルでは、Isaac Lab と Newton を使った Microduck の訓練と評価、そして展開のためのポリシーのエクスポート方法を順を追って説明します。その後、モデルを Hugging Face Hub で共有したり、互換性をテストして Microduck Arena で競争したり、自分自身の Microduck で活用したりできます。歩行は出発点であり、リンクされた例が Isaac Lab 3.0 のさらなる探索に役立ちます。

1. Isaac Lab をインストールし、Microduck の訓練を準備する

シミュレーションと訓練の部分には、以下が必要です:

  • 対応する NVIDIA GPU とドライバを備えた Linux ワークステーション。詳細は requirements.

  • Git と uv.

展開には、さらに以下が必要です:

  • 設定済みの物理 Microduck。

  • オンボードのロボットソフトウェアがインストールされ、動作していること。

  • ペアリングされたゲームパッドなど、対応する制御インターフェース。

クイックインストール

対応する NVIDIA GPU とドライバを備えた Linux 上で、uv をインストールし(すでに利用可能な場合は最初の 2 行をスキップ)、Isaac Lab をクローンし、依存関係をインストールします:

curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
git clone --branch develop https://github.com/isaac-sim/IsaacLab.git
cd IsaacLab
uv sync

Microduck のタスクとプリセットが利用可能であることを確認します:

uv run isaaclab list_envs --keyword MicroDuck --show_presets

2. すぐに訓練できる Microduck 環境を理解する

Isaac Labは、Microduckのロボットモデル、シーン、観測、アクション、報酬、ドメインランダム化をすでに提供しています。まずは平坦地形での歩行タスクから始めてください。粗い地形バリアントでは階段、斜面、不整地が追加されます。

図2. Microduck環境の比較:平坦地形(左)と不整地(右)。

ポリシーは61個の観測値を入力として受け取り、14個の関節位置を出力します。エクスポートおよびデプロイの際は、観測の順序、正規化、アクションのスケーリングを一貫させてください。詳細については、 Microduckタスク構成 を参照してください。観測、報酬、シミュレーション設定の全体が記載されています。

3. 並列Isaac Lab環境で移動学習を高速化する

Isaac Labは、シミュレートされた環境をGPU上で並列に実行することで、Microduckの移動学習を高速化します。Isaac LabはGPU間での分散学習も可能で、例えば16基のGPUを使って学習を高速化し、ロバスト性を高めることができます。この構成では、粗い地形とバックラッシュを有効にした状態で、毎秒最大1.25Mステップに到達できます。

このチュートリアルでは、MJWarpソルバーとともにNewtonを使用し、 ニュートンに拠点を置くBetter Actuator Models(BAM) サーボ応答をモデル化し、バックラッシュのプリセットとともに、ファームウェアコントローラ、モータの電気的制限、摩擦、遅延をモデル化することで、位置目標を現実的なサーボトルクに変換します。ポリシーをシミュレーションから転移できるようにするため、ドメインランダム化を利用します。各ダック(ロボット)ごとに、質量/重心、地面の摩擦、関節の慣性、エンコーダのオフセット、バッテリー電圧/電圧降下、コマンドの遅延をランダム化します。また、地形を変化させて押圧を加えるほか、不均一な摩耗を表現するために、関節ごとに独立してバックラッシュも変動させます。

バックラッシとはギアボックスにおける機械的な遊びのことで、関節が方向を変える際、噛み合うまで伝達機構がわずかに動いてしまう現象です。この効果をモデル化し、訓練中に関節ごとにばらつかせることで、ポリシーを実機ロボットで遭遇しうる差異に晒すことができます。

トレーニングを開始するには、次のコマンドを実行してください:

uv run isaaclab train \
  --rl_library rsl_rl \
  --task IsaacContrib-Velocity-Rough-MicroDuck \
  --num_envs 4096 \
  presets=backlash

展開には不整地を使用しましたが、代わりに次のコマンドで平坦な地形の環境を訓練することもできます:

uv run isaaclab train \
  --rl_library rsl_rl \
  --task IsaacContrib-Velocity-Flat-MicroDuck \
  --num_envs 4096 \
  presets=backlash

4. Microduckのウォーキングポリシーを評価し、ONNXにエクスポートする

Microduckの歩行ポリシーを実機ロボットに展開するには、シミュレーションで評価した後、ONNXにエクスポートします。Isaac LabのRSL-RL再生ワークフローは、TorchScript(policy.pt)とONNX(policy.onnx)の両ファイルを自動的にエクスポートします。policy.onnxをMicroduckのオンボードランタイムで使用する際は、観測の順序、正規化、アクションのスケーリングを学習時と一貫させてください。

Newton ビジュアライザで最新のチェックポイントを実行します:

uv run isaaclab play \
  --rl_library rsl_rl \
  --task IsaacContrib-Velocity-Rough-MicroDuck \
  --checkpoint latest \
  --num_envs 16 \
  --viz newton_gl \
  presets=backlash

置換 latest 具体的なチェックポイントへのパスを指定します。

図4. シミュレーションにおいて、Microducksが不整地の上で歩行ポリシーを実行している様子。

Microduckのポリシーをエクスポートする

展開には、ラフテレイン環境用のポリシーを使用します。現在のRSL-RLの再生実装は、TorchScriptとONNXの両ファイルをエクスポートします。それらは exported 選択された実行に関連付けられたディレクトリ:

exported/
├── policy.pt
└── policy.onnx

MicroduckのオンボードランタイムはONNXポリシーを読み込みます。使用するには policy.onnx ハードウェアへの引き継ぎのためである。この自動エクスポートはIsaac Labの RSL-RL再生バックエンド.

5. Hugging Faceでポリシーを共有し、Microduck Arenaで評価する

とともに policy.onnx エクスポート済みであれば、次のことができます:

  • それを比較してください Microduck Arena共有チャレンジで互換性のあるポリシーをテストし、リーダーボードの結果を比較するためのHugging Face Spaceです。Arenaは、61個の観測値、14個のアクション値、最大サイズ64 MiBのモデルを受け付けます。提出ガイドに従って互換性を確認し、チャレンジに参加してください。

  • 実物のMicroduck上で実行します。セクション4で観測インターフェースと行動インターフェースを確認した後、ONNXファイルをロボットのオンボードランタイムで使用します。セクション6ではハードウェアへの移行について説明しています。

  • 以下でシェアする: Hugging Face Hub. ポリシーをアップロードして、他の人が見つけてダウンロードできるようにしましょう。使い方を説明する短いモデルカードを追加することをお勧めします。他の人があなたの結果を再現できるよう、トレーニング設定を含めることもできます。

6. 実機のMicroduck上にONNX移動ポリシーをデプロイする

シミュレーションでポリシーを検証し、そのインターフェースを確認したら(section 4)、policy.onnx を設定済みの Microduck にデプロイします。

  1. ワークステーションからポリシーをコピーします。ROBOT_HOST はロボットのホスト名または IP アドレスに置き換えてください:
scp exported/policy.onnx microduck@ROBOT_HOST:/home/microduck/my_walking.onnx
  1. ロボットに接続し、現在のポリシーを確認します:
ssh microduck@ROBOT_HOST
robotctl policy list
  1. ロボットをスタンドに固定し、歩行ポリシーをロードします。すでに歩行中の場合は、ロードするとホーム姿勢に戻り、動作を再開します。
sudo robotctl policy load walk /home/microduck/my_walking.onnx
  1. ドキュメントに記載のコントロールを使って、立ち姿勢、ゆっくりとした歩行、旋回、停止をテストします。状態を監視し、必要に応じてデフォルトの歩行ポリシーを復元してください:
robotctl monitor
sudo robotctl policy reset walk

以下に従ってください: Microduck ポリシーローディングガイド ランタイムのセットアップと動作については、「Microduck ポリシーローディングガイド」を参照してください。図 5 は、デプロイされたポリシーが転倒に対して堅牢であることを示しています。Microduck はひっくり返されても足場を回復し、歩行を再開します。

図 5. Isaac Lab で学習した移動ポリシーによる実機 Microduck の歩行。

7. Isaac Lab で Microduck の学習を不整地および知覚タスクへ拡張する

Isaac Lab 3.0 は、移動、器用なマニピュレーション、視覚ベースのタスクにわたる GPU 並列のロボット学習を実現し、拡張可能な環境と設定可能な物理・レンダリングバックエンドを提供します。以下のサンプルやツールをぜひ試してみてください:

  • より複雑な移動運動: 適応する Microduckの悪路タスク 階段、坂道、不平整な地面に対応し、地形の難易度を段階的に上げるカリキュラムが用意されている。

  • 知覚とナビゲーションのタスク: Microduckの歩行ポリシーをヘッドカメラの深度とロボット状態の観測で拡張し、シミュレーション上で知覚ベースのタスクを探求します。下のGIFはスラント板の走行を示しています。カメラベースの観測についてはこちらで探求してください。 Kuka–Allegro の例 視覚対応のマニピュレーションのため。

  • 器用な操作: 次のものを試してみてください Kuka–Allegroの持ち上げと再指向タスク 腕と多指ハンドを訓練して物体を操作する。

  • カスタム環境: 次を使用してください プロジェクトジェネレーター 自分のタスクを作成するには、まずシミュレーション対応(SimReady)アセットを SimReady セントラルライブラリ`, そして観察と報酬を新しい課題に合わせて調整します。`

図7. NVIDIA Isaac Lab の並列トレーニングにより、シミュレーション上の Microducks がさまざまなスロープやプラットフォームの走行を練習しながら、バランスの維持と転倒の回避を学習する

図8. シミュレーションにおけるMicroduck知覚タスク。上に外部視点、下にRGB、深度、セグメンテーションの各ビューを示す。

次のウォーキングポリシーを構築しましょう

まずは Isaac LabにおけるMicroduckタスク、最初のウォーキングポリシーを訓練し、エクスポートしたONNXモデルを共有してください。 Hugging Face Hub。それを以下で検証する: Microduck Arena「、チャレンジを入力して、あなたのポリシーがどう比較されるか見てみましょう。その後、学んだことをもとに発展させてください——より荒れた地形を試したり、知覚を追加したり、独自のタスクを作成したりできます。」

リソース

謝辞

このワークフローは、Pollen RoboticsのMicroduckハードウェアおよびソフトウェアであるオリジナルの Microduck強化学習プロジェクト, BAMアクチュエータモデリングの研究、そしてIsaac LabとNewtonの統合に基づいて構築されています。

原文の出典

Hugging Face

内容について

原文の公開と権利は出典元に帰属します。

機械翻訳 · 原文をご参照ください