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.
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
andmeta-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 andnginx
web server provide network interfacing and visualization. - Wi-Fi AP Mode: Enabled via
hostapd
anddnsmasq
, 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
- Setup Poky + BSPs: Begin with
poky
,meta-raspberrypi
, and required third-party layers likemeta-ros
. - Create Custom Layers: Generate
meta-custom
(hardware configs, patches) andmeta-cookbook
(images, apps). - Write Recipes: Add custom
.bb
and.bbappend
recipes for tools, ROS nodes, services, and Python apps. - Configure Build: Tune
local.conf
with your image install list, init system, kernel modules, and distro features. - Bitbake Your Image: Compile the full OS image with
bitbake kzr-os-image
or your chosen target. - 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.