训练人形步行者
这个例子展示了如何建模一个人形机器人使用Simscape多体™并使用遗传算法(这需要一个全局优化工具箱许可证)或强化学习(这需要深度学习工具箱™和强化学习工具箱™许可证)。
人形步行者模型
这个例子是基于一个人形机器人模型。您可以通过输入打开模型sm_import_humanoid_urdf
在MATLAB®命令提示符中。机器人的每条腿在前臀部、膝盖和脚踝处都有扭矩驱动的转动关节。每只手臂在额肩和矢状肩有两个被动转动关节。在模拟过程中,模型感知接触力、躯干的位置和方向、关节状态和向前位置。该图显示了不同层次上的Simscape多体模型。
接触建模
该模型使用空间接触力积木来模拟脚与地面的接触。为了简化接触并加快模拟速度,使用红色球体代表机器脚的底部。详情请参见使用联系人代理来模拟联系人。
关节控制器
该模型采用基于刚度的反馈控制器对各关节[1]进行控制。将关节建模为具有相关刚度的一阶系统(K)和阻尼(B),你可以设置使关节行为临界阻尼。当设定值时施加扭矩 与当前关节位置不同 :
。
你可以改变弹簧设定点 引起反馈反应来移动关节。控制器的Simulink模型如图所示。金宝app
人形步行者训练
本例的目标是训练一个人形机器人行走,您可以使用各种方法来训练机器人。实例说明了遗传算法和强化学习方法。
步行目标函数
这个例子使用一个目标函数来评估不同的走路方式。模型给出一个奖励( )在每个时间步长:
在这里:
前进速度(奖励)
-耗电量(扣除)
-垂直位移(扣分)
-侧向位移(扣分)
:权重,表示奖励函数中每个项的相对重要性
此外,不摔倒是奖励。
因此,总奖励( )进行行走试验:
在这里
模拟结束的时间。你可以改变奖励的权重sm_humanoid_walker_rl_parameters
脚本。当达到仿真时间或机器人摔倒时,仿真结束。坠落被定义为:
机器人下降到0.5米以下。
机器人横向移动1米以上。
机器人躯干可以旋转30度以上。
遗传算法训练
为了优化机器人的行走,你可以使用遗传算法。遗传算法通过模拟生物进化的自然选择过程来解决优化问题。遗传算法特别适用于目标函数不连续、不可微、随机或高度非线性的问题。有关更多信息,请参见遗传算法
(全局优化工具箱)。
该模型将每个关节的角度需求设置为重复模式,类似于自然界[2]中看到的中心模式生成器。重复的模式产生了一个开环控制器。信号的周期性是步态周期,这是完成一个完整步骤所花费的时间。在每个步态周期中,信号在不同的角度需求值之间切换。理想情况下,类人机器人对称行走,右腿每个关节的控制模式传递到左腿相应的关节,延迟半步周期。模式发生器的目标是确定每个关节的最优控制模式,并使行走目标函数最大化。
要用遗传算法训练机器人,请打开sm_humanoid_walker_ga_train
脚本。默认情况下,这个例子使用一个预先训练过的人形行走器。训练人形步行者,准备trainWalker
来真正的
。
强化学习训练
或者,你也可以使用深度确定性策略梯度(DDPG)强化学习代理来训练机器人。DDPG代理是一种行动者-评论家式的强化学习代理,它计算出一种使长期奖励最大化的最优策略。DDPG代理可用于具有连续动作和状态的系统。关于DDPG代理的详细信息,请参见rlDDPGAgent
(强化学习工具箱)。
要用强化学习训练机器人,请打开sm_humanoid_walker_rl_train
脚本。默认情况下,这个例子使用一个预先训练过的人形行走器。训练人形步行者,准备trainWalker
来真正的
。
参考文献
[1] Kalveram, Karl T., Thomas Schinauer, Steffen Beirle, Stefanie Richter和Petra Jansen-Osmann。将神经前馈穿进机械弹簧:生物学如何在肢体控制中利用物理学生物控制论92年,没有。4(2005年4月):229-40。https://doi.org/10.1007/s00422 - 005 - 0542 - 6。
[2]江山,程俊石,陈家品。基于多目标遗传算法的仿人机器人行走中心模式发生器设计。在2000年IEEE/RSJ智能机器人与系统国际会议论文集(IROS 2000) (Cat。No.00CH37113), 3: 1930-35。高松,日本:IEEE, 2000。https://doi.org/10.1109/IROS.2000.895253。