DocProgress

你在 Systems / Hardware / ROS

先确认本页回答什么问题,再决定读完后回路线、资源还是项目。

阅读前提
算法能在 notebook 跑,但真实系统或仿真接口不稳定。
读完产出
能用 node、topic、TF、bag、launch 和日志定位系统问题。
下一步
做 ROS 2 Closed Loop 或 Simulation & Logging Lab。
失败模式入口
忽略时间戳、坐标系、消息频率、延迟和 fallback。

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。

部署与调试

真实机器人调试的核心是可观测性。

需要记录:

  • 原始传感器数据。
  • 状态估计输出。
  • 规划轨迹。
  • 控制命令。
  • 硬件反馈。
  • 错误码和时间戳。

常见调试流程:

  1. 离线回放 rosbag,确认 perception / estimation。
  2. 仿真验证 planning / control。
  3. 低速、限空间真实测试。
  4. 增加速度、负载和环境复杂度。
  5. 做故障注入和恢复测试。

学习关键词: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。

Continue