The iTaSC Software
The software implements the iTaSC-Skill framework in Orocos, which is integrated in ROS by the Orocos-ROS-integration [1]. The Real-Time Toolkit (RTT) of the Orocos project enables the control of robots on a hard-realtime capable operating system, e.g. Xenomai-Linux or RTAI-Linux. The rFSM subproject of Orocos allows scripted Finite State Machines, hence Skills, to be executed in hard realtime. The figure below shows the software architecture, mentioning the formulas for the resolved velocity case without prioritization for clarification. The key advantages of the software design include:
- the modular design, allowing users to implement their own solver, scene graph, motion generators ...,
- the modular task specification that allows users to reuse tasks, and enables a future task-web application to down- or upload tasks,
- the flexible user interface, allowing users to change the weights and priorities of different constraints, and to add or remove constraints.
Furthermore, the Bayesian Filtering Library (BFL) and Kinematics and Dynamics Library (KDL) of the Orocos project are used to retrieve stable estimates out of sensor data, and to specify robot and virtual kinematic chains respectively.
iTaSC framework scheme
License
The iTaSC software is licensed under a dual LGPLv2.1/BSD license. You may redistribute this software and/or modify it under either the terms of the GNU Lesser General Public License version 2.1 (
LGPLv2.1) or (at your discretion) of the Modified BSD License.
Acknowledgements
The developers gratefully acknowledge the financial support by:
- European FP7 project Rosetta (FP7-230902, Robot control for skilled execution of tasks in natural interaction with humans; based on autonomy, cumulative knowledge and learning)
- European FP7 project BRICS (FP7-231940, Best practices in robotics)
- KU Leuven's Concerted Research Action GOA/2010/011 Global real-time optimal control of autonomous robots and mechatronic systems
- Flemish FWO project G040410N Autonome manipulatietaken met een vliegende robot. (Autonomous manipulation with a flying robot.)
Roadmap
We are interested in (contributions to):
- Include other types of constraints, eg. inequality constraints
- Expand the capabilities to include uncertainty constraints (and make a nice example/tutorial)
- Include resolved acceleration control
- Make more tutorials and examples (eg. including MTTD)
- ...
(to be expanded)
References
- [1] R. Smits and H. Bruyninckx. Composition of complex robot applications via data flow integration. In Proceedings of the IEEE International Conference on Robotics and Automation, pages 5576–5580, Shangai, China, 2011.