Rock

the Robot Construction Kit

Go to master Flavor stable
Introduction

Up to now, you have been writing down detailed instructions on how to bind components together using a Ruby script. After this tutorial, you will be able to use the modeling capabilities of Rock’s system management layer which allows you to describe the system you want to run and let the system management layer do the rest of the work, such as connecting components. There are multiple benefits to running systems using such a model-based layer. Among those:

  • Having a system monitoring, i.e. the ability to detect and represent errors. No more silent errors.
  • Extension of component networks: Quite often, a system needs not only functional components, but also support components (think: diagnostic components, communication bus support, hardware triggering readers, …). The model-based layer allows you to focus on your functional components and let the tooling automatically handle the support components.
  • Online system adaptation: The ability to reconfigure individual components or even a complete network of components at runtime.
  • Encoding of complex behaviour: Building of high-level “programs” which rely on (networks or compositions of) simple components.
  • “Think local, act global”: Managing a network even as small as 15+ components is a challenge. Rock’s system management layer allows you to decompose tasks and problems and think in small pieces, while the tooling takes care of generating the complete network of components.

This series of tutorials will introduce you to Rock’s advanced system management tools. This tutorial builds upon the results of the previous tutorials, and in particular Simulate a Robot and Adding a Joystick into the Mix, or that you at least installed the tutorial results. See the bottom of this page for instructions on how to do so.

The tutorial itself will use Rock’s system management layer to perform the same task than was previously done using a Ruby script. Further tutorials will then introduce some tooling that this layer offers, and go towards examples with more complex systems.