Overview » History » Version 8

« Previous - Version 8/17 (diff) - Next » - Current version
S. Wrede, 11/19/2014 09:23 PM


Overview

What are RSB and the RS* ecosystem?

In one sentence, RSB and the RS* ecosystem are a collection of software projects that support the development, operation and analysis of event-based multi-platform, multi-language distributed systems developed by the cognitive systems engineering group.

OK, but what does that actually mean?

RSB and the RS* ecosystem

Most of these projects are named "RS<some letter>" where "RS" is short for "Robotics* Systems". Here are the most commonly used ones:

RSC Robotics Systems Commons A C++ library of frequently needed functions
RSB Robotics Service Bus See next paragraph
RSBag Robotics Systems Bag Tools Record/replay communication between programs
RST Robotics Systems Types Collection of data types; supporting infrastructure

*While RSB was developed in a robotics context, it is not limited to robotics but should be applicable to a wide range of technical systems.

event-based […] distributed systems

The main purpose of RSB is to enable software components, potentially running on multiple computers, to exchange data in a principled and efficient way. Events are one kind of flexible building block form which more complex forms of communication can be constructed. Events are routed transparently to participating components over a logically unified bus architecture that can be established using different network protocols according to application requirements. The RSB library provides a set of well tested communication patterns such as Publish/Subscribe or (Asynchronous) Remote Procedure Calls on the event-driven core that are available to application developers.

development, operation and analysis of […] systems

Applications using RSB, their communication and involved data types can be inspected, monitored, recorded, replayed and analyzed. These features aid the development, operation and analysis of systems.

multi-platform

RSB and the RS* ecosystem can be used on Linux, MacOS, Windows and Android. The native C++ implementation runs on standard x86 as well as ARM-based systems such as the BeagleBoard.

multi-language

Components using RSB and the RS* ecosystem can be written in C++, Python, Java, Common Lisp and with some restrictions Matlab.

developed by the Cognitive System Engineering Group

See http://www.cor-lab.de/cognitive-systems-engineering. For the kinds of support we provide , see next section.

Documentation

Project Project Website Manual API Documentation
RSC Redmine Project C++
RSB Redmine Project RSB Manual C++ Python Java
RSBag Redmine Project RSBag Manual
RST Redmine Project RST Manual

An overview of publications related to RSB can be found in the RSB Manual.

Access

On Ubuntu Trusty systems, RSB and the RS* ecosystem can be accessed in two ways:
  1. Using the pre-installed software in /vol/isy/2014-15/releases/trusty/
  2. Using Debian packages (see instructions)

In both cases, RS* software can be used in software projects as described in the build system tutorial.

Software /vol/isy/ Debian Package(s)
RSC C++: librsc0.10
RSB C++: rsb-tools-cpp0.10, Common Lisp: rsb-tools-cl0.10
RSB Tools /vol/isy/2014-15/releases/trusty/bin/rsb-{logger,send,…}{cl,cpp}0.10 C++: librsb0.10
RSBag Tools /vol/isy/2014-15/releases/trusty/bin/bag-{record,play,…}cl0.10 Common Lisp: rsbag-bin-cl0.10
RST C++, Python, Java: rst0.10

Support