Feelbert: A Feedback Linearization-based Embedded Real-Time Quadrupedal Locomotion Framework
Aristide Emanuele Casucci, Federico Nesti, Mauro Marinoni, Giorgio Buttazzo
TL;DR
Feelbert addresses the need for predictable, embedded real-time control in quadruped locomotion by combining a closed-form feedback linearization-based body controller with an LDQ-based dynamic model and a modular three-block architecture. It introduces imaginary-wheel foothold computation and a gait scheduler to adapt to commanded motion while maintaining stability via a ZMP-consistent body reference. The framework is implemented in C++ with static memory, avoiding third-party libraries, and demonstrated on a Raspberry Pi 5 and within ROS 2, achieving satisfactory reference tracking and tight timing predictability under various speeds. This work enables safe, real-time quadruped locomotion on resource-limited hardware and lays groundwork for extending to uneven terrains and real-world robots.
Abstract
Quadruped robots have become quite popular for their ability to adapt their locomotion to generic uneven terrains. For this reason, over time, several frameworks for quadrupedal locomotion have been proposed, but with little attention to ensuring a predictable timing behavior of the controller. To address this issue, this work presents Feelbert, a modular control framework for quadrupedal locomotion suitable for execution on an embedded system under hard real-time execution constraints. It leverages the feedback linearization control technique to obtain a closed-form control law for the body, valid for all configurations of the robot. The control law was derived after defining an appropriate rigid body model that uses the accelerations of the feet as control variables, instead of the estimated contact forces. This work also provides a novel algorithm to compute footholds and gait temporal parameters using the concept of imaginary wheels, and a heuristic algorithm to select the best gait schedule for the current velocity commands. The proposed framework is developed entirely in C++, with no dependencies on third-party libraries and no dynamic memory allocation, to ensure predictability and real-time performance. Its implementation allows Feelbert to be both compiled and executed on an embedded system for critical applications, as well as integrated into larger systems such as Robot Operating System 2 (ROS 2). For this reason, Feelbert has been tested in both scenarios, demonstrating satisfactory results both in terms of reference tracking and temporal predictability, whether integrated into ROS 2 or compiled as a standalone application on a Raspberry Pi 5.
