Walk These Ways

Walk These Ways

Walk These Ways: 多样化行为的机器人控制

请添加图片描述

摘要

学习到的运动策略可以快速适应与训练环境相似的多样化环境,但缺乏在分布外测试环境中失败时进行快速调整的机制。这需要缓慢且迭代的奖励和环境重新设计,以在新任务上获得良好性能。作为替代方案,我们提出了学习一种编码多种步态策略的单一策略,解决训练任务的不同方式,形成了行为多样性(MoB)。不同的策略可以在新任务或环境中实时选择,绕过了耗时的重新训练需求。我们发布了一个快速、稳健的开源MoB步态控制器“Walk These Ways”,它可以执行具有可变步伐、姿态和速度的多种步态,解锁多样化的下游任务:如蹲下、跳跃、高速奔跑、爬楼梯、抵抗推挤、节奏舞蹈等。视频和代码发布地址:https://gmargo11.github.io/walk-these-ways/

1. 介绍

最近的工作已经确立了通过强化学习训练的四足运动控制器在模拟环境中可以成功转移到自然地形上的行走能力。适应多样化地形是通过从传感器观测中估算地形属性,然后由控制器使用这些属性(即在线系统识别)来实现的。这种范式的成功依赖于两个假设:在部署期间可以变化的环境参数的先验建模以及从传感器观测中估算这些参数的能力。为了绕过第一个假设,一种可能性是训练期间广泛地改变大量环境参数。然而,这会产生一个困难的学习问题,因为它会创建挑战性或不可行的步态场景。为了简化学习,设计者通常选择一组参数,并在一个仔细限制的范围内进行随机化。即便在这种设置下,学习课程和奖励塑形等额外措施仍然是模拟中成功学习的必要条件。

由于这些实际限制,机器人在部署期间经常遇到未在训练中建模的情况。例如,如果机器人只被展示平地并且在训练期间地形几何未变化,那么它可能无法跨越非平地形,如楼梯。在这种情况下,通常会调整训练环境或奖励函数,并重新训练策略。这种迭代的重新训练和真实世界测试循环非常繁琐。更糟糕的是,在某些场景下,即使经过这样的迭代也不足以应对,因为有些环境属性无法准确建模或感知。例如,厚灌木很难模拟由于它们的弹性,也很难感知因为深度传感器不能将它们与墙区分开。因此,机器人可能会尝试像攀爬岩石一样跨越厚灌木或通过过于保守的步态导致机器人陷入困境。

上述例子表明,即使是最先进的sim-to-real系统,真实世界也会带来新的挑战。我们广泛地将那些可以模拟但在训练期间未预期的场景和无法从传感器观测中感知的情况归类为分布外情况。我们提出了一种政策学习框架,该框架在一些假设条件下可以在分布外场景中实现更好的性能。我们的关键见解是,给定任务,有多个同样好的解决方案(即欠规格化),这些方案在训练中表现相当,但在分布外的情况下可以有不同的泛化方式。

例如,平地行走的任务只对机器人的身体速度提出了约束,但不要求如何移动腿部,或者躯干与地面的高度等。考虑两种不同的行走行为:匍匐,机器人将躯干保持在接近地面的低位,而踩踏,高躯干并且腿部有高步幅。尽管匍匐和踩踏在平地行走时都成功,但它们在分布外场景中的泛化不同:匍匐时机器人可以在障碍物下穿行但不能爬楼梯,而踩踏时它可以跨越台阶但无法在障碍物下穿行。

典型的强化学习形式通常只会生成一种解决方案,因此只会表达一种泛化偏向。为了促进多样场景下的泛化,我们提出了一种技术——行为多样性(MoB),它在给定相同观测历史和一小组行为参数时输出不同的行走行为。当面对一个看不见的场景时,可以通过改变这些参数来测试不同的行为,这比重新训练新策略快得多,并且促进了人类驾驶员在线收集示范。

请添加图片描述

图2:一个学习到的控制器在经典的结构化步态之间切换:小跑、跳跃、慢跑、摆动和原地弹跳,交替频率为2Hz和4Hz。图片展示了机器人在每种步态中实现接触阶段的情况,其中支撑腿(脚掌接触地面的腿)用红色高亮显示。底部图中的黑色阴影反映了每只脚的时间参考变量 t f t_f tf;彩色条则报告了由脚传感器测量的接触状态。正如我们稍后将展示的,多样化行为可以促进新的下游能力。


