倒立擺¶
該環境是 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:初始版本釋出。