1. 激光雷达基础与坐标系
各位同学好,我是你们的讲师。在正式开始之前,我想先聊聊我自己的经历。2016年我刚入行做自动驾驶时,第一次拿到16线激光雷达的数据,满脑子都是问号:这堆点云到底怎么跟车体对齐?外参标定又是什么鬼?后来踩了不少坑,才慢慢摸清门道。今天这一章,我就把这些基础但关键的内容,掰开了揉碎了讲给你听。
1.1 激光雷达工作原理:TOF与三角法
激光雷达的核心任务就一个:测距。怎么测?主流有两种方法。
1.1.1 TOF(飞行时间法)
TOF的原理很简单,说白了就是「发射激光 → 碰到物体反射回来 → 计算时间差」。光速是已知的,时间差乘以光速再除以2,距离就出来了。
我习惯把TOF雷达比作「激光秒表」——它不关心目标长什么样,只关心光飞了多久。这种方法的优势是测量距离远(几十米到几百米),精度高(厘米级),而且不受目标颜色影响。你在路上看到的机械式激光雷达,基本都是TOF的。
关键公式:
距离 = (光速 × 飞行时间) / 2
注意:除以2是因为光走了「发射→目标→接收」的往返路程。
1.1.2 三角法
三角法就有点不一样了。它利用的是激光发射点和接收相机之间的几何关系。激光打到物体上,在相机成像平面形成一个光斑。物体越近,光斑位置偏移越大。通过三角相似三角形,就能算出距离。
我在项目中遇到过用三角法的低成本雷达,精度在近距离(1米以内)确实不错,但超过5米误差就大了。所以它更适合室内机器人、AGV这类场景。TOF则是户外自动驾驶的首选。
| 对比项 | TOF法 | 三角法 |
|---|---|---|
| 测量距离 | 远(可达200m+) | 近(通常<10m) |
| 精度 | 厘米级,随距离变化小 | 近距离毫米级,远距离下降快 |
| 成本 | 高 | 低 |
| 典型应用 | 自动驾驶、测绘 | 室内机器人、避障 |
1.2 常见激光雷达类型
你想想看,现在市面上的激光雷达五花八门,但归根结底就三类:机械式、固态、混合固态。
1.2.1 机械式激光雷达
这是最经典的类型。电机带着激光收发模块旋转,一圈一圈地扫描。Velodyne的HDL-64E就是典型代表,64根激光束同时转,每秒能出几十万个点。
优点:视场角360°,点云密度高。缺点:有机械旋转部件,寿命有限,震动环境下容易出问题。我记得有一次在测试车上装了个32线机械雷达,跑了三天,轴承就开始异响……嗯,机械结构就是这么娇气。
1.2.2 固态激光雷达
固态雷达没有旋转部件,靠光学相控阵(OPA)或微振镜(MEMS)来改变激光方向。它的体积小、寿命长、成本低,是未来的趋势。
但要注意,固态雷达的视场角通常有限,一般只有90°~120°。想覆盖360°?那就得多装几个。我在一个项目里用过某国产固态雷达,水平视场角120°,垂直25°,做前向感知够用,但做定位就有点吃力——因为看不到侧面的特征。
1.2.3 混合固态激光雷达
混合固态,说白了就是「半机械半固态」。它内部有微振镜或旋转棱镜,但整体结构比纯机械式简单。比如Livox的Horizon,用的是旋转棱镜扫描方式,视场角能做到81.7°×25.1°,点云分布也很均匀。
我个人习惯把混合固态看作「过渡方案」——它兼顾了机械式的性能和固态的可靠性。目前很多量产车用的就是这种。
选型建议:如果你做的是高精度地图构建或定位,优先考虑机械式或混合固态,因为它们的点云规律性好,特征提取稳定。纯固态雷达更适合做感知补盲。
1.3 激光雷达坐标系定义
坐标系是定位的基石。搞不清楚坐标系,后面所有算法都是空中楼阁。
激光雷达的坐标系通常遵循右手定则:
- X轴:指向雷达前方(车辆前进方向)
- Y轴:指向雷达左侧
- Z轴:指向雷达上方
但不同厂家可能有自己的习惯。比如Velodyne的坐标系是Z轴向上,X轴指向车头;而某些国产雷达会把Y轴作为前进方向。所以拿到一个新雷达,第一件事就是看它的数据手册,确认坐标系定义。
我曾经因为坐标系搞反,导致点云地图和实际道路完全镜像,排查了整整两天……后来我养成了一个习惯:拿到点云数据后,先画一个简单的坐标系箭头,确认方向再往下做。
避坑指南:ROS中常用的sensor_msgs::PointCloud2消息,其坐标系默认是雷达自身的坐标系。如果你直接用它做定位,一定要先通过TF变换转到车体坐标系下。我曾经见过有人直接把雷达点云当成车体坐标系用,结果定位结果偏了半米……
1.4 外参标定原理
外参标定,就是求激光雷达坐标系到其他传感器坐标系(车体、IMU、相机)之间的旋转和平移关系。说白了,就是让所有传感器「说同一种语言」。
1.4.1 雷达与车体外参标定
车体坐标系通常以后轴中心为原点,X轴向前,Y轴向左,Z轴向上。雷达装在车顶或保险杠上,位置和朝向都跟车体不同。
标定方法有很多,我推荐一种简单实用的:
- 把车停在平坦地面上,用全站仪或标定板确定车体坐标系
- 用雷达扫描几个已知位置的特征点(比如标定板的角点)
- 通过最小二乘法求解旋转矩阵R和平移向量t
公式长这样:
P_car = R * P_lidar + t
其中P_car是车体坐标系下的点,P_lidar是雷达坐标系下的点。
1.4.2 雷达与IMU外参标定
IMU和雷达的标定,核心是求时间同步和空间对齐。空间对齐可以用「手眼标定」的方法:让机器人做一组运动,同时记录IMU的角速度和加速度,以及雷达的位姿变化。然后求解AX=XB这个方程。
我在项目中用过Kalibr工具包做雷达-IMU标定,效果还不错。但要注意,IMU的噪声很大,标定前最好先做零偏补偿。
1.4.3 雷达与相机外参标定
这个稍微复杂一点,因为相机是2D图像,雷达是3D点云。常用的方法是找一个棋盘格标定板,同时被相机和雷达看到。相机提取角点,雷达提取标定板平面上的点云,然后通过PnP或ICP算法求解外参。
嗯,这里要注意:雷达点云在标定板边缘会有「拖尾」现象,因为激光打到边缘时可能同时反射到两个面。我建议只取标定板中心区域的点云做平面拟合,这样更准。
标定流程总结:
- 准备标定板(棋盘格或圆形阵列)
- 采集多组雷达+相机/IMU数据
- 提取特征点/平面
- 求解外参(R,t)
- 验证:将雷达点云投影到图像上,看是否对齐
本章知识体系
下面这张图,是我画的本章节核心逻辑。你可以把它当作一张「地图」,后面每学一个新知识点,都能在这张图上找到位置。
好了,第一章的内容就到这里。激光雷达的基础和坐标系,是后面所有定位算法的地基。你把这些搞清楚了,后面学点云配准、SLAM建图、定位融合,都会顺畅很多。
可可精品资料库