Intelligent Control and Force Redistribution for a High

Intelligent Control and Force Redistribution
for a High-Speed Quadruped Trot
DISSERTATION
Presented in Partial Fulfillment of the Requirements for
the Degree Doctor of Philosophy in the
Graduate School of The Ohio State University
By
Luther R. Palmer III, B.S.E.E., M.S.E.C.E.
*****
The Ohio State University
2007
Dissertation Committee:
Approved by
David E. Orin, Adviser
Kevin Passino
Charles Klein
Eric Westervelt
Adviser
Graduate Program in
Electrical and Computer
Engineering
ABSTRACT
Aside from trying to mimic the small yet powerful actuators and sensing systems
that animals employ while running, understanding and implementing the control
mechanisms that animals use to robustly negotiate uneven terrain at high speeds remains an unsolved problem. The objective of this dissertation is to make a significant
contribution toward the development of a controller for the high-speed quadruped
trot over uneven terrain. The trot was chosen because of its energy efficiency over
a wide range of running speeds and its widespread use in nature. To this end, this
dissertation
1. presents a fuzzy control strategy that manages the complex coupling between
system inputs and body state to successfully track forward velocity and heading
in a trot at high speeds and over uneven terrain, and
2. introduces a method for redistributing the leg forces during the support period to stabilize the body’s tilt motion without overpowering or significantly
disturbing the passive dynamics of a biomimetic trot.
The controller stabilizes a 3D trot in simulation at 5.25 m/s, which is above
the target speed of 3.90 m/s at which an animal of its mass would be expected
to transition to its higher-speed gait, the gallop. The preferred trotting speed of a
quadruped with this mass is 2.85 m/s. The quadruped can turn at 30 deg/s when
ii
running at this speed, and can maneuver over uneven terrain at 4.25 m/s. This work
resulted in the first published report of quadruped heading control when running at
such high speeds and is the first reported control of high-speed running over uneven
terrain.
The controller stabilizes the trot on a quadruped system with articulated legs
and practical leg mass properties in a simulation environment with realistic friction
coefficients and system losses. The controller incorporates principles of the SLIP
(spring-loaded inverted pendulum) model and the idea that animals redistribute vertical impulses during stance to stabilize pitch. The SLIP model is a simple spring-mass
system that produces behavior similar to that observed in four-legged trotters and
two-legged runners. Force redistribution is the process of altering the large leg forces
that naturally occur during running to control selected body motions without significantly affecting others. The result of these two control ideas coming together is a
hybrid controller that controls forward, lateral, vertical, and yaw motions discretely
once per step and controls roll and pitch motions continuously during stance.
The force redistribution algorithm is based upon the efficient computation of the
DCGI (dynamically-consistent generalized inverse) of the Jacobian by modifying the
articulated-body algorithm for computation of the forward dynamics of multi-link
robot systems. The dynamic model used in the simulation includes the full effects of
swing leg mass, which can cause significant perturbations to the body motion. The
DCGI Jacobian relates the torques of the each leg to the actual forces on the body,
taking into account the inertial forces and allowing the controller to compensate for
these perturbations.
iii
The complex and highly nonlinear relationships between the system inputs and
the resulting body motions are particularly suited to the benefits of intelligent control.
Levenberg-Marquardt (LM) learning and fuzzy control are successfully implemented
without the need for a complex system model. The fuzzy controller is outfitted with
an adaptive learning mechanism to continuously improve the tracking performance
while the quadruped is running, and outperforms the simpler LM algorithm.
iv
To my parents, who encouraged but never pushed.
v
ACKNOWLEDGMENTS
I would like to thank my adviser, Dr. David E. Orin, for his leadership and support
throughout this process. I would also like to thank Dr. Kenneth Waldron for his
ideas and support while visiting Stanford University, Dr. Jim Schmiedeler for his
time and expertise, and the other members of my committee, Dr. Charles Klein,
Dr. Kevin Passino, and Dr. Eric Westervelt.
I wish to express gratitude to my family for their motivation and support. I also
wish to thank all of my friends for the good times we shared.
Finally, thanks goes to the Department of Electrical and Computer Engineering
for financial support through a Graduate Teaching Assistantship and Ph.D. Teaching
Fellowship, and to the National Science Foundation for financial support received
through Grant IIS-0208664.
vi
VITA
August 1, 1976 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Born – Hinsdale, IL, U.S.A.
May - August 1996,
May - August 1997 . . . . . . . . . . . . . . . . . . . . . . . . . Student Engineer,
Massachusettes Institute of Technology
Lincoln Laboratory,
Lexington, MA
May 1998 - August 1999 . . . . . . . . . . . . . . . . . . . . Test Engineer,
The Boeing Corporation,
Huntsville, AL
May 1999 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B.S. Applied Mathematics,
Oakwood College,
Huntsville, AL
May 1999 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B.S. Electrical Engineering,
University of Alabama in Huntsville,
Huntsville, AL
September 1999 - June 2002 . . . . . . . . . . . . . . . . Graduate Teaching Assistant,
The Ohio State University
June 2002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M.S. Electrical and Computer
Engineering,
The Ohio State University,
Columbus, OH
July 2002 - September 2005 . . . . . . . . . . . . . . . . .Graduate Research Assistant,
The Ohio State University
September 2005 - March 2006 . . . . . . . . . . . . . . .Ph.D. Teaching Fellow,
The Ohio State University
vii
PUBLICATIONS
L. R. Palmer, D. E. Orin, D. W. Marhefka, J. P. Schmiedeler, and K. J. Waldron,
“Intelligent Control of an Experimental Articulated Leg for a Galloping Machine,” in
Proc. of the IEEE International Conference on Robotics and Automation, (Taipei,
Taiwan), pp. 3821-3827, September 2003.
J. G. Nichol, L. R. Palmer III, and K. J. Waldron, “Design of a Leg System for
Quadruped Gallop,” in Proc. of the 11th World Congress in Mechanism and Machine
Science, (Tianjin, China), pp. 87-91, August 2003.
J. G. Nichol, S. P. N. Singh, K. J. Waldron, L. R. Palmer III, and D. E. Orin, “System
Design of a Quadrupedal Galloping Machine,” The International Journal of Robotics
Research, vol. 23, no. 10-11, pp. 1013-1027, October-November 2004.
L. R. Palmer III and D. E. Orin, “Control of a 3D Quadruped Trot,” in Proc. of
CLAWAR’05: 8th International Conference on Climbing and Walking Robots, (London, UK), pp. 165-172, September 2005.
L. R. Palmer III and D. E. Orin, “3D Control of a High Speed Quadruped Trot,”
Industrial Robot, vol. 33, no. 4, pp. 298-302, 2006.
L. R. Palmer III and D. E. Orin, “Attitude Control of a Quadruped Trot While
Turning,” in Proc. of the IEEE/RSJ International Conference on Intelligent Robots
and Systems, (Beijing, China), pp. 5743-5749, October 2006.
viii
FIELDS OF STUDY
Major Field: Electrical and Computer Engineering
Studies in:
Robotics
Professor D. E. Orin
Computer Engineering
Professors C. A. Klein,
D. E. Orin, S. C. Ahalt,
J. E. Degroat
Control Engineering
Professors K. M. Passino,
V. I. Utkin, S. Yurkovich
Dynamics and Kinematics
Professors R. Parker,
B. Lilly
ix
TABLE OF CONTENTS
Page
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ii
Dedication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
Vita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xii
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xiii
Chapters:
1.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
1.2
1.3
.
.
.
.
.
.
.
1
3
13
13
16
19
21
Trot Control of a Simplified Quadruped . . . . . . . . . . . . . . . . . .
23
2.1
2.2
2.3
23
26
29
32
35
1.4
1.5
2.
Motivation . . . . . . . . . . . . . .
Biomechanics of the Quadruped Trot
Previous Control Work . . . . . . . .
1.3.1 Stability of Legged Systems .
1.3.2 Control Algorithms . . . . . .
Objectives . . . . . . . . . . . . . . .
Organization . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introduction . . . . . . . . . . . . . . . . . .
Simplified Quadruped Model . . . . . . . . .
Control System . . . . . . . . . . . . . . . . .
2.3.1 Levenberg-Marquardt Online Learning
2.3.2 Control of the Body Tilt Axes . . . . .
x
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
.
.
.
.
.
.
.
.
.
.
2.4
2.5
3.
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
44
Trot Control of a Biomimetic Quadruped . . . . . . . . . . . . . . . . . .
46
3.1
3.2
3.3
.
.
.
.
.
.
.
46
48
51
55
67
75
77
Force Redistribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
3.4
3.5
4.
4.1
4.2
4.3
4.4
4.5
4.6
5.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . .
Articulated-Body Algorithm for Forward Dynamics . . . . . .
4.2.1 Spatial Notation . . . . . . . . . . . . . . . . . . . . .
4.2.2 Joint Models . . . . . . . . . . . . . . . . . . . . . . .
4.2.3 Recursive Algorithm . . . . . . . . . . . . . . . . . . .
Modified Articulated-Body Algorithm for Force Redistribution
Force Redistribution . . . . . . . . . . . . . . . . . . . . . . .
Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 80
. 82
. 83
. 84
. 86
. 88
. 92
. 96
. 108
Robust Trot Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1
5.2
5.3
5.4
6.
Introduction . . . . . . . . . . . . . . . . .
Biomimetic Quadruped Model . . . . . . . .
Control System . . . . . . . . . . . . . . . .
3.3.1 Step Controller and Fuzzy Algorithm
3.3.2 Continuous Force Redistribution . .
Results . . . . . . . . . . . . . . . . . . . .
Summary . . . . . . . . . . . . . . . . . . .
Introduction . . . . . . . . . .
Additional Control Mechanisms
5.2.1 Anti-Slip Retraction . .
5.2.2 Pitch Centering . . . . .
5.2.3 Leg Stretch Reflex . . .
Trot Analysis . . . . . . . . . .
Summary . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
111
114
114
117
120
126
136
Summary and Future Work . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.1
6.2
6.3
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
xi
LIST OF TABLES
Table
Page
2.1
Link parameters of the simplified system . . . . . . . . . . . . . . . .
28
2.2
Additional simulation parameters . . . . . . . . . . . . . . . . . . . .
28
3.1
Link parameters of the biomimetic system . . . . . . . . . . . . . . .
50
3.2
Table of leg controller states. . . . . . . . . . . . . . . . . . . . . . . .
54
3.3
Centers of the input membership functions for the fuzzy controller . .
59
4.1
Articulated-Body Algorithm for prismatic and revolute joints. . . . .
89
4.2
Modified Articulated-Body Algorithm for force redistribution. . . . .
93
5.1
Slip times with and without anti-slip retraction. . . . . . . . . . . . . 115
5.2
Peak-to-peak pitch oscillations. . . . . . . . . . . . . . . . . . . . . . 120
5.3
New table of leg controller states. . . . . . . . . . . . . . . . . . . . . 124
xii
LIST OF FIGURES
Figure
Page
1.1
The horse trot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Trot footfall pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3
The slow gallop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.4
Ground force vectors during the support period. . . . . . . . . . . . .
6
1.5
Approximate ground force plots. . . . . . . . . . . . . . . . . . . . . .
7
1.6
Fore-aft deceleration and acceleration during the support phase. . . .
7
1.7
Metabolic costs of running in a horse. . . . . . . . . . . . . . . . . . .
9
1.8
Energy exchange during the walk and run. . . . . . . . . . . . . . . .
11
1.9
Spring-mass model. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.10 Quadruped spring-mass model. . . . . . . . . . . . . . . . . . . . . .
14
1.11 Experimental quadruped, KOLT. . . . . . . . . . . . . . . . . . . . .
21
2.1
Kinematic and dynamic model of the simplified system. . . . . . . . .
26
2.2
Series-elastic actuator in the knee. . . . . . . . . . . . . . . . . . . . .
27
2.3
Simplified system in the RobotBuilder simulation environment. . . . .
29
2.4
Leg controller state machine. . . . . . . . . . . . . . . . . . . . . . . .
30
xiii
2.5
Levenberg-Marquardt online learning. . . . . . . . . . . . . . . . . . .
35
2.6
Close-up of Levenberg-Marquardt online learning. . . . . . . . . . . .
36
2.7
Pitch control of the approximated linear system. . . . . . . . . . . . .
38
2.8
Comparison of pitch control on the linear and actual system. . . . . .
40
2.9
Control of 3D trotting on the simplified quadruped. . . . . . . . . . .
41
2.10 3D trotting using Raibert’s trot controller. . . . . . . . . . . . . . . .
42
2.11 Tilt angles simultaneously corrected over several steps. . . . . . . . .
43
3.1
Body model with simplified legs. . . . . . . . . . . . . . . . . . . . . .
49
3.2
Dynamic model of the articulated leg. . . . . . . . . . . . . . . . . . .
50
3.3
Biomimetic system in the RobotBuilder simulation environment . . .
51
3.4
Hybrid control system. . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.5
Leg controller states. . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.6
Desired step height. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
3.7
Predicted step height. . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.8
Structure of the fuzzy control system. . . . . . . . . . . . . . . . . . .
58
3.9
Membership functions. . . . . . . . . . . . . . . . . . . . . . . . . . .
59
3.10 Selected fuzzy rule outputs. . . . . . . . . . . . . . . . . . . . . . . .
61
3.11 Adaptation mechanism for the fuzzy controller. . . . . . . . . . . . .
63
3.12 Turning with and without banking the body. . . . . . . . . . . . . . .
65
3.13 Ab/ad angles through the support phase. . . . . . . . . . . . . . . . .
66
3.14 Bank angle as a function of body yaw rate and forward speed. . . . .
67
xiv
3.15 Comparison between ab/ad angles and the conical pendulum angle
while turning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
3.16 Fuzzy control of velocity and turning rate. . . . . . . . . . . . . . . .
76
3.17 Quadruped response under Levenberg-Marquardt (LM) and fuzzy control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
3.18 Pitch motion while running at 3.0 m/s with and without swing leg
compensation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
4.1
Quadruped link numbers.
. . . . . . . . . . . . . . . . . . . . . . . .
85
4.2
Hybrid control system. . . . . . . . . . . . . . . . . . . . . . . . . . .
90
4.3
Control of velocity and turning rate. . . . . . . . . . . . . . . . . . .
97
4.4
Body state over five steps while turning. . . . . . . . . . . . . . . . .
98
4.5
Continuous roll axis data during one step. . . . . . . . . . . . . . . . 100
4.6
Continuous pitch axis data during one step. . . . . . . . . . . . . . . 101
4.7
Body accelerations during a single step. . . . . . . . . . . . . . . . . . 102
4.8
Poor control of roll motion. . . . . . . . . . . . . . . . . . . . . . . . 104
4.9
Joint torque outputs during one step. . . . . . . . . . . . . . . . . . . 105
4.10 Pitch correction during a single step. . . . . . . . . . . . . . . . . . . 106
4.11 Sliding time for a range of speeds. . . . . . . . . . . . . . . . . . . . . 108
5.1
Foot rate, swing angle rate, and swing torque during anti-slip retraction
at 5.0 m/s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2
Velocity effects of the anti-slip algorithm at 5.0 m/s. . . . . . . . . . 117
5.3
Pitch oscillations at 4.0 m/s without pitch centering. . . . . . . . . . 118
xv
5.4
Pitch oscillations at 4.0 m/s with pitch centering. . . . . . . . . . . . 119
5.5
Pitch oscillations as forward velocity changes. . . . . . . . . . . . . . 121
5.6
2-Dimensional view of the terrain. . . . . . . . . . . . . . . . . . . . . 122
5.7
Quadruped on uneven terrain in simulation. . . . . . . . . . . . . . . 123
5.8
Foot heights and leg lengths on uneven terrain. . . . . . . . . . . . . 125
5.9
Continuous body states while running over uneven terrain. . . . . . . 127
5.10 Fast acceleration to 5.0 m/s, and turning at 3.0 m/s. . . . . . . . . . 128
5.11 Effect of height and velocity on stride period, duty factor, and stride
length. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.12 The effect of speed on peak-to-peak height variation, peak leg force,
and support sweep angle. . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.13 Forward velocity, height, and yaw rate during a quadruped stride at
3.0 m/s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.14 Ground forces during a quadruped stride. . . . . . . . . . . . . . . . . 133
5.15 Joint torques during a quadruped stride. . . . . . . . . . . . . . . . . 134
5.16 Forward velocity, height, and yaw rate during a quadruped turn at
20 deg/s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.17 Ground forces during a quadruped turn at 20 deg/s.
. . . . . . . . . 136
5.18 Joint torques during a quadruped turn at 20 deg/s. . . . . . . . . . . 137
xvi
CHAPTER 1
Introduction
1.1
Motivation
Building robots that mimic living creatures has become a worldwide trend in
robotics research because biological systems provide many useful ideas concerning
modern engineering problems. The agility of mountain goats and the speed of cheetahs over unprepared terrain are desirable attributes for a mobile robotic system. A
robot that could achieve this type of robust and agile movement, combined with the
ability to work in remote and hazardous environments, would be valuable for military
reconnaissance, time-critical search and rescue missions, and planetary exploration.
At the present time, however, legged systems cannot achieve this type of mobility. If
legged vehicles are to reach their full potential as observed in nature, attention must
be given to the complexities of high-speed running.
Aside from trying to mimic the small yet powerful actuators and the precise and
high-bandwidth sensing systems that animals employ, understanding and implementing the control mechanisms that animals use to robustly negotiate uneven terrain at
high speeds remains an unsolved problem. It is known that the stabilizing forces are
the result of compliant elements and high-power actuators which perform a complex
1
interchange of potential and kinetic energy during the short stance phases. Also, the
high forces necessary to overcome frictional and contact losses, and to redirect the
vertical momentum of the body, are strongly coupled to rotations about all three axes
in a 3D quadruped, and this coupling is difficult to manage for control purposes because of the many degrees of freedom. The attitude of the quadruped becomes largely
uncontrollable during flight, and the required leg movements in preparation for touchdown cause undesired effects on body motion, especially pitch. These complexities
have made it difficult to produce a precisely-controlled legged system running at high
speed.
The benefits of intelligent control are particularly suited to the complexities presented by high-speed running machines. Intelligent control algorithms can simplify
the control process by eliminating the need for complex modeling of system parameters. Instead of relying on simplified models that overlook important dynamics or
very complex models that are often cumbersome in control, intelligent algorithms can
simplify the essential details needed to manage these systems. Intelligent methods
can also be outfitted with online learning mechanisms to continuously improve the
performance of the controller during testing.
Trotting and galloping dominate as nature’s preferred gaits for the quadruped
run. Although many animals gallop at top speeds, there is a significant range of
intermediate speeds for which trotting is the most energy efficient gait [1, 2]. A trot
also decouples pairs of legs and makes control simpler. Trotting is often used by
animals as the precursor to galloping, and studying the quadruped trot will lead to
understanding the gallop. The focus of this dissertation is on the intelligent control
of the quadruped trot.
2
Figure 1.1: The horse trot [6]. Diagonal leg pairs ideally contact and leave the ground
at the same time.
1.2
Biomechanics of the Quadruped Trot
A gait is defined as a complex and strictly coordinated, rhythmic and automatic
movement of the limbs and the entire body of the animal, which results in the production of progressive movements [3]. Gaits can be classified depending on the symmetry
between the right and left sides. In an asymmetric gait, the footfalls of the fore and/or
hind limbs occur as couplets. Examples of asymmetric gaits include the bound, canter, and gallop. In the symmetric gaits, the left and right footfalls of the fore and
hind limbs are evenly spaced in time. The trot, shown in Fig. 1.1, is a symmetric gait
along with the quadruped walk and pace. The trot is the most common symmetric
gait [4] and is used by virtually all carnivores, ungulates, and perissodactyls [5]. During trotting, the left hind (LH) leg and right fore (RF) leg move in unison, ideally
contacting and leaving the ground at the same time. The left fore (LF) and right
hind (RH) leg also move in unison, as shown in Fig. 1.2.
Another gait, the pace, is characterized by synchronized lateral leg pairs, resulting
in roll oscillations during a complete cycle of leg contacts. The pace is seen in longlegged animals such as the camel and giraffe to prevent front-hind leg interference [7].
The bound gait is characterized by the front and hind pairs working together. The
3
Figure 1.2: Trot footfall pattern. The left hind (LH) leg and right fore (RF) leg move
in unison and are in contact with the ground, shown as gray, together. Likewise, the
left fore (LF) and right hind (RH) leg move in unison.
body experiences significant pitch moments as each pair interacts with the ground.
The trot, described above, pairs diagonal legs and exhibits no significant pitch or
roll motion during its stride, which is most likely the reason for its preferred use
over the bound [8]. The gallop is characterized by the two front footfalls occurring
sequentially, followed by the two hind footfalls with no two feet touching down at the
same time, as shown in Fig. 1.3. As mentioned before, the gallop is the preferred gait
for most quadruped mammals at their top speeds [4]. Some quadrupeds will briefly
canter as they transition from the trot to the gallop. This gait resembles both the
trot and the gallop as one diagonal pair of legs operates in phase while the other two
legs operate individually.
Several definitions, taken from zoologist R. McNeil Alexander [4], will be used in
this discussion. The stride is a complete cycle of leg movements, for example, from
the touchdown of a particular foot to the next touchdown of the same foot. Stride
frequency is the number of strides taken in unit time, and stride length is the distance
traveled in a stride. The stride of a leg is divided into the support phase, when the
leg is in contact with the ground, and the swing phase, when the leg is in flight.
Figure 1.1 shows that the trot stride consists of two flight phases and two periods of
4
Figure 1.3: The slow gallop [6].
support. The duty factor of a foot is the fraction of the duration of the stride for
which it is on the ground in support of the body.
Ground Forces
When an animal’s limb is in contact with the ground, it can exert forces and experience ground reaction forces. The vertical component of the ground reaction force
serves to support the animal’s weight as well as reverse the body’s vertical momentum, while the horizontal fore-aft and mediolateral components allow the animal to
accelerate or decelerate and to maneuver and balance [9]. Figures 1.4 and 1.5 show
the planar ground reaction force vectors (sagittal plane) at three intervals during the
stance phase of steady-state running. The vertical component of the ground force
increases parabolically during the first half of the stance phase and then declines similarly during the second half. The vertical force is responsible for reversing the body’s
vertical momentum. When the foot has a forward fore-aft position with respect to its
hip, at time T1, the horizontal component of the ground reaction force is negative.
5
Figure 1.4: Ground force vectors during the support period [9].
With the foot directly under the hip, at time T2, no horizontal component exists
and then becomes positive during the latter half of the stance phase when the foot is
behind the hip, at time T3.
These figures show that even when an animal moves at a steady speed, its limbs
exert decelerating and accelerating horizontal forces on the body. This causes slowdown and speed-up subphases during the support period, as shown in Fig. 1.6. The
net horizontal accelerating force exerted by an animal’s limbs is positive when an
animal increases its speed and negative when it slows down. Animals also exert
mediolateral forces with their limbs, particularly when changing direction, but these
are typically smaller in magnitude than those exerted in the vertical and fore-aft
directions when they are moving in a straight direction [9].
The direction of the ground force created by each joint in the leg is related to
the configuration of the leg and its orientation with respect to the ground and body.
Each joint torque can produce ground forces in multiple directions and can cause
6
Figure 1.5: Approximate ground force plots [9]. T1 , T2 , and T3 correspond to matching
labels in Fig. 1.4.
Figure 1.6: Fore-aft deceleration and acceleration during the support phase. This
data is adapted from Cavagna et al. [10]. T1 , T2 , and T3 correspond to matching
labels in Fig. 1.4 and Fig. 1.5.
7
moments about multiple body axes. These relationships constantly change as the leg
retracts backward during stance, and the manner in which animals manipulate these
relationships is still largely unknown.
Energetics
Gaits can also be classified as walks or runs. The quadruped run is commonly
identified by the periods of flight during a stride when none of the four feet are in
contact with the ground. This also corresponds to foot duty factors less than 0.5.
Quadrupeds can use the trotting leg sequence when walking or running. During the
walk, a diagonal pair will not leave the ground until the contralateral pair has touched
down. In the running trot, which will be studied throughout this work, this overlap
does not occur and a distinguishable flight phase is observed.
A horse increasing in speed will first walk, then trot, then canter for a narrow
range of speeds, and finally gallop [4]. Animals select these gaits at various speeds
based mainly on energy considerations. Figure 1.7, taken from Hoyt and Taylor [1],
shows the milliliters of oxygen consumed per meter by a horse moving at a range of
speeds. The curves clearly show that walking is the most energy efficient gait for very
low speeds, trotting is most energy efficient for a wide range of intermediate speeds,
and galloping is most energy efficient for top run speeds. This data also shows that
the horse has a preferred speed for each gait, where the parabolic minimum occurs.
This minimum is visually apparent for the walk and trot but insufficient data was
gathered for very high speed galloping. The speed at which this horse can save energy
by transitioning from the walk to the trot is the walk-trot transition speed and the
trot-gallop transition speed follows.
8
Figure 1.7: Metabolic costs of running in a horse [1].
9
Heglund and Taylor [11] studied 16 species of animals ranging in body mass from
30 g mice to 200 kg horses and provided the following equations:
minimum trotting speed = 0.593 Mb0.249 ,
(1.1)
preferred trotting speed = 1.09 Mb0.22 , and
(1.2)
trot-gallop transition speed = 1.54 Mb0.216 ,
(1.3)
where Mb is the animal’s body mass. For a 75 kg quadruped, these speeds are
approximately 1.74, 2.82, and 3.91 m/s respectively.
A closer comparison between the walk and run also reveals a difference in the
exchange of the body’s kinetic energy (KE) and potential energy (PE) during a stride.
During a walk, as shown in Fig. 1.8, the forward and vertical kinetic energy are out
of phase with the potential energy changes due to the body’s vertical oscillations.
The body accelerates downward, noted by the arrows, due to gravity during phase
A. This causes an increase in the body’s kinetic energy, but a loss in potential energy
based upon the body’s height. Cavagna et al. [10] suggested that this allows for
energy conservation by means of exchange between the potential and kinetic energy
and that this exchange is similar to that being done in a simple inverted pendulum.
Cavagna et al. [10] further showed that this type of energy exchange is not possible
when running because the potential and kinetic energy of the body’s center of mass
oscillate in phase, also shown in 1.8. They showed that running animals still conserve
energy while running by absorbing some of the kinetic and potential energy into
elastic elements, primarily the tendons and ligaments of the limbs. The elastic strain
energy, Ue , stored in these elements is restored to the animal as it pushes off of the
ground during the latter half of limb support. The exchange between the potential
10
PE
Walk
KE
A
B
A
B
PE
Run
KE
Ue
Figure 1.8: Energy exchange during the walk and run. This data is recreated from
Biewener [9]. The arrows represent the vertical movement of the body.
and kinetic energy of the body’s center of mass and elastic strain energy substantially
reduces the amount of work that the muscles must do to keep the animal moving at
a constant speed [9]. The simplified mechanics of this relationship are shown in the
bottom half of Fig. 1.8. As the body falls during phase A, the potential and kinetic
energy decrease, but the elastic strain energy, Ue , increases. The elastic energy is
converted to vertical potential and kinetic energy during the second half of the stance
phase, labeled B.
Spring-Mass Model
The evidence presented by Cavagna et al. [10] showed that during the run, the
musculoskeletal system behaves like a single linear spring. This led to the development
of the spring-mass model shown in Fig. 1.9. A linear spring in the leg represents
11
Figure 1.9: Spring-mass model. This simple model describes and predicts the mechanics of running gaits.
the elastic characteristics of the musculoskeletal system and the mass is equivalent
to the mass of the animal [12]. The spring-mass model describes and predicts the
mechanics of running gaits remarkably well when a spring with appropriately stiffness
is chosen [13, 14]. Ferris el al. [15] showed that an animal changes its leg stiffness
when walking on different surfaces types, but Farley et al. [16] found that an animal
does not significantly change its leg stiffness when running at different speeds on a
consistent surface. Farley et al. also showed that animals of different mass use a
different leg stiffness, and that this stiffness has a simple mathematical relationship
with body mass, Mb , by
leg spring stiffness = Mb0.67 .
(1.4)
Although the characterization of legged locomotion gaits is far from complete,
legged vehicles have been built based upon this model. This next section presents
some of the previous analysis and control work done in this area.
12
1.3
Previous Control Work
Full and Koditschek [17] defined a template as a pattern that describes and predicts the behavior of a body. Further, this model is created by trimming away all
the incidental complexity of joints, muscles, and neurons. The spring-mass model,
appropriately named the spring-loaded inverted pendulum (SLIP) model by Full and
Koditschek, is such a template. This simple spring-mass system produces behavior
similar to that seen in six-legged trotters (cockroaches), four-legged trotters (dogs,
rams), two-legged runners (humans, birds) and two-legged hoppers (kangaroos) [18].
Figure 1.10 shows the extension of the simple spring-mass model to a quadruped
form. The quadruped model predicts the vertical and forward motion of a quadruped
trotter. The dark lines represent the positions of the legs at touchdown and the light
legs represent the positions at liftoff. Full and Koditschek also proposed that templates should serve as a guide for the control of locomotion. This section presents
some of the work done on SLIP-based systems that has contributed to the study of
high-speed legged locomotion control. The first section is a discussion of stability as
the goal for any proposed control system and is followed by a discussion of previous
high-speed quadruped control algorithms.
1.3.1
Stability of Legged Systems
To discuss the effectiveness of a control strategy, the system’s outputs must be
compared to some set of desired outputs. For legged vehicles, there is no single set
of desired characteristic outputs to measure against. This is largely because of the
versatility of legged systems; climbing robots should not be subjected to the same
stability criteria as machines designed for locomotion on a horizontal terrain.
13
Figure 1.10: Quadruped spring-mass model. The simple spring-mass model can be
extended to biped and quadruped systems. The quadruped model shown here predicts
the vertical and forward motion of a quadruped trotter. The dark lines represent the
positions of the legs at touchdown and the light legs represent the positions at liftoff.
Legged systems of the latter type are studied in this work, but a wide variety of
applications and stability criteria exists even within this subset of legged vehicles. For
slow-moving walking machines, stability can be measured by the position of the vertical projection of the body’s center of gravity, called the center of pressure (CoP) [19],
in relation to the polygon created by the feet in contact with the ground. At least
three feet must be in contact with the ground to create a support polygon, but this
condition does not occur during the trotting stride or other running gaits. Trotting
also exhibits an aerial phase during which the body is largely uncontrollable because
no limbs are in contact with the ground. These characteristics give rise to the need
for dynamic stability measures for high-speed quadrupeds.
In 1986, Raibert made perhaps the biggest contribution to high-speed legged locomotion by being the first to verify that experimental systems built based upon the
principles of the SLIP model can achieve sustainable gaits [20]. This sparked the
14
study of legged robots as dynamic systems in the pursuit of provably stable control
algorithms.
M’Closkey and Burdick [21] suggested that the heuristic methods used by Raibert,
which were largely based on kinematic and not dynamical notations, can lead to
unpredictable behavior when applied to systems with nonlinear mechanical elements.
M’Closkey and Burdick presented the Poincare map as an analytical technique for the
rigorous analysis of nonlinear dynamic systems by verifying that if a system maintains
a stable periodic orbit or oscillation, the associated Poincare map exhibits a stable
fixed point. The Poincare map, or return map, is a set of equations that govern a
system from one discrete event during an oscillation to the next matching event [22].
Initially applied to single-legged SLIP models that only allowed vertical motion [23],
this event has typically been the initial moment of toe-ground contact, also called
touchdown. The dynamic motions of a complete cycle are represented by a piece-wise
set of equations because body motion during flight is dictated by different equations
than body motion during the compression and thrust phases of support. To make
these dynamic equations tractable for this type of analysis, assumptions such as the
elimination of gravitational effects during stance and the use of massless legs were
necessary [21, 22].
Berkemeier [24] laid out the dynamic equations of motion for a biped (or planar quadruped) bound and pronk, allowing only vertical and pitch motions. These
equations resulted in useful principles for system design, but were too complex for
rigorous analytical control techniques. As a result, no useful controller or technique
for analyzing stability was derived from this work. Nanua and Waldron [25] suggested
that a stable control scheme should generate limit cycles in the discrete phase plane.
15
This was described as a time history method for analyzing the stability of quadruped
control algorithms.
In 1999, Goswami [26] noted that no general consensus exists for a mathematical
description of dynamic stability other than its negation implies an unsustainable gait.
Gait stability later was characterized by Full et al. [27] as the return of characteristic
system states to equilibrium points or limit cycles after a perturbation. Further
discussion was given in this work to quantitatively characterize the stability of an
algorithm by the rate of return to the equilibrium point or limit cycle by computing
the eigenvalues of the system’s cycle-to-cycle mapping function. The overwhelming
goal of quadruped motion can be summarized as the search for control algorithms
that produce sustainable gaits, worded as “model robustness to a particular external
disturbance” by Herr and McMahon [28], and “the existence of a periodic fixed point”
by Poulakakis et al. [29].
Control algorithms are presently evaluated based upon their ability to sustain a
gait in the environment that the vehicle was designed to operate in. Quantitative
parameters such as the amount of disturbance that should be rejected and the desired speed of recovery to such disturbances are as different as the machines being
tested. The control algorithms presented in this work will be compared to previouslypresented algorithms for high-speed quadruped motion. A brief description of some
of these algorithms follows.
1.3.2
Control Algorithms
In proving that dynamic gaits are sustainable in experimental hardware, Raibert
presented useful control algorithms for the quadruped trot, bound, and pace [20, 30].
16
The Big Dog project from Boston Dynamics is another experimental quadruped that
runs at low speeds using the trot gait [31], but not much information is available
regarding its control system. Others studied the quadruped bound because of the
natural passive stability on the pitch axis [24, 32], but bounding requires more energy
than trotting at similar speeds [8] and is not as prevalent as trotting in nature’s
quadrupeds [4, 5].
Raibert executed a quadruped trot by separating the control effort into the control
of pitch and roll, the control of forward speed, and the control of vertical thrusting
motion [30]. Each controller was modular and did not account for the disturbance of
the others. This limited the performance of the controller because of the coupling of
the joint outputs to multiple system states. As an example, gains on pitch error were
limited so that the pitch controller would not have a profound negative affect on the
quadruped’s velocity. This compromised the performance of the pitch controller which
could not eliminate a significant nose-down attitude during steady-state running.
Raibert also reported that only a rough relationship existed between the desired and
actual forward speeds, another artifact of controller interference. The maximum speed
achieved was 2.2 m/s.
Herr and McMahon [33] stabilized a planar trot in numerical simulation by using fore-aft hip torque to control both forward velocity and pitch. Unlike Raibert’s
algorithm, the desired foot position at touchdown remained nearly constant over a
wide range of velocities. Velocity was controlled by applying a torque at the hip to
drive each hip over its foot at a rate equal to the desired body velocity. A bias which
decreased the target forelimb velocity and increased the target hind limb velocity
was shown to stabilize pitch. Under this type of control, the steady state run does
17
not exhibit the deceleration and acceleration during the support phase as shown in
Fig. 1.6. This method of velocity control overpowers the natural dynamics of forward
velocity displayed in animals and predicted by the SLIP model. This controller was
only tested at four discrete velocities between 2.2 m/s and 4.4 m/s and was never
shown to track regular changes in desired velocity. This controller was planar and
hence did not present a method for simultaneous control of pitch and roll.
Krasny and Orin [34] also used fore-aft hip torque to control forward velocity and
pitch to execute high-speed turns while galloping. This control algorithm relied upon
linear gains to stabilize a run at a single speed and a single turning rate. This work
and others [24] showed that a complex nonlinear quadruped system can be linearized
and successfully controlled around a fixed point, but these controllers only maintain stability when the system is well initialized, without the presence of significant
disturbances, and without regular changes in the desired velocity and turning rate.
Other assumptions have been made to simplify legged systems for control, such as
the simulation of legs with no mass [22]. Without modeling legs with mass, gravity is
the only linear or angular force on the body during flight and the equations of motion
are more tractable. Schmiedeler et al. [35] suggest that the accuracy of simulated
quadruped motion is compromised by using a model with massless legs. When legs
are modeled with mass, the inertia of the forward moving legs causes a significant
disturbance to the motion of the body, primarily affecting pitch. Without modeling
this effect, the simulation will not perform as can be expected in real hardware and
the need for control effort toward that disturbance could be overlooked.
Intelligent control algorithms have recently been applied to legged robots. Marhefka et al. [36] simulated planar quadruped gallops controlled by fuzzy algorithms. In
18
this work, fuzzy algorithms were used to map highly nonlinear relationships between
multiple inputs and outputs. This eliminated the need for a complex model of the system, and produced better results than the control based on simplified dynamics. The
previously described work of Herr and McMahon [33] relied upon genetic algorithms
to determine leg touchdown fore-aft angles as part of their control algorithm. Krasny
and Orin [34] also used genetic search algorithms to generate high-speed quadruped
gaits for a machine with articulated legs. Genetic algorithms aided in the search of
the vast multidimensional space to find optimal parameters such as leg touchdown
angles and controller gains. Palmer et al. [37] developed fuzzy control algorithms
on an experimental, single-leg machine, verifying the use of intelligent methods in
real time. Hornby et al. [38] evolved dynamic gaits using the Sony quadruped robot.
These gaits were implemented onboard the machine in real time and outperformed
hand-tuned gaits.
1.4
Objectives
The explicit goal of this work is to present a useful control strategy for a 3dimensional (3D) running trot. Further objectives can be listed as the design of a
trot controller that
• Preserves SLIP dynamics,
• Controls velocity over a range of speeds,
• Tracks a 3D heading,
• Performs on uneven terrain, and
• Can be implemented on an experimental system.
19
The SLIP model describes the passive dynamics of a quadruped running trot, and
it has been suggested that an active control law that closely mimics a passive system
is likely to enjoy certain advantages of the passive system such as energy optimality
and stability [39]. Based on this assumption, the controller presented in this work
seeks to preserve the passive dynamics of high-speed quadruped trotting, which are
predicted by the SLIP model. The trot was chosen because of its observed energy
efficiency over a wide range of running speeds and its widespread use in nature.
The control algorithm also seeks to stabilize the trot over a range of speeds and
maintain good control of the acceleration and deceleration between these speeds. The
desired speed is input by a user and the resulting velocity error should be eliminated
in a reasonable amount of time. Another user input is the desired heading, which the
quadruped will seek to track. Results from this work mark the first published results
of dynamic quadruped turning at high speeds.
The primary reason to investigate legged systems is their potential benefit on unprepared terrain. To this end, a goal of this work is to produce a robust running
control that stabilizes the trot over uneven terrain. The controller will have no advance information about the ground plane deviations other than the present height
of the ground underneath each foot.
Simulation of robotic systems is useful for the hardware and control system design
of experimental robots. Control algorithms can be analytically studied and easily
modified in simulation to identify useful control principles or to verify the viability
of a control method. Once a proof of concept is completed for an algorithm, some
of the computational complexities of the algorithm can be simplified to run on a
real-time system. This dissertation presents a high-speed quadruped controller that
20
Figure 1.11: Experimental quadruped, KOLT [40].
is designed for the experimental KOLT (Kinematically Ordered Locomotion Test)
vehicle [40], shown in Fig. 1.11. Because of its future experimental application, the
control algorithm is tested on a quadruped with practical mass properties and in an
environment with realistic friction coefficients and system losses. Consideration is also
made concerning the computational complexity of the algorithm, and its feasibility
on an embedded system.
1.5
Organization
Chapter 2 investigates trot control on a simplified quadruped. The quadruped
has light-weight, prismatic legs and is used to verify the biomimetic control principle
of distributing the energy input between the fore and hind limbs to correct pitch.
The energy input and pitch correction is a discrete thrust difference computed from
21
a linear approximation of the system. The Levenberg-Marquardt (LM) algorithm is
implemented as part of the control system to achieve velocity control.
In Chapter 3, a fuzzy control algorithm is presented and tested on a quadruped
with an articulated knee and heavier legs. The biologically-inspired leg design and
mass properties pose a more realistic challenge for the control system, which is modified to continuously control the tilt axes during stance. The fuzzy algorithm is shown
to outperform the LM algorithm on this system.
Chapter 4 presents the full force redistribution algorithm for controlling the tilt
axes during stance while attempting to preserve the SLIP dynamics prescribed by
the fuzzy controller. The algorithm is based upon the efficient calculation of the
DCGI (Dynamically Consistent Generalized Inverse of the) Jacobian by modifying
the articulated-body algorithm for computation of the forward dynamics of multilink robot systems.
In Chapter 5, an anti-slip retraction algorithm is added to the force redistribution
control system. The new controller is shown to stabilize a quadruped run and turn at
high speeds over uneven terrain. This chapter also presents some numerical results
for the trot algorithm.
Chapter 6 summarizes the contributions of this work and future research topics
are presented.
22
CHAPTER 2
Trot Control of a Simplified Quadruped
2.1
Introduction
Control of forward velocity and turning rate are the primary objectives for the
controllers presented in this and the following chapters. Height, pitch and roll motion,
and lateral velocity are of secondary importance, but need to be stabilized to achieve
successful trotting.
Another goal of this work is to develop a controller for high-speed trotting which
preserves the natural dynamics observed in nature and predicted by the SLIP model.
This involves the conservation of energy through compliant elements acting along the
axial leg. Understanding the SLIP model also leads to heuristic control principles such
as adjusting the touchdown position of the feet with respect to their hips to control
the fore-aft velocity, placing the legs in scissor-like positions at touchdown to cause
yaw moments during stance, and increasing the magnitude of the leg forces during
stance to raise the height of the body at the top of flight. Raibert [30] effectively used
these principles to control an experimental quadruped.
The SLIP model, however, does not yield general principles for controlling the
body’s pitch and roll motions. During steady-state running, the quadruped trot
23
exhibits minimal pitch and roll oscillations, but these axes must be actively controlled
because of the strong coupling between their motion and the axial leg forces that
become large during the support phase. The small pitch oscillations observed during
trotting do not require much effort to stabilize. The pitch motion is further disturbed,
however, by the torques required to protract the flight legs forward. The torques onto
the flight legs also act on the body as an undesirable nose-down pitch moment. This
moment becomes significant at higher speeds as more torque is needed to quickly
sweep the legs through a larger angle from liftoff to touchdown.
Biomechanics studies show that pitch stability for the quadruped trot is achieved
by redistributing the vertical impulses during stance between the fore and hind
limbs [41]. This principle will be used in the control approach presented here. The
large axial leg forces will be redistributed to compensate for the disturbance of the
protracting legs and to attenuate the pitch and pitch rate error. Because the leg pairs
are synchronized, the redistribution causes only a minimal effect on the passive SLIP
dynamics. Restated, the controller seeks to redistribute the leg forces to stabilize
pitch without affecting the natural dynamics of the forward, lateral, vertical, and
yaw motions.
The body’s roll axis does not experience a major disturbance from the flight
legs because the protracting motion is mainly in the fore-aft direction. The roll
motion is disturbed, however, when the stance leg forces are redistributed by the pitch
controller. Torques at the hip used for abduction and adduction of the legs during
flight can be used during stance to negate the effects of the disturbance caused by
the pitch controller.
24
The controller presented here also incorporates an intelligent control method to set
the leg’s fore-aft and lateral attack angles for touchdown. The Levenberg-Marquardt
(LM) method is an online learning mechanism that improves the performance of
the controller over several steps by updating the control coefficients based upon the
system errors. The LM algorithm used here is a derivative of the Gauss-Newton
learning method used to solve least squares problems [42]. Intelligent methods can
be computationally expensive but the LM method has been implemented within the
processing constraints of an embedded control system for an experimental legged
system [37].
The significant contribution of the controller presented in this chapter is the new
approach to pitch stability. Others have used torque during stance on the fore-aft
shoulder and hip drive axes to stabilize pitch [30, 33, 34], but the controller presented
here redistributes the forces already present in the legs and does not require any
fore-aft shoulder and hip drive torque during stance. The pitch and roll controllers
successfully stabilize the body’s tilt axes to predictable and repeatable angles during
stance, which will improve the performance of the LM controller.
The trotting algorithm presented here successfully regulates forward speed up to
3 m/s and controls turning at rates up to 20 deg/s. This worked appeared to be the
first reported regulation of quadruped heading while running at high speeds.
The quadruped model used to present the effectiveness of the controller is described in the following section. The Levenberg-Marquardt method and the force redistribution algorithm are presented in Section 2.3. The results follow in Section 2.4,
and the chapter concludes with a summary.
25
Figure 2.1: Kinematic and dynamic model of the simplified system.
2.2
Simplified Quadruped Model
A model of the 3D quadruped system used in this work is shown in Fig. 2.1.
The legs each have two actuators at the shoulder/hip joints, one for abduction and
adduction of the leg and another to swing (protract/retract) the leg. The resultant
leg angles are θa and θs , respectively. The abduction and adduction actuators and
axes will hereafter be referred to as “ab/ad”. A third actuator in the thigh, shown
in Fig. 2.2, adjusts the rest position of a series spring element. The resulting force
adjusts the leg length, r, during flight and can continuously adjust the spring length
during stance to add or remove energy from the system. Energy is stored in the spring
as the leg compresses during the first half of stance and is returned to the system as
the leg lengthens. The energy conserved by the spring reduces the effort required to
maintain a consistent height from step to step. Foot-ground contact is modeled as a
point contact.
26
Figure 2.2: Series-elastic actuator in the knee.
Figure 2.1 shows the specific body angles to be controlled: euler roll, γ, pitch,
β, and yaw, α, along with the forward velocity, vbx , lateral velocity, vby , and height,
h = pzE , at the top of flight (TOF). A step starts at a TOF and concludes at the
next TOF, with a diagonal leg pair having contacted the ground and exerted an
appropriate impulse during that time.
The quadruped weighs 42.4 kg and stands 60 cm high with the leg springs in their
nominal position. The shoulder separation is 33 cm and the shoulder-to-hip distance
is 1.2 m. The dimensions were chosen to match those of a mid-sized goat. The thigh
and shank are modeled as slim rods of length 35 cm with geometrically-centered
masses of 0.25 kg. Each leg makes up approximately 1.5% of the total system mass.
The complete list of mass and inertia values is presented in Table 2.1. Additional
simulation parameters are shown in Table 2.2.
This model is termed “simplified” mainly because of the actuator providing the
axial leg force. In nature, this force is often produced by muscles and tendons acting
on an articulated knee. To test the usefulness of the control mechanisms presented
27
mb
40 kg
xx
Ib 1.33 kg·m2
Ibyy 7.63 kg·m2
Ibzz 8.69 kg·m2
ℓb
1.2 m
wb
0.33 m
ma
0.1 kg
xx
Ia 0.00037 kg·m2
Iayy 0.00037 kg·m2
Iazz 0.00037 kg·m2
mt
0.25 kg
xx
It 0.0059 kg·m2
Ityy 0.0076 kg·m2
Itzz 0.0076 kg·m2
ℓt
0.35 m
ms
0.25 kg
xx
Is 0.0102 kg·m2
Isyy 0.0102 kg·m2
Iszz 0.0078 kg·m2
ℓs
0.35 m
Table 2.1: Link parameters of the simplified system.
Leg spring constant (ks )
Ground spring constant (kg )
Ground spring damper (bg )
Static friction coefficient (µs )
Kinetic friction coefficient (µk )
25.82 kN/m
75 kN/m
2 kN/m/s
0.75
0.6
Table 2.2: Additional simulation parameters.
here, the added complexity of an articulated knee is not necessary. In later chapters,
controllers based upon the principles presented here will be shown to successfully
stabilize quadrupeds with articulated knees and other complexities such as a more
biomimetic distribution of mass in the body and legs.
The control algorithm is tested in RobotBuilder [43], a robot simulation environment built upon the DynaMechs [44] software package. System losses are modeled
as damping in the compliant ground. Ground spring and damping coefficients are
75 kN/m and 2 kN/m/s respectively. Ground static and kinetic friction coefficients
are 0.75 and 0.6 respectively, matching the properties of rubber on concrete. The
system in simulation is shown in Fig. 2.3.
28
Figure 2.3: Simplified system in the RobotBuilder [45] simulation environment.
2.3
Control System
The impulses that each leg delivers to the body during stance are what effectively
control the quadruped. The magnitudes and directions of these impulses are dictated by the actuation of the joints during flight in preparation for touchdown and
the separately-managed actuation of the joints during the support period. The dual
roles of the actuators during flight and stance are organized by dividing the leg cycle
into discrete states as shown in Fig. 2.4. When the foot lifts off the ground, the leg
immediately shortens and then protracts forward to its touchdown angle. When in
position, the leg lengthens to prepare for contact with the ground. Foot contacts
for diagonal leg pairs are synchronized by extending and shortening the legs to compensate for body roll and pitch. Stance is divided into two phases, the compression
phase during which the passive leg spring absorbs some of the kinetic energy from the
29
PROTRACT
LENGTHEN
SHORTEN
Flight
Stance
liftoff
THRUST
touchdown
COMPRESS
Figure 2.4: Leg controller state machine.
ballistic flight, and the thrust phase during which the spring lengthens and returns
energy to the system.
This controller primarily seeks to stabilize the speed and direction of running
based upon desired values input manually by a user. Height, pitch and roll motion,
and lateral velocity are of secondary importance, but need to be stabilized to maintain stable trotting. Some of the principles presented by Raibert [30] will be used
here: forward, lateral, and yaw motion can be dictated by the placement of each foot
with respect to its hip at touchdown, and vertical motion can be controlled by instantaneously injecting energy into the spring during stance at the moment of maximum
compression.
The yaw rate, α̇, and lateral velocity, vby , are controlled with an appropriate ab/ab
angle, θa for the fore and hind legs at touchdown by
θaf ore = −γ + (kα1 α̇ + kα2 (α̇ − α̇d )) + kℓ vby and
θahind = −γ − (kα1 α̇ + kα2 (α̇ − α̇d )) + kℓ vby ,
(2.1)
where kα1 , kα2 , and kℓ are manually tuned. The roll angle, γ, is subtracted out to
keep the legs vertical with respect to the earth in the frontal plane. The second term,
30
which is added to the fore legs and subtracted from the hind legs, puts the legs in
a scissor-like configuration that produces a yaw moment on the body during stance.
This term is dependent on the present yaw rate, α̇, and the desired change in yaw
rate, α̇ − α̇d . The final term causes side stepping, which creates a lateral force during
stance to negate lateral velocities. The target lateral velocity is always zero.
At contact, each leg’s passive spring begins compressing to absorb energy from
the ballistic flight. When the spring is maximally compressed, additional energy is
applied to the system by further compressing the spring. The leg is then allowed
to lengthen naturally, returning the absorbed energy plus the added energy to the
system. The additional thrust energy added at maximum compression is applied by
all four legs to overcome frictional and contact losses during the stride, and to correct
height error. This common mode energy, η, is adjusted using integral errors to control
height, simplified as h here:
η(k + 1) = η(k) + kh (hd − h)
(2.2)
where k is the step number and hd is the desired height. The coefficient kh is tuned
manually.
The Levenberg-Marquardt (LM) algorithm for online learning improves the control
of forward velocity when compared to Raibert’s methods, but the main contribution
of this work lies in the control of the body’s tilt axes, pitch and roll. The LM algorithm
is presented first, followed by a description of the control system for the tilt axes.
31
2.3.1
Levenberg-Marquardt Online Learning
Raibert’s controller [20] computed the forward foot touchdown position relative
to the hip, xf , as follows:
xf =
Ts
v + Kv (v − vd ) ,
2
(2.3)
where Ts is the time of the previous stance period, v is the TOF forward body
velocity, vd is the desired TOF forward velocity, and Kv is an experimentally tuned
gain. Marhefka et al. [36] modified this algorithm to:
xf = k1
Ts
v + k2 (v − vd ) + xbias ,
2
(2.4)
where k1 and k2 are experimentally tuned gains. The first term of this equation
estimates the foot placement required for running at constant speed and the second
term corrects velocity errors. The xbias term was added as an offset to maintain
zero velocity. This is needed when the system’s weight is not evenly distributed. By
observation, stance time does not vary much so Ts /2 can be included in one coefficient
for v. The new equation, with a change of coefficient names, is
xf = p1 v + p2 (v − vd ) + p3 .
(2.5)
The structure of Raibert’s algorithm remains, but an intelligent method will be
used to tune the p1 and p2 gains. In complex systems, experimentally tuning multiple
parameters can be tedious and lead to a sub-optimal solution. Intelligent algorithms,
such as the Levenberg-Marquardt (LM) method, can tune coefficients online for improved performance. The LM algorithm used here is a derivative of the Gauss-Newton
learning method used to solve least squares problems [42].
32
The error signal, ǫ, to be minimized is
ǫ = y − F (s, p) ,
(2.6)
where y is the unknown best forward foot touchdown position for the present system
states, s = [s1 , s2 ]T , where s1 = v and s2 = v − vd . The function F (s, p) represents
Eq. 2.5 as the output of the modified Raibert controller dependent upon p1 , and p2 .
The first step in Gauss-Newton is to linearize the error, ǫ(p), around the current value of pj . This is done using a truncated Taylor series expansion to produce
ǫ̂ p, pj . The second step in Gauss-Newton is to compute the squared norm, Jq (p),
of this linearized error
2
1
Jq (p) = ǫ̂ p, pj ,
2
(2.7)
and minimize it by determining pj+1 :
pj+1 = arg minp Jq (p)
= arg minp
2
1
ǫ̂ p, pj .
2
(2.8)
Here, “arg minp ” is mathematical notation for the value of p (“argument”) that
minimizes the norm. This is now a least squares problem which has the solution [42]
T −1
∇ǫ pj ǫ pj .
pj+1 = pj − ∇ǫ pj ∇ǫ pj
(2.9)
To avoid problems with computing the inverse in Eq. 2.9, the method is implemented
as
pj+1 = pj − ∇ǫ pj ∇ǫ pj
T
+ Λj
−1
∇ǫ pj ǫ pj
(2.10)
where Λj is a 2 × 2 matrix in our case, such that the matrix to be inverted is positive
definite. In the LM method, Λj is a diagonal matrix whose elements, λ1 and λ2 , can
also be used to control the update step size.
33
The error, ǫ, used in Eq. 2.10 is not available for computing updates, but because
of their monotonic relationship, the system error, e = vd − v, is used instead of ǫ
with good results. This will be verified in the results section. The resulting update
formula for our system is then
pmj+1 = pmj +
where
ej
λm
s1
s2
s2m
sm
ej
+ λm
m=1,2
(2.11)
= system error,
= step size control variables,
= v, and
= (v − vd ).
λ1 and λ2 ensure that the updates are bounded when s1 or s2 is small. The update
is computed immediately before the controller is called at the beginning of the next
cycle. The new coefficients, pj+1 , are then used in Eq. 2.5 to compute the setpoints
for the following touchdown.
Figure 2.5 shows the online learning of coefficients p1 and p2 as the quadruped
runs at several speeds. Both coefficients are initialized to zero, a worst-case starting
condition, and the controller performs poorly until the coefficients near their final
ranges. Neither value becomes static during the test as each running speed produces
different values for the coefficients. Figure 2.6 presents the same data in the previous
figure, but after step 25 when p1 and p2 are nearer to their final range of values.
This figure more clearly shows the relationship between velocity and the coefficients
that are tuned. At step 43, the quadruped is running at 2.0 m/s and p1 is tuned to
approximately −4.4. After step 45, the desired velocity is increased and p1 tunes to
a new value, −3.5. Coefficient p1 returns to a value of −4.4 when the desired velocity
becomes 2.0 m/s again. The p1 coefficient becomes further negative as the speed
approaches zero. Dynamically changing the control coefficients allows the quadruped
34
velocity (m/s)
4
actual
desired
2
0
0
15
30
45
60
75
90
105
15
30
45
60
75
90
105
15
30
45
60
75
90
105
p
1
5
0
−5
0
p2
40
20
0
0
steps
Figure 2.5: Levenberg-Marquardt online learning. Coefficients p1 and p2 are initially
zero and are automatically tuned during running. As the coefficients near their final
ranges, the performance of the velocity controller improves.
to run at a wide range of speeds. A static controller tuned for low speed running will
not perform well at higher speeds, and vice versa.
2.3.2
Control of the Body Tilt Axes
The strength of the controller presented here is a new method for controlling pitch
by redistributing the vertical impulses and the concurrent control of roll. Previous
research has focused only on sagittal plane (pitch) control, expecting that similar
methods can be extended for frontal plane (roll) control in a modular structure.
These methods have not produced a sufficiently robust algorithm on a 3D system.
35
velocity (m/s)
4
actual
desired
2
0
30
45
60
75
90
105
30
45
60
75
90
105
30
45
60
75
90
105
p
1
−2
−4
−6
p2
40
30
20
steps
Figure 2.6: Close-up of Levenberg-Marquardt online learning. This subset of data
from the previous figure more closely shows coefficients p1 and p2 training to different
values at each velocity.
The method presented here employs a cooperative approach where pitch control effort
is directly accounted for by the roll controller.
Pitch control
As stated earlier, Lee et al. [41] showed that dogs redistribute the vertical impulse between the fore and hind limbs to balance pitch moments. This is done by
redistributing the additional thrust at maximum compression, η, between the fore
and hind legs. For the front legs, the additional spring energy added at maximum
compression is η + δ, and the rear leg additional energy is computed by η − δ, where
the method for computing the differential, δ, is described below.
36
The differential thrust amount is computed from a linearized model of the system.
This is done by testing the response of the system starting from several combinations
of pitches and pitch rates, and applying a range of thrust differentials at maximum
compression. These initial conditions and inputs plus the resulting pitches and pitch
rates at the next TOF are approximated into a state-space model of the system using
a least squares method. The matrix, Φ, and vector, Γ, are solved for, resulting in the
state-space model:
x[k + 1] = Φx[k] + Γu[k], where
β
x =
, and
β̇
(2.12)
u = δ.
From Eq. 2.12, we can show that
u[1]
2
, or
x[2] − Φ x[0] = [Γ ΦΓ]
u[0]
z = Wc u .
(2.13)
(2.14)
after substitution. From Vaccaro [46], an nth-order controllable system can go from
its current state to any other state in n time steps. If the controllability matrix, Wc ,
is nonsingular, then the system is controllable and Eq. 2.14 can be inverted to form
u = Wc−1 z .
(2.15)
Since our goal, x[2], is always [0, 0]T , Eq. 2.13 can be simplified and leads to
u = −Wc−1 Φ2 x[0] .
(2.16)
Substituting again,
u = Ŵx[0] , or
β[0]
Ŵ1,1 Ŵ1,2
δ[1]
=
.
δ[0]
β̇[0]
Ŵ2,1 Ŵ2,2
37
(2.17)
45
initial
intermediate
final
pitch rate (deg/s)
30
15
0
−15
−30
−45
−7.5
−5
−2.5
0
pitch (deg)
2.5
5
7.5
Figure 2.7: Pitch control of the approximated linear system.
For any starting position in the state space, the algorithm produces a differential
for the first step, δ[0], and a differential for the second step, δ[1]. A predicted state
for the next TOF, [β[1], β̇[1]]T , can be computed from Eq. 2.12. If the model is exact,
the machine will achieve zero pitch and zero pitch rate after the second step.
A linear subspace of the phase plane exists from which the system can move to
the origin in just one step. The two-step process of getting the system to the origin
can be viewed as one intermediate step to get onto this linear subspace, and one step
to then move to the origin. This is shown for a 3 m/s trot in Fig. 2.7. A selected
number of initial conditions, shown as squares, are plotted with the intermediate
steps, shown as diamonds, and final steps, shown as circles. All of the intermediate
steps are collinear, and all of the final steps are at the origin.
From Fig. 2.7, when the pitch is initially positive, the intermediate step has zero
pitch and a negative pitch rate. Conversely, initial conditions with a negative pitch
38
have intermediate steps with a positive pitch rate. This is an intuitive relationship
since it takes positive pitch rate to eliminate negative pitch. Figure 2.7 also shows
that larger initial pitches require larger negative pitch rates at the intermediate step.
A luxury of this method is that the algorithm can be restarted at every TOF and
produce the same results. This is necessary for our quadruped because the model is a
linear approximation of the true nonlinear system. The intermediate TOF state of the
actual system will not match the predicted intermediate state, so the corresponding
second step differential is no longer valid. Instead, the algorithm can be restarted after
one step using the actual TOF state and good convergence still occurs. Figure 2.8
shows the pitch state of the actual system trotting at 3.0 m/s and linear model using
the same controller. The linear system moves to the origin in two steps as expected,
and the actual system follows a similar trajectory and converges to the origin after
several steps.
Roll control
Because of the coupling between joints inputs and multiple body states, the differential thrust used to correct pitch also causes an unwanted moment on the roll axis.
This moment is offset by a torque on the ab/ad axes, τa , and is computed by
4
|Ni (fi )| X
Ni (fi ), for ı̇ = 1, 2, 3, 4.
τai = kp γ + kd γ̇ + 4
P
i=1
|Ni (fi )|
(2.18)
i=1
The first two terms form a proportional-derivative (PD) controller to eliminate existing roll and roll rate. The last term is a feed forward term used to negate the roll
moment being produced by uneven leg thrusting. Unless properly managed, the corrective ab/ad torques can produce planar ground force that cause the leg to laterally
slip from underneath the body. Leg kinematics are used to compute the roll moment,
39
30
linear model
actual system
20
pitch rate (deg/s)
start
10
goal
0
−10
−20
−30
−3
−2
−1
0
pitch (deg)
1
2
3
Figure 2.8: Comparison of pitch control on the linear and actual system. The linear
controller successfully moves the linear approximation of the system to the origin
in two steps. The nonlinear system, using the linear controller, roughly follows this
trajectory, and converges after several steps.
Ni , being applied by foot force, fi , and the total moment seen by the body is the sum
of moments from all legs. Each ab/ad axis is directed to oppose the percentage of the
total moment that its leg is responsible for. This distributes larger ab/ad torques to
the legs that are also producing larger normal ground forces because these legs can
sustain larger planar ground forces without causing the foot to slip.
2.4
Results
Figure 2.9 shows the performance of the system in simulation responding to userinput changes of desired velocity and yaw rate. The Levenberg-Marquardt algorithm
automatically tunes the controller coefficients as the quadruped runs and velocity
error approaches zero shortly after the desired velocity is changed. The linear pitch
40
velocity (m/s)
desired
actual
2
0
desired
actual
20
10
0
−10
roll (deg)
pitch (deg)
yaw rate (deg/s)
4
desired
actual
2
0
−2
desired
actual
2
0
−2
0
10
20
30
40
50
60
cycle number
70
80
90
100
Figure 2.9: Control of 3D trotting on the simplified quadruped.
controller performs well up to 3 m/s. The coupling that exists between the three
axes of motion is evident here as changes in desired yaw rate (step 50) disturb the
motion of both roll and pitch. The pitch controller, which was trained for straight-line
running, performs well while turning up to 20 deg/s.
The roll controller exhibits a bank toward the outside of the turn. Positive turning
rates are left turns, or port-side turns, but the body banks to the starboard side of the
body. Animals in nature are observed to bank toward the inside of the turn so this
behavior is not expected. The roll error remains small enough to maintain stability
through the turn.
The performance of Raibert’s controller [30] on the simplified quadruped is shown
in Fig. 2.10. This model with prismatic legs is formed like and performs similarly to
Raibert’s system and controller. The parameter coefficients for this controller were
41
velocity (m/s)
desired
actual
2
0
20
10
0
−10
desired
actual
2
desired
actual
roll (deg)
pitch (deg)
yaw rate (deg/s)
4
0
−2
2
desired
actual
0
−2
0
20
40
60
80
100
cycle number
Figure 2.10: 3D trotting using Raibert’s [30] trot controller.
hand-tuned, a step not necessary using the LM algorithm, to achieve good control
of velocity. The gains could also be tuned to achieve better control of pitch, but
would result in poor control of velocity because of the coupling between pitch control
effort and forward velocity. Nose-down pitching arises at forward speeds, but does
not cause instability in the system. The fore-aft torque applied to protract the flight
legs forward causes a nose-down pitch moment on the body. Raibert servo controls
the fore-aft actuators in the stance legs based upon the pitch and pitch rate error.
The total pitch moment on the body is zero when the pitch moment caused by the
stance legs is equal and opposite to the pitch moment caused by the protracting legs.
This equilibrium point occurs at a non-zero pitch and pitch rate. As the velocity
increases, the legs must protract faster and the pitch and pitch rate error increase,
42
pitch (deg)
support phase
0.5
1
1.5
0.5
1
1.5
1
1.5
1
1.5
0
−50
0
4
2
0
−2
−4
0
roll rate (deg/s)
roll (deg)
pitch rate (deg/s)
4
2
0
−2
−4
0
50
0.5
time
10
0
−10
0
0.5
time (s)
Figure 2.11: Tilt angles simultaneously corrected over several steps. The major
changes in both pitch rate and roll rate occur during the support phases, when a pair
of legs are contacting the ground.
as shown in Fig. 2.10. Raibert only trotted in a straight line, so the turning data
presented here is possibly what he would have observed.
The pitch controller presented in this chapter eliminates pitch error without affecting the vertical dynamics. Figure 2.11 shows both and pitch and roll being controlled
to zero from 2.5 deg while running at 3.0 m/s. The initial pitch rate is 10 deg/s
causing the pitch to increase at the beginning of the test. The major changes in both
pitch rate and roll rate occur during the support phases, when the legs are contacting
the ground.
43
2.5
Summary
The trotting algorithm presented here incorporates an online learning algorithm
to improve the control of forward velocity during high-speed quadruped trotting. The
tedious trial and error of manual coefficient tuning is replaced by the online learning of
the Levenberg-Marquardt algorithm. Poorly initialized coefficients are continuously
modified during testing to reduce velocity error. The controller successfully regulates
forward speed up to 3 m/s and controls turning at rates up to 20 deg/s. This work
appeared to be the first reported regulation of quadruped heading while running at
high speeds.
The performance of the trotting algorithm is bolstered by the controller’s ability to stabilize body pitch and roll to repeatable and predictable values during the
support phase. Pitch control is accomplished by the biomimetic approach of redistributing the vertical leg forces between the fore and hind legs. This method of pitch
control attenuates pitch and pitch rate error while overcoming the disturbance of
the flight legs protracting forward. A linear model successfully approximated this
disturbance and the relationship between the differential thrust and resulting pitch
motion. The discrete pitch controller acted once per step at the moment of maximum
leg compression and was not algorithmically complex.
The disturbance created by the protracting legs becomes more significant as running speed increases because the legs must quickly swing through larger angles to
return to their touchdown positions. Higher torques will also be necessary to swing
proportionally heavier legs. The legs of the system presented in this chapter are light
when compared to animal measurements. The disturbance is expected to become less
predictable and less linear as the torque necessary for protraction increases.
44
Another drawback of this pitch controller is the state of the pitch rate during the
control process. Although pitch is eliminated by the controller after one step, pitch
rate may increase significantly during this step. This process temporarily adds energy
to the pitch motion, instead of steadily damping the energy and motion toward the
goal. The roll controller exhibits a damped motion toward its goal by continuously
updating the control output during the support phase. The roll controller also includes a feedforward term to negate the adverse roll moments caused by the pitch
controller. The roll was shown to be smoothly stabilized during high-speed running.
Future chapters will explore a continuous pitch controller to allow for higher speeds on
a more biomimetic system that includes an articulated knee and heavier leg elements.
45
CHAPTER 3
Trot Control of a Biomimetic Quadruped
3.1
Introduction
This chapters describes the control system for a more biomimetic quadruped than
the one described in the previous chapter. The previously-discussed quadruped had
prismatic and light-weight legs, and served to verify that pitch can be stabilized
without significantly affecting the passive dynamics of the vertical motion. The system presented in this chapter is equipped with articulated legs, which add a level
of complexity for the controller as it more closely imitates the structure of cursorial
quadrupeds. More mass is also added to the legs to mimic the weight distribution
measured in animals.
Fedak et al. [47] measured a dog of unspecified breed to carry 4.3% of its body
weight in each of its front legs and 6.5% in each of its hind legs. The legs account
for 21.6% of the total body mass. Grand [48] measured the legs of a greyhound dog
to account for 29.6% of the total body mass. Schmiedeler et al. [35] suggest that
models not including leg mass can be useful in explaining general phenomena, but
may be inadequate for developing a detailed account of animal locomotion. They
showed that the positions of massy legs have a considerable effect on the system’s
46
roll and pitch moments of inertia. Also, the roll and pitch motions are affected when
torque is applied to rotate legs during flight, with heavier legs usually requiring more
torque. Both of these effects become more significant at higher speeds when the legs
move through a larger protraction angle during flight, and must do so in less time as
the stride frequency increases.
These two realizations suggest that the dynamics of slow running are different
than the dynamics of fast running. In the previous chapter, Levenberg-Marquardt
(LM) learning was used to adjust control gains as the quadruped modeled with light
legs increased its speed. In this chapter, an intelligent fuzzy control algorithm will
be presented to handle the expected nonlinear changes in system dynamics as it runs
over a range of speeds.
Marhefka et al. [36] simulated planar quadruped gallops controlled by fuzzy algorithms. Palmer et al. [37] developed fuzzy control algorithms on an experimental,
single-leg machine, verifying the use of intelligent methods in real time. Fuzzy control
works without generating a complex system model, which in this case would change
depending on the running speed. Instead, the algorithm generates a map of the highly
nonlinear relationships between multiple inputs and outputs. The fuzzy controller is
also outfitted with a direct adaptive learning algorithm to adjust control parameters
during training based upon system errors. Both the LM and fuzzy controller are
applied to the biomimetic quadruped, and the fuzzy controller produces more reliable
results.
As stated earlier, the torque needed to quickly protract heavy legs causes a disturbance on the body tilt axes, pitch and roll. Previously, only roll was actively
controlled during the support phase, but pitch will also be continuously controlled
47
to compensate for the greater disturbance of the protracting legs. Swing leg compensation becomes a necessary control mechanism when the quadruped trots near
its top speed. Conserving the passive dynamics of running continues to be a primary goal for this running controller. A novel force redistribution algorithm will be
presented that stabilizes the roll and pitch axes despite these disturbances, without
significantly affecting the forward, lateral, vertical, and yaw motions prescribed by
the fuzzy controller.
The force redistribution algorithm also allows for tracking of tilt angles. The
commanded pitch is nominally zero, but can be changed to match the inclination
angle on sloped terrain. The commanded roll is adjusted to mimic the way animals
have been observed to bank into high-speed turns. This keeps the ab/ad angles of
the legs small with respect to the body, which places the legs in good position with
respect to the body mass to deliver large centripetal forces.
The biomimetic quadruped model is discussed in the next section, followed by
a description of the hybrid control scheme which includes fuzzy control and force
redistribution. The results of this control scheme are then presented, followed by a
summary.
3.2
Biomimetic Quadruped Model
A model of the 3D quadruped system used in this chapter is shown in Fig. 3.1.
A dynamic model of the leg is shown in Fig. 3.2. The leg model now includes an
articulated knee to more closely mimic the legs of cursorial quadrupeds in nature.
Torque at the knee is produced by a series spring-actuator sitting on the thigh. When
the foot is on the ground, knee torque produces a force along the line between the foot
48
Figure 3.1: Body model with simplified legs.
and the hip. The angle of this line is called the virtual leg angle, θℓ , and is measured
with respect to the body normal. Energy is stored in the spring as the knee bends
during the first half of stance and returned to the system as the leg lengthens. When
the leg is in flight, the actuator can adjust the knee angle, θk , which dictates leg
length, r. The backward knee configuration reduces the range of motion for the thigh
during the flight period. Each leg also has two actuators at the shoulder/hip joint,
one for abduction and adduction of the leg and another to swing (protract/retract)
the leg. The resultant angles are θa and θs respectively.
Figure 3.1 shows the specific body angles to be controlled: roll, γ, pitch, β, and
yaw, α, along with the forward velocity, vbx , lateral velocity, vby , and height, h = pzE , at
the top of flight (TOF). The quadruped weighs a total of 76 kg and stands 60 cm high
with the knee springs in their nominal position. The shoulder separation is 35 cm
and the shoulder-to-hip distance is 1.2 m.
The thigh and shank are modeled as slim rods of length 35 cm with geometricallycentered masses of 2.0 kg and 1.0 kg respectively. The ab/ad axis is modeled as a cube
centered at the shoulder with a mass of 2.0 kg. The complete list of mass and inertia
49
Figure 3.2: Dynamic model of the articulated leg.
mb
Ibxx
Ibyy
Ibzz
ℓb
wb
56 kg
0.82 kg·m2
10.69 kg·m2
11.14 kg·m2
1.2 m
0.33 m
ma
Iaxx
Iayy
Iazz
2.0 kg
0.0075 kg·m2
0.0075 kg·m2
0.0075 kg·m2
mt
Itxx
Ityy
Itzz
ℓt
2.0 kg
0.063 kg·m2
0.082 kg·m2
0.082 kg·m2
0.35 m
ms
Isxx
Isyy
Iszz
ℓs
1.0 kg
0.031 kg·m2
0.041 kg·m2
0.041 kg·m2
0.35 m
Table 3.1: Link parameters of the biomimetic system.
values is presented in Table 3.1. The spring constant remains fixed at 25, 820 N/m.
The legs combine to make up 26% of the complete system mass, each leg making up
approximately 6.5%. This percentage is significantly higher than that of the legs used
in the previous chapter, and will cause a more realistic disturbance during running
than lighter legs.
The control algorithm was tested in RobotBuilder [45], a robot simulation environment built upon the DynaMechs [44] software package. System losses are modeled
as damping in the compliant ground. Ground spring and damping coefficients are
75 kN/m and 2 kN/m/s respectively. Ground static and kinetic friction coefficients
50
Figure 3.3: Biomimetic system in the RobotBuilder [45] simulation environment.
are 0.75 and 0.6 respectively, matching the properties of rubber on concrete. These
parameters are unchanged from the previous chapter. The system in simulation is
shown in Fig. 3.3.
3.3
Control System
Configuring the leg with an articulated knee does not change the fundamental
control idea of quadrupedal running: place the legs in a good configuration in preparation for touchdown, and separately manage the leg forces during the support phase
to deliver corrective moments and forces onto the body. The resulting hybrid controller is diagrammed in Fig. 3.4. The step controller works once per step when the
body reaches its top of flight (TOF), and force redistribution works continuously
during stance.
The leg motions during a stride are organized into the phases of a discrete state
machine as shown in Fig. 3.5. A stride was previously defined as a complete cycle
51
Figure 3.4: Hybrid control system. Yaw rate (α̇), forward velocity (v x ), lateral velocity (v y ), and height (h) are tracked through the step controller which runs once per
step while pitch (β) and roll (γ) are regulated through continuous force redistribution
during stance.
of leg movements, for example, from the touchdown of a particular foot to the next
touchdown of the same foot. As shown in Fig. 3.5, each leg cycle encompasses two
steps which each have a TOF and bottom of flight (BOF).
Table 3.2 shows the actions taken during each state and the trigger to exit each
state. The leg enters the SHORTEN phase from the THRUST phase immediately
after liftoff. During the SHORTEN phase, the knee is actuated to shorten the leg
to 35 cm, or rp1 , while the ab/ad actuators stop the transverse motion of the thigh.
Also during this phase, each swing actuator further retracts the leg 10 deg from its
fore-aft liftoff angle. This helps to eliminate toe stubbing during protraction because
it gives the leg more time to shorten before the foot moves underneath the body.
When the body reaches TOF, the leg enters the PROTRACT 1 phase. During
this phase, the thigh is protracted forward by the swing axis and centered laterally
with respect to the body by the ab/ad axis. Laterally centering puts the leg in a good
position for any desired ab/ad touchdown position, which will be updated at the next
TOF. The speed of the fore-aft protraction is dictated by the length of the previous
52
Figure 3.5: Leg controller states.
support period, Ts . A cubic spline produces the desired protraction trajectory for the
flight legs given a period of 3Ts /2. The body’s height decreases during this phase and
the leg remains short to ensure ground clearance.
After BOF, the leg state transitions to PROTRACT 2 and the leg lengthens to
56 cm, or rp2 , as the body begins to rise. A new protraction trajectory is computed
to deliver the swing legs to their forward position near the time when the support
legs lift off. A new spline computes a trajectory from the current position of the
protracting leg to the desired position given a period of Ts /2. The thigh remains
laterally centered.
At TOF, new desired touchdown virtual leg and ab/ad angles are computed by the
step controller. The leg enters the LENGTHEN state and lengthens to its touchdown
length, rT D of 58 cm. The swing and ab/ad angles are actuated to their desired
touchdown positions. Touchdown for the feet occurs nearly simultaneously because
the leg lengths are continuously adjusted to account for any body pitch and roll that
may exist. The desired length for leg i, ri,d , is computed by
ri,d = rT D + ri,tilt ,
(3.1)
53
PHASE
DESCRIPTION
EXIT TRIGGER
SHORTEN
· Begin shortening the virtual leg
Body reaches TOF
length to rp1 .
· Retract swing axis another 10 deg.
· Stop the ab/ad movement.
PROTRACT 1
· Finish shortening the virtual leg
length to rp1 .
· Start thigh protraction with
period of 3Ts /2.
· Center the ab/ad axis w.r.t. the
body.
Body reaches BOF
PROTRACT 2
· Begin lengthening the virtual leg
length to rp2 .
·Finish thigh protraction with
period of Ts /2.
· Maintain centered ab/ad axis.
Body reaches TOF
LENGTHEN
· Lengthen the virtual leg length to
rT D + ri,tilt .
· Servo the virtual leg angle to its
updated touchdown value.
· Servo the virtual ab/ad angle to
its updated touchdown value.
Foot touchdown
COMPRESS
· Redistribute the leg forces.
Body reaches BOF
THRUST
· Redistribute the leg forces.
No contact is detected, or
spring energy is depleted
Table 3.2: Table of leg controller states.
54
where r1,tilt
r2,tilt
r3,tilt
r4,tilt
=
(wb /2)sin(γ) − (ℓb /2)sin(β),
= −(wb /2)sin(γ) − (ℓb /2)sin(β),
=
(wb /2)sin(γ) + (ℓb /2)sin(β), and
= −(wb /2)sin(γ) + (ℓb /2)sin(β).
After touchdown, the spring extends and stores energy as the knee bends during
the first phase of stance. This COMPRESS state ends when the body reaches its
bottom of flight, signifying that the springs are maximally extended. The energy, E,
which was computed at TOF, is then added to each stance leg spring. The leg then
enters the THRUST phase and the spring is allowed to recoil and return energy to
the body in the form of forward and vertical kinetic energy. During both the COMPRESS and THRUST phase, the force redistribution algorithm of Fig. 3.4 corrects
the body pitch and roll without significantly affecting forward, lateral, vertical, and
yaw motions dictated by the leg touchdown angles. The leg stays in the THRUST
phase until the foot breaks contact with the ground or the spring energy is fully
depleted. The process then repeats from the SHORTEN phase.
The step controller and fuzzy algorithm are presented immediately below, followed
by a discussion of the force redistribution algorithm. This control scheme is designed
for a wide range of body scales and leg configurations by solving for knee torques,
τk , swing torques, τs , and ab/ad torques, τa , which can be resolved by many different
spring-actuator configurations on each joint.
3.3.1
Step Controller and Fuzzy Algorithm
The inputs to the step controller are the desired yaw rate, α̇d , desired forward
velocity, vdx , desired lateral velocity, vdy , and desired height, hd , for the next top TOF,
along with the values of those body states at the present TOF. The desired forward
velocity and turning rate are commanded by the user, and the desired lateral velocity
55
Figure 3.6: Desired step height. The TOF height to the touchdown height, hf light =
hT OF − hT D , can be chosen by the user. Lowering the TOF height also decreases the
vertical velocity at contact and results in smaller impact loses. The TOF height must
remain high enough to allow enough time for the legs to fully protract and lengthen
for contact.
is always zero. The desired height is related to the expected height at the next
touchdown, as shown in Fig. 3.6. The next touchdown height can be computed from
the touchdown leg length, rT D , which is set to 58 cm, and the expected swing angle,
θℓ . The TOF height to the touchdown height, hf light = hT OF − hT D , can be chosen
by the user. A lower TOF height decreases the body’s vertical velocity at contact
and results in lower impact loses, and a higher TOF height increases the stride period
allowing more time for leg protraction. A low hf light is ideal for energy savings, but
should be just high enough to allow the legs to fully protract to the desired touchdown
positions. In this work, hf light = 3 cm. The desired TOF heights for a range of speeds
is shown in Fig. 3.7, based on the predicted touchdown heights which are also shown.
The body’s forward velocity is controlled by varying the virtual leg angle, θℓ , at
touchdown. The ab/ad angles, θa , at touchdown will dictate the lateral and yaw
motions. Lateral motion is produced by placing both legs toward one side of the
body. Turning is achieved by placing the front legs to the outside of the turn and the
56
0.62
TOF
TD
height (m/s)
0.6
0.58
0.56
0.54
0
1
2
velocity (m/s)
3
4
Figure 3.7: Predicted step height. The touchdown (TD) height for several speeds is
computed and shown by the dotted line. The desired height, solid line, is 3.0 cm
above the expected touchdown height.
hind legs to the inside. The step controller computes these touchdown angles, and
the energy addition, E, used to overcome contact losses and supply energy for desired
changes in velocity and height. These outputs are generated by a fuzzy controller. The
four outputs of the fuzzy algorithm are energy, E, virtual leg angle, θℓ , common mode
ab/ad angle, θa,comm , and the differential ab/ad angle, θa,dif f . The desired individual
leg ab/ad angles are determined by manipulating the latter two fuzzy outputs follows:
θa,f ore = θa,comm + θa,dif f , and
θa,hind = θa,comm − θa,dif f .
(3.2)
This change of outputs was chosen because θa,comm produces a mutual side-step in
the diagonal leg pair that results in lateral forces on the body, and θa,dif f scissors the
legs to produce yaw moments. This matches a control output directly to the body
motion it most influences, making it easier to train and learn these outputs in real
time, as will be discussed later.
57
Figure 3.8: Structure of the fuzzy control system [42].
Direct Adaptive Fuzzy Control
The structure of this fuzzy control system is illustrated in Fig. 3.8. During trotting,
the fuzzy controller is run once per step when the body reaches TOF. The box labeled
‘process’ is the quadruped motion during that step until the next TOF. The six inputs
to the fuzzy controller are the desired change in lateral velocity, ∆v y , the desired
change in yaw rate, ∆α̇, the present yaw rate, α̇, the desired change in height, ∆h,
the desired change in forward velocity, ∆v x , and the present forward velocity, v x .
The control starts with fuzzification by mapping each input into one or more membership functions. The triangular input membership functions used to characterize
body velocity are shown in Fig. 3.9. If the forward body velocity, v x , is 2.5 m/s, then
x
x
µv2.0 = µv3.0 = 0.5, and all other membership functions for that input become zero.
The complete list of input membership function centers is shown in Table 3.3.
The fuzzy rule-base is a table of controller outputs for every combination of input membership functions. The number of rules, and sets of outputs, is then equal
58
Figure 3.9: Membership functions. Example membership functions for the forward
body velocity.
Input Membership Function Centers
Units
∆v y
∆α̇
α̇
∆h
∆v x
vx
m/s
deg/s
deg/s
cm
m/s
m/s
-0.2, 0.0, 0.2
-10, 0, 10
-30, -10, 0, 10, 30
-3, 0, 3
-0.25, 0, 0.25
0, 1, 2, 3, 4
Table 3.3: Fuzzy controller input membership function centers: ∆v y = desired change
in lateral body velocity, ∆α̇ = desired change in yaw rate, α̇ = present TOF yaw rate,
∆h = desired change in height, ∆v x = desired change in forward velocity, and v x =
present TOF forward body velocity.
to the product of the number of membership functions for each rule. There are
3 x 3 x 5 x 3 x 3 x 5 = 2025 rules in the controller described in Table 3.3.
Figure 3.10 shows a selected group of outputs for the fuzzy controller. These rule
outputs show how the ab/ad differential, θa,dif f , varies with yaw rate and velocity,
with all other inputs to the controller set to zero. Each line represents the relationship
between the body’s yaw rate and the ab/ad differential needed to maintain that
rate over one step. Each line describes that relationship at a single velocity, the
59
triangles for 0.0 m/s, circles for 2.0 m/s, and boxes for 4.0 m/s. The relationship is
nearly linear for each velocity, suggesting that a linear controller could be used if the
quadruped ran only at one speed.
The slope of these lines decrease as the speed increases, indicating that quadruped
motion becomes more sensitive to the ab/ad differential at high speeds. This is true of
many relationships between quadruped inputs and outputs. This means that higher
controller gains are generally required at slow speeds and that gains should be lower
at fast speeds; static control gains are not sufficient to control the quadruped running
over a wide range of speeds. The Levenberg-Marquardt (LM) algorithm can be used
to update the controller gains as speed increases, with the rate of convergence being
a user-input parameter. The fuzzy controller can be thought of as a method of
storing and retrieving the controller gains for every combination of inputs. Rather
than retrieving the gains, however, the fuzzy controller directly delivers the control
outputs which are stored in the rule base.
The inference mechanism determines the applicability of each rule to the current
inputs. The product is used to determine the certainty, µi , that the premise of rule i
is currently applicable. The certainty of rule 1207 whose premise is:
If the desired change in lateral velocity is ‘0.0 m/s’ and the desired change
in yaw rate is ‘-10.0 deg/s’ and the present yaw rate is ‘30.0 deg/s’ and
the desired change in height is ‘3.0 cm’ and the desired change in forward
velocity is ‘0.25 m/s’ and the present forward velocity is ‘2.0 m/s’
would be:
y
x
x
∆v
∆h
α̇
∆α̇
v
µ1207 = µ∆v
0.0 × µ−10.0 × µ30.0 × µ3.0 × µ0.25 × µ2.0 .
(3.3)
The last component of the fuzzy control is defuzzification. This process combines
the recommendations of each rule into an output based upon rule certainties. Center
60
6
0 m/s
2 m/s
4 m/s
ab/ad differential (deg)
4
2
0
−2
−4
−6
−40
−30
−20
−10
0
10
20
30
40
body yaw rate (deg/s)
Figure 3.10: Selected fuzzy rule outputs.
average defuzzification is used and the output y is given by
P
i ci,k µi
yk = P
,
i µi
(3.4)
where µi is the premise certainty of rule i, and ci,k is the kth output of rule i. This
equation shows a summation over all rules. Each rule output center is multiplied by
its certainty, which weights the controller output toward the rule most applicable.
Using triangular membership functions without center overlap limits the number of
nonzero certainties in each input to two, making the maximum number of nonzero
certainties that need to be included in Eq. 3.4 equal to 2n , where n is the number of
inputs (n = 6 for our case). Adding membership functions to an input will not affect
the amount of computation because only two membership functions are on in each
input.
The four outputs for each rule must be initialized before the controller can be
operated. This method of initializing is called training and is performed on each rule
61
individually. Training can start at any rule, although it is more practical to start
with the body at zero velocity at TOF and attempting one step straight down and
back up. This description matches the inputs of rule 202 which are ∆v y = 0.0 m/s,
∆α̇ = 0.0 deg/s, α̇ = 0.0 deg/s, ∆h = 0.0 cm, ∆v x = 0.0 m/s, and v x = 0.0 m/s.
The initial conditions for the body can be set in the simulator to match the rule
inputs. Initial values for the outputs are manually set once. One cycle, from TOF to
TOF, is executed in the simulator and the system is reset to the initial conditions.
The outputs are trained based upon the system’s output errors. The forward velocity
error, ev , of step j, is computed by
ev,j = vjd − vj ,
(3.5)
where vjd and vj are the desired and actual forward velocities respectively for step j.
Forward velocity is mainly influenced by the virtual leg angle at touchdown, θℓ , so its
update is directly related to the error term by
θℓ,j+1 = θℓ,j + Kv ev,j .
(3.6)
Kv is a manually tuned training gain to −0.05 deg/m/s. Similarly, the lateral velocity
error is used to train the common mode touchdown ab/ad angle, θa,comm , and yaw
rate error is used to train the differential ab/ad angle, θa,dif f , after each step. Height
is used to train the bottom of flight energy addition, E. One-step tests are repeated
until the rule is sufficiently trained. A rule is considered to be trained when the
forward velocity is within 0.01 m/s of that desired, the height is within 1.0 mm, yaw
rate is within 0.5 deg/s, and lateral velocity is within 0.01 m/s.
The speed of training largely depends on the initial output values given for each
rule and the requirements to declare a rule as trained. Faster training speed is reached
62
Figure 3.11: Adaptation mechanism for the fuzzy controller. The adaptation mechanism improves the performance of the controller by updating the rule outputs during
real-time running based upon the system errors.
by initializing the outputs for each rule with the results of a previously trained rule
close to it [36]. Using this method, only the first rule needs to be manually initialized
and the remaining rules can benefit from the training of the previous rule. Establishing the error bounds for a trained rule is based on the desired performance of the
system. Smaller error bounds in training will produce smaller errors while running.
An online learning mechanism can also be used to improve the system performance
if larger bounds are chosen during training. The adaptation mechanism, shown added
in Fig. 3.11, modifies the rule output centers during real-time running. Immediately
before the controller is called at TOF, the current system state is compared to the
state desired at the previous cycle. The k th output for rule i, ci,k , is updated as a
factor of this error by
ci,kj+1 = ci,kj + Kc µij ej ,
(3.7)
63
where Kc
µij
ej
= adaptation gain,
= certainty of rule i, and
= system error of cycle j.
Kc is tuned experimentally. Using this method, the certainty of rule i is used to
scale the update size. This applies more change to the rule outputs that were more
applicable. This certainty is nonzero for only 2n rules meaning that only the rules
applied to the previous controller outputs are updated by the present error.
Commanded Tilt Angles
The step controller also outputs a commanded pitch, βc , pitch rate, β̇c , roll, γc ,
and roll rate, γ̇c , for the body during stance. The commanded pitch and pitch rate are
nominally zero, but can be changed to match the inclination angle on sloped terrain.
The commanded roll and roll rate are adjusted to mimic the way animals bank into
high-speed turns, as shown in Fig. 3.12, to keep their ab/ad angles with respect to
the body perpendicular small.
Figure 3.13 shows the ab/ad angles of the fore (dashed) and hind (dot-dashed) legs
during the support phase of a running step at 3.0 m/s and turning at 10 deg/s. The
common mode ab/ad angle output by the fuzzy controller is −2.22 deg, and is shown
as a solid line. Both angles are initialized based upon the fuzzy outputs, θa,comm and
θa,dif f , and then applying Eq. 3.2 to find θa,f ore and θa,hind . The fore leg ab/ad angle
moves from a touchdown angle of −1.55 deg to a liftoff position of −3.55 deg. As
expected, the motion of this axis centers near the common mode fuzzy output. The
hind leg moves in a similar manner in the opposite direction.
To minimize the ab/ad angles with respect to the body during stance, the body
roll is controlled to the commanded common mode ab/ad angle. The bank angle for
64
(a) Flat turn.
(b) Banked turn.
Figure 3.12: Turning with and without banking the body. Both figures show the
front view of the quadruped. In (a), the angle of the leg with respect to the body
perpendicular is approximately 10 deg. In (b), the legs are in the same position with
respect to the ground, but the body has been rolled to reduce the angle of the legs
with respect to the body.
several turning rates at three speeds is shown in Fig. 3.14. At 0.0 m/s, shown as
circles, very small common mode ab/ad angles are needed to maintain steady state
turning rates. The body bank angle is commanded to match these small angles. At
higher speeds, more common mode ab/ad angle is needed and the body bank angle
is commanded accordingly.
The values in Fig. 3.14 closely match what is predicted using conical pendulum
analysis. For a given forward velocity, vbx , and turning rate, α̇, during quadruped
running, the legs apply a net force on the body in the transverse plane at an angle ζ
with respect to the earth’s vertical axis. Conical pendulum analysis can be used to
approximate this angle, ζ, by
tan(ζ) = (vbx )α̇/g,
(3.8)
65
0
fore
hind
ab/ad common
support
−0.5
ab/ad angle (deg)
−1
−1.5
−2
−2.5
−3
−3.5
−4
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
time (s)
Figure 3.13: Ab/ad angles through the support phase.
where g is the gravitational acceleration.
Equation 3.8 was used to calculate the conus angles for 7 turning rates at 6 forward
velocities, shown in Fig. 3.15. The step controller outputs the desired common mode
touchdown ab/ad angles, shown as circles, with respect to the vertical. Both slopes
have an approximate linear relationship with turning rate at a single velocity, but the
slopes diverge from each other as speed increases. This results from increased ab/ad
torque during stance at higher speeds. The ab/ad torque, which is commanded by
the force redistribution algorithm and described below, produces an additional force
on the body. The net force on the body is then the sum of the force due to ab/ad
torque (approximately horizontal) and axial leg force, rather than a single force along
the leg assumed by the conical pendulum analysis. Because the force due to ab/ad
torque is small relative to the force along the leg, the angles in Fig. 3.15 remain
comparable. To keep the ab/ad angles with respect to the body small, the body roll
66
0 m/s
2 m/s
4 m/s
bank angle (deg)
10
5
0
−5
−10
−40
−20
0
body yaw rate (deg/s)
20
40
Figure 3.14: Bank angle as a function of body yaw rate and forward speed.
angle is commanded to match the common mode ab/ad angles computed by the fuzzy
controller.
The response of the body during stance to the provided touchdown configuration
and energy addition depends on the tilt angles of the body, namely pitch and roll.
The online learning done by the adaptive fuzzy controller assumes that the body tilt
angles at touchdown and during stance are predictable and repeatable. The next
section on force redistribution shows how the commanded pitch and roll motions are
achieved during the stance phase.
3.3.2
Continuous Force Redistribution
Biomechanics studies show that pitch stability for the quadruped trot is achieved
by redistributing the vertical impulses during stance between the fore and hind
limbs [41]. Previous work has been done on force distribution in legged robots [49, 50],
but this was for walking machines that did not need the large forces required to run
and at times had four legs in contact with the ground. Force redistribution allows the
67
0.0 m/s
1.0 m/s
bank angle (deg)
20
20
ab/ad angle
conus angle
10
10
0
0
0
−10
−10
−10
−20
−40 −20
0
20
40
−20
−40 −20
3.0 m/s
bank angle (deg)
2.0 m/s
20
0
20
10
40
−20
−40 −20
4.0 m/s
0
20
40
5.0 m/s
20
20
20
10
10
10
0
0
0
−10
−10
−10
−20
−20
−20
−40 −20
0
20 40 −40 −20
0
20 40 −40 −20
0
20 40
yaw rate (deg/s)
yaw rate (deg/s)
yaw rate (deg/s)
Figure 3.15: Comparison between ab/ad angles and the conical pendulum angle while
turning. The trained ab/ad angles with respect to the vertical are very similar to the
computed conus angles. Both slopes have an approximate linear relationship with
turning rate at a single velocity, but the slopes diverge from each other as speed
increases.
controller to correct a set of body motions during stance without significantly affecting
the other motions. This is done by effectively redistributing the large leg forces that
are naturally generated during high-speed running. This novel controller can attenuate significant pitch and roll errors without disturbing the forward, lateral, vertical,
or yaw motions. Previously, only roll was controlled continuously during stance but
now pitch will also be continuously controlled to improve the overall performance of
the controller. This decision was made because the heavier legs are expected to cause
a more significant and less predictable disturbance to the pitch motion.
68
The pitch control element of this controller presents a way to adjust the axial leg
forces to correct pitch error without changing the system’s vertical motion. Because
adjusting the leg forces to correct the pitch motion has an undesired effect on roll, a
method is developed to negate these undesired effects.
Pitch Control
The force, f i , that leg i exerts on the body (ignoring leg inertial forces) is given as
f i = −J (θ i )−T τ i
where J (θ i )−T is the transpose of the inverse Jacobian relating joint torques to forces
on the body and τ i = [τa,i , τs,i , τk,i ]T . For simplicity, denote J (θ i ) as J i . The moment,
ni , that leg i exerts on the body is given as


