IEEE Robotics & Automation Magazine - September 2010 - 59

trajectory in three dimensions. Similar nesting of control loops
is presented in previous works [5]-[7], [16], [17].
Our controllers are derived by linearizing the equations of
motion and motor models (1)-(4) at an operating point that
corresponds to the nominal hover state, r ¼ r0 , h ¼ / ¼ 0,
w ¼ w0 , r_ ¼ 0, and /_ ¼ h_ ¼ w_ ¼ 0, where the roll and pitch
angles are small (c/ % 1, ch % 1, s/ % /, and sh % h). At this
hover state, the nominal thrusts from the propellers must satisfy
Fi,0 ¼

rffiffiffiffiffiffiffi
mg
¼ xh ¼
:
4kF

Attitude Control
We now present an attitude controller to track trajectories in
SO(3) that are close to the nominal hover state where the roll
and pitch angles are small. From (2), substituting in the relationships between angular velocities of the rotors and forces
and moments (3) and (4),
Ixx p_ ¼ LkF (x22 À x24 ) À qr(Izz À Iyy ),

(5a)

LkF (x23 À x21 ) À pr(Ixx À Izz ),
kM (x21 À x22 þ x23 À x24 ):

(5b)

Iyy q_ ¼
Izz r_ ¼

(5c)

Note that the products of inertia are small (ideally, they are zero
because the axes are close to the principal axes) and Ixx % Iyy
because of the symmetry. We assume the component of the
angular velocity in the zB direction, r, is small so that the rightmost terms in (5a) and (5b), which are products involving r, are
small compared to the other terms. The vector of desired rotor
speeds can be written as a linear combination of four terms
2

3
des

2

1
x1
6 xdes 7 6 1
6 2des 7 ¼ 6
4x 5 41
3
1
xdes
4

0 À1
1
0
0
1
À1 0

32

3

xh þ DxF
1
6 Dx/ 7
À1 7
76
7,
1 54 Dxh 5
Dxw
À1

(6)

where the nominal rotor speed required to hover in steady
state is xh , and the deviations from this nominal vector are
DxF , Dx/ , Dxh , and Dxw . DxF results in a net force along
the zB axis, while Dx/ , Dxh , and Dxw produce moments
causing roll, pitch, and yaw, respectively. This is similar to the
approach described in [5].
Now, we linearize (5a)-(5c) about the hovering operating
point and write the desired angular accelerations in terms of
the new control inputs
4kF Lxh
Dx/ ,
p_ des ¼
Ixx
4kF Lxh
Dxh ,
q_ des ¼
Iyy
8kM xh
Dxw :
r_ des ¼
Izz
SEPTEMBER 2010

Dx/ ¼ kp,/ (/des À /) þ kd,/ (pdes À p),
Dxh ¼ kp,h (hdes À h) þ kd,h (qdes À q),
Dxw ¼ kp,w (wdes À w) þ kd,w (r des À r):

(7)

Substituting (7) into (6) yields the desired rotor speeds.

mg
,
4

and the motor speeds are given by
xi,0

As near the nominal hover state, /_ % p, h_ % q, and w_ % r, we
use proportional-derivative control laws that take the form

Position Control
Here, we present the two representative position control methods that use the roll and pitch angles as inputs via a method similar to a backstepping approach [18]. The first, a hover controller,
is used for station keeping or maintaining the position at a
desired x, y, and z location. The second tracks a trajectory in
three dimensions.
Hover Controller

We use pitch and roll angles to control position in the xW and
yW planes, Dxw to control yaw angle, and DxF to control
position along zW . We let rT (t) and wT (t) be the trajectory
and yaw angles we are trying to track. Note that wT (t) ¼ w0
for the hover controller. The command accelerations, €rides , are
calculated from proportional-integral differential feedback of
the position error, ei ¼ (ri,T À ri ), as
(€ri, T À €rides ) þ kd,i (_ri,T À r_i ) þ kp,i (ri, T À ri )
Z
þ ki,i (ri, T À ri ) ¼ 0,
where r_i,T ¼ €ri,T ¼ 0 for hover.
Then, we linearize (1) to get the relationship between the
desired accelerations and roll and pitch angles
€r1des ¼ g(hdes cos wT þ /des sin wT ),
€r2des ¼ g(hdes sin wT À /des cos wT ),
8kF xh
DxF :
€r3des ¼
m