2. 背景

辅助奖励
使用仅基于任务奖励(如速度跟踪)的方式学到的运动步态往往不能成功转移到真实世界中。因此,有必要训练一些辅助奖励来引导机器人维持特定的接触时间表、动作平稳性、能量消耗或接触清除率【1, 2, 3, 5, 6, 7】,以补偿从仿真到现实的差距。这类辅助奖励可以被视为对泛化的偏向。例如,脚部接触清除使机器人在真实世界中的行走更加稳健,即使地形不均匀,或者机器人的身体在真实世界中比在仿真中更下沉【7】。如果一个代理在真实世界中失败,通常会手动调整辅助奖励,以鼓励成功的真实世界行为。然而,这种调整过程非常繁琐,因为需要多次训练和部署的迭代。此外,这种调整是特定于任务的,必须针对新任务的指令重新进行。设计一组能够推广泛化的辅助奖励是困难的。图1的顶部展示了这一困难:其中展示了一个实例,在这种情况下,固定的辅助奖励在一种任务中表现良好,但在另一种任务中却导致失败。

使用参数化风格学习运动
最近关于双足机器人相关的工作明确地在任务规范中包括了参数增强的辅助奖励项,包括接触模式的跟踪奖励【8】和目标足部位置【9】。【8】在双足机器人中使用了基于步态的奖励项,以控制两足之间的时间偏移和摆动阶段的持续时间。【8】提出的奖励结构适用于我们,但由于其小型命令参数空间,没有提出也不支持应用于复杂任务或分布外环境。类似地,其他工作通过步态库实现了参数化风格的步态策略【10, 11】生成了一个参考步态库,并训练了一个目标条件策略来模仿它们。【12】展示了可以从参考轨迹库中同时学习到一小组离散运动风格。

使用多样性目标学习
有几种方法可以自动学习高性能和多样化的行为。质量多样性(QD)方法【13, 14, 15】通过在限定范围内强制执行新颖目标来学习多样化行为库,通常使用进化策略执行这些优化。QD已经展示了在优化性能和在线适应技能方面的优势【13, 14】。另一类工作则利用无监督目标进行强化学习技能发现(如RL),致力于提升泛化【16】。无监督多样性方法尽管有前景,但尚未扩展到真实的机器人平台上,也未在指导行为上产生扎实的影响。

通过步态参数化调控的技能转移
最近的工作展示了一种高水平策略,通过调控低级模型控制策略的步态参数来实现下游任务。该方法基于能量最小化【19】和步态稳定【20, 21】的概念,这些方法依赖于固定的模型预测低级控制器来生成步态。通过这种方式训练的策略展示了在范围内变化的步态风格【20】和姿态【22】。研究进一步探索了目标条件下的技能的学习,展示了将技能转移到新任务中的潜力【23】。

请添加图片描述


3 方法

为了实现行为多样性(MoB),我们训练一个条件策略 π ( c t , b t ) \pi(c_t, b_t) π(ct,bt),使其能够通过在不同行为参数 b t b_t bt 选择下实现由命令 c t c_t ct 指定的任务。问题在于如何定义 b t b_t bt。我们可以使用无监督的多样性指标来学习这些行为,但这些行为可能没有用【4】并且不符合人类的直觉。为了克服这些问题,我们利用人类关于有用行为参数的直觉(例如与步伐摆动、身体姿态和接触时间表相关的参数【6, 7, 8, 23】)。在训练中,代理人接收由任务奖励(用于速度跟踪)、固定辅助奖励(用于促进仿真到现实的转移和稳定运动)以及最终增强辅助奖励(鼓励所需风格的运动)组成的奖励组合。在新环境中部署时,操作员可以通过更改输入 b t b_t bt 来在线调整策略的行为。

3.1 行为多样性任务结构

任务说明
我们考虑全方向速度跟踪的任务。该任务由三维命令向量 c t = [ v x c m d , v y c m d , ω z c m d ] c_t = [v_x^{cmd}, v_y^{cmd}, \omega_z^{cmd}] ct=[vxcmd,vycmd,ωzcmd]指定,其中 v x c m d , v y c m d v_x^{cmd}, v_y^{cmd} vxcmd,vycmd 是机体框架中的期望线速度, ω z c m d \omega_z^{cmd} ωzcmd 是偏航轴上的期望角速度。

