4. 环境感知与地图构建
移动操作机器人要在未知或半未知环境中完成“走到哪里、看到什么、抓住什么”的闭环任务,环境感知与地图构建是底层支撑。没有地图,定位只能靠航迹推算,误差会随时间累积;没有感知,操作臂即使到达目标附近,也无法判断物体的位姿与可抓取性。本章围绕SLAM基本概念、三类主流地图表达以及多传感器融合建图方法展开,帮助读者建立“定位—建图—操作”之间的数据链路认知。
一、SLAM基本概念:同时定位与建图
SLAM(Simultaneous Localization and Mapping)指机器人在未知环境中,一边估计自身位姿,一边构建环境地图的过程。其核心矛盾在于:定位需要地图作为参照,建图又需要已知位姿作为基准,两者互为条件。SLAM通过概率估计方法把这一“鸡生蛋”问题转化为联合后验估计问题。
典型SLAM系统包含前端、后端、回环检测与地图维护四个部分。前端负责帧间匹配与运动估计,常用ICP、NDT或特征点法;后端用图优化或滤波方法融合多帧约束,抑制漂移;回环检测识别机器人是否回到历史位置,用于消除累积误差;地图维护则把观测结果写入栅格、点云或语义地图。对于移动操作机器人,SLAM输出的不仅是位姿轨迹,还包括可供导航和抓取使用的环境几何与语义信息。
关键理解:SLAM不是单一算法,而是一套“传感器—前端—后端—地图”的系统工程。定位精度、建图分辨率、实时性与计算资源之间需要权衡。
二、三类地图表达:栅格、点云与语义地图
地图是SLAM的输出,也是后续导航与操作的输入。不同任务需要不同地图表达,常见有三类。
- 栅格地图:把环境离散为二维或三维网格,每个格子记录占据概率。它适合路径规划与避障,计算效率高,但几何细节有限,难以直接支持精细抓取。
- 点云地图:由激光雷达或深度相机生成的三维点集合,保留丰富几何信息,可用于配准、表面重建和抓取位姿估计。缺点是数据量大,且不含语义标签。
- 语义地图:在几何地图基础上附加物体类别、房间功能或可操作区域标签,使机器人不仅知道“哪里有障碍”,还知道“那是什么、能不能抓”。语义地图是移动操作任务的重要桥梁。
三类地图并非互斥,实际系统常采用分层结构:底层用栅格地图做导航,中层用点云地图做几何配准,上层用语义地图做任务推理。下表给出三类地图的对比。
| 地图类型 | 数据形式 | 主要用途 | 优点 | 局限 |
|---|---|---|---|---|
| 栅格地图 | 2D/3D占据网格 | 路径规划、避障 | 结构简单、实时性好 | 几何细节弱、无语义 |
| 点云地图 | 三维点集合 | 配准、表面重建、抓取 | 几何精度高 | 数据量大、无语义 |
| 语义地图 | 几何+标签 | 任务推理、操作目标选择 | 支持高层决策 | 依赖感知与标注质量 |
三、多传感器融合建图方法
单一传感器难以同时满足精度、鲁棒性与语义需求。激光雷达提供远距离高精度几何,但缺乏纹理与语义;深度相机提供稠密点云与颜色,但视场窄、易受光照影响;IMU提供高频运动信息,但存在漂移;轮式里程计提供低频但稳定的相对运动。多传感器融合建图的目标,是把这些互补信息统一到同一时空基准下。
融合建图的典型流程如下:
- 时间同步与标定:对齐各传感器时间戳,标定激光雷达、相机、IMU与机器人基座之间的外参。
- 前端里程计:用激光或视觉里程计估计帧间运动,IMU提供预积分约束。
- 后端优化:构建位姿图,融合里程计、回环与全局约束,输出优化轨迹。
- 地图融合:将各帧观测按优化位姿投影到统一坐标系,生成栅格、点云或语义地图。
- 语义标注:用深度学习模型对图像或点云进行分割,把类别标签映射到地图体素或网格。
下面给出一个简化的多传感器融合建图配置示例,便于理解参数组织方式。
# 多传感器融合建图配置示例
sensors:
lidar: {topic: /scan, rate: 10Hz, frame: laser}
camera: {topic: /rgb, rate: 30Hz, frame: camera}
imu: {topic: /imu, rate: 200Hz, frame: imu}
odom: {topic: /wheel_odom, rate: 50Hz, frame: base_link}
fusion:
front_end: "lidar_odometry"
back_end: "pose_graph_optimization"
loop_closure: true
map_type: ["occupancy_grid", "point_cloud", "semantic_map"]
semantic:
model: "pointnet++"
classes: ["floor", "wall", "table", "chair", "cup", "unknown"]
四、案例与场景:从建图到操作
假设移动操作机器人进入一间办公室,任务是把桌上的杯子送到茶水间。机器人首先用激光雷达与IMU融合建图,得到二维栅格地图用于导航;同时用深度相机生成点云地图,识别桌面与杯子的几何位置;语义分割模型把“杯子”“桌子”“门”等标签写入语义地图。导航模块根据栅格地图规划到桌边的路径,操作模块根据点云地图估计杯子位姿并执行抓取,最后依据语义地图中的“茶水间”标签规划放置位置。
这一流程说明:栅格地图解决“怎么走”,点云地图解决“怎么抓”,语义地图解决“抓什么、放哪里”。三者协同,才能支撑移动操作机器人的完整任务链。
实践建议:建图初期优先保证栅格地图的实时性与一致性;当导航稳定后,再逐步引入点云配准与语义标注,避免一次性引入过多传感器导致标定与同步复杂度失控。
五、常见误区与复盘
- 误区一:把SLAM当成纯定位模块。SLAM同时输出位姿与地图,地图质量会反向影响定位精度,二者需联合评估。
- 误区二:只建一种地图。导航、抓取与任务推理对地图需求不同,单一地图难以覆盖全部任务。
- 误区三:忽视时间同步与外参标定。多传感器融合中,时间戳错位或外参偏差会直接导致地图重影与定位漂移。
- 误区四:语义地图标注一次就长期使用。环境会变化,语义地图需要增量更新与置信度管理。
复盘时建议检查三项指标:轨迹绝对误差、地图栅格一致性与语义标签准确率。只有三者同时达标,建图结果才真正可用于移动操作任务。
综上,环境感知与地图构建是移动操作机器人从“能走”到“能操作”的关键环节。理解SLAM的联合估计本质,掌握栅格、点云与语义三类地图的适用边界,并建立多传感器融合的工程化流程,才能为后续定位、导航与操作任务提供可靠的环境基础。