Go Back
Overview
Diagram
COM Velocity
Estimation
Gait Pattern
Scheduler
Swing Leg
Controller
Stance Leg
Controller
QP Torque
Optimizer
Demonstration
References

Locomotion

Overview

This is a minimal approach to robot locomotion, minimizing computational complexity and resource utilization.

The method incorporates a COM velocity estimator which uses sensor data, a Kalman Filter, and a moving average filter. A Gait Pattern Scheduler for various walking styles. A Swing and Stance Leg Controller for calculating desired leg movement during different phases of locomotion. And a QP Torque Optimizer to determine the optimal contact forces.

Diagram

Locomotion Control Module

System Diagram

COM Velocity Estimation

The COM (Center of Mass) velocity estimation is implemented, utilizing a combination of sensor data, a Kalman Filter, and a moving average filter.

The Kalman Filter integrates accelerometer readings with velocity estimates derived from the contact legs of the robot.

In cases where the robot's feet are in contact with the ground, the velocities observed at the contact points are used to update the state in the Kalman Filter, providing a corrected estimation of the velocity.

To smooth out the velocity readings and mitigate the effects of sensor noise, a moving average filter is applied to the velocity estimates.

Gait Pattern Scheduler

The gait scheduler takes in a pre-defined gait configuration and the current timestep to determine the desired state of the leg — whether it should be in contact with the ground or lifted.

This allows for the description of every standard gait pattern, such as Trot Gait and Crawl Gait.

Swing Leg Controller

The Swing Leg Controller is designed to control the swing phase of a leg during locomotion. Using the robot’s current state, the gait generator, the velocity estimator and target, it generates the appropriate leg trajectories.

The controller distinguishes between stance and swing phases for each leg, intervening only during the swing phase. Utilizing the robot’s COM velocity and desired movement, it computes an ideal foot trajectory, ensuring sufficient clearance from the ground.

This trajectory is non-linear, facilitating rapid departure and reconnection with the ground, while peaking in the middle. The resulting foot positions are then translated into joint angles using the robot’s kinematic model.

Stance Leg Controller

The Stance Leg Controller is designed to control leg behavior during the stance phase. It integrates external components such as the robot model, gait generator and velocity estimator.

The controller works by continuously assessing the robot’s current state. It synthesizes this information to estimate the robot's height and center of mass in real-time.

Drawing from the desired state parameters and current state estimations, the controller uses Proportional-Derivative (PD) control, to generate desired accelerations to minimize the positional and rotational deviations. These acceleration values are constrained to predefined limits to ensure safety.

The controller translates the derived acceleration values into specific contact forces, using the QP Torque Optimizer. These contact forces are then converted into joint torques through the robot’s Jacobian matrix.

QP Torque Optimizer

The qp torque optimizer calculates the optimal contact forces based on the desired body velocity and acceleration. It represents the robot’s physical attributes, such as the mass distribution and the inertial properties, using matrices, which are needed for a precise torque computation.

The system converts the problem of torque optimization into a quadratic programming problem, where the objective is to minimize a cost function representing the deviation from desired accelerations and a regularization term to ensure stability in the solution. The problem is then solved using the quadprog c++ library.

Demonstration

A real robot utilizing this method, on uneven terrain.

References

[1] "Legged robbots that balance" by Marc Raibert (Chapter 2)

[2] MIT Cheetah 3: Design and Control of a Robust, Dynamic Quadruped Robot

[3] Highly Dynamic Quadruped Locomotion via Whole-Body Impulse Control and Model Predictive Control