More Detailed Explanation of the Four Main Processes

69 views
Skip to first unread message

Mansfield Mark

unread,
Mar 25, 2014, 12:11:54 AM3/25/14
to rap...@googlegroups.com
Master
Robot
Container
Client

I feel like I have a pretty good idea of what master and client do, but I'm still not very clear on what function robot and container serve. The wiki seems very unspecific to me.

Could someone go more in depth about what these processes do?

Dominique Hunziker

unread,
Mar 25, 2014, 8:55:41 PM3/25/14
to Mansfield Mark, rap...@googlegroups.com
Hi,

So, I assume you mean Environment when you say Client?

First of all the Robot & Environment process have the same abstract base
"class" Endpoint. The Endpoint provides the capability to communicate
with processes outside of Rapyuta & with other Endpoints. They are two
different specializations because they have slightly different
capabilities: The Robot is capable of managing the communication with
multiple robots (called namespaces in the internal communication) and is
capable of understanding Rapyuta's external protocol. The Environment
can manage only one environment (i.e., namespace), but is capable of
launching/stopping nodes & adding/removing parameters and is capable of
understanding the ROS protocol.

The Container process' sole responsibility is to create/destroy
computing environments (i.e., containers). One of the reasons why this
is a separate process is that for now the lxc & (probably also) the
iptables commands require super-user privileges, which is a security
concern.

The Master process acts like the roscore for ROS nodes to the Endpoints,
i.e., it organizes the communication between the them. The Master
receives all requests which alter the state of Rapyuta and ultimately
decides what to when and where.

On the robot side you could also count the client as a Rapyuta process
(but strictly speaking it's not). The rce-ros client just acts as a
"translator" between the ROS protocol and the external Rapyuta protocol,
based on the config file (and it sets up and trears down the other
elements specified in the config file). It is also possible to directly
use the python client (the rce-ros client is just a convenience wrapper)
or the c++ client (which is hopelessly outdated).

Dominique
Reply all
Reply to author
Forward
0 new messages