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:- Using the pre-installed software in
/vol/isy/2014-15/releases/trusty/
- 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¶
- 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
.
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.