IEEE Robotics & Automation Magazine - June 2020 - 97

closure at more than 500 Hz. Furthermore, in practice,
whole-body QP controllers exhibit robustness to model
uncertainties due to fast, frequent loop closures and work
reliably on the real Valkyrie platform.
After the MJMPC generates a reference CoM trajectory
y ref , a whole-body controller minimizes the tracking error
J task = (1/2) < y - y ref < while guaranteeing physically feasible
torques that realize the push recovery motion. The reformulation of the tracking tasks of J task = (1/2) < y - y ref < 2 =
..
(1/2) < AX - b < 2 with state X = [ q, x, m] T consisting of
torque commands x, joint accelerations qp , and contact wrench
T
T
m yields the matrices H = A A, f = - A b. The QP problem
is formulated as
min X T HX + f T X,
X
s.t. A eq X + B eq = 0,
A ineq X + B ineq $ 0.

(6)

Further tasks, e.g., tracking feet trajectories from the nonlinear step-location optimizer, regularization terms, or other
tasks benefiting the stability of the controller, can be stacked in
A = [w 0 A 0, w 1 A 1, ..., w n A n] T , b = [w 0 b 0, w 1 b 1, ..., w n b n] T ,
and task priorities are represented by the weights w i, where
i = 0, ..., n is the ith task (for more details, compare [14]).
The equations of motion-guaranteeing physical coherence
between the states form the equality constraints of the QP
problem (6):

Ankle Real
Toe Fitted

Ankle Fitted
Step Real

..

6M (q) - S - J (q)@ >xH + h (q, qo ) = 0,
m

Toe Real
Step Fitted

Ankle Real
Toe Fitted
Position (m)

Position (m)

0.1
0
0.5

1

1.5

2

Toe Real
Step Fitted

0.96
0.94
0.92

2.5

0.4
Velocity (m/s)

Velocity (m/s)

Ankle Fitted
Step Real

0.98

0.2

0

0.2
0
0

0.5

1

1.5

2

Ankle

1.34

Toe

Torque (Nm)

1.36

Step

1.32
0

0.5

1

1.5
Time (s)

2

2.5

0
.10-2

0.5

1

1.5

2

2.5

0

0.5

1

1.5

2

2.5

0
-5

2.5

1.38
Force (kN)

(7)

with inertia matrix M(q), selection matrix S, Jacobian matrices J T (q) of the contact links, and nonlinear effects h (q, qo ) .
In addition to the physical coherence of the solution, locomotion-specific constraints are formulated, ensuring that the
robot will not fall over. This is achieved by imposing inequality constraints in the QP problem on the contact wrench
m = [fx, f y, fz, x x, x y, x z] between its feet and the ground.
Slippage in the x, y direction is prevented by constraining the
force in the respective direction | fx | # nfz, | f y | # nfz for a
given friction coefficient n. Unilateral forces (no suction of
the feet to the ground) are guaranteed by fz 2 0. A stability
constraint is achieved by constraining the CoP within the
support polygon | x x | # Yfz, | x y | # Xfz with dimensions
X, Y of the support polygon. Lastly, yaw slippage is prevented by x min # x z # x max with x min = - n (X + Y) fz +
| Yfx - nx x | + | Xf y - nx y |, x max = + n (X + Y) fz - | Yfx +
nx x | -| Xf y + nx y | .
The physical feasibility of the motions on the actuators
during push recovery motions can be further shown using an
IP model [16] as in Figure 10(b), which simplifies the dynamics of a robot into an IP whose length can be extended via a
"kick force" and a torque applied to the pivot point corresponding to the ground reaction force and torque of the real
robot. Using the torque limits of the actuators, the robot can

0.3

-0.2

q

T

0
-200

Ankle

Toe

Step

-400
0

0.5

1

(a)

1.5
Time (s)

2

2.5

(b)

Figure 9. The fit between human data and the reverse-engineered controller. (a) The x position, velocity, and required force. (b) The z
position, velocity, and required torque.

JUNE 2020

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

97



IEEE Robotics & Automation Magazine - June 2020

Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - June 2020

