Lazy loaded image
论文笔记
【读论文001】Learning Agile and Dynamic Motor Skills for Legged Robots
字数 9800阅读时长 25 分钟
2026-6-7
2026-6-8
type
Post
status
Published
date
Jun 7, 2026
slug
summary
tags
论文笔记
category
论文笔记
icon
password
comment
color
#D87182
😀
RSL的早期一篇里程碑的SR(19年),核心思想很有意思,个人认为奠定了未来四足的RL方案。

0. 总结

这篇论文提出了一套 在仿真中训练、直接迁移到真实四足机器人 ANYmal 的强化学习控制方法。核心做法是把“容易建模的刚体/接触动力学”用物理仿真表示,把“很难精确建模的执行器、延迟、低层控制器和弹性关节动态”用神经网络执行器模型学习出来。最终,真实 ANYmal 能更准确省能地跟踪速度指令、打破自身速度纪录,并完成复杂倒地自恢复

1. 研究问题(Research Problem)

论文要解决的问题是:如何让复杂腿式机器人自动学会敏捷、动态的运动技能,并且能从仿真可靠迁移到真实机器人上
这个问题重要,因为腿式机器人是高维、非光滑、多接触、强约束系统;接触点随运动不断变化,真实机器人还有传感器噪声、软件延迟、执行器非线性等问题,传统控制方法往往需要大量人工建模和调参。作者特别关注的是像 ANYmal 这样带有 12 个 Series-Elastic Actuators(SEAs)的复杂四足机器人,其执行器很难用解析模型精确描述。
notion image

2. 研究背景(Background / Motivation)

以前主流方法有三类。
第一类是 模块化控制器:把控制拆成落脚点规划、足端轨迹生成、PID/低层跟踪等模块。这类方法可解释、可调,但问题是模型过于简化,通常只能在较小状态范围内工作,导致加速度慢、身体姿态受限、腿部速度受限,而且每个机器人、每个动作都要大量人工调参。
第二类是 轨迹优化 / MPC 类方法:先用动力学模型规划轨迹,再用跟踪器执行。它比纯手工模块化更自动,但复杂接触问题很难优化,通常要平滑接触、预设接触时序或降低模型复杂度;同时在线优化计算量大,跟踪器仍然需要手调。
第三类是 强化学习:理论上可以端到端学习从状态到动作的控制策略,但直接在真实腿式机器人上训练危险、昂贵且耗时;纯仿真训练又有 “reality gap”,即仿真和真实系统动力学不一致。已有 sim-to-real 方法常依赖精确执行器解析模型或大量随机化,但对复杂弹性执行器并不够实用。

3.一些难点

传统控制为什么这么难?

虽然硬件已经越来越先进,但控制这些机器人依然极具挑战性。
原因在于:
从控制角度看,腿式机器人具有:
  • 高维状态空间
  • 非光滑动力学
  • 大量物理约束
同时:
  • 接触点不断变化
  • 接触时间无法预先确定
  • 动力学模型不准确
  • 传感器存在噪声
  • 软件系统带来延迟
这些因素叠加在一起,使得传统控制理论很难直接解决问题。

Sim-to-Real 的核心难题

于是大家想到:
但这里出现一个巨大的Reality Gap
主要有两种解决思路。
方法1:System Identification(系统辨识)
让仿真更真实,不断提高模型精度。

方法2:让策略更鲁棒
例如随机化:
  • 质量
  • 摩擦
  • 动力学参数
  • 观测噪声
让策略适应各种情况。

现实中通常两种方法一起使用。
但作者指出:这种方法依赖于精确执行器模型。
对于直驱电机还行。
但对于:
  • SEA(ANYmal)
  • 舵机
  • 液压缸
这种复杂执行器,精确建模几乎不可能。

本文的核心思想

作者认为:机器人其实有两部分:
容易建模
这些物理学已经很成熟。

极难建模
尤其 ANYmal 的 SEA。

因此作者提出:
容易建模的部分继续用物理模型,
难建模的执行器部分交给神经网络学习。
这就是论文最大的创新。

4.实验

