Rofunc: The Full Process Python Package for Robot Learning from Demonstration and Robot Manipulation
Project description
Rofunc: The Full Process Python Package for Robot Learning from Demonstration and Robot Manipulation
Repository address: https://github.com/Skylark0924/Rofunc
Rofunc package focuses on the Imitation Learning (IL), Reinforcement Learning (RL) and Learning from Demonstration ( LfD) for (Humanoid) Robot Manipulation. It provides valuable and convenient python functions, including demonstration collection, data pre-processing, LfD algorithms, planning, and control methods. We also provide an Isaac Gym-based robot simulator for evaluation. This package aims to advance the field by building a full-process toolkit and validation platform that simplifies and standardizes the process of demonstration data collection, processing, learning, and its deployment on robots.
- Rofunc: The Full Process Python Package for Robot Learning from Demonstration and Robot Manipulation
Installation
Install from PyPI (stable version)
The installation is very easy,
pip install rofunc
# [Option] Install with baseline RL frameworks (SKRL, RLlib, Stable Baselines3) and Envs (gymnasium[all], mujoco_py)
pip install rofunc[baselines]
and as you'll find later, it's easy to use as well!
import rofunc as rf
Thus, have fun in the robotics world!
Note Several requirements need to be installed before using the package. Please refer to the installation guide for more details.
Install from Source (nightly version, recommended)
git clone https://github.com/Skylark0924/Rofunc.git
cd Rofunc
# Create a conda environment
# Python 3.8 is strongly recommended
conda create -n rofunc python=3.8
# For Linux user
sh ./scripts/install.sh
# [Option] Install with baseline RL frameworks (SKRL, RLlib, Stable Baselines3)
sh ./scripts/install_w_baselines.sh
# [Option] For MacOS user (brew is required, Isaac Gym based simulator is not supported on MacOS)
sh ./scripts/mac_install.sh
Note If you want to use functions related to ZED camera, you need to install ZED SDK manually. (We have tried to package it as a
.whl
file to add it torequirements.txt
, unfortunately, the ZED SDK is not very friendly and doesn't support direct installation.)
Documentation
To give you a quick overview of the pipeline of rofunc
, we provide an interesting example of learning to play Taichi
from human demonstration. You can find it in the Quick start
section of the documentation.
The available functions and plans can be found as follows.
Note โ : Achieved ๐: Reformatting โ: TODO
Data | Learning | P&C | Tools | Simulator | |||||
---|---|---|---|---|---|---|---|---|---|
xsens.record |
โ | DMP |
โ | LQT |
โ | config |
โ | Franka |
โ |
xsens.export |
โ | GMR |
โ | LQTBi |
โ | logger |
โ | CURI |
โ |
xsens.visual |
โ | TPGMM |
โ | LQTFb |
โ | datalab |
โ | CURIMini |
๐ |
opti.record |
โ | TPGMMBi |
โ | LQTCP |
โ | robolab.coord |
โ | CURISoftHand |
โ |
opti.export |
โ | TPGMM_RPCtl |
โ | LQTCPDMP |
โ | robolab.fk |
โ | Walker |
โ |
opti.visual |
โ | TPGMM_RPRepr |
โ | LQR |
โ | robolab.ik |
โ | Gluon |
๐ |
zed.record |
โ | TPGMR |
โ | PoGLQRBi |
โ | robolab.fd |
โ | Baxter |
๐ |
zed.export |
โ | TPGMRBi |
โ | iLQR |
๐ | robolab.id |
โ | Sawyer |
๐ |
zed.visual |
โ | TPHSMM |
โ | iLQRBi |
๐ | visualab.dist |
โ | Humanoid |
โ |
emg.record |
โ | RLBaseLine(SKRL) |
โ | iLQRFb |
๐ | visualab.ellip |
โ | Multi-Robot |
โ |
emg.export |
โ | RLBaseLine(RLlib) |
โ | iLQRCP |
๐ | visualab.traj |
โ | ||
mmodal.record |
โ | RLBaseLine(ElegRL) |
โ | iLQRDyna |
๐ | oslab.dir_proc |
โ | ||
mmodal.sync |
โ | BCO(RofuncIL) |
๐ | iLQRObs |
๐ | oslab.file_proc |
โ | ||
BC-Z(RofuncIL) |
โ | MPC |
โ | oslab.internet |
โ | ||||
STrans(RofuncIL) |
โ | RMP |
โ | oslab.path |
โ | ||||
RT-1(RofuncIL) |
โ | ||||||||
A2C(RofuncRL) |
โ | ||||||||
PPO(RofuncRL) |
โ | ||||||||
SAC(RofuncRL) |
โ | ||||||||
TD3(RofuncRL) |
โ | ||||||||
CQL(RofuncRL) |
โ | ||||||||
TD3BC(RofuncRL) |
โ | ||||||||
DTrans(RofuncRL) |
โ | ||||||||
EDAC(RofuncRL) |
โ | ||||||||
AMP(RofuncRL) |
โ | ||||||||
ASE(RofuncRL) |
โ | ||||||||
ODTrans(RofuncRL) |
โ |
Star History
Citation
If you use rofunc in a scientific publication, we would appreciate citations to the following paper:
@software{liu2023rofunc,
title={Rofunc: The full process python package for robot learning from demonstration and robot manipulation},
author={Liu, Junjia and Li, Chenzui and Delehelle, Donatien and Li, Zhihao and Chen, Fei},
month=jun,
year= 2023,
publisher={Zenodo},
doi={10.5281/zenodo.8084510},
url={https://doi.org/10.5281/zenodo.8084510}
}
Related Papers
- Robot cooking with stir-fry: Bimanual non-prehensile manipulation of semi-fluid objects (IEEE RA-L 2022 | Code)
@article{liu2022robot,
title={Robot cooking with stir-fry: Bimanual non-prehensile manipulation of semi-fluid objects},
author={Liu, Junjia and Chen, Yiting and Dong, Zhipeng and Wang, Shixiong and Calinon, Sylvain and Li, Miao and Chen, Fei},
journal={IEEE Robotics and Automation Letters},
volume={7},
number={2},
pages={5159--5166},
year={2022},
publisher={IEEE}
}
- SoftGPT: Learn Goal-oriented Soft Object Manipulation Skills by Generative Pre-trained Heterogeneous Graph Transformer (IROS 2023๏ฝCode coming soon)
@article{liu2023softgpt,
title={SoftGPT: Learn Goal-oriented Soft Object Manipulation Skills by Generative Pre-trained Heterogeneous Graph Transformer},
author={Liu, Junjia and Li, Zhihao and Calinon, Sylvain and Chen, Fei},
journal={arXiv preprint arXiv:2306.12677},
year={2023}
}
- BiRP: Learning Robot Generalized Bimanual Coordination using Relative Parameterization Method on Human Demonstration (IEEE CDC 2023 | Code)
@article{liu2023birp,
title={BiRP: Learning Robot Generalized Bimanual Coordination using Relative Parameterization Method on Human Demonstration},
author={Liu, Junjia and Sim, Hengyi and Li, Chenzui and Chen, Fei},
journal={arXiv preprint arXiv:2307.05933},
year={2023}
}
The Team
Rofunc is developed and maintained by the CLOVER Lab (Collaborative and Versatile Robots Laboratory), CUHK.
Acknowledge
We would like to acknowledge the following projects:
Learning from Demonstration
Planning and Control
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 rofunc-0.0.2.5.tar.gz
.
File metadata
- Download URL: rofunc-0.0.2.5.tar.gz
- Upload date:
- Size: 100.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8f87b9542fafadc1dd14658a08e4b13e44e2eae1c5a5079bf4da09d0ce12017 |
|
MD5 | e42bc83e06e058f277203ca236af4908 |
|
BLAKE2b-256 | 7302297d327ff76b9d5e59cb0f44a63666aa38cab270aa9e2f24f11374694fc9 |
File details
Details for the file rofunc-0.0.2.5-py3-none-any.whl
.
File metadata
- Download URL: rofunc-0.0.2.5-py3-none-any.whl
- Upload date:
- Size: 101.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1edeea9fc9c207eb3f3c7853fda47dd7dada791f352dd3465c2533e15d170eaa |
|
MD5 | 9c820eacbc20d56f68549000104bd842 |
|
BLAKE2b-256 | 4b740ba05903b21287a5bf0283f05ca6a4acdf9b20bc61212399e1dd4a87a800 |