0% found this document useful (0 votes)
19 views

Control of Quadrotors Using The Hopf Fibration On SO (3) - 211-227

四旋翼飞行控制

Uploaded by

snail10150824
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Control of Quadrotors Using The Hopf Fibration On SO (3) - 211-227

四旋翼飞行控制

Uploaded by

snail10150824
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Control of Quadrotors Using the Hopf

Fibration on S O(3)

Michael Watterson and Vijay Kumar

1 Introduction

Quadrotors and other multi-rotor autonomous micro aerial vehicles have been studied
extensively in recent years. The control literature is mostly focused on model based
approaches using either linear control or nonlinear control derived from geometric
approaches [8, 14]. There has been some research on learning based control [24], but
the model based approaches are more mature and can provide provable guarantees
on stability.
Linearized control approaches express the nonlinear dynamics as a first order
approximation around a fixed set point or the current state [7]. Model predictive
methods [3, 17, 19] compute this linearization around a window of control states
and optimize a sequence of control inputs in a receding horizon manner. These
methods are adaptable to many types of quadrotor based dynamical systems such as
tethered flight [19], attached active or passive manipulators [3] and many others [10].
Geometric techniques directly use the nonlinear structure of the dynamics of the
robot. [8] uses an error metric on the rotation group S O(3) to control the attitude of
the robot. The desired attitude is calculated from errors in 3D position and velocity
to create a controller which can control on S E(3). This controller is stable almost
everywhere which is better than the local stability results guaranteed by linearized
methods. Reference [14] showed how this controller could be applied to a physical

Michael Watterson is supported with a NASA space technology research fellowship. Infrastructure
was supported by grants HR001151626/HR0011516850, W911NF-08-2-0004, and N00014-17-1-
2437.

M. Watterson (B) · V. Kumar


University of Pennsylvania, 3330 Walnut St, Philadelphia, PA 19104, USA
e-mail: [email protected]
V. Kumar
e-mail: [email protected]

© Springer Nature Switzerland AG 2020 199


N. M. Amato et al. (eds.), Robotics Research, Springer Proceedings
in Advanced Robotics 10, https://doi.org/10.1007/978-3-030-28619-4_20
200 M. Watterson and V. Kumar

quadrotor and be used to plan trajectories. That work has been extended by [1] to
only need control over attitude rates as opposed to attitude and attitude rates. This
geometric approach can also be extended to other models such as hybrid systems
[21].
Inverted acrobatics with a quadrotor has been performed with a myriad of tech-
niques [4, 9, 11, 15]. All of these techniques use open loop rate control for some part
of the trajectory. [15] uses a hybrid transition between geometric control and rate
control. Reference [4] uses an approach where the quadrotor has an inverted open
loop phase in which the robot drifts during the inversion. References [9, 11] use open
loop rate input for the entire trajectory. They correct the control inputs based on past
performance of the maneuver to reduce error over successive trials.
The control of just the attitude of a quadrotor without any position feedback as
been done with a general S O(3) formulation as part of [8, 14]. Without position
feedback, there are no singularity issues and these approaches has been shown to
be asymptomatically stable almost everywhere on S O(3). This resulted stabilization
from an inverted initial condition in [8]. A mediation of numerical stability issues
near the position feedback singularity in [14] was proposed in that work to limit
instantaneous desired attitude changes from 180◦ to 90◦ , but does not guarantee
continuity of the desired attitude.
One example of the Hopf fibration in application to robotics is in [23] which uses
the Hopf fibration to generate samples on S O(3) with an application to robot motion
planning. In their work, they use spherical coordinates to parameterize S 2 , which
produces a different function than in our work which uses an input element of S 2
directly.
In this work we propose a geometric controller for a quadrotor using the Hopf
fibration which is valid for almost all of S O(3) and has a singularity further from
hover than [8, 14]. The Hopf fibration can be used to generate a map S 2 × S 1 →
S O(3). We propose a new Hopf Fibration Control Algorithm (HFCA) which uses
2 charts on S 2 to describe the full manifold. Since it takes 2 charts to cover S 1 , we
end up needing 2 × 2 = 4 charts to cover S O(3), which is the theoretical minimum
number [5]. With this parameterization of S O(3) we are able to control a quadrotor
everywhere on S E(3) using a geometric feedback controller. While any state in
S E(3) is valid for our controller, we also must have a feasible trajectory in this
space which respects the non-holonomic constraints of the platform which only has
4 inputs. We use the flatness transform of [14] and use the flat variables to generate
a control input. We demonstrate the performance of this controller in simulation and
compare it to the other geometric controller [14]. On an experimental platform we
show aggressive maneuvers which would hit the singularities of other controllers,
but work with our approach.
The advantages of our approach over the traditional geometric controller for
quadrotors, is that 1: the Hopf fibration directly represents the rotation of the robot
without needing to perform a Gram–Schmidt decomposition, 2: ensures continuous
control inputs for position feedback for all orientations on S O(3), and 3: the repre-
sentation easily allows a choice of yaw angle to make the body frame yaw angular
Control of Quadrotors Using the Hopf Fibration on S O(3) 201

