基于激光雷达构建室外三维点云地图的研究

2022-10-31 07:54
山西电子技术 2022年5期
关键词:建图激光雷达字节

王 晋

(山西大众电子信息产业集团有限公司,山西 太原 030024)

0 前言

随着科技的进步和多学科的交叉融合,人工智能领域已经进入了飞速发展的时代,其中,包含环境识别与定位建图、自主导航与路径规划、行为控制与运动执行等多种功能的无人驾驶技术,成为人工智能领域的研究热点[1]。无人驾驶技术中,要想实现自主导航,首先要明确无人车自身以及周围障碍物的状态和位置,这就需要借助传感器的感知能力获得目标环境的三维空间模型,从而实现无人车的环境感知、定位建图的功能。常用的传感器主要有激光雷达、毫米波雷达、摄像头等。其中,激光雷达是基于激光测距原理,直接得到与周围目标的距离和角度,获得大量的点云数据,从而对周围空间环境进行描述,生成地图。激光雷达具有精度高、受光照强度等环境因素影响较小的优点[2],适合室外环境的建图。

跟室内环境构建三维点云地图相比,室外环境主要有以下几个技术难点:对传感器要求更高,室内定位多采用里程计融合惯性测量单元的方法,在短距离内可以忽略累计误差的影响,但室外空间大、距离远,需使用NDT算法,结合GPS或RTK实现高精度定位[3];室内环境距离短、多为静态,可用三角测距法,室外测距范围大、多为动态,要用飞行时间测量法,且反射信号是在不同时间接收的,加上激光雷达的运动,点云会出现变形[4];室内环境特征点更稳定、更易提取,室外环境存在不固定性、特征匹配难度变高[5-6];点云数据匹配算法不同,针对室外环境产生的大量点云数据,需要选用合适的算法来精确地匹配点云、提高匹配效率[7]。Autoware是世界上第一款用于自动驾驶领域的“一体化”开源框架,包含建图、定位、感知、规划和运动控制等自动驾驶的关键技术,依赖于ROS(机器人操作系统)可提供丰富的开发和使用资源。本文中,利用五菱迷你电动车,基于镭神16线激光雷达,借助Autoware软件,设计和实现了室外封闭小区域的三维点云地图的构建。

1 设计过程

本文中激光雷达选用的是深圳市镭神智能系统有限公司的镭神多线激光雷达C16。该雷达外壳内,安装有16对固定在轴承上的激光发射与接收装置,通过内部电机(转速为5、10或20 rpm)沿顺时针旋转,进行360°全景扫描,生成目标环境的三维点云地图。激光雷达外形图如图1所示。

1.1 激光雷达上装

激光雷达安装由4个安装孔定位来实现,数据线接口位置为规定的水平角度180°。采用铝板将激光雷达固定在车顶,如图2所示。设备供电电源推荐输入电压使用12 V DC。

图1 激光雷达外形图 图2 激光雷达上装图

1.2 激光雷达测距原理

激光雷达测距原理为飞行时间测量法:在每一次测距时,激光雷达内部的发射器发出激光脉冲,内部定时器开始计时(设为t1),当光波碰到物体部分能量被反射回来,激光接收器收到返回的激光信号时,停止内部定时器计时(设为t2)。

距离=光速×(t2-t1)/2

.

该系列激光雷达测距精度为±3 cm,最小测程0.5 m,最大测程150 m(反射率为70%)。

1.3 激光雷达标定

激光雷达与车体为刚性连接,两者之间的相对位置和姿态固定不变。为了建立激光雷达与车体之间的相对坐标关系,需要对激光雷达的安装进行标定,使激光雷达数据从激光雷达的坐标系转换至车体坐标系上。

激光雷达坐标系与车体坐标系的相对关系包括旋转角度与平移位置的差值,其中平移位置差值可通过激光测距仪等测量工具来测得。旋转角度差值分为3个方向的角度差,即俯仰角(pitch)、翻滚角(roll)和航向角(yaw)。

本文中使用的激光雷达自带内部定位孔,将激光雷达通过定位销上装到车顶后,即可实现激光雷达水平方向和垂直方向的标定。使用附带的倾角传感器进行水平x轴和y轴方向上的角度测量,可以检测和验证标定结果。激光雷达最终的标定位置为x:0.7;y:0;z:1.8;yaw、pitch、roll均为0。

1.4 激光雷达通信协议

激光雷达对外通信接口为以太网,与电脑之间使用UDP协议,协议包均为1248字节定长,与电脑的通信协议主要分三类:主数据流输出协议、设备信息输出协议、用户权限写入协议。

其中,主数据流输出协议是将激光雷达扫描出来的距离、角度、反射率等信息封装成包输出给电脑;设备信息输出协议用来监听此设备当前状态的各种配置信息;用户权限写入协议中,用户可以根据自己需求,重新修改设备的某些配置参数。

1.5 激光雷达数据传输

