一种基于有模型与无模型强化学习的机器人避障方法与流程
未命名
09-07
阅读:120
评论:0
1.本发明属于智能机器人导航领域,涉及一种机器人避障方法。
背景技术:
2.对于各个领域的移动机器人来说,自主导航是移动机器人一项非常基本并且关键的能力。根据应用场景与导航目标,可以主要分为四种问题,分别是局部避障、室内导航、多机导航与社会导航。局部避障问题指的是在未知环境中,无碰撞地躲避障碍物并到达目标点的导航过程,作为其他三种问题的基础,逐渐成为研究热点。
3.常见的避障方式有两种,分别是基于地图的避障方式和无地图的避障方式。基于地图的避障方式中的算法较为成熟,但是需要得到全局先验地图,并且在从一个环境换到另一个环境中后,常常需要重新调整算法参数,难以适应人流量大且复杂多变的环境。无地图避障导航是基于数据驱动的方式进行的端到端避障策略,使用神经网络拟合出从传感器的原始信息输入到动作的映射关系,将传感器信息作为规划器的输入,动作信息作为规划器的输出,从而实现避障。其中,深度强化学习有效地将深度学习的表征能力与强化学习的决策能力结合在一起,可以从传感器的数据中自动提取有效特征,并且在与环境的交互过程中学习到避障策略,实现端到端的避障,从而具有了无需全局先验地图、部署简单、无需调整参数的优点,并因此逐渐受到人们的关注。
4.深度强化学习算法主要分为有模型的强化学习算法和无模型的强化学习算法,有模型的强化学习算法指的是建立环境模型后,智能体通过与环境模型交互进行训练,而无模型的强化学习算法指的是不建立环境模型,直接与真实环境交互进行训练。两种方法各有优缺点,有模型的强化学习算法需要维护一个对于环境的模型,所以建模的精度就会极大地影响算法的实际效果,无模型的强化学习算法不需要环境模型,但是需要通过多组交互数据得到最优策略,对于样本数据的利用效率较低。
技术实现要素:
5.为了克服已有技术的不足,解决现有无模型强化学习的避障策略中存在的问题,本发明提供了一种基于有模型与无模型强化学习的机器人避障方法,将有模型的强化学习作为前瞻模块加入到无模型的强化学习框架中,通过对未来一段时间内的轨迹推演,修改奖励的构成项,减少高风险轨迹的选择频率。
6.本发明解决其技术问题所采用的技术方案是:
7.一种基于有模型与无模型强化学习的机器人避障方法,包括以下步骤:
8.步骤1:完成仿真环境的建立,仿真环境使用二维环境进行搭建,用于后续进行机器人避障策略的训练;
9.步骤2:完成基于无模型强化学习的移动机器人决策模块的建立,利用深度强化学习算法,建立相应的神经网络模型,采用近端策略优化算法ppo,根据奖励进行等价的优势函数计算,从而直接对选择行为的可能性进行调整,使用actor-critic架构,critic网络负
责估计状态价值函数,actor网络负责输出动作概率,输出动作采用离散动作空间,ppo算法采用重要性采样,使用当前优化的策略和探索环境的策略之间的差距对进行更新的损失函数进行校正,并通过预设参数对其进行限制,从而避免更新后的新策略过度远离旧策略;
10.步骤3:完成基于有模型强化学习的移动机器人前瞻模块的建立,使用带有transformer结构的深度神经网络对环境模型进行拟合,在进入新环境中后仍然采用原模型进行训练,得到环境模型网络,向环境模网络中输入环境特征向量与机器人动作向量,得到下一时刻的环境特征向量预估值与环境给予机器人的即时奖励预估值;之后利用得到的环境模型进行6个时间步的前向交互式推演,得到包含状态、时间步与环境奖励的多条交互记录,将其经过轨迹编码网络处理后,作为前瞻模块的输出结果;并且在下一次移动机器人与真实环境交互完成后,将真正的交互状态存入轨迹交互数据集中,在完成设定数量的导航过程之后,对前瞻模块中的环境模型进行误差项的梯度下降修正训练,从而实现纠偏;
11.步骤4:搭载待训练的决策模块和前瞻模块,将仿真小车放在不同的仿真环境中进行训练,并且充分利用仿真环境可并行训练的优势,设置多种不同类型的环境,把仿真小车视作智能体,随机初始化智能体位置与导航目标点,之后智能体根据获取的信息进行相应动作,获取环境给予的对应奖励和新的传感器信息,从而完成一次与环境的交互,把交互数据存入经验回放池,重复如上过程直至到达目标点或与障碍物发生碰撞后,本轮交互结束,回到起点,进行下一轮交互;
12.待经验回放池中的数据达到设定数量后,取出每次导航过程中的完整序列数据,首先计算状态价值和优势函数,以最大化actor网络的动作输出的优势为目的,计算actor网络的损失函数,并且使用梯度上升法更新网络参数,之后以最小化critic网络的输出与折扣回报之间的差距为目的,计算critic网络的损失函数,使用梯度下降更新网络参数,之后使用新的网络参数输出动作,与环境继续交互,直至训练结束;训练完毕后,得到训练好的决策模块;在训练过程中,环境给予的奖励是人为进行设置的;
13.步骤5:在真实环境中进行避障,在小车上安装激光雷达与rgb-d视觉传感器,激光雷达与视觉传感器均安装在小车前方,使用多传感器融合模块处理多传感器信息,得到伪激光雷达形式的信息作为感知模块输出,将机器人放在真实场景中,对机器人施加目标点的导航指令,机器人的目标点信息处理模块对指令加以处理,得到目标点向量,将感知模块输出的向量与目标点向量拼接得到环境特征向量;
14.步骤6:将步骤5中得到的环境特征向量输入训练好的决策模块,ppo算法会根据输入的特征向量输出该时刻机器人的动作指令,直至机器人到达终点,完成导航任务。
15.进一步,在所述步骤3中,使用在仿真环境中训练好的前瞻模块作为将机器人放置在新的环境中进行避障时使用的前瞻模块的预训练网络,并且在避障过程中每一次与真实环境交互完之后都将交互数据存储,在达到设定数量后使用真实交互数据对当前正在使用的前瞻模块进行梯度下降训练,提升环境模型的精确度。
16.再进一步,所述步骤1中,在二维仿真环境中进行训练,得到从激光雷达信息到避障策略的决策模块和对环境模型进行拟合并进行前向交互推演的前瞻模块;所述步骤5中,在三维真实环境中进行避障,使用单一模态信息减小虚拟环境和真实环境之间的差距对传感器信息的影响,使用多模态信息的互补实现有效信息的获取,充分利用激光雷达的鲁棒性改善基于强化学习的避障策略的迁移问题。
17.更进一步,所述步骤2中,为了提高基于无模型强化学习的避障策略网络的效果,从网络结构方面进行改进,使用lstm网络和注意力机制提升网络的特征提取能力,改善避障效果。
18.所述步骤3中,为了增强神经网络对于环境模型的拟合效果,使用transformer等可以处理时序信息与上下文信息的网络结构代替单纯的全连接网络,可以根据交互序列中过往的环境状态与智能体动作估计下一时刻的环境状态;后续可以通过引入可以对交互关系进行建模的图神经网络等结构进一步提升环境模型的准确性,从而改善避障效果。
19.所述步骤3中,将由激光雷达数据得到的二维栅格代价地图作为环境状态的描述形式,从而充分利用激光雷达数据中对于环境中存在障碍物时的空间信息描述,提升环境模型的准确性。
20.所述步骤4中,针对性设计奖励函数以加速避障策略网络收敛,采用的奖励函数包括安全性能指标、效率性指标和轨迹优化性能指标,所述安全性能指标包括碰撞障碍物负奖励和与障碍物的距离负奖励,所述效率性指标包括到达终点正奖励和相邻时刻与终点距离差分的正奖励,所述轨迹优化性能指标包括加速度大小的负奖励和相邻时刻间的角速度方向差值的负奖励,以避免奖励稀疏问题,改善训练效果。
21.所述步骤4中,利用二维仿真环境无需物理计算、计算资源要求低和可并行训练等优点,搭建多种不同复杂程度和不同障碍物特征的避障环境,提高训练得到的避障策略的避障性能与鲁棒性。
22.本发明综合利用两种算法,维护一个内在的环境模型来对未来进行预测并且预先规划,可以在真实环境中避免一些试错过程以及进入不可避免的危险情况,从而提升样本数据利用效率,同时使用无模型强化学习作为主要动作策略来源,避免环境模型不精确对于机器人避障策略的影响,从而改善机器人避障效果。
23.虽然在新的环境里,前瞻模块结果不准,需要重新训练,但是由于前瞻模块的网络参数是在仿真环境中训练过的网络参数,最差的情况下也仍然能给机器人提供一部分的预测效果和前瞻意识,并且在同一环境下执行不同任务的过程中可以通过得到的交互数据对前瞻模块进行进一步训练,从而进一步提升机器人的避障性能。
24.本发明通过向基于无模型的强化学习避障算法中加入基于前瞻模块的方法,将有模型强化学习与无模型强化学习结合起来,使用有模型强化学习提高无模型强化学习的样本数据利用效率,并且通过对于未来一段时间内的机器人与周围环境的交互推演,避免机器人选择可能使得自己陷入危险境地的动作,使用无模型强化学习作为主要决策算法,减小环境模型不精确带来的影响。使用有模型强化学习维护一个拟合环境模型的神经网络,在得到感知模块的输出后,枚举动作空间中所有动作依次与环境模型进行交互,并使用当前的动作策略进行后续的交互过程,得到包含环境状态、即时奖励和当前动作的交互轨迹序列,使用编码网络对该序列进行编码,得到最终的前瞻模块输出。使用无模型强化学习作为决策所使用的主要算法,将前瞻模块输出与感知模块输出作为输入,输出当前时刻的动作向量,并记录真实交互数据用于训练前瞻模块。
25.本发明的有益效果主要表现在:
26.1)通过将有模型强化学习以前瞻模块的形式加入到基于无模型强化学习的决策模块中,实现有模型强化学习和无模型强化学习的融合,利用有模型强化学习对过往交互
数据进行建模,改善基于无模型强化学习的智能体的数据利用效率低的问题,使用前瞻模块对未来六个决策步期间的策略与环境状态进行推演,避免机器人做出可能使自己陷入危险情况的动作,提升避障算法性能;
27.2)将前瞻模块得到的预测交互轨迹经过编码网络处理之后,作为下一时刻基于无模型强化学习进行动作决策的辅助输入,改善基于有模型强化学习的模型误差导致的避障策略性能下降的问题;
28.3)前瞻模块中的环境模型拟合部分采用神经网络完成,后续可以通过图神经网络等方法对机器人与环境中行人等动态障碍物产生交互的部分进行建模,从而进一步提升模型拟合效果,为之后通过改善环境模型拟合方法并进一步提升避障效果留下改进空间。
附图说明
29.图1是基于有模型与无模型强化学习的机器人避障方法的结构图。
30.图2是小车避障算法的动作策略网络结构图。
具体实施方式
31.下面结合附图对本发明作进一步描述。
32.参照图1和图2,一种基于有模型与无模型强化学习的机器人避障方法,包括以下步骤:
33.步骤1:完成仿真环境的建立,基于强化学习训练避障策略,需要大量的智能体与环境的交互数据,考虑到环境搭建难度、获取信息难易程度和模型在实车上部署难度等因素,仿真环境可使用二维环境进行搭建,用于后续进行机器人避障策略的训练。
34.步骤2:完成基于无模型强化学习的移动机器人决策模块的建立,利用深度强化学习算法,建立相应的神经网络模型,采用近端策略优化算法(proximal policy optimization algorithm,ppo),这是一种适用于高维连续状态空间与连续和离散动作空间的on-policy的策略梯度算法,根据奖励进行等价的优势函数计算,从而直接对选择行为的可能性进行调整。使用actor-critic架构,critic网络负责估计状态价值函数,在本方法中,输出动作采用离散动作空间,所以actor网络负责输出动作概率,为了提高对于采样数据的利用率,ppo算法采用重要性采样,使用当前优化的策略和探索环境的策略之间的差距对进行更新的损失函数进行校正,并通过预设参数对其进行限制,从而避免更新后的新策略过度远离旧策略。
35.步骤3:完成基于有模型强化学习的移动机器人前瞻模块的建立,使用带有transformer等可以处理时序信息与上下文信息结构的深度神经网络对环境模型进行拟合,在进入新环境后仍然采用原模型进行训练,可以得到环境模型网络;向环境模型网络中输入环境状态向量与机器人动作向量,可以得到其输出的下一时刻的环境状态预估值与环境给予机器人的即时奖励预估值。之后利用得到的环境模型进行6个时间步的前向交互式推演,得到包含状态、时间步与环境奖励的多条交互记录,将其经过轨迹编码网络处理后,作为前瞻模块的输出结果;并且在下一次移动机器人与真实环境交互完成后,将真正的交互状态存入轨迹交互数据集中,在完成一定数量的导航过程之后,对前瞻模块中的环境模型进行误差项的梯度下降修正训练,从而实现纠偏。
36.步骤4:搭载待训练的决策模块和前瞻模块,将仿真小车放在不同的仿真环境中进行训练,并且充分利用仿真环境可并行训练的优势,设置多种不同类型的环境(包括空旷型环境、密集型环境和狭缝类环境等),把仿真小车视作智能体,随机初始化智能体位置与导航目标点,之后智能体根据获取的信息进行相应动作,获取环境给予的对应奖励和新的传感器信息,从而完成一次与环境的交互,把交互数据存入经验回放池,重复如上过程直至到达目标点或与障碍物发生碰撞后,本轮交互结束,回到起点,进行下一轮交互。待经验回放池中的数据达到一定数量后,取出每次导航过程中的完整序列数据,首先计算状态价值和优势函数,以最大化actor网络的动作输出的优势为目的,计算actor网络的损失函数,并且使用梯度下降法更新网络参数,然后以最小化critic网络的输出与折扣回报之间的差距为目的,计算critic网络的损失函数,使用梯度下降更新网络参数,再使用新的网络参数输出动作,与环境继续交互,直至训练结束;训练完毕后,得到训练好的决策模块。在训练过程中,环境给予的奖励是人为进行设置的,主要考虑安全性(与障碍物碰撞得到负奖励)、效率性(到达目标点得到正奖励、相邻时刻之间距离差分的正奖励)和轨迹平滑性(相邻时刻之间角速度相差过大的负奖励)。
37.步骤5:在真实环境中进行避障,在小车上安装激光雷达与rgb-d视觉传感器,激光雷达与视觉传感器均安装在小车前方,使用多传感器融合模块处理多传感器信息,得到伪激光雷达形式的信息作为感知模块输出,将机器人放在真实场景中,对机器人施加目标点的导航指令,机器人的目标点信息处理模块对指令加以处理,得到目标点向量,将感知模块输出的向量与目标点向量拼接,得到当前时刻的环境特征向量;
38.步骤6:将步骤5中得到的环境特征向量输入训练好的决策模块,ppo算法会根据输入的特征向量输出该时刻机器人的动作指令,直至机器人到达终点,完成导航任务。
39.使用在仿真环境中训练好的前瞻模块作为将机器人放置在新环境中进行避障时使用的前瞻模块的预训练网络,并且在避障过程中每一次与真实环境交互完之后都将交互数据存储,在达到一定数量后使用真实交互数据对当前正在使用的前瞻模块进行梯度下降训练,提升环境模型的精确度。
40.所述步骤1中,在二维仿真环境中进行训练,得到从激光雷达信息到避障策略的决策模块和对环境模型进行拟合并进行前向交互推演的前瞻模块,所述步骤5中在三维真实环境中进行避障,使用单一模态信息减小虚拟环境和真实环境之间的差距对传感器信息的影响,使用多模态信息的互补实现有效信息的获取,充分利用激光雷达的鲁棒性改善基于强化学习避障策略的迁移问题。
41.所述步骤2中,为了提高基于无模型强化学习的避障策略网络的效果,从网络结构方面进行改进,使用lstm网络和注意力机制提升网络的特征提取能力,改善避障效果。
42.所述步骤2中,针对性设计奖励函数以加速避障策略网络收敛,采用的奖励函数包括安全性能指标(碰撞障碍物负奖励、与障碍物的距离负奖励)、效率性指标(到达终点正奖励、相邻时刻与终点距离差分的正奖励)和轨迹优化性能指标(加速度大小的负奖励、相邻时刻间的角速度方向差值的负奖励),以避免奖励稀疏问题,改善训练效果。
43.所述步骤3中,为了增强神经网络对于环境模型的拟合效果,使用transformer等可以处理时序信息与上下文信息的网络结构代替单纯的全连接网络,可以根据交互序列中过往的环境状态与智能体动作估计下一时刻的环境状态。后续可以通过引入可以对交互关
系进行建模的图神经网络等结构进一步提升环境模型的准确性,从而改善避障效果。
44.所述步骤3中,将由激光雷达数据得到的二维栅格代价地图作为环境状态的描述形式,从而充分利用激光雷达数据中对于环境中存在障碍物时的空间信息的描述,提升环境模型的准确性。
45.所述步骤4中,利用二维仿真环境无需物理计算、计算资源要求低和可并行训练等优点,搭建多种不同复杂程度和不同障碍物特征的避障环境,提高训练得到的避障策略的避障性能与鲁棒性。
46.本实施例的基于无模型与有模型强化学习的室内机器人避障策略训练与部署方法,包括以下步骤:
47.步骤1:基于opencv建立二维仿真环境,基于像素点是否占用实现机器人碰撞与否的判断,基于布雷森汉姆直线算法获取机器人与周围360范围内障碍物的距离数组作为平面激光雷达数据,设置代表小车的圆形的驱动方式为差速驱动方式,运动学方程如式(1)所示:
[0048][0049]
其中,(x',y',θ')表示下一时刻的小车位置与朝向,(x,y,θ)表示当前时刻的小车位置与朝向,(v,ω)分别表示小车当前的线速度与角速度,单位分别为m/s和rad/s,δt表示速度控制周期,即当前时刻与下一时刻之间的时间间隔。
[0050]
由于不需要类似于gazebo等平台进行复杂的物理计算,该环境在小车的运动过程中计算量小、速度快、对实验设备的资源占用程度低,并且搭建环境时可以使用图片进行地图绘制。得到的二维环境是对三维环境的抽象,图片中的圆形和矩形对应三维环境中的圆柱体和立方体障碍物,不含三维世界中的不规则障碍物。
[0051]
步骤2:完成如图2所示的移动机器人决策模块的建立,利用深度强化学习算法,建立相应的神经网络模型,采用近端策略优化算法(proximal policy optimization algorithm,ppo),这是一种适用于高维连续动作空间的on-policy的策略梯度算法,根据奖励进行等价的优势函数计算,从而直接对选择行为的可能性进行调整,优势函数计算式如式(2)所示:
[0052]at
=δ
t
+(γλ)δ
t+1
+
…
+
…
+(γλ)
t-t+1
δ
t-1
ꢀꢀꢀꢀ
(2)
[0053]
其中,δ
t
=r
t
+γv(s
t+1
)-v(s
t
),λ为衰减因子,取值在0到1之间,此处取为0.95,γ表示环境奖励随时间的衰减因子,取值在0到1之间,此处取为0.99,r
t
表示t时刻的环境奖励,v(s
t
)和v(s
t+1
)分别表示当前时刻和下一时刻的环境状态价值。
[0054]
ppo使用actor-critic架构,critic网络负责估计状态价值函数,目的是为了估计状态价值函数更加准确。在本方法中,输出动作采用连续动作空间,所以actor网络负责输出动作分布参数,目的是输出的动作可以获得最大的优势函数值,在训练时可以通过对上述分布进行采样得到动作以增强探索性,测试时根据输出的动作分布参数中的均值直接输
出动作数值。为了提高对于采样数据的利用率,ppo算法采用重要性采样,使用当前优化的策略和探索环境的策略之间的差距对进行更新的损失函数进行校正,并通过预设参数对其进行限制,从而避免更新后的新策略过度远离旧策略。
[0055]
本发明对ppo算法针对含有动态障碍物的室内场景进行了如下改进:
[0056]
1)奖励函数重构:奖励函数是强化学习中驱动智能体学习策略的重要信号,包括安全性能指标(碰撞障碍物负奖励、到达终点正奖励、与障碍物的距离负奖励)和轨迹优化性能指标(线速度的加速度大小的负奖励、角速度变化量大小的负奖励)等。
[0057]
2)添加lstm网络层:ppo的actor和critic网络本身是多层感知机(mlp)结构,使用三层全连接层,不具备对序列数据进行长短期分别建模的能力,本发明通过在多层感知机中进行修改,把中间的全连接层修改为lstm层,用lstm网络的单元状态(cell state)拟合部分可观马尔科夫决策过程中的隐藏状态(hidden state),从而实现求解。
[0058]
3)添加注意力机制层:将注意力机制加入到处理局部地图的卷积层之间,使用掩码(mask)来实现注意力机制,掩码的原理在于通过另一层新的权重,将图片数据中关键的特征标识出来,通过前向传播过程对掩码生成网络进行学习训练,利用局部地图得到的特征图学习权重矩阵生成网络的参数,再用训练得到的权重矩阵施加在原特征图之上,让决策网络提取到每一张局部地图中更需要关注的区域中的特征信息,也就形成了注意力。
[0059]
状态空间由三部分构成:由校正后的激光雷达信息生成的二维栅格代价地图、目标点与小车的相对位置和小车动作,校正后的激光雷达信息和目标信息由感知模块生成,为了充分利用激光雷达信息中对于环境中二维空间的占据情况的描述信息,提高避障策略的鲁棒性,对激光雷达信息进行适度抽象处理,使用二维栅格地图描述机器人所处环境,并且根据激光雷达信息为栅格地图中的每个栅格分配一个代价值,从而可以得到代价地图,其中包括三种区域,分别是障碍物区域、未被探索区域和可自由移动区域。小车动作表示小车上一时刻输出的线速度与角速度。由于距离当前时刻最近的三帧感知信息对于当前时刻的决策更加重要,所以选取当前时刻及之前两帧共三帧感知信息作为状态输入。
[0060]
动作空间采用离散动作空间,考虑到强化学习算法ppo可适用于连续状态空间,且既适用于连续动作空间,也适用于离散动作空间,本发明采用ppo算法作为无模型强化学习的算法,线速度v和角速度ω的取值组合划分为9种,具体为:
[0061]
(1m/s,-0.5rad/s),(1m/s,0rad/s),(1m/s,0.5rad/s),(0.5m/s,-1rad/s),
[0062]
(0.5m/s,0rad/s),(0.5m/s,1rad/s),(0m/s,-1rad/s),(0m/s,0.1rad/s),
[0063]
(0m/s,1rad/s)
[0064]
步骤3:完成基于有模型强化学习的移动机器人前瞻模块的建立,使用带有transformer等可以处理时序信息与上下文信息的结构的深度神经网络对环境模型进行拟合。对于环境模型,采用二维栅格代价地图作为前瞻模型中神经网络对于环境状态的输入和输出形式。在进入新环境后仍然采用原模型进行训练,得到环境模型网络。向环境模型网络中输入环境状态向量与机器人动作向量,得到下一时刻的环境状态向量预估值与环境给予机器人的即时奖励预估值;之后利用得到的环境模型进行6个时间步的前向交互式推演,即将真实环境状态s0输入到决策模块中后,把动作空间中的所有动作a0分别输入到前瞻模块中,得到下一时刻的环境状态s1与奖励r0,之后将新的环境状态通过当前动作策略采样得到对应的动作a1,并将其输入到前瞻模块中再次得到下一时刻的环境状态与奖励,重复6个
时间步,得到包含环境状态、智能体动作与环境奖励的多条交互记录τ={s0,a0,r0,,s6,a6,r6},意为在当前时刻下,下一步动作分别采取动作空间中的某一动作后,后续一直采用当前避障策略与环境交互所能得到的交互情况,将其经过交互轨迹编码网络进行编码操作,将其映射到同样维度的向量空间中,把映射后的向量作为前瞻模块的输出结果。并且在下一次移动机器人与真实环境交互完成后,将交互过程存储在交互轨迹对应的数据集中,在完成100次导航过程之后,从该数据集中随机采样,根据真正的环境转移状态对前瞻模块中的环境模型进行误差项的梯度下降修正训练,从而实现前瞻模块中的环境模型估计对应的神经网络的误差修正,提高环境模型预估效果。
[0065]
步骤4:搭载待训练的决策模块,将仿真小车放在不同的仿真环境中进行训练,为了避免训练初期环境过于复杂导致的网络收敛速度过慢,探索成功率过低导致训练过程太慢等问题,采用由浅入深,逐步增加环境复杂度的设计思想,由最简单的静态障碍物,逐步增大环境面积和环境复杂度,逐渐完成决策模块的强化学习算法模型的训练。在模型训练后期,充分利用仿真环境可并行训练的优势,设置多种不同类型的环境(包括空旷型环境、密集型环境和狭缝类环境等),把仿真小车视作智能体,初始化大小为4000的经验回放池用于存放交互数据进行强化学习模型参数的更新,经验回放池可以存储智能体与环境的交互过程的信息,提高样本的利用效率,避免在线交互对于硬件性能的过高要求。并且回放池可以按照完整的交互数据进行存取,从而可以得到完整的交互序列用于训练含有lstm层的ppo网络。ppo算法对于经验池中的同一批样本分成多个微小批次(mini-batch)并重复利用多次,同时在计算策略梯度时限制参数更新幅度,从而避免产生训练不稳定性,在本发明中,把一批样本中的同一个完整导航过程中的交互数据划分为同一个微小批次,从而保持对应数据的时序相关性。随机初始化智能体位置与导航目标点,之后智能体根据获取的信息进行相应动作,获取环境给予的对应奖励和新的传感器信息,从而完成一次与环境的交互,把交互数据存入经验回放池,重复如上过程直至到达目标点或与障碍物发生碰撞后,本轮交互结束,回到起点,进行下一轮交互。
[0066]
具体训练过程如下,首先初始化critic网络q
θ
和actor网络对应参数分别为θ,初始化经验回放池。把前瞻模块输出的交互轨迹序列向量、感知模块输出的环境特征向量、目标点信息向量和小车上一时刻规划得到的线速度与角速度向量拼接,作为状态输入s
t
,经过actor网络,得到智能体动作分布参数,在本发明中,对于动作空间中的9种动作组合的序号赋予等概率权重,并将其转化为概率构建离散分布用于后续采样操作,具体操作实现过程中,通过使用torch中提供的torch.distributions.categorical()接口实现该概率分布的构建,并对该分布进行采样得到动作指令向量序号,对应得到动作指令记为a
t
,即线速度与角速度,之后智能体根据动作指令进行动作,获取环境给予的对应奖励r
t
和新的传感器信息,经过地图处理模块可得到下一时刻的状态输入s
t+1
,从而完成一次与环境的交互,把交互数据和结束标志(s
t
,a
t
,r
t
,s
t+1
,done)存入经验回放池,重复如上过程至到达目标点或与障碍物发生碰撞后,本轮交互结束,回到起点,进行下一轮交互。待经验回放池中的数据达到一定数量后,取出数据更新智能体的网络参数。从中随机取出8条完整导航序列中的所有交互数据,之后开始更新网络。
[0067]
更新actor网络,actor网络的目的是输出的动作优势尽可能大,取出交互数据后,首先利用critic网络计算得到各时刻所处状态的状态价值,之后使用式(2)计算得到每个
状态下的优势函数使用式(3)作为loss函数,使用梯度下降法更新多步梯度。
[0068]
l
clip
(θ)=e
t
[min(r
t
(θ)a
t
,clip(r
t
(θ),1-,1+)a
t
)]
ꢀꢀꢀꢀ
(3)
[0069]
其中,表示新旧策略之间差异程度,a
t
表示选取动作,s
t
表示状态,π表示策略映射函数。
[0070]
更新critic网络,基于多步td方法,使用式(4),从当前状态开始,用每一步环境返回的奖励与折扣因子相乘后累加,得到折扣回报g
t
,使用g
t
和critic网络预测的当前状态价值v(s
t
)之间的均方损失函数作为loss函数进行梯度下降训练。
[0071]gt
=r
t+1
+γr
t+2
++γ
t-trt+1
+γ
t+1-t
v(s
t+1
) (4)
[0072]
其中,g
t
表示折扣回报,γ表示奖励折扣参数,v(s
t+1
)表示critic网络输出的t+1时刻的状态价值,r
t+1
、r
t+2
和r
t+1
分别表示对应时刻的环境奖励。
[0073]
之后清空缓存池数据,使用新的网络参数输出动作,与环境继续交互,直至训练结束。训练完毕后,得到在二维仿真环境中训练好的决策模块。
[0074]
步骤5:将由视觉信息和激光雷达信息得到的伪激光雷达信息作为辅助任务进行单独训练,具体步骤如下:视觉信息包括彩色图像信息和深度图像信息。选择轻量化的mobilenet v2网络作为语义分割网络的主干网络,在mit开源的经典语义分割数据集ade20k室内物品数据集中进行语义分割模型训练,实现对彩色图像中的不同像素点打上代表类别的标签,之后使用可通行与不可通行区域的掩码图层和人类区域与非人类区域的掩码图层对分割后的图像进行依次处理,得到含有对应三种标签指示类别,包括可通行区域、不可通行区域和人类区域,并且从真实环境中拍摄100张图片组成测试集,使用网络更复杂、准确度更高但是实时性较差的resnet网络作为主干网络的语义分割网络的分割结果作为真值,进行测试。得到语义分割图后,将同一时刻的深度图像与彩色图像进行配准,由于深度摄像头的视角范围小于rgb图像,所以配准过程是把深度图像的像素点附着上对应的rgb数据,得到配准后的图像,利用分割后的彩色图像将深度图像进行降维处理,只考虑不可通行区域的距离数值,并且对于人类区域的距离数值进行膨胀层处理,得到伪激光雷达数据。对于激光雷达传感器,激光雷达传感器获取的点云图可以提供深度信息,但是计算量较大。因此需要对其进行投影处理,在常见的前向视角投影和鸟瞰视角投影中,基于前向视角的极点栅格映射可以不丢失点云图中的点,所以采用极点栅格映射方法处理点云图数据,得到以自车为中心的全向距离数组。之后使用伪激光雷达数据对相近时刻的激光雷达数据进行校正,得到校正后的激光雷达数据。辅助任务完成后,可以得到传感器信息处理模块,之后将激光雷达和rgb-d视觉传感器安装在自动导引小车(本发明采用turtlebot 2小车作为实验车辆)上,激光雷达和rgb-d视觉传感器都安装在小车前方,并给激光雷达(水平面360
°
范围)预留出扫描的空间,避免遮挡,视觉传感器指向前进方向,本发明使用kinect v2作为视觉传感器。将机器人放在真实场景中,真实场景可以与虚拟环境不同,用于测试导航方法的泛化性能。对机器人施加目标点的导航指令,即目标位置相对于机器人的位置向量,机器人的目标点信息处理模块对指令加以处理,得到目标点向量(x
t
,y
t
)。
[0075]
步骤6:在真实环境中进行避障任务,机器人每个时刻由安装好的视觉传感器与激光雷达传感器获取rgb-d图像信息、激光雷达点云信息,将其和导航目标点信息输入到训练
好的感知模块中,利用步骤4得到的感知信息处理模块进行信息处理,获取环境特征向量,将得到的环境特征向量和小车当前线速度与角速度向量拼接后,分为以机器人为中心的局部栅格地图和特征向量两种信息,通过两种通路输入由步骤3中完成在仿真环境中的避障任务而得到的决策模块与前瞻模块,ppo算法会根据输入的特征向量与前瞻模块经过前向推演得到的交互轨迹序列,输出该时刻机器人的动作指令,直至机器人到达终点,完成导航任务。
[0076]
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本技术的权利要求范围内的实施例都属于本发明所保护的范围内。
技术特征:
1.一种基于有模型与无模型强化学习的机器人避障方法,其特征在于,所述方法包括以下步骤:步骤1:完成仿真环境的建立,仿真环境使用二维环境进行搭建,用于后续进行机器人避障策略的训练;步骤2:完成基于无模型强化学习的移动机器人决策模块的建立,利用深度强化学习算法,建立相应的神经网络模型,采用近端策略优化算法ppo,根据奖励进行等价的优势函数计算,从而直接对选择行为的可能性进行调整,使用actor-critic架构,critic网络负责估计状态价值函数,actor网络负责输出动作概率,输出动作采用离散动作空间,ppo算法采用重要性采样,使用当前优化的策略和探索环境的策略之间的差距对进行更新的损失函数进行校正,并通过预设参数对其进行限制,从而避免更新后的新策略过度远离旧策略;步骤3:完成基于有模型强化学习的移动机器人前瞻模块的建立,使用带有transformer结构的深度神经网络对环境模型进行拟合,在进入新环境中后仍然采用原模型进行训练,得到环境模型网络;向环境模型网络中输入环境状态向量与机器人动作向量,得到下一时刻的环境状态向量预估值与环境给予机器人的即时奖励预估值;之后利用得到的环境模型进行6个时间步的前向交互式推演,得到包含状态、时间步与环境奖励的多条交互记录,将其经过轨迹编码网络处理后,作为前瞻模块的输出结果;并且在下一次移动机器人与真实环境交互完成后,将真正的交互状态存入轨迹交互数据集中,在完成设定数量的导航过程之后,对前瞻模块中的环境模型进行误差项的梯度下降修正训练,从而实现纠偏;步骤4:搭载待训练的决策模块和前瞻模块,将仿真小车放在不同的仿真环境中进行训练,并且充分利用仿真环境可并行训练的优势,设置多种不同类型的环境,把仿真小车视作智能体,随机初始化智能体位置与导航目标点,之后智能体根据获取的信息进行相应动作,获取环境给予的对应奖励和新的传感器信息,从而完成一次与环境的交互,把交互数据存入经验回放池,重复如上过程直至到达目标点或与障碍物发生碰撞后,本轮交互结束,回到起点,进行下一轮交互;待经验回放池中的数据达到设定数量后,取出每次导航过程中的完整序列数据,首先计算状态价值和优势函数,以最大化actor网络的动作输出的优势为目的,计算actor网络的损失函数,并且使用梯度下降法更新网络参数,然后以最小化critic网络的输出与折扣回报之间的差距为目的,计算critic网络的损失函数,使用梯度下降更新网络参数,再使用新的网络参数输出动作,与环境继续交互,直至训练结束;训练完毕后,得到训练好的决策模块;在训练过程中,环境给予的奖励是人为进行设置的;步骤5:在真实环境中进行避障,在小车上安装激光雷达与rgb-d视觉传感器,激光雷达与视觉传感器均安装在小车前方,使用多传感器融合模块处理多传感器信息,得到伪激光雷达形式的信息作为感知模块输出,将机器人放在真实场景中,对机器人施加目标点的导航指令,机器人的目标点信息处理模块对指令加以处理,得到目标点向量,将感知模块输出的向量与目标点向量拼接得到环境特征向量;步骤6:将步骤5中得到的环境特征向量输入训练好的决策模块,ppo算法会根据输入的特征向量输出该时刻机器人的动作指令,直至机器人到达终点,完成导航任务。2.如权利要求1所述的一种基于有模型与无模型强化学习的机器人避障方法,其特征在于,在所述步骤3中,使用在仿真环境中训练好的前瞻模块作为将机器人放置在新环境中
进行避障时使用的前瞻模块的预训练网络,并且在避障过程中每一次与真实环境交互完之后都将交互数据存储,在达到设定数量后使用真实交互数据对当前正在使用的前瞻模块进行梯度下降训练。3.如权利要求1或2所述的一种基于有模型与无模型强化学习的机器人避障方法,其特征在于,所述步骤1中,在二维仿真环境中进行训练,得到从激光雷达信息到避障策略的决策模块和对环境模型进行拟合并进行前向交互推演的前瞻模块;所述步骤5中,在三维真实环境中进行避障,使用单一模态信息减小虚拟环境和真实环境之间的差距对传感器信息的影响,使用多模态信息的互补实现有效信息的获取,充分利用激光雷达的鲁棒性改善基于强化学习避障策略的迁移问题。4.如权利要求1或2所述的一种基于有模型与无模型强化学习的机器人避障方法,其特征在于,所述步骤2中,从网络结构方面进行改进,使用lstm网络和注意力机制提升网络的特征提取能力。5.如权利要求1或2所述的一种基于有模型与无模型强化学习的机器人避障方法,其特征在于,所述步骤3中,使用transformer等可以处理时序信息与上下文信息的网络结构代替单纯的全连接网络,可以根据交互序列中过往的环境状态与智能体动作估计下一时刻的环境状态;后续可以通过引入可以对交互关系进行建模的图神经网络结构进一步提升环境模型的准确性。6.如权利要求1或2所述的一种基于有模型与无模型强化学习的机器人避障方法,其特征在于,所述步骤3中,将由激光雷达数据得到的二维栅格代价地图作为环境状态的描述形式,从而充分利用激光雷达数据中对于环境中存在障碍物时的空间信息描述。7.如权利要求1或2所述的一种基于有模型与无模型强化学习的机器人避障方法,其特征在于,所述步骤4中,针对性设计奖励函数以加速避障策略网络收敛,采用的奖励函数包括安全性能指标、效率性指标和轨迹优化性能指标,所述安全性能指标包括碰撞障碍物负奖励和与障碍物的距离负奖励,所述效率性指标包括到达终点正奖励和相邻时刻与终点距离差分的正奖励,所述轨迹优化性能指标包括加速度大小的负奖励和相邻时刻间的角速度方向差值的负奖励,以避免奖励稀疏问题。8.如权利要求1或2所述的一种基于有模型与无模型强化学习的机器人避障方法,其特征在于,所述步骤4中,利用二维仿真环境无需物理计算、计算资源要求低和可并行训练的特点,搭建多种不同复杂程度和不同障碍物特征的避障环境。
技术总结
一种基于有模型与无模型强化学习的机器人避障方法,属于机器人导航领域,将有模型强化学习作为前瞻模块加入到无模型强化学习的框架中,使用有模型强化学习提高无模型强化学习的样本数据利用效率,并且通过对未来一段时间内的机器人与周围环境进行交互推演,避免机器人选择可能使得自己陷入危险境地的动作,使用无模型强化学习作为主要决策算法,减小环境模型不精确带来的影响;在二维仿真环境中进行避障策略训练,在数据集上离线进行感知模块设计与搭建,得到输出信息形式为伪激光雷达数据的感知模块,之后结合二维仿真环境得到的避障策略网络,可以实现在真实环境中的避障。本发明提升避障算法性能。明提升避障算法性能。明提升避障算法性能。
技术研发人员:张建明 姜朋 张在吉 徐韩 夏钰婷
受保护的技术使用者:浙江润琛科技有限公司
技术研发日:2023.06.16
技术公布日:2023/9/6
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
