1.一种基于改进型A*算法的综合性场景地图路径规划方法,其特征在于,包括以下步骤:步骤1,针对综合性场景地图,进行基础的环境建模:将二维的平面场景分割为两个以上的正四边形网格,并为用二值化的方式为单个网格进行赋值来表示网格的占用情况,被障碍物占据的网格的值设置为1并填充为黑色,其余网格的值设置为0并填充为白色;在障碍物周围构建一个由单层网格组成的保护区域,并填充为灰色,设定移动机器人的外切圆半径为 R,移动机器人与障碍物保持的安全距离为r,将r作为网格的边长;
步骤2,采用改进型A*算法对路径进行规划,包括如下步骤:步骤2‑1,建立改进的双向搜索策略;
步骤2‑2,建立带有障碍物线密度权重的启发函数;
步骤2‑3,采用变邻域的节点拓展方式,完成节点拓展;
步骤2‑4,进行路径二次优化;
步骤2‑1包括:所述改进的双向搜索策略的公式为:(1) ,
其中, 表示起点 与前向搜索路径的当前节点 之间的距离评估函数值, 表示目标点 到后向搜索路径的当前节点 之间的距离评估函数值;d表示前向搜索路径的当前节点 与后向搜索路径的当前节点 之间的曼哈顿距离; 表示前向搜索路径的当前节点 与目标点 之间的曼哈顿距离; 表示后向搜索路径的当前节点 与起点 之间的曼哈顿距离;
步骤2‑1还包括:对公式(1)进行简化得到:(2)。
2.根据权利要求1所述的方法,其特征在于,步骤2‑2包括:将前向路径的当前节点 与后向路径的当前节点 之间的障碍物线密度作为调节因子添加到启发函数中,首先采用Bresenham算法获取 与 连线中的增量网格列表,然后遍历增量网格列表计算障碍物网格所占的比例,从而得到路径的障碍物密度;
设前向路径与后向路径之间的连线的斜率为k:
(3),
其中 为后向路径的当前节点 的纵坐标; 为前向路径的当前节点 的纵坐标;
为后向路径的当前节点 的横坐标; 为前向路径当前节点 的横坐标; 表示水平方向的增量; 表示垂直方向的增量;
在斜率 的情况下,水平方向的增量 更大,在水平方向上以1为步长来调整对应节点的横坐标位置,设定 与 的相连直线上第 个节点的坐标为 ,直线上横坐标值为 的点所对应的纵坐标值为:(4),
其中, 为 与 的相连直线上横坐标为 的点所对应的纵坐标值;b是 与的相连直线在y轴上的截距。
3.根据权利要求2所述的方法,其特征在于,步骤2‑2还包括:计算 、以及 、的差值 :
(5),
其中, 是坐标为 的网格到 与 的相连直线的纵坐标差值, 是坐标为的网格到 与 的相连直线的纵坐标差值, 为 与 的相连直线上第 个节点的纵坐标值;计算得到第 步的决策参数 :(6),
其中 表示水平方向的增量; 表示垂直方向的增量;当 时 ,直线下方的点距离直线更近,此时 ;当 时 ,直线上方的点距离直线更近,此时,将 代入到公式(6)中求出第i+1步的决策参数 :(7),
用起始点 旁边的第一个节点坐标计算得到第一个增量网格的决策参数 :(8),
得到 后,由公式(7)继续推导后续的增量网格决策参数,并由增量网格决策参数来决定增量网格在纵坐标上的分布情况,直到碰到后向路径的当前节点 ,得到前向路径与后向路径之间的增量网格列表 。
4.根据权利要求3所述的方法,其特征在于,步骤2‑2还包括:遍历增量网格列表 中的节点,计算障碍物的线密度 :(9) ,
其中,num(obstacle)为障碍物节点的数量;num(node)为所有节点的数量;
最后结合公式(2)得到前向路径的启发函数 与后向路径的启发函数 :(10)。
5.根据权利要求4所述的方法,其特征在于,步骤2‑3包括:以对侧路径的当前节点作为目标点 ,以当前节点o为原点建立局部坐标系,定义水平向右为 x轴正方向、竖直向上为 y 轴正方向,将目标点相对于当前节点的位置划分为八种情况,分别是四个不同的象限区域以及坐标轴的四个方向:第一种情况是:目标点 位于第一象限区域;
第二种情况是:目标点 位于第二象限区域;
第三种情况是:目标点 位于第三象限区域;
第四种情况是:目标点 位于第四象限区域;
第五种情况:目标点 位于x轴正方向;
第六种情况:目标点 位于y轴正方向;
第七种情况:目标点 位于x轴负方向;
第八种情况:目标点 位于y轴负方向;
如果目标点 相对于当前节点 的位置为第一、二、三、四种情况:首先拓展目标点 所在方向距离当前节点 最近的1个节点 ,判断节点 是否为障碍物,如果节点 不为障碍物节点,则继续对节点 周围同一方向区域的其他3个待扩展节点以及当前节点 上下左右方向的4个节点进行扩展,一共拓展8个节点;如果节点 为障碍物节点,则只对当前节点上下左右方向的4个节点进行扩展,一共拓展5个节点;
如果目标点相对于当前节点的位置为第五、六、七、八种情况:首先拓展目标点 所在方向距离当前节点 最近的1个节点 ,判断节点 是否为障碍物,如果节点 不为障碍物节点,则继续对节点 周围同一方向的1个节点以及当前节点 上下左右方向中除了节点 以外的3个节点进行扩展,一共拓展5个节点;如果节点 为障碍物节点,则只对当前节点 上下左右方向中除了节点 以外的3个节点进行扩展,一共拓展4个节点。
6.根据权利要求5所述的方法,其特征在于,步骤2‑4包括:步骤2‑4‑1,折线优化;
对路径进行剪枝操作:首先将第一个节点 作为起始点加入到优化路径列表,依次判断原始路径中后续节点与 的连线是否穿越了障碍物,在遍历了第二个节点 、第三个节点 、第四个节点 之后,发现 与第五个节点 之间存在障碍物,则将 的上一个节点加入到优化路径列表并更新 为新的起始点,继续遍历原始路径中的节点,如果发现与第九个节点 之间存在障碍物则将 的上一个节点 加入优化路径列表然后更新起始点,重复步骤2‑4‑1直到遍历到路径终点,最后将终点也加入到优化路径列表;
步骤2‑4‑2,采用分段三次Hermite插值对路径进行平滑处理:设定在插值后的路径中有 个离散节点 ,其中 为 个离散节点中第j个离散节点的横坐标; 为第j个离散节点的横坐标 处对应的纵坐标,然后对相邻节点间的数据间距与归一化参数作如下定义:(11),
其中: 为第i段插值区间的长度;z为待计算插值的横坐标;t为归一化参数,将区间映射到区间 ;
接着,计算每一段区间的平均梯度:
(12),
其中 ;
在每个插值节点处还要确定节点导数 ,如果 和 异号,则导数 设置为0;如果 和 同号,则用如下方式计算:(13),
至此,在每个区间 上构造第三段分段三次Hermite插值多项式: (14),
其中 表示第j段上的三次插值多项式; 、 分别表示第j个插值节点处的梯度值和第 个插值节点处的梯度值。
7.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述的方法的步骤。
8.一种存储介质,其特征在于,存储有计算机程序或指令,当所述计算机程序或指令在计算机上运行时,执行如权利要求1至6中任一项所述的方法的步骤。