基于分层学习的四足机器人运动自适应控制模型

2020-02-27 12:33崔俊文刘自红刘福强
计算机测量与控制 2020年1期
关键词:腿部分层状态

崔俊文, 刘自红, 石 磊, 刘福强, 乐 玉

(西南科技大学 制造科学与工程学院,四川 绵阳 621010)

0 引言

在自然界中,多足生物可以在腿部受伤失效后,快速调整姿态和运动步态,继续保持一定的运动状态前进,如图1。因此,在实际的应用环境中也要求机器人具有应对自我损伤,改变原有的运动方式的能力。

图1 单腿失效狗和四足机器人

以四足机器人为例,正常运动时,可以有多种步态控制方法实现前进、转向、跳跃等多种运动技能。然而在单腿失效后,其腿部运动布局变化及重心偏移的影响导致控制策略复杂性提升,快速适应及调整的控制是较为复杂的。在文献[1]中,提出依据行为空间得到价值直觉,指导试错学习算法实现局部关节失效的六足机器人和机械臂恢复运动技能。Bongard在文献[2]中提出连续自我建模恢复算法,产生替代步态的方式。

近年来,深度强化学习(Deep Reinforcement Learning)在无经验的条件下,在虚拟器中让机器人学习各种运动技巧取得了巨大的进步[3-5]。在文献[6]中,迪士尼的研究人员构建了在实际环境中训练单腿或多腿机器人系统。然而其结果仍是较为简单的单一策略。对于一些复杂的多要求的运动控制,则不能满足。分层学习将控制策略结构化,使得任务复杂度降低。目前的分层学习,仍没有可通用的模型,一般依据任务特点采用人工分层方式。在文献[7]中使用高低级的控制器有效控制双足类人模型的行走于小道和踢足球。分层目的将基本运动中枢和调节器分开,达到较好运动策略。然而,对于状态空间因腿部失效维度降低,采用串级结构则是失效的。文献[8]中,Google团队将直接从图像像素到空间机械臂运动抓取进行端到端训练,CNN和电机控制输出层网络相合,达到三维空间中抓取多形态物体的目的。文献[9]中提出分层DQN,让高级策略决定内在目标,低级策略满足给定目标完成Atari游戏。

本文提出采用深度强化学习(Deep Reinforcement Learning)对四足机器人单一向前运动进行连续控制,以此为子策略构建分层学习框架形成自适应控制模型。框架分为状态评估控制器 (Status Decision Controller)和基础运动控制器(Basic Dynamic Controller),分别采用Double-DQN(Double Deep Q-Network)[10]和PPO(Proximal Policy Optimization)[3]算法实现。状态评估策略监测机器人状态,相应激活子策略进行运动控制,该过程不受状态空间部分信息失效而影响。该方法成功实现机器人在腿部受损失效后,仍保持有效运作,并保证整个过程快速响应和稳定。

1 分层学习

1.1 概述

根据四足机器人要求在状态空间维度变化的条件下实现自适应控制问题,提出由状态判断控制器(Status Decision Controller)和多个基础运动控制器(Basic Dynamic Controller)组合而成的分层学习结构,系统如图2所示。SDC要求每个时间步都进行状态决策,并以3 Hz向子策略激活单元发送最优的运动方式。由于构建的机器人及电机运动模型要求BDC的控制频率也为3 Hz,相同决策频率保证机器人实现基本运动切换连贯性。SDC状态决策后估计最优BDC,BDC控制机器人以期望目标运作。

图2 分层学习系统结构

SDC功能特性只要求其离散决策,采用Double-DQN算法优化策略。SDC输入为全部状态单元Sall,未激活的状态单元则为ox=0,ox∈Sall。将SDC策略输出行为最高估值的索引io传递给策略激活单元。策略激活单元将索引在固定序列上匹配到合适的子策略,SDC以完成相对最大化Q值这一过程作为收敛目标。

BDC作为基础运动控制器,主导基础运动控制。由于基本运动控制要求的连续性,采用近端策略优化(PPO)算法,其在文献[3]证明其在连续运动控制上所达到的较好的效果。由状态决策单元获取目标索引io,整理状态空间Oi,io∈0,1,2,输出行为ai作为腿部运动关节的PD控制器输入值。BDC各个单一策略提前进行训练,满足期望累积奖励后,再进行SDC训练。使用该种分层学习模型,将复杂运动策略结构化,简化神经网络深度及策略收敛的复杂性,摆脱腿部失效后状态空间维度变化所带来的影响,同时各部分相互独立,不受单一策略变动而影响整体。

