Overview » History » Version 11

S. Wrede, 11/19/2014 09:41 PM

1 1 J. Moringen
h1. Overview
2 1 J. Moringen
3 2 J. Moringen
h2. What are RSB and the RS* ecosystem?
4 1 J. Moringen
5 11 S. Wrede
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.
6 1 J. Moringen
7 1 J. Moringen
OK, but what does that actually mean?
8 1 J. Moringen
9 1 J. Moringen
> RSB and the RS* ecosystem
10 1 J. Moringen
11 10 J. Moringen
Most of these projects are named "RS<some letter>" where "RS" is short for "Robotics[1] Systems". Here are the most commonly used ones:
12 1 J. Moringen
13 1 J. Moringen
| RSC   | Robotics Systems Commons   | A C++ library of frequently needed functions        |
14 1 J. Moringen
| RSB   | Robotics Service Bus       | See next paragraph                                  |
15 1 J. Moringen
| RSBag | Robotics Systems Bag Tools | Record/replay communication between programs        |
16 1 J. Moringen
| RST   | Robotics Systems Types     | Collection of data types; supporting infrastructure |
17 8 S. Wrede
18 1 J. Moringen
> event-based […] distributed systems
19 1 J. Moringen
20 7 S. Wrede
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.
21 1 J. Moringen
22 1 J. Moringen
> development, operation and analysis of […] systems
23 1 J. Moringen
24 3 S. Wrede
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.
25 1 J. Moringen
26 1 J. Moringen
> multi-platform
27 1 J. Moringen
28 3 S. Wrede
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/.
29 1 J. Moringen
30 1 J. Moringen
> multi-language
31 1 J. Moringen
32 1 J. Moringen
Components using RSB and the RS* ecosystem can be written in C++, Python, Java, Common Lisp and with some restrictions Matlab.
33 1 J. Moringen
34 11 S. Wrede
h2. Community
35 1 J. Moringen
36 11 S. Wrede
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. 
37 11 S. Wrede
38 1 J. Moringen
See http://www.cor-lab.de/cognitive-systems-engineering. For the kinds of support we provide , see next section.
39 11 S. Wrede
40 11 S. Wrede
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@.
41 1 J. Moringen
42 1 J. Moringen
h2. Documentation
43 1 J. Moringen
44 1 J. Moringen
|_. Project   |_. Project Website                                        |_. Manual                                                                                          |_. API Documentation |
45 4 S. Wrede
| RSC         | "Redmine Project":http://code.cor-lab.org/projects/rsc   |                                                                                                   | "C++":http://docs.cor-lab.de//rsc-api/0.10/html/index.html     |
46 1 J. Moringen
| 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 |
47 1 J. Moringen
| 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   |                   |
48 1 J. Moringen
| 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 |                   |
49 1 J. Moringen
50 6 S. Wrede
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.
51 6 S. Wrede
52 1 J. Moringen
h2. Access
53 1 J. Moringen
54 1 J. Moringen
On Ubuntu Trusty systems, RSB and the RS* ecosystem can be accessed in two ways:
55 1 J. Moringen
# Using the pre-installed software in @/vol/isy/2014-15/releases/trusty/@
56 1 J. Moringen
# Using Debian packages (see "instructions":http://packages.cor-lab.org/)
57 1 J. Moringen
58 1 J. Moringen
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.
59 1 J. Moringen
60 1 J. Moringen
|_. Software  |_. @/vol/isy/@                                                          |_. Debian Package(s)                                       |
61 1 J. Moringen
| RSC         |                                                                        | C++: @librsc0.10@                                         |
62 1 J. Moringen
| RSB         |                                                                        | C++: @rsb-tools-cpp0.10@, Common Lisp: @rsb-tools-cl0.10@ |
63 1 J. Moringen
| RSB Tools   | @/vol/isy/2014-15/releases/trusty/bin/rsb-{logger,send,…}{cl,cpp}0.10@ | C++: @librsb0.10@                                         |
64 1 J. Moringen
| RSBag Tools | @/vol/isy/2014-15/releases/trusty/bin/bag-{record,play,…}cl0.10@       | Common Lisp: @rsbag-bin-cl0.10@                           |
65 1 J. Moringen
| RST         |                                                                        | C++, Python, Java: @rst0.10@                              |
66 1 J. Moringen
67 1 J. Moringen
h2. Support
68 1 J. Moringen
69 1 J. Moringen
* Mailing-list
70 1 J. Moringen
** Write: mailto:rsb@lists.cor-lab.uni-bielefeld.de
71 1 J. Moringen
** Subscribe: https://lists.techfak.uni-bielefeld.de/cor-lab/mailman/listinfo/rsb
72 1 J. Moringen
* IRC: #rsb IRC channel on irc.freenode.net
73 1 J. Moringen
* Reporting Bugs: @https://code.cor-lab.org/projects/rs*/issues/new@.
74 9 S. Wrede
75 10 J. Moringen
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.