pyrobolearn  by robotlearn

Python framework for robot learning

Created 7 years ago
410 stars

Top 71.2% on SourcePulse

GitHubView on GitHub
Project Summary

PyRoboLearn (PRL) is a Python framework designed for robot learning research and development. It provides a structured approach to integrating simulators, robots, learning tasks, models, and algorithms, aiming to streamline the experimentation process for researchers and engineers in robotics.

How It Works

PRL is built around seven core axes: simulators, worlds, robots, interfaces, learning tasks (environment and policy), learning models, and learning algorithms. This modular design allows for flexible configuration and experimentation with different combinations of these components. The framework emphasizes a unified interface for various simulators and robot platforms, abstracting away low-level implementation details.

Quick Start & Requirements

  • Installation:
    • Virtualenv & Pip: Clone the repository, create a virtual environment (virtualenv -p /usr/bin/python<version> <virtualenv_name>), activate it (source <virtualenv_name>/bin/activate), and run pip install -e .. Requires numpy, cython, and gpytorch (or a specific alpha version for Python 2.7).
    • Docker: Build the image with docker build -t pyrobolearn . and run with docker run -p 11311:11311 -v $PWD/dev:/pyrobolearn/dev/:rw -ti pyrobolearn python3. For GPU support, use nvidia-docker run.
  • Prerequisites: Tested with Python 2.7, 3.5, 3.6 on Ubuntu 16.04/18.04. tk package might be needed. Windows installation requires manual setup of PyBullet and NLopt. macOS installation is experimental.
  • Resources: Docker image includes all libraries. GPU support requires nvidia-docker2.
  • Docs: Examples are available in the examples folder's README.rst.

Highlighted Details

  • Supports integration with multiple simulators, primarily PyBullet.
  • Modular design around seven key components for flexible robot learning experiments.
  • Provides a unified interface for robots, environments, and learning algorithms.
  • Includes locomotion controllers from Songyan Xin.

Maintenance & Community

The project is under active development, with a warning that substantial changes may occur. Acknowledgements mention contributions from Songyan Xin and Daniele Bonatto.

Licensing & Compatibility

Released under the GNU GPLv3 license. This license may impose copyleft restrictions on derivative works, potentially impacting commercial or closed-source use.

Limitations & Caveats

The framework is under ongoing development, and some interfaces may not be available on operating systems other than Linux. Windows and macOS installation procedures are noted as experimental or requiring specific workarounds.

Health Check
Last Commit

2 years ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
0 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.