基于DDPG的机械臂避障轨迹序列模式挖掘仿真

2022-09-19 01:27许智贤刘成峰吴荣基朱晓伟
机械设计与制造工程 2022年8期
关键词:障碍物轨迹神经网络

许智贤,刘成峰,吴荣基,朱晓伟,陈 科

(广东电网有限责任公司阳江供电局,广东 阳江 529500)

机器人技术的迅猛发展及其广泛应用,对国家生产力的提升以及整个人类社会的进步均产生强有力的推动作用,不仅如此,还在很大程度上改善了人们的生活。作为现实生活和社会生产使用最早的一类机器人,机械臂的协同操纵可以完成非常多的任务[1]。与机械臂性能的优化相伴随,其应用已然由制造业实现了向军事[2]、医疗[3]以及太空探索[4]等诸多领域的拓展,甚至可以代替人类进入一些有着较高危险性的环境之中,执行炸弹拆除等任务[5]。正是在应用领域日益扩展的过程中,机械臂工作环境的复杂程度越来越高,在很大程度上增加了其与工作环境中障碍物或待操作目标发生碰撞的可能性[6]。难以预期的各类碰撞会增加任务完成的难度,还有可能损害机械臂系统的运行甚至是操作人员的安全。由此可知,开展机械臂避障轨迹序列模式挖掘的研究具有重要意义。

实际上,机械臂的运动轨迹所处的空间表现出连续变化的特点,除此之外,在三维空间中,机械臂对轨迹序列模式的挖掘同样有连续性特点表现出来。以往学者们提出的以值函数Q-learning[7]和SARSA的强化学习方法为基础的具有连续变化特点的空间问题解决方法,主要是通过在一个Q表中进行动态动作值的离散映射来完成,而连续动作空间和状态空间通过对Q表的使用执行相应的存取任务其实对内存的消耗非常大,效率也不高。为了很好地弥补Q表存在的不足,学者们通过不懈的研究提出DQN(deep Q network)算法[8],主要是基于神经网络的支持对状态值进行拟合处理,以此替代Q表,这种方法的采用在一定程度上实现了对状态动作空间映射效率的提升以及存储空间的大幅度减小。然而,DQN算法虽然表现出高效率优势,但是在应用于高维观察空间之时,依旧是只能执行对离散和低维动作空间的处理任务[9]。对于机械臂避障问题,确定性策略梯度(deterministic policy gradient,DPG)对于连续动作输出场景的解决有很好的适用性[10]。为了在较短时间内确定一条与机械臂运动要求相符且可避开障碍物的路径,同时有效提高路径挖掘精度,本文有效结合DQN与DPG两种算法,运用基于演员-评论家(Actor-Critic)算法[11]的深度确定性策略梯度(deep deterministic policy gradient,DDPG)算法[12],在机械臂对障碍物的自主规避场景中对其加以运用,并对实际避障轨迹进行仿真实验。

1 DDPG算法设计

1.1 DDPG算法基本原理

基于DDPG算法的支持,智能体能够与环境进行交互,并以此获取相应的状态,同时,对神经网络加以运用,还能获取动作策略。而在智能体执行具体的动作策略之后,所处环境又能向其发出反馈信息,经由强化学习决策能力的支持,完成对各相关、策略的评价,并进一步更新神经网络。图1所示为算法的网络结构示意图[13]。

在Actor-Critic算法中,Actor和Critic中各自含有2个神经网络,一个是Eval网络,另一个是Target网络。其中,Actor中的Eval网络会与当前的实际状态st相结合将适宜的动作at确定下来,同时执行对策略网络参数θ的更新任务;对应的,Target网络会结合经验池采样的下一个状态st+1,执行对下一个适宜动作at+1的确定任务,在对网络参数θ′进行更新时,θ为其提供相应的更新数据来源。在进行损失函数的设定时,用状态和行为的评价均值来表示:

Loss=-mean(Q(st,at,θ))

(1)

式中:Loss为损失函数的设定;mean为求均值;Q为状态值。

在Critic中,Eval网络会以实际的状态st和动作at为依据对当前的Q值Q(st,at)进行计算,同时执行对价值网络参数ω的更新任务;以st+1和at+1为依据,Target网络对下一状态的实际Q值Q(st+1,at+1)进行计算,网络参数ω′通过ω更新。

QTarget=γ·Q′(st+1,at+1,ω′)

(2)

式中:QTarget为目标状态值;Q′(st+1,at+1,ω′)为下一状态实际Q值;γ为折扣因子,主要表示时间远近对奖励的影响,如果此值呈现出不断减小之势,则意味着对于当前的奖励持以越来越看重的态度。基于对均方差的采用,执行对网络可优化损失函数的构建任务。

Loss=E[(QTarget-Q(st,at,ω))2]

(3)

式中:E表示作均方差处理。

1.2 基于基本原理的算法设计

1.2.1状态空间与动作空间设计

