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 适合近距离、室内、语义丰富场景;激光雷达适合远距离、室外、光照变化大的场景。
二、方法流程:感知到空间关系的处理链
一条典型的机器人空间关系感知流水线如下:
- 数据采集与同步:对齐 RGB 图、深度图、激光点云的时间戳,统一到同一坐标系。
- 点云预处理:体素下采样、直通滤波、统计滤波去噪,降低数据量并剔除离群点。
- 目标检测:在 RGB 图上用 YOLO、DETR 等模型输出二维框和类别;在点云上用 PointPillars、CenterPoint 输出三维框。
- 语义/实例分割:Mask R-CNN、SAM 或 PointNet++ 给出像素级或点级标签,区分“桌子”和“桌子上的杯子”。
- 坐标变换:利用外参矩阵把检测框、分割掩码投影到统一世界坐标系。
- 空间关系计算:基于质心、包围盒、支撑面、方向向量计算左右、上下、前后、包含、支撑、遮挡等关系。
- 场景图构建:节点为对象,边为空间关系,形成可查询、可推理的图结构。
下面这张图展示了从多模态传感器到场景图节点的信号链与数据流关系:
三、关键处理技术与参数
点云处理中,体素下采样是最常用的降采样手段。体素边长过大会丢失小物体,过小则计算量激增。室内场景常用 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 相机和激光雷达提供几何与外观数据,点云处理把原始数据整理成可用结构,目标检测与分割赋予对象身份和边界,三者汇合后才能计算左右、上下、前后、支撑、包含、遮挡等空间关系,并最终构建场景图。理解这条感知链路,是后续空间关系推理与场景图查询的基础。