一种多车智能组队方法

文档序号:26590144发布日期:2021-09-10 20:38阅读:231来源:国知局
一种多车智能组队方法

1.本发明涉及自动驾驶智能多车编队技术领域,特别涉及一种多车智能组队方法。


背景技术:

2.随着人类社会文明的高速发展,城市交通拥挤的问题逐渐凸显出来。交通拥挤占用人们的时间,诱发交通事故,由不合理的驾驶引起的交通事故更是不胜枚举。通过车辆编队行驶,来使尾随的车根据头车来智能调速行驶,能极大减小司机的误操作率,减少不合理的抢占车道和不合理的路线规划。
3.在1992年,国家国防科技大学成功研制第一辆无人驾驶汽车,在2000年6月,国家国防科技大学研制成功第四代无人驾驶汽车,其测试的最高时速为76公里,到2003年七月,国家国防科技大学成功开发出最高稳定速度达13okm的中国一汽红旗无人驾驶车,其整体技术性能指标达到世界先进水平。从20世纪80年代,中国开始研制无人驾驶车辆,并已取得了良好的效果。
4.从20世纪70年代开始,美国,英国,德国等发达国家开始研究无人驾驶车辆,在可实用性和可实施性方面都取得了重大的突破。进入了21世纪以后,为了促进研究和开发无人驾驶汽车,美国国防部高级研究计划局发起了机器人车辆挑战赛。大赛对促进智能车辆技术的交流与创新起到了显著的激励作用。
5.智能车的大力发展,对智能多车编队提供了更好的条件,也提出了更高的要求。智能多车编队能更加提高智能车的智能化,更加全面的解放人力,提高智能车系统的安全性。


技术实现要素:

