KubeCon / CloudNativeCon Europe 2018 took place at the shiny Bella Center of Copenhagen on May 2 – 4, 2018.
Here at ICCLab/SPLab we use extensively Kubernetes / CNCF technologies both in teaching and research, but we had one extra reason for being there this year: our friends and colleagues from Rapyuta Robotics (RR) were scheduled to give a talk on Cloud Robotics PaaS.

The ECRP Project uses Kubernetes/Openshift as the base for its Cloud-Robotics PaaS. Apart from running robotic applications distributed across robots and clouds, we wanted to assess whether latency to the closest public data-center (Frankfurt for both AWS and GKE) would be low enough to run common SLAM and navigation apps. The short answer is YES, although our work there continues.

Thanks to the work of Seán, Bruno, and Remo, the ICCLab has a brand new Openstack cluster. The Cloud-Robotics crew decided to take it for a spin, and use some research grant money on public clouds also for other activities (e.g., FaaS / Serverless computing).

The Itaipu Technology Park (PTI) in Paraguay, founded in 2009, is involved with scientific and technological development which contributes positively to regional development. Several of its centres with a total number of 90 engineers and researchers put emphasis on ICT integration and the challenges connected with it. Among them are diverse plans to use cloud applications. In this context, the Service Prototyping Lab of Zurich University of Applied Sciences (SPLab) in Switzerland is conducting a two-week guest lecturing and research exchange presenting its research initiatives and outputs on the PTI premises in close proximity to Ciudad del Este.

The “Robot Operating System” (ROS) is widely used on several robotics platforms, and also runs on the turtlebot robots in our lab. One of the ideas behind cloud robotics is to enable ROS components (so called ROS nodes) to run distributed across the cloud infrastructure and the robot itself, so we can shift certain parts of the robotics application to the cloud. As a logical first step we tried to run existing ROS nodes, such as a ROS master in containers on Kubernetes, then we tried to use a proper Platform as a Service (PaaS) solution, in our case Red Hat OpenShift .

OpenShift offers a full PaaS experience, you can build and run code from source or run pre-built containers directly. All of those features can be managed via a intuitive web interface.

However, OpenShift imposes tight security restrictions on the containers it runs.
These are:

Two of the most influential robotics events of 2016, ROSCon and IROS, were conveniently co-located in South Korea during the second week of October.
We had previously attended ROSCon 2015 in Hamburg, but it was our first time at the International Conference on Intelligent Robots and Systems (IROS), this year in Daejeon.

Summary:
The ECRP project combines cutting edge robotics technology from Rapyuta Robotics (RR), an ETH Zurich spinoff, and novel cloud development from the Service Prototyping (SPLab) and InIT Cloud Computing Lab (ICCLab) at ZHAW.
With ICCLab, RR will transform its existing open source robotics platform from a prototype to a full-fledged cloud-native enterprise ecosystem for third-party applications combining physical devices with cloud-hosted functionality.
RR and ZHAW have agreed to release this work as open source software (OSS), under the label Rapyuta Core.

Operating system process management has traditionally been an activity at the system level. An init system starts processes at boot time, at random events, and at the user’s (well, root’s) request. Well-known init systems are systemd, openrc and the venerable sysvinit. Without the boot-time component, supervisor processes such as supervisord, runit, daemontools or r6 form another related set of applications with emphasis on automated restart which we have covered already in previous blog posts.

In PaaS environments, multi-tenancy is crucial and process managers need to support it beyond just showing the users owning the processes. While multiple tenants can be perfectly mapped to multiple system users, and information from these users can be aggregated with automation tools, the permission management can quickly become complex and, first and foremost, already requires root permissions to create new users. Therefore, we have explored in the context of the cloud robotics research initiative how to manage processes purely as an ordinary user, but still for multiple tenants. A real need to do so is the fact that by running applications on ROS, dozens of ROS nodes get spawned quickly, many spawning further subprocesses and, due to early terminations, additionally causing fully detached and zombie processes which, when also changing their process group id, do not share a relation anymore to the original application.

We all know this tedious situation: Plenty of mobile robots around us, and we’d just like to use one of them for a specific task, but we don’t know which one we should take, as they’re all regularly busy on their own. Perhaps this is not a likely scenario right now, but it will be in five or six years from now and it will require novel approaches of how we manage their functionality in terms of services they offer. The Cloud Robotics research initiative is thus looking into robotic device management not so much from a hardware perspective but more from an angle of assessing which robotic resources can be used to deploy or run services and value-added applications on single robots, fleets of robots, or hybrid cloud/fleet constellations. With Roboreg, a first tangible robot-specific registry concept has been realised. The tool will be explained in this blog post.

The goal of the Cloud Robotics initiative of the SPLab is to ease the integration of Cloud Computing and Robotics workloads. One of the first things we need to sort out is how to leverage different networking models available on the cloud to support these mixed workloads.

In this blog post we’ll see one little handy trick to have ROS nodes run as pods (and services) in any Kubernetes cluster so that they can transparently communicate using a ROS topic.