Agent Skills
返回列表
💻

机器人系统测试

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/robotics-testing-lr-m0hd。

技能介绍

机器人测试为什么难写

机器人代码的测试和普通服务端不一样:节点之间通过话题、服务和参数通信,测试时需要一个活着的 ROS 上下文;传感器和执行器往往是真实硬件,不模拟就没法在 CI 里跑;感知流水线的输入没有天然的地面真值;规划器的输出要验证收敛性和碰撞约束,一旦失败很难归因。

它怎么工作

技能按照机器人测试金字塔组织能力。

  • 单元测试:用 pytest 测 ROS2 节点,通过 fixture 管理 rclpy 上下文,每个测试拿到独立节点实例,用完后销毁节点。
  • 集成测试:使用 launch_testing 启动多个节点,验证它们之间的协作行为。
  • 硬件模拟:为传感器和执行器打桩,让 CI/CD 流水线脱离实体硬件运行。
  • 仿真测试:构建基于仿真的测试套件,并用地面真值检验感知流水线。
  • 规划器验证:验证轨迹规划器和控制器的输出行为。
  • CI/CD:为机器人包搭建流水线。

关键步骤是:先初始化 ROS 上下文,注入合成传感器消息(例如 Image),调用被测逻辑,断言结果,最后清理节点。

适用边界

注意 fixture 的作用域。scope='module' 让上下文在整个模块只初始化一次,开销低,但节点必须在每个测试中重建,否则状态会在用例之间泄漏。合成测试数据要尽量贴近真实分布,否则断言会给出误导性的安全感。感知测试依赖可靠的地面真值,缺失时应当显式跳过而不是静默通过。

使用场景

  • 为 ROS1/ROS2 节点编写单元测试,建立稳定的基础测试层
  • 使用 launch_testing 搭建集成测试,验证多个节点协同工作
  • 在 CI/CD 流水线中模拟传感器与执行器,减少对实体硬件的依赖
  • 基于仿真环境和地面真值,验证感知流水线的输出准确性

适合人员

  • 从事 ROS1/ROS2 节点开发的工程师,需要为感知、规划、控制模块补测试
  • 负责机器人 CI/CD 的开发者,想把硬件依赖移出流水线
  • 使用 launch_testing 的集成测试工程师,需要搭建多节点测试场景
  • 做感知算法验证的工程师,需要用仿真数据和地面真值检查流水线