Robotics

NVIDIA Isaac Lab と Newton で四足歩行の移動ポリシーをトレーニングし、布の操作をシミュレートする

Reading Time: 3 minutes

物理演算はロボティクス シミュレーションで重要な役割を果たし、ロボットの挙動や現実的な環境との相互作用を正確に仮想的に再現するための基盤を提供しています。こうしたシミュレーターを利用することで、研究者やエンジニアは、安全かつ迅速で費用対効果の高い方法で、ロボット制御アルゴリズムや試作設計を訓練、開発、検証できます。 

しかしながら、シミュレーションはしばしば現実と一致しないことがあり、この問題はシム トゥ リアル ギャップ (sim-to-real gap) として知られています。ロボティクス開発者には、さまざまな種類のソルバーをサポートしつつ、実世界の物理演算をモデル化できる、統合的でスケーラブルかつカスタマイズ可能なソリューションが必要です。  この記事では、四足歩行ロボットをある地点から別の地点へ移動させる訓練方法と、産業用マニピュレーターを使って衣服を折りたたむマルチフィジックス シミュレーションのセットアップ方法について説明します。このチュートリアルでは、NVIDIA Isaac Lab 内で Newton を使用します。

Newton とは何でしょうか?

Newton は、ロボットの学習と開発を進展させる目的で、NVIDIA、Google DeepMind、Disney Research によって開発され、Linux Foundation によって管理されているオープンソースで拡張可能な物理演算エンジンです。

Newton は NVIDIA WarpOpenUSD を基盤に開発されており、ロボットが複雑な作業を、より正確に、より迅速に、そして高い拡張性をもって習得できるようにします。Newton は、MuJoCo Playground や Isaac Lab などのロボット学習フレームワークと互換性があります。Newton Solver API は、MuJoCo や Warp を含むさまざまな物理演算エンジンがテンソルベースのデータ モデル上で動作できるようにするインターフェイスを備え、Isaac Lab のトレーニング環境に簡単に統合できます

図 1. Newton は、ロボット システムの物理モデルと状態を記述するための GPU 対応インターフェイスを提供するスタンドアロン Python パッケージです

Newton の中心にあるのは、数値積分と制約解決のためのソルバー モジュールです。ソルバーは制約ベースまたは力ベースであり、直接法または反復法を用いる場合があり、また、最大座標系あるいは縮約座標系の表現を用いる場合があります。 

共通のインターフェイスと共有のデータ モデルを使用することで、MuJoCo Warp、Disney Research Kamino ソルバー、あるいは独自のソルバーを実行する場合でも、Newton とのやり取りは一貫しています。このモジュール式アプローチにより、衝突処理、逆運動学、状態管理、タイムステッピングのロジックを、アプリケーションコードを書き直すことなく再利用できます。

学習用として、Newton はテンソルベースの API を備え、物理演算の状態を PyTorch や NumPy 互換の配列として公開します。これにより効率的なバッチ処理が可能になり、Isaac Lab などのロボット学習フレームワークとシームレスに統合できます。Newton Selection API を利用すれば、トレーニング スクリプトから関節の状態を取得したり、動作を適用したり、その結果を学習アルゴリズムに渡したりといった処理を、統一されたシンプルなインターフェイスでまとめて実行できます。

Google DeepMind が開発した MuJoCo Warp は Newton のソルバーとして完全に組み込まれており、さらに DeepMind スタック内の MJX や Playground でも利用されています。これによって、モデルやベンチマークを Newton、Isaac Lab、MuJoCo の環境間でスムーズに行き来できるようになり、移行の手間が最小限に抑えられます。 

最後になりますが、Newton とその関連ソルバーは Apache 2.0 ライセンスで公開されているため、コミュニティが自由に利用、拡張、そして開発に貢献することができます。

Newton Beta リリースのハイライトは何ですか?

Newton Beta リリースのハイライトは次のとおりです。 

  • Newton メイン ソルバーである MuJoCo Warp は、GeForce RTX 4090 の MJX よりも移動最大 152 倍、操作が最大 313 倍速くなります。NVIDIA RTX PRO 6000 Blackwell シリーズは、MuJoCo Warp で最大 44%、MJX で最大 75% の高速化を達成します。
  • 次世代の Isaac Lab バックエンドとして使用される Newton Beta は、MuJoCo Warp でモノを手の中で器用に操作させるとき、PhysX と比べて最大 65% 速く動かせます。
  • 衣類など、薄く形を変えるもの用の Vortex Block Descent (VBD) ソルバーや、粒状の物質用の暗黙的 Material Point Method (MPM) ソルバーのパフォーマンスと安定性を向上させました。 

Isaac Lab で Newton を使用して四足動物の移動ポリシーを訓練する方法

