总的来说这篇文章的目的是训练出一个Agent在能够完成所需要的目标前提下,它的动作更贴近真实(也就是提供的参考动作)。
整个DeepMimic所需要的input分为三部分:一个被称为Character的Agent模型;想要Agent学习的参考动作(reference motion);想要Agent完成的任务(task)所定义的reward function。训练之后会得到一个可以控制Agent同时满足与参考动作相似且可以完成任务的控制器(controller)。DeepMimic的物理环境用的是(Bullet. 2015. Bullet Physics Library. (2015). http://bulletphysics.org.)
算法部分来说既然是RL,就少不了三个重要组成部分State,Action,Reward:
- State:对于Character的各种描述,包括身体各部分的位置,转动角度,角速度等等,坐标系的原点是Character的盆骨(奇妙的说法),x轴方向是脸的朝向;同时还加了一个变量来描述一个motion的进度(例如后空翻动作开始时为0,翻完了结束了为1)。
- Action:每个关节所需要转到的方向(目标角度),采样频率为30Hz,之后将角度输入到PD controller(Jie Tan, Karen Liu, and Greg Turk. 2011. Stable Proportional-Derivative Controllers.IEEE Comput. Graph. Appl. 31, 4 (2011), 34–44.)