4、激光雷达(LiDAR)基础:单线与多线LiDAR、工作原理、点云数据简介
各位同学好,我是老张。今天咱们聊聊机器人避障里最核心的传感器之一——激光雷达。说实话,我入行那会儿,激光雷达还是个稀罕物,价格贵得离谱。现在不一样了,单线雷达几百块就能买到,多线雷达也慢慢普及了。但不管价格怎么变,它的工作原理和数据处理方式,始终是避障算法的基石。
4.1 什么是激光雷达?
激光雷达,英文叫 LiDAR(Light Detection And Ranging)。说白了,就是通过发射激光束,测量目标距离的传感器。它跟雷达的原理类似,只不过用的是光波,而不是无线电波。
我经常跟新人打比方:你闭上一只眼,伸出一根手指,对着墙壁来回扫。手指碰到墙的那一刻,你就知道墙离你有多远。激光雷达就是那个手指,只不过它每秒能扫几万次甚至几十万次,精度能达到厘米级甚至毫米级。
核心要点:激光雷达的核心能力就是「测距 + 测角」。它告诉你:在某个方向上,距离多远有障碍物。
4.2 单线 vs 多线 LiDAR
这是初学者最容易混淆的概念。我简单解释一下。
4.2.1 单线激光雷达
单线雷达,顾名思义,只有一束激光在水平方向上旋转扫描。它只能获取一个平面内的距离信息。你可以把它想象成一把尺子,在一个平面上转圈。
- 优点:便宜、结构简单、数据处理量小
- 缺点:只能感知一个平面,无法检测高低差
- 典型应用:扫地机器人、AGV小车、室内导航
我记得刚做第一个机器人项目时,用的就是单线雷达。当时机器人要过一个小坡,结果雷达完全没检测到,直接撞上去了。后来我才意识到,单线雷达的扫描平面刚好在坡道上方,根本扫不到地面凸起。这就是它的局限性。
4.2.2 多线激光雷达
多线雷达,就是同时发射多束激光,覆盖一个垂直角度范围。比如 16 线、32 线、64 线甚至 128 线。每一束激光都在水平旋转,同时垂直方向也有分布。这样就能获取三维空间的信息。
- 优点:能感知三维环境,检测高低差、悬空障碍物
- 缺点:贵、数据量大、处理复杂
- 典型应用:自动驾驶、无人机、室外移动机器人
你想想看,多线雷达就像你同时伸出好几根手指,上下排列,一起扫过去。这样你不仅能知道前面有墙,还能知道墙有多高、有没有凹陷。
| 对比项 | 单线 LiDAR | 多线 LiDAR |
|---|---|---|
| 扫描维度 | 2D(平面) | 3D(立体) |
| 数据量 | 小(几百~几千点/帧) | 大(几万~几十万点/帧) |
| 成本 | 低(几百~几千元) | 高(几千~几万元) |
| 典型场景 | 室内、平坦地面 | 室外、复杂地形 |
4.3 工作原理:TOF 与三角测距
激光雷达怎么测距的?主要有两种方法。
4.3.1 TOF(飞行时间法)
TOF 的原理很简单:发射一束激光,打到物体上反射回来,测量激光往返的时间。光速是已知的,时间乘以光速再除以 2,就是距离。
公式:距离 = (光速 × 时间) / 2
TOF 的优点是测量距离远、精度高、不受物体颜色影响。缺点是电路复杂、成本高。目前主流的多线雷达和高端单线雷达都用 TOF。
小提示:TOF 雷达的精度主要取决于计时电路的精度。1 纳秒的时间误差,对应约 15 厘米的距离误差。所以高精度 TOF 雷达的计时电路非常讲究。
4.3.2 三角测距法
三角测距法,是发射激光到物体上,然后用摄像头捕捉反射光斑。根据光斑在图像上的位置偏移,通过三角几何关系计算出距离。
这种方法成本低,近距离精度高(比如 0.1~6 米范围内)。但距离越远,精度下降越快。而且受物体颜色和表面材质影响较大。
我曾经调试过一个三角测距雷达,在白色墙壁上测距很准,换成黑色哑光表面,数据直接飘了。嗯,这里要注意,如果你用三角测距雷达做避障,最好在目标场景下做一次标定。
注意:三角测距雷达在强光环境下容易受干扰。户外使用时,建议优先选择 TOF 雷达。
4.4 点云数据简介
激光雷达扫描得到的数据,就是点云。每个点包含三维坐标 (x, y, z) 和反射强度 (intensity)。
点云数据长什么样?我直接给你看一段示例:
# 单线雷达的一帧数据(极坐标格式)
angle: 0.0°, distance: 2.34m, intensity: 180
angle: 0.5°, distance: 2.35m, intensity: 175
angle: 1.0°, distance: 2.33m, intensity: 182
...
# 多线雷达的一帧数据(笛卡尔坐标格式)
x: 1.23, y: 0.45, z: -0.12, intensity: 200
x: 1.25, y: 0.48, z: -0.10, intensity: 195
x: 1.20, y: 0.42, z: -0.15, intensity: 210
...
点云数据有几个关键特性:
- 稀疏性:相比图像,点云是稀疏的。一帧 64 线雷达的点云,也就几十万个点,而一张 1080p 图像有 200 多万像素。
- 无序性:点云中的点没有固定的排列顺序。你交换两个点的位置,表示的还是同一个物体。
- 距离相关密度:离雷达越近,点越密;越远,点越稀疏。这是由激光束的角分辨率决定的。
我刚开始处理点云时,最头疼的就是它的稀疏性。明明前面有一根细柱子,但雷达扫过去只打到了两三个点,根本没法判断那是柱子还是噪声。后来我学会了用「聚类」和「滤波」来处理,才慢慢上手。
4.5 知识体系总览
下面这张图,是我自己整理的激光雷达知识框架。你可以把它当作本章的思维导图。
4.6 避坑指南
最后,分享几个我踩过的坑,希望能帮你少走弯路。
- 我曾经以为单线雷达就能搞定一切。结果在户外遇到一个斜坡,雷达扫过去全是地面,机器人直接冲下坡了。后来我换成了多线雷达,才真正解决了这个问题。
- 我曾经忽略点云噪声。有一次调试避障算法,机器人总是莫名其妙地急停。查了半天,发现是雷达镜片上有灰尘,导致某些角度出现异常点。从那以后,我每次上线前都会先做一次点云滤波。
- 我曾经低估了反射强度的重要性。黑色物体和透明物体对激光的吸收和反射完全不同。如果你只用距离信息做避障,遇到玻璃门或者黑色地毯,很容易出问题。建议把反射强度也纳入判断依据。
好了,这一章的内容就到这里。激光雷达是避障系统的眼睛,理解它的工作原理和数据特性,是后续所有算法的基础。下一章我们会深入点云处理,讲讲怎么从原始数据中提取有用的障碍物信息。