Components for Control

The Orocos Component Library uses the Real-Time Toolkit (RTT) for constructing all its components.

Some components use the Kinematics and Dynamics Library (KDL), the Bayesian Filtering Library (BFL) or other libraries.

The OCL v2.0 is now an integral part of the Orocos Toolchain and only contains components for setting up and monitoring applications. Applications or hardware specific components have been removed.

Below is a list of components in the OCL 1.x release series:

Hello World [ready]
The HelloWorld component demonstrates the TaskContext interface and how it can be used in applications. This component is used in the tutorial (NOTE: for code examples and a tutorial, see the RTT Sources page.)
Reporting [ready]
Components to report the data flow between components to the console or a file. The reporter components can be configured to report the data flow at specific data ports of a component, or to report all to data flow from and to a component at once.
Taskbrowser [ready]
A text oriented user interface for online interaction with components. The taskbrowser allows you to interact with a component through its task context interface: call methods and commands, handle properties and data ports, etc. This is your main tool during component development, testing or experimenting.
Deployment [beta stage]
Component for connecting and configuring an application.
Viewer [beta stage]
A Component which sends naxisposition values to the KDLviewer.
Hardware [ready]
Components for various devices (like sensors) and hardware platforms. The simulation devices can be used by everyone independent of the hardware.
kuka
Implementation for use with Kuka160 and Kuka361, simulation can be used for everyone, realtime execution only in our lab (KULeuven/PMA/robotics) since the interface to the different DAQ-cards is very specific. A software EmergencyStop is implemented to safely stop the robots.
wrench
Implementation for use with JR3-sensor, can be used by everyone using the pci-interface to a JR3-sensor. The specific lxrt-drivers can be found in the driver subdirectory.
camera
Implementation for use with firewire camera's and OpenCV. Can be used by everyone.
krypton
Implementation to get Krypton (see www.metris.com) measurements in realtime. The specific lxrt-drivers can be found in the driver subdirectory.
demotool
Implementation to combine Krypton and WrenchSensor measurement for the human demonstration tool in our lab (KULeuven/PMA/Robotics)
laserdistance
Implementation to read and convert the LaserSensor measurements. Can only be used through the NI-6024 pci card in our lab (KULeuven/PMA/Robotics). But can be an example for everyone.
io
Implementation to read/write the Orocos device interface. It can handle the RTT::AnalogInInterface, RTT::AnalogOutInterface, RTT::DigitalInInterface and RTT::DigitalOutInterface objects. The analog IO is made available as Data ports and methods, while the digital IO is available only through methods.
Motion_control [ready]
Components for trajectory interpolation and (PID) control in cartesian and joint space. These components need KDL for the path interpolation and for the cartesian operations.
naxes
These components include different controllers and generators(interpolators) and an effector(output) and sensor(input) which sends velocity setpoints to and reads position measurements from dataports shared with one of the hardware-components. It can be used for any number of axes.
cartesian
These components include different controllers and generators(interpolators) that control cartesian setpoints in 6D (3 translations and 3 rotations). It uses a KDL::KinematicFamily (see KDL) to convert the axes positions to cartesian position and the cartesian velocity to axes velocities. It gets and sends its position and velocities to dataports shared with one of the hardware-components. It can be used for any number of axes.