DFL-TORO
DFL-TORO is a one-shot demonstration framework for learning time-optimal robotic manufacturing tasks. It optimizes Learning from Demonstration (LfD) by minimizing the need for multiple demonstrations, resulting in efficient, noise-free, and jerk-regulated trajectories. Designed for intuitive kinesthetic demonstrations, DFL-TORO enhances robotic programming efficiency and precision in tasks such as pick-and-place. Evaluations with robots like the Franka Emika Research 3 (FR3) and ABB YuMi demonstrate its effectiveness in transforming demonstrations into optimized, high-performance manufacturing solutions. Video
Modules and Packages
Principal Modules
The principal modules comprising DFL-TORO are briefly described in the following table:
Module | Description |
---|---|
lfd_interface | The LFD Interface module is the core element of DFL-TORO. This module is responsible for providing an interface to various modules of the software and allowing interaction of the user with different functionalities of the software. The main design objective in developing this module was to provide a standard interface to enhance the extensibility and modularity of the framework. |
lfd_smoothing | The main role of the this module is to take raw recorded demonstrations and convert them into optimal demonstration trajectories. |
lfd_dmp | This module is the implementation of Dynamic Movement Primitives (DMPs), which is responsible for training demonstrations and planning trajectories based on the required start and goal configuration. |
Besides the principal packages, several other packages are included to enable implementation on FR3 and ABB Dual-Arm YuMi.
FR3 Modules
Module | Description |
---|---|
franka_ws | Launch files and required config to run different controllers on FR3. |
fr3_moveit_config | Moveit configuration package for FR3. |
franka_drake | Description package to enable using FR3 model in PyDrake. |
ABB YuMi Modules
Module | Description |
---|---|
yumi_bringup | Source files and scripts required to control ABB Yumi via the ABB Robot Driver |
yumi_moveit_config | Moveit configuration package for ABB Yumi. |
yumi_drake | Description package to enable using Yumi model in PyDrake. |
Notes
Please be aware that the included packages are intended for academic use and have not undergone productization. They are provided "as-is," with only limited support available.
License
This project is licensed under the SnT Academic License- see the LICENSE for more details.
Contributions
Contributions are welcome! If you have any suggestions, bug reports, or feature requests, please create a new issue or pull request.
Acknowledgements
This work was supported by the Luxembourg National Research Fund (FNR) through the Project ‘‘A Combined Machine Learning Approach for the Engineering of Flexible Assembly Processes Using Collaborative Robots (ML-COBOTS)’’ under Grant 15882013.
If you use this framework in your scientific research, we would appreciate if you cite the corresponding paper:
@article{barekatain2024dfl,
title={Dfl-toro: A one-shot demonstration framework for learning time-optimal robotic manufacturing tasks},
author={Barekatain, Alireza and Habibi, Hamed and Voos, Holger},
journal={IEEE Access},
year={2024},
publisher={IEEE}
}