Isaac Lab の新しい Newton 物理演算エンジン統合は、ロボティクスの研究開発のためのより高速で堅牢なワークフローを可能にします。 

このセクションでは、四足移動ポリシーをトレーニングし、シミュレーター全体でそのパフォーマンスを検証し、実際のデプロイに備えるエンドツーエンドの例を紹介します。ANYmal ロボットをケース スタディとして使用し、このパワフルなトレーニング、検証、展開プロセスを実演します。

ステップ 1: Newton で移動ポリシーをトレーニングする

最初のステップは、リポジトリを設定し、Isaac Lab の強化学習スクリプトのひとつを使用してゼロからポリシーをトレーニングすることです。この例では、rsl_rl フレームワークを使用して平坦で硬い地形を歩くように ANYmal-D ロボットをトレーニングします。GPU 並列化は、数千の環境での同時学習を可能にし、ポリシーが短時間で収束されます。

最大のパフォーマンスを得るためにヘッドレス モードでトレーニングを開始するには、次のコマンドを実行します。

./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py 
--task Isaac-Velocity-Flat-Anymal-D-v0 --num_envs 4096 --headless

Newton ベータ版リリースにより、新しい軽量の Newton Visualizer を使用し、Omniverse GUI のような高い負荷なくトレーニングの進捗状況を監視できるようになりました。シンプルに --newton_visualizer フラグを追加するだけです。

./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py 
--task Isaac-Velocity-Flat-Anymal-D-v0 --num_envs 4096 --headless 
--newton_visualizer

トレーニングが終わると、次のステージのためのポリシー チェックポイント (.pt ファイル) の準備ができています。

図 2. Newton Visualizer を使って可視化した RL トレーニングのタイムラプス

ステップ 2: Sim2Sim 転移でポリシーを検証する

Sim2Sim 転移は、ポリシーが単一の物理演算エンジン固有の特性に過剰に適合しないようにするための重要な健全性チェックです。PhysX と Newton のようなシミュレーター間で転移が成功するポリシーであれば、実際のロボットでも動作する可能性がはるかに高くなります。

大きな課題のひとつは、物理演算エンジンが変われば、ロボットの USD を解析し、関節に命令する処理も変わってしまうことがあることです。これを解決するために、単純な YAML マッピング ファイルを利用し、ポリシーの観察と行動を再マッピングします。

PhysX ベースの Isaac Lab で Newton でトレーニングされたポリシーを実行するには、付属の転送スクリプトを使用します。

./isaaclab.sh -p scripts/newton_sim2sim/rsl_rl_transfer.py \
    --task=Isaac-Velocity-Flat-Anymal-D-v0 \
    --num_envs=32 \
    --checkpoint <PATH_TO_POLICY_CHECKPOINT> \
    --policy_transfer_file
scripts/sim2sim_transfer/config/newton_to_physx_anymal_d.yaml

この転送スクリプトは、isaac-sim / IsaacLab GitHub リポジトリから入手できます。

動画 1. Newton バックエンドでトレーニングされた ANYmal-D ポリシーが PhysX ベースの Isaac Lab で正常にデプロイされ、Sim2Sim 転移が動作していることを示します

ステップ 3: Sim2Real デプロイの準備

ワークフローの最終段階は、シミュレーションでトレーニングされたポリシーを実際のロボットに移すことです。

この例では、ANYmal-D ロボットのポリシーを、Newton バックエンドを利用し、すべて標準の Isaac Lab 内でトレーニングしました。トレーニング プロセスは、IMU やジョイント エンコーダーからのデータなど、実際のロボットのセンサーで利用できるような観測値のみを使用するよう、意図的に制限されていました (つまり、トレーニング中、特権情報は使用されていません)。

ETH Zurich Robotic Systems Lab (RSL) の NVIDIA パートナーの助けを借りて、このポリシーを実際の ANYmal ロボットに直接デプロイしました。その結果、ハードウェア テストでは、ロボットが歩行に成功し、Isaac Lab でのトレーニングから実世界のシステムでのテストまでの直接的な道のりを示しました (動画 2)。

動画 2. Newton バックエンドを備えた実験版の Isaac Lab ですべてトレーニングし、ハードウェアに直接転送されたポリシーの命令で歩いてみせる実際の ANYmal ロボット

トレーニング、検証、デプロイからなるこの完全なプロセスは、シミュレーションから実世界のロボティクスの成功までの道のりを Newton が可能にすることを示しています。

Newton スタンドアロン エンジンによるマルチフィジックス

マルチフィジックス シミュレーションは、単一のフレームワーク内で、剛性体 (ロボットの手など) と形を変える物体 (布など) との間の結合的相互作用を捉えます。これにより、ロボットの設計、制御、タスク パフォーマンスのより現実的な評価とデータ駆動型の最適化が可能になります。