6.本发明目的是在于提供一种多车智能组队方法,能够通过对通行的小车运用智能多车组队算法,使其在期望的算法下有效地行进、组队,从而更加提高智能车的智能化,解放人力,提高智能车系统的安全性。
7.本发明提供的技术方案为:一种多车智能组队方法,包括如下步骤:步骤一:初始化道路、地图、车辆;步骤二:对车辆进行路线的全局规划设计及实现,在全局规划中应用maxq算法,从而求得最优路径;步骤三:对车辆进行编队控制的设计及实现,使得具有重复路径,并具有适合编队的车辆进行编队;步骤四:利用本方法进行算法的实现及模拟,对所设计的算法进行图形化的演示及分析。
8.更进一步地,步骤一中的初始化道路由函数road* initializationroad()完成,返回road型数组指针;初始化map函数设定为map * initializationmap(),函数以图的邻接表结构生成了实验的地图模型;车辆初始化由函数car* initializationcar(road* pr,
map *pm,carlist *pc)完成,返回函数中动态生成的car类型指针。
9.更进一步地,步骤二中的行车路线的全局规划中,全局优化搜索通过maxq算法查找最优路线,maxq函数原型为int getq(road* pr,map *pm,int start,int end,int path[],const int pathmax,int cur=0)。函数输入变量中的start表示车辆将要到达的下一端点,end为车的终点,函数根据指针pm所指向的地图的逻辑关系,进行最优路线的推导。执行一次getq函数,仅将最优路线中继start之后的第一个结点保存在数组path[1]中,数组path[1]以后保存的点没有意义。在接下来的getpath函数中,通过循环将path[1]赋值给start并调用getqq函数,直到start与end值相同,从而求导出整条最优路径。
[0010]
更进一步地,步骤三中的车辆编队控制中,编队函数如下:取得重复路径函数getnumoverlapping:函数原型为int getnumoverlapping(car* pc1,car* pc2),函数计算车pc1,pc2从roadpoint2起的,直到终点endpoint的重叠结点数,函数返回重叠节点数;ifsameroad:函数原型为bool ifsameroad(car *pc1,car* pc2),判断两车是否同路且同向;计算距离 getdistance:计算两车距离,单位为两相邻像素点的距离;getmergercar:函数原型int getmergercar(carlist* pcl,int carnum),函数取得最合适的组队的车的编号。最合适的车理解为:与pc1同路且同向,在pc1前方,足够近且最近,将来从raodpoint2起有重复路径;合并车辆 mergercar:函数原型void mergercar(carlist* pcl,int ncar1,int ncar2)。函数功能为将车队ncar1并入车队ncar2的尾;组队makegroup:函数原型void makegroup(carlist* pcl),主函数中循环调用,查找可组队的车辆;离队leavegroup:函数原型void leavegroup(carlist* pcl),主函数中循环调用,查找可离队的车辆并使其离队;坐标更新函数updatexy:函数原型voidupdatexy(road* pr,map *pm,car *pc),在主函数中循环调用,更新所有车的位置信息。
[0011]
更进一步地,步骤四中的图形化演示,通过api建立窗口并循环画出地图和车,首先初始化窗口,各项信息进行标准化定义;然后同过对地图的邻接表进遍历化地图,通过车的坐标信息进行画点,实现循环画地图和车。
[0012]
本发明的有益效果:本发明提供了一种多车智能组队方法,首先对道路、地图和车辆进行初始化;其次应用maxq算法对车辆进行路线的全局规划设计及实现,从而求得最优路径;再次对车辆进行编队控制的设计及实现,使得具有重复路径、并具有适合编队的车辆进行编队;最后对所设计的算法进行图形化的演示及分析。对智能多车组队算法进行设计,是为了模拟城市交通,通过对通行的小车运用智能多车组队算法,使其在期望的算法下行进、组队,从而通过模拟的车辆运行的情况来了解算法设计的效果。
附图说明
[0013]
图1为本发明所述的一种多车智能组队方法的流程图。
具体实施方式
[0014]
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能后据以实施。
[0015]
如图1所示,本发明提供了一种多车智能组队方法,对道路和车辆进行初始化。应用maxq算法对车辆进行路线的全局规划设计及实现,从而求得最优路径。对车辆进行编队控制的设计及实现,通过一系列编队函数,包括取得重复路径函数、编队、离队、坐标更新等函数,使得具有重复路径、并具有适合编队的车辆进行编队。最后对所设计的算法进行图形化的演示及分析,通过api建立窗口并循环画出地图和车,其步骤如下。
[0016]
步骤一:初始化道路、地图、车辆其中,初始化道路由函数road* initializationroad()完成,返回road型数组指针;初始化map函数设定为map * initializationmap(),函数以图的邻接表结构生成了实验的地图模型;车辆初始化由函数car* initializationcar(road* pr,map *pm,carlist *pc)完成,返回函数中动态生成的car类型指针。
[0017]
步骤二:对车辆进行路线的全局规划设计及实现,在全局规划中应用maxq算法,从而求得最优路径。
[0018]
在行车路线的全局规划中,全局优化搜索通过maxq算法查找最优路线,maxq函数原型为int getq(road* pr,map *pm,int start,int end,int path[],const int pathmax,int cur=0)。函数输入变量中的start表示车辆将要到达的下一端点,end为车的终点,函数根据指针pm所指向的地图的逻辑关系,进行最优路线的推导。执行一次getq函数,仅将最优路线中继start之后的第一个结点保存在数组path[1]中,数组path[1]以后保存的点没有意义。在接下来的getpath函数中,通过循环将path[1]赋值给start并调用getqq函数,直到start与end值相同,从而求导出整条最优路径。
[0019]
步骤三:对车辆进行编队控制的设计及实现,使得具有重复路径,并具有适合编队的车辆进行编队。编队函数如下:取得重复路径函数getnumoverlapping:函数原型为int getnumoverlapping(car* pc1,car* pc2),函数计算车pc1,pc2从roadpoint2起的,直到终点endpoint的重叠结点数,函数返回重叠节点数;ifsameroad:函数原型为bool ifsameroad(car *pc1,car* pc2),判断两车是否同路且同向;计算距离 getdistance:计算两车距离,单位为两相邻像素点的距离;getmergercar:函数原型int getmergercar(carlist* pcl,int carnum),函数取得最合适的组队的车的编号。最合适的车理解为:与pc1同路且同向,在pc1前方,足够近且最近,将来从raodpoint2起有重复路径;合并车辆 mergercar:函数原型void mergercar(carlist* pcl,int ncar1,int ncar2)。函数功能为将车队ncar1并入车队ncar2的尾;组队makegroup:函数原型void makegroup(carlist* pcl),主函数中循环调用,查找可组队的车辆;离队leavegroup:函数原型void leavegroup(carlist* pcl),主函数中循环调用,查找可离队的车辆并使其离队;
坐标更新函数updatexy:函数原型voidupdatexy(road* pr,map *pm,car *pc),在主函数中循环调用,更新所有车的位置信息。
[0020]
步骤四:利用本方法进行算法的实现及模拟,对所设计的算法进行图形化的演示及分析。图形化演示通过api建立窗口并循环画出地图和车,首先初始化窗口,各项信息进行标准化定义;然后同过对地图的邻接表进遍历化地图,通过车的坐标信息进行画点,实现循环画地图和车。
[0021]
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1