APP下载

未知环境下移动机器人自主避障算法的研究

2021-05-21问泽藤温淑慧

燕山大学学报 2021年3期
关键词:移动机器人障碍物神经网络

问泽藤,温淑慧,*,张 迪

(1.燕山大学 智能控制系统与智能装备教育部工程研究中心,河北 秦皇岛 066004; 2.燕山大学 工业计算机控制工程河北省重点实验室,河北 秦皇岛 066004)

0 引言

自主避障能力是移动机器人进行路径规划必不可少的基本能力之一,研究早期的大部分学者致力于研究静态的、单个障碍物的简单情形[1-2],并取得了不错的成果,然而现实生活环境是非结构化且未知的,机器人对周围环境的感知会因为各种干扰存在不确定性,如何在未知的非结构化环境中实现机器人高效的自主避障与目标导航,至今仍是一个研究热点与难点。

随着人工智能技术逐渐地发展,一种基于深度学习的避障算法被研究出来。这种算法旨在使机器人通过深度神经网络来感知传感器的传输数据,以学习控制策略。根据学者们的研究成果,可以将基于学习的避障算法归结为两类。第一类是通过智能学习训练机器人学习控制策略。该类方法一般使用深度神经网络对机器人避障问题进行建模,并通过大型数据集对其进行训练[3-5]。但是这种方法在很大程度上依赖于大量涵盖各种场景的训练数据,并且它对环境变化的泛化能力较弱。第二种方法是使用端到端的深度强化学习(DRL)框架。ZHU等人[6]基于预训练的ResNet构建了一个结合深度学习的Actor-Critic模型,实现离散三维环境中的机器人导航。TAI等人[7]通过连续的DRL算法训练了一个端到端的策略,通过将10维激光数据和相对的目标位置作为输入状态来解决无先验地图信息的导航问题。XIE等人[8]建立了一个基于double DQN和dueling DQN机制的D3QN模型用于自主避障。KHAN等人[9]使用了带有辅助奖励和内存增强网络的自我监督策略梯度架构来帮助机器人导航到目标位置。文献[10]和[11]通过深度强化学习解决了机器人导航问题,并设计了具有长期短期记忆(LSTM)的神经网络架构来记忆环境。然而深度强化学习算法在训练时普遍存在收敛速度较慢问题,容易产生训练失败结果。

本文基于深度强化学习,对机器人的避障和导航问题进行了研究。针对基于全连接神经网络的深度强化学习算法在训练机器人避障时收敛速度较慢的问题,提出了基于长短期记忆网络的近端策略优化避障算法。结合所设计的神经网络结构和奖励函数进行端到端的模型训练,将二维雷达传感器的感知数据、机器人的位置及期望目标位置等信息直接映射为机器人的连续动作指令,并设计有效的奖励函数对动作指令进行评价,实现无先验地图信息情况下机器人在非结构化环境中的自主避障。

1 静动态环境下避障算法研究

1.1 移动机器人建模

本节以非完整轮式差分驱动机器人Turtlebot3 Waffle Pi为研究对象,在具有静动态障碍物的欧几里得平面上,进行了机器人自主避障问题的研究。问题可描述如下:在t时刻,处于未知复杂的非结构化场景中的机器人通过雷达感知到部分环境状态st,并试图独立探索安全稳健的策略πθ(at|st),进而计算出一个无碰撞可能性的动作at,最终规划出不与任何障碍物碰撞的最佳轨迹,使其在更短的时间内从当前位置到达指定的目标位置g,并且不与行走途中的障碍物发生冲突,其中θ是策略参数。

1.2 端到端的深度强化学习框架

本文所设计的端到端深度强化学习框架主要由以下三部分组成:

1) 状态空间:移动机器人通过二维的激光雷达实现与周围环境之间的交互。机器人的状态向量st由传感器所获得的二维激光数据、当前位置的坐标、目标位置的坐标、当前的速度(包括线速度和角速度)和机器人的半径组成,可表示为[lt,ct,g,vt,wt,R]。

2) 动作空间:机器人的动作空间包括线速度和旋转速度,表示为运动命令at=[vt,wt]。在本研究中,考虑到机器人运动学和现实应用需求,对线速度和角速度范围进行归一化处理,将机器人线速度的范围限定为vt∈[0,0.5],角速度的范围限定为wt∈[0,0.5]。

3) 奖励函数的设计:奖励函数是决定一个强化学习算法是否可以成功收敛的关键。本文的奖励函数设计如下[12]:

(1)