激光雷达的扫描测距数据可通过其提供的UART或USB接口来传输。数据信息包括激光回波的反射率值,实测距离值,角度值,时间戳。一个完整的主数据流输出协议的数据格式结构包括帧头、子帧、帧尾,每个数据包长1248字节,其中42字节为UPD封包所用,1200字节子帧数据包区间,4字节时间戳,2字节帧尾。

1.6 软件设计

本文中,基于镭神C16激光雷达对室外封闭小区域的环境构建三维点云地图时,需要借助Autoware软件。其默认的激光雷达为velodyne 16线激光雷达,故使用其他品牌的激光雷达时,需在对应的程序文件中更改话题名称和点云的坐标系。

2 构建三维点云地图

首先运行Autoware软件,然后启动激光雷达节点。

2.1 录制点云数据

在Autoware界面,点击ROSBAG按钮,在弹出的对话框中点击Refresh按钮刷新话题列表,勾选/points_raw。点击Start按钮,开始录制数据。驾驶汽车在目标区域内走完一圈后,点击Stop按钮,停止录制数据。

2.2 构建点云地图

构建三维点云地图时,需要完成world(世界坐标系)到map(地图坐标系)、map到base_link(车体坐标系)、base_link到velodyne(传感器坐标系)的坐标系转换。坐标系转换关系如图3所示。

图3 坐标系转换关系图

world到map、base_link到velodyne的坐标系转换用TF工具即可,它们都是固定的。前者是在Autoware界面,选择Map页面,点击TF右侧的Ref按钮,加载对应的launch文件,点击TF按钮。后者是选择Setup页面,点选Velodyne,填写激光雷达标定的x、y、z、yaw、pitch、roll数值,点击TF按钮,点击Vehicle Model按钮(其后为空表示加载默认模型)。以上坐标系转换如图4(a)、(b)所示。

图4 坐标系转换

map到base_link的坐标系转换,选择Computing页面,勾选ndt_mapping,如图5所示。

坐标变换设置完成后,选择Simulation页面,点击Ref按钮,加载录制好的bag文件,将Start Time设为0,点击Play按钮播放数据进行建图。在建图过程中,查看终端输出信息,显示Process/Input(已处理点云帧数/加载点云帧数)的数值前后相等时,表示数据处理完成。

图5 map到base_link的坐标系转换

当数据包播放结束后,建图完成,选择Computing页面,点击ndt_mapping右侧的app按钮,点击Ref按钮选择地图保存路径,点击PCD OUTPUT按钮,导出点云地图。

2.3 查看点云地图

选择Map页面,点击Point Cloud右侧的Ref按钮,加载保存的.pcd文件,点击Point Cloud按钮,进度条显示OK,加载完毕。打开Rviz查看点云地图。

2.4 NDT算法

构建点云地图的过程,是将激光雷达扫描到的一帧帧点云数据进行匹配和拼接的过程。

本文中,使用NDT算法(ndt_mapping)实现精确地匹配点云。NDT最初在2003年提出,只用作2D点云匹配;在2009年3D NDT被提出,通过一系列局部概率密度函数,将点云转化为一种平滑的曲面表达方式。Autoware软件使用3D NDT算法对点云数据进行一帧帧匹配,然后直接将配准后的点云叠加在一起,从而构成三维点云地图。该方式能够忽略单帧点云配准误差,依赖NDT匹配时对噪声不敏感的特性消除累积误差。

NDT算法使用概率分布的概念来对点云的形状进行描述,充分考虑了点云的几何特性,能够有效地提高匹配效率。然而,因为该算法是基于非线性优化的,故在遇到误差较大的初值时,极易落入局部极值中。此外,每个栅格只在其范围内对局部概率有效,选择的栅格尺寸过小会导致算法对于初值的敏感度增加,而选择栅格的尺寸过大会使稀疏点云无法配准。可以对其进行一定的约束,如回环检测、使用RTK或者组合导航来进行后端的优化,进一步提高匹配准确度。

3 结论

基于镭神16线激光雷达,借助Autoware软件,本文设计和实现了室外封闭区域的三维点云地图构建。点云地图的构建使用了基于栅格地图的NDT算法,其优点是有更快的运行速度,且不受环境中细微变化的影响,可在室外封闭区域实现较好的三维点云地图构建。但在回环路径很大、没有初始相对位姿的情况下,由于累积误差的原因,仅基于NDT算法制作的地图会与真实地图的差异较大,需要对其进行一定的约束,如回环检测、使用RTK或者组合导航来完成后端优化。

猜你喜欢
建图激光雷达字节
手持激光雷达应用解决方案
视觉同步定位与建图中特征点匹配算法优化
No.8 字节跳动将推出独立出口电商APP
法雷奥第二代SCALA?激光雷达
No.10 “字节跳动手机”要来了?
基于三轮全向机器人的室内建图与导航
基于激光雷达通信的地面特征识别技术
一种基于多传感融合的室内建图和定位算法
基于激光雷达的多旋翼无人机室内定位与避障研究
简谈MC7字节码