通过阅读本篇文档,您能够实现:
Isaac Sim 是一款基于 NVIDIA Omniverse 构建的开源参考应用,使开发者能够在基于物理的虚拟环境中模拟和测试 AI 驱动的机器人开发解决方案。用户可以构建自己的基于通用场景描述 (OpenUSD) 的自定义模拟器,或将核心 Isaac Sim 技术集成到现有的测试和验证流程中。
IsaacSim 提供了三种主要使用方式,在配有 GPU 和显示器的工作站部署、在 Headless 的服务器部署并配合带有显示器的终端串流使用、完全在 Headless 服务器上使用(纯 python环境,无 GUI),其中前两种适合交互式建模渲染、最后一种适合大规模数据合成和训练。
本文主要在开发机上进行演示第一种场景,帮助大家开箱即用地使用云上3D资产,并使用 IsaacSim Replicator 工具做一个简单的环境随机化演示。效果预览如下视频(V1),包括位置,角度,大小,光源方向,颜色的随机改变。
在火山引擎上使用开发机进行 Isaac Streaming 连接。请先在开发机设置中开启 Isaac 可视化,在 WebIDE 启动以下命令,就能够在 Isaac Streaming 可视化远程使用串流显示。
# 进入 isaac-sim.streaming.sh 所在目录 cd path/to/your/isaac # 启动脚本 ./isaac-sim.streaming.sh --allow-root
也可在开发机上设置 RDP, 详见 开发机上使用 Isaac Sim 工具实践--机器学习平台-火山引擎。
使用火山引擎已有的3D资产,可以搭建个性化的仿真环境。
如上图,直接拖拽 Assets/ArchVis/Industrial/Stages/IsaacWarehouse.usd 资源搭建一个仓库。
资产位置如下图 P2,3D 云端资产位于 https://omniverse-content-staging.s3.us-west-2.amazonaws.com/,您可以直接查看资产,拖动并加载到场景。
同时,火山引擎自带上万个资产 (P3),在 Content 面板能够看到已经下载的位于 /preset-datasets/robotics/omniverse-content-production/ 的资产目录,其下结构同 AWS 云端资产 (P2) 一致。由于 AWS 的资源需要下载。推荐在 NVIDIA Assets 和 Isaac Assets (Beta) 面板仅作搜索,而直接加载Content 面板下的资源。
采用 自带的 Replicator 可以实现环境随机化,Replicator 能对包括不限于对象的材质、颜色、大小、位置、角度、摄像机角度等属性进行随机化。
点击 Isaac 的 Window->Script Editor,调出代码编辑器界面,可直接在外部 py 文件编写代码。
书写一个 Python 脚本,调用 Replicator 使用 rep.create. 建立可复制生成的对象,或者在已有资产加上 semantic 标签,通过 rep.get.prims(semantics=[...]) 获得 Prim 对象。可以参考 Nvidia 文档 Omniverse Replicator
下图 (P4) 是一个使用 Replicator 构造的场景。其主体是一个咖啡桌,运行脚本时,左侧书本的位置/角度、盘子的大小、前景光源方向、背景光颜色会发生变化;摄像机角度也可以发生变化。
视频 (V1) 展示了运行 Replicator 脚本触发随机化场景对象。下面视频(V2)展示了随机化相机的角度和位置。
使用火山引擎提供的资产可以快速搭建 Isaac Sim 物理仿真渲染环境,进行大规模的物理仿真数据合成,为具身智能等训练提供大规模数据,助力提升大模型的研发效能;同时Nvidia官方也提供了更加丰富的教程和用例,借助这些资源,也可以在机器学习平台快速实践。