- European Robotics Forum 2011 Workshop on the Orocos Toolchain
- European Robotics Forum 2012: workshops
- Geometric relations semantics
- KDL wiki
- Kuka LBR user group
- Links of Orocos components
- OCL v1.x wiki
- RTT v1.x wiki
- Documentation suggestions
- Examples and Tutorials
- Frequently asked questions (FAQ)
- RTT Dictionary
- RTT on MS Windows
- The 1st RTT Developers Workshop
- The Road to RTT 2.0
- Goals for RTT 2.0
- Contribute! Which weakness have you detected in RTT?
- Contribute! Suggest a new feature to be included in RTT 2.0.
- Create Reference Application Architectures
- Detailed Roadmap
- Full distribution support
- RTT 2.0.0-beta1
- RTT 2.0.0-beta2
- RTT and OCL Cleanup
- Real time logging
- Redesign of the data flow interface
- Simplified, more robust default activities
- Streamlined Execution Flow API
- Upgrading from RTT 1.x to 2.0
- Using Eclipse and Orocos
- Using Git and Orocos
- Toolchain v2.x
- Wiki for site admins
- iTaSC wiki
Table of Contents
This page is for helping you understand what's in RTT/OCL 2.0.0-beta1 release and what's not.
CaveatsFirst the bad things:
- Do not use this release on real machines !
- There are *no* guarantees for real-time operation yet.
- CORBA transport does not work yet and needs to change drastically
- The API is 'pretty' stable, but the transport rework might have influences. This release will certainly not be binary compatible with the final 2.0.0 release.
- OCL has not completely catched up, and also needs to be restructured further into a leaner repository.
- Do not manually upgrade your code ! Use the rtt2-converter script found on this site first.
- RTT::Command is gone ! See Replacing Commands
- RTT::Event is gone ! See Replacing Events
- Reacting to Operations (former Event) is not yet possible in state machine scripts.
- RTT::DataPort,BufferPort etc are gone ! See RTT 2.0 Data Flow Ports
- In case you have patches on the orocos-rtt source tree, all files have moved drastically. First all went into rtt/ instead of src/. Next, all non-API files went into subdirectories.
For all upgrade-related notes, see Upgrading from RTT 1.x to 2.0
Missing thingsThe final release will have these, but this one has not:
- A plugin system in RTT to load types (type kits) and plugins (like scripting, marshalling,...)
- A tool/workflow to create type kits automatically
- A working CORBA transport
- RT-Logging framework
- Service deployment in the DeploymentComponent
- Misc fixes/minor feature additions and better documentation
- Repackaged OCL tree. Especially, in OCL, only TaskBrowser, Reporting and DeploymentComponent are fully operational.
- Debian packages have not been updated yet
- A couple of unit tests still fail. You should see at the end:
88% tests passed, 3 tests failed out of 25 The following tests FAILED: 6 - mqueue-test (Failed) 19 - types_test (Failed) 22 - function_test (Failed)
Updated Examples and DocumentationMost documentation (manuals and online API reference) is up-to-date, but sometimes a bit rough or lacking illustrations. The rtt-exercises have been upgraded to support RTT 2.0 API.
New style Data PortsThe data flow ports have been reworked to allow far more flexible component development and system deployment. Details are at RTT 2.0 Data Flow Ports. Motivation can be found at Redesign of the data flow interface
Improved TaskBrowserAllows you to declare new variables, shows what a component requires and provides and if these interfaces are connected.
Improved DeploymentSpecify port connection properties using XML, connect provided to required services.
Improved ReportingData flow logs are now sample based, such that you can trace the flow and state of connections.
Method vs OperationThe RTT 1.x Method, Command and Event APIs have been removed and replaced by Method/Operation. Details are at Methods vs Operations
Real-Time AllocationRTT includes a copy of the TLSF library for supporting places where real-time allocation is beneficial. The RT-Logger infrastructure and the Method/Operation infrastructure take advantage of this. Normal users won't use this feature directly.
A real-time MQueue transportData flow between processes is now possible in real-time. The real-time MQueue transport allows to transport data between processes using Posix MQueues as well as in Xenomai.
For each type to be transported using the MQueue transport, a separate transport typekit must be available (this may change in the final 2.0 release).
Simplified APICreating a component has been greatly simplified and the amount of code to write reduced to the absolute minimum. Documentation of operations or ports is now optional. Attributes and properties can be added by using a plain C++ class variable, the need to specify templates has been removed in some places.
ServicesComponent interfaces are now defined as services and a component can 'provide' or 'require' a service. These tools can be used to connect methods to operations at run-time without the necessary lookup code. For example:
Method<bool(int,int)> setreso; setreso = this->getPeer("Camera")->getMethod<bool(int,int)>("setResolution"); if ( setreso.ready() == false ) log(Error) << "Could not find setResolution Method." <<endlog(); else setreso(640,480);
Method<bool(int,int)> setreso("setResolution"); this->requires("Camera")->addMethod(mymethod); // Deployment component will setup setResolution for us... setreso(640,480);