ANYmal Parkour: Learning Agile Navigation for Quadrupedal Robots
ANYmal Parkour: Learning Agile Navigation for Quadrupedal Robots
- 研究动机
- 解决方案
- 技术路线
- 感知模块
- 运动模块
- 导航模块
- 补充
- 实验结果
ANYmal Parkour: Learning Agile Navigation for Quadrupedal Robots
研究动机
- 行走控制器不能依赖于稳定和周期性的步态,而必须根据手头的障碍物使用完全不同的动作,并根据需要与其四肢接触。
- 状态估计由于机器人各部分受到的高冲击力和接触容易出现严重的漂移。
- 环境感知困难,因为自遮挡和传感器的有限视野导致只能看到场景的一部分。
- 规划器需要对环境进行推理,理解机器人的运动和动态能力,了解其低级控制器的限制,以生成可行的轨迹。
- 系统中的任何延迟在快速运动时都可能是灾难性的。因此,必须尽量减少处理传感器数据和控制器推理的延迟。
解决方案
提出了一种在类似公园障碍跑的环境中使四足机器人进行敏捷导航的方法。基于最先进的地图构建、规划和运动方法,机器人被训练在环境中导航和移动,以到达特定的目标位置。限制分配的时间迫使机器人以高速完成课程并展示快速决策能力。pipeline分为三个相互连接的组件:感知、运动和导航模块。在这项工作中,使用基于位置的任务表述来训练运动技能。导航模块随后学习如何操控和在这些技能之间切换。
感知模块接收机载摄像头和 LiDAR 的点云测量,并计算机器人周围的地形估计以及表示场景信念状态的紧凑潜变量。运动模块包含可以克服特定地形的运动技能。对于这项工作,训练了五种策略,可以行走于不规则地形、跨越缺口、攀爬高障碍物上下,以及在狭窄通道中蹲下。
- 使用感知模块的潜变量,导航模块在环境中通过选择激活哪种技能并提供中间命令来指导运动模块。这些基于学习的模块都在仿真中进行训练。
- 从点云数据中重建 3D 环境。我们通过多分辨率方案来增强该方法,在机器人附近具有更高的分辨率,而在远处具有较低的分辨率以获得更大的场景视图。
设计了包含楼梯、倾斜表面、箱子、缺口和桌子的随机障碍场。虽然运动策略是在单一障碍上训练的,但感知和导航模块是在这些障碍场景中统一训练的。
技术路线
感知模块
开发了一种多分辨率方案,由两个在不同尺度上运行的网络组成。在机器人附近区域,地图较小且分辨率较高。更远的地方分辨率较低,因为更远的地方只需要场景的大致配置即可进行路径规划和策略选择。
编码器接收点云信息并将其压缩为紧凑表示,解压器根据编码器的结果生成一个输出,该输出补全确实的信息并进行噪声过滤。此外,粗分辨率网络得益于自回归反馈,其中上一帧的输出被转换为当前帧并与测量值进行拼接。这使得模块能够随着时间积累证据并重建不再可见的场景元素。
测量值首先转换为围绕机器人的体素网格。在每个被占用的体素中,特征描述了落入该体素内的点的质心位置。未被占用的体素的特征设置为0,然后,在密集体素网格上执行密集三维卷积。
解压器输出每个单元的体素占用概率以及质心位置。然后通过剪切占用概率低于用户定义阈值的单元来恢复重建的点云。
高分辨率网络使用粗分辨率网络最后一层的特征和点云测量值作为输入,不使用自回归反馈。
粗分辨率网络的目标是提供场景的概览。因此,使用体素大小为 12.5 cm ,结果生成了一个沿机器人每个轴的大小为 4 m 的地图。高分辨率体素的大小为 6.25 cm ,结果生成了一个大小为 2 m 的地图。
以无监督的方式从仿真数据中训练这些网络,总共训练了 2000 条轨迹,每条轨迹包含 100 个时间步。数据集在不同的场景中的占比平均分配。占用率输出使用二元交叉熵损失进行训练,而质心则使用欧几里得距离与真实值进行训练。同时进行数据增强,包括扰动点的位置、添加随机斑块、移除点的片段以及噪声化机器人的位置。
运动模块
运动模块给其他模块提供了调用底层运动技能的接口,以50Hz的频率运行。其中包含了一个技能列表,每个技能都是为特定的运动技能训练的,包含:行走、向上爬、向下爬、蹲下和跳跃。运动模块接收一个信号,指示要激活哪种技能。
在运动模块中,策略接收当前的本体感知、周围地形的局部地图、指令作为输入、输出位置命令给电机。这些技能分别进行训练,并具有相同的观测空间和动作空间,但需要不同的奖励形式和终止条件。此外,机器人必须在给定时间内达到目标位置,而不是跟踪速度命令。除了位置和时间命令外,额外添加航向目标,指明机器人在轨迹结束时必须遵循指定航向。此外,使用对称增强技术,以实现更稳健的策略。
虽然导航模块接收完整的3D地图表示,但由于其高更新率和相应的训练计算成本,这在运动策略中是不切实际的。采用机器人周围的2.5D高程图,该图可以直接从感知模块输出的点云中计算得到。为了弥合现实差距,在训练过程中,通过向单个点添加噪声并将地图在所有方向上向上移动7.5cm来扰动高程图。这迫使策略采用更安全的行为,并促进对地图重建中轻微缺陷的鲁棒性。
导航模块
导航模块引导机器人在地形上移动,以在指定时间内到达目标。
该网络采用强化学习的分层方式进行训练。 它由一个以5Hz频率运行导航策略的外环和一个以50Hz频率运行运动模块的内环组成。内环的运动策略在整个训练过程中被冻结。在每个高级时间步长内,导航策略会接收最终目标的相对位置、完成任务的剩余时间、机器人的基本速度、方向和感知模块的潜变量。然后,选择一种运动技能,并通过本地位置、航向和时间指令来引导后者。与运动策略的训练类似,采用了随时间变化的指令形式。 给定代理一个固定的时间来达到目标,而目标距离惩罚仅在每集的最后一个时间步激活。这种稀疏表述方式允许策略探索地形,寻找更安全的路径,并在需要时慢慢来。如果机器人摔倒或接触力过大,也会终止该进程。为了加快收敛速度,首先将全局目标放在靠近机器人起始位置的地方,然后随着奖励的增加,将它们移到地形上更远的地方。
为了适应这种需要,修改了PPO算法,并在Actor的多层感知器中增加了混合输出。最后一层的特征被分割成用于命令的高斯分布和用于技能激活的分类分布。分类分布为每个低级技能分配一个选择概率。在训练过程中,从相应的分布中采样动作以实现探索。在部署时,使用高斯分布的均值,并选择具有最高分配概率的策略。
补充
实验结果
请阅读原文。