基于分步迁移策略的苹果采摘机械臂轨迹规划方法
2020-02-02郑嫦娥GANHao赵燕东
郑嫦娥 高 坡 GAN Hao 田 野 赵燕东
(1.北京林业大学工学院, 北京 100083; 2.田纳西大学生物系统工程及土壤科学系, 诺克斯维尔 TN37996)
0 引言
在果园果实采摘中,以多自由度机械臂作为采摘装置、通过果实识别与轨迹规划进行的果实自动采摘是农业现代化的需求。不同于工业机械臂的结构化工作环境,果实采摘是在非结构化的自然环境中进行,自然生长的枝干以及未成熟果实等障碍物都给机械臂的采摘带来了困难。因此,非结构化自然环境下的采摘轨迹动态规划是果实采摘机械臂的重要研究内容[1-3]。
多自由度机械臂采摘轨迹规划在多维状态空间中进行,以采摘果实为目标,在避障的前提下规划出一条最佳的采摘轨迹。关于轨迹规划研究人员已经提出了多种规划算法,如A*算法[4-5]、蚁群算法[6-8]、栅格法[9]、人工势场法[10-11]等。这些算法大多依赖于机械臂和环境的实时建模,其计算复杂度随机械臂自由度的增加呈指数增加,由于采摘环境多变,很难对环境进行精确建模。深度强化学习是在与环境发生交互的过程中通过奖惩函数进行自我学习推理、最终在自我探索的过程中解决问题的一种方法[12]。由于深度强化学习不需要进行环境建模,因此在复杂的采摘环境中,利用深度强化学习求解多自由度采摘机械臂的轨迹具有更好的鲁棒性[13-15]。
在采摘过程中,采摘机械臂的运动可以描述为高维空间中连续的状态-动作模型,而深度强化学习中的深度确定性策略梯度算法(Deep deterministic policy gradient,DDPG)可以用于连续行为的控制。但是,非结构化自然环境中采摘目标位置的复杂性和无序性使得DDPG算法在训练过程中网络收敛难度大,存在较多无效搜索,样本采样效率低,有效奖励稀疏,使得训练时间过长。为了提高基于深度强化学习(Deep reinforcement learning,DRL)的机器人轨迹规划方法在有障碍物的非结构化工作环境中的网络训练效率,XIE等[16]基于奖励塑形的思想,提出了一种新的密集奖励函数,该函数包括方位奖励函数和子任务级的奖励函数,方位奖励函数提高了局部轨迹规划效率,子任务级的奖励函数减少了全局上的无效搜索。
DDPG算法在训练时,算法初始参数是随机的,且智能体的行为没有先验知识的指导,非结构化自然环境中障碍的复杂性使得随机初始化参数带来的训练速度低、收敛难的问题更为突出。针对此问题,迁移学习显示出巨大的优势,该方法可以从过去学习的相关任务中获得知识,从而加速训练过程[17]。胡晓东等[18]在利用深度强化学习算法求解动态环境下空间机器人的路径规划问题时,设计了一种适应动态环境的快速路径规划器,首先在静态环境下对网络模型进行预训练,然后将静态模型的网络参数迁移到动态模型中,再经过动态环境下的训练进行参数微调,实验表明,该方法在保证规划路径准确率的前提下显著提高了训练速度。为了解决DDPG算法在训练机器人任务规划中存在时间长、收敛慢的问题,陈建华[19]基于迁移学习思想将NAO机器人右臂位姿规划策略在实际NAO机器人上进行了不同目标物体在不同位姿下的规划抓取实验。
本文以果园乔砧大冠稀植苹果为研究对象,基于深度强化学习方法进行多自由度采摘机械臂的轨迹规划研究。针对深度强化学习在非结构化自然环境中训练效率低的问题,提出两种解决方法:针对采摘目标位置无序性引起收敛困难的问题,提出一种渐进空间约束的分步训练策略;针对果实障碍和枝干障碍的复杂性引起收敛困难的问题,提出基于迁移学习的DDPG算法(TL+DDPG)。通过仿真实验验证两种方法的有效性。
1 原理
1.1 采摘轨迹规划
1.1.1DDPG算法
DDPG算法是基于AC策略梯度架构的深度强化学习算法,既有策略网络也有价值网络[20]。图1为DDPG算法的网络结构图,它借鉴了Double DQN的思想,包含4个神经网络,分别为:actor网络、actor target网络、critic网络和critic target网络。
图1 DDPG算法网络结构图Fig.1 Network diagram of DDPG algorithm
网络以采摘机械臂的当前状态si为输入,其中si包括机械臂各关节角度、角速度等信息,以采摘机械臂关节动作值ai为输出,环境根据机械臂末端当前位置e与目标位置y的相对距离反馈即时奖励ri。机械臂通过不断地与环境进行交互,执行相应动作,从而完成对采摘机械臂的轨迹规划。当前动作在以下情况会终止:①采摘机械臂末端到达目标点。②机械臂碰到障碍或者与环境交互的步数到达上限。
采摘机械臂的轨迹规划算法如下:
(1)初始化机械臂姿态、记忆库R、仿真环境。
(2)初始化critic和actor网络参数θQ、θμ。
(3)循环执行以下步骤:
①获取采摘机械臂的当前状态si。
②网络输入当前状态si,输出机械臂的关节动作值ai=μ(si|θμ)。
③机械臂执行动作ai,返回奖励ri,并获取采摘机械臂的新状态si+1。
④将样本(si,ai,ri,si+1)存入记忆库R中。
⑤从记忆库R中随机采样64个训练样本(si,ai,ri,si+1),分别更新actor、critic网络参数θμ和θQ。
⑥每隔100步,更新actor target、critic target网络参数
θ′μ′←τθμ+(1-τ)θ′μ′
θ′Q′←τθQ+(1-τ)θ′Q′
τ为更新系数。
⑦如果si+1为终止状态,则当前迭代结束,否则转到步骤②,结束循环。
1.1.2基于DDPG算法的渐进空间约束分步训练策略
基于DDPG算法的果实采摘轨迹规划中存在的主要问题是,采摘目标位置的复杂性和无序性,使得训练过程中网络收敛难度大,导致训练效率低。通过引入平面约束,降低环境复杂度,可以有效减小网络维度,加快模型学习速度。引入平面约束前后,DDPG算法的网络模型结构保持一致,使得基于平面约束的模型训练参数可以为不引入平面约束的采摘轨迹规划模型提供有效的初始化参数,在缩短训练时间的同时增加模型的有效性。因此,为了加速训练过程,提高训练效率,本文提出一种基于DDPG算法的渐进空间约束分步训练策略。
分步训练策略是:与直接求解轨迹规划不同,该方法通过引入空间约束,如图2a所示,简化求解过程,渐进获得最终规划轨迹,其实现过程如图3所示。首先通过施加平面约束,将轨迹规划限定在采摘平面上[21],通过对网络进行训练,得到该平面约束下的最优模型参数。图2a中的红色平面设定为目标果实所在的采摘平面;其次,在实际采摘环境中,进一步对平面约束下获得的网络进行训练,对网络参数进行微调,从而加速实际采摘场景的训练速度。图2b中绿框为采摘机械臂的实际采摘空间,目标果实可以出现在绿框中的任意位置。
图2 渐进空间约束分步训练场景Fig.2 Progressive spatially constrained stepwise training scene
图3 渐进空间约束分步训练策略流程图Fig.3 Flow chart of progressive spatially constrained stepwise training strategy
1.1.3基于迁移学习的DDPG算法
在采摘环境有障碍场景中,不仅需要考虑目标的位置,还要避开障碍,以保护果实和机械臂的安全[11]。因此,本节针对非结构化自然环境中的复杂障碍所带来的训练时间长的问题,利用迁移学习思想将无障碍场景下学习到的最优策略向单一障碍场景进行迁移,并将单一障碍场景学习到的策略迁移用于指导混杂障碍场景下的轨迹规划任务,流程图如图4所示。在本文所研究的采摘场景下,以无障碍和单一障碍场景下采摘机械臂的轨迹规划为源域,将它的轨迹规划策略迁移到目标域,目标域分别为单一和混杂障碍场景下采摘机械臂的轨迹规划。
图4 策略迁移流程图Fig.4 Flow chart of strategy migration
进行策略迁移首先需要完成状态和动作信息从源域到目标域的映射,即完成ssource=η(starget)和atarget=φ(asource)的过程,其中η和φ分别为状态和动作信息的映射函数,ssource表示源域中的状态信息,asource表示源域中的动作信息,starget表示目标域中的状态信息,atarget表示目标域中的动作信息。具体状态和动作信息如表1所示。
目标域中的状态信息与源域中的状态信息的映射关系为
(1)
式中wij——状态与动作转换系数
J——目标域中状态信息的个数
其中,当目标域中的状态信息与源域中的状态信息相互对应时,wij取1;当目标域中的状态信息与源域中的状态信息不一致时,则wij取0。源域中的动作向目标域中的动作映射时同理。这样就解决了源域中的状态和动作到目标域中的状态和动作的映射问题。
在完成状态和动作信息之间的映射后,还需要解决状态值函数的迁移,因为状态值函数在网络参数更新中起到决定误差的作用。策略迁移后的整体状态值函数为
Q(s,a)=Qsource(η(starget),asource)+
Qtarget(starget,φ(asource))
(2)
式中Q(s,a)——整体状态值函数
Qsource——源域的状态值函数
Qtarget——目标域的状态值函数
模型网络参数更新时,对于源域的状态值函数Qsource(η(starget),asource)的神经网络参数不需要更新,需要更新的是目标域中的状态值函数Qtarget(starget,φ(asource))的神经网络参数。图5为基于迁移学习的DDPG算法的参数更新示意图。
图5 基于迁移学习的DDPG算法参数更新示意图Fig.5 Parameter update diagram of DDPG algorithm based on transfer learning
2 实验与分析
利用Cinema 4D和CoppeliaSim软件搭建仿真采摘环境,进行多自由度采摘机械臂的运动仿真测试,如图6所示。本实验在Ubuntu16.04操作系统平台上完成,其硬件配置为Intel Core i7处理器、NVidia GTX 1060显卡、16 GB内存。编程语言为Python、Matlab。
图6 采摘环景仿真图Fig.6 Picking scene simulation diagram
2.1 机械臂运动学模型与障碍模型
2.1.1机械臂运动学模型
仿真实验使用的是Franka 7-DOF机械臂,图7为机械臂的整体结构示意图。所有关节都是转动关节,关节7连接末端执行手爪以抓取目标。机械臂关节角信息如表2所示。
图7 采摘机械臂整体结构示意图Fig.7 Schematic of picking manipulator structure
2.1.2障碍模型简化
在苹果采摘过程中,不同栽培方式下所遇到的障碍主要是枝干、树叶以及非目标果实,由于树叶柔曲,对机械臂采摘作业的影响很小,可以忽略不计,所以主要考虑枝干障碍和非目标果实障碍。
针对本文障碍的外形特点,使用包络法对障碍进行近似描述[22-24]。如图8所示,用球体表示非目标果实障碍,圆柱体表示枝干障碍。
图8 障碍模型Fig.8 Obstacle models
由图可得,使用包络法进行建模虽然扩大了障碍区域,但简化了计算,提高了可靠性,有效地提高了轨迹规划效率,同时也保证了机械臂和果树的安全性。
2.2 分步训练策略实验与分析
DDPG算法的网络参数如表3所示。
表3 DDPG算法的网络参数Tab.3 Parameters for DDPG algorithm
图10 奖励值变化曲线Fig.10 Reward value change curves
仿真环境中设定的采摘空间以(0.25 m,0 m, 1.002 m)为中心,尺寸为0.5 m×0.8 m×0.5 m,如图9所示。苹果生长期间果农通常以间距0.2、0.25、0.3 m进行疏花疏果操作[25],以保证苹果品质与产量。考虑到苹果结果间距以及采摘空间,本文以0.2 m为间距沿y方向在0~0.4 m范围内均匀引入3个约束平面(平面1、平面2、平面3)作为采摘平面进行对照实验,以观察不同约束平面对空间范围内轨迹规划的影响。3个平面具体位置为:平面1(蓝色)方程为y=0(0≤x≤0.5 m,0.752 m≤z≤1.252 m),平面2(绿色)方程为y=0.2 m(0≤x≤0.5 m,0.752 m≤z≤1.252 m),平面3(红色)方程为y=0.4 m(0≤x≤0.5 m,0.752 m≤z≤1.252 m)。
图9 采摘空间示意图Fig.9 Simulation scene
按照渐进空间约束分步训练策略,分别在3个采摘平面上进行训练,得到3组网络模型,并在这3组网络模型的基础上,进一步在实际采摘环境下进行轨迹规划网络的训练,观察不同位置的采摘平面对实际环境的泛化性。共进行5 000次迭代训练,图10为训练期间奖励值的变化情况。
由图10a可知,随着迭代次数的增加,采摘机械臂所获奖励逐渐变大,最终达到收敛状态。由图10b可知,随着迭代次数的增加,采摘机械臂所获奖励逐渐变大,最终达到收敛状态。训练开始时基准模型的曲线奖励值起点在-1.30附近,而经过预训练的奖励曲线起点在-1.00附近,这表明经过预训练,采摘机械臂的动作策略获得了一些先验知识,具有较好的初始假设,减少了无效探索,相对于随机初始化性能有较为明显的提升。表4统计了迭代中4 000~5 000次的奖励值均值以及训练期间收敛所用迭代次数,其中基准模型为直接在三维空间中训练所得模型。
表4 训练结果对比Tab.4 Comparison of training results
由表4可知,在收敛速度方面,基于约束平面的模型收敛所需迭代次数分别为1 100、1 800、2 000,而基准模型经过3 000次迭代达到收敛,基于约束平面1、2、3的分步训练网络收敛速度分别比基准模型提升了63.33%、40%和33.33%。这表明引入约束平面后,由于网络初始参数是通过预训练得到,训练初期策略的盲目性大大减少,使基于约束平面的模型减少了学习时间,在三维采摘空间上训练的收敛速度明显加快。
同时,由表4可知,基于约束平面1的分步训练策略在提升模型性能方面最为显著:奖励值初值为-0.70,收敛后其奖励值均值稳定在-0.25,相比于基准模型,奖励值初值和均值分别提升了46.15%和45.65%,表明基于约束平面1的训练策略在网络性能上提升效果明显。由于约束平面1位于采摘空间的中心位置,因此,基于约束平面1得到的模型相比于其他约束平面得到的模型,在后续训练上其动作策略的空间泛化性和空间适应性更强。
为了测试模型的效果,本文分别统计得出基准模型和基于约束平面1的训练模型成功采摘100次所需时间为320、260 s。
由以上实验结果可知,基于分步训练策略模型在收敛速度和性能上都得到了大幅度提升,说明采摘机械臂利用渐进空间约束分步训练策略进行轨迹规划能显著加速训练过程和提升模型性能。
2.3 基于迁移学习的DDPG算法实验与分析
根据真实的采摘场景,本文设计了3种有障碍场景,如图11所示,分别是模拟非目标果实障碍场景 (场景A)、枝干障碍场景 (场景B)、混杂障碍场景 (场景C)。场景中红色苹果为目标果实,绿色苹果为非目标果实障碍,蓝色枝干为障碍。场景A和场景B分别针对的是单一障碍场景,场景C为混杂障碍场景。图12为不同场景下训练时的奖励值变化曲线。
图11 3种场景示意图Fig.11 Simulation scenes
图12 不同场景下训练时的奖励值变化曲线Fig.12 Reward value changing curves of training in different scenarios
实验共执行了10 000次迭代训练,由图12可以看出,随着迭代次数的增加,在各场景下采摘机械臂所获奖励逐渐变大,并最终达到收敛状态。
表5为场景A和场景B训练迭代8 000~10 000次的奖励值均值以及训练期间收敛所用迭代次数。
表5 实验结果对比Tab.5 Comparison of experimental results
由图12和表5可以看出,与DDPG算法训练相比,在场景A和场景B中基于迁移学习的DDPG算法训练收敛所需迭代次数从3 500和3 900分别缩短到2 000和2 600,收敛速度分别提升了42.86%和33.33%。说明机械臂在无障碍场景下的轨迹规划策略能够为单一障碍场景的轨迹规划提供指导,可以有效缩短训练时间。
同时,由表5可知,在场景A和场景B中基于迁移学习的DDPG算法在开始阶段奖励值初值分别为-0.62和-1.35,比DDPG算法训练分别提升了32.61%和15.63%。并且,在场景A中该方法收敛后奖励值均值稳定在-0.15,相较于直接训练提升了44.44%。而在场景B中两种方法的奖励值均值相差不大,TL+DDPG算法的奖励值均值略低于DDPG算法,说明从无障碍场景向单一障碍场景进行迁移时,源任务策略在训练前期能够指导机械臂快速接近目标,该策略向较为简单的场景A进行避障迁移适应性强于较为复杂的场景B。
实际采摘环境通常存在多种障碍,为了观察采摘机械臂在面对混杂障碍时,单一障碍场景下获得的策略能否为采摘任务提供合适的指导,将场景C设计成混杂障碍场景,并分别迁移场景A和场景B的策略来指导采摘机械臂在场景C下进行轨迹规划任务。表6为场景C下应用不同策略训练迭代8 000~10 000次的奖励值均值以及训练期间收敛所用迭代次数。图13为混杂障碍场景下的收敛所需迭代次数。
由表6可知,迁移场景A和场景B的策略来指导采摘机械臂在场景C下进行轨迹规划任务,其收敛所需迭代次数分别为3 600和2 200,相比较DDPG算法训练,收敛速度分别提升了43.75%和65.63%。以上结果表明基于单一障碍场景下的迁移训练相较于基于DDPG算法的直接训练,任务收敛速度有大幅度提升。如图13所示,当考虑源策略训练次数时,迁移场景A和场景B策略的总收敛迭代次数分别为7 100和6 100,表明在混杂障碍场景中迁移场景B的策略更有助于提升训练速度。
表6 混杂场景下不同策略训练结果对比Tab.6 Comparison of training results in complex scenarios
图13 混杂障碍场景下收敛所需迭代次数Fig.13 Number of converging rounds
同时,由表6可知,迁移场景A策略和迁移场景B策略模型的奖励值初值分别为-1.00和-1.30,比DDPG算法分别提升了34.21%和14.47%;其在模型收敛后奖励值均值分别稳定在-0.45和-0.35,与DDPG算法相比,迁移场景B策略的奖励值均值略大。这表明在苹果采摘中,从场景A和场景B向混杂障碍场景迁移时,均可以提供较好的模型初始化参数;同时,在面对混杂障碍场景时,源任务中障碍环境较为复杂,更利于提高混杂障碍场景下的模型性能。
图14是在不同场景下采摘机械臂的避障轨迹。红色苹果为目标位置,蓝色树枝为障碍,绿色未成熟苹果为果实障碍。黄线为DDPG算法为采摘机械臂规划出的轨迹,红线为基于迁移学习的DDPG算法为采摘机械臂规划出的轨迹。可以看到,DDPG算法在进行避障轨迹规划时得到的轨迹比基于迁移学习的DDPG算法得到的轨迹更长一些。
3 结束语
基于深度强化学习方法进行了采摘机械臂轨迹规划,为提高无障碍环境下模型的网络收敛速度和性能,提出了渐进空间约束的分步训练策略。对分步训练策略进行了仿真实验验证,与直接训练相比,利用渐进空间约束的分步训练策略对奖励值初值最大提升幅度为46.15%,对网络收敛速度最大提升幅度为63.33%。针对复杂障碍环境,提出了基于迁移学习的DDPG算法,将轨迹规划的最优策略由无障碍场景迁移到单一障碍场景、由单一障碍场景迁移到混杂障碍场景中。仿真实验表明,将无障碍场景策略迁移到单一障碍场景中时,奖励值初值提升幅度为32.61%,网络收敛速度最大提升幅度为42.86%;将单一障碍场景策略迁移到混杂障碍场景中时,奖励值初值最大提升幅度为34.21%,网络收敛速度最大提升幅度为65.63%。