APP下载

基于深度强化学习的四足机器人后空翻动作生成方法

2021-12-02李岸荞王志成朱秋国

导航定位与授时 2021年6期
关键词:轨迹控制器神经网络

李岸荞,王志成,古 勇,2,吴 俊,2,朱秋国,2

(1.浙江大学智能系统与控制研究所,杭州 310027; 2.浙江大学工业控制技术国家重点实验室,杭州 310027)

0 引言

相比于轮式机器人,四足机器人在崎岖地面和障碍物较多的环境中有着更好的移动性能。通过落脚点的自由选择,可以让它们在移动时克服与其腿长相当的障碍物。基于这种灵活性,它们可以在楼房和森林中进行搜救任务,在未知地形的隧道中进行勘探,甚至在外星球进行勘察工作。四足机器人的结构形态使得其具有完成人类和四足哺乳动物可以完成的动作的潜力[1],例如跳远、跳高[2]以及后空翻等。

灵巧运动的实现离不开优秀的控制算法。传统方法主要通过基于模型的控制方法实现这些运动。针对特定的目标运动,采用开环控制方法,通过预先设定各关节位置轨迹,对各关节进行位置控制,从而使机器人完成运动。这种方法可以呈现较好的效果,但是在机器人本体质量发生变化或与地面摩擦系数发生变化时,容易造成运动失效[3]。因此,这种方法在单一环境下表现较好,但当机器人和环境参数改变时,扩展性不强。

强化学习作为一种基于数据驱动的新型控制方法,在四足机器人的控制领域开始崭露头角。在强化学习的框架下,机器人与环境之间不断进行交互,根据用户制定的高层奖励,学习使奖励最大化的动作,省去了对底层控制器进行大量调参的繁重工作。这种方法训练出的神经网络控制器,在每个控制周期内对环境进行观测,并根据观测值决定运动轨迹,因此是一种闭环控制方法。而且,其训练出的端到端控制器也使得机器人可以充分发挥自己的运动潜力,完成更加灵活的运动。2018年,来自Google的T.Haarnoja和J.Tan首次尝试使用深度强化学习进行四足机器人的运动控制[4],成功地使用端到端的方法,在机器人Minitaur上实现了walk、trot 和gallop步态。同在2018年,加州大学伯克利分校的X.B.Peng等利用对专家经验进行模仿的方法,在仿真中实现了对视频中人类或动物灵巧运动的模拟[5]。通过构建和视频中生物类似的结构,仿真中的智能体可以完成和视频中几乎一模一样的动作。进一步地,X.B.Peng等利用领域自适应的方法,成功地将仿真中模仿狗运动的智能体迁移到了实物上[6],利用现实中的机器人完成了walk等步态。2019年,苏黎世联邦理工学院的M.Hutter团队在机器人ANYmal上成功利用强化学习完成了多种步态[1]和崎岖路面行走[7],并实现了机器人自动倒地爬起[8]。2020年,来自爱丁堡大学的李智彬团队利用多网络切换的方法,在绝影机器人上成功实现了机器人姿势一摔倒后的恢复动作。通过检测机器人摔倒后的姿态,利用不同的网络恢复不同的摔倒姿势[9]。同在2020年,浙江大学的朱秋国团队利用带有预训练的强化学习方法在四足机器人绝影上实现了Bounding步态[10]。

尽管强化学习在四足机器人的目标动作训练方面已经取得初步成效,但对于一些较为复杂的运动,由于其本身较难准确量化描述,直接设计符合目标的奖励函数较为困难,甚至设计奖励函数所花费的大量时间背离了深度强化学习方法节省人力的初衷。因此,在有目标运动的参考轨迹时,可以选择采用模仿学习的思路,根据专家数据模仿专家的行为,从而极大减少设计奖励函数和训练模型的时间,提高训练效率。

本文通过对位置控制下的绝影Lite机器人后空翻轨迹进行模仿,利用深度强化学习近端策略优化(Proximal Policy Optimization, PPO)方法,在仿真环境Raisim中训练出可以使四足机器人进行后空翻的神经网络控制器。通过设计实验,改变机器人模型本身和环境参数,证明该神经网络控制器相比于位置控制器在一些方面具有适应性更高的特点。

1 实验平台

1.1 绝影Lite机器人

