自动(智能)驾驶 | 全网第一本激光雷达手册阅读指南(上)

0. 前言与写作意图

将激光雷达“跑起来”很容易,但是如何合理的应用激光雷达,你就需要去阅读手册,但是阅读手册对于许多初学者来说是十分痛苦的,特别时诸如velodyne等国外厂商给出的一百多页全英文的手册,打开就怕了,想到网上去找解析很难能找到,特别是velodyne的几乎搜不到相关信息,从而直接弃了实在可惜。本文的写作目的是解析某些激光雷达手册,从中发掘工程中需要注意或者应用到的关键点。

本文建立于我手头上的velodyneVLS-128(Alpha Prime)、速腾(Robosense)Ruby(128)以及禾赛(Hesai)Pandar 128的几款雷达来解说,会以“难啃”全英文的velodyne手册为主,辅以其他国产代表激光雷达的手册。本文内容较长,计划通过上下两期更新完毕:上期主要结合velodyne 128 来介绍;下期将结合多种激光雷达对比和类比来继续说明

目录

0. 前言与写作意图

1. 准备工作与推荐的学习路线

2.手册的阅读

2.1 产品概述

 2.2回波模式

 2.3相位锁定

 2.4激光雷达的输入

3.设备的运行

3.1packet

3.2 RPM(Revolutions Per Minute)

本期(上)总结: 


1. 准备工作与推荐的学习路线

 我们先看一段来自威力登手册的内容(如上图)。如果你刚刚起步,打开手册看不懂很正常,需要有一些工程经验以及对于LiDar有基本的了解,其user甚至特制那些传感器工程师等,是不是直接劝退啦?不要怕,反过来想是不是我们掌握了这写就能距离传感器工程师更近一步呢!是不是非常令人激动!!!

我推荐的学习路径为:

1. 阅读激光雷达手册需要你学习过激光雷达的分类和基本原理(例如你的激光雷达是机械式的还是MEMS半固态的等等,不同的激光雷达原理不同,虽然数据传输的原理大同小异但是会阻碍我们深入的理解),这写资源你都可以通过搜索引擎和相关书籍甚至行业报告中得到,在这里推荐一篇激光雷达分类及原理的概要,其他的自行查找啦~

主流激光雷达分类及原理_泠山的博客-CSDN博客_雷达种类

2.目前主流的这些雷达都是通过以太网传输,所以你需要学习UDP的内容以及常用抓包工具wireshark的使用(这里大多数软件手册里或者网上搜索很容易能取到)如果手头有激光雷达设备连接上研究一下,通过各个厂商所给的可视化软件的录制功能会给你记录保存一个pcap文件,详细了解一下这个文件是干啥的有什么优势么,这个包如何获得点云数据的呢,为什么不直接记录点云数据呢;

------------------------------完成这两步其实已经可以开始深入阅读手册了---------------------

3.(推荐)有余力的同学可以继续学习ROS或ROS2,会更深层次用到同步(GNSS)的同学还需要再看看GNSS授时的原理的内容。 当你发现英文手册读不懂的时候可以去找类似产品(同种原理)的中文手册,通产会更通俗一点。

关于ros部分的学习和入门强烈推荐 :A gentle Introduction to ROS;

关于GNSS时间同步可以阅读:自动(智能)驾驶 | 时间同步之给工控机授时(PPS+GPRMC)_MendozaG的博客-CSDN博客

2.手册的阅读

接下来,我们正式进入手册阅读阶段。

 正如前面所说主要说威力登的128线手册(因为他详细且全是英文)。

威力登128几年前是难以求得的明星产品,一颗售价数十万,根据datasheet的信息(并未出现在其Manual中):

 是一个905nm左右(903nm)的激光雷达,出点量为每秒240万点,支持gPTP(IEEE 802.3ab)。

2.1 产品概述

 首先我们得到一个接线图:

 从图中看起来没什么两样,但是注意激光雷达线数(ring)的线的描绘是均匀的,实际上其激光分布并非均匀,而是同禾赛等激光雷达都是中间密而两边疏,从而使得ROI区域可以有更多的点数。手册中写每个激光头每秒都发出超过18500次光束(18500*128=2368000与手册上写的230万匹配)。工作原理是ToF。