任务一:命令条件行走(command-conditioned locomotion)
机器人接收前进速度、侧向速度、yaw rate 三个高层命令。训练命令范围为前进速度 -1 到 1 m/s,侧向速度 -0.4 到 0.4 m/s,转向速度 -1.2 到 1.2 rad/s。
对比方法是 ANYmal 上已有的最佳模型控制器 Bellicoso et al. [12]。结果上,学习控制器随机命令跟踪的平均线速度误差为 0.143 m/s,yaw rate 误差为 0.174 rad/s;模型控制器分别为 0.231 m/s 和 0.278 rad/s。换句话说,基线在线速度误差上高约 95%,yaw rate 误差高约 60%。学习控制器平均力矩也更小:8.23 Nm vs. 11.7 Nm;机械功率也更低:78.1 W vs. 97.3 W。
notion image
任务二:高速运动(high-speed locomotion)
ANYmal 之前的速度纪录是 1.2 m/s。作者训练高速策略后,在真实机器人上达到 1.5 m/s,在仿真中达到 1.58 m/s,相当于把 ANYmal 速度纪录提高了 25%。策略还用到了硬件极限:最大力矩 40 Nm、最大关节速度 12 rad/s。
notion image
任务三:倒地恢复(recovery from a fall)
作者把 ANYmal 放在 9 个随机复杂初始姿态中,包括近乎完全倒置和机器人压在自己腿上的状态。所有测试中,ANYmal 都成功翻回正常姿态;Fig. 4 显示了一次不到 3 秒的真实机器人恢复过程。
此外还有两个关键消融实验:使用 理想执行器模型解析执行器模型 训练策略。结果是两者在真实机器人上都无法迈出一步,会出现剧烈腿部抖动,说明学习执行器模型不是锦上添花,而是 sim-to-real 成功的关键。
notion image

5. 优点与局限(Strengths & Limitations)

优点
这篇论文的最大优点是工程上非常扎实。它不是只展示一个仿真强化学习算法,而是抓住真实机器人迁移失败的关键因素:执行器动态。通过 actuator net 和随机化刚体模型,它显著缩小了 reality gap。方法运行时也很轻量,把计算量主要放在训练阶段,真实部署只需简单网络推理。作者还报告这些策略在真实机器人上连续测试三个月,即使机器人重量配置变化约 2 kg、驱动弹簧刚度变化三倍,策略仍然鲁棒。
局限
第一,它仍然依赖人工设计 reward/cost、初始状态分布和随机化范围。作者提到,有 RL 和任务经验的人设计行走策略大约需要两天,倒地恢复策略大约需要一周,因为安全约束很难自然写进 cost function。
第二,方法需要机器人有较好的建模和数据采集基础,例如 CAD 模型、力矩测量、日志系统和回归训练流程。对于液压系统这类存在强耦合执行器动态的机器人,单独学习每个关节执行器可能不够准确。
第三,单个网络策略的泛化能力有限。作者明确指出,一个训练 session 得到的单个神经网络往往只表现出单一类型行为,难以跨多个任务泛化;他们认为层级策略是未来方向。

6. 方法

notion image
训练循环过程如下:
首先,刚体仿真器根据当前状态和关节力矩计算机器人的下一时刻状态。随后,将关节速度和位置误差存储到一个有限时间窗口内的关节状态历史缓冲区中。控制策略由一个具有两层隐藏层的多层感知机(MLP)实现,它根据当前状态观测以及关节状态历史输出关节目标位置。最后,执行器网络根据关节状态历史和关节目标位置计算 12 个关节的力矩值,然后进入下一轮循环。

刚体动力学建模(Modeling rigid-body dynamics)

为了能够在合理时间内高效训练复杂策略,并成功迁移到真实世界,我们需要一个同时具备高速性和高精度的仿真平台。
对于步行机器人而言,最大的挑战之一是间歇性接触(intermittent contacts)产生的动力学问题。
为此,我们采用了此前工作 [41] 中提出的刚体接触求解器。该求解器采用硬接触模型(hard contact model),并严格满足库仑摩擦锥约束(Coulomb friction cone constraint)。
这种建模方法能够准确描述一组刚体与环境发生硬接触时的真实动力学行为。
该求解器不仅精确,而且速度极快。在普通台式机上,对四足机器人进行仿真时,每秒可生成约 90 万个时间步。
由于训练复杂策略需要数亿个样本,因此这一高效求解器是本工作的关键组成部分。

