图片

在强化学习的世界里,有许多经典环境帮助研究者和开发者测试各种算法的性能,Acrobot 就是其中一个极具代表性的案例。这个由两个连杆组成的简单机械系统,却蕴含着复杂的动力学特性,成为检验平衡控制与运动规划算法的绝佳平台。今天,我们就来深入了解这个有趣的强化学习环境。

PART1

Acrobot 环境的核心构成

图片

Acrobot 环境模拟了一个由两个连杆(link)和两个关节(joint)组成的双摆系统,其中一个连杆的一端固定,两个连杆之间的关节(此为驱动关节)是可驱动的。系统的目标是通过在驱动关节上施加扭矩,让自由端的连杆摆动到指定高度之上,而初始状态则是整个系统自然下垂。

从结构上看,Acrobot 包含以下关键部分:

  • 两个连杆,长度均为 1.0 米

  • 两个关节,其中连接两个连杆的关节是可驱动的

  • 每个连杆都有设定的质量、转动惯量和质心位置

  • 系统通过施加三种可能的扭矩(-1、0、1 牛・米)来控制驱动关节

PART2

动作空间

Acrobot动作是离散的、确定性的,表示施加在两个连杆之间驱动关节上的扭矩。包含三个可能的动作:

  • 0:对驱动关节施加 -1牛・米的扭矩

  • 1:对驱动关节施加 0牛・米的扭矩

  • 2:对驱动关节施加 1牛・米的扭矩

eg. 动作a1=0,表示动作是0,对驱动关节施加-1牛・米的扭矩。

PART3

观测空间

观测结果是一个形状为 (6,) 的 ndarray,提供关于两个旋转关节角度及其角速度的信息。

其中

  • theta1是第一个连杆与竖直向下方向的夹角,其中角度为 0 表示第一个连杆直接向下。如果连杆向左(或逆时针)摆动,theta1 为 正角度;向右(或顺时针)摆动,theta1 为 负角度,物理上可理解为以固定支点为圆心,第一个连杆绕支点旋转的角度。

  • theta2是第二个连杆与第一个连杆的夹角,是相对角度。当两个连杆完全对齐(都竖直向下,或都朝同一方向)时,theta2 = 0,如果第二个连杆相对于第一个连杆 向左(或逆时针)“张开” ,theta2 为 正角度;向右(或顺时针)“张开” ,theta2 为 负角度 。举个例子:若 theta1 让第一个连杆向左摆(theta1>0 ),同时 theta2 让第二个连杆继续向左 “甩开” 第一个连杆(更向左摆),此时 theta2 为正;如果第二个连杆反而向右摆(和第一个连杆 “折叠” ),theta2 为负。

  • 代码实现时会将这两个角度控制在[-π, π]之间,方便算法处理状态。

  • theta1 和 theta2 的角速度分别限制在 ±4π 和 ±9π 弧度/秒。

PART4

奖励

目标是让自由端以尽可能少的步数(驱动驱动关节的次数)达到指定的目标高度。Acrobot 的奖励机制设计简洁而有效:

  • 每一步未达到目标时,奖励为-1

  • 达到目标时,奖励为0

  • 奖励阈值为-100

这种奖励设计鼓励智能体尽快找到达到目标的策略,因为每多一步都会累积更多的负奖励。

PART5

初始状态

基础状态中的每个参数(theta1、theta2 以及两个角速度)都在-0.1到0.1 之间均匀初始化。这意味着两个连杆都向下,并带有一定的初始随机性。

PART6

episode 结束条件

episode 结束的条件有两个:

  • 终止:自由端达到目标高度,即设定的高度满足条件 -cos(theta1) - cos(theta2 + theta1) > 1.0

  • 截断: episode 长度超过 500 步

PART7

动力学模型与参数设置

Acrobot 的动力学模型基于物理原理构建,考虑了重力、质量、转动惯量等因素的影响。系统采用四阶龙格 - 库塔(RK4)方法求解微分方程,模拟系统的运动状态变化。

环境中一些重要的物理参数包括:

  • 连杆质量:均为 1.0 千克

  • 连杆长度:均为 1.0 米

  • 质心位置:每个连杆的中点(0.5 米处)

  • 时间步长:0.2 秒

  • 最大角速度:theta1 为 ±4π rad/s,theta2 为 ±9π rad/s

值得注意的是,Acrobot 提供了两种动力学模型选择:默认情况下,Acrobot 的动力学遵循 Sutton 和 Barto 的书《强化学习:导论》中所述。但是,可以修改 book_or_nips 参数,将摆的动力学更改为原始NeurIPS 论文 论文中描述的动力学。

PART8

如何使用 Acrobot 环境

使用 Gymnasium 创建和使用 Acrobot 环境非常简单,以下是一个基本示例:

END

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