aidudezzz / deepworlds

Examples and use cases using the deepbots framework (https://github.com/aidudezzz/deepbots) with the Webots robot simulator.
GNU General Public License v3.0
50 stars 23 forks source link

All Contributors

Deepworlds is a support repository for the deepbots framework, containing examples of the framework's usage on the Webots robot simulator.

If the following sections feel overwhelming, feel free to start on our deepbots-tutorials repository for a beginner's in-depth introduction to the way the deepbots framework is used.

Run an example in Webots

  1. Clone the repository using:

    git clone https://github.com/aidudezzz/deepworlds.git
  2. Install specific packages for each example you want to use by running the following:

    pip install -r <path to requirements file>

    You can find the requirement files on the /requirements/<example-name>.txt path of each example, e.g., /examples/cartpole/cartpole_discrete/requirements/.

  3. Through Webots, open the .wbt file of the example you are interested in and hit run to train the provided agent. You can find the .wbt files under /worlds/, e.g., /examples/cartpole/cartpole_discrete/worlds/.

For more information on the examples, refer to each one's README, and examine the code within their /controllers/ directory.

Some important notes

Each example might be split into discrete and continuous action space cases. The reason for this split is that depending on the action space, different kinds of reinforcement learning agents need to be used, and thus quite large changes are needed in the code.

Keep in mind that each example can have multiple solutions provided using the two schemes of deepbots (robot supervisor and emitter-receiver) and with different reinforcement learning agents, backends, etc.

We suggest starting your exploration from the discrete cartpole example using the robot supervisor scheme, as it is also the example used in the tutorial. The main class/controller implementation can be found here, and the corresponding tutorial to create it from scratch is here.

Directories structure

\deepworlds
    \examples
        \cartpole
            \cartpole_discrete
                \controllers
                \requirements
                \worlds
            \cartpole_continuous
                \controllers
                \requirements
                \worlds
            \...
        \find_and_avoid
            \find_and_avoid_continuous
                \controllers
                \requirements
                \worlds
            \...
        \pit_escape
            \pit_escape_discrete
                \controllers
                \requirements
                \worlds
            \...
        \(more examples)       

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Kostas Tsampazis

🐛 💻 📖 💡 🤔 🚧 📆 💬 👀

Manos Kirtas

🐛 💻 📖 💡 🤔 🚧 📆 💬 👀

RKJ

🤔

wakeupppp

🐛

Jiun Kai Yang

💻 📖 💡 🤔 👀 🚧 📆 🐛 💬

Nikolaos Kokkinis-Ntrenis

💻 📖 💡

This project follows the all-contributors specification. Contributions of any kind welcome!

Special thanks to Papanikolaou Evangelia for designing project's logo!