07 机器人系统、硬件与 ROS
本章抓手
- 系统工程决定算法能否真实跑起来:时间戳、坐标系、通信、延迟和安全都很关键。
- ROS 2 是连接模块的中间件,不是替代系统设计的魔法层。
- 真实机器人调试要靠日志、回放、分层测试和安全边界。
它解决什么问题
机器人系统工程把算法放到真实机器上运行。一个算法在 notebook 或仿真中有效,不代表能在机器人上稳定工作。真实系统要处理实时通信、传感器同步、执行器接口、故障恢复、安全边界、日志、仿真和部署。
机器人硬件组成
典型机器人由这些部分组成:
- Mechanical structure:底盘、连杆、关节、夹爪、外壳。
- Actuator:电机、舵机、液压、气动、线驱。
- Sensor:camera, LiDAR, IMU, encoder, force/torque, tactile。
- Compute:MCU、嵌入式 SoC、工控机、GPU。
- Power:电池、电源管理、急停电路。
- Communication:CAN, EtherCAT, UART, Ethernet, Wi-Fi。
核心约束:
- 执行器有饱和、延迟、背隙 backlash 和温升。
- 传感器有频率、噪声、视野和退化场景。
- 计算平台有功耗、散热和实时性限制。
- 机械结构决定可达空间、刚度和负载能力。
学习关键词:robot hardware, actuator, encoder, IMU, force torque sensor, EtherCAT, CAN bus。
ROS 2
ROS 2 是机器人软件中最常见的中间件之一。它不是一个算法库,而是连接进程、消息、坐标系、日志、参数和工具链的系统框架。
核心概念:
- Node:独立运行的功能模块。
- Topic:异步发布订阅消息。
- Service:同步请求响应。
- Action:适合长时间任务的目标-反馈-结果接口。
- Parameter:运行参数。
- Launch:启动多个节点和配置。
- Bag:记录和回放数据。
- TF:维护坐标变换树。
典型机器人系统:
camera node -> perception node -> planner node -> controller node -> hardware interface
lidar node -> localization node -> map server -> navigation stack
ROS 2 关键改进:
- 基于 DDS 的通信。
- 更好的多机器人和分布式支持。
- QoS 策略可配置。
- 更适合实时和工业系统,但仍需谨慎设计。
学习关键词:ROS 2, node, topic, service, action, TF, rosbag, DDS, QoS。
坐标系与 TF
坐标系管理是机器人系统的基础。很多机器人 bug 本质上是坐标系、单位或时间戳错误。
常见坐标系:
map:全局地图坐标系。odom:连续但会漂移的里程计坐标系。base_link:机器人本体坐标系。camera_link:相机坐标系。end_effector:末端执行器坐标系。
关键问题:
- 坐标变换方向是否正确。
- 外参是否准确。
- 时间戳是否对应同一时刻。
- frame convention 是否一致。
学习关键词:TF tree, coordinate frame, extrinsic calibration, timestamp, SE(3) transform。
实时性 Realtime
机器人控制常有硬实时或软实时要求。
典型频率:
- 电机电流环:kHz 级。
- 关节控制:几百 Hz 到 kHz。
- 状态估计:几十到几百 Hz。
- 感知:10-60 Hz。
- 高层规划:1-10 Hz 或更低。
系统设计原则:
- 低层控制尽量确定性 deterministic。
- 高层感知和规划可以异步,但要处理过期信息。
- 控制环中避免不可预测的内存分配和阻塞 IO。
- 记录 latency、jitter 和 dropped frames。
学习关键词:real-time control, latency, jitter, control loop, deterministic execution。
仿真 Simulation
仿真用于开发、测试、数据生成和策略训练,但不能完全替代真实世界。
常见仿真器:
- Gazebo / Ignition。
- MuJoCo。
- Isaac Sim / Isaac Gym。
- PyBullet。
- Webots。
仿真用途:
- 快速验证算法。
- 生成训练数据。
- 做回归测试。
- 测试危险场景。
- 做 system identification。
仿真局限:
- 接触、摩擦、柔性体和传感器噪声很难完全真实。
- 仿真越真实,计算越贵。
- 策略可能 exploit simulator artifact。
学习关键词:robot simulation, Gazebo, MuJoCo, Isaac Sim, PyBullet, sim-to-real。
安全 Safety
机器人安全需要多层防护,而不是只靠智能算法。
安全层级:
- Mechanical safety:限位、缓冲、结构保护。
- Electrical safety:急停、电源保护。
- Control safety:速度、力矩、工作空间限制。
- Planning safety:碰撞检测、安全距离。
- System safety:watchdog、heartbeat、fault recovery。
- Human safety:人机协作标准和风险评估。
常见机制:
- Emergency stop。
- Software limit and hardware limit。
- Safety-rated monitored stop。
- Collision checking。
- Control Barrier Function。
- Runtime monitor。
学习关键词:robot safety, emergency stop, watchdog, safety monitor, control barrier function。
部署与调试
真实机器人调试的核心是可观测性。
需要记录:
- 原始传感器数据。
- 状态估计输出。
- 规划轨迹。
- 控制命令。
- 硬件反馈。
- 错误码和时间戳。
常见调试流程:
- 离线回放 rosbag,确认 perception / estimation。
- 仿真验证 planning / control。
- 低速、限空间真实测试。
- 增加速度、负载和环境复杂度。
- 做故障注入和恢复测试。
学习关键词:robot deployment, logging, rosbag replay, hardware-in-the-loop, fault recovery。
与算法模块的关系
- 系统层决定算法输入是否及时、坐标是否一致、输出能否被硬件执行。
- 硬件限制决定规划和控制的约束。
- 仿真决定学习和测试的效率。
- 安全机制决定系统能否进入真实环境。
- 日志和回放决定工程迭代速度。
学习关键词
ROS 2, robot middleware, hardware interface, real-time systems, simulation, safety, deployment, debugging, TF, rosbag。