手册中还写到,32C和128的Interface Box是不能互换的!!!这点也很重要,使用多款激光雷达时不要偷懒而直接连接,安全第一!!!

上图为Interface Box的内部图,并告诉你上电后两个LED灯会亮起,sensor需要30秒左右启动然后开始扫描。 

velodyne的配置界面为其设备的IP,默认为192.168.1.201(其他有的为特定软件如速腾的little Robo或者在可视化软件中);

  打开界面有很多项,可能并不知道什么含义,这些在后面都会介绍到,为了匹配IP更改Network栏目中的即可。Motor RPM指的就是点击旋转的频率(Revolutions Per Minute),图上的600指的是每秒10圈,也就是我们通常意义上的工作频率10Hz,一般支持为300~1200RPM(也就是5Hz到20Hz,但是并不是任意的,一般以60为单位变动)。FOV即视场角,正常扫一圈360度都记录,如果你只要某个角度范围的如你用补盲激光雷达某些角度并不需要产生数据就可以调节该值。phase lock即相位锁,每次1PPS来的时候相位都为某值(想想有什么用)。

 在安装方面,推荐安装在水平0度,其他安装方式可能会影响轴承的寿命,设备不需要加装减震(若已安装牢固),设计能承受500的重力加速度以及3 GRMS 5 Hz 到2,000 Hz的震动。设备可以读取其当前的温度。推荐使用12V 电压,但是9~28V纯净的DC也支持。该激光雷达正常功耗在22W左右,不支持POE

 2.2回波模式

对于回波模式(上面图中的 Return Type):本激光雷达支持Strongest(默认),Last和Dual三种。激光返回是对反射率的检测——只要它的距离是非零的。每束激光最多支持发射两个返回。

 单回波模式:有最强回拨模式和最后回波模式,如上图,直接打到墙壁上返回,这时接收到的激光既是最强的也是最后的;

多回波模式

 由于光束的弥散,任何一次激光发射都可能有多次激光返回。当一个激光脉冲慢慢地离开传感器时,它就会逐渐变大。一个脉冲可以大到足以击中多个物体,产生多个反射。通常,反射开始的距离越远,它在探测器处就越弱。然而,经过明亮的或后反射的表面可能反而得到更强的结果。该激光雷达经过分析多路的返回,要么记录最强的或者最后的回波或者两者都记录(取决于模式的设置,若设置为Strongest则只返回在最强反射值,若设置为Last则只测试最后一次(时间上的最后)返回),通过这个特性可以计算空中到地面的距离(如drone上的使用)。

双回波模式

1.返回最强和最后回波

 如上图,一远一近两个目标(注意,两者至少需要距离为1.5米传感器才能记录为两个目标(返回值))一束激光大部分打在了近处的目标而部分也打在了远处的目标。根据规则,若果是最强回波肯定返回的是打在近处的,如果是最后回波模式肯定返回的是远端的。那么如果大多数击中的是远端的呢?如下图:

 根据图上,远端的既是最后的也是最强的;但是此时Last是一定的,但不一定是Strongest,仍然有可能即使远端占比大但仍然强度没有近处的高,例如到不同反射率材质上(小面积比大面积的的反射率更强):

 双返回功能通常用于需要测量树木高度的林业应用中。如下图,当激光脉冲最初击其树干,穿透它,并最终撞击地面,产生多次返回时的样本响应。从下图可以看出,last return指的是到地面的时间,strongset return产生于穿越途中开始时,所以利用两个回波可以测量树木高度(也就是下图中两个海拔的差值)。当然,记录两个return会导致数据量翻倍。

 2.3相位锁定

你一定想过如果多个激光雷达同时工作怎么办,别的激光雷达如果接收到了不是它发出的激光怎么办,从而使用相位锁定功能,使得用户可以控制激光发射的重叠位置

