)
适用对象:机器人测试新人、产品测试、系统测试、质量验证、售后技术支持。示例场景:以割草机器人为主,同时适用于扫地机器人、配送机器人、移动底盘等自主移动机器人。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. 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 /odom1.6 ROS 测试重点测试对象重点问题常见缺陷节点是否启动、是否异常退出、是否自动恢复节点崩溃、重复启动、参数加载失败话题频率、延迟、消息类型、时间戳频率抖动、时间戳跳变、订阅不到数据TF 坐标树坐标关系是否完整、方向是否正确地图和机器人位置错位、点云漂到车体外QoS发布订阅策略是否兼容ROS2 下话题存在但收不到数据参数默认值、边界值、热更新最大速度配置错误、避障距离阈值不生效rosbag录制完整性、回放一致性缺少/tf导致离线无法复现启动流程上电、重启、异常恢复某节点启动太晚,导致系统初始化失败2. 感知传感器:机器人“看世界”的方式机器人要自主移动,必须知道三类信息:我周围有什么:人、宠物、树、石头、花坛、墙、坑。它们离我多远:是否需要避让、减速、停车。我自己怎么动了:是否转弯、打滑、倾斜、偏航。2.1 传感器总览传感器核心原理输出数据优势局限割草机器人用途RGB 相机可见光成像2D 彩色图像便宜、清晰、适合识别物体类别