Skip to content

πŸ€– The Full Process Python Package for Robot Learning from Demonstration

License

Notifications You must be signed in to change notification settings

ddonatien/Rofunc

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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 robotic Imitation Learning (IL) and Learning from Demonstration (LfD) fields and provides valuable and convenient python functions for robotics, 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

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)

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
conda activate rofunc

# Install the requirements and rofunc
pip install -r requirements.txt
pip install .

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

Note Currently, we provide a simple document; please refer to here. A comprehensive one with both English and Chinese versions is built via the readthedoc. We provide a simple but interesting example: learning to play Taichi by learning from human demonstration.

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.fk βœ… CURI βœ…
xsens.visual βœ… TPGMM βœ… LQTFb βœ… robolab.ik βœ… CURIMini πŸ”ƒ
opti.record βœ… TPGMMBi βœ… LQTCP βœ… robolab.fd β›” CURISoftHand πŸ”ƒ
opti.export βœ… TPGMMBiCoordLQR βœ… LQTCPDMP βœ… robolab.id β›” Walker βœ…
opti.visual βœ… TPGMR βœ… LQR βœ… robolab.tran βœ… Gluon πŸ”ƒ
zed.record βœ… TPGMRBi βœ… PoGLQRBi βœ… visualab.dist βœ… Baxter πŸ”ƒ
zed.export βœ… BCO πŸ”ƒ iLQR πŸ”ƒ visualab.ellip βœ… Sawyer πŸ”ƒ
zed.visual βœ… STrans β›” iLQRBi πŸ”ƒ visualab.traj βœ…
emg.record βœ… PPO(SKRL) βœ… iLQRFb πŸ”ƒ
emg.export βœ… SAC(SKRL) βœ… iLQRCP πŸ”ƒ
emg.visual βœ… TD3(SKRL) βœ… iLQRDyna πŸ”ƒ
mmodal.record β›” PPO(SB3) β›” iLQRObs πŸ”ƒ
mmodal.export βœ… SAC(SB3) β›” MPC β›”
TD3(SB3) β›” CIO β›”
PPO(RLlib) βœ…
SAC(RLlib) βœ…
TD3(RLlib) βœ…
PPO(ElegRL) βœ…
SAC(ElegRL) βœ…
TD3(ElegRL) βœ…
PPO(RofuncRL) πŸ”ƒ
SAC(RofuncRL) β›”
TD3(RofuncRL) β›”
CQL(RofuncRL) β›”

Star History

Star History Chart

Cite

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

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

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)
  2. pddlstream

About

πŸ€– The Full Process Python Package for Robot Learning from Demonstration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.8%
  • Other 0.2%