一种基于深度强化学习的双足机器人步态规划方法转让专利

申请号 : CN201810979187.2

文献号 : CN108983804B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴晓光刘绍维杨磊张天赐李艳会王挺进

申请人 : 燕山大学

摘要 :

本发明公开了一种基于深度强化学习的双足机器人步态规划方法,利用人体步态的稳定性和柔顺性,结合深度强化学习对双足机器人步态进行有效控制,包括以下步骤:1)建立被动双足机器人模型;2)人体步态数据和目标步态数据的获取及处理;3)使用降噪自动编码器分别提取双足机器人步态数据与人体步态数据中的隐含特征;4)利用深度强化学习对人体步态特征进行学习,进而规划双足机器人步态。本发明将深度强化学习和人体步态数据相结合,控制双足机器人像人一样稳定、柔顺的行走。

权利要求 :

1.一种基于深度强化学习的双足机器人步态规划方法,其特征在于,包括如下步骤:步骤S1:建立双足机器人模型,描述机器人行走过程;

步骤S2:获取并处理人体步态数据和目标步态数据;

步骤S3:使用降噪自动编码器分别提取双足机器人步态数据与人体步态数据中的隐含特征;

步骤S4:利用深度强化学习对人体步态特征进行学习,进而规划双足机器人步态;其中,步骤S1具体包括以下步骤:

步骤S101:建立4连杆有膝圆弧足机器人模型;其中,机器人模型包括2个大腿,2个小腿以及2个圆弧足,腿部由刚性杆通过铰链无摩擦地连接在一起,圆弧足分别固定连接在小腿上,支撑腿和摆动腿具有完全相同的质量和几何参数,且腿的质量均匀分布,机器人模型的膝关节处设置限位机构以模拟人体的膝关节功能,在髋关节设置两台电机,分别对支撑腿和摆动腿施加控制力矩;

步骤S102:以机器人行走过程中前进方向的右侧面为视点对模型步行过程进行分析,选择实时表征机器人状态的无量纲物理量,将所选择的物理量定义为机器人步行状态Θr,机器人步行状态被描述为:其中,取逆时针旋转为正,θr1, 为摆动腿小腿到竖直方向的角度和角速度;θr2, 为摆动腿大腿到竖直方向的角度和角速度;θr3, 为支撑腿小腿到竖直方向的角度和角速度;

步骤S2具体包括以下步骤:

步骤S201:将人体和机器人从摆动腿起摆到摆动腿与地面发生碰撞的过程定义为一个步态周期;

步骤S202:从CMU人体运动捕获数据库中选取人体正常行走过程数据集,将数据集进行人体划分并解算,得到人体步行过程描述;

步骤S203:以机器人模型为参照,取人体步行纵向的2D平面,定义人体步行状态为Θm,将人体步行过程描述中的所有数据使用Θm进行表示,并将Θm作为行向量,组合得到人体步态数据ΘM;

步骤S204:从人体步态数据ΘM中选取一个步态周期作为机器人的学习对象,提取学习对象数据中的奇数帧组成新的数据集,并定义为目标步态数据ΘS,其中,目标步态数据ΘS中任意行向量为提取得到的Θm;

步骤S205:将机器人在步态周期中的步行状态Θr按照ΘS中的采样频率进行采样,组成机器人步态数据ΘR,其中,机器人步态数据ΘR中任意行向量为采样得到的Θr;

步骤S3具体包括:根据Θr、Θm的数据结构,构建两个结构相同的降噪自动编码器,对机器人步态数据ΘR和目标步态数据ΘS进行特征提取;将ΘR、ΘS的行向量逐一送入降噪自动编码器,并将得到的特征按原有顺序排列,组成机器人步态特征数据HR和目标步态特征数据HS,将HR和HS统一进行归一化处理以便用于深度强化学习,其中每个降噪自动编码器工作流程如下步骤:S301:取ΘR或ΘS中一行向量Θ送入降噪自动编码器,降噪自动编码器使用二项分布对原始步态数据Θ进行随机擦除,被檫除数据置0,得到含有噪声的步态数据 通过编码函数f将 映射到隐藏层,得到隐藏层特征h,其中降噪自动编码器的编码函数为:其中,w为输入层和隐藏层间的权重矩阵;sf为编码函数f的激活函数,激活函数取Sigmod函数;

