基于随机漫步的室内驾驶路径规划研究
聂永怡 彭晓昕 卜国富 郑誉煌
摘 要:规划安全可靠的行驶路线是自动驾驶技术所要解决的关键问题之一。路径规划包括车身环境感知和路径轨迹生成两部分。针对车辆在室内行驶的问题,提出了基于随机漫步的室内驾驶路径规划策略。在CoppeliaSim的仿真试验结果表明,这个算法可以准确感知室内环境,并且能生成安全且高效的行驶路径。
关键词:路径规划;随机漫步;室内驾驶
在科技发达的现在,自动驾驶已投入到我们的汽车当中,汽车根据导航路线实现自主行走,车子能自动驶出和驶入道路的匝道或者立交桥等,并且可以自动变换速度做出超车等行为。由于现实情况的复杂,汽车未必能立刻做出完美的判断,因此自动驾驶仅在小范围使用,还无法在大范围利用,未来自动驾驶会往更高的地方发展,会在越来越大范围使用。因其应用的前景较大,从20世纪80年代到至今,自动驾驶一直是众多研究者的热门专题,对于自动驾驶的研究一直在稳步前进,并取得阶段性成果。随着人工智能时代的到来,人们对自动驾驶的技术要求越来越高,未来自动驾驶也将投入到人民的日常生活中。
自动驾驶技术是人工智能的一个重要应用分支,常用的自动驾驶方案是面向室外环境,即基于GPS获取汽车定位,依靠车辆的传感器感知车辆周围环境数据,再通过路径规划算法确定车辆的行驶路径。但是在室内环境,由于室内环境环境复杂、空间比较狭小,导致一般室外自动驾驶方案无法直接应用于室内驾驶之中。为此,面向室内的车辆自动驾驶技术,要采用新的策略来规划车辆行驶路径。本文提出了基于随机漫步策略的室内驾驶路径规划策略,这策略把室内空间布局视为一个迷宫,小车在室内随机游走,遇到障碍物就自动转向走动,并记录所走过的路径,一直走动到出口为止。本策略在CoppeliaSim的仿真实验表明,本策略是可行的,可以使小车可以自主筛选最佳路线。
CoppeliaSim是一款优秀的仿真软件,原名是V-REP。在CoppeliaSim提供了众多机器人模型,用户可以快速的调用或修改这些模型,以满足用户的而需要。CoppeliaSim自身采用luna编程语言,但是也提供支持其他编程语言的接口,例如Matlab、Python等。本项目采用python3.7和CoppeliaSim通信,实现小车的传感器读取、方向控制和路径规划等功能。
1 随机漫步算法分析
1.1 空间布局
智能小车把室内空间布局抽象为一个迷宫,在此迷宫中实现从起点到达终点的优化路径。由于迷宫拥有多通道不确定性,且小车前进方向不定,小车的正确行驶路线有多条,但是时间均不一样。小车从开始运行到走出迷宫的过程所花的时间称为迷宫时间,每次进入迷宫到走出迷宫称为探测路线[1]。
小车出发点固定在迷宫某处,每走完一次迷宫,通过对比前后的迷宫时间长短,保存相对迷宫时间短的探测路线,经过多次分析探测路线和所耗迷宫时间,根据所设定的算法选出一条耗时短的最优路线,让小车以最快的速度走出迷宫。
实验使用电脑为Win10系统,利用python作为编程软件,配合仿真软件CoppeliaSim Edu,模拟迷宫(如图1所示)大小为4m×4m,并使用pioneer p3dx型号智能小车进行仿真实验。智能小车前后左右装配接近传感器,并在车头装配视觉传感器,以便观察。
小车行驶过程中,当没有遇到障碍时,以右转为最高命令;当接近传感器感应到障碍时,小车做出相应反应为次要命令。次要命令有多种情况,以没有感应到障碍的传感器判断前进方向,依旧遵循右转为最高命令,例如当左侧接近传感器感应到墙壁时,小车向右转;当左侧、右侧和前方传感器同时感应到障碍,即遇到墙角时,小车向后转;当只有前方传感器感应到障碍时,遵循最高命令,小车向右转,其他情况以此类推。
1.2 标记分析
智能小车在迷宫内行驶,每次运行都根据随机漫步的原则,只要程序正在活跃中,小车就能不断随机走动,并且中间不能停止行动,直到走出迷宫。智能小车像蚂蚁觅食一样寻找出口,蚂蚁在觅食的路径上会留下信息素供伙伴分辨,并利用信息素的浓度控制蚂蚁的转移率,算法就是模拟了这一点,当小车记录的点控制在一定的范围内,并且经过一定次数的积累,最终能获得一条最优的路径[2]。迷宫作为多障碍物区域,小车在走动时,为了解决绕行以及轨迹不平滑等问题,利用传感器获取的距离信息,通过权值的自动调整,实现在多障礙物区域自动推算出最优的线速度和角速度,从而实现安全、高效和可靠的机器人局部避障算法,使小车运行轨迹更加合理、安全和有效[3]。小车出发点固定,每次随机选择三个方向,它随机的选择向左、向右以及正前方作为前进方向。制定三个变量,其中一个是存储随机漫步次数的变量,其他两个是列表,分别存储随机漫步经过的每个点的x和y坐标。利用fill_walk()函数来生成小车随机漫步时走过的所有点,并决定每次漫步的方向。把相关数据存储好后,再利用python的matplotlib这个强大的库把数据绘制成图表(如图2所示)。小车每次转弯或直走的路线的X和Y坐标这两个变量都会以T(正确)或者(F)记录下来,若某个方向碰到墙壁则记为F(错误),碰墙后小车自动改变方向,以右转为基本原则,若仍继续碰墙,则小车根据未碰墙的传感器提供的方向自主选择左还是右转,直到无障碍前进。前进方向无障碍记为T(正确),将所有记为T的坐标连接起来,则就成为小车走出迷宫的路线。
2 实验分析
迷宫时间分析。每次小车出发地点固定,每一次程序运行,小车走出迷宫是唯一的目的,小车碰到一次不通的路径,小车会记下,防止小车走重复的路径,从而优化路径,缩短走出迷宫的时间。下表是小车重复20次实验所获得的迷宫时间,平均迷宫时间是35.3分钟。可见在第4次是的时间最短,因此小车以此次的路径为最优路径,如图2所示。
3 结论
本次提出的基于随机漫步的室内驾驶路径规划,通过记录坐标、储存时间、描绘出线路的方法,最终得到小车走出迷宫的最优路线。仿真实验证明,此算法让小车在复杂的室内,较好地获得到达目的地的方法。下一步,我们将研究多智能小车的协作寻找最优路径的问题。
参考文献:
[1]王蒙,朱冬旭,李治.智能小车走迷宫算法的设计与研究[J].科技视界,2017(23):17-18+55.
[2]胡国华,王鸿斌,宗春梅,王成英.基于改进蚁群算法的智能小车路径规划仿真研究[J].高师理科学刊,2019,39(12):23-26.
[3]王纪云,邵杭.权值自适应的局部路径规划方法及应用[J].软件导刊,2019,18(12):11-13+18.
基金项目:国家级大学生创新训练项目“基于多智能体和深度强化学习的自动驾驶系统研究”(编号:202014278003);广东省本科高校高等教育教学改革项目“电子信息工程专业新工科人才培养的研究与实践”(编号:421);广东第二师范学院教学质量与教学改革工程项目“电子信息工程应用型人才培养示范基地”(编号:2018sfjd02)
作者简介:聂永怡(1998— ),女,汉族,广东肇庆人,本科,研究方向:电子信息工程。
*通讯作者:郑誉煌(1979— ),男,广东佛山人,博士,副教授,研究方向:机械电子工程。