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

适用对象:机器人测试新人、产品测试、系统测试、质量验证、售后技术支持。 示例场景:以割草机器人为主,同时适用于扫地机器人、配送机器人、移动底盘等自主移动机器人。
【文末福利~】
0. 新人先建立一张“整机地图”
机器人测试不是只看一个传感器或一段算法,而是看整机链路是否稳定闭环。可以先记住一条主线:
mermaidflowchart LRA["感知层:相机 / RGBD / LiDAR / IMU / RTK / 轮速计"] --> B["定位建图层:SLAM / VSLAM / LiDAR SLAM / 传感器融合"]B --> C["规划决策层:全局路径 / 局部避障 / 作业策略"]C --> D["控制执行层:电机 / 转向 / 刀盘 / 回充"]D --> E["状态反馈层:里程计 / 电流 / 温度 / 故障码 / 日志"]E --> B```
生活类比:
人在陌生公园里走路:眼睛负责看路,内耳负责感知身体姿态,大脑一边记地图一边判断自己在哪,腿负责执行行走。
机器人也类似:相机、雷达、IMU 是“眼睛和内耳”;SLAM 是“认路和记地图”;路径规划是“决定怎么走”;电机和刀盘是“腿和工具”。
测试新人看机器人时,建议永远追问三件事:
输入是什么:传感器数据是否真实、连续、时间对齐?
输出是什么:定位、地图、路径、控制命令是否符合预期?
异常怎么表现:弱光、强光、遮挡、打滑、动态障碍物、通信中断时系统是否能恢复?
1. ROS 机器人操作系统
1.1 ROS 到底是什么
ROS 是 Robot Operating System 的缩写,中文常叫“机器人操作系统”。但它不是 Windows、Android 那种完整操作系统,更准确地说,它是运行在 Linux 等系统上的机器人软件框架和通信中间件。
通俗理解:
Linux 像地基和房子。
ROS 像房子里的水电网络、开关面板和设备接口。
相机、雷达、电机、导航算法、避障算法通过 ROS 连接起来,各模块不需要彼此硬编码在一起。
割草机器人示例:
相机节点持续发布图像。
激光雷达节点持续发布点云或扫描线。
定位节点订阅相机、雷达、IMU 数据,输出机器人位置。
导航节点根据地图和位置规划路径。
控制节点把路径转换成电机速度和刀盘控制命令。
1.2 ROS 核心术语
/camera/image/scan、/imu/data | |||
生活类比:
Topic 像微信群直播消息:有人一直发,有人按需看。
Service 像去窗口办业务:你提一个请求,对方给一个结果。
Action 像点外卖:下单后能看到“已接单、配送中、已送达”,最后有结果。
1.3 Topic、Service、Action 怎么选
1.4 ROS1 与 ROS2 的核心区别
新人建议:
学概念时可以看 ROS1 资料,因为很多名词是相通的。
做产品测试和新项目时,应优先按 ROS2 口径学习,尤其关注 DDS、QoS、生命周期节点、rosbag2、Nav2。
1.5 常用 ROS 工具
常用检查命令示例(ROS2):
ros2 node listros2 topic listros2 topic echo /imu/dataros2 topic hz /scanros2 service listros2 action listros2 param listros2 bag record /scan /imu/data /tf /odom
1.6 ROS 测试重点
/tf 导致离线无法复现 | ||
2. 感知传感器:机器人“看世界”的方式
机器人要自主移动,必须知道三类信息:
我周围有什么:人、宠物、树、石头、花坛、墙、坑。
它们离我多远:是否需要避让、减速、停车。
我自己怎么动了:是否转弯、打滑、倾斜、偏航。
2.1 传感器总览
2.2 RGB、双目、RGBD、LiDAR 的生活类比
RGB 相机:像手机拍照,能看清颜色和形状,但照片本身不会告诉你物体离你 2 米还是 5 米。
双目相机:像人的两只眼睛,通过左右眼看到的差异判断远近。
RGBD / ToF:像拿着一个能瞬间量出每个像素距离的电子卷尺。
LiDAR:像一个高速旋转的激光测距仪,不断扫描周围物体的位置。
IMU:像人的内耳,能感知身体是否倾斜、转动、加速。
RTK:像普通 GPS 加了一个“已知准确位置的参照站”,用参照站帮你修正误差。
2.3 容易混淆的点
双目相机 vs RGBD 相机
LiDAR 是否真的“不怕天气”
更准确的说法是:LiDAR 不依赖可见光,白天、傍晚、树荫下通常稳定;但雨、雾、雪、扬尘、强反光或吸光材料会影响激光回波质量。测试时不能只在晴天验证。
RTK 是否能替代避障
不能。RTK 只告诉机器人“我在地球上的哪个坐标”,不告诉它前方有没有人、宠物、石块或坑。RTK 负责全局定位,避障仍要依赖相机、雷达、超声波、防撞条等感知。
2.4 传感器测试重点
3. SLAM、VSLAM 与定位建图
3.1 SLAM 是什么
SLAM 是 Simultaneous Localization And Mapping,中文叫“同步定位与建图”。它要同时解决两个问题:
Localization:我现在在哪里?
Mapping:周围环境长什么样?
难点在于:想建图需要知道自己位置,想知道自己位置又需要地图。机器人只能一边走、一边估计、一边修正。
生活类比:
你第一次进一个大型地下停车场,没有地图。
你边走边记住柱子、出口、车道线,同时判断自己从入口走了多远。
如果走一圈回到入口,你会突然确认“我回来了”,然后把之前的路线误差修正掉。
这就是 SLAM 里的回环检测。
3.2 VSLAM 是什么
VSLAM 是 Visual SLAM,即视觉 SLAM,主要依靠相机完成定位与建图。根据相机类型不同,可分为:
单目 VSLAM:一个相机,成本低,但没有天然尺度,容易尺度漂移。
双目 VSLAM:两个相机,能通过视差恢复真实尺度。
RGBD VSLAM:彩色图像 + 深度图,近距离建图和避障更直接。
VIO / Visual-Inertial Odometry:视觉 + IMU 融合,短时鲁棒性更好。
3.3 VSLAM 的四大模块
3.4 常见地图类型
3.5 特征点法与直接法
生活类比:
特征点法:你靠“门牌、路标、墙角”认路。
直接法:你靠整幅画面的明暗变化判断自己怎么移动。
3.6 SLAM 常见问题与解决思路
3.7 SLAM 测试指标
4. 导航、规划与执行:机器人“决定怎么走”
虽然原始文档重点在 ROS、VSLAM、传感器,但新人做机器人测试时还需要理解导航链路。
4.1 导航链路
4.2 路径规划的生活类比
全局规划像手机地图:告诉你从家到公司怎么走。
局部规划像你开车时临时变道:前方有人或车,就绕一下。
控制器像驾驶员踩油门、打方向:把路线变成具体动作。
4.3 导航测试重点
5. 割草机器人中的典型系统方案
5.1 典型数据流
```mermaidflowchart TDA["RGB / RGBD / LiDAR / IMU / RTK / 轮速计"] --> B["ROS2 驱动节点"]B --> C["传感器话题:图像 / 点云 / IMU / 里程计 / GNSS"]C --> D["融合定位:VSLAM / LiDAR SLAM / VIO / EKF"]D --> E["地图:边界 / 障碍物 / 代价地图 / 作业区域"]E --> F["路径规划:全覆盖 / 沿边 / 回充"]F --> G["控制节点:速度 / 转向 / 刀盘"]G --> H["机器人执行:行走 / 割草 / 避障 / 回充"]H --> I["日志与状态:故障码 / 电量 / 温度 / 电流"]I --> C```
5.2 常见配置思路
5.3 割草机器人重点测试场景
5.4 新人测试时的排查顺序
当机器人“跑偏、撞障碍、地图错、回不去充电桩”时,不要直接判断是算法问题。建议按链路排查:
传感器是否正常:图像、点云、IMU、RTK 有没有数据?
时间戳是否正常:各传感器是不是同一个时间体系?
坐标系是否正常:TF 树是否连通,外参方向是否装反?
定位是否正常:轨迹是否跳变、漂移、丢失?
地图是否正常:边界、障碍物、禁区是否正确?
规划是否正常:路径是否绕开障碍,是否贴边过近?
控制是否正常:命令发出后电机是否按预期执行?
安全策略是否正常:异常时是否减速、停车、报警、保护刀盘?
6. 机器人测试新人必须掌握的专业术语
/camera_driver/planner | |||
/scan/cmd_vel | |||
sensor_msgs/Image | |||
mapodom、base_link、camera_link | |||
7. 面向测试的快速学习路径
第 1 阶段:先会看系统是否“活着”
目标:
会列出节点、话题、服务、动作。
会用 RViz 看机器人位置、点云、地图。
会录制和回放 rosbag。
练习:
ros2 node listros2 topic listros2 topic hz /scanros2 topic echo /odomros2 bag record /scan /imu/data /tf /odom
第 2 阶段:看懂传感器数据
目标:
RGB 图像是否清晰、曝光是否正常。
深度图是否有空洞、跳变、量程不足。
LiDAR 点云是否完整、有无噪声。
IMU 静止时是否稳定。
RTK 是否固定解、是否跳点。
练习:
在室内、阳光、树荫、逆光下分别采集数据。
对比同一障碍物在 RGB、深度图、点云中的表现。
记录传感器异常时机器人策略:继续、减速、停车、报警。
第 3 阶段:看懂定位和地图
目标:
能判断机器人轨迹是否漂移。
能看出地图是否重影、断裂、扭曲。
能知道丢定位、重定位、回环分别是什么现象。
练习:
绕固定区域一圈,观察回到起点时误差。
在弱纹理草坪、树荫、动态行人干扰下测试定位稳定性。
回放 rosbag,确认缺陷是否可复现。
第 4 阶段:看懂整机行为
目标:
能把“撞障碍、漏割、回充失败”拆解到感知、定位、规划、控制、执行某一段。
能写出可复现、可定位、可回归的测试用例。
练习:
设计低矮障碍物测试。
设计花坛沿边测试。
设计 RTK 遮挡退化测试。
设计长时间运行稳定性测试。
8. 测试用例模板与示例
8.1 通用测试用例模板
8.2 示例:低矮障碍物避障测试
8.3 示例:VSLAM 弱纹理漂移测试
8.4 示例:RTK 遮挡退化测试
9. 常见问题速查表
tf2_tools | ||
ros2 topic info -v | ||
/tf、传感器时间戳 | ||
10. 新人需要修正的几个常见认知
ROS 不是机器人本体的“大脑”,它更像连接各模块的框架和工具箱。真正做决策的是导航、规划、控制等算法节点。
VSLAM 不是万能定位。弱纹理、强光、暗光、动态物、快速运动都会让视觉退化。
LiDAR 不是任何天气都完美。它不依赖可见光,但雨雾尘和特殊材质仍会影响回波。
RTK 只能定位,不能避障。它不知道前方有没有人和石头。
RGBD 不等于所有户外都稳定。结构光通常不适合强日照;ToF 更适合户外近距离,但也要实测量程、强光和材质。
单个传感器很难覆盖所有场景。产品级机器人通常依赖多传感器融合和安全冗余。
测试不能只看“当下是否能跑”。要看异常、退化、恢复、长时间运行、环境边界和数据可复现。
11. 推荐专业资料来源
以下资料用于校准本文专业口径,建议新人后续按需阅读:
ROS 2 官方文档:Nodes、Topics、Services、Actions、Parameters、QoS、DDS 等概念https://docs.ros.org/en/jazzy/Concepts.html
ROS 2 发行版说明,用于确认各版本支持状态https://docs.ros.org/en/jazzy/Releases.html
Gazebo 官方文档,用于理解机器人仿真、物理环境和传感器仿真Getting Started with Gazebo? — Gazebo jetty documentation
ROS RViz 文档,用于理解机器人数据可视化https://docs.ros.org/en/jazzy/Tutorials/Intermediate/RViz/RViz-Main.html
ORB-SLAM2 论文:特征点法视觉 SLAM 的经典工程代表[1610.06475] ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras
ORB-SLAM3 论文:视觉、视觉惯性、多地图 SLAM 的经典参考[2007.11898] ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM
LSD-SLAM 论文:直接法单目 SLAM 的经典参考Computer Vision Group - Visual SLAM - LSD-SLAM: Large-Scale Direct Monocular SLAM
NOAA LiDAR 科普资料:激光雷达定义与基本原理What is lidar?
NOAA NGS CORS:GNSS/RTK 差分定位相关基础设施参考NOAA CORS Network - National Geodetic Survey
Intel RealSense 深度视觉资料:双目深度、深度相机工程概念参考https://dev.intelrealsense.com/docs/stereo-depth-vision-basics
12. 一句话总结
机器人测试新人不需要一开始就推公式,但必须建立“传感器采集数据 -> ROS 通信分发 -> SLAM
定位建图 -> 规划决策 -> 控制执行 -> 日志回放定位问题”的整机链路意识。只要能沿这条链路排查
问题,就能从“看现象”逐步成长为“定位问题来源”的系统测试工程师。
如何获取资料:
1、点赞+推荐
2、扫描下方任意二维码,回复“机器人测试”即可