Project Overview

KZR-OS (Kaizen Robotics OS) is a minimal, purpose-built embedded Linux distribution tailored for robotics, automation, and edge computing. Built using the Yocto Project, KZR-OS was designed from scratch with a focus on modularity, performance, and simplicity. I architected and developed the entire OS, incorporating a range of essential features including ROS 2 support, CANbus communication, MQTT messaging, a web server interface, and Wi-Fi Access Point functionality.

Instead of relying on bloated general-purpose Linux images, KZR-OS is fully custom — from kernel modules to bootloader — using a handpicked set of packages and configurations. Every element of the stack, from hardware BSP to user-level applications, was integrated using Yocto recipes and custom layers.

Demo: KZR-OS.

KZR-OS Demo

Key Features

  • Minimal Base Image: Custom image built from scratch using poky and Raspberry Pi BSP. Only essential packages are included.
  • Custom Layers: Two dedicated layers — meta-custom and meta-cookbook — for recipes, BSP extensions, and services.
  • ROS 2 Integration: Built-in ROS 2 support using meta-ros, with a runtime stack (cyclonedds, rmw) and sample nodes pre-installed.
  • CANbus Enabled: Kernel modules and tools (can-utils) included for automotive and robotics communication.
  • MQTT & Web Interface: Lightweight mosquitto broker and nginx web server provide network interfacing and visualization.
  • Wi-Fi AP Mode: Enabled via hostapd and dnsmasq, allowing devices to create their own local network.
  • Systemd-based Init: Faster boot and service management using systemd; serial and USB console supported.
  • No X11 / GUI: Stripped of audio, camera, graphics, and UI libraries to keep the image lean and fast.
  • Modular Build System: Build process optimized via rm_work, EXCLUDE_FROM_WORLD, and layer-specific tuning.

Build Workflow

  1. Setup Poky + BSPs: Begin with poky, meta-raspberrypi, and required third-party layers like meta-ros.
  2. Create Custom Layers: Generate meta-custom (hardware configs, patches) and meta-cookbook (images, apps).
  3. Write Recipes: Add custom .bb and .bbappend recipes for tools, ROS nodes, services, and Python apps.
  4. Configure Build: Tune local.conf with your image install list, init system, kernel modules, and distro features.
  5. Bitbake Your Image: Compile the full OS image with bitbake kzr-os-image or your chosen target.
  6. Flash and Boot: Deploy to Raspberry Pi or supported hardware; OS boots to shell with SSH/Wi-Fi/ROS preloaded.

Technologies Used

  • Yocto Project (poky, bitbake, layer tooling)
  • meta-raspberrypi for BSP and bootloader integration
  • meta-ros for ROS 2 (CycloneDDS, RMW layers)
  • meta-custom, meta-cookbook: custom layers for hardware and software stack
  • Systemd for init and services
  • U-Boot bootloader
  • Kernel with CAN, USB Serial, Wi-Fi modules
  • Mosquitto, Nginx, hostapd, dnsmasq for networking
  • Python 3, websockets, colcon for ROS 2 nodes

Note:

KZR-OS is a production-ready, purpose-built embedded Linux distribution developed for robotics platforms and edge computing environments. While it is not publicly distributed, it is actively used internally for prototyping, development, and deployment across a range of automation and robotics projects at Kaizen Robotics. A boot demo and Kaizen Robotics splash screen are included as part of the build process to showcase final readiness.