RSX in a Nutshell

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.

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 "Robotics1 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

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.

Community

RSB is fully open source and mostly LGPLv3 licensed. It is currently mainly developed and maintained by the Cognitive System Engineering Group at CITEC and CoR-Lab with various contributions from in-house and external developers.

You will find many software components with RSB interface in the domain of robotics and interactive systems contributed by 3rd party developers in the Cognitive Interaction Toolkit if you search for rsb.

Fore more information on the CSE group, please visit 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++: librsb0.10
RSB Tools /vol/isy/2014-15/releases/trusty/bin/rsb-{logger,send,…}{cl,cpp}0.10 C++: rsb-tools-cpp0.10, Common Lisp: rsb-tools-cl0.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

1 While RSB was developed in a robotics context, it is not limited to robotics but should instead be applicable to a wide range of technical systems. The data types collected in the RST library provides a good overview of the main RSB application domains.