毫米波雷达与高精地图融合定位工程 - 第2节

2. 高精地图基础

说实话,我刚入行那会儿,对高精地图的理解也很模糊。总觉得不就是导航地图的升级版吗?后来真正上手做项目才发现——完全不是一回事。

高精地图,说白了就是给自动驾驶汽车看的“内部资料”。它不像我们手机里的百度地图,给你看看路名、看看红绿灯位置就完了。高精地图要精确到厘米级,要告诉你车道线的曲率、路沿的高度、甚至路面上的一个小坑。

我习惯把高精地图比作“给车看的立体说明书”。它不光告诉你路在哪,还告诉你这条路该怎么走。

1.1 高精地图 vs 普通导航地图

这里我列个表,大家一看就明白区别在哪:

对比项 普通导航地图 高精地图
精度 米级(5-10米) 厘米级(10-20厘米)
要素 道路、POI、红绿灯 车道线、路沿、护栏、标牌、坡度
更新频率 按月/季度 按天甚至实时
使用对象 人类驾驶员 自动驾驶系统
核心作用 导航指引 感知辅助 + 定位 + 规划

嗯,这里要注意一点:高精地图不是用来给人看的。它的数据格式、存储方式,都是为算法服务的。你打开高精地图文件,看到的是一堆坐标点和属性标签,根本不像一张“图”。

二、坐标系与转换——绕不开的硬骨头

做雷达和地图匹配,坐标系转换是基本功。我记得第一次做融合定位时,就因为坐标系搞混了,定位结果直接飘到马路对面去了。从那以后,我对坐标系转换就特别敏感。

2.1 常见的坐标系

自动驾驶里常用的坐标系,我总结下来就这几种:

  • WGS-84(经纬度坐标系):GPS用的那个,单位是度。高精地图的原始数据通常用这个存。
  • UTM(通用横轴墨卡托):把地球表面投影到平面上,单位是米。做局部路径规划时常用。
  • 车辆坐标系:以车为中心,x轴朝前,y轴朝左,z轴朝上。雷达点云、摄像头图像都在这个坐标系下。
  • IMU坐标系:惯性测量单元的坐标系,通常和车辆坐标系有安装偏差。

你想想看,雷达扫到的障碍物是在车辆坐标系下的,高精地图上的车道线是在UTM坐标系下的。要把它们对上,就得做坐标转换。

2.2 坐标转换的核心公式

说白了,坐标转换就是旋转加平移。我给大家一个最常用的公式:

// 从车辆坐标系转到UTM坐标系
// 已知:车辆在UTM下的位置 (x_v, y_v, yaw_v)
// 已知:障碍物在车辆坐标系下的坐标 (x_obj_car, y_obj_car)

// 第一步:旋转
double cos_yaw = cos(yaw_v);
double sin_yaw = sin(yaw_v);
double x_rot = x_obj_car * cos_yaw - y_obj_car * sin_yaw;
double y_rot = x_obj_car * sin_yaw + y_obj_car * cos_yaw;

// 第二步:平移
double x_utm = x_v + x_rot;
double y_utm = y_v + y_rot;
我的小技巧: 写代码时一定要把坐标系名称写在变量名里。比如 x_obj_vehicle、x_obj_utm,这样一眼就能看出当前在哪个坐标系下,不容易搞混。

2.3 避坑指南:坐标系转换的常见错误

我曾经在项目里遇到过一个问题:雷达检测到的路沿,投影到地图上总是偏了30厘米。查了两天才发现,是IMU的安装角度没校准。车辆坐标系和IMU坐标系之间有个小夹角,不补偿的话,距离一远误差就放大了。

这里给大家几个建议:

  • 一定要做外参标定,把传感器之间的相对位姿标定准
  • 转换时注意角度单位,是弧度还是度,别混用
  • 浮点数精度问题,累积误差会越来越大,建议用double

三、车道线和路标要素——地图里的“骨架”

高精地图里要素很多,但最核心的,我个人觉得是车道线和路标。为什么?因为自动驾驶的规划控制,基本就是沿着车道线走,看着路标做决策。

3.1 车道线要素

高精地图里的车道线,可不是简单的一条线。它包含的信息非常丰富:

  • 几何形状:用一系列离散点表示,每个点有x、y、z坐标
  • 属性:实线/虚线、白色/黄色、单线/双线
  • 拓扑关系:这条车道线属于哪个车道?左边是什么?右边是什么?
  • 曲率:弯道的半径大小,直接影响车辆过弯速度

我习惯把车道线看作“虚拟轨道”。车只要沿着车道线走,就不会出大问题。但要注意,地图里的车道线和实际路面上的车道线,可能存在偏差。这就是为什么我们需要用毫米波雷达去实时匹配和修正。

3.2 路标要素

路标包括交通标志牌、路面箭头、停止线等。在高精地图里,它们通常被建模成“面”或者“点”要素。

举个例子,一个限速60的标志牌,在地图里会记录:

  • 位置(经纬度或UTM坐标)
  • 类型(限速标志)
  • 数值(60 km/h)
  • 朝向(面向哪个方向的车流)
注意: 路标要素的时效性很重要。我遇到过地图里显示限速80,实际路上已经改成60的情况。所以高精地图需要频繁更新,或者结合视觉/雷达实时识别来校验。

四、本章知识体系总览

下面这张图,是我自己总结的高精地图知识框架。大家可以对照着看,心里有个谱:

高精地图知识体系 高精地图 定义与对比 坐标系与转换 车道线/路标要素 精度厘米级 服务于算法 WGS-84 / UTM 车辆坐标系 旋转+平移公式 车道线几何+属性 路标位置+类型 核心:用高精地图辅助毫米波雷达感知 实现厘米级定位与车道级规划

五、小结

这一章我们聊了高精地图的定义、坐标系转换、以及车道线和路标要素。说白了,高精地图就是给自动驾驶系统准备的“超级说明书”。它精度高、要素全、更新快,是毫米波雷达感知的重要辅助工具。

我个人觉得,理解高精地图的关键,不在于背概念,而在于理解它和传感器数据是怎么配合的。后面几章我们会具体讲毫米波雷达和高精地图的匹配算法,到时候大家会有更深的体会。

本章要点回顾:

  • 高精地图精度厘米级,服务于自动驾驶算法
  • 坐标系转换是匹配的基础,注意外参标定和精度控制
  • 车道线和路标是地图核心要素,包含几何和属性信息