Orocos Project History
Orocos stands for "Open RObot Control Software". (In non-robotics contexts, "Open Realtime Control Services" might be a more appropriate name.)
The idea for starting a Free Software project for robot control was born in December 2000, as an idea of Herman Bruyninckx, motivated by over two decades of rather disappointing experiences in trying to use commercial robot control software for advanced robotics research. The disappointments were invariably caused by the lack of access to the deepest layers of the hardware control, hence making sensor-based control extensions ineffective and inefficient, to say the least.
The idea of an "open" control framework, together with a draft of a possible project proposal, was launched on the mailinglist of EURON, the European Robotics Network. This email gave rise to a lot of responses, even though it was sent during the Christmas period. Within about two weeks, a proposal (which became IST-2000-31064) was made ready, and sent to the European Union. Contacts with the responsible Officer made clear that the size of the project had to be very modest, so that only three partners were selected: K.U.Leuven in Belgium ( Orocos@KUL ), LAAS Toulouse in France ( Orocos@LAAS ), and KTH Stockholm in Sweden ( Orocos@KTH ). Each of these three groups would later receive only one full man-year of support. The EU-sponsored project started in September 2001, and had a duration for two years. At KU Leuven, this funding was complemented by a Flemish IWT project, with three high-end machine tool builders (Bekaert, LVD and Vandewiele), who wanted a realtime Linux-based alternative to their proprietary machine control software. This combination of projects allowed Herman Bruyninckx to hire Peter Soetens as a PhD student, to work full-time on the design and first implementation.
The EU sponsoring also provides some travel grants to invite non-sponsored people to the Orocos project meetings. This, together with the classical attributes of a web page and a mailinglist, stimulated quite some discussions and exchanges of ideas.
A first version of the hard real-time core was released by Peter in the Summer of 2002, but it was very preliminary and hard to use. In November 2002, the first version was released with which simple position and velocity control of a six degrees-of-freedom robot manipulator arm was possible.
After the EU sponsored project was finished, the project partners continued to improve on the delivered software. The realtime Orocos framework developments at the KU Leuven, knew already 7 major software releases after September 2003. At KTH Stockholm, several releases have been made for component-based robotic systems, and the project has been renamed to Orca. Although not a project funded partner, the FAW Ulm maintains Free CORBA communication patterns for modular robotics : Orocos@FAW.
Because of its applicability to industrial applications, the realtime Orocos framework has grown into the machine control field and outgrown its robotics roots. The modularity of Orocos packages reflects this versatility. The Flanders Mechatronics Technology Centre sponsored the development from 2005 until 2009 of the realtime Orocos framework and facilitates the integration of Orocos in industrial machines of machinetool builders.
During that period, the Orocos project introduced two new sub-projects, as complements to the core "Real-Time Toolkit" (RTT): the "Bayesian Filtering Library" (BFL) via the efforts of Klaas Gadeyne, and the "Kinematics and Dynamics Library" (KDL) initiated by Ruben Smits (and reusing some older work by Erwin Aertbeliën and Herman Bruyninckx). The vision behind KDL and BFL was to provide stand-alone functionality, that can be embedded in various software frameworks, but, of course, with Orocos/RTT as a first and well-supported target. This vision has led already to the acceptance of KDL within the ROS framework.
PAL Robotics sponsored the effort required for the 2.0 release of the Orocos toolchain and the necessary development meeting in Barcelona to prepare the release of that version.
Today, The SourceWorks is the main contributor to the Orocos toolchain's real-time infrastructure, while many other organizations build on top of that, for example, DFKI in Bremen, Germany provides the Rock Robotics tools for code generation and Orocos components. Indirect financial support has also been made available through research projects funded by the European Commission, such as BRICS or Rosetta.
Users and contributors around the world use Orocos software for sensor data processing, kinematics an machine or robot control. The copyright on Orocos code is shared by more than 20 contributors from various countries worldwide.
Design motivations
Orocos had, from Day 1, three objectives, that are still respected and actively supported until now:- Component-based: complex software systems are not constructed any more at (only) "compile time", but more and more at "deployment time" and even at "run time". That means that functionality has to be added according to the ideas of component-based system development, and that a compiler is not the only tool in the toolbox of an Orocos developer.
- Multi-vendor: complex control systems can only be constructed by picking components from different "vendors" (companies, free software and open source projects, programming frameworks, etc), and Orocos wants to be a "best practice" player in that context. This had led to many "Not Invented Here" syndrome discussions on the mailinglist: when is it better/possible/appropriate to extend Orocos with certain programming primitives, services or tools, and when should these developments be "outsourced" to other projects. The main motivator in these decisions is: does the extension influence the core of the Orocos project (that is, hard realtime efficiency), or not, and in case it does not, the outsourcing option is preferred.
- Focus: Orocos wants to be the best free software framework in its niche application domain, i.e., realtime control of robots and machine tools. This means that many extensions and featureitis are not accepted into the project, but delegated to "neighbouring" projects, such as ROS, CORBA, Xenomai, Boost, etc.
These motivations have been strongly influenced by the industrial partners that have supported the Orocos project over the years, and they are corroborated in recent years by the growing trend towards "Model-Driven Engineering".