当前位置: 首页 > news >正文

CMU最新论文:机器人智慧流畅的躲避障碍物论文详细讲解

CMU华人博士生Tairan He最新论文:Agile But Safe: Learning Collision-Free High-Speed Legged Locomotion
代码开源:Code: https://github.com/LeCAR-Lab/ABS
B站实际效果展示视频地址:bilibili效果地址
我会详细解读论文的内容,让我们开始吧。

敏捷且安全:学习无碰撞的高速腿式机器人移动

摘要

腿式机器人在杂乱环境中导航必须兼顾敏捷性以提高执行任务的效率,同时要确保安全性以避免与障碍物或人发生碰撞。现有研究要么开发保守的控制器(速度<1.0 m/s)以确保安全性,要么专注于敏捷性而不考虑潜在的致命碰撞。本文介绍了"敏捷且安全(ABS)"系统,它是一种基于学习的控制框架,可实现四足机器人的敏捷且无碰撞移动。

作者首先指出,腿式机器人在杂乱环境中导航时,需要在敏捷性和安全性之间进行权衡。如果太过保守,移动速度会很慢;如果太过激进,可能会发生碰撞。现有方法通常偏向其中一个极端。而本文提出的ABS系统旨在同时实现高敏捷性和高安全性。

ABS涉及一个敏捷策略来执行敏捷的运动技能以在障碍物之间穿行,以及一个恢复策略来防止失败,共同实现高速和无碰撞导航。ABS中的策略切换由学习得到的基于控制理论的可达-避免(reach-avoid)值网络控制,该网络还作为目标函数指导恢复策略,从而在闭环中保护机器人的安全。

ABS包含两个关键部分:

  1. 敏捷策略:负责在障碍物之间执行敏捷的运动技能,实现高速移动。
  2. 恢复策略:负责在敏捷策略可能失败时防止机器人发生碰撞,确保安全性。

两个策略的切换由一个可达-避免值网络控制。该网络不仅提供切换阈值,还为恢复策略提供梯度信息作为优化目标,使系统形成闭环,持续保证安全。

训练过程涉及在仿真中学习敏捷策略、可达-避免值网络、恢复策略和外部感知表示网络。这些训练好的模块可以直接部署到真实环境中,利用机载传感和计算,在狭窄的室内和室外空间中实现高速和无碰撞导航,环境中包含静态和动态障碍物(图1)。
在这里插入图片描述

这四个模块都是在仿真环境中通过强化学习的方式来训练的,然后可以直接部署到真实机器人上,利用机器人自身的传感器和计算资源,实现在各种复杂环境下的高速无碰撞移动。

1. 引言

腿式机器人在杂乱环境中的敏捷移动是一个非平凡的挑战,因为敏捷性和安全性之间存在固有的权衡,并且对于需要强健性和效率的实际应用(如搜救、灾难响应和警用机器人)至关重要。现有工作通常表现出有限的敏捷性(速度<1 m/s)以确保安全性,或者只专注于最大化敏捷性而不考虑导航场景中的安全性。我们的工作与之不同,实现了高速(最大速度>3 m/s)、无碰撞的四足机器人在杂乱环境中的移动。

作者再次强调了敏捷性和安全性的权衡问题,指出现有方法要么为了安全而牺牲了速度,要么为了速度而忽略了安全。而本文的工作与众不同,同时实现了3 m/s以上的高速度和无碰撞移动。作者还指出这种能力对许多实际应用场景都非常重要。

现有工作中的敏捷性局限源于多种因素。在问题表述方面,一些工作将移动和导航规划解耦为两个子任务并构建分层系统。这种解耦不仅限制了控制器找到最优解,而且导致了保守的行为以确保安全性,从而限制了系统充分发挥移动敏捷性。相比之下,本工作学习端到端控制器,直接输出关节级动作以实现无碰撞移动并到达指定目标位置。我们的方法受到最近一些工作的启发,其中机器人通过将移动与导航相结合来学习端到端控制器,以克服具有挑战性的地形。

作者分析了现有工作敏捷性不足的原因。一些工作采用分层系统,将移动控制和导航规划解耦为两个独立的模块。这种解耦虽然简化了系统设计,但限制了性能,导致了过于保守的策略。

而本文采用端到端学习的思路,直接让控制器输出关节动作,同时兼顾移动能力和避障导航。这种思路受到了一些将移动与导航相结合的工作的启发。

在控制器方面,一些工作采用具有简化模型的基于模型的方法,如模型预测控制(MPC)和势函数,以保证安全性。模型失配和潜在的约束违反(如打滑),以及在线计算负担,限制了这些控制器实现敏捷运动和在野外稳定部署的能力。另一方面,最近基于模型无关强化学习(RL)在腿式移动方面的进展已经展示了基于模型的控制器尚未实现的显著敏捷运动技能,尽管在杂乱环境中可能不安全。我们利用模型无关RL的灵活性和敏捷性,并使用基于控制理论的工具进一步保障其安全性。

作者指出,另一些工作采用基于模型的控制方法如MPC,虽然可以提供安全性保证,但实际使用时会受到模型失配、约束违反等问题的影响,限制了运动的敏捷性。

近年来,基于强化学习的无模型方法在腿式机器人领域取得了很大进展,展现出了超越传统方法的运动能力。但它们在复杂环境中可能缺乏安全保障。

本文希望继承强化学习的优势,同时用控制论工具来提升其安全性。

我们提出的ABS框架不仅仅是一个单一的RL策略。首先,我们有一个感知型敏捷策略,它将避障融入到移动中,如第四节所述,使我们的Go1机器人能够以高达3.1 m/s的速度在障碍物之间快速移动。然而,RL策略不能保证安全性,所以当敏捷策略可能失败时,我们用另一个恢复策略来保护机器人(见第六节)。为了决定采用哪个策略,我们使用了基于学习的、以策略为条件的可达-避免(RA)值网络来量化敏捷策略的风险等级。这受到[30]的启发,其中无模型RA值可以基于Hamilton-Jacobi可达性理论[3]被有效地学习。RA值网络通过一个带折扣的RA Bellman方程训练,数据由敏捷策略在仿真中收集。除了作为阈值,可微的RA值网络还提供梯度信息来指导恢复策略,从而在闭环中保护机器人,这将在第五节中进一步介绍。

本文的ABS框架包含两个互补的策略:

  1. 感知型敏捷策略:通过强化学习将避障能力与高速移动能力相结合。单凭这个策略可以实现3.1m/s的高速度,但不能保证绝对安全。
  2. 恢复策略:用于在敏捷策略可能失败时介入,保护机器人安全。

为了平滑地切换这两个策略,我们训练了一个RA值网络,它可以根据当前状态和敏捷策略,预测该策略的风险程度。这个RA网络的训练受到Hamilton-Jacobi可达性理论的启发,通过解决一个Bellman方程来进行。它的数据来自于敏捷策略在仿真器中的轨迹。

RA网络不仅提供一个切换阈值,它的梯度信息还可以指导恢复策略的优化,使系统形成一个闭环来持续保证安全性。

为了获得可以在不同场景中泛化的避障行为,我们使用低维外部感知特征来训练策略和RA值:从机器人到障碍物的几条射线的行进距离。为此,我们额外训练了一个外部感知表示(或称射线预测)网络,用仿真数据将深度图像映射到射线距离,如第七节所述。通过这样做,我们实现了具有机载感知和计算的高速移动中的强健避障。

为了使训练好的策略具有较好的泛化能力,作者没有直接使用原始的传感器数据如图像作为输入,而是提取了一个低维特征:从机器人射出的若干条射线的长度。

为了在真实环境中获得这个射线长度特征,作者额外训练了一个射线预测网络,可以从深度相机图像预测出这个特征,使整个系统可以完全依赖机载传感器和计算资源。

简要地说,我们的贡献如下:

  1. 一种用于高速移动中避障的感知型敏捷策略,采用了新颖的训练方法。

  2. 一种新颖的数据驱动控制论方法,用于估计以学习的敏捷策略为条件的RA值。

  3. 一种双策略结构,其中敏捷策略和恢复策略协作实现高速无碰撞移动,RA值控制策略切换并指导恢复策略。

  4. 一种外部感知表示网络,预测低维障碍物信息,实现泛化的避障能力。

  5. 在室内外障碍物环境中验证了ABS的卓越安全性和最先进的敏捷性。

作者总结了本文的五点贡献:

  1. 开发了一种感知型敏捷移动策略及其新颖的训练方法。
  2. 提出一种数据驱动的方法来估计与该敏捷策略相关联的RA值。
  3. 构建了一个双策略结构,通过RA值实现两个策略的协作与切换。
  4. 设计了一个外部感知表示网络,使系统获得了泛化的避障能力。
  5. 在真实世界的各种场景中验证了ABS的安全性和敏捷性。

2. 相关工作

A. 敏捷的腿式移动

基于模型的方法如MPC使用简化的模型和手工设计的步态来实现动态的腿式移动。尽管它们在仿真和实验室条件下表现出色,但在野外易受模型失配和意外打滑的影响。在线计算负担也限制了感知型基于模型的控制器实现敏捷运动。

传统的MPC等基于模型的方法虽然在可控环境下表现不错,但在实际环境中容易受建模误差和环境变化的影响,且计算量大不易实现敏捷动作。

最近,基于RL的控制器在稳健的移动和敏捷的运动技能方面显示出了前景,包括高速奔跑、具有挑战性的地形通过、跳跃和跌倒恢复。然而,现有的敏捷移动工作大多研究如何实现快速或技巧性的运动。在杂乱环境中,这些方法需要一个高层导航模块来避障,这通常是保守的,大大限制了运动远低于运动极限。相比之下,本文研究了用于多功能导航的敏捷避障。

最新的基于强化学习的方法在稳健性和敏捷性方面展现了优势,实现了高速奔跑、复杂地形通过、跳跃、跌倒恢复等高难度动作。

但现有工作主要关注开阔地形下的极限运动能力,在障碍物环境中则需要依赖于保守的高层避障模块,无法充分发挥运动潜力。

本文则着眼于将敏捷性与避障能力相统一,以实现灵活导航。

B. 腿式移动中的避障

经典方法通过在构型空间中进行无碰撞运动规划来处理腿式机器人中的避障问题,而不考虑机器人动力学,导好的,让我们继续讨论这篇论文的相关工作部分。

导致了缓慢和静态稳定的步态。基于MPC的方法通过将到障碍物的距离作为优化约束,将规划和控制相结合。然而,它们受到前面提到的基于模型的控制器的缺点的影响,并且运动缓慢(速度<0.5 m/s)。

传统的避障方法主要有两类:

  1. 在构型空间内进行运动规划,忽略了机器人的动力学特性,导致只能采用缓慢且静态稳定的步态。
  2. 基于MPC的方法,将与障碍物的距离作为硬约束引入优化问题。但它们也受到模型失配等问题的制约,难以实现高速移动。

基于学习的方法是另一种选择。一些现有工作训练输出twist指令(即线速度和角速度)的基于RL的策略,由运动控制器来跟踪执行,而速度指令被限制在1 m/s以内以确保安全性。然而,导航规划和运动控制的解耦使高速移动存在风险,因为高层规划器无法意识到底层跟踪误差。Yang等人提出了一种端到端的基于RL的解决方案,将深度图像和本体感知数据直接映射到关节动作,但机器人只能向前行走,速度限制在约0.4 m/s。相比之下,我们的工作部署了一个端到端的敏捷策略,用于全向快速移动和避障,并用RA值和恢复策略保护机器人。据我们所知,我们的工作是第一个验证四足机器人无碰撞移动的最大速度高达3.1 m/s。即使在有动态对抗性障碍物的狭窄空间中,我们的系统仍然可以达到2.5 m/s的峰值速度和1.5 m/s的平均速度。

还有一些工作尝试用强化学习的方法来解决避障问题:

  1. 有的工作训练一个策略输出速度指令,再用一个底层控制器去跟踪执行。但为了安全,速度指令通常被限制在较低的水平。这种分层结构使得高速移动存在风险,因为上层规划并不知道下层执行的偏差。
  2. 也有端到端的方法直接从感知信息生成关节控制指令。但目前的工作速度还很有限。

本文采用了端到端策略来实现高速移动和避障,并通过RA值和恢复策略来提供安全保障。在作者的实验中,机器人在障碍物环境下实现了3.1m/s的最高速度,即使在动态障碍、狭窄空间的情况下也能达到2.5m/s,远超现有工作。

C. 安全强化学习

执行安全RL的方法主要有两类:1)端到端的方法和2)分层的方法。

基于Lagrange乘子的方法是最具代表性的端到端安全RL方法,它们求解一个原始-对偶优化问题以满足安全约束,其中Lagrange乘子可以与策略参数一起优化。然而,约束在收敛之前就被强制执行,阻碍了探索并降低了回报。

分层安全RL方法使用动力学的底层结构和基于控制论的安全证书来保护不安全的RL动作。这些方法通常基于在学习之前就已知动力学或安全证书函数的假设,这严重限制了它们在高维复杂系统中的可扩展性。

一些最新的工作学习安全预测网络(或安全评论家)和安全备份策略,当安全评论家指示名义策略不安全时,用它们来保护RL。然而,这些框架缺乏安全评论家和备份策略之间的相互作用,依赖于备份策略可以恢复安全而无需显式优化以满足安全评论家的苛刻假设。

安全强化学习主要有两大类方法:

  1. 端到端的方法,如基于Lagrange乘子的方法。它们将安全约束与策略优化相结合构建单一问题求解,但过早引入约束会影响探索和性能。
  2. 分层的方法,利用系统动力学的先验知识和控制论工具来约束RL的行为。但它们通常依赖于已知的动力学模型或安全证书,在复杂系统上难以应用。

最近出现了一些工作,通过学习安全评估网络和安全备份策略,来为RL提供保护。但这些工作通常假设备份策略可以自动恢复安全,缺乏与安全评估模块的良性互动。

我们的方法与分层方法一致,但采用了一种独特的策略。我们专注于估计敏捷策略的可达-避免值,并将可达-避免值的梯度信息反馈到系统中,以指导恢复策略在闭环中运行。这种创新方法实现了一个动态自适应的恢复过程。值得注意的是,我们所有的模块都是在仿真中使用模型无关的方法训练的,提高了我们方法的泛化性和可扩展性。

本文的方法属于分层结构,但有其独特之处:

  1. 我们估计与敏捷策略相关联的RA值,用于指示策略的安全程度。
  2. 我们将RA值的梯度信息反馈给恢复策略,指导其优化过程,构成一个闭环。这使得恢复策略可以动态调整,与RA值保持一致。

此外,我们采用无模型方法,所有模块都在仿真器中进行训练,提高了方法的泛化性和可扩展性。

D. 可达-避免问题和Hamilton-Jacobi分析

可达-避免(RA)问题涉及导航系统以到达目标并避开某些不期望的状态。Hamilton-Jacobi (HJ)可达性分析通过分析相关的Hamilton-Jacobi偏微分方程来解决这个问题,该方程提供了一组系统为了保持安全必须远离的状态。

