Git Product home page Git Product logo

reinmav-gym's Introduction

reinmav-gym

Build Status

reinmav-gym is a gym environment for developing mav controllers using the openai gym framework. The environment composes of two environments: native which has a built in simulator and mujoco which uses the mujoco simulator.

  • native environment has a built in dynamics 2D / 3D model that does not require any additional physics engine.
  • mujoco environment has a quadrotor model in the mujoco simulator for more complex environments

Installation

Requirements

  • python3.6 (or 3.7) environment by one of the following
    • system python
    • conda
    • virtualenv
    • venv
  • gym
  • vpython
  • baselines SOURCE BUILD from 90d66776a49ad5e732b935dfc891bfbd06035ed2
  • matplotlib

Notes

  1. the code was tested on Ubuntu 16.04, 18.04 and macOS; but matplotlib has some issues in macOS. Please see this doc for more details: we strongly recommend to use conda + pythonw (conda install python.app) on macOS.

  2. pip package version of baselines has some issue. Please build from the source (commit code: 90d66776a49ad5e732b935dfc891bfbd06035ed2)

Install Dependencies

  1. Install package dependencies
$ sudo apt update && sudo apt install libopenmpi-dev
  1. Install gym. The installation guidelines can be found here
$ pip install gym
  1. Install pip dependencies by
$ pip install -r requirements.txt
  1. [Optional] Install mujoco, mujoco-py and gym[all]
  2. [Optional] Install the baseline repository to use baseline algorithms to train the models
sudo apt-get update && sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-dev
git clone https://github.com/openai/baselines.git
cd baselines
pip install tensorflow-gpu # if you have a CUDA-compatible gpu and proper drivers
pip install -e .

Installing the reinmav-gym package

  1. Clone the package and cd into it
git clone https://github.com/ethz-asl/reinmav-gym.git
cd reinmav-gym
  1. The environment is tested on python 3.6. Make sure you have the right python version when installing the environment
pip install -e .

Check installation

You can check your installation using $ pip show

pip show gym-reinmav
Name: gym-reinmav
Version: 0.0.1
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Location: /Users/YOUR_INSTALLED_PATH/openai/venv/lib/python3.6/site-packages
Requires: gym
Required-by: 

A simple geometric controller is implemented to see if the quadrotor can fly properly.

$ cd reinmav-gym/test
$ python test_quadrotor2d.py

or

$ python test_quadrotor3d.py

For mujoco env (optional)

Prerequisites

Steps

  1. download mjpro150 from MuJoCo website
  2. put mjpro150 directory into ~/.mujoco
  3. put mjkey.txt into ~/.mujoco
  4. install apt dependencies
    • for example on Ubuntu 16.04:
    $ apt-get install -y python-pyglet python3-opengl zlib1g-dev libjpeg-dev patchelf \
        cmake swig libboost-all-dev libsdl2-dev libosmesa6-dev xvfb ffmpeg
  5. export LD_LIBRARY_PATH
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.mujoco/mjpro150/bin
$ # check your nvidia driver version 
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-<YOUR VERSION> 
  1. install gym by
$ pip3 install 'gym[all]'

Note. mujoco200 (MuJoCo 2.0) is not supported yet.

Using the Environment

The environment can be used as anyother gym environments. This can be done by doing the following in your script

import gym
...

env = gym.make('quadrotor3d-v0').unwrapped

quadrotor3d-v0 is the environment ID that is registered in the gym environment. The list of environment ids in this repo can be found in `gym_reinmav/init.py' file. The environment can be also be tested using the openai baselines package, for example as the following.

python -m gym_reinmav.run --alg=ppo2 --env=quadrotor2d-v0 --network=mlp --play

For basic usages on baslines, refer to this repo

reinmav-gym's People

Contributors

jaeyoung-lim avatar inkyusa avatar eastskykang avatar

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.