Skip to main content

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

Release License Documentation Status Build Status

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.

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 to requirements.txt, unfortunately, the ZED SDK is not very friendly and doesn't support direct installation.)

Documentation

Documentation Example Gallery

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 โœ… robolab.coord โœ… CURI โœ…
xsens.visual โœ… TPGMM โœ… LQTFb โœ… robolab.fk โœ… CURIMini ๐Ÿ”ƒ
opti.record โœ… TPGMMBi โœ… LQTCP โœ… robolab.ik โœ… CURISoftHand โœ…
opti.export โœ… TPGMM_RPCtl โœ… LQTCPDMP โœ… robolab.fd โ›” Walker โœ…
opti.visual โœ… TPGMM_RPRepr โœ… LQR โœ… robolab.id โ›” Gluon ๐Ÿ”ƒ
zed.record โœ… TPGMR โœ… PoGLQRBi โœ… visualab.dist โœ… Baxter ๐Ÿ”ƒ
zed.export โœ… TPGMRBi โœ… iLQR ๐Ÿ”ƒ visualab.ellip โœ… Sawyer ๐Ÿ”ƒ
zed.visual โœ… TPHSMM โœ… iLQRBi ๐Ÿ”ƒ visualab.traj โœ… Multi-Robot โœ…
emg.record โœ… RLBaseLine(SKRL) โœ… iLQRFb ๐Ÿ”ƒ
emg.export โœ… RLBaseLine(RLlib) โœ… iLQRCP ๐Ÿ”ƒ
emg.visual โœ… RLBaseLine(ElegRL) โœ… iLQRDyna ๐Ÿ”ƒ
mmodal.record โ›” BCO(RofuncIL) ๐Ÿ”ƒ iLQRObs ๐Ÿ”ƒ
mmodal.export โœ… BC-Z(RofuncIL) โ›” MPC โ›”
STrans(RofuncIL) โ›” RMP โ›”
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

Star History Chart

Citation

If you use rofunc in a scientific publication, we would appreciate citations to the following paper:

@misc{Rofunc2022,
      author = {Liu, Junjia and Li, Chenzui and Delehelle, Donatien and Li, Zhihao and Chen, Fei},
      title = {Rofunc: The full process python package for robot learning from demonstration and robot manipulation},
      year = {2022},
      publisher = {GitHub},
      journal = {GitHub repository},
      howpublished = {\url{https://github.com/Skylark0924/Rofunc}},
}

Related Papers

  1. 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}
}
  1. SoftGPT: Learn Goal-oriented Soft Object Manipulation Skills by Generative Pre-trained Heterogeneous Graph Transformer (IROS 2023 ๏ฝœ Code coming soon)
  2. Learning Robot Generalized Bimanual Coordination using Relative Parameterization Method on Human Demonstration (IEEE CDC 2023 | Code)

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

  1. pbdlib
  2. Ray RLlib
  3. ElegantRL
  4. SKRL

Planning and Control

  1. Robotics codes from scratch (RCFS)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rofunc-0.0.2.3.tar.gz (96.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rofunc-0.0.2.3-py3-none-any.whl (97.0 MB view details)

Uploaded Python 3

File details

Details for the file rofunc-0.0.2.3.tar.gz.

File metadata

  • Download URL: rofunc-0.0.2.3.tar.gz
  • Upload date:
  • Size: 96.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for rofunc-0.0.2.3.tar.gz
Algorithm Hash digest
SHA256 fb68a60821e0e9158ac4a20ff4f588710b89f28c682cf3bb2f5cc8d8f73bb65c
MD5 96a5daa13921f9ccc33017371a2f5781
BLAKE2b-256 8afd4bf8fee81aa299b43990fa02b66fd9121379c956bd789d3e4845ac7ffcae

See more details on using hashes here.

File details

Details for the file rofunc-0.0.2.3-py3-none-any.whl.

File metadata

  • Download URL: rofunc-0.0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 97.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for rofunc-0.0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4d55de063954a32fc0d77d19580ca13ccd90753e540c3f05cda744523ad83903
MD5 0ad26c89edcf70f5912247d8def9c704
BLAKE2b-256 9cd6629e39a646a8ab2e9da81c0baf83383d4cee2c8a07366373ce9dbbe3a6e1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page