robosuite-benchmark icon indicating copy to clipboard operation
robosuite-benchmark copied to clipboard

numpy incompatibility when running rollout visualizations

Open rojas70 opened this issue 3 years ago • 0 comments

Greetings,

My rb_bench environment is setup according to documentation.

Particularly for numpy and mujoco I have the following versions:

numpy                           1.16.0
mujoco-py                       2.0.2.9

However, when I first tried to visualize a rollout in my 'rb_bench' conda environment by calling python scripts/rollout.py --load_dir runs/PickPlaceCan-Panda-OSC-POSE-SEED129/PickPlaceCan_Panda_OSC_POSE_SEED129_2020_09_21_20_07_31_0000--s-0/ --horizon 200 --camera frontview

I get the following error:

Traceback (most recent call last):
  File "scripts/rollout.py", line 1, in <module>
    from util.rlkit_utils import simulate_policy
  File "/home/juan/python/drl/toolsuites/robosuite-benchmark/util/rlkit_utils.py", line 19, in <module>
    import robosuite as suite
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/__init__.py", line 1, in <module>
    from robosuite.environments.base import make
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/environments/__init__.py", line 1, in <module>
    from .base import REGISTERED_ENVS, MujocoEnv
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/environments/base.py", line 2, in <module>
    from mujoco_py import MjSim, MjRenderContextOffscreen
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/mujoco_py/__init__.py", line 3, in <module>
    from mujoco_py.builder import cymj, ignore_mujoco_warnings, functions, MujocoException
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/mujoco_py/builder.py", line 510, in <module>
    cymj = load_cython_ext(mujoco_path)
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/mujoco_py/builder.py", line 101, in load_cython_ext
    mod = load_dynamic_ext('cymj', cext_so_path)
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/mujoco_py/builder.py", line 125, in load_dynamic_ext
    return loader.load_module()
  File "mujoco_py/cymj.pyx", line 1, in init mujoco_py.cymj
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

It's not the first time I see this error. It is an incompatibility between mujoco and numpy. Where mujoco 2.0.2.9 needs numpy 1.20.1 I believe.

If I upgrade to 1.20.1 by doing pip remove numpy and then pip install numpy that error is fixed but then when I try to visualize the rollout with the command:

python scripts/rollout.py --load_dir runs/Door-Panda-OSC-POSE-SEED17/Door_Panda_OSC_POSE_SEED17_2020_09_13_00_26_44_0000--s-0/ --horizon 200 --camera frontview

We get the following inconsistency:

Creating window glfw
Traceback (most recent call last):
  File "scripts/rollout.py", line 87, in <module>
    reward_shaping=True
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/environments/base.py", line 41, in make
    return REGISTERED_ENVS[env_name](*args, **kwargs)
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/environments/manipulation/door.py", line 184, in __init__
    camera_depths=camera_depths,
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/environments/manipulation/manipulation_env.py", line 168, in __init__
    robot_configs=robot_configs,
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/environments/robot_env.py", line 196, in __init__
    hard_reset=hard_reset,
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/environments/base.py", line 147, in __init__
    self._reset_internal()
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/environments/manipulation/door.py", line 375, in _reset_internal
    super()._reset_internal()
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/environments/robot_env.py", line 400, in _reset_internal
    robot.reset(deterministic=self.deterministic_reset)
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/robots/single_arm.py", line 175, in reset
    super().reset(deterministic)
  File "/home/juan/python/anaconda3/envs/rb_bench/lib/python3.7/site-packages/robosuite/robots/robot.py", line 147, in reset
    self.base_ori = T.mat2quat(self.sim.data.get_body_xmat(self.robot_model.root_body).reshape((3, 3)))
TypeError: expected dtype object, got 'numpy.dtype[float32]'

If I keep numpy at 17.1 but downgrade mujoco to 2.2.0 the rollouts work, but have yet to test robosuite here... It is stated that robosuite needs mujoco 2.0.2.9.

Please advice.

rojas70 avatar Mar 09 '21 09:03 rojas70