1.3 基于长短期记忆网络的近端策略优化避障算法

1.3.1 近端策略优化算法

近端策略优化算法(Proximal Policy Optimization,PPO)[13]是一种基于策略-评价架构(结构图如图1所示)的新型的深度强化学习算法,可以在多个训练步数中实现小批量更新,解决了策略梯度问题中步长难以确定的问题,可以被用于离散和连续动作控制。本节选择基于PPO算法来生成移动机器人自主避障和目标导航问题的最优控制策略。

图1 策略-评价算法结构示意图Fig1 Structure diagram of Actor-Critic algorithm

基于策略-评价算法框架的策略梯度计算方法为[14]

(2)

(3)

其中,θ代表更新前的策略参数,θ′代表更新后的策略参数,α表示新旧策略之间的参数更新步长。策略梯度算法对步长α十分敏感,如果α过大,则易发散;如果α太小,则训练过程将会非常缓慢,算法将不易收敛。所以,不合适的步长α将会使算法将会难以学习到合适的策略。为了解决上面的问题,Shulman博士等人[14]提出信赖区域策略优化(Trust Region Policy Optimization,TRPO)算法。

TRPO算法为使累积奖励单调不减,将参数更新后策略所对应的累积奖励函数转换为参数更新前策略所对应的累积奖励函数与参数更新前后策略的奖励差值之和的表示方法,当策略更新前后的参数变化很小时,参数更新后状态分布的变化可忽略。算法使用了参数更新前策略对应的状态分布代替了更新后策略对应的状态分布,则可得到目标函数[14]:

(4)

TRPO算法需要更新策略来最大化目标函数,为了避免策略更新时步长过大或者过小问题,对新策略和旧策略之间的KL散度施加约束[14]:

(5)

(6)

(7)

1.3.2 神经网络结构

图2是针对移动机器人自主避障问题设计的深度神经网络控制策略结构图。整个神经网络具有两个分支,策略网络分支和评价网络分支。两个分支除输出层外,其他均保持有相同的结构。

图2 移动机器人自主避障系统全连接神经网络控制策略结构图Fig.2 Structure diagram of fully connected neural network control strategy for mobile robot autonomous obstacle avoidance system

将由机器人的状态组成的一系列序列信息作为输入向量,表示为st,输入到第一隐藏层中进行特征提取。第一、第二、第四隐藏层均为全连接层,其中一二连接层使用ReLU非线性函数作为激活函数。为了使神经网络可以做出更好的决策,在神经网络结构中引入了长短期记忆网络[15](Long Short Term Memory network, LSTM)作为第三隐藏层来更好地提取输入向量的特征。利用LSTM的编码和存储功能来获取一系列与时间相关的信息,使网络可以考虑历史的机器人状态特征,从而可以探索出更适应于当前所处环境的策略。最后将第四隐藏层提取的特征输入到输出层。

策略网络分支输出当前策略估计的均值μθ和方差σθ,分别使用Tanh函数和Sigmoid函数作为激活函数,通过高斯分布N=(μθ,σθ)采样, 获得移动机器人的此时最优的线速度指令vt和角速度指令wt。评价网络分支的输出层只有一个神经元,输出状态值估计Vφ(st)。

2 仿真及实验研究

2.1 仿真实验条件

本文仿真实验所用的系统环境为64位Ubuntu 16.04,采用机器人操作系统(Robot Operation System,ROS)中的Gazebo模拟器[8]搭建仿真环境,选择Turtlebot3 Waffle Pi作为避障仿真研究所用的机器人模型。利用二维激光雷达获取环境状态,通过里程计获取自身的位姿,计算当前所在位置的坐标。

整个训练流程可分为两个阶段,阶段一是通过执行策略来收集样本数据,阶段二是使用采集的样本数据来更新策略参数,整个训练过程在两个阶段之间交替进行。首先在样本采集期间,机器人通过传感器获得输入观察状态,利用神经网络提取状态特征并最终输出策略,使用该策略可以获得机器人当前时刻的动作指令并执行,环境产生新的变化,并通过对机器人反馈奖励值,来刺激机器人通过新的输入状态生成下一个动作指令,将采集的样本存储到经验集合中。使用神经网络作为非线性函数逼近器获得状态值函数,用来估计优势函数。循环执行上述过程直至训练步数达到设置的策略更新最小批量值,训练进入策略参数更新阶段,利用经验集合中的K个样本更新参数,设置策略更新最小批量值的原因是为了更好地确定神经网络策略梯度的下降方向。一次性采集K个样本输入到神经网络的做法可以降低某单个错误的样本对于策略梯度下降方向的影响,同时提高算法的抗干扰性,最终致使计算出的策略梯度下降方向能够更加接近理想值,算法尽快地实现收敛。

