|Keywords:||Robots, Framework, Components, Modular, Drivers, Real-time|
|Programming languages:||C++, Ruby|
|Ownership:||Since Rock contains a wide collection of tools, there is no single license that applies to all components. Instead each component defines is own license. Mainly LGPL, MIT and New BSD License are in use.|
The framework was developed to specifically address the following issues in existing solutions:
Sustainable systems: The architecture and the tools in Rock are designed with long-living systems in mind. In practice, it means that for us, error detection, reporting and handling is key in any robotic architecture.
Scalability: Provide the tools to be able to manage big systems with a minimum fuss. But we don’t require you to learn about these (complex) tools right away: as soon as you use rock’s component development tool, oroGen, you have the guarantee that your components can be integrated from simple scenarios using hardcoded C++ behaviors, to Ruby scripts up to the complete system monitoring tools.
Reusable codebase: Even though we think that the rock toolchain is one of the best out there, some other people might feel differently. And they might be right. That’s why, in rock, most of the functionality – from control to data display through data processing – is implemented in a way that is totally independent from rock’s integration framework. That’s right: just pick our drivers, localization algorithms and control loops and integrate them in your integration framework. You don’t have to do anything on our side, as the code is completely independent from the integration parts.
Rock is used as the software framework for most of the robots at the DFKI and is increasingly adopted in other environments. It is continuously updated to improve reliability and include new features.