Gait Optimization For Multi-Legged Walking Robots, With Application To A Lunar Hexapod
Gait Optimization For Multi-Legged Walking Robots, With Application To A Lunar Hexapod
A DISSERTATION
SUBMITTED TO THE DEPARTMENT OF AERONAUTICS AND
ASTRONAUTICS
AND THE COMMITTEE ON GRADUATE STUDIES
OF STANFORD UNIVERSITY
IN PARTIAL FULFILLMENT OF THE REQUIREMENTS
FOR THE DEGREE OF
DOCTOR OF PHILOSOPHY
Daniel Chávez-Clemente
January 2011
© 2011 by Daniel Chavez Clemente. All Rights Reserved.
Re-distributed by Stanford University under license with the author.
ii
I certify that I have read this dissertation and that, in my opinion, it is fully adequate
in scope and quality as a dissertation for the degree of Doctor of Philosophy.
I certify that I have read this dissertation and that, in my opinion, it is fully adequate
in scope and quality as a dissertation for the degree of Doctor of Philosophy.
J Gerdes
I certify that I have read this dissertation and that, in my opinion, it is fully adequate
in scope and quality as a dissertation for the degree of Doctor of Philosophy.
Jean-Claude Latombe
I certify that I have read this dissertation and that, in my opinion, it is fully adequate
in scope and quality as a dissertation for the degree of Doctor of Philosophy.
Terrence Fong
This signature page was generated electronically upon submission of this dissertation in
electronic format. An original signed hard copy of the signature page is on file in
University Archives.
iii
Abstract
The interest in using legged robots for a variety of terrestrial and space applications
has grown steadily since the 1960s. At the present time, a large fraction of these
robots relies on electric motors at the joints to achieve mobility. The load distributions
inherent to walking, coupled with design constraints, can cause the motors to operate
near their maximum torque capabilities or even reach saturation. This is especially
true in applications like space exploration, where critical mass and power constraints
limit the size of the actuators. Consequently, these robots can benefit greatly from
motion optimization algorithms that guarantee successful walking with maximum
margin to saturation.
Previous gait optimization techniques have emphasized minimization of power
requirements, but have not addressed the problem of saturation directly. This disser-
tation describes gait optimization techniques specifically designed to enable operation
as far as possible from saturation during walking. The benefits include increasing the
payload mass, preserving actuation capabilities to react to unforeseen events, pre-
venting damage to hardware due to excessive loading, and reducing the size of the
motors.
The techniques developed in this work follow the approach of optimizing a refer-
ence gait one move at a time. As a result, they are applicable to a large variety of
purpose-specific gaits, as well as to the more general problem of single pose optimiza-
tion for multi-limbed walking and climbing robots.
The first part of this work explores a zero-interaction technique that was for-
mulated to increase the margin to saturation through optimal displacements of the
robot’s body in 3D space. Zero-interaction occurs when the robot applies forces only
iv
to sustain its weight, without squeezing the ground. The optimization presented here
produces a swaying motion of the body while preserving the original footfall locations.
Optimal displacements are found by solving a nonlinear optimization problem using
sequential quadratic programming (SQP). Improvements of over 20% in the margin
to saturation throughout the gait were achieved with this approach in simulation and
experiments. The zero-interaction technique is the safest in the absence of precise
knowledge of the contact mechanical properties and friction coefficients.
The second part of the dissertation presents a technique that uses the null space
of contact forces to achieve greater saturation margins. Interaction forces can signifi-
cantly contribute to saturation prevention by redirecting the net contact force relative
to critical joints. A method to obtain the optimal distribution of forces for a given
pose via linear programming (LP) is presented. This can be applied directly to the
reference gait, or combined with swaying motion. Improvements of up to 60% were
observed in simulation by combining the null space with sway.
The zero-interaction technique was implemented and validated on the All Terrain
Hex-Limbed Extra-Terrestrial Explorer (ATHLETE), a hexapod robot developed by
NASA for the transport of heavy cargo on the surface of the moon. Experiments with
ATHLETE were conducted at the Jet Propulsion Laboratory in Pasadena, California,
confirming the benefits predicted in simulation. The results of these experiments are
also presented and discussed in this dissertation.
v
Acknowledgments
Although this thesis shows my name as the single author, many people have con-
tributed to making it possible and have made my time at Stanford a great adventure.
First I would like to acknowledge the important role of my adviser, Steve Rock.
From him I have learned many technical and non-technical things, most importantly
how to be an independent researcher. I especially admire his patience, and his resolve
to motivate students to strive for excellence and integrity in their work. Working
with him has been a faaan-tastic learning experience. Next, I wish to thank the
other members of my reading committee: Chris Gerdes and Jean-Claude Latombe,
who took time out of their busy schedules to read this thesis and provide insightful
feedback. I also thank Prof. Monic Sun for agreeing to chair my oral defense.
This work would literally not have been possible without the interest and support
of the people in the Intelligent Robotics Group at NASA Ames Research Center.
Terry Fong gave me the opportunity to fulfill my dream of working at NASA, and
diligently cut through the layers of red tape to make it happen. He also took the
time to participate in my oral defense committee. Vytas SunSpiral welcomed me
into the ATHLETE FootFall project, and became a great mentor and friend. His
infectious enthusiasm, creativity, and passion for life multiplied my joy of being at
NASA manyfold. DW Wheeler did a terrific job at leading the FootFall project during
the later part of my time at Ames, and helped with code and logistics for my thesis
experiments. Together we learned a lot about robots in the real world. My research
also benefited from collaboration with Tristan Smith, Javier Barreiro, David Smith
and Jeremy Frank of the Planning and Scheduling Group at NASA Ames.
At JPL I had the fortune of collaborating with Dave Mittman, who spent many
vi
hours helping with experiments on the robot and did his good share of paperwork
to have me onboard. He also confirmed my belief that collaboration between NASA
centers can be a painless and productive endeavor. Other members of the ATHLETE
team also gave valuable support and feedback, including Curtis Collins, Jay Torres,
Chet Joswig, Julie Townsend, Matt Heverly, Jaret Matthews and Brian Wilcox.
Several people at Stanford have been instrumental to this work. Kris Hauser
provided a lot of code, useful discussions and advice to get me started on the problem
of motion planning for ATHLETE. Prof. Michael Saunders provided the SNOPT
optimizer and helped tune it correctly for my application.
It has also been a privilege to be associated with the Aerospace Robotics Lab and
its people. Prof. Bob Cannon took an interest in my PhD even before I became a
student here, and motivated me with stories of the Apollo program. Godwin Zhang
answered many computer questions, always with a smile. And of course I am grateful
to the fellow ARL grad students with whom I shared the joys and tribulations of
the PhD: Masa Matsuoka, Jack Langelaan, Kristof Richmond, Teresa Miller, Tim
Bretl, Jinwhan Kim, Alan Chen, Sungmoon Joo, Peter Kimball, Debbie Meduna,
Sean Augenstein, Stephen Russell, Dan Sheinfeld, Kiran Murthy, Roland Burton,
Shandor Dektor, Nick Lee, Andrew Smith, Eleanor Crane, and Sarah Houts.
The staff of the Aero/Astro Department also gave much help and encouragement.
They include Sherann Ellsworth, Dana Parga, Lynn Kaiser, Jay Subramanian, Ralph
Levine, Robin Murphy, and Liza Julian.
Some professors and mentors from the past have continued to take interest and
motivate me in my studies: Héctor Dı́az, Alma Torres, Miguel Álvarez, Ella Atkins
and Darryll Pines. I am grateful for the positive influence they have had in my career.
I also wish to thank the many friends and roommates with whom I shared countless
fun moments, and who were always there to lend a helping hand. The “aero-friends”
in particular (and honorary members) have been a great crowd to spend time with:
Nikhil Nigam, Johannes Markmiller, Anja Fiebig, Parikshit Shah, Matt Tran, Di
Qiu, Harsh Mehta, Saurabh and Ruchi Bhindwale, and Mun Sang Yue. My long-
time friends from Mexico – Jorge Loyo and Yabin Escarpulli – have been trusty
companions throughout the years. To the many other people whom space prevents
vii
me from naming here individually, I offer a big, heartfelt Thank You.
As a memorable quote says, “No bucks, no Buck Rogers”. I am grateful for
the financial support of the following organizations: Mexico’s Consejo Nacional de
Ciencia y Tecnologı́a (CONACyT), the Intelligent Robotics Group at NASA Ames,
the Planning and Scheduling Group at NASA Ames, and the Aerospace Robotics Lab
at Stanford. A portion of this work was conducted as part of the Education Associates
Program at NASA Ames, which was stellarly run by Dale Stansbury, Carol Roland,
Marilyn Chan and Sheri Klug.
Finally, I would like to thank my family for their constant support and motivation
during my years in graduate school. There were many times when the going got tough,
and their words of encouragement and absolute trust in my abilities were what kept
me going. I dedicate this thesis to them.
viii
Contents
Abstract iv
Acknowledgments vi
1 Introduction 1
1.1 Why Use Walking Robots? . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Historical Sketch of Walking Robots . . . . . . . . . . . . . . . . . . . 3
1.3 Advantages of Walking Robots . . . . . . . . . . . . . . . . . . . . . . 8
1.3.1 Applications of Walking Robots . . . . . . . . . . . . . . . . . 12
1.4 Disadvantages of Walking Robots . . . . . . . . . . . . . . . . . . . . 16
1.5 Research Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.6 Summary of Contributions . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7 Organization of Dissertation . . . . . . . . . . . . . . . . . . . . . . . 22
ix
2.4.1 Solutions for Individual Legs . . . . . . . . . . . . . . . . . . . 40
2.4.2 Solutions for the Complete Robot . . . . . . . . . . . . . . . . 41
2.4.3 Load Redistribution in Walking Robots . . . . . . . . . . . . . 44
2.5 Future Model Improvements . . . . . . . . . . . . . . . . . . . . . . . 45
3 Background on Gaits 47
3.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 Leg Numbering Conventions . . . . . . . . . . . . . . . . . . . . . . . 49
3.3 Stability Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.1 Static Stability Margin . . . . . . . . . . . . . . . . . . . . . . 50
3.3.2 Energy Stability Margin . . . . . . . . . . . . . . . . . . . . . 52
3.4 Motion Planning of Individual Steps . . . . . . . . . . . . . . . . . . 54
3.5 General Procedure for Statically-Stable Gait Design . . . . . . . . . . 55
3.5.1 Periodic Gaits . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.5.2 Non-periodic Gaits . . . . . . . . . . . . . . . . . . . . . . . . 58
3.5.3 The Skeleton Gait . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6 Gait Optimization and Related Work . . . . . . . . . . . . . . . . . . 60
3.6.1 Actuator Limitations in Walking Robots . . . . . . . . . . . . 60
x
5 Force-Torque Sensitivity Analysis 93
5.1 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2 Sensitivity Throughout a Gait . . . . . . . . . . . . . . . . . . . . . . 95
5.2.1 Forward-Facing Legs . . . . . . . . . . . . . . . . . . . . . . . 95
5.2.2 Side-Facing Legs . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.3 Acceptable Force Deviations . . . . . . . . . . . . . . . . . . . . . . . 98
5.3.1 Normal Force Fz . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.3.2 Acceptable Fz Deviations for the Sway Gait . . . . . . . . . . 100
5.3.3 Terrain Characteristics – Bumps . . . . . . . . . . . . . . . . . 102
5.3.4 Tangential Force Fx . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.5 Acceptable Fx Deviations for the Sway Gait . . . . . . . . . . 105
5.3.6 Terrain Characteristics – Footfall Offsets . . . . . . . . . . . . 107
5.3.7 Terrain Characteristics – Contact Slope . . . . . . . . . . . . . 109
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
xi
6.4.6 Comparison of Approaches . . . . . . . . . . . . . . . . . . . . 140
6.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
xii
A.2.1 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
A.2.2 Straight Line Approach . . . . . . . . . . . . . . . . . . . . . . 160
A.2.3 SBL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
A.2.4 A* Search in Configuration Space . . . . . . . . . . . . . . . . 161
A.2.5 A* Search in Task Space . . . . . . . . . . . . . . . . . . . . . 163
A.2.6 Optimization 1: Lazy A* Search . . . . . . . . . . . . . . . . . 164
A.2.7 Optimization 2: Path Smoothing . . . . . . . . . . . . . . . . 165
A.3 Experimental Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
A.4 Experimental Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
A.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Bibliography 172
xiii
List of Tables
xiv
List of Figures
xv
2.6 A robot that is not in zero interaction . . . . . . . . . . . . . . . . . 30
2.7 Force distributions with heterogeneous spring constants . . . . . . . . 31
2.8 Spring-mass model for reaction force and sag calculations. . . . . . . . 32
2.9 Springs before and after sag . . . . . . . . . . . . . . . . . . . . . . . 33
2.10 Tweels
c
and tires on ATHLETE . . . . . . . . . . . . . . . . . . . . 37
xvi
5.5 Tolerable increase in normal force during sway gait execution . . . . . 102
5.6 Tolerable bump size during sway gait execution . . . . . . . . . . . . . 104
5.7 Critical tangential forces for the sway gait. . . . . . . . . . . . . . . . 106
5.8 Tolerable tangential force during sway gait execution . . . . . . . . . . 107
5.9 Tolerable footfall offset during sway gait execution . . . . . . . . . . . 108
5.10 Tolerable contact slope during sway gait execution . . . . . . . . . . . 109
xvii
7.7 ATHLETE successfully executing a sag-compensating sway gait . . . . 149
7.8 Acceptable terrain for sway gait without force control . . . . . . . . . 150
7.9 ATHLETE walking on slopes . . . . . . . . . . . . . . . . . . . . . . . 152
xviii
1
Nomenclature
{W } World frame of reference
{R} Robot frame of reference
{L} Leg frame of reference
{T } Tool frame of reference
~r0,i , ~rf,i Position of foot i before and after sag, in {W }
~r0,CG , ~rf,CG Position of the center of mass before and after sag, in {W }
∆~ri , ∆~rCG Displacement of foot i and the CG due to sag
Kinv Diagonal contact stiffness matrix
kxx , kyy , kzz Contact spring constants in the x, y, z directions
n Total number of legs
nc Number of feet in contact
ρmax,i Maximum reach for leg i at the current body position
ρ~i Location of the foot relative to the leg’s joint i, in {L}
xb , yb , zb Position of the robot’s body expressed in the World frame
φb , θb , ψb Orientation (roll, pitch, yaw) of the robot’s body
∆xb , ∆yb , ∆zb Change in position of the robot’s body for optimization purposes
∆φb , ∆θb , ∆ψb Change in body orientation (roll, pitch, yaw)
J Optimization cost function OR
Jacobian matrix for a robotic leg
τ%i Torque ratio (percentage) of joint i
ẑi The z axis of joint i – for revolute joints it is also
the axis of rotation
S̃i Screw for joint i
ρi Location of the foot relative to joint i, expressed in {L}
Si,j Sensitivity of joint i’s torque to variations in force j
S%i,j Sensitivity of τ%i to variations in force j
θ A parameter for NESM calculation, see Equation 3.7
γ A parameter for NESM calculation, see Equation 3.8
ε Specific resistance
2
g Gravity constant
m Robot mass OR
Number of joints per leg
P Power
R Leg stroke
Km Kinematic margin
λ Robot’s stride
σ Length of a body shift
βi Duty factor of leg i
φi Phase of leg i (not to be confused with the roll angle φb )
∆hi Distance that a foot has been lifted from its original position
~rC,i (z) Position of contact point i, in {W }
Φ Matrix formed of nc 3 × 3 identity matrices, see Equation 2.23
Ci Cross-product matrix, see Equation 2.27
Γ Balance matrix, resulting from stacking the Φ and C matrices.
See Equation 2.29
Abbreviations
AP Ankle Pitch joint
AR Ankle Roll joint
ATV All-Terrain Vehicle
ARC Ames Research Center
ATHLETE All Terrain Hex-Limbed Extra-Terrestrial Explorer
CG Center of Gravity
CM Center of Mass
CGU Carnegie Mellon University
CPS Conservative Polygon of Support
CPG Central Pattern Generator(s)
DFS Depth First Search
3
DOF Degree(s)-Of-Freedom
EAP Education Associates Program (at NASA Ames)
EKF Extended Kalman Filter
ESM Energy Stability Margin
FPS Full Polygon of Support
GUI Graphical User Interface
IK Inverse Kinematic(s)
IMU Inertial Measurement Unit
IRG Intelligent Robotics Group (at NASA Ames)
JPL Jet Propulsion Laboratory
LM Levenberg-Marquardt
LP Linear Program(ming)
LQR Linear Quadratic Regulator
NASA National Aeronautics and Space Administration
NESM Normalized Energy Stability Margin
ODE Open Dynamics Engine
POS Polygon of Support
PQP Proximity Query Package
PRM Probabilistic Road Map
PS Polygon of Support
SBL Single-Query Bi-Directional Probabilistic Roadmap
Planner with Lazy Collision Checking
SNOPT Sparse Nonlinear OPTimizer
SQP Sequential Quadratic Programming
SSM Static Stability Margin
UNC University of North Carolina
Leg Joints
HY Hip Yaw joint
4
Introduction
This chapter introduces walking robots and describes the problems addressed in this
work.
1
CHAPTER 1. INTRODUCTION 2
Figure 1.2: The RHex robotic platform, a biologically inspired walking robot (Credit:
Kod*lab, Univ. of Pennsylvania).
Another example is the work of McGhee and Frank on the stability properties
of quadrupedal machines [McGhee 68b]. Their research found that a certain class of
gaits referred to as “wave gaits” maximizes stability along the direction of motion
(longitudinal stability). Interestingly, this type of gait is commonly used by 4-legged
animals during slow walking, suggesting that nature sometimes favors stability over
other possible benefits like energy conservation.
elephants in India and a variety of articulated toys and decorative figures from Egypt
(circa XX century B.C.) and Greece (III century B.C.).
The earliest walking machine designed for a practical application appears to be
the Steam Man of Dederick and Grass [Dederick 68], shown in Figure 1.3. Patented
and actually built in 1868, the Steam Man was attached to the front of a carriage and
pulled it by means of steam power. It was kept balanced by the support structure
attaching it to the carriage, and the inventors estimated that their contraption would
be capable of speeds of up to 60 mi
hr
:
“As the engine is capable of making more than a thousand evolutions a minute,
it would get over the ground, on this calculation, at the rate of a little over a mile a
minute. As this would be working the legs faster than would be safe on uneven ground
or on broad street cobble stones, it is proposed to run the engine at the rate of five
hundred revolutions per minute, which would walk the man at the modest speed of
half a mile a minute.” — Zadock Dederick, in a 1868 interview with the Newark (N.J.)
Advertiser [Buckley 07]
Figure 1.3: The Steam Man of Dederick and Grass. From US Patent 75874 [Dederick 68]
CHAPTER 1. INTRODUCTION 5
It is not clear how far Dederick and Grass took their invention, but they seem to
have inspired other people to develop similar machines. They envisioned a variation
in the form of a Steam Horse, which according to them would “do the duty of twelve
ordinary creatures of the same species”. The design for such a machine was patented
by L.A. Rygg in 1893 [Rygg 93], and is shown in Figure 1.4. Rygg’s mechanical
horse was to be human-powered, and although it was never built there seems to be a
consensus that it constitutes the first design of a quadrupedal mobile machine.
Figure 1.4: The Mechanical Horse of L.A. Rygg. From US Patent 491927 [Rygg 93]
Between the late 1800’s and the mid 1900’s the construction of walking machines
did not progress much. On the other hand the formal study of gaits got truly un-
derway with the pioneering efforts of Eadweard Muybridge, a photographer born
in England who lived for many years in the American west. Muybridge was well
known in California as a landscape photographer. According to his biographers (e.g.
CHAPTER 1. INTRODUCTION 6
[Solnit 04]), he was recruited in 1872 by Leland Stanford – former governor of Califor-
nia and founder of Stanford University – to help settle a popular question at the time:
whether the hooves of a horse ever leave the ground all at the same time. Muybridge
developed techniques to photograph Stanford’s own galloping horse at a high frame
rate, and found that there were indeed intervals when all of the horse’s hooves were
in the air (Figure 1.5). Having perfected these photographic techniques, Muybridge
embarked on further studies of animal locomotion, including a more comprehensive
look into horses, bisons and people [Muybridge 87, Muybridge 57]. His photographic
sequences remain useful references in the study of gaits.
The mathematical study of gaits was pioneered in the 1960’s by Tomovic and
Karplus [Tomovic 61]. Shortly thereafter Hildebrand [Hildebrand 65] created the con-
cept of the gait formula to be discussed in §3.5, which was later perfected by McGhee
[McGhee 68a]. Also in this period the discovery of the stability optimality of wave
gaits was made by McGhee and Frank [McGhee 68b].
CHAPTER 1. INTRODUCTION 7
Omnidirectional Motion
Variable Geometry
The legs of a walking robot change geometry as the joint angles are varied. As a
result, the configuration of the robot is very adaptable and can help it fit through
tight spaces, such as when walking through a canyon or forest. It also enables a
very large robot to fold compactly for transportation, an ability that is essential in
planetary exploration where the robot must fit inside the launch vechicle’s payload
compartment.
This is illustrated in Figure 1.6, which shows the TriATHLETE robot developed
by NASA for heavy cargo transport on the moon. The robot is nearly 4m tall when
deployed, but is able to fit atop the lunar lander by folding its legs tightly. Once on
the moon it can self-deploy by re-extending its legs and stepping off the lander.
CHAPTER 1. INTRODUCTION 9
Figure 1.6: The TriATHLETE robot unfolding from a compact configuration atop a
prototype of a lunar lander (Credit: David Mittman, JPL)
Walking robots propel themselves by making contact with the ground at discrete
contact points along their path, instead of leaving behind continuous tread marks
characteristic of rolling. This can be advantageous for a number of reasons.
Figure 1.7 shows the SILO 6 robot, developed for the detection of buried land
mines. This application clearly benefits from a discontinuous contact pattern because
the robot can place its feet at carefully selected locations to avoid triggering a mine.
Thus an entire field can be surveyed robotically without danger to people.
Discrete contacts are also essential for traversing dense boulder fields, where step-
ping on rocks might be unsafe.
Finally, when exploring locations where the terrain itself is a target of scientific
interest, it is convenient to disturb it as little as possible. This can easily be accom-
plished with legged robots.
Figure 1.7: The SILO 6 robot with a scanning manipulator for land mine detection
(Credit: Center for Automatic Control, Spain)
CHAPTER 1. INTRODUCTION 10
Perhaps the main advantage of legged robots over their wheeled counterparts is their
ability to explore a wide variety of easy and challenging terrains. Any ground ac-
cessible to wheeled rovers is also traversable by legged ones. Additionally, cluttered
environments, boulder fields, steep slopes, soft sand and even walls can be accessed
by means of limbs. The diversity of terrains that are potentially encountered on other
planetary bodies (Figure 1.8) makes walking robots particularly attractive for space
exploration.
Figure 1.8: Diverse terrains encountered in planetary exploration (Credit: NASA, JAXA)
CHAPTER 1. INTRODUCTION 11
The possibility of combining legs and wheels has already been exploited in a number
of robots. The wheels can be actuated or passive, resulting in unique modes of
locomotion. For example, Hirose and Takeuchi [Hirose 95] developed the Roller-
Walker hybrid robot shown in Figure 1.9. The robot is equipped with passive wheels
and an ingenious mechanism to rotate their axle 90◦ so that one side of the wheel is
in contact with the ground and functions as a regular foot. In this configuration the
robot behaves as a walker. If the wheels are rotated to the rolling position, the robot
moves forward by a skating motion. This type of locomotion is only possible because
of the wheel-leg combined design.
For legged robots equipped with actuated wheels, a combined walking+rolling
motion is possible. In this mode some or all the wheels can provide traction, while
the legs change shape to avoid obstacles by either making the wheel drive around them
or picking up the foot to go over. Terms like rollking have been coined to describe this
mode of locomotion, which combines the speed and efficiency advantages of rolling
with the versatility of robotic legs.
Figure 1.9: The Roller-Walker hybrid robot has passive wheels and can move by
rollerblading (Credit: Hirose-Fukushima Robotics Lab)
CHAPTER 1. INTRODUCTION 12
Manual detection and removal remains the leading technique for clearing land mines
from locations around the world. This is a slow process that carries a very high risk
for humans. Legged robots are particularly well suited for this application.
As previously mentioned, they are able to place their feet at carefully selected
points on the ground, and can be equipped with adequate sensors for detecting the
mines. These can then be destroyed by the robot itself by a number of different
approaches.
Robotic de-mining practically eliminates all risk for human operators, and the
process can be sped up by using multiple robots simultaneously. Some robots are
being developed for this purpose. Figure 1.7 shows the SILO 6, under development by
the Department of Automatic Control of the Spanish CSIC [Cobano 08]. The Tokyo
Institute of Technology is also experimenting with the Titan VIII robot [Hirose 98],
and its specialized successor – the Titan IX [Kato 01]– both shown in Figure 1.10.
Figure 1.10: Legged robots for de-mining applications (Credit: Hirose-Fukushima Robotics
Lab)
CHAPTER 1. INTRODUCTION 13
Forestry
Forest management includes activities such as timber harvesting, which often takes
place in remote locations that are difficult to access. An option is to create roads
for trucks and other vehicles to reach the areas of interest, but this has a higher
impact on the forest because it requires removal of trees that would otherwise not
be harvested. An alternative is to use legged robots, because they can traverse the
difficult and cluttered terrain separating a road from an area of interest.
The Finnish company Plustech Oy (now part of John Deere) developed the Tim-
berjack precisely for this application (Figure 1.11). The robot is powered by hydraulic
actuators and can transport downed trees using its crane boom.
Figure 1.11: A legged robot for forestry applications (Credit: John Deere)
The idea of using legged robots as cargo “mules” is also actively being explored. A
quadruped called Big Dog has been developed by Boston Dynamics to assist soldiers in
carrying equipment out on the battlefield [Playter 06]. Its successor, LS3, is currently
under development and is intended to carry up to 180 kg of payload (Figure 1.12)
Legged robots have also successfully entered the realm of entertainment. The Aibo
is a well known robotic pet developed by Sony (Figure 1.13(a)), and has become
CHAPTER 1. INTRODUCTION 14
Figure 1.12: The LS3 military cargo robot (Credit: Boston Dynamics)
popular not only as a toy but also a research and education testbed. A version of the
famous RoboSoccer tournament is played with these robots, which offer interactive
capabilities for research on sensing, planning and mobility.
Sony also developed QRIO, a small humanoid robot with voice and video sensing
as well as very good mobility (Figure 1.13(b)). Although never commercialized by
Sony, similar robots are under development by other companies and will soon enter
the market.
A third example, the PLEO “robotic companion” from Innvo Labs (Figure 1.13(c))
is an interactive robot dinosaur designed to function as a pet. The robot is capable
of visual, audio and infrared sensing, as well as exhibiting different pre-programmed
and customizable personality traits. A growing community of developers exists who
use the PLEO in artificial intelligence research.
(a) Sony Aibo (b) Sony QRIO (c) Innvo Labs PLEO
Figure 1.13: Entertainment and educational robots (Credit: Sony, Innvo Labs)
CHAPTER 1. INTRODUCTION 15
Personal Assistants
Because of their ability to move in cluttered environments, walking robots are being
considered as home or office assistants to perform a variety of tasks. These include
domestic chores like cleaning, carrying and delivering packages, and assisting handi-
capped and elderly people in their daily lives.
Humanoid robots, like the Honda Asimo (Figure 1.14(a)), have been under devel-
opment for many years, and are gradually achieving the necessary level of maturity
to perform well in domestic environments. Multi-legged robots are also being devel-
oped. For example, the ZeroCarrier from the Tokyo Institute of Technology (Figure
1.14(b)) is capable of ascending and descending stairs with a person on top.
Figure 1.14: Personal assistant robots (Credit: Hirose-Fukushima Robotics Lab, Honda)
Planetary Exploration
Space agencies have considered legged robots for planetary exploration missions due to
their high versatility. The designs vary in complexity, including for example the Cana-
dian Space Agency’s simple wheel-leg rover Prompt (Figure 1.15(a)), NASA’s large
and complex ATHLETE cargo robot (Figure 1.15(b)), the versatile walking/climbing
Lemur robot also from NASA (Figure 1.15(c)), and the German Aerospace Center’s
highly sophisticated Crawler (Figure 1.15(d)). While no legged robots have thus
far ventured into space, advances in their development will undoubtedly make them
strong contenders as primary or secondary payloads in the future.
CHAPTER 1. INTRODUCTION 16
Figure 1.15: Some robots designed for planetary exploration. Credit: CSA, NASA, DLR
Walking robots are complex and expensive machines with many static and moving
parts. Each leg is usually composed of several rigid elements connected by articulated
joints. The joint assemblies can be fairly complex mechanical systems, consisting of
actuators, sensors, transmission gears and supporting structure.
Because of the many DOF, motion planning and execution are quite involved for
a walking robot. For example, moving forward in a straight line requires execution
of a sequence of steps and body shifts. These moves require careful planning to take
the legs safely through the necessary configurations, as exemplified in Figure 1.16.
CHAPTER 1. INTRODUCTION 17
Figure 1.16: A robot’s leg must move through a sequence of configurations to execute
a step.
Efficiency estimates for several walking and driving machines have revealed that walk-
ing is less energy-efficient on benign terrain than rolling. To enable comparison of
diverse modes of locomotion, Gabrielli and von Kármán [Gabrielli 50] introduced the
concept of specific resistance as a metric of energy efficiency, a concept later extended
1
by Gregorio et al. [Gregorio 97] to allow comparisons at different speeds.
1
Specific resistance is a dimensionless quantity computed as the power required (P ) divided by
the product of weight times speed (mgv):
P
ε=
mgv
Since the ratio of power to speed Pv represents a force known as the tractive force, specific resistance
is the tractive force per unit of weight. A lower value of ε means less power is required to move at
a given speed, for some given vehicle mass. Since lower ε corresponds to more efficient locomotion,
this metric represents the equivalent of a drag coefficient, hence the name “resistance”.
CHAPTER 1. INTRODUCTION 18
Figure 1.17: The specific resistance of various machines as a function of speed (from
[Gregorio 97]).
Gregorio used this metric to compare the efficiency of several wheeled and legged
vehicles at various speeds of their operational envelopes. The results are summarized
in Figure 1.17. Here, more efficient locomotion is toward the bottom of the plot.
Points near the bottom right represent very fast and efficient locomotion, and are
very desirable. Cars lie in the proximity of this region, while legged robots are closer
to the top left (slow and inefficient). In spite of this, the large payoffs that can be
obtained from legged robots motivate their continued development.
Low Speed
Referring again to Figure 1.17, it is possible to see that all walking robots developed
to date fall in the “very slow” category comparatively speaking (that is, near the left
half of the plot).
CHAPTER 1. INTRODUCTION 19
Figure 1.18: Speed comparison between wheeled and legged robots (Credit: Boston
Dynamics, Stanford University’s Dynamic Design Lab, NASA)
km
– the cheetah – is capable of speeds as high as 120 h
, and developing a robot able
to move at similar speeds will likely remain an exciting challenge for years to come.
• The payload that the robot can carry with a given set of actuators is maximized.
• Useful information is obtained about the lower bound of actuation with which
a gait can be executed. This translates into the smallest motors that can po-
tentially be used on the robot.
takes place, and the vertical forces are adjusted by means of body offsets. The result
is a zig-zagging motion of the body referred to as sway. Zero-interaction optimization
is the safest alternative when the contact friction coefficient is unknown. Chapter 4
describes how the optimal displacements of the body are determined, and how they
are applied to improve a reference gait.
In fact, body sway and null-space utilization can be combined to achieve the
highest possible actuation margin for a given gait. This avenue is also explored in
Chapter 6.
To guarantee that the full benefit of these optimization techniques is obtained,
it is necessary to equip the robot with closed-loop force control capabilities so that
the contact forces can be adjusted precisely. In the absence of force control the
actual benefit is determined by a number of factors, including terrain characteristics,
contact mechanics and transmission non-backdrivability. These issues are analyzed
in Chapter 5.
Chapter 2 describes the ATHLETE robot testbed, and outlines the model and tech-
niques used to compute contact forces and joint torques.
Chapter 3 outlines the process of gait generation and provides a detailed description
of related work.
Chapter 6 discusses gait optimization techniques that make use of the nullspace of
contact forces to increase the margin to saturation further. A method to obtain
the optimal force distribution for any given pose of the robot is presented. The
CHAPTER 1. INTRODUCTION 23
method can be applied directly to a reference gait, or combined with body sway
for largest benefit. Both cases are discussed, and simulation results for the
ATHLETE robot are presented.
Chapter 8 summarizes the contributions and lessons learned, and describes avenues
for future research.
Chapter 2
This chapter describes the solution technique developed for force calculations on robots
with compliant contact points, and explains the procedure to calculate joint torques. It
also introduces the ATHLETE hexapod robot, which was the testbed for this research.
24
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 25
Figure 2.1: The ATHLETE robot at Moses Lake, WA. Note scale relative to operator.
The sensor suite on ATHLETE includes a total of 11 stereo camera pairs, organized in
three groups: 6 navcam pairs mounted on each of the six outside faces of the chassis,
3 hazcam pairs mounted on three non-consecutive internal corners of the chassis, and
finally two toolcam pairs, mounted near the wheel of legs 1 and 6. The navcams
are setup with overlapping fields of view in order to provide a full 360◦ coverage of
the ground around the robot. The view provided by the navcams is most useful for
driving because of the slightly higher aim. The hazcams look toward the inside of the
robot and provide a view of the ground directly underneath it. These cameras are
also able to see the legs, and a certain distance beyond them. Finally the toolcams are
intended for use during more dexterous operations such as drilling or manipulation
when the appropriate end-effectors are attached to the axle of the wheels. Figure 2.2
shows the combined field of view of the navcams and hazcams.
Figure 2.2: The ATHLETE field of view provided by the cameras extends to a radius of
approximately 3 body lengths. Blind spots are caused by occlusions and self-imaging.
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 27
Torque Sensors
The ATHLETE robot is equipped with indirect torque sensing at each joint. These
measurements are based on estimation of the torsional deformation of each joint by
means of two encoders located at the input and output of the joint [Collins 07]. A
schematic of the knee pitch joint is shown in Figure 2.3. This joint connects the thigh
and shin of each leg, and is assembled in the following way:
A motor tube (MT ) is attached to the thigh, and contains the motor assembly
which consists of the motor (M ), planetary reduction stage (P ), magnetic brake (B )
and incremental encoder (E+). The planetary gear provides the first stage of reduc-
tion; the rest is introduced by a harmonic drive, which in turn consists of three parts:
a flexspline (FS ), a wave generator (WG) and a circular spline (CS ). The flexspline is
rigidly attached to the motor tube via a coupling tube (CT ). This keeps the flexspline
from rotating, and leaves the harmonic drive in a configuration with reduction ratio
R + 1, where R is the reference ratio provided by the manufacturer [LLC 08]. Thus
the input to the harmonic drive becomes the wave generator (connected to the motor
via a coupling C ), and the output is the circular spline. Therefore to transmit motion
to the shin, the CS is connected to an output tube (OT ) which is rigidly attached to
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 28
the shin. Finally, the output of the harmonic drive is also connected to an absolute
encoder (Ea).
The difference between the angle indicated by the incremental and absolute en-
coders is a measure of the torsional deformation of the joint. In order to infer the
torque, a calibration routine is followed to obtain stiffness curves for each of the
36 joints, by applying known torques to them. The torque measurement system is
discussed in detail in [Collins 07].
In addition to the cameras and torque sensors, the robot is equipped with an Inertial
Measurement Unit (IMU) manufactured by MicroStrain (Figure 2.4). The work pre-
sented in this thesis makes use of the IMU only to determine the spatial orientation
of the body of the robot, via the attitude quaternion reading.
attached to the end-effector (in this case the foot) of each leg. This is referred to as
a foot or tool frame, and represented as {Ti } for each of the robot’s feet. Finally,
a fixed reference frame is attached to the ground at some convenient location (often
the starting location of the robot). This inertial frame serves as a reference to define
quantities such as distance covered and robot orientation, and is labeled the world
frame {W}. Other reference frames can be defined as the application requires.
Figure 2.5 shows the frames selected the ATHLETE robot.
Figure 2.5: Reference frames for the ATHLETE robot (Image by Matthew Heverly, Cour-
tesy NASA, Jet Propulsion Laboratory, California Institute of Technology)
forces without making special assumptions or adding constraints. The most common
assumptions are that the robot and ground are rigid, and the tangential forces at
the contact points are zero. As will be discussed below these are not always good
assumptions, especially in robots with physical or contact compliance.
When applied to robots with compliant contact points, some disadvantages exist
with the pseudoinverse technique. First, the balance of forces and moments is done
assuming perfectly rigid contacts, so the effect of compliance is not captured. In other
words, the pseudo-inverse solution is an approximation that assumes zero sag.
Second, the technique is unable to capture the gradual redistribution of forces
that occurs while lifting or placing a foot. It can be desirable to model this effect for
pose optimization or sag mitigation.
Finally, the pseudoinverse becomes inaccurate if the stiffness of the contact points
is different. In real life the load carried by each leg is proportional to its contact
stiffness, an effect that is not accounted for in the traditional pseudoinverse solution.
Figure 2.7 illustrates this with a simple example of an “M”-shaped 3-legged robot.
1
In the first case, all contact points have equal stiffness kz and each leg carries 3
of the
weight. When the stiffness of the middle contact point is reduced by 50% the force
carried by this leg decreases by the same amount relative to the other two, since the
spring deformations are all the same. The correct solution is the one shown in Figure
2.7(b). However the pseudoinverse formulation would always return the distribution
from Figure 2.7(a), because the spring constants are not used in the calculation of
forces.
W
W
∆z2 > ∆z1
∆z1 kz kz kz
2
kz kz kz
W
5
W W W 2W 2W
3 3 3 5 5
(a) Same spring constants (b) Different spring constants
Figure 2.7: The pseudo-inverse method always returns a force distribution that as-
sumes the same stiffness at every contact point (left). The correct force distribution
depends on the individual spring constants (right).
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 32
x y
z
x
k
y
k
α
kz
Figure 2.8: Spring-mass model for reaction force and sag calculations.
Similar models have been used in the past by a few authors (e.g. [Silva 05]).
However there is a key difference in the way it has been used: authors that have
modeled the contact points as springs usually calculate the reaction forces first using
the pseudo-inverse formulation, and then use the spring equation to compute sag. In
this dissertation the springs are included directly in the force calculations, with the
advantages that have already been outlined.
Figure 2.9 shows the positions of the feet and CG before and after sag, expressed
in a fixed reference frame (in this case {W}). These are given by Equations 2.1-2.2.
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 33
~r0,CG ~rf,CG
~r0,i ~r0,i+1 ~rf,i ~rf,i+1
XW XW
ZW ZW
(a) Before sag (tires undeformed) (b) After sag (tires deformed)
Where for a linear spring the displacements in the (X, Y, Z) directions are given
by:
Here Kinv is a diagonal stiffness matrix, defined in Equation 2.4. This matrix can
be different for each foot if the spring constants are not all the same, as would be the
case when different inflation pressures have been set at each foot. This also applies
when a robot is transitioning from one kind of terrain to another, in which case some
feet might be on stiffer ground than others.
1
0 0
kxx 1
Kinv =
0 kyy
0
(2.4)
1
0 0 kzz
Now it is possible to write the sum of forces and moments about the fixed frame
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 34
X
f~i + m~g = 0 (2.5)
Contact
X
~rf,i × f~i + ~rf,CG × m~g = 0 (2.6)
Contact
Assuming all the compliance is at the contact points and the robot is rigid oth-
erwise, one can next write equations that constrain the geometry of the robot before
and after spring deformation. With nc feet in contact, the next nc equations state
that the distance between consecutive feet (i.e. between feet i and i + 1) remains
constant:
That is, referring to Figure 2.9, the distance between the centers of wheels i and
i + 1 is the same in Figure 2.9(a) and Figure 2.9(b). This is actually true between
any pair of feet on the robot, and can be repeated for non-consecutive feet until the
robot’s geometry has been fully constrained. Proceeding in this manner, the next
block of equations comes from the constant distance skipping one foot (i.e. between
feet i and i + 2), for the load-bearing feet:
At this point a total of 3nc equations with 3nc unknown force components for
the feet in contact are available. However, closer inspection of Equation 2.6 reveals
an additional dependency on the final position of the CG. This position needs to be
calculated as well, and strictly speaking 3 more equations are needed which define
the CG location before and after spring deformation. In practice, it was found that
overconstraining the system by adding more CG equations results in better numerical
convergence. For this reason n additional equations are used which indicate the
spacing between the CG and each foot of the n-legged robot:
Equations (2.5) through (2.9) are solved numerically using the Levenberg-Marquardt
algorithm, with the optimization variables being the reaction force components and
the final location of the CG. Note that the model outlined above can be used for any
combination of feet in the air and on the ground. Some observations can be made:
1. In some cases the calculated reaction forces might require a foot to pull down.
While physically impossible for ATHLETE, this is a correct calculation, and
would not be out of the question for a robot with hooks or other grappling end-
effectors (e.g. a climbing robot). If it is desired to eliminate solutions that pull,
additional constraints can be added to enforce fz,i ≥ 0 or fz,i ≤ 0, depending
on how the reference frames where chosen.
2. The problem becomes more difficult to solve as the spring constants get stiffer.
Numerically, this is caused by the elements of Kinv approaching zero. Physically,
this means that the robot approaches the unrealistic situation of perfectly rigid
contact points. Note that as Kinv → 0 Equations 2.7-2.9 effectively vanish and
only the balance equations remain. If the robot under consideration adjusts to
this model, the pseudoinverse solution is a better choice.
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 36
Despite the generality of the above model, it still fails to capture the force redistribu-
tion that occurs when lifting or setting down a foot. In other words, it assumes that
a foot is either fully loaded or bears no load. This is sufficient for many situations.
However, if it is desired to explore the redistribution of loads to mitigate the effects
of sag, an extension to account for lift/drop transitions is needed.
For this purpose, contact points for each foot are defined and denoted by ~rC,i .
That is, ~rC,i represents the location of foot i, expressed in the inertial reference frame,
at which the bottom of tire i touches the ground and starts bearing load. On an
arbitrary terrain, these contact points are (xi , yi , zgnd@(xi ,yi ) + Rtire ), and change for
a given foot only when its (x, y) coordinates change. The contact points can be
visualized as the fixed attachments of the springs to the ground in Figure 2.8
Now the force exerted by a given foot is redefined in terms of the contact points.
Let the distance that foot i has been lifted off the ground (assuming no sag) be:
Note that ∆hi > 0 if the leg has been lifted (+Z is down). Assuming a flat plane,
the contact springs are affected differently – X and Y are able to apply their full
forces as long as the tire is in contact and the foot does not slip. Z, however, has
constantly diminishing action as the leg is lifted. This must be adequately portrayed
in the corresponding equations. Thus for the linear spring model the forces will be
given as follows:
(
−kxx · ∆~ri (x), if in contact
fi (x) = (2.11)
0, otherwise
(
−kyy · ∆~ri (y), if in contact
fi (y) = (2.12)
0, otherwise
(
−kzz · (∆~ri (z) − ∆hi ) , if in contact
fi (z) = (2.13)
0, otherwise
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 37
c
(a) A Michelin Tweel
(b) Maxxis pneumatic tires
~τext = J T F~ (2.15)
Where:
~τext is the vector of joint torques that balance the external forces applied at the foot.
h i
J = S̃1 S̃2 S̃3 S̃4 S̃5 S̃6 (2.16)
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 39
That is, ρ~i is the location of the foot with respect to joint i, expressed in the leg
1
frame, and ẑi is the rotation axis of revolute joint i, also expressed in the leg frame.
For robots with massless legs, Equation 2.15 represents the total joint torques. If
the mass of the legs is significant as with ATHLETE, the torques due to gravity must
also be included, and the total torques become:
The calculation of gravity torques is outlined in [Collins 07] for the ATHLETE
robot.
2. The force-moment balance for the whole robot (Equations 2.5 and 2.6):
P~ P ~
F = 0, M =0
1
Actually the equations can be expressed in any reference frame, as long as consistency is main-
tained throughout. For example, if the Jacobian is expressed in the tool frame, the external forces
must also be expressed in that frame.
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 40
• JT : m × 6
• F~ : 6 × 1
Number of solutions
The linear system J T F~ = ~τ relates to the number of force and torque solutions as
follows:
• If m < 6, then J T is fat and the system has fewer DOF than variables to control.
This means that: (a) there is an infinite number of external force/moment
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 41
combinations that yield the same joint torques, and conversely (b) it might not
be possible to find a set of joint torques to achieve a desired force/moment. In
other words, the system is underactuated.
• If m > 6, then J T is skinny and redundancy exists: more than one combination
of joint torques can be found to achieve a desired force/moment output. How-
ever there might not be any force/moment combination that results in a given
set of torques.
The above holds under the assumption that J T is full-rank. If that is not the case
it means that one or more of the components of F~ have no effect on the joint torques.
Conversely, if (J T )−1 is not full rank, there will be one or more joints that have no
effect on the output force/moment.
The ATHLETE robot is equipped with 6 joints per leg, and thus falls into the case
of 1:1 correspondence between forces and torques. The majority of walking robots in
existence today fall into the m ≤ 6 category. Smaller robots tend to use 3 joints per
leg (hip yaw, hip pitch and knee pitch). This is the minimum number of joints that
allows simultaneous control of all 3 cartesian coordinates of the foot. Walking robots
with only one DOF per leg exist (e.g. RHex), but this constrains their locomotion
capabilities to the use of less traditional wheel-legs and the corresponding regular gaits
that are possible with these. An example in the m > 6 category is the TriATHLETE
robot currently under development at NASA’s Jet Propulsion Laboratory, which is
equipped with 7 joints per leg.
Balance Equations
Let f~ be a vector of reaction forces at the feet in contact expressed in the robot frame
{R}, and f~g be the weight vector, also in the {R} frame. Let nc be the number of
feet in contact, then:
In order to write the net moment about the CG of the robot, the matrix form of
the cross product of two vectors is useful:
~r × f~ = Ci f~ (2.24)
C f~ = 0 (2.26)
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 43
Where the matrix C is the collection of the cross-product matrices for the feet in
contact:
Combining Equations 2.22 and 2.26 produces the system of static equilibrium
2
equations:
" #
−f~g
Γf~ = (2.28)
0
Where Γ results from stacking the Φ and C matrices:
" #
I ··· I
Γ= (2.29)
C1 · · · Cnc
6×3nc
Number of Solutions
The matrix Γ in Equation 2.28. is of dimension 6 × 3nc . Thus for any robot with
more than two legs on the ground, Γ is fat and a nullspace of contact forces exists.
In the tangential (X, Y ) direction this says that the robot can hold up its weight
while squeezing the ground with arbitrary force, as long as these squeezing forces
cancel each other out (Figure 2.6).
A nullspace of forces can also exist in the vertical direction. To analyze this, the
tangential forces in Equation 2.28 are assumed to have known, fixed values. Since fx
and fy are no longer unknowns, Equation 2.20 reduces to the following:
• Each submatrix I loses the first two rows and columns. In other words, the
only force balance that remains is the balance in the z direction, which makes
2
Note that Equation 2.28 is a fat linear system, whose Moore-Penrose pseudoinverse is the tra-
ditionally used zero-interaction solution mentioned at the beginning of this chapter.
CHAPTER 2. DESCRIPTION AND MODELING OF THE ROBOT 44
sense.
• Each submatrix Ci loses the first two columns because the moments due to fx
and fy have already been accounted for. It also loses the last row, since the
remaining force component fz is unable to apply any moments about the z axis.
After discarding all these rows and columns, the force and moment balance for
the robot reduces to the following:
−fgz
Γz f~z =
0
(2.31)
0
Where the reduced matrix Γz is now:
1 ··· 1
Γz =
ry1 · · · rync
(2.32)
−rx1 · · · −rxnc
3×nc
The conclusion is that if nc = 3, a nullspace does not exist in the vertical direction
(i.e. a tripod has no vertical nullspace). However if nc > 3, then Γz is fat and a
nullspace exists.
The implications of these nullspaces will be discussed in the following section.
as the load changes, causing some changes in geometry. The more rigid the contacts,
the smaller these changes will be.
The third possibility is to change the force distributions by applying small changes
to the joint angles, for example moving one foot up or down so that it pushes more
or less on the ground. This is a more viable way of carrying out force control, and is
usually possible for most walking robots because it relies on cartesian motion of the
foot rather than on direct torque control. The changes in the configuration of the
robot are usually also small in this case.
Because little or no change is made to the configuration of the robot, the previous
three cases are referred to as internal load redistribution. The fourth and final
possibility is to modify the load distribution by displacing the robot’s CG. This
can be accomplished by moving or rotating the body without changing the contact
points of the feet, resulting in simultaneous changes of the loads and the joint angles.
This approach has a bigger impact on the leg Jacobians than internal redistribution
techniques.
Chapter 4 will make use of the 4th approach, while the optimization setup in
Chapter 6 will assume rigid contact points as in the 2nd approach.
1. Relaxation of the assumption that all outward normals at the feet are the same.
This would allow more realistic analysis on terrains with bumps. This is a
minor extension which involves additional transformation matrices applied to
the reaction forces when expressing them in the robot frame.
this has not yet incorporated into the model. Another possibility is to use a
Weighted Least Norm (WLN) solution instead of the standard least norm.
Background on Gaits
This chapter describes the related work and other necessary background information.
3.1 Definitions
This section provides some basic definitions related to gait generation that will be
helpful in future discussions.
Gait: A sequence of steps and body shifts that a legged robot executes to achieve
motion. A gait might consist of a repeating pattern, in which case it is known as
a regular or periodic gait. However, non-repeating patterns may be preferable
in some cases, and these are known as free gaits. Finally, it is also possible
to follow a regular gait most of the time and apply changes to it only when
necessary, for example to avoid stepping on a forbidden area. In this case, the
robot is said to be executing an adaptive gait.
47
CHAPTER 3. BACKGROUND ON GAITS 48
Continuous gait: A gait in which body shifts and steps are allowed to take place
simultaneously. As a result the body of the robot is constantly in motion, often
at a constant speed.
Discontinuous gait: In this gait the steps happen when the body is stationary,
and similarly the body is shifted only when all feet are in contact with the
ground. That is, steps and body shifts are not allowed to happen simultaneously,
resulting in a speed that oscillates between zero and some maximum value.
Crawl gait: A discontinuous gait in which only one foot is moved at a time. The
name points at the fact that this gait is very slow and deliberate. Its main
advantage is that it is very safe.
Crab gait: A gait where the body of the robot remains pointed in the same direction
regardless of the actual direction of motion.
Turning gait: In contrast to the crab gait, this gait maintains the body aligned with
the direction of motion. If a curved path is being followed, then the body will be
oriented tangentially to that path at all times. Turning gaits are more difficult
to plan because the legs must be coordinated to provide forward progress as
well as body rotation. It is a better gait if the robot’s sensing is limited to the
forward direction.
Support phase: Period of time during the motion in which a given foot is on the
ground.
Transfer phase: Time period when a given leg is executing a step, and is thus not
in contact with the ground.
Transfer time: Amount of time required to complete the transfer phase of a given
leg.
Leg stroke (R): Distance through which the foot is translated relative to the body
during the support phase (see Figure 3.1).
CHAPTER 3. BACKGROUND ON GAITS 49
Kinematic margin (Km ): Distance from the current foot location to the rear of its
reachable space, along the desired direction of motion (See Figure 3.1).
Timestep: Each of the moves that constitute a gait (steps, body shifts, or discrete
waypoints in the execution of these).
Figure 3.1: Leg stroke and kinematic margin for a legged robot. D is the direction of
motion.
1 2
6 1
3 4 5 2
4 3
5 6
Figure 3.2: Leg numbering conventions for walking robots, with direction of motion
indicated by the arrows.
legs are on the left side of the body, and the even-numbered ones on the right side,
assuming motion in the preferred direction.
For robots that don’t have a preferred direction of motion, the above convention
has also been used, but its significance is lost as soon as the robot walks in a direction
other than the one used for numbering. An alternative convention is to number the
legs in a clockwise or counter-clockwise sequence around the body, as shown in Figure
3.2(b). The actual direction is selected to follow the right-hand rule about the vertical
(Ẑ) body axis.
In both cases, the numbering of legs can either start at 0 or 1, more commonly
the latter. Ultimately the selection of a numbering sequence is a matter of choice,
but adjusting to one of these two conventions can be advantageous when relating to
other work in the field, particularly in the context of gait generation.
SSM
SSM
Figure 3.3: Polygons of support and the SSM, with 6 feet in ground contact.
the edges of the POS (Figure 3.3(a)). To obtain gaits which are more conservative
in terms of stability it is also possible to use a reduced or conservative polygon of
support. This polygon is the intersection of all support polygons drawn with the feet
in contact minus one, to simulate the failure of one of the supporting legs (Figure
1
3.3(b)).
The SSM is a common stability metric which is easy to compute, and provides a
realistic assessment of stability if dynamic effects do not play a role and the ground
is flat and horizontal.
A variation of this metric, the Longitudinal Stability Margin (LSM) is sometimes
used for faster calculation. The LSM is the distance from the projected CG to the
support polygon along the direction of motion. This simplified metric must be used
with care to ensure that stability is not accidentally violated in the lateral direction.
The study of wave gaits has made extensive use of the LSM, and the work of McGhee
and Frank [McGhee 68b], Bessonov and Umnov [Bessonov 73], Sun [Sun 74], and
Song and Waldron [Song 89] demonstrated that the LSM is in fact maximized by this
type of gait for 2n-legged robots (n > 1).
1
In these figures, all feet are assumed to be on the ground, with contact points at the bottom of
the tires.
CHAPTER 3. BACKGROUND ON GAITS 52
Here, each ∆hi is the necessary height change of the robot’s CG to tumble about
rotation axis i, and is defined as:
Where
CHAPTER 3. BACKGROUND ON GAITS 53
hmax,i is the maximum height reached by the CG when the robot rotates
about edge i of the POS.
Let L̂i be the unit vector representing edge i of the POS, defined by the difference
of the locations in {W } of two consecutive feet (i, i + 1):
~ i = ~ri+1 − ~ri
L (3.4)
~i
L
L̂i = (3.5)
kL~ ik
The angle γ between the rotation axis and the horizontal plane is itself determined
by means of Equation 3.8.
π
γ = − arccos −L̂i,Z (3.8)
2
A contour of NESM for the ATHLETE robot on a 10◦ slope is shown in Figure
3.4. The contour represents the value of NESM as a function of body position. Uphill
CHAPTER 3. BACKGROUND ON GAITS 54
is in the +X direction, toward the right of this image, and the maximum stability
value is achieved by shifting the body uphill.
Motion −0.3
−0.2
−0.1
(m)
0
body
Y
0.1
0.2
0.3
Figure 3.4: NESM variation for ATHLETE on a 10◦ slope as a function of body
position. (a)The body can be moved parallel to the ground without moving the feet,
(b)The contour of NESM indicates that stability is maximized by shifting the body
uphill 0.22m (initial position is shown by the red dot, and uphill is to the right).
accordingly. Stretching of the original paths in configuration space has been explored
by Hauser [Hauser 08a] and others. An alternative is to plan the motion using a grid-
based or randomized technique that incorporates joint angle limitations, a terrain
model and a robot model to find a feasible plan that prevents collisions with the
environments and other parts of the robot.
For the simulations and experiments presented in this dissertation three approaches
were implemented and compared: a grid-based planner in cartesian space, another
grid-based planner in joint space, and a randomized planner. For both grid-based
cases the well-known A∗ algorithm was used. In the randomized case, the SBL plan-
ner developed by Sánchez and Latombe [Sanchez 01] was used. In all cases, smoothing
was applied to the motion plan via iterative bisection and Dijkstra simplification.
The comparison of motion planning approaches is explained in detail in Appendix
A. As a result of this comparison the SBL technique with smoothing was selected
for use on the ATHLETE robot. A∗ in cartesian space was found to be a suitable
alternative with approximately equal performance.
that uniquely define a periodic gait. The use of the gait formula is explained in the
books by Song and Waldron [Song 89] and Gonzalez de Santos et al. [de Santos 06].
At a high level, it is necessary to define the sequence and timing of moves to
be executed by the robot for walking. The process begins by deciding between a
continuous or discontinuous gait, as defined in §3.1.
In the continuous case, the body is constantly in motion (usually at a constant
speed). Body shifts need not be specified because of the continuous motion of the
body, but the sequence and timing of steps is necessary. For example, in the simplest
case a possible choice is to step with only one leg at a time, requiring specification of
the step sequence. A popular sequence is the wave, which moves the legs on one side
from back to front, followed by the other side from back to front.
The sequence, however, does not uniquely define a gait – timing information is
also required. Take for example the first two steps of a wave gait: after completing
the first step, one possibility is to initiate the second step immediately. Another
possibility is to continue shifting the body for some time with all feet on the ground
before initiating the second step.
In the context of McGhee’s framework, the sequence and timing are encoded by
two parameters:
Duty factor (βi ): The fraction of a gait cycle that leg i is in contact with the ground
(i.e. in the support phase).
Leg phase (φi ): The fraction of a gait cycle by which the placement of leg i lags
behind the placement of leg 1. Here leg 1 is the actual physical number of the
leg on the robot, and not the first leg that takes a step. This means that a leg’s
phase may be negative if its placement occurs before that of leg 1, or positive
if it happens after leg 1.
With this in mind, the simplest specification of a gait for a robot or animal with
n legs is given by the gait formula in Equation 3.9. It is possible for all the legs to
have the same duty factor, in which case only one value of β is specified.
g = {β1 , . . . , βn , φ1 , . . . , φn } (3.9)
CHAPTER 3. BACKGROUND ON GAITS 57
For example, if a walking robot like the one in Figure 3.2(b) executes the sequence
of steps {6-5-4-1-2-3} (a reverse wave sequence), with one step at a time, and each
step starting immediately after the previous one ends, the gait is defined by Equation
3.10. Note that all feet spend the same amount of time in the support phase.
λ
σ= (3.11)
n
CHAPTER 3. BACKGROUND ON GAITS 58
Where λ is the robot’s stride, i.e. the distance that the body advances after a
complete gait cycle.
Figure 3.6: Traversal of a boulder field usually requires an adaptive or free gait.
As the terrain becomes more complex, so does the gait design process. For very un-
structured terrain, the challenge often becomes one of feasibility because valid motions
are difficult to find. General motion planning approaches for this kind of situation
have been developed for walking and climbing robots by Bretl [Bretl 05, Bretl 06] and
Hauser et. al. [Hauser 08a, Hauser 08b], and have been validated experimentally on
the Lemur and Capuchin robots, and in simulation for the ATHLETE robot. These
planners search for feasible motions directly in the 42-dimensional configuration space
of the robot, and as a result carry a high computational cost. However, their ability
to find viable motion plans in highly constrained situations makes them suitable for
extreme terrains.
Skeleton Gait: This consists of the sequence of robot configurations without the
details on how each individual step is executed.
CHAPTER 3. BACKGROUND ON GAITS 60
Step Planning: From the skeleton gait the information on the initial and final con-
figuration of the leg during a step can be obtained. A motion planner is then
applied to determine the sequence of waypoints that individual legs must follow
to complete a step, as previously described in §3.4.
aboard in the form of batteries or obtained from alternative sources such as solar pan-
els. Because the system must be ideally self-contained (i.e. no long extension cords
required), a reduction in power consumption will increase the range or autonomy of
the robot. Therefore, the majority of papers describing torque-related optimization
focus on minimization of power.
The motivation for improving actuation margin instead is one of feasibility and
robustness. Legged robots intended for cargo or scientific applications can, by design,
be required to operate close to saturation. Therefore adequate gaits are needed to
maximize the useful payload and guarantee continuous motion. The reader is asked
to keep this distinction in mind through the remainder of this dissertation.
Having said this, energy minimization approaches deal with functions of the joint
torques, and contain lessons that can be incorporated when dealing with gaits for
preventing saturation.
The cost metrics commonly used are functions of the joint torques and angular
velocities – J1 (τ θ̇) (for minimization of mechanical power), or of the square of the
torques – J2 (τ 2 ) (for minimization of electrical power).3 These are referred to as type
J1 and type J2 functions in the discussion that follows.
The idea of achieving a comfortable margin away from saturation has been partially
addressed in the literature through the use of safety margins. For example, Kerr and
Roth [Kerr 86] applied safety margins to the friction and joint torque constraints of
a LP force optimization, in the context of fingered grasps. Their work develops a
general LP framework for finding optimal force distributions through minimization
of various possible cost functions, subject to linear constraints. One such possibility,
which they apply to grasping, is to minimize a linear combination of torque ratios
and friction cone margins. The selection of appropriate weights for each component
3
The mechanical power for a rotating motor is defined as Pm = τ θ̇. On the other hand, the
electrical power for a motor can be expressed in its simplest form as Pe = I 2 R, and the motor stall
torque is given by τ = Kt I, where I is the current, R the resistance, and Kt the motor torque
constant. Combining these expressions, the electrical power can be rewritten as Pe = KR2 τ 2 .
t
CHAPTER 3. BACKGROUND ON GAITS 62
Most of the literature involving torques has focused on energy efficiency through
minimization of appropriate cost metrics. The most common approach is to select
foot force distributions that minimize energy consumption or mechanical power for
particular gaits.
Some force-based approaches specifically geared toward walking robots choose to
optimize the force distribution at individual fixed poses throughout the gait. For ex-
ample, Cheng and Orin [Cheng 91] developed a fast Linear-Programming technique
for optimization of force distribution for general multiple-chain robots, with applica-
tion to a variety of grasping tasks. The technique is shown to work for different linear
cost functions. Of special interest is their optimization for minimum effort, defined by
a summation of normal force components at the contact points. This cost function is
not of type J1 or J2 , but like them lacks the explicit distancing from saturation. The
LP approach naturally arises as the appropriate solution technique in the second part
of this dissertation, for the case of robots with force control capabilities. However, it
is not applicable when the joint torques are nonlinear functions of the optimization
variables, as in the first half of this work.
CHAPTER 3. BACKGROUND ON GAITS 63
Marhefka and Orin [Marhefka 98] used a different setup based on quadratic pro-
gramming to achieve the same objective on walking machines, with specific focus on
reducing the energy used by the motors. Quadratic programming is mandated by the
use of a J2 cost function. Their work incorporates constraints on joint torques based
on current and voltage limitations of the motors and associated circuitry. However,
no attempt to maximize actuation headroom is made.
The work presented in this dissertation follows the pose-by-pose philosophy of the
above approaches but differs from them in that the torque redistribution is achieved by
lateral, longitudinal and rotational body motion as opposed to internal redistribution
with a fixed pose.
BIO-INSPIRED APPROACHES
In the realm of bio-inspired approaches, Kar, Issac and Jayarajan [Kar 01] based their
technique on biomechanical studies of cockroaches, which suggest that directing the
contact forces toward the coxal (hip) joint minimizes joint torques in these insects.
The objective to be minimized is the power consumption, but torque limits are not
considered. As will be explained later in this dissertation, directing the forces toward
the hip can drive some joints closer to saturation, exacerbating the problem being
addressed in this dissertation.
Several approaches are based on the use of Central Pattern Generators (CPG).
For example, Tsujita, Kawakami and Tsuchiya [Tsujita 04] used simulated annealing
to choose appropriate phase differences between CPG oscillators in order to minimize
a function of type J2 . Unfortunately this family of techniques assumes very specific
de-centralized robot architectures not available in many robots.
More recently a few approaches have been published that work directly with joint
torques instead of forces. Jiang, Liu and Howard [Jiang 04] compared force-based and
torque-based approaches, using different pseudo-inverse formulations to determine
optimal force distributions between the supporting feet to apply a desired force/torque
on the body. The torque-based approach was found to present optimality benefits as
measured by the sum of the torques squared.
Similarly, Sufi-Erden and Leblebicioğlu [Erden 07] undertook an energy formula-
tion using joint torques directly, and compared it with the more common foot force
distribution setup. The objective was to minimize Power=J(τ 2 ) subject to friction
constraints for some given, pre-defined gait by redistributing torques among the joints.
Their comparison suggests that an optimization based on joint torques directly results
in more energy-efficient motions than one dealing with force distributions. For exam-
ple, a comparison of a full cycle of an alternating tripod gait results in a gait that is
almost twice as efficient using the torque approach. One drawback of their approach,
however, is that it makes no attempt to avoid motor saturation. In other words,
CHAPTER 3. BACKGROUND ON GAITS 65
CLIMBING ROBOTS
Some related work also exists in the climbing robots literature. Of note is the work
by Miller, Bretl and Rock [Miller 06] on torque redistribution via real-time convex
optimization. Here, an optimal distribution of contact forces is found by solving a
LP, subject to constraints on the joint torques. The cost function is the weighted sum
of torque ratios, and the contact forces are controlled directly via the individual joint
torques. As previously mentioned, the second part of this work makes use of a similar
optimization setup, but with a different emphasis: maximizing actuation headroom.
CHAPTER 3. BACKGROUND ON GAITS 66
SWAY COMPENSATION
None of the above approaches tried to exploit lateral motion or other deviations from
a nominal trajectory to reduce torques. To the author’s knowledge the only prece-
dent of this is the work of Kurazume et al. [Kurazume 03] on energy efficiency of a
quadruped robot. Though not directly dealing with torques, their work introduces
2D and 3D sway compensation for the purpose of smoothing out accelerations dur-
ing dynamically-stable gaits of a quadruped robot (Titan VIII). The authors report
reductions in energy consumption (Joules per gait cycle) as compared to a dynamic
trot without swaying.
It should be noted that evaluation of robot performance has been traditionally
carried out under the assumption of hip trajectories executed at constant velocity.
However, as suggested by Silva and Machado [Silva 07], and Alexander [Alexander 84,
Alexander 89], hip oscillation is present in animals potentially due to efficiency ben-
efits, and its application in walking machines merits further study.
Chapter 4
This chapter describes the new optimization procedure that was developed to prevent
actuator saturation in walking robots, without making use of the nullspace of forces.
The technique finds optimal changes to the body’s spatial DOF to alter the force
distribution and leg geometry in a way that reduces proximity to saturation. The
chapter is organized as follows:
4.1 Introduction
Various approaches are possible for gait optimization, depending on the intended
objective and available capabilities of the robot. In this work the choice is made to
optimize the gait one pose at a time.
This chapter describes the first of the two approaches developed over the course
of this research. Its essence is to seek a zero-interaction solution, taking advantage of
modifications to the spatial DOF of the robot’s body. The technique does not make
67
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 68
use of the nullspace of contact forces. The zero-interaction approach is the safest
one in situations where the contact friction coefficients and/or mechanical properties
are not well known. The utilization of the null space will be discussed in detail in
Chapter 6.
If precise force control is available, the full benefit of the zero-interaction optimized
gait can be obtained. In the absence of it, there are limitations on the kind of terrain
that can be traversed. The characteristics of the traversable ground will be studied
in Chapter 5.
Figure 4.1: Contours of τ% ,max for the first step of a gait. To move away from saturation,
the body is shifted to (xb , yb )∗ before executing the step.
support polygon would result in an even distribution of forces, the geometry of each
of the legs will in general be different, producing different sets of torques.
−0.6 −0.6
−0.4 −0.4
−0.2 −0.2
0
0
Y
Y
0.2
0.2
0.4
0.4
0.6
0.6
−0.6 −0.4 −0.2 0 0.2 0.4 0.6 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6
X X
Figure 4.2: Connection of two consecutive optimal poses results in the new body shift
for the swaying gait
Regarding the use of ∆zb , the height of the body above the ground has a direct
impact on a leg’s reachable area. A larger reach can allow bigger (∆xb , ∆yb ) body
shifts which may reduce torques further. Therefore for a given start configuration
and target footfall there is an optimal body height or range of heights that enable
larger torque reductions. A gait that includes optimization over ∆zb would present
cyclical variations of body height as the robot walks.
The present work was carried out in the context of a manned robot, so it has been
deemed desirable to keep (zb , φb , θb ) constant for crew comfort, and take advantage
of (∆xb , ∆yb , ∆ψb ) for optimization. The approach, however, is valid in the general
case of using all the body DOF subject to appropriate constraints.
It is noted that the benefit obtained from the rotational degrees of freedom can
be expected to be comparatively small. This is primarily because they do not shift
the CM of the robot considerably if at all, so the force distribution sees little change.
The benefit of these DOF comes from the modification of the leg geometries and the
different set of moment arms that result. In some cases they also extend the body
translations that are possible, enabling a greater benefit from (∆xb , ∆yb , ∆zb ).
The achievable reduction in τ% ,max for a given step largely depends on the geometry
of the legs in contact and how much motion of the body they allow. For example,
Figure 4.3 shows a very constrained pose for the ATHLETE robot, informally called
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 72
−0.5 1
0.75
0.5
−0.4
0.75
1
0.5
−0.3
0.5
−0.2 0.75
1
−0.1
0.75
0.5
Y
0.5
0
0.75
0.1 0.75
0.7
1
5
0.2
1 1
0.5
0.3
1 0.5 1
0.75
0.4
0.75
0.51
−0.6 −0.4 −0.2 0 0.2 0.4 0.6
X
Figure 4.3: A very constrained configuration for a legged robot can prevent motion
in a direction of interest and limit the possible reduction in τ% ,max .
the Marsyard Standard Pose (MSP). In this example, four of the legs are tucked in
to narrow the form factor of the robot so that it can be stored in a reduced space.
Because these legs are close to some of their joint limits, displacement is limited along
the X direction (left-right here) and the minimum torque achievable is pegged at the
extreme of motion. Had the joint angle limits been less constrained, it might have
been possible to move further from saturation.
The above discussion suggests the interesting possibility that one might exploit
the multiple inverse kinematic (IK) solutions that exist for a 6-jointed leg to reach the
same point in space. By selecting a different IK solution for some of the legs it might
be possible to shift the body further in a beneficial direction. Generally speaking
these multiple IK solutions are not connected in configuration space; in other words,
except in special cases it is not possible to take the leg from one IK solution to
another without moving the foot or hip. Therefore, a sequence of body moves might
be necessary to achieve this extra benefit. The utilization of IK multiplicity was not
explored in this work.
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 73
Mτ,i = 1 − τ% ,i (4.2)
The actuation margin is a metric of how far from saturation a given joint is. A
value of τ% ,i ≥ 1, or equivalently Mτ,i ≤ 0 denotes a saturated motor. Since the
objective is to maximize the actuation margin for all joints the cost function to be
minimized is the following:
J = kτ% ,1 , . . . , τ% ,n k∞ (4.3)
That is, cost is represented by the maximum of all torque ratios. The problem
has a form similar to the Chebyshev approximate solution of a linear system, which
can be stated as follows [Boyd 04]:
Minimize maxi=1...k aTi x − bi (4.4)
−0.6 −0.6
−0.4 −0.4
−0.2 −0.2
0
0
Y
Y
0.2
0.2
0.4
0.4
0.6
0.6
−0.6 −0.4 −0.2 0 0.2 0.4 0.6 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6
X X
−0.5
−0.5
−0.4
−0.4
−0.3
−0.3
−0.2
−0.2
−0.1 −0.1
0
Y
Y
0.1 0.1
0.2 0.2
0.3 0.3
0.4 0.4
0.5 0.5
−0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4
X X
−0.5 −0.5
−0.4
−0.4
−0.3
−0.3
−0.2
−0.2
−0.1
−0.1
Y
0
Y
0
0.1
0.1
0.2
0.2
0.3
0.4 0.3
0.5 0.4
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 −0.6 −0.4 −0.2 0 0.2 0.4
X X
Figure 4.4: Contours of τ% ,max for the first 6 steps of a gait. Note the presence of one
strong local minimum in all cases, indicated by the green dots.
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 76
With the above discussion in mind, the original problem will be transformed into
a smooth, differentiable one which can be solved by means of SQP. This is accom-
plished with the following equivalent problem:
Minimize:
J = t; t: scalar (4.5)
s.t.:
t ≤ 1 (4.7)
τ% ,1 ≤ t
..
. (4.8)
τ% ,n ≤ t
The cost is now a linear function of the design variables, but joint torques τi
remain nonlinear functions of (xb , yb , zb , φb , θb , ψb ). Thus the overall problem consists
of a linear cost function subject to nonlinear constraints.
The optimization is also subject to reachability constraints. Given an initial set
of contact points expressed in the robot frame {R}, the new position of each contact
point after a body translation and rotation is obtained by applying the transformation
matrix in Equation 4.9. The points on the ground will experience a motion opposite
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 77
1 , 2
to that of the body, as seen in the {R} frame.
cΘcΨ sΦsΘcΨ + cΦsΨ −cΦsΘcΨ + sΦsΨ −∆xb
−cΘsΨ −sΦsΘsΨ + cΦcΨ cΦsΘsΨ + sΦcΨ −∆yb
T =
sΘ
(4.9)
−cΦsΘ cΦcΘ −∆zb
0 0 0 1
T
k~rL,i − T · ~rc,i k ≤ ρmax,i (4.11)
Where:
~rL,i : Location of {L}i expressed in {R}.
~rc,i : Initial location of contact point i in {R}.
This is illustrated in Figure 4.5. The points A and B in this figure denote the
initial and final foot locations of the leg that takes a step. The remaining static
footholds as well as A, B must remain within the reachable area of the appropriate
leg (exemplified by the dashed pie wedge).
Equation (4.11) is nonlinear and non-convex due to the presence of trigonometric
functions of ∆ψb . Summarizing, the properties of the optimization constraints place
the problem in the realm of nonlinear optimization. Various techniques exist for solv-
ing this optimization problem, and for this work Sequential Quadratic Programming
1
In the interest of readability, s represents the sin() function, and c the cos() function. Similarly,
the angular displacements are expressed in short form, with the following equivalence: ∆φb → Φ,
∆θb → Θ, ∆ψb → Ψ .
2
The expression has been simplified by recalling that for any angle ζ it holds that
sin(−ζ) = − sin(ζ) and cos(−ζ) = cos(ζ). The original expression can be found in [Craig 89], p46.
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 78
X B X B
A A
∆ψ
Y ∆x Y
∆y
(SQP) was chosen. Specifically a C++ implementation called SNOPT [Gill 02] is
used. The SQP algorithm is described in [Nash 96] and others.
At this point the optimization problem is fully defined. Once the set of opti-
mization variables is chosen, the problem can be solved using the technique described
above. The following section describes simulation results for a reverse-wave gait being
executed by the ATHLETE robot.
Figure 4.6: Starting pose and terrain for the gait optimization simulations.
• Realistic 3D visualization of the robot and its motion, with image capture ca-
pabilities.
• Ability to load multiple terrain meshes simultaneously.
• Calculation and visualization of contact forces and joint torques.
• Ability to load and replay telemetry logs from ATHLETE field tests.
• Gait planning and execution.
Figure 4.7 provides two screenshots of GaitView. The user interface was imple-
mented using QT4 [Nokia 09]. This provides a large number of pre-designed widgets
which make it easy to extend the interface if new capabilities are required, as was the
case many times throughout this research.
Interactive 3D visualization was achieved with OpenGL, via the QGLViewer li-
brary [Debunne. 09]. QGLViewer enables very intuitive interaction with the 3D mod-
els, including rotation, translation, zoom in/out, fly in/out, redefinition of the center
of rotation, image capture, and many others. The library also interfaces easily with
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 80
QT, requiring only that the user redefine the draw() function to render the models
via OpenGL commands.
Some of the drawing functionality in GaitView was inherited from a previous sim-
ulator developed by Kris Hauser and other members of Prof. Jean Claude Latombe’s
research group at Stanford University. Their group also kindly provided the SBL
library which was used for individual step planning.
Collision checking is accomplished via the Proximity Query Package (PQP), devel-
oped at the University of North Carolina [UNC 99, Gottschalk 96, Larsen 99]. PQP
is used to check for self-collisions and collisions with the environment.
Dynamic simulation capabilities are currently not available in GaitView, but could
be added in future versions via the Open Dynamics Engine (ODE) [Smith 07].
5
4 6
Motion
3 1
2
Start
VARIATION OF τ% ,max
Symbol Meaning
↑# Lifting of foot #
→ Forward swing of the lifted foot
↓ Planting of the lifted foot
↔ Body shift
Figure 4.10 shows this variation for the first 3m of the traverse. This includes a
total of 3.5 gait cycles, for a total of 21 steps and an equal number of body shifts.
Starting from the third cycle the behavior becomes regular, so the remaining 2m of
the traverse are not shown to improve readability.
The following observations can be made about the behavior observed in Figure
4.10 for each of the first three cycles:
First cycle: First it is evident that the peaks correspond to the instances when
a foot is in the air. A relatively small variation is observed between the two
points of each peak ( 10% in the worst case). This variation is a result of the CM
being shifted during the swing since the legs have significant mass. Second,
a gradual increase exists from the 1st to the 5th peak. This curious behavior
can be attributed to the fact that as the first cycle progresses the spread of
the two legs adjacent to the one in motion also increases (verifiable by carefully
observing the first 5 steps in Figure 4.9). By the 6th all the feet in contact
have taken a step, and the configuration is again more symmetric, causing the
observed decrease.
Second cycle: Starting from this cycle the pattern changes and exhibits two high
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 84
1.2
↑2
1 → →
→ ↑2 ↑2
→
→ ↑6 → ↑6
→ →
↑1 ↑5 ↑5
→ ↑1 ↑1
0.8 → →
↑5
↑6
↑4 → ↔
→
↑3 ↑3
τ%,max
↔ ↔
↑4 ↔ ↔
→ ↑4 → ↑4
0.6 ↑3 ↔ ↓ ↔ ↓
↑5 ↔ → → →
→ → ↔ ↔
↑6 → ↔ ↓ ↓ ↓
↔ ↔ ↔ ↔
↔ ↔ ↓ ↓ ↔ ↔
↔ ↓ ↓ ↓ ↓ ↓
↓ ↓ ↓
0.4 ↓
↔ ↓ ↓ ↓
↓
↓
∅∅
0.2
0
10 20 30 40 50 60 70 80
Gait Time Step
peaks followed by a low one – a kind of symmetry between the left and right
sides of the body. The critical steps are the first and second ones on each side.
Third+ cycle: Since the chosen gait is periodic, the variation of maximum torque
ratio repeats exactly from the third cycle on. For verification the first 3 steps
of the third and fourth cycles may be compared.
only at the beginning of each step, when the leg has reached its lift waypoint qL
(Figure 4.11). Therefore the body will be shifted to its optimal pose before initiating
a step, and will remain there during the entire motion of the stepping leg.
As the results will show, this approach achieves the desired reductions in torque
percentages while preventing too much computation. A discussion on how to increase
the level of granularity is provided in §4.6.
2 qL
qD
3 1
qG qI
OPTIMIZED MOTION
Figure 4.12 shows a comparison of the optimized and reference motions of the robot.
Each blue point along the path represents the location of the center of the chassis at
the beginning or end of a body shift. The first of these points is the initial location
of the body. The line segments connecting these points correspond to the body shifts
themselves. In the reference case, each point also corresponds to a step taken with
the corresponding leg in the sequence, since steps are executed at the end of each
shift. This is also true for the optimized motion, with the exception of the first point,
because in this case the robot executes a body shift before executing a step.
As can be seen in the figure, the swaying motion becomes periodic after three gait
cycles. This is expected since the reference gait is also periodic. Here the underlying
behavior is easier to understand – once the gait becomes periodic near the end of
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 86
4 6
2 12 3 12 3
5 3
6 416 4
5 65 4 1
3
Figure 4.12: Comparison of optimized (top) and reference gaits for the ATHLETE
robot.
the 2nd cycle the body is moved away from the stepping side. That is, before the
legs on the left side of the body take steps, a large sway toward the right occurs, and
viceversa. Figure 4.13 shows a montage of the first 2 cycles of the optimized sway
gait. The behavior just mentioned as well as the directions of the body shifts can be
appreciated here.
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 87
Start
EFFECT ON SATURATION
The variation of τ% ,max for the optimized (sway) gait is plotted in Figure 4.14, with
the reference values shown for comparison. The following observations can be made
from this plot:
1. The sway optimization has succeeded in reducing all the peaks by different
amounts. The largest reduction (≈ 50%) is seen at the 1st step of the gait once
it has become regular after the 3rd cycle.
2. More importantly, the maximum peak which previously reached saturation has
been reduced by 23%, preventing saturation with a comfortable margin.
3. After the 3rd cycle, the reference gait experienced maximum peaks > 90%.
By applying sway, the maximum peaks have been reduced to ≈ 70%. This is
important because the benefit of sway is not limited to the critical 1st cycle, but
is seen in the long-term operation of the robot.
4. It can be seen that the distribution of peaks has changed in the steady state.
Instead of 2 high peaks followed by a low one, the new pattern is 1 high peak
surrounded by 2 low ones. This means that the new critical steps are the
second ones on each side, when the adjacent legs are at their maximum spread
(see Figure 4.13).
1.2
Reference
Sway
↑2
0.8 →
↑2 ↑5 ↑2
→ →
↑5 →
→↓ ↓
τ%,max
↑4
→
0.6
↓ ↑3 ↓ ↓ ↓ ↓
↑5 → ↓↔ ↑3 ↑3
→↔ ↑4 ↔ ↔ ↔↑4 ↔
↓ ↔ → ↓ ↔ →↓ ↓ ↔ →↓
↔↑1 →
↔
↔ ↓ ↔ →↔ →↓
↔
↑6 → ↔ → → ↑6 →
↓ ↑6 ↑1 ↑1
0.4
↓
↔ ↔
↓
∅
0.2
0
10 20 30 40 50 60 70
Gait Time Step
Figure 4.14: Variation of τ% ,max for the sway gait. The values for the reference gait
are shown for comparison.
OPTIMIZATION OF STEPS
For simplicity the optimization presented above was carried out including reachability
constraints for the 4 essential waypoints of a step: initial footfall, lift waypoint, drop
waypoint and target footfall. This guarantees that the resulting body shifts will allow
execution of the steps without the need for additional moves. In proceeding like this,
only one optimization is solved per step. For this optimization, an assumption must be
made as to whether the stepping leg is in the initial, lift, drop or target configuration.
Since it was observed that higher torque ratios tend to be present at the lift waypoint,
this configuration was used during optimization.
The tradeoff is that the variation of torque ratios during step execution is not
fully captured. Therefore, the body position might not be optimal for the rest of the
waypoints (though it will be close to optimal). A first option for improvement is to
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 90
1. One with the stepping leg in the lift waypoint configuration, and excluding the
drop and target waypoints from the reachability constraints.
2. A second one that excludes the start and lift waypoints, and uses the drop
waypoint configuration for the stepping leg.
Optimal body shifts can be accomplished by discretizing the motion of the body
along the desired direction of motion, and finding the optimal values for the re-
maining degrees of freedom. That is, given a body shift between two consecutive
optimal configurations (xb,0 , yb,0 , zb,0 , φb,0 , θb,0 , ψb,0 )∗ and (xb,f , yb,f , zb,f , φb,f , θb,f , ψb,f )∗
it is possible to perform k optimization steps as summarized in Algorithm 1 (the
direction of motion is assumed to be x in this example). The resulting sequence of
body configurations provide a piecewise-linear approximation to the optimal body
shift.
4.7 Summary
This chapter presented an optimization technique to prevent joint saturation in legged
robots by means of specialized motions of the body. The resulting sway gait was
CHAPTER 4. ZERO-INTERACTION GAIT OPTIMIZATION 92
shown in simulation to have the benefit of preventing saturation and reducing the
peak torque ratios in the steady-state gait.
The results presented here assume that zero-interaction walking takes place. Robots
equipped with active force control capabilities will be able to obtain the full benefit
of the sway gait. In the absence of force control the robot is commanded exclusively
through joint angles, and the achievable benefit depends on the accuracy of the robot
and ground models, as well as the deviations that these present. The following chapter
will examine the sensitivity of the sway gait to variations in contact force magnitude
and terrain characteristics.
Chapter 5
The previous chapter outlined a technique for torque minimization that relies on the
assumption that tangential forces are close to zero, and normal forces conform to those
calculated for the mass-spring system balance at a given robot configuration. This
chapter examines the effect that deviations from these nominal forces have on joint
saturation, and how this translates into terrain properties. The chapter is organized
as follows:
5.1 Preliminaries
In the absence of an active force control system, the robot is commanded exclusively
through joint angles. The joint torques depend on the external forces and moments
applied at each foot, and unmodeled external factors can alter these forces. It is as-
sumed that the contact points are unable to exert moments (meaning the moments are
all zero), so the joint torques are functions of the vertical force fz and the tangential
forces fx , fy only.
93
CHAPTER 5. FORCE-TORQUE SENSITIVITY ANALYSIS 94
The analysis begins with the well-known equation relating joint torques to external
forces:
~τ = J T F~ (2.15)
T
Si,j = Ji,j (5.1)
τi
τ%i = (5.2)
τmax,i
1 T
∴ τ%i =
Ji,j fj (5.3)
τmax,i
1 T
S%i,j = Ji,j (5.4)
τmax,i
1
The index j in Si,j is replaced here with the appropriate letter rather than a numerical index.
For example S1,z is the sensitivity of joint torque 1 to fz . This could equivalently be denoted S1,3
if the force components are numbered from 1 − 3
CHAPTER 5. FORCE-TORQUE SENSITIVITY ANALYSIS 95
Leg 6 Max Sensitivities to Fxyz, Reference Gait Leg 6 Max Sensitivities to Fxyz, Optimized Gait
1.8 1.8
SFx SFx
1.6 SFy 1.6 SFy
SFz SFz
1.4 1.4
1.2 1.2
SFxyz × 1000
SFxyz × 1000
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
0 5 10 15 20 25 30 35 0 5 10 15 20 25 30 35
Gait Timestep Gait Timestep
Figure 5.2: Sensitivity variations for forward-facing legs throughout reference and
optimized gaits.
No significant difference exists between the sensitivities before and after torque
minimization. The peak sensitivities remain approximately the same, with only a
slight reduction in the peak-to-peak sensitivity for the tangential directions.
5.2.3 Discussion
The results of the previous analysis show that variations in the magnitude of contact
forces can have a large impact on saturation, especially in the tangential direction.
CHAPTER 5. FORCE-TORQUE SENSITIVITY ANALYSIS 97
Leg 5 Max Sensitivities to Fxyz, Reference Gait Leg 5 Max Sensitivities to Fxyz, Optimized Gait
1.8 1.8
SFx SFx
1.6 SFy 1.6 SFy
SFz SFz
1.4 1.4
1.2 1.2
SFxyz × 1000
SFxyz × 1000
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
0 5 10 15 20 25 30 35 0 5 10 15 20 25 30 35
Gait Timestep Gait Timestep
Figure 5.3: Sensitivity variations for side-facing legs throughout reference and opti-
mized gaits.
With this in hand the analysis can then turn to individual cases: variations in the
normal direction only, or normal and tangential needed to induce saturation.
In fact when normal and tangential forces are present they may all contribute to
joint saturation. For simplicity the effect of normal forces may be studied indepen-
dently under the assumption of zero interaction. However, the tangential direction
can only be studied for some known distribution of normal forces. This is because
tangential forces can only be exerted with the leg in contact with the ground, which
implies non-zero normal force.
Normal Forces
Because a vertical nullspace exists for robots with ≥ 4 legs the number of force
combinations for static equilibrium is by definition infinite. However, an approximate
analysis can be done by looking at each leg independently as follows: at timestep t,
given a nominal value of fz , a sensitivity SFz ,max for the critical joint in the leg, and
its corresponding torque limit τmax , how much additional normal force ∆fz∗ is needed
to drive the critical joint to saturation? This is discussed in §5.3.1.
Tangential Forces
Looking now at variations of tangential forces only, the question to answer is: at
timestep t, given a known value of fz , the sensitivies Si,x , Si,y , Si,z for all the joints
in the leg, and the torque limits τmax,i , how much additional tangential force (∆fx∗ or
∆fy∗ ) is needed to drive the critical joint to saturation? The analysis is carried out
one direction at a time. This is discussed in §5.3.4.
T
Ji,z fz,i + τg,i = |τmax,i | (5.5)
This equation can be satisfied with a positive or negative value of fz,i . The two
values of critical force can be obtained by solving each of the following equations
separately for fz,i :
T
Ji,z fz,i + τg,i = τmax,i (5.6)
T
Ji,z fz,i + τg,i = −τmax,i (5.7)
It follows that:
∗ τmax,i − τg,i
fz,i,1 = T
(5.8)
Ji,z
∗ −τmax,i − τg,i
fz,i,2 = T
(5.9)
Ji,z
Given that the robot is unable to pull at the feet, only negative reaction forces
can appear (expressed in {R}). Therefore at each time step the critical force for joint
i will be the negative one, obtainable as the smallest of the two solutions:
∗ ∗ ∗
fz,i = min(fz,i,1 , fz,i,2 ) (5.10)
For a leg ℓ with n joints, the critical normal force is given by the minimum over
2 T
In these equations, the Jacobian component Ji,z is also the sensitivity Si,z , as explained at the
beginning of this chapter.
CHAPTER 5. FORCE-TORQUE SENSITIVITY ANALYSIS 100
all joints:
∗ ∗
fz,ℓ = min(fz,i ) i = 1...n (5.11)
∗
Finally, the tolerable variation ∆fz,ℓ can be calculated as the difference between
the critical force and the expected one:
∗ ∗
∆fz,ℓ = fz,ℓ − fz,ℓ (5.12)
A value of ∆fz∗ < 0 would arise if a leg already contains a saturated joint.
3
The special shorthand used in these plots to indicate the type of move that each data point
represents was defined in Table 4.1.
CHAPTER 5. FORCE-TORQUE SENSITIVITY ANALYSIS 101
6000 6000
f*z (Critical) f*z (Critical)
fz (Expected) fz (Expected)
5000 5000
4000 4000
Force [N], Leg1
2000 2000
1000 1000
∅ ↔ ↑6 → ↓ ↔ ↑5 → ↓ ↔ ↑4 → ↓ ↔ ↑1 → ↓ ↔ ↑2 → ↓ ↔ ↑3 → ↓ ↔ ∅ ↔ ↑6 → ↓ ↔ ↑5 → ↓ ↔ ↑4 → ↓ ↔ ↑1 → ↓ ↔ ↑2 → ↓ ↔ ↑3 → ↓ ↔
0 0
0 5 10 15 20 25 0 5 10 15 20 25
Time step Time step
6000 6000
f*z (Critical) f*z (Critical)
fz (Expected) fz (Expected)
5000 5000
4000 4000
Force [N], Leg3
2000 2000
1000 1000
∅ ↔ ↑6 → ↓ ↔ ↑5 → ↓ ↔ ↑4 → ↓ ↔ ↑1 → ↓ ↔ ↑2 → ↓ ↔ ↑3 → ↓ ↔ ∅ ↔ ↑6 → ↓ ↔ ↑5 → ↓ ↔ ↑4 → ↓ ↔ ↑1 → ↓ ↔ ↑2 → ↓ ↔ ↑3 → ↓ ↔
0 0
0 5 10 15 20 25 0 5 10 15 20 25
Time step Time step
6000 6000
f* (Critical) f* (Critical)
z z
fz (Expected) fz (Expected)
5000 5000
4000 4000
Force [N], Leg5
3000 3000
2000 2000
1000 1000
∅ ↔ ↑6 → ↓ ↔ ↑5 → ↓ ↔ ↑4 → ↓ ↔ ↑1 → ↓ ↔ ↑2 → ↓ ↔ ↑3 → ↓ ↔ ∅ ↔ ↑6 → ↓ ↔ ↑5 → ↓ ↔ ↑4 → ↓ ↔ ↑1 → ↓ ↔ ↑2 → ↓ ↔ ↑3 → ↓ ↔
0 0
0 5 10 15 20 25 0 5 10 15 20 25
Time step Time step
Figure 5.4: Critical forces for the sway gait. The plots show the value of vertical force
that would result in saturation (fz∗ ).
From these curves it is possible to determine the critical leg at each time step of
the gait. This will be the leg with smallest tolerable ∆fz∗ . The critical values for the
robot are summarized in Figure 5.5 for the first gait cycle. These are in the range of
430N to 2800N. The minimum tolerable increase in force (430N in this case) is the
worst-case scenario during the execution of the optimized gait. Hence it can be used
to define the maximum bump size that the terrain should have, as discussed in the
following section.
CHAPTER 5. FORCE-TORQUE SENSITIVITY ANALYSIS 102
3000
2500
Tolerable Force Increase [N], Robot
2000
1500
1000
500
∅ ↔ ↑6 → ↓ ↔ ↑5 → ↓ ↔ ↑4 → ↓ ↔ ↑1 → ↓ ↔ ↑2 → ↓ ↔ ↑3 → ↓ ↔
0
0 5 10 15 20 25
Time step
Figure 5.5: Tolerable increase in normal force during sway gait execution.
force will deviate from the nominal value. A bump will cause a higher than expected
force because the robot starts pushing the ground early. A depression will have the
opposite effect.
The actual interaction with a real terrain is difficult to predict because various
legs may be stepping on bumps or depressions simultaneously, depending on the local
ground characteristics, starting pose and gait. Here a simplified analysis is made,
assuming that only one leg is affected by a bump at any given time. Specifically, the
critical leg at each gait event gives the upper bound of acceptable force deviations
(Figure 5.5). To translate these force deviations into bump sizes, a linear force-
displacement relation is assumed since the contacts have been modeled with linear
springs. A bump height hb will cause an equivalent additional deformation of the
spring. Therefore, the critical bump height h∗b is the one that introduces a force equal
to the tolerable deviation ∆fz∗ :
∆fz∗
h∗b = (5.13)
kz
Due to the force-displacement relation, h∗b is inversely proportional to the spring
stiffness kz . This makes sense because a very rigid contact point will experience large
force variations with small displacements. For ATHLETE kz depends on the inflation
pressure and terrain stiffness. Three spring constants are considered here, in the range
kgf
of 3 − 5 mm where the robot is normally operated. Figure 5.6 shows the scaling of the
forces from Figure 5.5 by these three spring constants.
The tolerable bump ranges in size from 10-15mm. This is only realistic on very
benign terrain like the one encountered on the Mars Yard at JPL. The experiments
that will be presented in Chapter 7, conducted on such a terrain, were successful at
preventing saturation. A lesson apparent from inspecting Figure 5.6 is that lower tire
inflation pressures are more likely to succeed because larger bumps can be tolerated.
100
k = 3.0 kgf/mm
z
90 k = 4.0 kgf/mm
z
k = 5.0 kgf/mm
z
80
Bump Size for Saturation [mm]
70
60
50
40
30
20
10
∅ ↔ ↑6 → ↓ ↔ ↑5 → ↓ ↔ ↑4 → ↓ ↔ ↑1 → ↓ ↔ ↑2 → ↓ ↔ ↑3 → ↓ ↔
0
0 5 10 15 20 25
Time step
tangential force can only be applied with non-zero normal force, the equation that
describes joint saturation is:
T T
Ji,x fx,i + Ji,z fz,i + τg,i = |τmax,i | (5.14)
Assuming a known normal force given for example by the zero-interaction solution,
this equation can be solved for fx,i to find its critical value. As with the normal force,
two solutions exist depending on the direction of the force:
T
∗
τmax,i − τg,i − Ji,z fz,i
fx,i,1 = T
(5.15)
Ji,x
T
∗
−τmax,i − τg,i − Ji,z fz,i
fx,i,2 = T
(5.16)
Ji,x
Unlike before, neither of these solutions is invalidated by the physics of the problem
CHAPTER 5. FORCE-TORQUE SENSITIVITY ANALYSIS 105
– tangential forces may be pointing either way. Therefore whichever direction has the
smallest magnitude yields the critical force:
∗ ∗
f ∗ if fx,i,1 < fx,i,2
∗ x,i,1
fx,i = (5.17)
f ∗ otherwise
x,i,2
Once again for a leg ℓ with n joints, the critical force is given by the minimum
over all joints:
∗ ∗
fx,ℓ = min(fx,i ) i = 1...n (5.18)
Assuming the robot is on horizontal ground, the tangential components of the zero-
interaction force distribution are all equal to zero. Therefore the tolerable tangential
force deviation is simply:
∗ ∗
∆fx,ℓ = fx,ℓ (5.19)
1500 1500
→ ↔ ↓
↓
1000 ↑3 → 1000
↔ ↓ ↔
Force [N], Leg1
↑2 →
0 0
0 5 10 15 20 25 0 5 10 15 20 25
Time step Time step
1500 1500
→
1000 1000 ↑1
↓ → →
Force [N], Leg3
↑2 →
0 0
0 5 10 15 20 25 0 5 10 15 20 25
Time step Time step
1500 1500
→
→
1000 ↓ ↔ ↑1 1000 ↑3
↔ ↓ ↑2 →
→ ↓
↓
Force [N], Leg5
↔
→ ↓ ↓
↑5 ↓
↔ ↑3 → ↓ ↑6
↔ → ↔
↔
↓ ↔ ↔ ↓ ↔ ↑4 → ↓ ↔ ↓
↔ ↔ ↑2
∅ ↔ ∅
→ ↑5
↑4 ↑1
↑6 → → →
500 500
0 0
0 5 10 15 20 25 0 5 10 15 20 25
Time step Time step
Figure 5.7: Critical tangential forces for the sway gait. The plots show the value of
tangential force that would result in saturation (fx∗ ).
For the complete robot the tolerable tangential force is determined by the mini-
mum over all legs at each time step. The variation of this critical force is shown in
Figure 5.8. The magnitude of the tangential critical force oscillates in the vicinity of
550N, but drops to the previously mentioned critical value when leg 2 is lifted. As
expected, the valleys of this plot take place during leg lifts due to the increased load-
ing of the legs that remain on the ground. The following subsections discuss how the
critical force translates into acceptable contact point offsets and local terrain slopes.
CHAPTER 5. FORCE-TORQUE SENSITIVITY ANALYSIS 107
1000
900
800
Tolerable Tangential Force [N], Robot
700
↓ ↓ ↓ ↔
∅ ↔
600 ↔ ↓ ↔
↔ ↓ ↓ ↔
↔
500 ↑5
↑6 → → → ↑1
↑4 →
400 →
↑3
300
↑2 →
200
100
0
0 5 10 15 20 25
Time step
is, if the top-most layer of the ground consists of loose soil then a certain amount
of slippage will occur as the foot makes initial contact with the ground and begins
pushing the body back up. Once the normal force builds up sufficiently to prevent
violation of the friction cone no more slippage will occur and the contact point is
fixed.
Figure 5.9 shows the lateral offset that can be tolerated by the ATHLETE robot
during the sway gait. For the operational inflation pressures of ATHLETE this ranges
between 7.5-10mm which is very small compared to the size of the robot. The success-
ful experiments conducted with the robot at JPL demonstrate that this is achievable
on benign terrain such as the one found in the Mars Yard, or wherever the deformable
surface layer is likely to help.
30
kx = 3.0 kgf/mm
kx = 4.0 kgf/mm
kx = 5.0 kgf/mm
25
Foot Offset for Saturation [mm]
20
15
∅ ↓ ↔ ↓ ↓ ↔
↔ ↓ ↔
↔ ↓ ↓ ↔
↔
10 ↑5
↑6 → → → ↑1
↑4 →
→
↑3
5 ↑2 →
0
0 5 10 15 20 25
Time step
25
↓ ↔
∅ ↔
↔ ↓
↔ ↓
↔ ↓ ↓
20 ↔
↓ ↔
Slope [deg]
15
↑6 → ↑5 → ↑1
10 →
→ ↑4
→
↑3
↑2 →
5
0
0 5 10 15 20 25
Time step
5.4 Conclusion
The results presented in the previous two sub-sections demonstrate the important
role of tangential forces in joint saturation. As found in §5.2 the largest gain for
saturation is in the tangential directions. Subsequent analysis showed that this limits
CHAPTER 5. FORCE-TORQUE SENSITIVITY ANALYSIS 110
the robot to walk on very benign terrain, with bumps ≤ 10 − 15mm, footfall position
offsets ≤ 7.5 − 10mm and local slope variations of ≤ 7◦ .
The analysis presented in this chapter suggests that a great benefit can be gained
from closed-loop control to achieve the desired values of contact forces accurately. The
full benefit of the zero-interaction sway gait presented in Chapter 4 is only realizable if
tangential forces are zero as modeled. Furthermore, if force control is available to zero
out tangential forces, then any other desired value can also be achieved. Therefore the
nullspace of tangential forces can be exploited to obtain larger saturation margins.
The potential benefits of active force control and the nullspace are explored in greater
detail in the following chapter.
Chapter 6
As explained in Chapter 2 there are multiple combinations of contact forces that satisfy
the static balance constraints. These are collectively known as a nullspace, and can be
exploited to reduce proximity to saturation further. This chapter describes a technique
to determine the optimal combination of contact forces for a given robot pose, and
provides simulation results for different scenarios that make use of this optimization.
The chapter is organized as follows:
111
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 112
The rest of this chapter will focus on the first of these problems: determination
of the best possible distribution of forces. With that in mind, the calculation of the
best force distribution can be posed as an optimization problem whose cost function
consists of the ∞-norm of torque ratios as used in Chapter 4, plus additional terms
to reduce the effort1 . Since the resulting cost function and constraints turn out to
be linear, the optimization is a linear program. To gain an insight into the potential
benefit of exploiting the nullspace, the case of a single leg will be examined first,
followed by the application to the complete robot.
In this expression, τi refers to the total torque. If the robot has approximately
massless legs, this is simply the torque needed to balance external forces. Otherwise,
gravity torques must be added as well.
Note that the above expression is a piecewise-linear function of the contact forces,
which are the design variables. For any given joint, piecewise linearity is a result of
the absolute value, so the cost function is essentially “V”-shaped. Since the objective
is to prevent joint saturation, the cost function to be minimized is:
J = kτ% ,1 , . . . , τ% ,n k∞ (6.2)
This is also a piecewise linear function, as will be shown in the next two sub-
sections. As a reminder, Figure 2.5 shows the location and orientation of the {Li }
reference frames.
1
P Here effort is defined as the sum of the magnitudes of contact forces –
i=1..nc (|fx,i | + |fy,i | + |fz,i |).
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 113
1.8
1.6
1.4
1.2
%,max
1
τ
0.8
0.6
0.4
0.2
0
−1500 −1000 −500 0 500 1000 1500
F (N)
x
Figure 6.1: Maximum torque ratio vs fx , given fy = 0N, fz = 1470N. The minimum is
at fx = 22.04N.
fx the critical joint is the knee pitch (KP). At the optimal value of fx the torque ratios
of the KP and HP joints have been equalized. A further increase of fx in the positive
direction would make HP the new critical joint as KP approaches zero torque. The
optimal tangential force is very small compared to fz . The exact values depend on
the specific configuration of the robot, but the result is consistent with the sensitivity
analysis from Chapter 5, which demonstrated that large gains exist in the tangential
direction.
-30 0.426 KP
0 0.391 KP
1470
∗
22 0.365 KP/HP
30 0.372 HP
0.8
0.7
0.6
0.5
%,max
0.4
τ
0.3
0.2
0.1
0
−1500 −1000 −500 0 500 1000 1500
F (N)
y
Figure 6.2: Maximum torque ratio vs fy , given fx = 22.04N, fz = 1470N. The curve is
flat in the range of of −600N ≤ fy ≤ 600N, meaning that the maximum torque ratio is
not affected by fy in this region.
cost function with a weighted penalty and associated constraints designed to reduce
effort, as explained in §6.3.1.
Minimize:
J = t; t: scalar (6.3)
The first set of constraints is given by the torque ratios, which are to be minimized:
t ≤ 1 (6.5)
τ% ,1 ≤ t
..
. (6.6)
τ% ,n ≤ t
Note the similarities with the sway optimization, except that the design vector
now consists of the contact forces at the feet. Assuming that the robot is in static
equilibrium (or moves slowly enough to analyze its motion as quasi-static), the next
set of constraints consists of the force and moment balance of the robot. These
equations were previously derived in §2.4.2, and are summarized here for convenience.
" #
−f~g
Γf~ = (2.28)
0
Where Γ is the matrix resulting from stacking the Φ and C matrices:
" #
I ··· I
Γ= (2.29)
C1 · · · CNc
6×3Nc
The final set of constraints is given by the necessary satisfaction of contact friction
cones. These constraints actually serve a dual purpose: first, they guarantee that
squeezing forces do not cause a foot to slip. Second, without these constraints it
would be possible for the optimizer to converge to a force distribution where one or
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 117
q
fx2 + fy2 ≤ |µs,i fz | (6.7)
µs,i
µc,i = √ (6.8)
2
Y
fn
µs
µc X
ft
It is now possible to write separate constraints for fx and fy using the conservative
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 118
The vertical force in this case is known to be fz ≤ 0 in the {R} frame, because it
is not possible for this particular robot to grasp the ground and pull. Therefore, the
above can be broken down into four constraints per foot in contact to eliminate the
absolute value operator:
Where
For rubber on concrete, µs is between 0.8-1.0. This value is used for the simulations
in this chapter, since it is adequate for initial indoor experiments with ATHLETE.
X X X
Ja = t + ε x fx,i + εy fy,i + εz fz,i
i i i
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 119
However, because fx and fy can be positive or negative, this would not always
have the desired effect. The real objective is to penalize the sum of absolute values
of forces. A mechanism similar to the one used for dealing with torque ratios can be
applied. For this, auxiliary design variables tx,i , ty,i and tz,i are added for each of the
nc feet in contact. The new cost function is the following:
X X X
Ja = t + ε x tx,i + εy ty,i + εz tz,i (6.15)
i i i
X = {t, fx,1 , fy,1 , fz,1 , . . . , fx,n , fy,n , fz,n , tx,1 , ty,1 , tz,1 , . . . , tx,n , ty,n , tz,n } (6.16)
|fx,i | ≤ tx,i
|fy,i | ≤ ty,i
|fz,i | ≤ tz,i
These are broken down into six constraints per contact point to eliminate absolute
values:
The number of constraints has therefore increased by 6nc for nc feet in contact
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 120
with the ground. The additional constraints cause a small increase in computation
time, but have the benefit of maximizing distance to saturation with the smallest
possible magnitude of forces.
Finally, the ε factors should be selected such that the scaled summations are much
smaller than t, in order to avoid affecting the optimal solution much.
Minimize:
X X X
Ja = t + ε x tx,i + εy ty,i + εz tz,i
i i i
X = {t, fx,1 , fy,1 , fz,1 , . . . , fx,n , fy,n , fz,n , tx,1 , ty,1 , tz,1 , . . . , tx,n , ty,n , tz,n }
s.t.:
t ≤ 1 Torque Constraints
τ% ,1 ≤ t
..
.
τ% ,n ≤ t
" #
−f~g
Γf~ = Balance Constraints
0
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 121
6.3.3 LP Utilization
The optimal force distribution for a given robot pose can be found by means of the LP
optimization described above. There is more than one way to use this optimization
in the context of walking gaits. The options are:
Additionally, since the contact force distribution has tangential and normal nullspace
components, these can be exploited one at a time or simultaneously. The following
cases are simulated and discussed below:
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 122
1.2
Sway
F
xy
0.8
τ%,max
→ →
0.6 → →
→ ↑2 → ↑2 →
→ ↑1 → ↑3 ↑6
↑1 ↑5 ↑1
↑6 → ↑5 →
↑2
↑6 ↑5 → ↑4 ↑3 → ↑4 ↑3
↑4
→ → →
0.4
→ → ↔
↓ ↓ ↓↔ ↓↔ ↓ ↓ ↓ ↓↔ ↓ ↓ ↓ ↓ ↓
↔ ↔ ↔ ↔
↔ ↓ ↓↔ ↓↔ ↔ ↔ ↔ ↔
↓ ↔
↓↔
0.2∅∅
0
10 20 30 40 50 60 70
Gait Time Step
(e.g. for leg 1, the peaks appear when legs 2 or 6 are lifted). That is, during the
force redistribution that occurs after a foot is picked up, the adjacent legs present the
highest forces, and the diametrically opposed leg experiences the lowest force.
The tangential forces remain below 1000N, approximately 2.5 times smaller than
the normal force (in fact in most cases they are below 500N). The lower magnitude
of tangential forces is expected for two reasons: first, since the robot is on horizontal
ground there is no tangential component of the robot’s weight. Second, the tangen-
tial directions see a larger gain (sensitivity) so smaller forces are required to impact
the torque ratios. From the polar plots it can also be seen that in many cases the
applied tangential force has only one component (i.e. only fx or only fy ). These
would correspond to situations where the leg’s configuration is such that one of the
components has no effect on the objective function of the LP. However this is not
expected to happen all the time due to the changing geometry of the legs.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 124
F
y
90
3000 Fx Fy ↑2 →Fz ↑2 →
↑6 → ↑2 → ↑6 → ↑6 → ↑6 1000N
Force(N), Leg 1
750
2000 → ↓↔ → ↓↔
↓↔ ↓↔↑5 ↓↔ ↓↔ ↓↔
↓↔↑3 → ↓↔↑5 ↓↔ ↓↔ ↓↔
↓↔↑3 →
500
∅ ↓↔ ↓↔
↓↔↑5 → ↓↔ →
↑3 ↓
↔
↑4 → ↑4 → ↑4 → 250
1000 0 F
180 0 x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
↑1→ ↑3 → ↑1 → ↑3 → ↑1 → ↑3 → 1000N
Force(N), Leg 2
750
2000 500
↓↔ ↓↔↑4→
∅↑6→ ↓↔ ↓↔ ↓↔ ↓↔↑6→ ↓↔
↓↔ ↓↔↑4→ ↓↔ ↓↔ ↓↔↑6→ ↓↔
↓↔ ↓↔↑4→ ↓↔ ↓↔ ↓↔↑6 250
1000 ↑5→ ↑5→ ↑5→ 0 F
180 0 x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
↑4 → ↑2 → ↑4 → ↑2 → ↑4 → ↑2 → 1000N
Force(N), Leg 3
750
2000 500
∅ ↓↔↑5 →
↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔↑5 →
↓↔ ↓↔↑1 ↓↔ ↓↔ ↓↔ ↓↔↑5 →
↓↔ ↓↔↑1 ↓↔ ↓↔ ↓↔ 250
↑1 → ↑6 → → ↑6 → → ↑6
1000 ↑6→ 180
0
0 Fx
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Fy
90
3000 F F F
↑3 → x y z↑3 ↑3 →
↑5 → → 1000N
Force(N), Leg 4
↑5 → ↑5 → 750
2000 500
↓↔
∅↑6 → ↓↔ ↓↔
↓↔ ↓↔↑2 → ↓↔↑6 ↓↔ ↓↔ ↓↔
↓↔ ↓↔↑2 → ↓↔ ↓↔ ↓↔ ↓↔
↓↔ ↓↔↑2 → ↓↔ 250
→ ↑6 → ↑6
1000 ↑1 → ↑1 → ↑1 → 180
0
0 F
x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
↑6→ ↑4 → ↑6 → ↑6 → ↑6 1000N
Force(N), Leg 5
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Fy
90
Fx Fy Fz
3000
↑5 → ↑1 → ↑1 → ↑5 → ↑1 →
↑5 → 1000N
Force(N), Leg 6
750
2000
↓↔ ↓↔↑2 → → ↓↔↑2 →
500
∅ ↓↔ ↓↔↑4 → ↓↔ ↓↔ ↓↔ ↓↔
↓↔↑4 → ↓↔↑2 ↓↔ ↓↔ ↓↔ ↓↔
↓↔↑4 → ↓↔ ↓↔ 250
↑3 → ↑3 → ↑3 → 0
1000 180 0 F
x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Figure 6.5: Force variations for Fxy nullspace applied to the reference gait -{Li }
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 125
1.2
Fxy
Fxyz
0.8
τ%,max
0.6
→ → → → →
↑3 ↑2 → ↑2 →
→ ↑1 ↑1 ↑1
↑2 → ↑3 ↑6 ↑5 → ↑3
0.4 ↑6 → ↑5 → ↑6 ↑5 → ↑4 ↑4
↑4 → →
→
→ →
↓ ↓ ↓ ↓↔ ↓ ↓ ↓ ↓ ↓↔ ↓ ↓ ↓ ↓
↓↔ ↔ ↔ ↔ ↔ ↔ ↔
↓↔ ↓↔ ↓↔ ↔ ↔ ↔ ↔
↓↔
0.2∅∅
0
10 20 30 40 50 60 70
Gait Time Step
Figure 6.7 shows the values of normal and tangential forces for all 6 legs of the
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 126
robot. All three force components have now been found by the LP optimization. A
very interesting behavior emerges when inspecting these plots: each leg now has two
fz valleys per gait cycle. One of these naturally occurs as before when the leg’s turn
in the step sequence arrives. The additional valley happens when the diametrically
opposed leg takes a step, and in most cases corresponds to fz = 0, which means
that the leg is picked up twice per gait cycle (the exceptions are legs 1 and 2 which
drop to values of 176N and 531N respectively). This means that for the purpose
of preventing saturation it is sometimes better to pick up two legs simultaneously
than just one. For this case the pick up sequence suggested by the optimization is:
6/3 → 5 → 4 → 1/4 → 2/5 → 3/6.
Note that since the gait planner has been setup to execute only one step at a
time, this does not mean that e.g. legs 6 and 3 step simultaneously. Instead, it says
that it is convenient to lift leg 3 while leg 6 takes a step, and then plant it back at
its original location. The key insight, however, is that gaits that step with multiple
legs simultaneously can be desirable for saturation reasons in addition to their known
benefit of increasing locomotion speed. This means that different reference gaits ought
to be considered if the global optimum is desired for the specific application. In other
words an additional optimization layer to design the reference gait would need to be
added, the cost of which would be provided by the LP or the LP+sway combination.
The lifting sequence found by the optimizer in this case is very close to a 6/3 →
5/2 → 4/1 gait, which executes steps with two diametrically opposed legs simultane-
ously. It is reasonable to assume that such a gait would constitute a better reference
gait than the current reverse wave gait from the standpoint of saturation. Investiga-
tion of whether this is the case is suggested as future work.
Finally, regarding the direction of the net tangential force, examination of the
polar plots shows a larger spread as compared to the case of fx,y null space, where
many forces were directed along the X or Y axis. However no significant difference
can be observed in their magnitude, which also remains below 1000N in this case.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 127
F
y
90
3000 Fx Fy F
↑2→ z ↑2→ 1000N
↑2 → → ↑6 →
Force(N), Leg 1
↑6→ ↑5 → ↑6 → ↑5 → → ↑6
2000 ↑3 → ↑3 ↑5 → ↑3 750
↓↔ 500
∅ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↔ ↓↔ ↓↔
↓↔ ↓ 250
1000 0 F
180 0 x
→ ↑4 →
↑4 ↑1→ ↑4 → ↑1→ ↑1→
0
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
↑1 → ↑3 → ↑1 → → 1000N
↑3 → ↑6→ ↑4 → ↑1 ↑3 → ↑6
Force(N), Leg 2
↑6→ ↑4 → ↑6 → ↑4 → 750
2000
∅ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ 500
250
1000 0
↑5 → ↑5 →
180 0 F
x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
1000N
Force(N), Leg 3
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Fy
90
3000 F F F
x y z
↑3 → ↑3 → ↑3 → 1000N
Force(N), Leg 4
↑6 → ↑5 →
2000 ↑2 ↑6 → ↑5 → ↑2 ↑6 ↑5 → ↑2 ↑6
750
→ → 500
∅ ↓↔ ↓ ↓↔ ↓↔ → ↓↔ ↓ ↓
↓ ↓ ↓ ↓↔ → ↓ ↓ ↓↔
↔ ↔ ↔ ↓ ↔ ↔ ↓ ↓↔ ↔
250
↔ ↔ ↔ ↓
1000 ↔ ↔ 180
0
0 F
x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
↑6 → ↑6 → ↑6 1000N
Force(N), Leg 5
↑6→ ↑4→ ↑1 → ↑4 → ↑4 →
2000 ↑3 → ↑1→ ↑3→ ↑1 → ↑3→ 750
↓↔ ↓↔ ↔ ↓↔ ↓↔ ↓↔ ↓↔
500
∅ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↔ ↓
↔ ↓ ↓↔ ↓↔ ↓↔ 250
↓
1000 0 F
180 0 x
→
↑5→ ↑2 ↑5→ ↑2→ ↑5→ ↑2→
0
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Fy
90
3000 Fx Fy Fz
↑1 → ↑5 → ↑1 → → ↑5 → ↑1 → →
1000N
Force(N), Leg 6
↑5 → ↑4→ ↑2 → ↑2 ↑2 750
↑4 → →
2000
↔ ↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔↑4 ↓↔ 500
∅ ↓↔ ↓ ↓ ↓↔ ↓↔ ↓
↔ ↓↔ ↓↔ ↓↔ ↓↔ 250
1000 0 F
180 0 x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Figure 6.7: Force variations for Fxyz null space applied to the reference gait.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 128
1.2
F
xyz
Sway+Fxy
0.8
τ%,max
0.6
↑3 →
↑2 ↑4 ↑3 → ↑5 ↑4 → ↑3 →
→ → ↑2 → ↑6 ↑2 →
↑4 ↑1 → ↑1 → →
0.4 → ↑6 ↑5 → → ↑1
↑6 → ↑5 → → →
↓ ↓↔ ↓ ↔ ↓ ↓
↓ ↔ ↔ ↓ ↔ ↓
↔ ↓ ↓↔ ↓↔ ↔ ↓↔
↔ ↓ ↓↔ ↓↔ ↔ ↔
↓ ↔ ↓
↓↔
0.2∅∅
0
10 20 30 40 50 60 70
Gait Time Step
The resulting motion of the chassis is shown in Figure 6.9 below. Only the first
3 gait cycles are shown here, since the pattern is regular after the 3rd cycle. As
compared to the gait with only sway described in Chapter 4 it can be observed that
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 129
the side-to-side amplitude of sway is smaller in the LP case once the robot settles
into a regular gait.
Figure 6.9: Body path during the initial three cycles of the combined sway+tangential
LP gait.
Figure 6.10 shows the variation of forces for all 6 legs of the robot. Similarly to
the case of tangential LP without sway, the net tangential forces are directed along
the X or Y direction exclusively a large percentage of the time. The magnitudes of
tangential forces stay within 750N, with only a few cases between 750-1000N. It is
interesting to note that the peak value of tangential forces coincides in time with the
peak value of torque ratio. With the current strategy this corresponds to the 2nd step
of the sequence at steady state (i.e. leg 5).
The normal force for each leg presents 2 major peaks per gait cycle as with the
previous cases that do not use the vertical null space. These peaks occur when the
adjacent legs are picked up.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 130
F
y
90
3000 Fx Fy Fz
↑2 ↑6 → 1000N
→ ↑2 → ↑2 →
Force(N), Leg 1
↑6→ ↑6 → 750
2000 →
→↔ ↓
∅↔ ↓↔↑5 ↓ ↔ ↔ ↓↔ ↑5 →
↓↔ ↓↔ ↔ ↓↔ ↓↔↑5 ↓↔ ↓↔ ↔ ↓↔ 500
↑4 →↔ ↓ ↓ ↑3 → ↓↔ ↓↔ ↓ ↑3 → ↓↔ ↓ ↑3 → 250
↑4 → ↑4 → 0
1000 180 0 F
x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 ↑3 → Fx Fy Fz
↑1 → ↑3 → ↑3 → 1000N
↑1 →
Force(N), Leg 2
↑1 → 750
↓
↓↔ ↓↔↑4→
2000
↓↔ ↓↔↑4→
∅↔↑6→
↓ ↔ ↓↔↑6→ ↓↔ ↔ ↓↔↑6 →
↓↔ ↔ ↓ ↔ ↓↔ 500
↑5→ ↔ ↓↔ ↓ ↑5→ ↓↔ ↓ → ↑4→↔ ↓↔ ↓ 250
↑5 0
1000 180 0 F
x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Fy
90
3000 Fx F Fz ↑4 →
↑2 ↑4 → y 1000N
↑4 → ↑2 → ↑2 →
Force(N), Leg 3
→ 750
2000 ↔ ↓ ↓↔ ↓↔↑5 →
↓ ↓↔ ↓ 500
↓↔ ↓↔↑1 ↓
↔↑5 → ↓↔↑1 → ↓ ↓ ↓↔↑1 → ↓
∅
↑6→ →↔ ↓↔ ↑6 → ↔ ↓↔ ↔ ↓↔↑5→↔ ↔ ↓↔ ↔ 250
↑6 → 0
1000 180 0 Fx
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 ↑3 → Fx Fy Fz ↑3 ↑3 →
→ 1000N
Force(N), Leg 4
↑5 → ↑5 → ↑5 750
2000 →
↓
∅↔↑6→ ↔ ↓ ↓ ↓
↓↔↑6 → ↓↔↑1 ↓↔↑2 →
↓ ↓ ↓↔ ↓↔↑2 →
↓ ↓
500
↔ ↓↔ ↓ ↑1 ↔↑2 →↔ ↔ ↓↔
→
↔ ↓↔
↔↑6 → ↓↔ ↑1 → ↔ ↔ 250
→ 0
1000 180 0 F
x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
↑4→ ↑6→ ↑4 → 1000N
Force(N), Leg 5
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Fy
90
3000 Fx Fy Fz
↑1 → ↑5 → 1000N
↑1 →
Force(N), Leg 6
↑5 → → ↑1 →
↑5 750
2000 → →
↓↔↑2 ↓↔
↔ ↓↔ ↔ ↓↔ ↓↔↑4 → ↔ → ↔ 500
∅
↔ ↓
↔ ↓↔↑4 →
↓↔
↓↔ ↓↔ ↓ ↑4 → ↓↔↑2 ↓↔ ↓ ↓↔ ↓ ↑2 ↓↔ ↓ 250
↑3 → ↑3 →
1000 ↑3 → 180
0
0 Fx
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Figure 6.10: Force variations for combined sway and Fxy null space.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 131
1.2
Sway+Fxy
Sway+Fxyz
0.8
τ%,max
0.6
↑3 →
↑2 → ↑2 → ↑3 ↑2 → ↑3
↑4 → ↑1 → ↑5 ↑4 → →
0.4 ↑1
↑6 → ↑4 ↑1 → → ↑6 → →
↑5 → → ↑6 → ↑5 → →
↓ ↓ ↓↔ ↓ ↓↔
↓↔ ↓↔ ↓↔ ↓↔ ↔ ↔
↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↔ ↓↔ ↓↔ ↓
↓↔
0.2∅∅
0
10 20 30 40 50 60 70
Gait Time Step
The resulting motion of the chassis is shown in Figure 6.12 below. Other than the
decrease in sway amplitude it is also worth mentioning the contralateral oscillation,
with the body moving to the right of the center line when the legs on the left hand
side are stepping, and vice versa. The same behavior is observed in every case where
sway is used.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 132
Figure 6.12: Body path during the initial three cycles of the combined sway+full LP
gait.
The variation of contact forces is shown in Figures 6.13. A behavior similar to the
case without sway is observed: the optimization reveals that it is often best to pick
up two radially opposed legs simultaneously. The pick up sequence that emerges in
this case is: 6 → 5 → 4/1 → 1/4 → 2/5 → 3/6. This is again very similar to the
6/3 → 5/2 → 4/1 gait, suggesting that the latter might constitute a better reference
gait to prevent saturation.
Regarding the direction of the net tangential force, a significant scatter is present
for some legs (e.g. legs 2 and 6), while others show some clustering on the fx , fy axis.
Leg 3 even shows a number of forces directed roughly along the 150◦ direction. In all,
the behavior is different for each of the 6 legs. Except in a case where all legs are in
the same configuration, there is no reason to expect symmetric forces between, say,
radially opposed pairs. Since each leg will generally be in a different configuration,
the balance equations might be satisfied with the force of one leg counteracted by two
opposite legs, for example.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 133
F
y
90
3000 Fx Fy Fz
↑2 → ↑2 → ↑2 → 1000N
Force(N), Leg 1
↑6→ →
↑5→ ↑6 → ↑5 → → ↑6 ↑5 → →
750
2000
∅↔ ↓↔ ↓↔ ↓ ↔ ↓↔↑3 →↔ ↓↔ ↓ ↔ ↓↔↑3 ↓↔ ↓↔ ↓ ↓↔ ↓↔↑3 ↓↔ 500
↔ ↓ ↔ ↓↔ ↔ 250
↓ ↓ ↓↔ 0
1000 → 180 0 F
x
→
↑4 ↑1→ ↑4 → ↑1→ ↑4 ↑1→
0
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
↑3 → 1000N
↑3 → ↑4 → ↑1→ ↑3 →
Force(N), Leg 2
↑6→ ↑4 → ↑1 → ↑4 → ↑1 → →
↑6 → ↑6 750
2000 ↓↔ ↓↔
↓↔ ↓ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔ ↓↔
↔ ↓↔ 500
∅↔ ↓↔ ↓ ↓↔ ↓↔
↔ ↓ ↔
→
250
1000 ↑5 → → 180
0
0 F
↑5 ↑5 x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Fy
90
3000 Fx Fy Fz
1000N
↑4 → ↑1
Force(N), Leg 3
↑4 → ↑4 → ↑1→ → ↑2 →
↑2 → ↑5 ↑2 → ↑5 750
2000 ↑5 → ↓↔ ↓↔ ↓↔
∅↔ ↓↔ → ↓↔ ↓↔↑1 ↓ ↔ ↓↔ ↓↔ ↓ ↔ ↓↔ → ↔
500
→ ↓↔ ↓↔ ↓
↔ ↓↔ ↓ ↓ ↓ 250
↔ ↑6 ↔
0
1000 ↑6 → → 180 0 Fx
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
↑3 → ↑3 → ↑3 → 1000N
Force(N), Leg 4
↑6 → ↑5→ ↑2
2000 → ↑6 → ↑5 → ↑2 ↑5 → ↑2 750
↓↔ ↓↔ ↓ →↔ ↓↔↑6 ↓ →↔ ↓↔ 500
∅↔ ↓↔ ↓ ↔ ↓↔ ↓↔ ↓↔ ↓ ↓ ↓ ↓↔ ↓
↔ ↓↔ →↔ ↔ ↔ 250
1000 ↓ ↑1→ ↔ 0 F
180 0 x
−1000
10 20 30 40 50 60 70
Gait Time Step 270
F
y
90
3000 Fx Fy Fz
↑3 → → ↑4 → ↑3 →
1000N
Force(N), Leg 5
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Fy
90
3000 Fx Fy Fz
1000N
→ ↑1 → ↑2 → ↑1→ ↑2 →
Force(N), Leg 6
↑1 → ↑2 ↑5 →
↑5 → ↑4 ↑5→
↑4 →
750
2000 ↔ ↓↔ → ↓↔ ↓ ↔ ↓↔ ↓↔ ↓↔ ↓ ↓↔
↓↔↑4 ↓↔
→
500
∅↔ ↓ ↔ ↓↔ ↔ ↓↔ ↓↔ ↓↔ ↓↔ 250
↓↔ 0
1000 ↓ 180 0 Fx
−1000
10 20 30 40 50 60 70
Gait Time Step 270
Figure 6.13: Force variations for combined sway and Fxyz null space.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 134
Tangential LP – No Sway
Figure 6.14 shows the variation of required friction coefficient for the case of tangential
null space without sway (§6.4.1). In all cases the value of µs remains below 0.6, with
some legs requiring only about 0.2. The gaps in the plots correspond to the instances
when the leg of interest is unloaded (fz = 0), and hence no tangential force is applied.
Full LP – No Sway
The friction behavior for the full null space without sway (§6.4.2) is shown in Figure
6.15. The required friction coefficient in this case is higher than for the tangential-
only LP, and for leg 2 reaches a value of 0.95. This means that the net force for that
leg will be very close to the edge of the friction cone at that instant in time.
Referring to the plot of force variations for this case, shown in Figure 6.7, the
peaks are verified to correspond to cases where the leg is assigned a light vertical
load by the optimizer (fz is small). Although the selected forces satisfy the friction
constraint, it is possible that they might be risky if the friction coefficient is not
known precisely. In such cases, a more conservative value of µs could be selected for
the optimization. Another possibility is to make use of the full nullspace only if the
specific move is critical from the standpoint of saturation, requiring as much torque
reduction as possible.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 135
Figure 6.16 shows the minimum required friction coefficient for the tangential null
space combined with sway (§6.4.3). The behavior is very similar to the case without
sway, with values that remain below 0.6.
Finally, Figure 6.17 shows the variation for the full nullspace plus sway (§6.4.4). The
value of µs is higher than in the case of tangential-only nullspace with sway, but
remains below 0.65.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 136
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 2
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 3
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 4
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 5
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 6
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
Figure 6.14: Minimum µs required to prevent slippage when using Fxy nullspace.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 137
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 2
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 3
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 4
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 5
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 6
0.8
0.6
0.4
0.2
0
∅↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6
10 20 30 40 50 60 70
Gait Time Step
Figure 6.15: Minimum µs required to prevent slippage when using Fxyz nullspace.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 138
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 2
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 3
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 4
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 5
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 6
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
Figure 6.16: Minimum µs required for combined sway and Fxy nullspace.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 139
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 2
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 3
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 4
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 5
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
1
Required µs, Leg 6
0.8
0.6
0.4
0.2
0
∅↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔↑6 →↓↔↑5 →↓↔↑4 →↓↔↑1 →↓↔↑2 →↓↔↑3 →↓↔
10 20 30 40 50 60 70
Gait Time Step
Figure 6.17: Minimum µs required for combined sway and Fxyz nullspace.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 140
1.03
1
0.80
0.8
0.63
%,max
0.6
Reference
0.49 0.48
τ
0.44
Sway
0.4
Fxy
xy
Sway+Fxyz
Sway+F
Fxyz
0.2
0
1
Figure 6.18: Comparison of peak torque ratios for the gait optimization approaches
presented in this dissertation.
As the figure shows, the 4 approaches that actively use the null space of contact
forces outperform the reference and pure sway gaits. The best performance is obtained
from combining sway with full use of the null space. This is not surprising since adding
more degrees of freedom that modify the torque ratios should result in a higher benefit.
A discussion of these results is included in the following section.
CHAPTER 6. GAIT OPTIMIZATION WITH USE OF NULL SPACE 141
6.5 Discussion
It is clear from the analysis presented in this chapter that active use of the null
space offers very important benefits. In terms of saturation, the actuation margin is
improved by 40-54% when using only the null space directly on the reference gait.
Ultimately the selection of the best approach for a specific application depends on
a number of factors. For example if the robot must traverse tight spaces, sway may
not be acceptable. Pure use of the null space will therefore be the best choice in this
case, or wherever sway is not desired. It is also ideal for robots with severely limited
actuation, because it largely increases the margin to saturation.
Another consideration is that any approach that makes use of non-zero tangential
forces is dependent on a reasonable knowledge of the contact friction coefficient.
Otherwise there is a risk of causing a foot to slip as the tangential nullspace is excited.
For this work the assumption has been made that this coefficient is the same for all
the feet throughout the gait. On very heterogeneous terrain such an assumption may
not be valid. In that case a conservative estimate of friction properties can be used,
although this may limit the achievable reduction in torque ratios. The safest approach
in this case would be the zero-interaction gait.
Chapter 7
Experimental Results
This chapter describes the experiments carried out on NASA’s ATHLETE robot to
validate the sway optimization technique developed in this dissertation. The chapter
is organized as follows:
142
CHAPTER 7. EXPERIMENTAL RESULTS 143
A
B
Figure 7.1: Aerial view of the Mars Yard at JPL (North is up). Experiments for the
reference gait were conducted at location
A in May 2009. The sway-optimized gait
B in June/July 2009.
presented in Chapter 4 was tested at location
The zero-interaction experiments took place during the months of May, June and
July, 2009. The reference gait was tested at location
A on May 14, 2009. The zero-
interaction sway gait was tested at location
B on June 29, 2009. The experiments
were carried out at different locations because of the limited time that the robot was
available. The exact initial conditions and observed results for each experiment are
described in the following sections.
1
The friction coefficient for rubber on this surface is not readily available, but was not needed
for the zero-interaction experiments.
CHAPTER 7. EXPERIMENTAL RESULTS 144
The Jacobian incorporates the joint angles measured by the robot’s encoders.
The force estimate is calculated as described in Chapter 2, using the spring-mass
model. Thus this estimate incorporates the measured joint angles, and the robot
pose quaternion indicated by the onboard IMU. The estimated total torques consist
of the external plus gravity components, per Equation 2.19. The latter are calculated
using the measured joint angles, robot pose and estimated CM locations of the leg’s
links.
2
SDM-B = Software Development Model B
CHAPTER 7. EXPERIMENTAL RESULTS 145
Figure 7.2: ATHLETE executing the reference gait. The camera is at location
A
facing southeast, and the robot is walking toward the right of the image, due west.
The torque estimates for the first 8 steps of the reference gait are shown in Figure
7.3. The maximum torque ratio requested from the robot reaches 104.6% during the
execution of the 5th step of the gait, causing saturation of a joint. During this exper-
iment the robot was able to continue walking because it is equipped with mechanical
brakes at the joints that are able to support the extra load.
The modus operandi in this experiment was to close the brakes before each step
in the 5 legs that remain on the ground. In a different scenario, however, these legs
might need to correct actively for the sag of the chassis to keep it level, and the
motion would be interrupted by a saturated joint. This situation was encountered
CHAPTER 7. EXPERIMENTAL RESULTS 146
during tests with ATHLETE, as shown in Figure 7.4. Here the rear leg has started to
step, and one of the adjacent legs has saturated in the process of leveling the chassis.
1.2
1.1 ↑2
1 →
0.9
↑4
0.8
→
→ → →
0.7 ↑5 ↑3 ↑5
↑1
%,max
→
0.6
→
↓
τ
0.5 ↑6 → ↓ ↔ ↑6
↓
↔ ↓ ↔ ↔
↓ ↔ ↔
0.4 ↓ ↔
↓ ↔
↓
0.3
∅ ∅
0.2
0.1
0
0 5 10 15 20 25 30 35
Gait Time Step
Figure 7.3: Torque ratio variation for the reference gait experiment on ATHLETE.
Figure 7.4: ATHLETE executing a sag-compensating reference gait. One of the legs
has reached saturation causing the motion to stop.
CHAPTER 7. EXPERIMENTAL RESULTS 147
The variation of maximum torque ratio for the first 8 steps of the sway gait is
shown in Figure 7.6, along with the reference torque ratios for comparison. Except
in the case of the 8th step, the peaks were reduced by 5-25%. Of special interest is
the 5th step, which was improved from 104.6% to 79.2%, a net reduction of 25.4%
which prevents saturation with sufficient margin. The previously mentioned 8th step
had an observed increase of 4% after optimization. This was likely caused by slight
differences in ground texture at sites
A and
.
B
The ATHLETE robot exhibits significant compliance coming primarily from the
compression of the tires. This causes the body to experience changes in height and
pose as the forces are redistributed during walking. These height and pose variations
may not be acceptable for some applications, for example when a manned habitat is
carried by the robot. They can also cause the feet to impact obstacles during step
execution if this sag is not estimated with enough precision.
CHAPTER 7. EXPERIMENTAL RESULTS 148
1.2
Reference
1.1 Optimized
0.9
0.8 ↑2 →
→
0.7 ↑5
%,max
0.6 ↑4 ↑3
↑5 → →
↓ →↓ ↓
↔ ↓
τ
↔ ↔ ↔
0.5 →↓
→ ↔ ↑1 ↔ →
↑6 ↓
0.4 ↔ ↑6
↔ ↓
0.3 ↔ ↓
∅
0.2
0.1
0
0 5 10 15 20 25 30 35
Gait Time Step
Figure 7.6: Torque ratio variation for the sway gait experiment on ATHLETE.
To prevent problems caused by sag the robot can use the legs that remain in
ground contact to push up and maintain the body leveled. This mode of walking is
more demanding on the joints because the load cannot be absorbed by the brakes,
since they need to be open in order to actuate the motors. For this reason the sag-
compensating gait is an ideal candidate for optimization.
An experiment was conducted to test this scenario. The robot was driven to
location
B on the Mars Yard and commanded to execute a sag-compensating gait
with sway. In contrast to the situation depicted in Figure 7.4, the requested motion
was completed successfully without reaching saturation, providing visual confirmation
of the predicted benefit of sway optimization. A snapshot of ATHLETE executing
this gait is shown in Figure 7.7.
CHAPTER 7. EXPERIMENTAL RESULTS 149
Figure 7.8: An example of acceptable terrain for execution of a sway gait without
force control.
by finite element analysis of the body components, which can yield load-deflection
curves for different loading conditions, which can then be incorporated into an online
compliance estimator. This would be a good avenue for future research.
7.5.4 Other
In addition to the experiments described in this chapter, walking was also tested on
slopes of 7◦ and 14◦ , as shown in Figure 7.9. These experiments were intended to
test only the reference gait, so no optimization was applied. Even at these relatively
shallow inclinations the robot was observed to be very constrained kinematically. In
particular, since it was desired to keep the chassis horizontal the legs on the downhill
side reached maximum extension very quickly, while the ones on the uphill side had
little space to maneuver between the chassis and the ground.
While theoretically walking robots are capable of climbing very steep terrain, this
carries an underlying assumption that the orientation of the body is flexible. Indeed
keeping the body parallel to the local ground largely alleviates this issue, but it may
not always be possible depending on the payload. Geological studies of the moon and
Mars suggest that the maximum slopes on hills and impact craters can reach up to
35◦ , depending on the angle of repose of the soil and whether a rocky substrate exists
(see e.g. [Heiken 91]). Such slopes would not be traversable with ATHLETE in a
level chassis configuration, but may perhaps be accessible if the body pose is relaxed.
CHAPTER 7. EXPERIMENTAL RESULTS 152
Figure 7.9: ATHLETE walking on slopes of 7◦ and 14◦ . The latter starts to place
severe kinematic constraints on the motion of the robot.
During the 14◦ slope experiment the robot was also observed to slide downhill a
short distance (< 5cm) on occasion. This points to the importance of taking into
account the contact friction coefficients when designing gaits for steeper terrain. This
can be done through friction cone constraints like the ones used in Chapter 6.
Chapter 8
The work presented in this dissertation has demonstrated two motion optimization
techniques to prevent joint saturation in walking robots. This chapter reviews the
main contributions of this work, summarizes the lessons learned, and suggests areas
for future research.
• A method for simultaneous calculation of contact forces and robot sag was de-
veloped. The new technique is valid for homogeneous or heterogeneous contact
153
CHAPTER 8. CONCLUSIONS AND FUTURE WORK 154
stiffnesses, and takes into account force redistribution during the lifting and
planting of feet.
8.4 Conclusion
The motion optimization techniques developed in this dissertation have enabled a
robot with severely limited actuators to walk successfully under demanding condi-
tions. The development of future robots and their gaits can build upon the tools
presented here to achieve safer walking and more efficient designs.
Appendix A
The execution of each step for a legged robot requires solution of a motion planning
problem, particularly in environments with obstacles. This appendix compares four
possible motion planning approaches based on simulation and experimental work on
the ATHLETE robot.
A.1 Overview
This appendix describes and compares four different algorithms for generating a
single-step sequence of commands for legged robots. The material included here
is based on joint work with Dr. Tristan Smith of the Planning and Scheduling group
at NASA Ames Research Center. An extended version of this material was presented
at the 2009 SMC-IT Conference in Pasadena, California [Smith 09].
Three of the four algorithms search configuration space (“C-Space”). Each di-
mension in configuration space represents the range of angles for one of ATHLETE’s
joints. A path through configuration space represents a sequence of moves (changes
in joint angles) the robot can make to get from one configuration to another.
157
APPENDIX A. SINGLE STEP MOTION PLANNING 158
The first algorithm only tries the straight line between the start and end config-
urations, the second is a standard randomized motion planning algorithm, and the
third is an A* search through a discretization of configuration space. The fourth and
final approach is A* search in task space, the three-dimensional Euclidean space in
which the robot operates.
A.2 Algorithms
A.2.1 Preliminaries
The goal for each of the algorithms is to produce a sequence of commands to move
an ATHLETE foot from one location to another. It is assumed that the position and
orientation of the chassis remain fixed, and therefore the configuration of the other
five legs can be ignored.1 This simplification means the planning problem is only
concerned with the six-dimensional configuration space representing the joint angles
shown in Figure A.1.
The location of the foot can be represented as either:
In addition, the functions TO-TSPACE (ci , legj ) and TO-CSPACE (xyzi , legj ), are
available to convert between the two spaces via the forward or inverse kinematics of
the leg. While one location for the foot in task space, xyzi , could correspond to many
different configurations, the implementation of TO-CSPACE (xyzi , legj ) used here is
one-to-one and always computes the same ci for a given xyzi .
Finally, a function COLLISION-FREE (ci , ci+1 ) is available that determines whether
the straight line in configuration space between ci and ci+1 is free of collisions; the
leg must not collide with itself, other parts of the robot, or the terrain.
As problem input, the following is assumed:
1
Although it might be necessary in tight space to adjust other legs or the chassis in order to
reach a goal, such motions are considered part of multi-step walking and are not included here.
APPENDIX A. SINGLE STEP MOTION PLANNING 159
Given this data, the start and goal configurations cstart and cgoal , are computed.
cstart is obtained by lifting legi 10cm above its current position, and cgoal is a configu-
ration 10cm above xyzgoal . These 10cm buffers are included because a weight-bearing
leg must be raised by about this much before it is truly free of the ground, due to the
way the chassis sags as the leg is lifted.
The goal for each algorithm is to produce a path (cstart , ..., cgoal ) through config-
uration space such that each edge (ci , ci+1 ) is collision free. The solution path can
then be converted to a sequence of low-level commands, which move legi to cgoal .
APPENDIX A. SINGLE STEP MOTION PLANNING 160
A.2.3 SBL
The second approach is a Single-query Bi-directional planner with Lazy collision
checking (SBL), and is outlined in Algorithm 2.
Algorithm 2
function SBL(cstart , cgoal )
1: T 1.root = cstart
2: T 2.root = cgoal
3: while not timed out do
4: Execute EXPAND-TREE
5: τ ← CONNECT-TREES
6: if τ is not empty then
7: Return success
8: end if
9: end while
10: Return failure
SBL is a sampling-based motion planning technique. The search for feasible paths
is conducted by sampling configurations between the start and goal, and verifying if
(a) they are feasible, and (b) they can be connected without collisions.
The algorithm proceeds by growing two C-Space trees T1 and T2 rooted at cstart
and cgoal toward each other. On every iteration one of the trees is selected at random
with probability 0.5, and a new milestone mnew is added to it (EXPAND-TREE
step). The planner then checks if a connection can be established between the trees
(CONNECT-TREES step), and if so it generates a candidate path τ from cstart to
cgoal . This path includes a segment called a bridge, connecting mnew to m, the nearest
2
The abbreviation SM P L is used as shorthand for “Simple”.
APPENDIX A. SINGLE STEP MOTION PLANNING 161
Algorithm 3
function AStar(start, goal)
1: start.g = 0
2: start.h = DISTANCE(start, goal)
3: start.parent = NULL
4: queue.ADD(start)
5: while n = GET-BEST-NODE(queue) and n not NULL and not timed out do
6: if n is goal then
7: Return success
8: end if
9: succs = GET-SUCCESSORS(n)
10: if n near goal then
11: succs.ADD(goal)
12: end if
13: for all s in succs do
14: s.g = n.g + DISTANCE(n, s)
15: s.h = DISTANCE(s, goal)
16: s.parent = n
17: queue.ADD(s)
18: end for
19: end while
20: Return failure
APPENDIX A. SINGLE STEP MOTION PLANNING 163
At each step, the function GET-BEST-NODE returns the node n in queue for
which n.g + n.h is lowest.4 Then, n is expanded; GET-SUCCESSORS returns the
twelve grid nodes (obtained by moving left or right along each of the six dimensions)
adjacent to n, which are then added to queue with appropriate g and h values.5
When success is returned, the solution can easily be extracted because each node
stores its parent.
This approach means there will be nodes n in queue that cannot be expanded
because the path from n’s parent has collisions. However, the same point in space
with a different parent might expand successfully. Therefore, unlike traditional A*,
it may be necessary to add a single point in space to queue multiple times; this can
only be avoided if the same point has been both added and successfully expanded.
As a result, it is not at all obvious that this lazy approach is a good idea. On
the one hand, unnecessary checking of edges to nodes that never end up getting
expanded is avoided. On the other hand, each point in space could have multiple
copies in queue, making the maintenance (especially sorting) of queue more difficult.
APPENDIX A. SINGLE STEP MOTION PLANNING 165
In the worst case, where A* expands all nodes in queue before finding a solution, this
overhead certainly makes the lazy approach more expensive.
For the experiments described in §A.3, the lazy version of A* is an improvement.
In configuration space, between 1.3 and 9.7 (depending on the terrain) times more
nodes are added on average, while search times are reduced by 43 to 82 percent on
average. Similarly, in task space, between 1.2 and 4.8 times more nodes are added,
while search times are reduce by 25 to 70 percent. Nonetheless, lazy A* is not always
better; for 4 of the 958 instances considered, the lazy A* version of CF G times out
(and therefore fails) even though the standard implementation succeeds.
1. Expand path into a graph by joining every pair (ci , cj ) of vertices for which
COLLISION-FREE (ci , cj ) succeeds.
2. Run Dijkstra search on this graph to find the shortest path from cstart to cgoal .
This has the effect of cutting off unnecessary corners in the original path.
3. Add vertices to path by bisecting each edge.
4. Repeat steps 1 through 3 until the improvement made in a given iteration is
less than 10%.
Figure A.2: Path smoothing in a hypothetical 2D C-space: cstart and cgoal are separated
by a C-obstacle. (1) Motion plan with N1 nodes before smoothing; (2) shortest path
found using Dijkstra’s algorithm, with N2 ≤ N1 nodes; (3) the simplified path is bisected,
adding N2 − 1 nodes; (4) Dijkstra’s algorithm is re-run.
Figure A.3: The Bump, Step, and W ell terrains used in the experiments.
APPENDIX A. SINGLE STEP MOTION PLANNING 167
• F lat: Completely flat terrain (|L| = |R| = 11). This serves as a baseline.
• Bump: Terrain with a 40 cm bump between L and R (|L| = |R| = 14). This is
probably the most realistic terrain; stepping with ATHLETE is most likely to
be done over rocks in the lunar landscape.
• Step: Terrain with a 50 cm ledge; L is at the top of the ledge, and R is at the
base (|L| = 15, |R| = 6).
• W ell: Terrain with two wheel-sized wells surrounded by raised terrain, where
L is in one well and R the other (|L| = 8, |R| = 9). This terrain attempts to
generate a difficult example that is quite different from the other terrains.
This results in a total of 958 problem instances. The algorithms were configured
as follows:
Figure A.5 shows average runtimes. These are small on average, with SM P L
obviously the fastest, and the finer granularity searches taking generally the longest.
One notable exception is the case of the W ell, where CF G(1.0) is the slowest al-
gorithm. This is almost certainly caused by an increase in the number of collision
checks required to find a sequence of large C-Space swings that can maneuver within
the constrained space of the well.
Figure A.6 shows the length of the resulting configuration space paths, before
and after smoothing.9 Surprisingly, although CF G(0.33) is best and T SK is worst
9
For the rest of the results presented here, SM P L is excluded; because it only succeeds on the
APPENDIX A. SINGLE STEP MOTION PLANNING 169
before smoothing, those results are almost completely negated by smoothing, with
SBL doing best for three of the four terrains. Smoothing also helps T SK become
competitive on this metric, although it still does poorly on the Bump terrain.
Figure A.7 shows the average distances in task space for each approach. Here,
T SK(0.1) is the clear winner, outperforming all other algorithms on all data sets,
before and after smoothing. Finally, Figure A.8 shows the maximum values for each
terrain, confirming that SBL and CF G(1.0) occasionally produced very long paths,
even after smoothing.
A.5 Conclusion
This appendix outlined four different algorithms for taking a step with ATHLETE.
Three approaches, SM P L, SBL, and CF G, search in configuration space while T SK
searches in task space. Each algorithm was tried on a total of 958 problem instances
spread across 4 types of terrain.
As expected SM P L is extremely fast, but untenable due to its high failure rate.
easiest instances, results for that algorithm are skewed.
APPENDIX A. SINGLE STEP MOTION PLANNING 170
CF G produces short paths in configuration space, but suffers from the high dimen-
sionality of its search space; the fine-grained version can run for minutes on difficult
instances, while the faster version is too coarse to get good results.
SBL also runs quickly, but produces a wide range of path lengths in both configu-
ration and task spaces; these variances have been sufficiently eliminated by adequate
tuning of the post-SBL smoothing. T SK results are most consistent; the finer grained
APPENDIX A. SINGLE STEP MOTION PLANNING 171
version is the only approach other than SBL to solve all instances, runtimes are com-
parable to SBL, and configuration space distances are only slightly worse than other
methods. T SK consistently get the shortest task space distance, arguably the most
important metric.
The results of this work show that SBL with smoothing and T SK are comparable
approaches for the planning of steps with 6-DOF legs. All the experiments presented
in this dissertation were conducted using SBL with smoothing.
Bibliography
[Alexander 84] R. Alexander. The gaits of bipedal and quadrupedal animals. The
International Journal of Robotics Research, vol. 3, no. 2, page 49,
1984.
172
BIBLIOGRAPHY 173
[Buckley 07] David Buckley. History Makers - 1868 Dederick’s Steam Man.
http://www.davidbuckley.net/DB/HistoryMakers.htm, 2007.
[Collins 07] C. Collins. Stiffness Modeling and Force Distribution for the
All-Terrain, Hex-Limbed Extra-Terrestrial Explorer (ATHLETE).
In Proc. ASME 2007 International Design Engineering Technical
Conferences & Computers and Information in Engineering Confer-
ence, Las Vegas, Nevada, USA, 2007.
[Cox 70] W. Cox. Big muskie. The Ohio State Engineer, pages 25–52, 1970.
[de Santos 05] P. Gonzalez de Santos, J. Estremera, E. Garcia & M. Armada. In-
cluding joint torques and power consumption in the stability margin
BIBLIOGRAPHY 174
[Erden 06] M. S. Erden & K. Leblebicioglu. Analysis of Wave Gaits for Energy
Efficiency. Signal Processing and Communications Applications,
2006 IEEE 14th, pages 1–4, 2006.
[Gabrielli 50] G. Gabrielli & T. Von Karman. What price speed. Mechanical
Engineering, vol. 72, no. 10, page 775781, 1950.
[Garcia 02] Elena Garcia, Joaquin Estremera & Pablo Gonzalez de Santos.
A comparative study of stability margins for walking machines.
Robotica, vol. 20, pages 595–606, 2002.
BIBLIOGRAPHY 175
[Hauser 08a] K. Hauser. Motion Planning for Legged and Humanoid Robots.
PhD dissertation, Stanford University, Stanford, CA, September
2008.
[Hirose 98] S. Hirose & K. Kato. Quadruped walking robot to perform mine
detection and removal task. In Proceedings of the 1st International
Conference on Climbing and Walking Robots, Brussels, Belgium,
pages 261–6, 1998.
[Kato 01] K. Kato & S. Hirose. Development of the quadruped walking robot,
TITAN-IX mechanical design concept and application for the hu-
manitarian de-mining robot. Advanced Robotics, vol. 15, no. 2,
pages 191–204, 2001.
BIBLIOGRAPHY 177
[Kerr 86] Jeffrey Kerr & Bernard Roth. Analysis of Multifingered Hands.
The International Journal of Robotics Research, vol. 4, no. 4, pages
3–17, January 1986.
[Liu 07] J. Liu, M. Tan & X. Zhao. Legged robots–an overview. Transactions
of the Institute of Measurement & Control, vol. 29, no. 2, page 185,
2007.
[LLC 08] Harmonic Drive LLC. Ultra Flat SHD Series Gear-
heads. http://www.harmonicdrive.net/products/gearheads/shd-
gearheads/, 2008.
BIBLIOGRAPHY 178
[Marhefka 97] D. W. Marhefka & D. E. Orin. Gait planning for energy efficiency
in walking machines. In 1997 IEEE International Conference on
Robotics and Automation, 1997. Proceedings., volume 1, 1997.
[Messuri 85] D. A. Messuri & C. A. Klein. Automatic body regulation for main-
taining stability of a legged vehicle during rough-terrain locomotion.
BIBLIOGRAPHY 179
[Miller 06] Teresa Miller, Timothy Bretl & Stephen Rock. Control of a Climb-
ing Robot Using Real-Time Convex Optimization. In Symposium
on Mechatronic Systems, Heidelberg, Germany, 2006.
[Nash 96] S. G. Nash, A. Sofer & J. R. Shinnerl. Linear and nonlinear pro-
gramming. McGraw-Hill New York, 1996.
[Rygg 93] Lewis A. Rygg. Mechanical Horse, United States Patent 491927,
February 1893.
[Solnit 04] Rebecca Solnit. River of shadows: Eadweard muybridge and the
technological wild west. Penguin (Non-Classics), March 2004.
[Song 89] S. M. Song & K. J. Waldron. Machines that walk: The adaptive
suspension vehicle. Mit Press, 1989.
[Sun 74] S. S. Sun. A Theoretical study of gaits for legged locomotion sys-
tems. PhD thesis, Ohio State University., 1974.
[Waldron 86b] K. Waldron & R. McGhee. The Adaptive Suspension Vehicle. IEEE
Control Systems Magazine, vol. 6, no. 6, pages 7–12, 1986.
[Zoppi 06] Zoppi & Molfino. Equilibrium analysis of multi-limbs walking and
climbing robots. Autonomous Robots, vol. 21, pages 199–210,
November 2006.