一种基于深度强化学习的移动机器人导航避障方法

文档序号:26539132发布日期:2021-09-07 21:01阅读:194来源:国知局
一种基于深度强化学习的移动机器人导航避障方法

1.本发明涉及移动机器人的导航避障方法,尤其涉及一种基于深度学习和强化学习相结合的移动机器人导航避障方法,属于移动机器人领域。


背景技术:

2.机器人是融合机械、电子、计算机、控制、人工智能等多领域技术交叉的装备,特别是移动机器人,因其自主控制、灵活运动特点,在人类生产生活各领域得到广泛应用。移动机器人指一类可以通过自身传感器探知外界环境,实现在复杂环境中连续自主行驶的智能机器人,其涉及到信息感知、运动规划、自主控制等学科领域,是人工智能技术和计算机信息科学的最新成果。
3.移动机器人最重要的能力是导航,即能够在工作范围空间内躲避障碍物,实现从起始位置到目标位置安全运动。近年来移机器人应用已经拓展到深海、极地等户外未知环境,对移动机器人导航功能提出更高要求。其中自主导航和运动控制技术是解决移动机器人在非结构和环境条件未知情况下轨迹规划运动的关键,因此对移动机器人导航控制方法研究具有重要的理论价值和应用价值。
4.深度学习和强化学习是机器学习领域重要的两个分支,国内外学者一直将其作为研究的热点,尤其是用在移动机器人领域。
5.强化学习的学习过程是动态的、不断交互的过程,所需要的数据也是通过与环境不断交互所产生的。强化学习所涉及的对象比较多,比如动作、环境、状态转移概率和回报函数等。另外,深度学习如图像识别和语音识别解决的是感知问题,强化学习解决的是决策问题。所以,将发展起来的深度学习技术与强化学习算法结合而产生的深度强化学习算法作为未来人工智能发展的趋势。
6.现实中通常是一个存在人、机、物共存的环境,环境中多个移动体和人以及其他装备物在狭小拥挤环境下需要进行轨迹规划运动,使得移动机器人躲避障碍物是其在拥挤场景中导航所必需的能力。作为人类,我们天生就有通过观察他人来调整自己行为的能力,所以我们可以很容易地穿过人或其他物体。然而,对于移动机器人来说,在动态和拥挤的场景中进行无碰撞导航仍然是一项艰巨的任务。传统的移动机器人导航方法,通常将移动的智能体当作静态障碍物或者根据特定的交互规则进行下一步动作,这些传统方法都是通过被动反应来防止碰撞或者手动定义函数来保证安全性,从而导致机器人短视、反应慢、不安全等问题。


技术实现要素:

7.为了克服现有技术的不足,基于深度学习和强化学习的研究,本发明提出了一种基于深度强化学习的移动机器人导航避障方法,可以预测人类的动态,解决导航避障过程中机器人短视、反应慢等问题,并且加入一种安全机制,防止导航过程中遇到突发情况。最后,设计一个动态的局部目标机制,可以减少导航避障过程的时间。
8.本发明解决其技术问题所采用的技术方案如下:
9.一种基于深度强化学习的移动机器人导航避障方法,包括以下步骤
10.1)采用深度学习中深层循环神经网络与强化学习中的时间差分法训练价值网络模型从而实现机器人导航避障;
11.2)将机器人和每个人简化为圆,定义机器人在t时刻状态:
12.s
t
=[p
x
,p
y
,v,θ,g
x
,g
y
,r,v
pref
]
ꢀꢀ
(1)
[0013]
其中,p
x
,p
y
,表示机器人当前位置,v表示机器人当前速度,θ表示机器人的方位角,g
x
,g
y
表示机器人目标位置,r表示机器人的半径,v
pref
表示机器人的首选速度;
[0014]
定义每个人在t时刻状态:
[0015][0016]
定义奖惩函数:
[0017][0018]
其中,a
t
=v
t
表示机器人的动作,d
min
表示在δt时间内机器人与人之间最小间隔距离,d
comf
表示人能够忍受的舒适距离,d
goal
表示机器人当前位置到目标点的距离;
[0019]
3)将s
t
与o
t
输入到带初始权重的深层循环神经网络中,机器人模仿人类专家的导航策略获得演示经验d,并将d存入初始化的经验池e中,再利用随机权重值θ初始化价值网络v,将目标价值网络v'初始化为当前价值网络v,循环每次事件,得到最优价值网络v;
[0020]
4)建立二维栅格地图,设置全局的目标点,利用预训练好的价值网络v,不断更新机器人与人的联合状态:
[0021]
k
t
=[s
t
,o
t
]
ꢀꢀ
(4)
[0022]
5)再利用rrt*算法规划出一条全局最优的路径,制定最优策略
[0023][0024]
其中,a表示动作空间的集合,γ∈(0,1)表示衰减因子,δt表示两个动作之间的时间间隔,v
pref
表示首选速度,v
*
(k
t+δt
)表示在t+δt时刻的最优值;
[0025]
6)通过最优策略选择最优动作a
t
,即最优速度v
t
,实现局部避障,直到机器人到达目标点位置。
[0026]
进一步,所述步骤1)中,价值网络模型由交互模块、池化模块和规划模块三个部分组成,交互模块使用多层感知器将每个人的状态和机器人的状态嵌入到固定长度的向量e
i

