PAI Physical AI Notebook 7:Newton新物理引擎与Rerun可视化测评
此前在PAI Physical AI系列Notebook中,涉及仿真遥操作、强化学习等任务时,通常需要Omniverse做可视化、PhysX做物理引擎。这两者又高度依赖RT Core GPU和云端可视化方案。虽然PAI曾提供noVNC方案(详见《PAI Physical AI Notebook详解6:Isaac Lab分布式感知强化学习》)实现Web端可视化,但这些依赖增加了技术栈复杂度,也抬高了选型门槛。
NVIDIA Newton作为基于Warp的新一代高性能物理引擎,在可微分物理、柔性体仿真等方向扩展性远超传统PhysX后端。新版Isaac Lab已实现物理引擎与可视化后端解耦,同一套任务代码可灵活切换Omniverse、Newton、Rerun三种渲染器。其中Rerun是轻量级开源可视化工具,支持Web端实时渲染与回放,无需搭建Omniverse环境即可查看训练过程的三维效果,部署门槛显著降低。
在PAI-DSW中,Newton+Rerun构成了更贴合云原生的可视化方案:后端通过Warp接口,Newton引擎可驱动GU8T、GU8E、GU8TE等CUDA核心GPU完成视觉渲染,不再强制要求GU8IS、GU8V等RT核心GPU,资源复用效率更高;前端则直接将Rerun窗口嵌入Notebook Web界面,无需通过VNC启动Isaac Lab窗口。
PAI的Notebook Gallery已预置这套最佳实践:
https://gallery.pai-ml.com/#/preview/deepLearning/cv/isaac_la...
启动DSW并完成环境配置
通过Notebook Gallery启动DSW,选用Gallery指定的镜像,可支持GU8T等仅配备CUDA Core的机型规格。
DSW启动后,在Notebook中执行对应Cell以下载代码并配置运行环境。
运行一键测试脚本,验证环境完整性:
日志输出如上,表示环境已就绪。
使用Rerun观察Newton渲染过程
Isaac Lab现已将物理引擎与可视化后端解耦,同一套任务/场景代码可自由切换可视化器(Omniverse、Newton、Rerun),后两者均基于Newton中的visualizer实现。本示例使用Rerun visualizer,重点展示其Web端渲染能力。
首先将visualizer类型指定为rerun:
上述命令中,--visualizer参数指定渲染方式,可选值包括rerun、newton、omniverse。实际使用时可同时启用多个visualizer,但若包含omniverse,需额外安装Isaac Sim。
接下来实例化Isaac-Cartpole-RGB-Camera-Direct-v0任务对应的Environment。这是一个经典倒立摆控制场景,通过Newton渲染后借助Rerun观察倒立摆移动时的姿态变化。
注意,配置RerunVisualizerCfg时必须设置keep_historical_data=True,Rerun提供record/replay功能,可记录仿真全过程状态。
首次运行此代码会编译warp kernel,需等待几秒。成功后会输出"[INFO]: Completed setting up the environment…"。随后通过env.reset()初始化仿真环境:
接着调用rerun viewer,在DSW环境下将直接内嵌显示可视化窗口,支持鼠标拖拽调整视角:
然后执行任务,Rerun窗口会实时展示单臂摆的运动轨迹。此处运行了100步,可根据需要修改数值调整仿真时长:
查看视频
单卡与多卡强化学习
基于Newton物理引擎,可利用GU8T等CUDA Core资源在DLC中进行单卡或多卡强化学习。
单卡强化学习
使用以下任务镜像:
dsw-registry-vpc.cn-beijing.cr.aliyuncs.com/pai-training-algorithm/isaac-sim:isaaclab-newton-v2-1-20260210
启动命令脚本:
# 设置环境变量
export EXT_ROOT=/mnt/data/NB12
cd ${EXT_ROOT}/code/Pai-PhysxTrainTools
# 启动训练脚本
/workspace/isaaclab/isaaclab.sh -p ./Examples/IsaacLabNewton/rl_games/train.py --task Isaac-Cartpole-RGB-Camera-Direct-v0 --headless --num_envs 512 --max_iterations 12000
参数说明:
- rl_games:当前版本IsaacLab_newton分支对CartpoleRGBEnv仅适配了rl_games库
- --headless:关闭所有可视化以提升训练速度。若不指定–visualizer,默认即为headless模式
- --num_envs:根据硬件指定并行环境数,此处使用512个环境并行训练
- --max_iterations:训练迭代次数,设为12000步。实际观察训练曲线显示该任务收敛较快,可酌情调小
多卡强化学习
在DLC中启动多卡强化学习脚本:
# 设置环境变量
export EXT_ROOT=/mnt/data/NB12
cd ${EXT_ROOT}/code/Pai-PhysxTrainTools
# 启动训练脚本
/workspace/isaaclab/isaaclab.sh -p -m torch.distributed.run --nproc_per_node=4 --nnodes=1 ./Examples/IsaacLabNewton/rl_games/train.py --task Isaac-Cartpole-RGB-Camera-Direct-v0 --headless --distributed --num_envs 512 --max_iterations 12000
参数说明:
- --nproc_per_node:使用的GPU数量,此处指定4卡
- --nnodes:节点数,单机场景设为1
- --distributed:启用分布式训练
- --num_envs:每张卡512个环境,多卡时总环境数为单卡数×卡数
- --max_iterations:迭代次数与单卡保持一致
训练情况对比分析
通过tensorboard查看保存的logs,可对比单卡与多卡训练效果。多卡模式下总环境数成倍增加(见下图fps图)。对RL训练任务而言,并行更多环境能加速收敛,对应rewards更稳定且波动更小:
小结
目前PAI平台已全面支持Isaac Sim、Isaac Lab系列工具链。针对基于PAI的Isaac Lab强化学习训练场景,我们整理了多个用户指引示例,归档在“Pai-PhysxTrainTools/IsaacLab230和IsaacLabNewton”中,覆盖基于Isaac Sim以及基于Newton引擎的RL训练等。
本Notebook重点介绍了集成Newton的Isaac Lab强化学习训练流程,并提供了详细说明与实验分析。其他示例可参考NVIDIA官方文档或我们提供的用户指引文档。