基于已有道路数据的仿真车寻找最短路径的方法转让专利
申请号 : CN202110045879.1
文献号 : CN112464517B
文献日 : 2022-01-18
发明人 : 包涵 , 陈诚 , 张旸
申请人 : 奥特酷智能科技(南京)有限公司
摘要 :
权利要求 :
1.一种基于已有道路数据的仿真车寻找最短路径的方法,所述道路数据为RoadsData,包括若干条路径Lane,每条路径上间隔预设距离设有路点LanePoint,路径Lane以list形式储存为路径集合LanesData,路点LanePoint以list形式储存为路点集合ListPoint,路点LanePoint在路点集合ListPoint中均按相对应的路径方向顺序排列;每条路径Lane均设有索引LaneID、起始路点PosStart、终止路点PosEnd、路径长度LaneLength以及可变道路径的索引集合List_sameLanesID,其中某路径的可变道路径包括该路径以及与该路径相邻的左、右两侧的路径;所述方法包括以下步骤:步骤一、确定距离目标点TargetPos最近的路点作为目标路点TargetPoint,将目标路点TargetPoint所在的路径作为目标路径TargetLane;
步骤二、然后判断目标路径TargetLane与仿真车所在的当前路径CurrentLane是否为同一路径,分为两种情况:
1)如果目标路径TargetLane与当前路径CurrentLane是同一路径,再判断目标路点TargetPoint与仿真车当前路点CurrentPoint的前后位置,如目标路点TargetPoint与仿真车当前路点CurrentPoint前后位置一致,则代表仿真车已经到达目标点;
如目标路点TargetPoint位于仿真车当前路点CurrentPoint的前方,则最短路径为当前路径CurrentLane;
如目标路点TargetPoint位于仿真车当前路点CurrentPoint的后方,则使用SearchWay递归方法寻找最短路径;
2)如果目标路径TargetLane与当前路径CurrentLane不是同一路径,则使用SearchWay递归方法寻找最短路径;
其中,SeatchWay递归方法需要传入两个参数,分别是路径集合ListLanes以及路径集合ListLanes中的道路长度LanesLength,即路径集合ListLanes中的各路径长度之和;
把目标路径TargetLane加入到路径集合ListLanes中作为路径集合ListLanes初始值,并设置其道路长度LanesLength的初始值为0;
设置一个路径集合ListLane2Target存储最短路径集合,其初始值为空;另外设置一个变量MinDis2Target存储路径集合ListLane2Target中各路径的长度之和并记作最短路径长度,其初始值为无限大;
SeatchWay递归方法的具体执行步骤如下:步骤S1、从路径集合ListLanes中取出最后一个路径LastLane加入最短路径集合ListLane2Target,并遍历路径集合LanesData中的所有路径,找到与路径LastLane相连的路径A;
如果路径集合ListLanes的道路长度LanesLength大于Mindis2Target,则返回重新执行步骤S1;
如果路径A已经包含在路径集合ListLanes中并且不和当前路径CurrentLane为同一条路径则跳过,返回重新执行步骤S1;
如果路径A的List_sameLanesID中包括当前路径CurrentLane的LaneID,则将路径A添加到路径集合ListLanes,然后将MinDis2Target设为路径集合ListLanes的长度LanesLength,并将路径A加入到最短路径集合ListLane2Target中,然后返回重新执行步骤S1;否则执行步骤S2;
步骤S2、向ListLanes中添加此路径A,并将路径集合ListLanes的道路长度LanesLength增加路径A的长度;然后返回执行步骤S1;
上述递归计算完成后,执行步骤S3;
步骤S3、查看变量MinDis2Target,如果为无限大则代表没有找到路径,否则最短路径集合ListLane2Target即为所求路径集合,变量MinDis2Target即为所求最短路径的长度;
步骤S4、仿真车遍历最短路径集合ListLane2Target中的所有路点即可完成寻路。
2.根据权利要求1所述的基于已有道路数据的仿真车寻找最短路径的方法,其特征在于:步骤一中,寻找目标路点TargetPoint的方法为:通过遍历所有LanesData中的所有List_point中的所有LanePoint,计算每个LanePoint与TargetPos的距离,得到距离最小的那个路点作为目标路点TargetPoint。
3.根据权利要求1所述的基于已有道路数据的仿真车寻找最短路径的方法,其特征在于:步骤二中,如果目标路径TargetLane与当前路径CurrentLane是同一路径,再判断目标路点TargetPoint与仿真车当前路点CurrentPoint的前后位置的方法如下:每条路径按顺序对路点设置索引值作为下标,当前路点CurrentPoint在当前路径CurrentLane的下标为currentIndex,目标路点TargetPoint在目标路径TargetLane的下标为targetIndex;如果currentIndex>targetIndex,则代表目标路点TargetPoint在仿真车当前路点CurrentPoint的后方,如果currentIndex=targetIndex,则代表仿真车已经到达目标路点,如果currentIndex
4.根据权利要求1所述的基于已有道路数据的仿真车寻找最短路径的方法,其特征在于:步骤二中,SeatchWay递归方法寻找最短路径时,设置一个阈值限制递归计算次数,即当递归计算次数超出阈值时,停止计算。
说明书 :
基于已有道路数据的仿真车寻找最短路径的方法
技术领域
背景技术
用Unity自带组件navigation,navigation组件虽然使用起来方便简单,但是它实现寻路的
时候自身无法正常仿真,会打扰其他物体寻路,影响正常使用,而且navigation组件需要解
决遇到坡度不能倾斜和车轮不转动等问题。
发明内容
间隔预设距离设有路点LanePoint,路径Lane以list形式储存为路径集合LanesData,路点
LanePoint以list形式储存为路点集合ListPoint,路点LanePoint在路点集合ListPoint中
均按相对应的路径方向顺序排列;每条路径Lane均设有索引LaneID、起始路点PosStart、终
止路点PosEnd、路径长度LaneLength以及可变道路径的索引集合List_sameLanesID,其中
某路径的可变道路径包括该路径以及与该路径相邻的左、右两侧的路径;所述方法包括以
下步骤:
真车当前路点CurrentPoint前后位置一致,则代表仿真车已经到达目标点;
路径长度,其初始值为无限大;
路径A;
LanesLength,并将路径A加入到最短路径集合ListLane2Target中,然后返回重新执行步骤
S1;否则执行步骤S2;
度;
合和道路长度。本发明不占用unity中的navigation组件,可以在仿真车行驶时避免打扰其
他物体寻路,而且本发明方法给出的是最短路径集合,仿真车仅需要跟随车道行驶即可完
成寻路,之后如遇到障碍、交通灯等执行对应方法即可,不会发生冲突或耦合。本发明使用
的路点寻路方法,操作简单,容易理解,计算量小,反应速度快,而且路点跟坡路、车轮转动
等均不相关,因此不受坡度倾斜和车轮不转动问题的影响。
具体实施方式
路径Lane以list形式储存为路径集合LanesData,路点LanePoint以list形式储存为路点集
合ListPoint,路点LanePoint在路点集合ListPoint中均按相对应的路径方向顺序排列。每
条路径Lane均设有索引LaneID、起始路点PosStart、终止路点PosEnd、路径长度LaneLength
以及可变道路径的索引集合List_sameLanesID,其中某路径的可变道路径包括该路径本身
以及与该路径相邻的左、右两侧的路径。
最小的那个路点作为目标路点TargetPoint。
真车当前路点CurrentPoint前后位置一致,则代表仿真车已经到达目标点。如目标路点
TargetPoint位于仿真车当前路点CurrentPoint的前方,则最短路径为当前路径
CurrentLane;
路径长度,其初始值为无限大。
路径A;
可能为最短路径,而去掉该路径是为了防止终点被剔除掉,此时返回重新执行步骤S1;
LanesLength,并将路径A加入到最短路径集合ListLane2Target中,然后返回重新执行步骤
S1,代表找到了当前查找到的最短的可以到达目标路径的集合;否则执行步骤S2;
法连接;否则最短路径集合ListLane2Target即为所求路径集合,变量MinDis2Target即为
所求最短路径的长度。
路点CurrentPoint在当前路径CurrentLane的下标为currentIndex,目标路点TargetPoint
在目标路径TargetLane的下标为targetIndex;如果currentIndex>targetIndex,则代表目
标路点TargetPoint在仿真车当前路点CurrentPoint的后方,如果currentIndex=
targetIndex,则代表仿真车已经到达目标路点,如果currentIndex
径,否则在找不到路径的时候会死循环导致卡死。
是通过车道数据降低了很多计算量,并且能跟随车道方向行驶。本实施例可以跨平台运行,
尤其适合AI车辆的仿真。
何修改、等同替换、改进等形成的技术方案,均应包含在本发明的保护范围之内。