[0027]
e
i
=ψ
e
(s
t
,o
t
;w
e
)(i=1,2,3,

n)
ꢀꢀ
(6)
[0028]
其中,ψ
e
是一个具有激活函数的多层感知器,用来对人与机器人交互进行建模,w
e
是嵌入权重;
[0029]
再将嵌入向量e
i
输入到后续多层感知器中:
[0030]
h
i
=φ
h
(e
i
;w
h
)(i=1,2,3,

n)
ꢀꢀ
(7)
[0031]
其中,φ
h
是一个具有非线性激活函数的全连接层,得到机器人与第i人的交互特征,w
h
是网络权重;
[0032]
池化模块首先将交互嵌入向量e
i
转化为注意力分数β
i

[0033][0034]
β
i
=ρ
β
(e
i
,e
m
;w
β
)(i=1,2,3,

n)
ꢀꢀ
(9)
[0035]
其中,e
m
是将所有个体平均池化得到的固定长度的嵌入向量,ρ
β
是一个具有激活函数的多层感知器;
[0036]
再将给出两两交互向量h
i
和相应的关注分数β
i
,最后计算人群是用所有对的加权线性组合表示:
[0037][0038]
规划模块是用来估计导航过程中机器人和人群的联合状态值:
[0039]
v=g
v
(s
t
,c
t
;w
v
)
ꢀꢀ
(11)
[0040]
其中,g
v
是一个具有激活函数的多层感知器,w
v
是网络权重。
[0041]
再进一步,所述步骤3)中,循环每次事件过程如下:
[0042]
初始化随机联合状态k
t
,循环每个事件的每一步,利用概率ε选择一个随机动作a
t
,若小概率事件没有发生,则用贪婪策略选择当前值函数最大的动作:
[0043][0044]
不断更新当前的状态和奖励值,将状态和奖励值存入到经验回放池中,每3000步更新一次经验池,通过梯度下降法更新当前的价值网络,直到机器人到达最终状态,结束每次事件的内循环,将当前网络更新为目标网络,当达到事件次数后,得到价值网络模型v。
[0045]
更进一步,所述步骤4)中,加入一种基于地图的速度筛选机制,形成安全的行动空间,使机器人能够避开环境中已知的障碍物,在每次决策的过程中,安全动作空间由机器人当前位置p
t
、二维网格图m和初始化动作空间构成a,即a
safe
=(p
t
,m,a),对于动作空间中的每个速度,进行正向模拟,观察机器人是否会与地图中的障碍物发生碰撞。
[0046]
所述步骤5)中,在建立二维栅格地图上,用rrt*算法在机器人当前位置和全局目标之间生成一条代价最小的全局路径,然后遍历全局路径上的所有路径点,以机器人的当前位置为圆心,r为半径的圆内找到最近的点,将其设为动态局部目标。
[0047]
本发明的有益效果主要表现在:(1)通过引入多层感知器,加快了强化学习的训练时间和收敛速度;(2)训练出来的模型可以预测人类的动态,解决导航避障过程中机器人短视、反应慢等问题;(3)设计了一个动态的局部目标机制,使机器人在局部规划中寻找最优路径,减少了导航避障过程的时间;(4)引入一个基于地图的动作筛选机制作为动态安全动作空间;
附图说明
[0048]
图1是机器人导航避障方法流程图;
[0049]
图2是价值网络训练流程图;
[0050]
图3是训练仿真结果图。
具体实施方式
[0051]
下面结合附图对本发明作进一步描述。
[0052]
参照图1~图3,一种基于深度强化学习的移动机器人导航避障方法,包括以下步骤:
[0053]
步骤1):在一个二维空间中,将机器人和每个人视为一个圆,一个机器人穿过n个人向目标点移动。对于每个代理人(机器人或者人),位置p=[p
x
,p
y
],速度v=[v
x
,v
y
]和半径r可以被其他代理人观测到。目标位置g=[g
x
,g
y
]、方位角θ和首选速度v
pref
无法被其他代理观察到。s
t
表示机器人的状态,表示在t时刻人的状态。通过将机器人的状态与人的可观察状态连接起来,可以得到t时刻所有n+1代理人的关节状态k
t
=[s
t
,o
t
]。机器人可以根据导航策略确定在t时刻动作指令能立刻改变速度:v
t
=a
t
=π(k
t
)。
[0054]
使用最优策略导航π
*
(k
t
),在t时刻关节状态k
t
的最优值如下:
[0055][0056]
式(13)中,t表示从t时刻状态到最终状态步数总和,δt表示两个动作之间的时间间隔,γ∈(0,1)表示衰减因子,v
pref
表示首选速度,r(k
t
,a
t
)表示在t时刻内相应的奖励。
[0057]
最优策略是通过最大累计回报制定的,定义如下:
[0058][0059]
式(5)中,a表示动作空间的集合,表示在t+δt时刻的最优值。
[0060]
奖惩函数定义如下:
[0061][0062]
式(3)中,d
min
表示δt时间内机器人与人之间最小间隔距离,d
comf
表示人能够忍受的舒适距离,d
goal
表示机器人当前位置到目标点的距离。
[0063]
步骤2:价值网络的模型总共包含交互模块、池化模块和规划模块三部分。交互模块是对人与机器人进行建模,并通过粗粒度的局部映射对人与人交互进行编码;池化模块通过自我注意机制将交互作用聚合成固定长度的嵌入向量,以数据驱动的方式学习每个人的相对重要性和人群的集体影响;规划模块是用来估计导航过程中机器人和人群的联合状态值。具体步骤如下:
[0064]
步骤2.1:使用多层感知器将第i个人的状态和机器人的状态嵌入到固定长度的向量e
i
中:
[0065]
e
i
=ψ
e
(s
t
,o
t
;w
e
)(i=1,2,3,

n)
ꢀꢀ
(6)
[0066]
式(16)中,ψ
e
(
·
)是一个内嵌函数,w
e
是嵌入权重。
[0067]
步骤2.2:将嵌入向量e
i
输入到后续多层感知器中,得到机器人与人的两两交互特征:
[0068]
h
i
=φ
h
(e
i
;w
h
)(i=1,2,3,

n)
ꢀꢀ
(7)
[0069]
式(17)中,φ
h
(
·
)是全连接层,w
h
是网络权重。
[0070]
步骤2.3:将交互嵌入e
i
转化为注意力分数β
i

