{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "# **ROBEL**: **Ro**botics **Be**nchmarks for **L**earning\n\nROBEL is an open-source platform of cost-effective robots and associated\nreinforcement learning environments for benchmarking reinforcement learning in\nthe real world. It provides Gym-compliant environments that easily run in both\nsimulation (for rapid prototyping) and on real hardware. ROBEL robots are robust\nand scalable - they have facilitated over 14000 hours (as of Aug'19) of\nreal-world training with various learning-based methods. Benchmarks using\nseveral learning-based methods are provided for ease of comparison and\nextensibility. Refer to [ROBEL's webpage](http://roboticsbenchmarks.org) for\nfull details.\n\n## Robot Platforms\n\n| ![](media/cover.png \"ROBEL platforms\") |\n:----------------------:\n| ROBEL robots: D\u2019Kitty (left) and D\u2019Claw (middle and right) |\n\nROBEL introduces two robots that are modular, extensible, easy to build, and are\nlower cost compared to many existing robotics research platforms:\n\n1. **D'Claw** is a nine degree of freedom manipulation platform capable of\n performing dexterous manipulation.\n2. **D'Kitty** is a twelve degree of freedom quadruped capable of agile\n locomotion.\n\n## Features\n\n1. **Gym Compliant** -- ROBEL environments are fully [Gym]-compliant and can be\nused with any reinforcement learning library that interfaces with Gym\nenvironments.\n2. **Simulated backends** -- ROBEL also includes simulated equivalents of the\nintroduced benchmarks to facilitate prototyping and debugging needs.\nSimulation backend is provided by [MuJoCo].\n3. **Hardware interface** -- ROBEL is built using Dynamixel motors and\ncommunicates with the hardware device through the [DynamixelSDK].\n4. **External tracking support** -- For D'Kitty environments, external tracking\nis supported through [OpenVR] tracking.\n5. **Open-source design** -- The hardware design and build instructions are\nfully open-sourced and are available for anyone to build their own robots.\n\n[Gym]: https://gym.openai.com\n[MuJoCo]: http://www.mujoco.org\n[DynamixelSDK]: https://github.com/ROBOTIS-GIT/DynamixelSDK\n[OpenVR]: https://github.com/ValveSoftware/openvr\n\n# Getting started\n\n## 1. Hardware assembly\n\nPlease refer to the\n[Hardware Guide](http://roboticsbenchmarks.org/getting-started) for getting\nstarted with the ROBEL hardware platforms.\n\n## 2. Software installation\n\n#### 2.1 MuJoCo\n\nDownload MuJoCo Pro 2.00 from the\n[MuJoCo website](https://www.roboti.us/index.html). You should extract this\nto `~/.mujoco/mujoco200`. Ensure your MuJoCo license key is placed at\n`~/.mujoco/mjkey.txt`.\n\nAdd the following line to your `~/.bashrc` (or equivalent) in order for\n`mujoco_py` to install properly:\n\n```bash\nexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.mujoco/mujoco200/bin\n```\n\nRun `source ~/.bashrc` afterwards.\n\n#### 2.2 ROBEL\n\nROBEL requires Python 3.5 or higher. You can install ROBEL by running:\n\n``` bash\npip install robel\n```\n\nWe recommend doing this in a `virtualenv` or a Conda environment to avoid\ninterfering with system dependencies or existing packages.\n\nAlternatively, you can install directly from the repository by running:\n\n```bash\ngit clone --recurse-submodules https://github.com/google-research/robel.git\npip install -e robel/\n```\n\nTo run on hardware, additionally install the [DynamixelSDK] Python API:\n\n```bash\npip install git+https://github.com/ROBOTIS-GIT/DynamixelSDK.git#subdirectory=python\n```\n\n#### 2.3 Example Usage\n\n```python\nimport robel\nimport gym\n\n# Create a simulation environment for the D'Claw turn task.\nenv = gym.make('DClawTurnFixed-v0')\n\n# Create a hardware environment for the D'Claw turn task.\n# `device_path` refers to the device port of the Dynamixel USB device.\n# e.g. '/dev/ttyUSB0' for Linux, '/dev/tty.usbserial-*' for Mac OS.\nenv = gym.make('DClawTurnFixed-v0', device_path='/dev/ttyUSB0')\n\n# Reset the environent and perform a random action.\nenv.reset()\nenv.step(env.action_space.sample())\n```\n\nNot specifying the `device_path` i.e. `env = gym.make('DClawTurnFixed-v0')`\ncreates the simulated equivalent of the above hardware environment. The\nsimulated and hardware environments have the same interface.\n\nTo interactively render a simulation environment, run:\n\n```bash\npython -m robel.scripts.rollout -e DClawTurnFixed-v0 --render\n# Also try this with other tasks such as DKittyWalkFixed-v0\n```\n\n## Benchmark Tasks\n\n### D'Claw\n\n| Task | Description |\n| --------- | ------------------------------------ |\n| **Pose** | Match a set of joint positions. |\n| **Turn** | Turn an object to a specified angle. |\n| **Screw** | Continuously rotate an object. |\n\n\n### D'Kitty\n\n| Task | Description |\n| ---------- | --------------------------------------------- |\n| **Stand** | Stand upright. |\n| **Orient** | Align heading with a target. |\n| **Walk** | Walk to a target location. |\n\n## Contributing\n\nWe designed ROBEL to be an easily extensible platform for new robots, tasks, and\nbenchmarks. See [`CONTRIBUTING.md`](CONTRIBUTING.md) for a guide\non how to contribute.\n\n## Citation\n\n```\n@misc{ahn2019robel,\n title={ROBEL: Robotics Benchmarks for Learning with Low-Cost Robots},\n author={Michael Ahn and Henry Zhu and Kristian Hartikainen and Hugo Ponte and Abhishek Gupta and Sergey Levine and Vikash Kumar},\n year={2019},\n eprint={1909.11639},\n archivePrefix={arXiv},\n primaryClass={cs.RO}\n}\n```\n\n## Disclaimer\n\nThis is not an official Google product.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "robel", "package_url": "https://pypi.org/project/robel/", "platform": "", "project_url": "https://pypi.org/project/robel/", "project_urls": null, "release_url": "https://pypi.org/project/robel/0.1.1/", "requires_dist": [ "gym (<0.14.0,>=0.11.0)", "mujoco-py (<2.1,>2.0)", "numpy (>=1.10.4)", "transforms3d (>=0.3.0<0.4)" ], "requires_python": ">=3.5.3", "summary": "Robotics reinforcement learning benchmark tasks with cost-effective robots.", "version": "0.1.1" }, "last_serial": 5898460, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "876d5c483e0300eec53f064f0cf31496", "sha256": "28585aab689db78847cb616d044a15930d929b8963892c536a5f5fa8c3248671" }, "downloads": -1, "filename": "robel-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "876d5c483e0300eec53f064f0cf31496", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 8576599, "upload_time": "2019-09-10T06:15:03", "url": "https://files.pythonhosted.org/packages/75/ea/3d8195641e239e71fc0a61aac8589b867201bd0524e1660990d1de8e4ac1/robel-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "113453729ce15aaa38b85c4cf711a9f1", "sha256": "efa941ef0e16c4fcb2c986b4d3d07995a19889be152054a5826763181d2673cf" }, "downloads": -1, "filename": "robel-0.1.0.tar.gz", "has_sig": false, "md5_digest": "113453729ce15aaa38b85c4cf711a9f1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 8497163, "upload_time": "2019-09-10T06:15:14", "url": "https://files.pythonhosted.org/packages/ac/ee/965991433d662797e410dfbc4aaa79bbf92423659d4906685fb66a5e84bb/robel-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0640b6cdede95c63bceffe025e5b69b5", "sha256": "0914aeead52ab85ece83751667fb910648c08d4a14148edc1d6724a64c306380" }, "downloads": -1, "filename": "robel-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0640b6cdede95c63bceffe025e5b69b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 7709326, "upload_time": "2019-09-27T23:08:39", "url": "https://files.pythonhosted.org/packages/64/59/b5190a287c06bbe354c0320450286a2498e4d54f1a958399b35a3a49a497/robel-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3892582ce0a0f41250a726138dff02de", "sha256": "00cc02d449923857036a16a3a0efb2ee9617f9facae7d50eb95048618f2bc613" }, "downloads": -1, "filename": "robel-0.1.1.tar.gz", "has_sig": false, "md5_digest": "3892582ce0a0f41250a726138dff02de", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 7628865, "upload_time": "2019-09-27T23:08:42", "url": "https://files.pythonhosted.org/packages/64/1a/2324b2c81f9f5c016bbb4e59408c813faaff61939c97f73aa2919881fa40/robel-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0640b6cdede95c63bceffe025e5b69b5", "sha256": "0914aeead52ab85ece83751667fb910648c08d4a14148edc1d6724a64c306380" }, "downloads": -1, "filename": "robel-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0640b6cdede95c63bceffe025e5b69b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.3", "size": 7709326, "upload_time": "2019-09-27T23:08:39", "url": "https://files.pythonhosted.org/packages/64/59/b5190a287c06bbe354c0320450286a2498e4d54f1a958399b35a3a49a497/robel-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3892582ce0a0f41250a726138dff02de", "sha256": "00cc02d449923857036a16a3a0efb2ee9617f9facae7d50eb95048618f2bc613" }, "downloads": -1, "filename": "robel-0.1.1.tar.gz", "has_sig": false, "md5_digest": "3892582ce0a0f41250a726138dff02de", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.3", "size": 7628865, "upload_time": "2019-09-27T23:08:42", "url": "https://files.pythonhosted.org/packages/64/1a/2324b2c81f9f5c016bbb4e59408c813faaff61939c97f73aa2919881fa40/robel-0.1.1.tar.gz" } ] }