APP下载

基于激光雷达的无人车动态避障方法

2023-07-03马庆禄

计算机仿真 2023年5期
关键词:栅格激光雷达障碍物

马庆禄,张 杰

(重庆交通大学交通运输学院,重庆400074)

1 引言

无人车的驾驶环境并非单一而简单的,研究更为成熟可靠的无人车避障路径规划方法有利于确保无人驾驶的安全性以及进一步的无人驾驶技术的发展。研究采用更高效高精准度的避障算法成了当前无人车研究内容的热点[1,2],障碍物检测分为主动和被动检测,其中被动检测法通过视觉传感器对无人车身处的环境进行检测,主要通过获取周围环境的颜色形状边缘特征,采用边缘算法对特征颜色或形状进一步进行数据处理,最终得到所需要的环境特征。然而这样的方法有一定的缺陷,例如缺少获得被测环境中精确的图像深度信息的能力,以及在检测数据量较大情况下不能保障算法的实时性等。主动检测是指通过雷达等拥有测量环境距离或者高程能力的传感器对自动驾驶车辆周围的目标进行检测的方法[3]。因激光雷达短波长的特性使其具备了高检测精度以及优秀的抗环境干扰能力的性质[4],刘大学等人通过基于激光雷达的分层聚类算法完成了越野环境中障碍物的识别并应用到了越野环境下无人驾驶车辆的路径规划导航上[5],蔡自兴等人以激光雷达为传感器利用基于圆弧轨迹的局部路径方法来规划无人车的避障动作实现了动态环境下避障行为,具有良好的实时反应能力[6],国外的Orr Itai等人研究了激光雷达分辨率对车辆检测性能的影响并提出了可以提高基于深度神经网络的激光雷达检测性能和效率的子采样方法[7]。国内外研究不论是传统的激光雷达点云处理方法或是基于深度神经网络的深度学习的方法,都通过各类的车载传感器获取无人车周围障碍物的信息,之后以内部避障算法对无人车进行实时的路径进行避障规划[8],在这个过程中都因为传感器或者算法的问题而出现规划轨迹偏差或者路径规划实时性差的问题。对此,研究拟采用16线激光雷达为车载传感器、改进的DP算法为避障算法实时生成有效而圆滑的避障路径。

综上,拟通过利用百度生产的自动驾驶开发套件Apollo D-kit进行实车实验调试的方法,安装ubuntu环境下的ros系统[9],部署Apollo源码并且调用套件内的激光雷达作为主动检测传感器用于识别障碍物,采用改进的DP局部路径规划算法完成对于动态障碍物的避障,在保证避障路径规划实时性的条件下生成更为圆滑可靠的避障轨迹。

2 传感器选取

激光雷达能够获取精确的数字高程并且生成精准的三维位置信息,进一步确定被测物体的位置和大小几何形状。激光雷达所发出的高频激光能够每秒扫描并且获取到100数量级的大量被测物体位置信息即激光点云,之后通过算法利用采集到的位置信息进行三维建模,同时出了获得位置信息外,激光雷达还可以获取障碍物的大致轮廓信息[10-12]。

Velodyne所生产的“冰球”16线双回归激光雷达在拥有一流的精度和校准强度以及不俗的功率效率和感温范围,同时内置发射排除和干扰抑制功能,减少噪声。velodyne“冰球”16线激光雷达技术参数见表1。

表1 velodyne“冰球”技术参数

3 控制算法

3.1 建立激光雷达坐标系

激光雷达首先以三维直角坐标进行采样(坐标系见图1),然而为了方便后续对获得数据进行分析以及处理,激光雷达的初始数据转化通过极坐标进行采集储存以及传输[13-16]。

图1 激光雷达笛卡尔坐标系

实际应用中,因安装激光雷达时无可避免地在三维空间中会存在偏差,所以需要通过引入旋转矩阵R来进行修正。矩阵R的值一般通过标定的方式计算出,采用建立过渡空间坐标系的方法求解旋转矩阵

(XVYVZV,1)T=Co(XYZ,1)T

(1)

首先取同一平面的n个点要求n>4,使用高度各不相同的物体作为标定物。已知其相对于车体坐标系的坐标和相对于激光雷达坐标系的坐标,可以推导出转换关系,当n>4时,公式为超定方程,求解获得坐标系转换矩阵C。

3.2 Frenet坐标系与车体坐标系转换

