主要内容

基于DDPG Agent的四足机器人运动

这个例子展示了如何使用深度确定性策略梯度(deep deterministic policy gradient, DDPG) agent训练四足机器人行走。本例中的机器人使用Simscape™Multibody™建模。有关DDPG代理的更多信息,请参见双延迟深度确定性策略梯度代理

将必要的参数加载到MATLAB®的基本工作空间中。

initializeRobotParameters

四足机器人模型

本例的环境是一个四足机器人,训练目标是使机器人以最小的控制努力沿直线行走。

机器人使用Simscape Multibody和Simscape Multibody建模Simscape多体接触力库.主要结构部件是四条腿和一个躯干。腿通过转动关节与躯干相连。RL Agent块提供的动作值被缩放并转换为关节扭矩值。这些关节转矩值被转动关节用来计算运动。

打开模型。

mdl ='rlquadrupedrobot';open_system (mdl)
警告:无法识别的函数或变量'CloneDetectionUI.internal.CloneDetectionPerspective.register'。

观察

机器人环境为代理提供了44个观察,每个观察结果为-1到1之间。这些观察结果是:

  • Y(垂直)和躯干质量中心的Z(横向)位置

  • 代表躯干方向的四元数

  • X(前进),y(垂直)和质量中心躯干的z(横向)速度

  • 躯干的滚转,俯仰和偏航率

  • 每个腿的臀部和膝关节的角位置和速度

  • 每条腿接触地面时的法向力和摩擦力

  • 从前一步步上的动作值(每个关节的扭矩)

对于所有四条腿,髋关节和膝关节角度的初始值分别设置为-0.8234和1.6468 rad。关节的中立位置为0 rad。当腿伸展到最大时,腿处于中立位置,并与地面垂直对齐。

行动

该代理在-1和1之间产生阵证的八个动作。在用缩放因子乘以缩放因子之后,这些对应于旋转关节的八个接合扭矩信号。每个关节的整个关节扭矩界限为+/- 10 n·m。

报酬

在训练过程中的每一个时间步骤中,向agent提供如下奖励。这个奖励功能通过为正向速度提供正向奖励来鼓励代理向前移动。它还通过提供固定的奖励( 2 5. T. S. / T. F 25 TS / TF )每次步骤。奖励功能中的其余条款是阻止不需要的国家的惩罚,例如与所需高度和方向的大偏差或过度联合扭矩的使用。

R. T. = V. X + 2 5. T. S. T. F - 5. 0. y 2 - 2 0. θ 2 - 0. 0. 2 σ. 一世 T. - 1 一世 2 r(t)= Vx(t)+ 25 * ts / tf - - 50 *ĥ(t)^ 2 - 20 *θ(t)2 - 0.02 *σu(t-1)^ 2

在哪里

  • V. X vx(t) 是躯干在X方向上的躯干的速度。

  • T. S. TS. T. F TF. 是环境的采样时间和最终模拟时间。

  • y 为躯干质心从0.75米期望高度的比例高度误差。

  • θ 是躯干的俯仰角度。

  • T. - 1 一世 U(T-1) 是关节的动作价值 一世 从上一步一步。

派分终止

在培训或仿真期间,剧集如果发生以下任何情况,则终止。

  • 从地面的躯干质量中心的高度低于0.5米(下降)。

  • 躯干的头部或尾部低于地面。

  • 任何膝关节都在地下。

  • 滚转、俯仰或偏航角在边界外(分别为+/ - 0.1745、+/ - 0.1745和+/ - 0.3491 rad)。

创建环境界面

指定观察集的参数。

numobs = 44;ObsInfo = rlnumericspec([numobs 1]);ObsInfo.name =.'观察'

指定操作集的参数。

numact = 8;ActInfo = rlnumericspec([Numact 1],'lowerimit', 1'上限'1);actInfo。Name ='扭矩'

使用加强学习模型创建环境。

黑色= [mdl,'/ rl代理'];Env = Rl金宝appsimulinkenv(MDL,BLK,OBSINFO,ACTINFO);

在训练期间,复位函数将随机偏差引入初始关节角度和角速度。

env。ResetFcn = @quadrupedResetFcn;

创建DDPG代理

DDPG代理通过使用批评值函数表示来估计长期奖励给出的观察和行动。代理商还使用演员表示决定给予观察的行动。这个例子的演员和批评网络是由[2]的启发。

