第2章:激光雷达基础

大家好,我是这门课的主讲。今天咱们聊聊激光雷达——这个在SLAM领域里最核心的传感器之一。

说实话,我最早接触激光雷达是在2016年,那时候一个16线激光雷达要十几万,现在想想真是天价。但技术发展快啊,现在几千块就能买到不错的固态雷达了。好,不扯远了,咱们直接进入正题。

2.1 激光雷达工作原理

激光雷达,英文叫LiDAR(Light Detection And Ranging)。说白了,就是通过发射激光,测量激光从发射到返回的时间,从而计算出目标的距离。

目前主流的测距原理有两种:TOF(飞行时间法)三角测距法

2.1.1 TOF测距原理

TOF的原理非常简单:

距离 = 光速 × 飞行时间 / 2

激光发射器发出一束激光脉冲,打到目标后反射回来,被接收器捕获。我们记录下这个时间差Δt,乘以光速c,再除以2(因为光走了来回),就得到了距离。

我在项目中遇到过一个问题:TOF雷达在强光环境下容易失效。为什么?因为太阳光里也包含近红外成分,会干扰接收器。后来我们加了窄带滤光片,效果好了很多。

核心要点:TOF测距精度主要取决于时间测量的精度。1纳秒的时间误差,对应约15厘米的距离误差。所以高精度TOF雷达需要皮秒级的时间测量芯片。

2.1.2 三角测距原理

三角测距是另一种思路。它不测时间,而是测角度。

激光器发射一束光,打到目标上形成光斑。这个光斑被一个CMOS相机拍摄到。激光器、相机、目标点三者构成一个三角形。已知激光器和相机的基线长度B,以及光斑在图像上的偏移量Δx,就可以通过三角公式计算出距离。

距离 = B × f / Δx

其中f是相机焦距。

嗯,这里要注意:三角测距的精度和距离成反比。目标越远,Δx越小,误差越大。所以三角测距雷达一般只适合近距离(<10米)场景。

我的建议:如果你做室内机器人导航,三角测距雷达性价比很高。但做自动驾驶或室外大场景建图,老老实实上TOF雷达。

2.1.3 两种方案对比

对比项 TOF 三角测距
测距范围 远(可达200m+) 近(通常<10m)
精度 厘米级,随距离变化小 近距离毫米级,远距离快速下降
抗环境光 较好(加滤光片后) 较差
成本
典型产品 Velodyne、禾赛、速腾 RPLIDAR、Slamtec

2.2 点云数据格式

激光雷达采集到的数据,我们叫它点云。每个点包含三维坐标(x, y, z)和反射强度(intensity)。

最常见的点云格式有几种,我给大家梳理一下:

2.2.1 PCD格式

PCD是Point Cloud Data的缩写,由PCL库推广使用。它的结构很清晰:

# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z intensity
SIZE 4 4 4 4
TYPE F F F F
COUNT 1 1 1 1
WIDTH 640
HEIGHT 1
POINTS 640
DATA ascii
0.123 0.456 1.789 128
0.234 0.567 1.890 200
...

我个人习惯用PCD格式做中间存储,因为它兼容性好,PCL库直接读写。

2.2.2 LAS/LAZ格式

这是测绘行业的标配格式。LAS是二进制格式,LAZ是它的压缩版。如果你做室外大场景建图,最后输出给GIS系统,大概率要用LAS格式。

2.2.3 ROS中的点云消息

在ROS里,点云用sensor_msgs::PointCloud2消息传递。它的结构是:

Header header
PointField[] fields  # x, y, z, intensity, ring, time等
uint32 height        # 1表示无序点云
uint32 width         # 点的数量
uint8[] data         # 二进制数据
uint32 point_step    # 每个点的字节数
uint32 row_step      # 每行的字节数

我曾经踩过的坑:ROS的PointCloud2消息里,字段顺序不一定是x,y,z,intensity。有些雷达厂商会把intensity放在前面。如果你直接按固定偏移读数据,会读到错误的值。一定要先解析fields数组,再按字段名取数据。

2.3 主流激光雷达产品介绍

市面上的激光雷达产品很多,我按应用场景给大家分个类:

2.3.1 机械旋转式激光雷达

这类雷达通过电机带动激光收发模块旋转,实现360°扫描。线数从16线到128线不等。

  • Velodyne(威力登):老牌厂商,VLP-16(16线)是经典产品,很多高校实验室都在用。优点是稳定,缺点是贵。
  • 禾赛科技:国产之光,Pandar系列性能很强。Pandar64在自动驾驶领域用得很多。
  • 速腾聚创:RS-LiDAR系列,性价比不错。RS-16是很多机器人公司的入门选择。

2.3.2 固态激光雷达

没有旋转部件,靠光学相控阵或MEMS微振镜实现扫描。体积小、寿命长、成本低。

  • Livox(览沃):大疆旗下,Mid-40和Horizon系列。非重复扫描模式很有意思,能覆盖更大的视场角。
  • Ouster:OS系列,数字激光雷达,每个点还包含信号质量信息。

2.3.3 单线激光雷达

只扫描一个平面,常用于室内导航和避障。

  • 思岚科技(Slamtec):RPLIDAR系列,三角测距,性价比极高。A1、A2、S1我都用过,做室内建图完全够用。
  • 北醒光子:TF系列,单点测距模块,适合做避障传感器。

我的选型建议:预算有限做室内SLAM,选RPLIDAR A2(约2000元)。做室外自动驾驶,至少16线起步,推荐速腾RS-16或禾赛Pandar40。做科研验证,Livox Mid-40性价比很高,而且非重复扫描对建图质量有提升。

2.4 本章知识体系

下面这张图总结了本章的核心内容,我画成了SVG,方便大家理解:

激光雷达基础 - 知识体系 工作原理 • TOF飞行时间法 距离 = c × Δt / 2 • 三角测距法 距离 = B × f / Δx • 对比分析 TOF:远距、高成本 三角:近距、低成本 点云数据格式 • PCD格式 PCL库标准格式 • LAS/LAZ格式 测绘行业标准 • ROS PointCloud2 字段解析要点 • 核心字段 x, y, z, intensity 主流产品 • 机械旋转式 Velodyne VLP-16 禾赛 Pandar系列 速腾 RS-LiDAR • 固态激光雷达 Livox Mid-40 Ouster OS系列 • 单线激光雷达 思岚 RPLIDAR 北醒 TF系列 理解原理 → 掌握格式 → 选对产品

这张图把本章的三个核心模块串起来了。你想想看,搞懂工作原理,你才知道怎么选雷达;掌握数据格式,你才能正确处理数据;了解产品,你才能做工程落地。三者缺一不可。

一句话总结:激光雷达就是机器人的眼睛。TOF和三角测距是两种不同的"看"法,点云是它"看到"的世界,而选对产品,是让这双眼睛真正好用的关键。


专注资料整理