6. 系统联调开发实战¶
6.1 多阶段复合任务¶
6.1.1 系统集成与联调¶
将X1看成一个整体,在多模块的设计理念下,系统集成与联调就尤为重要了。
6.1.1.1 联调整体架构解析¶
我们的系统分为 “Isaac Sim 仿真层” 和 “ROS2 计算层” ,通过“任务管理器”模式串联:
- 模块分工:
| 层级 | 模块 | 职责 |
|---|---|---|
| Isaac Sim 层 | X1 USD 模型 以及场地USD | 提供机器人模型、仿真环境(地图、物体) |
| 导航 cmd / 相机 cmd / 双臂 cmd | 接收 ROS2 指令,驱动仿真中机器人运动、拍照、控制双臂 | |
| 导航模块 / 独立化脚本 | 实现仿真内的运动控制(如底盘速度解析) | |
| ROS2 层 | Nav2 导航功能包 | 路径规划、发布底盘线速度 / 角速度 |
| 相机识别算法 | 处理仿真图像,输出目标位姿 | |
| 双臂 Curobo 算法 | 规划双臂轨迹,输出关节控制指令 | |
| 核心中枢 | 任务管理器 | 触发各模块(导航→相机→双臂),监听状态反馈 |
- 数据流向(对应架构图)
导航阶段:任务管理器 →(话题)Nav2 →(速度指令)导航 cmd →(状态)任务管理器
视觉阶段:任务管理器 →(拍照指令)相机 cmd →(图像)相机识别 →(位姿)cuRobo
抓取阶段:cuRobo →(轨迹指令)双臂 cmd →(状态)任务管理器

6.1.1.2 联调前置条件:模块独立验证¶
能够顺利完成4.2.1;4.2.2;4.2.3或4.1.1;4.1.2;4.1.3的demo,就证明模块独立运行没问题。
联调前必须确保 单个模块能稳定运行,避免联调时定位问题困难:
| 模块 | 验证方式 |
|---|---|
| 导航 | 在 Isaac Sim 中,通过 RViz 发布目标点,机器人能自主规划路径并移动(监听/cmd_vel话题)。 |
| 相机 | 触发仿真相机拍照(调用相机 cmd 节点),能在 ROS2 中接收图像话题(如/left_camera/rgb)。 |
| 双臂 | 手动发送目标位姿到 Curobo,双臂能规划轨迹并执行(观察仿真中手臂运动)。 |
6.1.1.3 联调核心流程¶
联调需基于统一的 USD 场景与机器人模型,按 “信号互通→时序协同→场景验证→结果固化” 四步推进,确保多模块高效协同:
6.1.1.3.1 信号链路打通¶
以 ROS2 话题为核心,构建模块间数据传递闭环(参考):
- 导航模块输出位姿(/goal_pose),作为视觉识别的基准位姿;
- 视觉模块输出目标坐标(/vision_target),为机械臂提供抓取位置;
- 机械臂反馈执行状态(/arm_state),决定导航是否触发下一轮动作。
- 同时统一消息格式(如geometry_msgs/PoseStamped),确保位姿精度、关节指令等参数兼容。
6.1.1.3.2 时序协同校准¶
按任务逻辑明确各模块动作触发时机与节奏:
- 导航到达目标点(位姿误差<10cm 且稳定 200ms)后,触发视觉拍照;
- 视觉识别置信度>95% 时,启动机械臂抓取流程;
- 适配仿真步长(默认 60FPS),导航规划周期 200ms、视觉识别周期 300ms、机械臂控制周期 50ms,避免动作脱节。
- 若出现延迟,自动触发软复位(如视觉超时则重新拍照)。
6.1.1.3.3 场景闭环验证¶
在 USD 场景中完成基础功能验证:
- 静态环境、单一目标场景下,验证全流程通断;
- 重点关注任务完成率(如 5 个目标全部抓取)、执行时间(<3min)及资源占用(GPU<80%)。
6.1.1.3.4 结果固化与迁移¶
- 导出 USD 场景配置、ROS2 启动文件及 ActionGraph 执行流,形成可复用模板;
- 对比虚拟与实体机器人数据(如关节角度、识别结果),修正模型误差;
- 编写联调手册,包含流程步骤、参数表及故障排查指南,为实体部署奠定基础。
6.2.2 场地与机器人USD¶
在 AIROBOT 创新挑战赛的仿真训练环境中,USD(Universal Scene Description)文件作为场景与机器人资产的核心载体,包含了比赛所需的场地模型、机器人模型及各类功能模块。本节将详细介绍赛事提供的各类 USD 资产及其用途,帮助参赛选手快速理解并合理选用适合的训练资源。
6.2.2.1 核心综合 USD 资产¶
competition_room.usd 为赛事推荐使用的完整仿真场景文件,包含比赛所需的全部核心元素,可支持全流程仿真训练与测试。其包含以下关键组件:
- 比赛场地(competition_room.usd)
包含 AIROBOT 创新挑战赛专用场地布局,具体元素包括:
标准比赛区域及围墙结构
赛事指定桌子及障碍物
用于识别与交互的二维码方块(AprilTag)
- X1 机器人模型
完整集成 X1 机器人本体,包括底盘、双臂、夹爪及各类传感器(激光雷达、双目相机等)。
- 功能行为图(ActionGraph)
内置预设的行为逻辑模块,支持:
导航底盘运动控制(速度、方向指令执行)
激光雷达数据采集与发布
里程计信息实时更新
双臂关节角度控制与运动规划
双目相机(左右眼)图像信息采集与传输

6.2.2.2 其他专用 USD 资产说明¶
除核心综合文件外,赛事同时提供以下专用 USD 资产,供选手根据训练需求灵活选用:
- 基础原始资产
mercury_x1.usd:X1 机器人最原始模型文件,未包含赛事特定配置,可用于选手自定义机器人结构或参数。

