Robotics reinforcement learning benchmark tasks with cost-effective robots.
Project description
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.
Robot Platforms
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.
Features
- 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.
Getting started
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
2.1 MuJoCo
Download MuJoCo Pro 2.00 from the
MuJoCo website. You should extract this
to ~/.mujoco/mujoco200
. Ensure your MuJoCo license key is placed at
~/.mujoco/mjkey.txt
.
2.2 ROBEL
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 device_path
i.e. 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
Benchmark Tasks
D'Claw
Task | Description |
---|---|
Pose | Match a set of joint positions. |
Turn | Turn an object to a specified angle. |
Screw | Continuously rotate an object. |
D'Kitty
Task | Description |
---|---|
Stand | Stand up from an initial joint configuration. |
Orient | Turn to face a specified angle. |
Walk | Walk to a world position. |
Contributing
We designed ROBEL to be an easily extensible platform for new robots, tasks, and
benchmarks. See CONTRIBUTING.md
for a guide
on how to contribute.
Citation
TODO(michaelahn): Add arxiv reference.
Disclaimer
This is not an official Google product.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file robel-0.1.0.tar.gz
.
File metadata
- Download URL: robel-0.1.0.tar.gz
- Upload date:
- Size: 8.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.5.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | efa941ef0e16c4fcb2c986b4d3d07995a19889be152054a5826763181d2673cf |
|
MD5 | 113453729ce15aaa38b85c4cf711a9f1 |
|
BLAKE2b-256 | acee965991433d662797e410dfbc4aaa79bbf92423659d4906685fb66a5e84bb |
Provenance
File details
Details for the file robel-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: robel-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.5.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28585aab689db78847cb616d044a15930d929b8963892c536a5f5fa8c3248671 |
|
MD5 | 876d5c483e0300eec53f064f0cf31496 |
|
BLAKE2b-256 | 75ea3d8195641e239e71fc0a61aac8589b867201bd0524e1660990d1de8e4ac1 |