Frenet坐标系(见图2)方便进行连续曲面上的点位定位,这一特性使得它被广泛应用于车道上的无人车定位。它基于既定的基准线(记为TO),TO一般情况下定义为车道的中心线[17-19]。通过点位投影距离初始点长度以及于基准线的距离为横纵向位移进行定位。

图2 Frenet-车体坐标系转换示意图

如果待定位点位在全局坐标系当中的坐标为(x,y),以坐标(x,y)对基准线TO作投影点F,则点F与待定位点位(x,y)的距离即为横向位移d,以基准线的起点到投影点F的曲线距离为纵向位移s,则有映射关系

(x,y)TO↔(s,d)

(2)

无人车轨迹规划需要所得的Frenet坐标系中的轨迹规划数据转化输出到车体坐标系内(见图2)。

其中,无人车当前的坐标为

(3)

(4)

3.3 避障算法

对于无人车的避障来说,可以看作是一次换道行为[20]。采用一种搜索寻路算法——DP算法(动态规划算法),原理是将地图格栅化,核心是加入估价函数,加快搜索速度并提高搜索的精度以此提高轨迹规划算法的实时性和稳定性[21]。其估价函数如下

ctotal(f(s))=csmooth(f)+cobs(f)+cguidance(f)

其中

对上述输出的原路径二次优化,不断依次判断优化点到后续节点间障碍物的存在情况,同时将优化节点更新为原节点的下一节点,重复操作,二次优化A*算法[22,23]具体步骤如下。

步骤1:输入原始路径P,s为路径节点总数,初始化i=1,从起始点开始作为优化节点P0,并添加到优化路径中

P=[p1,p2,pi,…,ps]

步骤2:判断s是否小于3,当s<3时,路径为已为最优路径,输出P结束,否则进入步骤3;

步骤3:判断优化节点P0与路径节点Pi+1间是否存在障碍栅格,若不存在障碍栅格则i=i+1;若存在障碍栅格,则将路径节点Pi+1添加到Pnew中,并将Pi+1作为新的优化节点

Pnew=[Pnew;Pi+1],P0=Pi+1,i=i+1

在路径的二次优化过程中,未避免两点之间所连接的每个格栅是否是障碍物,所以要计算得到各连线所经过栅格的坐标值,假设栅格矩阵M中的两个栅格之间的坐标位置差异为Δx、Δy,若Δx≥Δy则被探测栅格坐标位置计算公式为

(5)

当栅格矩阵M之中两栅格之间的坐标位置差异Δx≤Δy时探测栅格坐标位置计算公式为

(6)

步骤4:判断i是否小于s,当i

4 实验

4.1 实验平台

实验采用百度生产的全球首款自动驾驶开发套件Apollo D-kit,Apollo D-kit总体架构包含车体上装传感器以及车辆底盘两部分,其中车架上装各类传感器;车辆底盘包括车辆控制单元以及遥感单元,其总体架构见图3。

图3 Apollo D-kit总体结构实景图

实验平台选取Apollo D-kit,软件方面,实验系统选取的是Ubuntu16.04版本,安装docker容器以加载拉取apollo源码,通过终端cyber_monitor以及rriver驱动调用所需要的传感器;硬件方面搭载velodyne所生产的“冰球”16线双回归激光雷达,拥有100m感知范围,±15°垂直视角,激光雷达安装在车顶部中心位置,定位避障过程中Apollo D-kit通过双GNSS 天线接收GPS定位信息,差分后的定位可达厘米级;同时惯性导航单元监测并输出姿态信息,并通过组合导航算法输出无人车实时位置和方位数据。同时激光雷达扫描障碍物轮廓后进行简单的聚类,实验目前的聚类分为车、行人和自行车三类,完成底层的定位及感知模块后最后通过规划模块中的DP算法实现最终的避障功能。

4.2 障碍物的避障结果及分析

4.2.1 虚拟车道线绘制

平常自动驾驶所最依赖的是高精度地图,高精度地图提供了道路定义、交叉路口、交通信号、车道规则等大量的驾驶辅助信息,可以为无人驾驶车提供多方面的帮助。Apollo D-kit避障功能采用的是简单高效的虚拟车道线设置,通过第一次遥控车辆走完路线,上传激光雷达感知数据以及车辆底盘数据至百度云盘,在Apollo Fuel页面上提交虚拟车道绘制请求后填写相关设置后,等待百度返回虚拟车道线绘制数据包,将获得的虚拟车道数据包载入ubuntu环境下docker容器中Apollo模块包中的localmap data目录下,即可调取绘制好的虚拟车道。实车调试过程中的虚拟车道绘制页面见图4。