在获取每一相关类型的观测数据以后,移动机器人会对机械臂进行驱动,由其执行具体的作业。本文设定这些观测数据分别为激光雷达数据、上一步的动作、机械臂与目标点的方位和距离:St=[Dt,at-1,ρt,χt]。其中,St表示机械臂的状态,Dt=[d1…d10]T∈ξ1,表示激光雷达在10个方位上对障碍物距离所作的测量;at-1∈ξ2,表示(t-1)时刻机械臂的动作,包含线速度与角速度两个数据;ρt∈ξ1,指的是目标点所在的方位;χt∈ξ1,表示与目标点之间的距离。

机械臂的动作空间涉及到的指标如下:1)沿着X轴方向上的线速度v(对应惯性坐标系);2)沿着Z轴旋转的角速度ω(对应集体坐标系)。

1.2.2奖励函数设计

为了让机械臂挖掘出一条没有碰撞的长度比较短的轨迹。在机械臂与目标点相靠近的过程中,将奖励值函数设定为:

(4)

式中:Rarrival为设定的奖励值;rarrival为具体奖励值;d1为激光雷达在方位1上对障碍物距离所作的测量。

如果机械臂和障碍物发生碰撞,对其惩罚值函数进行如下设计:

(5)

式中:Rcollision为设定的惩罚值;rcollision为具体惩罚值。

为了发挥很好的引导作用,让机械臂在一个较短的时间内与目标点接近,以机械臂与目标点之间距离的变化量为依据,同样进行奖励函数的设计:

(6)

式中:Rdis为根据机械臂和目标点间距离变化量设定的奖励值;rdis为根据机械臂和目标点间距离变化量的具体奖励值。

由此,可以得到机械臂的全部奖励值函数:

R=Rarrival+Rcollsion+Rdis

(7)

式中:R为全部奖励值。

1.2.3神经网络设计

神经网络是由非常多的简单基本元件——神经元相互连接而成的自适应非线性动态系统,各神经元有着较为简单的结构与功能,不过大量神经元经过组合产生的系统行为却十分复杂,它能用于反映人脑功能若干基本特性,但并不是生物系统的逼真描述,仅是某种类型的模仿、简化以及抽象。神经网络需要先基于特定学习准则进行学习,之后才可以工作。此处以神经网络对于A、B两个字母的识别为例加以说明,规定当A输入网络时,需要将1输出,当B输入网络时,则将0输出。故而网络学习准则需设定如下:若网络做出错误判断,则经由网络学习,令网络下次犯相同错误的可能性降低。对此,先给网络各连接权值赋予[0,1]区间的随机值,在网络中输入A对应的图像模式,网络对输入模式进行加权求和处理,之后和门限比较,再执行非线性运算,可以得到相应的输出。该情况下,网络输出1和0的概率相同,都是50%,若结果为1(结果正确),连接权值会增加,有利于后续网络再次遇到A模式输入时正确判断;但若结果为0(结果错误),则将连接权值向减小综合输入加权值的方向调整,有利于后续网络再次遇到A模式输入时错误可能性降低。经过以上若干次的学习,网络判断正确率会在很大程度上得以提升,意味着网络对两个模式的学习已经取得成功,并实现了对其在网络各连接权值上的分布式记忆,若是网络再次遇到其中任一模式,便能在极短的时间内得到准确的判别结果。通常,网络中神经元数量越多,其可以记忆与识别的模式也会越多。

基于神经网络工作原理,本文进一步进行神经网络策略的构建。本文的策略网络为四层神经网络,输入层是机械臂目前的实际状态,输出层则是其线速度与角速度,中间有2个隐含层。其中,输入层的神经元数量为12,2个隐含层中的神经元数量都是250,在首层和隐含层1之间、隐含层1和隐含层2之间均通过全连接方式建立起相互之间的连接,对Sigmoid激活函数加以运用。价值网络所用的是类似的网络结构,主要不同体现在:价值网络的输入层一共有两个部分,一是机械臂目前的实际状态,一是其当前的动作值;输出层的神经元数量设定为1,也就是相应的Q值。

2 基于DDPG算法的机械臂避障

进一步地,将DDPG算法与人工势场法相结合,进行修正动作值的计算,并将最终的计算结果加入DDPG算法策略中,从而为机械臂避障轨迹平滑度的提升以及轨迹长度的减小提供相应的保证。图2所示为基于DPPG算法的机械臂避障运行步骤示意图。

图2中,a1=[av,aω1]和a2=[av,aω2]为本文设计的机械臂的修正动作,其中av=0.25表示线速度,aω1和aω2表示角速度;a为DDPG算法产生的动作。

图2 基于DDPG算法的机械臂避障运行步骤

若机械臂的周围有障碍物存在,或者与目标点靠近,障碍物会对机械臂产生斥力,对应的,目标点产生的为引力。

3 DDPG算法下机械臂避障轨迹序列模式挖掘仿真实验验证

3.1 实验平台

本文实验平台为ABB1410型号的机器人[14]工作站,具有操作便捷、动作灵活的优点,另外,与第三方软件的通讯亦很理想。实验运用成熟产品,可以为控制精度以及实验数据的真实性提供保证。