机器人各连杆的惯性参数由 CAD 模型估计得到。
由于未建模的线缆和电子设备的存在,我们预计这些估计值可能存在最高约 20% 的误差。
为了提高策略对这种建模误差的鲁棒性,我们使用 30 个不同版本的 ANYmal 模型进行训练,这些模型的惯性参数通过随机采样获得。
具体而言:
  • 质心位置加入 U(−2,2) cm 的随机扰动;
  • 连杆质量加入 U(−15%,15%) 的随机扰动;
  • 关节位置加入 U(−2,2) cm 的随机扰动。
通过这种随机化训练,策略能够适应不同的动力学参数,从而增强现实部署时的鲁棒性。

执行器建模(Modeling the actuation)

执行器是腿式机器人最关键的组成部分之一。
快速、强劲、轻量且高精度的执行器,通常意味着机器人能够实现更加动态、多功能和敏捷的运动能力。
目前大多数腿式机器人采用:
  • 液压执行器 [51]
  • 带减速器的电机 [3]
有些系统甚至额外引入了专门设计的机械柔顺机构(mechanical compliance)[5,52]。
这些执行器有一个共同特点:
极难进行精确建模。
其动力学包含:
  • 非线性耗散;
  • 非光滑耗散过程;
  • 多级串联反馈控制回路;
  • 大量无法直接观测的内部状态。
Gehring 等人 [39] 曾深入研究 SEA(串联弹性执行器)建模问题。
其模型包含接近一百个参数,需要通过实验估计或依据产品手册进行假设。
这一过程不仅耗时,而且容易产生误差。
此外,许多制造商并不会公开足够详细的产品信息,因此建立解析模型在很多情况下甚至不可行。

为了解决这一问题,我们采用监督学习的方法学习从动作到力矩的映射关系,从而将所有软硬件动态统一包含在一个控制回路之中。
更具体地说,我们训练了一个执行器网络(Actuator Network),其输入为:
  • 位置误差历史(实际位置减去目标位置)
  • 速度历史
其输出为关节处的预测力矩。

在本文中,我们假设各个执行器之间相互独立,因此能够分别为每个执行器训练模型。
但这一假设对于某些执行器类型可能并不成立。
例如:
多个液压执行器共享同一个蓄能器(accumulator)时,可能会表现出耦合动力学特性。
对于这种情况,使用一个同时建模多个执行器的大型网络可能更加合理。

执行器的内部状态只能被部分观测到。
因为许多内部变量无法直接测量,例如:
  • 内部控制器状态;
  • 电机转速;
我们假设神经网络能够根据位置误差和速度的历史信息推断这些隐藏状态,否则仅依靠可观测信息将不足以实现高质量控制。

本文使用的执行器是旋转式且径向对称的,因此在给定位置误差的情况下,绝对角度位置并不重要。
网络输入的历史状态包括:
  • 当前时刻状态;
  • t−0.01 s 时刻状态;
  • t−0.02 s 时刻状态。

需要注意的是:
如果历史输入过于稀疏,则难以捕捉高频(>100 Hz)动态特性。
为缓解这一问题,我们在训练中加入平滑性代价项,用于惩罚策略输出中的剧烈变化。
另一方面,如果历史窗口过长:
  • 更容易过拟合;
  • 计算成本更高。
因此,历史窗口长度应大于:所有通信延迟 + 机械响应时间的总和。
在实际应用中,具体输入配置通过验证误差进行调节。
由于网络规模很小,这一调节过程通常不到一天即可完成。

执行器网络数据采集
为了训练执行器网络,我们采集了如下数据:
  • 关节位置误差;
  • 关节速度;
  • 关节力矩。

数据采集过程中,我们使用一个简单的参数化控制器生成正弦波形式的足端轨迹。
对应的关节位置通过逆运动学计算得到。
在采集过程中,机器人足端不断与地面接触和脱离接触,使得生成的运动轨迹与实际行走控制器产生的轨迹大致相似。

为了获得丰富的数据集,我们改变了:
  • 足端运动幅值:5~10 cm
  • 足端运动频率:1~25 Hz
同时还在采集过程中人为推动机器人进行扰动。
实验发现:
激励信号必须覆盖广泛频谱。
否则训练出的模型即使在训练阶段也会产生不自然的振荡。

由于 ANYmal 的 12 个执行器完全相同,因此能够并行采集数据。
整个数据采集过程耗时不到 4 分钟。
采样频率为:
400 Hz
最终获得超过:
100 万个样本。
其中:
  • 约 90% 用于训练;
  • 约 10% 用于验证。

执行器网络结构
执行器网络采用多层感知机(MLP)结构:
  • 3 个隐藏层;
  • 每层 32 个神经元。