1.2 状态判断控制器(Status Decision Controller)

假设构建机器人所有可能运动状态所需的状态空间为Sall,并依据所有BDC策略要求的维度确定As,构建价值函数为Q(s,a;θt),其中s∈Sall,a∈As,θ表示策略参数集。当前奖励rt+1子运动决策在环境中交互通过公用的奖励策略式(7)所述Rt+1,即:

(1)

其中:ws为奖励权重,实验测试时ws=0.8,Rmax为BDC策略成熟后单个时间步可获得最大直接奖励。由此可得Double-DQN的单时间步损失为L(θt):

(2)

L(θt)=(Yt-Q(St,a;θt))2

(3)

其中:γ∈[0,1]为折扣因子,经实验选取为0.9。学习速率设定值为0.001。SDC策略φ则存在最优函数,需最大化这一过程:

Q*(s,a)=maxφQφ(s,a)

(4)

最佳策略是由行动的最高估值即:

φ(s)=argmaxa(Q*(s,a))

(5)

在该问题中策略激活单元的最佳行为正是最高估值的索引io=φ(s),io则代表BDC激活的对应序列值。该过程使用神经网络表示SDC策略φ输出最高估值。SDC的策略训练较BDC在时序上落后,其需要有足够的经验累积,每个时间步不断刷新经验累积内容。

1.3 基础运动控制器(Basic Dynamic Controller)

1.3.1 部分马尔科夫决策(POMDP)

BDC为多个运动策略单元组成。每个单元代表某种状态下的控制策略,并将控制过程制定为部分马尔科夫决策(POMDP)。受损其被表述为组员(S,AB,τ,R,Ω,γ),其中S为状态空间,AB行为空间,τ代表系统动力,R为奖励函数,Ω代表概率观察函数,γ∈[0,1]为折扣因子。

由于状态部分可观测,有状态可观测集O,而非S,可得o∈O。采用PPO算法优化BDC策略ϑ:O→AB,由此可以计算价值策略如下:

Vϑ(o) =Ε[∑t = 0TγtR(ot,at)|ϑ]

(6)

其中:T表示总时间步。R(ot,at)表示训练体在给定目标下执行动作获取的反馈函数。该函数由人为依据训练目的而设定为(7)。

BDC所可能包含的部分状态空间O及行为空间AB.如表1所示。每个关节运动范围及方向如图3。以正常策略为例,包含身体的欧拉角,四组腿关节的相对角度,共11个信息。由于底层采用PD控制,为简化复杂性,未涉及速度和加速度信息。行为空间AB作为四足机器人关节的运动期望,PD进行速度控制,在关节角度上进行范围限制。在单腿失效后,失效腿部异侧引入摆动关节以调节身体平衡,失效腿状态单元不作为输入量,此时的状态量维度为10。

图3 四足机器人关节运动示意图

表1 状态及行为空间范围

名称范围(deg)前腿Hip (α2)-50°~-10°后腿Hip (α1)-80°~-30°摆动关节(Side swing joint) (α4)-30°~30°前腿Knee (α3)60°~100°后腿Knee (α3)60°~100°行为空间 AB-25.30°~25.30°

奖励策略R的构建,以机器人快速向前运动为运作目标。构建机器人坐标系如图3。以四足机器人在x轴运动方向速度Vx为参考的主要部分,以机器人身体在水平面的稳定性为次要部分,摄入参数为身体的欧拉角αx,αy,αz。构建奖励函数为

R(ot,at)=w1Vx-|w2αx|-|w3αy|-|w4αz|

(7)

其中:w1,w2,w3,w4为各参量权重。测试时设定速度经验权重w1=60。四足机器人可以稳定前行的一种主要表现是其运动时姿态趋于平衡,所以为规避机器人局限于某种前进策略,需要降低训练时出现不稳定姿态的概率。在机器人x轴与y轴方向上设置欧拉角经验权重w2=w3=0.5。机器人运动前进的方式未知,某些暂时性姿态有可能让未来动作达到更大奖励,而该姿态却可能带来较小的奖励,如跳跃。为解决这种矛盾,将机器人的俯仰姿态z轴权重设置w4=0.2。设置权重这一线性的奖励函数,在实际训练过程中呈现较好效果。

1.3.2 近端策略优化(PPO)

使用策略梯度算法对学习率调整至关重要,同时策略梯度算法对每个数据样本执行梯度跟新,具有高样本复杂度。为解决此问题,在PPO算法中让rt(k)表示概率比为:

(8)

式中,k表示策略ϑ参数集,优化目标为:

(9)

