Learning Humanoid Standing-up Control across Diverse Postures
Learning Humanoid Standing-up Control across Diverse Postures
研究动机
- 人形机器人站立控制仍未被充分探索,大多数现有系统都假设机器人从预先设定的站立姿势开始。
- 经典方法通过基于模型的运动规划或轨迹优化跟踪手工制作的运动轨迹,精度不佳且实时性不好。
- 基于RL的站立控制涉及身体上-下部分的高度动态和协同动作,具有时变接触点、多阶段运动技能和精确角动量控制的需求,具有挑战性。
解决方案
提出HoST,从头开始学习不同姿势下的人形站立控制。为实现超出地面的姿势自适应运动,引入多个训练地形以及在初始阶段的垂直拉力以促进探索。并使用多Critic独立优化不同的奖励,实现奖励平衡。应用正则化技术和运动速度约束来缓解剧烈运动。在仿真中使用域随机化技术进行训练。
技术路线
状态空间
机器人本体感知为目标环境中站立控制提供了足够的信息,因此,将从机器人IMU和关节编码器读取的本体感知信息包含在状态设计中 s t = [ ω t , r t , p t , p ˙ t , a t − 1 , β ] s_t=[\omega_t,r_t,p_t,\dot{p}_t,a_{t-1},\beta] st=[ωt,rt,pt,p˙t,at−1,β],分别为机器人基座角速度、滚转和俯仰角、关节位置和关节速度、上一帧动作, β ∈ ( 0 , 1 ] \beta \in (0,1] β∈(0,1]是一个缩放输出动作的标量。状态堆叠五帧作为网络输入。
动作空间
采用PD控制器执行动作。动作 a t a_t at表示当前帧和下一帧关节位置的差值,PD目标计算式为 p t d = p t + β a t p_t^d=p_t+\beta a_t ptd=pt+βat,其中 a t ∈ [ − 1 , 1 ] a_t\in [-1, 1] at∈[−1,1]。动作缩放因子 β \beta β将动作界限限制在一定范围内,以隐式地调节运动速度。在 t t t时刻的力矩计算如下:
τ t = K p ⋅ ( p t d − p t ) − K d ⋅ p ˙ t \tau_t=K_p \cdot(p_t^d-p_t)-K_d \cdot \dot{p}_t τt=Kp⋅(ptd−pt)−Kd⋅p˙t
奖励函数与多Critic
站立控制任务分为三个阶段:纠正身体姿态 h b a s e < H s t a g e 1 h_{base}<H_{stage1} hbase<Hstage1;抬起身体 h b a s e > H s t a g e 2 h_{base}>H_{stage2} hbase>Hstage2;站立 h b a s e > H s t a g e 2 h_{base}>H_{stage2} hbase>Hstage2,不同阶段由机器人基座的高度区分。在每个阶段激活相应的奖励函数,奖励函数分为四组:
- 任务奖励 r t a s k r^{task} rtask:用于指定高级任务目标;
- 风格奖励 r s t y l e r^{style} rstyle:用于塑造站立动作的风格;
- 正则化奖励 r r e g u r^{regu} rregu:规范动作;
- 任务后奖励 r p o s t r^{post} rpost:指定成功站立后的期望行为,即保持站立。
整体奖励如下:
r t = ω t a s k ⋅ r t t a s k + ω s t y l e ⋅ r t s t y l e + ω r e g u ⋅ r t r e g u + ω p o s t ⋅ r t p o s t r_t=\omega^{task}\cdot r_t^{task}+\omega^{style}\cdot r_t^{style}+\omega^{regu} \cdot r_t^{regu} + \omega^{post} \cdot r_t^{post} rt=ωtask⋅rttask+ωstyle⋅rtstyle+ωregu⋅rtregu+ωpost⋅rtpost
其中 ω \omega ω是奖励权重。具体奖励设计如表所示:
使用单一值函数在学习有效的站立动作时存在重大挑战。此外,大量奖励函数使得超参数调整密集且难以平衡。为此,使用多Critic独立估计每个奖励组的回报,每个奖励组被视为一个单独的任务,并为其分配一个Critic网络
V
ϕ
i
V_{\phi_i}
Vϕi。然后整合到PPO框架中进行优化:
L ( ϕ i ) = E [ ∣ ∣ r t i + γ V ϕ i ( s t ) − V ‾ ϕ i ( s t + 1 ) ∣ ∣ 2 ] \mathcal{L}(\phi_i)=\mathbb E[||r_t^i+\gamma V_{\phi_i}(s_t)-\overline{V}_{\phi_i}(s_{t+1})||^2] L(ϕi)=E[∣∣rti+γVϕi(st)−Vϕi(st+1)∣∣2]
其中 r t i r_t^i rti是每组的奖励, V ‾ ϕ i \overline{V}_{\phi_i} Vϕi是第 i i i组的目标值函数。通过独立计算优势函数 A ϕ i A_{\phi_i} Aϕi,然后,汇总为整体加权优势: A = ∑ i ω i ⋅ A ϕ i − μ A ϕ i σ A ϕ i A=\sum_i \omega^i \cdot \frac{A_{\phi_i}-\mu_{A_{\phi_i}}}{\sigma_{A_{\phi_i}}} A=∑iωi⋅σAϕiAϕi−μAϕi,其中 μ A ϕ i \mu_{A_{\phi_i}} μAϕi和 σ A ϕ i \sigma_{A_{\phi_i}} σAϕi是每个优势的均值和标准差。
课程学习
从跌倒到稳定跪姿的过渡阶段仅通过随机动作噪声难以有效探索。为此,在机器人基座上施加向上的力 F \mathcal{F} F,该力主要在训练初期设置。当机器人的躯干达到近乎垂直的朝向时,该力才会生效,表名机器人成功实现了地面跪姿。随着机器人在回合结束时维持目标高度,力逐渐减小。
具体而言,初始值垂直力 F = 200 N \mathcal{F}=200N F=200N,动作缩放因子 β = 1 \beta=1 β=1。当抵达目标高度后,力减少20N, β \beta β减少0.02,直至 F = 0 \mathcal{F}=0 F=0且 β = 0.25 \beta=0.25 β=0.25。
平滑技术
为防止运动振荡,将平滑正则化方法引入多Critic中,引入连续状态 s t s_t st和 s t + 1 s_{t+1} st+1之间的有界采样距离,对Actor和Critic网络进行正则化:
L L 2 C 2 = λ π D ( π θ ( s t ) , π θ ( s ‾ t ) ) + λ V ∑ D ( V ϕ i ( s t ) , V ϕ i ( s ‾ t ) ) \mathcal{L}_{L2C2}=\lambda_{\pi}D(\pi_\theta(s_t),\pi_\theta(\overline{s}_t))+\lambda_V\sum D(V_{\phi_i}(s_t),V_{\phi_i}(\overline{s}_t)) LL2C2=λπD(πθ(st),πθ(st))+λV∑D(Vϕi(st),Vϕi(st))
其中 D D D是一个距离指标, λ π \lambda_\pi λπ和 λ V \lambda_V λV是权重系数。 s ‾ t = s t + ( s t + 1 − s t ) ⋅ u \overline{s}_t=s_t+(s_{t+1}-s_t)\cdot u st=st+(st+1−st)⋅u是给定均匀噪声 u ∼ U ( ⋅ ) u\sim \mathcal{U}(\cdot) u∼U(⋅)的插值状态。
域随机化
方法限制
- 虽然仅靠本体感觉就能做出许多姿势,但在室外测试中也发现了一些失败的情况,例如从坐姿站立时与周围环境发生碰撞。 整合感知能力将有助于解决这一问题。
- 由于采样数据之间存在干扰,仰卧和俯卧姿势的训练对性能产生了负面影响。 解决这个问题可以进一步增强跌倒恢复等功能,并提高整个系统的通用性。
实验结果
请阅读原文。