Error when attempting to render A1 gym environment
Closed this issue · 1 comments
dtch1997 commented
Jenny can't reproduce this so I have to figure it out.
Stack trace:
(rl-baselines3-zoo) dtch1997@DESKTOP-AR4R24K:~/code/rl-baselines3-zoo$ python enjoy.py --algo ppo --env A1GymEnv-v0 -f logs --load-last-checkpoint
Loading latest experiment, id=3
Loading logs/ppo/A1GymEnv-v0_3/rl_model_200000_steps.zip
pybullet build time: Aug 16 2021 13:56:42
argv[0]=
/home/dtch1997/anaconda3/envs/rl-baselines3-zoo/lib/python3.8/site-packages/gym/logger.py:34: UserWarning: WARN: Box bound precision lowered by casting to float32
warnings.warn(colorize("%s: %s" % ("WARN", msg % args), "yellow"))
Loading running average
with params: {'norm_obs': True, 'norm_reward': False}
Traceback (most recent call last):
File "enjoy.py", line 248, in <module>
main()
File "enjoy.py", line 197, in main
env.render("human")
File "/home/dtch1997/anaconda3/envs/rl-baselines3-zoo/lib/python3.8/site-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 281, in render
return self.venv.render(mode=mode)
File "/home/dtch1997/anaconda3/envs/rl-baselines3-zoo/lib/python3.8/site-packages/stable_baselines3/common/vec_env/dummy_vec_env.py", line 85, in render
return self.envs[0].render(mode=mode)
File "/home/dtch1997/anaconda3/envs/rl-baselines3-zoo/lib/python3.8/site-packages/gym/core.py", line 254, in render
return self.env.render(mode, **kwargs)
File "/home/dtch1997/anaconda3/envs/rl-baselines3-zoo/lib/python3.8/site-packages/gym/core.py", line 254, in render
return self.env.render(mode, **kwargs)
File "/home/dtch1997/anaconda3/envs/rl-baselines3-zoo/lib/python3.8/site-packages/gym/core.py", line 254, in render
return self.env.render(mode, **kwargs)
File "/home/dtch1997/code/rl-baselines3-zoo/blind_walking/envs/gym_envs/a1_gym_env.py", line 36, in render
return self._env.render('rgb_array')
File "/home/dtch1997/code/rl-baselines3-zoo/blind_walking/envs/env_wrappers/observation_dictionary_to_array_wrapper.py", line 65, in render
return self._gym_env.render(mode)
File "/home/dtch1997/code/rl-baselines3-zoo/blind_walking/envs/locomotion_gym_env.py", line 389, in render
rgb_array = rgb_array[:, :, :3]
IndexError: too many indices for array: array is 1-dimensional, but 3 were indexed
dtch1997 commented
I resolved this after some printing and taking time to understand Pybullet's GetCameraImage() function.
The issue was that the returned array was expected to be 3D (RGBA) but the GetCameraImage function returns it as a single line. I resolved the issue after casting the array to the right shape and type. See branch debug/log_rgb_array