4. 机器人感知基础

要让机器人理解“杯子在桌子左边”“椅子挡在门前”这类空间关系,第一步不是推理,而是感知。感知系统负责把物理世界转换成可计算的数据:颜色、深度、距离、反射强度、语义标签。没有可靠的感知输入,后续的场景图推理就会变成空中楼阁。本节围绕 RGB-D 相机、激光雷达、点云处理、目标检测与分割四条主线,说明它们如何共同支撑空间关系提取。

一、核心原理:从像素到三维空间

RGB-D 相机同时输出彩色图像和深度图像。彩色图提供纹理与颜色,深度图提供每个像素到相机的距离。通过相机内参矩阵,可以把像素坐标 (u, v) 和深度 d 反投影为相机坐标系下的三维点:

X = (u - cx) * d / fx
Y = (v - cy) * d / fy
Z = d

其中 fx、fy 为焦距,cx、cy 为主点。这样一张 RGB-D 图就变成了有序点云。激光雷达则通过飞行时间或调频连续波测量距离,输出一圈圈三维点,具有更远的探测距离和更高的角度精度,但缺少颜色信息。两者互补:RGB-D 适合近距离、室内、语义丰富场景;激光雷达适合远距离、室外、光照变化大的场景。

空间关系推理真正需要的是“带语义的三维结构”。点云提供几何位置,检测与分割提供对象身份和边界,二者结合才能回答“谁在谁旁边”“谁支撑谁”“谁遮挡谁”。

二、方法流程:感知到空间关系的处理链

一条典型的机器人空间关系感知流水线如下:

  1. 数据采集与同步:对齐 RGB 图、深度图、激光点云的时间戳,统一到同一坐标系。
  2. 点云预处理:体素下采样、直通滤波、统计滤波去噪,降低数据量并剔除离群点。
  3. 目标检测:在 RGB 图上用 YOLO、DETR 等模型输出二维框和类别;在点云上用 PointPillars、CenterPoint 输出三维框。
  4. 语义/实例分割:Mask R-CNN、SAM 或 PointNet++ 给出像素级或点级标签,区分“桌子”和“桌子上的杯子”。
  5. 坐标变换:利用外参矩阵把检测框、分割掩码投影到统一世界坐标系。
  6. 空间关系计算:基于质心、包围盒、支撑面、方向向量计算左右、上下、前后、包含、支撑、遮挡等关系。
  7. 场景图构建:节点为对象,边为空间关系,形成可查询、可推理的图结构。

下面这张图展示了从多模态传感器到场景图节点的信号链与数据流关系:

RGB-D 相机 彩色图 + 深度图 激光雷达 三维点云 + 强度 点云预处理 下采样 / 滤波 / 去噪 坐标统一 目标检测 2D框 / 3D框 / 类别 语义/实例分割 像素/点级标签 空间关系 左/右/上/下 支撑/包含/遮挡 场景图(节点 + 空间关系边) 对象节点:杯子、桌子、椅子、门 · 关系边:left_of、on、near、occludes 数据流说明 几何/坐标流 语义/检测流 分割掩码流

三、关键处理技术与参数

点云处理中,体素下采样是最常用的降采样手段。体素边长过大会丢失小物体,过小则计算量激增。室内场景常用 0.02~0.05 m,室外常用 0.1~0.3 m。统计滤波通过分析每个点邻域的平均距离,剔除超过均值加若干倍标准差的离群点,适合去除深度相机边缘产生的飞点。

目标检测与分割为空间关系提供语义锚点。二维检测框可以快速给出对象类别和大致区域,但缺少深度;三维检测框直接给出中心、尺寸和朝向,更适合计算“前后左右”。实例分割则能处理遮挡和重叠,例如桌面上多个杯子相互靠近时,只有实例掩码才能区分“杯子A在杯子B左侧”。

感知模态输出数据优势局限空间关系用途
RGB-D 相机彩色图 + 深度图颜色纹理丰富,近距离精度高受光照影响,远距离噪声大左右、上下、支撑、包含
激光雷达三维点云 + 强度测距远,角度精度高,不受光照影响无颜色,点稀疏,成本较高前后、距离、遮挡、通行空间
二维目标检测框 + 类别 + 置信度速度快,语义类别明确无深度,遮挡下易漏检对象身份、粗略方位
实例分割像素/点级掩码边界精细,可区分同类实例计算量大,标注成本高精确边界、接触、重叠关系

四、案例场景:桌面抓取中的空间关系提取

假设机器人面对一张桌子,桌上有杯子、盘子和一把叉子。RGB-D 相机采集到彩色与深度图,YOLO 检测出“杯子”“盘子”“叉子”三个二维框,Mask R-CNN 给出各自掩码。将掩码内的深度像素反投影,得到每个对象的三维点集,计算质心和轴对齐包围盒。随后可以判断:杯子的质心高度大于桌面平面,关系为“on”;叉子的水平坐标小于杯子,关系为“left_of”;盘子包围盒与杯子包围盒在水平面上有重叠,关系为“near”或“overlaps”。这些关系写入场景图后,抓取规划器就能优先选择“杯子左侧无遮挡”的接近方向。

在真实系统中,建议把空间关系计算放在统一世界坐标系下进行,而不是在相机坐标系下直接比较。否则机器人移动后,所有“左右”关系都会随视角变化而失效。

五、常见误区与复盘

  • 误区一:把二维框中心当作三维位置。二维框中心只反映图像平面位置,缺少深度,不能直接判断前后和距离。必须结合深度或点云反投影。
  • 误区二:忽略坐标系与外参。RGB 与深度未对齐、雷达与相机外参标定不准,会导致语义标签投到错误的三维位置,空间关系整体偏移。
  • 误区三:只做检测不做分割。检测框会包含背景和其他对象,计算“支撑”“接触”时容易把相邻物体误判为同一对象。
  • 误区四:点云滤波过度。为了降噪把体素设得过大,小物体(如钥匙、杯子把手)被直接抹掉,空间关系随之丢失。

复盘时可以用一个简单检查表:深度图与彩色图是否对齐?点云在 RViz 中是否与图像轮廓吻合?检测框投影到点云后是否包住正确对象?分割掩码是否覆盖完整?只有这些基础环节可靠,空间关系推理才有稳定的输入。感知层的误差会沿着“检测—分割—坐标变换—关系计算—场景图”逐级放大,因此必须在每一级都保留可观测的中间结果,便于定位问题。

RGB-D 相机在强光、透明物体、黑色吸光表面上的深度值经常缺失或跳变;激光雷达在雨雾、镜面反射场景下也会产生噪点。工程上应针对具体场景做传感器选型与融合策略,而不是假设单一传感器永远可靠。

总结来看,RGB-D 相机和激光雷达提供几何与外观数据,点云处理把原始数据整理成可用结构,目标检测与分割赋予对象身份和边界,三者汇合后才能计算左右、上下、前后、支撑、包含、遮挡等空间关系,并最终构建场景图。理解这条感知链路,是后续空间关系推理与场景图查询的基础。