迭代更新网络的过程如下,首先将训练样本输入至评价网络,利用Adam优化器对损失函数进行优化,以更新评价网络的参数。之后将训练样本输入到策略网络中,同样利用Adam优化器去更新策略网络的参数。表1为训练算法时算法所设置的超参数。

表1 超参数设置表Tab.1 Settings of hyperparameter value

本文主要针对无障碍场景以及多个动态障碍物场景进行模型训练,考虑到在实际应用中,存在障碍物为不规则形状的情况,设置了其他形状障碍物来测试算法性能。

2.2 无障碍场景

首先,无障碍场景仿真环境如图3所示,四周部分为4 m×4 m的墙体,左上角方形部分为目标点。在进行机器人训练的过程中,若机器人到达目标位置后,目标位置将会随机改变,机器人将会向新的目标位置继续探索。

图3 Gazebo移动机器人无障碍仿真环境Fig3 Robot obstacle-free simulation in Gazebo

分别使用引入LSTM[15]前后的神经网络进行模型训练。如图4(a)为使用基于全连接神经网络的避障算法训练移动机器人在无障碍物环境中实现目标导航时,每个回合的累积奖励的收敛曲线,图4(b)为使用基于LSTM的神经网络的避障算法训练结果。随着训练步数的增长,奖励值逐渐上升,在图4(a)中,训练到1 200步左右时,奖励值达到平稳,算法逐渐收敛,在图4(b)中,训练500步左右时,算法逐渐收敛。结果表明引入LSTM可以使避障算法加快收敛。

图4 无障碍场景下奖励值曲线图Fig.4 Curve of rewards in obstacle-free scene

在算法收敛后,为了测试训练出的模型的性能,在场景中随机设置了几个目标点(用圆圈表示,其中序号代表目标点顺序),使用训练出的模型控制机器人来实现在无障碍训练场景中的自主行走。图5(a)为机器人在Gazebo模拟器中进行路径规划生成的轨迹图,可以看出机器人成功到达了所设置的目标点且没有与墙体发生碰撞。

基于本文进行的研究,可以与SLAM建图算法进行融合,实现对未知环境的自主建图。图5(b)为机器人在进行路径规划的同时对环境构建的地图,将Gmapping算法与本章的自主避障算法整合为一个框架,使处于未知环境的机器人实现目标导航并且同时自主完成对环境地图的构建。

图5 无障碍场景下的移动机器人轨迹图Fig.5 Robot trajectory diagram in obstacle-free scene

2.3 有障碍场景

图6(a)为只具有静态障碍物的仿真环境,其中,四周部分为4 m×4 m的墙体,4个圆柱为静态障碍物,左上角正方形为机器人的目标点。图6(b)为具有动态障碍物的仿真环境,其中,墙体内使用4个顺时针旋转的圆柱作为动态障碍物,同样正方形为目标点。本节使用基于LSTM神经网络的近端策略优化算法进行训练。

图6 Gazebo机器人有障碍物仿真环境Fig.6 Simulation environment with obstacles in Gazebo

不同于无障碍物环境下的机器人训练过程,此环境中增添了静动态障碍物,当机器人与障碍物最短距离小于某一固定阈值时,即该次训练迭代结束,进入下一次迭代。并且在路径规划过程中同时利用Gmapping建图算法进行周围环境地图的构建,实现机器人的自主建图。

如图7(a)所示,不规则曲线即为机器人的行走轨迹,在路径规划过程中,成功避开了圆柱状的静态障碍物,并且依次到达了随机设置的几个目标位置。同时,在具有静态障碍物的未知环境下,通过将Gmapping算法与本章的自主避障算法整合,同样可以使机器人在进行路径规划的同时实现对环境的自主建图。图7(b)展示了机器人行进的轨迹和自主对环境构建的地图。

图7 具有静态障碍物的场景下移动机器人的轨迹图Fig.7 Trajectory diagram of the mobile robot in scene with static obstacles

将图6(a)所示环境中训练完成的模型迁移到如图6(b)所示的动态仿真环境中继续训练,则经过少量迭代步骤之后,机器人便可以在动态环境中实现自主避障及目标导航。如图8(a)所示,机器人可逐次到达每个目标点。图8(b)为机器人在规划路径到达各个目标位置的过程中,同时利用Gmapping算法构建的某时刻的二维环境地图。

