SuperAPI AI 工具集

robotics-testing

测试与质量

查看项目

更新于 10-15 15:29

技能介绍

用途

robotics-testing 是一个面向机器人软件测试的技能,帮助开发者编写单元测试、集成测试与仿真测试,并为机器人项目搭建 CI/CD 流程。它主要适用于以下场景:为 ROS1/ROS2 节点编写单元测试;使用 launch_testing 搭建集成测试;为 CI/CD 模拟硬件(传感器、执行器);构建基于仿真的测试套件;使用真值(ground truth)测试感知流水线;验证轨迹规划器与控制器;为机器人包搭建 CI/CD 流水线;调试机器人系统中的不稳定测试。

测试金字塔

文档提出“机器人测试金字塔”的分层结构,从下到上依次为:单元测试(单个函数/类,快速、确定性强)、集成测试(多节点、消息传递)、仿真测试(完整仿真、真实物理)、硬件在环 HIL(真实硬件、受控环境)、现场测试(真实机器人、真实环境)。金字塔底部测试更多,越往上测试越少;底部快速、低成本、确定性强,顶部缓慢、昂贵、更贴近真实。

主要能力与示例

  1. 单元测试模式:使用 pytest 测试 ROS2 节点,示例包含 ROS2 上下文 fixture、节点 fixture、合成测试图像 fixture,以及初始化、参数校验、图像回调发布检测结果、空图像处理等测试用例;并给出纯函数测试示例(运动学正逆解、四元数乘法、坐标变换),使用参数化测试与已知位姿校验。
  2. 属性测试:使用 Hypothesis 与 hypothesis.extra.numpy,示例对轨迹插值进行属性测试,验证步数正确、起点终点正确、单调推进、无超大步长等性质,以及变换往返一致性。
  3. 集成测试:使用 ROS2 launch_testing,通过 generate_test_description 启动感知节点与规划器节点,测试感知检测结果能传递给规划器。
  4. Mock 硬件模式:提供 MockCamera(使用预录图像或生成合成帧)、MockJointStatePublisher(发布确定性关节状态)等示例。
  5. 黄金文件测试:对轨迹规划输出与已知良好轨迹进行回归比对,示例包含直线规划与避障规划,并校验无碰撞。
  6. 仿真测试:提供 SimulationTestHarness 示例,使用确定性物理(设置随机种子),测试抓取放置任务与碰撞安全。
  7. CI/CD:给出 GitHub Actions 工作流示例(robotics_ci.yml),包含单元测试与集成测试两个 job,使用 ROS Humble 容器,通过 rosdep 安装依赖并执行 colcon build、colcon test。

使用方式与限制

文档以代码示例为主,覆盖测试编写与 CI 配置的具体做法。需要指出的是,资料未提供该技能的安装方式、命令、收费或价格、平台支持范围、测试工具版本要求等信息,这些内容暂未提供。示例中出现的 ROS 发行版(如 Humble)、运行环境(ubuntu-22.04)与第三方库(pytest、hypothesis、numpy、MuJoCo)均按资料原文保留,未作改动。