​机器人变成“踩点狂魔”!跟随节拍Freestyle,德国不来梅大学已开源(图1) data-backh="403" data-backw="562" data-galleryid="" data-ratio="0.7171853856562923" data-s="300,640" data-type="png" data-w="739">

如果人形机器人要成为我们生活的一部分,那它们就得会做许多接地气的事情,比如跳个广场舞,又或者是蹦迪。

​机器人变成“踩点狂魔”!跟随节拍Freestyle,德国不来梅大学已开源(图2) data-backh="236" data-backw="420" data-galleryid="" data-ratio="0.5619047619047619" data-type="gif" data-w="420">

时不时能来段尬舞的机器人有很多,但是能够真正跟上音乐节拍的又有几个呢?机器人除了能做预先编程好的动作外,能不能别出心裁,自创一些舞蹈?

为了让机器人有朝一日能够愉快地蹦迪,融入人类的生活,德国不来梅大学的研究人员开发了一种新型算法,让机器人跳舞时能够踩准音乐的节奏。简单说来,就是先让机器人能够准确抓住一段音乐的节奏,然后做出舞蹈动作。

▍从模仿开始,实现最优化控制

以前那些会跳舞的机器人都是从舞姿库里挑选动作,这些动作可以手动编程添加,也可以通过动作捕捉技术从真人的舞蹈里收集。这些机器人需要通过节拍跟踪技术,确保它们的舞蹈和音乐节奏吻合。

不过,现在有很多研究人员还没有完全利用音乐里的其他元素,比如音量和旋律。也没有人用最佳控制理论来让机器人的舞蹈看起来更自然和流畅。而且,现在还没有一个统一的方法可以自动创作出像人一样自然的舞蹈。

​机器人变成“踩点狂魔”!跟随节拍Freestyle,德国不来梅大学已开源(图3) data-backh="275" data-backw="562" data-galleryid="" data-ratio="0.4890710382513661" data-type="gif" data-w="732">

因此,不来梅大学的研究人员觉得,如果将这些元素结合起来,将会有助于创作出更加优美和自然的机器人舞蹈。

最佳的舞蹈轨迹是通过一个叫做直接最佳控制的东西计算出来的。这个方法可以得出三种不同的跳舞方式,即模仿、即兴舞蹈和自动编舞。模仿和即兴这两种方法需要先提取音乐的节拍。

自动编舞的方法则需要用到更多的音乐特征,比如音调和旋律。

​机器人变成“踩点狂魔”!跟随节拍Freestyle,德国不来梅大学已开源(图4) data-backh="175" data-backw="578" data-cropselx1="0" data-cropselx2="578" data-cropsely1="0" data-cropsely2="174" data-ratio="0.30185185185185187" data-type="png" data-w="1080">

于是他们想出了一种让舞蹈模式化的通用方法,也推导出了基于音乐分析和最优控制的舞蹈生成方法。跟其他方法一样,它也是提取节拍作为基础。然后通过微分动态规划(BoxFDDP)的最优控制轨迹优化,他们将机器人的舞蹈姿势跟最终舞蹈轨迹联系起来。这些方法成功地生出了四种不同的舞蹈动作,并使用机器人RH5-Manus来验证。

这就解决了一部分机器人舞蹈生成方面的问题。这个方法是通用的,因此可适用于人形机器人和非人形机器人,比如四足机器人甚至四旋翼无人机。

在机器人控制层面,为了让机器人的舞蹈不那么像做课间操,这里第一次实现了用最优化控制,让它能够比较丝滑地切换不同的舞姿。RH5 Manus机器人只有上半身,一共有111个自由度。这里使用的音乐是Los Del Rio的《Macarena》中的一个9秒片段,包括重复一个著名的舞蹈动作:

​机器人变成“踩点狂魔”!跟随节拍Freestyle,德国不来梅大学已开源(图5) data-backh="270" data-backw="480" data-galleryid="" data-ratio="0.5625" data-type="gif" data-w="480">

