During ROSCon 2022 Kyoto, it appeared that some people are interested in using ROS with Kubernetes container orchestration.
We were trying to have in-person meetup during ROSCon 2022 Kyoto but we did not really have enough time for the discussion.
So let’s do that online as we talked, I will get back here with schedule and agenda for 1st sync
I am not planing to make this meeting weekly or monthly at this moment, but happy to share information and experience, and open for discussion and problems.
The followings are our experience to share in advance,
This is very interesting. We have been using a mixed ROS1 / ROS2-based system packaged as Docker containers and orchestrated using docker-compose in an automotive environment.
I think Kubernetes orchestration would be a game changer for ROS systems, especially with a container-based OS like Flatpak Linux to allow easy upgrades and maintenance.
One important question is the communication / ROS2 backend. Here Zenoh could be a good alternative to DDS-based implementations because it provides a very efficient and routable network protocol with the potential to use shared memory transport between PODs scheduled on the same system.
We have been using Zenoh for Mobile Gateways to ROS systems with promising results.
I am not sure if it has been tried already, but in my opinion, Zenoh has the potential to replace traditional service mesh setups in Kubernetes environments and could be used as a single communication middleware/backend both in the edge cluster and in the cloud.
First of all thanks a lot for bringing up this awesome topic.
We are developing robolaunch which is Cloud Robotics Platform, totally based on Kubernetes and ofcourse all parts are open source
Mainly consisting of two parts:
1-Kubernetes Distribution which is designed solely for robotic usecases like builtin vpn for hybrid robot (cloud powered robot), isolated subnets and multitenancy for different tenants etc…
2-Kubernetes Robot Operator for managing lifecycle of ROS 2 based robots and enables defining, deploying and distributing robots declaratively. And all this operations is being handled as a kubernetes objects like “kubectl get robots”
We would like to share our experience at the meeting and happy to hear from ROS community.
I believe we had more questions to discuss, unfortunately it just ran out of time.
As we talked, probably we can have another meeting to share more experience and use cases, that I will set up.
In the meantime, if you have anything to share in container orchestration or fleet management perspective, please reach out to us
BTW, I have been working on the following white paper in CNCF as an one of the authors, which is not ROS specific but it would be worth to take a look.
First of all, thank you very much @tomoyafujita for the opportunity to present DDS Router at yesterday’s session. It was very interesting to see your use case and have a discussion with the community that I hope will be continued soon.
As I presented yesterday, the DDS Router is a solution to enable Edge-Cloud communications in ROS 2 in a simple way and with a quick deployment. Here I also presented the DDS Router integrated in K8s to enable the communication of edge ROS 2 devices and a K8s cluster deployed in the cloud.
If you want to test DDS Router easily, you have available the Vulcanexus Humble Docker container that comes with ROS 2 Humble, the latest version of Fast DDS, and the latest version of DDS Router already installed and ready to use.
Thank you very much @tomoyafujita for organizing the meeting. Unfortunately, I could not attend due to a last-minute conflict, but at least I could review the slides.
Would there be interest in looking at Zenoh (with the Zenoh DDS Plugin) at the next meeting as an alternative to the DDS Router?
I’m also interested on these topics. I would like to attend a meeting.
We were able also to deploy the full robot stack over several ROS 1 containers inside a kubernetes cluster with offloading capabilities. We did it inside the frame of the Decenter project (I leave a link a video here, not much technical details, but shows the offloading capabilities).
We are moving to ROS 2 in our robots. But it’s a slower process that we wanted.
Within the frame of 5G-Era project, could deploy a ROS2 container in an edge kubernetes cluster and interact with Baremetal ROS software of our robot. Check repos here Also we did a webinar about the deploy of kubernetes robot simulation on AWS (but could be any).
Inside this project we still are having problems with the network configuration when the ROS2 containers are deployed on the cloud and the robot. We need to try DDS router.