Overview » History » Version 12

Version 11 (S. Wrede, 11/19/2014 09:41 PM) → Version 12/17 (S. Wrede, 11/19/2014 09:43 PM)

h1. Overview

h2. 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 "Robotics[1] 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":http://beagleboard.org/.

> multi-language

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

h2. Community

RSB is fully open source and mostly LPGL licensed. It is currently mainly developed and maintained by the Cognitive System Engineering Group at CITEC and CoR-Lab.

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

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":https://toolkit.cit-ec.uni-bielefeld.de/ if you search for @rsb@.

h2. Documentation

|_. Project |_. Project Website |_. Manual |_. API Documentation |
| RSC | "Redmine Project":http://code.cor-lab.org/projects/rsc | | "C++":http://docs.cor-lab.de//rsc-api/0.10/html/index.html |
| RSB | "Redmine Project":http://code.cor-lab.org/projects/rsb | "RSB Manual (includes RSB tools)":http://docs.cor-lab.org/rsb-manual/0.10/html/index.html | "C++":http://docs.cor-lab.org/rsb-cpp-api/0.10/html/ "Python":http://docs.cor-lab.org/rsb-python-api/0.10/html/ "Java":http://docs.cor-lab.org/rsb-java-api/0.10/html |
| RSBag | "Redmine Project":http://code.cor-lab.org/projects/rsbag | "RSBag Manual (includes RSBag tools)":http://docs.cor-lab.org/rsbag-manual/0.10/html/index.html | |
| RST | "Redmine Project":http://code.cor-lab.org/projects/rst | "RST Manual (includes data type catalog)":http://docs.cor-lab.org/rst-manual/0.10/html/index.html | |

An overview of publications related to RSB can be found in the "RSB Manual":http://docs.cor-lab.de//rsb-manual/0.10/html/literature.html.

h2. Access

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

In both cases, RS* software can be used in software projects as described in the "build system tutorial":http://docs.cor-lab.de/build%20system%20essentials-tutorial/trunk/html/index.html.

|_. 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@ |

h2. Support

* Mailing-list
** Write: mailto:rsb@lists.cor-lab.uni-bielefeld.de
** Subscribe: https://lists.techfak.uni-bielefeld.de/cor-lab/mailman/listinfo/rsb
* IRC: #rsb IRC channel on irc.freenode.net
* Reporting Bugs: @https://code.cor-lab.org/projects/rs*/issues/new@.

fn1. 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.