夜雨聆风学习资料网

ARTICLE · 1150805

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

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

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

【文末福利~】

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

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

mermaidflowchart 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 数据
录一段草坪运行数据,回放复现缺陷
QoS
Quality of Service
ROS2 通信质量策略
传感器数据允许丢少量帧,但控制命令更关注可靠性
DDS
Data Distribution Service
ROS2 底层分布式通信协议
多节点不用中心 Master 也能互相发现和通信

生活类比:

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

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

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

1.3 Topic、Service、Action 怎么选

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

1.4 ROS1 与 ROS2 的核心区别

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

新人建议:

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

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

1.5 常用 ROS 工具

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

常用检查命令示例(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 坐标树
坐标关系是否完整、方向是否正确
地图和机器人位置错位、点云漂到车体外
QoS
发布订阅策略是否兼容
ROS2 下话题存在但收不到数据
参数
默认值、边界值、热更新
最大速度配置错误、避障距离阈值不生效
rosbag
录制完整性、回放一致性
缺少 /tf 导致离线无法复现
启动流程
上电、重启、异常恢复
某节点启动太晚,导致系统初始化失败

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

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

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

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

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

2.1 传感器总览

传感器
核心原理
输出数据
优势
局限
割草机器人用途
RGB 相机
可见光成像
2D 彩色图像
便宜、清晰、适合识别物体类别
无深度,受光照影响大
识别草坪、花坛、行人、宠物、杂物
单目相机
单个 RGB 镜头
2D 图像、视觉特征
成本最低、体积小
无绝对尺度,容易尺度漂移
低成本视觉识别,通常不单独做可靠避障
双目相机
两个镜头做三角测距
深度图、视差图、图像
有真实尺度,户外强光下比结构光更稳
依赖纹理,纯草坪、白墙易失效
中距离视觉避障、VSLAM 辅助
RGBD 相机
RGB + 深度测量
彩色图、深度图、近距点云
直接输出距离,近距离精度好
量程有限,强光下部分方案退化
低矮障碍物、坑洼、近距离避障
ToF 相机
测量光飞行时间
深度图、近距点云
不太依赖纹理,适合近距离测深
受阳光、反光材质、量程影响
户外近距深度感知的常见方案
结构光相机
投射红外图案再计算深度
深度图
室内近距离效果好
户外强光会干扰红外图案
割草机器人通常不优先选
LiDAR 激光雷达
发射激光并测距
2D 扫描或 3D 点云
测距远,受光照影响小,几何精度高
成本、功耗、点云处理量较高;雨雾尘会影响效果
大范围建图、定位、远距离避障
IMU
测加速度和角速度
姿态、角速度、加速度
高频、低成本,可补视觉短时失效
长时间积分会漂移
姿态稳定、转弯检测、VIO/融合定位
轮速计
编码器测轮子转动
里程计、速度
结构简单,实时性好
轮胎打滑时误差大
估计短时移动距离、速度闭环
RTK-GNSS
卫星定位 + 差分修正
厘米级全局坐标
开阔场地无累积漂移
树荫、建筑遮挡、多路径会退化;不能避障
大草坪全局定位、回充、边界记忆
超声波 / 防撞条
声波测距或接触检测
距离、碰撞信号
便宜、简单、近距离安全冗余
信息量少,易受角度和材质影响
近距离安全保护、冗余停车

2.2 RGB、双目、RGBD、LiDAR 的生活类比

  • RGB 相机:像手机拍照,能看清颜色和形状,但照片本身不会告诉你物体离你 2 米还是 5 米。

  • 双目相机:像人的两只眼睛,通过左右眼看到的差异判断远近。

  • RGBD / ToF:像拿着一个能瞬间量出每个像素距离的电子卷尺。

  • LiDAR:像一个高速旋转的激光测距仪,不断扫描周围物体的位置。

  • IMU:像人的内耳,能感知身体是否倾斜、转动、加速。

  • RTK:像普通 GPS 加了一个“已知准确位置的参照站”,用参照站帮你修正误差。

2.3 容易混淆的点

双目相机 vs RGBD 相机

项目
双目相机
RGBD 相机
是否主动发光
通常不主动发光
通常主动发射红外或调制光
深度来源
左右图像视差 + 三角测量
硬件直接测深度
是否依赖纹理
很依赖纹理
相对不依赖纹理
户外强光
一般比结构光更适应
ToF 视型号可用,结构光通常较差
纯草坪/白墙
容易因缺纹理导致深度不稳定
ToF 通常更稳,但也受反射率和阳光影响
算力需求
较高,需要匹配左右图
中等,深度由硬件输出

LiDAR 是否真的“不怕天气”

更准确的说法是:LiDAR 不依赖可见光,白天、傍晚、树荫下通常稳定;但雨、雾、雪、扬尘、强反光或吸光材料会影响激光回波质量。测试时不能只在晴天验证。

RTK 是否能替代避障

不能。RTK 只告诉机器人“我在地球上的哪个坐标”,不告诉它前方有没有人、宠物、石块或坑。RTK 负责全局定位,避障仍要依赖相机、雷达、超声波、防撞条等感知。

2.4 传感器测试重点

传感器
核心测试项
常见异常
RGB 相机
清晰度、曝光、帧率、色彩、脏污遮挡、逆光
过曝、欠曝、拖影、镜头水雾、识别误判
双目相机
标定、基线、视差质量、弱纹理场景
深度空洞、左右图不同步、远距离误差大
RGBD / ToF
深度精度、量程、阳光、反光/黑色物体
深度跳变、近距盲区、户外强光失效
LiDAR
点云密度、扫描频率、盲区、反射强度
点云丢失、雨雾噪声、玻璃/黑色物体漏检
IMU
零偏、噪声、安装方向、时间戳
姿态漂移、方向轴反了、静止时仍有大角速度
轮速计
速度精度、左右轮一致性、打滑场景
里程虚高、转弯半径异常、轮胎打滑误判为前进
RTK
固定解比例、遮挡、重连、坐标跳变
树下退化、位置跳点、基站断连、回充偏移

3. SLAM、VSLAM 与定位建图

3.1 SLAM 是什么

SLAM 是 Simultaneous Localization And Mapping,中文叫“同步定位与建图”。它要同时解决两个问题:

  1. Localization:我现在在哪里?

  2. Mapping:周围环境长什么样?

难点在于:想建图需要知道自己位置,想知道自己位置又需要地图。机器人只能一边走、一边估计、一边修正。

生活类比:

  • 你第一次进一个大型地下停车场,没有地图。

  • 你边走边记住柱子、出口、车道线,同时判断自己从入口走了多远。

  • 如果走一圈回到入口,你会突然确认“我回来了”,然后把之前的路线误差修正掉。

  • 这就是 SLAM 里的回环检测。

3.2 VSLAM 是什么

VSLAM 是 Visual SLAM,即视觉 SLAM,主要依靠相机完成定位与建图。根据相机类型不同,可分为:

  • 单目 VSLAM:一个相机,成本低,但没有天然尺度,容易尺度漂移。

  • 双目 VSLAM:两个相机,能通过视差恢复真实尺度。

  • RGBD VSLAM:彩色图像 + 深度图,近距离建图和避障更直接。

  • VIO / Visual-Inertial Odometry:视觉 + IMU 融合,短时鲁棒性更好。

3.3 VSLAM 的四大模块

模块
作用
新人解释
常见测试点
前端 VO
估计相邻帧之间的运动
看连续画面变化,估算机器人走了多远、转了多少
光照变化、运动模糊、弱纹理、帧率下降
后端优化
全局修正轨迹和地图
把一路上积累的小误差统一摊平
长时间运行后是否漂移、优化后地图是否跳变
回环检测
识别是否回到旧位置
发现“这里我来过”,然后修正整张地图
误回环、漏回环、回环后定位突跳
建图
生成可用于定位、避障、规划的地图
把环境变成机器人能用的数据结构
地图重影、断裂、障碍物漏建、动态物残留

3.4 常见地图类型

地图类型
说明
用途
稀疏地图
只保存关键特征点
定位、回环、轻量级导航
稠密地图
保存大量点云或表面信息
障碍物识别、地形判断、三维理解
栅格地图
把空间切成格子,标记可通行/不可通行
移动机器人路径规划常用
语义地图
地图里带物体类别,如人、树、草地、花坛
智能避让和场景理解
代价地图
每个区域有通行成本
局部避障、靠近障碍物减速

3.5 特征点法与直接法

方法
原理
优势
局限
代表
特征点法
提取角点、边缘、纹理点并匹配
鲁棒、工程使用广、计算相对可控
弱纹理区域容易失败
ORB-SLAM 系列
直接法
直接利用像素亮度差估计运动
能使用更多图像信息,可构建较密地图
对光照变化、曝光变化敏感
LSD-SLAM、DSO

生活类比:

  • 特征点法:你靠“门牌、路标、墙角”认路。

  • 直接法:你靠整幅画面的明暗变化判断自己怎么移动。

3.6 SLAM 常见问题与解决思路

问题
表现
常见原因
解决/测试思路
尺度漂移
机器人以为走了 10 m,实际只有 8 m
单目相机无真实尺度
融合 IMU、轮速计、双目、RGBD、RTK
累积漂移
跑越久位置越偏
每帧运动估计都有小误差
后端图优化、回环检测、全局定位融合
弱纹理失效
草坪、白墙上定位不稳
缺少可匹配特征
增加 ToF/RGBD、LiDAR、IMU、轮速融合
光照变化
树荫、逆光、傍晚下丢定位
图像特征不稳定
曝光控制、HDR、鲁棒算法、传感器融合
运动模糊
快速转弯时地图错位
帧率不足、曝光时间长
降低速度、提高帧率、增加 IMU 约束
动态物体干扰
人和宠物经过导致地图污染
把动态物当成静态环境
动态特征剔除、语义分割、短时障碍层
时间不同步
点云、图像、IMU 对不上
传感器时间戳不一致
硬件同步、NTP/PTP、检查消息时间戳
外参错误
点云和图像错位
相机/雷达安装位置标定错误
重做标定,检查 TF 坐标树
回环误判
地图突然扭曲或跳变
两个相似地点被误认为同一地点
回环验证、几何一致性检查、场景回归测试

3.7 SLAM 测试指标

指标
含义
新人理解
ATE
Absolute Trajectory Error,绝对轨迹误差
整条轨迹和真值差多少
RPE
Relative Pose Error,相对位姿误差
短时间内每一步走得准不准
Drift
漂移
跑久后位置慢慢偏离
Relocalization
重定位
丢定位后能不能找回自己
Loop Closure
回环
回到老地方时能否修正地图
Map Consistency
地图一致性
墙、边界、障碍物是否重影或断裂
Robustness
鲁棒性
弱光、强光、遮挡、动态物下能否继续工作
Latency
延迟
数据到结果之间慢多少
CPU/GPU Load
算力占用
是否会导致整机卡顿或过热

4. 导航、规划与执行:机器人“决定怎么走”

虽然原始文档重点在 ROS、VSLAM、传感器,但新人做机器人测试时还需要理解导航链路。

4.1 导航链路

模块
作用
割草机器人例子
定位
输出机器人当前位姿
我在草坪地图的哪个位置、朝哪个方向
地图
提供环境结构
哪里是草地、花坛、墙、禁区
全局规划
规划长距离路线
从当前位置去充电桩
局部规划
处理近距离避障
前方突然有人,绕开或停车
控制器
把路径变成速度命令
左右轮各转多快,转弯半径多大
执行机构
真实执行动作
行走电机、转向机构、刀盘升降和启停

4.2 路径规划的生活类比

  • 全局规划像手机地图:告诉你从家到公司怎么走。

  • 局部规划像你开车时临时变道:前方有人或车,就绕一下。

  • 控制器像驾驶员踩油门、打方向:把路线变成具体动作。

4.3 导航测试重点

测试项
关注问题
全覆盖作业
是否漏割、重复割、边界遗漏
沿边作业
距离花坛、墙体、围栏是否稳定
动态避障
人、宠物、玩具出现时是否减速/停车/绕行
狭窄通道
是否能通过,是否频繁震荡
回充
是否能找到充电桩,最后对接精度是否满足要求
失定位恢复
丢定位后是否停车、重定位或请求人工介入
安全策略
传感器异常、刀盘异常、电机堵转时是否进入安全状态

5. 割草机器人中的典型系统方案

5.1 典型数据流

```mermaidflowchart TD    A["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 常见配置思路

场景
常见配置
优势
风险
小庭院、成本敏感
RGBD/ToF + IMU + 轮速计
成本较低,近距离避障好
大范围定位和强光鲁棒性要重点验证
中等庭院
双目或 ToF + 2D/3D LiDAR + IMU
定位和避障更稳
标定、时间同步、算力压力更大
大面积开阔草坪
RTK + LiDAR + RGB/RGBD + IMU
全局定位强,适合长时间作业
树荫遮挡、RTK 退化和传感器融合策略要重点测
复杂庭院
LiDAR SLAM + VSLAM + RTK 融合
多源冗余,鲁棒性好
系统复杂,故障定位难度高

5.3 割草机器人重点测试场景

场景
为什么重要
测试关注点
纯草坪弱纹理
VSLAM 容易缺特征
定位是否漂移,深度是否稳定
树荫和强阳光交替
图像曝光变化大
相机识别、VSLAM、ToF 深度是否退化
草高变化
低矮障碍物可能被遮挡
是否误判草为障碍,是否漏检石块
花坛和边界
割草不能越界
边界识别、沿边距离、虚拟墙策略
行人和宠物
安全优先
减速、停车、刀盘保护、恢复逻辑
小石块、树枝、玩具
常见低矮障碍
RGBD/LiDAR 是否检出,局部规划是否绕行
坡地和湿草
轮胎容易打滑
轮速里程计误差、姿态保护、路径偏移
回充路径
产品体验关键
定位稳定、路径规划、充电桩对接精度
雨后/雾气/灰尘
传感器退化
镜头污染、点云噪声、误报漏报
长时间运行
量产可靠性
内存泄漏、温升、节点崩溃、漂移累积

5.4 新人测试时的排查顺序

当机器人“跑偏、撞障碍、地图错、回不去充电桩”时,不要直接判断是算法问题。建议按链路排查:

  1. 传感器是否正常:图像、点云、IMU、RTK 有没有数据?

  2. 时间戳是否正常:各传感器是不是同一个时间体系?

  3. 坐标系是否正常:TF 树是否连通,外参方向是否装反?

  4. 定位是否正常:轨迹是否跳变、漂移、丢失?

  5. 地图是否正常:边界、障碍物、禁区是否正确?

  6. 规划是否正常:路径是否绕开障碍,是否贴边过近?

  7. 控制是否正常:命令发出后电机是否按预期执行?

  8. 安全策略是否正常:异常时是否减速、停车、报警、保护刀盘?


6. 机器人测试新人必须掌握的专业术语

术语
英文/缩写
解释
例子
机器人操作系统
ROS
机器人软件框架和通信中间件
管理相机、雷达、导航、电机节点
数据分发服务
DDS
ROS2 底层通信机制
节点无需 Master 也能互相发现
服务质量
QoS
控制通信可靠性、缓存、延迟等策略
传感器数据可用 best effort,关键状态用 reliable
节点
Node
独立功能进程
/camera_driver
、/planner
话题
Topic
持续数据通道
/scan
、/cmd_vel
消息
Message
话题数据格式
sensor_msgs/Image
服务
Service
请求-响应通信
查询电池状态
动作
Action
长任务通信
自动回充、全场割草
坐标系
Frame
描述位置和方向的参考系
map
、odom、base_link、camera_link
TF
Transform
坐标系之间的位置姿态关系
相机到车体中心的安装关系
里程计
Odometry
根据运动估计出来的位置变化
轮速里程计、视觉里程计
位姿
Pose
位置 + 朝向
x、y、z、roll、pitch、yaw
点云
Point Cloud
大量三维点集合
LiDAR 扫描出的障碍物轮廓
视场角
FOV
传感器能看到的角度范围
相机水平 90 度,雷达 360 度
帧率
FPS
每秒图像帧数
30 FPS 表示每秒 30 张图
频率
Hz
每秒发生次数
10 Hz 雷达表示每秒扫描 10 次
延迟
Latency
从采集到输出的时间差
避障结果晚 200 ms 可能已撞上障碍
标定
Calibration
求传感器参数或安装关系
相机内参、相机到雷达外参
内参
Intrinsic
相机自身成像参数
焦距、主点、畸变
外参
Extrinsic
不同传感器之间的位置姿态
雷达到车体中心的偏移和角度
时间同步
Time Sync
让不同传感器时间对齐
图像和 IMU 必须对应同一时刻
SLAM
Simultaneous Localization and Mapping
同步定位与建图
边走边建草坪地图
VSLAM
Visual SLAM
视觉 SLAM
用相机定位建图
VO
Visual Odometry
视觉里程计
根据连续图像估计运动
VIO
Visual-Inertial Odometry
视觉惯性里程计
相机 + IMU 融合估计运动
BA
Bundle Adjustment
光束平差,优化相机位姿和地图点
后端优化常用方法
回环检测
Loop Closure
识别回到曾经到过的位置
绕草坪一圈后修正累计误差
重定位
Relocalization
定位丢失后重新找回位置
被人抱起再放下后恢复定位
稀疏地图
Sparse Map
只保存关键特征点
轻量定位
稠密地图
Dense Map
保存丰富三维结构
地形和障碍物判断
语义地图
Semantic Map
带类别标签的地图
标记草地、花坛、人、宠物
栅格地图
Occupancy Grid
网格化地图,每格可通行/不可通行
导航常用二维地图
代价地图
Costmap
每格带通行代价
离障碍越近代价越高
LiDAR
Light Detection and Ranging
激光雷达
发射激光测距,输出点云
RGBD
RGB + Depth
彩色 + 深度相机
同时输出图像和距离
ToF
Time of Flight
飞行时间测距
通过光往返时间计算距离
IMU
Inertial Measurement Unit
惯性测量单元
输出角速度、加速度
RTK
Real-Time Kinematic
实时动态差分定位
开阔草坪厘米级定位
GNSS
Global Navigation Satellite System
全球卫星导航系统
GPS、北斗、GLONASS、Galileo
EKF
Extended Kalman Filter
扩展卡尔曼滤波
融合 IMU、轮速、GPS 等定位
URDF
Unified Robot Description Format
ROS 机器人模型描述
描述车体、轮子、传感器位置
SDF
Simulation Description Format
仿真模型描述格式
Gazebo 中描述机器人和世界

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 通用测试用例模板

字段
内容
用例名称
明确测试目标
前置条件
场地、固件版本、地图状态、传感器状态
测试步骤
可复现的操作步骤
预期结果
可度量、可判断的结果
采集数据
rosbag、日志、视频、截图、故障码
判定标准
通过/失败标准
备注
异常现象、环境条件、风险

8.2 示例:低矮障碍物避障测试

字段
内容
用例名称
ToF/RGBD 对低矮障碍物检测能力测试
前置条件
机器人完成建图,刀盘关闭,传感器清洁,地面光照记录完整
测试步骤
在前方 0.5 m、1 m、2 m 分别放置石块、树枝、玩具,机器人低速接近
预期结果
机器人识别障碍物并减速、停车或绕行,不发生接触
采集数据
RGB 图、深度图、点云、局部代价地图、速度命令、视频
判定标准
检出率、最小停车距离、误报率、漏检率满足项目要求

8.3 示例:VSLAM 弱纹理漂移测试

字段
内容
用例名称
纯草坪弱纹理场景下 VSLAM 定位稳定性
前置条件
固定测试路线,准备参考轨迹或 RTK 真值
测试步骤
机器人沿草坪矩形路线运行 3 圈,记录定位轨迹
预期结果
轨迹闭合误差在阈值内,地图无明显重影,未发生长时间丢定位
采集数据
相机、IMU、轮速、SLAM 位姿、地图、系统日志
判定标准
ATE/RPE、丢定位次数、回环成功率、CPU/GPU 占用

8.4 示例:RTK 遮挡退化测试

字段
内容
用例名称
树荫遮挡下 RTK 定位退化与融合策略
前置条件
RTK 正常固定解,记录卫星数量和基站连接状态
测试步骤
机器人从开阔区域进入树荫,再返回开阔区域
预期结果
RTK 退化时系统不突然大幅跳点,定位融合平滑,必要时降速
采集数据
GNSS 状态、RTK 解状态、融合定位、地图轨迹、速度命令
判定标准
坐标跳变量、固定解恢复时间、路径偏差、是否触发安全策略

9. 常见问题速查表

现象
可能原因
优先检查
RViz 里点云和机器人错位
TF 外参错误、坐标轴方向错
tf2_tools
、RViz TF、URDF/参数
话题存在但订阅不到
QoS 不兼容、命名空间错误
ros2 topic info -v
、启动参数
机器人地图重影
定位漂移、回环失败、时间不同步
SLAM 日志、/tf、传感器时间戳
机器人突然急转
局部规划抖动、障碍物误报、控制参数过激
costmap、速度命令、障碍物层
纯草坪上定位不稳
弱纹理、曝光不稳、轮胎打滑
图像质量、IMU/轮速融合、ToF/LiDAR
回充偏差大
全局定位误差、充电桩识别误差、控制精度不足
RTK/SLAM 轨迹、近距传感器、对接日志
LiDAR 有大量噪点
雨雾、玻璃、反光物、灰尘
点云强度、环境记录、传感器清洁
深度图大片空洞
强光、反光/黑色物体、超出量程
深度置信度、曝光、距离、材质
长时间运行后卡顿
CPU/GPU 过高、内存泄漏、日志过量
系统监控、节点日志、资源曲线
机器人实际走了但里程没变
编码器故障、驱动异常、话题未发布
轮速话题、电机状态、驱动日志

10. 新人需要修正的几个常见认知

  1. ROS 不是机器人本体的“大脑”,它更像连接各模块的框架和工具箱。真正做决策的是导航、规划、控制等算法节点。

  2. VSLAM 不是万能定位。弱纹理、强光、暗光、动态物、快速运动都会让视觉退化。

  3. LiDAR 不是任何天气都完美。它不依赖可见光,但雨雾尘和特殊材质仍会影响回波。

  4. RTK 只能定位,不能避障。它不知道前方有没有人和石头。

  5. RGBD 不等于所有户外都稳定。结构光通常不适合强日照;ToF 更适合户外近距离,但也要实测量程、强光和材质。

  6. 单个传感器很难覆盖所有场景。产品级机器人通常依赖多传感器融合和安全冗余。

  7. 测试不能只看“当下是否能跑”。要看异常、退化、恢复、长时间运行、环境边界和数据可复现。


11. 推荐专业资料来源

以下资料用于校准本文专业口径,建议新人后续按需阅读:

  1. ROS 2 官方文档:Nodes、Topics、Services、Actions、Parameters、QoS、DDS 等概念https://docs.ros.org/en/jazzy/Concepts.html

  2. ROS 2 发行版说明,用于确认各版本支持状态https://docs.ros.org/en/jazzy/Releases.html

  3. Gazebo 官方文档,用于理解机器人仿真、物理环境和传感器仿真Getting Started with Gazebo? — Gazebo jetty documentation

  4. ROS RViz 文档,用于理解机器人数据可视化https://docs.ros.org/en/jazzy/Tutorials/Intermediate/RViz/RViz-Main.html

  5. ORB-SLAM2 论文:特征点法视觉 SLAM 的经典工程代表[1610.06475] ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras

  6. ORB-SLAM3 论文:视觉、视觉惯性、多地图 SLAM 的经典参考[2007.11898] ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM

  7. LSD-SLAM 论文:直接法单目 SLAM 的经典参考Computer Vision Group - Visual SLAM - LSD-SLAM: Large-Scale Direct Monocular SLAM

  8. NOAA LiDAR 科普资料:激光雷达定义与基本原理What is lidar?

  9. NOAA NGS CORS:GNSS/RTK 差分定位相关基础设施参考NOAA CORS Network - National Geodetic Survey

  10. Intel RealSense 深度视觉资料:双目深度、深度相机工程概念参考https://dev.intelrealsense.com/docs/stereo-depth-vision-basics


12. 一句话总结

机器人测试新人不需要一开始就推公式,但必须建立“传感器采集数据 -> ROS 通信分发 -> SLAM

定位建图 -> 规划决策 -> 控制执行 -> 日志回放定位问题”的整机链路意识。只要能沿这条链路排查

问题,就能从“看现象”逐步成长为“定位问题来源”的系统测试工程师。

如何获取资料:

    1. 1、点赞+推荐

    2. 2、扫描下方任意二维码,回复“机器人测试”即可

相关学习资料