Concept
As we have used ROS and ROS 2 easily and quickly to develop the robots over the past decade, we've observed that three issues need addressing:
Demand on Computing Power: The robot's onboard computing resources are often insufficient due to battery and space constraints. Moreover, larger model generally enhance task performance. Thus, the robots could perform more efficiently given access to additional computing power.Futuremore, once the robot is built, it is impractical to upgrade hardware to accommodate a later increased demand.
Complexity of Software: Ranging from low-level actuator controllers to high-level sensing, planning, and action modules, the creation of an intelligent robot involves ever-growing software size and complexity. Our experiences have shown that in addition to developing robots, improving software stability and deployment in real-world settings usually demands significant time and effort.
- Large-Scale Deployment: Many scenarios require a large fleet of robots to handle the increased workload. As roboticists, our aspiration is to rapidly develop and deploy more robots in production environments.
Cloud Robotics
To tackle the first issue, numerous studies in the field of cloud robotics have emerged as a collaborative technology to take the advantage of cloud computing for robotics.
However, for most roboticists and software developers, the challenge of solving robotic tasks is already demanding, and developing and testing the software consumes a significant amount of time. It is therefore inconvenient to let them dive into a new area: cloud native computing.
In addition, the use of cloud computing introduces some new challenges, including insufficient network bandwidth, high latency, and security and privacy concerns. This implies that in certain cases, software developed for use in the cloud should be deployed at the edge or even on the robot's onboard device. Therefore, a flexible solution for scheduling across different locations becomes a necessity.
For the second and third challenges, Kubernetes from cloud native computing could serve as an effective solution. It has seen wide-ranging success in automating the deployment, orchestration, scaling, and management of containerized applications, especially for large-scale systems. However, it demands some prior knowledge and adjustments to existing software for using in robotic applications.
As the ROS and ROS 2 become the de facto framework in robotics and are widely used in products. And considering numerous cutting-edge algorithms are already packaged in ROS packages, avalaible as open source for reuse in other applications.
We ask ourselves, can we build a general platform for the ROS 2 ecosystem and take advantage of the both popular frameworks?
In response to this question, we created KubeROS, a unified and fully managed platform for automated deployment of ROS 2 software, grounded in the Cloud OS (Kubernetes), in a hybrid computing infrastructure consists of onboard devices, the edge, and the cloud.

Mission of KubeROS
The core mission of KubeROS is how to deploy the containerized ROS 2 modules in an appriopriate location through Kubernetes as stable as possible and make the access to the edge and the cloud as simple as possible.
To fulfill this mission, KubeROS focuses on three things:
Abstraction and Management of Resources: KubeROS abstracts and manages all available computing resources, providing an extensible API to utilize tools like Ansible for setup. By doing this, KubeROS effectively conceals the complexities of the hardware infrastructure from the end users.
Deployment and Management of Software: KubeROS aims to simplify the deployment and management of containerized ROS 2 software by providing developers with an intuitive, easy-to-use interface. In this way, the complexity of the deployment and orchestration processes in Kubernetes remain hidden from developers.
Software Monitoring and Rescheduling: KubeROS also monitors deployed software, enable rescheduling based on the current system state.
Requirements to use KubeROS:
KubeROS distinguished two primary roles, similar to cloud native cloud computing.
- Developers:
- ROS 2 knowlege and experience (advanced)
- ROS 2 applications that are already operational
- Infrastructure Administrator: setting up the system and managing the hardware resources
- experiences with networking and bare metal setups
- cloud computing knowledge and hand-on experiences with Kubernetes
- access to the cloud if necessary
It's important to note that developers do not require prior knowledge about cloud computing. For instance, you can use the following command to check the available resources and use them in your application.
$ kuberos fleet get -free-resource
Moreover, if you intend to use KubeROS for research in the field of cloud robotics, the following skills are recommanded to have:
- Researchers
- Python knowledge
- Expertise in the task domain, such as navigation, perception, etc.
- (For scheduling): Knowlege about cloud computing.
Getting started with KubeROS
Coming soon.
Citation
If you are using KubeROS in your research work, please cite:
@inproceedings{zhang2023kuberos,
title={KubeROS: A Unified Platform for Automated and Scalable Deployment of ROS2-based Multi-Robot Applications},
author={Zhang, Yongzhou and Wurll, Christian and Hein, Björn},
booktitle={2023 IEEE International Conference on Robotics and Automation (ICRA 2023)},
pages={9097--9103},
year={2023},
organization={IEEE}
}