Geometric Adaptive Control of Attitude Dynamics on SO(3)
with State Inequality Constraints

arXiv:1602.04286v1 [math.OC] 13 Feb 2016

Shankar Kulumani, Christopher Poole, and Taeyoung Lee
Abstract— This paper presents a new geometric adaptive
control system with state inequality constraints for the attitude
dynamics of a rigid body. The control system is designed
such that the desired attitude is asymptotically stabilized,
while the controlled attitude trajectory avoids undesired regions
defined by an inequality constraint. In addition, we develop
an adaptive update law that enables attitude stabilization in
the presence of unknown disturbances. The attitude dynamics
and the proposed control systems are developed on the special
orthogonal group such that singularities and ambiguities of
other attitude parameterizations, such as Euler angles and
quaternions are completely avoided. The effectiveness of the
proposed control system is demonstrated through numerical
simulations and experimental results.

I. I NTRODUCTION
Rigid body attitude control is an important problem for
aerospace vehicles, ground and underwater vehicles, as well
as robotic systems [1], [2]. One distinctive feature of the
attitude dynamics of rigid bodies is that it evolves on a nonlinear manifold. The three-dimensional special orthogonal
group, or SO(3), is the set of 3 × 3 orthogonal matrices
whose determinant is one. This configuration space is nonEuclidean and yields unique stability properties which are not
observable on a linear space. For example, it is impossible to
achieve global attitude stabilization using continuous timeinvariant feedback [3].
Attitude control is typically studied using a variety of
attitude parameterizations, such as Euler angles or quaternions [4]. All attitude parameterizations fail to represent the
nonlinear configuration space both globally and uniquely [5].
For example, minimal attitude representations, such as Euler
angle sequences or modified Rodriguez parameters, suffer
from singularities. These attitude representations are not
suitable for large angular slews. Quaternions do not have
singularities but they double cover the special orthogonal
group. As a result, any physical attitude is represented by
a pair of antipodal quaternions on the three-sphere. During
implementation, the designer must carefully resolve this nonunique representation in quaternion based attitude control
systems to avoid undesirable unwinding behavior [3].
Many physical rigid body systems must perform large
angular slews in the presence of state constraints. For example, autonomous spacecraft or aerial systems are typically
equipped with sensitive optical payloads, such as infrared
Shankar Kulumani, Christopher Poole, Taeyoung Lee, Mechanical and
Aerospace Engineering, George Washington University, Washington DC
20052 {skulumani,poolec,tylee}@gwu.edu
This research has been supported in part by NSF under the grants CMMI1243000, CMMI-1335008, and CNS-1337722.

or interferometric sensors. These systems require retargeting
while avoiding direct exposure to sunlight or other bright
objects. The removal of constrained regions from the rotational configuration space results in a nonconvex region. The
attitude control problem in the absence of constraints has
been extensively studied [6], [7], [8]. However, the attitude
control problem in the presence of constraints has received
much less attention.
Several approaches have been developed to treat the
attitude control problem in the presence of constraints. A
conceptually straightforward approach is used in [9] to
determine feasible attitude trajectories prior to implementation. The algorithm determines an intermediate point such
that an unconstrained maneuver can be calculated for each
subsegment. Typically, an optimal or easily implementable
on-board control scheme for attitude maneuvers is applied to
maneuver the vehicle along these segments. In this manner
it is possible to accomplish constraint avoidance by linking
several intermediary unconstrained maneuvers. While this
method is conceptually simple, it is difficult to generalize
for an arbitrary number of constraints. In addition, this
approach is only applicable to problems where the selection
of intermediate points are computationally feasible.
The approach in [10] involves the use of randomized
motion planning algorithms to solve the constrained attitude
control problem. A graph is generated consisting of vertices
from an initial attitude to a desired attitude. A random
iterative search is conducted to determine a path through
a directed graph such that a given cost functional is minimized. The random search approach can only stochastically
guarantee attitude convergence as it can be shown that as
the number of vertices in the graph grow, the probability of
nonconvergence goes to zero. However, the computational
demand grows as the size of the graph is increased. As a
result, random search approaches are ill-suited to on-board
implementation or in scenarios that require agile maneuvers.
Model predictive control for spacecraft attitude dynamics
is studied in [11], [12], [13]. These methods rely on linear
or non-linear state dynamics to repeatedly solve a finitetime optimal control problem. As a result, model predictive
control methods are also computational expensive and apply
direct optimization methods to solve the necessary conditions
for optimality. Therefore these methods are complicated to
implement and not applicable for real-time control applications.
Artificial potential functions are commonly used to handle kinematic constraints for a wide range of problems
in robotics [14]. The goal is the design of attractive and

repulsive terms which drive the system toward or away from
a certain state, respectively. The superposition of the these
functions allows one to apply standard feedback control
schemes for stabilization and tracking. More specifically,
artificial potential functions have previously been applied to
the spacecraft attitude control problem in [15], [16]. However, both of these approaches were developed using attitude
parameterizations, namely Euler angles and quaternions, and
as such, they are limited by the singularities of minimal
representations or the ambiguity of quaternions.
This paper is focused on developing an adaptive attitude
control scheme in the presence of attitude inequality constraints on SO(3). We apply a potential function based approach developed directly on the nonlinear manifold SO(3).
By characterizing the attitude both globally and uniquely on
SO(3), our approach avoids the issues of attitude parameterizations, such as kinematic singularities and ambiguities,
and is geometrically exact. A configuration error function
on SO(3) with a logarithmic barrier function is proposed
to avoid constrained regions. Instead of calculating a priori
trajectories, as in the geometric and randomized approaches,
our approach results in a closed-loop attitude control system.
This makes it ideal for on-board implementation on UAV or
spacecraft systems. In addition, unlike previous approaches
our control system can handle an arbitrary number of constrained regions without modification.
Furthermore, we formulate an adaptive update law to
enable attitude convergence in the presence of uncertain
disturbances. The stability of the proposed control systems
is verified via mathematically rigorous Lyapunov analysis on
SO(3). In short, the proposed attitude control system in the
presence of inequality constraints is computationally efficient
and able to handle uncertain disturbances. The effectiveness
of this approach is illustrated via numerical simulation and
experimental results.
II. P ROBLEM F ORMULATION
A. Attitude Dynamics

