Introducing BabyROS
BabyROS is a lightweight robotics framework built on Zenoh that implements the familiar Publisher/Subscriber and Client/Server architecture from ROS, without heavy system dependencies or complex middleware setup.
It is an open-source (Apache 2.0 License) middleware for communication between sensors, actuators, AI modules, and control algorithms, enabling reliable, low-latency messaging both on a single device and across distributed systems, from microcontrollers to cloud-based AI services.
BabyROS is designed for physical AI and robotics applications, including:
- Robot perception and control pipelines: orchestrate high-frequency sensor data (cameras, LIDAR, IMUs) with actuator commands in real time.
- Edge and distributed robotics: coordinate multiple devices, microcontrollers, and cloud modules with low-latency, high-throughput communication.
- Rapid prototyping: iterate quickly on algorithms and behaviors without defining custom message types or managing workspace overlays.
- Resource-constrained platforms: deploy on single-board computers, embedded systems, or microcontrollers where ROS installation is impractical.
- High-throughput, shared-memory communication: efficiently transfer large or frequent datasets within the same machine.
Why BabyROS?
If you’ve encountered these challenges in ROS development, BabyROS addresses them directly:
- Painful Installation – ROS 2 does not support all platforms and often requires complex setup with system-wide dependencies and environment variables. BabyROS is cross-platform and installs with a single
pip install babyros. No system-wide configuration, compiler toolchains, or workspace setup is required. - DDS vs. Zenoh – ROS 2 is built on DDS, which can be heavy and difficult to configure. Zenoh provides native shared memory, ultra-low latency, cloud-to-device communication, and a minimal footprint.
- Custom Messages (.msg) Overhead – ROS requires defining .msg files for every data type. BabyROS dynamically serializes Python objects, eliminating pre-defined message schemas.
- Cloud-to-Device Communication – Standard ROS setups are designed for local networks and struggle with hybrid networks. BabyROS natively supports multi-layer communication between cloud, edge devices, and microcontrollers.
- Docker and Containerization – ROS containers are often large due to system dependencies. BabyROS is lightweight and dependency-free, simplifying containerization, testing, and deployment.
- Environment Setup Complexity – ROS relies on sourcing setup scripts and workspace overlays, which can break reproducibility. BabyROS requires no environment setup; Python scripts run immediately once Zenoh is installed.
If you have felt these pains too, BabyROS is the way to go for you.
What Pain Points does BabyROS Solve?
| Pain Point | BabyROS Solution | Engineering Benefit |
|---|---|---|
| Painful Installation | ROS 2 requires complex setup and doesn’t support all platforms. BabyROS installs via pip with no system-wide dependencies. | Cross-platform, immediate setup, reproducible environment. |
| DDS Complexity | ROS 2 relies on DDS, which is heavy, hard to configure, and limited for cloud/edge integration. BabyROS uses Zenoh with native shared memory, ultra-low latency, and cloud-to-device support. | Simplified networking, high throughput, real-time capable, cloud-edge ready. |
| Custom Messages (.msg) Overhead | ROS mandates .msg definitions for every data type. BabyROS dynamically serializes Python objects. | Rapid prototyping, fewer boilerplate files, easier experimentation. |
| Cloud-to-Device Communication | Standard ROS is local-network-centric. BabyROS natively supports communication between cloud, edge devices, and microcontrollers. | Simplifies hybrid deployments and IoT integration. |
| Docker & Containerization | ROS containers are large due to system dependencies. BabyROS is lightweight with no extra dependencies. | Smaller images, faster CI/CD pipelines, easier reproducibility. |
| System-Wide Dependencies | ROS requires multiple libraries and exact versions. BabyROS runs on Python + Zenoh only. | Avoids library conflicts, version hell, and simplifies deployment. |
| Environment Setup Complexity | ROS requires sourcing environment scripts and workspace overlays. BabyROS requires no setup beyond Python & Zenoh. | Scripts run out-of-the-box, improves reproducibility and portability. |