(见图 5 中的 “Actuator Net”)

作者比较了两种常见激活函数:
  • tanh
  • softsign [53]
最终选择了 softsign。
原因在于:
  • 计算效率更高;
  • 输出更加平滑。

对 12 个关节同时进行推理时:
使用 softsign:
使用 tanh:
因此 tanh 的计算成本明显更高。
但两者在验证集上的误差几乎相同:

采用 softsign 后的验证结果如图 6 所示。
训练后的网络几乎能够完美预测验证集中的力矩。
相比之下,理想执行器模型(Ideal Actuator Model)则无法给出合理预测。
这里的理想模型假设:
  • 没有通信延迟;
  • 执行器能够瞬间产生任意目标力矩;
  • 即执行器带宽无限大。

最终结果如下:
验证集误差:
测试集误差(由训练好的运动策略产生的数据):
训练得到的执行器网络误差已经接近力矩传感器分辨率(0.2 Nm),并远远优于理想执行器模型。
notion image

强化学习(Reinforcement learning)

我们将控制问题表示为离散时间形式。在每一个时间步 t,智能体获得一个观测,执行一个动作,并获得一个标量奖励
本文中,奖励(reward)和代价(cost)两个术语可以互换使用,其中代价定义为奖励的相反数。
我们用:
表示最近观测组成的序列。
智能体根据随机策略:
选择动作,该策略表示在给定最近观测条件下的动作概率分布。
我们的目标是在无限时间范围内找到能够最大化折扣累计奖励的策略:
其中:
  • 为折扣因子(discount factor);
  • 为策略 π 下产生的轨迹分布,其同时依赖于策略本身和环境动力学。
在本文中:
  • 观测(observations)是机器人状态的测量值;
  • 动作(actions)是发送给执行器的位置指令;
  • 奖励(rewards)则被设计用于诱导机器人学习目标行为。

多种强化学习算法都可以用于求解上述策略优化问题。
本文选择:
TRPO(Trust Region Policy Optimization) [22]
这是一种策略梯度算法,已经被证明能够在仿真环境中成功学习运动控制策略 [54]。
TRPO 几乎不需要参数调节。
在本文所有实验中,我们均直接采用文献 [22,54] 中提供的默认参数设置。
我们使用了一个经过优化的高效实现版本 [55]。
借助该高效实现以及快速刚体仿真器 [41],我们能够在约四小时内生成并处理大约:个状态转移样本。
当策略在连续 300 次 TRPO 迭代中,其平均性能提升不超过某个任务相关阈值时,训练过程终止。

观测与动作(Observation and action)

在我们的方法中,观测量必须满足两个条件:
  1. 在真实机器人上可以被观测或估计;
  1. 与任务相关。

关节角度、关节速度以及机体运动状态(body twist)都满足这两个条件。
然而,机体姿态(orientation)的测量并不直接。
因为使用惯性测量单元(IMU)时,只能观测姿态中的两个自由度。
这些可观测自由度与单位球面 一一对应,也可以表示为一个单位向量。
该单位向量可以理解为:
重力方向在 IMU 坐标系中的表示。
我们将其记作:

机器人机体高度无法直接观测。
但在假设地面平坦的情况下,可以利用腿部运动学进行估计。
因此作者实现了一个基于一维 Kalman 滤波器的高度估计器,并与现有状态估计系统 [56] 结合使用。
然而,当机器人跌倒时,该估计器无法工作。
因此在训练跌倒恢复策略时,作者移除了高度观测项。

在时刻:
完整观测向量定义为:
其中:
  • :重力方向向量
  • :机体高度
  • v:机体线速度
  • :机体角速度
  • :关节位置
  • :关节速度
  • :稀疏采样的关节状态历史
  • :上一时刻动作
  • C:运动指令

关节历史状态采样于:两个时刻。
关节状态历史对于训练运动控制策略至关重要。
作者推测其原因在于:
历史状态使策略能够间接检测接触状态(contact detection)。
另一种检测接触的方法是安装力传感器。
这种方法能够可靠地获得接触状态。
但问题在于:
力传感器会增加足端重量,
从而降低机器人的能量效率。
最终采用的历史状态配置是通过实验比较最终性能后确定的。

动作表示(Action Representation)