τa,i
ni = −  τs,i  ,
τc,i
(3.9)
where τa,i is the ab/ad actuator torque, τs,i is the swing actuator torque of leg i, and
τc,i is a constraint torque about the body’s z b axis. The total moment on the body,
nb , is given by
nb =
4
X
i=1
ni + σi (bpi × f i ) .
(3.10)
where σi is 1 for legs in contact with the ground and 0 for legs in flight. The vector
b
pi gives the position of leg i relative to the body. With only diagonal leg pair (1,4)
on the ground, this equation becomes
−T
b
b
nb = n1 + bp1 × −bR1 J −T
1 τ 1 + n2 + n3 + n4 + p4 × − R4 J 4 τ 4 .
69
(3.11)
The matrix b Ri gives the transformation from leg coordinates to body coordinates.
While in stance, the knee torque produces the dominant pitch on the body. During
flight, the swing torque used to protract the leg delivers an equal and opposite pitch
moment on the body according to Eq. 3.9. The swing actuators of the stance legs are
not active.
The pitch component of the previous equation can now be written as
nyb = Γy1 τk,1 − τs,2 − τs,3 + Γy4 τk,4
(3.12)
where Γi is a vector that relates the knee torque of leg i, τk,i , to body moments.
Results for pitch stability will be shown with and without this swing torque compensation. Adding variables to adjust the knee torques by ∆τk,1 and ∆τk,4 , the equation
becomes
′
0
0
nby = Γy1 (τk,1
+ ∆τk,1 ) − τs,2 − τs,3 + Γy4 (τk,4
+ ∆τk,4 ) ,
(3.13)
0
where τk,i
is the torque produced by the passive spring at the knee without movement
of the spring anchor by the knee actuator. This torque naturally increases during leg
compression as the spring absorbs energy and decreases back to zero as the spring
′
returns all of its energy to the system. The new pitch moment, nby is given as the
sum of the original pitch moment ny,0
b plus the pitch moment produced by ∆τk,1 and
∆τk,4 :
′
y
y
nby = ny,0
b + Γ1 ∆τk,1 + Γ4 ∆τk,4 .
(3.14)
Constraining the new pitch moment to be equal to a commanded moment from a
linear controller,
′
nby = kβ (βc − β) + kβ̇ (β̇c − β̇) ,
(3.15)
70
an appropriate ∆τk,1 and ∆τk,4 can be solved for by setting Eq. 3.14 equal to Eq. 3.15,
which produces:
Γy1 ∆τk,1 + Γy4 ∆τk,4 = kβ (βc − β) + kβ̇ (β̇c − β̇) − ny,0
b .
(3.16)
With this equation, a ∆τk,1 and ∆τk,4 are produced to deliver a corrective pitch moment on the body, but these changes in knee torques should not disturb the system’s
vertical dynamics. Thus, another equation for ∆τk,1 and ∆τk,4 must be derived that
satisfies this constraint.
The total force on the body in earth coordinates, Ef b , is given by
E
fb =
4
X
i=1
−σi ERi · J −T
i τ i + mg .
(3.17)
where g = [0 0 −g]T and ERi is the transform from leg i to earth coordinates. With
diagonal leg pair (1,4) on the ground, this equation can be written as
E
−T
E
f b = −ER1 · J −T
1 τ 1 − R4 · J 4 τ 4 + mg .
(3.18)
Again, knee torques produce the dominant forces on the body in the earth’s z E
direction, so Eq. 3.18 can be written as
E z
fb
= Φz1 τk,1 + Φz4 τk,4 − mg ,
(3.19)
where Φi is a vector that relates the knee torque of leg i, τk,i , to body forces. The
variables to adjust knee torque, ∆τk,1 and ∆τk,4 , are added and the equation becomes
′
0
0
fbz = Φz1 (τk,1
+ ∆τk,1 ) + Φz4 (τk,4
+ ∆τk,4 ) − mg .
E
(3.20)
Again, the new force, Efbz , is the sum of the original force, Efbz,0 , plus the effects of
′
the change in knee torques:
fbz = Efbz,0 + Φz1 ∆τk,1 + Φz4 ∆τk,4 .
E
′
71
(3.21)
Because we desire no change in the vertical dynamics,
fbz = Efbz,0 ,
E
′
(3.22)
and ∆τk,1 and ∆τk,4 are constrained by
Φz1 ∆τk,1 + Φz4 ∆τk,4 = 0 .
(3.23)
Solving Eq. 3.16 and Eq. 3.23 simultaneously to find ∆τk,1 and ∆τk,4 produces:
Γy1 Γy4
Φz1 Φz4
∆τk,1
∆τk,4
=
kβ (βd − β) + kβ̇ (β̇d − β̇) − ny,0
b
0
.
(3.24)
The desired pitch (βd ) and pitch rate (β̇d ) of Eq. 4.32 are determined by a cubic
spline based on the the initial pitch (βo ) and pitch rate (β̇o ), the commanded pitch
(βc ) and pitch rate (β̇c ) which are output by the step controller, and the time allowed
to correct the tilt angles, Tt . Coefficients for the pitch spline are determined by
s(1) = βo
s(2) = β̇o
3.0
1.0
2.0
β̇o −
β̇c
(βc − βo ) −
2
Tt
Tt
Tt
1.0
2.0
s(4) = − 3 (βc − βo ) + 2 (β̇c − β̇0 ) ,
Tt
Tt
s(3) =
(3.25)
and the desired values are computed from these coefficients by
βd = s(4) · t3 + s(3) · t2 + s(2) · t + s(1)
β̇d = s(4) · 3t2 + s(3) · 2t + s(2) ,
(3.26)
where t is the time elapsed since the coefficients were initialized. The tilt correction
period, Tt , is chosen so that the tilt correction finishes 20 ms before liftoff, assuming
that the support period of the present step is equal to the that of the previous step.
72
The coefficients kβ and kβ̇ of Eq. 3.24 are 50,000 N·m/deg and 5,000 N·m/deg/s,
respectively, for a time constant of approximately 4.2 ms. The ∆τk,1 and ∆τk,4
produced by this set of equations effectively change the pitch moment of the body
without affecting the vertical dynamics. When there is no pitch or pitch rate error, the
stance legs simply negate the moment caused by the swing legs. As the quadruped
trots faster, swing leg torques increase to generate faster protraction trajectories.
Without compensating for the disturbances on the body caused by swing torques,
pitch will become unstable at high speeds.
Roll Control
As mentioned before, modified knee torques produce an unwanted change in the
roll dynamics. A controller must be developed for the roll axis that negates the effect
of this unwanted moment. The roll moment to be negated is computed, added to a
stance roll controller, and then delivered to the system by applying torques to the
ab/ad axes of the two stance legs. This is the first constraint on the ab/ad torques,
τa,1 and τa,4 . These torques (plus the redistributed knee torques) should not produce
an unwanted yaw moment, so a second constraint equation must be derived such that
the natural yaw dynamics are not affected by either the pitch or roll controller.
With diagonal leg pair (1,4) on the ground, the roll moment on the body is given
by:
nxb = −τa,1 + Γx1 τk,1 − τa,2 − τa,3 − τa,4 + Γx4 τk,4 ,
(3.27)
where Γxi is the coefficient that relates the knee torque of leg i to the moment about
the roll axis. Because the roll controller works after the pitch controller, the knee
0
+ ∆τk,1
torques in this equation, τk,1 and τk,4 , are equal to the new knee torques, τk,1
73
0
and τk,4
+ ∆τk,4 , respectively. Again, flight leg torques, τa,2 and τa,3 , that affect body
motion are accounted for. Setting the roll moment of Eq. 3.27 equal to a desired roll
moment, from a linear controller, results in the first constraint equation for τa,1 and
τa,4 :
τa,1 + τa,4 = Γx1 ∆τk,1 − τa,2 − τa,3 + Γx4 ∆τk,4 − kγ (γc − γ) − kγ̇ (γ̇c − γ̇) .
(3.28)
The body moment on the yaw axis is given by
nzb = Ψz1 τa,1 + Γz1 τk,1 + Ψz4 τa,4 + Γz4 τk,4 ,
(3.29)
where Ψi is a vector that relates the ab/ad torque of leg i, τa,i , to body moments.
Because the additional knee torques, ∆τk,1 and ∆τk,4 , together with the ab/ad torques
should create no moment on the yaw axis, our second constraint equation is given by
Ψz1 τa,1 + Ψz4 τa,4 = −Γz1 ∆τk,1 − Γz4 ∆τk,4 .
(3.30)
Solving Eq. 3.28 and Eq. 3.30 simultaneously produces:

  x


