基于模型相关强化学习的仿人机器人步态控制方法

文档序号:10723991阅读:196来源:国知局
基于模型相关强化学习的仿人机器人步态控制方法
【专利摘要】本发明公开了一种基于模型相关强化学习的仿人机器人步态控制方法,包括步骤:1)为仿人机器人行走前后稳定控制任务定义强化学习框架;2)使用基于稀疏在线高斯过程的模型相关强化学习方法对仿人机器人进行步态控制;3)使用PID控制器对强化学习仿人机器人控制器的动作选择方法进行改进,改进操作为使用PID控制器获取强化学习控制器动作选择操作的寻优初始点。本发明使用强化学习来对仿人机器人行走过程中的步态进行控制,从而使仿人机器人的行走控制能通过与环境交互来进行自主调节,达到更好的控制效果,使仿人机器人在前后方向上保持稳定。
【专利说明】
基于模型相关强化学习的仿人机器人步态控制方法
技术领域
[0001] 本发明涉及仿人机器人步行稳定控制和强化学习领域,尤其是指一种基于模型相 关强化学习的仿人机器人步态控制方法。
【背景技术】
[0002] 在控制仿人机器人步行时,我们通常使用正逆运动学等理论的出仿人机器人各关 节的静态轨迹,然后使用这些轨迹控制仿人机器人进行行走。只是这样得出的机器人关节 轨迹只能用于理想平整地面上的行走,而无法在不平整的地面上行走,因为这些关节轨迹 在规划时就假设了所处的环境是平整的地面,没有其它因素的干扰,而在非平整地面脚底 与地面的接触面与在平整地面上是不同的。因此,当机器人在非平整的平面上行走时需要 加入在线反馈式平稳控制器,对仿人机器人行走进行在线调整。反馈式平稳控制器即利用 传感器等手段,收集当前机器人的一些信息,来判断当前机器人是否稳定,如果不稳定,则 在线输出对静态步态的调整,让机器人重新达到稳定,使机器人能在非平整面上平稳地行 走。
[0003] 目前为止,比较常用的控制器有PID控制器,PID控制器实现简单,但其也有较大的 局限性。PID是一个线性的控制器,其要求环境为线性近似模型,但仿人机器人系统是一个 复杂的非线性模型,因此PID控制器并不能完美的符合系统的控制需求。
[0004] 为了能更好地对仿人机器人行走稳定进行控制,使用强化学习对仿人器人进行控 制获得了广泛的关注,但将强化学习应用于仿人机器人的行走稳定控制也面临着许多问 题,仿人机器人的状态和控制动作皆为连续,空间过大,传统的强化学习不方便应用。仿人 机器人的实验成本过高,而强化学习需要进行多次的学习训练才能达到较好的控制效果。

【发明内容】