本文策略输出的是:
低阻抗关节位置指令(low-impedance joint position commands)
作者发现这种方式在许多任务中都非常有效。
Peng 等人 [57] 的研究表明:
这种控制方式在:
  • 训练速度
  • 最终控制性能
两个方面都优于力矩控制器。

理论上:
位置控制与力矩控制之间存在一一对应关系。
但两者的动作空间平滑性不同,
因此训练难度也不同。

此外,
位置策略在训练初期还有一个优势。
位置控制策略初始状态天然接近:
而力矩控制策略在训练初期往往产生大量跌倒轨迹。
因此本文将策略网络作为阻抗控制器使用。

网络输出:
一个关节目标位置。
随后利用固定 PD 增益转换为力矩:
目标速度设为零。

位置增益的选择依据为:
即:名义力矩范围除以名义运动范围
这样能够保证:位置输出和力矩输出具有相近数量级。

速度增益则被设定得足够大,
以防止真实机器人出现不期望的振荡。
作者发现:控制性能对增益变化并不敏感。
例如:将位置增益从50Nm/rad增加到80Nm/rad几乎不会影响最终运动性能。

需要强调的是,
本文中的位置策略与机器人学中常见的位置控制器并不相同。
传统位置控制器通常采用:
即:
高层规划器提前给出一条轨迹,
低层控制器负责精确跟踪。
这也是为什么力矩控制在腿式机器人领域越来越流行的原因。

而本文中的策略属于:
即:当前位置不同,输出动作也不同。因此它不会受到传统 PD 控制器的限制。

策略在训练过程中已经学会:
位置误差一定会出现。
甚至主动利用这些误差来产生:
  • 加速度
  • 与环境的交互力
从而完成运动。

此外,由于训练中引入了运动学随机化(kinematic randomization),
动学信息学习得到的策略并不单纯依赖运。
策略必须学会:向环境施加适当的冲量(impulse)来实现运动。
这使得控制策略更加鲁棒。
因为基于冲量的控制方法已被证明:
对于系统变化和模型误差具有更强适应能力 [44]。

策略训练细节(Policy training details)

本文中的所有控制策略均完全在仿真环境中训练完成。
为了仅利用仿真数据训练出高性能策略,我们同时采用了标准训练方法和针对具体问题设计的训练技巧。下面将详细介绍这些方法及其设计动机。

在已有文献中,已经多次展示了利用强化学习训练运动控制策略的成功案例 [22,24,25]。
然而,许多训练得到的策略并不能产生自然的运动行为,并且它们是否能够部署到真实机器人系统上仍然存在很大疑问。
一些研究者发现,简单直接的训练方法往往无法产生既自然又节能的运动行为 [58]。
如果对关节力矩和关节速度施加较小惩罚:
机器人会学到不自然的运动方式。
如果施加较大惩罚:
机器人则倾向于一直站立不动。
其根本原因在于:
当运动行为本身伴随着较大代价时,
“保持静止站立”已经成为一个较好的局部最优解(local minimum)。

课程学习(Curriculum Learning)

为了解决这一问题,我们引入了课程学习(curriculum)。
课程学习的核心思想是:
首先构造一个代价函数,使策略强烈倾向于学会运动;
随后再逐渐增加其他约束,
让运动行为不断优化。

具体而言,
我们通过一个课程因子(curriculum factor)同时调节:
  • 各项代价系数;
  • 扰动强度。

定义课程因子:其表示训练进度。
训练开始时:
训练结束时:
表示达到最终难度。

训练过程中更新规则为:
其中:
表示课程推进速度(advance rate)。
j表示强化学习迭代次数。

在该规则下:会单调递增,并逐渐收敛到:1
作者认为:任何满足这些性质的更新规则,都可能获得类似的学习效果。

除了与任务目标直接相关的代价项外,
所有代价项都乘以课程因子。
任务目标代价项包括:
  • 命令跟随和高速运动中的速度误差;
  • 跌倒恢复中的姿态误差。

这样设计的好处是:
机器人首先学习:
然后再学习:
即:满足各种额外约束。

这一思想与 Bengio 等人提出的课程学习 [59] 十分类似。
不同的是:传统课程学习逐渐增加样本难度;而本文逐渐改变优化目标本身。

所有实验均采用:
其中:必须足够小,以避免训练初期陷入静止站立。
作者指出:
观察前 100 次 RL 迭代即可完成这一参数调节。
而:则被选择为:使课程因子在训练结束时接近:1(约为 0.9~1)。

