上一篇我们聊了莫拉维克悖论——机器人"下棋容易、走路难"的根源在于,感知和运动能力经过了数亿年演化打磨,远比抽象推理更难用代码复现。但悖论只说明了"为什么难",没有回答一个更实际的问题:机器人到底靠什么感知世界?

它没有眼睛,没有皮肤,没有内耳前庭给它平衡感。它只有一堆传感器,每秒吐出成千上万个冰冷的数字。这篇我们就来拆解:这些数字如何被变成机器人对世界的"理解"——它怎么知道"我在哪、周围有什么"。

机器人的"感官":四种信号,各有盲区

人类用五种感官,机器人用传感器。具身智能机器人最常见的传感器可以归为四类:

摄像头(Camera)——机器人的"眼睛"。普通RGB摄像头输出像素阵列,每个像素代表该点的颜色和亮度。RGB-D(深度相机)还能额外输出每个像素对应的距离,相当于看的同时知道"那东西离我多远"。摄像头信息丰富(能认出"这是杯子""那是门"),但怕暗光、怕强光、怕没纹理的白墙——如果面前是一面纯白的墙,摄像头就"瞎"了,因为找不到任何可追踪的特征点。

激光雷达(LiDAR)——机器人的"触觉尺子"。它发射激光束,测量反射回来的时间,精确计算距离,输出"点云"——密密麻麻的三维空间点。LiDAR不受光照影响,在漆黑环境里照样工作,测距精度高(毫米级),但它"看"不到颜色和纹理,也分辨不出玻璃这类透明物体。一个纯玻璃的玻璃门,LiDAR可能直接"穿透"。

触觉/力传感器(Touch/Force)——机器人的"皮肤"。装在机械手指尖的触觉传感器可以感知接触点、压力分布和滑移;装在手腕或脚踝的六维力传感器可以测量三个方向的力和三个方向的力矩。这些信号在精细操作中至关重要——视觉只能告诉机器人"杯子的位置大概在这",触觉告诉它"已经碰到了,用力了,杯子在滑"。

本体感觉(Proprioception)——机器人对"自己身体状态"的感知。核心器件是 IMU(惯性测量单元),它包含加速度计和陀螺仪,测量机器人自身的加速度和角速度;再加上每个关节上的 编码器,记录关节角度。如果说前面三种传感器是"向外看"(外感知),本体感觉就是"向内看"——告诉机器人"我的胳膊现在弯了多少度、我是不是在加速前进"。这是人类几乎无意识但极其强大的能力(闭眼也能摸到鼻子),但对机器人,它需要每秒上百次地读取IMU数据才能"知道"自己的姿态。

每种传感器都有盲区。单靠任何一种,机器人都无法可靠地理解世界。 这就是为什么必须谈"融合"。

传感器融合:把"盲人摸象"拼成完整画面

摄像头告诉机器人"前面有扇门",但不知道精确距离;LiDAR告诉它"前方2.3米处有障碍物",但不知道那是什么;IMU告诉它"我在加速向左转",但时间长了会累积漂移误差(因为IMU数据需要积分,积分误差会不断膨胀)。

传感器融合 就是把它们的信息整合起来,取长补短。最经典的融合发生在视觉/激光雷达和IMU之间:

  • 摄像头/LiDAR提供了"外部参考"——看到一堵墙,知道这堵墙应该是固定不动的,所以它的位置变化就是机器人的运动。这个信号"准但慢"(处理图像需要时间,而且可能丢帧)。
  • IMU提供了"内部参考"——感知加速度和角速度的变化,反应极快(毫秒级),但"快但飘"(积分误差随时间累积)。

融合的逻辑很简单:让IMU做"快速推测",让视觉/LiDAR做"定期校准"。 这是经典的 扩展卡尔曼滤波(EKF) 思路——一个数学框架,根据IMU的高频数据预测机器人的运动,再用视觉/LiDAR的观测数据修正预测误差。每修正一次,IMU的漂移就被"清零"一次。1

更前沿的方法用 因子图(Factor Graph) 来建模——把每一次传感器观测都看作一个"约束",用图优化来求解全局最优的状态估计。这种方法的优势是模块化:可以随时加入新的传感器(GPS、雷达、轮速计),每个传感器贡献自己的约束,系统自动找到最一致的解。2

SLAM:先有鸡还是先有蛋?

传感器融合解决了"怎么把不同信号对齐"的问题,但还有一个更根本的难题:要定位,需要地图;要建图,需要知道自己在哪。 这是一个典型的"先有鸡还是先有蛋"问题。

这就是 SLAM(Simultaneous Localization and Mapping,同步定位与建图) 要解决的核心问题。3

想象一个扫地机器人被放进一个完全陌生的房间。它没有任何先验知识,不知道房间有多大、家具摆在哪里。它需要同时做两件事:

  1. 定位:知道自己在这个房间的哪个位置
  2. 建图:记录障碍物和墙壁的位置,形成一张地图

但这两个问题是耦合的——要定位,它需要地图当参照;要建图,它需要知道自己的位置才能把传感器读数放到正确的位置上。

SLAM的解法可以概括为"边猜边修正":

  • 前端(Front-end):从传感器数据中提取特征(比如墙角、桌腿、墙上的画框),做帧间匹配,估算出机器人的粗略运动——这叫做 里程计(Odometry)。但里程计有误差,误差会累积。3

  • 后端(Back-end):把前端估算的轨迹和地图放进一个优化问题,不断调整,让所有传感器数据"自洽"。当机器人转了一圈回到起点附近(这叫 回环,Loop Closure),后端检测到"这里我来过",就把之前累积的误差一次性修正——这就是SLAM的核心"魔法":用回环检测来消除漂移。3

SLAM处理流程:前端从传感器数据提取特征,后端进行位姿图优化,回环检测消除累积误差

SLAM的输出是两个东西:一张地图(机器人所到之处的几何结构)和 一条轨迹(机器人在地图上的实时位置)。有了这两个东西,机器人才能回答最基础的问题——"我在哪?周围有什么?"——并在此基础上做路径规划、避障和任务执行。

这种"看懂"和人类的"看懂"是一回事吗?

不是。机器人通过SLAM和传感器融合得到的"理解",本质上是 几何和数值层面的——它知道"坐标(2.3, 0.5)处有一堵墙,我离它1.5米",但它不知道"这是一堵白色的墙,上面挂着一幅梵高的画"。这两种理解在机器人学中各有分工:几何级的理解(SLAM、状态估计)负责"不撞墙、不迷路";语义级的理解(物体检测、场景识别)负责"知道这是什么、该怎么做"。后者正越来越多地借助大模型来实现,但前者——可靠、实时、低延迟的几何理解——仍然是机器人能在物理世界生存的基石。

下一个层次,我们再来聊:有了"我在哪、周围有什么"之后,机器人如何规划行动、避开障碍、在动态环境中做出决策。