ROS2 is powerful, but its abstraction layers, DDS overhead, and build complexity can be excessive for constrained or safety-critical systems. Several alternatives target tighter footprints, deterministic timing, or simpler integration.
LCM (Lightweight Communications and Marshalling) offers a fast, simple pub/sub transport with schema generation. You give up rosgraph introspection and large ecosystem packages, but gain minimal latency and easier embedded integration.
YARP focuses on modular, pluggable device abstractions and has strong adoption in humanoid & research labs, especially where heterogeneous sensors and legacy code must interoperate.
Orocos RTT + ROS control separation: Orocos provides real-time components with deterministic execution and hook-based life cycle. You can wrap components for ROS2 bridges only where you need ecosystem packages.
Custom gRPC or ZeroMQ layers are viable when your system architecture is narrow and fixed: you design explicit service/data contracts, keep dependencies lean, and avoid generic middleware. The trade-off is rebuilding tooling (introspection, visualization).
Finally, micro-ROS or embedded frameworks (like ESP-IDF messaging or CAN-based custom protocols) matter when MCUs require deterministic loops under memory and timing constraints that full ROS2 cannot meet.
Selection heuristic: choose the simplest middleware that meets your latency, determinism, tooling, and ecosystem requirements— then layer only the missing capabilities instead of adopting a full stack by default.
Enjoyed this article?
Share it or explore more posts on performance, robotics, and modern web tooling.