Automatic Snake Gait Generation Using Model Predictive Control

by   Emily Hannigan, et al.

In this paper, we propose a method for generating undulatory gaits for snake robots. Instead of starting from a pre-defined movement pattern such as a serpenoid curve, we use a Model Predictive Control approach to automatically generate effective locomotion gaits via trajectory optimization. An important advantage of this approach is that the resulting gaits are automatically adapted to the environment that is being modeled as part of the snake dynamics. To illustrate this, we use a novel model for anisotropic dry friction, along with existing models for viscous friction and fluid dynamic effects such as drag and added mass. For each of these models, gaits generated without any change in the method or its parameters are as efficient as Pareto-optimal serpenoid gaits tuned individually for each environment. Furthermore, the proposed method can also produce more complex or irregular gaits, e.g. for obstacle avoidance or executing sharp turns.


page 1

page 2

page 3

page 4


Nonlinear Model Predictive Control with Obstacle Avoidance Constraints for Autonomous Navigation in a Canal Environment

In this paper, we describe the development process of autonomous navigat...

Nonlinear Model Predictive Control for Quadrupedal Locomotion Using Second-Order Sensitivity Analysis

We present a versatile nonlinear model predictive control (NMPC) formula...

Walking in Narrow Spaces: Safety-critical Locomotion Control for Quadrupedal Robots with Duality-based Optimization

This paper presents a safety-critical locomotion control framework for q...

Geometric Gait Optimization for Inertia-Dominated Systems With Nonzero Net Momentum

Inertia-dominated mechanical systems can achieve net displacement by 1) ...

Planning for the Unexpected: Explicitly Optimizing Motions for Ground Uncertainty in Running

We propose a method to generate actuation plans for a reduced order, dyn...

Please sign up or login with your details

Forgot password? Click here to reset