2. 一台 ROS 机器人如何工作¶
上一章说明了 ROS 2 位于机器人软件层。本章把整台机器人放在同一张系统图中观察:传感器提供观测,主控中的 ROS 2 程序处理数据并形成目标,控制板处理靠近硬件的输入输出,电机与机械结构完成运动,电源系统为各部分供能。这里先建立部件之间的关系,具体的接口、微控制器型号和控制算法放在第二篇说明。
2.1 从一次避障过程看机器人系统¶
机器人运行时,信息沿着“环境与本体观测 → 主控计算 → 控制板执行 → 车体运动 → 状态反馈”的方向流动。以避障减速为例,可以看到这条关系:
- 激光雷达产生环境观测,驱动节点把它接入 ROS 2。
- 避障或导航程序结合观测和任务目标,计算新的运动目标。
- 底盘节点把目标交给控制板,控制板根据底层反馈更新控制量。
- 电机和机械结构改变车体运动,新的状态再进入系统。
这条链同时包含信息传递、能量转换和状态反馈。后续章节会分别从 ROS 2 程序、硬件接口和运动控制三个角度展开。
2.2 感知:传感器怎样描述环境¶
传感器(Sensor)为程序提供环境和机器人自身状态的观测。激光雷达和相机描述周围环境,编码器和惯性传感器描述车轮或车体运动。它们可以是独立设备,也可以集成在控制板或电机组件中。
本章关注传感器在系统中的位置。安装位置、采样时间和坐标方向会改变观测的含义,具体测量原理和接口见第二篇第 8 章。
2.3 计算:主控怎样运行机器人程序¶
主控是机器人上运行 Ubuntu 和 ROS 2 的计算设备。它承载驱动、定位、导航、视觉和任务程序,把传感器数据转换成状态、目标或控制请求。树莓派、Jetson、RDK、Atlas 和工控机都可以承担这一角色,具体平台取决于算力、接口和部署要求。
主控适合运行需要较多内存和计算量的程序,也便于替换算法、记录日志和扩展应用。它通过底盘接口把结果交给控制板,电机功率由执行层处理。
2.4 控制:控制板怎样执行速度目标¶
控制板位于主控和电机执行机构之间,处理靠近硬件的输入输出。它接收主控给出的目标,读取编码器等底层反馈,按固定周期更新控制量,再交给电机驱动器。控制板通常包含微控制器;具体型号、固件和实时调度属于第二篇的内容。
主控与控制板可以通过串行通信或控制器通信总线交换目标、反馈和状态。两端需要约定数据格式和更新方式;第 7 章会说明接口如何承载这些数据。控制板上的状态显示属于本地观察手段。
2.5 执行:电机与机械结构怎样产生运动¶
电机驱动器接收控制板信号并调节电机电流,电机通过减速机构和车轮把电能转为车体运动。机械结构决定运动约束,差速轮、麦克纳姆轮、全向轮和阿克曼底盘具有不同的速度关系;这些关系在第二篇第 9 章中使用。
2.6 信息流与能量流¶
机器人内部同时存在两条方向不同的链路:
| 链路 | 典型方向 | 作用 |
|---|---|---|
| 信息流 | 传感器 → 主控 → 控制板 → 电机驱动器 | 传递观测、目标和控制量。 |
| 反馈流 | 编码器与惯性传感器 → 控制板 → 主控 | 报告实际运动与设备状态。 |
| 能量流 | 电池 → 电源模块 → 主控、传感器、电机驱动器 | 为计算、感知和运动供电。 |
电池和电源模块要满足各部件的电压、电流与接地要求。信息链路、使能状态和电机供电共同决定执行层能否产生运动。
观察硬件时
断电后再插拔电机线、传感器线和控制板接口。仅辨认部件时保留原有接线,并记录无法确认的型号或丝印。
2.7 本章小结¶
本章建立了系统级分工:传感器提供观测,主控运行上层程序,控制板处理底层输入输出,驱动器和电机完成执行,电源为各层提供能量。第二篇将在这个模型上展开接口、传感器和闭环控制。
2.8 观察练习¶
在实物或产品照片上辨认下列部件,并画出它们之间的连接关系:
- 一种环境传感器;
- 主控与底盘控制板;
- 电机驱动器、电机和车轮;
- 电池或电源接口。
随后选择“减速”或“转弯”任务,分别写出传感器提供的数据、主控产生的目标和控制板执行的动作。