1.一种机器人无地图导航方法,其特征在于,包括如下步骤:
S1:初始化训练环境和神经网络模型:
初始化训练环境的方法如下:
加载已构建的Gazebo仿真工业环境和移动机器人,设置移动机器人的参数,所述移动机器人的参数包括连续线速度范围、连续角速度范围、激光雷达维度、和最大步数,构建的Gazebo仿真工业环境的方法为通过Gazebo仿真环境,在地图中设置静态的地标和动态的障碍物,模拟工业环境;在每个训练回合开始时随机设定机器人的朝向、出发点和目标点,以提高导航策略的泛化性;
所述神经网络模型包括四个网络,Actor网络,Actor目标网络,Critic网络和Critic目标网络;所述Actor网络提供当前状态的策略,通过策略梯度进行更新;所述Actor目标网络用于提供下一个状态的策略,网络参数复制于Actor网络;所述Critic网络输出当前时刻状态‑动作的Q值函数值,通过最小化损失函数进行更新,所述Critic目标网络用于近似估计下一时刻的状态‑动作的Q值函数,网络参数复制于Critic网络;初始时,随机初始化Actor网络和Critic网络,并将Actor网络和Critic网络的网络参数分别复制到Actor目标网络和Critic目标网络中;Actor目标网络和Critic目标网络分别与Actor网络和Critic网络结构完全相同;Actor网络和Critic网络均采用多层感知机作为主干每个隐藏层都采用RELU作为激活函数;Actor网络的输入为机器人观测到的状态,最后一个隐藏层通过两个独立的分支回归到线速度和角速度,假设机器人只向前移动,因此把线速度通过sigmoid函数限制在(0,1)之间,角速度通过Tanh函数限制在(‑1,1)之间;Critic网络的输入为机器人观测到的状态和Actor网络输出的连续动作,最后一个隐藏层回归到当前动作的价值Value;
S2:机器人观测环境并执行动作:
机器人观测环境,将激光雷达信息zt,目标信息gt和障碍物信息ot构成28维状态空间st={zt,gt,ot};其中 覆盖机器人的360度,是t时刻24维激光传感器观测数据;目标信息gt包括{ht,dg},ht为当前位置机器人朝向与目标点之间的角度差,即目标角度减去当前角度,dg为机器人与目标点的欧几里得距离,可以计算如下:其中xg和yg表示目标的横坐标和纵坐标,xt和yt表示机器人的横坐标和纵机器人与目标的距离,θt表示机器人的朝向角;
通过传感器观测数据可以计算出障碍物的相关信息{do,θo},do为激光雷达扫描数据中最近障碍物的距离,θo为激光雷达扫描数据中最近障碍物的角度,可以计算如下:do=min(zt) (3)
将机器人观测到的状态输入到Actor网络中,根据随机行为策略生成动作at,如下式:μ
at=μ(st|θ)+χt (5)
μ
其中,t表示t时刻,μ表示行为策略,st表示观测到的状态,θ 表示Actor网络的参数,χt表示行为策略的探索噪声;
然后,机器人执行动作,与Gazebo环境互动,获得奖励rt和下一时刻的状态st+1;
S3:获取外在奖励:
外在奖励由角度奖励、障碍物奖励和目标奖励构成,分别为:
其中ht为t时刻机器人的朝向, 为当前时刻机器人与障碍物的距离, 代表当前时刻机器人与目标点的距离, 代表上一时刻机器人与目标点的距离, 代表机器人起始点与目标点的距离;为了鼓励机器人到达目标点,减少碰撞概率,对于到达和碰撞也应该有相应的奖励和惩罚,那么总共的外在奖励 为:表示角度奖励, 表示障碍物奖励, 表示目标奖励;
S4:获取全局好奇心奖励:
所述全局好奇心奖励包括基于内在好奇心模块的全局好奇心奖励和基于自适应相似度聚类的局部好奇心奖励;
其中,在多回合间,采用内在好奇心模块构建全局好奇心奖励,所述内在好奇心模块包含:编码器,前向动力学模型和逆向动力学模型;编码器用于将移动机器人当前时刻的状态和下一时刻的状态转换为状态的特征,前向动力学模型用于通过当前时刻移动机器人的状态特征和行动来预测移动机器人下一个状态的特征,逆向动力学模型是通过移动机器人下一状态的特征和移动机器人当前时刻状态的特征来预测移动机器人的行为;首先将状态st和st+1通过编码器进行编码,得到特征向量φ(st;θE)和φ(st+1;θE),后简写为φ(st)和φ(st+1),θE表示编码器的参数;然后输入到逆向动力学模型g,输出预测的动作 即其中,θI表示逆向动力学模型的参数通过优化式(12)来训练逆向动力学模型和编码器,其中 是at的预测值,LI度量二者的差异,at表示移动机器人的实际行动,LI表示实际行动与预测行动的损失,θI表示逆向动力学模型的参数,通过最小化行动损失来更新逆向动力学模型的参数和编码器的参数;
将φ(st)和at输入到前向动力学模型f中,预测下一个状态的特征 即:θF表示前向动力学模型的参数;
通过优化式(14)学习前向动力学模型,其中 是φ(st+1)的预测值,LF度量二者的差异;
LF表示预测状态特征与实际状态特征的损失,min表示通过最小化损失来更新前向动力学模型的参数;
将预测的下一时刻的状态特征和实际的下一时刻状态特征的误差值 即为全局好奇心奖励,如式(15)所示:其中η>0,是一个比例系数;通过式(11),(12),(14)训练模型,机器人对观测过的状态具有更好的预测能力,全局好奇心奖励降低,对于未观测过的状态,预测能力较差,全局好奇心奖励会提高,这就使得机器人能够更多地探索未探索过的环境,提升机器人的探索性,促使机器人找到最优策略;但是在多回合后,预测差法对状态的新鲜感会降低,导致可能错过有潜力的状态,因此在单回合间,构建局部好奇心奖励;
S5:获取局部好奇心奖励:
在单回合内,采用自适应相似度聚类的方法构建局部好奇心奖励,提升机器人的探索效率,首先,在当前回合状态数大于等于3时,将当前状态与当前回合过去的每一个状态形成若干个状态对,分别求每一个状态对之间的欧氏距离dn,作为状态相似度;
n表示状态数,t表示t时刻, 表示t时刻第一个状态的第28维, 表示t时刻第n个状态的第28维;
q为相似性计数因子,初始值为0,将欧氏距离与预先设定的阈值ε作比较,计算参数q的值,即:q=q+1,if dn<ε (17)
比较所有状态对的欧氏距离后,若q>0,将所有小于阈值的欧氏距离与阈值的差记作若q=0,将所有欧氏距离通过K‑Means算法聚成m类,获得距离类集合{D1,D2,...,Dm},并分别求每一类的欧氏距离均值,进而求出局部好奇心奖励,如式(13)所示:其中c1,c2均为超参数,K和M为设定的奖励限制最大值, 代表聚类后的相似度类的均值; 为局部好奇心奖励; 表示所有小于阈值的欧氏距离与阈值的差的平均值,min表示取最小值;
机器人训练分为探索,探索利用和利用阶段,由于局部好奇心奖励是单回合内构建的奖励,无法适应机器人训练的不同阶段,添加自适应贪婪因子以根据机器人与环境的交互程度来主动调整局部好奇心奖励的大小,如式(14)所示:其中conv代表成功抵达目标点次数,episode代表回合数,dg代表当前与目标点的距离,dG代表起始点与目标点的距离;e表示自然对数;表示自适应贪婪因子;
因此,总体好奇心奖励 为
S6:将经验四元组存入经验池,定期更新神经网络模型的网络参数;
将外在奖励与好奇心奖励相加即可得到机器人执行动作at获得的奖励rt为了充分利用采样数据和减少数据间的关联性,采用经验回放技术,将状态、行动、奖励和下一时刻的状态构成的四元组{st,at,rt,st+1}储存在经验回放池中,不断存储经验,直到经验回放池达到预先设定阈值;
如果经验回放池达到预先设定阈值,就对经验回放池内的数据进行随机采样,从经验回放池中批量随机采样后,通过最小化损失函数来更新Critic网络:L表示Critic网络的损失函数,N表示采样数据的数量,yi表示前时刻状态‑动作的目标QQ Q值,Q(si,ai|θ)表示当前时刻状态‑动作的Q值函数,θ 表示Critic网络的参数,i表示第i个采样数据,si表示第i个采样数据中的状态,ai表示第i个采样数据中的行动;
μ' Q'
其中yi=ri+γQ'(si+1,μ'(si+1|θ )|θ ),通过Actor目标网络和Critic目标网络计算;
ri表示第i个采样数据中的奖励,γ表示折扣因子,用于衡量未来奖励的重要性,人为设定,Q’表示在si+1状态通过Actor目标网络选择动作下Critic目标网络计算的Q值,μ'表示Actorμ Q′目标网络选择的动作,θ表示Actor目标网络的参数,θ 表示Critic目标网络的参数;
接着,通过策略梯度来更新Actor网络:
其中, 表示策略梯度,J表示表示策略的性能,即期望的累积回报,通过最大化J的梯度来更新策略网络的参数,以使得策略能够获得更高的累积回报;N表示采样数据的数量, 表示对动作a的值函数的梯度,μ表示Actor网络输出的动作,即策略函数,iμ表示第i个采样数据, 表示对策略函数的参数θ的梯度,θ表示Actor网络的参数;
然后,为保证学习的稳定性,通过采样“软更新”更新Actor目标网络和Critic目标网络:Q' Q Q'
θ ←——τθ+(1‑τ)θ (24)
μ' μ μ'
θ ←——τθ+(1‑τ)θ
τ表示软更新的速率,是一个超参数,取值范围为0到1之间;τ越接近0,目标网络更新得越慢;τ越接近1,目标网络更新得越快;
S7:重复步骤S2‑步骤S6。