绝影Lite是一款通用型智能四足机器人,共有12个关节自由度,每个关节由无刷电机驱动,如图1所示。这款机器人仿生设计、身型小巧、动作灵敏、感知丰富,基于先进的控制算法,具有行走和跳跃等多种运动模态。

绝影Lite四肢强度大,关节扭矩大,质量较小,能完成后空翻等高难度运动,部分参数如表1所示。

1.2 机器人模型

绝影Lite机器人为全肘式(all-elbow)构型。简化后的关节-连杆模型如图2所示,所有关节坐标系均保持一致。腿部关节包括髋侧摆关节(HipX)、髋俯仰关节(HipY)和膝关节(Knee)。四腿分别表示为FL(左前腿)、FR(右前腿)、HL(左后腿)和HR(右后腿)。机器人躯干质量5.64kg,大腿质量0.55kg,小腿质量0.08kg。左右髋间距11cm,前后髋间距25.6cm,大腿和小腿长度均为18cm。因深度强化学习中无需对机器人进行动力学建模,因此不再详述该机器人的建模。

图2 机器人模型Fig.2 Robot model

2 算法介绍

2.1 深度强化学习算法

本文将对机器人的控制过程视为马尔可夫过程。在每一个时间步Δt中,机器人获得观测值ot∈O,执行动作at∈A,并获得一个标量奖励rt∈R。对于一段时间为Δh个步长的运动,用Ot=表示这段时间内观测值的集合。在基于策略的强化学习算法中,智能体执行的动作at来源于策略π(at|Ot),该策略为在观测值集合Ot下的概率分布。优化的目标为选取到一个策略π*使得在这个运动过程中的机器人获得的累积奖励值最大,即

(1)

其中,γ∈(0,1)为折扣系数;τ(π)表示机器人的运动轨迹,受机器人的策略π和环境的共同影响。在基于策略的强化学习算法中,策略π一般用神经网络来实现。这种使用神经网络作为策略的强化学习算法被称为深度强化学习。

为了获得目标策略,本实验采用的深度强化学习算法为PPO算法以优化此策略。该算法为基于策略的深度强化学习算法,与Policy-Gradient算法相比,减少了优化步长的选择对于优化过程的影响;相比于信任域策略优化(Trust Region Policy Optimization,TRPO)算法,增强了对整体策略空间的搜索能力。另外,该算法采用了 Actor-Critic框架,优化过程同时优化Actor和Critic这2个网络,保证了对于状态的价值估计和策略的优化同时进行[11-13]。

2.2 轨迹模仿框架

DeepMimic是一种基于模仿学习思想构造的深度强化学习框架[14],其使用的优化算法仍然是PPO算法。DeepMimic框架主要由PPO算法和精巧设计的奖励函数构成。它的主要作用是通过设计奖励函数来实现多关节智能体对已知动作的模仿。在DeepMimic框架中,根据设置的奖励函数,神经网络的目标是缩小智能体的当前运动轨迹和目标运动轨迹的差值。如图3所示,在每一步动作之后,参考轨迹和当前状态的差值被输入到优化器中,优化器对控制器的优化目标为使智能体每一次完成动作后都与参考轨迹非常接近。

图3 DeepMimic流程图Fig.3 Workflow of DeepMimic

2.3 参考轨迹选择

在DeepMimic算法中,若想让神经网络对目标动作有良好的模仿效果,选择合适的参考轨迹至关重要。本文选择的参考轨迹包括以下几类(采样参考轨迹的频率与控制器的频率保持一致,均为1ms):

1)机器人躯干质心在世界坐标系下的位置(3维);

2)机器人躯干在世界坐标系下的姿态(4维,采用四元数表示,因为身体在旋转过程中由程序解算出的欧拉角可能会发生突变,导致智能体在学习过程中产生和参考轨迹相似的角度,但由于解算问题会出现2个数值差距巨大的欧拉角表示,因此采用四元数更加方便、快捷);

3)机器人各关节位置(12维);

4)机器人各关节速度(12维);

5)机器人各关节力矩(12维);

6)机器人足部距离身体质心的距离(4维,四足机器人的4条腿相当于连接在浮动基上的4个机械臂,末端位置相当于对机械臂末端位置的限制,在关于机械臂的强化学习中经常用到,在腿足系统中也被证明是有效的[9])。

2.4 奖励函数选择

参考DeepMimic算法中对于参考轨迹的模仿,本文使用如下4个奖励函数进行模型的训练。

(2)

(3)

(4)

(5)