行为说明
我们将任务完成的风格参数化为一个8维行为参数向量 b t b_t bt
b t = [ θ 1 c m d , θ 2 c m d , θ 3 c m d , h z c m d , ϕ c m d , s y c m d , h z f c m d ] b_t = [\theta_1^{cmd}, \theta_2^{cmd}, \theta_3^{cmd}, h_z^{cmd}, \phi^{cmd}, s_y^{cmd}, h_{z_f}^{cmd}] bt=[θ1cmd,θ2cmd,θ3cmd,hzcmd,ϕcmd,sycmd,hzfcmd]
其中 θ i c m d \theta_i^{cmd} θicmd 是成对脚之间的时间偏移。这些参数表达了四足行走的不同步态,包括跳跃 θ i c m d = ( 0.0 , 0.0 , 0.0 ) \theta_i^{cmd} = (0.0, 0.0, 0.0) θicmd=(0.0,0.0,0.0)、小跑 θ i c m d = ( 0.5 , 0.5 , 0.0 ) \theta_i^{cmd} = (0.5, 0.5, 0.0) θicmd=(0.5,0.5,0.0)、弹跳, θ i c m d = ( 0.0 , 0.5 , 0.0 ) \theta_i^{cmd} = (0.0, 0.5, 0.0) θicmd=(0.0,0.5,0.0)以及它们的连续插值如飞奔 θ i c m d = ( 0.25 , 0.0 , 0.0 ) \theta_i^{cmd} = (0.25, 0.0, 0.0) θicmd=(0.25,0.0,0.0)。这些参数能够表达两拍四足接触模式。图2提供了视觉示例。 f c m d f^{cmd} fcmd 是以Hz为单位表示的步频。例如,命令 f c m d = 3 H z f^{cmd} = 3Hz fcmd=3Hz 将使得每只脚每秒接触地面三次。 h z c m d h_z^{cmd} hzcmd 是身体高度命令; ϕ c m d \phi^{cmd} ϕcmd 是步态摆动角度; s y c m d s_y^{cmd} sycmd是脚部横向摆动。

奖励函数
所有的奖励项都列在表1中。任务奖励是根据命令向量 c t c_t ct 定义的,用于跟踪身体速度。辅助奖励用于在各种情况下约束四足机器人的运动。固定的辅助奖励与行为参数 b t b_t bt 无关,鼓励了稳定性和所有步态的平滑性,从而更好地促进仿真到现实的转移。在训练期间,存在一个担忧,即机器人可能会因任务奖励被辅助目标的惩罚淹没而放弃其任务或选择过早终止。为了解决这个问题,我们将总奖励定义为任务奖励项的正线性函数,通过以下公式计算:
r t a s k exp ⁡ ( c a u x r a u x ) r_{task} \exp (c_{aux} r_{aux}) rtaskexp(cauxraux)
其中, r t a s k r_{task} rtask 是任务奖励项的和, r a u x r_{aux} raux 是辅助奖励项的和(我们使用 c a u x = 0.02 c_{aux} = 0.02 caux=0.02)。通过这种方式,代理人始终对任务的进展获得奖励,当辅助目标被满足时,奖励更高,反之亦然。

对于MoB,我们定义增强辅助奖励为行为向量 b t b_t bt 的函数。我们设计这些奖励是为了在实现的行为与 b t b_t bt 一致时增加奖励,并且不与任务奖励相冲突。这需要对奖励结构进行一些精心设计。例如,当将站立宽度作为行为参数时,一种简单的方法是直接奖励左右脚之间的固定期望距离。然而,这种方法在需要相对侧向运动的快速转向任务中会对机器人产生惩罚。为了避免这种情况,我们采用了Raibert启发式方法,该方法建议脚的必要运动动力学,以实现特定的身体速度和接触时间表【23, 24】。Raibert启发式计算了地面平面上的期望足部位置 p f c m d ( s y c m d ) p_f^{cmd}(s_y^{cmd}) pfcmd(sycmd),作为基线步态宽度的调整,使其与期望的接触时间表和身体速度一致。为了定义期望的接触时间表,函数 c f o o t c m d ( θ i c m d , t ) c_{foot}^{cmd}(\theta_i^{cmd}, t) cfootcmd(θicmd,t) 计算每只脚从阶段和时间变量中得到的期望接触状态,具体细节见附录中的说明。

3.2 学习多样性步态

