SkillMimic: Learning Reusable Basketball Skills from Demonstrations论文研读
论文地址: https://arxiv.org/pdf/2408.15270
项目地址: https://ingrid789.github.io/SkillMimic/
论文内容总结
- SkillMimic基于强化学习学习多样化的篮球技能。
- SkillMimic使用的篮球数据集为两种:一是单目RGB视频数据Ballplay-V,二是动补数据Ballplay-M。
- 设计了一种统一的回报设计(Unified skill imitation reward),计算每一步学习参考姿态的效果。同时回报项增加了物体的接触回报表示(即文中的Contact Graph表示)来加速学习效率(强化学习时常会让机器人学会一些不像人的或不期望的表现,例如用头和手同时接触篮球,完成篮球的抓取任务。使用接触图可以表示球是否同除手外的身体接触,以及是否同手接触,并在回报中体现仿真时的接触关系和参考数据的接触关系的差异来加速训练)。同时采用乘法而不是常用的加法来计算总回报,论文称这种计算方式可以更合理平衡各项回报的占比,并在实验中显示了这一方法的有效性。
- SkillMimic还采用了分层强化学习的方式,学习一个更高层次的技能切换控制器,可以达到使用多个技能完成一个复杂的篮球任务。(这个部分同论文ASE的学习高层控制策略比较像)。
- 实验结果表明,SkillMimic可以有效地学习数据集中包含的各种篮球技能,包括各种风格的运球、上篮和投篮。此外,通过训练一个高级控制器来重用所获得的技能,可以实现复杂的篮球任务,如上篮得分(这涉及到运球向篮筐,计时运球和上篮得分,取回篮板,并重复这个过程)。
下图显示了SkillMimic的系统构成。
论文实现细节分析
技能表示
一种技能可以直接由连续的动作剪辑(motion clips)来表示。可以收集多条动作剪辑来丰富某个技能的表示,这样数据量越多模仿学习对该技能可以学的更好。
状态设计
技能网络输入包含两部分,即状态
s
t
s_t
st和技能标签
c
j
c_j
cj(one-hot表示)。
s
t
=
{
o
t
p
r
o
p
,
o
t
f
,
o
t
o
b
j
}
\bm{s}_t = \{ \bm{o}^{prop}_t, \bm{o}^f_t, \bm{o}^{obj}_t \}
st={otprop,otf,otobj}
o
t
p
r
o
p
\bm{o}^{prop}_t
otprop(机器人本体状态):
- global root height
- local body position, rotation, position velocity, angular velocity
o t f \bm{o}^f_t otf(接触力信息):
- net contact forces for all fingertips
o t o b j \bm{o}^{obj}_t otobj(物体状态):
- local position, rotation, velocity, and angular velocity
回报设计
complete Human-Object Interaction (HOI) imitation reward is
r
t
=
r
t
b
∗
r
t
o
∗
r
t
r
e
l
∗
r
t
r
e
g
∗
r
t
c
g
\bm{r}_t = \bm{r}^{b}_t * \bm{r}^{o}_t * \bm{r}^{rel}_t * \bm{r}^{reg}_t * \bm{r}^{cg}_t
rt=rtb∗rto∗rtrel∗rtreg∗rtcg
-
r
t
c
g
\bm{r}^{cg}_t
rtcg:Contact Graph Reward, is designed to enhance the precision
of interaction imitation - r t b \bm{r}^{b}_t rtb:the Body Kinematics Reward
- r t o \bm{r}^{o}_t rto:the Object Kinematics Reward
- r t r e l \bm{r}^{rel}_t rtrel:the Relative Motion Reward
- r t r e g \bm{r}^{reg}_t rtreg:a Velocity Regularization term to suppress high-frequency jitters
动作输出
同机器人的自由度一致,采用PD控制器输出目标转矩。
High Level Controller
网络输入是 s t s_t st和任务状态 h t h_t ht(任务状态根据任务的不同,状态维度也不同),输出是前面训练的技能网络需要的技能标签 c t c_t ct。
实验设置
仿真环境:Issac Gym
GPU: Nvidia RTX 3090/4090 GPU
算法超参数:略
需要进一步研究的点
- 如何从Ballplay-V视频数据中提取动作数据?
估计是要学习论文给的参考文献SMPL-X和Motion-X。 -
r
t
r
e
g
\bm{r}^{reg}_t
rtreg的公式是怎么得来的?
- 同DeepMimic和AMP的区别?
- 论文像是对DeppMimic的改进,也就是改回报计算为乘法以及增加了Contact Graph回报。
- 论文实验部分也展示了同AMP算法效果的对比。AMP要使用这种改进,那应该是状态增加技能标签输入,强化部分回报增加目标回报和Contact Graph回报?
- 论文的结果为何没有在实机上测试打篮球的效果?是否存在什么问题?