“
对于机器人的运动控制,强化学习是广受关注的方法。本期技术干货,我们邀请到了小米工程师——刘天林,为大家介绍机器人(以足式机器人为主)强化学习中的sim-to-real问题及一些主流方法。
”
一、前言
设计并制造可以灵活运动的足式机器人,一直是工程师追逐的梦想。相比于轮式机器人,足式机器人凭借其腿部结构优势可以在离散非连续的路面行走。近年来,足式机器人技术发展迅速,涌现出了许多先进的足式机器人,如波士顿动力的Atlas/Spot机器人、麻省理工学院(MIT)的Cheetah系列机器人、瑞士苏黎世理工学院(ETH)的ANYmal系列机器人、宇树科技的A1/Go1机器人、小米的铁蛋机器人等。主流的传统运动控制方法,如模型预测控制(Model Predictive Control,MPC)和全身运动控制(Whole-Body Control,WBC),在足式机器人上得到了广泛的应用。
然而,这些方法往往需要复杂的建模和繁琐的人工调参,生成的动作在自然度和灵活性上也有所欠缺,这也使得研究者们把目光转向受生物启发的学习方法,强化学习(Reinforcement Learning,RL)就是其中最为广泛关注的方法。图1为四足机器人利用强化学习方法在不同路面行走的例子。
图1 基于强化学习的四足机器人不同路面行走
图片来源:https://ashish-kmr.github.io/rma-legged-robots/
强化学习是机器学习的一个分支。与监督学习不同,在强化学习中,智能体通过与环境不断交互进行试错学习,其目标是最大化累积回报。强化学习最早起源于 20 世纪 50 年代出现的“最优控制”,用于解决控制器的设计问题,其目标是使得动态系统能够随时间变化实现某种指标的最优(即最大或者最小)。
强化学习的另一个起源来自于对动物行为实验的观察。研究发现,动物在面对相同情景时会表现出不同的行为,它们更倾向于能够引起自身满足感的行为,而对于那些会给自己带来不适的行为则会尽量避免。换言之,动物们的行为在与环境的互动中通过不断试错来巩固,试错学习也是强化学习方法的核心思想。
强化学习通过与环境交互不断试错来学习,其代价是所需的样本量很大,这对于实体机器人来说往往不可行,因为过多的交互次数会对机器人硬件造成不可逆转的损耗,甚至损坏机器人,同时也需要大量时间。
基于物理引擎的仿真器,如Pybullet、Mujoco、Isaac Gym等,为获取大量机器人交互数据提供了一个有效的方式。研究者们可以先在仿真器中进行训练,之后再迁移到真实机器人上。然而,由于真实环境受到多种物理规律的约束,仿真器无法准确地建模真实环境,这也使得仿真中训练得到的策略在真实机器人上直接部署时往往会失效或性能下降。学术界将从仿真到真机的迁移称作sim-to-real,它们之间的差异称作sim-to-real gap或者reality gap。
二、sim-to-real问题
在介绍具体方法之前,首先带大家了解一下sim-to-real中需要考虑的一些问题,这也有助于大家理解解决sim-to-real问题背后的方法思想。图2为机器人感知控制框架的示意图,机器人处于一个环境中,根据自身传感器获取对环境的感知信息,之后根据这些信息进行决策,得到相应的动作并在环境中执行该动作,整个过程是一个闭环的控制过程。从这个过程也可以了解仿真和真实的一些差异:
▍(1)环境建模差异。
物理仿真器无法准确地捕捉真实世界的物理特性,如摩擦力、接触力、质量、地面反弹系数、地形方面的特性。
▍(2)感知差异。
真实世界中的感知往往是存在噪声的,易受到多种因素如光照方面的影响。而且,不同于仿真环境,真实世界中的感知是部分可观测的,sim-to-real时也需要考虑这方面的因素。