可达-避免(RA)问题的目标是规划一个轨迹,使系统到达目标集合而避开某些危险状态集合。

Hamilton-Jacobi (HJ)可达性分析是求解RA问题的经典方法。它通过分析Hamilton-Jacobi偏微分方程,给出系统应该避免的状态集合,从而保证安全性。

HJ可达性分析面临计算挑战,其复杂度随系统维度呈指数增长。最近的基于学习的方法尝试通过学习满足相关HJ偏微分方程和约束的值函数网络来将HJ可达性分析扩展到高维系统。然而,它们仍然需要在学习之前明确系统的Hamilton函数表达式。

我们的方法建立在另一系列利用收缩性质推导出时间折扣的可达-避免Bellman方程的工作之上。然而,与以前在RL训练期间学习策略无关的RA值的工作不同,我们学习策略相关的RA值网络。这不仅通过避免全局RA集合的可识别性问题来降低计算负担,而且也最适合我们训练的敏捷策略。类似地,关于神经控制势函数的一项同期工作也将特定策略的安全过滤器应用于屏蔽复杂系统,降低复杂性。

HJ可达性分析在高维系统上应用会面临计算瓶颈。最近的一些工作利用函数逼近来缓解这一问题,通过学习一个满足HJ方程和相关条件的值函数来逼近可达集。但它们通常需要预先知道系统的Hamilton函数具体形式。

本文采用另一类方法,利用动力系统的收缩性质,推导出一个带折扣因子的RA Bellman方程。与之前的工作不同,我们学习与特定策略相关联的RA值函数。这避免了求解全局RA集合的高复杂度,且与我们训练的敏捷策略更加契合。这一思路与最近关于神经控制势函数的工作类似,都是通过引入特定策略来降低安全分析的复杂性。

3. 概述和预备知识

A. 术语表

我们在表1中列出了全文将要用到的重要符号和缩写,以供参考。

B. 问题表述

1) 动力学

s t ∈ S ⊂ R n s s_t \in S \subset \mathbb{R}^{n_s} stSRns t t t 时刻的状态,其中 n s n_s ns 是状态空间 S S S 的维度; a t ∈ A ⊂ R n a a_t \in A \subset \mathbb{R}^{n_a} atARna t t t 时刻的控制输入,其中 n a n_a na 是动作空间 A A A 的维度。系统动力学定义为:
s t + 1 = f ( s t , a t ) , (1) s_{t+1} = f(s_t, a_t), \tag{1} st+1=f(st,at),(1)
其中 f : S × A → S f:S \times A \rightarrow S f:S×AS 是一个将当前机器人状态和控制映射到下一状态的函数。为简单起见,本文考虑可以没有解析形式的确定性动力学。我们将从本体感知和/或外部感知得到的机器人观测记为 o t = h ( s t ) o_t = h(s_t) ot=h(st),其中 h : S → O h:S\rightarrow O h:SO 是传感器映射。敏捷策略和恢复策略的详细观测空间和动作空间将在第四节和第六节介绍。

作者在这里介绍了系统的数学表示。

  • s t s_t st 表示t时刻的状态,是一个 n s n_s ns 维向量。
  • a t a_t at 表示t时刻的控制输入,是一个 n a n_a na 维向量。
  • 系统的动力学方程(1)用函数 f f f 来描述状态的演化过程。本文考虑确定性但不必显式已知的动力学。
  • o t o_t ot 表示t时刻的观测,通过传感器映射 h h h 从状态得到。

敏捷策略和恢复策略具体采用的观测和动作变量将在后面章节说明。

2) 目标和策略

目标条件强化学习通过一个目标条件策略 π : O × Γ → A \pi:O\times\Gamma\rightarrow A π:O×ΓA 学习到达目标状态 G ∈ Γ G\in\Gamma GΓ。给定奖励函数 r : S × A × Γ → R r:S\times A\times\Gamma\rightarrow\mathbb{R} r:S×A×ΓR 和折扣因子 γ R L \gamma_{RL} γRL,策略被训练以最大化目标分布 p G p_G pG 下的期望累积回报:
J ( π ) = E a t ∼ π ( ⋅ ∣ o t , G ) , G ∼ p G [ ∑ t γ R L t r ( s t , a t , G ) ] . (2) J(\pi) = \mathbb{E}_{a_t\sim\pi(\cdot|o_t,G),G\sim p_G} \left[ \sum_t \gamma_{RL}^t r(s_t,a_t,G) \right]. \tag{2} J(π)=Eatπ(ot,G),GpG[tγRLtr(st,at,G)].(2)

本文采用目标条件强化学习的框架来训练策略:

  • G G G 表示目标状态,是策略 π \pi π 的条件变量之一。 Γ \Gamma Γ 是目标的分布空间。
  • 强化学习通过最大化累积奖励来优化策略,奖励函数定义为 r r r, γ R L \gamma_{RL} γRL 是累积奖励的折扣因子。
  • 期望累积奖励 J ( π ) J(\pi) J(π) 在策略、观测、目标的联合分布下取期望,用于评估一个策略的性能。
3) 失败集合、目标集合和可达-避免集合

我们将失败集合 F ⊆ S F\subseteq S FS 定义为不安全状态(如碰撞),机器人不允许进入。失败集合可以用一个Lipschitz连续函数的零下水平集表示,即 s ∈ F ⇔ ζ ( s ) > 0 s\in F\Leftrightarrow \zeta(s)>0 sFζ(s)>0。目标集合 Θ ⊂ S \Theta\subset S ΘS 定义为期望状态(即目标状态)。类似地,目标集合可以用一个Lipschitz连续函数的零下水平集表示,即 s ∈ Θ ⇔ l ( s ) ≤ 0 s\in \Theta\Leftrightarrow l(s)\leq 0 sΘl(s)0。我们用 ξ s t π ( ⋅ ) \xi^\pi_{s_t}(\cdot) ξstπ() 表示从状态 s t s_t st 出发( ξ s t π ( 0 ) = s t \xi^\pi_{s_t}(0)=s_t ξstπ(0)=st),使用策略 π \pi π 直到 s T s_T sT 的未来轨迹。以策略 π \pi π 为条件的可达-避免集合定义为

R A π ( Θ ; F ) : = { s t ∈ S ∣ ξ s t π ( T − t ) ∈ Θ ∧ ∀ t ′ ∈ [ 0 , T − t ] , ξ s t π ( t ′ ) ∉ F } , (3) RA^\pi(\Theta; F) := \{s_t\in S | \xi^\pi_{s_t}(T-t)\in\Theta \wedge \forall t'\in[0,T-t], \xi^\pi_{s_t}(t')\notin F\}, \tag{3} RAπ(Θ;F):={stSξstπ(Tt)Θt[0,Tt],ξstπ(t)/F},(3)

它表示在策略 π \pi π 的控制下,能够使系统到达 Θ \Theta Θ 且在此之前所有时间步都避免了 F F F 的状态集合。

  • 失败集合 F F F 定义为一些不安全状态,如碰撞,可以用函数 ζ \zeta ζ 的水平集表示。
  • 目标集合 Θ \Theta Θ 定义为一些期望状态,如目标位置,可以用函数 l l l 的水平集表示。
  • ξ s t π ( ⋅ ) \xi^\pi_{s_t}(\cdot) ξstπ() 表示从 s t s_t st 出发,在策略 π \pi π 控制下的状态轨迹。
  • 可达-避免集合 R A π ( Θ ; F ) RA^\pi(\Theta; F) RAπ(Θ;F) 是在策略 π \pi π 控制下,从其出发能在有限时间内到达目标集合 Θ \Theta Θ 且中途不经过失败集合 F F F 的所有状态的集合。
4) 可达-避免值和时间折扣可达-避免Bellman方程

我们定义策略相关的可达-避免值为: V R A π ∗ ( s ) ≤ 0 ⇔ s ∈ R A π ( Θ ; F ) V_{RA}^{\pi*}(s)\leq 0 \Leftrightarrow s\in RA^{\pi}(\Theta; F) VRAπ(s)0sRAπ(Θ;F)。根据相关证明,可以容易地扩展得到值函数 V R A π ∗ ( s ) V^{\pi*}_{RA}(s) VRAπ(s) 满足如下的定点可达-避免Bellman方程(我们的策略相关值函数是一般值函数的特例):
V R A π ∗ ( s ) = max ⁡ { ζ ( s ) , min ⁡ { l ( s ) , V R A π ∗ ( f ( s , π ( s ) ) ) } } . (4) V_{RA}^{\pi*}(s) = \max\left\{\zeta(s), \min \{l(s), V_{RA}^{\pi*}(f(s,\pi(s)))\}\right\}. \tag{4} VRAπ(s)=max{ζ(s),min{l(s),VRAπ(f(s,π(s)))}}.(4)
然而,不能保证式(4)在值函数空间中会收缩。为了便于数据驱动的逼近,我们利用时间折扣的可达-避免Bellman方程来使策略相关的折扣可达-避免值 V R A π ( s ) V^\pi_{RA}(s) VRAπ(s) 收缩,其定义为

V R A π ( s ) = γ R A max ⁡ { ζ ( s ) , min ⁡ { l ( s ) , V R A π ( f ( s , π ( s ) ) ) } } + ( 1 − γ R A ) max ⁡ { l ( s ) , ζ ( s ) } . (5) \begin{aligned} V_{RA}^\pi(s) = \gamma_{RA}&\max\left\{\zeta(s),\min\{l(s),V_{RA}^\pi(f(s,\pi(s)))\}\right\} \\ &+ (1-\gamma_{RA})\max\{l(s),\zeta(s)\}. \tag{5} \end{aligned} VRAπ(s)=γRAmax{ζ(s),min{l(s),VRAπ(f(s,π(s)))}}+(1γRA)max{l(s),ζ(s)}.(5)

  • 可达-避免值 V R A π ∗ ( s ) V_{RA}^{\pi*}(s) VRAπ(s) 对应于状态 s s s 是否属于可达-避免集合。如果 V R A π ∗ ( s ) ≤ 0 V_{RA}^{\pi*}(s) \leq 0 VRAπ(s)0,则 s ∈ R A π ( Θ ; F ) s\in RA^\pi(\Theta;F) sRAπ(Θ;F)
  • 理想情况下, V R A π ∗ V_{RA}^{\pi*} VRAπ 应满足定点Bellman方程(4)。但这个方程在值函数空间上不一定是收缩的,数值求解可能不稳定。
  • 为此,作者引入了一个折扣因子 γ R A \gamma_{RA} γRA,定义了折扣可达-避免值 V R A π ( s ) V_{RA}^\pi(s) VRAπ(s),并推导出它满足的Bellman方程(5)。
  • 这个带折扣的方程具有良好的收缩性,更利于数值求解。同时当折扣因子趋于1时,折扣值也会收敛到原始的可达-避免值。

根据相关结论,可以证明当 γ R A ∈ [ 0 , 1 ) \gamma_{RA}\in[0,1) γRA[0,1) 时, V R A π ( s ) V_{RA}^\pi(s) VRAπ(s) 总是 V R A π ∗ ( s ) V_{RA}^{\pi*}(s) VRAπ(s) 的下界,且当 γ R A \gamma_{RA} γRA 趋近于1时, V R A π ( s ) V_{RA}^\pi(s) VRAπ(s) 收敛到 V R A π ∗ ( s ) V_{RA}^{\pi*}(s) VRAπ(s)。注意 V R A π ( s ) V_{RA}^\pi(s) VRAπ(s) V R A π ∗ ( s ) V_{RA}^{\pi*}(s) VRAπ(s) 的下界意味着 V R A π ( s ) ≤ 0 ⇒ s ∈ R A π ( Θ ; F ) V_{RA}^\pi(s)\leq 0 \Rightarrow s\in RA^{\pi}(\Theta;F) VRAπ(s)0sRAπ(Θ;F),这表明基于 V R A π ( s ) V_{RA}^\pi(s) VRAπ(s) 阈值的屏蔽方法可以使系统停留在基于控制论的可达-避免集合 R A π ( Θ ; F ) RA^\pi(\Theta;F) RAπ(Θ;F) 内。

作者进一步指出,可以证明:

  • 对任意 γ R A ∈ [ 0 , 1 ) \gamma_{RA}\in[0,1) γRA[0,1),折扣值 V R A π ( s ) V_{RA}^\pi(s) VRAπ(s) 总是原始值 V R A π ∗ ( s ) V_{RA}^{\pi*}(s) VRAπ(s) 的下界。
  • 当折扣因子趋于1时,折扣值会收敛到原始值。
  • 下界性质意味着,如果 V R A π ( s ) ≤ 0 V_{RA}^\pi(s)\leq 0 VRAπ(s)0,则状态 s s s 一定属于真正的可达-避免集合。

因此,我们可以用学到的 V R A π ( s ) V_{RA}^\pi(s) VRAπ(s) 来构建一个屏蔽机制:如果 V R A π ( s ) V_{RA}^\pi(s) VRAπ(s) 超过一定阈值,就切换到安全策略。这种机制可以保证系统始终处于真正的可达-避免集合中,实现安全性。

C. 系统架构

在这里插入图片描述

如图2所示,我们提出的ABS框架包含敏捷策略 π A g i l e \pi_{Agile} πAgile 和恢复策略 π R e c o v e r y \pi_{Recovery} πRecovery 的双策略结构,二者协同工作实现敏捷且安全的运动技能。敏捷策略根据目标指令(目标2D位置和朝向)执行敏捷运动技能,以在障碍物之间导航机器人,同时具有基本的避障能力(见第四节)。恢复策略负责在敏捷策略可能失败时通过快速跟踪twist指令(2D线速度 v x c v^c_x vxc, v y c v^c_y vyc 和偏航角速度 ω z c \omega^c_z ωzc)来保护敏捷策略(见第五节C和第六节)。两个策略都输出关节目标,由PD控制器跟踪。

本文的系统由两个策略构成(图2):

  1. 敏捷策略 π A g i l e \pi_{Agile} πAgile:负责高速移动和避障。它根据目标位置和朝向的指令来规划运动。
  2. 恢复策略 π R e c o v e r y \pi_{Recovery} πRecovery:负责在敏捷策略失效时介入。它跟踪速度和角速度指令来规避碰撞。

两个策略的切换由可达-避免(RA)值决定。RA值反映了当前状态下敏捷策略的安全程度。

两个策略的输出都是一些关节目标角度,最终由一个PD控制器来执行。

在部署过程中,策略切换由敏捷策略的RA值控制,RA值使用神经网络 V ^ \hat{V} V^ 来估计(见第五节)。给定一个安全阈值 V t h r e s h o l d = − ϵ V_{threshold} = -\epsilon Vthreshold=ϵ,其中 ϵ \epsilon ϵ 是一个小的正数,我们有:

  • 如果 V ^ ≥ V t h r e s h o l d \hat{V}\geq V_{threshold} V^Vthreshold,我们搜索一个twist指令,在保证安全的基础上驱动机器人尽可能接近目标,基于(21)式进行优化。恢复策略接管控制,跟踪搜索得到的twist指令。
  • 如果 V ^ < V t h r e s h o l d \hat{V}<V_{threshold} V^<Vthreshold,则敏捷策略接管控制。

