机器人测试基础学习文档(新人版)

📅 2026/7/14 6:05:38 👁️ 阅读次数 📝 编程学习
机器人测试基础学习文档(新人版)

适用对象:机器人测试新人、产品测试、系统测试、质量验证、售后技术支持。
示例场景:以割草机器人为主,同时适用于扫地机器人、配送机器人、移动底盘等自主移动机器人。

0. 新人先建立一张“整机地图”

机器人测试不是只看一个传感器或一段算法,而是看整机链路是否稳定闭环。可以先记住一条主线:

mermaid flowchart LR A["感知层:相机 / RGBD / LiDAR / IMU / RTK / 轮速计"] --> B["定位建图层:SLAM / VSLAM / LiDAR SLAM / 传感器融合"] B --> C["规划决策层:全局路径 / 局部避障 / 作业策略"] C --> D["控制执行层:电机 / 转向 / 刀盘 / 回充"] D --> E["状态反馈层:里程计 / 电流 / 温度 / 故障码 / 日志"] E --> B ```

生活类比:

  • 人在陌生公园里走路:眼睛负责看路,内耳负责感知身体姿态,大脑一边记地图一边判断自己在哪,腿负责执行行走。

  • 机器人也类似:相机、雷达、IMU 是“眼睛和内耳”;SLAM 是“认路和记地图”;路径规划是“决定怎么走”;电机和刀盘是“腿和工具”。

测试新人看机器人时,建议永远追问三件事:

  1. 输入是什么:传感器数据是否真实、连续、时间对齐?

  2. 输出是什么:定位、地图、路径、控制命令是否符合预期?

  3. 异常怎么表现:弱光、强光、遮挡、打滑、动态障碍物、通信中断时系统是否能恢复?


1. ROS 机器人操作系统

1.1 ROS 到底是什么

ROS 是 Robot Operating System 的缩写,中文常叫“机器人操作系统”。但它不是 Windows、Android 那种完整操作系统,更准确地说,它是运行在 Linux 等系统上的机器人软件框架和通信中间件。

通俗理解:

  • Linux 像地基和房子。

  • ROS 像房子里的水电网络、开关面板和设备接口。

  • 相机、雷达、电机、导航算法、避障算法通过 ROS 连接起来,各模块不需要彼此硬编码在一起。

割草机器人示例:

  • 相机节点持续发布图像。

  • 激光雷达节点持续发布点云或扫描线。

  • 定位节点订阅相机、雷达、IMU 数据,输出机器人位置。

  • 导航节点根据地图和位置规划路径。

  • 控制节点把路径转换成电机速度和刀盘控制命令。

1.2 ROS 核心术语

术语英文新人解释割草机器人例子
节点Node一个独立运行的小程序或进程,负责一个功能相机驱动节点、导航节点、刀盘控制节点
话题Topic节点之间持续传数据的通道,适合连续数据流/camera/image/scan/imu/data
消息Message话题里传输的数据格式图像消息、点云消息、速度消息
服务Service一问一答的同步请求,适合短任务请求“升起刀盘”,返回“执行成功/失败”
动作Action长时间任务通信,有进度反馈和最终结果执行“全场自动割草”,中途持续反馈进度
参数Parameter节点运行配置雷达频率、最大速度、避障距离阈值
启动文件Launch一次性启动多个节点和配置一键启动相机、雷达、SLAM、导航
坐标变换TF / TF2管理机器人各部件坐标关系相机在车体前方 20 cm,雷达在车体顶部
数据包Bag / rosbag录制和回放 ROS 数据录一段草坪运行数据,回放复现缺陷
QoSQuality of ServiceROS2 通信质量策略传感器数据允许丢少量帧,但控制命令更关注可靠性
DDSData Distribution ServiceROS2 底层分布式通信协议多节点不用中心 Master 也能互相发现和通信

生活类比:

  • Topic 像微信群直播消息:有人一直发,有人按需看。

  • Service 像去窗口办业务:你提一个请求,对方给一个结果。

  • Action 像点外卖:下单后能看到“已接单、配送中、已送达”,最后有结果。

1.3 Topic、Service、Action 怎么选

通信方式适合什么数据特点机器人例子测试关注点
Topic连续、高频、异步数据发布者和订阅者不用互相等待相机图像、雷达扫描、IMU 姿态、轮速里程计频率是否稳定、是否丢帧、消息格式是否匹配
Service短时间请求响应请求后等待结果,适合一次性操作查询电池状态、设置工作模式、升降刀盘超时、失败返回、重复请求是否安全
Action长时间任务有目标、进度反馈、可取消、最终结果自动回充、全场割草、定点补割任务取消、暂停、恢复、进度是否可信

1.4 ROS1 与 ROS2 的核心区别

对比项ROS1ROS2
通信架构依赖 ROS Master 做中心管理基于 DDS,分布式发现和通信
实时性与可靠性原生实时性较弱,产品化需额外改造更重视实时性、QoS、生命周期、安全性
平台适配主要面向 Linux支持 Linux、Windows、macOS,嵌入式适配更好
当前状态ROS1 Noetic 已于 2025 年停止官方维护2026 年产品和新项目建议优先 ROS2
适合场景历史项目、学习旧资料、实验室遗留系统新项目、工业产品、量产机器人

新人建议:

  • 学概念时可以看 ROS1 资料,因为很多名词是相通的。

  • 做产品测试和新项目时,应优先按 ROS2 口径学习,尤其关注 DDS、QoS、生命周期节点、rosbag2、Nav2。

1.5 常用 ROS 工具

工具用途新人怎么理解测试场景
RViz / RViz23D 可视化看机器人眼中的世界看地图、点云、机器人位置、路径、TF 坐标
Gazebo / Gazebo Sim物理仿真在电脑里搭一个虚拟草坪不用真机先跑导航、避障、传感器仿真
rqt图形化调试工具集合ROS 的调试面板看话题图、参数、日志、曲线
rosbag / rosbag2数据录制与回放机器人测试录像机缺陷复现、算法回归、离线分析
ros2 CLI命令行调试查节点、话题、服务、参数快速判断模块是否活着、数据是否正常

常用检查命令示例(ROS2):

ros2 node list ros2 topic list ros2 topic echo /imu/data ros2 topic hz /scan ros2 service list ros2 action list ros2 param list ros2 bag record /scan /imu/data /tf /odom

1.6 ROS 测试重点

测试对象重点问题常见缺陷
节点是否启动、是否异常退出、是否自动恢复节点崩溃、重复启动、参数加载失败
话题频率、延迟、消息类型、时间戳频率抖动、时间戳跳变、订阅不到数据
TF 坐标树坐标关系是否完整、方向是否正确地图和机器人位置错位、点云漂到车体外
QoS发布订阅策略是否兼容ROS2 下话题存在但收不到数据
参数默认值、边界值、热更新最大速度配置错误、避障距离阈值不生效
rosbag录制完整性、回放一致性缺少/tf导致离线无法复现
启动流程上电、重启、异常恢复某节点启动太晚,导致系统初始化失败

2. 感知传感器:机器人“看世界”的方式

机器人要自主移动,必须知道三类信息:

  1. 我周围有什么:人、宠物、树、石头、花坛、墙、坑。

  2. 它们离我多远:是否需要避让、减速、停车。

  3. 我自己怎么动了:是否转弯、打滑、倾斜、偏航。

2.1 传感器总览

传感器核心原理输出数据优势局限割草机器人用途
RGB 相机可见光成像2D 彩色图像便宜、清晰、适合识别物体类别