Newton は Isaac Lab と連動するが、開発者はスタンドアロン モードで直接 Python から使用し、複雑な物理システムで実験できます。 

この解説では、Newton の主要な機能のひとつである、異なる物理特性を持つ混合システムのシミュレーションを紹介します。形を変える布を操作する剛性ロボット アームの例を探り、Newton API で複数の物理演算ソルバーを簡単に組み合わせ、単一のリアルタイム シミュレーションを作り出す仕組みを示します。

ステップ 1: インタラクティブ デモを起動します

Newton には、簡単に実行できる一連の例が付属しています。Franka ロボット アームと布のデモは、Newton リポジトリのルートから 1 回のコマンドで起動できます。

まず、環境が設定されていることを確認してください。

# Set up the uv environment for running Newton examples
uv sync --extra examples

次に、布の操作例を実行します。

# Launch the Franka arm and cloth demo
uv run -m newton.examples cloth_franka

インタラクティブ ビューアーが開いたら、GPU 対応シミュレーションをリアルタイムで視聴できます。Franka-cloth デモでは、GPU ベースの VBD Cloth ソルバーが使用されています。RTX 4090 で約 30 FPS で動作し、シミュレーション全体で貫通のない接触を保証します。 

GPU-IPC (GPU ベースの Incremental Potential Contact ソルバー) など、同様に貫通回避ダイナミクスを実現する GPU ベースのシミュレーターと比較して、本例は 300 倍以上の性能を示し、布の操作では現時点で最速級の完全非貫通デモと位置付けられます。

動画 3. Newton のスタンドアロン エンジンは、剛性体と形を変える物理演算を組み合わせた布の操作デモを実行します。このビジュアライゼーションは、NVIDIA Omniverse Kit でレンダリングされます

ステップ 2: マルチフィジックス カップリングを理解する

このデモは、異なる動的挙動を持つシステムが相互作用するマルチフィジックスの優れた例です。これは、専門のソルバーを各コンポーネントに割り当てることによって達成されます。example_cloth_franka.py ファイルを見ると、ソルバーがどのように初期化されているかがわかります。

# Initialize a Featherstone solver for the robot
self.robot_solver = SolverFeatherstone(self.model, ...)
 
# Initialize a Vertex-Block Descent (VBD) solver for the cloth
self.cloth_solver = SolverVBD(self.model, ...)

ロボット ソルバーは、SolverFeatherstoneSolverMuJoCo など剛体シミュレーションをサポートする別のソルバーに変更するだけで、簡単に切り替えることができます。

魔法は、こうしたソルバーが調整されるシミュレーション ループで起こります。この例では一方向カップリングを使用しており、剛体は変形体に影響を与えますが、その逆はありません。これは布操作のユース ケースにおいて、布がロボットのダイナミクスに与える影響を無視できるため、許容されます。シミュレーション ループの論理は単純です。

  • 布を更新する: cloth_solver は、ロボットからの衝突に反応して布の動きをシミュレートします。
  • ロボットを更新する: robot_solver は Franka アームの状態を進めます。腕は運動学的物体として機能します。
  • 衝突を検出する: エンジンは、新たに配置されたロボットと布のパーティクルの間の衝突をチェックします。
# A simplified view of the simulation loop in example_cloth_franka.py
 
def simulate(self):
    for _step in range(self.sim_substeps):
         
        # 1. Step the robot solver forward
        self.robot_solver.step(self.state_0, self.state_1, ...)
 
        # 2. Check for contacts between the robot and the cloth
        self.contacts = self.model.collide(self.state_0, ...)
 
        # 3. Step the cloth solver, passing in robot contact information
        self.cloth_solver.step(self.state_0, self.state_1, ..., self.contacts, ...)

この明示的なユーザー制御ループは Newton API の力を示すものであり、研究者は異なる物理システム間の結合方法を細部まで自在に調整できます。

チームは Newton をさらに拡張し、カップリングの深度と統合度を上げる予定です。その一例として、双方向の結合が検討されています。たとえば、ロボットが土壌や泥などの変形する地面上を移動する場面では、ロボットが地面に影響を与えるだけでなく、地面も歩行中のロボットに力を及ぼすといった相互作用が重要になります。チームはさらに、特定のソルバーの組み合わせにおいて、システム間の力のやり取りを自動的に処理できるように、暗黙的なカップリングの導入も検討しています。

エコシステムでは Newton の採用はどのように進んでいるか?

Newton のオープン エコシステムは急速に拡大しており、一流の大学や企業が専門のソルバーとワークフローを統合しています。触覚センシングや布シミュレーション、精緻な操作から不整地での移動まで、さまざまな分野での共同研究は、Newton がロボット学習の発展とシミュレーションと現実とのギャップ解消のための共通基盤となっていることを示しています。

