13.01.2014 Views

PDF 1.938kB

PDF 1.938kB

PDF 1.938kB

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.2. COMPONENT-BASED ROBOTIC MIDDLEWARES 7<br />

easy definition of the robots kinematic. To publish the frames a robot state publisher is provided<br />

which determines the tf frames from the raw joint data.<br />

The provided tools in ROS greatly support the developer with the use of coordinate frames, because<br />

the framework takes care of how the transformations are done and how the information is<br />

exchanged between components. The developer just has to specify the transformation his interested<br />

in. However, ROS handles all transformations in the same way and does not divide between static and<br />

dynamic frames. There is also no way in ROS to determine the quality of a transformation chain to<br />

find out if it satisfies the requirements of the application. Further it always publishes all TF Data to all<br />

components using tf, also if the TF Data is not needed to perform the transformation the component<br />

is interested in.<br />

The ROS framework inspired this work through its powerful build in support for transformations<br />

and the use of URDF to describe the kinematics of a robot. Further the disadvantages of ROS showed<br />

topics where improvements are needed.<br />

2.2.2 OROCOS<br />

The Open Robot Control Software (OROCOS) project [6] is a framework which allows components<br />

to run in hard real time and on multiple computers. It comes with a special Kinematics and Dynamics<br />

library called KDL. This library supports the modelling and computation of kinematic chains out of<br />

primitives like segments and joints. After the construction of the model, transformations between<br />

frames can be easily calculated by different solvers. Right now only forward kinematic solvers are<br />

implemented but own inverse kinematic solvers can be added. Further the use of the KDL library is<br />

not only limited to robotics, it is also useful for computer animated figures or human models.<br />

The KDL library in OROCOS is a good tool to solve kinematic chains but OROCOS has no special<br />

build in support to distribute information of the tf tree between different components. Thus the<br />

developer has to decide on his own how this information should be exchanged and how components<br />

deal with this information. Further like in ROS there is also no method the determine the quality of a<br />

transformation chain.<br />

2.2.3 Robot Technology Middleware (RT-Middleware)<br />

OpenRTM-aist [1] is an open source implementation of an RT-Middleware and fully compatible with<br />

the Robot Technology Component Specification from OMG [25]. The framework provides a component<br />

model for distributed RT systems and also defines standard interfaces for the components. It<br />

supports components at three different levels. Components for fine granularity level, such as a motor<br />

or sensor. Components of middle-fine granularity level such as a mobile robot with some sensors and<br />

rough granularity level such as a humanoid robot.<br />

Further each component has an activity which can be in different states like INITIALIZE, READY,<br />

ACTIVE, ERROR. The states allows entry, do and exit actions which make it possible to control the<br />

action of many components similarly. In the paper where RT-Middleware [1] was proposed it is said<br />

that coordinate system handling is indispensable for RT-Middleware and it should be either realized<br />

as a service or imported into the RTM specification. Until now its not available in the official RTM<br />

release neither as a service nor as an import into the specification.<br />

Nevertheless there exist implementations in form of components in projects where RTM is used.<br />

One example is [26] where an intelligent space called iSpace is developed on the base of OpenRTMaist.<br />

For the iSpace several utility components were implemented where one is responsible for coordinate<br />

frame transformation. The input for this component is the data that should be transformed and

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!