Contents
IEEE Robotics & Automation Magazine - June 2020 - Cover1
IEEE Robotics & Automation Magazine - June 2020 - Cover2
IEEE Robotics & Automation Magazine - June 2020 - Contents
IEEE Robotics & Automation Magazine - June 2020 - 2
IEEE Robotics & Automation Magazine - June 2020 - 3
IEEE Robotics & Automation Magazine - June 2020 - 4
IEEE Robotics & Automation Magazine - June 2020 - 5
IEEE Robotics & Automation Magazine - June 2020 - 6
IEEE Robotics & Automation Magazine - June 2020 - 7
IEEE Robotics & Automation Magazine - June 2020 - 8
IEEE Robotics & Automation Magazine - June 2020 - 9
IEEE Robotics & Automation Magazine - June 2020 - 10
IEEE Robotics & Automation Magazine - June 2020 - 11
IEEE Robotics & Automation Magazine - June 2020 - 12
IEEE Robotics & Automation Magazine - June 2020 - 13
IEEE Robotics & Automation Magazine - June 2020 - 14
IEEE Robotics & Automation Magazine - June 2020 - 15
IEEE Robotics & Automation Magazine - June 2020 - 16
IEEE Robotics & Automation Magazine - June 2020 - 17
IEEE Robotics & Automation Magazine - June 2020 - 18
IEEE Robotics & Automation Magazine - June 2020 - 19
IEEE Robotics & Automation Magazine - June 2020 - 20
IEEE Robotics & Automation Magazine - June 2020 - 21
IEEE Robotics & Automation Magazine - June 2020 - 22
IEEE Robotics & Automation Magazine - June 2020 - 23
IEEE Robotics & Automation Magazine - June 2020 - 24
IEEE Robotics & Automation Magazine - June 2020 - 25
IEEE Robotics & Automation Magazine - June 2020 - 26
IEEE Robotics & Automation Magazine - June 2020 - 27
IEEE Robotics & Automation Magazine - June 2020 - 28
IEEE Robotics & Automation Magazine - June 2020 - 29
IEEE Robotics & Automation Magazine - June 2020 - 30
IEEE Robotics & Automation Magazine - June 2020 - 31
IEEE Robotics & Automation Magazine - June 2020 - 32
IEEE Robotics & Automation Magazine - June 2020 - 33
IEEE Robotics & Automation Magazine - June 2020 - 34
IEEE Robotics & Automation Magazine - June 2020 - 35
IEEE Robotics & Automation Magazine - June 2020 - 36
IEEE Robotics & Automation Magazine - June 2020 - 37
IEEE Robotics & Automation Magazine - June 2020 - 38
IEEE Robotics & Automation Magazine - June 2020 - 39
IEEE Robotics & Automation Magazine - June 2020 - 40
IEEE Robotics & Automation Magazine - June 2020 - 41
IEEE Robotics & Automation Magazine - June 2020 - 42
IEEE Robotics & Automation Magazine - June 2020 - 43
IEEE Robotics & Automation Magazine - June 2020 - 44
IEEE Robotics & Automation Magazine - June 2020 - 45
IEEE Robotics & Automation Magazine - June 2020 - 46
IEEE Robotics & Automation Magazine - June 2020 - 47
IEEE Robotics & Automation Magazine - June 2020 - 48
IEEE Robotics & Automation Magazine - June 2020 - 49
IEEE Robotics & Automation Magazine - June 2020 - 50
IEEE Robotics & Automation Magazine - June 2020 - 51
IEEE Robotics & Automation Magazine - June 2020 - 52
IEEE Robotics & Automation Magazine - June 2020 - 53
IEEE Robotics & Automation Magazine - June 2020 - 54
IEEE Robotics & Automation Magazine - June 2020 - 55
IEEE Robotics & Automation Magazine - June 2020 - 56
IEEE Robotics & Automation Magazine - June 2020 - 57
IEEE Robotics & Automation Magazine - June 2020 - 58
IEEE Robotics & Automation Magazine - June 2020 - 59
IEEE Robotics & Automation Magazine - June 2020 - 60
IEEE Robotics & Automation Magazine - June 2020 - 61
IEEE Robotics & Automation Magazine - June 2020 - 62
IEEE Robotics & Automation Magazine - June 2020 - 63
IEEE Robotics & Automation Magazine - June 2020 - 64
IEEE Robotics & Automation Magazine - June 2020 - 65
IEEE Robotics & Automation Magazine - June 2020 - 66
IEEE Robotics & Automation Magazine - June 2020 - 67
IEEE Robotics & Automation Magazine - June 2020 - 68
IEEE Robotics & Automation Magazine - June 2020 - 69
IEEE Robotics & Automation Magazine - June 2020 - 70
IEEE Robotics & Automation Magazine - June 2020 - 71
IEEE Robotics & Automation Magazine - June 2020 - 72
IEEE Robotics & Automation Magazine - June 2020 - 73
IEEE Robotics & Automation Magazine - June 2020 - 74
IEEE Robotics & Automation Magazine - June 2020 - 75
IEEE Robotics & Automation Magazine - June 2020 - 76
IEEE Robotics & Automation Magazine - June 2020 - 77
IEEE Robotics & Automation Magazine - June 2020 - 78
IEEE Robotics & Automation Magazine - June 2020 - 79
IEEE Robotics & Automation Magazine - June 2020 - 80
IEEE Robotics & Automation Magazine - June 2020 - 81
IEEE Robotics & Automation Magazine - June 2020 - 82
IEEE Robotics & Automation Magazine - June 2020 - 83
IEEE Robotics & Automation Magazine - June 2020 - 84
IEEE Robotics & Automation Magazine - June 2020 - 85
IEEE Robotics & Automation Magazine - June 2020 - 86
IEEE Robotics & Automation Magazine - June 2020 - 87
IEEE Robotics & Automation Magazine - June 2020 - 88
IEEE Robotics & Automation Magazine - June 2020 - 89
IEEE Robotics & Automation Magazine - June 2020 - 90
IEEE Robotics & Automation Magazine - June 2020 - 91
IEEE Robotics & Automation Magazine - June 2020 - 92
IEEE Robotics & Automation Magazine - June 2020 - 93
IEEE Robotics & Automation Magazine - June 2020 - 94
IEEE Robotics & Automation Magazine - June 2020 - 95
IEEE Robotics & Automation Magazine - June 2020 - 96
IEEE Robotics & Automation Magazine - June 2020 - 97
IEEE Robotics & Automation Magazine - June 2020 - 98
IEEE Robotics & Automation Magazine - June 2020 - 99
IEEE Robotics & Automation Magazine - June 2020 - 100
IEEE Robotics & Automation Magazine - June 2020 - 101
IEEE Robotics & Automation Magazine - June 2020 - 102
IEEE Robotics & Automation Magazine - June 2020 - 103
IEEE Robotics & Automation Magazine - June 2020 - 104
IEEE Robotics & Automation Magazine - June 2020 - 105
IEEE Robotics & Automation Magazine - June 2020 - 106
IEEE Robotics & Automation Magazine - June 2020 - 107
IEEE Robotics & Automation Magazine - June 2020 - 108
IEEE Robotics & Automation Magazine - June 2020 - 109
IEEE Robotics & Automation Magazine - June 2020 - 110
IEEE Robotics & Automation Magazine - June 2020 - 111
IEEE Robotics & Automation Magazine - June 2020 - 112
IEEE Robotics & Automation Magazine - June 2020 - 113
IEEE Robotics & Automation Magazine - June 2020 - 114
IEEE Robotics & Automation Magazine - June 2020 - 115
IEEE Robotics & Automation Magazine - June 2020 - 116
IEEE Robotics & Automation Magazine - June 2020 - 117
IEEE Robotics & Automation Magazine - June 2020 - 118
IEEE Robotics & Automation Magazine - June 2020 - 119
IEEE Robotics & Automation Magazine - June 2020 - 120
IEEE Robotics & Automation Magazine - June 2020 - 121
IEEE Robotics & Automation Magazine - June 2020 - 122
IEEE Robotics & Automation Magazine - June 2020 - 123
IEEE Robotics & Automation Magazine - June 2020 - 124
IEEE Robotics & Automation Magazine - June 2020 - 125
IEEE Robotics & Automation Magazine - June 2020 - 126
IEEE Robotics & Automation Magazine - June 2020 - 127
IEEE Robotics & Automation Magazine - June 2020 - 128
IEEE Robotics & Automation Magazine - June 2020 - 129
IEEE Robotics & Automation Magazine - June 2020 - 130
IEEE Robotics & Automation Magazine - June 2020 - 131
IEEE Robotics & Automation Magazine - June 2020 - 132
IEEE Robotics & Automation Magazine - June 2020 - 133
IEEE Robotics & Automation Magazine - June 2020 - 134
IEEE Robotics & Automation Magazine - June 2020 - 135
IEEE Robotics & Automation Magazine - June 2020 - 136
IEEE Robotics & Automation Magazine - June 2020 - 137
IEEE Robotics & Automation Magazine - June 2020 - 138
IEEE Robotics & Automation Magazine - June 2020 - 139
IEEE Robotics & Automation Magazine - June 2020 - 140
IEEE Robotics & Automation Magazine - June 2020 - 141
IEEE Robotics & Automation Magazine - June 2020 - 142
IEEE Robotics & Automation Magazine - June 2020 - 143
IEEE Robotics & Automation Magazine - June 2020 - 144
IEEE Robotics & Automation Magazine - June 2020 - 145
IEEE Robotics & Automation Magazine - June 2020 - 146
IEEE Robotics & Automation Magazine - June 2020 - 147
IEEE Robotics & Automation Magazine - June 2020 - 148
IEEE Robotics & Automation Magazine - June 2020 - 149
IEEE Robotics & Automation Magazine - June 2020 - 150
IEEE Robotics & Automation Magazine - June 2020 - 151
IEEE Robotics & Automation Magazine - June 2020 - 152
IEEE Robotics & Automation Magazine - June 2020 - 153
IEEE Robotics & Automation Magazine - June 2020 - 154
IEEE Robotics & Automation Magazine - June 2020 - 155
IEEE Robotics & Automation Magazine - June 2020 - 156
IEEE Robotics & Automation Magazine - June 2020 - 157
IEEE Robotics & Automation Magazine - June 2020 - 158
IEEE Robotics & Automation Magazine - June 2020 - 159
IEEE Robotics & Automation Magazine - June 2020 - 160
IEEE Robotics & Automation Magazine - June 2020 - 161
IEEE Robotics & Automation Magazine - June 2020 - 162
IEEE Robotics & Automation Magazine - June 2020 - 163
IEEE Robotics & Automation Magazine - June 2020 - 164
IEEE Robotics & Automation Magazine - June 2020 - 165
IEEE Robotics & Automation Magazine - June 2020 - 166
IEEE Robotics & Automation Magazine - June 2020 - 167
IEEE Robotics & Automation Magazine - June 2020 - 168
IEEE Robotics & Automation Magazine - June 2020 - 169
IEEE Robotics & Automation Magazine - June 2020 - 170
IEEE Robotics & Automation Magazine - June 2020 - 171
IEEE Robotics & Automation Magazine - June 2020 - 172
IEEE Robotics & Automation Magazine - June 2020 - 173
IEEE Robotics & Automation Magazine - June 2020 - 174
IEEE Robotics & Automation Magazine - June 2020 - 175
IEEE Robotics & Automation Magazine - June 2020 - 176
IEEE Robotics & Automation Magazine - June 2020 - 177
IEEE Robotics & Automation Magazine - June 2020 - 178
IEEE Robotics & Automation Magazine - June 2020 - 179
IEEE Robotics & Automation Magazine - June 2020 - 180
IEEE Robotics & Automation Magazine - June 2020 - 181
IEEE Robotics & Automation Magazine - June 2020 - 182
IEEE Robotics & Automation Magazine - June 2020 - 183
IEEE Robotics & Automation Magazine - June 2020 - 184
IEEE Robotics & Automation Magazine - June 2020 - Cover3
IEEE Robotics & Automation Magazine - June 2020 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com