我们期望系统在大多数时间激活敏捷策略,而只在有风险的情况下使用恢复策略,直到恢复到敏捷策略可以安全运行的状态,即 V ^ < V t h r e s h o l d \hat{V}<V_{threshold} V^<Vthreshold

在实际使用中,系统根据RA值 V ^ \hat{V} V^ 在两个策略间切换:

  • 如果 V ^ \hat{V} V^ 高于阈值 V t h r e s h o l d V_{threshold} Vthreshold,说明当前敏捷策略存在安全隐患,就切换到恢复策略。恢复策略会搜索一个安全的速度指令来跟踪。
  • 如果 V ^ \hat{V} V^ 低于阈值,就使用敏捷策略。

理想情况下,系统应该绝大部分时间使用敏捷策略以获得高速移动,只在必要时短暂切换到恢复策略,直到恢复到安全状态。

为了避障,敏捷策略和RA值网络都需要外部感知输入。受相关工作启发,我们选择使用一个低维外部感知表示:从机器人射向障碍物的11条射线的长度,类似于稀疏的激光雷达读数。我们训练了一个网络,将原始深度图像映射到预测的射线长度(见第七节),射线长度作为敏捷策略和RA值网络的部分观测。

避障需要环境感知能力。本文没有直接使用高维图像,而是将其压缩为一个11维向量,表示从机器人射出的11条射线的长度,反映了障碍物的距离。

作者训练了一个神经网络,可以从深度图像预测这个射线长度特征。该特征作为敏捷策略和RA网络的输入。这种做法受到了一些早期工作的启发。

综上所述,如图2(a)所示,ABS需要在仿真中训练四个模块:

  1. 敏捷策略(第四节):通过RL训练以在障碍物中实现最大化的敏捷性。我们设计奖励函数以鼓励最敏捷的运动技能。
  2. RA值网络(第五节):训练以指示敏捷策略的安全性。我们使用数据驱动的方法基于RA Bellman方程(5)对其进行训练,并通过在仿真中执行敏捷策略收集数据。
  3. 恢复策略(第六节):训练以从高速运动中快速跟踪twist指令。
  4. 射线预测网络(第七节):训练以从深度图像预测射线距离。我们通过在仿真中执行敏捷策略来收集合成深度图像和射线距离。

所有四个模块在训练后都可以直接部署到真实世界中。

总结来说,ABS包含四个关键模块,它们分别是:

  1. 敏捷策略:通过RL最大化运动敏捷性,同时避障。
  2. RA值网络:预测敏捷策略的安全性,为策略切换提供依据。它通过敏捷策略的仿真数据,基于RA Bellman方程来训练。
  3. 恢复策略:紧急情况下通过快速跟踪速度指令来规避风险。
  4. 射线预测网络:为敏捷策略和RA网络提供表征障碍物的紧凑特征。它在仿真中用深度图像和真值射线长度训练。

所有这些模块都是在仿真环境中训练得到的,但可以直接部署到真实机器人上。

4. 学习敏捷策略

正如第三节C中提到的,我们训练一个敏捷策略以在障碍物之间实现高度敏捷性。先前关于学习敏捷移动的工作通常采用速度跟踪的公式,即在开放平坦地形上跟踪速度指令。然而,为这些速度跟踪策略在杂乱环境中设计导航规划器可能是非平凡的。为了确保安全,规划器可能不得不保守,无法充分发挥移动策略的敏捷性。

相反,我们使用目标追踪公式来最大化敏捷性,受相关工作的启发。具体而言,我们训练机器人在片段时间内到达指定目标而不发生碰撞所需的感觉运动技能。通过在基座坐标系中追求高速度的奖励项,也鼓励了敏捷性。通过这样做,机器人自然学会在避免碰撞的同时实现最大敏捷性。

传统的学习敏捷运动的方法,是训练一个策略来跟踪速度指令。但是如何在复杂环境中为这种策略设计一个导航规划器是有难度的。规划器为了安全考虑通常会比较保守,无法充分利用运动策略的能力。

本文采用了一种目标追踪的公式,策略的目标是规定时间内到达指定位置,同时避免碰撞。此外还设置了追求高速度的奖励,以鼓励敏捷性。

通过这种方式,策略可以自主学习如何在保证安全的前提下实现最大速度。

本节介绍我们敏捷策略学习的细节。关于目标追踪和速度跟踪公式在敏捷性方面的详细比较将在第九节A1中给出。

A. 观测空间和动作空间

敏捷策略的观测空间由以下部分组成:足端接触状态 c f ∈ { 1 , 2 , 3 , 4 } c_f\in\{1,2,3,4\} cf{1,2,3,4},基座角速度 ω \omega ω,基座坐标系下的投影重力 g g g,基座坐标系下的目标指令 G c G_c Gc(即目标的相对位置和朝向),剩余的片段时间 T − t T-t Tt,关节位置 q q q,关节速度 q ˙ \dot{q} q˙,前一帧的动作 a a a,以及外部感知(即射线距离的对数值) R R R。为简洁起见,我们这里省略了基于时间步的下标( t − 1 t-1 t1表示动作, t t t表示其他变量)。我们将所有这些变量的集合称为 o A g i l e o_{Agile} oAgile

在这些观测中,只有 g g g G c G_c Gc 分别需要定向和里程计的状态估计器。其他所有值都可以直接从原始传感器数据中获得,而不会有累积漂移。基于IMU的定向估计(即横滚角和俯仰角)通常非常准确,并且我们的策略可以有效地处理里程计漂移(因为我们甚至可以在运行中突然改变目标,见第九节D)。因此,我们的敏捷策略对不准确的状态估计器是鲁棒的,而这可能是基于模型的控制器的问题。

敏捷策略的动作空间由12维关节目标角度组成。一个PD控制器通过将这些关节目标角度 a a a 转换为关节力矩来跟踪它们:

τ = K p ( a − q ) − K d q ˙ . (6) \tau = K_p(a-q) - K_d\dot{q}. \tag{6} τ=Kp(aq)Kdq˙.(6)

一个全连接的MLP将观测 o A g i l e o_{Agile} oAgile 映射到动作 a a a

作者详细介绍了敏捷策略的观测空间和动作空间。

观测空间包括:

  • 足端接触状态
  • 基座角速度
  • 重力方向
  • 目标位置和朝向
  • 剩余时间
  • 关节位置和速度
  • 上一时刻的动作
  • 射线长度(外部感知)

其中大部分信息可以直接通过传感器获得,只有重力方向和目标信息需要状态估计。作者指出,策略对状态估计误差有一定的鲁棒性。

动作空间就是12个关节的目标角度。系统最终通过一个PD控制器将其转换为关节力矩。

策略本身是一个MLP网络,将观测映射到动作。

B. 奖励

我们的奖励函数由多个项的总和组成:

r = r p e n a l t y + r t a s k + r r e g u l a r i z a t i o n , (7) r = r_{penalty} + r_{task} + r_{regularization}, \tag{7} r=rpenalty+rtask+rregularization,(7)

其中每一项都可以进一步分为几个子项。

1) 惩罚项

我们使用一个简单的惩罚设计:

r p e n a l t y = − 100 ⋅ 1 ( undesired collision ) , (8) r_{penalty} = -100 \cdot \mathbf{1}(\text{undesired collision}), \tag{8} rpenalty=1001(undesired collision),(8)

其中undesired collision是指在基座、大腿和小腿上的碰撞,以及在足端的水平碰撞。

2) 任务项

任务奖励为:

r t a s k = 60 ⋅ r p o s s o f t + 60 ⋅ r p o s t i g h t + 30 ⋅ r h e a d i n g − 10 ⋅ r s t a n d + 10 ⋅ r a g i l e − 20 ⋅ r s t a l l , (9) \begin{aligned} r_{task} = & 60 \cdot r_{possoft} + 60 \cdot r_{postight} + 30 \cdot r_{heading} \\ & - 10 \cdot r_{stand} + 10 \cdot r_{agile} - 20 \cdot r_{stall}, \end{aligned} \tag{9} rtask=60rpossoft+60rpostight+30rheading10rstand+10ragile20rstall,(9)

即一个软位置跟踪项 r p o s s o f t r_{possoft} rpossoft 鼓励目标到达的探索,一个紧位置跟踪项 r p o s t i g h t r_{postight} rpostight 强化机器人停在目标处,一个航向跟踪项 r h e a d i n g r_{heading} rheading 调节机器人在目标处附近的朝向,一个站立项 r s t a n d r_{stand} rstand 鼓励在目标处的站立姿态,一个敏捷项 r a g i l e r_{agile} ragile 鼓励高速度,以及一个停滞项 r s t a l l r_{stall} rstall 惩罚等待行为。这些项确保机器人应该尽可能快地到达目标,并具有适当的朝向和姿态,同时不浪费时间。

具体来说,我们的跟踪项( r p o s s o f t r_{possoft} rpossoft, r p o s t i g h t r_{postight} rpostight, r h e a d i n g r_{heading} rheading)采用相同的形式,如下所示,灵感来自于学习RL导航规划器的工作:

r t r a c k ( possoft/postight/heading ) = 1 1 + error σ ⋅ 1 ( t > T − T r ) T r , (10) r_{track(\text{possoft/postight/heading})}=\frac{1}{1+\frac{\text{error}}{\sigma}} \cdot \frac{\mathbf{1}(t>T-T_r)}{T_r}, \tag{10} rtrack(possoft/postight/heading)=1+σerror1Tr1(t>TTr),(10)

其中 σ \sigma σ 用于归一化跟踪误差, T T T是片段长度, T r T_r Tr是一个时间阈值。这样做,机器人只需要在 T − T r T-T_r TTr 之前到达目标就可以最大化跟踪奖励,而不受诸如目标速度等可能限制敏捷性的显式运动约束。对于软位置跟踪,我们设置 σ s o f t = 2 m \sigma_{soft}=2\text{m} σsoft=2m, T r = 2 s T_r=2\text{s} Tr=2s,误差是到目标的距离。对于紧位置跟踪,我们设置 σ t i g h t = 0.5 m \sigma_{tight}=0.5\text{m} σtight=0.5m, T r = 1 s T_r=1\text{s} Tr=1s。对于航向跟踪,我们设置 σ h e a d i n g = 1 rad \sigma_{heading}=1\text{rad} σheading=1rad, T r = 2 s T_r=2\text{s} Tr=2s,误差是到目标航向的相对偏航角。我们进一步在到目标的距离大于 σ s o f t \sigma_{soft} σsoft 时禁用 r h e a d i n g r_{heading} rheading,这样就不会影响避障。

站立项定义为

r s t a n d = ∥ q − q ˉ ∥ 1 ⋅ 1 ( t > T − T r , s t a n d ) T r , s t a n d ⋅ 1 ( d g o a l < σ t i g h t ) , (11) r_{stand} = \|q-\bar{q}\|_1 \cdot \frac{\mathbf{1}(t>T-T_{r,stand})}{T_{r,stand}} \cdot \mathbf{1}(d_{goal}<\sigma_{tight}), \tag{11} rstand=qqˉ1Tr,stand1(t>TTr,stand)1(dgoal<σtight),(11)

其中 q ˉ \bar{q} qˉ 是站立的标称关节位置, T r , s t a n d = 1 s T_{r,stand}=1\text{s} Tr,stand=1s, d g o a l d_{goal} dgoal 是到目标的距离。

敏捷项是鼓励敏捷移动的核心项。它定义为

r a g i l e = max ⁡ { ReLU ( v x v m a x ) ⋅ 1 ( correct direction ) , 1 ( d g o a l < σ t i g h t ) } , (12) r_{agile} = \max\left\{ \text{ReLU}\left(\frac{v_x}{v_{max}}\right)\cdot \mathbf{1}(\text{correct direction}), \mathbf{1}(d_{goal}<\sigma_{tight})\right\}, \tag{12} ragile=max{ReLU(vmaxvx)1(correct direction),1(dgoal<σtight)},(12)

其中 v x v_x vx 是机器人基坐标系下的前向速度, v m a x = 4.5 m/s v_{max}=4.5\text{m/s} vmax=4.5m/s 是一个无法达到的 v x v_x vx 上界(基于硬件数据手册),而"correct direction"表示机器人朝向与机器人-目标连线之间的夹角小于105度。为了最大化这一项,机器人要么快速奔跑,要么停在目标处。

如果机器人在 d g o a l > σ s o f t d_{goal}>\sigma_{soft} dgoal>σsoft 时静止不动,并且机器人没有朝"correct direction",则停滞项 r s t a l l r_{stall} rstall 为1。这一项惩罚机器人浪费时间。

奖励函数由三部分组成:惩罚项、任务项和正则化项。

惩罚项主要防止机器人与环境发生碰撞。

任务项鼓励机器人快速、准确地到达目标:

  • 有软硬两个位置跟踪奖励,确保机器人能到达目标附近并精确停在目标点。
  • 航向跟踪奖励使机器人在目标处有正确的朝向。在离目标较远时,该奖励会被禁用以避免干扰避障。
  • 站立奖励使机器人在目标处保持站立姿态。
  • 敏捷奖励鼓励机器人要么全速向前,要么停在目标点,是实现高速运动的关键。
  • 停滞惩罚防止机器人原地不动浪费时间。

作者采用了一些技巧来设计这些奖励,如对跟踪误差进行归一化,引入一个容忍时间阈值等,以允许策略灵活规划运动。

3) 正则化项

正则化奖励为:
r r e g u l a r i z a t i o n = − 2 ⋅ v z 2 − 0.05 ⋅ ( ω x 2 + ω y 2 ) − 20 ⋅ ( g x 2 + g y 2 ) − 0.0005 ⋅ ∥ τ ∥ 2 2 − 20 ⋅ ∑ i = 1 12 ReLU ( ∣ τ i ∣ − 0.85 ⋅ τ i , l i m ) − 0.0005 ⋅ ∥ q ˙ ∥ 2 2 − 20 ⋅ ∑ i = 1 12 ReLU ( ∣ q ˙ i ∣ − 0.9 ⋅ q ˙ i , l i m ) − 20 ⋅ ∑ i = 1 12 ReLU ( ∣ q i ∣ − 0.95 ⋅ q i , l i m ) − 2 × 1 0 − 7 ⋅ ∥ q ¨ ∥ 2 2 − 4 × 1 0 − 6 ⋅ ∥ a ˙ ∥ 2 2 − 20 ⋅ 1 ( fly ) , (13) \begin{aligned} r_{regularization} = & -2\cdot v_z^2 - 0.05\cdot(\omega_x^2+\omega_y^2) - 20\cdot(g_x^2+g_y^2) \\ & -0.0005\cdot\|\tau\|_2^2 - 20\cdot\sum_{i=1}^{12}\text{ReLU}(|\tau_i|-0.85\cdot\tau_{i,lim}) \\ & -0.0005\cdot\|\dot{q}\|_2^2 -20\cdot\sum_{i=1}^{12}\text{ReLU}(|\dot{q}_i|-0.9\cdot\dot{q}_{i,lim}) \\ & -20\cdot\sum_{i=1}^{12}\text{ReLU}(|q_i|-0.95\cdot q_{i,lim}) \\ & -2\times10^{-7}\cdot\|\ddot{q}\|_2^2 - 4\times10^{-6}\cdot\|\dot{a}\|_2^2 \\ & -20\cdot\mathbf{1}(\text{fly}), \end{aligned} \tag{13} rregularization=2vz20.05(ωx2+ωy2)20(gx2+gy2)0.0005τ2220i=112ReLU(τi0.85τi,lim)0.0005q˙2220i=112ReLU(q˙i0.9q˙i,lim)20i=112ReLU(qi0.95qi,lim)2×107q¨224×106a˙22201(fly),(13)