Chart 1 (q) Chart 2 (q̄)

HFCA

Fig. 1 The Hopf Fibration Control Algorithm (HFCA) switches between two geometric construc-
tions of S O(3) based on the desired direction of thrust of the robot. One of these is singular when
this direction is directly up (orange) and the other when the direction is directly down (blue). The
set of feasible directions for each construction is plotted as a subset of the sphere, with the point
singularity on each expanded for visualization. By switching between these two maps we insure
our controller is valid for all orinetations in S O(3), and thus has feeedback for all of S E(3)

velocity zero, which is the redundant degree of freedom for controlling the position
of the robot (Fig. 1).
We structure the paper starting with an overview of the dynamic model and the
differential flatness property applied to quadrotors in Sect. 2. We introduce Hopf
fibration and the use of quaternions in Sect. 3. The Hopf Fibration Control Algorithm
(HFCA) is detailed in Sect. 4 along with the necessary second Hopf fibration need for
complete coverage of S O(3). In Sect. 5, we show our experimental setup, trajectory
generation and results in both simulation and with hardware.

2 Modeling

2.1 Dynamic Model

We define an inertial reference frame W to describe the motion of the robot’s rigid
body frame B. The world frame e3 vector is aligned against gravity making gravi-
tational acceleration g = −g · e3 . The robot’s rotors each produce a thrust parallel
to the b3 vector and b1 and b2 are aligned with the arms of the robot. The motors
produce a body frame moment ([m 1 , m 2 , m 3 ]T ) and thrust f in the b3 direction. This
wrench is dependent on the propeller speeds si , thrust properties k f , km , and the
characteristic length of the robot L [14].
⎡ ⎤ ⎡ ⎤ ⎡ 2⎤
m1 0 kf L 0 −k f L s1
⎢m 2 ⎥ ⎢−k f L 0 kf L 0 ⎥ ⎢s 2 ⎥
⎢ ⎥=⎢ ⎥ ⎢ 2⎥ (1)
⎣m 3 ⎦ ⎣ km −km km −km ⎦ ⎣s32 ⎦
f kf kf kf kf s42
202 M. Watterson and V. Kumar

Fig. 2 The quadrotor’s body frame B (vectors b1 ,b2 , and b3 ) shown in relation to an inertial frame
W with vectors e1 ,e2 , and e3 . For a geometric controller, the yaw of the robot is determined by a
rotated frame (a1 ,a2 ,a3 ) about the world e3 direction

From this wrench acting on the system, the equations of motion can be found
from classical dynamics. We use the convention where all angular velocities ω are
represented in the robot’s body frame and all linear positions and velocities are
expressed in the world frame. The mass of the robot is m and the angular inertia
tensor is H . The differential relation between ω and the rotation matrix R depend
on the coordinates in which R is expressed. In Sect. 4 we will introduce this relation
using the quaternion representation and it can be described in terms of the 9 elements
of the rotation matrix in Eq. 4 (Fig. 2).

m r̈ = −m · g + R · f e3
⎡ ⎤
m1 (2)
H ω̇ = ⎣m 2 ⎦ − ω × (H ω)
m3

The full state and control inputs of the robot is shown in Eq. 3. Underneath the
horizontal line, we clearly state the domain of each variable. Since the state contains
elements in both Rn and S O(3), we denote it as a set instead of a state vector. The
angular velocity and the rotational dynamics are related by Eq. 4 where the hat (.̂)
operator takes an R3 vector and returns the corresponding skew symmetric matrix
such that v̂1 · v2 = v1 × v2 for any two vectors v1 , v2 ∈ R3 .
Control of Quadrotors Using the Hopf Fibration on S O(3) 203

x = {r, R, ṙ , ω}
u = {s12 , s22 , s32 , s42 }
r, ṙ ∈ R3
(3)
R ∈ S O(3)
ω ∈ R3
s12 , s22 , s32 , s42 ∈ [0, ∞)
ω̂ = R T Ṙ (4)

2.2 Differential Flatness

The dynamics of a quadrotor are well known to be differentially flat [14] which
means the state and control inputs (Eq. 3) can be mapped to flat outputs (Eq. 5)
through a change of coordinates φ : (x, u) → γ . γ is the collection of flat outputs
of the system, which consist of the R3 location of the quadrotor, the derivatives of
this locations, and yaw orientation ψ and its derivative.
...
γ = {r, ṙ , r̈ , r , ψ, ψ̇}
...
r, ṙ , r̈ , r ∈ R3
(5)
ψ ∈ S O(2)
ψ̇ ∈ R

