本文为美团点评无人配送部技术团队主笔,为您带来的是自动驾驶中的激光雷达目标检测。(本文来源:美团无人配送)
激光雷达原理
现在自动驾驶中常用的激光雷达为机械式激光雷达,其由若干组可以旋转的激光发射器和接收器组成。每个发射器发射的一条激光束俗称“线“,主要有单线、4线、16线、32线、64线和128线雷达。
常见机械式激光雷达中激光束是波长在900nm左右的近红外光(NIR),可以根据激光直接获得周围一圈的准确的三维空间信息。
这种雷达的成像原理比较简单:发射器和接收器连接在一个可以旋转的机械结构上,某时刻发射器将激光发射出去,之后接收器接收返回的激光并计算激光与物体碰撞点到雷达原点的距离。
由于每次发射/接收的角度是预先设定的,因此根据距离、水平角度和垂直角度就能求出碰撞点相对于激光雷达中心的坐标。每条线每次发射激光得到的数据由一个四元组(x,y,z,i)表示,其中(x,y,z)是三维坐标,i表示反射强度。
![964833e2ffa46116d6e6c4226d97187a.png](https://i-blog.csdnimg.cn/blog_migrate/744b0333aeb6728265c20102cf1ffeca.jpeg)
图1:一个32线激光雷达的成像原理示意图
以某款32线激光雷达为例,32根线从上到下排列覆盖15.0°到-24.9°。
工作状态时这32根线在水平平面旋转可以采集一周360°的数据。雷达的旋转速度和角分辨率是可以调节的,常用速度为10hz(100ms转一圈)对应每0.2°采集一次数据,即角分辨率为360/0.2=1800。
由于光速非常快所以在1800中任何一个位置进行一次发射和接收动作可以看作是瞬时完成的。受到硬件能力的限制,一般转速越快则发射和接收激光的次数越少,即角分辨率越小。常用雷达采集到的数据点距离雷达中心一般不会超过150米。
通常采集到的360°的数据被称为一帧,上面的例子中一帧数据在理论上最多包含32*(360/0.2)=57600个点。
在实际情况中如果雷达被放置在车的上方大约距地面1.9米的位置,则在比较空旷的场景中大约获得40000个点,一部分激光点因为被发射向天空或被吸收等并没有返回到接收器,也就无法得到对应的点。下图是典型的一帧数据的可视化图。(上海车展所拍)
![bad1851c09de2668d43dca23d71ad4ed.png](https://i-blog.csdnimg.cn/blog_migrate/a597790651ee6edb8090428b99a240fc.jpeg)
激光雷达具有不受光照影响和直接获得准确三维信息的特点,因此常被用于弥补摄像头传感器的不足。激光雷达采集到的三维数据通常被称为点云,激光点云数据有很多独特的地方:
![657e81b6d415754208a296567940007f.png](https://i-blog.csdnimg.cn/blog_migrate/72c86e630053eea09fa816f795aec30a.png)
距离中心点越远的地方越稀疏;机械激光雷达的帧率比较低,一般可选5hz、10hz和20hz,但是因为高帧率对应低角分辨率,所以在权衡了采样频率和角分辨率之后常用10hz;
点与点之间根据成像原理有内在联系,比如平坦地面上的一圈点是由同一个发射器旋转一周生成的;
激光雷达生成的数据中只保证点云与激光原点之间没有障碍物以及每个点云的位置有障碍物,除此之外的区域不确定是否存在障碍物;
由于自然中激光比较少见所以激光雷达生成的数据一般不会出现噪声点,但是其他激光雷达可能会对其造成影响,另外落叶、雨雪、沙尘、雾霾也会产生噪声点;
与激光雷达有相对运动的物体的点云会出现偏移,例如采集一圈激光点云的耗时为100ms,在这一段时间如果物体相对激光有运动,则采集到的物体上的点会被压缩或拉伸。
![dea4e97727039b104c544a88d5a25138.png](https://i-blog.csdnimg.cn/blog_migrate/d28c648febb593d42bd6ec3cd64907ec.png)
激光雷达物体检测算法