其中 τ \tau τ 是关节力矩, τ l i m \tau_{lim} τlim 是硬件力矩限制, q ˙ l i m \dot{q}_{lim} q˙lim 是硬件关节速度限制, q l i m q_{lim} qlim 是硬件关节位置限制,"fly"是指机器人与地面没有接触。我们惩罚"fly"的情况,因为它们使机器人基座不可控,威胁系统的安全性。

正则化项包含了一系列惩罚,用于鼓励机器人的运动更加平稳、高效、安全:

  • 惩罚z方向(垂直方向)的速度和x-y方向(水平方向)的角速度,以抑制不必要的振动。
  • 惩罚倾斜,保持机身稳定。
  • 惩罚大的关节力矩、速度和位置,避免超出执行器限制。
  • 惩罚大的关节加速度和加加速度,使运动更平滑。
  • 惩罚悬空(没有支撑脚着地),此时机器人失去控制,容易跌倒。

C. 仿真训练

1) 仿真器

我们使用基于GPU的Isaac Gym仿真器,它支持我们用PPO算法并行训练1280个环境。

2) 地形

在这里插入图片描述

我们在随机地形上训练敏捷策略,遵循一个课程以促进学习。为了防止过度利用仿真动力学而产生不稳定的步态,地形被随机采样为平坦、粗糙或低矮障碍物,如图3所示。随着难度等级从0上升到9,粗糙地形和障碍物的高度差从0cm增加到7cm。

3) 障碍物

我们用半径40cm的圆柱体作为训练障碍物。对于每个片段,我们在一个覆盖原点和目标的11m×5m的矩形区域内随机分布0~8个障碍物。为了便于学习,我们也应用了一个课程,其中较高的难度等级有更多的障碍物。

4) 域随机化

我们进行域随机化以实现从仿真到真实的迁移。随机化的设置如表2所列。在这些项中,有两项至关重要:illusion和ERFI-50。Illusion使策略对看不见的几何形状(如墙壁)更加鲁棒:如果射线距离大于 d g o a l + 0.3 d_{goal}+0.3 dgoal+0.3,它就用 U ( d g o a l + 0.3 , ray distance ) U(d_{goal}+0.3,\text{ray distance}) U(dgoal+0.3,ray distance) 范围内的随机值覆盖观测到的射线距离。ERFI-50通过随机力矩扰动隐式地对真实世界的动力学进行系统辨识,我们在本工作中增加了一个课程以避免阻碍学习的早期阶段。我们还随机偏置关节位置以对电机编码器的偏移误差进行建模。

作者在仿真训练中采用了以下设置:

  1. 使用Isaac Gym仿真器,可以高度并行化训练过程。
  2. 随机生成平坦、粗糙、有障碍物的地形,并随训练进程提高难度,以促进策略的泛化能力。
  3. 随机放置圆柱体作为障碍物。障碍物数量也随训练难度增加。
  4. 在状态观测、动力学参数等多个方面进行域随机化,以缩小真实环境与仿真环境的差距。其中两个关键技术是:
    • Illusion:通过添加随机噪声,使策略对看不见的障碍物(如墙壁)更鲁棒。
    • ERFI-50:通过施加随机扰动,模拟真实执行器的动力学误差。

通过这些设置,策略可以在仿真环境中学习应对不确定性,从而更好地迁移到真实世界。

5) 课程学习

如上所述,我们应用一个课程,其中难度等级可以改变地形、障碍物分布和域随机化。对于难度等级的分配,我们遵循Zhang等人的设计:当一个片段结束时,如果 d g o a l < σ t i g h t d_{goal}<\sigma_{tight} dgoal<σtight,机器人会升到更高的等级,如果 d g o a l > σ s o f t d_{goal}>\sigma_{soft} dgoal>σsoft,机器人会降到更低的等级。如果机器人在最高等级被提升,它将按照文献的做法转到随机等级。

作者在训练中采用了课程学习的策略,即随着训练的进行逐步提高任务难度。难度等级将影响地形的复杂度、障碍物的密度以及域随机化的强度。

难度等级的调整规则如下:

  • 如果一个片段结束时,机器人到达目标点的距离 d g o a l d_{goal} dgoal 小于 σ t i g h t \sigma_{tight} σtight (紧位置阈值),就提升难度。
  • 如果 d g o a l d_{goal} dgoal 大于 σ s o f t \sigma_{soft} σsoft (软位置阈值),就降低难度。
  • 如果机器人已经在最高难度下被提升,就随机选择一个难度重新开始。

5. 学习和使用可达-避免值

虽然敏捷策略通过相应的奖励学习了一定的避障行为,但它并不能保证安全性。为了保护机器人,我们建议使用RA值来预测故障,然后恢复策略可以根据RA值来挽救机器人。

受Hsu等人的启发,我们以模型无关的方式学习RA值,与典型的基于模型的可达性分析方法形成对比。这更适合基于模型无关RL的策略。此外,与文献不同的是,我们不学习全局RA值,而是将其与策略相关联,如第三节B4所述。学习得到的RA值函数将仅根据观测预测敏捷策略的故障。

A. 学习RA值

为了避免在高维空间中过拟合并使RA值具有泛化能力,我们使用一组简化的观测作为RA值函数的输入:

o R A = { [ v ; ω ] ; G x , y c ; R } , (14) o_{RA}=\{[v;\omega];G^c_{x,y};R\}, \tag{14} oRA={[v;ω];Gx,yc;R},(14)

即基座速度、目标在机器人坐标系下的(x,y)位置以及外部感知。这些分量是质心观测,显著影响安全性和目标到达。另一方面,我们这里不使用关节级的观测(如 q q q q ˙ \dot{q} q˙),因为它们是高维的,与目标到达的相关性较小。我们训练一个RA值网络 V ^ \hat{V} V^ 来近似RA值:

V R A π A g i l e ( s ) ≈ V ^ ( o R A ) . (15) V_{RA}^{\pi_{Agile}}(s) \approx \hat{V}(o_{RA}). \tag{15} VRAπAgile(s)V^(oRA).(15)

基于式(5),我们通过梯度下降最小化每个片段的如下损失:

L = 1 T ∑ t = 1 T ( V ^ ( o R A , t ) − V ^ t a r g e t ) 2 , (16) L=\frac{1}{T}\sum_{t=1}^T(\hat{V}(o_{RA,t})-\hat{V}_{target})^2, \tag{16} L=T1t=1T(V^(oRA,t)V^target)2,(16)

其中

V ^ t a r g e t = γ R A max ⁡ { ζ ( s t ) , min ⁡ { l ( s t ) , V ^ o l d ( o R A , t + 1 ) } } + ( 1 − γ R A ) max ⁡ { l ( s t ) , ζ ( s t ) } , (17) \begin{aligned} \hat{V}_{target} = \gamma_{RA}&\max\{\zeta(s_t),\min\{l(s_t),\hat{V}_{old}(o_{RA,t+1})\}\} \\ & + (1-\gamma_{RA})\max\{l(s_t),\zeta(s_t)\}, \end{aligned} \tag{17} V^target=γRAmax{ζ(st),min{l(st),V^old(oRA,t+1)}}+(1γRA)max{l(st),ζ(st)},(17)

我们设置折扣因子 γ R A = 0.999999 \gamma_{RA}=0.999999 γRA=0.999999 以最佳地逼近 R A π ( Θ ; F ) RA^{\pi}(\Theta;F) RAπ(Θ;F),因为当 γ R A \gamma_{RA} γRA 接近1时, V R A π ( s ) V_{RA}^\pi(s) VRAπ(s) 收敛到 V R A π ∗ ( s ) V_{RA}^{\pi*}(s) VRAπ(s) V ^ o l d \hat{V}_{old} V^old 指代上一次迭代的 V ^ \hat{V} V^,我们设置 V ^ o l d ( o R A , T + 1 ) = + ∞ \hat{V}_{old}(o_{RA,T+1})=+\infty V^old(oRA,T+1)=+

为了学习与敏捷策略相关的RA值,作者没有直接学习全局RA值,而是训练了一个神经网络 V ^ \hat{V} V^ 来拟合策略相关的RA值。该网络的输入是一组简化的观测 o R A o_{RA} oRA,包括机器人速度、目标位置和外部感知特征,它们与安全性和目标到达高度相关。

网络的训练采用了监督学习的方式,通过最小化真实值与目标值(式17)间的均方误差(式16)来进行。目标值根据RA值的Bellman方程(式5)来计算。

与文献不同,本文学习的是策略相关的RA值,而不是整个系统动力学的全局RA值。这避免了需要对动作空间进行优化的复杂性。此外,策略相关的RA值学习可以采用两阶段的离线方式,即先收集数据,再拟合RA值,更加稳定。

与文献不同,我们的方法学习以策略为条件的可达-避免值,而不是解决与整个系统动力学相关的、策略无关的全局可达-避免值,后者涉及在动作空间 A A A 上求解另一个最小值问题。我们的方法提供了几个优势:1)简单性:如式(5)中突出显示的,这种简单性源于避免了需要在整个动作空间中求解下一个状态的最小值。2)两阶段离线学习:我们的方法可以通过两阶段离线方式学习。这涉及首先收集策略轨迹,然后训练以策略为条件的可达-避免值。与文献中提出的在线训练方法相比,这种两阶段过程增强了稳定性。

B. 实现

根据文献,为了理论保证, l ( s ) l(s) l(s) ζ ( s ) \zeta(s) ζ(s) 应该是Lipschitz连续的。在我们的实现中,我们将 l ( s ) l(s) l(s) 定义为

l ( s ) = tanh ⁡ log ⁡ d g o a l σ t i g h t , (18) l(s) = \tanh\log\frac{d_{goal}}{\sigma_{tight}}, \tag{18} l(s)=tanhlogσtightdgoal,(18)

从而使其Lipschitz连续,将其限制在(-1,1)内,并将 d g o a l ≤ σ t i g h t d_{goal}\leq\sigma_{tight} dgoalσtight 设置为"到达"。

关于失败,我们自然有

ζ ( s ) = 2 ∗ 1 ( undesired collision ) − 1. (19) \zeta(s) = 2*\mathbf{1}(\text{undesired collision})-1. \tag{19} ζ(s)=21(undesired collision)1.(19)

然而,这个定义违反了Lipschitz连续性。因此,我们以事后的方式软化该函数:当发生undesired collision时,最后10个时间步的 ζ \zeta ζ 值被重新标记为-0.8,-0.6,…,0.8,1.0。

对于RA数据集采样,我们使障碍物分布与训练敏捷策略时的最高难度相同。我们用训练好的敏捷策略进行200k个片段的仿真,并收集这些轨迹用于RA学习。
在这里插入图片描述

图4可视化了针对一组特定障碍物学习到的RA值。随着机器人速度的变化,RA值的形态也相应地变化。RA值的符号可以合理地指示敏捷策略的安全性。

在RA值的具体实现中,作者采用了一些技巧来满足理论要求,并提高学习效果:

  1. 将目标指示函数 l ( s ) l(s) l(s) 设计为与目标距离的对数相关,并进行tanh变换,使其满足Lipschitz连续性,并将值域限制在(-1,1)。
  2. 将碰撞指示函数 ζ ( s ) \zeta(s) ζ(s) 软化,即当碰撞发生时,将前一段时间的 ζ \zeta ζ 值进行渐变标记,而不是直接设为1。这个技巧虽然破坏了Lipschitz连续性,但可以提高学习效果。
  3. 在收集训练数据时,障碍物的分布与训练敏捷策略时的最高难度设置相同,以获得更有代表性的数据。

作者还可视化了学习到的RA值,它可以合理地反映不同状态下敏捷策略的安全程度,验证了学习的有效性。RA值的分布也随机器人速度而变化,体现了RA值与策略的相关性。

C. 使用RA值进行恢复

RA值提供了一个以敏捷策略为条件的故障预测,我们建议使用RA值来指导恢复策略。具体而言,机器人使用RA值函数决定最优twist以避免碰撞,并采用恢复策略来跟踪这些twist指令。当且仅当 V ^ ( o R A ) ≥ V t h r e s h o l d \hat{V}(o_{RA})\geq V_{threshold} V^(oRA)Vthreshold时,恢复策略作为备份的屏蔽策略被触发。我们设置 V t h r e s h o l d = − 0.05 V_{threshold}=-0.05 Vthreshold=0.05以补偿学习误差,同时不会导致过于保守的屏蔽。

在恢复过程中,我们假设恢复策略训练良好,使得机器人的twist接近指令
t w c = [ v x c , v y c , 0 , 0 , 0 , ω z c ] , (20) tw_c=[v_x^c,v_y^c,0,0,0,\omega_z^c], \tag{20} twc=[vxc,vyc,0,0,0,ωzc],(20)
并且如果在给定目标和外部感知的情况下机器人的twist是安全的,机器人应该尽量接近目标。因此,twist指令通过如下优化获得:
t w c = arg ⁡ min ⁡ d g o a l f u t u r e s.t. V ^ ( [ t w c ; G x , y c ; R ] ) < V t h r e s h o l d , (21) tw_c = \arg\min d_{goal}^{future} \quad \text{s.t.} \quad \hat{V}([tw_c;G_{x,y}^c;R]) < V_{threshold}, \tag{21} twc=argmindgoalfutures.t.V^([twc;Gx,yc;R])<Vthreshold,(21)
其中 d g o a l f u t u r e d_{goal}^{future} dgoalfuture是指跟踪twist指令一小段时间 δ t = 0.05 s \delta t=0.05\text{s} δt=0.05s后到目标的近似距离。这是基于机器人基座中的线性化位移积分来计算的:

δ x = v x c δ t − 0.5 v y c ω z c δ t 2 , δ y = v y c δ t + 0.5 v x c ω z c δ t 2 . (22) \begin{aligned} \delta x &= v_x^c\delta t - 0.5v_y^c\omega_z^c\delta t^2, \\ \delta y &= v_y^c\delta t + 0.5v_x^c\omega_z^c\delta t^2. \end{aligned} \tag{22} δxδy=vxcδt0.5vycωzcδt2,=vycδt+0.5vxcωzcδt2.(22)
在这里插入图片描述