One map is not sufficient for the entire domain between these two spaces (Eqs. 3
and 5) because S O(3) needs at least 4 charts [5]. Previous geometric approaches use
one map, which can cover a open subset of S O(3). For example, this open subset
excludes orientations where a2 is parallel to the desired thrust. We will use multiple
diffeomorphisms for φ, so we can get full coverage of S O(3). We show the charts
in Sect. 4.2.
For a quadrotor which can only produce positive forces with each propeller, there
is an intrinsic singularity of the system for a trajectory which requires all the motors
to be simultaneously off s12 = s22 = s32 = s42 = 0. This corresponds to the situation
where the robot is exerting zero force and is thus in free fall. We cannot compute a
differentially flat relationship for this case because this maneuver is not in a control-
lable region of the dynamics. This is because without reversible motors or variable
pitched propellers, each propeller cannot produce a force in some ball of radius δ > 0
around producing zero force. So we assume the robot is never in complete free fall.

2.3 Geometric Control on S E(3)

Geometric control for a quadrotor operates on the principle that the thrust of the
robot is in the body frame b3 direction. This can be stated with a constraint which
204 M. Watterson and V. Kumar

determines two dimensions of R:


r̈ + g
= R(γ ) · e3 (6)
||r̈ + g||

The traditional geometric control technique described in [8, 14] uses a Gram–
Schmidt process to construct an orthonormal basis of R3 from two vectors. This
basis is constructed to be right handed and thus describes an element of S O(3). The
second axis a1 describes the yaw of the robot. This leaves a singularity whenever
r̈ + g is parallel to a1 . To keep this singularity far away from normal operation it
is often chosen to be perpendicular to gravity (ex. a1 = [cos(ψ), sin(ψ), 0]T ). This
results in a singularity when the robot is pitched by 90◦ with respect to hover.
 r̈ +g b3w ×a1
R(γ ) = b1w b2w b3w , b3w = ||r̈+g||
, b2w = ||b3w ×a1 ||
, b1w = b2w × b3w (7)

From a desired angle we can compute a feedback term for the rotation using the
formula from [14] which has a proportional and derivative term on the rotation.
⎡ ⎤
m1
⎣m 2 ⎦ = −k R 1 (RdT R − R T Rd )∨ − kω (ω − ωd ) (8)
m3 2

The desired force is calculated with a feedback error on the position and velocity of
the robot.
f = (−k x (r − rd ) − kv (ṙ − r˙d ) + r¨d ) · Re3 (9)

Here we note that any possible parameterization of S O(3) can be used inside
the function R(γ ) as long Eq. 6 holds and we can invert this function to have a
diffeomorphism between the flat variables and S E(3) state in Eq. 5. If we use Euler
angles, R(γ ) becomes a complicated function because Eq. 6 is a nonlinear constraint
in the Euler angles. We will show in Sect. 3 that the Hopf fibration provides a simple
way of enforcing Eq. 6.
We can show that the geometric control paradigm of constructing R from a desired
thrust direction is not possible without introducing a singularity. For an arbitrary state
γ , it is possible to construct a non-singular R(γ ) which is smooth and diffeomorphic
everywhere. For example, if γ contains an element of S O(3), the identity function
works for R(γ ). With quadrotor geometric control, part of the state constrains a
desired direction for the thrust (r̈ + g) and part defines the rest of the rotation (ψ).
For the proof that any construction causes a singularity, we can just look at this
direction and hold the rest of the state constant. Let us define this direction as s =
r̈ +g
||r̈+g||
. Let F(s) : S 2 → S O(3) be the function that results from R(γ ) holding all
of the state γ constant except s. Thus F(s) · e3 = s for all s. Let us assume R is
continuous and differentiable everywhere on S O(3), and thus F must be continuous
and differentiable too. Now if we take a non-zero vector y perpendicular to e3 ,
their inner product is zero (y · e3 = 0). Since rotations preserve length, we also
Control of Quadrotors Using the Hopf Fibration on S O(3) 205

have (F(s) · y) · (F(s) · e3 ) = 0, which is (F(s) · y) · s = 0. Thus we have found a


continuous vector field (F(s) · y) which is tangent to S 2 . By the Hairy ball theorem
[16], this must be zero somewhere, but ||F(s) · y|| = ||y|| > 0 because y = 0. Thus
F(s) cannot be continuous everywhere on S 2 by contradiction and thus R(γ ) cannot
be continuous everywhere.

3 Quaternions and the Hopf Fibration

