人类感知世界靠五感,机器人感知世界靠四类模态:视觉、触觉、听觉、本体感觉。每一类模态都有自己独特的信号特性、采样频率与硬件形态。
| 模态 | 物理量 | 典型采样率 | 主要硬件 | 信号维度 | 在闭环中的作用 |
|---|---|---|---|---|---|
| 视觉 | 光(RGB/深度) | 15-60 Hz | RGB-D 相机、全局/卷帘快门相机 | H×W×C 图像 + 深度 | 场景理解、物体识别、空间定位 |
| 触觉 | 法向/切向力、纹理、形变 | 100-1000 Hz | 视触觉皮肤、压阻/电容阵列 | 二维压力图/三维力 | 接触检测、滑动检测、精细操作 |
| 力觉 | 六维力/力矩 | 100-1000 Hz | 腕部六维力传感器、关节力矩传感器 | 6 维向量 | 接触力控、装配、柔顺控制 |
| 听觉 | 声波 | 8-48 kHz | 麦克风阵列 | 多通道时序 | 语音指令、声源定位、异常检测 |
| 本体感觉 | 关节角、速度、电流 | 100-1000 Hz | 编码器、IMU、霍尔传感器 | 关节状态向量 | 运动反馈、平衡、姿态估计 |
💡 关键洞察:不同模态的采样率差异巨大——视觉 30Hz,触觉与力觉可达 1000Hz。这意味着闭环中视觉驱动慢决策,触觉/力觉驱动快控制。这也是第 1 章分层闭环架构的物理根源。
视觉是机器人最重要的远场感知模态。按维度的演进路径是:
单目 RGB (2D) → 立体视觉 (2D + 视差) → RGB-D (2D + 主动深度) → LiDAR (3D 点云) | | | | 纹理/语义 稀疏深度 稠密深度 长距离稠密
主流视觉硬件对比:
| 硬件类型 | 原理 | 优势 | 劣势 | 典型产品 |
|---|---|---|---|---|
| 单目相机 | 被动采光 | 便宜、分辨率高、纹理丰富 | 无绝对深度 | 任意工业相机 |
| 立体相机 | 双目视差三角化 | 被动、稠密深度 | 校准复杂、弱纹理失效 | ZED、Stereo Labs |
| 结构光相机 | 主动投射红外图案 | 室内稠密深度精度高 | 怕强光、距离短(<3m) | 早期 Kinect、RealSense D435 |
| ToF 相机 | 飞行时间测距 | 室内外通用、距离远(<10m) | 分辨率较低 | RealSense L515、Azure Kinect |
| LiDAR | 激光飞行时间 | 远距离(100m+)、高精度 | 贵、机械结构复杂 | Velodyne、Livox、禾赛 |
⚠️ 选型要点:室内机械臂操作首选 RGB-D(结构光或 ToF),室外移动机器人首选 LiDAR + 相机融合。最近 Sony IMX570 等小型 dToF 模组开始让 ToF 进入手机/AR 头显,也间接推动了机器人感知硬件的微型化。
触觉是机器人从「盲抓」走向「巧操作」的关键。按工作原理分三大流派:
| 流派 | 原理 | 优势 | 代表 |
|---|---|---|---|
| 压阻/电容阵列 | 力作用下电阻/电容变化 | 便宜、易阵列化 | Tekscan、RoboTouch |
| 磁觉触觉 | 弹性体内磁体位移改变磁场 | 高灵敏、抗干扰 | 不广泛 |
| 视触觉(Vision-based Tactile) | 弹性体形变被相机捕捉 | 极高分辨率、可看纹理/滑动 | GelSight、DIGIT、GelSight Mini |
视触觉传感器是当前研究最热的方向。它的核心思路很巧妙:把一块透明弹性体(gel)涂上反光涂层和彩色蒙版,用一个高分辨率相机对着拍。物体接触时让弹性体局部形变,相机捕捉到的彩色图案变化,再用神经网络反推接触力分布、纹理、甚至滑动方向。第 2.3 节会展开其原理。
力觉分两种粒度:
听觉在机器人中扮演两个角色:
💡 多通道关键:单麦克风无法定位,至少需要 2 个麦克风做时间差(TDOA)。家用音箱(Echo、HomePod)通常用 6-7 麦阵列实现 360° 声源定位。
本体感觉(Proprioception)是机器人「感知自己身体状态」的能力,常被忽视但极其关键:
| 子模态 | 测量量 | 硬件 | 用途 |
|---|---|---|---|
| 关节位置 | 关节角 θ | 光电/磁编码器 | 运动学正解、轨迹跟踪 |
| 关节速度 | 角速度 dθ/dt | 编码器差分或陀螺仪 | 阻尼控制、速度环 |
| 关节力矩 | 输出力矩 τ | 关节力矩传感器或电流估算 | 力控、阻抗控制 |
| 本体姿态 | 基座姿态 | IMU(加速度计+陀螺+磁力计) | 平衡、SLAM 里程计 |
| 电机电流 | 电流 I | 电流环采样 | 力矩估算、过流保护 |
⚠️ 常被忽略的事实:本体感觉是机器人唯一不依赖外部环境的感知。即便在完全黑暗、视觉失效的场景,机器人仍然知道自己的关节角——这是它在退化场景下保持可控的最后一道防线。
下面用 SVG 描述一个典型人形/双臂机器人的传感器布置(也适用于单臂工作站):
<svg viewBox="0 0 760 480" xmlns="http://www.w3.org/2000/svg"> <!-- 头部 --> <circle cx="380" cy="70" r="45" fill="#f3f4f6" stroke="#374151" stroke-width="2"/> <text x="380" y="75" text-anchor="middle" font-size="12">头部</text> <circle cx="362" cy="62" r="6" fill="#2563eb"/> <circle cx="398" cy="62" r="6" fill="#2563eb"/> <text x="380" y="100" text-anchor="middle" font-size="10" fill="#2563eb">RGB-D × 2 + 麦阵列</text> <!-- 躯干 --> <rect x="335" y="120" width="90" height="140" rx="10" fill="#f3f4f6" stroke="#374151" stroke-width="2"/> <rect x="360" y="170" width="40" height="40" rx="4" fill="#fef9c3" stroke="#ca8a04" stroke-width="1.5"/> <text x="380" y="195" text-anchor="middle" font-size="10" fill="#ca8a04">IMU</text> <text x="380" y="240" text-anchor="middle" font-size="10">躯干</text> <!-- 左臂 --> <line x1="335" y1="140" x2="240" y2="200" stroke="#374151" stroke-width="6"/> <line x1="240" y1="200" x2="180" y2="290" stroke="#374151" stroke-width="6"/> <circle cx="240" cy="200" r="10" fill="#dcfce7" stroke="#16a34a"/> <text x="240" y="186" text-anchor="middle" font-size="9" fill="#16a34a">肘编码器</text> <circle cx="180" cy="290" r="14" fill="#fce7f3" stroke="#db2777"/> <text x="180" y="294" text-anchor="middle" font-size="9" fill="#db2777">六维力</text> <!-- 左手 --> <rect x="155" y="305" width="50" height="35" rx="6" fill="#dbeafe" stroke="#2563eb" stroke-width="1.5"/> <text x="180" y="327" text-anchor="middle" font-size="9" fill="#2563eb">视触觉指尖</text> <!-- 右臂 --> <line x1="425" y1="140" x2="520" y2="200" stroke="#374151" stroke-width="6"/> <line x1="520" y1="200" x2="580" y2="290" stroke="#374151" stroke-width="6"/> <circle cx="520" cy="200" r="10" fill="#dcfce7" stroke="#16a34a"/> <circle cx="580" cy="290" r="14" fill="#fce7f3" stroke="#db2777"/> <rect x="555" y="305" width="50" height="35" rx="6" fill="#dbeafe" stroke="#2563eb" stroke-width="1.5"/> <text x="580" y="327" text-anchor="middle" font-size="9" fill="#2563eb">视触觉指尖</text> <!-- 腕部相机 --> <rect x="220" y="270" width="40" height="14" rx="3" fill="#fde68a" stroke="#d97706"/> <text x="240" y="281" text-anchor="middle" font-size="8" fill="#d97706">腕相机</text> <rect x="500" y="270" width="40" height="14" rx="3" fill="#fde68a" stroke="#d97706"/> <text x="520" y="281" text-anchor="middle" font-size="8" fill="#d97706">腕相机</text> <!-- 图例 --> <text x="20" y="400" font-size="11" font-weight="bold">图例:</text> <circle cx="30" cy="420" r="5" fill="#2563eb"/><text x="42" y="424" font-size="10">视觉</text> <circle cx="100" cy="420" r="5" fill="#db2777"/><text x="112" y="424" font-size="10">力觉</text> <circle cx="170" cy="420" r="5" fill="#16a34a"/><text x="182" y="424" font-size="10">本体感觉</text> <circle cx="260" cy="420" r="5" fill="#ca8a04"/><text x="272" y="424" font-size="10">IMU</text> <circle cx="320" cy="420" r="5" fill="#d97706"/><text x="332" y="424" font-size="10">腕部相机</text> <text x="20" y="450" font-size="10" fill="#6b7280">注:腕相机提供「手眼」近场视角,补全头相机盲区。</text> </svg>
注意三个设计要点:
总结四类模态选型与布局的三条原则:
下一节《2.2 视觉感知》将深入机器人视觉从 2D 像素到 3D 几何与语义表征的演进。