room_x1.usd:比赛场地的原始基础模型,可作为选手自定义场地布局的模板。(该模型暂不提供)

April_tag.usd:单独的二维码方块模型文件,可用于单独测试视觉识别算法或搭建自定义场景。

6.2.2.3 USD 文件溯源与迭代说明¶
为帮助选手理解资产的演进逻辑,以下说明核心 USD 文件的来源及迭代过程:
6.2.2.3.1 溯源 USD 文件¶
TuringStack_X1.usd来源:由算法工程师调整模型质量后提供。
已知问题:头部关节初始角度非 0 度;左臂某一关节存在10.1°的系统误差。
6.2.2.4 使用建议¶
进行完整赛事流程训练时,优先使用
competition_room.usd。专项训练抓取功能时,可选用
TuringStack_X1.usd。
6.2.3 多阶段复合案例¶
6.2.3.1 相机与机械臂联调¶
本案例以 Isaac Sim 仿真平台中的 X1 机器人为对象,演示通过双目相机与机械臂协同,实现对二维码方块的目标定位与抓取准备动作,核心流程可通过动图直观查看,具体分为 “准备识别姿态” 与 “抓取准备姿态” 两步执行。
一、案例核心组件与目标¶
- 核心组件:X1 机器人(含机械臂、左手夹爪)、双目相机、二维码方块、Curobo 运动规划库
- 核心目标:通过相机识别定位目标,结合运动规划计算,控制机械臂完成从 “识别准备” 到 “抓取准备” 的连贯动作,验证视觉与机械臂的协同控制逻辑。

二、联调流程(结合动图分步解析)¶
第一步:机械臂到达 “准备识别姿态”
动图中初始阶段,X1 机器人机械臂先执行姿态调整:机械臂整体抬升并展开,使双目相机的视野完全覆盖前方二维码方块,避免机械臂自身结构遮挡相机视线。 这一步的核心目的是为相机识别创造稳定视野—— 双目相机需无遮挡地拍摄二维码方块,才能准确提取方块的三维坐标(位置与姿态信息),并将识别结果以数据形式发送至 Curobo 运动规划库。
第二步:机械臂到达 “抓取准备姿态”
数据处理与规划:Curobo 接收相机发送的二维码方块坐标后,结合 X1 机器人机械臂的关节限制、运动范围等参数,自动计算出从 “准备识别姿态” 到 “抓取准备姿态” 的关节运动轨迹(包括每个关节的转动角度、速度)。 关节控制与执行:Curobo 将规划好的轨迹结果以指令形式发布给机械臂的各个关节,动图中可观察到 X1 机器人左手夹爪逐步靠近二维码方块,最终停留在方块正上方(夹爪开口对准方块,距离适中),完成抓取前的姿态定位。
三、关键协同逻辑¶
整个过程中,双目相机负责 “感知定位”,Curobo 负责 “运动规划”,机械臂关节负责 “执行动作”,三者通过数据传递形成闭环:相机识别结果是规划的基础,规划结果直接决定关节运动,最终通过姿态调整实现 “先看清、再靠近” 的联调目标,为后续实际抓取动作奠定基础。
6.2.3.2 抓取案例¶
一、案例背景与场景升级¶
本案例基于上一章节“相机与机械臂联调案例” 的定位基础,在 Isaac Sim 仿真环境中优化场景并扩展抓取流程:新增桌子(二维码方块置于桌面左中位置),调整方块大小与质量适配抓取;核心新增 “靠近 - 抓取 - 返回” 动作,通过 Curobo 完成三次关键运动规划(前两次定位规划见上一章节),实现从 “定位” 到 “抓取回收” 的闭环。
二、核心组件与场景参数¶
核心组件:X1 机器人(含机械臂、左手夹爪)、双目相机、带二维码方块(适配抓取参数)、桌子、Curobo 运动规划库 场景布局:桌子位于机器人正前方,方块固定于桌面左中,确保相机可稳定识别

三、抓取核心流程(三次关键运动规划 + 动图解析)¶
前两次运动规划与上一章节类似,这里不再阐述。
(一)第三次运动规划:靠近目标物 Curobo 接收相机的方块精准坐标后,结合桌面高度与机械臂关节限制,规划短距离运动轨迹。动图中可见,机械臂从 “抓取准备位置”(方块正前方几厘米)缓慢前移,直至夹爪开口完全包裹方块两侧,到达 “可抓取” 近距离姿态。
(二)第四次运动规划:夹爪闭合抓取 Curobo 将夹爪关节纳入规划,根据方块尺寸计算闭合角度(避免过松脱落或过紧损坏)。动图中,夹爪关节向内转动、开口缩小,最终完全闭合并夹紧方块,完成核心抓取动作。
(三)第五次运动规划:返回准备识别姿态 抓取成功后,Curobo 规划安全回退轨迹(避开桌子障碍)。动图中,机械臂带着方块抬升、后退,最终恢复到初始 “准备识别姿态”,实现抓取流程闭环。
四、关键注意事项¶
需校准 “手眼关系”,确保相机定位与机械臂运动坐标一致,避免抓取偏差 夹爪闭合角度需与方块尺寸匹配,可通过 Curobo 输入方块参数自动计算 回退轨迹需避开桌子,防止携带方块时碰撞
五、案例总结¶
本案例通过三次关键运动规划,补全 “靠近 - 抓取 - 返回” 动作,完整实现从定位到回收的抓取闭环。Curobo 全程负责轨迹规划,兼顾障碍物规避与抓取稳定性,为真实场景下的桌面抓取提供仿真参考。