任务和行为采样
为了在每个训练情节中学习优雅的行为过渡,我们在每个训练情节中为每个采样的目标步态生成所需的任务命令和行为。为此,我们首先采样命令 c t = [ v x c m d , v y c m d , ω z c m d ] c_t = [v_x^{cmd}, v_y^{cmd}, \omega_z^{cmd}] ct=[vxcmd,vycmd,ωzcmd],然后采样目标行为 b t b_t bt。通过这种方式,我们发现了一组基础步态,并在此基础上为多样化的四足步态生成参数。

策略输入
策略的输入是一个30步的历史观察序列 { o t − 30 , … , o t } \{o_{t-30}, \dots, o_t\} {ot30,,ot},其中包括当前的步态命令和行为参数,以及前30步的动作和时间参考变量。观察空间 o t o_t ot 包括关节位置和速度、重力矢量等。

策略架构
我们的策略体是一个带有ELU激活的多层感知器(MLP)。行动空间包括目标关节位置和零位目标点。

3.3 从仿真到现实的转移设计选择

域随机化
为了更好地实现从仿真到现实的转移,我们训练一个对机器人质量、马达强度、关节位置校准、地面摩擦力和恢复力、以及重力的方向和大小等参数具有鲁棒性的策略。由于我们关注于研究分布外的泛化能力,我们仅在平坦地面上训练,而不对地形几何进行随机化。这个选择也简化了训练。所有参数的随机化范围列在附录A中。

请添加图片描述

延迟与执行器建模
通过直接识别不变的属性,可以避免在不必要的域随机化中保守地模拟仿真到现实的行为差异。我们执行系统识别以减少机器人动力学中的仿真到现实差距。根据【22】的方法,我们在执行器网络上训练了非理想情况下PD误差与实际扭矩之间的关系。我们还识别了系统中大约20毫秒的延迟,并在仿真过程中将其建模为一个常量动作延迟。

3.4 材料

模拟器与学习算法
我们在Isaac Gym模拟器中定义了我们的训练环境【6, 25】。我们使用近端策略优化(PPO)训练策略【26】;详细内容见附录A。

硬件
我们在Unitree Go1 Edu机器人上部署了我们的控制器。在实际部署中,板载的Jetson TX2 NX计算机运行我们训练的策略。我们基于轻量级通信与编排(LCM)【28】实现了一个接口,用于在我们的代码与Unitree提供的底层控制SDK之间传输传感器数据、马达命令以及摇杆状态。在训练和部署过程中,控制频率为50Hz。

无步态基线
为了理解MoB对性能的影响,我们将控制器与一个基线速度跟踪控制器(即“无步态基线”)进行比较。无步态基线使用上述方法进行训练,但排除了所有增强辅助奖励(表1)。因此,它仅学习了训练环境的一种解决方案,其行为参数 b t b_t bt 不会影响其动作。


4 实验结果

4.1 仿真到现实的转移和步态切换

我们在现实世界中部署了在仿真中学习到的控制器,并首先在类似于训练环境的平坦地面上评估其性能。首先,我们演示了在步态切换和已知的步态结构之间进行生成和切换,如图2所示,显示了在步态切换(如小跑、跳跃、跳跃、跳跃和步行)期间的扭矩和接触状态,同时在2Hz和4Hz之间交替频率。我们发现,所有步态参数在仿真到现实的转移过程中都能保持一致。项目网站上的视频(i-iv)展示了通过分别调整每个行为参数 (b_t) 所获得的不同步态。

4.2 利用MoB实现泛化

为新任务调整
在使用通用运动目标进行训练后,可能需要调整控制器的行为,以优化原始环境中的新度量。MoB可以实现这一点,如果一些学习到的行为子集在新的任务度量上优于无步态策略。

能量效率(仿真)
我们考虑了最小化机械功率消耗 (J/s) 的任务,即通过对每个时间步长上的关节速度和力矩乘积进行积分来实现。如图3所示,接触进度 (θ^{cmd}_i) ,步态高度 (h^{cmd}_z) ,和频率 (f^{cmd}) 的几种选择在这一未见过的度量中优于无步态策略,在所有速度下消耗的能量较少。因此,调整这些行为参数可以促进在原始训练环境中针对新目标(如能量效率)的调优表现。

