一、点云初探:什么是激光雷达?点云数据长什么样?主流传感器介绍。

大家好,欢迎来到这门课的第一讲。

说实话,每次开始讲激光雷达,我都会想起自己第一次拿到 Velodyne HDL-64 数据时的场景。那会儿我刚入行,看着屏幕上密密麻麻的点,第一反应是——这玩意儿到底在说什么?

嗯,别急。今天我们就从最基础的东西聊起。

1.1 激光雷达到底是个啥?

激光雷达,英文叫 LiDAR(Light Detection And Ranging)。说白了,它就是通过发射激光束,测量目标距离的传感器。

你想想看,它跟摄像头最大的区别是什么?摄像头是被动接收光线,而激光雷达是主动发射激光。这就意味着,哪怕在漆黑的夜里,它也能看得清清楚楚。

我在做地下车库的 SLAM 项目时,遇到过摄像头完全失效的情况——灯光太暗,纹理太少。但激光雷达呢?照样干活。这就是它的核心优势。

核心原理一句话: 发射激光 → 碰到物体反射回来 → 计算飞行时间(TOF)→ 得到距离。

当然,除了 TOF 法,还有三角测距法、调频连续波(FMCW)等方法。但目前在自动驾驶和机器人领域,TOF 是绝对的主流。

1.2 点云数据长什么样?

激光雷达每次扫描,会得到成千上万个点。每个点包含什么呢?

  • xyz 坐标:点在三维空间中的位置
  • 强度值(intensity):反射回来的激光强度,不同材质反射率不同
  • 时间戳:这个点是什么时候被采集的
  • 线束编号:对于多线激光雷达,每个点属于哪条扫描线

我习惯把点云想象成「三维世界的照片」。只不过照片的像素是 RGB 值,而点云的像素是 xyz 坐标。

来看一段最简单的点云数据,用 Python 读取 PCD 文件的样子:

import open3d as o3d

# 读取点云
pcd = o3d.io.read_point_cloud("example.pcd")

# 打印点云信息
print(pcd)
# 输出:PointCloud with 123456 points.

# 获取坐标
points = np.asarray(pcd.points)
print(points[:5])
# 输出:
# [[ 1.234  2.345  3.456]
#  [ 1.567  2.678  3.789]
#  ...]

你看,就是这么简单。每个点就是一个三维向量。

小技巧: 我刚开始处理点云时,经常用 Open3D 的可视化功能来「看一眼」数据。这比盯着数字强多了。代码就一行:o3d.visualization.draw_geometries([pcd])

1.3 主流传感器介绍

市面上的激光雷达种类很多。我按自己的经验,把它们分成三类:

类型 代表产品 线数 典型应用 价格区间
机械旋转式 Velodyne HDL-64 / Ouster OS1 16~128线 自动驾驶、高精地图 几万~几十万
固态/半固态 RoboSense RS-LiDAR-M1 / Livox HAP 等效 64~128线 量产车、机器人 几千~几万
单线雷达 SICK LMS1xx / RPLIDAR A2 1线 AGV、扫地机器人 几百~几千

机械旋转式:这是最经典的结构。激光发射器和接收器装在旋转电机上,360度扫描。我记得第一次拆开 Velodyne 的时候,看到里面密密麻麻的激光二极管,确实震撼。但缺点也很明显——有机械旋转部件,寿命和可靠性是问题。

固态/半固态:这两年发展最快的类型。没有大块旋转部件,靠 MEMS 微振镜或者光学相控阵来改变激光方向。我最近在做一个园区物流项目,用的就是 RoboSense 的 M1,体积小、重量轻,装在车顶上不显眼。

单线雷达:结构最简单,只扫描一个平面。适合做 2D SLAM 或者避障。我最早接触激光雷达就是用的 RPLIDAR A2,那时候还在读研,几百块钱买一个,自己写代码做建图,挺有意思的。

避坑指南: 我曾经在室外项目里用了单线雷达做避障,结果阳光直射时数据全飘了。后来才意识到,单线雷达的抗干扰能力远不如多线雷达。所以选型时一定要考虑使用场景。

1.4 知识体系总览

为了让大家对本章内容有个整体印象,我画了一张图:

激光雷达点云初探 什么是激光雷达 主动式传感器 TOF测距原理 不受光照影响 点云数据长什么样 xyz坐标 + 强度值 时间戳 + 线束编号 PCD/PLY/XYZ格式 主流传感器介绍 机械旋转式 固态/半固态 单线雷达 理解传感器原理 → 看懂点云数据 → 选对硬件设备 这是后续所有SLAM和点云处理的基础

这张图把本章的三个核心内容串起来了。从左到右,其实就是一条学习路径:先理解传感器原理,再学会看数据,最后知道怎么选设备。

1.5 一些心里话

说实话,激光雷达这个领域,入门门槛并不高。你不需要懂很深的光学原理,也不需要会复杂的数学推导。只要你能理解 xyz 坐标的含义,会写几行 Python 代码读数据,就已经迈出了第一步。

我记得自己刚入行时,花了一整个下午,就为了搞明白为什么点云里有些点特别亮(强度值高),有些点特别暗。后来才发现,原来是不同材质反射率不同——金属反射强,黑色橡胶反射弱。就这么简单的一个道理,当时却让我琢磨了半天。

所以,别怕。慢慢来,我们一章一章地过。

课后建议: 如果你手头有激光雷达,哪怕是最便宜的 RPLIDAR,也建议连上电脑,用官方软件看一眼实时点云。没有设备也没关系,网上有很多公开数据集,比如 KITTI、nuScenes,下载一个 PCD 文件,用 Open3D 打开看看。亲眼看到点云在三维空间里旋转的感觉,比读十篇文章都管用。

可可精品资料库