賽車¶

此環境是 Box2D 環境的一部分,其中包含關於環境的一般資訊。
動作空間 |
|
觀察空間 |
|
import |
|
描述¶
最容易從像素學習的控制任務 - 俯視賽車環境。 生成的賽道在每個 episode 都是隨機的。
一些指示器與狀態 RGB 緩衝區一起顯示在視窗底部。 從左到右:真實速度、四個 ABS 感測器、方向盤位置和陀螺儀。 若要自己玩(對人類來說相當快),請輸入
python gymnasium/envs/box2d/car_racing.py
請記住:這是一輛強大的後輪驅動汽車 - 不要同時踩油門和轉彎。
動作空間¶
如果是連續的,則有 3 個動作
0:轉向,-1 是完全向左,+1 是完全向右
1:油門
2:煞車
如果是離散的,則有 5 個動作
0:什麼都不做
1:向左轉向
2:向右轉向
3:油門
4:煞車
觀察空間¶
汽車和賽道的俯視 96x96 RGB 圖像。
獎勵¶
獎勵是每幀 -0.1,以及對於訪問的每個賽道圖塊 +1000/N,其中 N 是賽道中訪問的圖塊總數。 例如,如果您在 732 幀內完成,您的獎勵為 1000 - 0.1*732 = 926.8 點。
起始狀態¶
汽車在道路中央靜止啟動。
Episode 終止¶
當所有圖塊都被訪問時,episode 完成。 汽車也可能駛出遊玩區 - 也就是說,遠離賽道,在這種情況下,它將收到 -100 獎勵並結束。
參數¶
>>> import gymnasium as gym
>>> env = gym.make("CarRacing-v3", render_mode="rgb_array", lap_complete_percent=0.95, domain_randomize=False, continuous=False)
>>> env
<TimeLimit<OrderEnforcing<PassiveEnvChecker<CarRacing<CarRacing-v3>>>>>
lap_complete_percent=0.95
指示在被視為完成一圈之前,智能體必須訪問的圖塊百分比。domain_randomize=False
啟用環境的領域隨機化變體。 在這種情況下,背景和賽道顏色在每次重置時都不同。continuous=True
將環境轉換為使用離散動作空間。 離散動作空間有 5 個動作:[什麼都不做、左、右、油門、煞車]。
重置參數¶
傳遞選項 options["randomize"] = True
將按需變更環境的目前顏色。 相應地,傳遞選項 options["randomize"] = False
將不會變更環境的目前顏色。 domain_randomize
必須在初始化時為 True
,此參數才能運作。
>>> import gymnasium as gym
>>> env = gym.make("CarRacing-v3", domain_randomize=True)
# normal reset, this changes the colour scheme by default
>>> obs, _ = env.reset()
# reset with colour scheme change
>>> randomize_obs, _ = env.reset(options={"randomize": True})
# reset with no colour scheme change
>>> non_random_obs, _ = env.reset(options={"randomize": False})
版本歷史¶
v2:完成一圈時將截斷變更為終止 (1.0.0)
v1:變更賽道完成邏輯並新增領域隨機化 (0.24.0)
v0:原始版本
參考文獻¶
Chris Campbell (2014), http://www.iforce2d.net/b2dtut/top-down-car.
致謝¶
由 Oleg Klimov 建立