双足行走机器人

../../../_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)

import

gymnasium.make("BipedalWalker-v3")

描述

这是一个简单的四关节行走机器人环境。该环境有两个版本:

  • 普通版 (Normal):地形稍微不平坦。

  • 硬核版 (Hardcore):包含梯子、树桩和坑洞。

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

提供了一个启发式算法供测试使用,同时也方便获取演示数据进行学习。运行启发式算法:

python gymnasium/envs/box2d/bipedal_walker.py

动作空间

动作是 4 个关节(双髋和双膝)的电机速度值,范围在 [-1, 1] 之间。

观测空间

状态由以下内容组成:主体倾角速度、角速度、水平速度、垂直速度、关节位置和关节角速度、腿部与地面的接触情况,以及 10 个激光雷达 (lidar) 测距读数。状态向量中不包含坐标信息。

奖励(Rewards)

奖励由前进距离决定,全程总分最高可达 300 多分。如果机器人跌倒,获得 -100 分。施加电机扭矩会扣除少量分数。更优化的智能体会获得更高的分数。

起始状态

行走机器人起始于地形左端,保持主体水平,双腿位置相同且膝盖有轻微弯曲。

回合终止(Episode Termination)

如果机器人主体接触地面,或者超过了地形的右端,任务将终止。

参数

要使用硬核 (hardcore) 环境,需要指定 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:初始版本。

制作人员(Credits)

由 Oleg Klimov 创建