一、课程导论与硬件基础:激光雷达工作原理与选型

大家好,我是你们这门课的主讲。在自动驾驶感知领域摸爬滚打了快十年,说实话,激光雷达一直是我最「信任」的传感器。为什么?因为它直接给你三维信息,不像摄像头需要靠算法去猜深度。今天这第一节课,咱们就把激光雷达的底裤扒干净——从原理到选型,再到点云数据怎么存的,一次性讲透。

1.1 激光雷达工作原理:TOF 与三角测距

激光雷达测距,说白了就两种主流方案:TOF(飞行时间法)和三角测距法。

TOF 原理:发射激光脉冲,打到物体反射回来,接收器记录时间差 Δt。距离 d = c × Δt / 2。就这么简单。我当年刚入行时,总觉得这玩意儿精度能有多高?后来发现,时间测量精度做到皮秒级,距离精度就能到厘米级。嗯,这里要注意,TOF 受环境光影响较大,尤其是强阳光下,信噪比会下降。

三角测距法:激光器与接收器之间有个固定基线距离 B。激光打到物体上,在接收器 CMOS 上成像位置会偏移。通过三角几何关系算出距离。这种方法近距离精度极高(毫米级),但距离一远就拉胯。我在做室内 AGV 项目时用过三角测距雷达,5米以内表现完美,超过10米基本就废了。

为什么自动驾驶几乎全用 TOF?你想想看,高速场景需要看到200米外的障碍物,三角测距根本做不到。所以,咱们这门课后面讲的车道线检测,全部基于 TOF 激光雷达。

核心结论:TOF 适合远距离、大场景;三角测距适合近距离、高精度。自动驾驶选 TOF,没得商量。

1.2 主流品牌参数对比:Velodyne / Hesai / RoboSense

市面上激光雷达品牌很多,但真正在自动驾驶量产车上跑出数据的,就这三家。我列个表,大家一目了然。

参数项 Velodyne VLS-128 Hesai AT128 RoboSense RS-LiDAR-M1
线数 128 128 等效 125 线
测距范围 300m @ 10% 反射率 200m @ 10% 反射率 200m @ 10% 反射率
垂直视场角 40° 25.4° 25°
水平角分辨率 0.1° 0.1° 0.2°
点频 ~2.4M pts/s ~1.5M pts/s ~1.2M pts/s
工作温度 -20°C ~ 65°C -40°C ~ 85°C -40°C ~ 85°C
价格(参考) ~$100,000 ~$5,000 ~$3,000

我个人习惯是:做算法原型验证用 Velodyne,数据质量最稳定,点云干净。但量产项目我强烈推荐 Hesai 或 RoboSense。为什么?价格差了一个数量级,而且国产雷达的可靠性已经追上来了。我曾经在一个矿区无人驾驶项目里用过 Velodyne,结果高温下频繁报错,后来换成 Hesai AT128,稳如老狗。

避坑指南:选型时别只看线数。垂直视场角决定了你能看到多近的地面——这对车道线检测至关重要。垂直视场角太小,车头前方的地面盲区会很大,车道线可能直接丢失。

1.3 点云数据格式解析:PCD 与 PCAP

拿到激光雷达硬件,第一步就是读懂它的数据。最常见的两种格式:PCD 和 PCAP。

PCD 格式(Point Cloud Data)

这是点云库 PCL 的标准格式。纯文本或二进制存储。结构清晰,每行一个点,包含 x, y, z, intensity, ring, time 等字段。我经常用它做离线调试,因为可以直接用文本编辑器打开看。

# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z intensity ring time
SIZE 4 4 4 4 2 8
TYPE F F F F U F
COUNT 1 1 1 1 1 1
WIDTH 100000
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 100000
DATA ascii
1.234 2.345 3.456 120 5 123456.789
1.235 2.346 3.457 130 5 123456.790
...

这里要注意 intensity 字段。它代表反射强度,对车道线检测特别有用——车道线通常是高反光材料,intensity 值明显高于路面。我做过一个项目,只用 intensity 阈值分割就能提取出车道线,准确率超过 90%。

PCAP 格式(Packet Capture)

这是网络抓包格式。激光雷达通常通过 UDP 协议发送数据包,PCAP 就是原始网络包的二进制转储。为什么用 PCAP?因为可以回放。你想想看,在实车上采集数据时,不可能每次都把原始场景搬回来。用 PCAP 录下来,回到办公室就能一模一样地回放,调试算法非常方便。

解析 PCAP 需要知道激光雷达的 UDP 包结构。以 Velodyne 为例,每个数据包包含 12 个数据块,每个数据块有 32 个激光点的测距值和反射强度。我早期踩过一个坑:直接按固定字节偏移解析,结果发现不同固件版本的数据包结构有细微差异。后来我学乖了,每次都先读包头版本号,再决定解析方式。

警告:PCAP 文件通常很大。1 分钟 128 线激光雷达的数据,大约 1.5GB。处理时一定要用流式读取,别一次性加载到内存,否则 32GB 内存都不够用。

1.4 本章知识体系总览

为了让大家对本章内容有个整体把握,我画了一张结构图。它把激光雷达的工作原理、主流品牌对比、点云数据格式这三块串起来了。

激光雷达车道线检测 工作原理 TOF 飞行时间 三角测距 主流品牌对比 Velodyne Hesai RoboSense 点云数据格式 PCD 格式 PCAP 格式 图:本章知识体系结构图 从原理到选型再到数据解析,层层递进

这张图把咱们这章的核心脉络理清了。你从左上角开始看:先搞懂 TOF 和三角测距的区别,然后根据应用场景选品牌,最后学会怎么读写 PCD 和 PCAP。每一步都是后面车道线检测算法的基础。

我的建议:初学者先别急着跑算法。花一周时间,把激光雷达的原始数据读进来,用可视化工具看一眼点云长什么样。我当年就是这么干的——先看数据,再写代码。数据感建立起来后,算法设计会顺手很多。

好了,这节课就到这里。硬件基础打牢了,后面咱们才能放心地聊车道线提取、拟合、跟踪这些硬核内容。记住:理解传感器,是做好感知的第一步。

可可精品资料库