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 知识体系总览

下面这张图总结了本章的核心内容。你可以把它当作一个快速索引。

传感器基础:视觉传感器与激光雷达 视觉传感器 单目相机 运动三角化 双目相机 视差计算深度 深度相机 (RGB-D) 结构光 / ToF 激光雷达 (LiDAR) 机械式 LiDAR 旋转扫描 360° 固态 LiDAR MEMS / 相控阵 单线 LiDAR 平面扫描 选型对比 室内 / 纹理丰富 → 视觉传感器 室外 / 光照变化大 → 激光雷达 长距离 / 高速 → 激光雷达 低成本 / 轻量化 → 单目或双目 最佳实践:视觉 + LiDAR 融合 视觉提供纹理和颜色 LiDAR提供精确深度 两者互补,效果最好 图:传感器基础知识体系总览

总结一下:视觉传感器和激光雷达各有千秋。视觉便宜、信息丰富,但受光照影响大;LiDAR精确、全天候,但成本高。实际项目中,我建议根据场景需求做取舍。如果预算允许,视觉+LiDAR融合是最稳妥的方案。

专注资料整理