To develop a better function R(γ ), we introduce the use of unit quaternions to rep-
resent rotations. We will write a quaternion using the Hamilton convention [20]. For
computation we will use the representation S 3 ≡ {x ∈ R4 | x T x = 1} and assume
the following standard operations are known:

R(q) : S 3 → S O(3) ⊂ R3×3


q1 ⊗ q2 : S × S 3 → S 3 | R(q1 ⊗ q2 ) = R(q1 ) · R(q2 )
3
(10)
q −1 : S 3 → S 3 | q −1 ⊗ q = I

The function R(q) takes a unit quaternion and produces the corresponding rota-
tion matrix. This map is two to one as both q and −q map to the same rotation.
The quaternion product q1 ⊗ q2 composes quaternions in such a way that the corre-
sponding rotations are also composed. This operation is non-commutative just like
the composition of rotation matrices. The final operation we need is the inverse. The
inverse of an element left or right multiplied with an element produces the identity
element I = [1, 0, 0, 0]T .
The Hopf fibration is a mapping from S 3 to S 2 × S 1 [2]. If we take the inverse map
and use the quaternion mapping to S O(3), we get a map from S 2 × S 1 to S O(3).
This is shown explicitly in [12], but for a different ordering of variables we can get
other valid Hopf fibrations. With a properly ordered geometric construction of the
Hopf fibration, we are able to have this map represent the orientation of the quadrotor
in a manner which is convenient to expressing the dynamics of the system. The S 2
component of the map will directly be the body frame b3 vector expressed in the
word frame and the S 1 component will be a body frame yaw angle.
For the 2D sphere, we have the point [a, b, c]T ∈ S 2 if [a, b, c]T ∈ R3 and is
distance 1 from the origin. By taking the time derivative, we can also write an
expression which is needed for simplifying equations:

a 2 + b2 + c2 = 1
(11)
a ȧ + bḃ + cċ = 0

We can write the following unit quaternion as a function of S 2 . We note that with
the properties in Eq. 11, it can be shown that the magnitude is 1:
206 M. Watterson and V. Kumar
⎡ ⎤
1+c
1 ⎢ −b ⎥
qabc =√ ⎢ ⎥ (12)
2(1 + c) ⎣ a ⎦
0

An application of the quaternion to rotation matrix map shows that this quaternion
indeed has the property that the body frame b3 direction is the elements of S 2 :
 T
R(qabc )e3 = a b c (13)

qabc alone cannot parameterize S O(3) because S 2 is a 2 dimensional manifold and


thus this map describes a 2D subset of S O(3). However we can get a 3D parameter-
ization by right multiplying by a quaternion which describes a rotation about an e3
axis by and angle ψ ∈ S O(2). We note that S O(2) and S 1 have the same topological
structure. Using qψ = [cos ψ2 , 0, 0, sin ψ2 ], we get the quaternion:

q = qabc ⊗ qψ (14)

Since R(qψ ) is a rotation about b3 , Eq. 13 also hold for q and thus can be used to
describe R consistently with Eq. 6.

4 The Hopf Fibration Control Algorithm

Our control algorithm consists of calculating the state and control inputs from the flat
variables using our representation of the desired rotation. To get around the S O(3)
parameterization singularity we show how a second fibration can be used to cover
the singularity when the quadrotor is fully inverted. Using an extension to S E(3),
we can control the full flat state of the robot.

4.1 Differential Flatness with Hopf Fibration

To calculate the control inputs, we need to transform from the flat variables to the
state variables. To use q as a parameterization of R, we need the following quater-
nion property which expresses the body frame angular velocity in terms of the time
derivative of the quaternion.
ω = 2q −1 ⊗ q̇ (15)

Using Eqs. 10, 11, and 15, we can derive expressions for the angular velocity as
a function of a, b, c, and ψ. Where ω1 , ω2 , ω3 are the components of the angular
velocity expressed about the b1 , b2 , b3 body axes.
Control of Quadrotors Using the Hopf Fibration on S O(3) 207

ω1 = sin(ψ)ȧ − cos(ψ)ḃ − (a sin(ψ) − b cos(ψ)) ċ


c+1
ω2 = cos(ψ)ȧ + sin(ψ)ḃ − (a cos(ψ) + b sin(ψ)) ċ
c+1 (16)
ω3 = bȧ−a
1+c

+ ψ̇

The magnitude of the first two components of the angular velocity is the mag-
nitude of [ȧ, ḃ, ċ]T . Since this is independent of ψ, we can find a trajectory for ψ
which minimizes angular velocity by setting ω3 = 0. This is convenient because the
dynamics of a quadrotor have a better response in producing moments in the b1 and
b2 axes than the b3 since the torque produced by the force of a propeller is stronger
than its rotation moment.

