You need to enable JavaScript to run this app.
文档中心
机器学习平台

机器学习平台

复制全文
下载 pdf
具身智能
在开发机上用 MobilityGen 生成导航数据
复制全文
下载 pdf
在开发机上用 MobilityGen 生成导航数据
目标​
通过阅读本篇文档,您能够实现:​
  1. 了解 MobilityGen 的作用​
  1. 在 Isaac Streaming 使用 MobilityGen 生成导航数据​
  1. 使用可视化工具查看结果​
背景介绍​
MobilityGen 是一套基于 NVIDIA Isaac Sim 的工具集,可用于生成和收集移动机器人的数据。在 Isaac 中,可直接通过扩展插件的方式开启。​
本文通过机器人在仓库移动的例子,演示如何在云上利用 MobilityGen 收集导航数据。​
​
追踪摄像(默认)​
​
Replay
Play
00:00 / 00:32 Live
00:00
Fullscreen
Cssfullscreen
1x
  • 2x
  • 1.5x
  • 1x
  • 0.75x
  • 0.5x
Click and hold to drag
​
​
​
双眼摄像​
​
Replay
Play
00:00 / 00:23 Live
00:00
Fullscreen
Cssfullscreen
1x
  • 2x
  • 1.5x
  • 1x
  • 0.75x
  • 0.5x
Click and hold to drag
​
​
​
​
使用步骤​
开发机连接 Isaac Streaming​
参考 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 端口​
​​​
创建开发机完成后,同样参考 Isaac 仿真环境搭建与基本应用,使用 ​
cd /workspace/isaaclab/_isaac_sim && ./isaac-sim.streaming.sh --allow-root 启动 Isaac Streaming. 在开发机详情页点击“公网连接Isaac”访问 Isaac Streaming.​
​
使用 MobilityGen 生成导航数据​
创建 Occupancy Map​
必须创建一个基于环境的 occupancy map ,这里给出 仓库场景 的例子​
  1. 在 (Window > Browsers > Content) 开启 Content 窗口。找到并加载 /preset-datasets/robotics/omniverse-content-production/Assets/Isaac/5.0/Isaac/Environments/Simple_Warehouse/warehouse_multiple_shelves.usd .​
  1. 创建 occupancy map:​
在 Tools > Robotics > Occupancy Map 打开 OccupancyMap 扩展。在其视图的属性框 Ctrl + 鼠标左键 进行如下设置:​
​
Origin​
X: 2.0​
Y: 0.0​
Z: 0.0​
Upper Bound​
X: 10.0​
Y: 20.0​
Z: 2.0​
Lower Bound​
X: -14.0​
Y: -18.0​
Z: 0.1​
​
点击 Calculate 生成,点击 Visualize Image 观察。在 Visualization 视图的 Rotate Image 选择 180 (默认). 在 Coordinate Type 选择 ROS Occupancy Map Parameters File YAML (默认). 点击 Regenerate Image.​
  1. 复制生成的 YAML 文本. 在 /root/MobilityGenData/maps/warehouse_multiple_shelves/map.yaml新建map.yaml, 粘贴入文本. 修改 image: ***.png 为image: map.png,保存文件。这里文件路径可以自由选择。​
参考: ​
​
image: map.png​
resolution: 0.05​
origin: [-11.975, -17.975, 0.0000]​
negate: 0​
occupied_thresh: 0.65​
free_thresh: 0.196​
​
​
  1. 回到 Visualization 视图, 点击 Save Image. 保存到 /root/MobilityGenData/maps/warehouse_multiple_shelves, 文件名为 map.png。​
确保在 /root/MobilityGenData/maps/warehouse_multiple_shelves/ 下有文件 map.yaml 和 map.png .​
记录轨迹​
  1. 在 Window > Extensions 搜索 MobilityGen UI. 打开 MobilityGen UI 扩展。会自动打开两个视图,一个是 MobilityGen UI, 另一个是 Occupancy Map and visualizations. ​
  1. 创建场景:​
  1. 在 MobilityGen 视图进行如下设置:​
目的是将刚刚calculate 计算得到的yaml同加载的stage对齐,所以stage路径应为加载的stage路径,occupancy map路径为存储occupancy map路径​
​
字段​
值​
说明​
Stage​
USD 的网络资源位置​
Occupancy Map​
/root/MobilityGenData/maps/warehouse_multiple_shelves/map.yaml​
map/yaml 存放的位置​
Robot​
H1Robot​
​
Scenario​
KeyboardTeleoperationScenario​
​
选择RandomPathFollowingScenario 可以随机自动生成​
​
  1. 点击 Build 进行创建,等待加载完成,可以看到机器人出现在页面中.​
​​​
  1. 点击 Start recording 开始记录轨迹,通过键盘操作 W /A/ S/ D 控制机器人移动。点击 Stop recording 结束记录。数据默认保存在 /root/MobilityGenData/recordings 。点击 Reset 重新 随机化场景。​
重播 (Replay) 和渲染​
recording 记录的轨迹包括了姿态等数据,可以使用 replay_directory.py 重播场景.​
​
./python.sh standalone_examples/replicator/mobility_gen/replay_directory.py --render_interval 40 --enable isaacsim.replicator.mobility_gen.examples --input /root/MobilityGenData/recordings/​
​
其中 input 参数是保存记录数据的位置。​
可以在 /root/MobilityGenData/replays查看重播的结果, 里面包含了渲染的传感器数据,比如摄像机拍摄的图片。​
可视化工具​
使用 MobilityGen GitHub Repository 的 Gradio Visualization Script 脚本可以查看导航数据。​
​
# 安装 gradio​
/workspace/isaaclab/_isaac_sim/python.sh -m pip install gradio==3.48.0 jinja2==3.1.2 starlette==0.27.0 uvicorn==0.22.0 --target /workspace/isaaclab/gradio_libs​
# 在 04_visualize_gradio.py 脚本的最前面添加​
import sys​
sys.path.insert(0, "/workspace/isaaclab/gradio_libs")​
# 启动 脚本​
bash isaaclab.sh -p /root/MobilityGenData/MobilityGen-main/examples/04_visualize_gradio.py ​
​
​
​
Replay
Play
00:00 / 00:10 Live
00:00
Fullscreen
Cssfullscreen
1x
  • 2x
  • 1.5x
  • 1x
  • 0.75x
  • 0.5x
Click and hold to drag
​
​
​
最近更新时间:2026.04.16 17:42:39
这个页面对您有帮助吗?
有用
有用
无用
无用