We assume that the external disturbance is expressed by
W (R, Ω)∆, where W (R, Ω) : SO(3) × R3 → R3×p is a
known function of the attitude and the angular velocity. The
disturbance is represented by ∆ ∈ Rp and is an unknown,
but fixed uncertain parameter. In addition, we assume that a
bound on W (R, Ω) and ∆ is known and given by
kW k ≤ BW ,

for x = [x1 , x2 , x3 ]T ∈ R3 . The inverse of the hat map is
denoted by the vee map ∨ : so(3) → R3 . Several properties
of the hat map are summarized as
x · ŷz = y · ẑx, x̂ŷz = (x · z)y − (x · y)z,
x[
× y = x̂ŷ − ŷx̂ = yxT − xy T ,

1 
tr[Ax̂] = tr x̂(A − AT ) = −xT (A − AT )∨ ,
2
x̂A + AT x̂ = ({tr[A] I3×3 − A} x)∧ ,
∧

Rx̂R = (Rx) ,

SO(3) = {R ∈ R3×3 | RT R = I, det[R] = 1},
where a rotation matrix R ∈ SO(3) represents the transformation of the representation of a vector from the bodyfixed frame to the inertial reference frame. The equations of
motion are given by
J Ω̇ + Ω × JΩ = u + W (R, Ω)∆,

(1)

Ṙ = RΩ̂,

(2)

where J ∈ R3×3 is the inertia matrix, and Ω ∈ R3 is
the angular velocity represented with respect to the bodyfixed frame. The control moment is denoted by u ∈ R3 ,
and it is expressed with respect to the body-fixed frame.

(3)

This form of uncertainty enters the system dynamics through
the input channel and as a result is referred to as a matched
uncertainty. While this form of uncertainty is easier than the
unmatched variety many physically realizable disturbances
may be modeled in this manner. For example, orbital spacecraft are subject to gravity gradient torques caused by the
non-spherical distribution of mass of both the spacecraft and
central gravitational body. This form of disturbance may be
represented as a body fixed torque on the vehicle. In addition,
for typical scenarios, where the spacecraft is significantly
smaller than the orbital radius, the disturbance torque may
be assumed constant over short time intervals.
In (2), the hat map ∧ : R3 → so(3) represents the
transformation of a vector in R3 to a 3 × 3 skew-symmetric
matrix such that x̂y = x × y for any x, y ∈ R3 [6]. More
explicitly,


0
−x3 x2
0
−x1  ,
x̂ =  x3
−x2 x1
0

T

Consider the attitude dynamics of a rigid body. We define
an inertial reference frame and a body frame whose origin
is at the center of mass and aligned with the principle
directions of the body. The configuration manifold of the
attitude dynamics is the special orthogonal group:

k∆k ≤ B∆ .

R(x × y) = Rx × Ry

(4)
(5)
(6)
(7)
(8)

for any x, y, z ∈ R3 , A ∈ R3×3 and R ∈ SO(3). Throughout
this paper, the dot product of two vectors is denoted by x ·
y = xT y for any x, y ∈ Rn and the maximum eigenvalue
and the minimum eigenvalue of J are denoted by λM and
λm , respectively. The 2-norm of a matrix A is denoted by
kAk,
norm is denoted by kAk ≤ kAkF =
p and its Frobenius
p
tr[AT A] ≤ rank(A) kAk.
B. State Inequality Constraint
The two-sphere is the manifold of unit-vectors in R3 such
that S2 = {q ∈ R3 | kqk = 1}. We define r ∈ S2 to be a unit
vector from the mass center of the rigid body along a certain
direction and it is represented with respect to the body-fixed
frame. For example, r may represent the pointing direction
of an on-board optical sensor. We define v ∈ S2 to be a
unit vector from the mass center of the rigid body toward an
undesired pointing direction and represented in the inertial
reference frame. For example, v may represent the inertial

direction of a bright celestial object or the incoming direction
of particles or other debris. It is further assumed that optical
sensor has a strict non-exposure constraint with respect to
the celestial object. We formulate this hard constraint as
rT RT v ≤ cos θ,
◦

(9)

◦

where we assume 0 ≤ θ ≤ 90 is the required minimum
angular separation between r and RT v.
The objective is to a determine a control input u that
stabilizes the system from an initial attitude R0 to a desired
attitude Rd while ensuring that (9) is always satisfied.
III. ATTITUDE C ONTROL ON SO(3) WITH I NEQUALITY
C ONSTRAINTS
The first step in designing a control system on a nonlinear
manifold Q is the selection of a proper configuration error
function. This configuration error function, Ψ : Q × Q →
R, is a smooth and proper positive definite function that
measures the error between the current configuration and
a desired configuration. Once an appropriate configuration
error function is chosen, one can then define a configuration
error vector and a velocity error vector in the tangent space
Tq Q through the derivatives of Ψ [6]. With the configuration
error function and vectors the remaining procedure is analogous to nonlinear control design on Euclidean vector spaces.
One chooses control inputs as functions of the state through
a Lyapunov analysis on Q.
To handle the attitude inequality constraint, we propose a
new attitude configuration error function. More explicitly,
we extend the trace form used in [6], [17] for attitude
control on SO(3) with the addition of a logarithmic barrier
function. Based on the proposed configuration error function,
nonlinear geometric attitude controllers are constructed. A
smooth control system is first developed assuming that there
is no disturbance, and then it is extended to include an
adaptive update law for stabilization in the presence of
unknown disturbances. The proposed attitude configuration
error function and several properties are summarized as
follows.
Proposition 1 (Attitude Error Function) Define an attitude error function Ψ : SO(3) → R, an attitude error vector
eR ∈ R3 , and an angular velocity error vector eΩ ∈ R3 as
follows:
Ψ(R) = A(R)B(R),

(10)

eR = eRA B(R) + A(R)eRB ,

(11)

eΩ = Ω,

(12)

with

1 
tr G I − RdT R ,
2 

1
cos θ − rT RT v
B(R) = 1 − ln
.
α
1 + cos θ
∨
1
eRA =
GRdT R − RT Rd G ,
2
A(R) =

(13)
(14)
(15)

eRB

∨
RT v r
=
.
α (rT RT v − cos θ)

(16)

where α ∈ R is defined as a positive constant and the
matrix G ∈ R3×3 is defined as a diagonal matrix matrix
for distinct, positive constants g1 , g2 , g3 ∈ R. Then, the
following properties hold
(i) Ψ is positive definite about R = Rd
(ii) The variation of A(R) with respect to a variation of
δR = Rη̂ for η ∈ R3 is given by
DR A · δR = η · eRA .

(17)

(iii) The variation of B(R) with respect to a variation of
δR = Rη̂ for η ∈ R3 is given by
DR B · δR = η · eRB .

(18)

(iv) The critical points of Ψ are Rd , and Rd exp(πŝ) for
s ∈ {e1 , e2 , e3 } satisfying RT v = ±r.
(v) An upper bound of keRA k is given as:
2

keRA k ≤

A(R)
,
b1

where the constant b1 is given by b1 =

(19)
h1
h2 +h3

for

h1 = min {g1 + g2 , g2 + g3 , g3 + g1 } ,
n
o
2
2
2
h2 = min (g1 − g2 ) , (g2 − g3 ) , (g3 − g1 ) ,
o
n
2
2
2
h3 = min (g1 + g2 ) , (g2 + g3 ) , (g3 + g1 ) .
Proof: See Appendix A.
Equation (10) is composed of an attractive term, A(R)
toward the desired attitude, and a repulsive term, B(R) away
from the undesired direction RT v. In order to visualize the
attitude error function on SO(3) we utilize a spherical coordinate representation. Recall that the spherical coordinate
system represents the position of a point relative to an origin
in terms of a radial distance, azimuth, and elevation. This
coordinate system is commonly used to define locations on
the Earth in terms of a latitude and longitude. Similarly,
the positions of celestial objects are defined on the celestial
sphere in terms of right ascension and declination. We apply
this concept and parametrize the rotation matrix R ∈ SO(3)
in terms of the spherical angles −180◦ ≤ λ ≤ 180◦ and
−90◦ ≤ β ≤ 90◦ . Using the elementary Euler rotations the
rotation matrix is now defined as R = exp(λê2 ) exp(βê3 ).
We iterate over the domains of λ and β in order to rotate the
body-fixed vector r throughout the two-sphere S2 . Applying
this method, Fig. 1 allows us to visualize the error function
on SO(3). The attractive error function, given by (13), has
been previously used for attitude control on SO(3). The
potential well of A(R) is illustrated in Fig. 1(a), where the
desired attitude lies at the minimum of A(R).
To incorporate the state inequality constraints we apply
a logarithmic barrier term. Barrier functions are typically
used in optimal control and motion planning applications. A
visualization of the configuration error function is presented
in Fig. 1(b) which shows that as the boundary of the

Attract

Avoid

3

3

2.5

2.5

2

2

1.5

1.5

1

1

0.5

0.5

0

where the matrices E(R, Rd ), F (R) ∈ R3×3 are given by


1  T
E(R, Rd ) =
tr R Rd G I − RT Rd G ,
(27)
2


1
F (R) =
v T Rr I − RT vrT +
α (rT RT v − cos θ)

RT v̂Rrv T Rr̂
.
(28)
(rT RT v − cos θ)

0
50

50
100

0

100

0

0
-50

Latitude (β)

0
-50

-100

Latitude (β)

Longitude (λ)

-100

Longitude (λ)

(a) Attractive A(R)

(b) Repulsive B(R)
Total

Proof: See Appendix B.

3
2.5

A. Attitude Control without Disturbance

2
1.5

We introduce a nonlinear geometric controller for the
attitude stabilization of a rigid body. We first assume that
there is no disturbance, i.e., ∆ = 0.

1
0.5
0
50
100

0
0
-50

Latitude (β)

-100

Longitude (λ)

(c) Configuration Ψ

Proposition 3 (Attitude Control) Given a desired attitude
command (Rd , Ωd = 0), which satisfies the constraint (9),
and positive constants kR , kΩ ∈ R we define a control input
u ∈ R3 as follows

Fig. 1: Configuration error function visualization

constraint is neared, or rT RT v → cos θ, the barrier term
1
increases, B → ∞. We use the scale factor 1+cos
θ to ensure
that Ψ remains positive definite. The logarithmic function
is popular as it quickly decays away from the constraint
boundary. The positive constant α serves to shape the barrier
function. As α is increased the impact of B(R) is reduced
away from the constraint boundary. The superposition of the
attractive and repulsive functions is shown in Fig. 1(c). The
control system is defined such that the attitude trajectory
follows the negative gradient of Ψ toward the minimum at
R = Rd , while avoiding the constrained region.
While (14) represents a single inequality constraint given
as (9), it is readily generalized to multiple constraints of an
arbitrary form. For example, the configuration
error function
P
can be formulated as Ψ = A[1 + i Ci ], where Ci has the
form of Ci = B − 1 for the i-th constraint. In this manner,
one may enforce multiple state inequality constraints, and
we later demonstrate this through numerical simulation.

u = −kR eR − kΩ eΩ + Ω × JΩ.

(29)

Then the zero equilibrium of the attitude error is asymptotically stable, and the inequality constraint is satisfied.
Proof: See Appendix C.
This proposition only guarantees that the attitude error
vector eR asymptotically converges to zero. However, this
does not necessarily imply that R → Rd as t → ∞, since
there are at most three additional critical points of Ψ where
eR = 0 and RT v = ±r. At an undesired equilibrium
R = exp (πêi )Rd and eΩ = 0. However, we can show
that these undesired equilibrium points are unstable in the
sense of Lyapunov [17]. As a result, we can claim that the
desired equilibrium R = Rd and eΩ = 0 is almost globally
asymptotically stable, which means that the set of initial
conditions that do not converge to the desired attitude has
zero Lebesgue measure.
B. Adaptive Control

Proposition 2 (Error Dynamics) The attitude error dynamics for Ψ, eR , eΩ satisfy
d
(Ψ) = eR · eΩ ,
dt

(20)

d
(eR ) = ėRA B(R) + eRA Ḃ(R) + Ȧ(R)eRB + AėRB ,
dt
(21)
d
(eRA ) = E(R, Rd )eΩ ,
(22)
dt
d
(eRB ) = F (R)eΩ ,
(23)
dt
d
(A(R)) = eRA · eΩ ,
(24)
dt
d
(B(R)) = eRB · eΩ ,
(25)
dt
d
(eΩ ) = J −1 (−Ω × JΩ + u + W (R, Ω)∆) ,
(26)
dt

We extend the results of the previous section with the
addition of a fixed but unknown disturbance ∆. This scenario
is typical of many mechanical systems and represents unmodeled dynamics or external moments acting on the system.
For example, Earth orbiting spacecraft typically experience
a torque due to a gravitational gradient. Aerial vehicles
will similarly experience external torques due to air currents
or turbulence. An adaptive control system is introduced to
asymptotically stabilize the system to a desired attitude while
ensuring that state constraints are satisfied.
Proposition 4 (Bound on ėR ) Consider a domain D about
the desired attitude defined as

D = R ∈ SO(3)|Ψ < ψ < h1 , rT RT v < β < cos θ .
(30)
Then the following statements hold:

TABLE I: Constraint Parameters

(i) Upper bounds of A(R) and B(R) are given by
kAk < cA ,

kBk < cB .

(31)

Constraint Vector (v)
[0.174, −0.934, −0.034]T
[0, 0.7071, 0.7071]T
[−0.853, 0.436, −0.286]T
[−0.122, −0.140, −0.983]T

(ii) Upper bounds of E(R, Rd ) and F (R) are given by

These results are combined to yield a maximum upper bound
of the time derivative of the attitude error vector ėR as
kėR k ≤ H keΩ k ,

(37)

Proof: See Appendix D.
Proposition 5 (Adaptive Attitude Control) Given a desired attitude command (Rd , Ωd = 0) and positive constants
kR , kΩ , k∆ , c ∈ R, we define a control input u ∈ R3 and
¯ as
an adaptive update law for the estimated uncertainty ∆
follows:
¯
u = −kR eR − kΩ eΩ + Ω × JΩ − W ∆,
T
˙
¯ = k∆ W (eΩ + ceR ) .
∆

(38)
(39)

If c is chosen such that
0<c<

eR1

2

4

6

8

2

10

t(sec)

2
0
−2
0

1.5
Ψ

1
0
−1
0

2

4

6

8

10

6

8

10

1

t(sec)
0.5
2

4
t(sec)

0
0

2

4

6

8

10

t(sec)

(a) Attitude error vector eR

(b) Configuration error Ψ

Fig. 2: Attitude stabilization without adaptive update law

(36)

where H ∈ R is defined as
H = kBk kEk + 2 keRA k keRB k + kAk kF k .

0
0
eR2

(iii) Upper bounds of the attitude error vectors eRA and
eRB are given by
r
ψ
keRA k ≤
,
(34)
b1
sin θ
.
(35)
keRB k ≤
α (cos θ − β)

2.5

0.5

eR3

1
kEk ≤ √ tr[G] ,
(32)
2


2
β 2 + 1 (β − cos θ) + 1 + β 2 β 2 − 2
kF k ≤
.
4
α2 (β − cos θ)
(33)

Angle (θ)
40◦
40◦
40◦
20◦

inequality constraints for the first time on SO(3). The presented control system is computed in real-time and offers
significant computational advantages over previous iterative
methods. In addition, the riguous mathematical proof guarantees stability.
IV. N UMERICAL E XAMPLES
We demonstrate the performance of the proposed control
system via numerical simulation. The inertia tensor of a rigid
body is given as


5.57 × 10−3 6.17 × 10−5 −2.50 × 10−5
J =  6.17 × 10−5 5.57 × 10−3 1.00 × 10−5  kg m2 .
−2.50 × 10−5 1.00 × 10−5 1.05 × 10−2
The control system parameters are chosen as

4kR kΩ
2 + 4k − Rλ H ,
kΩ
M

(40)

the zero equilibrium of the error vectors is stable in the sense
¯ is
of Lyapunov. Furthermore, eR , eΩ → 0 as t → ∞, and ∆
uniformly bounded.
Proof: See Appendix E.
Nonlinear adaptive controllers have been developed for
attitude stabilization in terms of modified Rodriguez parameters and quaternions, as well as attitude tracking in terms
of Euler angles. The proposed control system is developed
on SO(3) and avoids the singularities of Euler angles and
Rodriguez parameters while incorporating state inequality
constraints. In addition, the unwinding and double coverage
ambiguity of quaternions are also completely avoided. The
control system handles uncertain disturbances while avoiding
constrained regions.
Compared to the previous work on constrained attitude
control, we present a geometrically exact control system
without parameterizations. In addition, we incorporate state

G = diag[0.9, 1.1, 1.0],
c = 1.0,

kR = 0.4,

k∆ = 0.5,

kΩ = 0.296,

α = 15.

A body fixed sensor is defined as r = [1, 0, 0], while multiple
inequality constraints are defined in Table I. The simulation
parameters are chosen to be similar to those found in [15],
however we increase the size of the constraint regions to
create a more challenging scenario for the control system.
The initial state is defined as R0 = exp(225◦ ×
π
180 ê3 ), Ω0 = 0. The desired state is Rd = I, Ωd = 0.
We show simulation results for the system stabilizing about
the desired attitude with and without the adaptive update
law from
We assume a fixed disturbance of
 Proposition5.
T
∆ = 0.2 0.2 0.2 , with the function W (R, Ω) = I.
This form is equivalent to an integral control term which
penalizes deviations from the desired configuration. The first
term of (39) has the effect of increasing the proportional gain
of the control system, since the time derivative of the attitude
error vector, ėR , is linear with respect to the angular velocity
error vector eΩ .

2.5

180
160

ar ccos(r T R T v i )

2

Ψ

1.5
1

140
120
100
80

0.5
60

0
0

2

4

6

8

10

40
0

2

4

6

8

10

t(sec)

t(sec)

(a) Configuration error Ψ

(b) Angle to constraints

Fig. 4: Attitude control testbed

0.3

¯
∆

0.2

0.1

0

−0.1
0

2

4

6

8

10

t(sec)

¯
(c) Disturbance estimate ∆

(d) Attitude trajectory

Fig. 3: Attitude stabilization with adaptive update law

Simulation results without the adaptive update law are
shown in Fig. 2. Without the update law, the system does
not achieve zero steady state error. Fig. 2(b) shows that the
configuration error function does not converge to zero and
there exist steady state errors. Fig. 3 shows the results with
the addition of the adaptive update law. The addition of the
adaptive update law allows the system to converge to the
desired attitude in the presence of constraints. The path of
the body fixed sensor in the inertial frame, namely Rr, is
illustrated in Fig. 3(d). The initial attitude is represented with
the green circle while the final attitude is marked with a green
×. The inequality constraints from Table I are depicted as
red cones, where the cone half angle is θ. The control system
is able to asymptotically converge to zero attitude error.
Fig. 3(b) shows that the angle arccos(rT RT vi ) between the
body fixed sensor and each constraint is satisfied for the
entire maneuver. In addition, the estimate of the disturbance
converges to the the true value as shown in Fig. 3(c).
Both control system are able to automatically avoid the
constrained regions. In addition, these results show that
it is straightforward to incorporate an arbitrary amount of
large constraints. In spite of this challenging configuration
space the proposed control system offers a simple method
of avoiding constrained regions. These closed-loop feedback
results are computed in real time and offer a significant
advantage over typical open-loop planning methods. These
results show that the proposed geometric adaptive approach
is critical to attitude stabilization in the presence of state
constraints and disturbances.
V. E XPERIMENT ON H EXROTOR UAV
A hexrotor unmanned aerial vehicle (UAV) has been
developed at the Flight Dynamics and Controls Laboratory
(FDCL) at the George Washington University [18]. The UAV
is composed of three pairs of counter-rotating propellers.

The propeller pairs of the hexrotor are angled relative to
one another to allow for a fully actuated rigid body.
The hexrotor UAV, shown in Fig. 4, is composed of the
following hardware:
• Onboard ODROID XU3 computer module.
• VectorNav VN100 IMU operating via TTL serial
• BLDC motors with BL-Ctrl-2.0 ESC via I2C.
• Position and attitude over WiFi (TCP) communication
from Vicon motion capture system.
• Commands sent over WiFi to onboard controller.
In order to constrain the motion and test only the attitude
dynamics we attach the hexrotor to a spherical joint. The
center of rotation is below the center of gravity of the
hexrotor. As a result, there is a destabilizing gravitational
moment and the resulting attitude dynamics are similar to
an inverted pendulum model. We augment the control input
in (38) with an additional term to negate the effect of the
gravitational moment.
A sensor pointing direction is defined in the body frame
of the hexrotor as r = [1, 0, 0]T . We define an obstacle in the
inertial frame as v = [ √12 , √12 , 0]T with θ = 12◦ . An initial
state is defined as R(0) = exp( π2 ê3 ), while the desired state
is Rd = I. This results in the UAV performing a 90◦ yaw
rotation about the vertical axis of the spherical joint and
the constrained region is on the shortest path connecting R0
and Rd . The attitude control system is identical to the one
presented in Proposition 5 with the exception of a gravity
moment term and the following parameters: kR = 0.4, kΩ =
0.7, c = 0.1, α = 8 and k∆ = 0.05.
The experimental results are shown in Fig. 5. In order
to maneuver the system “close” to the constrained zone we
utilize several intermediary set points on either side of the
obstacle. From the initial attitude the hexrotor rotates to the
first set point, pauses, and then continues around the obstacle
to the second set point before continuing toward the desired
attitude. As a result this creates the stepped behavior of the
configuration error history as shown in Fig. 5(b).
The brushless motors of the hexrotor allow for large
control inputs which are critical to enable aggressive maneuvers. When constrained to the spherical joint the hexrotor
is capable of performing responsive attitude changes with
high angular velocities. In addition, The on-board control
and motion capture system operate at a discrete interval
of approximately 100 Hz. It is possible for the system to
violate the constraint between these discrete steps and cause

eR1

0.5
0
−0.5
0

1.5
5

10

15
1
Ψ

eR2

t(sec)
1
0
−1
0

5

10

15
0.5

eR3

t(sec)
2
1
0
0

5

10

15

t(sec)

0
0

5

10

15

t(sec)

u1
u2

(a) Attitude error vector eR
0.2
0
−0.2
0
0.5
0
−0.5
0

(b) Configuration error Ψ

A PPENDIX
5

10

15

10

15

10

15

A. Proof of Proposition 1

t(sec)

5

To prove (i) we note that (13) is a positive definite function
about R = Rd [6]. The constraint angle is assumed 0◦ ≤
θ ≤ 90◦ such that 0 ≤ cos θ. The term rT RT v represents
the cosine of the angle between the body fixed vector r and
the inertial vector v. It follows that

u3

t(sec)
0
−0.2
−0.4
0

analysis. In addition, we have demonstrated the control
system via numerical simulation and hardware experiments
on a hexrotor UAV. A novel feature of this control is that
it is computed autonomously on-board the UAV. This is in
contrast to many state constrained attitude control systems
which require an a priori attitude trajectory to be calculated.
The presented method is simple, efficient and ideal for
hardware implementation on embedded systems.

5
t(sec)

(c) Control input u

(d) Attitude Trajectory

Fig. 5: Constrained Attitude stabilization experiment

numerical exceptions within the embedded software. As a
result, conservative control gains are chosen to ensure the
hexrotor operates in a sedate manner and to allow sufficient
time for the measurement and control software to operate.
There exist several sources of error in the experimental
setup. The motion capture system uses a series of optical
sensors to determine the relative position of several tracking
markers. These markers as well as the cameras must remain
fixed to ensure accurate attitude measurement. In addition,
the spherical joint is not fixed at the center of mass but is
instead offset due to the physical structure of the hexrotor.
As a result a disturbance moment is induced on the resultant
motion.
This results in a small steady state error in the vicinity
of the desired attitude. Over time (39) will remain non-zero
while eR 6= 0. This will cause an increase in control input
until the steady-state error is reduced. Further tuning of the
control gains would enable a faster response and a reduced
settling time.
The hexrotor avoids the constrained region illustrated by
the circular cone in Fig. 5(d), by rotating around the boundary of the constraint. This verifies that the proposed control
system exhibits the desired performance in the experimental
setting as well. A video clip showing the attitude maneuver
is available https://youtu.be/dsmAbwQram4.

0≤

cos θ − rT RT v
≤ 1,
1 + cos θ

for all R ∈ SO(3). As a result, its negative logarithm is
always positive and from (14), 1 < B. The error function
Ψ = AB is composed of two positive terms and is therefore
also positive definite, and it is minimized at R = Rd .
Next, we consider (ii). The variation of (13) is taken with
respect to δR = Rη̂ as
∨
1
DR A · δR = η ·
GRdT R − RT Rd G ,
2
where we used (6).
A straightforward application of the chain and product
rules of differentiation allows us to show (iii) as
∨
− RT v r
DR B · δR = η ·
,
α (cos θ − rT RT v)
where the scalar triple product (4) was used.
The critical points of eRA are derived in [6]. There are four
critical points of eRA , the desired attitude Rd as well as rotations about each body fixed axis by 180◦ . The repulsive
∧ error
vector eRB is zero only when the numerator RT v r = 0.
This condition only occurs if the desired attitude results
in the body fixed vector r becoming aligned with RT v
while simultaneously satisfying {Rd } ∪ {Rd exp(πŝ} for
s ∈ {e1 , e2 , e3 }. Since we assume the system will not operate
in violation of the constraints, the addition of the barrier
function does not add additional critical points to the control
system. The desired equilibrium is eR = 0 and A = 0. The
proof of keRA k given by (v) is available in [17].

VI. C ONCLUSIONS
We have developed a geometric adaptive control system
which incorporates state inequality constraints on SO(3). The
presented control system is developed directly on SO(3) and
it avoids singularities and ambiguities that are inherent to
attitude parameterizations. The attitude configuration error is
augmented with a barrier function to avoid the constrained
region, and an adaptive control law is proposed to cancel
the effects of uncertainties. We show the stability of the
proposed control system through a rigorous mathematical

B. Proof of Proposition 2
From the kinematics (2) and noting that Ṙd = 0 the time
derivative of RdT R is given as

d
RdT R = RdT RêΩ .
dt
Applying this to the time derivative of (13) gives

d
1 
(A) = − tr GRdT RêΩ .
dt
2

Applying (6) into this shows (24). Next, the time derivative
of the repulsive error function is given by


T
T
r
Ω̂R
v
d
(B) =
.
dt
α (rT RT v − cos θ)
Using the scalar triple product, given by (4), one can reduce
this to (25). The time derivative of the attractive attitude error
vector, eRA , is given by
∨
d
1
(eRA ) =
êΩ RT Rd G + (RT Rd G)T êΩ .
dt
2
Using the hat map property given in (7) this is further
reduced to (22) and (27).
We take the time derivative of the repulsive attitude error
vector, eRB , as
d
(eRB ) = aΩv T Rr − aRT vΩT r + bRT v̂Rr,
dt
with a ∈ R and b ∈ R given by

−1
a = α rT RT v − cos θ
,b=

rT Ω̂RT v
α (rT RT v − cos θ)

2.


Usingthe scalar triple product from (4) as r · Ω × RT v =
RT v · r × Ω gives (23) and (28).
We show the time derivative of the configuration error
function as
d
(Ψ) = ȦB + AḂ.
dt
A straightforward substitution of (13), (14), (24) and (25)
into this and appplying (11) shows (20). We show (26) by
rearranging (1) as
d
eΩ = Ω̇ = J −1 (u − Ω × JΩ + W (R, Ω)∆) .
dt
C. Proof of Proposition 3
Consider the following Lyapunov function:
1
eΩ · JeΩ + kR Ψ(R, Rd ).
(41)
2
From (i) of Proposition 1, V ≥ 0. Using (20) and (26) with
∆ = 0, the time derivative of V is given by
V=

2

V̇ = −kΩ keΩ k .

(42)

Since V is positive definite and V̇ is negative semi-definite,
the zero equilibrium point eR , eΩ is stable in the sense of
Lyapunov. This also implies limt→∞ keΩ k = 0 and keR k
is uniformly bounded, as the Lyapunov function is nonincreasing. From (22) and (23), limt→∞ ėR = 0. One can
show that këR k is bounded. From Barbalat’s Lemma, it
follows limt→∞ kėR k = 0 [19, Lemma 8.2]. Therefore, the
equilibrium is asymptotically stable.
Furthermore, since V̇ ≤ 0 the Lyapunov function is
uniformly bounded which implies
Ψ(R(t)) ≤ V(t) ≤ V(0).
In addition, the logarithmic term in (14) ensures Ψ(R) → ∞
as rT RT v → cos θ. Therefore, the inequality constraint is

always satisfied given that the desired equilibrium lies in the
feasible set.
D. Proof of Proposition 4
The selected domain ensures that the configuration error
function is bounded Ψ < ψ. This implies that that both
A(R) and B(R) are bounded by constants cA cB < ψ < h1 .
Furthermore, since kBk > 1 this ensures that cA , cB < ψ
and shows (31).
Next, we show (32) and (33) using the Frobenius norm.
The Frobenius norm kEkF is given in [17] as
q
q
1
2
tr[G2 ] + tr[RT Rd G] .
kEkF = tr[E T E] =
2
Applying Rodrigues’ formula and the Matlab symbolic toolbox, this is simplified to
 1
1   2
2
2
2
tr G + tr[G] ≤ tr[G] ,
kEkF ≤
4
2
which shows (32), since kEk ≤ kEkF .
To show (33), we apply the Frobenius norm kF kF :
  T 
 T 
1
kF kF =
2 tr a a − 2tr a b
2
T
T
α (r R v − cos θ)
 T 
 
 
 
+2tr a c + tr bT b − 2tr bT c + tr cT c .
where the terms a, b, and c are given by
a = rT RrI,

b = RT vrT ,

c=

RT v̂Rrv T Rr̂
.
rT RT v − cos θ

A straightforward computation of aT a shows that


2
tr aT a = v T Rr tr[I] ≤ 3β 2 ,
where we used the fact that v T Rr = rT RT v <  β from

our given domain. Similarly, one can show that tr aT b is
equivalent to




2
tr aT b = v T Rrtr RT vrT = v T Rr ≤ β 2 ,
 T
where
= xT y. The product
 T we used the fact that tr xy
tr a c is given by
h


∨
 i
v T Rr
tr aT c = T T
tr RT v
rv T R r̂ ,
r R v − cos θ
where we used the hat map property (8). One can show that
T
T
tr[a
 T c] ≤ 0 over the range −1 ≤ v Rr ≤ cos θ. Next,
tr b b is equivalent to
 


tr bT b = tr rv T RRT vrT = 1,
 
since r, v ∈ S2 . Finally, tr cT c is reduced to
 




tr cT c = tr r̂RT vrT −I + RT vv T R rv T Rr̂ ,
2

where we used the fact that x̂2 = − kxk I +xxT . Expanding
and collecting like terms gives
2
4
 T  1 − 2 v T Rr + v T Rr
tr c c =
.
2
(rT RT v − cos θ)
Using the the given domain rT RT v ≤ β gives the upper

bound (33). The bound on eRA is given in (19) while eRB
arises from the definition of the cross product ka × bk =
kak kbk sin θ. Finally, we can find the upper bound (21) as
kėR k ≤ (kBk kEk + 2 keRA k keRB k + kAk kF k) keΩ k .
Using (31–35) one can define H in terms of known values.
E. Proof of Proposition 5
Consider the Lyapunov function V given by
V=

1
1
eΩ · JeΩ + kR Ψ + cJeΩ · eR +
e∆ · e∆ , (43)
2
2k∆

over the domain D in (30). From Proposition 4, the Lyapunov
function is bounded in D by
V ≤ z T W z,

(44)

¯ z = [keR k, keΩ k, ke∆ k] ∈ R and the
where e∆ = ∆ − ∆,
matrix W ∈ R3×3 is given by


0
kR ψ 21 cλM
0 .
W =  12 cλM 21 λM
1
0
0
2k∆
T

3

The time derivative of V with the control inputs (38) is given
by
T

V̇ = − kΩ eTΩ eΩ + (eΩ + ceR ) W e∆ − kR ceTR eR
1 T ¯˙
e ∆,
(45)
− kΩ ceTR eΩ + cJeTΩ ėR −
k∆ ∆
¯˙ The terms linearly dependent on
where we used ė = −∆.
∆

e∆ are combined with (39) to yield


1 ¯˙
T
T
e∆ W (eΩ + ceR ) −
∆ = 0.
k∆
Using Proposition 4 an upper bound on V̇ is written as
V̇ ≤ −ζ T M ζ,
where ζ = [keR k, keΩ k] ∈ R2 , and the matrix M ∈ R2×2 is


kΩ c
kR c
2
.
(46)
M = kΩ c
kΩ − cλM H
2
If c is chosen such that (40) is satisfied the matrix M is
positive definite. This implies that V̇ is negative semidefinite
and limt→∞ ζ = 0. As the Lyapunov function is nonincreasing z is uniformly bounded.
R EFERENCES
[1] P. Hughes, Spacecraft Attitude Dynamics. Dover Publications, 2004.
[2] J. R. Wertz, Spacecraft Attitude Determination and Control. Springer,
1978, vol. 73.
[3] S. P. Bhat and D. S. Bernstein, “A topological obstruction to continuous global stabilization of rotational motion and the unwinding
phenomenon,” Systems & Control Letters, 2000.
[4] M. D. Shuster, “A survey of attitude representations,” Navigation,
vol. 8, no. 9, 1993.
[5] N. Chaturvedi, A. K. Sanyal, N. H. McClamroch, et al., “Rigid-body
attitude control,” Control Systems, IEEE, vol. 31, no. 3, pp. 30–51,
2011.
[6] F. Bullo and A. D. Lewis, Geometric Control of Mechanical Systems,
ser. Texts in Applied Mathematics. New York-Heidelberg-Berlin:
Springer Verlag, 2004, vol. 49.

[7] C. Mayhew and A. Teel, “Synergistic potential functions for hybrid
control of rigid-body attitude,” in Proceedings of the American Control
Conference, 2011, pp. 875–880.
[8] T. Lee, “Global exponential attitude tracking controls on SO(3),”
IEEE Transactions on Automatic Control, vol. 60, no. 10, pp. 2837–
2842, 2015.
[9] H. B. Hablani, “Attitude commands avoiding bright objects
and maintaining communication with ground station,” Journal of
Guidance, Control, and Dynamics, vol. 22, no. 6, pp. 759–767,
2015/09/19 1999. [Online]. Available: http://dx.doi.org/10.2514/2.
4469
[10] E. Frazzoli, M. Dahleh, E. Feron, and R. Kornfeld, “A randomized
attitude slew planning algorithm for autonomous spacecraft,” in AIAA
Guidance, Navigation, and Control Conference and Exhibit, Montreal,
Canada, 2001.
[11] A. Guiggiani, I. Kolmanovsky, P. Patrinos, and A. Bemporad, “Fixedpoint constrained model predictive control of spacecraft attitude,”
arXiv:1411.0479, 2014. [Online]. Available: http://arxiv.org/abs/1411.
0479
[12] U. Kalabic, R. Gupta, S. Di Cairano, A. Bloch, and I. Kolmanovsky,
“Constrained spacecraft attitude control on SO(3) using fast nonlinear
model predictive control using reference governors and nonlinear
model predictive control,” in American Control Conference (ACC),
2014, June 2014, pp. 5586–5593.
[13] R. Gupta, U. Kalabic, S. Di Cairano, A. Bloch, and I. Kolmanovsky,
“Constrained spacecraft attitude control on SO(3) using fast nonlinear
model predictive control,” in American Control Conference (ACC),
2015, July 2015, pp. 2980–2986.
[14] E. Rimon and D. E. Koditschek, “Exact robot navigation using artificial potential functions,” Robotics and Automation, IEEE Transactions
on, vol. 8, no. 5, pp. 501–518, 1992.
[15] U. Lee and M. Mesbahi, “Spacecraft Reorientation in Presence of Attitude Constraints via Logarithmic Barrier Potentials,” in Proceedings
of the American Control Conference, 2011, pp. 450–455.
[16] C. R. McInnes, “Large angle slew maneuvers with autonomous sun
vector avoidance,” Journal of Guidance, Control, and Dynamics,
vol. 17, no. 4, pp. 875–877, 2015/07/10 1994. [Online]. Available:
http://dx.doi.org/10.2514/3.21283
[17] T. Lee, “Robust adaptive tracking on SO(3) with an application to the
attitude dynamics of a quadrotor UAV,” IEEE Transactions on Control
Systems Technology, vol. 21, no. 5, pp. 1924–1930, September 2013.
[18] E. Kaufman, K. Caldwell, D. Lee, and T. Lee, “Design and development of a free-floating hexrotor UAV for 6-dof maneuvers,” in
Proceedings of the IEEE Aerospace Conference, 2014.
[19] H. K. Khalil, Nonlinear Systems, 3rd ed. Prentice Hall New Jersey,
2002.