Γ1 ∆τk,1 − τa,2 − τa,3 + Γx4 ∆τk,4
τa,1
1
1
=


−kγ (γd − γ) − kγ̇ (γ̇d − γ̇)  . (3.31)
z
z
z
z
−Γ1 ∆τk,1 − Γ4 ∆τk,4
τa,4
Ψ1 Ψ4
The desired roll, γd , and roll rate, γ̇ are computed using a cubic spline, shown
in Eqs. 3.25 and 3.26, similarly to desired pitch and pitch rate. The coefficients kγ
and kγ̇ are 1, 000 N ·m/deg and 400 N ·m/deg/s, respectively, for a time constant of
approximately 4.2 ms. These equations produce ab/ad torques, τa,1 and τa,4 , such
that the roll and yaw moment caused by the pitch controller is negated, and the roll
moment caused by the swing legs is negated. Note that similar equations for pitch
and roll control can be developed when legs 2 and 3 are on the ground.
74
Through the pitch and roll controllers, the leg forces during stance are redistributed to correct pitch and roll errors without affecting the natural vertical and
yaw motions that will result from the fuzzy control. Because pitch and roll are well
regulated, the quadruped will be in a predictable and repeatable configuration at
touchdown and during stance, which is necessary for velocity, heading, and height
control.
3.4
Results
Figure 3.16 shows the response of the quadruped to changes in desired speed and
turning rate. Acceleration is limited to 0.25 m/s per step, allowing the quadruped to
increase velocity by 1 m/s in four steps. The turning rate can increase or decrease
by 10 deg/s in one step. The top speed achieved using this controller is 3.75 m/s. At
speeds higher than this, the sweep angle for protraction becomes very large and the
moment on the body created by the resultant swing torques cannot be overcome.
Figure 3.17 shows a Levenberg-Marquardt (LM) controller and the fuzzy controller
operating with the same desired changes in speed. The quadruped under LM control
(top figure) roughly follows the desired velocity, and the fuzzy algorithm (bottom
figure) produces very predictable transient steps during velocity change and achieves
smaller steady-state errors.
At very low running speeds, swing leg compensation is not needed to maintain
pitch stability. As the speed increases and more swing torque is needed to return
the leg during protraction, the controller must compensate for the undesired effect.
Figure 3.18 shows the pitch motion of the quadruped running at 3.0 m/s with and
without swing torque compensation. During flight, the body is uncontrolled and body
75
velocity (m/s)
4
desired
actual
3
2
1
0
−1
0
20
40
60
80
100
yaw rate (deg/s)
25
desired
actual
20
15
10
5
0
−5
0
20
40
60
step
80
100
Figure 3.16: Fuzzy control of velocity and turning rate.
pitch error increases based upon the pitch rate at liftoff and the dynamic swing effects
of all four legs. During stance, the pitch is controlled back toward zero. Without
compensating for the swing torques, the pitch motion during stance reaches an angle
of zero but has nonzero rate. This steadily causes the pitch angle to diverge toward
instability. With compensation, the pitch excursions during flight remain bounded
because the pitch rate at liftoff is near zero. This results in predictable and repeatable
tilt angles during stance, which improve the performance of the step controller. The
maximum speed achieved without swing torque compensation is 2.75 m/s for straight
ahead locomotion. This speed is limited further when a turning rate is desired. The
ability of the quadruped to turn at high speeds is directly related to the success of
the stance controller to keep the tilt errors small.
76
velocity (m/s)
4
3
2
Desired
LM Control
1
0
5
10
15
20
25
velocity (m/s)
4
3
2
Desired
Fuzzy Control
1
0
5
10
15
20
25
steps
Figure 3.17: Quadruped response under Levenberg-Marquardt (LM) and fuzzy control. The quadruped under LM control roughly follows the desired velocity, and the
fuzzy control produces very predictable transient steps during velocity change and
achieves smaller steady-state errors.
3.5
Summary
A hybrid control system using a discrete controller running once per step and
a continuous controller during stance was presented that dynamically stabilized a
quadruped running at 3.75 m/s and turning at 20 deg/s. The quadruped model includes an articulated knee to more closely imitate quadrupeds seen in nature. Each
quadruped leg weighs approximately 6.5% of the total body mass, which is also comparable to observed biological ratios, and causes a more realistic disturbance during
protraction.
The discrete direct adaptive fuzzy control was shown to outperform the LevenbergMarquardt method presented in the previous chapter. The fuzzy algorithm outputs
77
No Swing Leg Compensation
pitch (deg)
4
2
0
−2
−4
0
pitch
stance
0.5
1
1.5
2
2.5
3
3.5
4
3
3.5
4
With Swing Leg Compensation
pitch (deg)
4
2
0
−2
−4
0
pitch
stance
0.5
1
1.5
2
time (s)
2.5
Figure 3.18: Pitch motion while running at 3.0 m/s with and without swing leg
compensation. Without swing leg compensation, body pitch oscillates between large
angles and quickly goes unstable. With swing leg compensation, pitch motion is
under control. In both figures, legs are in contact with the ground when the stance
signal is high. During flight, the body is uncontrolled and body pitch error increases.
During stance, the pitch is controlled back to zero.
control parameters to track changes in forward velocity and yaw rate, and also stabilize lateral velocity and height. The step controller outputs desired body roll and
pitch angles, and these axes are continuously controlled during the support phase of
each step. The commanded roll angle is chosen to match the common mode ab/ad
angle of the legs with respect to the earth. Matching these angles reduced the ab/ad
angles with respect to the body, and resulted in banked turning as is observed by
quadrupeds in nature when turning at high speed.
78
Roll and pitch are controlled during stance by redistributing the large forces that
naturally occur in the system during high-speed running. Pitch is controlled by redistributing the leg forces while attempting to maintain the natural vertical dynamics.
The pitch correction also negated the effects of large moments on the body caused
by forward protraction of the opposite diagonal pair. This proved to be a necessary
step at high speeds when these torques are highest.
Ab/ad torque is applied to the stance legs to negate the effects of the pitch controller on the roll axis and to eliminate roll error. This is done while attempting not
to disturb the natural yaw dynamics. The novel idea of force redistribution allows for
the passive motions prescribed by the fuzzy step controller to be maintained in the
presence of significant control effort on the body’s pitch and roll axes during stance.
The performance of the stance controller using force redistribution deteriorates
as the quadruped speed increases. The increase in speed results in an increase of
the sweep angle to protract the flight legs forward, which requires more torque and
exhibits larger changes in velocity for the flight legs. This is significant because this
force redistribution algorithm ignores the inertial forces caused by the legs. The stance
time also decreases as the quadruped runs faster, which affords the force redistribution algorithm less time to correct tilt errors. The success of the force redistribution
algorithm proves to be the limiting factor for the overall success of the control system.
The next chapter presents a method to solve for more accurate correcting torques during stance by computing a dynamically-consistent generalized inverse of the Jacobian
matrix. The algorithm also combines the pitch and roll control into a single process
that simultaneously solves for the required joint torques in the stance legs.
79
CHAPTER 4
Force Redistribution
4.1
Introduction
Force distribution is the inverse dynamics problem for which the motion of a
system is completely specified and the internal forces/torques to effect this motion
are to be determined [49]. The system is usually underspecified, and the optimal
solution is sought after. The force redistribution algorithm presented in this chapter
is rooted in this methodology, but has a few differences because of the complexities
of the quadruped system.
The spring-loaded inverted pendulum (SLIP) model predicts a subset of the quadruped motions during each support period. The forward, lateral, vertical, and yaw
motions predicted by the SLIP model are named the SLIP motions, and result from
large forces that naturally build in the passive leg springs during the support phase.
The spring acts to conserve energy during the trot, such as elements of an animal’s
musculoskeletal system have been observed to do. The SLIP motions during stance
are prescribed during the previous flight phase so that system outputs track desired
inputs.
80
SLIP analysis does not lead to pre-stance control mechanisms that stabilize pitch
and roll motion. These tilt axes must be actively servo controlled during the support
phase, while attempting not to disturb the SLIP motions. Together, the 2 tilt accelerations and the 4 SLIP accelerations make up the specified motions for which the
internal torques are to be determined. A feature of the force redistribution algorithm
is that the knee torques that arise from the passive spring extension remain to be the
dominant torques during stance. The algorithm redistributes the forces that arise
from these torques to achieve stability of all six body motions.
The previous chapter relied upon Jacobian analysis to relate the torques in the
system to forces on the body, which led to desired motions. Only 4 of the 6 stance
leg torques were used, and only 4 of the 6 body motions were specified; swing torques
were unused, and lateral and forward velocity were not accounted for in the continuous
control algorithm during the support period.
Dynamic consistency is described by Chang and Khatib [51] as the essential property for task behavior to be dynamically decoupled from posture behavior. This suggests that a dynamically-consistent algorithm can accomplish a motion task in spite
of potentially disturbing posture behaviors. The motion task for the six support leg
torques is specified by the desired acceleration of the body, and posture disturbances
include the fast-swinging motion of the opposite diagonal legs.
An efficient algorithm is presented in this chapter to compute the dynamicallyconsistent generalized inverse of the Jacobian, later written as the DCGI Jacobian.
This Jacobian relates the joint torques in the system to actual body accelerations,
accounting for the inertial effects of the legs. The algorithm presented is a modification of the articulated-body algorithm for computing the forward dynamics of
81
multi-link robotic systems [52]. The articulated-body algorithm is presented in this
chapter along with the modified articulated-body algorithm for computing the DCGI
Jacobian.
The force redistribution algorithm will be applied to an over-specified quadruped
system, not an under-specified system such as those most often solved by force distribution. Data is presented which shows that all six body motions cannot be determined independently. Any of the six body motions can be controlled, but potentially
at the expense of the others. The singular value decomposition (SVD) algorithm is
implemented to solve for the inverse of the ill-conditioned DCGI Jacobian. Motion
priorities are inserted into the SVD algorithm to ensure that pitch and roll motion
are stabilized, which proves to be necessary for dynamically-stable trotting.
Under the new force redistribution algorithm, the quadruped runs at a top speed
of 4.75 m/s and turns at 20 deg/s. The 1.0 m/s increase in speed over the results
presented in the previous chapter is largely due to the dynamically-consistent algorithm.
The articulated-body algorithm is presented in the next section, followed by a
description of the modified algorithm to compute the DCGI Jacobian. The force
redistribution algorithm is then discussed, followed by quadruped results. The chapter
closes with a summary.
4.2
Articulated-Body Algorithm for Forward Dynamics
The articulated-body algorithm is a method for computing the link and joint accelerations for a kinematic tree. This development begins with a discussion of spatial
82
notation and joint models, followed by the presentation of the recursive algorithm.
This closely follows what is presented by Featherstone and Orin [52].
4.2.1
Spatial Notation
Spatial notation, as presented by Featherstone [53], simplifies the presentation
of robot dynamics algorithms by combining linear and angular quantities into one
algebraic term. The spatial velocity of link i is represented by
vi =
ωi
vi
,
(4.1)
where ω i and v i are the (3 × 1) angular and linear velocity vectors, respectively, of
link i expressed in the ith coordinate system. The spatial acceleration of link i is
given as
ai =
ω̇ i
ai
,
(4.2)
where ω̇ i and ai are the (3 × 1) angular and linear acceleration vectors, respectively,
of link i expressed in the ith coordinate system. This representation of spatial acceleration differs from the classical definition of rigid-body acceleration. In Eq. 4.2,
ai represents the derivative of v i with respect to a coordinate frame at the link axis,
but fixed in space rather than fixed to the link. The two accelerations are related by
a′i
= ai +
0
ωi × vi
,
(4.3)
where a′i represents the classical rigid-body acceleration. The spatial force exerted
on link i at the ith coordinate system and expressed in the ith coordinate system is
given as
fi =
ni
fi
,
(4.4)
83
where ni and f i are the (3 × 1) moment and force vectors, respectively.
Spatial transforms are used to compute the velocity and acceleration of coordinate
frame B attached to a rigid link given the velocity and acceleration of coordinate frame
A attached to the same link. The spatial transform is given as
B
XA =
B
B
RA
B
p̃A
RA
03×3
B
RA
,
(4.5)
where B RA is the (3 × 3) rotation matrix which defines the orientation of coordinate
system A relative to the coordinate system B, and B pA is the position vector from the
B coordinate system to the A coordinate system, expressed in B coordinates. The
tilde indicates a (3 × 3) skew symmetric matrix with the property p̃v = p × v for
any (3 × 1) vectors