采用指数函数的目的是使智能体动作和参考轨迹动作越接近时,该奖励的增益越小,这样可以防止机器人完全刻板地模仿参考轨迹,达到机器人在大体模仿参考轨迹的同时平衡各项奖励收益的目的。上述奖励函数中带有^值均代表期望值。

2.5 神经网络输入输出选择

在基于神经网络的深度强化学习下,选择合适的输入输出对于模型表现效果至关重要。另外,深度强化学习选择的观测量要与选择的奖励函数具有一定的相关性,这样对神经网络优化更有利。神经网络在优化时的指标是当前状态的奖励,如果奖励和神经网络的输入(即观测量)关系较小,实际上是增加了神经网络寻找最优解的压力。最终选择的网络输入如下所示:

1)机器人躯干质心在世界坐标系下的高度(1维);

2)机器人躯干在世界坐标系下的姿态(4维,理由同选择参考轨迹时的理由);

3)机器人各关节位置(12维);

4)机器人各关节速度(12维);

5)机器人一组起跳腿和一组非起跳腿的髋俯仰关节和膝关节的差值(8维,对于后空翻来讲,即前2条腿的髋俯仰关节和膝关节的差值、后2条腿的髋俯仰关节和膝关节的差值,这种方法类似于在大数据处理中的特征工程,目标在于根据先验知识预先提取出部分特征,达到减轻网络拟合压力的效果,加快训练速度[19],另外为了使三种翻滚运动的输入统一,选择对每相临的2条腿都做这一处理);

6)机器人大腿和足部距离身体质心的距离(24维,理由同选择参考轨迹时的理由);

7)时间标签(1维,在翻滚动作下,会出现一些与机器人状态量类似的情况,例如初始状态和最终结束状态,这时神经网络控制器需要一个时间标签来判别这两种不同的情况);

神经网络的输出选择为12维目标位置和12维目标速度信息,底层关节PD控制器接收到指令之后输出力矩信息。

综上所述,神经网络的输入为65维,输出为24维。另外,神经网络的控制频率设置为1ms,即该神经网络预测的信息为1ms后关节应到达的位置和速度。

2.6 深度强化学习网络结构

在Actor-Critic框架下,Actor和Critic各需要一个神经网络来实现。本文实验中的2个神经网络控制器均由具有2个全连接隐藏层的神经网络来实现,第一个隐藏层为1024个神经元,第二个隐藏层为512个神经元,对每一个神经元选择的激活函数为LeakyRelu[15],该激活函数有效解决了常用的激活函数Relu中的神经元死亡问题。

在训练过程中,本文神经网络输出的24维关节位置和关节速度实际上是24个高斯分布,即输出为24个均值和24个方差,经过采样后得到24个数值。在训练结束后的测试模式下,控制器直接将24个均值作为目标量输送到关节。以下为简化表达,神经网络的输出均表示为一个24维的向量。

3 实验结果

3.1 仿真环境

本实验使用Raisim仿真软件进行仿真。其对于接触力的解算采用了铰接体算法(Articulated Body Algorithm,ABA)[16],大大增加了对于铰接系统的接触力求解速度,相对于机器人关节数目的计算时间复杂度为O(n)。

3.2 模型训练结果

深度强化学习训练所用计算机中央处理器(Central Processing Unit, CPU)为Intel 9900K,图形处理器(Graphics Processing Unit, GPU)为RTX2080Ti。当训练次数为8100次左右时,四足机器人第一次可以完成较为完整的后空翻运动,如图6所示。训练过程中的奖励变化曲线如图4所示。

(a)关节位置模仿奖励

(b)身体姿态模仿奖励

(c)身体位置模仿奖励

(d)末端位置模仿奖励图4 训练过程中奖励变化曲线Fig.4 Four kinds of reward verse time in training

每个训练回合(epoch)设置为1.4s,在运动时间达到0.7s时,恢复机器人为初始状态,即在一个训练回合中,机器人可以获得2次翻滚运动的模仿结果数据,目的为在保证每个训练回合训练时间不过长的同时增强神经网络的收敛效果。

因为在后空翻中主要产生俯仰角(pitch)的变化,因此通过对比两种控制器下后空翻的俯仰角轨迹,可以清晰地观察到学习效果,如图5所示。俯仰角的最大差值为0.58,平均差值为0.11,即神经网络控制器在模仿位置控制器的后空翻时,平均误差在6°左右。结合图6可以看出,神经网络控制器在模仿位置控制器的基础上完成了后空翻运动。另外,由图7可以看出,各关节输出的关节力矩均未超出设定的物理限制。综上所述,利用深度强化学习成功实现了使用神经网络控制器对位置控制器下后空翻运动的模仿。

