The Orocos Component Builder’s Manual¶
How to Read this Manual¶
This manual is for Software developers who wish to write their own software components using the Orocos Toolchain. The HTML version of this manual links to the API documentation of all classes.
Component Interfaces¶
The most important Chapters to get started building a component are presented first. Orocos components are implemented using the ‘TaskContext’ class and the following Chapter explains step by step how to define the interface of your component, such that you can interact with your component from a user interface or other component.
Component Implementation¶
For implementing algorithms within your component, various C++ function hooks are present in wich you can place custom C++ code. As your component’s functionality grows, you can extend its scripting interface and call your algorithms from a script.
The Orocos Scripting Chapter details how to write programs and state machines. “Advanced Users” may benefit from this Chapter as well since the scripting language allows to ‘program’ components without recompiling the source.
If you’re familiar with the Lua programming language, you can also implement components and statemachines in real-time Lua scripts, check out the Lua Cookbook website.
Orocos Toolchain Overview¶
The Toolchain allows setup, distribution and the building of real-time software components. It is sometimes refered to as ‘middleware’ because it sits between the application and the Operating System. It takes care of the real-time communication and execution of software components.
Fig. 1 Orocos Toolchain as Middleware¶
The Toolchain provides a limited set of components for application development. The Orocos Component Library (OCL) is a collection of infrastructure components for building applications.
The Toolchain contains components for component deployment and distribution, real-time status logging and data reporting. It also contains tools for creating component packages, extremely simple build instructions and code generators for plain C++ structs and ROS messages.