[0071][0072]
β
i
=ρ
β
(e
i
,e
m
;w
β
)(i=1,2,3,

n)
ꢀꢀ
(9)
[0073]
式(19)中,e
m
是将所有个体平均池化得到的固定长度的嵌入向量,ρ
β
(
·
)是一个具有激活函数的多层感知器。
[0074]
步骤2.4:对于每个人,给出两两交互向量h
i
和相应的关注分数β
i
,最后人群是用所有对的加权线性组合表示:
[0075][0076]
步骤3:如图2所示,使用强化学习中时间差分法去训练价值网络。将价值网络v记为当前的价值网络,初始化训练次数为0,设置经验回放池容量为50000,取样数量为100,设定目标网络v',初始化随机关节状态,训练次数设为10000,根据ε贪心策略在状态s
t
选择动作:
[0077][0078]
得到回报r
t
和下一个状态s
t
',在状态s
t
'下根据ε贪心策略得到a
t
',将更新的回报值和状态存放到经验池中,每3000步更新一次经验池,通过梯度下降法更新当前的价值网络,直到机器人到达最终状态或者超过所设定的最大时间t
max
为25s,否则,将当前网络更新为目标网络,当达到训练次数后,得到价值网络v。
[0079]
步骤4:通过激光雷达建立二维网格地图,导航过程先利用rrt*算法规划出一条全局路径,然后利用深度强化学习方法实现局部动态避障,通过利用训练好的价值网络v,机器人可以根据最优策略选择动作,将机器人与人的半径设为0.3m,机器人的首选速度设为0.25m/s,人的最小舒适距离设为0.5m,动态局部目标设定为4m,当环境空间没有动态障碍物,机器人可以直接朝着目标点移动。当有动态障碍物时,机器人可以快速、安全的躲开障碍物。通过引入动态局部目标、安全机制可以有效地提高移动机器人的导航时间和效率。
[0080]
本说明书的实施例所述的内容仅仅是对发明构思的实现形式的列举,仅作说明用途。本发明的保护范围不应当被视为仅限于本实施例所陈述的具体形式,本发明的保护范围也及于本领域的普通技术人员根据本发明构思所能想到的等同技术手段。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1