图5 神经网络控制器(红)和位置控制器(蓝)下 后空翻俯仰角轨迹对比Fig.5 Comparison of the pitch angles under the neural network controller (red) and the position controller (blue)

3.3 两种控制器下适应性对比

为进一步证明带有实时状态反馈的神经网络控制器具有比开环位置控制器适应性更高的特点,分别通过改变躯干质量和地面摩擦系数来观察2个控制器的表现,这2个变化分别对应机器人本身的性质和外部环境性质。在该对比实验中,选择关节的底层控制器均为Raisim仿真环境中带有前馈重力补偿的PD控制器。

3.3.1 改变躯干质量

机器人原躯干质量为5.64kg,改变机器人质量为15.64kg后,原位置控制因无法支撑身体达到后空翻所要求的高度而无法完成整个动作,而神经网络控制器仍可以完成运动,如图9所示。

图6 后空翻运动的训练结果(右侧机器人在位置控制下进行后空翻运动,左侧机器人通过训练模仿右侧机器人在 神经网络控制器下进行后空翻运动。图片时间间隔为0.05s,总时长为后空翻0.7s加关节恢复初始位置0.1s)Fig.6 Result of backflip training

图7 右前腿和右后腿各关节输出力矩变化(由于腿的对称性,只绘制了右侧双腿的关节力矩曲线)Fig.7 Output torque in each joint of the right front leg and right hind leg

改变躯干质量前后的俯仰角轨迹对比如图8中同颜色虚线和实线所示,两种控制器下的俯仰角轨迹对比为图中红线和蓝线所示。

3.3.2 改变环境摩擦系数

仿真环境中机器人与环境的摩擦系数设置为0.7,在降低该摩擦系数为0.15后,位置控制器出现了明显的打滑现象,从而无法完成完整的后空翻运动,但是训练8000次后的部分神经网络控制器仍然可以使机器人完成完整的后空翻运动,分别如图10和图11所示。

图8 改变躯干质量前后的俯仰角轨迹对比和 两种控制器下俯仰角轨迹对比Fig.8 The pitch angle trajectories under the two controllers before and after changing the torso mass

图9 改变躯干质量的训练结果(右侧机器人在位置控制下进行后空翻运动,左侧机器人通过训练模仿右侧机器人在 神经网络控制器下进行后空翻运动。图片时间间隔为0.05s,总时长为后空翻0.7s加关节恢复初始位置0.1s)Fig.9 Traing result after changing robot base mass

图10 改变摩擦系数,位置控制器出现打滑现象 (图片时间间隔0.02s)Fig.10 After changing the friction coefficient between the robot and ground, the robot controlled by position controller appears to skid

图11 改变摩擦系数,神经网络控制器下的后空翻 (图片时间间隔0.1s)Fig.11 Backflip under neural network controller after changing friction coefficient

从实验结果可以看出,神经网络控制器在工程应用中的一个优点,即可以在训练产生的上百个模型中挑选合适的模型。虽然部分模型对环境的适应能力较差,但由于学习过程具有一定的随机性,仍可以找到部分符合条件的模型。

4 总结与展望

本文利用基于模仿专家经验的深度强化学习方法实现了可以控制四足机器人进行后空翻运动的神经网络控制器,并通过改变机器人的躯干质量和机器人与环境之间的摩擦系数,证明了训练得到的神经网络控制器相比于传统位置控制器在环境适应性上有一定程度的提高。

神经网络控制器不仅具有良好的环境适应性,也具有很强的泛化能力。在通过模仿学习获得了能进行参考运动的神经网络控制器后,可以将该控制器作为预训练模型,根据需求加入新的奖励函数,从而使机器人具备原控制器所不具备的能力。这种预训练可以大大节省人力物力,值得进一步探索。

猜你喜欢

轨迹控制器神经网络
基于神经网络的船舶电力系统故障诊断方法
三转子式比例控制器设计与内泄漏分析
南京溧水电子3款控制器产品
解析几何中的轨迹方程的常用求法
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
轨迹
轨迹
基于NFV的分布式SDN控制器节能机制
三次样条和二次删除相辅助的WASD神经网络与日本人口预测