Manuscript Submitted To Doi:10.3934/xx - XXXXXXX Volume X, Number 0X, XX 200X
Manuscript Submitted To Doi:10.3934/xx - XXXXXXX Volume X, Number 0X, XX 200X
Manuscript Submitted To Doi:10.3934/xx - XXXXXXX Volume X, Number 0X, XX 200X
xxxxxxx
AIMS’ Journals
Volume X, Number 0X, XX 200X pp. X–XX
Corey Shanbrom
Department of Mathematics and Statistics
California State University, Sacramento
6000 J St., Sacramento, CA 95819, USA
1
2 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
of UAVs ([15]), which is the problem we focus on in this paper. See [2] for a video
demonstrating some of the work.
Implementing a coordinated group of UAVs, rather than a single vehicle, is nat-
urally more efficient for many mission types. These include tracking, surveillance,
and mapping ([14]). In this regard, there are numerous reasons, driven by the
variety of applications, why collective control of a group of UAVs is important.
Common objectives include synchronization, formation, flocking, consensus, and
rendezvous. Rendezvous is the primary focus here ([21]). Moreover, autonomy of
individual UAVs provides a flexibility and adaptability that can be beneficial in
many kinds of applications. Optimization techniques, as an approach to collective
control, have the general drawback of scaling poorly with the number of vehicles.
We shall focus on a common alternative: the so-called graph theoretic methods.
The relative simplicity of these methods makes them an attractive choice in terms
of both scalability and the desire for real-time control ([25, 27]). Moreover, they
apply quite naturally to situations where there is an existing network of commu-
nications between the UAVs, although the existence of such is also an additional
assumption being made. The benefits include control that is decentralized in that
it occurs over the network without any advanced planning, and certain objectives,
such as rendezvous, can be carried out with only relative information being shared
across the network.
In this paper we focus on path-planning of the most common type of UAV, quad-
copters, and we focus on the dynamics of this specific type of UAV in Sections 3 and
4. Section 2, however, applies to any multi-agent UAV path configuration since we
treat them as particle points. We also occasionally refer to any UAV by the com-
mon, though imprecise, more general term “drone”. These small versatile vehicles
have proved to be a major asset in the increasing demand for complex autonomous
robotics missions, particularly those involving survey and object detection. Our
end-goal is developing, for a swarm of quadcopters, the ability to autonomously
make decisions based on shared information.
The outline of the paper is as follows. In Section 2 we discuss the multi-agent
autonomous agreement. Agents are considered as particles and the methodology is
based on graph theory. Section 3 introduces the dynamics of quadcopters and their
navigation. In Section 4 we approximate our particle multi-agent trajectories by
implementable ones satisfying the quadcopter’s dynamic equations of motion.
It is a genuine pleasure to have our article appear in this special issue that
honors Professor Bloch. The depth and breadth of his prodigious body of work
inspires and enriches each of us. On those occasions when the authors feel like
explorers venturing into uncharted territory, we often find a flag marking Tony’s
prior visitation. Indeed, Tony’s contributions to the subject of geometric control of
mechanical systems are keenly felt in this paper. His recent work on multi-agent
formations with obstacle and inter-agent avoidance in [13] aims toward a similar
goal as ours. Although the mathematical approach taken differs from the one here,
some of his work in [29] does apply a graph theoretic methodology. In addition,
the rigid body dynamics that we highlight in the second half of the paper is core
to much of his research ([3, 5, 4, 30]). With sincere appreciation and gratitude, the
authors offer Professor Bloch their very best wishes.
MULTI-AGENT SYSTEMS FOR QUADCOPTERS 3
where N (i) is the neighborhood of a vertex vi , i.e., the collection of adjacent vertices
N (i) = {vj ∈ V | vi vj ∈ E}. If we adopt the notion that adjacency is symmetric,
i.e., vi vj ∈ E ⇐⇒ vj vi ∈ E, then we say the network is undirected and we can
encapsulate the above system in a single matrix equation:
q̇(t) = −L(G)q(t), (2)
n×n
where L(G) ∈ R is called the graph Laplacian. The graph Laplacian is uniquely
determined by the structure of G(V, E).
Definition 2.2. We refer to Equation (2) as the agreement dynamics, the agreement
protocol, or the consensus protocol.
2.2. Consensus Joint Value. The graph Laplacian has desirable properties when
G(V, E) is a connected, undirected network. In the rest of this section we will always
assume G(V, E) is a connected, undirected graph unless specified otherwise.
Proposition 1. Assume G(V, E) is a connected, undirected graph. The graph
Laplacian L(G) is a symmetric positive semidefinite matrix with eigenvalues 0 =
4 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
Let Λ = diag(0, λ2 , . . . , λn ) and let U = [û1 û2 . . . ûn ] (the hat notation indicates
a unit vector) be an n × n matrix consisting of orthonormal eigenvectors of L(G)
corresponding to the eigenvalue ordering above, i.e., U T U = I and L(G) U = U Λ.
Since we can factor the Laplacian as L(G) = U ΛU T , the solution to Equation (2)
with initial condition q(0) = q0 is given by
T
q(t) = e−L(G)t q0 = e−U ΛU t q0 = U e−Λt U T q0 ,
which can be written as:
n
X
q(t) = e−λi t (ûTi q0 )ûi . (3)
i=1
to each agent i we associate a vector value q i (t) = (q1i (t), · · · , qri (t)) and we let Q
be the n × r matrix whose rows are given by the q i ,
1
q1 · · · qr1
q12 · · · qr2
Q= . (6)
.. ..
.. . .
q1n ··· qrn
n
X
= [e−λ1 t ûT1 q1 (0)û1 · · · e−λ1 t ûT1 qr (0)û1 ] + [e−λi t ûTi q1 (0)ûi · · · e−λi t ûTi qr (0)ûi ]
i=2
" # n
~1T q1 (0) ~T
~1 · · · 1 qr (0) ~1 +
X
= [e−λi t ûTi q1 (0)ûi · · · e−λi t ûTi qr (0)ûi ]
n n i=2
h i Xn
= α1~1 · · · αr~1 + [e−λi t ûTi q1 (0)ûi · · · e−λi t ûTi qr (0)ûi ] (9)
i=2
~T
where 1 qnk (0) = αk ∈ R is the agreed state value for each scalar state, 1 ≤ k ≤ r.
Note that here we assume the states qk , measured by the agents, are shared over
the same network G(V, E). Hence the states share a common graph Laplacian,
L(G). In more general situations each state variable could have a distinct net-
work, leading to an agreement protocol of the form: ẋ(t) = −L(Gx )x(t), . . . , ż(t) =
−L(Gz )z(t).
2.4. Multi-agent Trajectories. In this section, êj denotes the standard unit vec-
tor of all 0’s with a single 1 in the jth component. We use u1 to denote the vector
~1, which is an eigenvector of L(G) with eigenvalue λ1 = 0. With this notation,
~1
û1 = √ .
n
Lemma 2.4. Assume agent j is connected to every other agent, and set u1 = ~1.
Then, u1 − nêj is an eigenvector for L(G) with corresponding eigenvalue λn = n:
L(G)(u1 − nêj ) = n(u1 − nêj ). (10)
Proof. We have L(G)(u1 − nêj ) = L(G)u1 − nL(G)êj = 0 − nL(G)j = −nL(G)j ,
where L(G)j is the jth column of the Laplacian L(G). But since G(V, E) has the jth
node with n − 1 connections we know L(G)j = (−1, −1, . . . , n − 1, . . . , −1, −1)T =
nêj − u1 , i.e., all −1’s except an n − 1 in the jth component. Hence −nL(G)j =
n(u1 − nêj ) as claimed.
Definition 2.5. We say that vertex vi is fully connected if there exists an edge
between vi and every other vertex vj ∈ V, j 6= i. Therefore a fully connected vertex
has n − 1 edges.
~
Recall that û1 = √1n and λ1 = 0. Furthermore, it is proven in [1] that the
eigenvalues of L(G) are less than or equal to n and the multiplicity of the eigenvalue
λ = n is equal to the number of fully connected vertices.
Theorem 2.6. Suppose vertex vj is fully connected and that q(t) satisfies the agree-
ment protocol q̇ = −L(G)q. Then q j (t) is a straight line.
n
X
Proof. We know that q i = nα is a constant. We also know that:
i=1
X
q̇ j = −n q j + q i = −n(q j − α). (11)
This simple ODE (Newton’s Law of Cooling) implies that
q j − α = (q j (0) − α)e−nt (12)
which is a straight line.
Note that the proof is the same regardless of whether q j is a scalar or row j of an
n × r state matrix Q(t), provided it satisfies the agreement protocol Q̇ = −L(G)Q.
2.4.1. Rendezvous Mission, Unweighted Network. In this section we illustrate some
of our prior results with a rendezvous mission between four agents. We let q i (t) =
(xi (t), y i (t), z i (t)) denote the position of agent i in R3 . We assume the agents to be
initially distributed as follows:
q 1 (0) = (4, 17, 24), q 2 (0) = (18, 10, 32), q 3 (0) = (15, 10, 26), q 4 (0) = (4, 2, 35).
In this simulation we assume the communication network between the agents is
fixed and unweighted. From our algorithm, the vector of agreed state values (the
agreed rendezvous position) is given by:
q ∗ = (10.25, 9.75, 29.25). (13)
In Figure 1 we illustrate how two different communication networks produce differ-
ent trajectories, even though the agreed rendezvous position is the same for each
MULTI-AGENT SYSTEMS FOR QUADCOPTERS 7
network since it depends only on the initial spatial positions of the agents. In the
first scenario (solid curve), we assume the following: agent 1 is connected to agent 2;
agent 2 is connected to agents 1, 3 and 4; agent 3 is connected to agents 2, 4; agent
4 is connected to agents 2, 3. This is represented by the following graph Laplacian:
1 −1 0 0
−1 3 −1 −1
L1 = 0 −1 2 −1 .
(14)
0 −1 −1 2
In the second scenario (dashed curve), we assume: agent 1 is connected to agents
3, 4; agent 2 is connected to agent 3; agent 3 is connected to agents 1, 2; agent 4 is
connected to agent 1:
2 0 −1 −1
0 1 −1 0
L2 = −1 −1 2
. (15)
0
−1 0 0 1
In the first scenario agent 2 moves along a straight line since it is connected to
all other agents. In Figure 2 we compare the trajectories for agent 1 for each
spatial coordinate. The eigenvalues for scenario 1 are given by {0, 1, 3, 4} and the
eigenvalues for scenario 2 are given by {0, 0.586, 2, 3.414}.
down. Not all properties can be expected to carry over; for example, the linear
trajectory proof relied on cancellation due to the integer eigenvalues.
We now assume that the edges are weighted, i.e., edges carry a numerical weight.
If the graph Gw is a weighted graph, then the off-diagonal entries of the Laplacian
L(Gw ) will not be limited to only 0 and −1. Instead, the −1’s corresponding to
edges in the graph would be replaced with −wij = −wji to account for the weights.
The diagonal entries will once again be the absolute value of the row or column sum
of the non-diagonal entries. Equations (1) and (2) therefore become:
X
q̇ i (t) = − wij q i (t) − q j (t)
(16)
j∈N (i)
Then the system of first order equations can be rewritten as: q̇(t) = −L(Gw )(t)q(t).
If the rank of L(Gw )(t) is n − 1 for all t then we have:
X n
1
lim q(t) = q i (0) ~1.
t→∞ n i=1
Proof. By assumption, the matrix L(Gw ) is real and symmetric, therefore Hermit-
ian. Furthermore, it is diagonally dominant with non-negative diagonal entries.
Therefore it is positive semi-definite. As for the unweighted case, λ1 = 0 with cor-
responding eigenvector ~1. Since we assume the graph to be connected throughout
the motion, the rank of L is always n − 1 and the multiplicity of the zero eigenvalue
is one. We have for any time t: 0 = λ1 < λ2 (t) ≤ · · · ≤ λn (t) with a corresponding
set of orthonormal eigenvectors û1 = √1n ~1, û2 (t), . . . , ûn (t).
Pn
Let q ∗ = n1 i=1 q i (0) ~1. Even if the wij : [0, ∞) → [0, ∞) are time-varying,
we can show with initial conditions q(0) that the trajectories q(t) → q ∗ as t → ∞.
A useful observation is that
Z t
q̇(t) = −L(Gw )(t)q(t) ⇒ q(t) − q(0) = − L(Gw )(s)q(s)ds
0
Z t
⇒ ~1T q(t) − q(0) = −~1T
L(Gw )(s)q(s)ds
0
Z t Z t Z t
=− ~1 L(s)q(s)ds = −
T ~0 q(s)ds = −
T
0ds = 0,
0 0 0
so that we have ~1T q(t) = ~1T q(0) for all t ∈ [0, ∞).
Let V : Rn → R be defined by:
1 1
q 7→ V (q) = kq − q ∗ k2 = (q − q ∗ )T (q − q ∗ ).
2 2
Clearly, we have:
1. V (q) ≥ 0,
2. V (q) = 0 ⇐⇒ q = q ∗ ,
3. V̇ (q) = −(q − q ∗ )T L(Gw )(q − q ∗ ) ≤ 0
since −v T L(Gw )v ≤ 0 for any v ∈ Rn since L(Gw ) is positive semi-definite. Clearly
q = q ∗ implies V̇ (q) = 0, but also V̇ (q) = 0 implies q = q ∗ . Let A = span{~1} =
N (L(Gw )) represent the null space of L(Gw ) and suppose (q − q ∗ )T L(Gw )(q − q ∗ ) =
0. This implies q − q ∗ ∈ A. But we know that ~1T q(t) = ~1T q(0), and therefore
q − q ∗ ⊥ A since
~T ~T
~1T (q − q ∗ ) = ~1T q − 1 q(0) ~1 = ~1T q − 1 q(0) ~1T ~1 = ~1T q − ~1T q(0) = 0. (20)
n n
Finally, q − q ∗ ∈ A and q − q ∗ ⊥ A imply q − q ∗ = 0 ⇒ q = q ∗ . We conclude:
V̇ (q) = −(q − q ∗ )T L(Gw )(q − q ∗ ) = 0 ⇐⇒ q = q ∗ . (21)
Therefore 1, 2, 3 and Equation (21) imply that V (q) is a non-negative function
which is strictly decreasing for all trajectories q(t) 6= q ∗ hence q(t) → q ∗ as t → ∞,
i.e.,
X n
1
lim q(t) = qi (0) ~1
t→∞ n i=1
as claimed.
10 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
In the time-varying scenario (dashed lines), the network changes throughout the
trajectories. Here we provide the initial Laplacian and the final one:
23.0375 0 −12.0830 −10.9545
0 8.6023 −8.6023 0
L2i =
−12.0830 −8.6023 20.6854
, (27)
0
−10.9545 0 0 10.9545
0.1465 −0.0523 −0.0482 −0.0460
−0.0523 0.1501 −0.0450 −0.0528
L2f = −0.0482 −0.0450 0.1457 −0.0525 .
(28)
−0.0460 −0.0528 −0.0525 0.1513
Initially the connectivity network is the same as for the fixed network but with
weights, however as the agents get closer it changes, and all agents are connected in
12 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
the end. The trajectories corresponding to the time-varying network here would be
easier to approximate for a real quadcopter since they are “straighter” (the sudden
jump in information leads to straighter paths toward the rendezvous, however in
this case, the weights prevent the perfect cancellation that would lead to true lin-
earity.) In Figure 6 we compare the trajectories for agent 1 for each coordinate of
motion. The eigenvalues for the unweighted network are given by {0, 1, 3, 4} and the
eigenvalues for the weighted network are initially given by {0, 6.234, 19.385, 37.655},
and near the rendezvous agreement are given by {0, 0.190, 0.196, 0.207}.
3.1. Setup. In this subsection we provide the basic physical notation and standard
derivation of the equations of motion for a rigid body in the body-fixed frame. A
rigid body can model a number of vehicles in space or in a fluid, such as satellites
or underwater vehicles, which can be stabilized by spinning rotors ([5, 6]). Here,
we assume our drone is nothing more than a rigid body in a fluid; later we will
make certain additional assumptions explicit. We closely follow the derivations in
[16, 31].
The configuration space for a rigid body moving in a fluid ([3]) is
Q = SE(3) ∼
= R3 × SO(3).
Here we equip Q with coordinates (b, R) where b ∈ R3 represents the position
of the center of mass of the body in space and R ∈ R3×3 is a rotation matrix
representing the orientation of the body aligned with the principal axes of inertia.
This coordinate system corresponds to some inertial frame of reference.
We regularly use the notation of the hat map, the Lie algebra isomorphism
ˆ: (R3 , ×) → (so(3), [, ])
0 −y3 y2
given by ŷz = y × z, equivalently ŷ = y3 0 −y1 .
−y2 y1 0
First, choose a non-inertial body-fixed frame and set the following notation:
v = translational velocity in body frame
Ω = angular velocity in body frame
p = translational momentum in inertial frame
π = angular momentum in inertial frame
P = translational momentum in body frame
Π = angular momentum in body frame.
We seek to derive the dynamic equations of motion for the system in the body
frame. Here this will take the form of a system of ODEs in the variables (b, R, v, Ω) ∈
T Q. Our kinematic equations are:
ḃ = Rv (29)
Ṙ = RΩ̂. (30)
We transform momenta between the inertial and body frames according to:
p = RP (31)
π = RΠ + b̂p (32)
14 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
Now in the inertial frame, the dynamics are solely due to external forces and torques:
k
X
ṗ = fi (37)
i=1
k
X l
X
π̇ = x̂i fi + τi , (38)
i=1 i=1
This gives the evolution of the momenta in the body frame, but the equations mix
momenta and velocities. In order to arrive at equations in terms of solely momenta
or velocities, we must find explicit formulas relating the two. This can be acheived
by the Legendre transform
∂T ∂T
P = , Π= .
∂v ∂Ω
To make this explicit, we introduce the kinetic energies
t
1 v mI3 −mr̂CG v
Tbody = (41)
2 Ω mr̂CG Jb Ω
t
Mf Cft
1 v v
Tf luid = (42)
2 Ω Cf Jf Ω
T = Tbody + Tf luid
t
mI3 + Mf −mr̂CG + Cft
1 v v
= (43)
2 Ω mr̂ CG + C f J b + J f Ω
MULTI-AGENT SYSTEMS FOR QUADCOPTERS 15
where m is the mass of the body, rCG is vector from center of gravity to body frame
origin, Jb is the body inertia tensor, Jf is the added mass inertia tensor, Mf is the
added mass, Cf is the added cross terms, and I3 is the 3 × 3 identity matrix.
Then by differentiating the total kinetic energy (43), we find
∂T
P = = (mI3 + Mf )v + (−mr̂CG + Cft )Ω (44)
∂v
∂T
Π= = (mr̂CG + Cf )v + (Jb + Jf )Ω. (45)
∂Ω
These equations transform velocities into momenta.
We now assume the body has an especially nice shape, which is realistic for most
drones.
Assumption 1. Assume the body has three planes of symmetry and the prin-
ciple axes of inertial coincide with the body frame axes. This implies Jb , Jf , and
Mf are all diagonal and Cf = 0. When we consider gravity in Section 3.2, we also
assume that this symmetry extends to the mass density of the body.
Assumption 2. Assume the center of gravity of the body coincides with the
origin of the body frame. This implies r̂CG = 0.
With these two assumptions, equations (44) and (45) reduce to
P = Mv (46)
Π = JΩ, (47)
where M = mI3 +Mf is the total mass of the system and J = Jb +Jf is the moment
of inertia of the system.
Now differentiate (46) and (47) and simplify using (39), (40), (46) and (47) to
obtain the derivatives of the velocities expressed solely in terms of positions and
velocities, without momenta:
mv̇ = M v × Ω + EF (48)
X
t
J Ω̇ = JΩ × Ω + M v × v + ET + R (xi − b) × fi . (49)
i
Finally, since for drones our fluid is air, we make the following simplifying as-
sumption.
Assumption 3. Assume the added fluid is negligible. This implies Mf = Jf = 0.
Then J = Jb , and since M = mI3 is a scalar matrix, the fictitious force M v × v = 0.
Combining this with (29), (30), (48), (49), we obtain the complete equations
of motion for a rigid drone in air as a first order system on T Q coordinatized by
(b, R, v, Ω):
ḃ = Rv (50)
Ṙ = RΩ̂ (51)
mv̇ = mv × Ω + EF (52)
k
X
J Ω̇ = JΩ × Ω + ET + Rt (xi − b) × fi . (53)
i=1
3.2. External forces and torques. In this section we explicitly work out the
external terms EF and ET for a drone in the body frame. We have four rotors
producing thrust in a quadcopter, with the ith rotor possessing angular velocity ωi
16 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
producing thrust ti = Kr ωi2 , where Kr is the thrust coefficient ([26]). Here we are
implicitly treating the ωi as our controls.
For the external forces, we follow [32]. The force due to drag is
f1 = −diag(v1 |v1 |, v2 |v2 |, v3 |v3 |)CD ,
where vj is the jth component of the linear velocity v and CD is the vector of
translational drag coefficients in the body frame. The force due to gravity is
f2 = −mgRt eI3 ,
where g is the gravitational constant and the third inertial frame basis vector eI3 rep-
resents the opposite direction of gravitational attraction. Lastly, the force produced
by thrust is
X4
f3 = eB
3 ti ,
i=1
where the third body frame basis vector eB 3 represents the direction in which each
of the motors produce thrust. Thus EF = f1 + f2 + f3 .
Ostensibly, each of these forces induces a torque, represented by the last term
t
Pk
R i=1 (xi − b) × fi in (53). However, for f1 and f2 , no torque is induced as the
line of force passes through the center of mass of the body due to our symmetry
assumptions. The force f3 , however, represents the sum of four individual forces
located at each of the four rotors. Each of these forces induces a torque, and their
sum gives the net torque generated by the rotors:
Kr d(ω32 − ω12 )
2 2
τf = K r d(ω4 − ω2 ) ,
P 4 i+1 2
Kd i=1 (−1) ωi
where Kd is the propeller drag coefficient and d is the distance from the drone center
of mass to the rotation axis of each rotor.
The external torques are computed as in [8, 32]. The torque in the body frame
generated by drag is
τ1 = −diag(Ω1 |Ω1 |, Ω2 |Ω2 |, Ω3 |Ω3 |)Cτ ,
where Ωj is the jth component of the angular velocity Ω and Cτ is the vector of
rotational drag coefficients in the body frame. The torque due to gyroscopic effects
is
X4
τ2 = Ω × (−1)i+1 Jr (0, 0, ωi )t ,
i=1
where Jr is the moment of inertia for a rotor. Assuming the rotor has nontrivial
inertia about only the vertical axis, Jr has only one nonzero entry which we denote
by J¯r , so that Jr = diag(0, 0, J¯r ). We then have ET = τ1 + τ2 .
We can now give our updated equations of motion for a quadcopter:
ḃ = Rv (54)
Ṙ = RΩ̂ (55)
mv̇ = mv × Ω + f1 + f2 + f3 (56)
J Ω̇ = JΩ × Ω + τf + τ1 + τ2 . (57)
MULTI-AGENT SYSTEMS FOR QUADCOPTERS 17
and
1 Sφ Tθ Cφ Tθ
Θ(η) = 0 Cφ −Sφ ,
Sφ Cφ
0 Cθ Cθ
1 0 0
R1,φ = 0 Cφ −Sφ ,
0 Sφ Cφ
Cθ 0 Sθ
R2,θ = 0 1 0 ,
−Sθ 0 Cθ
Cψ −Sψ 0
R3,ψ = Sψ Cψ 0 .
0 0 1
Substituting R into equations (56) and (57) and expanding yields the following.
18 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
Lemma 3.1. In coordinates developed above, the equations of motion for a quad-
copter take the form
ḃ1 = v1 Cψ Cθ + v2 (Cψ Sθ Sφ − Sψ Cφ ) + v3 (Cψ Sθ Cφ + Sψ Sφ ) (58)
ḃ2 = v1 Sψ Cθ + v2 (Sψ Sθ Sφ + Cψ Cφ ) + v3 (Sψ Sθ Cφ − Cψ Sφ ) (59)
ḃ3 = −v1 Sθ + v2 Cθ Sφ + v3 Cθ Cφ (60)
φ̇ = Ω1 + Ω2 Sφ Tθ + Ω3 Cφ Tθ (61)
θ̇ = Ω2 Cφ − Ω3 Sφ (62)
Sφ Cφ
ψ̇ = Ω2 + Ω3 (63)
Cθ Cθ
1
v̇1 = v2 Ω3 − v3 Ω2 − v1 |v1 |CD1 + gSθ (64)
m
1
v̇2 = v3 Ω1 − v1 Ω3 − v2 |v2 |CD2 − gCθ Sφ (65)
m !
4
1 X
v̇3 = v 1 Ω 2 − v 2 Ω1 + ti − v3 |v3 |CD3 − gCθ Cφ (66)
m i=1
" 4
#
1 X
Ω̇1 = (J2 − J3 )Ω2 Ω3 + J¯r (−1)i+1 Ω2 ωi + Kr d(ω32 − ω12 ) − Ω1 |Ω1 |Cτ1
J1 i=1
(67)
" 4
#
1 X
Ω̇2 = (J3 − J1 )Ω1 Ω3 − J¯r (−1)i+1 Ω1 ωi + Kr d(ω42 − ω22 ) − Ω2 |Ω2 |Cτ2
J2 i=1
(68)
" 4
#
1 X
Ω̇3 = (J1 − J2 )Ω1 Ω2 + Kd (−1)i+1 ωi2 − Ω3 |Ω3 |Cτ3 . (69)
J3 i=1
3.4. Geometric formulation. Here we will equip Q with a natural metric allowing
us to characterize the equations of motion as a second order system on Q. We then
lift the dynamics to a first order system on T Q.
Under our assumptions, the kinetic energy (43) can be encoded as the matrix
mI3 0
G=
0 J
where m and J denote the mass and inertia tensor of the drone, respectively. This
is a (diagonal) positive definite symmetric matrix and induces a Riemannian metric
on Q, which in turn yields the Levi-Civita connection ∇. This allows us to define the
acceleration of a curve in Q as ∇γ̇ γ̇, where a curve γ(t) = (b(t), R(t)) has velocity
γ̇ = (b(t), R(t), v(t), Ω(t)). Explicitly, we compute
v̇ + Ω × v
∇γ̇ γ̇ = .
Ω̇ + J −1 (Ω × JΩ)
This connection evidently contains the fictitious forces, and is independent of choice
of coordinates. The geodesics for ∇ (curves with zero acceleration) represent mo-
tions of a drone subject to no external forces.
Now in general, a Riemannian metric G on a manifold Q induces the “musical
isomorphisms” G] : T ∗ Q → T Q and G[ : T Q → T ∗ Q. Newton’s equation can be
MULTI-AGENT SYSTEMS FOR QUADCOPTERS 19
J −1 (JΩ × Ω) + J −1 τ1
and the control vector fields are
0 0
0 0
g1 = (0, 0, m−1 Kr )t , g2 = (0, 0, m−1 Kr )t ,
4.1. Single-agent motion planning. We first explore some simple motions for a
single quadcopter. We use the coordinates and notation from Section 3.
Lemma 4.1. Suppose a quadcopter undergoes yaw only, with no translational or
other rotational motion. Then
r
mg
ω1 = ω3 = − ω22 and ω4 = ω2 ,
2Kr
where ω2 is a free parameter.
Proof. The desired motion keeps all variables constant except Ω3 and ψ. This
imposes ω1 = ω3 and ω2 = ω4 as well as
ḃ = v1 = v2 = θ = φ = Ω1 = Ω2 = 0
for the duration of the motion.
The equations of motion Pin Lemma 3.1 simplify considerably; in particular, we
1 4
have ḃ3 = v3 and v̇3 = m i=1 ti − g. Assuming ḃ3 = 0 gives the expected result
P4 2
for hovering: qti = mg. Using ω1 = ω3 and ω2 = ω4 with ti = Kr ωi allows us
i=1
mg
to solve for ω1 = 2Kr − ω22 .
Lemma 4.2. Suppose a quadcopter moves only in the direction of the first body
axis. Then
s
1 2
6a − 8Kr ω4 1
ω2 = − ω4 and ω1 = ω3 = (ω2 + ω4 ),
3 Kr 2
MULTI-AGENT SYSTEMS FOR QUADCOPTERS 21
where
1
a=m (v̇1 Sθ + v1 Cθ Ω2 + v3 Sθ Ω2 ) − v1 Ω2 + gCθ + v3 |v3 |CD3
Cθ
and ω4 is a free parameter.
Proof. We desire to move only along the body x-axis with no motion in the body
y or z direction, requiring the body to pitch without any yaw or roll. This imposes
ω1 = ω3 as well as
ḃ3 = φ = V2 = Ω3 = Ω1 = 0
for the duration of the motion.
The equations of motion in Lemma 3.1 simplify considerably; in particular, we
have θ̇ = Ω2 and ḃ3 = −V1 Sθ + V3 Cθ . Using ω1 = ω3 and setting Ω̇1 = 0 forces
ω1 = ω3 = 21 (ω2 + ω4 ). Setting b̈3 = 0 and using θ̇ = Ω2 gives
1
v̇3 = (v̇1 Sθ + v1 Cθ Ω2 + v3 Sθ Ω2 ).
Cθ
Setting this equal to the equation of motion for v̇3 , we find
4
X 1
ti = m (v̇1 Sθ + v1 Cθ Ω2 + v3 Sθ Ω2 ) − v1 Ω2 + gCθ + v3 |v3 |CD3 .
i=1
Cθ
Denote the right side of this equation by a. Finally, using ti = Kr ωi2 , we can solve
for s
1 6a − 8Kr ω42
ω2 = − ω4 .
3 Kr
Note that in Lemma 4.2 we could alternatively treat ω4 as the free parameter
and solve for an identical expression for ω4 in terms of ω2 . We have similar choices
for the yaw motion in Lemma 4.1.
Moreover, a nearly identical calculation gives path planning along the second
body axis. Treating ω3 as the free parameter, we can move only in the body y
direction using
s
1 6a − 8Kr ω32 1
ω1 = − ω3 and ω2 = (ω1 + ω3 ).
3 Kr 2
In order to move in another direction in the body xy-plane (with no motion in the
z direction), we can simply combine the motions in Lemmas 4.1 and 4.2.
4.2. Simulations.
4.2.1. Single agent. We demonstrate the simple motions from Section 4.1 in Fig-
ures 7 and 8. In the coordinates of Section 3.3, the drone begins at (0, 0, 0, 0, 0, 0) ∈
SE(3) with motors producing the necessary amount of thrust to remain at a hov-
ering equilibrium. Over the first 12 seconds, the drone maintains orientation while
rising vertically in the body (and inertial) z-direction, ending at another hover.
Over the next four seconds, the drone maintains position while rotating π/2 radi-
ans counterclockwise about the body z-axis as described in Lemma 4.1. Finally, for
the last four seconds the drone executes the motion in Lemma 4.2, flying directly
along the body x-axis. Figure 7 shows the path of the drone in space as well as
22 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
the orientation angles over time. Figure 8 shows the controls used to produce this
motion.
4.2.2. Multi-agent. Here we combine most of the work completed above in order
to simulate an agreement protocol for dynamically sound quadcopters. Consider
three drones on a rendezvous mission with given initial conditions. We assume
each drone begins hovering with all translational and angular velocities zero. This
forces each initial pitch and roll to also be zero, but we choose different initial yaws.
For simplicity, we assume all three drones start in the z = 0 plane (which need not
correspond to the ground) but choose different initial x, y positions. This simplifying
assumption does not sacrifice much generality: if the three drones started at three
different nonzero altitudes, we would simply find the average initial altitude and
execute simple motions bringing each drone up or down to this height.
In the coordinates (b1 , b2 , b3 , φ, θ, ψ) ∈ SE(3) from Section 3.3, we choose our
three drones to have initial configurations (0, 0, 0, 0, 0, 0), (0, 9, 0, 0, 0, −π/4), and
(15, 9, 0, 0, 0, π/2).
For this example we will assume a complete network G = K3 , so by Theorem 2.6
we have that all trajectories are straight lines. In particular, each drone will traverse
MULTI-AGENT SYSTEMS FOR QUADCOPTERS 23
the line segment connecting their initial position in R3 to the rendezvous position,
which is simply the component-wise average of the initial conditions: (5, 6, 0). Figure
9 shows these trajectories.
There are, however, two different methods for parametrizing these line segments
and hence planning the drones’ flights. First, we could use the methods from Section
2, obtaining trajectories which exponentially approach the rendezvous position. In
this setting, the drones’ orientations are ignored completely, as are all dynamics,
giving a simple yet unrealistic path.
A main objective of this project was to investigate a second method: implement
the path-planning from Section 4.1 to find controls bringing the drones along the
desired line segments in a manner that respects the realistic dynamics from Section
3. This requires each drone beginning its flight by executing a pure yaw rotation
to orient its body x-axis toward the rendezvous position, then fly straight in this
direction. See Figure 10 to see the yaw for each drone over time; note that the total
flight times differ for each drone. Also note that for each drone, the roll over time is
identically zero, but the pitch is non-zero in order to produce lateral displacement
(compare with Figure 7).
24 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
Figure 10. The yaw ψ over time for each drone. Total flight times
differ for each drone.
environment to a more realistic experiment with actual drones would require a more
careful consideration of the observer design as in [9].
5. Conclusion. The primary goals of the paper were twofold. First, we intro-
duce the agreement protocol from a graph theoretic viewpoint and apply it to a
rendezvous mission for a set of particle agents without orientation. Second, we de-
rive the equations of motion for a quadcopter to take into account its orientation
and dynamics. We then apply the quadcopter dynamics to a rendezvous mission
and compare the trajectories with the ones from the network multi-agents algo-
rithm. This is a first step towards developing more complex multi-agent systems
for quadcopters. A next step will be to analyze the decoupling vector fields for
the quadcopter from its affine connection control system formulation and use these
trajectories to approximate geometric trajectories obtained from the multi-agents
network approach. We focused here on the agreement protocol, but ongoing work
shows that it can be extended to formation flying for multi-agents and more com-
plex missions, such as search and rescue with a large team of quadcopters including
leaders and followers. We are also planning to run real drone flights to demonstrate
the applicability of our techniques.
MULTI-AGENT SYSTEMS FOR QUADCOPTERS 27
REFERENCES
[1] W. Anderson Jr. and T. Morley, Eigenvalues of the Laplacian of a graph, Linear and Multi-
linear Algebra, 18 (1985), 141–145.
[2] AUVs on-board capability for image analysis for real time situation assessment, https://
www.youtube.com/watch?v=qo0VWWvTgdU
[3] A. Bloch, Nonholonomic Mechanics and Control, 2nd edition, Springer-Verlag, New York,
2015.
[4] A. Bloch, I. Hussein, M. Leok, and A. Sanyal, Geometric structure-preserving optimal control
of the rigid body, Journal of Dynamical and Control Systems, 15 (2009), 307–330.
[5] A. Bloch, P. Krishnaprasad, J. Marsden, and G. Sanchez De Alvarez, Stabilization of rigid
body dynamics by internal and external torques, Automatica, 28 (1992), 745–756.
[6] A. Bloch, N. Leonard, and J. Marsden, Controlled Lagrangians and the stabilization of me-
chanical systems I: The first matching theorem, IEEE Trans. Automat. Control, 45 (2000),
2253–2270.
[7] H. Bouadi, M. Bouchoucha, and M. Tadjine, Sliding mode control based on backstepping
approach for an UAV type-quadrotor, International Journal of Mechanical and Mechatronics
Engineering, 1 (2007), 39–44.
[8] H. Bouadi and M. Tadjine, Nonlinear observer design and sliding mode control of four rotors
helicopter, International Journal of Aerospace and Mechanical Engineering, 1 (2007), 354–
359.
[9] F. Bullo, J. Cortes, and S. Martinez, Distributed Control of Robotic Networks, Princeton
University Press, 2009.
[10] F. Bullo and A. Lewis, Geometric Control of Mechanical Systems, Springer-Verlag, New York,
2004.
[11] Y. Cao, W. Yu, W. Ren and G. Chen, An overview of recent progress in the study of dis-
tributed multi-agent coordination, IEEE Transactions on Industrial Informatics, 9 (2013),
427–438.
[12] R. Carney, M. Chyba et al., Multi-agents path planning for a swarm of unmanned aerial
vehicles, 2020 IEEE International Geoscience and Remote Sensing Symposium, (2020).
[13] R. Chandrasekaran, L. Colombo, M. Camarinha, R. Banavar, and A. Bloch, Variational colli-
sion and obstacle avoidance of multi-agent systems on Riemannian manifolds, 2020 European
Control Conference, (2020), 1689–1694.
[14] S. Chung, A. Paranjape, P. Dames, S. Shen, and V. Kumar, A survey on aerial swarm robotics,
IEEE Transactions on Robotics, 34 (2018), 837–855.
[15] M. Chyba, R. Carney, C. Gray, and Z. Trimble, Increasing small unmanned aerial system
real-time autonomy, 2020 IEEE International Geoscience and Remote Sensing Symposium,
(2020).
[16] M. Chyba, T. Haberkorn, R. Smith, and G. Wilkens, A geometric analysis of trajectory design
for underwater vehicles, Discrete Contin. Dyn. Syst. Ser. B, 11 (2009), 233–262.
[17] F. Costa, J. Ueyama, T. Braun, G. Pessin, F. Osório and P. Vargas, The use of unmanned
aerial vehicles and wireless sensor network in agricultural applications, IEEE International
Symposium on Geoscience and Remote Sensing, (2012).
[18] P. Doherty and P. Rudol, A UAV search and rescue scenario with human body detection and
geolocalization, Australian Conference on Artificial Intelligence, (2007).
[19] M. Erdelj and E. Natalizio, UAV-assisted disaster management: applications and open issues,
2016 International Conference on Computing, Networking and Communications (ICNC),
(2016).
[20] J. Kim, S. Kim, C. Ju and H. Son, Unmanned aerial vehicles in agriculture: a review of
perspective of platform, control, and applications, IEEE Access, 7 (2019).
[21] S. Knorn, Z. Chen and R. Middleton, Collective control of multiagent systems, IEEE Trans-
actions on Control of Network Systems, 3 (2016), 334–347.
[22] G. Lafferriere, A. Williams, J. Caughman, and J. Veerman, Decentralized control of vehicle
formations, Systems & Control Letters, 54 (2005), 899–910.
[23] A. Lewis and R. Murray, Configuration controllability of simple mechanical control systems,
SIAM Journal on Control and Optimization, 35 (1997), 766–790.
[24] T. Luukkonen, Modelling and control of quadcopter, Independent research project, Aalto
University in Espoo, Finland, 2011.
28 CARNEY, CHYBA, GRAY, SHANBROM AND WILKENS
[25] M. Mesbahi and M. Egerstedt, Graph Theoretic Methods in Multiagent Networks, Princeton
University Press, 2010.
[26] M. Mueller and T. D’Andrea, Stability and control of a quadrocopter despite the complete
loss of one, two, or three propellers, 2014 IEEE international conference on robotics and
automation (ICRA), (2014), 45–52.
[27] I. Okoloko, Path planning for multiple spacecraft using consensus with LMI avoidance con-
straints, IEEE Aerospace Conference, (2012), 1–8.
[28] R. Olfati-Saber, J. Fax, and R. Murray, Consensus and cooperation in networked multi-agent
systems, Proceedings of the IEEE, 95 (2007), 215–233.
[29] P. Rooney, A. Bloch, and C. Rangan, Trees, forests, and stationary states of quantum Lindblad
systems, arXiv:1810.11144, (2018).
[30] A. Sanyal, A. Bloch, and N. McClamroch, Dynamics of multibody systems in planar motion
in a central gravitational field, Dynamical Systems,19 (2004),303–343.
[31] R. Smith, M. Chyba, G. Wilkens, and C. Catone A geometrical approach to the motion
planning problem for a submerged rigid body, International Journal of Control, 82 (2009),
1641–1656.
[32] V. Stepanyan and K. Krishnakumar, Estimation, navigation and control of multi-rotor drones
in an urban wind field, AIAA Information Systems-AIAA Infotech @ Aerospace, (2017).
[33] S. Waharte and N. Trigoni, Supporting search and rescue operations with UAVs, 2010 Inter-
national Conference on Emerging Security Technologies, (2010).
[34] S. Wich and L. Koh, Conservation Drones: Mapping and Monitoring Biodiversity, Oxford
University Press, New York, 2018.