1.一种考虑地图复杂度的无人车路径规划方法,其特征在于,包括以下步骤:步骤1:
初始化地图信息,载入地图的边界以及障碍物信息,并将地图信息二值化,设定起始节点Xstart,有效节点集T,T的数量NumT,目标节点为Xend,新节点为Xnew,随机节点为Xrand,节点距离阈值Df,设定步长为S、目标距离Dist以及目标迭代次数Goalnum,原始地图复杂度为θ1,地图区域复杂度为θ2,进入步骤2;
步骤2:
对整个地图区域进行撒点,得到落在可行区域内点的个数,得到原始地图复杂度:式中:num1为随机点落在整个地图可行区域内的个数,X、Y分别为地图的长、宽,X×Y为整个地图区域所撒点的个数,根据原始地图复杂度θ1,构造目标距离:式中:Dist1为一级目标距离、Dist2为二级目标距离、Dist3为三级目标距离,C1为地图复杂度的一级阈值、C2为地图复杂度的二级阈值,目标迭代次数:式中:Goalnum1为一级目标迭代次数、Goalnum2为二级目标迭代次数、Goalnum3为三级目标迭代次数,进入步骤3;
步骤3:
构造随机节点生成函数:
Xrand=[rand()×X rand()×Y] (4)式中:rand()为随机数生成函数,通过计算得到距离随机点最近的节点Xnear,在以Xnear为圆心、以半径R围成的圆内,进行随机撒点,得到地图区域复杂度:式中:num2为落在以Xnear为圆心且以半径R围成的圆内可行点的个数,Pnum为在以Xnear为圆心的圆内点的总个数,然后构建动态步长:式中:S1为一级步长、S2为二级步长、S3为三级步长,如果θ1≤C1,进入步骤4,否则进入步骤5;
步骤4:
构造节点生成函数:
式中:||Xrand‑Xnear||表示Xrand与Xnear之间的距离,判断Xrand与Xnew之间是否发生碰撞,如果发生则进入步骤3,否则,根据公式(7),将新节点Xnew存放在有效节点集T中,进入步骤6;
步骤5:
构造节点生成函数:
式中:cos()、sin()分别为余弦和正弦函数,α为Xrand和Xnear连线与x轴之间的夹角,判断Xrand与Xnew之间是否发生碰撞,如果发生则进入步骤3,否则,根据公式(8),将新节点Xnew存放在有效节点集T中,进入步骤6;
步骤6:
利用步骤4和步骤5生成新节点后,进行重新寻找父节点的过程,找到距Xnew距离小于等于Df的所有节点,进行碰撞检测,保留无碰撞的点在节点集nearest_node中,在节点集中找到距离Xnew最近的点,将其设置为Xnew的父节点,进入步骤7;
步骤7:
将节点集nearest_node中的每一个节点与Xnew进行距离计算,得到距离集Rewire,将距离集Rewire与Xnew原始路径距离相加得到Rcost,将Rcost中每一个元素与nearest_node中相应元素的原始路径距离比较,如果大于则保留原始父节点,否则将Xnew设置为新的父节点,如果原始地图复杂度θ1≤C1进入步骤9,否则进入步骤8;
步骤8:
有效节点集T的个数NumT,判断NumT与目标迭代次数的大小关系,相应调整目标距离的大小,当NumT小于等于步骤2中目标迭代次数的设定值后,进入步骤9,否则调整目标距离,目标距离为:式中:Dist4为更新后的一级目标距离、Dist5为更新后的二级目标距离,进入步骤9;
步骤9:
判断新节点与目标节点之间的距离是否小于目标距离,如果小于进入步骤10,否则进入步骤3;
步骤10:
生成初始路径,根据逆向寻优的原则,对初始路径进行初步优化,进入步骤11;
步骤11:
对步骤10生成的路径进行B样条曲线拟合,在拟合过程中采取了曲率和转角约束,得到平滑的路径,结束路径规划。