有关创建深度神经网络值函数表示的更多信息,请参见创建策略和值函数表示.有关为DDPG代理创建神经网络的示例,请参见火车DDPG代理控制双积分系统

在MATLAB工作空间中创建网络使用CreateNetWorks.辅助功能。

CreateNetWorks.

您还可以使用互动的方式创建您的演员和批评者网络深层网络设计师应用程序。

查看批评批评网络配置。

情节(批评性)

使用代理选项指定使用rlddpgagentoptions.

agentOptions = rlDDPGAgentOptions;agentOptions。SampleTime = t;agentOptions。DiscountFactor = 0.99;agentOptions。MiniBatchSize = 250;agentOptions。ExperienceBufferLength = 1 e6;agentOptions。T.argetSmoothFactor = 1e-3; agentOptions.NoiseOptions.MeanAttractionConstant = 0.15; agentOptions.NoiseOptions.Variance = 0.1;

创建rlddpgagent.代理的对象。

代理= rlddpgagent(演员,批评者,代理选项);

指定培训选项

要培训代理,首先指定以下培训选项:

  • 每一集最多10000集,每一集最多持续时间maxSteps时间步骤。

  • 在Episode Manager对话框中显示培训进度(设置绘图选项)并禁用命令行显示(设置详细的选项)。

  • 当代理商收到超过190个超过250个连续剧的平均累积奖励时停止培训。

  • 当累计奖励超过200时,为每一集保存一份代理。

maxEpisodes = 10000;maxSteps =地板(Tf / Ts);trainOpts = rlTrainingOptions (......“MaxEpisodes”,maxepisodes,......'maxstepperepisode'maxSteps,......'scoreaveragingwindowlength', 250,......“详细”,真的,......'plots''培训 - 进步'......'stoptrinaincriteria'“AverageReward”......“StopTrainingValue”,190,......'SaveAgentCriteria''EpisodeReward'......'saveagentvalue',200);

要并行地培训代理,请指定以下培训选项。并行培训需要并行计算工具箱™软件。如果您没有安装并行计算工具箱™软件,请设置UseParallel错误的

  • 设定UseParallel选择t.后悔

  • 培训代理在异步并行。

  • 每走32步后,每个工作者将经验发送给主机。

  • DDPG代理要求工人发送'经验'到主人。

trainOpts。UseParallel = true;trainOpts.ParallelizationOptions.Mode =“异步”;训练.ParlellelizationOptions.StepsuntIndataistent = 32;训练.ParallelizationOptions.datatosendfromworkers ='经验'

火车代理

使用培训代理商使用火车功能。由于机器人模型的复杂性,这个过程是计算密集的,需要几个小时才能完成。要在运行此示例的同时节省时间,请通过设置加载预制代理偶然错误的.自己训练代理人,设置偶然真正的.由于并行培训的随机性,您可以期待下面的绘图中的不同培训结果。

dotraining = false;如果偶然%训练代理人。trainingStats =火车(代理,env, trainOpts);其他的%加载预磨料的代理。加载(“rlQuadrupedAgent.mat”'代理人'的)结尾

模拟训练的代理

修复随机生成器种子的再现性。

RNG(0)

要验证培训的代理的性能,请在机器人环境中模拟它。有关代理模拟的更多信息,请参阅RlsimulationOptions.SIM

simoptions = rlsimulationOptions('maxsteps', maxSteps);经验= sim (env,代理,simOptions);

关于如何训练一个DDPG代理行走一个两足机器人和模拟Simscape™多体™的类人步行者的例子,请参见使用强化学习代理训练两足机器人行走训练人形沃克(Simscape Multibody), 分别。

参考

[1] Heess,Nicolas,Dhruva TB,Srinivasan Sriram,Jay Lemmon,Josh Merel,Greg Wayne,Yuval Tassa,等。'富裕环境中运动行为的出现'。arxiv:1707.02286 [cs]2017年7月10日。https://arxiv.org/abs/1707.02286

Lillicrap, Timothy P, Jonathan J. Hunt, Alexander Pritzel, Nicolas Heess, Tom Erez, Yuval Tassa, David Silver和Daan Wierstra。“深度强化学习的连续控制”。ARXIV:1509.02971 [CS,Stat],2019年7月5日。https://arxiv.org/abs/1509.02971.

也可以看看

相关话题

相关话题