Package: rofunc
Rofunc: The Full Process Python Package for Robot Learning from Demonstration and Robot ManipulationRepository address:https://github.com/Skylark0924/RofuncRofunc package focuses on theImitation Learning (IL), Reinforcement Learning (RL) and Learning from Demonstration (
LfD)for(Humanoid) Robot Manipulation. It provides valuable and convenient python functions, includingdemonstration 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 ManipulationInstallationInstall from PyPI (stable version)Install from Source (nightly version, recommended)DocumentationStar HistoryCitationRelated PapersThe TeamAcknowledgeLearning from DemonstrationPlanning and ControlInstallationInstall from PyPI (stable version)The installation is very easy,pipinstallrofunc# [Option] Install with baseline RL frameworks (SKRL, RLlib, Stable Baselines3) and Envs (gymnasium[all], mujoco_py)pipinstallrofunc[baselines]and as you'll find later, it's easy to use as well!importrofuncasrfThus, have fun in the robotics world!NoteSeveral requirements need to be installed before using the package. Please refer to
theinstallation guidefor more details.Install from Source (nightly version, recommended)gitclonehttps://github.com/Skylark0924/Rofunc.gitcdRofunc# Create a conda environment# Python 3.8 is strongly recommendedcondacreate-nrofuncpython=3.8# For Linux usersh./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.shNoteIf you want to use functions related to ZED camera, you need to
installZED SDKmanually. (We have tried to package it as
a.whlfile to add it torequirements.txt, unfortunately, the ZED SDK is not very friendly and doesn't support
direct installation.)DocumentationTo give you a quick overview of the pipeline ofrofunc, we provide an interesting example of learning to play Taichi
from human demonstration. You can find it in theQuick startsection of the documentation.The available functions and plans can be found as follows.Note✅: Achieved 🔃: Reformatting ⛔: TODODataLearningP&CToolsSimulatorxsens.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 HistoryCitationIf 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 PapersRobot 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 TeamRofunc is developed and maintained by
theCLOVER Lab (Collaborative and Versatile Robots Laboratory), CUHK.AcknowledgeWe would like to acknowledge the following projects:Learning from DemonstrationpbdlibRay RLlibElegantRLSKRLPlanning and ControlRobotics codes from scratch (RCFS)