0

pz
p̃ =
−py
p and v and is defined as

−pz py
0 −px  .
px
0
(4.6)
The (6 × 6) spatial inertia matrix, I i , is given by
Ii =
where
Ī i
mi
si
1̄3×3
4.2.2
Ī i
mi (s̃i )
mi (s̃i )T mi 1̄3×3
(4.7)
=
the (3 × 3) moment of inertia tensor for link i computed relative
to the link i coordinate system,
= the mass of link i,
= the position of the link i center of mass relative to the link i
coordinate system, and
= a (3 × 3) identity matrix.
Joint Models
In a system containing NB moving bodies and no kinematic loops, the bodies are
numbered starting with the base as body 0 and the other bodies numbered 1 though
84
Figure 4.1: Quadruped link numbers. Each link has a higher number than its parent.
NB in any order such that each body has a higher number than its parent. The joints
are numbered from 1 to NB such that link i connects body i to its parent. In the case
of a mobile robot, it is necessary to introduce a fictitious 6-DoF joint, which imposes
no constraint on the two bodies it connects, between the fixed base and any one body
of the mobile robot. The quadruped bodies are numbered as in Fig. 4.1. The ground
is modeled as a linear spring and damper in the planar and vertical directions.
The relationship between connected links is described using the general joint model
of Roberson ad Schwertassek [54]. An ni × 1 vector, q̇ i , relates the velocity of link i to
the velocity of its predecessor, link p(i), where ni is the number of degrees of freedom
at the joint connecting the two links. The free modes of the joint are represented by
the 6 × ni motion matrix Φ. For prismatic and revolute joints, Φ = [0 0 0 0 0 1]T
and Φ = [0 0 1 0 0 0]T , respectively. The spatial velocity and spatial acceleration are
85
computed by
vi = vp( i) + Φi q̇i and
(4.8)
ai = ap( i) + Φi q̈i + ci ,
(4.9)
where c is a velocity-dependent bias vector defined by
ci = Φ̇i q̇i
(4.10)
for which
Φ̇i = vi × Φi
(4.11)
for prismatic and revolute joints.
The motion matrix, Φi , is also used to compute the applied forces, τ i , along the
free modes of joint i by
τ i = ΦTi fi
(4.12)
where fi is the 6 × 1 vector representing the force transmitted across joint i from its
predecessor to its successor. The force across joint i makes up part of the net force
acting on link i, fia , which is computed by
fia = fie + fi −
X
fj ,
(4.13)
j ∈ c(i)
where fie is the sum of all external forces acting on link i, and c(i) is the set of children
of link i.
4.2.3
Recursive Algorithm
The spatial equation of motion states that the net force acting on a rigid body
equals its rate of change of momentum:
f=
d
(Iv) = Ia + İv, or
dv
(4.14)
86
f = Ia + v×Iv.
(4.15)
The articulated-body algorithm works by considering each subtree of a kinematic tree
as an articulated body. If the tree is broken at joint i, and only the motion of the
subtree subject to an external force, fi , is considered, the acceleration of link i is
related to the applied force by
A
fi = I A
i ai + b i ,
(4.16)
A
where I A
i is called the articulated-body inertia of link i in the subtree, and bi is the
associated bias force required to produce zero acceleration in link i. This equation,
along with Eqs. 4.9 and 4.12, allow the joint and link accelerations of each link to be
computed from the accelerations of its parent link.
The entire process requires three passes through the kinematic tree. The first
pass iterates from the base outward, calculating the link velocities using Eq. 4.8 and
initializing the product terms
bi = vi × I i vi − f ei
(4.17)
ci = vi × Φi θ̇i .
(4.18)
and
The second pass iterates from the end links back to the base, and calculates the
A
articulated-body inertia, I A
i , and bias force, bi , using the recursive formulae
IA
i = Ii +
X
j∈s(i)
T
IA
j − Uj Dj Uj
and
bA
i = bi +
X
j∈s(i)
A
T
T A
IA
−
U
D
U
c
+
U
D
(τ
−
Φ
b
)
+
b
j
j
j
j
j
j
j
j
j j
j ,
87
(4.19)
where
Ui = I A
i Φi , and
(4.20)
Di = (Φi Ui )−1 .
(4.21)
The third pass iterates from the base to the end links, and calculates the link and
joint accelerations. The complete algorithm expressed in link coordinates is shown
in Table 4.1. The algorithm presented is simplified for only prismatic and revolute
joints in the system. The full algorithm is outlined by Featherstone and Orin in [52],
and also detailed in [53, 55].
The acceleration of gravity is included in the algorithm by initializing a0 = −ag ,
where ag = [0, 0, 0, 0, 0, −9.81]T . The acceleration term for each link, ai , is now
the sum of its true acceleration and −ag .
4.3
Modified Articulated-Body Algorithm for Force Redistribution
Figure 4.2, repeated for convenience from the previous chapter, shows the hybrid
control system used in this chapter. The step controller is unchanged from the previous chapter and continues to run once per step at the top of flight. The step controller
generates desired tilt angles to achieve during stance, and utilizes a direct adaptive
fuzzy algorithm to compute leg touchdown angles and the energy thrust amount for
the upcoming support phase. The body’s forward and lateral velocity are controlled
by varying the virtual leg fore-aft and ab/ad angles for touchdown. Yaw rate is controlled by the difference in touchdown ab/ad angles between the fore and hind limb.
Vertical height is controlled during stance by an instantaneous thrust when the leg is
maximally compressed. These control principles were derived from the application of
88
v0 = 0
a0 = −ag
for i = 1 to NB do
i
03x3
Rp(i)
i
Xp(i) =
i
p̃p(i) i Rp(i) i Rp(i)
i
X0 = iXp(i) p(i) X0
vi = i Xp(i) vp(i) + Φi q˙i
ci = vi × Φi q˙i
IA
i = Ii
e
bi = vi × I i vi − i X−T
0 fi
end
for i = NB to 1 do
Ui = I A
i Φi
Di = (Φi Ui )−1
Ni = Φi − Ui Di UTi
if p(i) 6= 0 then
A
i T
i
IA
p(i) = I p(i) + Xp(i) Ni Xp(i)
A
A
T A
i T
+
X
=
b
bA
N
c
+
U
D
(τ
−
Φ
b
)
+
b
i
i
i
i
i
p(i)
p(i)
p(i)
i
i i
end
end
for i = 1 to NB do
ai = i Xp(i) ap(i)
T
q̈i = Di τi − UTi ci − ΦTi bA
i − Ui ai
ai = ai + ci + Φi q̈i
end
Table 4.1: Articulated-body algorithm for prismatic and revolute joints [52].
89
Figure 4.2: Hybrid control system. Yaw rate (α̇), forward velocity (v x ), lateral velocity (v y ), and height (h) are tracked through the step controller which runs once per
step while pitch (β) and roll (γ) are regulated through continuous force redistribution
during stance.
the spring-loaded inverted pendulum (SLIP) model to this quadruped system. The
forward, lateral, vertical, and yaw motions that result during each step are called
the SLIP motions, and are prescribed by the step controller to track desired body
motions input by the user.
The force redistribution algorithm of this chapter attempts to compute the body
accelerations that attenuate errors on the roll and pitch axes without significantly
affecting the SLIP motions. The force redistribution algorithm in Fig. 4.2 now receives
an exact acceleration to achieve during the support phase.
When the articulated-body algorithm is applied to the quadruped, the first two
passes of the algorithm result in the articulated-body inertia term for the body (link
A
1), I A
B , and the associated bias force, bB . Equation 4.16 can be rewritten as
aB = − I A
B
−1
bA
B ,
(4.22)
because the base is connected to the body by the fictitious 6-DoF joint and can exert
no force, making fB = 0. The acceleration of the body due to the system forces is
90
now a function of the bias force, bA
B , which is computed recursively and includes the
ground forces and joint torques.
The modified articulated-body algorithm is an efficient way to compute the bias
force, bA
B , as a function of joint torques. The (12 × 1) vector of system torques, τ , is
arranged as
τ = [τ T1 , τ T2 , τ T3 , τ T4 ]T ,
(4.23)
where τ ℓ is the torque of leg ℓ, and consists of the ab/ad, swing, and knee torque
respectively as
τ ℓ = [τℓ,a , τℓ,s , τℓ,k ]T
ℓ = 1, 2, 3, 4 .
(4.24)
The applied bias force, bA
B , is resolved as a function of system torque by
A
¯T
bA
B = J τ + ζB ,
(4.25)
where ζ A
B is the torque-independent component of the articulated bias term and
J¯T = J¯1T , J¯2T , J¯3T , J¯4T
(4.26)
where J¯ℓ is the (6 × 3) dynamically-consistent generalized inverse of the Jacobian
matrix, or DCGI Jacobian, for leg ℓ [56]. The DCGI Jacobian for leg i relates the
each joint torque to its applied effect on the actual acceleration of the body. The
body’s torque-independent articulated term is computed as the sum of the body’s
bias term, ζ B , and each leg’s torque-independent articulated term, ζ A
ℓ , computed as
ζA
B
= ζB +
4
X
ζA
ℓ .
(4.27)
ℓ=1
The modified articulated-body algorithm developed to efficiently compute J¯T and
ζA
B is shown in Table 4.2. The links and joints of the system are changed from the
91
original algorithm. The algorithm begins with the first pass through the body link
and downward through each joint, j = 1 to 3, of the four legs, ℓ = 1 to 4. The
second pass starts at the distal joints and recursively computes J¯ℓ and ζ A
ℓ . The
algorithm does not require a third pass because the accelerations of the links and
joints are not required, only the acceleration of the body which will be computed by
Eqs. 4.22 and 4.25.
4.4
Force Redistribution
In predicting the passive dynamics of the system, the SLIP model does not consider
the dynamic effects of the flight legs, which cause a significant disturbance when
protracting forward at high speed. Further, only axial leg thrusts (knee torques
for our system) of the stance legs are present in the SLIP analysis; hip torques are
assumed to be zero. The force on the body generated only by the passive springs
acting on the knee and by the inertial forces of the stance legs is called the SLIP
force, b̃B . Assuming that legs 1 (front left) and 4 (back right) are on the ground,
then the subsequent body accelerations, ãB , based upon the SLIP model can be
computed by
A
b̃B
= J¯1T , J¯4T
τ o1
τ o4
A
+ ζB + ζA
1 + ζ 4 , and
A
−1
ãB = −(I A
b̃B ,
B)
(4.28)
(4.29)
where
o
]
τ oℓ = [0, 0, τℓ,k
ℓ = 1, 4 .
(4.30)
o
is the knee torque produced by the passive knee spring.
For a stance leg, τℓ,k
92
v0 = 0
a0 = −ag
B
03x3
R0
X0 =
(0 p̃B ) 0 RB B R0
B
vB = X0 v0 + ΦB q̇B
cB = vB × ΦB q̇B
IA
B = IB
e
bB = vB × I B vB − B X−T
0 fi
B
for ℓ = 1 to 4 do
for j = 1 to 3 do
i = (ℓ, j)
i
Rp(i)
0
3x3
i
Xp(i) =
i
p̃p(i) i Rp(i) i Rp(i)
i
X0 = i Xp(i) p(i) X0
vi = i Xp(i) vp(i) + Φi q˙i
ci = vi × Φi q˙i
IA
i = Ii
e
ζ i = vi × I i vi − i X−T
0 fi
end
for j = 3 to 1 do
i = (ℓ, j)
Ui = I A
i Φi
Di = (Φi Ui )−1
Ni = Φi − Ui Di UTi
A
i T
i
IA
p(i) = I p(i) + Xp(i) Ni Xp(i)
J¯iT = i XTp(i) Ui Di
if j 6= 3 then
for m = c(i) to (ℓ, 3) do
J¯T = i XT Ui Di ΦT J¯T + J¯T
m
p(i)
i
m
m
end
end
A
A
T A
i T
ζA
p(i) = ζ p(i) + Xp(i) Ni ci − Ui Di Φi ζ i + ζ i
end
end
Table 4.2: Modified Articulated-Body Algorithm for force redistribution.
93
The force redistribution algorithm seeks to preserve the passive SLIP dynamics by
setting the desired body accelerations, adB , to the SLIP accelerations for the forward,
lateral, vertical, and yaw motions:
ax,d
= ãxB
B
(4.31)
ay,d
= ãyB
B
az,d
= ãzB
B
aα,d
= ãαB .
B
The desired body accelerations for the roll and pitch axes are servo-controlled to a
desired position and rate by
aγ,d
= kγ (γd − γ) + kγ̇ (γ̇d − γ̇) , and
B
aβ,d
= kβ (βd − β) + kβ̇ (β̇d − β̇) ,
B
(4.32)
where kγ , kγ̇ , kβ , and kβ̇ are linear control gains equal to 5, 000 s−2 , 500 s−1 , 5, 000 s−2 ,
and 500 s−1 , respectively.
When the legs touch down at significant speeds, the feet slide on the ground until
a solid foothold is achieved. The modified articulated-body algorithm is not activated
until the foot slip ends. The desired pitch (βd ), pitch rate (β̇d ), roll (γd ), and roll rate
(γ̇d ) are then determined by a cubic spline algorithm, as described in the previous
chapter (Eqs. 3.25 and 3.26).
Expanding Eq. 4.25 and substituting into Eq. 4.22 with the desired body accelerations now on the left hand side yields
adB
=
−1
(I A
B)
J¯1T , J¯4T
τ1
τ4
+ J¯2T , J¯3T
94
τ o2
τ o3
+
ζA
B
.
(4.33)
For flight legs 2 (front right) and 3 (back left), τℓo consists of the current applied
torques to shorten, protract, and lengthen the legs during transfer. Algebraic manipulation of Eq. 4.33 leads to:
J¯1T , J¯4T
J¯1T , J¯4T
τ1
τ4
=
τ1
τ4
=F,
IA
B
(adB )
− J¯2T , J¯3T
τ o2
τ o3
− ζA
B,
(4.34)
or
(4.35)
where F is the spatial force that the torques in legs 1 and 4 will exert on the body.
Note that similar equations can be developed when legs 2 and 3 are on the ground.
The (6 × 6) matrix [J¯1T , J¯4T ] is ill-conditioned, or near singular. With two feet
in point contact with the ground, no moment can be exerted on the system about
the line connecting the two feet [50]. The uncontrollable subspace can be found by
computing the null space of [J¯1T , J¯4T ]. Internal momentum can be manipulated to
control any of the six body motions, but potentially at the expense of the others.
Singular value decomposition (SVD) techniques can solve this set of equations and
return values for τ 1 and τ 4 that minimize the squared errors between the desired and
achievable accelerations [57].
Weights can be integrated into the SVD computation to prioritize the accuracy
of the controller on selected motion elements. Instability on the roll (γ) and pitch
(β) axes quickly lead to a catastrophic fall, so control on the tilt axes will be given
priority. The selection of weights and their impact on system errors will be discussed
later. A matrix of weights, W, consists of the individual weights for each motion
95
axis, such that




W=



wγ 0
0
0 0 0
β
0 w
0
0 0 0
0
0 wα 0 0 0
0
0
0 wx 0 0
0
0
0
0 wy 0
0
0
0
0 0 wz
and is integrated into Eq. 4.35 by
T
τ1
T
¯
¯
W J1 , J4
= WF ,
τ4




,



(4.36)
(4.37)
before the inverse is taken to solve for τ 1 and τ 4 .
4.5
Results
Figure 4.3 shows the response of the quadruped to changes in desired speed and
turning rate. Acceleration is limited to 0.25 m/s per step, allowing the quadruped to
increase velocity by 1 m/s in four steps. The turning rate can increase or decrease
by 10 deg/s in one step. During the first 50 steps, the control system accelerates
the body to 4.0 m/s. Yaw rate is well controlled at low speeds, but becomes more
difficult to control at higher speeds. Although the top speed for straight-line running
is 4.75 m/s, turning at significant rates cannot be controlled at that speed. Turning
results are shown here at 3.0 m/s.
Figure 4.4 shows all six body states as they change during five steps, lettered AE. The shaded areas represent the periods of support for a diagonal pair. During
support phase A, the velocity and height respond similarly to what is observed in
nature and predicted by the SLIP model, as was shown in Fig. 1.6. The pitch, which
is increasing away from zero at the moment of contact, is controlled back to zero
before liftoff occurs. Neither yaw rate, lateral velocity, nor roll move significantly
away from their desired values during the first step.
96
velocity (m/s)
6
desired
actual
4
2
0
−2
0
20
40
60
80
100
120
140
yaw rate (deg/s)
30
desired
actual
20
10
0
−10
0
20
40
60
80
100
120
140
step
Figure 4.3: Control of velocity and turning rate.
After a leg finishes its support phase and breaks contact with the ground, torque
is applied to its swing axis to protract the leg forward to the touchdown position.
This torque exerts a positive (nose-down) pitching moment on the body, which goes
unopposed because the body is largely uncontrollable during flight. The pitch motion
responds by diverging from zero between support phase A and support phase B.
The flight legs continue to swing forward during support phase B, but the force
redistribution algorithm overcomes this disturbance to control the pitch back to zero
before liftoff.
During the flight period between support phase B and support phase C, the user
changes the desired yaw rate to 10 deg/s, and the desired roll angle immediately
changes to the computed bank angle. During support phase C, the force redistribution
algorithm simultaneously corrects roll and pitch without much disturbance to the
97
v fwd (m/s)
A
B
C
D
E
3
2
height (m)
0.6
0.5
0.4
0.2
0
−0.2
roll (deg)
yaw rate (deg/s)
pitch (deg)
v lat (m/s)
0.3
1
0
20
commanded
actual
0
0
−5
0
0.25
0.5
0.75
time (s)
1
1.25
Figure 4.4: Body state over five steps while turning. The forward and vertical dynamics of the body are similar for each step, regardless of the pitch and roll correction
done during the shaded support phases. The pitch diverges during flight as the protracting legs cause a positive (nose-down) pitch moment that cannot be opposed until
the next support phase. As seen in support phase A, the pitch is controlled to zero
before liftoff. The change in desired yaw rate for step C also dictates a new bank angle
for the body. During support phase C, the pitch and roll angles are simultaneously
corrected. The change in yaw rate is a function of the ab/ad angles at touchdown,
which are outputs of the fuzzy controller.
98
forward and vertical dynamics. The change in yaw rate is a function of the ab/ad
angles at touchdown, which are outputs of the fuzzy controller. During support
phase D, a faster turning rate dictates a larger bank angle, which is achieved and
maintained through support phase E. The lateral velocity begins to oscillate as the
turning rate increases, but remains bounded. The forward and vertical dynamics are
similar for each of the five steps, mostly impervious to the changes in stance control
effort for roll and pitch motion.
Figures 4.5 and 4.6 show how the angles, angle rates, and angle accelerations
change during support phase D for the pitch and roll axes. For the roll axis in
Fig. 4.5, the cubic spline computes desired roll and roll rates for the quadruped to
achieve before liftoff. The desired acceleration on the roll axis is computed from
the errors that exist between these values and the present roll and roll rate. The
actual acceleration produced by the force redistribution algorithm closely matches
the desired value and results in precise control on the roll axis as both roll and
roll rate are shown to follow their prescribed trajectory. The dotted line shows the
acceleration on the roll axis without force redistribution, described as the original roll
acceleration. The original acceleration is the result of passive knee springs and no hip
torques during stance. This acceleration would not lead to roll stability and causes
catastrophic failure of the quadruped even at low speeds. Figure 4.6 shows similar
results for the pitch axis.
Figure 4.7 shows the acceleration for all six body motions during step D. The
desired SLIP accelerations (forward, lateral, vertical, and yaw) are similar to the
original accelerations as the algorithm attempts to preserve the natural dynamics of
the system. The previously shown pitch and roll data shows the desired accelerations
99
Step D
roll (deg)
0
desired
actual
−2
−4
−6
0.9
0.95
1
1.05
1.1
1.15
roll rate (deg/s)
50
desired
actual
0
−50
−100
0.9
0.95
1
1.05
1.1
1.15
roll acc (deg/s/s)
40
desired
actual
original
20
0
−20
−40
0.9
0.95
1
1.05
1.1
1.15
time (s)
Figure 4.5: Continuous roll axis data during one step. Roll angle, rate, and acceleration during step D of Fig. 4.4 are shown. The roll acceleration without force
redistribution, labeled original, does not lead to roll stability. A cubic spline computes desired roll and roll rates during the step, which result in a desired acceleration
that is achieved by the force redistribution algorithm.
deviating from their original values to maintain stable tilt angles. The actual lateral
acceleration output by the force redistribution algorithm is significantly different than
its desired value, illustrating that the algorithm cannot independently control all 6
body motions. The errors that result on this motion are the consequence of the SVD
weights chosen to ensure that pitch and roll are stabilized.
100
Step D
pitch (deg)
1
0
−0.5
pitch rate (deg/s)
desired
actual
0.5
0.9
1
1.05
1.1
1.15
20
desired
actual
10
0
−10
−20
0.9
pitch acc (deg/s/s)
0.95
0.95
1
1.05
1.1
1.15
desired
actual
original
10
0
−10
0.9
0.95
1
1.05
1.1
1.15
time (s)
Figure 4.6: Continuous pitch axis data during one step. Pitch angle, rate, and acceleration during step D of Fig. 4.4 are shown. The pitch acceleration without force redistribution, labeled original, does not lead to pitch stability. A cubic spline computes
desired pitch and pitch rates during the step, which result in a desired acceleration
that is achieved by the force redistribution algorithm.
The (6×6) DCGI Jacobian matrix, [J¯1T , J¯4T ], at the bottom of flight for a trotting
step is shown below, entered into an expanded Eq. 4.35:


τ1,a
−1.0
0.4 −0.9 −1.0 −0.4
0.9


 0.0 −2.5
3.2
0.0
2.5 −3.2   τ1,s


 −1.3
0.4
0.1
1.8
−0.4
−0.1 
  τ1,k

 0.0 −2.4 −0.7 −0.0 −2.4 −0.7   τ4,a


 −2.6
0.0
0.0 −2.6
0.0
0.0   τ4,s
0.0
2.5 −5.4
0.0
2.5 −5.4
τ4,k


 
 
 
=
 
 
 
nγ
nβ
nα
fx
fy
fz








(4.38)
The fifth row shows the dependency of the lateral force, f y , on the joint torques.
Only two columns have nonzero values, corresponding to the ab/ad torque of each
101
−10
forward
lateral
vertical
desired
actual
original
0
yaw
pitch
roll
Step D
40
20
0
−20
−40
10
3
2
1
0
−1
10
5
0
−5
3
2
1
0
−1
30
20
10
0
−10
0.9
0.95
1
1.05
1.1
1.15
time (s)
Figure 4.7: Body accelerations during a single step. Body accelerations during step D
of Fig. 4.4 are shown. For the SLIP (forward, lateral, vertical, and yaw) motions, the
desired accelerations closely match the original accelerations. The desired roll and
pitch accelerations are chosen to follow a specified trajectory. The achieved lateral
acceleration is the only motion that does not closely match the desired acceleration,
due to its coupling with the roll axis motion.
102
leg. Both of the matrix values being negative will be described as a minus-minus
relationship with lateral velocity. The ab/ad torques have a minus-plus relationship
with yaw moment, nγ , but have a minus-minus relationship with the roll moment,
nα . The dual minus-minus relationship between the ab/ad torques and the lateral
force and roll moment suggests that increasing the torques to accurately control one of
these motions causes undesirable effects on the other. Because lateral force is dictated
by the ab/ad torques alone, this is the most significantly-coupled relationship for the
controller. At every time step, a new DCGI Jacobian matrix is computed. Although
the values in the matrix change, the lateral force remains solely dependent on the
ab/ad torques and remains coupled with the control on the roll axis.
The weight, wy , can be adjusted to achieve better control of the lateral motion, but
this leads directly to larger roll errors. The coupling between these system outputs
must be handled correctly to achieve stable running at high speeds. The previous
data was taken with weights [wγ , wβ , wα , wx , wy , wz ] = [10, 10, 1, 1, 1, 1] to
ensure that roll and pitch are accurately controlled. These weights will be called the
working weights. Changing the roll weight, wγ , from 10 to 1 and the lateral weight,
wy , from 1 to 20 results in poor control of the roll axis, as shown in Fig. 4.8. The first
two subplots show the roll and roll rate deviating from their desired values. The third
subplot shows the large error that exists between the desired and actual accelerations
on the roll axis. The fourth subplot shows the improved performance of the control
of lateral acceleration. This data was taken from one trotting step after several steps
with the working weights, because the quadruped fails to run even at low speeds with
the altered weights. The control of roll and pitch during stance must be prioritized
during stance to maintain stable trotting.
103
roll (deg)
0
desired
actual
−2
−4
50
desired
actual
0
−50
desired
actual
original
0
−200
−400
lateral (m/s/s)
roll acc (deg/s/s)
roll rate (deg/s)
−6
desired
actual
original
2
1
0
0
0.05
0.1
0.15
time (s)
0.2
0.25
Figure 4.8: Poor control of roll motion. Poor control of roll motion occurs when
lateral motion is prioritized.
The joint torque outputs for the six stance leg torques during support phase D are
shown in Fig. 4.9. The values for the joint torque outputs without force redistribution
represent no hip torques and a passive knee spring. During force redistribution,
torques are computed for the six joints that best satisfy the weighted acceleration
equations. The ab/ad torques mirror each other, becoming positive during the first
half of the support phase and negative during the trailing half, and the swing torques
become more active during the second half of the support phase. The knee torques
both undergo an instantaneous increase at bottom of flight (BOF), which accounts
for the discontinuity between the 1 s and 1.05 s marks. After BOF, one knee thrusts
more than the original and the other knee thrusts less. This data shows that this
104
orig
new
0
−50
40
20
0
−20
−40
20
0
−20
20
0
knee 1
−20
0
−100
−200
−300
knee 4
swing 4
swing 1
ab/ad 4
ab/ad 1
Step D
50
0
−100
−200
−300
0.9
0.95
1
1.05
1.1
1.15
time (s)
Figure 4.9: Joint torque outputs during one step. Joint outputs (N·m) during step D
of Fig. 4.4 are shown. During this step, the desired pitch rate increases from 10 deg/s
to 20 deg/s, and body roll is servo-controlled from −1.6 deg to −4.9 deg.
algorithm still relies upon the simple principle of redistributing the axial leg torques
to control body tilt that was presented in earlier chapters.
Figure 4.10 continues to show the fundamental value of this control algorithm.
The system is initialized at three different pitch values at TOF: 4.0 deg, which is significantly larger than what the controller expects to correct during normal trotting,
1.0 deg, which is the expected pitch correction for a typical step, and 0.0 deg, which
requires requires minimal correction during stance. The dynamics of a passive system
as predicted by the SLIP model are displayed during the case of minimal pitch correction. The quadruped trot exhibits minimal pitch oscillations in nature, so another
105
pitch (deg)
v fwd (m/s)
significant pitch correction
nominal pitch correction
minimal pitch correction
3.25
3
2.75
2.5
height (m)
v lat (m/s)
roll (deg)
yaw rate (deg/s)
4
3
2
1
0
0.6
0.5
0.4
0.3
0.1
0
−0.1
1
0.5
0
−0.5
10
5
0
−5
−10
0.05
0.1
0.15
time (s)
0.2
0.25
Figure 4.10: Pitch correction during a single step. The body motions during one step
are shown for three different values of initial pitch error.
gait or footfall sequence may be used when tilt errors above 4.0 deg occur. During
the support phase (shaded), the pitch is controlled to zero in all cases. The five other
body motions during the steps are also shown.
The force redistribution algorithm is capable of eliminating the 4.0 deg of pitch
error, but the velocity during this step deviates from the passive system. The loss
of velocity can be corrected during the next step, during which more reasonable
pitch error will exist. Figure 4.4 shows the expected pitch error for one step to be
106
approximately 0.5 deg, so the pitch error of 1.0 deg in Fig. 4.10 is more plausible, and
is eliminated without significantly affecting the body’s forward motion. In neither
case is the body’s vertical motion disturbed, showing that vertical motion does not
have much dependency on pitch control effort. The roll motion is prioritized to achieve
good results, and the lateral motion deviates from its desired value of 0.0 m/s. The
largest pitch correction causes the largest errors on the lateral velocity, denoting a
coupling between these motions.
As mentioned before, the modified articulated-body algorithm is not activated
until the foot achieves a solid foothold. This delay can be seen in Figs. 4.5, 4.6, 4.7,
4.8, and 4.10. Average sliding times for a discrete number of forward velocities are
shown in the top subplot Fig. 4.11. At 0.0 m/s, no sliding occurs and at 4.0 m/s,
the foot slides for approximately 80 ms. The average time for the support phase
at these velocities is shown as a solid line. At 0.0 m/s, the support phase last for
an average of nearly 300 ms and decreases to approximately 200 ms at 4.0 m/s.
The second subplot shows the time allowed for tilt correction after the sliding ends.
This represents the subtraction of the sliding time from the support time. This data
shows the difficulty of the problem at high speeds, where only 120 ms remains for tilt
control. The problem is confounded by the increasing touchdown pitch as the velocity
increases, as shown in the third subplot of Fig. 4.11. The larger touchdown pitches
occur because the protracting legs must move through larger angles in less time as
speed increases. These torques are unopposed during flight and cause a nose-down
pitch moment on the body.
These results show the need for accurate control of the tilt axes, because not
much time is available during stance at high speeds. These results also illustrate
107
time (ms)
400
support
sliding
300
200
100
0
0
1
2
3
4
0
1
2
3
4
0
1
2
velocity (m/s)
3
4
time (ms)
300
250
200
150
100
TD pitch (deg)
1.5
1
0.5
0
−0.5
Figure 4.11: Sliding time for a range of speeds. The top subplot shows how sliding
time increases with forward speed as contact time decreases. The middle subplot
shows the remaining time available for tilt control. The bottom subplot shows how the
touchdown pitch increases as forward speed increases. Together, these plots illustrate
a complexity associated with high-speed running: more pitch correction must occur
during the support phase in less time.
the need for a control mechanism to reduce the sliding that occurs immediately after
touchdown. This will be a focus of the next chapter.
4.6
Summary
Simulation results are presented for the control of a 3D quadruped running trot.
A hybrid control strategy is presented which allows the quadruped to reach a speed of
4.75 m/s and turn at a rate of 20 deg/s under operator control. The 1.0 m/s increase
in speed over the results presented in the previous chapter is largely due to the
more dynamically-consistent force redistribution algorithm presented in this chapter.
108
The articulated-body algorithm used to compute the forward dynamics of multi-link
robotic systems was modified to deliver the dynamically-consistent generalized inverse
(DCGI) of the Jacobian. The DCGI Jacobian relates the torques of the stance legs
to the actual accelerations of the body, taking into account the inertial affects of the
legs.
The (6 × 6) DCGI Jacobian is ill-conditioned, revealing that all six body motions
cannot be independently controlled. Motion priorities can be inserted into the system
to ensure that selected body motions are accurately controlled, but at the potential
expense of others. A strong coupling exists between the control efforts of body roll
and lateral motion; precise control of roll causes undesirable affects on lateral motion.
The body tilt angles, pitch and roll, must be precisely controlled to maintain stable
trotting, but the poor response of the body’s lateral motion does not cause instability.
Prioritizing the pitch control motion was shown to correct 4 deg of pitch without
significantly disturbing the other body motions. In nature, pitch errors above this
are likely handled by a temporary change of gait or footfall sequence.
The discrete part of the hybrid controller is unchanged from the previous chapter
and includes a fuzzy controller that runs once per trot step, outputting a stance thrust
energy and hip angles for touchdown. The stance thrust energy accounts for losses
and desired energy changes during the step. Both the stance thrust energy and hip
angles dictate the natural dynamics during stance. The force redistribution algorithm
continuously computes the DCGI Jacobian during stance to stabilize the body’s tilt
axes with minimal effect on the prescribed natural dynamics for the forward, lateral,
vertical, and yaw motions. The step controller tracks desired changes in heading, for
which the biomimetic method of banking into a high-speed turn is also realized.
109
The quadruped system is largely uncontrollable during flight, and the shortening
support times at higher speeds necessitates a fast and accurate tilt control algorithm.
As speed increases, more pitch error must be eliminated during the support phase.
This problem is worsened by length of time after touchdown that the foot slides on the
ground before achieving a solid foothold. The tilt control algorithm does not begin
until sliding ends and must correct the error before liftoff. The slide time was shown
to be near 80 ms when running at 4.0 m/s, leaving 120 ms for tilt correction during
stance. This is significantly less than the 250 ms available for tilt correction when
running at 1.0 m/s. The next chapter explores a method to reduce the foot slide.
This method, along with other leg reflexes, increase the robustness of the quadruped
trot which results in high-speed running on uneven terrain.
110
CHAPTER 5
Robust Trot Algorithm
5.1
Introduction
The force redistribution algorithm and intelligent fuzzy controller are the two main
control components discussed thus far. At top of flight (TOF), the fuzzy controller
computes a touchdown configuration for the legs and a bottom of flight energy thrust
that will reduce errors on the four SLIP (forward, lateral, vertical, and yaw) motions.
During the support phase, the force redistribution algorithm attempts to stabilize
roll and pitch without significantly affecting the SLIP motions. This chapter presents
additional control mechanisms that improve the performance of the control algorithm
and result in a stable trot over uneven terrain and at speeds higher than could be
achieved previously.
The fore-aft foot velocity closely matches the quadruped’s forward speed at the
moment of touchdown. This results in large planar ground reaction forces on the
foot, which causes the foot to slide on the ground. Foot slip ends when the foot
velocity closely matches the terrain velocity relative to the body. On a treadmill,
the initial foot velocity is nearly zero and slippage occurs until the planar foot speed
matches the treadmill speed. For this quadruped, which runs on stationary terrain,
111
the ground reaction force on the foot decelerates the foot to match the ground speed.
This takes approximately 80 ms when running at 4.0 m/s, as shown in Fig. 4.11
of the previous chapter. The time spent sliding on the ground increases as speed
increases, and takes away from the contact time available for tilt control. An anti-slip
algorithm is implemented to actively retract the leg after touchdown, which causes
the foot speed to decrease at a faster rate. A fixed desired foot deceleration is chosen
for all forward body velocities, and decreases the sliding time to 34 ms at 4.0 m/s.
When a diagonal leg pair is in contact with the ground, the pitch and roll moments
produced by one leg can be opposed by moments from the other. When only one leg
is in contact with the ground, tilt moments go unopposed and can produce significant
tilt angles. The force redistribution algorithm cannot begin until both legs have
touched down, so a contact delay by one of the legs also results in less time for
tilt correction. The quadruped SLIP model assumes that the leg trajectories coincide
during the support period and the fuzzy controller is trained for a system that achieves
simultaneous leg touchdowns. The natural SLIP dynamics prescribed by the fuzzy
controller do not lead to a stable trot and can result in catastrophic failure when the
legs are not synchronized during the support phase.
A leg stretch reflex is presented that attempts to synchronize the touchdown of
the diagonal leg pairs and reduce periods of single-leg support. A reflex is a biological
control system linking stimulus to a response. The height of the ground underneath
each foot will dictate a response by the leg stretch reflex to shorten or lengthen the
leg for synchronous diagonal leg pair touchdown.
During flight, torques used to protract swinging legs cause a pitch disturbance on
the body. The disturbance cannot be negated until the next support phase, when the
112
force redistribution algorithm controls the pitch back to 0.0 deg. This cycle results
in a pitch oscillation centered around a positive pitch value. A method for pitch
centering is presented that lowers the desired liftoff pitch so that the pitch oscillation
is centered around 0.0 deg. This sets a fixed point for the quadruped to operate
around, regardless of speed, and lowers the maximum pitch excursions to produce a
more visually biomimetic trot.
These control mechanisms increase the top speed of the quadruped to 5.25 m/s.
The quadruped can turn at 30 deg/s when running at 3.0 m/s, and can maneuver over
uneven terrain at 4.25 m/s. Heglund and Taylor [11] studied 16 species of animals
ranging in body mass from 30 g mice to 200 kg horses and provided equations for the
minimum trotting speed, the preferred trotting speed, and the trot-gallop transition
speed as a function of body mass (Eqs 1.1, 1.2, and 1.3). For a 76 kg quadruped,
these speeds are approximately 1.74 m/s, 2.85 m/s, and 3.9 m/s respectively. The
top speed achievable by the quadruped in this work is 1.35 m/s above the speed at
which an animal of its mass would be expected to transition to a gallop. The stride
period at the preferred trotting speed is expected to be 0.52 s [11]. Farley et al. [16]
suggested that the duty factor at that speed should be 41%, where the duty factor for
a leg is the percentage of the entire stride that its foot is in contact with the terrain.
Other biological data suggests that stride frequency increases with speed during a
walk or trot, but remains nearly constant once an animal starts to gallop [58]. Leach
and Cymbaluk [59] extend these results to show that stride length linearly increases
with velocity, even at top speeds when stride frequency is nearly constant. This
suggests that as a quadruped runs at top speeds, increases in speed are the result of
increased stride length.
113
This chapter presents data to characterize several aspects of the quadruped trot
from 1.0 m/s to 5.0 m/s. The stride period decreases as forward velocity increases for
much of this range, but approaches a constant value at the higher speeds. The stride
length increases linearly and the duty factor decreases linearly as forward velocity
increases, even at the top speeds where stride period begins to reach its minimum
value.
Selected body states and ground forces are shown as the quadruped runs at
3.0 m/s without turning. This data matches the discussion of trot mechanics in
Ch. 1. The joint torques during stance, which are outputs of the force redistribution
algorithm, are shown to have a more complex behavior. Body states, ground forces,
and joint torques are also presented for the quadruped turning at 20 deg/s. While
turning, ab/ad torques produce lateral ground forces similar in magnitude to a constant centripetal force on the body that would be necessary to maintain the desired
angular velocity.
The additional control mechanisms are presented next, followed by an analysis of
selected trot data. The chapter concludes with a summary.
5.2
Additional Control Mechanisms
Three new control mechanisms are presented in this section that stabilize running
at high speeds and on uneven terrain. Anti-slip retraction, the leg stretch reflex, and
the pitch centering algorithm are discussed in that order.
5.2.1
Anti-Slip Retraction
Immediately after touchdown, a fixed desired foot deceleration of −125 m/s2 is
commanded for both support legs. This deceleration rate is chosen for all forward
114
Body velocity (m/s)
New slip time (ms)
Old slip time (ms)
0.0 1.0
0
7
0
31
2.0 3.0 4.0
19 27 34
42 58 70
5.0
42
Table 5.1: Slip times with and without anti-slip retraction. Old slip time refers to
the amount of time the foot slides without anti-slip retraction. New slip times are
the slide periods with anti-slip retraction.
body velocities, which results in the “new” slip times shown in Table 5.1. The “old”
slip times are taken from the previous chapter and result from touchdown with no
anti-slip retraction (the quadruped controller could not stabilize the trot at 5.0 m/s
without the anti-slip retraction).
The deceleration is caused by a torque applied to the swing axis. Given a desired
planar foot speed that decrements toward zero, the swing axis rate to achieve this
speed can be computed using kinematic analysis. The desired and actual foot speeds
and swing axis speeds, and the resulting swing torque during a 5.0 m/s step are shown
in Fig. 5.1. At the beginning of the stance phase, which is represented by the rising
edge of the dash-dot line, the foot rate matches the body’s forward velocity. The
desired foot velocity ramps to zero immediately after contact, and the corresponding
desired swing rate is computed. Large torques are required to achieve this swing rate,
and the actual foot speed closely matches the desired speed. The foot stops sliding
when the foot speed approaches 0 m/s, which is approximately 40 ms after the stance
phase begins.
The large swing axis torques required for anti-slip retraction also affect other body
motions, particularly forward velocity. Figure 5.2 shows the body’s forward velocity as
it changes over several steps. The desired velocity is 5.0 m/s, and the support period
115
foot rate (m/s)
6
desired
actual
stance
4
2
0
−2
swing rate (deg/s)
500
0
desired
actual
stance
−500
swing torque (N−m)
−1000
100
0
−100
−200
torque
stance
0
0.02
0.04
0.06
0.08
0.1
time (s)
0.12
0.14
0.16
Figure 5.1: Foot rate, swing angle rate, and swing torque during anti-slip retraction at
5.0 m/s. The desired foot velocity decreases toward zero after touchdown. Kinematic
analysis is used to compute the desired swing rate that will produce the desired foot
rate. Large swing torques are necessary to achieve the prescribed foot motion.
is noted by the raised period of the dash-dot line. Immediately after contact, the
body velocity increases as the legs are actively retracted by the swing axes torques.
After foot slip ends, the body velocity follows the expected trajectory due to the
decelerating and accelerating planar leg forces predicted by the SLIP model. The
fuzzy controller learns to account for this affect and achieves good velocity control at
TOF because the velocity increase at touchdown occurs similarly for each step.
The trot control algorithm is tested in RobotBuilder [43], a robot simulation
environment built upon the DynaMechs [44] dynamics engine for general robotic
systems. The terrain is modeled as a planar and normal spring and damper, as
shown in Fig. 4.1. The spring and damper constants are 75 kN/m and 2 kN/m/s,
116
forward velocity (m/s)
5
4.5
4
TOF
3.5
0
desired
actual
stance
0.2
0.4
0.6
time (s)
0.8
1
Figure 5.2: Velocity effects of the anti-slip algorithm at 5.0 m/s. These effects are
relatively small and occur immediately after touchdown.
respectively, for both the planar and normal contact models. The coefficients of
static and kinetic friction are 0.75 and 0.60, respectively, and were chosen to match
the properties of rubber on concrete.
5.2.2
Pitch Centering
During flight, the swing motion of the legs causes a disturbance on the pitch
axis. The nose-down pitch error caused by this disturbance is eliminated by the force
distribution algorithm during the support phase. The oscillation that occurs while
the quadruped runs at 4.0 m/s is shown in Fig. 5.3. The pitch error at touchdown
is approximately 1.34 deg and the desired pitch to achieve during stance is 0.0 deg.
The resulting pitch motion oscillates around a mean of 0.64 deg.
117
desired
pitch
stance
1.5
1
pitch (deg)
0.5
0
−0.5
−1
−1.5
0
0.5
1
1.5
time (s)
2
2.5
Figure 5.3: Pitch oscillations at 4.0 m/s without pitch centering.
The pitch centering algorithm adjusts the desired pitch for the force redistribution
algorithm so that pitch motion is centered around 0.0 deg. The force redistribution
algorithm receives a commanded pitch for step k, βc [k], from the following equation:
βc [k] = −
βmax [k] − βc [k − 1]
,
2
(5.1)
where βmax [k] is the maximum pitch measured since the previous step, and βc [k − 1]
is the commanded pitch for the force redistribution algorithm of the previous step.
The commanded pitch angle is half of the peak-to-peak pitch amplitude subtracted
from zero. Figure 5.4 shows the resulting pitch motion with the pitch centering
algorithm applied. Equation 5.1 is computed during support immediately before the
force redistribution algorithm begins.
Faster speeds require larger swing axis torques for protraction and result in larger
pitch disturbances during flight. Table 5.2 shows the peak-to-peak amplitude for
118
desired
pitch
stance
1.5
1
pitch (deg)
0.5
0
−0.5
−1
−1.5
0
0.5
1
1.5
time (s)
2
2.5
Figure 5.4: Pitch oscillations at 4.0 m/s with pitch centering.
pitch motion at several speeds. The values in this table can be hard-coded into the
control algorithm to compute the commanded pitch angle for all speeds. The ability
to adapt online is useful because changes elsewhere to the control system can result
in different pitch motions and would require a software update based upon new peakto-peak pitch amplitudes. Figure 5.5 shows the continuous pitch angle as the forward
body velocity increases from 1.0 m/s to 4.0 m/s. At 1.0 m/s, the peak-to-peak
pitch amplitude is approximately 0.25 deg, and increases to 1.2 deg at 4.0 m/s. As
expected, the pitch oscillation settles one step after the new velocity has been reached.
The quadruped responds to the step control outputs differently depending on the
state of the tilt axes during the support period, which is the motivation for predictable
and repeatable tilt motions during stance. Centering the pitch oscillation at 0.0 deg
sets a fixed point for the quadruped controller to operate around regardless of body
119
Peak-to-peak
Body velocity (m/s) pitch amplitude (deg)
0.0
0.10
1.0
0.25
2.0
0.55
3.0
0.80
4.0
1.28
5.0
2.00
Table 5.2: Peak-to-peak pitch oscillations.
speed. Centering the pitch also lowers the maximum pitch excursions and produces
a more level trot, a biological characteristic of the quadruped trot [6].
5.2.3
Leg Stretch Reflex
A 2-dimensional (2D) sample of the uneven terrain with a scaled model of the
quadruped is shown in Fig. 5.6. Figure 5.7 shows the actual quadruped and terrain
in simulation. The terrain elevation only changes in the direction of the Earth’s x
axis. Therefore, the terrain height underneath foot i is only a function of the foot’s
x position in the Earth’s coordinate system. Each floor panel is 60 cm wide and has
infinite depth in the sagittal plane. The elevation of each panel is randomly selected
from a normal distribution centered at 0.0 cm with a standard deviation of 3 cm.
The maximum panel elevation is 6.5 cm, which is greater than 10% of the nominal
leg length.
The leg stretch reflex receives information about the terrain elevation directly
under each foot. These sensory inputs, along with the body position and attitude
from inertial sensors, and the axis information from joint sensors, allow the leg stretch
120
forward velocity (m/s)
5
4
3
2
1
0
1.5
pitch (deg)
1
0.5
0
−0.5
−1
−1.5
0
2
4
6
time (s)
8
10
12
Figure 5.5: Pitch oscillations as forward velocity changes. The peak-to-peak pitch
amplitude increases from 0.25 deg to 1.3 deg as the body forward velocity increases
from 1.0 m/s to 4.0 m/s.
reflex to control the foot height with respect to the terrain. This method of foot height
control changes the goals for leg length previously described for the PROTRACT 2
and LENGTHEN phases of the discrete leg state machine.
Previously, the leg lengthened from rp1 to rp2 , or 35 cm to 56 cm, during the
PROTRACT 2 phase, and then from rp2 down to rT D + ri,tilt during the LENGTHEN
phase. The length adjustment for the body tilt angles, ri,tilt , was added to the mean
touchdown length, rT D = 58 cm, and resulted in near synchronous foot touchdowns.
During the PROTRACT 2 phase, the leg stretch reflex algorithm now servo controls the foot from its height above the terrain with a leg length of rp1 down to a
height of 3 cm. The desired leg length is kinematically computed from the desired
foot height. As the terrain level changes, the desired leg length changes to maintain
121
2
height (m)
1.5
1
0.5
0
0
5
10
15
20
25
30
forward position (m)
35
40
45
50
Figure 5.6: 2-Dimensional view of the terrain.
a foot height of 3 cm. Given the desired foot height, hf,d , the desired leg length, rd ,
is computed based upon the inertial and joint sensors by
rd =
where
hh − hf,d − hg
,
cos(θℓ + β)cos(θa − γ)
hh
hg
θℓ + β
θa − γ
(5.2)
= the hip height computed from the body height and tilt angles,
= the terrain elevation under the foot,
= the virtual leg angle w.r.t. the Earth, and
= the ab/ad leg angle w.r.t. the Earth.
In the LENGTHEN phase, the desired foot height follows a cubic spline trajectory
down to zero in 60 ms. This lightly initiates contact with the terrain, only if the
trajectory can be followed. The maximum achievable leg length is 61.67 cm because
of the kinematic configuration of the leg. If the height and attitude of the body
result in a desired leg length greater than this maximum value, the offending leg
takes on a desired length of the maximum and the minimum achievable foot height
is computed from algebraic manipulation of Eq. 5.2. The desired leg length for the
opposite diagonal leg is then computed so that its foot height matches the minimum
122
Figure 5.7: Quadruped on uneven terrain in simulation.
foot height achievable by its diagonal pair. This ensures that both feet maintain the
same height above the terrain. Table 5.3 shows the updated state table.
Figure 5.8 shows the foot height and leg length of a diagonal pair through the
touchdown process. The selected data shows the most complex scenario of the terrain
rising underneath one foot while falling underneath the other. The data begins during
the support phase, noted by the high dash-dot line. Immediately after liftoff, the
desired leg lengths follow a cubic spline trajectory to 30 cm, and the actual leg
lengths follow. After bottom of flight (BOF), which occurs at the 0.2819 s mark, the
legs enter the PROTRACT 2 phase and the desired foot height becomes 3 cm. As
the terrain elevation under foot 1 rises, the desired foot position rises to maintain
3 cm of separation. The desired foot position of leg 4 decreases as the terrain lowers
beneath it. The body reaches TOF at the 0.4472 s mark, causing the legs to enter the
lengthen phase and the desired foot positions decrease toward the terrain. Ideally,
each foot will touch down 60 ms later, but foot 1 contacts the terrain 45 ms later
123
PHASE
DESCRIPTION
EXIT TRIGGER
SHORTEN
· Begin shortening the virtual leg
Body reaches TOF
length to rp1 .
· Retract swing axis another 10 deg.
· Stop the ab/ad movement.
PROTRACT 1
· Finish shortening the virtual leg
length to rp1 .
· Start thigh protraction with
period of 3Ts /2.
· Center the ab/ad axis w.r.t. the
body.
Body reaches BOF
PROTRACT 2
· Servo the foot to 3 cm above the
terrain elevation.
·Finish thigh protraction with
period of Ts /2.
· Maintain centered ab/ad axis.
Body reaches TOF
LENGTHEN
· Servo the foot to 0 cm above the
terrain elevation in 60 ms.
· Servo the virtual leg angle to it
updated touchdown value.
· Servo the virtual ab/ad angle to
its updated touchdown value.
Foot touchdown
RETRACT
· Retract the leg.
Sliding stops
COMPRESS
· Redistribute the leg forces.
Body reaches BOF
THRUST
· Redistribute the leg forces.
No contact is detected, or
spring energy is depleted
Table 5.3: New table of leg controller states.
124
20
10
0
50
40
30
0
0.2
0.4
0.6
time (s)
20
0.8
40
70
30
60
20
10
0
−10
desired
actual
stance
60
leg 1 length (cm)
30
−10
foot 4 position (cm)
70
desired
actual
ground elev.
stance
leg 4 length (cm)
foot 1 position (cm)
40
0
0.2
0.4
0.6
time (s)
0.8
0
0.2
0.4
0.6
time (s)
0.8
50
40
30
0
0.2
0.4
0.6
time (s)
20
0.8
Figure 5.8: Foot heights and leg lengths on uneven terrain.
and foot 4 contacts 57 ms later. The touchdowns are not synchronized, and both are
earlier than expected. The data presented shows the maximum error observed using
the leg stretch reflex.
There are two reasons for the touchdown timing errors. First, the elevation of
the terrain is known only for the current position of the foot. The actuation delay
to adjust for a fast-changing terrain is on the order of milliseconds and results in the
separation between the contact times. Second, both touchdowns being early is the
result of swing axis motions to correct for velocity error. At TOF, a new touchdown
swing angle is computed by the fuzzy controller, and the swing actuator quickly drives
the leg toward its goal. The change in swing angle affects the vertical position of the
foot, and the knee position is relatively slow to adjust. This is intentional because
the swing angle has a circular relationship with the leg length (knee position) and the
125
virtual leg angle; the swing angle that achieves the desired virtual leg angle depends
on the angle of the knee. When both the swing and knee actuators respond quickly
to error, oscillations occur on both axes.
Figure 5.9 shows continuous body states as the quadruped runs over uneven terrain. The bottom subplot shows the elevation of the terrain under the body’s center
of mass. The top and middle subplots show the continuous velocity and yaw data.
At the 10 s mark, the desired velocity decreases from 3 m/s to 2 m/s, and then
to 4 m/s at the 15 s mark. The velocity is commanded back to 3 m/s at the 20 s
mark. The results show no significant problems accelerating and decelerating over
uneven terrain. The desired yaw changes to 90 deg and back to 0 deg at the 25 s and
35 s marks respectively. When the body yaw angle is 90 deg, the body’s motion is
along the Earth’s y axis. Because the terrain elevation only changes in the Earth’s
x direction, no changes in elevation occur between the 29 s and 36 s marks. Again,
no significant problems arise when controlling the heading over uneven terrain. The
peak running speed over the uneven terrain is 4.25 m/s. This is the first published
data of high speed running and turning over uneven terrain.
5.3
Trot Analysis
Figure 5.10 presents data as the quadruped accelerates from 1.0 m/s to 5.0 m/s,
and then performs a turn at 3.0 m/s. The top forward speed of the quadruped is
5.25 m/s, which is 1.35 m/s above the speed at which an animal of its mass would
be expected to transition to a gallop. Above 5.25 m/s, the force redistribution algorithm cannot stabilize the tilt motion in the short stance period and the quadruped
periodically stubs its toe during protraction.
126
velocity (m/s)
5
4
3
2
1
0
5
10
15
20
25
30
35
40
0
5
10
15
20
25
30
35
40
0
5
10
15
20
25
30
35
40
yaw (deg)
90
60
30
ground elevation (cm)
0
10
5
0
−5
−10
time (s)
Figure 5.9: Continuous body states while running over uneven terrain.
As shown in the previous chapter, the time during the support phase available
for tilt control decreases as speed increases; the total period of support decreases
and more of that time is spent sliding. At high speeds, the force redistribution
algorithm must command large accelerations on the roll and pitch axes to accomplish
the desired motion in the limited time available. The large accelerations result in
large hip torques, which can cause the foot to slide from underneath the body. This
may be a natural limiting factor for the quadruped trot, which results in the need for
another gait pattern at higher speeds.
Immediately after liftoff, the leg must quickly shorten before the swing axis begins
protracting the leg forward. At the moment of liftoff, however, the leg is lengthening
at a significant rate to push the body into the air. Large knee torques are required
to stop the lengthening and then shorten the leg quickly. The desired TOF height
127
velocity (m/s)
6
desired
actual
5
4
3
2
1
0
0
10
20
30
40
50
60
70
80
yaw rate (deg/s)
30
desired
actual
20
10
0
−10
0
10
20
30
40
step
50
60
70
80
Figure 5.10: Fast acceleration to 5.0 m/s, and turning at 3.0 m/s.
decreases as velocity increases, which requires shorter legs during protraction. At
speeds above 5.25 m/s, the TOF height is too low to guarantee foot clearance. Many
animals employ an active ankle to avoid stubbing the toe. The time allowed to shorten
the leg before protraction can be increased by raising the desired TOF height. Higher
ground clearance is also useful when running over uneven terrain, where the exact
height of the terrain beneath the body may be unknown.
There are also advantages to lowering the desired TOF height for each step. The
data shown so far in this chapter attempts to reach a peak height of 3 cm above the
expected touchdown height. This was illustrated in Figs. 3.6 and 3.7. Figure 5.11
shows some of the changes that result when the peak height is set equal to the expected
touchdown height. The solid line shows data collected for the high step, TOF height
128
high step
low step
55
50
1
1.5
2
2.5
3
3.5
4
4.5
5
1
1.5
2
2.5
3
3.5
4
4.5
5
1
1.5
2
2.5
3
3.5
4
4.5
5
1
1.5
2
2.5
3
3.5
4
4.5
5
0.8
0.7
0.6
0.5
0.4
stride length (m) duty factor (%)
stride period (s) TOF height (cm)
60
35
30
25
20
6
5
4
3
forward speed (m/s)
Figure 5.11: Effect of height and velocity on stride period, duty factor, and stride
length.
3 cm above touchdown height, for velocities between 1.0 m/s and 4.0 m/s, and the
dashed line shows data for the low step.
The top subplot of Fig. 5.11 shows the difference in TOF height between the high
step and low step. The difference is near 3 cm at every velocity. The lower desired
height reduces the stride period, as shown in the second subplot. At 3.0 m/s, the
stride period for a quadruped of this mass is expected to be 0.52 s [11]. At the low
trot height, the stride period is 0.55 s, and up to 0.71 s at the high trot height. The
data also shows that stride period does not decrease linearly as velocity increases.
This is consistent with biological data which shows that stride frequency becomes
constant above certain speeds for several animals [58].
129
The third subplot of Fig. 5.11 shows that duty factor increases when trot height
decreases. The data also shows that duty factor decreases linearly as running speed
increases, even at the top speeds where stride period begins to reach its minimum
value. This suggests that the quadruped trot has no minimum period of support.
There is no related data from biological research, but this may be another motivation for a gait change at high speed; the leg phasing of the quadruped gallop may
exhibit longer support periods at top speeds. The bottom subplot of Fig. 5.11 shows
that stride length increases linearly with speed. This matches biological data which
suggests that increases in speed are solely the result of increased stride length at top
speeds [59].
Figure 5.12 shows the effect of trot speed on other system responses. The peakto-peak height decreases with velocity, although height oscillations of the quadruped
trot are characteristically larger than that of the walk and gallop [60]. Because of
this, the vertical ground forces are typically larger [60]. The second subplot shows
the peak leg force measured at several speeds, which increases linearly with velocity.
The third subplot of Fig. 5.12 shows the sweep angle of the support leg during
ground contact. This data also approximates the protraction sweep angle of the flight
legs. As velocity increases, larger torques are necessary to protract the leg through
a larger sweep angle because the stride period is decreasing. The pitch disturbance
of the protraction torques are negated by support leg torques computed by the force
redistribution algorithm. Support leg torques must increase with speed, and may
eventually cause a leg to slide from underneath the body. This is another limiting
factor on the top achievable speed of 5.25 m/s.
130
p−p height (cm)
10
8
6
4
1
1.5
2
2.5
3
3.5
4
4.5
5
1
1.5
2
2.5
3
3.5
4
4.5
5
1
1.5
2
2.5
3
3.5
4
4.5
5
1400
1200
1000
800
600
support sweep angle (deg)
peak leg force (N)
2
70
60
50
40
30
20
forward speed (m/s)
Figure 5.12: The effect of speed on peak-to-peak height variation, peak leg force, and
support sweep angle.
Figure 5.13 shows continuous forward velocity, height, and yaw rate data for a
complete trot stride. The initial acceleration at touchdown is caused by anti-slip
retraction. The quadruped then decelerates during the first half of the support phase
and accelerates during the second half. This is the expected behavior for forward
velocity based upon the discussion of the quadruped trot in Ch. 1. The height follows
a ballistic trajectory, and the turning rate remains at 0.0 deg/s.
The ground forces produced during this stride are shown in Fig. 5.14. The large
force spikes at touchdown are an artifact of the simulation environment because the
ground is partially modeled by a large linear damping term. This force decelerates
the distal leg link but has no significant effect on the body motion.
131
forward velocity (m/s)
3.5
3
desired
actual
stance
2.5
2
1.5
height (cm)
1
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
55
50
yaw rate (deg/s)
45
10
5
0
−5
−10
time (s)
Figure 5.13: Forward velocity, height, and yaw rate during a quadruped stride at
3.0 m/s.
The fore-aft forces during the first half of the support phase are negative, which
result in the deceleration seen in Fig. 5.13. The forces in the latter part of each
support phase are positive and accelerate the body. The direction of the fore-aft
force is largely dictated by the position of the foot with respect to the hip, also shown
in Ch. 1, such that the force is negative when the foot is in front of the hip, near
zero when the foot is directly under the hip, and positive when the foot is behind the
hip. Only minimal lateral forces are present because the foot stays laterally centered
under the hip when the quadruped runs in a straight line. The vertical forces reverse
the body’s vertical momentum, and are always positive.
The joint torques during this stride are shown in Fig. 5.15. Only support leg
torques are shown. Except for the torques produced for anti-slip retraction, the force
132
fore−aft (N)
200
fore
hind
100
0
−100
−200
0
0.1
0.2
0.3
0.4
0.5
0
0.1
0.2
0.3
0.4
0.5
0
0.1
0.2
0.3
0.4
0.5
lateral (N)
200
100
0
−100
vertical (N)
−200
1000
750
500
250
0
time (s)
Figure 5.14: Ground forces during a quadruped stride.
redistribution algorithm is responsible for computing the joint outputs. After sliding
ends, swing torques remain small throughout the first half of the support phase. After
bottom of flight (BOF), the swing axis plays a larger role in the production of the
desired accelerations. Small ab/ad torques are required because the quadruped is
running in a straight line and does not need significant yaw or lateral accelerations.
The knee torque grows steadily during the first half of the support phase. At BOF,
the instantaneous energy is added to the spring and the resulting knee torque changes
immediately. The knee torque dissipates as the energy in the spring returns to the
system during the second half of the stance phase.
The actions of the swing axes during the support phase are similar for several
running speeds, and are not well understood. The swing actuator seemingly turns on
at BOF when the foot is directly under the hip. The force redistribution algorithm
133
ab/ad (N−m)
150
fore
hind
100
50
0
−50
−100
−150
0
0.1
0.2
0.3
0.4
0.5
0
0.1
0.2
0.3
0.4
0.5
0
0.1
0.2
0.3
0.4
0.5
swing (N−m)
150
100
50
0
−50
−100
−150
knee (N−m)
100
0
−100
−200
−300
−400
−500
time (s)
Figure 5.15: Joint torques during a quadruped stride.
relies upon an inverse of the ill-conditioned DCGI Jacobian by singular value decomposition techniques. The solution is the result of a least-squares fit to the motion
priorities. The swing axis output shows that the solutions are not smooth. This
behavior is somewhat unexpected and should be studied in greater detail.
Figs. 5.16, 5.17, and 5.18 show continuous body states, ground forces, and joint
torques as the quadruped runs at 3.0 m/s, but now turns at 20.0 deg/s. The yaw
rate at TOF is 20.0 deg/s from step to step but undergoes an angular deceleration
and acceleration during the support phase that is similar to the motion of forward
velocity. Yaw motion undergoes a decrease in magnitude during the first half of the
support phase and accelerates during the latter half.
A body must experience a centripetal force to maintain a turning rate of 20 deg/s.
The constant centripetal force, Fcent , would be applied to the body in the direction
134
3
desired
actual
stance
2.5
2
1.5
height (cm)
forward velocity (m/s)
3.5
1
0
0.1
0.2
0.3
0.4
0.5
0.6
0
0.1
0.2
0.3
0.4
0.5
0.6
0
0.1
0.2
0.3
0.4
0.5
0.6
55
50
yaw rate (deg/s)
45
30
25
20
15
10
time (s)
Figure 5.16: Forward velocity, height, and yaw rate during a quadruped turn at
20 deg/s.
of the radius of curvature, and is computed by
Fcent = m
(v)2
= mvω.
r
(5.3)
A constant force over the duration of the 644 ms stride would yield an impulse of
51.26 N−s. The integration of the lateral forces in Fig. 5.17 computes to 49.55 N−s.
This similarity is expected since the lateral forces are also directed along the radius
of curvature.
Ab/ad torques are also more significant during the support period as the quadruped turns. Turning requires both lateral and yaw accelerations, both of which
are coupled to ab/ad torque. Again, however, a more detailed study of the force
redistribution algorithm may yield an explanation for the rippled ab/ad outputs.
135
fore−aft (N)
200
fore
hind
100
0
−100
−200
0
0.1
0.2
0.3
0.4
0.5
0.6
0
0.1
0.2
0.3
0.4
0.5
0.6
0
0.1
0.2
0.3
0.4
0.5
0.6
lateral (N)
200
100
0
−100
vertical (N)
−200
1000
750
500
250
0
time (s)
Figure 5.17: Ground forces during a quadruped turn at 20 deg/s.
5.4
Summary
Three additional control mechanisms which improve the performance of the quadruped controller have been presented. Two of these mechanisms are concerned with
the leg motions immediately before and after contact. The leg stretch reflex synchronizes diagonal leg pair touchdown to begin each support phase. Synchronous contact
eliminates periods of single-leg contact when the pitch and roll moments produced by
the stance leg cannot be opposed by another leg. The leg stretch reflex coordinates
both leg lengths depending on each foot’s height above the terrain.
The anti-slip algorithm defines a foot trajectory that will reduce the time spent
sliding after touchdown. The slippage time is reduced from 70 ms to 24 ms when antislip retraction is used at 4.25 m/s. This allows more time for the force redistribution
algorithm to stabilize the pitch and roll axes. Without the addition of these two
136
ab/ad (N−m)
150
fore
hind
100
50
0
−50
−100
−150
0
0.1
0.2
0.3
0.4
0.5
0.6
0
0.1
0.2
0.3
0.4
0.5
0.6
0
0.1
0.2
0.3
0.4
0.5
0.6
swing (N−m)
150
100
50
0
−50
−100
−150
knee (N−m)
100
0
−100
−200
−300
−400
−500
time (s)
Figure 5.18: Joint torques during a quadruped turn at 20 deg/s.
control mechanisms, the quadruped was not able to run at 5.0 m/s or on uneven
terrain.
The third control mechanism presented in this chapter is pitch centering. Pitch
centering lowers the desired liftoff pitch so that the pitch oscillation is centered
around 0.0 deg, which sets a fixed point for the quadruped to operate around, regardless of speed, and lowers the maximum pitch excursions to produce a more visually
biomimetic trot.
Together with the step controller with fuzzy control and the force redistribution
algorithm, the control mechanisms presented in this chapter stabilize a quadruped
trot at 5.25 m/s. The quadruped can turn at 30 deg/s when running at 3.0 m/s,
and can maneuver over uneven terrain with standard deviation of height variation of
3 cm at 4.0 m/s.
137
Data is presented to characterize several aspects of the quadruped trot from
1.0 m/s to 5.0 m/s. The stride period decreases as forward velocity increases for
much of this data range, but approaches a constant value at the higher speeds. This
is consistent with biological data. The duty factor decreases linearly and the stride
length increases linearly as forward velocity increases, even at the top speeds where
stride period begins to reach its minimum value. There is no matching biological data
for the behavior of the duty factor, but this may be a reason that animals transition
to the gallop at top speeds.
Body states, ground forces, and joint torques are shown as the quadruped runs at
3.0 m/s without turning. The fore-aft velocity decelerates during the first half of the
support phase and accelerates during the latter half of the support phase as predicted
by the SLIP model. This motion results from negative fore-aft ground forces while the
foot is forward of the hip during the first half of the support phase and positive forces
when the hip moves forward of the foot during the latter half of the support phase.
The joint torques that produce these ground forces and corrective tilt accelerations
are shown, but require more detailed study to fully understand.
Data is also presented for the quadruped turn at 20 deg/s as it runs at 3.0 m/s.
Significant ab/ad torques appear compared to those used to run without turning.
These torques create lateral forces, which integrate to an impulse magnitude close to
the computed centripetal force needed to run at that speed and turning rate. The
turning rate is also shown to behave similarly to forward velocity during the support
phase by decreasing in magnitude during the first half of the support phase and then
increasing back near its commanded value during the second half of the support phase.
138
The data presented in this chapter are only a fraction of the results that are
made available by this control algorithm that can stabilize the quadruped trot at
high speeds, while turning, and over uneven terrain. The results also introduce new
questions and open new areas of research. The next chapter details some of these
areas and summarizes the work presented in this dissertation.
139
CHAPTER 6
Summary and Future Work
6.1
Summary
Matching the agility and speed of animals running over rough terrain is an exciting
research goal for robotics that has worthwhile applications. This kind of mobility can
be combined with other emerging robotic faculties, such as the ability to perform
would-be strenuous tasks in remote and hazardous environments, to provide valuable
vehicles for military, search and rescue, and scientific endeavors. Aside from trying
to mimic the small yet powerful actuators and sensing systems that animals employ
while running, understanding and implementing the control mechanisms that animals
use to robustly negotiate uneven terrain at high speeds remains an unsolved problem.
The objective of this dissertation was to make a significant contribution toward
the development of a controller for the high-speed quadruped trot over rough terrain.
To this end, this dissertation
1. presented a fuzzy control strategy that manages the complex coupling between
system inputs and body state to successfully track forward velocity and heading
in a trot at high speeds and over uneven terrain, and
140
2. introduced a method for redistributing the leg forces during the support period to stabilize the body’s tilt motion without overpowering or significantly
disturbing the passive dynamics of a biomimetic trot.
The resulting control system stabilizes a 3D quadruped trot at 5.25 m/s, which is
1.35 m/s faster than the target speed at which an animal of its mass would be expected
to transition to its higher-speed gait, the gallop [11]. The preferred trotting speed of a
quadruped with this mass is 2.85 m/s [11]. The quadruped can turn at 30 deg/s when
running at this speed, and can maneuver over uneven terrain at 4.25 m/s. This work
resulted in the first published report of quadruped heading control when running at
such high speeds and is the first reported control of high-speed running over uneven
terrain.
The controller presented in this work stabilizes the trot on a quadruped system
with articulated legs and practical leg mass properties in a simulation environment
with realistic friction coefficients and system losses. The trot was chosen because of
its energy efficiency over a wide range of running speeds and its widespread use in
nature.
The controller incorporated principles of the SLIP (spring-loaded inverted pendulum) model and the idea that animals redistribute vertical impulses during stance to
stabilize pitch. The SLIP model is a simple spring-mass system that produces behavior similar to that observed in six and four-legged trotters, and in two-legged runners
and hoppers. Force redistribution is the process of altering the large leg forces that
naturally occur during running to control selected body motions without significantly
affecting others. The combination of these two control ideas is a hybrid controller
141
that controls four of the six body motions discretely once per step and controls the
other two motions continuously during stance.
The motion of a spring-mass system during the support period is largely dictated
by the passive spring and the angle of the leg at touchdown. This understanding of
the SLIP model led to heuristic control principles for forward, vertical, lateral, and
yaw motions. The body’s forward motion is controlled by varying the touchdown foreaft angle of the legs, altering the spring energy during stance is used to manipulate
the maximum height during the subsequent flight phase, lateral motion is produced
by placing both legs toward one side of the body, and turning is achieved by biasing
the front legs to the outside of the turn and the hind legs to the inside. The SLIP
(forward, vertical, lateral, and yaw) motions are controlled once per step by choosing
appropriate touchdown leg angles and amount of the energy addition.
The relationships between the touchdown angles and energy addition to the motions that these control outputs produce are complex and highly nonlinear. This type
of problem is particularly suited to the benefits of intelligent control. LevenbergMarquardt (LM) learning and fuzzy control are implemented to stabilize the SLIP
motions without the need for a complex system model. The fuzzy controller is outfitted with an adaptive learning mechanism to continuously improve the tracking
performance while the quadruped is running, and outperforms the LM algorithm.
The SLIP model does not yield general principles for controlling the body’s tilt
motions, namely pitch and roll. The quadruped trot exhibits minimal pitch and
roll oscillations, but these axes must be actively controlled because of the strong
coupling between their motion and large axial leg forces that naturally occur during
a trot. Biomechanics studies have shown that pitch stability for the quadruped trot
142
is achieved by redistributing the vertical impulses during stance between the fore and
hind limbs [41]. The term “redistributing” suggests that the sum vertical impulse
is not changed by the effort to control the pitch motion. This principle has been
expanded in this work to control the tilt motions during stance without significantly
changing the passive SLIP motion dynamics prescribed by the discrete step controller.
The force redistribution algorithm is based upon the efficient computation of the
DCGI (dynamically-consistent generalized inverse of the) Jacobian by modifying the
articulated-body algorithm for computation of the forward dynamics of multi-link
robot systems. The resulting DCGI Jacobian relates the torques of the stance legs
to the actual forces on the body, taking into account the inertial effects of the legs.
The ill-conditioned nature of the DCGI Jacobian in a trot suggests that all six body
motions cannot be independently controlled. Instead, motion priorities are integrated
into the algorithm to ensure that selected body motions are accurately controlled,
even at the expense of others. It was shown that a strong coupling exists between the
control efforts of roll and lateral motion, but that both tilt motions should be precisely
controlled to maintain stable trotting. The resulting relatively poor response of the
body’s lateral motion does not lead to instability.
Additional control mechanisms have been developed that bolster the robust performance of the controller. During stance, the force redistribution algorithm negates
the effects of large moments on the body caused by forward protraction of the opposite
diagonal pair. This proved to be a necessary step at high speeds when these torques
are highest. The effect of the these torques cannot be negated during the flight phases,
and results in pitch oscillations that grow in amplitude as speed increases. A pitch
centering algorithm adjusts the desired pitch for the force redistribution algorithm to
143
center the pitch oscillation around 0.0 deg. This sets a fixed point for the controller to
operate around regardless of body speed, and lowers the maximum pitch excursions
to produce a more level trot, a feature of the quadruped trot observed in animals.
The body roll angle is commanded to closely match the transverse angle of the
legs with respect to the vertical. This minimizes the the ab/ad angles with respect to
the body and results in banked turning as is also observed in quadrupeds in nature
when turning at high speeds.
A leg stretch reflex and anti-slip retraction have been implemented to synchronize
diagonal pair foot touchdowns and achieve solid footholds. These algorithms concern
themselves with the motion of the legs and feet immediately before and after contact.
Careful attention to this aspect of control is necessary to achieve high-speed running
over uneven terrain.
6.2
Future Work
Many questions still exist in regard to understanding high-speed quadruped motion on uneven terrain. Potential research areas, many of which are motivated by the
work in this dissertation, are presented below.
• Force redistribution has been proven here to be a viable method for the control
of tilt axes during the support phase. The joint torques presented in Ch. 5 are
not well understood yet. Further study of the DCGI Jacobian could result in
smooth torque profiles and more insight into the coupled relationship between
these torques and the body motions. This may also help determine more effective motion priority weights and lead to a method for adjusting singular value
decomposition weights during a step.
144
• The fuzzy controller can also be redressed to improve the performance of the
control system. Membership function centers are evenly distributed in the input
space, but moving the centers near areas of higher nonlinearity may result in
better control of the SLIP motions. Intelligent methods such as neural networks
and genetic searches have been applied to quadruped control algorithms [33, 61],
and should be investigated for their potential benefit to this system.
• Central pattern generators (CPGs) play a significant role in animal and human
locomotion. Kimura et al. [62] imitated biological pattern generators to control
a dynamic walk over unprepared terrain. The role of CPGs has been to coordinate leg movements while walking, which can passively stabilize the motion
of the body. The large forces necessary for running would require additional
coordination, which is developed in this work. The interaction between a CPG,
fuzzy controller, and force redistribution algorithm would be an exciting area
of research and may yield remarkably robust quadruped motion.
• Presently, the trot speed is limited by the controller’s inability to both compensate for the disturbance of the swing legs and stabilize tilt motion during the
support phase, which becomes shorter as the quadruped speed increases. The
usable period of support is shortened further by foot slippage during which the
force redistribution algorithm cannot operate. The leg motions immediately
before and shortly after touchdown become more critical as speed increases or
the ground becomes more uneven. Animals have been observed to retract the
feet before touchdown to reduce foot slippage [28]. Early retraction, which may
be the product of a CPG, would not require the high swing torques necessary to
145
retract the legs after touchdown. Investigating the benefits of early retraction
may yield a significant increase in the performance of the controller.
• A walk controller can be appended to the existing 3D trot controller to help
understand the relationship between these two quadruped gaits. Gait analysis, such as power consumption and temporal measurements, may yield the
influences that dictate when animals transition between these two gaits. The
gallop, which is ultimately used by many quadrupeds at top speed, may also
prove viable based upon some of the control principles presented in this work.
• Results in Ch. 5 motivated the use of an active ankle to help rapidly shorten
the leg after liftoff. Some of the other notable biological features that can
be added to this quadruped are a flexible back, tail, and head. Biologists
are still uncertain about the roll these elements play in an animal’s control
system. The addition of these elements or the lack thereof on a successful
trotting machine may help answer some of these questions. The effect of an
asymmetric body mass distribution on ground forces and joint torque outputs
can also be investigated by modifying this system.
• The control algorithm presented here to stabilize the high-speed quadruped trot
can be used toward the design of an experimental quadruped. Actuation limits
and random sensing errors can be incorporated into the simulation to test the
robustness of the algorithm. These measures may also help in the design of the
sensing system by revealing which body and leg states need to be accurately
measured. The quadruped simulation may also yield an estimate for the peak
146
forces and torques required to achieve a certain performance. The trot algorithm
should also be extended for use on an experimental system.
The control algorithm presented in this dissertation can serve as a platform to
understand several other aspects of quadruped running. The ideas presented here are
only a partial list of areas for further study.
6.3
Conclusion
In conclusion, this dissertation has developed a control algorithm for high-speed
quadruped trotting. The principles outlined are not system dependent, and can be
extended for implementation on a wide variety of high-speed legged vehicles of varying
scale and leg configurations. Hopefully, the results of this dissertation will lay the
foundation for future implementation of high-speed quadruped running as legged
systems gain usefulness toward solving tomorrow’s problems.
147
BIBLIOGRAPHY
[1] D. F. Hoyt and C. R. Taylor, “Gait and the energetics of locomotion in horses,”
Nature, vol. 292, pp. 239–240, 1981.
[2] K. J. Waldron and P. Nanua, “Energy comparison between trot, bound, and
gallop using a simple model,” Journal of Biomechanical Engineering, vol. 117,
no. 4, pp. 466–473, 1995.
[3] W. Back and H. Clayton, eds., Equine Locomotion. United Kingdom: W.B.
Saunders, 2001.
[4] R. M. Alexander, “The gaits of bipedal and quadrupedal animals,” International
Journal of Robotics Research, vol. 3, pp. 49–59, 1984.
[5] M. Hildebrand, “Symmetrical gaits of horses,” Science, vol. 150, pp. 701–708,
1965.
[6] P. P. Gambarian, How Mammals Run. New York: John Wiley & Sons, 1974.
[7] A. I. Dagg, “The locomotion of the camel (camelus dromedarius),” Journal of
Zoology, vol. 174, pp. 67–78, 1974.
[8] P. Nanua and K. J. Waldron, “Energy comparison between trot, bound, and
gallop using a simple model,” Journal of Biomechanical Engineering, vol. 117,
pp. 466–473, November 1995.
[9] A. A. Biewener, Animal Locomotion. New York: Oxford University Press Inc.,
2003.
[10] G. A. Cavagna, N. C. Heglund, and C. R. Taylor, “Mechanical work in terrestrial locomotion: two basic mechanisms for minimizing energy expenditure,”
American Journal of Physiology, vol. 233, no. 5, pp. R243–R261, 1977.
[11] N. C. Heglund and C. R. Taylor, “Speed, stride frequency and energy cost per
stride: wow do they change with body size and gait?,” Journal of Experimental
Biology, vol. 138, pp. 301–318, 1988.
148
[12] R. J. Full and C. T. Farley, Musculoskeletal Dynamics in Rhythmic Systems: a
Comparative Approach to Legged Locomotion. New York: Springer Verlag, 2000.
[13] R. M. Alexander, Elastic Mechanisms in Animal Movement. Cambridge: Cambridge University Press, 1988.
[14] R. Blickhan, “The spring-mass model for running and hopping,” Journal of
Biomechanics, vol. 22, pp. 1217–1227, 1989.
[15] D. P. Ferris, M. Louie, and C. T. Farley, “Running in the real world: adjusting
leg stiffness for different surfaces,” in Proceedings of the Royal Society of London:
Biological Sciences, vol. 265, pp. 989–994, 1998.
[16] C. T. Farley, J. Glasheen, and T. A. McMahon, “Running springs: speed and
animal size,” Journal of Experimental Biology, vol. 185, pp. 71–86, 1993.
[17] R. J. Full and D. E. Koditschek, “Templates and anchors: neuromechanical
hypotheses of legged locomotion on land,” Journal of Experimental Biology,
vol. 202, pp. 3325–3332, 1999.
[18] R. Blickhan and R. J. Full, “Similarity in multilegged locomotion: bouncing like
a monopod,” Journal of Comparative Physiology A, vol. 173, pp. 509–517, 1993.
[19] M. Vukobratovic and D. Juricic, “Contributions to the synthesis of biped gait,”
IEEE Transactions on Biomedical Engineering, vol. 17, no. 1, pp. 25–36, 1969.
[20] M. H. Raibert, Legged Robots that Balance. Cambridge, Massachusetts: MIT
Press, 1986.
[21] R. T. M’Closkey and J. W. Burdick, “Periodic motions of a hopping robot with
vertical and forward motion,” International Journal of Robotics Research, vol. 12,
no. 3, pp. 197–218, 1993.
[22] D. E. Koditschek and M. Buehler, “Analysis of a simplified hopping robot,”
International Journal of Robotics Research, vol. 10, pp. 587–605, December 1991.
[23] R. Ghigliazza, R. Altendorfer, P. Holmes, and D. Koditschek, “A simply stabilized running model,” SIAM Journal on Applied Dynamical Systems, vol. 2,
no. 2, pp. 187–218, 2003.
[24] M. D. Berkemeier, “Modeling the dynamics of quadrupedal running,” International Journal of Robotics Research, vol. 17, pp. 971–985, September 1998.
[25] P. Nanua and K. J. Waldron, “Instability and chaos in quadruped gallop,” Journal of Mechanical Design, vol. 116, pp. 1096–1101, December 1994.
149
[26] A. Goswami, “Postural stability of biped robots and the foot-rotation indicator
(FRI) point,” International Journal of Robotics Research, vol. 18, no. 6, pp. 523–
533, 1999.
[27] R. J. Full, T. Kubrow, J. Schmitt, P. Holmes, and D. Koditschek, “Quantifying
dynamic stability and maneuverability in legged locomotion,” Integrative and
Comparative Biology, vol. 42, pp. 149–157, 2002.
[28] H. M. Herr and T. A. McMahon, “A galloping horse model,” International Journal of Robotics Research, vol. 20, pp. 26–37, January 2001.
[29] I. Poulakakis, E. Papadopoulos, and M. Buehler, “On the stable passive dynamics
of quadrupedal running,” in Proceedings of the IEEE International Conference
on Robotics and Automation, (Taipei, Taiwan), pp. 1368–1373, 2003.
[30] M. H. Raibert, “Trotting, pacing, and bounding by a quadruped robot,” Journal
of Biomechanics, vol. 23, suppl. 1, pp. 79–98, 1990.
[31] M. Buehler, R. Playter, and M. Raibert, “Robots step outside,” in Proceedings
of the International Symposium on Adaptive Motion in Animals and Machines
(AMAM), (Ilmenau, Germany), September 2005.
[32] I. Poulakakis, J. A. Smith, and M. Buehler, “On the dynamics of bounding and
extensions towards the half-bound and the gallop gaits,” in Proceedings of the 2nd
International Symposium on Adaptive Motion of Animals and Machines, (Kyoto,
Japan), March 2003.
[33] H. M. Herr and T. A. McMahon, “A trotting horse model,” International Journal
of Robotics Research, vol. 19, pp. 566–581, June 2000.
[34] D. P. Krasny and D. E. Orin, “A 3d galloping quadruped robot,” in 8th International Conference on Climbing and Walking Robots (CLAWAR 2005), (London,
U.K.), pp. 467–474, September 2005.
[35] J. P. Schmiedeler, R. Siston, and K. Waldron, “The significance of leg mass in
modeling quadrupedal running gaits,” in ROMANSY 14: Theory and Practice
of Robots and Manipulators, pp. 481–488, Springer, 2002.
[36] D. W. Marhefka, D. E. Orin, J. P. Schmiedeler, and K. J. Waldron, “Intelligent control of quadruped gallops,” IEEE/ASME Transactions on Mechatronics,
vol. 8, pp. 446–456, December 2003.
[37] L. R. Palmer, D. E. Orin, D. W. Marhefka, J. P. Schmiedeler, and K. J. Waldron,
“Intelligent control of an experimental articulated leg for a galloping machine,”
in Proceedings of IEEE International Conference on Robotics and Automation,
(Taipei, Taiwan), pp. 3821–3827, September 2003.
150
[38] G. Hornby, M. Fujita, S. Takamura, T. Yamamoto, and O. Hanagata, “Autonomous evolution of gaits with the Sony quadruped robot,” in Proceedings of
1999 Genetic and Evolutionary Computation Conference (GECCO) (Banzhaf,
Daida, Eiben, Garzon, Honavar, Jakiela, and Smith, eds.), pp. 1297–1304, Morgan Kauffmann, 1999.
[39] A. Goswami, B. Espiau, and A. Keramane, “Limit cycles and their stability in
a passive bipedal gait,” in Proceedings of the IEEE International Conference on
Robotics and Automation, (Minneapolis, MN), pp. 246–251, April 1996.
[40] J. G. Nichol, S. P. Singh, K. J. Waldron, L. R. Palmer III, and D. E. Orin,
“System design of a quadrupedal galloping machine,” International Journal of
Robotics Research, vol. 23, no. 10-11, pp. 1013–1027, 2004.
[41] D. V. Lee, J. E. A. Bertram, and R. J. Todhunter, “Acceleration and balance in
trotting dogs,” Journal of Experimental Biology, vol. 202, pp. 3565–3573, 1999.
[42] K. M. Passino, Biomimicry for Optimization, Control, and Automation. London:
Springer, 2004.
[43] S. J. Rodenbaugh, “RobotBuilder: a graphical software tool for the rapid development of robotic dynamic simulations,” Master’s thesis, The Ohio State
University, Columbus, Ohio, 2003.
[44] S. McMillan, D. E. Orin, and R. B. McGhee, “DynaMechs: an object oriented
software package for efficient dynamic simulation of underwater robotic vehicles,”
in Underwater Robotic Vehicles: design and Control, pp. 73–98, Albuquerque,
NM: TSI Press, 1995.
[45] S. J. Rodenbaugh, “Graphical Animation of Robotic Systems Using WorldToolKit,” tech. rep., The Ohio State University, 2000.
[46] R. J. Vaccaro, Digital Control: a State-Space Approach. New York: McGraw-Hill,
Inc, 1995.
[47] M. A. Fedak, N. C. Heglund, and C. R. Taylor, “Energetics and mechanics
of terrestrial locomotion II. kinetic energy changes of the limbs and body as a
function of speed and body size in birds and mammals,” Journal of Experimental
Biology, vol. 79, pp. 23–40, 1982.
[48] T. I. Grand, “Body weight: its relation to tissue composition, segment distribution, and motor function,” American Journal of Physical Anthropology, vol. 47,
pp. 211–440, 1977.
151
[49] F. T. Cheng and D. E. Orin, “Efficient formulation of the force distribution
equations for simple closed-chain robotic mechanisms,” IEEE Transactions on
Systems, Man, and Cybernetics, vol. 21, pp. 25–32, January/February 1991.
[50] K. Yoneda, H. Iiyama, and S. Hirose, “Sky–hook suspension control of a quadruped walking vehicle,” in Proceedings of the IEEE International Conference on
Robotics and Automation, (San Diego, CA), pp. 999–1004, 1994.
[51] K. Chang and O. Khatib, “Operational space dynamics: efficient algorithms
for modeling and control of branching mechanisms,” in Proceedings of the International Conference on Robotics and Automation (ICRA), (San Francisco),
pp. 850–856, April 2000.
[52] R. Featherstone and D. Orin, “Chapter 2: Dynamics,” in Springer Handbook of
Robotics, New York: Springer, forthcoming (expected in 2007).
[53] R. Featherstone, Robot Dynamics Algorithms. Boston: Kluwer Academic Publishers, 1987.
[54] R. E. Roberson and R. Schwertassek, Dynamics of Multibody Systems. New York:
Springer–Verlag, 1988.
[55] R. Featherstone, “The calculation of robot dynamics using articulated-body inertias,” The International Journal of Robotics Research, vol. 2, no. 1, pp. 13–30,
1983.
[56] O. Khatib, “A unified approach for motion and force control of robot manipulators: the operational space formulation,” IEEE Transactions on Robotics and
Automation, vol. RA-3, pp. 43–53, February 1987.
[57] W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery, Numerical
recipes in C++. New York, NY: Cambridge University Press, second ed., 2002.
[58] N. C. Heglund, C. R. Taylor, and T. A. McMahon, “Scaling stride frequency and
gait to animal size: mice to horses,” Science, vol. 186, pp. 1112–1113, 1974.
[59] D. Leach and N. F. Cymbaluk, “Relationship between stride length, stride frequency, velocity and morphometrics in foals,” American Journal of Veterinary
Research, vol. 47, pp. 2090–2097, 1986.
[60] T. A. McMahon, “The role of compliance in mammalian running gaits,” Journal
of Experimental Biology, vol. 115, no. 1, pp. 263–282, 1985.
[61] D. P. Krasny, Evolving Dynamic Maneuvers in a Quadruped Robot. PhD thesis,
The Ohio State University, 2005.
152
[62] H. Kimura, S. Akiyama, and K. Sakurama, “Realization of dynamic walking and
running of the quadruped using neural oscillator,” Autonomous Robots, vol. 7,
pp. 247–258, 1999.
153