robolaunch Kubernetes Robot Operator manages lifecycle of ROS 2 based robots and enables defining, deploying and distributing robots declaratively.
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.
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.
Robot deployment steps will be instructed here.
Please see this guide if you want to contribute.