使用神经网络表示策略ϑ,通过PPO算法来求解POMDP。即ϑ*求解最优的参数集k*,表达为

k*=argmaxkVk(o)

(10)

PPO算法基于Actor-Critic算法实现,该算法相对传统的策略梯度算法收敛更快。Actor依据概率选择行为,Critic根据行为得到奖励优势决定Actor收敛方向。Actor和Critic均有两个神经网络构成。Actor网络有两个隐含层,神经元数量依据经验确定,设置第一个隐含层神经元数量为状态空间维度nOi×20,第二层为行为空间维度nAi×10,由Critic作用可知其策略相对较简单,设置一层隐含层,维度为nOi×20。Critic要求相对于Actor更快收敛,依据实验分别设定学习率为0.000 09和0.000 18。两组神经网络结构如图4。

图4 Actor-Critic神经网络结构

1.4 算法实现过程

该分层学习模型要求在运动策略成熟后再进行上级策略训练。首先对机器人各种腿部受损状况分别训练BDC运动策略,主要针对两个前腿受损问题进行训练及仿真。待BDC全部收敛后,引入SDC获取全部状态空间Sall,在随机模式下激活BDC与环境交互,依据奖励策略(1)对SDC策略进行更新。算法实现过程概括为算法1。

算法1:分层学习训练算法

随机初始化SDC策略参数集θ

随机初始化BDC策略参数集k[3]

初始化运动模式i=0,i∈0,1,2

循环i!=3

遍历step=0,1,2...TBDCDO

与Unity3D交互得到N个批量:N×{Oi,Ai,Ri}

依据Max(sum(Ri))

依据目标L(k)

跟新优化策略ϑi←{Oi,Ai,Ri}*

结束遍历

i++

结束循环遍历step=0,1,2...TSDCDO

随机运动模式i,激活BDC策略ϑi与Unity3D环境交互

获取估值最大索引io

激活BDC策略后获取批量 {Sall,As,Rn}

将批量存入记忆中心有M×{Sall,As,Rn}

教务处(部)作为校长和主管教学副校长领导下的主管全校教育教学工作的职能机构,根据实际履行职责范围、下设科室多少,存在“大教务”和“小教务”之分。从各校教务处(部)实际情况来看,基本属于“大教务”范畴,涵盖规划、招生、培养、教研、教务、实践、实验等各方面,致使事务过于繁重、工作强度大,全然忙于“事务性”的应付状态。

随机向记忆中心抽取一个批量Mn

依据损失函数L(θ)

跟新优化策略φ←Mn

结束遍历

分层学习的整个决策过程是由 SDC激活相关BDC开始。SDC获取四足机器人状态集Sall,策略φ表达该状态的估计集,获取估计集中最高估值的索引io,io传递进入策略激活单元,激活固定序列,策略激活单元按序列整理状态空间集Oi,其对应BDC的Actor网络输入层,BDC子策略ϑ再输出该状态的控制动作。

2 机器人环境构建

在Unity3D中构建反关节四足机器人系统,单个腿部系统为3个自由度。策略中心和机器人仿真分为两部分进行,使用TCP通讯连接两个系统。重复构建多个四足机器人系统,训练时储存每个机器人连续运动集,在概率ρ=0.95选取最优奖励集进行训练。系统构建如图5描述。

机器人Hip关节和Knee关节角度参考零点垂直于x轴。各关节角度区间跨度较大,不利于快速收敛。为使BDC输出的角度期望在训练初期更快表现出运动行为,对输出范围进行归一化,行为值a∈AB限制为[-0.44,0.44]。最终输出期望角度αx=a+b,其中b为各关节运动范围中值,运动范围如表1中所示。

机器人的运作目标是四足机器人尽可能极限化向前运动的最大速率。在实验过程中,由于初始训练时,策略随机性导致机器人姿态偏离过多,均发生侧翻,摔倒,严重偏离方向等状况,这些可能性导致样本复杂度上升或增加获取非理想样本的概率,因此构建机器人辅助运动机制,对过度偏离的角度进行周期定角度矫正。并且单一限制某方向欧拉角,不能使机器人具有调整姿态的能力。在策略成熟后,撤销辅助运动机制,再进行一定时间步的训练,机器人具有保持较好的姿态调节能力并保持一定鲁棒性。运动辅助机制主要针对x轴和y轴进行矫正,y轴角度稳定范围为[-2°,2°],超出范围则进行周期为6 ms,单次0.4°的矫正。同样的,x轴的稳定范围为[-8°,8°],单次0.6°矫正。x轴角度受腿部运动的影响,稳定范围相对偏大,可以使其充分发挥腿部运动机能。次要的,z轴矫正防止机器人过激运动行为导致倾角过度,z轴稳定范围为[-60°,60°],单次10°矫正。对于某些冲击动作造成姿态倾斜较大的,该运动辅助机制在物理环境中具有缓和的效果。

