Skip to content

12 · 机器人感知与传感器

English contract: Foundations overview · Primary references: Perception and sensors

目标:把“图像输入”扩展为真实机器人观测系统,理解相机、深度、状态、力觉和触觉数据如何标定、同步、验证并送入策略。

1. 观测不是一张图片

机器人策略的观测通常是:

$$ o_t={I_t^{front},I_t^{wrist},d_t,q_t,\dot q_t,g_t,f_t,\tau_t} $$

其中包括多视角 RGB、深度、关节位置/速度、夹爪状态、力和触觉。项目统一接口见 observation_schema.py

2. 主要传感器

模态 提供的信息 关键风险
RGB 相机 纹理、颜色、目标类别 光照、遮挡、曝光
RGB-D/深度 几何距离、点云 空洞、反光、外参漂移
关节编码器 关节位置和速度 零点偏移、延迟
力矩/六维力传感器 接触力与力矩 偏置、温漂、过载
触觉阵列 局部接触分布、滑移 采样频率和标定差异
IMU 姿态和加速度 积分漂移、振动

3. 相机几何

针孔模型:

$$ s\begin{bmatrix}u\v\1\end{bmatrix} =K[R\mid t]\begin{bmatrix}X\Y\Z\1\end{bmatrix} $$

  • K:相机内参,描述焦距和主点。
  • [R|t]:外参,把世界或机器人坐标变换到相机坐标。
  • 手眼标定回答“相机与机器人基座/末端之间如何变换”。

若外参误差为 1 cm,视觉目标即使检测正确,末端也可能稳定地到达错误位置。

4. 感知 pipeline

传感器采集
  → 时间戳与同步
  → 内参/外参标定
  → 去畸变与深度对齐
  → 检测/分割/关键点/点云
  → 坐标变换与状态融合
  → 质量标记和缺失值处理
  → RobotObservation

原则:保留原始数据;派生特征带版本号;每一帧都能追溯到时间戳和标定文件。

5. 时间同步与延迟

不同模态不能按数组下标直接拼接。应以时间戳对齐,并记录最大允许时间差:

def nearest_sample(samples, target_t, max_dt=0.02):
    best = min(samples, key=lambda item: abs(item[0] - target_t))
    if abs(best[0] - target_t) > max_dt:
        raise ValueError("sensor sample is stale")
    return best[1]

20 Hz 策略的一个周期只有 50 ms;30 ms 感知延迟加 30 ms 推理延迟已经超过周期预算。

6. 数据质量门禁

送入训练前至少检查:

  • 图像尺寸、颜色空间、深度单位固定。
  • 关节维度、顺序和单位与机器人描述一致。
  • 时间戳单调,模态间时间差有统计。
  • NaN、丢帧、过曝、深度空洞有明确标记。
  • 相机内外参和机器人零点有版本与日期。
  • 训练集和测试集不共享同一连续轨迹片段。

7. 选择表示

  • 端到端 VLA:尽量保留 RGB 和本体状态,让模型学习表征。
  • 小数据任务:检测/分割/关键点可降低样本复杂度。
  • 跨机器人:优先使用任务空间、归一化状态和明确的 embodiment metadata。
  • 接触任务:仅靠 RGB 往往不够,应考虑力/触觉或接触状态。

8. 检查理解

  1. 概念题:解释内参、外参和手眼标定分别解决什么问题,并写出坐标变换的方向。
  2. 预算题:为 20 Hz 控制回路分配采集、同步、预处理、推理、通信和执行延迟预算。
  3. 设计题:定义 RGB、关节状态和力传感器的时间同步规则,包括最大允许时间差和过期处理。
  4. 排错题:列出训练前至少五项数据质量检查,并说明其中一项失败会怎样污染策略。

下一课:13-robot-systems-and-safety.md