More Detailed Explanation of the Four Main Processes

Skip to first unread message

Mansfield Mark

Mar 25, 2014, 12:11:54 AM3/25/14

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

Mar 25, 2014, 8:55:41 PM3/25/14
to Mansfield Mark,

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

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

Reply all
Reply to author
0 new messages