传感器基础与坐标系:从原理到实战
大家好,我是你们的老朋友。今天我们来聊聊多传感器标定里最基础、也最绕不开的一块——传感器本身和坐标系。
说实话,我刚入行那会儿,觉得标定就是调参数。后来踩了无数坑才明白:不懂传感器原理,你连数据噪声从哪来的都不知道;不懂坐标系,你连数据对齐都做不到。 这一章,咱们就把这两块硬骨头啃下来。
一、常见传感器:它们到底在“看”什么?
先说说我们最常用的四位“兄弟”:LiDAR、Camera、IMU、Radar。每个都有自己的脾气。
1. LiDAR(激光雷达)
LiDAR 的原理很简单——发射激光,测量反射时间,算出距离。它输出的是点云,也就是一堆三维坐标点 (x, y, z)。
我个人习惯把 LiDAR 比作“盲人摸象”:它摸到的每个点都是精确的,但整体形状要靠点云拼接。我在项目中遇到过一个问题:LiDAR 在雨天会打出大量噪点,因为雨滴也会反射激光。嗯,这时候就得靠滤波算法了。
2. Camera(相机)
Camera 是“眼睛”,但它看到的只是二维像素。它靠的是光敏元件把光信号转成电信号。输出是图像,每个像素有 RGB 值。
说白了,Camera 没有深度信息。你想想看,一张照片里,远处的山和近处的树,在像素上都是平的。所以 Camera 做标定时,必须依赖内参(焦距、畸变系数)和外参(位置姿态)。
避坑指南: 我曾经因为相机畸变参数没标准,导致融合后的点云和图像对不上。后来老老实实拍了20张棋盘格,才把这事搞定。
3. IMU(惯性测量单元)
IMU 是“内耳”,它感知自身的加速度和角速度。输出是六轴数据:三轴加速度 (ax, ay, az) 和三轴角速度 (gx, gy, gz)。
IMU 有个致命缺点:漂移。你把它放桌上不动,它也会慢慢积累误差。为什么?因为加速度计和陀螺仪都有零偏,积分一次就变成速度误差,再积分一次就是位置误差。
我建议:IMU 一定要和 LiDAR 或 Camera 做紧耦合,用其他传感器来修正它的漂移。单独用 IMU 做定位?那是找死。
4. Radar(毫米波雷达)
Radar 发射电磁波,测量反射信号的多普勒频移来算速度。它输出的是目标列表,每个目标有距离、速度、角度。
Radar 不怕雨雪雾,这是它最大的优势。但它的角度分辨率很差,通常只有几度。所以 Radar 看到的物体,位置是模糊的。
我在项目中遇到过:Radar 把路边的金属护栏误判成静止车辆。后来加了速度阈值过滤,才解决。
| 传感器 | 输出数据 | 优点 | 缺点 |
|---|---|---|---|
| LiDAR | 点云 (x,y,z) | 精度高,有深度 | 受天气影响大 |
| Camera | 图像 (RGB) | 纹理丰富 | 无深度信息 |
| IMU | 加速度、角速度 | 高频、无漂移(短期) | 长期漂移严重 |
| Radar | 目标列表 | 全天候 | 角度分辨率低 |
二、坐标系定义:数据对齐的“语言”
传感器数据要融合,首先得让它们“说同一种语言”。这个语言就是坐标系。
1. 世界坐标系 (World Frame)
世界坐标系是全局的参考系。通常我们选东北天 (ENU) 或 北东地 (NED)。在自动驾驶里,常用 ENU:X 轴指向东,Y 轴指向北,Z 轴指向天。
为什么要有世界坐标系?因为车在动,传感器在动,但世界是静止的。所有轨迹、地图,最终都要映射到世界坐标系里。
2. 车体坐标系 (Body Frame / Vehicle Frame)
车体坐标系是固定在车上的。通常:X 轴指向车头,Y 轴指向左侧,Z 轴指向车顶(右手系)。
注意: 不同车厂的定义可能不同。有的把 Y 轴指向右侧。标定前一定要确认好。我曾经因为坐标系定义不一致,导致融合结果差了半米。
3. 传感器坐标系 (Sensor Frame)
每个传感器都有自己的坐标系。比如 LiDAR 的坐标系原点在激光发射中心,Camera 的坐标系原点在光心。
传感器坐标系是局部的。标定的本质,就是求出传感器坐标系到车体坐标系的变换关系。
三、坐标变换基础:旋转和平移
坐标变换说白了就是两件事:旋转和平移。
1. 旋转矩阵
旋转矩阵 R 是一个 3x3 的正交矩阵。它描述了一个坐标系相对于另一个坐标系的朝向。
比如,把点 p 从传感器坐标系转到车体坐标系:
p_body = R * p_sensor + t
其中 t 是平移向量。
2. 欧拉角 vs 四元数
旋转矩阵有 9 个参数,但自由度只有 3。所以实际中常用欧拉角(roll, pitch, yaw)或四元数(w, x, y, z)。
我个人习惯用四元数。为什么?因为欧拉角有万向锁问题。你想想看,当 pitch 接近 90° 时,roll 和 yaw 就分不清了。四元数没有这个问题。
3. 齐次变换矩阵
为了把旋转和平移写在一起,我们引入齐次坐标:
[p_body] = [R t] * [p_sensor]
[ 1 ] [0 1] [ 1 ]
这个 4x4 的矩阵就是齐次变换矩阵 T。标定就是求这个 T。
四、知识体系总览
下面这张图,是我自己总结的本章知识结构。你可以把它当作一个“地图”,随时回来对照。
五、实战中的一点体会
讲完理论,我想分享一点实战经验。
标定不是一次性的。 传感器会随着时间、温度、振动发生微小的形变。我建议每次上线前,都跑一遍在线标定,检查外参是否还准。
另外,数据同步也很关键。如果 LiDAR 和 Camera 的时间戳没对齐,你标出来的外参就是错的。嗯,这个我们下一章会详细讲。
好了,这一章的内容就到这里。传感器原理和坐标系是标定的地基,地基不稳,上层建筑全是白搭。希望你能把这些基础打牢,后面我们才能玩更高级的。