在实践中,当初始化为当前twist时,带有约束上的Lagrange乘子的梯度下降可以在5步内求解式(21),从而实现实时部署。图8给出了twist优化过程的可视化,其中搜索得到的twist始终满足安全约束(即 V ^ < V t h r e s h o l d \hat{V}<V_{threshold} V^<Vthreshold)。

RA值不仅预测了敏捷策略的失败概率,还可以用于指导恢复策略的行为。具体来说:

  1. 一旦RA值 V ^ ( o R A ) \hat{V}(o_{RA}) V^(oRA) 超过某个安全阈值 V t h r e s h o l d V_{threshold} Vthreshold,就触发恢复策略进行干预。 V t h r e s h o l d V_{threshold} Vthreshold 的设置需要在补偿学习误差和避免过度保守之间权衡。

  2. 恢复策略的目标是寻找一个速度指令 t w c tw_c twc,在保证安全的前提下尽量接近原目标。这可以表示为一个带约束的优化问题(式21)。其中安全约束即要求在给定指令下,RA值要低于阈值。

  3. 目标函数 d g o a l f u t u r e d_{goal}^{future} dgoalfuture 表示执行该指令一小段时间后,机器人预计与目标之间的距离。它可以通过简化的运动学模型(式22)来估计。

  4. 该优化问题可以通过梯度下降高效求解,满足实时性需求。图8直观展示了优化过程,搜索得到的指令可以很好地均衡安全性与任务目标。

本节巧妙地利用了RA值将安全性量化为一个连续可导函数,并据此构建了一个优化问题,使恢复策略具备了感知能力,可以动态规划轨迹。这体现了RA值的实用价值。

6. 学习恢复策略

恢复策略旨在使机器人尽快跟踪给定的twist指令,以便作为备份的屏蔽策略发挥作用,如第五节所述。

A. 观测空间和动作空间

恢复策略的观测空间与敏捷策略的不同之处在于,它跟踪twist指令,并且不需要外部感知。恢复策略的观测 o R e c o_{Rec} oRec 包括:足端接触状态 c f c_f cf、基座角速度 ω \omega ω、基座坐标系下的投影重力 g g g、twist指令 t w c tw_c twc(仅非零变量)、关节位置 q q q、关节速度 q ˙ \dot{q} q˙ 以及前一帧的动作 a a a

恢复策略的动作空间与敏捷策略完全相同:12维关节目标角度。我们也使用MLP作为策略网络。

B. 奖励

与敏捷策略类似,恢复策略的奖励函数也包括三部分:惩罚奖励、任务奖励和正则化奖励。正则化奖励和惩罚奖励保持不变,只是我们允许膝盖与地面接触以获得最大减速度。

任务奖励是用于twist跟踪的:

r t a s k = 10 ⋅ r l i n v e l − 0.5 ⋅ r a n g v e l + 5 ⋅ r a l i v e − 0.1 ⋅ r p o s t u r e , (23) r_{task} = 10\cdot r_{linvel} - 0.5\cdot r_{angvel} + 5\cdot r_{alive} - 0.1\cdot r_{posture}, \tag{23} rtask=10rlinvel0.5rangvel+5ralive0.1rposture,(23)

即一个用于跟踪 v x c v_x^c vxc v y c v_y^c vyc 的项,一个用于跟踪 ω z c \omega_z^c ωzc 的项,一个用于保持存活的项,以及一个用于维持姿态以便无缝切换回敏捷策略的项。

具体来说,我们有

r l i n v e l = exp ⁡ [ − ( v x − v x c ) 2 + ( v y − v y c ) 2 σ l i n v e l 2 ] , (24) r_{linvel} = \exp\left[-\frac{(v_x-v_x^c)^2+(v_y-v_y^c)^2}{\sigma_{linvel}^2}\right], \tag{24} rlinvel=exp[σlinvel2(vxvxc)2+(vyvyc)2],(24)

其中我们设置 σ l i n v e l = 0.5 m/s \sigma_{linvel}=0.5\text{m/s} σlinvel=0.5m/s。对于角速度,

r a n g v e l = ∥ ω z − ω z c ∥ 2 2 , (25) r_{angvel}=\|\omega_z-\omega_z^c\|_2^2, \tag{25} rangvel=ωzωzc22,(25)

它在指令附近提供了比 r l i n v e l r_{linvel} rlinvel 更软的形态。存活项简单地定义为

r a l i v e = 1 ⋅ 1 ( alive ) . (26) r_{alive}=1\cdot\mathbf{1}(\text{alive}). \tag{26} ralive=11(alive).(26)

姿态项为

r p o s t u r e = ∥ q − q ˉ r e c ∥ 1 , (27) r_{posture}=\|q-\bar{q}_{rec}\|_1, \tag{27} rposture=qqˉrec1,(27)

其中 q ˉ r e c \bar{q}_{rec} qˉrec 是一个高度较低的标称站立姿态,允许机器人无缝地切换回敏捷策略。

恢复策略的观测和动作空间与敏捷策略类似,主要区别在于:

  1. 观测中增加了需要跟踪的速度指令,移除了外部环境感知。
  2. 允许膝盖着地以实现急停。

恢复策略的奖励函数包括三部分:

  1. 任务奖励 r t a s k r_{task} rtask:
    • r l i n v e l r_{linvel} rlinvel:指数函数形式,鼓励线速度 v x , v y v_x,v_y vx,vy 快速跟踪指令。
    • r a n g v e l r_{angvel} rangvel:二次函数形式,鼓励角速度 ω z \omega_z ωz 跟踪指令,样式比线速度更平滑。
    • r a l i v e r_{alive} ralive:存活奖励,防止跌倒。
    • r p o s t u r e r_{posture} rposture:姿态奖励,使机器人保持一个便于切换回敏捷策略的站立姿态。
  2. 正则化奖励:与敏捷策略基本一致。
  3. 惩罚奖励:与敏捷策略基本一致。

综合来看,恢复策略的奖励设计注重快速稳定地执行速度指令,并为切换回敏捷策略做好准备。

C. 仿真训练

恢复策略的仿真训练设置与敏捷策略类似。不同之处在于:

  1. 域随机化:观测噪声和动力学随机化不变。片段长度改为2秒,初始横滚角和俯仰角按 U ( − π / 6 , π / 6 ) rad U(-\pi/6,\pi/6)\text{rad} U(π/6,π/6)rad 随机采样。初始 v x ∼ U ( − 0.5 , 5.5 ) m/s v_x\sim U(-0.5,5.5)\text{m/s} vxU(0.5,5.5)m/s,初始 ω ∼ U ( − 1.0 , 1.0 ) rad/s \omega\sim U(-1.0,1.0)\text{rad/s} ωU(1.0,1.0)rad/s。这些变化更好地适应了可能触发恢复策略的状态。指令采样范围为 v x c ∼ U ( − 1.5 , 1.5 ) m/s v_x^c\sim U(-1.5,1.5)\text{m/s} vxcU(1.5,1.5)m/s, v y c ∼ U ( − 0.3 , 0.3 ) m/s v_y^c\sim U(-0.3,0.3)\text{m/s} vycU(0.3,0.3)m/s,以及 ω z c ∼ U ( − 3.0 , 3.0 ) rad/s \omega_z^c\sim U(-3.0,3.0)\text{rad/s} ωzcU(3.0,3.0)rad/s

  2. 课程学习:地形和域随机化的课程仍然存在。然而,分配规则改变了:如果速度跟踪误差小于 0.7 σ l i n v e l 0.7\sigma_{linvel} 0.7σlinvel,机器人被提升;如果跌倒,机器人被降级。

恢复策略的仿真训练与敏捷策略大体类似,但在域随机化和课程学习方面有一些针对性的调整。

在域随机化方面:

  1. 缩短了训练片段的时长。
  2. 增大了初始状态(如速度、俯仰角)的随机化范围。
  3. 调整了指令的随机采样范围。

这些调整都是为了更好地模拟恢复策略实际介入时可能面临的状态,使策略训练更具针对性。

在课程学习方面,难度等级的调整规则也有变化:

  • 提升条件:速度跟踪误差较小(小于阈值的0.7倍)。
  • 降级条件:机器人跌倒。

可以看出,难度等级的调整更侧重考察恢复策略的核心目标——快速、稳定地执行速度指令的能力。

总之,恢复策略的训练在整体框架中对敏捷策略的训练做出了呼应,针对恢复策略的特定需求在细节上进行了调整和优化。

7. 感知

如第四节和第五节所述,敏捷策略和RA值网络都使用外部感知的11维射线距离作为观测的一部分,在训练期间可以访问它们的真值。这些射线从机器人基座水平射出,方向在 [ − π / 4 , π / 4 ] [-\pi/4,\pi/4] [π/4,π/4] 内均匀分布。

然而,在实际部署过程中,这种射线距离不能直接获得,我们需要训练一个射线预测网络从深度图像中预测它们,如第三节C所述。这种设计带来了以下好处:

  1. 我们只需要调整射线预测网络以通过数据增强来处理高维图像噪声。
  2. 表示是高度可解释的,允许人类进行监督。
  3. 具有低维输入的敏捷策略和RA值网络更容易训练。
  4. 与仿真中昂贵的图像渲染相比,射线距离很容易计算,节省了训练时间。

此外,尽管射线距离类似于稀疏的激光雷达读数,但我们使用相机而不是激光雷达,因为轻量级的低成本相机可以轻松达到高帧率,这在高速避障中很重要。

本节介绍射线预测网络训练的细节。

恢复策略的仿真训练与敏捷策略大体类似,但在域随机化和课程学习方面有一些针对性的调整。

在域随机化方面:

  1. 缩短了训练片段的时长。
  2. 增大了初始状态(如速度、俯仰角)的随机化范围。
  3. 调整了指令的随机采样范围。

这些调整都是为了更好地模拟恢复策略实际介入时可能面临的状态,使策略训练更具针对性。

在课程学习方面,难度等级的调整规则也有变化:

  • 提升条件:速度跟踪误差较小(小于阈值的0.7倍)。
  • 降级条件:机器人跌倒。

可以看出,难度等级的调整更侧重考察恢复策略的核心目标——快速、稳定地执行速度指令的能力。

总之,恢复策略的训练在整体框架中对敏捷策略的训练做出了呼应,针对恢复策略的特定需求在细节上进行了调整和优化。

A. 数据收集

为了训练我们的射线预测网络,我们通过在仿真中运行敏捷策略来收集深度图像和射线距离的配对数据集(如图2(a)所示)。然后可以以监督的方式训练射线预测网络。为了便于泛化,如图5所示,我们在数据收集过程中用不同形状的物体替换了圆柱体。

B. 用于sim-to-real迁移的数据增强

在这里插入图片描述

从相机收集的真实深度图像远比仿真中渲染的深度图像嘈杂。为了使射线预测网络更好地适应真实世界的深度图像,我们在训练过程中应用了四种数据增强技术,如图6所示:1)水平翻转;2)随机擦除;3)高斯模糊;4)高斯噪声。为了部署,我们应用了holefilling来进一步减少仿真和真实世界深度图像之间的差距。

C. 其他实现细节

为了使网络更加关注近处的障碍物,我们将深度值的对数作为NN输入,将射线距离的对数作为输出,均方误差作为损失函数。

我们微调了具有预训练权重的ResNet-18来训练模型。图像在仿真和部署过程中都被下采样到[160,90]分辨率。

在前面章节中,作者提到敏捷策略和RA网络都使用一个射线距离特征作为观测的一部分。这个特征在仿真训练中可以直接获得真值,但在实际部署时需要从相机深度图像中估计得到。

为此,作者训练了一个射线预测网络,以监督学习的方式将深度图像映射到射线距离。这种做法有几点好处:

  1. 将感知问题与其他模块解耦,感知模块只需关注如何提高对真实传感器数据的鲁棒性。
  2. 射线距离特征直观可解释,便于人工检查和监督。
  3. 简化了其他模块的训练,它们只需处理低维输入。
  4. 在仿真中合成射线数据比渲染图像更高效。

尽管射线距离在形式上类似于激光雷达,但作者选择了相机作为感知硬件,以获得更高的采样频率,这对高速场景下的避障很重要。

在射线预测网络的训练中,作者采取了几个关键措施:

  1. 数据收集:在仿真中执行敏捷策略,并将观测到的深度图与射线真值配对,获得训练数据。数据收集时在环境中放置了多种形状的障碍物,以促进泛化。
  2. 数据增强:真实图像通常比仿真图像噪声更大,因此作者在训练时对深度图像进行了多种随机扰动,包括翻转、擦除、模糊、加噪等。这样可以缩小sim-to-real的差距。
  3. 网络结构:作者微调了预训练的ResNet18网络。为了使网络集中注意力在近处障碍物上,输入输出分别取对数。

综上,射线预测网络承担了从原始传感器信号中提取紧凑、鲁棒特征表示的任务,是连接感知与决策的重要一环。作者的训练和部署方法有助于提高该模块对真实环境的适应性。

8. 实验

A. 基线

对于实验结果,我们考虑三种设置:

  1. 我们的ABS系统,同时具有敏捷策略和恢复策略;
  2. 仅使用我们的敏捷策略 π A g i l e \pi_{Agile} πAgile;
  3. “LAG”:我们使用PPO-Lagrangian以敏捷策略的公式训练端到端的安全RL策略。

通过比较(2)和(3),我们可以看到在没有外部模块的情况下,敏捷性和安全性如何权衡,形成了敏捷性和安全性的边界。在RA值和恢复策略的帮助下,我们期望(1)能够以高安全性增益打破这一边界:在安全情况下,它应该与(2)一样敏捷,在危险情况下,它应该保护机器人。

需要注意的是,这里的三种设置都是基于我们提出的方法。第九节A1中给出了我们的敏捷策略与之前SOTA敏捷奔跑策略的详细比较。

B. 仿真实验

1) 定量结果

我们在仿真中测试了用不同设置训练的策略。为了更好地显示敏捷性-安全性边界,我们为每个设置引入3个变体:一个激进的(“-a”)使敏捷奖励项 r a g i l e r_{agile} ragile 加倍,一个名义上的(“-n”),和一个保守的(“-c”)将 r a g i l e r_{agile} ragile 减半。关于障碍物,我们在5.5m×4m的矩形区域内分布8个障碍物(训练期间是11m×5m),所以测试用例在分布内但比训练期间的大多数情况都要困难得多。
在这里插入图片描述

结果如表3和图7所示。一个片段有三种可能的结果:成功、碰撞或超时。在片段长度内没有触发成功或碰撞标准的轨迹被标记为"超时"。我们报告成功率、碰撞率、超时率、成功案例的平均峰值速度以及成功案例的平均速度作为指标。对于每个设置,在3个不同种子训练的策略上计算平均值和标准差,并通过测试10k个随机片段获得指标。

结果表明,无论奖励权重如何调整,或RL算法是否受到安全探索的约束,敏捷性和安全性都在一个边界内进行权衡。然而,在我们的RA值和恢复策略的保障下,我们可以打破这一边界,以牺牲轻微的敏捷性降低为代价,获得安全性的大幅提升。

