Lorenz Meier, Dominik Honegger and Marc Pollefeys
Abstract— We present a novel, deeply embedded robotics middleware and programming environment. It uses a multithreaded, publish-subscribe design pattern and provides a Unixlike software interface for micro controller applications. We improve over the state of the art in deeply embedded open source systems by providing a modular and standards-oriented platform. Our system architecture is centered around a publishsubscribe object request broker on top of a POSIX application programming interface. This allows to reuse common Unix knowledge and experience, including a bash-like shell. We demonstrate with a vertical takeoff and landing (VTOL) use case that the system modularity is well suited for novel and experimental vehicle platforms. We also show how the system architecture allows a direct interface to ROS and to run individual processes either as native ROS nodes on Linux or nodes on the micro controller, maximizing interoperability. Our microcontroller-based execution environment has substantially lower latency and better hardware connectivity than a typical
Robotics Linux system and is therefore well suited for fast, high rate control tasks.
I. INTRODUCTION
Micro aerial vehicles (MAVs) have been an active research topic for decades, but became of even more interest to the broader robotics community in recent years. While ground-based robots are deployed in applications today, they remain confined to particular work spaces. Micro air vehicles navigate much more freely outdoors, and due to their
3D motion are a suitable generalization for many robotics design challenges. Recently a number of large scale industry applications have been proposed which require higher levels of autonomy than deployed systems can offer today. As the field progresses and more sophisticated robotics problems are targeted, the software complexity