图8 具有动态障碍物的场景下移动机器人的轨迹图Fig.8 Trajectory diagram of the mobile robot in scene with dynamic obstacles

处理形状多样性的障碍物的能力是评估避障策略性能的重要指标。为验证所提算法对于其他形状障碍物的避障能力,将学习到的策略应用于其他情形。在Gazebo模拟器中设计了如图9(a)所示的静态仿真环境和图9(b)所示的动态仿真环境,圆柱是动态障碍物,按照虚线的箭头方向移动,其他形状物体为静态障碍物,包括方形木块、长条墙体、圆桶等,并且在环境中随机设置了几个目标位置。通过图中呈现的实线轨迹,展示了机器人最终成功规划路径依次到达了目标位置,而不曾与障碍物发生冲突,这表明通过所提算法学习到的策略具有避开其他形状障碍物的能力。

图9 具有其他形状障碍物的仿真环境下移动机器人的轨迹图Fig.9 Trajectory diagram of mobile robot in simulation environment with obstacles of other shapes

2.4 对比实验

为更好地展现所提出的算法性能,将其与基于D3QN[8]的避障算法进行对比。

首先在图3的无障碍环境中进行对比训练,可得如图10的变化曲线。根据图10可以看出, D3QN算法在约200回合时奖励值上升,直至450回合时不再有上升趋势,但是奖励值上升过程中,会有许多突然下降的情况,这表示机器人发生碰撞。由此可以看出,相比于基于PPO[13]的算法,基于D3QN的算法可以使机器人实现目标导航,但难以学到稳定有效的避障策略。

图10 无障碍环境下基于D3QN算法和基于PPO算法训练机器人时的奖励值变化曲线对比图Fig.10 Comparison of the change curve of reward value based on D3QN algorithm and PPO algorithm in the obstacle-free environment

在图9(a)中的仿真环境中对两种算法进行了训练,绘制每回合累计奖励值曲线,结果如图11所示。从图11可以看出,D3QN算法的奖励值在1 400回合左右有上升趋势,但仍存在较多负奖励值,说明D3QN算法可以使机器人到达指定目标位置,但无法保证不发生碰撞,而改进后的PPO算法在2 000回合左右实现收敛,可以使机器人学会躲避障碍物,安全导航至目标位置。

使用Turtlebot2机器人对本文提出的避障算法进行了实验验证。图12为Turtlebot2在具有静态障碍物的场景下进行自主避障的过程。

图12(a)中将长方形纸箱作为静态障碍物,图12(b)中将人作为静态障碍物。结果显示机器人可以通过改进后的PPO算法模型实现自主避障。

如图13所示,是动态环境下移动机器人的自主避障过程,分别将人、纸箱和人依次作为动态障碍物,从图中可以看出当动态障碍物出现在机器人感知范围内,机器人能避开障碍物继续行走。

图11 有障碍环境下基于D3QN算法和基于PPO算法训练机器人时的奖励值变化曲线对比图Fig.11 Comparison of the curve of reward value based on D3QN algorithm and PPO algorithm in the obstacle environment

图12 Turtlebot2机器人静态环境下的避障实验Fig.12 Obstacle avoidance experiment of Turtlebot2 robot in static environment

3 结论

本文针对移动机器人在具有动静态障碍物的环境下的自主避障问题,提出了基于LSTM网络的近端策略优化避障算法。根据机器人自主避障运动学模型设计端到端的深度强化学习框架,进一步引入长短期记忆网络到全连接神经网络中,使机器人更快地学习到有效的策略。仿真结果表明,引入LSTM的近端策略优化避障算法具有更快的收敛速度,并且比基于D3QN的避障算法成功率更高。最后在机器人平台Turtlebot2上对所提出的避障算法进行了实验验证,实验结果表明在静动态环境中可以实现机器人无碰撞行走并到达指定的目标位置。

图13 Turtlebot2机器人动态环境下的避障实验Fig.13 Obstacle avoidance experiment of Turtlebot2 robot in dynamic environment

猜你喜欢

移动机器人障碍物神经网络
基于神经网络的船舶电力系统故障诊断方法
移动机器人自主动态避障方法
MIV-PSO-BP神经网络用户热负荷预测
基于粒子滤波的欠驱动移动机器人多目标点跟踪控制
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
移动机器人路径规划算法综述
高低翻越
赶飞机
基于神经网络的中小学生情感分析
月亮为什么会有圆缺