Skip to content

robolaunch/robot-operator

Repository files navigation

robolaunch Kubernetes Robot Operator

robolaunch Kubernetes Robot Operator manages lifecycle of ROS 2 based robots and enables defining, deploying and distributing robots declaratively.

kubectl-get-robots

kubectl-describe-robot

Table of Contents

Idea

The main idea of this project is to manage robots as Kubernetes custom resources. As a custom resource, a robot's lifecycle contains following operations and benefits.

  • Robot Lifecycle Management
    • Deployment
    • Update
    • Upgrade
    • Vertical Scaling
      • Adjusting robot's resources
  • Robot Observability
    • ROS observability tools (eg. rViz, Foxglove, ROS Tracker)
    • Exporting ROS nodes, topics, services, actions and bandwidth
  • GPU Acceleration
    • Simulation (Gazebo, Ignition)
    • VDI
  • Geoghraphic Distribution
    • Cloud-powered robot
    • Cloud-connected robot
  • Software development lifecycle
    • Cloud IDE
  • Connectivity
    • Robot-to-Robot Discovery
    • Node-to-Node Discovery

Refer robolaunch.io and project wiki for more architectural details and documentations.

Quick Start

Installation

Label a node in your cluster:

kubectl label <NODE> robolaunch.io/organization=robolaunch
kubectl label <NODE> robolaunch.io/team=robotics
kubectl label <NODE> robolaunch.io/region=europe-east
kubectl label <NODE> robolaunch.io/cloud-instance=cluster
kubectl label <NODE> robolaunch.io/cloud-instance-alias=cluster-alias

Install Robot Operator with Helm:

# add robolaunch Helm repository and update
helm repo add robolaunch https://robolaunch.github.io/charts/
helm repo update
# install chart
helm upgrade -i robot-operator robolaunch/robot-operator  \
--namespace robot-system \
--create-namespace \
--devel

See installation guide for more.

Deploy Your First Robot

Robot deployment steps will be instructed here.

Contributing

Please see this guide if you want to contribute.