Table of Contents
Fetching ...

Enabling the Deployment of Any-Scale Robotic Applications in Microservice Architectures through Automated Containerization

Jean-Pierre Busch, Lennart Reiher, Lutz Eckstein

TL;DR

The paper addresses the challenge of deploying robotic applications at any scale within microservice architectures. It proposes a microservice-based workflow built on Docker-based containerization for ROS, including minimal deployment images and ML-enabled base images, plus a CLI tool for development. The authors release the tooling suite as open-source (docker-ros, docker-ros-ml-images, docker-run) and qualitatively compare it to existing ROS CI/CD solutions, arguing for container-driven deployment in robotics. They demonstrate its practicality via experiences on an automated driving software stack and discuss benefits such as faster development cycles, improved isolation, and readiness for large-scale multi-robot systems. The work aims to accelerate robust, scalable robotics deployment through familiar DevOps patterns adopted from web services.

Abstract

In an increasingly automated world -- from warehouse robots to self-driving cars -- streamlining the development and deployment process and operations of robotic applications becomes ever more important. Automated DevOps processes and microservice architectures have already proven successful in other domains such as large-scale customer-oriented web services (e.g., Netflix). We recommend to employ similar microservice architectures for the deployment of small- to large-scale robotic applications in order to accelerate development cycles, loosen functional dependence, and improve resiliency and elasticity. In order to facilitate involved DevOps processes, we present and release a tooling suite for automating the development of microservices for robotic applications based on the Robot Operating System (ROS). Our tooling suite covers the automated minimal containerization of ROS applications, a collection of useful machine learning-enabled base container images, as well as a CLI tool for simplified interaction with container images during the development phase. Within the scope of this paper, we embed our tooling suite into the overall context of streamlined robotics deployment and compare it to alternative solutions. We release our tools as open-source software at https://github.com/ika-rwth-aachen/dorotos.

Enabling the Deployment of Any-Scale Robotic Applications in Microservice Architectures through Automated Containerization

TL;DR

The paper addresses the challenge of deploying robotic applications at any scale within microservice architectures. It proposes a microservice-based workflow built on Docker-based containerization for ROS, including minimal deployment images and ML-enabled base images, plus a CLI tool for development. The authors release the tooling suite as open-source (docker-ros, docker-ros-ml-images, docker-run) and qualitatively compare it to existing ROS CI/CD solutions, arguing for container-driven deployment in robotics. They demonstrate its practicality via experiences on an automated driving software stack and discuss benefits such as faster development cycles, improved isolation, and readiness for large-scale multi-robot systems. The work aims to accelerate robust, scalable robotics deployment through familiar DevOps patterns adopted from web services.

Abstract

In an increasingly automated world -- from warehouse robots to self-driving cars -- streamlining the development and deployment process and operations of robotic applications becomes ever more important. Automated DevOps processes and microservice architectures have already proven successful in other domains such as large-scale customer-oriented web services (e.g., Netflix). We recommend to employ similar microservice architectures for the deployment of small- to large-scale robotic applications in order to accelerate development cycles, loosen functional dependence, and improve resiliency and elasticity. In order to facilitate involved DevOps processes, we present and release a tooling suite for automating the development of microservices for robotic applications based on the Robot Operating System (ROS). Our tooling suite covers the automated minimal containerization of ROS applications, a collection of useful machine learning-enabled base container images, as well as a CLI tool for simplified interaction with container images during the development phase. Within the scope of this paper, we embed our tooling suite into the overall context of streamlined robotics deployment and compare it to alternative solutions. We release our tools as open-source software at https://github.com/ika-rwth-aachen/dorotos.
Paper Structure (24 sections, 3 figures, 2 tables)

This paper contains 24 sections, 3 figures, 2 tables.

Figures (3)

  • Figure 1: Overview of the proposed microservice-based ROS development and deployment workflow using our tooling suite: docker-ros provides a generic Dockerfile; integrated via CI/CD templates for popular Git platforms, the container image build is automated for any ROS or ROS 2 package source; two images are built: the development image contains all required dependencies and the source code, the deployment image only contains dependencies and compiled binaries; any base image can be used, but docker-ros-ml-images hosts a set of useful machine learning-enabled base images; docker-run is a CLI tool to speed up the container-driven development workflow; the final deployment images are designed to be deployed, either standalone or orchestrated by tools like Kubernetes.
  • Figure 2: Build stages of ROS containerization through generic Dockerfile
  • Figure 3: Sensor rack of research vehicle; as the rest of the software stack, the drivers for the sensors are each running in their own minimal container.