S302:隐藏层特征h通过解码函数g映射到输出层,得到重构输出y;重构输出y保持原始步态数据x的信息,其整体误差通过整体损失函数JDAE来表示,其中降噪自动编码器的解码函数为:其中, 为隐藏层与输出层间的权重矩阵,且有 sg为解码函数的激活函数,同样为Sigmod函数;在给定的训练集中降噪自动编码器的整体损失函数:其中θDAE是降噪自动编码器的参数,包括w,p,q;L定义为重构误差,用于刻画y与Θ的接近程度:其中n为输入输出层的维度;

S303:降噪自动编码器训练过程使用梯度下降对JDAE(θ)进行迭代计算以得到最小值,梯度下降对θDAE的更新函数:其中α为学习速率,取值为[0,1]。

2.根据权利要求1所述的基于深度强化学习的双足机器人步态规划方法,其特征在于,步骤S4中,选择深度确定性策略梯度算法DDPG作为双足机器人的学习算法,将降噪自动编码器处理的机器人步态特征数据HR作为深度确定性策略梯度算法的输入数据st,目标步态特征数据HS作为奖励rt的计算依据,并由深度确定性策略梯度算法输出电机执行力矩at;机器人在不断的行走过程中采集不同步态的数据,提供给深度确定性策略梯度算法训练,最终使深度确定性策略梯度算法具有控制机器人到达目标步态的能力。

3.根据权利要求2所述的基于深度强化学习的双足机器人步态规划方法,其特征在于,其中深度确定性策略梯度算法的策略网络采用5层卷积神经网络,其中分别包括输入层、两层卷积层、全链接层、输出层,其中输入层用于接收st,输出层输出电机需要执行的力矩at。

说明书 :

一种基于深度强化学习的双足机器人步态规划方法

技术领域

[0001] 本发明涉及双足机器人技术领域,具体涉及一种基于深度强化学习的双足机器人步态规划方法。

背景技术

[0002] 目前移动机器人的移动方式包括履带式、轮式、双足等。相较于履带式、轮式机器人,双足机器人的适应能力更强,既可以在平整地面运动,又能在非规则环境中运动(台阶上下、不平整地面行走等)。但是,双足机器人本身是一种高度非线性混杂动力学系统,其步态规划一直是一个难点问题。
[0003] 双足机器人的步态规划,除了保持步行的稳定性,还必须考虑步行运动的能效、柔顺性、环境适应性等问题。在双足机器人步态规划中常用基于简化模型的步态规划方法。基于简化模型的方法是从双足机器人步行的运动学和动力学角度出发,只考虑机器人主要特征并将其简化为基本的模型,例如倒立摆、二连杆、四连杆等模型,然后基于这些简化模型对双足机器人进行步态规划。基于简化模型的方法忽略了双足机器人的部分物理特征,使得双足机器人存在抗干扰能力弱、对环境敏感、步态单一等问题。基于智能算法的步态规划方法因其具有可学习、自适应、容错高等特点,成为了目前研究的热点。基于智能算法的步态规划方法包括神经网络、支持向量机、模糊控制、强化学习等。但通常情况下智能算法只能保证双足机器人的稳定行走,不能保证机器人稳定行走的同时拥有较高效和柔顺的步态,有时甚至导致双足机器人会出现生硬的、有违常理的步态。

发明内容

