Code Monkey home page Code Monkey logo

hippo_gym's People

Contributors

abdullahinur2828 avatar camillever avatar cmuslima avatar dependabot[bot] avatar konantian avatar mathisfederico avatar mohamedal-nassirat avatar nadeensami avatar nicknissen avatar payassingh avatar s-gul avatar velocityex avatar vmaoued avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hippo_gym's Issues

Budget Caluclation

Develop the logic for calculating the budget based on the specified parameters and time steps.
Implement methods to set and retrieve the budget.
Monitor the budget usage and alert when the budget is exceeded.

Front-end Elements and Componets

Implement front-end elements such as start, pause, and other controls for the experiment.
Design and create the visual elements and user interface for the experiment.
Handle user interactions and input from the front-end.

Documentation on Examples

Update README documentation for how to run examples step-by-step guide (and later on how to deploy to AWS once that is fixed), where the data from the example experiments are stored etc

Docker Setup Needs Updating

Old docker setup and start.sh file are outdated and need to be updated to include swig as well as setup file structure to allow examples to be ran directly.

LunarLander Controls Mismatch

Currently with the recent fix on Lunar Lander, the controls on the page don't match the actual in game controls, so a quick fix to the front-end will be required.

Websocket Communication Fine Tune

Websocket through API Gateway is now working, needs some latency handling and documentation on routes

Handle data sent between the backend and frontend via the websocket.
Implement an API that provides an interface for researchers to specify what data they want to send or receive.
Ensure seamless communication and error handling between the different components.

Linking Learning Algorithm to Hippogym

Connect the external learning algorithm to the Hippo Gym product.
Implement methods to send data from Hippo Gym to the external algorithm.
Receive data from the external algorithm and incorporate it into the Hippo Gym system.

Allow Graphical Experiments Using Docker

When in a Docker container you aren't able to run hcraft_example or any theoretical example that is using an external graphical display because we haven't configured Docker to allow displays.

When attempting to run hcraft_example you are prompted with the following error:

pygame.error: No available video device

Pygame's inability to find a suitable video device for rendering. This issue typically arises when running Pygame inside a Docker container, since the container doesn't have access to the host system's display.

To solve this issue, you can try running the Docker container with X11 forwarding. This will allow Pygame to use your host's X11 server for rendering.

You'd have to make some adjustments to the Dockerfile and the start.sh script, but be cautious to make it work across ALL devices, because there is a lot of different setup methods for variations in computers (windows, macos, linux) so make it compatible for all types

Minigrid No Data Output

Currently running MiniGrid does not save any output data to json, save json data to show as an example of what is saved from experiment and use cases.

Webcam Support?

Hi there, currently I'm designing a research project that will do interactive RL with facial expressions. Since the project needs to be done online, I'm investigating what software I can use. In your publication, you were talking about extending this project. Are there any plans or maybe even a roadmap for something like a webcam support?

LunarLander Rendering Failed

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)

Frontend Guides Beside Live Experiments

Display a guide beside each live experiment which will fetch the keyboard inputs for the given experiment and display it
Currently Lundar Lander already has this implemented, so implement this for Minigrid example as well

For example:

keyboard_to_value = {
        "ArrowRight": HumanValue.RIGHT,
        "ArrowLeft": HumanValue.LEFT,
        "ArrowUp": HumanValue.UP,
        " ": HumanValue.TOGGLE,
        "c": HumanValue.PICKUP,
        "v": HumanValue.DROP,
        "Enter": HumanValue.END,
    }

Front-end will display:

Controls:

Space to Toggle
C to Pickup
V to Drop

etc

LunarLander Restart and Start not working

Currently when running a Lunar Lander example experiment, pressing the "restart" button does not actually restart the environment. When ending a episode, you can't press "start" to begin the next episode as well not sure if its a bug, look more into it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.