||ω12 ||2 = ω12 + ω22 = ȧ 2 + ḃ2 + ċ2 (17)

Up until now we have assumed our rotation is a function as a point on the sphere
S 2 , but to use the quadrotor we need to express this point in terms of the flat variables.
We do this by making the same assumption as the traditional geometric control that
the thrust of the quadrotor is aligned with its body axis.

ζ = f · b3 = r̈ + g (18)

 T ζ
abc = normalize(ζ ) = (19)
||ζ ||

The function normalize(ζ ) computes the unit vector in the direction ζ by normalizing
it. Since we need the derivatives of the points on the sphere, we take the time derivative
of the normalization function. Equating this will give us a full expression in term of
the flat variables for the angular velocities and attitude.

 T d ζTζ · I − ζζT
ȧ ḃ ċ = normalize(ζ ) = · ζ̇ (20)
dt ||ζ ||3

This relation gives a simple form for calculating the magnitude of the angular
velocity. Reference [6] uses a bound on this formula for computing trajectories for a
robot.
||ζ̇ ||
||ω12 || = sin(∠ζ ζ̇ ) (21)
||ζ ||

4.2 Control on SO(3)

With the known dynamics, a desired path through acceleration space (r̈) can be
converted into a trajectory of rotations and angular velocities. Since the attitude
controller from [14] operates on S O(3) and the angular velocities, we can use it to
control the attitude of our robot without modification. Reference [8] provides a proof
208 M. Watterson and V. Kumar

of the stability properties of the attitude controller which is exponentially stable for
rotational error less than 90◦ and attractive for error less than 180◦ .
The important difference of our approach is that our singularity is further from
hover than that of [8, 14]. In addition we have the benefit that we never need to
explicitly compute R to find control inputs because we have a direct parameterization
of the desired quaternion. This also simplifies the calculation of the desired ω.
The one case this approach will not work is for a flip which requires full inversion
of the platform. To be able to use all possible orientations, we need a secondary map
to cover orientations around full inversion. We can write a second quaternion which
is singular about c = 1 instead of c = −1 like in our first map:
⎡ ⎤
−b
1 ⎢1 − c⎥
q̄abc =√ ⎢ ⎥ (22)
2(1 − c) ⎣ 0 ⎦
a

We again need to rotate about b3 by an angle ψ̄ to get a 3 dimensional parameterization


of S O(3). We denote this angle ψ̄ because [a, b, c]T needs a different angle ψ and
ψ̄ in each chart to represent the same rotation.

q̄ = q̄abc ⊗ qψ̄ (23)

It can be verified that Eq. 13 also holds for this quaternion and that these two param-
eterizations overlap on [a, b, c]T = [0, 0, ±1]T . When we transition from one map
to the other, we need to calculate ψ̄ in terms of ψ which we can get by equating the
two rotations:
ψ̄ = arctan 2(a, b) + ψ (24)

For our second chart (q̄), we can find the angular velocity using the same method
as with the first fibration:

ω1 = sin(ψ)ȧ + cos(ψ)ḃ − (a sin(ψ) + b cos(ψ)) ċ


c−1
ω2 = cos(ψ)ȧ − sin(ψ)ḃ − (a cos(ψ) − b sin(ψ)) ċ
c−1 (25)
ω3 = b−1+c
ȧ−a ḃ
+ ψ̄˙

For this chart, the magnitude of ||ω12 || is the same as in Eq. 17 but rotated as the
parameter ψ describes yaw in a different way on the second chart. We simply need
to ensure that the desired profile for ψ respects this when the quadrotor transitions
between charts. For example, the different between ψ̇ and ψ̄˙ at the transition point
can be found by making ω3 the same in Eqs. 16 and 25. Equivalently, the change
from ψ̇ to ψ̄˙ can be found by differentiating equation 23. Since S O(3) is a smooth
manifold, we can insure that differentiating (23) further will results in all derivatives
on S O(3) will be continuous during the chart transition [22].
Control of Quadrotors Using the Hopf Fibration on S O(3) 209

The HFCA switches between charts whenever c = 0. As the robot’s desired ori-
entation rotates past 90◦ we compute ψ in the other chart using Eq. 24. For trajec-
tories which do not care about yaw, we can update ψ by assuming ω3 = 0. Since
ψ ∈ S O(2), we actually need two charts representing ψ for each chart on S 2 . Thus
our approach uses 4 charts to cover S O(3), since S O(2) is a one parameter group,
switching charts representing ψ is just done by adding or subtracting 2π from an
angular representation of ψ.

4.3 Extension to S E(3)

