3. 传感器基础:视觉传感器与激光雷达简介
做自主导航这么多年,我越来越觉得传感器选型就像选搭档。选对了,事半功倍;选错了,后面全是坑。今天咱们聊聊视觉传感器和激光雷达,这两类传感器在GPS拒止环境下的定位与建图中,扮演着完全不同的角色。
核心观点:没有完美的传感器,只有合适的组合。视觉传感器擅长纹理丰富的环境,激光雷达在结构化和光照变化大的场景中更可靠。
3.1 视觉传感器:单目、双目与深度相机
视觉传感器说白了就是“用摄像头看世界”。但同样是看,单目、双目和深度相机的“看”法完全不同。
3.1.1 单目相机
单目相机只有一个镜头。它拍出来的图像是2D的,缺少深度信息。那怎么用它做导航呢?
我刚开始做视觉SLAM时,觉得单目相机太“弱”了。后来才发现,它其实很聪明——通过连续帧之间的运动,可以三角化出深度。这就是所谓的“运动恢复结构”(SfM)。
- 优点:成本低、体积小、功耗低。适合无人机、手机等轻量级设备。
- 缺点:尺度不确定。单目相机无法直接知道物体的真实大小,需要初始化。
- 典型应用:ORB-SLAM、VINS-Mono等经典算法。
我的经验:单目相机在纯旋转运动下会“失明”。因为三角化需要平移视差。我曾在一次测试中让无人机原地旋转,结果定位直接漂飞了。记住:单目需要足够的平移运动才能恢复深度。
3.1.2 双目相机
双目相机模仿人眼,用两个镜头同时拍摄。通过左右图像的视差,可以直接计算出深度。
你想想看,两个镜头之间的距离(基线)决定了深度估计的范围。基线越长,能测的距离越远,但相机体积也越大。
# 双目深度计算的核心公式
深度 Z = (f * B) / d
其中:
f = 焦距
B = 基线长度(两个镜头中心距离)
d = 视差(左右图像中对应点的像素差)
- 优点:直接获取深度,无需运动初始化。适合静态场景。
- 缺点:计算量大,基线限制了测量范围,近距离精度高但远距离差。
- 典型应用:ZED相机、Intel RealSense D435i等。
注意:双目相机的深度精度与距离的平方成反比。也就是说,物体越远,深度误差越大。我曾经在室外测试时,50米外的物体深度误差达到了30%以上。所以双目更适合室内或近距离场景。
3.1.3 深度相机
深度相机(RGB-D相机)直接输出每个像素的深度值。常见的有结构光和ToF两种原理。
- 结构光:投射红外点阵,通过变形计算深度。代表:Kinect v1、Intel RealSense SR300。
- ToF(飞行时间):发射红外光,测量反射时间。代表:Kinect v2、Azure Kinect。
我个人习惯在室内场景优先用深度相机。它直接给你深度图,省去了双目匹配的计算量。但要注意,它在强光下表现很差——红外光会被太阳光淹没。
| 类型 | 深度获取方式 | 典型范围 | 强光表现 | 典型设备 |
|---|---|---|---|---|
| 单目 | 运动三角化 | 无限制(需运动) | 好 | 普通USB摄像头 |
| 双目 | 视差计算 | 0.1m - 20m | 好 | ZED、RealSense D435i |
| 深度相机 | 结构光/ToF | 0.1m - 10m | 差 | Kinect、Azure Kinect |
3.2 激光雷达(LiDAR)
激光雷达,简称LiDAR。它用激光束扫描环境,直接测量距离。精度高、速度快,是自主导航的“硬核”传感器。
我记得第一次接触16线激光雷达时,被它的点云数据震撼到了——整个世界变成了一个个精确的3D点。但后来发现,处理这些点云数据才是真正的挑战。
3.2.1 工作原理
LiDAR发射激光脉冲,碰到物体后反射回来。通过测量飞行时间,计算距离。同时记录激光束的角度,就能得到物体的3D坐标。
# 激光雷达点云生成原理
x = r * cos(θ) * cos(φ)
y = r * cos(θ) * sin(φ)
z = r * sin(θ)
其中:
r = 测量距离
θ = 垂直角度
φ = 水平角度
3.2.2 分类
- 机械式LiDAR:旋转扫描,360°视野。代表:Velodyne HDL-64、Hesai Pandar系列。
- 固态LiDAR:无旋转部件,通过光学相控阵或MEMS扫描。体积小、寿命长。代表:Livox Horizon、Ouster OS系列。
- 单线LiDAR:只扫描一个平面。常用于AGV的避障和导航。
关键参数:线数(16线、32线、64线、128线)、测量距离(100m-300m)、精度(±2cm)、帧率(10Hz-20Hz)。线数越多,点云越密,但数据量也越大。
3.2.3 优缺点
- 优点:精度高、不受光照影响、直接获取3D信息。在黑暗、强光、雨雾等恶劣环境下依然可靠。
- 缺点:成本高(机械式尤其贵)、体积大、功耗高。无法获取颜色和纹理信息。
避坑指南:我曾经在雨雪天测试LiDAR,发现点云中出现了大量“噪点”——雨滴和雪花反射了激光。后来加了滤波算法才解决。另外,多台LiDAR同时工作时可能互相干扰,需要错开频率。
3.3 视觉 vs LiDAR:怎么选?
这个问题没有标准答案。我个人的经验是:看场景。
- 室内、纹理丰富:视觉传感器就够了。成本低、信息丰富。
- 室外、光照变化大:LiDAR更可靠。不受阳光影响。
- 长距离、高速:LiDAR是首选。视觉在远距离深度估计上误差太大。
- 低成本、轻量化:单目或双目。无人机、手机等场景。
其实,现在的主流方案是视觉+LiDAR融合。用视觉获取纹理和颜色,用LiDAR获取精确深度。两者互补,效果最好。
3.4 知识体系总览
下面这张图总结了本章的核心内容。你可以把它当作一个快速索引。
总结一下:视觉传感器和激光雷达各有千秋。视觉便宜、信息丰富,但受光照影响大;LiDAR精确、全天候,但成本高。实际项目中,我建议根据场景需求做取舍。如果预算允许,视觉+LiDAR融合是最稳妥的方案。