倒立摆¶

该环境是 MuJoCo 环境的一部分,其中包含有关该环境的通用信息。
动作空间 |
|
观测空间 |
|
导入 |
|
描述¶
该环境是推车倒立摆环境,基于 Barto、Sutton 和 Anderson 在 “能解决复杂学习控制问题的类神经自适应单元” 中的工作,与经典环境类似,但现在由 Mujoco 物理模拟器提供支持——允许进行更复杂的实验(例如改变重力效应)。该环境由一个可线性移动的推车组成,推车一端连接一根杆,另一端自由。推车可以向左或向右推动,目标是通过对推车施加力来使杆在推车顶部保持平衡。
动作空间¶
智能体为动作采用一个1元素向量。
动作空间是一个在 [-3, 3]
范围内的连续 (action)
,其中 action
代表施加到推车上的数值力(幅度表示力的大小,符号表示方向)。
编号 |
动作 |
控制最小值 |
控制最大值 |
名称(在相应的XML文件中) |
关节 |
类型(单位) |
---|---|---|---|---|---|---|
0 |
施加在推车上的力 |
-3 |
3 |
滑块 |
滑动 |
力(牛顿) |
观测空间¶
观测空间由以下部分(按顺序)组成
qpos(2元素): 机器人推车和杆的位置值。
qvel(2元素): 推车和杆的速度(它们的导数)。
观测空间是一个 Box(-Inf, Inf, (4,), float64)
,其中元素如下
编号 |
观测 |
最小值 |
最大值 |
名称(在相应的XML文件中) |
关节 |
类型(单位) |
---|---|---|---|---|---|---|
0 |
推车沿线性表面的位置 |
-Inf |
Inf |
滑块 |
滑动 |
位置(米) |
1 |
杆在推车上的垂直角度 |
-Inf |
Inf |
铰链 |
铰链 |
角度(弧度) |
2 |
推车的线速度 |
-Inf |
Inf |
滑块 |
滑动 |
速度(米/秒) |
3 |
杆在推车上的角速度 |
-Inf |
Inf |
铰链 |
铰链 |
角速度(弧度/秒) |
奖励¶
目标是尽可能长时间地保持倒立摆直立(在一定角度限制内)——因此,对于杆保持直立的每个时间步,都会给予 +1 的奖励。
如果 \(|angle| < 0.2\),则认为杆是直立的。
并且 info
也包含奖励。
起始状态¶
初始位置状态为 \(\mathcal{U}_{[-reset\_noise\_scale imes I_{2}, reset\_noise\_scale imes I_{2}]}\)。初始速度状态为 \(\mathcal{U}_{[-reset\_noise\_scale imes I_{2}, reset\_noise\_scale imes I_{2}]}\)。
其中 \(\mathcal{U}\) 是多元均匀连续分布。
回合结束¶
终止¶
当倒立摆处于不健康状态时,环境终止。如果发生以下任何情况,则倒立摆处于不健康状态
任何状态空间值不再是有限的。
杆与推车之间垂直角度的绝对值大于 0.2 弧度。
截断¶
一个回合的默认持续时间为 1000 个时间步。
参数¶
倒立摆提供了一系列参数来修改观测空间、奖励函数、初始状态和终止条件。这些参数可以在 gymnasium.make
期间按以下方式应用
import gymnasium as gym
env = gym.make('InvertedPendulum-v5', reset_noise_scale=0.1)
参数 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
str |
|
MuJoCo 模型的路径 |
|
float |
|
初始位置和速度随机扰动的比例(参见 |
版本历史¶
v5
最低
mujoco
版本现在是 2.3.3。新增支持使用
xml_file
参数的完全自定义/第三方mujoco
模型(以前只能对现有模型进行少量更改)。新增
default_camera_config
参数,这是一个用于设置mj_camera
属性的字典,主要用于自定义环境。新增
env.observation_structure
,这是一个用于指定观测空间组成(例如qpos
,qvel
)的字典,有助于为 MuJoCo 环境构建工具和包装器。新增
frame_skip
参数,用于配置dt
(step()
的持续时间),默认值因环境而异,请查阅环境文档页面。修复 bug:
healthy_reward
之前在每个时间步都给予(即使倒立摆不健康),现在仅当倒立摆健康(未终止)时才给予(相关 GitHub issue)。新增
xml_file
参数。新增
reset_noise_scale
参数以设置初始状态的范围。新增
info["reward_survive"]
,其中包含奖励。
v4:所有 MuJoCo 环境现在都使用 mujoco >= 2.1.3 中的 MuJoCo 绑定。
v3:该环境没有 v3 版本。已移至 gymnasium-robotics 仓库。
v2:所有连续控制环境现在都使用 mujoco-py >= 1.5。已移至 gymnasium-robotics 仓库。
v1:基于机器人的任务(包括倒立摆)的最大时间步数提高到 1000。
v0:初始版本发布。