To be able to control the quadrotor in 3D space, we need to have feedback on the posi-
tion and velocity of the system, not just the orientation. We take the same approach
as [8, 14], and use a proportional-derivative control term along with a feed forward
term on the desired acceleration. When we evaluate this on the differentially flat
equations, we need to take the derivative of this equation to find the angular veloci-
ties. Thus our feedback ends up being on position, velocity, and acceleration in flat
space and has a feed forward term calculated from the desired jerk.

ζ = −k x (r − rd ) − kv (ṙ − r˙d ) + r¨d + g (26)

5 Simulations and Experimental Results

We performed tests of our controller in both simulation and on a hardware platform.


For both, we used the circular trajectories described in Sect. 5.2 with a rotation rate of
ωc = 4 rad/s. We let the controller fully stabilize at a hover position and then slowly
increased the radius ρ over 10 s in a minimum snap profile. Whenever we transition
between different circle trajectories we also take 10 s with minimum snap profile on
the exponential coordinates.

5.1 Hardware Platform

Our testbed is an stock Lumenier QAV250 racing quadrotor with a pixracer autopilot
running the PX4 stack [13]. We choose this platform for its high thrust to weight
ratio and small size. It is 34 cm when measured between the furthest two tips of the
propellers. It weighs 400 g and can produce a maximum thrust of 1.2 kg. This thrust
to weight ratio is comparable to larger platforms with on-board pose estimation. A
external motion capture system provides pose information at 100 hz (Fig. 3).
210 M. Watterson and V. Kumar

Fig. 3 The hardware platform we use is a commercial racing quadrotor and autopilot. The platform
measures 34 cm prop tip to prop tip and weights 400 g

5.2 Trajectory Generation

To test the performance of our controller, we use circular trajectories for the quadrotor
because they can demonstrate highly aggressive behavior in tightly confined spaces.
Also, they can be varied continuously between horizontal and vertical loops in such a
way to show all possible orientations achievable by our controller. These trajectories
are purposefully non-optimal as to stress the controller. Trajectories that start and
stop from hover at the bottom of an inverted loop [9] take much less force because
they do not need to maintain centripetal acceleration at the bottom.
We parameterize a circle with radius ρ and angular velocity ωc . To smoothly enter
and exit these trajectories we generate a minimum snap polynomial for ρ, but assume
ωc is a constant. By varying ρ from 0 to some fixed radius, we can start a circular
trajectory smoothly from a stopped state.
⎡ ⎤
ρ cos(ωc t)
p(t) = ⎣ ρ sin(ωc t) ⎦ (27)
0

To transform between trajectories of different orientations, we rotate using a rota-


tion parameterized by exponential coordinates:

r (t) = exp ξ̂ (t) · p(t) (28)

To input these trajectories into the controller, we need up to the third derivative
of r because of the ζ̇ term in the angular velocity. Taking the time derivative of
Control of Quadrotors Using the Hopf Fibration on S O(3) 211

exponential coordinates can be simplified if the coordinates are a function along one
axis. We assume ξ = α(t)v for some fixed v ∈ R3 . We write the derivatives of ξ
as ξ̇ to save horizontal space, but note these expressions are not true for arbitrary
functions ξ(t). 
ṙ (t) = exp(ξ̂ (t)) ṗ + ξ̇ˆ p (29)


r̈ (t) = exp(ξ̂ (t)) p̈ + 2ξ̇ˆ ṗ + 2ξ̈ˆ p + (ξ̇ˆ )2 p (30)

...
r (t) = exp(ξ̂ (t))· 
... ...
p + 3ξ̈ˆ ṗ + 3ξ̇ˆ p̈ + 3ξ̈ˆ ξ̇ˆ p + 3ξ̇ˆ 2 ṗ + ξˆ p + (ξ̇ˆ )3 p
(31)

We also need to calculate the derivatives of p. We can choose ωc based on the


