赛车¶

此环境属于 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 创建