DOTE

Chain And Rate

Friday, January 30, 2009

OROCOS Project

What is Orocos?

Orocos” is the acronym of the Open Robot Control Software project. The project's aim is to develop a general-purpose, free software, and modular framework for robot and machine control. The Orocos project supports 4 C++ libraries: the Real-Time Toolkit, the Kinematics and Dynamics Library, the Bayesian Filtering Library and the Orocos Component Library.

Orocos Libraries
  • The Orocos Real-Time Toolkit (RTT) is not an application in itself, but it provides the infrastructure and the functionalities to build robotics applications in C++. The emphasis is on real-time, on-line interactive and component based applications.
  • The Orocos Components Library (OCL) provides some ready to use control components. Both Component management and Components for control and hardware access are available.
  • The Orocos Kinematics and Dynamics Library (KDL) is a C++ library which allows to calculate kinematic chains in real-time.
  • The Orocos Bayesian Filtering Library (BFL) provides an application independent framework for inference in Dynamic Bayesian Networks, i.e., recursive information processing and estimation algorithms based on Bayes' rule, such as (Extended) Kalman Filters, Particle Filters (Sequential Monte methods), etc.
Orocos is a free software project, hence its code and documentation are released under Free Software licenses.

Target audience

Robotics or machine control in general is a very broad field, and many roboticists are pursuing quite different goals, dealing with different levels of complexity, real-time control constraints, application areas, user interaction, etc. So, because the robotics community is not homogeneous, Orocos targets four different categories of “Users” (or, in the first place, “Developers”):
  1. Framework Builders.
    These developers do not work on any specific application, but they provide the infrastructure code to support applications. This level of supporting code is most often neglected in robot software projects, because in the (rather limited) scope of each individual project, putting a lot of effort in a generic support platform is often considered to be “overkill”, or even not taken into consideration at all. However, because of the large scope of the Orocos project, the supporting code (the “Framework”) gets a lot of attention. The hope is, of course, that this work will pay of by facilitating the developments for the other “Builders”. The RTT, KDL and BFL are created by Framework builders
  2. Component Builders.
    Components provide a “service” within an application. Using the infrastructure of the framework, a Component Builder describes the interface of a service and provides one or more implementations. For example a Kinematics Component may be designed as such that it can “serve” different kinematic architectures. Other examples are Components to hardware devices, Components for diagnostics, safety or simulation. The OCL is created by Component Builders.
  3. Application Builders.
    These developers use the Orocos' Framework and Components, and integrate them into one particular application. That means that they create a specific, application-dependent architecture: Components are connected and configured as such that they form an application.
  4. End Users.
    These people use the products of the Application Builders to program and run their particular tasks.
End Users do not directly belong to the target audience of the Orocos project, because Orocos concentrates on the common framework, independent of any application architecture. Serving the needs of the End Users is left to (commercial and non-commercial) Application Builders.