1)机械臂本体。此机械臂基本结构是一开链式6连杆机构,机身的各个关节全部接受伺服电机的驱动作用,各个电机均配置编码器和刹车,在伺服驱动器和控制器两者之间借助于CANopen总线建立起数据通讯关系,通过对每个关节转动的控制,达到让末端执行器进行相应运动的目的。

2)在整个工作站中,机械臂控制柜发挥着大脑的重要作用。控制柜包含的模块比较多,分别有计算机主板、网络通信计算机、驱动单元以及通信单元等。一方面,控制柜能够和其他相关的外部设备通信,接收由操作板或其他系统传递过来的信号,同时完成对相关数据及程序的储存;另一方面,它又能够和伺服系统进行对接,发挥出对机械臂运动进行直接控制的重要作用。

3)机械臂伺服系统。在机器人系统中,伺服系统工作性能的优劣以及可靠性的高低会对整个机械臂的性能产生直接影响,主要由变压器、主计算机、轴计算机、驱动板和编码器组成[15]。该系统可基于串口测量板数据获取机械臂信息,通过相应处理,用于机械臂下一步动作的规划,并输出新位置与速度控制。图3所示为系统示意图。

图3 机械臂伺服系统示意图

3.2 实验设计与过程

实验的主要目的为对基于本文算法的机械臂避障可行性进行验证,针对实验流程,进行以下几点设计:第一,以机械臂实际工作空间为参照进行环境模型的构建,明确障碍物的信息以及初始点与目标点的坐标;第二,借助于算法挖掘最优轨迹序列,同时在机器人控制软件中导入轨迹节点,编写控制程序;第三,在机械臂控制柜中同步输入调试好的程序,达到机械臂避障目的。

实验过程按以下步骤进行:

1)实验平台搭建。结合相应要求,对机械臂控制柜进行接线处理,并用网线对通讯转换模块和计算机网口进行连接,摆放方形盒子,用其充当障碍物。图4所示为搭建好的实验平台。

图4 仿真实验验证平台

2)机械臂初始化。连接控制柜电源,初始化机身状态,让机身回到零点。校准机械臂运动状态,对其工具中心点进行标定,设置该点位置为末端关节中心点。

3)同步控制程序。在RobotStudio软件中导入DDPG算法规划的机械臂节点数据,利用RAPID语言编写机械臂运动程序,建立机械臂控制柜和软件间通讯,在机器人控制盒中,对已经编译好的程序作相应的同步处理。

4)运行程序,对具体的实现过程进行观察,启动机械臂,记录避障过程,每隔1 s截取一帧图片。

3.3 实验结果分析验证

本文借助RobotStudio对机械臂避障轨迹进行记录,并将其与算法规划的理想运动轨迹进行比较,结果如图5所示。

图5 机械臂实际避障轨迹与理想轨迹的对比结果

由图5可知,在XY平面、YZ平面,机械臂的实际轨迹与理想轨迹基本实现了重合;在XZ平面,虽然实际轨迹和理想轨迹之间有一定的偏差,但是该偏差非常小,仅在很小的范围内有相对明显的体现,其他位置大体重合,对应部分的偏差可大致忽略不计;在XYZ三维空间中,机械臂实际轨迹和理想轨迹的重合程度比较高。综合而言,在本文算法的支持下,机械臂可以沿着挖掘好的避障轨迹序列模式运动,当遇到障碍物时能及时避障,整个运动过程表现出较好的平稳性,意味着本文避障方法是可行和有效的。

不过,使用本文所提方法,机械臂避障轨迹与理想轨迹之间尚有一些误差存在,约是2 mm,究其原因,可能在于算法挖掘的轨迹序列比较依赖理想条件下的模型,但机械臂在实际使用过程中必然存在一些装配误差、传动误差,从而导致实际避障和理论避障出现一定误差。

4 结束语

对人工智能目标进行分析,其中非常重要的一点就是基于对未经处理的高维传感数据的运用,实现对相关复杂任务的有效解决。强化学习算法DQN的提出,使得机器的智能化程度得到了大幅度的提升。不过DQN算法主要是对离散型低维动作空间进行处理,在现实生活场景中,有很多类型的连续控制问题存在,在对连续动作的选择中,将DQN与DPG两种算法进行结合形成DDPG算法,可以将两种算法的优势很好地发挥出来,与传统的DPG算法相比,DDPG算法对于连续动作的控制达到的效果要更加理想。本文对DDPG算法加以运用,将其应用于机械臂智能避障场景之中,可在较短时间内搜寻到一条与机械臂运动要求相符,且能够避开障碍物的最优路径。

猜你喜欢
障碍物轨迹神经网络
解析几何中的轨迹方程的常用求法
基于递归模糊神经网络的风电平滑控制策略
轨迹
轨迹
高低翻越
SelTrac®CBTC系统中非通信障碍物的设计和处理
神经网络抑制无线通信干扰探究
赶飞机
基于神经网络的中小学生情感分析
基于在线轨迹迭代的自适应再入制导