Table of Contents
Fetching ...

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.

Feelbert: A Feedback Linearization-based Embedded Real-Time Quadrupedal Locomotion Framework

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.
Paper Structure (37 sections, 58 equations, 17 figures, 3 tables, 2 algorithms)

This paper contains 37 sections, 58 equations, 17 figures, 3 tables, 2 algorithms.

Figures (17)

  • Figure 1: Feelbert block diagram.
  • Figure 2: Gait graph of a wave gait, where dark green and dark red arrows indicate the lift-off and touch-down times respectively, with respect to the period $T$ and the swing time $T_{sw}$.
  • Figure 3: The orange arrows are the world and body frames. The purple arrows are the position vectors of the center of mass and foot 4. The blue arrows are linear and angular velocities of the body. The red arrows are the joint angles of leg 2. The red points are the feet centers $\text{e}_i$. The purple points are the feet contact points $\text{f}_i$. The green line is the trajectory followed by foot contact point $\text{f}_2$ lifted to make a step.
  • Figure 4: The red arrows are the external forces acting on the robot. The magenta polygon is the Support Polygon. The magenta point $\text{z}$ is the Zero Moment Point.
  • Figure 5: Feet manager block diagram.
  • ...and 12 more figures