通过阅读本篇文档,您能够实现:
- 在 Isaac Streaming 使用 MobilityGen 生成导航数据
MobilityGen 是一套基于 NVIDIA Isaac Sim 的工具集,可用于生成和收集移动机器人的数据。在 Isaac 中,可直接通过扩展插件的方式开启。
本文通过机器人在仓库移动的例子,演示如何在云上利用 MobilityGen 收集导航数据。
追踪摄像(默认)
Replay
Play
00:00
/
00:32
Live
Fullscreen
Cssfullscreen
1x
双眼摄像
Replay
Play
00:00
/
00:23
Live
Fullscreen
Cssfullscreen
1x
参考 Isaac 仿真环境搭建与基本应用,在云上创建开发机。创建时 需要注意选择大于等于2.3.0的Isaac Lab 镜像,如 vemlp-cn-beijing.cr.volces.com/preset-images/physical-ai:isaacsim-v5.1.0_lab-v2.3.0。 为方便数据的存储和查看,可挂载 TOS。为设置的方便,可将 TOS 桶路径挂载 到开发机的 /root 目录,并在桶根目录 创建 /MobilityGenData 目录
为可视化查看,可在访问控制开启 7860 端口
cd /workspace/isaaclab/_isaac_sim && ./isaac-sim.streaming.sh --allow-root 启动 Isaac Streaming. 在开发机详情页点击“公网连接Isaac”访问 Isaac Streaming.
必须创建一个基于环境的 occupancy map ,这里给出 仓库场景 的例子
- 在 (Window > Browsers > Content) 开启 Content 窗口。找到并加载 /preset-datasets/robotics/omniverse-content-production/Assets/Isaac/5.0/Isaac/Environments/Simple_Warehouse/warehouse_multiple_shelves.usd .
在 Tools > Robotics > Occupancy Map 打开 OccupancyMap 扩展。在其视图的属性框 Ctrl + 鼠标左键 进行如下设置:
点击 Calculate 生成,点击 Visualize Image 观察。在 Visualization 视图的 Rotate Image 选择 180 (默认). 在 Coordinate Type 选择 ROS Occupancy Map Parameters File YAML (默认). 点击 Regenerate Image.
- 复制生成的 YAML 文本. 在 /root/MobilityGenData/maps/warehouse_multiple_shelves/map.yaml新建map.yaml, 粘贴入文本. 修改 image: ***.png 为image: map.png,保存文件。这里文件路径可以自由选择。
参考:
- 回到 Visualization 视图, 点击 Save Image. 保存到 /root/MobilityGenData/maps/warehouse_multiple_shelves, 文件名为 map.png。
确保在 /root/MobilityGenData/maps/warehouse_multiple_shelves/ 下有文件 map.yaml 和 map.png .
- 在 Window > Extensions 搜索 MobilityGen UI. 打开 MobilityGen UI 扩展。会自动打开两个视图,一个是 MobilityGen UI, 另一个是 Occupancy Map and visualizations.
目的是将刚刚calculate 计算得到的yaml同加载的stage对齐,所以stage路径应为加载的stage路径,occupancy map路径为存储occupancy map路径
- 点击 Build 进行创建,等待加载完成,可以看到机器人出现在页面中.
- 点击 Start recording 开始记录轨迹,通过键盘操作 W /A/ S/ D 控制机器人移动。点击 Stop recording 结束记录。数据默认保存在 /root/MobilityGenData/recordings 。点击 Reset 重新 随机化场景。
recording 记录的轨迹包括了姿态等数据,可以使用 replay_directory.py 重播场景.
其中 input 参数是保存记录数据的位置。
可以在 /root/MobilityGenData/replays查看重播的结果, 里面包含了渲染的传感器数据,比如摄像机拍摄的图片。
Replay
Play
00:00
/
00:10
Live
Fullscreen
Cssfullscreen
1x