100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 一种基于强化学习的移动机器人路径规划方法与流程

一种基于强化学习的移动机器人路径规划方法与流程

时间:2022-10-15 21:45:39

相关推荐

一种基于强化学习的移动机器人路径规划方法与流程

本发明涉及移动机器人路径规划领域,尤其是涉及一种基于强化学习的移动机器人路径规划方法。

背景技术:

在移动机器人领域,路径规划一直是一大研究热点。机器人需要在已知环境的情况下,利用路径规划算法,在两点之间寻找一条可以到达的且最优的路径。其中dijkstra算法是经典的寻路算法之一,该算法中,每个搜索节点被赋予一个属性g(n),用以表示该节点距离起点的距离,通过不断的搜寻具有最小g(n)值的节点并更新其周围节点g(n)值的方式,dijkstra算法能够找到两点之间的最短路径。该方法虽被广泛应用,但是该方法以搜索空间为代价,搜索耗费时间,不适合地图较大的场景,存在一定的局限性。如图2所示为dijkstra算法寻找得到的路径,该搜寻路径是最优的,然而搜索耗费了较大的时间,不能满足机器人应用的实时性。针对dijkstra算法耗时的缺点,a*算法通过引入引导函数的方式极大的减少了搜索空间,能够更快速的搜索到机器人的可行路径。如公式(1)所示,a*在g(n)的基础上,添加了当前节点到目标节点的引导函数h(n),以二者的和f(n)作为各个节点的属性进行搜索和更新,使得搜索在考虑与起始节点距离的同时兼顾了向目标节点方向的引导。

f(n)=g(n)+h(n)(1)

a*算法虽然通过引入引导函数的方式缩短了搜索时间,但由于其引导函数往往是人为设定的距离,例如曼哈顿距离,欧式距离等,因此对于两点之间存在障碍物的情况,a*算法往往会产生错误的引导,使得所得到的路径非最优,如图3所示为采用欧式距离的a*算法所得到的路径,对比图2中dijkstra算法的路径可以发现其有一个向目标节点方向的凹陷,因而产生了不必要的路径。

a*算法与dijkstra算法作为目前最为常见的规划算法,有其各自的优势,但同时也有其局限。dijkstra算法可获得最优路径,却不适用于大型场景;a*算法在dijkstra算法的基础上提升了搜索速度,却以路径为代价,使得所得并非最优解。

技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种兼顾a*算法搜索速度与dijkstra算法最优路径的基于强化学习的移动机器人路径规划方法。

本发明的目的可以通过以下技术方案来实现:

一种基于强化学习的移动机器人路径规划方法,该方法采用预训练后的改进a*算法,在任意环境中进行路径规划,所述改进a*算法采用预建立的强化学习算法更新引导函数,所述改进a*算法的预训练过程包括以下步骤:

s1:获取路径的起点、目标点和路径所在的已知环境,初始化改进a*算法;

s2:基于路径的起点、目标点和路径所在的已知环境,采用当前的改进a*算法进行路径规划,计算并保存路径规划过程中每一次的搜索点和该搜索点的奖励值;

s3:基于每个搜索点及其与目标点间所有搜索点的奖励值,计算每个搜索点对应的长期回报,获取训练数据;

s4:基于训练数据,更新强化学习算法,并通过更新后的强化学习算法,获取每个搜索点对应的修正值,更新改进a*算法中的引导函数;

s5:重复步骤s2至s4,直到满足预设的停止条件,获取预训练后的改进a*算法。

进一步地,所述改进a*算法中引导函数的表达式为:

h(n)*=h(n)+π(n)

式中,h(n)*为改进a*算法下搜索点n的引导函数,n=1,2,3,…,n,n为搜索点的总数,h(n)为传统a*算法下搜索点n的引导函数,π(n)为强化学习算法输出的搜索点n的修正值,其初始值通过对强化学习算法初始化设定。通过强化学习算法获取a*算法中引导函数的修正值,将a*算法的搜索能力和强化学习的学习能力进行结合,改善了在搜索点和目标点存在障碍物的情况下a*引导能力不足的情况。

进一步地,所述奖励值的计算表达式为:

式中,r(n)为搜索点n的奖励值,n=1,2,3,…,n,n为搜索点的总数,path(djisktra)为采用dijkstra算法获得的最短路径的长度,path(a*(π))为采用当前的改进a*算法获得的路径长度,const为常数。在搜索到最后的搜索点,即搜索完成时,利用dijkstra路径规划算法得到的最短路径与本次搜索的结果对比,并加入搜索空间的变化作为强化学习的奖励函数,较好的平衡了搜索能力与搜索空间,使得新算法同时具有a*算法的搜索速度与dijkstra算法的最优路径。