折扣因子选择(Discount Factor)

折扣因子: 针对不同任务单独调节。
依据是:训练后策略在仿真中的表现质量。

对于:
  • 命令跟随运动
  • 高速运动
作者采用:
对应半衰期(half-life):5.77s

作者发现:
即使将半衰期降低到:2s
仍能训练出性能接近的策略。
但机器人站立姿态会变得不够自然。

对于跌倒恢复任务:
采用:
对应半衰期:4.93s

较大的折扣因子能够产生更加自然的站立姿态。
原因在于:
长期累计代价更关注:
  • 站立时持续输出的力矩
而非:
  • 短暂运动产生的代价
(如关节速度、运动力矩等)。

但如果:γ过大,
训练收敛速度会下降。
因此必须根据具体任务进行调节。

训练耗时如下:

命令跟随与高速运动

仿真时间:9 天
真实计算时间:4 小时

跌倒恢复

仿真时间:
79 天
真实计算时间:
11 小时

命令跟随与高速运动训练

一个控制命令由三个期望速度组成:
  • 前向速度
  • 横向速度
  • 转向角速度

训练期间,
这些命令从预定义区间随机采样
(具体见表 S1 和表 S2)。
优化目标采用 S3 节定义的代价函数。

机器人初始状态以 50% 概率从:
  • 先前轨迹中采样;
  • 随机分布(表 S3)中采样。

这种初始化方式能够产生:
复杂状态转移数据,
从而提高策略鲁棒性。

每条轨迹持续:6s
除非提前进入终止状态。

终止条件有两个:
  1. 关节超过限制;
  1. 机体碰撞地面。

一旦终止:
智能体获得:cost=1
并重新初始化。

该终止代价并未专门调节。
因为最终性能主要取决于:
各代价项之间的相对比例。
作者只调节其他代价项来适配这一固定值。

跌倒恢复训练

对于恢复任务,
ANYmal 的碰撞体:
  • 尺寸随机化;
  • 位置随机化。

如果随机结果产生不合理内部碰撞,
则直接丢弃。

对应的:
  • 代价函数见 S4;
  • 初始状态分布见 Fig.S3。

作者发现:
简单随机采样往往导致:
机器人身体互相穿透(interpenetration)。
从而产生不真实动力学。

因此采用特殊初始化方法:
  1. 将 ANYmal 从 1 米高空释放;
  1. 随机设置姿态和关节角;
  1. 仿真 1.2 秒;
  1. 使用落地后的状态作为训练初始状态。

观测噪声建模

另一个关键细节是:
真实机器人无法直接测量关节速度。

实际做法是:
对位置信号进行数值微分。
因此速度估计包含大量噪声。

为了模拟这一问题,
训练时向关节速度加入:
的随机噪声。

同时还向机体速度加入噪声:
线速度:
角速度:
其他观测量保持无噪声。

有趣的是:
作者曾尝试完全删除速度观测。
理论上:
网络可以通过位置差分推断速度。

但实验结果是:
训练完全失败。

作者认为:
这是因为神经网络训练是高度非凸优化问题。
因此适当的输入预处理非常重要。
同样原因也解释了:
为什么大多数机器学习系统都需要输入归一化。

策略网络结构

策略网络采用:
MLP(多层感知机)
结构如下:
  • 第一隐藏层:256个神经元
  • 第二隐藏层:128个神经元
  • 激活函数:tanh

作者发现:
激活函数对真实机器人性能影响极大。
即使两个策略:
  • 在仿真中表现几乎相同;
它们在真实机器人上的表现也可能截然不同。

作者认为原因在于:
像 ReLU 这样的无界激活函数,
在机器人进入训练期间未见过的状态时,
可能产生极大的动作输出。

这会导致:
  • 剧烈运动;
  • 不稳定行为;
  • 现实性能下降。

而:
tanh这类有界激活函数,
在受到扰动时产生更加温和的动作轨迹。
因此具有更好的现实鲁棒性。

作者推测:
softsign 也具有类似优点。
但由于强化学习框架 [55] 的实现限制,
他们没有在策略网络中测试 softsign。

在真实系统上的部署(Deployment on the physical system)

