賽車¶
此環境屬於 Box2D 環境,其中包含有關該環境的通用資訊。
動作空間 |
|
觀察空間 |
|
匯入 |
|
描述¶
最容易從畫素中學習的控制任務——一個俯視賽車環境。生成的賽道在每個回合中都是隨機的。
視窗底部顯示了一些指示器以及狀態 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 分。
起始狀態¶
汽車在道路中央靜止啟動。
回合終止¶
當所有方塊都被訪問後,回合結束。汽車也可能駛出遊戲區域——即遠離賽道,在這種情況下,它將收到 -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指定智慧體是具有連續(真)還是離散(假)動作。有關每個動作的描述,請參閱動作空間部分。
重置引數¶
傳遞選項 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: 完成一圈時將截斷 (truncation) 更改為終止 (termination) (1.0.0)
v1: 更改賽道完成邏輯並新增領域隨機化 (0.24.0)
v0: 原始版本
參考文獻¶
Chris Campbell (2014), http://www.iforce2d.net/b2dtut/top-down-car。
致謝¶
由 Oleg Klimov 建立