图5 机器人训练系统构建

3 仿真与测试

在Intel单核2.4 GHz处理器上训练所有神经网络和运行机器人仿真程序,通过构建TCP通信网络连接分层学习策略中心和机器人仿真环境,两者间利用响应机制自动完成交互控制及信息反馈这一过程。

BDC运动策略的训练目标,主要有正常运动与单腿失效运动。两者均构建基于姿态欧拉角的辅助运动系统。在式(7)奖励策略下,正常运动策略经过1 200个训练批量后,综合奖励值稳定在40。单腿受损后的,同样经过1 200个训练批量,综合的奖励值稳定在39。训练过程平均直接奖励值数据如图6。分析可知该腿部受损的四足机器人相对未受损状况的,运动速率没有明显差异。

图6 BDC策略平均直接奖励曲线

图7 SDC策略平均直接奖励曲线

图8 机器人运动速度曲线

SDC在各个BDC单元训练结束后进行训练,设定机器人运动状态改变周期为20 s,估计后激活BDC表达运动行为。式(1)中奖励权重依据子运动的稳定奖励值确定。由于BDC策略存在神经网络的稀疏性,所以传入BDC的状态空间Oi,不一定就是期望的状态空间,但仍可能控制相关BDC实现到运动技能,甚至达到更好的运动策略,所以导致Oi可能对应多个BDC策略,但不是之前预定的训练目标。将这一问题交给自适应的Double-DQN去解决。在单腿受损后或恢复正常状态过渡时,SDC 激活BDC同时要考虑过程的时机性,让这一过程快速及稳定完成。SDC策略在经过4小时训练后,每个批量总奖励稳定在14,训练数据曲线如图7。

依据实验,机器人从正常运动向腿部受损过渡时,也近乎完美的表现出连贯性及柔和性。从图8机器人左腿受损后的运动速率曲线分析可得,在正常运动下,机器人保持跳跃运动行为,峰值运动速率约1.2 m/s,在接近18 s时腿部受损后,仍继续保持速度峰值约0.9 m/s的运动行为,在运动过渡期间内,没有出现明显的停滞时间。对机器人运动行为进行连续运动逐帧截取如图9,其俯仰姿态变化对应了其运动时的跳跃特性。在7帧至8帧的腿部受损的过渡期间,该模型自适应调整运动行为使机器人保持运动的连续性。

由此可见该模型可以实现机器人连续向前运动,并在机器人腿部受损后可以自适应控制机器人继续保持运作,并保证过程有效的连续及柔和。

图9 正常运动至左腿受损的截取帧

4 结束语

为解决机器人腿部受损后无法继续保持前进的问题,构建一种分层学习控制模型。SDC和BDC两部分分别控制运动决策激活和基础运动控制功能,结构化控制方法,降低策略学习的复杂度。依据Unity3D中训练及仿真的结果,充分证实该种分层学习组合的可行性。特别地,Double-DQN离散控制和PPO连续控制各发挥关键作用。让激活策略适应相关控制层,由于神经网络稀疏性,尽管可能不符合期望目标,但是由于状态空间信息局部变化,有可能让子策略表达更好的运动行为。另外,在训练中采用运动辅助系统,降低初始训练的混乱度,有效帮助快速收敛,并且该种方法不会降低和影响机器人自我姿态的调整能力。

该种分层学习方法,结构化网络关系,互相联系上下级控制策略关系,但是并没有深层次的互相影响策略执行,仍然是一种浅层次的分层方法。虽然目前的分层学习仍然没有一种通用或者具有深层次理论的方式,依然依据问题所引而确定结构及方式,但其表达的思想是大型及复杂策略解决的理想途径。未来将分类及思考任务间不同策略关系,架构相互优化的算法,深化策略联系,实现高要求的运动控制。考虑将传统控制理论相结合,将会是一个极具价值的方向。

猜你喜欢
腿部分层状态
多留意腿部问题 随时舒缓腿部酸痛
基于分层教学下的高中数学“让学”策略
高中语文分层教学的有效性探索
高中分层走班教学模式探究
智珠二则
生命的另一种状态
快速瘦腿小妙招
脚下放靠垫睡觉更解乏
脚下放靠垫睡觉更解乏
“牛顿第一定律”练习