ServoBox π¦Ύπ¦
Launch real-time VMs for robotics in a few steps.
ServoBox gives you Ubuntu 22.04 VMs with PREEMPT_RT kernel, automatic CPU pinning, and IRQ isolation. No manual configuration needed.
π Quick Start
Prerequisites: Ubuntu 22.04+ or 24.04, 6, ideally 8+ cores, 8GB, ideally 16GB+ RAM, hardware virtualization enabled (Intel VT-x or AMD-V)
1. Install ServoBox
# Add ServoBox repository using wget (pre-installed on Ubuntu)
wget -qO- https://www.servobox.dev/apt-repo/servobox-apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/servobox-apt-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/servobox-apt-keyring.gpg] https://www.servobox.dev/apt-repo/ stable main" | sudo tee /etc/apt/sources.list.d/servobox.list
# Install
sudo apt update
sudo apt install servobox
2. Configure Host (Required for RT)
# Edit GRUB for CPU isolation
sudo vim /etc/default/grub # or with any other editor
# Add the following settings to the GRUB_CMDLINE_LINUX_DEFAULT variable
# GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=managed_irq,domain,1-4 nohz_full=1-4 rcu_nocbs=1-4 irqaffinity=0"
3. Create Your First RT VM
4. Start and Test
# Configure networking for communication with network devices if needed (interactive wizard)
servobox network-setup
5. Install & run your favorite stack!
What ServoBox Does
ServoBox automates the complex setup of real-time Linux environments for robotics:
- π One-Command Setup -
servobox initcreates fully configured RT VMs - β‘ PREEMPT_RT Kernel - Ubuntu 22.04 with kernel 6.8.0-rt8 baked in
- π― Automatic CPU Pinning - Intelligent CPU isolation and IRQ affinity
- π¦ Package Manager - Pre-built recipes for common robotics control stacks
- β Performance Testing - Built-in cyclictest with stress testing
- π§ Zero Configuration - Works out of the box with sensible defaults
Why ServoBox?
Problem: Setting up real-time Linux for robotics is complex and error-prone.
Solution: ServoBox isolates RT workloads to dedicated CPU cores in VMs while keeping your host optimized for ML/vision with full GPU support.
Key Principle: VM handles real-time control, host handles high-level processing.
Architecture Overview
ServoBox follows a host-VM separation architecture optimized for real-time robotics:
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Host System (Ubuntu) β
β βββββββββββββββββββββββββββββββββββββββββββββ β
β β High-Level Processing β β
β β - Perception & Vision β β
β β - Planning & Decision Making β β
β β - User Interfaces β β
β β - Development Tools β β
β βββββββββββββββββββββββββββββββββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββ β
β β Isolated CPUs (1-4) β β
β β βββββββββββββββββββββββββββββββββββββββ β β
β β β ServoBox VM (Ubuntu 22.04 RT) β β β
β β β - PREEMPT_RT Kernel 6.8.0-rt8 β β β
β β β - Real-Time Control Loops β β β
β β β - Low-Latency Robot Control β β β
β β β - Package recipes (ROS2, etc) β β β
β β βββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββ β
β CPU 0: Host + IRQs CPUs 1-4: RT Isolated β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Use Cases
- Real-time Robot Control - 1kHz+ control loops with deterministic latency
- Hardware-in-the-Loop Simulation - Test algorithms before hardware deployment
- Motion Control Development - Isolated environment for time-critical code
- RT Algorithm Testing - Validate performance before production
- Robotics Education - Learn RT concepts without bare-metal setup
Documentation
-
Run
Create and manage real-time VMs
-
Installation
Detailed installation and configuration
-
User Guide
Learn about all commands and features
-
Troubleshooting
Diagnose and resolve common issues
Community & Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: konstantinos.vasios@gmail.com
License
ServoBox is licensed under MIT. See the LICENSE file for details.
Ready to dive deeper? Check out the Run Guide for detailed examples and advanced configuration β