带手腕相机的抓取和放置示例
本教程将展示如何使用 Agilebot 机器人的腕部相机进行抓取和放置任务,并录制视频。

概述
带有相机和夹爪的机器人数字资产示例,包含机器人、手腕相机和夹爪的完整数字资产,以及抓取放置任务和视频记录程序。
功能特性
- 机器人数字资产:包含机械臂和夹爪的完整机器人模型
- 抓取测试程序:基于 Isaac Sim 的完整抓取和放置任务实现
- 视频录制:支持 RGB 视频录制(30fps),使用多进程实现非阻塞性能
前置条件
主要文件
| 文件 | 描述 |
|---|---|
pick_place_example.py | 主程序入口,启动仿真并执行抓取放置任务 |
video_recorder.py | 视频录制模块,使用多进程实现非阻塞录制 |
controllers/pick_place.py | 抓取放置控制器 |
tasks/pick_place.py | 抓取放置任务定义 |
usd/gbt_c5a_camera_gripper/gbt_c5a_camera_gripper.usd | 机器人数字资产文件(包含机器人、相机和夹爪的完整模型) |
使用方法
配置
运行程序前,请确保在 tasks/pick_place.py 中正确配置了机器人资源路径:
python
# 如果路径不同,请修改此绝对路径以指向您的实际 usd 文件夹位置运行程序
bash
# 激活环境
conda activate isaaclab
# 运行主程序
cd agilebot_isaac_sim/example/pick_place_agilebot_camera_gripper
python pick_place_example.py程序功能
程序将自动:
- 启动 Isaac Sim 仿真环境
- 加载机械臂、手腕相机和夹爪
- 执行抓取放置任务
- 将 RGB 视频录制到
saved_images/captured_video_rgb.mp4
系统要求
| 组件 | 要求 |
|---|---|
| Isaac Sim | - |
| Python | 3.x |
| 依赖项 | numpy, opencv-python, open3d |
视频录制器
视频录制器类提供以下功能:
| 功能 | 描述 |
|---|---|
start_recording() | 开始录制视频 |
capture_frame() | 捕获一帧 |
stop_recording() | 停止录制并保存视频 |
相机配置
相机参数
| 参数 | 说明 | 默认值 |
|---|---|---|
resolution | 视频分辨率 | (224, 224) |
fps | 帧率 | 30 |
camera_position | 相机位置 | 根据机器人配置 |
camera_orientation | 相机朝向 | 根据机器人配置 |
输出格式
视频录制器支持以下输出格式:
| 格式 | 扩展名 | 描述 |
|---|---|---|
| MP4 | .mp4 | 最常用的视频格式 |
常见问题
Q: 抓取放置任务失败
A: 检查相机路径是否正确。确保相机已正确初始化,并且目标物体在相机视野范围内。
Q: 视频质量不佳
A: 检查相机分辨率设置。确保 tasks/pick_place.py 中的相机参数正确配置。
Q: 视频文件过大
A: 视频录制为 30fps,可考虑降低帧率或使用视频压缩工具。
Q: 程序无法启动
A: 确保已激活正确的 conda 环境(isaaclab),并安装了所有依赖项:
bash
pip install numpy opencv-python open3d第三方声明
本演示包含改编自 MetaIsaacGrasp 的相机支架,采用 MIT 许可证。