[0004] 本发明的目的在于解决上述问题,提供一种基于深度强化学习的双足机器人步态规划方法。本发明利用有膝双足机器人模型在结构和行走过程上与人体模型相近的特点,结合大数据驱动下的深度强化学习方法,解决基于模型的步态规划方法抗干扰能力弱、常规智能步态规划方法步态生硬等问题,提高机器人行走时的稳定性和柔顺性。
[0005] 为实现上述目的,本发明是根据以下技术方案实现的:
[0006] 一种基于深度强化学习的双足机器人步态规划方法,其特征在于,包括如下步骤:
[0007] 步骤S1:建立双足机器人模型,描述机器人行走过程;
[0008] 步骤S2:获取并处理人体步态数据和目标步态数据;
[0009] 步骤S3:使用降噪自动编码器分别提取双足机器人步态数据与人体步态数据中的隐含特征;
[0010] 步骤S4:利用深度强化学习方法对人体步态特征进行学习,进而规划双足机器人步态。
[0011] 上述技术方案中,步骤S1具体包括以下步骤:
[0012] 步骤S101:建立4连杆有膝圆弧足机器人模型;其中,机器人模型包括2个大腿,2个小腿以及2个圆弧足,腿部由刚性杆通过铰链无摩擦地连接在一起,圆弧足分别固定连接在小腿上,支撑腿和摆动腿具有完全相同的质量和几何参数,且腿的质量均匀分布,机器人模型的膝关节处设置限位机构以模拟人体的膝关节功能,在髋关节设置两台电机,分别对支撑腿和摆动腿施加控制力矩;
[0013] 步骤S102:以机器人行走过程中前进方向的右侧面为视点对模型步行过程进行分析,选择实时表征机器人状态的无量纲物理量,将所选择的物理量定义为机器人步行状态Θr,机器人步行状态被描述为:
[0014]
[0015] 其中,取逆时针旋转为正,θr1, 为摆动腿小腿到竖直方向的角度和角速度;θr2,为摆动腿大腿到竖直方向的角度和角速度;θr3, 为支撑腿小腿到竖直方向的角度和角速度。
[0016] 上述技术方案中,步骤S2具体包括以下步骤:
[0017] 步骤S201:将人体和机器人从摆动腿起摆到摆动腿与地面发生碰撞的过程定义为一个步态周期;
[0018] 步骤S202:从CMU人体运动捕获数据库中选取人体正常行走过程数据集,将数据集进行人体划分并解算,得到人体步行过程描述;
[0019] 步骤S203:以机器人模型为参照,取人体步行纵向的2D平面,定义人体步行状态为Θm,将人体步行过程描述中的所有数据使用Θm进行表示,并将Θm作为行向量,组合得到人体步态数据ΘM;
[0020] 步骤S204:从人体步态数据ΘM中选取一个步态周期作为机器人的学习对象,提取学习对象数据中的奇数帧组成新的数据集,并定义为目标步态数据ΘS;其中,目标步态数据Θs中任意行向量为提取得到的Θm;
[0021] 步骤S205:将机器人在步态周期中的步行状态Θr按照Θs中的采样频率进行采样,组成机器人步态数据ΘR。其中,机器人步态数据ΘR中任意行向量为采样得到的Θr。
[0022] 上述技术方案中,步骤S3具体包括:根据Θr、Θm的数据结构,构建两个结构相同的降噪自动编码器,对机器人步态数据ΘR和目标步态数据ΘS进行特征提取。将ΘR、ΘS的行向量逐一送入降噪自动编码器,并将得到的特征按原有顺序排列,组成机器人步态特征数据HR和目标步态特征数据HS,将HR和HS统一进行归一化处理以便用于深度强化学习,其中每个降噪自动编码器工作流程如下步骤:
[0023] S301:取ΘR或ΘS中一行向量Θ送入降噪自动编码器,降噪自动编码器使用二项分布对原始步态数据Θ进行随机擦除,被檫除数据置0,得到含有噪声的步态数据 通过编码函数f将 映射到隐藏层,得到隐藏层特征h,其中降噪自动编码器的编码函数为:
[0024]
[0025] 其中,w为输入层和隐藏层间的权重矩阵;sf为编码函数f的激活函数,激活函数取Sigmod函数;
[0026] S302:隐藏层特征h通过解码函数g映射到输出层,得到重构输出y;重构输出y保持原始步态数据x的信息,其整体误差通过整体损失函数JDAE来表示,其中降噪自动编码器的解码函数为:
[0027]
[0028] 其中, 为隐藏层与输出层间的权重矩阵,且有 sg为解码函数激活函数,同样为Sigmod函数;在给定的训练集中降噪自动编码器的整体损失函数:
[0029]
[0030] 其中θDAE是降噪自动编码器的参数,包括w,p,q;L定义为重构误差,用于刻画y与Θ的接近程度:
[0031]
[0032] 其中n为输入输出层的维度;
[0033] S303:降噪自动编码器训练过程使用梯度下降对JDAE(θ)进行迭代计算以得到最小值,梯度下降对θDAE的更新函数:
[0034]
[0035] 其中α为学习速率,取值为[0,1]。
[0036] 上述技术方案中,步骤S4中,选择深度确定性策略梯度算法DDPG作为双足机器人的学习算法,将降噪自动编码器处理的机器人步态特征数据HR作为深度确定性策略梯度算法的输入数据st,目标步态特征数据HS作为rt的计算依据,并由深度确定性策略梯度算法输出电机执行力矩at;机器人在不断的行走过程中采集不同步态的数据,提供给深度确定性策略梯度算法训练,最终使深度确定性策略梯度算法具有控制机器人到达目标步态的能力。
[0037] 上述技术方案中,其中深度确定性策略梯度算法的策略网络采用5层卷积神经网络,其中分别包括输入层、两层卷积层、全链接层、输出层,其中输入层用于接收st,输出层输出电机需要执行的力矩at。
[0038] 本发明与现有技术相比,具有如下有益效果:
[0039] 本发明将深度强化学习与人体步态数据相结合,解决了基于模型的步态规划方法抗干扰能力弱、常规智能步态规划方法步态生硬等问题。降噪自动编码器的引入既对步态数据中的特征进行了提取,又消除了几何差异与噪声的影响。DDPG相比常规的强化学习来说,可以花费更少的时间解决更复杂的问题,达到更高的控制要求。将目标步态特征数据HS作为rt的计算依据,使DDPG可以有效的利用人体步态数据,使得rt既评价了机器人步态的稳定性,又评价了其柔顺性。通过训练,DDPG最终可以控制机器人像人一样稳定、柔顺的行走。