(8)

These relationships are inverted to compute the desired roll
and pitch angles for the attitude controller, from the desired
accelerations, as well as DxF
1
/des ¼ (€r1des sin wT À €r2des cos wT ),
g
1
hdes ¼ (€r1des cos wT þ €r2des sin wT ),
g
m des
€r :
DxF ¼
8kF xh 3

(9a)
(9b)
(9c)

The position control loop for the hover controller runs at
100 Hz, while the inner attitude control loop runs at 1 kHz.
There is the usual tradeoff in optimizing the control gains
between speed of response and stability. Experimental results
show [see the representative trial in Figure 4(a) and (b)] for a
tightly optimized stiff controller the horizontal positioning errors
IEEE Robotics & Automation Magazine

59



Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - September 2010

IEEE Robotics & Automation Magazine - September 2010 - Cover1
IEEE Robotics & Automation Magazine - September 2010 - Cover2
IEEE Robotics & Automation Magazine - September 2010 - 1
IEEE Robotics & Automation Magazine - September 2010 - 2
IEEE Robotics & Automation Magazine - September 2010 - 3
IEEE Robotics & Automation Magazine - September 2010 - 4
IEEE Robotics & Automation Magazine - September 2010 - 5
IEEE Robotics & Automation Magazine - September 2010 - 6
IEEE Robotics & Automation Magazine - September 2010 - 7
IEEE Robotics & Automation Magazine - September 2010 - 8
IEEE Robotics & Automation Magazine - September 2010 - 9
IEEE Robotics & Automation Magazine - September 2010 - 10
IEEE Robotics & Automation Magazine - September 2010 - 11
IEEE Robotics & Automation Magazine - September 2010 - 12
IEEE Robotics & Automation Magazine - September 2010 - 13
IEEE Robotics & Automation Magazine - September 2010 - 14
IEEE Robotics & Automation Magazine - September 2010 - 15
IEEE Robotics & Automation Magazine - September 2010 - 16
IEEE Robotics & Automation Magazine - September 2010 - 17
IEEE Robotics & Automation Magazine - September 2010 - 18
IEEE Robotics & Automation Magazine - September 2010 - 19
IEEE Robotics & Automation Magazine - September 2010 - 20
IEEE Robotics & Automation Magazine - September 2010 - 21
IEEE Robotics & Automation Magazine - September 2010 - 22
IEEE Robotics & Automation Magazine - September 2010 - 23
IEEE Robotics & Automation Magazine - September 2010 - 24
IEEE Robotics & Automation Magazine - September 2010 - 25
IEEE Robotics & Automation Magazine - September 2010 - 26
IEEE Robotics & Automation Magazine - September 2010 - 27
IEEE Robotics & Automation Magazine - September 2010 - 28
IEEE Robotics & Automation Magazine - September 2010 - 29
IEEE Robotics & Automation Magazine - September 2010 - 30
IEEE Robotics & Automation Magazine - September 2010 - 31
IEEE Robotics & Automation Magazine - September 2010 - 32
IEEE Robotics & Automation Magazine - September 2010 - 33
IEEE Robotics & Automation Magazine - September 2010 - 34
IEEE Robotics & Automation Magazine - September 2010 - 35
IEEE Robotics & Automation Magazine - September 2010 - 36
IEEE Robotics & Automation Magazine - September 2010 - 37
IEEE Robotics & Automation Magazine - September 2010 - 38
IEEE Robotics & Automation Magazine - September 2010 - 39
IEEE Robotics & Automation Magazine - September 2010 - 40
IEEE Robotics & Automation Magazine - September 2010 - 41
IEEE Robotics & Automation Magazine - September 2010 - 42
IEEE Robotics & Automation Magazine - September 2010 - 43
IEEE Robotics & Automation Magazine - September 2010 - 44
IEEE Robotics & Automation Magazine - September 2010 - 45
IEEE Robotics & Automation Magazine - September 2010 - 46
IEEE Robotics & Automation Magazine - September 2010 - 47
IEEE Robotics & Automation Magazine - September 2010 - 48
IEEE Robotics & Automation Magazine - September 2010 - 49
IEEE Robotics & Automation Magazine - September 2010 - 50
IEEE Robotics & Automation Magazine - September 2010 - 51
IEEE Robotics & Automation Magazine - September 2010 - 52
IEEE Robotics & Automation Magazine - September 2010 - 53
IEEE Robotics & Automation Magazine - September 2010 - 54
IEEE Robotics & Automation Magazine - September 2010 - 55
IEEE Robotics & Automation Magazine - September 2010 - 56
IEEE Robotics & Automation Magazine - September 2010 - 57
IEEE Robotics & Automation Magazine - September 2010 - 58
IEEE Robotics & Automation Magazine - September 2010 - 59
IEEE Robotics & Automation Magazine - September 2010 - 60
IEEE Robotics & Automation Magazine - September 2010 - 61
IEEE Robotics & Automation Magazine - September 2010 - 62
IEEE Robotics & Automation Magazine - September 2010 - 63
IEEE Robotics & Automation Magazine - September 2010 - 64
IEEE Robotics & Automation Magazine - September 2010 - 65
IEEE Robotics & Automation Magazine - September 2010 - 66
IEEE Robotics & Automation Magazine - September 2010 - 67
IEEE Robotics & Automation Magazine - September 2010 - 68
IEEE Robotics & Automation Magazine - September 2010 - 69
IEEE Robotics & Automation Magazine - September 2010 - 70
IEEE Robotics & Automation Magazine - September 2010 - 71
IEEE Robotics & Automation Magazine - September 2010 - 72
IEEE Robotics & Automation Magazine - September 2010 - 73
IEEE Robotics & Automation Magazine - September 2010 - 74
IEEE Robotics & Automation Magazine - September 2010 - 75
IEEE Robotics & Automation Magazine - September 2010 - 76
IEEE Robotics & Automation Magazine - September 2010 - 77
IEEE Robotics & Automation Magazine - September 2010 - 78
IEEE Robotics & Automation Magazine - September 2010 - 79
IEEE Robotics & Automation Magazine - September 2010 - 80
IEEE Robotics & Automation Magazine - September 2010 - 81
IEEE Robotics & Automation Magazine - September 2010 - 82
IEEE Robotics & Automation Magazine - September 2010 - 83
IEEE Robotics & Automation Magazine - September 2010 - 84
IEEE Robotics & Automation Magazine - September 2010 - 85
IEEE Robotics & Automation Magazine - September 2010 - 86
IEEE Robotics & Automation Magazine - September 2010 - 87
IEEE Robotics & Automation Magazine - September 2010 - 88
IEEE Robotics & Automation Magazine - September 2010 - 89
IEEE Robotics & Automation Magazine - September 2010 - 90
IEEE Robotics & Automation Magazine - September 2010 - 91
IEEE Robotics & Automation Magazine - September 2010 - 92
IEEE Robotics & Automation Magazine - September 2010 - 93
IEEE Robotics & Automation Magazine - September 2010 - 94
IEEE Robotics & Automation Magazine - September 2010 - 95
IEEE Robotics & Automation Magazine - September 2010 - 96
IEEE Robotics & Automation Magazine - September 2010 - 97
IEEE Robotics & Automation Magazine - September 2010 - 98
IEEE Robotics & Automation Magazine - September 2010 - 99
IEEE Robotics & Automation Magazine - September 2010 - 100
IEEE Robotics & Automation Magazine - September 2010 - 101
IEEE Robotics & Automation Magazine - September 2010 - 102
IEEE Robotics & Automation Magazine - September 2010 - 103
IEEE Robotics & Automation Magazine - September 2010 - 104
IEEE Robotics & Automation Magazine - September 2010 - Cover3
IEEE Robotics & Automation Magazine - September 2010 - 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