进一步地,所述长期回报的计算表达式为:

式中,v(n)为搜索数据中搜索点n对应的长期回报,n=1,2,3,…,n,n为搜索点的总数,goal为目标点,r(m)为节点m对应的奖励值,γ为预设的长期回报衰减系数,保存的每个搜索点均依照搜索顺序进行排序,依照该排序依次计算出每个搜索点的长期回报值。

进一步地,所述强化学习算法为基于策略梯度的强化学习算法。由于基于值函数的强化学习算法如dqn等算法无法解决动作空间过大或者连续的情况,因而选取基于策略梯度的强化学习算法,可以采用其策略函数的输出作为修正值。

进一步地,所述强化学习算法的更新过程具体为,基于策略价值梯度更新强化学习算法中策略函数的权重参数,所述权重参数的更新表达式为:

式中,θ为策略函数的权重参数,权重参数的初始值由预先设定,为权重参数为θ的策略价值梯度,α为策略价值梯度系数。

进一步地,所述策略价值梯度的计算表达式为:

式中,n为搜索点的总数,π(i)为节点i的修正值,其初始值通过对强化学习算法初始化设定,v(i)为节点i对应的长期回报。

进一步地,所述步骤s5中预设的停止条件为循环次数达到预设的循环值,或修正值开始收敛。

进一步地,采用神经网络拟合所述强化学习算法,通过训练所述神经网络,获取修正值。当采用基于策略梯度的强化学习算法时,采用神经网络拟合强化学习算法中的策略函数,在每次循环中对该神经网络进行训练,更新策略函数的权重参数,获取修正值。

与现有技术相比,本发明具有以下优点:

(1)本发明采用改进a*算法进行路径规划,并通过强化学习算法获取a*算法中引导函数的修正值,通过循环训练,更新改进a*算法中的引导函数,将a*算法的搜索能力和强化学习的学习能力进行结合,改善了在搜索点和目标点存在障碍物的情况下a*引导能力不足的情况。

(2)本发明在预训练过程中,采用当前改进a*算法获取路径规划结果后,基于采用dijkstra算法获得的最短路径的长度和本发明改进a*算法获得的路径长度计算搜索点的奖励值,从而对强化学习算法输出的修正值进行调整,使得采用本发明预训练后的改进a*算法得到的路径尽可能接近最短路径,同时保留了a*算法和dijkstra算法的优点,较好的平衡了搜索能力与搜索空间,并克服各自的缺点,以达到又快又好的获得路径的目的。

(3)本发明考虑到基于值函数的强化学习算法如dqn等算法无法解决动作空间过大或者连续的情况,因而选取基于策略梯度的强化学习算法,使用策略函数的输出作为修正值,使得本发明路径规划方法具有更高的稳定性。

(4)本发明通过神经网络拟合强化学习算法,通过神经网络进行学习,获取修正值,提高了修正值的准确性、可靠性和本发明方法的运算速度。

附图说明

图1为本发明移动机器人路径规划方法示意图;

图2为采用dijkstra算法的路径规划结果;

图3为以欧氏距离为引导函数的a*算法的路径规划结果;

图4为采用本发明改进a*算法的路径规划结果;

图5为训练过程中搜索空间的变化示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

实施例1

强化学习算法是agent(能自主活动的软件或者硬件实体)通过学习,得到环境状态到动作空间映射关系的奖惩式的学习方法。近年来,逐渐广泛的应用于人工智能和机器人领域。

强化学习是直接从环境映射到agent动作的学习方法,目标是使得agent在与环境的交互过程中获得最大的累积奖赏。通常强化学习问题可以描述为一个马尔科夫决策过程。将马尔科夫决策过程定义为一个四元组(s,a,r,p),s为所有环境状态的集合;a为agent采取的动作集合;r为奖励函数,表示在s状态时采取动作a所获得的奖赏值;p为状态转移函数。在强化学习中,策略π是状态空间到动作空间的映射,表示在状态s下采取动作a的概率。

本实施例将利用强化学习的学习能力去修正依靠几何距离作为引导函数的传统方法,进而寻找得到一个更加合适的引导函数,在保证a*算法搜索速度的同时,尽可能的使其接近dijkstra算法获取的最优路径。

本实施例为一种基于强化学习的移动机器人路径规划方法,该方法采用预训练后的改进a*算法,可以在任意环境中进行路径规划。

如图1所示,改进a*算法的预训练过程包括以下步骤

s1:用神经网络拟合基于策略梯度的强化学习算法中的策略函数,初始化其网络参数;获取路径的起点、目标点和路径所在的已知环境。

网络参数包括学习率lr,学习回合数max_epsoid,神经网络的层数,神经元数目以及神经元初始化权重θ,长期回报衰减系数γ。