载荷操作
我们在另一个任务中进行了实验,要求机器人将一个球从一个地方搬到另一个地方,然后将其放入目标中。无步态策略无法做到这一点,而许多可能的身体姿态配置可以解决训练环境中的问题,但无步态策略最终会随机收敛到一个。这一实验展示了MoB增强的身体姿态控制可以用于远程载荷操作控制。操作员引导机器人身体朝目标方向移动,然后通过调节 (φ^{cmd}) 来倾斜身体,以卸下载荷(图1,下方第二行)。

请添加图片描述

新环境中的调整
在先前的部分中,我们展示了MoB如何支持重新部署到训练环境中的新任务。在现实世界中,总是有大量不包含在训练中的环境。我们展示了控制器在仅在平坦地面上训练的情况下,面对非平坦地面和其他障碍物(如路边、灌木、障碍物和推力)时的行为表现。成功表明,MoB包含了一些行为可以比基线策略更好地转移到未见过的环境中。

平台地形(仿真)
我们评估了我们的机器人在穿越具有高达16厘米的平台时的表现。我们报告了两个度量:平均奖励和平台生存时间(以最长集时间的比例表示)。对于每个度量,我们发现通过调整接触进度 (θ^{cmd}_i) 或足步高度 (h^{cmd}_z) 可以在平台上超越无步态策略。因此,通过调节MoB策略的参数,可以在分布外地形中提高性能。

爬过路缘
先前的工作展示了盲目障碍物规避的工作,训练了一个足部捕获反射,其中机器人首先触摸到路缘,然后提升其足部越过障碍物。相比之下,在人类驾驶员的帮助下,我们的步态控制策略可以在模拟的平坦地面上高效地通过障碍物,而不需要任何蹒跚。在现实世界中,我们演示了调整足步高度 (h^{cmd}_z) 可以使机器人平稳地越过障碍物,如楼梯和路缘。

穿越浓密灌木
极其浓密的灌木给现有的四足机器人控制器带来了方法论上的挑战。它们很难被仿真,因为它们会与机器人身体的整个身体接触,而且难以通过其他传感器感知。在以前的工作中,机器人要么在结构上修改环境,要么在机器人落入障碍物或退回时依赖于一个稳健的本体感知控制器,而忽略了语义上下文。相比之下,通过调整步态频率和接触进度 (θ^{cmd}_i) ,我们的系统可以在穿越这些困难的地形时迅速改变其动作。

抵御推力的提前支撑
通过扩展站姿,可以使四足机器人在应对推力时更具鲁棒性,但在没有感知模块的情况下,机器人无法提前预知人类踢腿的动作,而无法保持站立。我们的系统在宽支撑状态下表现更好,允许机器人保持直立。

请添加图片描述

探索行为适应的速度和范围
为了使用我们的低级控制器完成高级任务,一个选择是通过高频率的步态切换。另一种选择是针对同步任务(如舞蹈)之间的精确时间间隔进行不同步态的切换。

灵活的前进跳跃
在高速情况下的步态切换的演示中,我们调整了步态计划、速度和频率参数,以实现灵活的前进跳跃(图3)。机器人首先加速到3m/s,同时将步频从2Hz提高到4Hz,然后在小跑1秒后,切换到2Hz的跳跃1秒,然后减速到静止。跳跃阶段中,从机器人前足起跳到落地的位置距离达到了60厘米。

编排舞蹈
为了精确地演示步态之间的切换,我们通过生成一系列步态参数,以90bpm的节奏同步到爵士乐的节奏。通过调整相位0、0.25和0.5Hz的频率,生成了第八拍、四分之一拍、半拍和全拍步态的组合,使身体高度和速度与音乐保持同步。


5 讨论和限制

我们的实验表明,添加MoB的好处可能会以在分布内任务表现上的损失为代价,特别是限制了机器狗在平地上的冲刺表现(见附录中的表5)。热图显示,我们的行为参数化在高线性和角速度的组合上是有限制的。量化和控制任务表现与奖励塑造之间的权衡是一个有趣的未来方向,已经有一些方法被提出【29】。

MoB为每个状态和训练分布中的任务提供了一个结构化且可控的多样化运动行为的空间。这为调整在未见测试环境中电机技能表现提供了一套“调节旋钮”。该系统目前需要人类驾驶员手动调整其行为。在未来,我们的系统的自主性可以通过使用来自真实世界人类示范的模仿来扩展行为选择的自动化,或者通过使用分层学习方法在部署期间自动自我调整控制器。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值