the Robot Construction Kit

Syskit-enabled Bundles

When using Syskit, the bundles are first Roby applications. As such, the description of the file layout in a Roby application applies.

This page will start by explaining how one turns a plain Roby application into a Syskit-enabled bundle. We will then summarize parts that are added in addition to the Roby layout in a Roby application that uses Syskit.

Creating Syskit-enabled Roby applications

The bundles created in Rock are already Syskit-enabled, i.e. if you do

rock-create-bundle mybundle
cd mybundle
roby init

The resulting application is already using Syskit.

However, if you wrote a “plain” Roby application and want to use Syskit in it, you should enable the Syskit plugin and pick the temporal scheduler. Edit config/init.rb and add: 'syskit'
require 'roby/schedulers/temporal'
Roby.scheduler =

Once you have done that, run

roby init

To add templates for Syskit-specific directories and files.

Syskit-specific File Layout

This section deals with the parts of the file layout that are specific to Syskit. Refer to this page for the generic Roby parts

YAML configuration files for the oroGen task contexts. The file names should always be the name of the corresponding oroGen task context model (i.e. xsens_imu::Task.yml for the xsens_imu::Task). See this page for more details
profile definitions. The file names should be the snake_case version of the profile’s name. For instance, an AvalonAUV profile should be stored in models/profiles/avalon_auv.rb.
definitions of compositions and data services. One composition should be defined in a single file, and the file names should be the snake_case version of the composition name. For instance, a PoseEstimator composition should be stored in models/blueprints/pose_estimator.rb. The data services should be grouped “by topic” (e.g. all pose-related data services are stored in the rock bundle under models/blueprints/pose). Finally, device models should always be defined in a models/blueprints/devices.rb file, following the structure stored in rock bundle’s models/blueprints/devices.rb. The device file from other bundles should be explicitly loaded there, prefixing the models/ folder by the bundle name, as e.g.
require 'rock/models/blueprints/devices'
extensions to task context models. The file names must match the oroGen project name of the extended tasks. These files are loaded on-demand, when the corresponding oroGen project is loaded. See this page for more details.