s2:基于路径的起点、目标点和路径所在的已知环境,采用当前的改进a*算法进行路径规划,计算并保存路径规划过程中每一次的搜索点和该搜索点的奖励值。

下面对该步骤进行详细描述:

1)改进a*算法

a*算法在每个搜索节点的属性g(n)的基础上,添加了当前搜索节点到目标节点的引导函数h(n),以二者的和f(n)作为各个节点的属性进行搜索和更新。

本实施例在a*算法的引导函数进行了改进,得到改进a*算法,改进a*算法的中引导函数的表达式为:

h(n)*=h(n)+π(n)

式中,h(n)*为改进a*算法下搜索点n的引导函数,n=1,2,3,…,n,n为搜索点的总数,h(n)为传统a*算法下搜索点n的引导函数,π(n)为强化学习算法输出的搜索点n的修正值,其初始值通过对强化学习算法初始化设定。

2)采用当前的改进a*算法进行路径规划

当前的改进a*算法进行路径规划包括以下步骤:

s201:初始化路径规划的起点,目标节点以及路径所在的已知环境:建立当前的改进a*算法中的开启列表与关闭列表,首先利用当前的改进a*算法的启发函数更新起始点的启发函数值f(n)。开启列表用来存放待搜索的节点,关闭列表存放已经搜索过的节点,保证搜索过的节点之后将不会再次被搜索更新。其中启发函数的计算公式为:

f(n)=g(n)+h(n)*

式中,g(n)为已知环境中从起始点到搜索点n的实际代价,其计算方法为已有技术,本实施例中不作详细描述。

s202:将开启列表中启发函数数值最小的节点作为扩展节点,先将该节点加入关闭列表中,然后更新该节点邻近节点的启发函数f(n),并将邻近节点的父节点更新为该节点。

s203:保存路径规划过程中每一次的搜索点,同时计算每个搜索点的奖励值。

在本实施例中,保存的搜索点的数据为(s,a,r):状态s=(n,goal);经过策略模型选取的行动a=π(n,goal);采取行动获得的奖励r(n)。

奖励值的计算公式为:

其中,r(n)为搜索点n的奖励值,n=1,2,3,…,n,n为搜索点的总数,path(djisktra)为采用dijkstra算法获得的最短路径的长度,path(a*(π))为采用当前的改进a*算法获得的路径长度,其目的在于使改进a*算法得到的路径尽可能接近最短路径;n的数值越小奖励越大,即搜索时间越小奖励越大;const为一常数,可选为初始的改进a*算法搜索的节点数。通过该奖励函数的设置,使得学习到的引导函数同时保留a*和dijkstra的优点,并克服各自的缺点,以达到又快又好的获得路径的目的。

s204:判断步骤s202中的扩展节点是否为目标节点,若不是目标节点,返回步骤s202;若是目标节点,则由目标节点开始追溯父节点直到起点,得到一条规划的路径。

s3:基于每个搜索点及其与目标点间所有搜索点的奖励值,计算每个搜索点对应的长期回报,获取训练数据。

具体为,依据长期回报衰减系数γ计算每个搜索点对应的长期回报v,v的计算公式如下:

式中,v(n)为搜索数据中搜索点n对应的长期回报,n=1,2,3,…,n,n为搜索点的总数,goal为目标点,r(m)为节点m对应的奖励值,γ为预设的长期回报衰减系数,保存的每个搜索点均依照搜索顺序进行排序,依照该排序依次计算出每个搜索点的长期回报值。

s4:基于训练数据,更新基于策略梯度的强化学习算法,并通过更新后的强化学习算法,获取路径规划过程中每个搜索点对应的修正值,更新当前的改进a*算法中的引导函数。

强化学习算法的更新过程具体为,基于策略价值梯度更新强化学习算法中策略函数的权重参数,权重参数的更新表达式为:

式中,θ为策略函数的权重参数,权重参数的初始值由预先设定,为权重参数为θ的策略价值梯度,α为策略价值梯度系数。

策略价值梯度的计算表达式为:

式中,n为搜索点的总数,π(i)为节点i的修正值,其初始值通过对强化学习算法初始化设定,v(i)为节点i对应的长期回报。

s5:重复步骤s2至s4,直到基于策略梯度的强化学习算法输出的修正值开始收敛,或者回合数大于最大训练回合数max_epsoid,获取预训练后的改进a*算法。

本实施例对改进a*算法的预训练阶段中,输入的已知环境越复杂,或者训练的已知环境越多,获取的预训练后的改进a*算法,在任意环境中进行路径规划的结果就越准确。

