倒單擺¶

此環境是 Mujoco 環境的一部分,其中包含有關環境的一般資訊。
動作空間 |
|
觀察空間 |
|
匯入 |
|
描述¶
此環境是 Cartpole 環境,基於 Barto、Sutton 和 Anderson 在「類神經元自適應元件,可以解決困難的學習控制問題」中的工作,就像在經典環境中一樣,但現在由 Mujoco 物理模擬器提供支援 - 允許更複雜的實驗(例如改變重力的影響)。此環境由一個可以線性移動的台車組成,一端連接一根桿子,另一端是自由的。台車可以向左或向右推動,目標是透過對台車施力來平衡台車頂部的桿子。
動作空間¶
代理人採用一個 1 元素向量來表示動作。
動作空間是連續的 (action)
,範圍在 [-3, 3]
,其中 action
代表施加在台車上的數值力(大小代表力量的大小,符號代表方向)
編號 |
動作 |
控制最小值 |
控制最大值 |
名稱(在對應的 XML 檔案中) |
關節 |
類型(單位) |
---|---|---|---|---|---|---|
0 |
施加在台車上的力 |
-3 |
3 |
滑桿 |
滑動 |
力 (N) |
觀察空間¶
觀察空間由以下部分組成(依序)
qpos(2 個元素):機器人台車和桿子的位置值。
qvel(2 個元素):台車和桿子的速度(它們的導數)。
觀察空間是一個 Box(-Inf, Inf, (4,), float64)
,其中元素如下
編號 |
觀察 |
最小值 |
最大值 |
名稱(在對應的 XML 檔案中) |
關節 |
類型(單位) |
---|---|---|---|---|---|---|
0 |
台車沿線性表面的位置 |
-Inf |
Inf |
滑桿 |
滑動 |
位置 (m) |
1 |
桿子在台車上的垂直角度 |
-Inf |
Inf |
鉸鏈 |
鉸鏈 |
角度 (rad) |
2 |
台車的線性速度 |
-Inf |
Inf |
滑桿 |
滑動 |
速度 (m/s) |
3 |
桿子在台車上的角速度 |
-Inf |
Inf |
鉸鏈 |
鉸鏈 |
角速度 (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 問題)。新增了
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:初始版本發佈。