[0005] 本发明的目的在于克服现有技术的不足,提供一种基于模型相关强化学习的仿人 机器人步态控制方法,使用强化学习来对仿人机器人行走过程中的步态进行控制,从而使 仿人机器人的行走控制能通过与环境交互来进行自主调节,达到更好的控制效果,使仿人 机器人在前后方向上保持稳定。
[0006] 为实现上述目的,本发明所提供的技术方案为:基于模型相关强化学习的仿人机 器人步态控制方法,包括以下步骤:
[0007] 1)为仿人机器人行走前后稳定控制任务定义强化学习框架;
[0008] 2)使用基于稀疏在线高斯过程的模型相关强化学习方法对仿人机器人进行步态 控制;
[0009] 3)使用PID控制器对强化学习仿人机器人控制器的动作选择方法进行改进,改进 操作为使用PID控制器获取强化学习控制器动作选择操作的寻优初始点。
[0010] 在步骤1)中,所述的强化学习框架,包含以下要素定义:
[0011] 1.1)仿人机器人的状态定义为:
[0012] s(t) = [k(t) ,qhi(t) ,qhr(t) ,θχζ(?), ω (t)]
[0013] t表示当前的时刻,其中k(t)为指示支撑脚的情况,1代表支撑脚为左脚,0代表支 撑脚位双脚,-1代表支撑脚为右脚;qhi(t),q hr(t)为t时刻左右髋关节俯仰舵机的角度;θχζ (t)为俯仰方向上的躯干倾斜角度,ω (t)为俯仰方向上的角速度;
[0014] 1.2)仿人机器人的动作定义为:
[0015] a(t) = [ Δ q]
[0016] 其中,Aq是对支撑脚的髋关节俯仰舵机的离线步态轨迹的在线角度调整量;
[0017] 1.3)仿人机器人的立即回报值定义为:
[0020] ?(?)=-( | ω (t) |_| ω (t_l) | )
[0021] 其中,&1、&2为立即回报函数权值,ε为容许误差。
[0022] 在步骤2)中,所述的基于稀疏在线高斯过程的模型相关强化学习方法,主要包含 以下几个步骤:
[0023] 2.1)使用稀疏在线高斯过程构建环境模型,该环境模型一共包含6个稀疏在线高 斯过程模型,以仿人机器人的状态和动作为输入,以下一状态和立即回报值的预测为输出; [0024] 2.2)对Q值函数采用批更新的方法,只有当新获取的经验数目达到200个时,才对Q 值函数进行更新;
[0025] 2.3)使用一个基于UCB的连续动作选择方法,使用稀疏在线高斯过程的方差输出 和利用环境模型对仿人机器人后继状态和立即回报值的预测,构建了一条基于UCB的动作 评判函数:
[0026] F(s,a) = max yUCB ( feature (,ν ,α )) + UCB 0'; ,,) a '
[0027] 其中:
[0028] UCB(fs,a) =y(fs,a)+KS(fs,a)
[0029] UCB(rs,a) =E(rs,a)+2〇(rs,a)
[0030] y(fs,a)是对该点的Q值的预测均值,S(fs,a)是对该点的Q值的预测方差,E(r s,a)是 立即回报值rs,a的预测均值, 〇(rs,a)是rs,a的预测方差;
[0031] 使用梯度下降法求解该函数来选择动作,并参考ε-greedy策略的思想,以ε的概率 随机选取动作。
[0032] 在步骤3)中,所述的使用PID控制器动作选择方法进行改进方法为:根据机器人的 状态,获得同等条件下PID方法的控制动作,将该动作作为强化学习动作选择过程中所使用 的梯度下降方法的寻优初始点;
[0033] 改进后,控制器具体步骤描述如下:
[0034] ①初始化强化学习控制器的模型和所要用到的参数;
[0035] ②使用卡尔曼滤波等方法获取当前的仿人机器人状态;
[0036] ③根据当前状态,获取相对应的PID控制器的输出;
[0037] ④利用PID控制器的输出,再根据当前状态和Q值函数,使用梯度下降法求解出最 优的控制动作;
[0038] ⑤使用该控制动作对仿人机器人的静态行走轨迹进行调整;
[0039] ⑥获取仿人机器人新的状态和立即回报值,从而得到新的训练经验,并用新的训 练经验进行环境模型的更新;
[0040] ⑦判断新的训练经验是否达到设定的数目,是则进行Q值函数的更新,否则回到 ②;
[0041 ]所述值函数更新流程为:
[0042] ①使用模型产生一组虚拟的训练数据;
[0043] ②使用该组训练数据更新按照稀疏在线高斯过程更新方法更新值函数;
[0044]③判断是否满足迭代条件,满足则停止,否则回到①。
[0045] 本发明与现有技术相比,具有如下优点与有益效果:
[0046] 本发明解决了传统仿人机器人步态控制器过于简单,没有自主学习能力的问题, 通过使用强化学习来对仿人机器人行走过程中的步态进行控制,从而使仿人机器人的行走 控制能通过与环境交互来进行自主调节,达到更好的控制效果,使仿人机器人在前后方向 上保持稳定。为了能将强化学习用于仿人机器人行走前后稳定控制的任务,本发明分析仿 人机器人行走的特点,为仿人机器人行走前后稳定控制任务设计了合适的强化学习框架。 而为了解决传统强化学习方法不方便用于连续空间的问题(仿人机器人状态和动作空间皆 为连续)以及传统Q强化学习的学习效率低下的问题,本发明使用的强化学习方法为一种基 于稀疏在线高斯过程的模型相关强化学习方法。该模型相关强化学习主要的特点是使用有 监督学习中的稀疏在线高斯过程回归方法对Dyna-Q强化学习中的Q值函数进行拟合和对 Dyna-Q方法中的环境模型进行建模,比起传统的Dyna-Q强化学习方法需要人工对连续状态 进行合适划分的处理,其能方便地应对仿人机器人的状态和动作空间皆为连续的情况。且 为了提高该强化学习方法的收敛概率,使用批更新方法对Q值函数进行更新,即每获得200 个新训练经验时,才对Q值函数进行更新。且本发明利用在线稀疏高斯过程能提供不确定描 述的特点,使用一种改进的UCB方法进行动作选择,能指导仿人机器人控制器进行更有效的 探索(即指示最有可能成为最优的动作),比起传统的强化学习,其有更高地学习效率。为了 解决仿人机器人状态动作空间过大,导致控制器收敛难的问题以及提高控制性能,本发明 首先通过PID控制器获取一个有一定效用的控制输出动作,并将该动作指定为强化学习中 动作选择操作的寻优初始点,从而使动作选择不需要盲目的便利整个动作空间,而是在有 效动作的附近进行遍历,从而提高这种强化学习控制器的学习效率和控制性能。
【附图说明】
[0047]图1为模型相关强化学习方法中值函数、环境模型以及实际经验的关系图。
[0048]图2为基于稀疏高斯过程的环境模型的结构图。
【具体实施方式】
[0049]下面结合具体实施例对本发明作进一步说明。
[0050]本实施例所述的基于模型相关强化学习的仿人机器人步态控制方法,包括以下步 骤:
[0051] 1)为仿人机器人行走前后稳定控制任务定义强化学习框架;
[0052] 2)使用基于稀疏在线高斯过程的模型相关强化学习方法对仿人机器人进行步态 控制;
[0053] 3)使用PID控制器对强化学习仿人机器人控制器的动作选择方法进行改进,改进 操作为使用PID控制器获取强化学习控制器动作选择操作的寻优初始点。
[0054]本发明将强化学习用于仿人机器人行走前后稳定的控制,首先为该任务定义用于 强化学习的框架,即定义状态、动作以及立即回报值三个要素。仿人机器人行走前后稳定控 制任务的强化学习框架定义如下:
[0055] 1)仿人机器人的t时刻状态定义为:
[0056] s(t) = [k(t) ,qhi(t) ,qhr(t), θχζ(?), ω (t)]
[0057] t表示当前的时刻,其中k(t)为指示支撑脚的情况,1代表支撑脚为左脚,0代表支 撑脚位双脚,-1代表支撑脚为右脚;qhi(t),q hr(t)为t时刻左右髋关节俯仰舵机的角度;θχζ (t)为俯仰方向上的躯干倾斜角度,ω (t)为俯仰方向上的角速度。
[0058] 2)仿人机器人的动作定义为:
[0059] a(t) = [ Δ q]
[0060] 其中,△ q是对支撑脚的髋关节俯仰舵机的离线步态轨迹的在线角度调整量。
[0061] 3)仿人机器人的立即回报值定义为:
[0064] ?(?)=-( | ω (t) |_| ω (t_l) | )
[0065] 其中,ai、a2为立即回报函数权值,ε为容许误差。
[0066]定义好仿人强化学习框架后,就要使用具体的强化学习方法对其进行控制,以下 将详细介绍基于稀疏在线高斯过程模型相关强化学习方法,该方法主要包括环境模型,Q值 函数,以及动作选择方法等部分,将一一介绍:
[0067] 1)总体架构:
[0068] 在强化学习方法中,每次Agent与环境进行交互都会获取一个四元组的经验(SH, at-!,st,r),其中st-!代表t-Ι时刻状态,at-!代表动作,st是s t-!执行at-!后转移的状态,r为立 即回报值,模型相关强化学习的值函数、环境模型以及实际经验的关系结构如图1所示。
[0069] 从图1可以看出,本发明使用环境模型进行规划的方法是使用环境模型产生虚拟 的四元组经验,然后将这些虚拟的经验按照实际经验的方式处理来进行模型规划。我们将 环境模型定义为M(s,a),其对于任何一对输入(s,a),会返回对下一状态s'和立即回报值r 的预测,则该方法的大致流程描述如下:
[0070] ①初始化Q函数和环境模型Μ
[0071]②根据当前状态s按照一定策略(如ε-greedy策略)选取动作a,并执行。
[0072]③观察新的状态和立即回报值r,获取四元组经验,按照一定策略使用(1)式更新Q 值函数,并更新模型Μ
[0073] Q(sk-i,ak-i) =r+ ymax{Q(sk,a)/aeA} (1)
[0074] ④利用新的环境模型产生指定k个虚拟经验,并按照一定策略进行值函数更新 [0075]⑤判断算法是否已结束,否则回到②。
[0076] 2)环境模型介绍:
[0077] 2.1)环境模型的结构
[0078] 环境模型Μ是对于任意一个的状态动作对(s,a),都会返回其预测后继状态s',以 及预测立即回报值r的模型。因此模型Μ的输出个数应该是L+1个,其中L是状态s的维数。因 为S0GP的输出只有一个,我们使用S0GP来构建这个模型时一共需要建立L+1个S0GP模型,即 M= {SGP!,. . . SGPl,SGPl+i}。这些S0GP模型都是以f eature(s,a)为输入的。前L个S0GP模型分 别对Agent状态的每一维进行预测,第L+1个模型对环境立即回报值进行预测。另外,前L个 S0GP模型的输出不是对该维的直接预测值的概率分布,而是该维的相对变化值的概率分 布,即对于某一(s,a),第i个模型的输出均值为cU,则对(s,a)的后继状态s'的第i维的预测 均值为:
[0079] si,=Si+di (2)
[0080] 综上所述,其环境模型的结构如图2所示。
[0081] 2.2)环境模型输出预测
[0082]当要对(s,a)进行后继状态和立即回报值预测时,将featUre(s,a)输入到每一个 S0GP模型,则可以得到预测状态中每一个维数的相对变化值和立即回报值的预测概率分 布,即对一个(s,a),通过模型M,可以得到一组概率分布函数{pKcU),. . .pL(dL),pL+1 (dL+1)},简单假设状态的每个维数以及立即回报值之间是相互独立的,于是对于每个(s, a),其后继预测状态的概率分布函数为式(3),在进行采样操作时可以分别对每个维数进行 独立采样。
[0083] p(s,)=pi(si,_si) X · · · XpL(s'L-SL) (3)
[0084] 在IDSBQ中,我们简单的将每个维数的预测均值输出拼接在一起,作为对(s,a)的 后继状态和立即回报值的预测输出(s',r)。即对于一个(s,a),模型Μ有均值预测输出D = (di,…,dL)和dL+i,贝有s ' = s+D,r = dL+i。
[0085] 2.3)环境模型的更新
[0086] 与值函数的更新方式不同,每获得一个四元组经验,我们立即对环境模型更新。由于 环境模型Μ由L+1个S0GP模型组成,因此,每当获取到一个四元组经验(n,s t,r)时,我们将 其拆分成-组训练用的数据…(/-νι,νΜ>,(一 (VrW'气 然后将每对数据用于对应S0GP模型的更新,则环境模型更新过程描述如下:
[0087] ①与环境交互,获取一个经验(st-1,at-1,s t,r)
[0088] ②对该经验进行拆分,获得一组训练数据如下:
[0089] {{j'eature{st_x,),sj -),...,{featureis^,αιΛ),sf -),{feature{st_x,r)}
[0090] ③将对应的训练数据按照SOGP模型更新方式更新对应的SOGP模型。
[0091] 3 )Q值函数介绍:
[0092] 除了使用稀疏在线高斯过程对环境模型建模,我们也使用其对Q值函数进行拟合, 并使用批更新的方式对值函数进行更新,详细介绍如下:
[0093]本发明在对值函进行更新时,希望该更新能对值函数带来重大的改变,因此使用 式(4)来描述某个经验e = (s,a,s',r)的更新能对当前值函数带来的信息量1(e),
[0095]对于一组经验U,我们定义其使用该组经验更新使值函数增加的信息量I(U)为:该 组经验的单个经验更新所带来的信息量之和,即:
[0097]于是每当使用一组经验U进行更新时,我们通过判断其更新为值函数所带来的信 息量是否大于指定阀值he作为迭代停止条件之一,另一迭代停止条件为迭代次数是否大于 最大迭代次数N max。综上所述,每次进行值函数更新时,其操作流程如下:
[0098]①初始化迭代次数j = l
[00"]②根据模型随机生成W个状态的集合{si,· · ·,SW | Si e s(agent)},S(agent)为 Agent的合法状态集合
[0100] ③根据状态集合,随机生成合法的动作集合 Si的合法动作集合,并将动作和相应的状态合并成一个集合{(si,ai),. . .,(sw,aw)}
[0101] ④根据动作状态集合和环境模型M,生成一组经验{(81,&1,81', Γι),···,(Μ,&ν, s'w,n〇},将该组经验添加到集合U(初始时可能包含实际经验)
[0102] ⑤根据式(5)求I(U),如果I(U)<he或j>Nmax,则迭代更新结束,否则根据式(6)、 (7)将U中的经验转换成一组机器学习的训练数据,然后按照S0GP模型更新方法更新S0GP值 函数模型,清空集合U,j = j+1,返回②;
[0104] X = feature (st-i,at-1) (7)
[0105] 每次执行动作获取实际经验,当实际经验达到一定数目时,做上述值函数更新。
[0106] 4)动作选择方法介绍:
[0107] 本发明使用改进的UCB方法进行选择,详细介绍如下:
[0108] 本发明定义动作评判函数如下:
[0110] 其中:
[0111] UCB(fs,a)=y(fs,a)+KS(f s,a) (9)
[0112] UCB(rs,a)=E(rs, a)+2〇(rs,a) (10)
[0113] y(fs,a)是对该点的Q值的预测均值,S(fs,a)是对该点的Q值的预测方差,E(r s,a)是 立即回报值rs,a的预测均值, 〇(rs,a)是rs,a的预测方差。
[0114] 本发明使用梯度下降法求解令(8)最大的动作来进行控制动作的选择。
[0115] 本发明使用髋关节上的陀螺仪ro控制器对强化学习控制器进行改进,改进方法为 获取动作选择中的寻优初始点,以下将详细介绍:
[0116] 本发明在选择动作的时候采用了梯度下降法的寻优方法对式(8)寻优来选择动 作,这种方法所需要的计算资源和时间都比较大,且其所花费的时间和最优化效果往往与 搜索初始点有较大的关系。因此我们使用具有良好的陀螺仪ro控制器,为梯度下降寻优方 法提供一个较好的寻优初始点,来改善寻优的结果和所需要的时间,每次选择动作时,通过 仿人机器人状态 s中的角速度变量,我们就可以通过式(11)求得相同条件下陀螺仪控制器 的输出U。
[0118]令梯度下降法中的搜索初始点a(0)=u,然后执行梯度下降法求解(8)的最优点即 可。
[0119]改进的整个控制器的控制流程描述如下:
[0120] ①初始化强化学习控制器的模型和所要用到的参数;
[0121] ②使用卡尔曼滤波等方法获取当前的仿人机器人状态;
[0122] ③根据当前状态,获取陀螺仪ro控制器的输出(即式(11)的值);
[0123] ④将陀螺仪ro控制器的输出作为寻优初始点,再根据当前状态和Q值函数,使用梯 度下降法求解出令式(8)最大的控制动作;
[0124] ⑤使用该控制动作对仿人机器人的静态行走轨迹进行调整;
[0125] ⑥获取仿人机器人新的状态和立即回报值,从而得到新的训练经验,并用新的训 练经验进行环境模型的更新;
[0126] ⑦判断新的训练经验是否达到一定的数目,是则进行Q值函数的更新,否则回到 ②。
[0127] 所述值函数更新流程为:
[0128] ①使用模型产生一组虚拟的训练数据;
[0129] ②使用该组训练数据更新按照稀疏在线高斯过程更新方法更新值函数;
[0130] ③判断是否满足迭代条件,满足则停止,否则回到①。
[0131]以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故 凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
【主权项】
1. 基于模型相关强化学习的仿人机器人步态控制方法,其特征在于,包括W下步骤: 1) 为仿人机器人行走前后稳定控制任务定义强化学习框架; 2) 使用基于稀疏在线高斯过程的模型相关强化学习方法对仿人机器人进行步态控制; 3) 使用PID控制器对强化学习仿人机器人控制器的动作选择方法进行改进,改进操作 为使用PID控制器获取强化学习控制器动作选择操作的寻优初始点。2. 根据权利要求1所述的基于模型相关强化学习的仿人机器人步态控制方法,其特征 在于,在步骤1)中,所述的强化学习框架,包含W下要素定义: 1.1) 仿人机器人的状态定义为: s(t) = [k(t) ,qhi(t) ,qhr(t) ,θχζ(?), ω (t)] t表示当前的时刻,其中k(t)为指示支撑脚的情况,1代表支撑脚为左脚,Ο代表支撑脚 位双脚,-1代表支撑脚为右脚;qhi(t),qhr(t)为t时刻左右髓关节俯仰舱机的角度;9xz(t)为 俯仰方向上的躯干倾斜角度,ω (t)为俯仰方向上的角速度; 1.2) 仿人机器人的动作定义为: a(t) = [ Δ q] 其中,A q是对支撑脚的髓关节俯仰舱机的离线步态轨迹的在线角度调整量; 1.3) 仿人机器人的立即回报值定义为:Γ2(?)=-( I ω (t) |-| ω (t-1) I ) 其中,ai、a劝立即回报函数权值,ε为容许误差。3. 根据权利要求1所述的基于模型相关强化学习的仿人机器人步态控制方法,其特征 在于,在步骤2)中,所述的基于稀疏在线高斯过程的模型相关强化学习方法,主要包含W下 几个步骤: 2.1) 使用稀疏在线高斯过程构建环境模型,该环境模型一共包含6个稀疏在线高斯过 程模型,W仿人机器人的状态和动作为输入,W下一状态和立即回报值的预测为输出; 2.2) 对Q值函数采用批更新的方法,只有当新获取的经验数目达到200个时,才对Q值函 数进行更新; 2.3) 使用一个基于UCB的连续动作选择方法,使用稀疏在线高斯过程的方差输出和利 用环境模型对仿人机器人后继状态和立即回报值的预测,构建了一条基于UCB的动作评判 函数:其中: UCB(fs,a)=y(fs,a)+K5(fs,a) UCB(rs,a)=E(rs,a)巧 〇(rs,a) y(fs,a)是对该点的Q值的预测均值,S(fs,a)是对该点的Q值的预测方差,E(rs,a)是立即 回报值a的预测均值,〇(rs,a)是a的预测方差; 使用梯度下降法求解该函数来选择动作,并参考ε-greedy策略的思想,Κε的概率随机 选取动作。4.根据权利要求1所述的基于模型相关强化学习的仿人机器人步态控制方法,其特征 在于,在步骤3)中,所述的使用PID控制器动作选择方法进行改进方法为:根据机器人的状 态,获得同等条件下PID方法的控制动作,将该动作作为强化学习动作选择过程中所使用的 梯度下降方法的寻优初始点; 改进后,控制器具体步骤描述如下: ① 初始化强化学习控制器的模型和所要用到的参数; ② 使用卡尔曼滤波等方法获取当前的仿人机器人状态; ③ 根据当前状态,获取相对应的PID控制器的输出; ④ 利用PID控制器的输出,再根据当前状态和Q值函数,使用梯度下降法求解出最优的 控制动作; ⑤ 使用该控制动作对仿人机器人的静态行走轨迹进行调整; ⑥ 获取仿人机器人新的状态和立即回报值,从而得到新的训练经验,并用新的训练经 验进行环境模型的更新; ⑦ 判断新的训练经验是否达到设定的数目,是则进行Q值函数的更新,否则回到②; 所述值函数更新流程为: ① 使用模型产生一组虚拟的训练数据; ② 使用该组训练数据更新按照稀疏在线高斯过程更新方法更新值函数; ③ 判断是否满足迭代条件,满足则停止,否则回到①。
【文档编号】G05D1/02GK106094813SQ201610363756
【公开日】2016年11月9日
【申请日】2016年5月26日
【发明人】毕盛, 陈奇石, 董敏, 闵华清
【申请人】华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1