Skip to content

razr/roscon2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time Meets Cloud: ROS 2 on RTOS and Linux with Kubernetes

Theme: Edge Robotics

Title: Real-Time Meets Cloud: ROS 2 on VxWorks RTOS and Linux with Kubernetes

Author: Andrei Kholodnyi, Principal Technologist, Wind River

Abstract

As robotics systems evolve, the need to integrate real-time capabilities with scalable, cloud-native infrastructure grows significantly. This talk explores how ROS 2 containers can be deployed across both VxWorks RTOS and Linux environments using Kubernetes. We’ll demonstrate a hybrid orchestration approach that leverages a unified container model, showing how OCI-compatible containers can be built for both VxWorks and Linux. This enables seamless management of ROS 2 nodes across heterogeneous platforms. A recorded demo will highlight distributed, containerized robotics applications that span from real-time systems to edge servers, bridging the embedded and cloud-native worlds in modern ROS 2 deployments.

My name is Andrei Kholodnyi, I'm a Principal Technologist at the Office of the CTO, Wind River. I’ve ported ROS 2 to VxWorks and a co-chair the ROS 2 Real-Time Working Group. At ROSCon 2025, I’d like to talk about ROS 2, real-time containers, and Kubernetes.

🚀 Demo: ROS 2 Communication Across Linux and VxWorks Nodes in Kubernetes

flowchart TB
%% Host machine
Host["Host Machine\n(Linux OS / Docker)"]

%% Minikube bridge
Bridge["br-f32aaea20b3<br>Minikube bridge<br>192.168.49.1"]

%% Minikube VM (Kubernetes master)
MinikubeVM["Minikube VM<br>IP: 192.168.49.2<br>K8s Master<br>Pods: VxWorks + Linux"]

%% ROS2 Docker containers
ROS2Pub["ROS2 Docker\nLinux Publisher<br>connected to minikube net"]
ROS2Sub["ROS2 Docker\nLinux Subscriber<br>connected to minikube net"]

%% QEMU VXWorks Publisher node (stacked compartments)
subgraph QEMU_Pub_Group["ROS 2 VXWorks Publisher"]
    direction TB
    QEMU_Pub_Core["QEMU VXWorks"]
    QEMU_Pub_Kubelet["vxkubelet"]
    QEMU_Pub_ROS2["ROS2 Container Publisher<br>IP: 192.168.49.4"]

    style QEMU_Pub_Core fill:#8ef,stroke:#333,stroke-width:1px
    style QEMU_Pub_Kubelet fill:#8ef,stroke:#333,stroke-width:1px
    style QEMU_Pub_ROS2 fill:#8ef,stroke:#333,stroke-width:1px
end

%% QEMU VXWorks Subscriber node (stacked compartments)
subgraph QEMU_Sub_Group["ROS 2 VXWorks Subscriber"]
    direction TB
    QEMU_Sub_Core["QEMU VXWorks"]
    QEMU_Sub_Kubelet["vxkubelet"]
    QEMU_Sub_ROS2["ROS2 Container Subscriber<br>IP: 192.168.49.5"]

    style QEMU_Sub_Core fill:#8ef,stroke:#333,stroke-width:1px
    style QEMU_Sub_Kubelet fill:#8ef,stroke:#333,stroke-width:1px
    style QEMU_Sub_ROS2 fill:#8ef,stroke:#333,stroke-width:1px
end

%% Connections
Host --> Bridge
Bridge --> MinikubeVM
Bridge --> ROS2Pub
Bridge --> ROS2Sub
Bridge --> QEMU_Pub_Core
Bridge --> QEMU_Sub_Core

%% Styles
classDef master fill:#f9f,stroke:#333,stroke-width:2px,color:#000
class MinikubeVM master
Loading

This demo showcases a hybrid system where ROS 2 nodes running on Linux Docker containers communicate with ROS 2 nodes running on VxWorks inside QEMU virtual machines, all orchestrated via Kubernetes.


🖥️ Components

  • 🖥️ Host Machine: Linux with Docker, providing networking and Minikube bridge.
  • ☁️ Minikube VM: Kubernetes master node managing pods for Linux and VxWorks ROS2 nodes.
  • 🐧 Linux ROS 2 Nodes: Publisher and subscriber running in standard Docker containers.
  • ⚡ VxWorks ROS 2 Nodes: Publisher and subscriber running in QEMU VMs, each with vxkubelet and a ROS 2 container.

✨ Key Highlights

  • 🔗 Multi-OS ROS 2 communication through a shared Minikube network.
  • ⏱️ Integration of real-time VxWorks systems with standard Linux containers.
  • 📦 Fully containerized and orchestrated using Kubernetes manifests.
  • 🛠️ Designed for testing, simulation, and demonstration of cross-platform ROS 2 messaging.

🔄 Flow

  1. 🐧 Linux ROS 2 publisher sends messages via the Minikube network.
  2. ⚡ VxWorks subscriber receives messages in its QEMU VM.
  3. ⚡ VxWorks publisher can send messages back to Linux subscriber, completing the round-trip communication.

About

my talk at roscon2025

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published