ETH Zurich Robotic Systems Lab (RSL) は、Newton を活用して土木作業、とりわけ重機の自動化におけるマルチフィジックス シミュレーションを積極的に進めています。Newton の暗黙的 MPM (マテリアルポイント法) ソルバーを使い、土や砂利、石が重機にぶつかるといった粒状体の相互作用をシミュレーションしています。 

同時に、ETH は Warp をロボティクスやグラフィックス研究にも幅広く利用しており、たとえば、展開型の歩行制御に向けた微分可能シミュレーション、Gaussian splats を用いた軌道最適化 (FOCI)、さらに GarmentCodeData データセットを活用した大規模な 3D 衣服モデリングなどを行っています。

動画 4. Newton は、粒状物質の山と重機の相互作用を捉えるために使用されます。デモ クレジット: ETH Zurich の Maximilian Krause、Lorenzo Terenzi、Lennart Werner

Lightwheel は Newton への貢献を積極的に進めており、とりわけ土壌やケーブルなどの変形体を扱うマルチフィジックスのシナリオにおいて、SimReady アセットの開発やソルバーの最適化に取り組んでいます。下のデモでは、Implicit MPM ソルバーを大規模な環境に適用し、複数の素材から成る柔軟な地形上を移動する ANYmal 四足歩行ロボットの挙動をシミュレーションしています。

動画 5. ANYmal 四足動物は砂や砂利などの複数の物質で構成された非剛性地形で動作します

北京大学 (PKU) は、Newton を触覚分野にも広げるために、IPC ベースのソルバー Taccel を組み込み、ロボティクス マニピュレーターにおけるビジョンベースの触覚センシングを再現しています。PKU の研究者たちは、Newton の GPU 加速かつ微分可能なアーキテクチャを活用し、触覚操作や変形物体操作に重要となる微細な接触の挙動を再現できるようになっています。

動画 6. Taccel を用いた Tac-Man 操作のシミュレーションは、現実での動作とほぼ一致しており、シミュレーションと実世界との乖離はごくわずかです。

Style3D は、布や軟体のシミュレーションにおける深い専門知識を Newton に持ち込み、複雑な相互作用を伴う布や形を変える物体の高精度なモデリングを可能にしています。Style3D ソルバーの簡易版はすでに Newton に統合されており、数百万の頂点を扱う大規模シミュレーションを実行できるようにする API を上級ユーザー向けに公開する計画があります。

動画 7. Newton を利用し、衣服や形を変える物体を、複雑な相互作用を含め、高精度にモデリングする

ミュンヘン工科大学 (TUM) は Newton を利用し、実機で検証された巧みな操作ポリシーをシミュレーションに戻して実行しており、シミュレーションと現実をつなぐ大きな一歩を踏み出しています。MuJoCo Warp では、すでに 4,000 の並列環境を用いたポリシー トレーニングが機能しています。次の目標は、ポリシーをハードウェアに移行し、その後、空間分解型の触覚スキンを用いた精密操作へとフレームワークを拡張することです。 

TUM AIDX Lab は Warp を活用し、触覚手中操作エージェントの学習に関するロボティクス研究を加速しました。その手法をご覧ください。AIDX Lab は Newton を利用してロボット学習研究を前進させています。その手法をご覧ください。

動画 8. 器用な操作のための学習済みポリシーを実際のロボットで検証したものをシミュレーションに戻す目的で Newton が利用されています

Newton を始める

Newton 物理演算エンジンは、ロボティクス研究に欠かせない高精度のシミュレーションを可能にします。モジュール性、拡張性、シミュレーター非依存の設計により、多様なソルバーを柔軟に組み合わせ、効率的なロボット学習を可能にします。 

Newton はオープンソースのコミュニティ主導プロジェクトとして公開されており、開発者は自由に利用・配布・拡張できます。独自のソルバーを追加したり、エコシステムへ還元する形で貢献したりすることも可能です。

韓国のソウルで 9 月 27 日~ 10 月 2 日まで開催される CoRL と Humanoids で発表される研究の詳細をご覧ください。

また、2025 BEHAVIOR Challenge にご参加ください。これは推論、異動、操作を試験するためのロボティクス ベンチマークであり、50 件の家事と 10,000 件の遠隔操作が実演されます。

NVIDIA のニュースレターを購読し、LinkedInInstagramXFacebook で NVIDIA Robotics をフォローし、最新情報を入手してください。NVIDIA ドキュメントYouTube チャンネルをご覧ください。NVIDIA Developer Robotics フォーラムにご参加ください。今すぐ無料の NVIDIA Robotics Fundamentals コース に登録し、ロボティクスの旅を始めてください。

Tags