4. 建图基础
在记忆泊车系统中,“建图”并不是简单地把一圈点云存下来,而是把传感器观测转换成一种可定位、可规划、可复用的环境表达。不同地图表达方式对存储、匹配、语义理解和更新维护的要求差异很大。理解占据栅格地图、特征地图、语义地图与点云地图的基本概念与适用场景,是后续建图、定位与轨迹复现的根基。
一、四类地图的核心原理
占据栅格地图(Occupancy Grid Map)把环境离散成二维或三维网格,每个格子用概率表示“被占据”“空闲”或“未知”。它本质上是概率栅格:传感器射线穿过格子时降低占据概率,命中障碍时提高占据概率。优点是结构规整、便于碰撞检测与路径规划;缺点是分辨率越高内存越大,且不直接表达“这是什么物体”。
特征地图(Feature Map)不保存全部环境细节,而是提取角点、线段、平面、柱状物等稳定特征,并记录其几何参数与描述子。它把“环境”压缩成少量可重复观测的路标。优点是存储小、匹配快、对光照和动态物体相对鲁棒;缺点是特征稀疏时容易退化,在长走廊、空旷地库等弱纹理场景中可能匹配失败。
语义地图(Semantic Map)在几何地图之上叠加类别与属性,例如车位、车道线、减速带、立柱、出入口、电梯口、禁停区等。它回答的不只是“这里有没有障碍”,而是“这里是什么、能不能走、该怎么走”。语义地图通常由深度学习模型对图像或点云进行分割后投影到地图坐标系中生成,适合做决策与交互。
点云地图(Point Cloud Map)直接保存激光雷达或视觉重建得到的三维点集合,保留最原始的空间几何信息。它精度高、细节丰富,常用于激光雷达定位中的 scan-to-map 匹配。缺点是数据量大、冗余多,且对动态物体和季节变化敏感,通常需要降采样、体素化或与特征地图结合使用。
二、方法流程:从原始观测到可用地图
无论采用哪种地图,建图流程大体一致:数据采集 → 前端里程计 → 后端优化 → 地图表达 → 存储与加载。区别在于“地图表达”这一步选择什么形式。
- 数据采集:车辆低速沿目标路线行驶,采集 LiDAR 点云、相机图像、轮速与 IMU 数据,并记录时间戳。
- 前端里程计:通过 ICP、NDT 或视觉特征匹配估计相邻帧位姿,形成初步轨迹。
- 后端优化:利用回环检测与位姿图优化消除累计漂移,得到全局一致的位姿。
- 地图表达:根据任务选择栅格、特征、语义或点云形式,或组合成多层地图。
- 存储与加载:按地图格式写入文件,并在泊车时按需加载定位图层与规划图层。
# 典型建图配置片段(示意)
map_type: hybrid
occupancy:
resolution: 0.05 # 5cm 栅格
hit_prob: 0.7
miss_prob: 0.4
feature:
detector: corner+plane
min_observations: 5
semantic:
classes: [parking_slot, pillar, lane, speed_bump]
pointcloud:
voxel_size: 0.10
max_range: 50.0
三、案例与场景:地库记忆泊车怎么选
以一个典型地下车库为例:入口坡道、长直通道、密集立柱、成排车位、局部弱光。若只用点云地图,定位精度高但内存占用大,且车辆经过时动态点会污染地图;若只用特征地图,长走廊中特征重复,容易发生误匹配;若只用栅格地图,能避障但无法识别“这是车位还是通道”;若只用语义地图,语义分割偶尔漏检,缺少几何约束会导致定位漂移。
工程上更常见的做法是分层混合:点云或特征地图负责厘米级定位,占据栅格负责实时避障与可通行区域判断,语义地图负责车位识别、出入口判断和交互提示。这样既保证定位鲁棒性,又兼顾规划安全与用户体验。
| 地图类型 | 核心数据 | 优点 | 局限 | 记忆泊车适用场景 |
|---|---|---|---|---|
| 占据栅格地图 | 概率栅格 | 规划友好、避障直接 | 内存随分辨率增长 | 实时避障、可通行区域 |
| 特征地图 | 角点/线段/平面 | 存储小、匹配快 | 弱纹理易退化 | 快速重定位、回环检测 |
| 语义地图 | 类别+几何 | 可决策、可交互 | 依赖模型精度 | 车位识别、出入口判断 |
| 点云地图 | 三维点集合 | 精度高、细节全 | 数据量大、动态敏感 | 高精度定位、建图底图 |
四、误区与复盘
总结来看,占据栅格地图回答“能不能走”,特征地图回答“我在哪”,语义地图回答“这是什么”,点云地图回答“环境长什么样”。记忆泊车建图的关键,是根据定位、规划与决策的不同需求,把这四种表达组织成一套协同工作的地图体系。