作者们把人类舞者的动作输入到机器人的舞姿库里。这首曲子里的一些舞姿转换太快了,而且还有连续的一连串动作,机器人表示太难了,所以需要在控制上进行一些优化,加快切换速度。

不过这里还遇到了另一个问题。在模拟中,研究人员发现机器人在两个舞姿之间切换时,需要两臂交叉,结果手臂就撞在了一起。于是只好给它在两个动作之间设置了一个过渡的动作,最后,在RH5 Manus机器人那里,这段热舞约等于这样:

​机器人变成“踩点狂魔”!跟随节拍Freestyle,德国不来梅大学已开源(图6) data-backh="222" data-backw="454" data-cropselx1="0" data-cropselx2="454" data-cropsely1="0" data-cropsely2="221" data-ratio="0.48833333333333334" data-type="png" data-w="600">

​机器人变成“踩点狂魔”!跟随节拍Freestyle,德国不来梅大学已开源(图7) data-backh="223" data-backw="457" data-cropselx1="0" data-cropselx2="456" data-cropsely1="0" data-cropsely2="223" data-ratio="0.48833333333333334" data-type="png" data-w="600">

▍即兴舞蹈,信手捏来

而到了即兴舞蹈部分,使用的是Daler Mehndi 的Tunak Tunak Tun作为伴奏,节奏十分明快。先是让人类舞者来一段即兴舞蹈,然后再把舞姿和对应的时间点挑选出来,加入到机器人的舞姿库里,这样机器人可以生成新的舞蹈:

​机器人变成“踩点狂魔”!跟随节拍Freestyle,德国不来梅大学已开源(图8) data-backh="232" data-backw="396" data-cropselx1="0" data-cropselx2="396" data-cropsely1="0" data-cropsely2="232" data-ratio="0.5861111111111111" data-type="png" data-w="1080">

那要是放手让机器人自己随便跳呢?

在接下来的实验里,他们用的是比才的歌剧《采珠人》里的咏叹调《令我无法忘怀的歌声》,选取了其中40秒的片段。人类唯一参与的部分就是选取了节拍的时间点,然后由机器人自行编舞。

后者生成了这样的运动轨迹,把舞蹈中手所在的高度与音乐旋律和音量匹配起来:

​机器人变成“踩点狂魔”!跟随节拍Freestyle,德国不来梅大学已开源(图9) data-backh="393" data-backw="298" data-cropselx1="0" data-cropselx2="298" data-cropsely1="0" data-cropsely2="393" data-ratio="1.3172866520787747" data-type="png" data-w="457">

▍模型还需扩展,避免撞壁

将来,研究团队还打算对舞蹈数学模型进行拓展,要包含更多的动态元素。这样不仅可以应用特定的姿势来编舞,还可以让舞姿匹配速度和加速度等动态特征以及音乐的特质。

另一个需要改进的地方是避免碰撞,这对于整个过程的自动化至关重要。在实验中,所有的碰撞都来自一种特定的姿势——交叉手臂。解决这个问题有两种途径:首先,可以通过创建一个包含验证过不会产生碰撞的姿势转换库来扩大机器人舞姿库。其次是可以将避免碰撞的策略整合到最优控制模型中。此外,还可以用一个MPC控制器来进行实时的舞蹈动作生成,这在未来也值得尝试一下。

RH5 Manus机器人的混合关节就像人体的关节一样,既有串联也有并联。这些关节不仅在优化过程中扮演着重要的角色,而且也受到各种内部闭环的约束。有了这些约束,就可以更好地利用机器人的能力,让它的动作更加灵活,更加逼真。

想象一下,如果机器人能够做出像人类一样的各种动作,那么舞蹈表演就会更加生动有趣。

科研团队在这里用到的所有软件都是开源的,发布在Github上:

https://github.com/dfki-ric-underactuated-lab/robot_dance_generation,

他们打算把这些软件分享给其他研究者使用,这样大家都可以在研究过程中互相帮助,共同进步。

-----------------END-------------------