一种基于JPS引导Hybrid A*的移动机器人路径规划方法
文献发布时间:2023-06-19 18:46:07
技术领域
本发明涉及移动机器人路径规划领域,具体是一种基于JPS引导Hybrid A*的移动机器人路径规划方法。
背景技术
路径规划的研究是移动机器人研究领域中一个重要的组成部分,它的目的是使移动机器人能够在一个已知或者未知的环境中,找到一条从起始状态到目标状态的无碰撞路径。传统的路径规划算法大部分只考虑机器人的位姿空间,然而,实际上机器人不仅受到位姿空间的约束,还会受到各种外力的约束。路径规划技术作为移动机器人的导航技术甚至是整个移动机器人技术的重要核心技术,也更加受到广大研究学者的关注。
传统的移动机器人路径规划算法大多数是将地图栅格化之后,使用图搜索算法例如A*算法或Dijkstra算法进行路径规划,这些算法在生成路径时并未考虑机器人运动学约束,因此规划出的路径大多是离散的,不满足机器人非完整性约束;而Hybrid A*算法作为A*算法的拓展,在算法中加入了机器人运动学约束条件并将离散的拓展点修改为连续的拓展点,这样便可以使机器人得到一条连续可执行的路径。
但是当Hybrid A*算法在宽敞的自由空间区域拓展且终点位于狭窄区域中时,会在列表中加入大量的备选节点,只有少部分节点可以引导路径进入狭窄区域,从而导致迭代次数增加,甚至无法找到可行路径。
发明内容
发明目的:针对上述现有技术,提出一种基于JPS引导Hybrid A*的移动机器人路径规划方法,在大规模地图下,提高节点遍历速度,减少迭代次数以及提高输出路径长度。
技术方案:一种基于JPS引导Hybrid A*的移动机器人路径规划方法,包括如下步骤:
步骤1:全局地图初始化;其方法为:进行环境建模并建立二维坐标系,对环境中的所有障碍物进行离散化并用均匀分布的点集合来表示,设障碍物数量为k,组成障碍物集合为{OBS
步骤2:参数初始化;其方法为:在地图中设置初始位姿Start(x
步骤3:从待探索列表Openlist中选择代价值最小的节点作为当前节点,通过前向模拟寻找下一个扩展结点,判断扩展节点与终点的距离是否小于阈值,若是,则继续步骤6,否则继续步骤4;
步骤4:计算起始点到扩展结点的代价值g
步骤5:将扩展结点与其总代价值f
步骤6:使用Reeds-Sheep曲线将扩展结点与终点连接,同时判断曲线上是否有障碍物,若是,则返回步骤3继续;否则,返回路径点集合;
步骤7:对路径点集合进行重采样,输出优化路径。
进一步的,所述步骤2中,构建节点采样函数Expansion_pattern的具体过程为:
算法先在φ∈{-φ
进一步的,所述步骤3中,前向模拟寻找扩展结点的具体过程为:
通过前向模拟计算公式扩展当前节点,并用Reeds-Sheep曲线将节点相连;当前节点位姿为N
x
y
式中,L
进一步的,所述步骤4中,计算扩展结点的总代价值f
f
其中:
g
式中,g
h
式中,β为启发值的权重系数,h
进一步的,所述步骤3中前向模拟以及步骤6中判断曲线上是否有障碍物中均采用了碰撞检测方法,所述碰撞检测方法中将每个路径点作为移动机器人后轴轴心,通过计算移动机器人四个顶点坐标构建简单运动学模型来进行边界碰撞检测。
有益效果:(1)本发明的一种基于JPS引导Hybrid A*的移动机器人路径规划方法作为一种Hybrid A*的改进算法,结合了JPS算法本身在节点遍历速度和数量上的一定优势,使得JPS算法的生成路径会比A*算法的生成路径在转角时会更加贴合障碍物且输出路径更精简但不发生碰撞,因此改进算法在大规模地图下,节点遍历速度,迭代次数以及输出路径长度等指标提升效果显著。
(2)Hybrid A*算法在宽敞的自由空间区域拓展且终点位于狭窄区域中时,由于其遍历特点会导致迭代次数增加,甚至无法找到可行路径。JPS算法因为强迫领居的存在,对障碍物较多的狭窄区域更为敏感,因此到达终点所需的迭代次数相比于A*算法大大减少而本发明采用JPS算法代替A*算法计算考虑避障时的启发值,以及采用JPS算法获得引导路径点集合,有效避免了无关节点的扩展,快速生成有效路径。
附图说明
图1是本方法的流程图;
图2是JPS算法原理示意图;
图3是移动机器人运动学模型示意图;
图4是初始化及参数设置地图;
图5、图6是本发明的算法仿真结果示意图。
具体实施方式
下面结合附图对本发明做更进一步的解释。
参照附图1所示,本实施例的一种基于JPS引导Hybrid A*的移动机器人路径规划方法,主要包括如下步骤:
步骤1:全局地图初始化。其方法为:进行环境建模并建立二维坐标系,对环境中的所有障碍物进行离散化并用均匀分布的点集合来表示,假设障碍物数量为k,组成障碍物集合为{OBS
步骤2:参数初始化。其方法为:在地图中设置初始位姿Start(x
本步骤中,构建节点采样函数Expansion_pattern的具体过程为:算法先在φ∈{-φ
步骤3:从待探索列表Openlist中选择代价值f
本步骤中,通过前向模拟寻找扩展结点的具体过程为:通过前向模拟计算公式扩展当前节点,并用Reeds-Sheep曲线将节点相连。当前节点位姿为N
x
y
式中,L
步骤4:计算起始点到扩展结点的代价值g
本步骤中,计算扩展结点的总代价值f
f
其中:
g
式中,g
h
式中,β为启发值的权重系数,h
步骤5:将扩展结点与其代价值f
步骤6:使用Reeds-Sheep曲线将扩展结点与终点连接,同时判断曲线上是否有障碍物,若是,则返回步骤3继续;否则,返回路径点集合。
步骤7:对路径点集合进行重采样,输出优化路径。
本方法中,步骤3中前向模拟以及步骤6中判断曲线上是否有障碍物中均采用了碰撞检测方法,考虑到算法本身基于移动机器人运动学模型进行路径规划,因此将每个路径点作为移动机器人后轴轴心,通过计算移动机器人四个顶点坐标构建简单运动学模型来进行边界碰撞检测。
图2是JPS算法的一个简易原理图,图3是在绝对坐标系下建立的移动机器人运动学模型,在算法中用简易的长方形代替,运行时仅用移动机器人质心代替模型,图4是算法规划前的初始环境以及起点和终点位置,图5和图6分别是在两个不同的地图中本发明算法的仿真结果。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。