我正在尝试解决 Farama 健身房机器人 fetch 环境,特别是 “FetchReachDense-v3” 问题。运行模拟时,机械臂的底座似乎错位了:
首先,这看起来很奇怪,不像体育馆机器人文档或这个问题的其他示例解决方案中的那样,我认为它搞乱了问题,因为我什至不确定手臂是否能够像这样达到一些目标位置。
运行此代码会显示发生的问题(至少对我来说):
import gymnasium as gym
import gymnasium_robotics
import numpy as np
# Creating environment
gym.register_envs(gymnasium_robotics)
env = gym.make("FetchReachDense-v3", render_mode="human")
observation, info = env.reset(seed=42)
print("Simulating with completely random actions")
# loop
summed_reward = 0
for _ in range(2000):
action = np.random.uniform(-1, 1,4) # random action
observation, reward, terminated, truncated, info = env.step(action) # Calculate next step of simulation.
summed_reward += reward # sum rewards
if terminated or truncated:
print("summed reward =", summed_reward)
summed_reward = 0
observation, info = env.reset()
env.close()
似乎还有其他问题。当我运行 'FetchPickAndPlaceDense-v3' (其中底座也放错位置)时,没有生成应该拾取的对象。这使得整个环境变得毫无用处。
我运行 python==3.11,其中gymnasium==1.0.0、gymnasium-robotics=1.3.1、mujoco==3.2.7 和 numpy==2.2.1。 numpy=2.1.3 和旧版本 mujoco 也出现此问题(不再确定确切的版本)。
你知道我在这里做错了什么吗?或者这实际上是体育馆机器人的问题?
提前致谢,如果您需要任何其他信息,请告诉我。
我发现问题了。显然,可通过 pip / pypi 访问的gymnasium-robotics 版本 (1.3.1) 具有 FetchReach 环境的 v1 和 v3 版本(对我来说,即使在 documentation 中提到了 v2,也不可能运行 v2。当我浏览了 GitHub 上的代码,我发现这个环境还有第 4 版:
。版本历史
* v4: Fixed bug where initial state did not match initial state description in documentation. Fetch environments' initial states after reset now match the documentation (related [GitHub issue](https://github.com/Farama-Foundation/Gymnasium-Robotics/issues/251)). * v3: Fixed bug: `env.reset()` not properly resetting the internal state. Fetch environments now properly reset their state (related [GitHub issue](https://github.com/Farama-Foundation/Gymnasium-Robotics/issues/207)). * v2: the environment depends on the newest [mujoco python bindings](https://mujoco.readthedocs.io/en/latest/python.html) maintained by the MuJoCo team in Deepmind. * v1: the environment depends on `mujoco_py` which is no longer maintained.
对我来说,通过 pip 安装无法运行版本 4。直接从 GitHub 安装后(奇怪的是gymnasium-robotics 的版本也是 1.3.1),我可以运行版本 4 并且问题得到解决。
要从 Github 安装,请在 bash 中运行以下代码:
git clone https://github.com/Farama-Foundation/Gymnasium-Robotics.git
cd Gymnasium-Robotics
pip install -e .