Robotics reinforcement learning benchmark tasks with cost-effective robots.
ROBEL: Robotics Benchmarks for Learning
ROBEL is an open-source platform of cost-effective robots and associated reinforcement learning environments for benchmarking reinforcement learning in the real world. It provides Gym-compliant environments that easily run in both simulation (for rapid prototyping) and on real hardware. ROBEL robots are robust and scalable - they have facilitated over 14000 hours (as of Aug'19) of real world training with various learning-based methods. Benchmarks using several learning-based methods are provided for ease of comparison and extensibility.
|ROBEL robots: D’Kitty (left) and D’Claw (middle and right)|
ROBEL introduces two robots that are modular, extensible, easy to build, and are lower cost compared to many existing robotics research platforms:
- D'Claw is a nine degree of freedom manipulation platform capable of performing dexterous manipulation.
- D'Kitty is a twelve degree of freedom quadruped capable of agile locomotion.
- Gym Compliant -- ROBEL environments are fully Gym-compliant and can be used with any reinforcement learning library that interfaces with Gym environments.
- Simulated backends -- ROBEL also includes simulated equivalents of the introduced benchmarks to facilitate the prototyping and debugging needs. Simulation backend is provided by MuJoCo.
- Hardware interface -- ROBEL is built using Dynamixel motors and communicates with the hardware device through the DynamixelSDK.
- External tracking support -- For D'Kitty environments, external tracking is supported through OpenVR tracking.
- Open source design -- The hardware design and build instructions are fully open-sourced and are available for anyone to build their own robots.
1. Hardware assembly
Please refer to the Hardware Guide for getting started with the ROBEL hardware platforms.
TODO(michaelahn): Add hardware documentation link.
2. Software installation
Download MuJoCo Pro 2.00 from the
MuJoCo website. You should extract this
~/.mujoco/mujoco200. Ensure your MuJoCo license key is placed at
ROBEL requires Python 3.5 or higher. You can install ROBEL by running:
pip install git+git://github.com/google-research/robel.git
PyPI package is coming soon.
We recommend doing this in a
virtualenv or a Conda environment to avoid
interfering with system dependencies or existing packages.
To run on hardware, additionally install the DynamixelSDK Python API:
pip install dynamixel_sdk @ https://github.com/ROBOTIS-GIT/DynamixelSDK/archive/3.7.0.zip#subdirectory=python
2.3 Example Usage
import robel import gym # Create a simulation environment for the D'Claw turn task. env = gym.make('DClawTurnFixed-v0') # Create a hardware environment for the D'Claw turn task. # `device_path` refers to the device port of the Dynamixel USB device. # e.g. '/dev/ttyUSB0' for Linux, '/dev/tty.usbserial-*' for Mac OS. env = gym.make('DClawTurnFixed-v0', device_path='/dev/ttyUSB0') # Reset the environent and perform a random action. env.reset() env.step(env.action_space.sample())
Not specifying the
env = gym.make('DClawTurnFixed-v0')
creates the simulated equivalent of the above hardware environment. The
simulated and hardware environments have the same interface.
To interactively render a simulation environment, run:
python -m robel.scripts.rollout -e DClawTurnFixed-v0 --render # Also try this with other tasks such as DKittyWalkFixed-v0
|Pose||Match a set of joint positions.|
|Turn||Turn an object to a specified angle.|
|Screw||Continuously rotate an object.|
|Stand||Stand up from an initial joint configuration.|
|Orient||Turn to face a specified angle.|
|Walk||Walk to a world position.|
We designed ROBEL to be an easily extensible platform for new robots, tasks, and
CONTRIBUTING.md for a guide
on how to contribute.
TODO(michaelahn): Add arxiv reference.
This is not an official Google product.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.