双足步行者

../../../_images/bipedal_walker.gif

此环境是 Box2D 环境的一部分,其中包含有关环境的一般信息。

动作空间

Box(-1.0, 1.0, (4,), float32)

观察空间

Box([-3.1415927 -5. -5. -5. -3.1415927 -5. -3.1415927 -5. -0. -3.1415927 -5. -3.1415927 -5. -0. -1. -1. -1. -1. -1. -1. -1. -1. -1. -1. ], [3.1415927 5. 5. 5. 3.1415927 5. 3.1415927 5. 5. 3.1415927 5. 3.1415927 5. 5. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. ], (24,), float32)

导入

gymnasium.make("BipedalWalker-v3")

描述

这是一个简单的 4 关节步行机器人环境。 有两个版本

  • 普通版,地形略微不平坦。

  • 硬核版,有梯子、树桩、陷阱。

要解决普通版,您需要在 1600 个时间步内获得 300 分。 要解决硬核版,您需要在 2000 个时间步内获得 300 分。

提供了一个启发式方法来进行测试。 它也有助于获得演示以供学习。 要运行启发式方法

python gymnasium/envs/box2d/bipedal_walker.py

动作空间

动作是在 [-1, 1] 范围内每个关节的电机速度值,每个关节都位于两个髋关节和膝盖处。

观察空间

状态包括船体角速度、角速度、水平速度、垂直速度、关节位置和关节角速度、腿部与地面的接触以及 10 个激光雷达测距仪测量值。 状态向量中没有坐标。

奖励

向前移动会给予奖励,总共 300 多分,直到到达最远端。 如果机器人跌倒,它会获得 -100 分。 应用电机扭矩会花费少量分数。 更优化的代理将获得更高的分数。

起始状态

步行者从地形的左侧开始,船体水平,两条腿处于相同位置,膝盖略微弯曲。

情节终止

如果船体与地面接触,或者步行者超过地形的右侧长度,情节将终止。

参数

要使用 *硬核* 环境,您需要指定 hardcore=True

>>> import gymnasium as gym
>>> env = gym.make("BipedalWalker-v3", hardcore=True, render_mode="rgb_array")
>>> env
<TimeLimit<OrderEnforcing<PassiveEnvChecker<BipedalWalker<BipedalWalker-v3>>>>>

版本历史

  • v3: 返回最接近的激光雷达轨迹,而不是最远的;更快的视频录制

  • v2: 统计消耗的能量

  • v1: 腿部现在报告与地面的接触;电机具有更高的扭矩和速度;地面具有更高的摩擦力;激光雷达渲染得不太紧张。

  • v0: 初始版本

致谢

由 Oleg Klimov 创建