附图说明

[0040] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0041] 图1是本发明的规划方法示意图;
[0042] 图2是4连杆有膝圆弧足机器人模型示意图;
[0043] 图3是双足机器人行走示意图;
[0044] 图4是通过人体运动数据库得到的人体步行的2D过程示意图;
[0045] 图5是降噪自动编码器DAE的运行流程示意图;
[0046] 图6是深度确定性策略梯度算法DDPG的结构图;
[0047] 图7是深度确定性策略梯度算法DDPG的训练流程示意图。

具体实施方式

[0048] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
[0049] 图1是本发明的规划方法示意图;如图1所示,本发明的一种基于深度强化学习的双足机器人步态规划方法,包括:
[0050] 步骤S1:建立双足机器人模型,描述机器人行走过程;其中步骤S1具体包括以下步骤:
[0051] 步骤S101:建立4连杆有膝圆弧足机器人模型;
[0052] 步骤S102:以机器人行走过程中前进方向的右侧面为视点对模型步行过程进行分析,选择实时表征机器人状态的无量纲物理量,将所选择的物理量定义为机器人步行状态Θr。
[0053] 具体地,本实施例所建立的双足机器人模型属于4连杆有膝圆弧足机器人模型,模型如图2所示。机器人由2个大腿,2个小腿以及2个圆弧足组成。腿部由刚性杆通过铰链无摩擦地连接在一起,圆弧足分别固定连接在小腿上。模型中的支撑腿和摆动腿具有完全相同的质量和几何参数,且腿的质量均匀分布。机器人膝关节处设置限位机构以模拟人体的膝关节功能。在髋关节设置两台电机,可以分别对支撑腿和摆动腿施加控制力矩。
[0054] 本实施例仅对机器人行走过程中前进方向的右侧面进行2D建模。机器人的行走一步的过程如图3所示,可以描述为:
[0055] 阶段I:机器人支撑腿膝关节锁定,做倒立摆运动,支撑腿与地面间无相对滑动和位移;机器人摆动腿的膝关节放松,并向前摆动,髋关节向前运动。
[0056] 阶段Ⅱ:机器人的摆动腿摆动到支撑腿的前面,当摆动腿达到最大屈伸状态时大腿和小腿因为限位机构发生碰撞,且该碰撞过程瞬时完成,碰撞后限位机构锁定,并保持锁定状态。
[0057] 阶段Ⅲ:机器人的摆动腿相对于支撑腿向回摆动,髋关节依然向前运动。
[0058] 阶段Ⅳ:机器人的摆动腿与地面发生瞬间碰撞,碰撞瞬时完成且无弹起;支撑腿和摆动腿角色进行交换。
[0059] 在整个行走过程中,机器人步行状态可以实时的被描述为:
[0060]
[0061] 其中,取逆时针旋转为正,θr1, 为摆动腿小腿到竖直方向的角度和角速度;θr2,为摆动腿大腿到竖直方向的角度和角速度;θr3, 为支撑腿小腿到竖直方向的角度和角速度。
[0062] 步骤S2:获取以及处理人体步态数据和目标步态数据。
[0063] 步骤S2具体包括以下步骤:
[0064] 步骤S201:将人体和机器人从摆动腿起摆到摆动腿与地面发生碰撞的过程定义为一个步态周期;
[0065] 步骤S202:从CMU人体运动捕获数据库中选取人体正常行走过程数据集,将数据集进行人体划分并解算,得到人体步行过程描述;
[0066] 步骤S203:以机器人模型为参照,取人体步行纵向的2D平面,定义人体步行状态为Θm。将人体步行过程描述中的所有数据使用Θm进行表示,并将Θm作为行向量,组合得到人体步态数据ΘM;
[0067] 步骤S204:从人体步态数据ΘM中选取一个步态周期作为机器人的学习对象,提取学习对象数据中的奇数帧组成新的数据集,并定义为目标步态数据ΘS;
[0068] 步骤S205:将机器人在步态周期中的步行状态Θr按照Θs中的采样频率进行采样,组成机器人步态数据ΘR。
[0069] 具体地,本实施例中,为了使双足机器人可以学习人体步态,需要使用人体运动捕获技术为机器人提供目标步态数据。步态数据的质量会直接影响到机器人最终的学习效果,所以其可靠性在本实施例中尤为重要。可靠的步态数据可以通过国内外较为知名的人体运动捕捉数据库进行获取,这些数据库提供的开源人体运动捕捉数据,被众多研究人员所使用,具有较高的准确性与可靠性。
[0070] 在本实施例中,采用卡耐基梅隆大学CMU图形实验室的开源人体运动捕获数据库,该实验室在3m*8m的矩形房间内使用12台红外摄像机以120Hz的图像记录人体运动的数据,并将数据制作成标准的文件。从数据库中的选取的数据,可以依据成年人体惯性参数指标将步态数据中的人体划分为16个部分,然后使用滤波方法滤除低频杂波,并结合人体生理结构的多元回归方程,推导出每段肢体的密度、惯性张量、转动惯量以及质心位置等数据。
[0071] 人体步行运动是由数量众多的关节自由度共同参与的过程,即使将这些关节自由度进行人为划分,对于机器人而言数量也过多。为了使机器人和人体在步态数据上具有一致性,需要对人体步行过程中参与的关节自由度进行简化。
[0072] 以使用的有膝双足机器人模型为参照,取人体步行纵向的2D平面,将人体步行状态定义为:
[0073]
[0074] 其中,取逆时针旋转为正,θm1, 为摆动腿小腿到竖直方向的角度和角速度;θm2,为摆动腿大腿到竖直方向的角度和角速度;θm3, 为支撑小腿到竖直方向的角度和角速度。
[0075] 从CMU人体运动捕获数据库中选取人体正常行走过程数据集,将数据集进行人体划分及解算,得到人体步行的2D过程,如图4所示。本实施例将数据集中所得步行过程数据根据人体步行状态定义进行数据的简化,作为最终的人体步态数据,定义为ΘM,其中任意行向量为提取得到的Θm。
[0076] 本实施例将人体和机器人从摆动腿起摆到摆动腿与地面发生碰撞的过程称为一个步态周期。从人体步态数据ΘM中选取1个步态周期作为机器人的学习对象,考虑到电机力矩的变化所需要的时间,提取学习对象数据中的奇数帧组成新的数据集,并定义为目标步态数据Θs。将机器人在步态周期中的步态数据按照Θs的采样频率进行采样,组成机器人步态数据ΘR,其中任意向量为采样得到的Θr,当ΘR与ΘS维数不同时则使用resize方法进行处理使其相同。
[0077] 步骤S3:使用降噪自动编码器分别提取双足机器人步态数据与人体步态数据中的隐含特征;步骤S3具体包括:根据Θr、Θm的数据结构,构建两个结构相同的降噪自动编码器,对机器人步态数据ΘR和目标步态数据ΘS进行特征提取。将ΘR、ΘS的行向量逐一送入降噪自动编码器,并将得到的特征按原有顺序排列,组成机器人步态特征数据HR和目标步态特征数据HS,将HR和HS统一进行归一化处理以便用于深度强化学习。
[0078] 由于人体和机器人之间的几何参数存在着差异,并且考虑到本发明的泛用性和步态数据中存在的噪声。本实施例使用降噪自动编码器DAE对机器人和人体步态数据做进一步处理,以从现有的步态数据中提取并编码出更加鲁棒的特征,同时消除模型参数和噪声的影响,使机器人能够更好的学习人体步态。
[0079] DAE是基于自动编码器的改进算法,其结构简单、运算速度快,常用于深度学习网络的前置数据处理,可以从已知的数据中提取、编码出更加鲁棒的特征,并消除可能存在的噪声影响。
[0080] 本实施例使用的DAE是一种单隐神经网络。由三层网络组成:第一层为输入层,用于接收原始步态数据,并加入噪声得到加噪数据;第二层为隐藏层,在该层中DAE将对加噪数据进行编码,编码结果可视为原始步态的隐含特征;第三层为输出层,该层将隐藏层中的隐含特征进行解码重构,DAE完成训练后的重构输出应与原始步态数据相同。DAE通过梯度下降对网络参数进行更新。
[0081] DAE通过训练调整网络参数,当原始输入x与重构输出y组成的损失函数很小时,隐藏层输出可以视为原始输入x的一种表示,这种表示称为输入x的特征,该特征可以作为原始输入信号的良好表达。DAE又通过对训练数据加入噪声,使隐藏层必须学习去除噪声并完整的表达原始步态信息,以此迫使DAE去学习输入信号更加鲁棒的表示。DAE工作流程如图5所示,以机器人步态数据ΘR为例,可描述为:
[0082] S301:取ΘR中一行向量Θr送入DAE中。DAE使用二项分布对原始步态数据Θr进行随机擦除,被檫除数据置0,得到含有噪声的步态数据 通过编码函数f将 映射到隐藏层,得到隐藏层特征h,其中降噪自动编码器的编码函数为:
[0083]
[0084] 其中,w为输入层和隐藏层间的权重矩阵;sf为编码函数f的激活函数,激活函数取Sigmod函数;
[0085] S302:隐藏层特征h通过解码函数g映射到输出层,得到重构输出y;重构输出y保持原始步态数据x的信息,以保证隐藏层特征h表征原始步态数据,重构输出y的整体误差通过整体损失函数JDAE来表示,其中DAE的解码函数:
[0086]
[0087] 其中, 为隐藏层与输出层间的权重矩阵,且有 sg为解码函数激活函数,同样为Sigmod函数;在给定的训练集中DAE的整体损失函数:
[0088]
[0089] 其中θDAE是DAE的参数,包括w,p,q;L定义为重构误差,用于刻画y与Θr的接近程度:
[0090]
[0091] 其中n为输入输出层的维度;
[0092] S303:DAE训练过程使用梯度下降对JDAE(θ)进行迭代计算以得到最小值,梯度下降对θDAE的更新函数:
[0093]
[0094] 其中α为学习速率,取值为[0,1]。
[0095] 本实施例构建两个结构相同的DAE网络,DAER和DAEM,并分别使用机器人步态数据ΘR和人体步态数据ΘM进行训练。经过大量数据训练的DAER和DAEM可以对本实施例所述机器人和人体步态数据进行隐含特征提取,并定义提取后的机器人、人体步态特征为hr、hm。使用DAEM对ΘS的每一行向量进行特征提取,并将提取后的特征按原有顺序排列,得到目标步态特征数据HS。以同样方法处理ΘR,得到机器人步态特征数据HR。将HS、HR统一进行归一化处理并提供给深度强化学习进行操作。HS、HR有效的表征机器人和人体步态数据的特征,能够有效的降低噪声和几何参数差异给深度强化学习带来的影响。
[0096] 步骤S4:利用深度强化学习方法对人体步态特征进行学习,进而规划双足机器人步态。强化学习是机器学习的一个主要分支,能够在智能体和环境交互的过程中逐步改善智能体的动作选择,最终达到控制智能体完成目标。强化学习不需要准确的智能体模型,因此十分适合控制双足机器人。但常规的强化学习收敛速度缓慢,而结合神经网络技术改进的强化学习,虽然提升了学习速度,但因为交互过程中采集的样本在时间上高度相关,不满足神经网络训练要求的样本独立,因此网络极易过拟合。随着深度学习的迅速发展,深度强化学习开始出现在研究人员的视线之内。深度强化学习是常规强化学习与深度学习的结合,其使用深度学习的理论对强化学习的不足进行了补充,使得强化学习在各方面中都有了极大的提升。
[0097] 根据双足机器人步行运动连续且髋关节驱动电机动作空间连续的特点,本实施例选择深度确定性策略梯度算法DDPG作为机器人的学习算法。DDPG是基于确定性策略梯度DPG改进的Actor-Critic结构算法,使用神经网络分别代替了常规强化学习中的策略函数和价值函数,替代后的神经网络分别称为策略网络μ和Q网络Q。策略网络接收机器人状态并返回电机力矩,Q网络则结合机器人状态与电机力矩对策略网络的选择进行评价,DDPG框架如图6所示。
[0098] 步骤S4中,使用经过降噪自动编码器处理的机器人步态特征数据HR作为深度确定性策略梯度DDPG的输入数据st,目标步态特征数据Hs作为rt的计算依据,并由深度确定性策略梯度DDPG输出电机执行力矩at;机器人在不断的行走过程中采集不同步态的数据,提供给深度确定性策略梯度DDPG训练,最终使深度确定性策略梯度DDPG具有控制机器人到达目标步态的能力。
[0099] 为了解决交互过程中采集的样本在时间上的高度相关而导致的网络震荡和过拟合,本实施例为DDPG设置了一个记忆池。记忆池将机器人一个步态周期中的机器人状态st、选择执行的电机力矩at、得到的奖励rt和电机驱动后的机器人状态st+1,作为一组经验(st,at,rt,st+1)进行存储。在需要进行神经网络训练时,从记忆池中随机抽取n组经验作为训练数据,n的大小一般由小批量数据(minibatch)进行设定。随机抽取的机制既打乱了样本间时间上的相关性防止网络震荡和过拟合,又使得机器人可以同时学习以前的经历和现在的经历。
[0100] 在DDPG中若只使用单一的Q网络对策略网络进行评价训练,会导致学习过程的不稳定,其原因在于单一Q网络的网络参数在频繁更新的同时,又被用于计算Q网络和策略网络的梯度。因此,本实施例将DDPG中初始化网络参数后的策略网络μ与Q网络Q复制,复制后得到的新网络分别称为离线策略网络μ′和离线Q网络Q′,原有网络则称为在线策略网络网络μ和在线Q网络Q。在线网络部分用于输出机器人的动作,供机器人在行走时实行。而离线网络的主要作用是为在线网络的训练提供数据支撑,以使整个网络更加稳定、快速的收敛。
[0101] 在线网络和离线网络的网络结构是完全一致的,两者的区别在于其网络参数更新方式。在线网络的网络参数更新使用从记忆池中随机提取的经验、离线网络提供的数据和随机梯度下降进行更新。离线网络的网络参数更新则通过软更新进行。软更新从在线网络的网络参数中得到更新依据完成对离线网络的更新,以在线策略网络和离线策略网络为例,软更新可表示为:
[0102] θμ′=τθμ+(1-τ)θμ′
[0103] 其中,θμ和θμ′分别为在线策略网络和离线策略网络的网络参数,τ一般取值0.001。同理,在线Q网络和离线Q网络间的软更新同为上式。
[0104] 本实例中的训练过程流程图如图7所示,训练过程可以描述为:
[0105] 机器人采样频率和采样起始时刻摆动腿的选择和目标步态数据保持一致。t时刻机器人状态为ΘR,将经过DAE处理后的机器人步态特征数据HR作为st,目标步态特征数据HS作为rt依据。
[0106] S401:在本实施例,DDPG中的策略网络为5层CNN网络:第一层作为输入层,用于接收st;第二层与第三层为卷积层;第四层为全链接层;第五层为输出层,设定动作最大边界了,并且输出电机需要执行的力矩,。Q网络结构和策略网络结构大致相同,只将输入层单元数增加以容纳电机力矩at,并将输出层单元设定为1仅返回评价。
[0107] 将在线网络的网络参数进行随机初始化,并将初始化后的网络参数拷贝给对应的离线网络。设置记忆池最大可存储经验数E,设置神经网络训练数据集大小minibatch,神经网络单次训练次数T,初始化在线策略网络学习速率lpoilcy、在线Q网络学习速率lQ、软更新速率τ,设置一次交互行走最大步数W。当机器人跌倒或者完成最大步数W视为一次完整的交互,记为epi,且最大交互次数为EPI。最后,将机器人状态进行随机初始化。
[0108] S402:摆动腿起摆时刻机器人状态为st,在线策略网络根据当前网络输出一组电机力矩at,可以表示为:
[0109] at=μ(st|θμ)
[0110] 其中,at的行向量分别为髋关节处支撑腿电机与摆动腿电机的执行力矩,列数与st一致。
[0111] S403:在摆动腿摆动过程中,机器人髋关节处两台电机分别执行对应的电机力矩,at任一行向量的执行时间与采样间隔时间相同。电机首先执行at的第一行,在对机器人状态θr采样完成后执行力矩切换至下一行,以此顺序执行。本实施例控制力矩使用方波力矩,可以有效的避免控制过程中抖动的发生。当机器人摆动腿与地发生碰撞时,更新步数计数w,将所有采样得到的θr送入DAER,得到机器人新的状态st+1。
[0112] S404:奖励函数的设计是深度强化学习工作中十分重要一个步骤,好的奖励设计可以明显提升学习的效果。本实施例使用计划奖励设计以更快的引导训练,rt如下所示:
[0113]
[0114] 当机器人未跌倒时,st+1与Hs差距越小rt越大,且恒大于0。当机器人跌倒时,rt=-1,这样引导机器人在不跌倒的前提下趋近目标步态。
[0115] S405:将(st,at,rt,st+1)作为一组经验存入记忆池,更新记忆池经验数量计数exp。根据不同状态,各计数器有下述不同操作:1)若机器人跌倒则重置机器人状态返回执行S402并重置w;2)若未跌倒但w<W则将st+1作为新的st执行S402;3)若w≥W且exp>E则顺序执行S406并重置w;4)否则重置机器人状态返回执行S402并重置w。执行S401、S403、S404时更新epi。
[0116] S406:从记忆池中随机抽取minibatch组经验,作为在线网络的训练数据集。
[0117] S407:提取训练数据集中的st,at,送入在线Q网络得到评价:Q(st,at|θQ)。将数据集中的st+1送入离线策略网络得到电机力矩a′t+1,由离线Q网络对st+1、a′t+1进行评价:Q′(st+1,μ′(st+1|θμ′)|θQ′)。那么在线Q网络的损失函数可以表示为:
[0118]
[0119] 其中,yi=rt+γQ′(st+1,μ′(st+1|θμ′)|θQ′)。根据LQ使用随机梯度下降对在线Q网络进行更新。
[0120] S408:计算策略网络中的策略梯度,在线策略网络的损失函数定义:
[0121] Lμ=Q(st,μ(st,θμ)|θQ)
[0122] 利用策略网络的损失函数可以计算在线策略网络的梯度:
[0123]
[0124] 同样使用随机梯度下降对在线策略网络参数进行更新。
[0125] S409:将在线策略网络和在线Q网络的网络参数都完成更新后,通过软更新对离线策略网络和离线Q网络进行更新:
[0126]
[0127] S410:更新网络训练次数times,当times大于单次训练次数T,则本次网络训练结束,执行S411。否则返回S406继续进行网络训练。
[0128] S411:当epi>EPI时DDPG计算结束,保存在线策略网络作为控制器。若epi
[0129] 在机器人行走的过程中,不断的使用DDPG进行学习训练,直至在线策略网络μ与在线Q网络Q收敛或者到达最大交互次数EPI。当DDPG中网络收敛时,在线策略网络可以对随机初始步态的机器人进行控制,直至到达目标步态。同样,如果在行走过程中受到外力扰动,也可以将受扰动后第一步视为初始步态并使用DDPG进行有效控制,这样只在机器人不处于跌倒状态,DDPG都可以进行有效的控制。目标步态特征数据HS的使用,为rt的计算提供了依据,令rt可以同时描述机器人步态的稳定性和柔顺性。本实施例将深度强化学习和人体步态数据相结合,使机器人最终可以获得像人一样稳定、柔顺的步态。
[0130] 以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。