倒單擺¶

此環境是 Mujoco 環境的一部分,其中包含有關環境的一般信息。
動作空間 |
|
觀察空間 |
|
導入 |
|
描述¶
此環境是 Cartpole 環境,基於 Barto、Sutton 和 Anderson 在 「Neuronlike adaptive elements that can solve difficult learning control problems」 中的工作,就像在經典環境中一樣,但現在由 Mujoco 物理模擬器提供支持 - 允許更複雜的實驗(例如改變重力的影響)。此環境包含一個可以線性移動的車,一端連接桿子,另一端自由。可以左右推動車子,目標是通過對車子施力來平衡車子頂部的桿子。
動作空間¶
智能體採用一個 1 元素向量作為動作。
動作空間是 [-3, 3]
中的連續 (action)
,其中 action
表示施加在車上的數值力(幅度表示力的大小,符號表示方向)
編號 |
動作 |
控制最小值 |
控制最大值 |
名稱 (在相應的 XML 文件中) |
關節 |
類型 (單位) |
---|---|---|---|---|---|---|
0 |
施加在車上的力 |
-3 |
3 |
slider |
slide |
力 (N) |
觀察空間¶
觀察空間由以下部分組成(依序)
qpos (2 元素): 機器人車子和桿子的位置值。
qvel (2 元素): 車子和桿子的速度(它們的導數)。
觀察空間是 Box(-Inf, Inf, (4,), float64)
,其中元素如下
編號 |
觀察 |
最小值 |
最大值 |
名稱 (在相應的 XML 文件中) |
關節 |
類型 (單位) |
---|---|---|---|---|---|---|
0 |
車子沿線性表面的位置 |
-Inf |
Inf |
slider |
slide |
位置 (m) |
1 |
桿子在車子上的垂直角度 |
-Inf |
Inf |
hinge |
hinge |
角度 (rad) |
2 |
車子的線性速度 |
-Inf |
Inf |
slider |
slide |
速度 (m/s) |
3 |
桿子在車子上的角速度 |
-Inf |
Inf |
hinge |
hinge |
角速度 (rad/s) |
獎勵¶
目標是盡可能長時間保持倒單擺直立(在一定的角度限制內) - 因此,對於桿子直立的每個時間步,都會給予 +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 個時間步。
參數¶
InvertedPendulum 提供了一系列參數來修改觀察空間、獎勵函數、初始狀態和終止條件。這些參數可以在 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()
的持續時間),默認值因環境而異,請查看環境文檔頁面。修復錯誤:
healthy_reward
在每個步驟都會給出(即使擺不健康),現在僅在擺健康(未終止)時給出(相關 GitHub issue)。添加了
xml_file
參數。添加了
reset_noise_scale
參數以設置初始狀態的範圍。添加了包含獎勵的
info["reward_survive"]
。
v4:所有 MuJoCo 環境現在都使用 mujoco >= 2.1.3 中的 MuJoCo 綁定。
v3:此環境沒有 v3 版本發布。
v2:所有連續控制環境現在都使用 mujoco-py >= 1.5。
v1:對於基於機器人的任務(包括倒單擺),max_time_steps 提高到 1000。
v0:初始版本發布。