基于激光雷达的自动驾驶的方案设计

2021-07-16 06:28王建彬张轩望谭卓侯明
时代汽车 2021年10期
关键词:自动驾驶仿真

王建彬 张轩望 谭卓 侯明

摘 要:针对在封闭环境内智能车如何实现自动驾驶问题,本文通过算法与理论的分析以及在仿真环境中进行运动规划的验证,进而得到了一套低成本、简单易操控的自动驾驶引导方案。经实验结果证明,基于ROS平台设计的智能车,在地图构建(SLAM)、定位、路径规划方面具有较好的稳定性、实时性、快速性与准确性。

关键词:自动驾驶 ROS 仿真

1 自动驾驶的整体设计方案

这套针对封闭环境中既定路径下车辆自动驾驶的控制方案是基于ROS操作平台实现的,ROS提供了大量的工具组合用来进行功能的配置、启动、自检、调试以及可视化。在ROS平台中使用Gmapping算法针对激光雷达和IMU位姿传感器检测和采集的信息对周围环境进行二维栅格地图构建(SLAM)、采用AMCL算法来实现车辆在地图中的准确定位、最后通过A*算法进行全局的路径规划。在路径规划中针对道路中临时出现的障碍通过TEB算法进行判别并进行局部的路径规划以实现对其合理避让。整套方案在结构上具有适应性广泛、开发成本低的特点,在不降低效率的前提下实现了对于自动驾驶的功能。

2 基于Gmapping建图功能的设计

SLAM全称为Simultaneous Localization and Mapping,及定位的同时完成建图。本节从Gmapping算法功能包开始,结合重要参数信息展开介绍SLAM建图功能。

Gmapping运行的理论基础为通过从激光雷达和里程计分别获取数组观测向量信息和里程计测量信息,经过TF转换,输出地图信息和位姿估计。

3 定位以及导航算法功能介绍

AMCL全称为自适应蒙特卡洛定位,是在传统MCL定位算法基础上,添加KLD采样实现功能改进。针对已有的地图,使用粒子滤波器跟踪机器人位置姿态。AMCL算法解决了机器人绑架问题,有效防止迭代过程中重要信息粒子的缺失,并极大程度地提高了运算效率。

4 全局路径规划

全局路径规划代价地图包含地图层和膨胀层。并基于A*算法配置、设计全局路径规划器,通过全局代价题图获取单元格代价信息,通过计算寻找起点与终点之间最小代价路径。本节将具体介绍A*算法的基本原理以及实现过程。A*算法第一部是将区域作方格化简化操作,将二维区域地图简化为2维数组的形式,数组的每个元素对应一个方格,便于计算操作。在简化搜索区域完成后,需标注起始点、终点和障碍的位置信息。准备工作完成后,将起始点放入开放列表中,对其周围的八个方格,计算F值,F值由G值和H值相加所得。G值对应从起始点移动到指定方格的移动代价,H值为指定方格移动到终点的估算成本。寻找F值最小的方格放入开放列表中,将该方格作为新的起始点,重复上述操作,直到起始点周围方格中包含终点,则此时成功找到合适路径。

5 局部路径规划

局部路径规划代价地图包含障碍地图层和膨胀层。该功能用于小车行进过程中,对地图中未记录的障碍信息,能够及时改变路径避开障碍。局部路径规划器是基于TEB算法实现的。

TEB算法核心围绕位姿和记录时间序列展开。位姿及为机器人在地图中的位置、姿态信息记录不同时间段的位姿信息,经过整合形成位姿序列。时间序列则由相邻位姿状态变化所经历的时间整合而成。将位姿序列和时间序列进行合并,以全局路径允许的最大路径作为约束条件,通过加权目标优化获取最优的路径点。

6 智能车在Gazebo中的仿真

实现基于ROS操作系统的智能车仿真,需要一个稳定且功能强大的仿真的环境。ROS 官方专门提供了Gazebo物理仿真软件。Gazebo仿真环境可以实现机器人在三维环境中完成复杂动作。Gazebo不仅提供各种可二次开发的数据库,还可以与ROS系统中的其他平台进行通讯,不仅提高了开发人员的工作效率也为ROS 平台的开发提供了更多的可能性。仿真具体过程的流程如下:

