4. 传感器标定基础

说实话,我刚入行那会儿,觉得标定这事儿挺无聊的。

不就是把传感器装车上,然后对着棋盘格拍几张照片吗?

直到有一次,我花了整整两周时间排查一个融合感知的bug——激光雷达检测到的障碍物位置,和毫米波雷达检测到的位置,总是差那么几十厘米。后来发现,问题出在标定参数上。外参偏了0.5度,结果在50米外,误差就放大到了半米多。

嗯,从那以后,我再也不敢小看标定了。

4.1 标定的本质:给传感器“对齐坐标系”

你想想看,毫米波雷达和激光雷达,它们各自有各自的“眼睛”。

激光雷达看到的是三维点云,以自己为中心建立坐标系。毫米波雷达看到的是稀疏的反射点,也是以自己为中心。这两个坐标系,天生就是歪的。

标定的核心目标,说白了就两件事:

  • 内参标定:搞清楚传感器自己内部的“脾气”。比如激光雷达的激光束有没有歪?毫米波雷达的天线方向图有没有偏?
  • 外参标定:搞清楚传感器之间的“相对位置和姿态”。比如激光雷达装在车顶,毫米波雷达装在保险杠,它们之间的旋转和平移关系是多少?

我个人习惯把外参标定比作“给两个陌生人介绍认识”。你得告诉它们:你在哪,我在哪,咱们怎么才能看到同一个世界。

核心公式(外参变换):

P_lidar = R * P_radar + T

其中R是旋转矩阵,T是平移向量。这个公式,就是融合感知的“地基”。

4.2 为什么要标定?三个血泪教训

我遇到过不少团队,觉得标定可以“差不多就行”。结果呢?

  1. 融合结果不准:两个传感器看到同一个目标,但坐标对不上。你以为是两个目标,其实是一个。或者你以为是一个,其实是两个。
  2. 时间同步白做:就算你把时间戳对齐得再好,空间上对不齐,融合也是白搭。我记得有一次,我们花了一周做时间同步,结果发现外参标定错了,所有工作重来。
  3. 算法鲁棒性下降:标定误差会直接传导到下游的检测、跟踪、规划模块。你想想看,一个偏了0.1度的外参,在100米外就是17厘米的误差。对于自动驾驶来说,这可能是生与死的区别。

避坑指南:

我曾经在一个量产项目上,发现标定参数随着时间在漂移。原因是车辆震动导致传感器支架松动。所以标定不是一劳永逸的,建议定期做校验,尤其是车辆经历过剧烈颠簸或碰撞之后。

4.3 标定的核心目标:内参 vs 外参

咱们分开说。

4.3.1 内参标定

内参,是传感器自身的“出厂设置”。

  • 激光雷达内参:包括激光束的发射角度、接收器灵敏度、距离偏移量等。一般出厂时已经标好,但如果你拆装过激光雷达,或者它受过撞击,建议重新标定。
  • 毫米波雷达内参:包括天线方向图、发射功率、接收增益、距离和速度的校准系数。毫米波雷达的内参标定通常需要用到角反射器,在暗室或空旷场地进行。

内参标定,我一般建议用厂家提供的工具。自己写?太折腾了,而且容易出错。

4.3.2 外参标定

外参,才是融合感知工程师真正要操心的。

外参标定要解决两个问题:

  • 旋转:两个传感器之间的朝向偏差(俯仰角、偏航角、翻滚角)
  • 平移:两个传感器之间的位置偏差(X、Y、Z方向的距离)

常用的外参标定方法,我总结了一下:

方法 原理 精度 适用场景
手动测量法 用卷尺、角度仪直接量 低(厘米级) 快速验证、原型车
靶标法 用棋盘格、角反射器等已知物体 高(毫米级) 量产车、实验室
自然场景法 利用道路上的特征点(如车道线、杆状物) 中(厘米级) 在线标定、OTA更新

我个人最推荐靶标法。虽然操作起来麻烦一点,但精度有保障。自然场景法适合做在线微调,但初始标定还是得靠靶标。

4.4 常用标定工具介绍

工具这块,我踩过不少坑。给你列几个我用下来觉得靠谱的:

4.4.1 开源工具

  • lidar_camera_calibration:一个ROS包,专门做激光雷达和相机的联合标定。虽然它主要针对相机,但你可以用它来标定激光雷达和毫米波雷达的“虚拟相机”关系。
  • Kalibr:苏黎世联邦理工出品,支持多传感器联合标定。功能强大,但配置起来有点复杂。我记得第一次用的时候,光编译就花了一下午。
  • Autoware标定工具:Autoware自带了一套标定工具,支持激光雷达和毫米波雷达的联合标定。界面友好,适合新手入门。

4.4.2 商业工具

  • VectorNav:提供高精度的惯导和标定服务,适合对精度要求极高的场景。
  • Hexagon:他们的激光跟踪仪和标定服务,在汽车行业用得很多。价格不便宜,但精度确实好。

我的建议:

如果你刚开始做融合感知,先用Autoware的标定工具上手。等你对标定原理熟悉了,再尝试Kalibr或者自己写标定算法。别一上来就搞复杂的,容易劝退。

4.5 标定的知识体系

下面这张图,是我自己总结的标定知识体系。你看一眼,心里就有数了。

传感器标定知识体系 标定核心目标 内参标定 外参标定 激光雷达 毫米波雷达 旋转矩阵R 平移向量T 靶标法(高精度) 自然场景法(在线) 手动测量法(快速) Autoware标定工具 Kalibr lidar_camera_calibration 标定是融合感知的基石,精度决定上限

4.6 标定流程:一个实战案例

我拿一个实际项目给你讲讲标定流程。当时我们要标定一个32线激光雷达和一个77GHz毫米波雷达。

  1. 准备阶段:找一个空旷的停车场,地面平整,周围没有强反射物。放置3-5个角反射器,位置要分散,覆盖不同距离和角度。
  2. 数据采集:同时启动两个传感器,采集至少30秒的数据。确保角反射器在两者的视野中都有清晰的响应。
  3. 特征提取:从激光雷达点云中提取角反射器的中心位置,从毫米波雷达数据中提取对应的反射点。
  4. 匹配求解:用最小二乘法或ICP算法,求解旋转矩阵R和平移向量T。
  5. 验证:用另一组数据验证标定结果。如果误差在5厘米以内,就算合格。

关键参数示例:

旋转矩阵 R:
[[ 0.9998,  0.0123, -0.0156],
 [-0.0121,  0.9999,  0.0089],
 [ 0.0157, -0.0087,  0.9998]]

平移向量 T (单位: 米):
[0.25, -0.10, 0.35]

这个结果说明:毫米波雷达在激光雷达的右前方25厘米、下方10厘米、后方35厘米处,且姿态偏差很小。

4.7 标定中的常见坑

最后,分享几个我踩过的坑:

  • 时间不同步:标定的时候,两个传感器采集的数据时间戳要对齐。否则你匹配的是不同时刻的场景,标定结果肯定不准。
  • 特征点太少:至少需要3个不共线的特征点,才能解出6自由度外参。我建议用5个以上,增加冗余度。
  • 忽略雷达的“多径效应”:毫米波雷达在墙角、金属护栏附近容易产生多径反射,导致检测到的点位置偏移。标定时要避开这些区域。
  • 标定板材质不对:激光雷达用的棋盘格,毫米波雷达不一定能检测到。毫米波雷达标定要用角反射器或金属板。

嗯,标定这事儿,说难不难,说简单也不简单。但它是融合感知的“地基”,地基不稳,上面盖的房子再漂亮也没用。

可可精品资料库