注意此功能依赖于PPS,锁相功能可以根据PPS信号和相对传感器方向来同步多个传感器的相对旋转位置。为了正确操作,PPS信号必须存在并被锁定。锁相的工作原理是根据PPS信号的上升沿来控制激光的发出。为了使锁相正常工作,传感器的RPM设置必须设置为300 RPM和1200 RPM之间的60 RPM的倍数(包括)。然而,对于这个版本,由于硬件问题,RPM固定在600(也就是10Hz不可调,若使用PPS)

(手册里没有的)同时利用这个特性,我们可以控制激光雷达的相位,从而推算同步。

 2.4激光雷达的输入

 上图是Interface Box的信号对应图:pin1、4都是接入点云的,对应的2、3位GND,pin7接入PPS,Pin6接入Data In(例如GPRMC),pin5接入gps的GND。

NMEA仅支持GPRMC或GPGGA,其他格式不支持!

介入脉冲的要求:

 PPS同步脉冲和GPRMC或GPGGA句子应交替接收,而不重叠或重合。PPS同步脉冲宽度不是关键的(典型的长度在10μs到200 ms之间)。接收到NMEA消息后的300 ms最小间隙给传感器足够的时间从消息中提取和处理时间数据,这样它就可以设置下一个PPS的前沿到达的时间。如果没有PPS或者没有及时到达,那么从NMEA消息中提取的时间信息最终会失效。

 NMEA消息的串行连接是TTL串行,或者更常见地称为TTL RS-232并不是真正的RS-232。

也可以从电脑而不是GPS获得NMEA信息,可以通过usb-to-serial 适配器

 该设备还支持通过以太网获得NMEA messages:

3.设备的运行

包含激光的激发(发出)、过程的计算:数据的发包率、位置信息的发包率、整体的发包率等等以及RPM。

3.1packet

数据的发包率:在单回波模式中,一个数据包(packet)最多可容纳三个发射周期(3*55.275微秒=0.1658毫秒),很好理解,在双回波模式中只能容纳一个发射周期(55.275微秒),其中55.275是平均量。

从而可以计算每秒的发包量以及每种模式每秒的数据量:

 对于位置信息,来源于接入的GPS,位置数据包到达的速率或多或少与数据包(上面说到的)速率无关((如果位置包和数据包都正好同时准备就绪由传感器发送,则在数据包发送时位置包会延迟)。

位置包通常以每秒约94个位置包的速率发包,而每个包大小为554bytes,从而每秒数据量为52076 bytes每秒。

从而整体上:每秒6030.5+94=6124.5 packets(平均值);在单回波模式产生的数据量为:7578140 bytes(字节)每秒(即7.2271Mb每秒);双回波模式则产生22630093.28字节每秒(21.5812Mb每秒)的数据。

对于单回波模式,每束激光最终代表一个点的数据,测量距离以及反射强度;一个packet中有3个sequence,而一个发射的sequence里对应128个点,从而一个packet中有128*3=384个点;那么每秒能产生多少点呢(这个之前计算过)?这里用不同的方式:384*6030.5(来源于上面图片黄色部分)=2315712 个点每秒(理论最大值230万)

对于双回波模式,每次返回的点可能为0,1,2(这取决于激光脉冲反射出的东西,0代表没有比如射向天空,以及一个或两个回波),每个packet只能装1组,所以一个packet只有256points,从而根据256*18091.36=4631388points每秒(463万)

3.2 RPM(Revolutions Per Minute)

RPM通常设置为300~1200(对应工作频率5Hz~20Hz),每次增量需设置为60的倍数(60对应1圈)以保证精度。但是该设备固定在600RPM(10Hz);虽然传感器的发射时间平均在每个发射序列始终接近55.275 us,但仍然主要是旋转速度决定了传感器的角度分辨率。它旋转得越快,测量值的全旋转速度就越粗。它旋转得越慢,分辨率就越高

------------------------------------------------------------------------------------------

本期(上)总结: 

上期比较偏于原理性,主要给出了学习方法和一些基本原理。对于具体的packet内容等将在下期继续,下期会引入其他激光雷达来类比。

----------------------------------------------------------------------------

下期已更新完毕,戳:

自动(智能)驾驶 | 全网第一本激光雷达手册阅读指南(下)_MendozaG的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/m0_46611008/article/details/126346496