基于GPS和四线激光雷达的无人车导航系统设计
2020-08-01王天歌
于 洋,王天歌,王 淼
(沈阳理工大学 自动化与电气工程学院,沈阳 110159)
无人驾驶车辆,在目前的机器人领域中是非常热门的研究方向。自主导航技术是车辆实现无人驾驶的关键技术之一[1]。自主导航系统主要包括GPS导航、INS导航和激光雷达导航等。其中,GPS导航优点很多,但是存在数据丢失、可靠性低的缺点[2]。车辆行驶中,GPS信息可能会因障碍物或一些紧急情况而失去,这种情况下在车辆感知周围的环境信息就会需要用到激光雷达。激光雷达的远距离检测、识别能够获取目标距离以及识别目标等优点,能够弥补GPS的缺点[3]。
为了实现无人车的自主导航,本文设计了一种基于GPS和四线激光雷达的无人车自主导航系统。整个导航系统分为全局导航和局部导航[4],相互配合,实现无人车自主导航。
1 无人车导航技术的方案设计
在系统的整体方案上,将系统分为全局导航和局部导航两个部分。使用GPS信息结合百度地图实现全局导航,在无人车按照全局导航规划的线路行进时,利用四线激光雷达检测识别周围的路面环境信息,完成停车等待、避障,实现局部导航。底层无人车的主控制器为Atmega128单片机系统,车载电脑通过RS232接口与单片机相连进行数据通信,控制无人车的动作。系统的总体结构框图如图1所示。
图1 系统的总体结构框图
1.1 GPS传感器
所设计的系统GPS信息获取所采用的是SIMPAK系列接收机,SIMPAK系列接收机是北京诺耕科技发展有限公司公司自行研制开发的一款性能价格比非常高的GPS接收机。在封装上,SIMPAK系列接收机选用铝合金的外壳,具有体积小、重量轻、安装、携带方便等特点。该机有两个串口,一个以太网口可以与外部设备进行通讯,同时还能输出高精度的定位信息和时间信息。该产品可用于需要导航定位和时间同步的各个领域,如船舶航行、车辆定位、监测、科研及电力故障检测等领域该机有两个串口,一个以太网口可以与外部设备进行通讯,同时还能输出高精度的定位信息和时间信息,SIMPAK电源接口采用LEMO接头,RS232串口采用DB9接口,以太网采用RJ45接口,可以通过RS-232串口或者以太网与计算机通讯。
1.2 四线激光雷达
本次设计所选激光雷达为IBEO LUX四线激光雷达。此款激光雷达是IBEO公司生产的一款多功能车载智能传感器IBEO LUX不仅可以检测障碍物,而且可以对部分常见的路面目标进行识别。表1是该激光雷达的主要性能参数。
表1 IBEOLUX激光雷达的性能参数
与单线激光雷达相比,IBEO LUX具有探测精度高、探测距离远、数据量大、可识别路面目标的优点;与64线激光雷达相比,虽然数据量不占优势,但四线激光雷达对于智能车来说具有更高的性价比,更重要的是,数据越小,越可以满足智能车要求的实时性[5]。因此所设计的系统将它作为局部路径规划的传感器。
2 无人车的导航控制
无人车的导航控制分为全局导航和局部导航。无人车自主导航是针对检测到前方的障碍物时,可以根据检测到的信息,进行有效避障[6],使无人车按照的初始状态规划的路径行驶至目的地。本文设计的无人车的自主导航采用的是GPS/四线激光雷达导航方法,结合百度地图对无人车进行路径规划。首先根据初始起点位置和目标终点位置的经纬度坐标,来确定无人车行驶的方位,然后利用百度地图进行全局路径规划,控制无人车沿设定路线行驶。在行驶的过程中,当系统检测到前方有障碍物的时候,利用四线激光雷达对路面信息检测和识别,进行等待或者避障,完成无人车局部路径规划,恢复到之前的行驶路线。
2.1 基于GPS和百度地图的全局导航
通过串口通信获取GPS的数据信息,将经纬度显示在百度地图中,同样给出终点的经纬度坐标,然后利用百度地图API的路径规划方法,规划出全局路径。
2.1.1 坐标系转换
SIMPAK GPS信号接收机给出的坐标是基于测地坐标的经纬度值(B,L),而实际使用的是平面坐标系(x,y),所以要在百度地图上显示GPS信号,必须将高斯投影转换成平面坐标[7],(B,L)→(x,y),从而实现导航功能。
根据高斯投影方法,得到其转化结果。计算公式如下。
(1)
y=Nm+(1-t2+η2)Nm3+(5-18t2+t4+14η2-58η2t2)Nm5
(2)
式中:X0为赤道至纬度B的子午线的弧长,求法为公式(4);N为卯酉圈半径。
转化公式中的具体参数求法如下。
(3)
式(3)中的四个参数是为了让式(1)、(2)转化公式更简洁而人为设置的参数,代替复杂的表达式,其中e为自然底数,约等于2.718。
X0=[β0B+(β2cosB+β4cos3B+β6cos5B+β8cos7B)sinB]
(4)
式中参数β分别为
(5)
至此,通过高斯变换得到(x,y)坐标。
2.1.2 将经纬度坐标显示在地图上
本系统实现地图显示所采用的开发框架是Qt,使用runJavaScript()函数实现界面和百度地图的交互,利用Qt提供的控件来设计界面显示数据,将经纬度呈现在百度地图demo上。如图2所示,其中左侧地图中的标记为无人车当前位置;右侧文本框中分别显示无人车当前所在位置的经纬度坐标。
图2 经纬度信息在百度地图上的显示
2.1.3 基于百度地图的路径规划
对百度地图提供的基本地图demo进行修改,设置鼠标监听事件,在地图上单击选择起点和终点并将获取到的经纬度坐标赋到输入框中,之后在按钮点击事件触发后,从输入框中取出起始点的经纬度坐标,使用new Bmap.point()方法创建起始点之后,用Bmap.DrivingRoute(map)创建出行驶路线,再使用driving.search()方法进行路线搜索,即可实现全局路径规划。
2.2 无人车的局部路径导航
本文所研究的无人车局导航,是对无人车行进过程中遇到会干扰全局路径规划的路面目标时的路径再规划问题。局部路径规划的实现是利用IBEO LUX四线激光雷达传感器对路面目标进行检测和识别,根据所得信息进行避障,完成后再恢复到避障之前的路线,继续向前行行进,最终到达目的地,完成无人车自主导航。具体规划方案如下:
2.2.1 障碍物的检测
系统利用IBEO四线激光雷达来检测识别障碍物。为了让四线激光雷达更能够充分感知车辆周围环境信息,在检测道路信息方面取得更好的效果,同时兼顾车辆安全等方面的考虑,本文将四线激光雷达的底部垂直于地面,安装在正前方距离地面高约0.8m的位置,以便能够更准确的检测出路面目标。将激光雷达和工控机用网线分别插入各自的网口,通过以太网的TCP/IP通信协议实现无人车和激光雷达通信。从而可以利用IBEO公司提供的ILV软件对障碍物进行进行检测识别,当连接到单个传感器或融合系统时,来自IBEO传感器或IBEO融合系统的所有输入数据都可以存储到磁盘上,进行离线分析。
IBEO LUX不仅可以检测障碍物,而且还可以对一些常见的路面信息如汽车、自行车、人等进行识别。图3所示为激光雷达对小汽车的识别。
图3 激光雷达对小汽车的识别
图3中的每一个扫描点是一个单一的原始激光飞行时间测量数据,具有径向距离、水平角等特性;背景是按照一定比例的等高线,方便判断与车体的距离;图上标注的1、2个两条线组成的角代表激光雷达约110°的视场角,分别在左右两个方向对小汽车进行检测识别;将每个疑似的小汽车用矩形框围起来,便于人的观察,每一个小汽车矩形框突出的直线代表着它们相对于无人车的运动方向,同时随机分配给每一个小汽车一个编号,在矩形框旁,便于追踪。
2.2.2 基于四线激光雷达的避障
本文所用的IBEO LUX四线激光雷达支持行人保护、自动巡航、航线偏离警告、自动紧急制动、预碰撞处理、交通拥堵辅助以及低速防撞这七个ADAS应用,其本身可以处理部分紧急情况,对于移动的物体会等待其影响不到无人车的规定线路行驶之后才会继续行驶,本次实验的环境是在校园内,所以还需补充设计的是对全局规划路径上无法识别的障碍物的合理避障。主要的设计思路如下。
障碍物在车体左侧,也就是激光雷达检测界面中心线的左侧时,右转,直到四线激光雷达检测到障碍物处于安全位置时停止右转。重复执行前进指令直到障碍物完全避开,之后执行左转命令,调整车的姿态,然后执行前进指令,再根据此刻GPS的信息,按照规划的全局路径行驶,障碍物在右侧同理。
无人车的局部路径规划以及程序流程图如图4所示。
图4 无人车的局部路径规划图
3 实验测试与结果分析
本文是在沈阳理工大学校园中的一段道路进行试验,根据GPS经纬度信息规划的路径向目标位置行驶。在行驶的过程中,利用四线激光雷达对障碍物进行检测识别,根据获取的信息,做出判断使无人车能够避开障碍物,准确的停在目的地,实现无人车自主导航。全局路径规划如图5所示;激光雷达雷达检测到的前方障碍物识别情况如图6所示;无人车自主导航程序流程图如图7所示。
图5 全局路径规划在百度地图上的显示
图6 激光雷达的障碍物检测
图7 无人车自主导航程序流程图
图5中左侧标记为起点兵器博物馆,右侧标记为终点艺帆馆,二者之间的连线为路径。在界面中可通过在地图中单击位置获取起点终点经纬度,将其显示在左上方的文本框,单击“go”显示规划的路径。
图6中两个斜线为激光雷达的视场角,约110°;其交点处为雷达所在距离为“0”的原点位置。方格为等距线,可随着查看比例的大小而改变。图6表示的是激光雷达检测到的障碍物的点云数据在离原点约1.5m(三个方格)处。
本文选用的实验平台为“探索家1号”多传感器智能无人平台,车载电脑配置WIN7操作系统,使用Microsoft Visual Studio 2017进行软件开发,通过实际环境测试,无人车的自主导航避障实验效果如图8所示。
如图8所示,图8a为无人车在按预定路线正常行驶的过程中检测到障碍物,开始执行避障程序。图8b为无人车向右转向行驶,躲避障碍物。图8c为无人车向右躲避障碍物成功后向左回转,调整行驶方向。图8d为无人车调整行驶方向后,回到预定路线行驶。
图8 无人车自主导航效果图
通过实际环境实验,无人车成功实现自主避障导航,验证了导航系统和避障方法的有效性。
4 结束语
本文设计的无人车导航系统所用的传感器是GPS/四线激光雷达。其中四线激光雷达的使用是无人车导航系统的关键因素。利用四线激光雷达障碍物识别功能可以使得导航系统更加智能化。全局导航利用GPS信息,辅以百度地图规划全局导航路线,当车辆沿路线行走时,通过激光雷达不间断扫描周围物体,对障碍物进行检测和识别,通过获得的数据实现基本的行驶决策,实现局部导航。通过实验验证,本文设计的无人车自主导航系统实现了预期效果,可以使无人车安全地在指定路线上行走,完成无人车的自主导航。