图4 虚拟车道界面与起讫点标定

上图(a)中黄色线轮廓为绘制得的虚拟车道(车道宽度为3.5米),中心绿线为车道中线;(b)图右侧标定的两个红点为标记的POI(point of interest)规定车辆的起讫点,白色小车为当前车辆在虚拟车道中的定位。

4.2.2 障碍物识别

将Apollo D-kit无人车遥控到绘制好虚拟车道线的指定位置,在其车道内行进前端放置一障碍物遮挡部分车道。通过终端代码调用ApolloD-kit的GPS-IMU组合导航单元,打开无人车GPS模块和Lidar模块,在apollo界面生成障碍物感知别图,实验实景与障碍物感知对照图见图5。

图5 静态障碍物避障实验实景对照图

图5(a)(c)为实验无人车与障碍物(足球框)的位置侧视图与正视图,图5(b)(d)为激光雷达障碍物感知后的成像图,包含3.2.1节的虚拟车道等内容以及障碍物轮廓扫描结果。

4.2.3 避障路径规划

规划模块是整合了决策和规划两个功能,该模块是自动驾驶避障功能所需的最为核心的模块之一,是在GPS-IMU及其定位算法所组成的定位模块以及激光雷达及其切割聚类算法所构成感知模块上层的模块。利用Apollo D-kit为实验载体采用2.3节所介绍的搜寻式探索算法DP算法为核心避障规划算法进行实验。

实验搭建Apollo Dreamview可视化交互仿真界面,通过界面可以即时监控到无人车的当前位置以及避障路径,在4.2.2节中检测到已有障碍物的基础上,进一步终端通过代码调用GPS-IMU模块后,关闭车辆遥控器,开始自动驾驶,其中红色线为预定车辆运行轨迹,位于车道中心,蓝色为自动驾驶规划路径。Apollo D-kit开始自主驾驶,其无障碍物情况下的自动驾驶轨迹规划图见图6。

图6 无障碍物轨迹规划图

为了使实验避障轨迹更加直观,实验时将障碍物(足球框)逐步推移到遮挡半个虚拟车道的位置进行观察,实验结果的避障过程轨迹对比图见图7。

图7 避障过程轨迹对比图及车辆参数图

由图7(a)可看出既定的轨迹路线位于红色车道中线左侧靠左侧车道行驶,实验人员开始推移障碍物并且感知可视化界面显示感知到的障碍物的移动速度及方向,而(b)图中在障碍物逐步遮挡左车道的情况下,无人车的规划路径避开障碍物产生偏离,预定路径规划由车道左侧行驶至车道右侧。

同时从图8速度时间航向角三维图可看出,无人车自动驾驶从第6s开始后行驶过程稳定,由于既定路线为一大圆形轨迹,自动驾驶过程中偏航角基本稳定15°左右(偏航角左偏为正值右偏为负值),15s开始避障时,车速由稳定车速2.7m/s降低至1.2m/s同时偏航角转回0°行驶2s后右偏至6°,避障完成后回复至避障前水平。由此看出,实验过程中的动态路径规划反应迅速,避障过程途中转向角及速度变化平滑,避障轨迹稳定有效。

图8 避障过程车辆偏航-速度图

5 结语

本研究采用基于激光雷达的环境主动检测方式以及局部路径规划的方式,针对已知已建立虚拟车道的环境下,完成了无人车对动态障碍物的避障。通过以A*算法为基础并进行二次优化的DP动态算法,实时计算调整机器人的运动方向和速度,进而输出平滑有效的动态障碍物避障轨迹,提升了机器人避障的效率。最后文章算法的实时性以及稳定性也由实验结果得到验证。

猜你喜欢

栅格激光雷达障碍物
手持激光雷达应用解决方案
基于邻域栅格筛选的点云边缘点提取方法*
法雷奥第二代SCALA?激光雷达
高低翻越
SelTrac®CBTC系统中非通信障碍物的设计和处理
基于激光雷达通信的地面特征识别技术
基于激光雷达的多旋翼无人机室内定位与避障研究
不同剖面形状的栅格壁对栅格翼气动特性的影响
基于CVT排布的非周期栅格密度加权阵设计
土钉墙在近障碍物的地下车行通道工程中的应用