DGX SparkでIsaac Lab を入れて物理シミュレータ Newton で四足歩行ロボットを動かしてみた

DGX SparkでIsaac Lab を入れて物理シミュレータ Newton で四足歩行ロボットを動かしてみた

2026.05.31

こんにちは。atsuです。

NVIDIA の Isaac Lab v3.0.0-beta に同胞されている Newton を、aarch64 の DGX Spark で動かしてみました。Unitree の四足歩行ロボット Go2 が staning → walking まで動きましたので、手順を残します。

この記事は Isaac Lab v3.0.0-beta (2026年5月時点) で確認した内容です。Newton backend も beta 段階で、正式版では挙動や手順が変わる可能性があります。

背景

Newton は Isaac Lab 3.0-beta から新しく入った物理エンジン(物理計算を担当する中身のライブラリ)で、Warp(NVIDIA の GPU 用 Python フレームワーク)と MuJoCo-Warp をベースに、たくさんの環境を GPU 上で同時に動かせるよう設計されています。自分の構成では PhysX が GPU で走らず CPU 側に落ちてしまって 1 ステップ進める速度が伸び悩んでいたので、GPU でそのまま回る Newton を試しに使ってみよう、というのが今回の動機です。

物理エンジン 中身 特徴
PhysX (従来) NVIDIA PhysX 5(C++ / CUDA で書かれた物理ライブラリ) Isaac Sim の標準。GPU で走らせる経路もあるが構成次第。剛体・多関節・接触の扱いが成熟
Newton (3.0 から追加) Warp で書かれた、複数の解法を切り替えられる物理基盤。中で MuJoCo-Warp などを呼ぶ GPU 上で大量の環境を同時に走らせるのが得意。MuJoCo 系の接触モデルも使える

環境

項目 内容
ハードウェア NVIDIA DGX Spark (GB10, aarch64, 93 GB RAM)
OS Ubuntu 24.04, kernel 6.17
GPU ドライバ NVIDIA driver 580.126.09 (CUDA 13)
Python 3.12 (system) + uv を venv 管理に使用
$ uname -m
aarch64
$ nvidia-smi --query-gpu=name,driver_version --format=csv,noheader
NVIDIA GB10, 580.126.09

インストール手順

Isaac Sim 6.0

NVIDIA NGC catalog から isaac-sim 6.0.0-rc.13 を取得して ~/isaac/_isaac_sim/ に置きました。PhysX baseline (IsaacLab v2.3.0) と Newton 用 (IsaacLab-newton、v3.0.0-beta) の両方で同じ _isaac_sim を symlink して共有しています。

uv-venv で IsaacLab-newton

自分の環境では system Python をそのままにしておきたかったので、uv venv でツリーを切り分ける構成を選びました。

git clone -b v3.0.0-beta https://github.com/isaac-sim/IsaacLab.git ~/isaac/IsaacLab-newton
cd ~/isaac/IsaacLab-newton
uv venv ~/isaac/env_isaaclab --python 3.12
. ~/isaac/env_isaaclab/bin/activate
./isaaclab.sh -i newton              # newton 系 wheel をまとめて解決

mujoco-warp 3.8.1warp-lang 1.13.0isaaclab_newton 0.5.9 あたりが入っていれば動きました。

Newton 起動

isaaclab.sh 経由で play_go2_newton_teleop.py--visualizer newton 付きで呼ぶのが手早かったです。

cd ~/isaac/IsaacLab-newton
echo Yes | ./isaaclab.sh -p ~/go2-digital-twin/isaac/isaaclab/play_go2_newton_teleop.py \
    --num_envs 1 \
    presets=newton_mjwarp \
    --visualizer newton

presets=newton_mjwarp で MJ-Warp ソルバー + Warp accelerator が選ばれます。立ち上がるとこのあたりが出てきます:

[newton_teleop] env ready — listening on /cmd_vel
[newton_teleop] actor MLP layout: [45, 512, 256, 128, 12]

policy は unitree_rl_labmodel_47100.pt (PPO, 45-d obs) を読ませています。

可視化は Newton 内蔵 viewerRerun が手元では使いやすかったので、--visualizer newton--visualizer rerun を選んでいます。Rerun を使うときは:

echo Yes | ./isaaclab.sh -p ~/go2-digital-twin/isaac/isaaclab/play_go2_newton_teleop.py \
    --num_envs 1 \
    presets=newton_mjwarp \
    --visualizer newton,rerun

で並行起動できて、ブラウザで開くと web viewer になります。

04_go2_newton_walking

NewtonViewer での操作

--visualizer newton で開く Newton 内蔵 OpenGL viewer (ViewerGL 系) の操作です。Warp の examples と同じ感覚で動かせます。

マウス

操作 結果
左ドラッグ 視点 orbit
右ドラッグ (もしくは Shift + 左) パン
ホイール ズーム
中ドラッグ 距離

キー (viewer ウィンドウにフォーカス)

キー 動作
Space 物理ポーズ
S ポーズ中に1フレームだけ進める
R 環境リセット
H UI 更新の表示切替
G グリッドの表示切替
W / A / S / D カメラ前後左右 (FPS 風)
Q / E カメラ上下
F ロボットにカメラをフォーカス
19 プリセット視点 (top-down, front, side, iso, …)
[ / ] 影 トグル
Esc 終了

まとめ

  • Isaac Sim 6.0 + Isaac Lab 3.0-beta + Newton 1.2.0 の構成で、aarch64 (DGX Spark) でも Go2 を walking まで動かせました。
  • env_step は手元の計測で PhysX (CPU) ~18 → Newton(GPU) ~343 ぐらいになり、体感でもだいぶ軽くなりました。
  • 可視化は Newton 内蔵 viewer と Rerun を使い分けると、ローカル確認とブラウザ共有のどちらにも対応できて便利でした。

参考文献

NVIDIA Isaac Lab v3.0-beta release notes — Newton backend が同梱された経緯

この記事をシェアする

関連記事