需要注意的是,这里引入变体只是为了展示边界。在以下部分中,我们将只使用名义上的变体。

2) 示例案例

我们展示了一个ABS和其他基线在仿真中的示例案例,其中机器人从(0,0)出发需要通过8个障碍物到达目标(7,0),如图8所示。机器人需要先通过一个开放空间,然后是两个狭窄空间,最后是另一个开放空间。在这种情况下,基线 π A g i l e \pi_{Agile} πAgile 跑得很快,但在第二个狭窄空间附近发生碰撞。基线LAG比ABS慢得多。相比之下,我们提出的ABS在开放空间中快速运行,在狭窄空间中因为RA值和恢复策略的屏蔽而减速以保证安全。图8©展示了触发恢复策略时的RA值关于twist指令的形态,其中搜索得到的twist始终满足安全约束(即 V ^ < V t h r e s h o l d \hat{V}<V_{threshold} V^<Vthreshold)。

作者首先介绍了三种实验设置:完整的ABS系统、单独的敏捷策略、使用Lagrangian方法训练的端到端安全策略(LAG)。通过比较后两者,可以揭示在没有外部安全模块时,策略在敏捷性和安全性之间的权衡边界。作者希望ABS系统能打破这一边界,在保证安全的同时最大限度地发挥敏捷性。

在定量实验中,作者为每种设置设计了激进、名义、保守三个变体,以更全面地刻画性能边界。实验在仿真环境中进行,障碍物设置比训练时更密集,构成了分布内但更具挑战性的测试集。实验结果证实,在普通RL框架下,敏捷性和安全性难以兼得,但ABS系统可以极大地提升安全性,且只牺牲了轻微的敏捷性。

作者还呈现了一个示例场景的可视化分析。该场景要求机器人通过开阔和狭窄交替的区域到达目标。ABS表现出了理想的行为:在开阔区域全速前进,在狭窄区域适当减速保证安全,整体完成任务所需时间最短。单独的敏捷策略虽然速度更快,但在狭窄空间发生碰撞;LAG策略虽然也能完成任务,但速度明显慢于ABS。作者也可视化了ABS中RA值关于速度指令的形态,直观展现了该模块对不同动作选择的安全性评估。

综合这些实验,可以看出ABS系统能很好地权衡和调节敏捷性与安全性,较好地完成了高速避障导航任务。作者的分析也揭示了其中RA值和恢复策略发挥的关键作用。

C. 真实世界实验

1) 硬件设置

我们使用Unitree Go1进行实验。该机器人配备了一个Jetson Orin NX用于机载计算,一个ZED Mini立体相机用于深度和里程计感知。我们使用ZED里程计模块在线更新敏捷策略的相对目标指令,并用其差分作为速度估计。我们使用Unitree内置的PD控制器,其中 K p = 30 K_p=30 Kp=30, K d = 0.65 K_d=0.65 Kd=0.65

2) 结果

在这里插入图片描述

通过两个室内和一个室外测试平台,ABS展现了卓越的整体性能,如图9所示,实现了最高的成功率和最低的碰撞率。具体而言,ABS在所有环境中的成功率始终为9或10(满分10分),且碰撞次数最少,表明了在现实世界中的稳健性和可靠性。

在没有安全屏障的情况下,敏捷策略 π A g i l e \pi_{Agile} πAgile 以更多碰撞为代价实现了最快的运行速度。LAG在安全性方面优于 π A g i l e \pi_{Agile} πAgile,但速度较慢,在安全性和敏捷性方面都不如ABS。ABS实现了高速和高安全性,并能泛化到动态障碍,如图1所示。

3) 稳健性

在这里插入图片描述

我们的ABS系统可以在湿滑的冰雪上工作,承载12kg的有效载荷(相当于它自身的重量),并能承受扰动,如图10所示。这些测试证明了我们系统的稳健性。

在真实机器人平台上,作者进行了全面的测试,涵盖了室内外多个场景,验证了ABS系统的实际性能。

首先,作者介绍了硬件设置。实验使用Unitree Go1四足机器人,它搭载了NVIDIA Jetson Orin NX嵌入式系统作为机载计算平台,以及ZED Mini立体相机作为深度和里程计传感器。控制管线包括:用视觉里程计持续更新目标位置指令并估计当前速度,用PD控制器执行关节角度指令。

实验结果显示,ABS系统在所有测试场景中都取得了优异的成功率和最低的碰撞率。单独的敏捷策略虽然速度最快,但碰撞次数也最多。LAG策略虽然在安全性上优于敏捷策略,但在速度上明显慢于ABS。唯有ABS能在保证高安全性的同时也能高速运动,并能应对动态障碍。

此外,ABS还表现出了极强的环境适应性和鲁棒性。实验显示它能在湿滑的冰雪路面上稳定工作,能在满载(12kg)状态下正常运转,也能在外界扰动下维持平衡。这些能力对实际应用至关重要。

综上,真实世界实验充分证明了ABS系统不仅性能卓越,而且具备实用所需的环境适应能力,展现了其实际应用前景。这归功于作者在系统设计中对鲁棒性的重点考虑,以及在训练中采用的domain randomization等技术。

9. 广泛的研究和分析

A. 最大化敏捷性

1) 目标追踪 v.s. 速度追踪

速度追踪是最常用的运动控制器公式,也被我们的恢复策略所采用。然而,对于敏捷策略,我们认为目标追踪是一个更好的选择,因为它不会将运动和导航解耦以进行避障,并且可以充分发挥所学的敏捷性。此外,我们根据经验发现,目标追踪公式有利于sim-to-real迁移,因为它为高速运行找到了更好的步态模式。

以SOTA敏捷速度追踪策略(简称为"rapid")为基准,我们在表4中进行了详细比较。为了公平比较,我们用我们的正则化奖励和文献中的任务奖励的组合来训练"rapid",对两个策略使用相同的动作空间,并移除了文献中的时间信息和系统辨识。

2) Illusion和ERFI-50随机化的影响

在这里插入图片描述

我们在域随机化中添加的两个关键组件是illusion和ERFI-50。如图11所示,没有illusion,机器人有时会在墙边颤抖,这在仿真中从未见过。没有ERFI-50,机器人会在奔跑时因为电机动力学的sim-to-real差异而用头撞地。

作者进一步分析了目标追踪公式相比速度追踪公式在本问题上的优势:

  1. 目标追踪公式将运动规划与避障控制有机结合,避免了两者解耦造成的保守;
  2. 目标追踪公式能更充分发挥通过学习获得的奔跑能力;
  3. 目标追踪公式学到的步态模式在实际中表现更佳,有利于sim-to-real迁移。

作者将自己的敏捷策略与此前SOTA的速度追踪策略进行了详细对比实验,在控制变量的前提下,前者的性能全面占优。

作者还特别强调了两个domain randomization技术的重要性:

  • Illusion:通过在射线观测中加入随机噪声,提高策略对未知障碍的鲁棒性。如果训练时没有该项,实际中机器人会面对墙壁时发抖。
  • ERFI-50:通过在动力学中加入随机扰动,缩小仿真和真实执行器的差异。如果训练时没有该项,实际中机器人会因动力响应的偏差而跌倒。

这些结果表明,作者提出的目标追踪公式和domain randomization技术,对于学习高速避障策略并将其迁移到实际机器人上发挥了关键作用。

B. 关于RA值的广泛研究

1) 选择安全阈值

对于安全屏蔽,我们选择 V t h r e s h o l d = − 0.05 V_{threshold}=-0.05 Vthreshold=0.05。理论上,该阈值体现了切换策略的保守程度以及真实可达-避免值与其学习近似之间的差异。然而,我们的框架展现出对 V t h r e s h o l d V_{threshold} Vthreshold 选择的稳健性,如表6所示,将 V t h r e s h o l d V_{threshold} Vthreshold 从-0.001扫描到-0.1,整体性能没有显著变化。对于一个较大的值(考虑到 V ^ \hat{V} V^ 的界为-1和1,0.1被认为是大的),碰撞率如预期般略有下降,而成功率也略有下降。

2) 失败指示函数的软Lipschitz连续性

在文献中,Lipschitz连续性被用于证明值函数解的存在性和唯一性。在我们的论文中,我们软化了离散的碰撞指示函数以接近Lipschitz连续性,并在此研究其影响。如表5所示,这一技术极大地提高了我们系统的安全性,同时略微增加了保守性,证实了图4中的观察结果。

3) RA值是否可以屏蔽LAG基线

鉴于我们的框架在用RA值和恢复策略屏蔽目标追踪策略方面具有通用性,它也可以屏蔽LAG基线,构成了一个带成本评判家的ABS变体。我们在表7中展示了屏蔽后LAG的结果,尽管敏捷性略有降低,但安全性相比LAG有所提高。LAG+RA设置仍然可以达到>1m/s的平均速度,表明了我们ABS框架相比现有工作的优势。

C. 提升感知训练

在完善射线预测网络训练的过程中,我们系统地检查了几个因素:1)网络架构,2)预训练权重,以及3)数据增强。比较结果详见表8,强调了预训练权重和数据增强在提高网络精度方面的重要性。

关于网络规模,更大的网络可以提高预测精度,但代价是推理时间增加。请注意,表8中报告的推理时间是在Jetson Orin NX上专门针对感知推理测量的。在实际部署中,计算资源在多个任务之间共享,实际更新频率可能会大大降低。对于实时高速运动,我们选择ResNet-18,在动态环境中平衡了准确性和响应性。

在关于RA值的拓展研究中,作者重点讨论了三个问题:

  1. 安全阈值 V t h r e s h o l d V_{threshold} Vthreshold 的选择:实验表明,ABS系统对阈值的细微变化具有稳健性,性能没有显著差异。当阈值设得较高时,碰撞率会如预期般下降,但成功率也会略微下降。
  2. 失败指示函数 ζ ( s ) \zeta(s) ζ(s) 的软化处理:理论分析通常假设该函数是Lipschitz连续的。作者尝试用一种软化的渐变指示函数来接近该性质。结果表明,该技术可以极大提升系统安全性,且只牺牲轻微的灵活性,是一个有效的折中。
  3. 用RA值屏蔽LAG策略的效果:作者将自己的RA值和恢复策略与LAG策略相结合,构成一个新的变体LAG+RA。实验表明,该变体在保留LAG敏捷性的同时,安全性得到了提升,整体性能优于原始LAG和大多数现有方法。这也侧面说明了作者提出的ABS框架具有一定的通用性。

关于提升感知模块性能,作者主要探索了三个方面:

  1. 网络结构:更大的网络往往可以提高精度,但推理时间也会增加。权衡精度和实时性,作者最终选择了ResNet18。
  2. 预训练权重:实验表明,使用预训练权重可以显著提升精度。这很可能是因为射线长度预测任务与传统视觉任务有一定相关性,因此视觉backbone的预训练权重可以提供一个很好的初始化。
  3. 数据增强:通过在深度图上应用多种数据增强方法,可以进一步提高精度。这些方法模拟了真实传感器的噪声和失真,有助于缩小sim-to-real的差距。

综上,作者通过大量的消融实验和比较分析,系统考察了ABS框架的多个设计细节,并给出了经验性的最佳实践,这些讨论对解决类似问题具有一定的指导意义。

D. 通过指令实现即时转向

如第四节所述,我们甚至可以在运行时改变目标指令。得益于我们的单帧观测和随机化设置,我们可以很容易地覆盖目标指令以实现即时敏捷转向,如表9所示。这实现了类似于速度追踪公式的直接人工参与,图12展示了在真实世界中的此类操作。
在这里插入图片描述

E. 失败情况和局限性

首先,当障碍物过于密集并形成局部最小值时,我们的策略很容易失败,这也反映在结果中较高的超时率上。不过这在局部导航规划器中很常见,一个潜在的解决方案是添加记忆或引入全局提示。

其次,我们对动态环境的泛化归功于RA值和恢复策略的屏蔽。RA值是用静态障碍物学习的,只能泛化到准静态环境。如果动态物体移动速度超过恢复策略的速度限制,可能会发生碰撞。一个潜在的解决方案是预测障碍物的未来运动。

第三,我们将机器人行为限制在只有2D运动,并限制运动没有飞行阶段。对于台阶和缝隙等3D地形,问题可能要复杂得多,因为运动技能和避障是耦合的。

第四,隐式系统辨识技术可以利用时间信息来表示真实世界的动力学并促进sim-to-real迁移,但将它们纳入我们的系统并非易事。这需要对时间信息进行潜在嵌入,这对RA模块来说很难处理。策略切换也可能使策略的嵌入超出分布。

第五,视觉系统需要进一步改进。在室内(a)测试平台,ABS唯一的碰撞是由于射线预测网络"检测不到"物体,因为走廊很暗。除了网络之外,系统还可以通过在身体周围添加更多相机来完善。这样,机器人也可以躲避从后面或侧面来的障碍物。事件相机在高度动态的场景中也可能有所帮助,例如躲避高速球时。

在即时控制方面,得益于所学策略的单帧反应能力和良好的泛化性,ABS系统可以通过实时调整目标指令来灵活控制机器人,类似于基于速度追踪的方法,但却能达到更高的速度。这使得人类可以直接参与机器人的运动控制。作者在实际机器人上验证了该能力,并给出了一些直观的案例。

尽管ABS系统已经展现出了优秀的性能,但它仍存在一些局限和有待改进之处,主要包括:

  1. 在极度复杂的环境中,策略可能会困于局部最小值而无所适从。这主要是由局部规划的天然局限导致的。潜在的解决思路包括赋予策略记忆能力,以及融合全局信息。
  2. 对动态物体的鲁棒性有限。当物体速度超出恢复策略的能力范围时,碰撞仍可能发生。一种思路是尝试预测障碍物的运动。
  3. 策略目前只能应对2D运动,缺乏对高差地形的处置能力。在3D环境中,控制与规划的耦合更加紧密,问题的复杂度将急剧上升。
  4. 尚未很好地利用隐式系统辨识技术。这类技术可以通过时序信息来捕获真实环境的特性,有助于提高迁移性能。但它们与当前管线的耦合并不简单。
  5. 感知系统有待完善。在光照不足时,视觉里程计和射线预测可能失效,导致碰撞。拓展传感器种类和配置可能是一个出路。另外,当障碍物速度很快时,事件相机可能是一个有益的补充。

这些局限性为后续工作指明了重要的发展方向。不过总的来说,ABS系统在高速避障领域已经取得了重要突破,展现出该方向的广阔前景。

10. 总结

