赛车¶

此环境是 Box2D 环境的一部分,其中包含有关该环境的常规信息。
动作空间 |
|
观测空间 |
|
导入 |
|
描述¶
最容易从像素学习的控制任务 - 俯视赛车环境。 生成的赛道在每个 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 分。
起始状态¶
汽车在道路中心静止状态启动。
回合终止¶
当所有图块都被访问时,回合结束。 汽车也可能驶出赛场 - 也就是说,远离赛道,在这种情况下,它将获得 -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 创建