一起自学SLAM算法:4.2 激光雷达

连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

第4章-机器人传感器

        4.1 惯性测量单元

        4.2 激光雷达

        4.3 相机

        4.4 带编码器的减速电机

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

第12章-典型自主导航系统

第13章-机器人SLAM导航综合实战


每当说起雷达,很多人可能想到的就是军事领域探测敌机那种庞然大物。其实,雷达是指利用探测介质探测物体距离的设备,比如无线电测距雷达、激光测距雷达、超声波测距雷达等,如图4-35所示。由于激光具有很好的抗干扰性和直线传播特性,因此激光测距具有很高的精度。基于激光测距原理的激光雷达,测距精度往往可以达到厘米级或毫米级,广泛应用于机器人导航避障、无人驾驶汽车、环境结构建模、安防、智能交互等领域。

激光雷达测距方式主要是三角测距和TOF(Time of Fly,飞行时间)测距两种,三角测距实现起来简单,TOF测距精度高。激光探头需要旋转起来,形成对更广泛范围的扫描探测。根据激光探头发出激光束的数量,可以分为单线激光雷达和多线激光雷达。还有一些不常规的激光雷达,比如固态激光雷达、单线多自由度旋转激光雷达、面激光束雷达等。在将激光雷达应用到我们的机器人项目中时,需要根据应用场景选择合适型号的激光雷达。在软件层面上,通常是在上位机电脑上运行ROS驱动程序获取雷扫描数据,对扫描数据做滤波等必要的数据处理,最后扫描数据就交给上层的建图、避障、导航等算法做运算。激光雷达数据与轮式里程计、IMU、视觉等进行多传感器融合,往往可以实现更好的效果。

一起自学SLAM算法:4.2 激光雷达_第1张图片

 图4-35  常见雷达种类

4.2.1 激光雷达工作原理

从测距和扫描两方面来讨论激光雷达原理,测距原理介绍三角测距和TOF测距两种方法,扫描原理介绍单线激光雷达、多线激光雷达等。

1.测距原理

(1)三角测距

三角测距如图4-36所示,激光器发射一束激光,被物体A反射后,照射到图像传感器的A’位置,这样就形成了一个三角形,通过解算可以求出物体A到激光器的距离。激光束被不同距离的物体反射后,形成不同的三角形。我们不难发现随物体距离不断变远,反射激光在图像传感器上的位置变化会越来越小,也就是越来越难以分辨。这正是三角测距的一大缺点,物体距离越远,测距误差越大。

一起自学SLAM算法:4.2 激光雷达_第2张图片

 图4-36  三角测距

(2)TOF测距

TOF测距如图4-37所示,激光器发出激光时,计时器开始计时,接收器接收到反射回来的激光时,计时器停止计时,得到激光传播的时间后,通过光速一定这个条件,很容易计算出激光器到障碍物的距离。由于光速传播太快了,要获取精确的传播时间太难了。所以这种激光雷达自然而然成本也会高很多,但是测距精度很高。

 图4-37  TOF测距

2.扫描原理

上面介绍测距原理时,只是单个的激光器,也就是说只能扫描单个点,这个装置也叫单线激光测距模组。激光雷达中,将单线激光测距模组安装到旋转机构中,就能对环境进行多点扫描。激光雷达中的旋转机构需要考虑的关键问题是通信与供电问题,这也直接决定了激光雷达的性能和寿命。因为激光测距模组处于旋转状态,所以模组不能直接用导线与底座连接,行业内一般用滑环或光磁耦合实现连接。滑环是机械式的触点,旋转过程中触点始终保持接触,实现电路的连接导通,缺点是使用久了会磨损,机械触点也导致旋转过程发出很多噪音。光磁耦合不需要接触式的连接,模组与底座通过电磁感应进行电能输送,模组和底座有一一对应的发光二极管接收管用于光通信,当然这种连接方案成本会更高。

一起自学SLAM算法:4.2 激光雷达_第3张图片

图4-38  测距模组旋转机构

(1)单线激光雷达

单线激光模组和旋转机构就构成了单线激光雷达,单线激光雷扫描点通常处在同一平面上的360度范围,因此也叫2D激光雷达。其扫描点,如图4-39所示。

一起自学SLAM算法:4.2 激光雷达_第4张图片

图4-39  单线激光雷达扫描点

(2)多线激光雷达

单线激光雷达只能扫描同一平面上的障碍信息,也就是环境的摸一个横截面的轮廓,这样扫描数据信息很有限。在垂直方向同时发射多束激光,再结合旋转机构,就能扫描多个横截面的轮廓,这就会多线激光雷达,也叫3D激光雷达。其扫描点,如图4-40所示。

一起自学SLAM算法:4.2 激光雷达_第5张图片

图4-40  多线激光雷达扫描点

 (3)其他激光雷达

除了上面常见的单线激光雷达和多线激光雷达,还有一些特殊的激光雷达,比如固态激光雷达、单线多自由度旋转激光雷达、面激光束雷达等,如图4-41所示。

一起自学SLAM算法:4.2 激光雷达_第6张图片

 图4-41  其他激光雷达

主流的激光雷达,都是激光模组和旋转机构两部分,存在雷达体积大、旋转噪声大、寿命短等问题。固态激光雷达的扫描不需要机械旋转部件,而是用微机电系统、光学相控阵、脉冲成像等技术替代。固态激光雷达的优点是结构简单、体积小、扫描精度高、扫描速度快等,缺点是扫描角度有限、核心部件加工难道大、生产昂贵等。

单线激光雷达能够扫描一个截面上的障碍点信息,如果将单线激光雷达安装到云台上,单线激光雷达原来的扫描平面在云台旋转带动下就能扫描三维空间的障碍点信息,这就是单线多自由度旋转激光雷达。由于激光模组在多自由度下旋转扫描,同一帧中的扫描点存在时间不同步的问题。在激光测距模组本身的测距频率一定的条件下,多轴旋转使得扫描点的空间分布变得更加稀疏。

更多线激光雷达类似,可以用一字激光束扫描,然后加旋转机构,就可以扫描三维空间的障碍点信息,这就是面激光束雷达。多线激光雷达可以看成面束激光的离散形式,经障碍物反射回来的成像图案也是离散形式,离散出来的多个激光束更稳定更易于分辨。而面束激光扫描点更稠密,包含的障碍信息更多,不过稳定性会差一些。

4.2.2 激光雷达性能参数

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

4.2.3 激光雷达数据处理

选择合适的雷达安装到自己的机器人上之后,运行雷达厂家提供的ROS驱动程序,就可以通过ROS获取雷达的数据了。有时候雷达数据会受到一些干扰,需要经过一些简单的滤波。由于雷达是通过旋转进行扫描,所以扫描数据点会受机器人自身移动而产生偏差,这就是要讨论的时间同步问题。

1.上位机ROS驱动程序

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

2.扫描点处理

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

3.扫描点的时间同步

(先占个坑,有时间再来补充详细内容,大家可以直接看文后的参考文献)

源码仓库

  • Github下载:github.com/xiihoo/Books_Robot_SLAM_Navigation

  • Gitee下载(国内访问速度快):gitee.com/xiihoo-robot/Books_Robot_SLAM_Navigation

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

你可能感兴趣的:(一起自学SLAM算法,人工智能,机器人,自动驾驶,算法,c++)