在本文中,我们实现了四足机器人在杂乱环境中的安全高速移动。我们的框架ABS采用双策略结构,其中敏捷策略使机器人能够快速奔跑,恢复策略保护机器人的安全。学习到的可达-避免值控制策略切换并指导恢复策略。一个射线预测网络为敏捷策略和RA值网络提供外部感知表示。一些关键要点是:

  1. 高超的敏捷性:现有工作中运动和导航的解耦限制了无碰撞运动的敏捷性。相比之下,我们训练一个端到端的敏捷策略,采用局部导航公式,在避障的同时充分发挥敏捷性。

  2. 安全保障的敏捷性:敏捷策略并不保证安全性,而使用Lagrange RL或调整奖励权重只能在敏捷性和安全性之间进行权衡。在本文中,我们使用外部屏蔽模块来帮助打破这一权衡边界。

  3. 无模型安全性:基于模型的方法通过约束显式地强制安全性,但难以应对复杂动力学和高维状态。在本文中,我们以模型无关的方式学习RA值,并将其与策略相关联以简化学习,并通过策略的离线数据进行学习。

  4. 引导恢复:设计一个恢复策略以在各种障碍物分布和状态下保护机器人免于潜在碰撞是非平凡的。在本文中,我们用RA值及其梯度引导恢复策略,以确保安全性。

  5. 从感知到运动:视觉输入是高维且嘈杂的,而我们期望高效学习鲁棒控制器。为此,我们使用低维外部感知表示来促进策略学习和泛化,并训练一个射线预测网络将原始深度图像映射到该表示。

本文提出了一种名为ABS的四足机器人高速避障系统。该系统采用双策略架构:一个注重速度的敏捷策略负责常规运动控制,一个注重安全的恢复策略负责处理紧急情况。两个策略通过学习得到的可达-避免(RA)值函数来协调切换。

与常见的分层导航方法相比,端到端训练的敏捷策略可以更充分地利用学到的运动能力。而RA值函数和恢复策略的引入,则有效规避了单纯追求速度的策略面临的安全隐患。这种双策略+RA值的架构,在敏捷性和安全性之间达成了一个超越常规方法的新平衡。

与基于模型的避障方法相比,本文采用无模型强化学习,通过域随机化等技术来提高策略和值函数的泛化性与鲁棒性。策略学习与RA值学习相互解耦,两者可以专注于各自的目标。同时,作者还创新性地利用RA值的梯度信息来引导恢复策略的优化,进一步强化了安全保障。

在感知方面,作者采用了射线距离这一紧凑的中间表示,通过神经网络学习从原始传感器信息中提取该特征。这使得策略学习可以专注于更高层的决策,而感知模块专注于应对真实环境的噪声和不确定性。

大量的仿真和实物实验表明,该系统在多种室内外场景下均展现出优异的避障能力和运动敏捷性,最高速度可达 3.1 m/s,且能够应对动态障碍。一些消融实验帮助作者确定了多个关键的设计选择。同时,作者也分析讨论了当前方案的局限性,如对极端环境的适应能力不足,对障碍物运动预测的缺乏等,为后续工作指明了重要的改进方向。

总的来说,本文在四足机器人的动态避障领域取得了重要突破,主要贡献包括新颖的双策略+RA值架构,面向安全的无模型强化学习范式,紧凑高效的感知表示等。这些技术思路,尤其是安全与敏捷并重的整体框架,有望为相关领域提供有益的参考和启发。当然,现有方案要真正应用于实际场景,还有不少关键问题有待攻克,需要学界持续的研究投入。以下是这篇论文中引用的所有参考文献:

[1] Fernando Acero, Kai Yuan, and Zhibin Li. Learning perceptual locomotion on uneven terrains using sparse visual observations. IEEE Robotics and Automation Letters, 7(4):8611–8618, 2022.

[2] Somil Bansal and Claire J Tomlin. Deepreach: A deep learning approach to high-dimensional reachability. In 2021 IEEE International Conference on Robotics and Automation (ICRA), pages 1817–1824. IEEE, 2021.

[3] Somil Bansal, Mo Chen, Sylvia Herbert, and Claire J Tomlin. Hamilton-jacobi reachability: A brief overview and recent advances. In 2017 IEEE 56th Annual Conference on Decision and Control (CDC), pages 2242–2253. IEEE, 2017.

[4] Shalabh Bhatnagar and K Lakshmanan. An online actor–critic algorithm with function approximation for constrained markov decision processes. Journal of Optimization Theory and Applications, 153:688–708, 2012.

[5] Gerardo Bledt, Matthew J Powell, Benjamin Katz, Jared Di Carlo, Patrick M Wensing, and Sangbae Kim. Mit cheetah 3: Design and control of a robust, dynamic quadruped robot. In 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 2245–2252. IEEE, 2018.

[6] Michael Bloesch, Christian Gehring, P´eter Fankhauser, Marco Hutter, Mark A Hoepflinger, and Roland Siegwart. State estimation for legged robots on unstable and slippery terrain. In 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems, pages 6058–6064. IEEE, 2013.

[7] Russell Buchanan, Lorenz Wellhausen, Marko Bjelonic, Tirthankar Bandyopadhyay, Navinda Kottege, and Marco Hutter. Perceptive whole-body planning for multilegged robots in confined spaces. Journal of Field Robotics, 38 (1):68–84, 2021.

[8] Luigi Campanaro, Siddhant Gangapurwala, Wolfgang Merkt, and Ioannis Havoutis. Learning and deploying robust locomotion policies with minimal dynamics randomization. arXiv preprint arXiv:2209.12878, 2022.

[9] Mo Chen, Sylvia Herbert, and Claire J Tomlin. Fast reachable set approximations via state decoupling disturbances. In 2016 IEEE 55th Conference on Decision and Control (CDC), pages 191–196. IEEE, 2016.

[10] Richard Cheng, G´abor Orosz, Richard M Murray, and Joel W Burdick. End-to-end safe reinforcement learning through barrier functions for safety-critical continuous control tasks. In Proceedings of the AAAI conference on artificial intelligence, volume 33, pages 3387–3395, 2019.

[11] Xuxin Cheng, Kexin Shi, Ananye Agarwal, and Deepak Pathak. Extreme parkour with legged robots. arXiv preprint arXiv:2309.14341, 2023.

[12] Jia-Ruei Chiu, Jean-Pierre Sleiman, Mayank Mittal, Farfod Farshidian, and Marco Hutter. A collision-free mpc for whole-body dynamic locomotion and manipulation. In 2022 International Conference on Robotics and Automation (ICRA), pages 4686–4693. IEEE, 2022.

[13] Gal Dalal, Krishnamurthy Dvijotham, Matej Vecerik, Todd Hester, Cosmin Paduraru, and Yuval Tassa. Safe exploration in continuous action spaces. arXiv preprint arXiv:1801.08757, 2018.

[14] Jared Di Carlo, Patrick M Wensing, Benjamin Katz, Gerardo Bledt, and Sangbae Kim. Dynamic locomotion in the mit cheetah 3 through convex model-predictive control. In 2018 IEEE/RSJ international conference on intelligent robots and systems (IROS), pages 1–9. IEEE, 2018.

[15] Yanran Ding, Abhishek Pandala, and Hae-Won Park. Real-time model predictive control for versatile dynamic motions in quadrupedal robots. In 2019 International Conference on Robotics and Automation (ICRA), pages 8484–8490. IEEE, 2019.

[16] Helei Duan, Bikram Pandit, Mohitvishnu S Gadde, Bart Jaap van Marum, Jeremy Dao, Chanho Kim, and Alan Fern. Learning vision-based bipedal locomotion for challenging terrain. arXiv preprint arXiv:2309.14594, 2023.

[17] Thomas Dudzik, Matthew Chignoli, Gerardo Bledt, Bryan Lim, Adam Miller, Donghyun Kim, and Sangbae Kim. Robust autonomous navigation of a small-scale quadruped robot in real-world environments. In 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 3664–3671. IEEE, 2020.

[18] Shamel Fahmi, Geoff Fink, and Claudio Semini. On state estimation for legged locomotion over soft terrain. IEEE Sensors Letters, 5(1):1–4, 2021.

[19] Davide Falanga, Kevin Kleber, and Davide Scaramuzza. Dynamic obstacle avoidance for quadrotors with event cameras. Science Robotics, 5(40):eaaz9712, 2020.

[20] Jaime F Fisac, Mo Chen, Claire J Tomlin, and S Shankar Sastry. Reach-avoid problems with time-varying dynamics, targets and constraints. In Proceedings of the 18th international conference on hybrid systems: computation and control, pages 11–20, 2015.

[21] Jaime F Fisac, Neil F Lugovoy, Vicenc¸ Rubies-Royo, Shromona Ghosh, and Claire J Tomlin. Bridging hamilton-jacobi safety analysis and reinforcement learning. In 2019 International Conference on Robotics and Automation (ICRA), pages 8550–8556. IEEE, 2019.

[22] Kunihiko Fukushima. Visual feature extraction by a multilayered network of analog threshold elements. IEEE Transactions on Systems Science and Cybernetics, 5(4): 322–333, 1969.

[23] Magnus Gaertner, Marko Bjelonic, Farbod Farshidian, and Marco Hutter. Collision-free mpc for legged robots in static and dynamic scenes. In 2021 IEEE International Conference on Robotics and Automation (ICRA), pages 8266–8272. IEEE, 2021.

[24] Siddhant Gangapurwala, Mathieu Geisert, Romeo Orsolino, Maurice Fallon, and Ioannis Havoutis. Rloc: Terrain-aware legged locomotion using reinforcement learning and optimal control. IEEE Transactions on Robotics, 38(5):2908–2927, 2022.

[25] Ruben Grandia, Farbod Farshidian, Alexey Dosovitskiy, Ren´e Ranftl, and Marco Hutter. Frequency-aware model predictive control. IEEE Robotics and Automation Letters, 4(2):1517–1524, 2019.

[26] Ruben Grandia, Fabian Jenelten, Shaohui Yang, Farbod Farshidian, and Marco Hutter. Perceptive locomotion through nonlinear model-predictive control. IEEE Transactions on Robotics, 2023.

[27] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 770–778, 2016.

[28] David Hoeller, Lorenz Wellhausen, Farbod Farshidian, and Marco Hutter. Learning a state representation and navigation in cluttered and dynamic environments. IEEE Robotics and Automation Letters, 6(3):5081–5088, 2021.

[29] David Hoeller, Nikita Rudin, Dhionis Sako, and Marco Hutter. Anymal parkour: Learning agile navigation for quadrupedal robots. arXiv preprint arXiv:2306.14874, 2023.

[30] Kai-Chieh Hsu, Vicenc¸ R´ubies Royo, Claire J. Tomlin, and Jaime F. Fisac. Safety and liveness guarantees through reach-avoid reinforcement learning. In Robotics: Science and Systems XVII, 2021.

[31] Kai-Chieh Hsu, Allen Z Ren, Duy P Nguyen, Anirudha Majumdar, and Jaime F Fisac. Sim-to-lab-to-real: Safe reinforcement learning with shielding and generalization guarantees. Artificial Intelligence, 314:103811, 2023.

[32] Jemin Hwangbo, Joonho Lee, Alexey Dosovitskiy, Dario Bellicoso, Vassilios Tsounis, Vladlen Koltun, and Marco Hutter. Learning agile and dynamic motor skills for legged robots. Science Robotics, 4(26):eaau5872, 2019.

[33] Intel. Embree Ray Tracing Library. https://www.embree.org/.

[34] Fabian Jenelten, Jemin Hwangbo, Fabian Tresoldi, C Dario Bellicoso, and Marco Hutter. Dynamic locomotion on slippery ground. IEEE Robotics and Automation Letters, 4(4):4170–4176, 2019.

[35] Fabian Jenelten, Ruben Grandia, Farbod Farshidian, and Marco Hutter. Tamols: Terrain-aware motion optimization for legged systems. IEEE Transactions on Robotics, 38(6):3395–3413, 2022.

[36] Fabian Jenelten, Junzhe He, Farbod Farshidian, and Marco Hutter. Dtc: Deep tracking control. Science Robotics, 9(86):eadh5401, 2024.

[37] Simar Kareer, Naoki Yokoyama, Dhruv Batra, Sehoon Ha, and Joanne Truong. ViNL: Visual Navigation and Locomotion Over Obstacles. In International Conference on Robotics and Automation (ICRA), 2023.

[38] Donghyun Kim, Daniel Carballo, Jared Di Carlo, Benjamin Katz, Gerardo Bledt, Bryan Lim, and Sangbae Kim. Vision aided dynamic exploration of unstructured terrain with a small-scale quadruped robot. In 2020 IEEE International Conference on Robotics and Automation (ICRA), pages 2464–2470. IEEE, 2020.

[39] Ashish Kumar, Zipeng Fu, Deepak Pathak, and Jitendra Malik. Rma: Rapid motor adaptation for legged robots. In Robotics: Science and Systems, 2021.

[40] Fr´ed´eric Large, Dizan Vasquez, Thierry Fraichard, and Christian Laugier. Avoiding cars and pedestrians using velocity obstacles and motion prediction. In IEEE Intelligent Vehicles Symposium, 2004, pages 375–379, 2004.

[41] Joonho Lee, Jemin Hwangbo, Lorenz Wellhausen, Vladlen Koltun, and Marco Hutter. Learning quadrupedal locomotion over challenging terrain. Science robotics, 5 (47):eabc5986, 2020.

[42] Zhongyu Li, Xue Bin Peng, Pieter Abbeel, Sergey Levine, Glen Berseth, and Koushil Sreenath. Robust and versatile bipedal jumping control through reinforcement learning. In Robotics: Science and Systems, 2023.

[43] Qingkai Liang, Fanyu Que, and Eytan Modiano. Accelerated primal-dual policy optimization for safe reinforcement learning. arXiv preprint arXiv:1802.06480, 2018.

[44] Qiayuan Liao, Zhongyu Li, Akshay Thirugnanam, Jun Zeng, and Koushil Sreenath. Walking in narrow spaces: Safety-critical locomotion control for quadrupedal robots with duality-based optimization. In 2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 2723–2730. IEEE, 2023.

[45] Minghuan Liu, Menghui Zhu, and Weinan Zhang. Goal-conditioned reinforcement learning: Problems and solutions. In Proceedings of the Thirty-First International Joint Conference on Artificial Intelligence, 2022.

[46] Yuntao Ma, Farbod Farshidian, and Marco Hutter. Learning arm-assisted fall damage reduction and recovery for legged mobile manipulators. In 2023 IEEE International Conference on Robotics and Automation (ICRA), pages 12149–12155. IEEE, 2023.

[47] Viktor Makoviychuk, Lukasz Wawrzyniak, Yunrong Guo, Michelle Lu, Kier Storey, Miles Macklin, David Hoeller, Nikita Rudin, Arthur Allshire, Ankur Handa, et al. Isaac gym: High performance gpu based physics simulation for robot learning. In Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track (Round 2), 2021.

[48] Gabriel B Margolis, Ge Yang, Kartik Paigwar, Tao Chen, and Pulkit Agrawal. Rapid locomotion via reinforcement learning. arXiv preprint arXiv:2205.02824, 2022.

[49] Matias Mattamala, Nived Chebrolu, and Maurice Fallon. An efficient locally reactive controller for safe navigation in visual teach and repeat missions. IEEE Robotics and Automation Letters, 7(2):2353–2360, 2022.