thrust needed in the most aggressive trajectory we execute. When the quadrotor is
fully upside down, it needs to produce some thrust ε > 0 to stay away from the
zero singularity in dynamics. During the top of a circular trajectory, the centripetal
acceleration will be this thrust plus the gravitational acceleration. At the bottom the
needed thrust will be maximal at 2ε + g. So we can calculate a feasible ωc based on
the radius of the circular trajectory, ε and the maximum acceleration achievable by
our platform. The other dynamic constraints such as thrust limits are constrained by
evaluating the nominal thrust on the trajectory and choosing a different ωc and ρ if
they violate the limits.
⎡ ⎤
ρ̇ cos(ωc t) − ρωc sin(ωc t)
ṗ = ⎣ρ̇ sin(ωc t) + ρωc cos(ωc t)⎦ (32)
0
⎡ ⎤
ρ̈ cos(ωc t) − 2ωc ρ̇ sin(ωc t) − ωc2 ρ cos(ωc t)
p̈ = ⎣ ρ̈ sin(ωc t) + 2ωc ρ̇ cos(ωc t) − ωc2 ρ sin(ωc t) ⎦ (33)
0
⎡ ... ⎤
ρ − 3ωc2 ρ̇) cos(ωc t) − (3ωc ρ̈ − ωc3 ρ) sin(ωc t)
(...
...
p = ⎣( ρ − 3ωc2 ρ̇) sin(ωc t) + (3ωc ρ̈ − ωc3 ρ) cos(ωc t)⎦ (34)
0

5.3 Simulation Results

In simulation, we compared our controller to that of [14] with identical simulated


robots. Since the controllers are similar, we used gains tuned for the traditional
geometric controller directly on our controller without any modification. Since ψ is
defined differently between the controllers, there is not a direct way to ensure the
212 M. Watterson and V. Kumar

10 2

x (m)

x (m)
0 0

-10 -2
0 5 10 15 20 0 5 10 15 20
t (s) t (s)
50 0.5
y (m)

y (m)
0 0

-50 -0.5
0 5 10 15 20 0 5 10 15 20
t (s) t (s)
10 6
z (m)

z (m)
5 4

0 2
0 5 10 15 20 0 5 10 15 20
t (s) t (s)
Actual Position
Desired Position

Fig. 4 Comparing to the traditional geometric controller [14] with fixed ψ. The HFCA is on
the right. On the left is the traditional controller. In this highly aggressive trajectory, [14] hits a
singularity and fails to control the robot

trajectory of the robot is the same in the yaw orientation. As an example, we can give
both of the controllers a commanded ψ of zero.
When we execute a circular trajectory of radius 1 m with both controllers, we
find that our controller executes well, while the traditional controller saturates the
actuators and goes unstable at this radius as shown in Fig. 4. Since the trajectory is
not a fixed point, the stability guarantees in [8] are not violated by this failure and a
soon as we stop the trajectory, both controller fully stabilize to hover.
We can actually improve the performance of Mellinger and Kumar’s controller
[14] in the circular trajectories by rotating the yaw at the same rate as the circle. This
keeps the first body axis further away from the centripetal acceleration vector, thus
avoiding the singularity. In the video we show both controllers working well with a
horizontal circular trajectory of radius 1 m.
In the video and Fig. 5, we then rotated the horizontal circle about the world e1
axis by 1.2 radians with a minimum snap rotational profile. Our HFCA successfully
tracks this trajectory, while the other controller fails once the maximum angle goes
near the 90◦ singularity.
In simulation, we execute a continuous sequence of inverted loops which demon-
strates the need of using both fibrations. Whenever the quadrotor is sideways c = 0,
we switch between using the first and second fibration. Again using ωc = 4, and
ρ = 1, we get a trajectory which requires a thrust of 0.6 g at the top and 2.6 g at the
bottom.
The simulated quadrotor is able to fully invert as shown in Fig. 6. The feedback
controller is able to complete flips for as long as we leave it running despite having
Control of Quadrotors Using the Hopf Fibration on S O(3) 213

10 2

x (m)

x (m)
0 0

-10 -2
0 5 10 0 5 10
t (s) t (s)
50 0.5
y (m)

y (m)
0 0

-50 -0.5
0 5 10 0 5 10
t (s) t (s)
5 6
z (m)

z (m)
4

0 2
0 5 10 0 5 10
t (s) Actual Position t (s)
Desired Position

Fig. 5 Controller comparison with changing ψ. Again, our controller is on the right and performs
better once the quadrotors start to invert. Video is at https://www.youtube.com/watch?v=ycdmfKB-
Ps0

5
Actual Velocity
4 Desired Velocity

2
z(m/s)

-1

-2

-3

-4
-5 0 5
x(m/s)

Fig. 6 X-Z velocity plot of inverting the quadrotor in simulation

only proportional and derivative terms. Since the trajectories are periodic, small
errors in velocity persist over multiple loops. Other works have found similar offsets
in their controller and have reduced them by changing model parameters [18].
We are able to demonstrate aggressive maneuvers in which the quadrotor is
inclined up to 1.0 radians from hover. We start a circle trajectory and then rotate

it by exp([1, 0, 0]) and then smoothly transition to exp([0, 1, 0]). The positional
tracking of our controller had a larger error than simulation during the trajectory.
214 M. Watterson and V. Kumar

We believe this can be attributed to several sources of error which were not present
in simulation. Firstly, there is no integral term in the controller to compensate for
model errors. We do not have an exact model of the inertia tensor of the robot or the
propeller force. We estimated the inertia and fit a quadratic model of motor veloc-
ity to thrust on the propellers. At our speeds, we believe there are significant drag
effects which are unmodeled. Despite these issues, the robot is stable doing highly
aggressive maneuvers shown in the attached video.

6 Conclusion

We propose the Hopf Fibration Control Algorithm, a geometric tracking algorithm


that uses the Hopf fibration on S O(3). Our algorithm is superior to previous methods
in that it allows the control of quadrotors through all configurations including ones
in which the orientation of the vehicle is inverted. We demonstrate improved results
in aggressive maneuvering using a family of circular trajectories on a sphere, similar
to those used in acrobatics.

References

1. Achtelik, M.W., Lynen, S., Chli, M., Siegwart, R.: Inversion based direct position control and
trajectory following for micro aerial vehicles. In: IROS, IEEE (2013)
2. Gallier, J., Quaintance, J.: Notes on Differential Geometry and Lie Groups. Springer, Berlin
(2017)
3. Geisert, M., Mansard, N.: Trajectory generation for quadrotor based systems using numerical
optimal control. In ICRA, IEEE (2016)
4. Gillula, J.H., Huang, H., Vitus, M.P., Tomlin, C.J.: Design of guaranteed safe maneuvers using
reachable sets: Autonomous quadrotor aerobatics in theory and practice. In ICRA, IEEE (2010)
5. Grafarend, E.W., Khnel, W.: A minimal atlas for the rotation group SO (3). GEM-Int. J. Geo-
math. (2011)
6. Hehn, M., D’Andrea, R.: Real-Time Trajectory Generation for Quadrocopters. IEEE Trans.
Robot. (2015)
7. How, J., Behihke, B., Frank, A., Dale, D., Vian, J.: Real-time indoor autonomous vehicle test
environment. IEEE Control. Syst. Mag. (2008)
8. Lee, T., Leoky, M., McClamroch, N.: Geometric tracking control of a quadrotor UAV on SE(3).
In: CDC (2010)
9. Lupashin, S., D’Andrea, R.: Adaptive fast open-loop maneuvers for quadrocopters. Auton
Robot. (2012)
10. Lupashin, S., Hehn, M., Mueller, M.W., Schoellig, A.P., Sherback, M., DAndrea, R.: A platform
for aerial robotics research and demonstration: the flying machine arena. Mechatronics (2014)
11. Lupashin, S., Schllig, A., Sherback, M., D’Andrea, R.: A simple learning strategy for high-
speed quadrocopter multi-flips. In: ICRA, IEEE (2010)
12. Lyons, D.W.: An elementary introduction to the hopf fibration. Math. Mag. (2003)
13. Meier, L., Honegger, D., Pollefeys, M.: PX4: A node-based multithreaded open source robotics
framework for deeply embedded platforms. In: ICRA, IEEE (2015)
14. Mellinger, D., Kumar, V.: Minimum snap trajectory generation and control for quadrotors. In:
ICRA, IEEE (2011)
Control of Quadrotors Using the Hopf Fibration on S O(3) 215

15. Mellinger, D., Michael, N., Kumar, V.: Trajectory generation and control for precise aggressive
maneuvers with quadrotors. IJRR (2012)
16. Milnor, J.: Analytic proofs of the “Hairy Ball Theorem” and the brouwer fixed point theorem.
Am. Math. Mon. (1978)
17. Neunert, M., de Crousaz, C., Furrer, F., Kamel, M., Farshidian, F., Siegwart, R., Buchli, J.: Fast
nonlinear model predictive control for unified trajectory optimization and tracking. In: ICRA,
IEEE (2016)
18. Schoellig, A.P., Wiltsche, C., D’Andrea, R.: Feed-forward parameter identification for precise
periodic quadrocopter motions. In: ACC, IEEE (2012)
19. Schulz, M., Augugliaro, F., Ritz, R., D’Andrea, R.: High-speed, steady flight with a quadro-
copter in a confined environment using a tether. In: IROS, IEEE (2015)
20. Sola, J.: Quaternion kinematics for the error-state KF. Technical Report, Laboratoire dAnalyse
et dArchitecture des Systemes-Centre national de la recherche scientifique (LAAS-CNRS),
Toulouse, France (2012)
21. Tang, S., Kumar, V.: Mixed integer quadratic program trajectory generation for a quadrotor
with a cable-suspended payload. In: ICRA, IEEE (2015)
22. Whitney, H.: Differentiable manifolds. Ann. Math. (1936)
23. Yershova, A., Jain, S., Lavalle, S.M., Mitchell, J.C.: Generating uniform incremental grids on
SO (3) using the Hopf fibration. IJRR (2010)
24. Zhang, T., Kahn, G., Levine, S., Abbeel, P.: Learning deep control policies for autonomous
aerial vehicles with mpc-guided policy search. In: ICRA, IEEE (2016)

You might also like