为了验证本文方法在真实世界中的适用性,我们使用图 1 第四步所示的 ANYmal 机器人 [5] 进行实验。
ANYmal 是一款犬类大小的四足机器人,重量约为 32 kg。每条腿长约 55 cm,具有三个主动驱动自由度,分别为:
  • 髋关节外展/内收(Hip Abduction/Adduction,HAA)
  • 髋关节屈曲/伸展(Hip Flexion/Extension,HFE)
  • 膝关节屈曲/伸展(Knee Flexion/Extension,KFE)

ANYmal 配备了 12 个串联弹性执行器(Series Elastic Actuators,SEA)[60,61]。
一个 SEA 由以下部分组成:
  • 电机(electric motor)
  • 高减速比传动机构(high gear ratio transmission)
  • 弹性元件(elastic element)
  • 两个旋转编码器(rotary encoders)
其中:
  • 一个编码器用于测量弹簧形变量;
  • 另一个用于测量输出位置。

在本文中,我们在 ANYmal 的关节级执行器模块上使用了低反馈增益的关节级 PD 控制器。
执行器动力学由多个连续环节构成,具体过程如下:
首先,位置指令通过 PD 控制器转换为目标力矩。
随后,根据目标力矩,利用 PID 控制器计算目标电流。
接着,目标电流通过磁场定向控制器(Field-Oriented Controller,FOC)转换为三相电压。
FOC 最终在传动机构输入端产生相应力矩。
传动机构输出端连接弹性元件,弹簧发生形变后最终在关节处产生力矩 [39]。

因此,一个简单的位置指令实际上会经过如下复杂链路:

这种极其复杂的动力学系统包含大量隐藏内部状态。
例如:
  • 电机内部状态
  • PID 控制器状态
  • FOC 控制器状态
  • 弹簧储能状态
  • 传动机构状态
这些状态都无法直接观测。
因此控制问题变得十分复杂。

在混合仿真器中完成策略训练并获得网络参数后,
部署到真实机器人上的过程非常简单。
作者将:
  • 自定义实现的 MLP 网络
  • 训练好的参数
直接移植到机器人的板载计算机(onboard PC)中。

网络运行频率如下:
对于:
  • 命令跟随运动(command-conditioned locomotion)
  • 高速运动(high-speed locomotion)
控制频率为:
200 Hz

对于:
跌倒恢复(recovery from a fall)
控制频率为:
100 Hz

作者发现:
控制性能对于控制频率的变化出乎意料地不敏感。
例如:
恢复动作训练时仅使用:20 Hz
控制频率。
但当部署时提高到:100 Hz
其表现几乎完全相同。

这是因为翻身恢复动作中的关节速度较低,
大多数情况下低于:6 rad/s
因此即使控制频率较低,
也足以完成该任务。

相比之下,
更加动态的运动行为(例如行走和奔跑)
通常需要更高控制频率,才能获得足够好的性能。

实验最终采用:100 Hz
主要原因并不是性能,而是:
高频控制产生的机械噪声更小,
因此机器人运行时听起来更加安静。

即使在:100 Hz控制频率下,
网络推理所消耗的计算资源也极其有限。
整个网络仅占用单个 CPU 核心可用计算能力的:0.25%
这意味着:
这也是本文方法相对于许多传统模型控制方法的重要优势之一。

7. 科研启发(Research Insights)

这篇论文给人的最大启发是:sim-to-real 的关键不一定是把整个世界建模得极其精确,而是识别哪些误差最致命,然后重点处理。 对这篇论文来说,最致命的是执行器和低层控制动态,所以作者用 actuator net 解决它。
可继续研究的方向包括:
  1. 多任务/层级策略:让同一个机器人策略同时掌握行走、奔跑、转向、恢复、越障,而不是每个任务单独训练一个网络。
  1. 地形感知与复杂环境:本文主要关注平地或已知接触环境,后续可以加入视觉、深度图、足端触觉,让机器人在崎岖地形中学习。
  1. 在线自适应:执行器老化、负载变化、地面摩擦变化时,策略能否实时更新内部模型。
  1. 更强安全约束:倒地恢复任务说明 reward engineering 很难表达安全性,未来可结合控制屏障函数、约束强化学习或安全过滤器。
  1. 学习耦合执行器模型:对于液压、气动或多关节耦合驱动系统,可以从单关节 actuator net 扩展到多关节联合动力学模型。

义父,请我喝杯蜜雪冰城吧。
notion image
notion image
 
上一篇
修改NotionNext及HEO主题,支持自定义封面颜色
下一篇
【随笔003】《小狗钱钱》读书笔记

评论
Loading...