[50] Takahiro Miki, Joonho Lee, Jemin Hwangbo, Lorenz Wellhausen, Vladlen Koltun, and Marco Hutter. Learning robust perceptive locomotion for quadrupedal robots in the wild. Science Robotics, 7(62):eabk2822, 2022.

[51] Yashwanth Kumar Nakka, Anqi Liu, Guanya Shi, Anima Anandkumar, Yisong Yue, and Soon-Jo Chung. Chance-constrained trajectory optimization for safe exploration and learning of nonlinear systems. IEEE Robotics and Automation Letters, 6(2):389–396, 2020.

[52] NVIDIA Corporation. NVIDIA Warp repository. https://github.com/NVIDIA/warp.

[53] Alex Ray, Joshua Achiam, and Dario Amodei. Benchmarking safe exploration in deep reinforcement learning. https://openai.com/research/benchmarking-safe-exploration-in-deep-reinforcement-learning, 2019.

[54] Nikita Rudin, David Hoeller, Marko Bjelonic, and Marco Hutter. Advanced skills by learning locomotion and local navigation end-to-end. In 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 2497–2503. IEEE, 2022.

相关文章:

CMU最新论文:机器人智慧流畅的躲避障碍物论文详细讲解

CMU华人博士生Tairan He最新论文&#xff1a;Agile But Safe: Learning Collision-Free High-Speed Legged Locomotion 代码开源&#xff1a;Code: https://github.com/LeCAR-Lab/ABS B站实际效果展示视频地址&#xff1a;bilibili效果地址 我会详细解读论文的内容,让我们开始吧…...

Spring中自定义注解进行类方法增强

说明 说到对类方法增强&#xff0c;第一时间想到自定义注解&#xff0c;通过aop切面进行实现。这是一种常用做法&#xff0c;但是在某些场景下&#xff0c;如开发公共组件&#xff0c;定义aop切面可能不是最优方案。以后通过原生aop方式&#xff0c;自定义注解&#xff0c;对类…...

TS:元组

问: 解释下什么是元组 回答: 元组&#xff08;Tuple&#xff09;是一种数据结构&#xff0c;类似于数组&#xff0c;但与数组不同的是&#xff0c;元组中的元素类型可以各不相同&#xff0c;且元组的长度是固定的。元组在许多编程语言中都有实现&#xff0c;包括 TypeScript…...

微服务 | Springboot整合Dubbo+Nacos实现RPC调用

官网&#xff1a;Apache Dubbo 随着互联网技术的飞速发展&#xff0c;越来越多的企业和开发者开始关注微服务架构。微服务架构可以将一个大型的应用拆分成多个独立、可扩展、可维护的小型服务&#xff0c;每个服务负责实现应用的一部分功能。这种架构方式可以提高开发效率&…...

读书的意义

...

第66集《摄大乘论》

请大家打开《讲义》第二二二页&#xff1a; 庚九、念(分二&#xff1a;辛一正念法身&#xff1b;辛二兼显净土) 辛一、正念法身(分二&#xff1a;壬一征&#xff1b;壬二释) 壬一、征 这个是讲到十门分别(二0三页)&#xff0c;分别清净法身的第九段&#xff0c;讲到念&…...

VMware 桥接网络突然无法上网

VMware 桥接网络突然无法上网 0. 问题1. 解决方法 0. 问题 昨天&#xff0c;VMware 桥接网络正常使用&#xff0c;今天突然无法上网。 1. 解决方法 打开VMware的虚拟网络编辑器&#xff0c;将桥接模式的网络从“自动”改成你要使用的网卡&#xff0c;问题解决。 完成&#…...

面试题——Redis

★1.简述一下缓存穿透,缓存击穿,缓存雪崩 ? 缓存穿透:大量恶意请求一个不存在的数据,使得压力绕过Redis缓存层打到数据库,造成数据库瘫痪 处理:①设置黑名单,维护一个可能存在也可能不存在的黑名单数据列表,对请求进行过滤(简单高效) ②布隆过滤器,会出现误删,且相对麻烦(不…...

Java——构造器(构造方法)和 this

一、什么是构造器 构造器&#xff08;Constructor&#xff09;是Java类的一种特殊方法&#xff0c;用于初始化对象的状态。构造器在创建对象时被调用&#xff0c;可以对对象的成员变量进行初始化。 我之前的文章《Java——类和对象-CSDN博客》中也提到了构造器。 二、构造器…...

MySQL-连接查询

049-内连接之等值连接 案例&#xff1a;查询每个员工所在的部门名称&#xff0c;要求显示员工名、部门名。 select e.ename, d.dname from emp e inner join dept d on e.deptnod.deptno;注意&#xff1a;inner可以省略 select e.ename, d.dname from emp e join dept d on…...

适合小白学习的项目1832javaERP管理系统之仓库采购管理Myeclipse开发mysql数据库servlet结构java编程计算机网页项目

一、源码特点 java erp管理系统之仓库采购管理是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了serlvet设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Mye…...

分布式技术导论 — 探索分析从起源到现今的巅峰之旅(分布式技术)

分析探索从起源到现今的巅峰之旅 背景介绍数据可伸缩性案例 计算可伸缩性案例 代价和权衡分布式的代价分布式的权衡权衡策略 分布式技术方向数据系统运算系统 分布式数据系统Partition&#xff08;分区&#xff09;Round-Robin&#xff08;轮询&#xff09;局限性 Range&#x…...

基于Python+OpenCV+SVM车牌识别系统(GUI界面)【W3】

简介&#xff1a; 随着交通管理的日益复杂化和智能化需求的增加&#xff0c;车牌识别系统在安防、智慧交通管理等领域中扮演着重要角色。传统的车牌识别系统主要基于图像处理和模式识别技术&#xff0c;随着计算机视觉技术的发展&#xff0c;基于Python、OpenCV和机器学习算法的…...

ansible.cfg forks参数

在Ansible的配置文件ansible.cfg中&#xff0c;forks参数是一个非常关键的设置&#xff0c;它控制了Ansible执行任务时的并发连接数&#xff0c;直接影响到Ansible执行 playbook 或 ad-hoc 命令时的速度和效率。 意义与作用 并发控制&#xff1a;当你使用Ansible来管理多台主…...

Web前端写随机抽奖:技术与创意的碰撞

Web前端写随机抽奖&#xff1a;技术与创意的碰撞 在Web前端的世界里&#xff0c;随机抽奖功能不仅是一种常见的交互元素&#xff0c;更是技术与创意的完美结合。下面&#xff0c;我们将从四个方面、五个方面、六个方面和七个方面&#xff0c;深入探讨Web前端实现随机抽奖的技术…...

Centos系统yum安装mysql数据库

安装之前需要将系统自带的mariadb-libs软件包删除。 检查是否存在mariadb-libs包。 yum list installed|grep mariadb-libs 删除mariadb-libs包 yum -y remove mariadb-libs 声明&#xff1a; 系统&#xff1a;CentOS-7-x86_64-DVD-2009 安装为最小化安装&#xff0c;没…...

使用Selenium进行Web自动化:详细操作指南

使用Selenium进行Web自动化:详细操作指南 引言 Selenium是一个广泛使用的开源工具,用于自动化Web浏览器的操作。无论你是进行自动化测试,还是需要抓取网页数据,Selenium都是一个非常有用的工具。本文将详细介绍Selenium的一些常见用法,包括输入框设置值、文件上传、单选…...

手机照片免费数据恢复软件EasyRecovery2024免费版下载

大家好&#xff01;今天我要给大家推荐一款非常棒的软件——EasyRecovery。相信大家都知道&#xff0c;电脑中的重要文件一旦丢失&#xff0c;对我们的工作和学习都会产生很大的影响。 而EasyRecovery软件就是专门解决这个问题的利器&#xff01;它能够帮助我们快速、有效地恢…...

【工具】新手如何正确使用Pycharm?

1. 什么是JetBrains Toolbox JetBrains Toolbox是一个管理工具&#xff0c;用于安装、更新和管理JetBrains开发工具的所有版本。它可以简化多个IDE的管理&#xff0c;并确保你总是使用最新版本的软件。 2. 安装JetBrains Toolbox 步骤1&#xff1a;下载Toolbox 访问JetBrai…...

【JavaEE精炼宝库】多线程(6)线程池

目录 一、线程池的概念及优势 1.1 线程池的概念&#xff1a; 1.2 线程池的优势&#xff1a; 二、工厂模式 三、标准库中的线程池 3.1 标准库线程池参数解释&#xff1a; 3.1.1 corePoolSize | maximumPoolSize&#xff1a; 3.1.2 keepAliveTime | unit&#xff1a; 3.1…...

数据仓库和数据库的区别

数据仓库和数据库在许多方面存在显著的区别&#xff0c;主要体现在数据的用途、架构、设计原则和性能优化上。以下是两者之间的详细区别&#xff1a; 1. 目的和用途 数据库&#xff08;Database&#xff09;&#xff1a; 主要用途&#xff1a;用于日常业务操作和事务处理。数据…...

芯片验证分享7 —— 代码审查1

大家好&#xff0c;我是谷公子&#xff0c;前几节课给大家分享了如何设计激励&#xff0c;今天我们来如何进行代码审查。 之前讨论的是基于计算机的验证技术&#xff0c;现在讨论非基于计算机的验证过程(即“人工验证”&#xff0c;或代码审查)。代码审查在查找错误方面非常有…...

Shell脚本从入门到实战

一、概述 shell 是一个命令行解释器&#xff0c;它接受应用程序、用户命令&#xff0c;然后调用操作系统内核。 shell 还是一个功能强大编程语言&#xff0c;易调试&#xff0c;易编写&#xff0c;灵活性强。 二、mac 怎么重启docker 1.如何重启 Docker on Mac 在 macOS 上…...

使用 python 将 Markdown 文件转换为 ppt演示文稿

在这篇博客中&#xff0c;我们将展示如何使用 wxPython 创建一个简单的图形用户界面 (GUI)&#xff0c;以将 Markdown 文件转换为 PowerPoint 演示文稿。我们将利用 markdown2 模块将 Markdown 转换为 HTML&#xff0c;并使用 python-pptx 模块将 HTML 内容转换为 PowerPoint 幻…...

Arnoldi Iteration 思考

文章目录 1. 投影平面2. Arnoldi Iteration3. python 代码 1. 投影平面 假设我们有一个向量q,我们需要关于向量q&#xff0c;构建一个投影平面P&#xff0c;使得给定任何向量v,可以通过公式 p P v pPv pPv&#xff0c;快速得到向量v在投影平面P上的投影向量p. 计算向量内积,…...

【Kafka】SpringBoot整合Kafka详细介绍及代码示例

Kafka介绍 Apache Kafka是一个分布式流处理平台。它最初由LinkedIn开发&#xff0c;后来成为Apache软件基金会的一部分&#xff0c;并在开源社区中得到了广泛应用。Kafka的核心概念包括Producer、Consumer、Broker、Topic、Partition和Offset。 Producer&#xff1a;生产者&a…...

C++ 质数因子分解

描述 功能:输入一个正整数&#xff0c;按照从小到大的顺序输出它的所有质因子&#xff08;重复的也要列举&#xff09;&#xff08;如180的质因子为2 2 3 3 5 &#xff09; 输入描述&#xff1a; 输入一个整数 输出描述&#xff1a; 按照从小到大的顺序输出它的所有质数的…...

laravel版本≥ 8.1

laravel10 php ≥ 8.1 且 ≤ 8.3&#xff1f; 8.1 < php < 8.3PHP版本要求在 8.1 到 8.3 之间&#xff0c;包括这两个版本。具体来说&#xff1a;"≥ 8.1" 表示 PHP 的版本至少是 8.1&#xff0c;也就是说 8.1 及以上的版本都可以。 "≤ 8.3" 表示 P…...

【iOS】MRC下的单例模式批量创建单例

单例模式的介绍和ARC下的单例请见这篇&#xff1a;【iOS】单例模式 目录 关闭ARC环境MRC下的单例ARC下的单例批量创建单例Demo 关闭ARC环境 首先关闭ARC环境&#xff0c;即打开MRC&#xff1a; 或是指定某特定目标文件为非ARC环境&#xff1a; 双击某个类文件&#xff0c;指定…...

计算机网络期末复习

今天考专四&#xff0c;环境都蛮好的&#xff0c;试卷也很新&#xff0c;老师人也不错&#xff0c;明年再来。 又到期末考试咯&#xff0c;大家复习没有&#xff1f;还没复习啊&#xff1f;还不复&#xff1f;&#xff1f;&#xff1f;&#xff1f; 目录 第一章 1-02 试简述…...

企业做网站很重要么/跨境电商靠谱吗

文章目录0.目前情况&#xff1a;1.实现功能2.实现后&#xff1a;&#xff08;1&#xff09;注册&#xff1a;&#xff08;2&#xff09;登录1.代码目录2.代码&#xff1a;1.manifests.xml2.User.java3.ToastUtil.java4.LoginActivity.java5.RegisterActivity.java6.MySQLiteOpe…...

淄博网站建设网站推广优化/线在成都网站推广公司

微信小商店是小程序团队提供的一项新能力&#xff0c;可以帮助商家免开发、零成本、一键生成卖货小程序&#xff1b; 微信小商店包含商品信息发布、商品交易、订单和物流管理、营销、资金结算、客服与售后等电商经营基础功能模块&#xff0c;并内嵌直播功能&#xff1b;支持企业…...

常熟网站建设哪家好/上海培训机构排名榜

3.1 Caching模式 Caching&#xff08;缓存&#xff09;模式描述了如何通过用完资源后不立刻释放资源来避免对资源的昂贵的重新获取。资源会维持它们的标识&#xff0c;并保留在某种可以快速访问的存储器中。它们可以被重用&#xff0c;从而避免了重新获取。 1.问题 对相同资源的…...

在哪里可以免费做个人网站/产品推广建议

今天偶然想做FLEX里鼠标右键弹出菜单,但其实是很麻烦的,因为忘记了FLASH自己是有个鼠标右键菜单的,所以还是不动为秒, 但如果实在要动的话,也可以,转载之: 1.如果你是Desktop Application监听事件的MouseEvent.RIGHT_CLICK事件 比如对某个控件a进行监控右键点击事件 a.addEve…...

安贞网站建设公司/站长工具友链检测

注意事项请确保林的功能级别至少为 Windows Server 2008&#xff0c;并确保架构主机运行 Windows Server 2008 或更高版本。Windows Server 2012 和 Windows Server 2012 R2 的完全安装选项必须用于所有运行 Exchange 2016 服务器角色或管理工具的服务器。必须首先将计算机加入…...

ui网页界面设计素材/seo教程

一个日期时间显示框的美化风格示例&#xff0c;在网页上显示时间的一个美化示例&#xff0c;为时间显示框增加了一个漂亮的外框&#xff0c;这个外框是基于图片来美化的&#xff0c;&#xff0c;虽然现在都不主张用图片来美化了&#xff0c;不过看上去还真是挺漂亮的。www.srcf…...