图4为本实施例中采用预训练后的改进a*算法在一环境中进行路径规划的结果,图5为训练过程中搜索空间随训练次数的变化过程。从图中可以看出本发明改进a*算法的搜索空间随着训练的次数有了明显的下降,逐渐靠近传统a*算法的搜索速度,规划的路径逐渐趋于最优路径,较好的平衡了a*算法的搜索能力和搜索空间。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

技术特征:

1.一种基于强化学习的移动机器人路径规划方法,其特征在于,该方法采用预训练后的改进a*算法,在任意环境中进行路径规划,所述改进a*算法采用预建立的强化学习算法更新引导函数,所述改进a*算法的预训练过程包括以下步骤:

s1:获取路径的起点、目标点和路径所在的已知环境,初始化改进a*算法;

s2:基于路径的起点、目标点和路径所在的已知环境,采用当前的改进a*算法进行路径规划,计算并保存路径规划过程中每一次的搜索点和该搜索点的奖励值;

s3:基于每个搜索点及其与目标点间所有搜索点的奖励值,计算每个搜索点对应的长期回报,获取训练数据;

s4:基于训练数据,更新强化学习算法,并通过更新后的强化学习算法,获取每个搜索点对应的修正值,更新改进a*算法中的引导函数;

s5:重复步骤s2至s4,直到满足预设的停止条件,获取预训练后的改进a*算法。

2.根据权利要求1所述的一种基于强化学习的移动机器人路径规划方法,其特征在于,所述改进a*算法中引导函数的表达式为:

h(n)*=h(n)+π(n)

式中,h(n)*为改进a*算法下搜索点n的引导函数,n=1,2,3,···,n,n为搜索点的总数,h(n)为传统a*算法下搜索点n的引导函数,π(n)为强化学习算法输出的搜索点n的修正值,其初始值通过对强化学习算法初始化设定。

3.根据权利要求1所述的一种基于强化学习的移动机器人路径规划方法,其特征在于,所述奖励值的计算表达式为:

式中,r(n)为搜索点n的奖励值,n=1,2,3,···,n,n为搜索点的总数,path(djisktra)为采用dijkstra算法获得的最短路径的长度,path(a*(π))为采用当前的改进a*算法获得的路径长度,const为常数。

4.根据权利要求1所述的一种基于强化学习的移动机器人路径规划方法,其特征在于,所述长期回报的计算表达式为:

式中,v(n)为搜索数据中搜索点n对应的长期回报,n=1,2,3,···,n,n为搜索点的总数,goal为目标点,r(m)为节点m对应的奖励值,γ为预设的长期回报衰减系数。

5.根据权利要求1所述的一种基于强化学习的移动机器人路径规划方法,其特征在于,所述强化学习算法为基于策略梯度的强化学习算法。

6.根据权利要求5所述的一种基于强化学习的移动机器人路径规划方法,其特征在于,所述强化学习算法的更新过程具体为,基于策略价值梯度更新强化学习算法中策略函数的权重参数,所述权重参数的更新表达式为:

式中,θ为策略函数的权重参数,权重参数的初始值由预先设定,为权重参数为θ的策略价值梯度,α为策略价值梯度系数。

7.根据权利要求6所述的一种基于强化学习的移动机器人路径规划方法,其特征在于,所述策略价值梯度的计算表达式为:

式中,n为搜索点的总数,π(i)为节点i的修正值,其初始值通过对强化学习算法初始化设定,v(i)为节点i对应的长期回报。

8.根据权利要求1所述的一种基于强化学习的移动机器人路径规划方法,其特征在于,所述步骤s5中预设的停止条件为循环次数达到预设的循环值,或修正值开始收敛。

9.根据权利要求1所述的一种基于强化学习的移动机器人路径规划方法,其特征在于,采用神经网络拟合所述强化学习算法,通过训练所述神经网络,获取修正值。

技术总结

本发明涉及一种基于强化学习的移动机器人路径规划方法,该方法采用预训练后的改进A*算法,在任意环境中进行路径规划,所述改进A*算法的预训练过程包括以下步骤:S1:获取路径的起点、目标点和路径所在的已知环境,初始化改进A*算法;S2:采用改进A*算法进行路径规划,计算并保存路径规划过程中的搜索点和奖励值;S3:基于每个搜索点及其与目标点间所有搜索点的奖励值,计算每个搜索点对应的长期回报,获取训练数据;S4:基于训练数据,更新强化学习算法,获取每个搜索点的修正值,更新改进A*算法中的引导函数;S5:重复步骤S2至S4,直到满足预设的停止条件。与现有技术相比,本发明具有路径规划速度快、规划结果更优,且稳定性高的优点。

技术研发人员:刘成菊;孙晓娴;姚陈鹏;陈启军

受保护的技术使用者:同济大学

技术研发日:.10.21

技术公布日:.02.14

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。