我们在做全局路径规划的时候会用到两种地图,一种是栅格地图,另一种是高精地图。二者并不是简单的低精度地图与高精度地图之分,而是面向不同规划问题的两种环境表达方式。
栅格地图将空间离散为规则单元,用于描述障碍物占据状态、可通行区域及通行代价,主要回答“哪里可以通行、哪里存在障碍、从哪里通过风险更低”等问题。
高精矢量地图则通过点、线、面及其拓扑关系描述车道、道路边界、路口、交通规则或农业作业区域,主要回答“道路或作业区域如何组织、车辆应沿什么路线和规则行驶”等问题。
实际系统通常将二者结合使用:高精矢量地图负责全局路由和规则约束,栅格代价地图负责障碍物表达、碰撞检测和局部可通行性判断。
一.栅格地图
1.栅格地图定义
栅格地图将连续空间按照固定分辨率划分为规则单元格:
M={mi,j}
每个栅格存储该位置的状态或属性。最基本的占据栅格一般包含:
- 空闲:车辆可以通行;
- 占用:存在障碍物;
- 未知:尚未观测;
- 概率值:该栅格被占据的概率。
经典占据栅格并不是简单的黑白图,而是一种概率地图:
p(mi,j=1∣z1:t,x1:t)
其中:
- mi,j:第 i 行、第 j 列的栅格是否被占据;
- z1:t:历史传感器观测;
- x1:t:机器人历史位姿。
2.栅格地图的主要参数
(1)分辨率
假设分辨率为:
r=0.05 m/cell
表示一个栅格对应现实中的 5 cm×5 cm。
栅格尺寸越小,即地图空间分辨率越高:
- 障碍物边界表达越精细;
- 碰撞检测越准确;
- 狭窄通道的表达能力越强;
- 栅格数量、内存占用和搜索计算量越大;
- 定位误差和传感器噪声会更明显地反映在地图中。
(2)地图原点
栅格坐标与世界坐标需要相互转换:(默认栅格地图坐标轴与世界坐标轴平行)
i=⌊(x−x0)/r⌋,j=⌊(y−y0)/r⌋
其中 (x0,y0)是地图原点。
如果地图原点存在航向角 θ_0,应先进行坐标旋转:
然后计算:
ROS的地图原点实际是栅格单元 (0,0) 在世界坐标系中的位姿,不只有 x0,y0,还包括方向信息。
(3)栅格值
ROS 中常见的OccupancyGrid表示为:
0:空闲;100:占据;-1:未知。
3.占用栅格地图与代价地图区别
占据栅格地图主要描述环境是否被占据,而代价地图进一步描述车辆经过某个位置时的风险或通行成本。
| 对比项 | 占据栅格地图 | 代价地图 |
|---|---|---|
| 表达内容 | 空闲、占据、未知 | 每个位置的通行代价 |
| 数据来源 | SLAM或静态地图 | 静态地图+实时传感器+规则 |
| 是否考虑车体尺寸 | 通常不直接考虑 | 通过障碍物膨胀考虑 |
| 主要用途 | 环境表达、定位 | 路径规划、避障 |
| 是否动态更新 | 可以静态或动态 | 通常持续更新 |
代价地图中,障碍物周围会按照车辆外形和安全距离进行膨胀。距离障碍物越近,代价越高:
其中:
- d:当前栅格到最近障碍物的距离;
- rins:车辆内切半径;
- rinf:障碍物膨胀半径;
- k:代价衰减系数;
- Clethal:致命障碍物代价;
- Cinscribed:车辆轮廓可能与障碍物发生碰撞时的代价。
因此,全局规划器实际寻找的往往不是单纯的最短路径,而是:
即同时考虑路径长度和通行风险。
4.栅格地图是如何生成
栅格地图通常由激光雷达、深度相机等传感器结合机器人位姿生成,其基本流程为:
- 传感器获取环境观测;
- 里程计、IMU、GNSS或SLAM估计车辆位姿;
- 将传感器数据转换到统一地图坐标系;
- 通过逆传感器模型更新栅格占据概率;
- 经过阈值化生成空闲、占据和未知区域;
- 保存为静态地图,或持续在线更新。
二.高精地图
高精地图(HD map)是一种面向自动驾驶车辆或移动机器人的结构化地图。它在具有较高几何精度的基础上,进一步表达道路、车道、作业区域、交通设施、通行规则及其拓扑关系,为定位、全局路由、行为决策和轨迹规划提供先验信息。
- 精度:高精地图精度在厘米级
- 地图元素:高精地图道路元素及交通相关动态元素更丰富,比如详细的车道线、路标、交通提示牌、交通灯、车道曲率、坡度及车道级实时交通动态信息,主要服务于机器自动驾驶环境判断、决策、控制等
- 定位:结合高精地图道路特征、点云地图,车辆可实现视觉定位和点云定位;
- 感知:通过提供道路信息等先验知识辅助车辆传感器缩小识别范围、提升识别效率、降低错误率,同时弥补一定环境下其它传感器感知缺陷(如雨、雪、黑暗情况下的其它传感器失效),和V2X结合进一步突破传感器感知局限;
- 规划、预测:高精地图可结合导航规划、实时路况、自动驾驶功能等级、适合自动驾驶路线,帮助车辆进行车道级路径规划,并根据先验知识及实时路况预测前方道路情况及障碍物等辅助局部路径规划;
- 安全:基于地图已知道路信息,如已知障碍物、道路标识等特征信息与传感器实时检测匹配互检,提升冗余、降低误判,同时辅助检测传感器故障、失效、被欺骗行为
1.高精地图由什么组成
(1)几何信息
道路边界;车道边界;车道中心线;路缘;护栏;建筑物;地面高度和坡度;点云特征。
(2)语义信息
车道类型;通行方向;限速;停止线;交通灯;人行横道;禁行区;可停车区;作业区;地头区;障碍物类型。
(3)拓扑信息
当前车道的前继车道;后继车道;左右相邻车道;是否允许换道;路口连接关系;路段通行方向;区域进入和退出关系。
高精地图通常不是一张地图,是多图层组成的。
| 地图层 | 典型内容 | 作用 |
|---|---|---|
| 点云/几何底图 | 路面、建筑、树木、杆体、地形 | 高精定位、标注参考 |
| 矢量语义地图 | 车道线、边界、停止线、作业区 | 路由、行为规划 |
| 在线局部地图 | 动态障碍物、临时封路、实时通行代价 | 实时避障与轨迹规划 |
2.高精地图数据组织
| 元素 | 含义 |
|---|---|
| Point | 坐标点,是所有几何元素的基础 |
| LineString | 由有序点组成的折线,表示边界、停止线等 |
| Lanelet | 由左右边界组成的有向通行走廊 |
| Area | 由闭合边界组成的可通行或功能区域 |
| Regulatory Element | 限速、交通灯、停止、让行等规则 |
| Routing Graph | 根据几何连接和规则生成的拓扑路由图 |
3.高精地图的构建
- 数据采集
使用激光雷达、相机、GNSS/RTK和IMU采集环境数据。 - 轨迹估计与点云拼接
通过SLAM或组合导航获得采集车辆轨迹,生成点云几何底图。 - 点云处理
对点云进行去噪、配准、地面分割、坐标转换和高程处理。 - 矢量要素标注
在点云底图或正射影像上绘制道路边界、车道线、中心线、停止线、地块边界及作业区域。 - 语义属性添加
添加通行方向、限速、边界类型、禁行区、作业类型等信息。 - 拓扑关系建立
建立车道前驱、后继、左右邻接、换道和路口连接关系。 - 地图校验
检查几何连续性、拓扑连通性、语义完整性和坐标对齐误差。 - 地图发布与更新
将地图保存为Lanelet2、OpenDRIVE或项目自定义格式,并根据环境变化更新。
参考资料:https://zhuanlan.zhihu.com/p/165955239