IRLL/HIPPO_Gym

LunarLander Rendering Failed

Closed this issue · 2 comments

When attempting to run Lunar Lander example, you are able to run the experiment on locally, but when beginning the experiment, you are presented with the following issue:

  • This is was from Docker, similar output if local machine
Process Trial:
Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/robadmin/Desktop/HIPPO_Gym/src/hippogym/trial.py", line 35, in build_and_run
    self.run()
  File "/home/robadmin/Desktop/HIPPO_Gym/src/hippogym/trial.py", line 30, in run
    step.run()
  File "/home/robadmin/Desktop/HIPPO_Gym/src/hippogym/trialsteps/gymstep.py", line 88, in run
    self.send_render()
  File "/home/robadmin/Desktop/HIPPO_Gym/src/hippogym/trialsteps/gymstep.py", line 147, in send_render
    rgb_array = self.env.render(mode="rgb_array")
  File "/home/robadmin/Desktop/HIPPO_Gym/.venv/lib/python3.8/site-packages/gym/core.py", line 329, in render
    return self.env.render(*args, **kwargs)
  File "/home/robadmin/Desktop/HIPPO_Gym/.venv/lib/python3.8/site-packages/gym/wrappers/order_enforcing.py", line 51, in render
    return self.env.render(*args, **kwargs)
  File "/home/robadmin/Desktop/HIPPO_Gym/.venv/lib/python3.8/site-packages/gym/wrappers/env_checker.py", line 53, in render
    return env_render_passive_checker(self.env, *args, **kwargs)
  File "/home/robadmin/Desktop/HIPPO_Gym/.venv/lib/python3.8/site-packages/gym/utils/passive_env_checker.py", line 316, in env_render_passive_checker
    result = env.render(*args, **kwargs)
TypeError: render() got an unexpected keyword argument 'mode'

this is coming from the def send_render(self) method in the gymstep.py file, but this send_render function is being used in MiniGrid so it should be working as expected.

    def send_render(self):
        rgb_array = self.env.render(mode="rgb_array")
        try:
            rgb_array = np.array(rgb_array)
        except:
            raise TypeError("Env render should output a numpy array.")
        render = self.render_window.convert_numpy_array_to_base64(rgb_array)
        self.render_window.update(image=render)

for reference, here is the send_render method utilized in minigrid_example.py

    def send_render(self):
        rgb_frame = self.env.get_frame(tile_size=64, agent_pov=True)
        render = self.render_window.convert_numpy_array_to_base64(rgb_frame)
        self.render_window.update(image=render)

but in Lunar Lander this implementation is not used

Issue Fixed