6.1 车模与运动控制器的建立

在ROS操作系统里面,一个完整的机器人仿真模型由一系列的link和joint组成,斑纹采用acrox描述文件来构建车模的link(部件)与joint(连接件)的基本属性。Link设置模型的各个部件的特性与名称,link的三个属性分别为,conllision,inertial分别与外观,碰撞属性和惯性特性相对应。Joint则是连接两个link的关节,将parent link与child link进行连接,由于parent link与child link的运动关系不同,使得不同joint之间的连接类型不同,下表为仿真模型用到的主要joint类型参数。控制器的配置在很大程度上决定了车模的属性。

智能车模型的运动控制器配置过程:

1)在配置模型属性的过程中,模型的各部分joint已经添加了gazebo的标签并且添加了相应的控制器插件,接下来通过一个yaml文件,声明仿真需要的controller以及相对应的参数,并通过joint_state_controller来发布每个关节的实时状态。

2)生成啟动文件,在文件目录下加载需要加载的controller

6.2 建图:

首先,打开 gazebo和rviz的launch启动文件,此时将加载仿真车模及其仿真环境,以及启动gampping的功能文件。接着gazebo结点会自动订阅车模坐标控制信息、里程计坐标信息、激光雷达坐标信息,结合AMCL算法实现小车自定位,为建图做好准备。然后,通过采用设计好的控制工具包提供的滑块控制车模在环境中运动(如图2所示),通过rviz可以观察车模运动过程中地图的扫描情况。在车模运动过程中,gampping算法将车模的坐标控制信息、里程计坐标信息、激光雷达坐标信息进行处理运算实现二维地图的构建。完成建图工作后使用 map_server 命令行工具将扫描好的地图进行保存。

6.3 导航:

首先,开启gazebo和rviz的仿真环境,在gazebo仿真环境中增设障碍物锥桶,以模拟真实环境中的路况变化。Rviz能够加载显示出新建好的二维栅格地图。其次,分别开启全局路径规划、局部路径规划、AMCL定位的功能文件,自动引导启动与定位和导航相关的多个节点。通过在rviz上使用2D-nav goal指定目标点的位姿矢量,之后move_base节点自动订阅车模坐标信息进行定位,并由此计算出最佳路径,由控制器发送指令控制车模沿路径方向移动至终点。

7 仿真结果的分析

经过测试本实验设计的智能车可以在仿真环境中完成SLAM导航,Gmapping建立栅格地图,躲避障碍物等功能,实现了Gzaebo在仿真环境中的研究。

为了测试智能车在仿真环境中的性能。通过激光雷达建立栅格地图与环境模型进行对比,验证实验结果的准确性。将栅格地图与环境模型进行比较,可知智能车在环境建图测试中表现良好,拥有着较为精准的导航与建图功能。图4为测试结果。

8 结论

基于该方案设计的自主驾驶方案,经过基于ROS平台的 Gezabo 仿真实验,得到了准确度较高的栅格地图,经与仿真环境中的赛道进行对比,证实了该方案在校园清洁、 医院消毒、封闭环境中的自动驾驶与路径规划等应用场景的可行性。

参考文献:

[1]恩里克费尔南德斯.ROS 机器人程序设计[M]. 机械工业出版社.2016.

[2]李鑫. 基于激光雷达的同时定位与建图方法研究[D].长沙.

[3]高翔,张涛.视觉SLAM十四讲:从理论到实践[M].北京:电子工业出版社,2017.

猜你喜欢
自动驾驶仿真
“自动驾驶”热潮背后的担心和疑虑
汽车自动驾驶的发展
LTE—V车路通信技术浅析与探讨
一种帮助幼儿车内脱险应急装置的仿真分析
Buck开关变换器的基本参数设计及仿真分析
试析PLC控制下的自动化立体仓库仿真情况分析
特斯拉默默更改了官网上“自动驾驶”的说明
基于MADYMO的航空座椅约束系统优化设计
中国体态假人模型与FAA Hybrid Ⅲ 型假人模型冲击差异性分析
特斯拉中国官网不再提“自动驾驶”