Open access peer-reviewed chapter

Consensus-Based Multipath Planning with Collision Avoidance Using Linear Matrix Inequalities

Written By

Innocent Okoloko

Submitted: May 15th, 2017 Reviewed: September 26th, 2017 Published: March 29th, 2018

DOI: 10.5772/intechopen.71288

Chapter metrics overview

980 Chapter Downloads

View Full Metrics


Consensus theory has been widely applied to collective motion planning related to coordinated motion. However, when the collective motion is highly irregular and adversarial, the basic consensus theory does not guarantee collision avoidance by default. As collision avoidance is a central problem of path planning, the incorporation of avoidance into the consensus algorithm is a subject of research. This work presents a new method of incorporating collision avoidance into the consensus algorithm, by applying the concept of constrained orientation control, where orientation constraints are represented as a set of linear matrix inequalities (LMI) and solved by semidefinite programming (SDP). The developed algorithm is used to simulate consensus-based multipath planning with collision avoidance for a team of communicating soccer robots.


  • consensus
  • path planning
  • avoidance
  • optimization
  • LMI

1. Introduction

Path planning has found practical applications in areas such as entertainment (e.g. robot soccer) [1]; self-driving vehicles (e.g. Google’s self-driving cars) [2]; intelligent highways [3], and multiple unmanned space systems [4]. Because of the potential applications, the topic of multipath planning has been studied extensively, for example in [5, 6, 7, 8, 9, 10, 11].

The simplicity and potential of consensus algorithms to generate collective behaviors, such as flocking, platooning, rendezvous, and other formation configurations, make it an attractive choice for solving certain problems in multiagent control. However, the basic consensus algorithm collision avoidance mechanism is not developed for adversarial situations (i.e., opposite or attacking motion). To extend the power of the algorithm, it is therefore necessary to develop more powerful collision avoidance capabilities.

Next, we consider the basic approaches to collision avoidance in consensus. Some researchers, for example, [12, 13], approached the avoidance problem by introducing potential forces such as attraction and repulsion. However, the potential force algorithms were not developed for adversarial reconfigurations, for example, vehicles moving in opposite directions. Potential functions also have a problem of getting into local minima, coupled with slow speed of convergence. It is observed in [12] that any repulsion based on potential functions alone is not sufficient to guarantee consensus-based collision avoidance. Moreover, the attitude change maneuver presented in [12] was not developed for three-dimensional space (see [14] for a comprehensive literature survey on this topic).

Thus, in this work, we present an approach which we previously developed [5, 9] for incorporating collision avoidance into the consensus framework by applying quadratically constrained attitude control (Q-CAC), via semidefinite programming (SDP), using linear matrix inequalities (LMI). The main benefit of this approach is that it can solve the collision avoidance problem in adversarial situations and any configurations, and the formulation can be applied to two-dimensional as well as three-dimensional spaces. Table 1 shows the notation frequently used in this chapter.

xiPosition vector of vehicle number i
(xij)offOffset vector of vehicles i and j
xStacked vector of more than one position vector
xoffStacked vector of more than one offset vector
ui,ẋiControl input of vehicle i
u,ẋStacked vector of control inputs of more than one vehicle
LLaplacian matrix
SmThe set of m × m positive-definite matrices
SBounding sphere or circle of a vehicle or obstacle
εWidth of safety region
rRadius of S
rr + ε
viAttitude vector of vehicle i
vobsiObstacle vector of vehicle i
vobsijObstacle vector of vehicle i emanating from vehicle j
DijEuclidean distance between vehicles i and j
LijLine passing through the mid points of vehicles i and j
ρijPerpendicular bisector of Lij separating vehicles i and j
PLiPlane passing through the midpoint of vehicle i
lijLine of intersection of PLi and PLj
dxiDistance from xi to lij (for 3D) or pij(for 2D)
dviDistance from vi to lij (for 3D) or pij(for 2D)
ziA point on the Z axis of PLi
pijPoint of intersection of the lines passing through xitvit and xjtvjt
NiNormal vector perpendicular to xi, vi, and zi
DAttitude control plant matrix, DSm
Kronecker multiplication operator
AState or plant matrix for dynamics of x
BInput matrix for dynamics of x for input u
FFeedback controller matrix
KProportional constant
IpIdentity matrix of size p × p
ΓΓ = L ⊗ Ip
ΗA vector or matrix in the Schur inequality
RA positive-definite matrix in the Schur inequality
QA symmetric matrix in the Schur inequality
ηPositive real number for scaling the consensus term
βPositive real number for scaling the proportional term

Table 1.

Frequently used notation in this chapter.


2. Problem statement

The basic consensus problem is that of driving the states of a team of communicating agents to a common value by distributed protocols based on their communication graph. The agents (or vehicles) i(i = 1, ⋯, n) are represented by vertices of the graph, whereas the edges of the graph represent communication links between them. Let xi denote the state of a vehicle i and x is the stacked vector of the states of all vehicles. For systems modeled by first-order dynamics, the following first-order consensus protocol (or its variants) has been proposed, for example in [12, 13]


Consensus is said to have been achieved when ‖xi − xj‖ → (xij)off, as t → ∞, ∀i ≠ j.

The consensus-based multipath planning with collision avoidance problem can be stated as follows: Given a set of vehicles i, with initial positions xi(t0), desired final positions xdi, at time tf, a set of obstacles with positions xobsjj=1m, and the Laplacian matrix of their communication graph L find a sequence of collision-free trajectories from t0 to tf such that xitf=xdii. Protocol (Eq. (1)) on its own does not solve the collision avoidance problem in adversarial situations. A comprehensive presentation of the necessary mathematical tools for this work (including graph theory and consensus theory) can be found in [14].


3. Solutions

In this section, we develop solutions to the problem stated in Section 2.

3.1. Consensus-based arbitrary reconfigurations

It was shown that for the dynamic system.


there exists a stabilizing feedback controller F, such that the protocol


drives x to xf [15]. Here, x = [x1, ⋯, xn] is a stacked vector of the initial positions of the vehicles, u =  − Γ(x − xoff), Γ = L ⊗ Ip, Ip is the identity matrix of size p × p, and p is the state dimension of the vehicles.

To begin, we first consider the reference consensus path planning problem. To this end, the following protocol is proposed for a leader-follower communication graph architecture


The corresponding protocol for a leaderless architecture is


where xd ≠ xoff is the desired final position and is different from the formation configuration, K = ϵIn, (0 < ϵ ≪ 1), and n is the dimension of x.

Theorem 1 The time-varying system (Eq. (2)) achieves consensus.

Proof: see [14].

Figure 1 shows a simulation of consensus-based reconfiguration, using the communication graph in Figure 2, which is an example of a leader-follower graph. Node 1 is the leader, and each of the other nodes is connected to their adjacent neighbors. In Figure 1, the dots inside small circles indicate initial positions, whereas the dot in the diamond is the initial position of the leader. The stars indicate desired final positions. The larger circles with dashed lines are positions where collisions occurred, and the diameters of the circles indicate the size of intersection of the safety regions of the vehicles. The simulation proves that for arbitrary reconfigurations, the basic consensus algorithm does not guarantee collision avoidance.

Figure 1.

Consensus-based reconfiguration in adversarial situation using topology.

Figure 2.

Topology: a leader-follower graph.

3.2. Quadratically constrained attitude control-based collision avoidance

The collision avoidance problem is that of avoiding static obstacles and other moving vehicles while driving the state of a vehicle from one point to another. For simplicity, we approximate a vehicle or an obstacle by S, as shown in Figure 3. A nonspherical obstacle may be represented by a polygon as shown in Figure 4. For the S-type obstacle (or vehicle), let the obstacle be centered on a point xobs; it is desired that the time evolution of any vehicle state xi(t) from t0 to tf should avoid the constraint region shown in Figure 3.

Figure 3.

Constrained control problem for a static spherical obstacle.

Figure 4.

Constrained control problem for static nonspherical obstacle.

The feasible region is thus defined by


where r is the radius of S, bounded by a safety region of width ε.

There is no direct representation of the nonlinear nonconvex equation (Eq. (6)) as LMI. However, some non-LMI methods, for example, mixed integer linear programming (MILP) [7], have been developed for approximating its solution. In this section, we present an approach, which we previously developed in [5, 9, 10, 14], based on the principles of quadratically constrained attitude control (Q-CAC) algorithm [16], initially developed for the spacecraft attitude control problem.

At any time t, suppose the safety region of vehicle i centered on xi(t) intersects the safety region of an obstacle, obs, centered on xobs. Let v(t) be the unit vector extending from the centre of xobs or xi(t) in the direction of the point of intersection. The vectors v(t) will be different for each vehicle or obstacle. Considering the case shown in Figure 3, assume xobs is known and v(t) is also known in the frame of obs. Then, to guide vehicle i safely around the obstacle, define a unit vector vi(t) in the direction of v(t) in the frame of obs. The vector vi(t) will be regarded as an imaginary vector whose direction can be constrained to change with time. The vector vi(t) can then be used to find a sequence of trajectories around obs which guides i from xi(t0) to xi(tf) without violating (Eq. (6)).

The problem reduces to the Q-CAC problem. It is desired that the angle θ between vi(t) and v(t) should be larger than some given angle ∅, ∀t. The constraint is


The idea is to control the angle between the unit vectors vi(t) and v(t). This implies that one of the vectors vi(t) or v(t) must remain static, whereas the other moves with time. Vector vi(t) is used to control the position of the vehicle; therefore, vi(t) will move with time. The positions of vi(t) define a trajectory path for xi(t). Thus, xi(t) is forced to move on the surface of the safety region bounding S. At some time tk, xi(t) will arrive close to a point indicated by vi(tk), at which a translation to xi(tf) is unconstrained. This is shown by the black dots on the boundary of the safety region in Figure 4. To obtain the unit vector v(t), the actual vector extending from the centre of xobs or xi(t) in the direction of the point of intersection is normalized. After the solution vi(t) is obtained as a unit vector, vi(t) is multiplied by r = r + ε to obtain the actual safe trajectory.

Let v(t) = [vi(t)Tv(t)T]T, then the dynamics of v(t) is defined as


where DSpn, p is the dimension of the state vector xi, and n is the number of vehicles. The above differential equation represents the rotational dynamics of the two vectors contained in v(t). D is a semidefinite matrix variable whose contents are unknown. Its purpose is to vary the angle between the two vectors in v(t) with time while also keeping them normalized.

The discrete time equivalent of the above differential equation is


where k = 0, ⋯, N (Nt = tf) is the discrete time equivalent of t and ∆t is the discretization time-step. To implement Eq. (9), D is declared in a semidefinite program which chooses the appropriate values to rotate the vectors in v(t) while satisfying norm constraints. Note in the above discretization of the differential equation, the identity matrix cannot be added to the solution; instead, the matrix D is chosen implicitly to satisfy the rotation. The vectors in v(t) are unit vectors; they are not translating, but they are rotating and must be preserved as unit vectors.

To enforce the attitude constraint (Eq. (7)) in a SDP, it should be represented as a LMI using the Schur complement formula described in [17]. The Schur complement formula states that the inequality


where Q = QTR = RT, and R > 0 are equivalent to and can be represented by the linear matrix inequality


Note that Eq. (7) is equivalent to


which also implies that


Note also that some of the eigenvalues of the G in Eq. (13) are nonpositive. To make the matrix positive definite, one only needs to shift the eigenvalues of G, by choosing a positive real number μ which is larger than the largest absolute value of the eigenvalues of G, then


Let M=μI6+03I3I3031, then M is positive definite. Therefore, following the Schur complement formula, the LMI equivalent of Eq. (14) is


For collision avoidance, the dynamic system (Eq. (8)) is solved whenever it is required, subject to the attitude constraint (Eq. (15)) and norm constraints ‖vi(t)‖ = 1 and ‖v(t)‖ = 1. Thus, the optimization problem of collision avoidance is essential to find a feasible vi subject to the following constraints:


Eq. (17) is essentially the discrete time version of vtTv̇t=0 which guarantees that v(t)Tv(t) = 2, if‖vi(0)‖ = 1 and ‖v(0)‖ = 1. This solution works for 2D and 3D spaces. The next step is to extend the formulation to the case of dynamic obstacles. First, consider two vehicles i and j with states xi(t), xj(t) and attitude vectors vi(t), vj(t), respectively. Collision avoidance requires that they must avoid each other always. As shown in Figure 5, any time their safety regions are violated and the point of their intersection in the coordinate frame of i is vobsit.

Figure 5.

Constrained control problem for dynamic obstacles.

The avoidance requirements are


t ∈ [t0, tf],

where ∅ ≥ π/2. For this dynamic situation, it is sufficient to enforce the following avoidance constraints:


Note that (k + 2) is used because the optimization is performed two steps ahead of time to ensure that the future trajectories are collision free. However, when this avoidance protocol is applied to dynamic collision avoidance, some vehicle configurations pose challenges and this is considered next.

3.3. Conflict resolution for multiple vehicles

A collision between two vehicles i and j is imminent at time t whenever


which can be computed using position feedback data determined by onboard or external sensors or communicated among the vehicles.

There are two aspects of collision problems: (i) collision detection and (ii) collision response. Collision detection is the computational problem of detecting the intersection of two or more objects. This can be done either using sensors or numerically using concepts from linear algebra and computational geometry. Collision response is the initiation of the appropriate avoidance maneuver. In this section, we present methods to detect different configurations of collisions and classify them. Then, an appropriate response technique is developed for each of the collision configurations.

Consider two vehicles i and j, whose current states are xi(t) and xj(t) and the desired final states are xi(tf) and xj(tf). We identify three different basic collision configurations as: (i) simple collision; (ii) head-on collision; and (iii) cross-path collision. Solutions will be developed for each of these configurations, and when combined synergistically, they will provide sufficient collision avoidance behavior for fast collision-free reconfiguration for the team of vehicles.

3.3.1. Detecting and resolving a simple collision

A simple collision problem is any configuration in which Dij(t) ≤ (ri + rj) and the current vector directions (or attitude vectors) vi(t) and vj(t) of vehicles i and j are on different sides of the plane or infinite line Lij(t) passing through the points xi(t), xj(t); and the attitude vectors xitvit and xjtvjt are not parallel. Note that when xitvit and xjtvjt are not parallel, a point or line of intersection can be computed for both vectors. Examples of simple collision problems are shown in Figures 5 and 6.

Figure 6.

Simple collision problem.

This is the easiest collision problem to solve because the attitude vectors are already on opposite sides of Lij(t). Considering Figure 6 (b), the plane or line ρij(t) tangent to the point of intersection of both vehicles constrains the current motion spaces of the vehicles to either of the two sides of the plane at time t. A pure optimization-based solution will attempt to search the space on the right side of ρij(t) to seek for a point which is closest to the goal of i, and this will be used as the next trajectory. The algorithm will also search the left side of ρij(t) to find the next trajectory for j. Once the positions are updated, a new ρij(t) is computed.

Indeed, the solution is provided by the basic collision avoidance protocols (Eqs. (21) and (22)) without having to do a set search. It is easy to observe that by expanding the angles θi(t) and θj(t) and choosing the next feasible trajectories r/2 along the new direction vectors xitvit and xjtvjt, the new trajectories are bound to satisfy the feasible regions separated by ρij(t), provided εi > ri for any i. The rest of the avoidance strategies developed in the remaining part of this section are attempts to reduce more complex collision configurations to a simple collision configuration.

3.3.2. Detecting and resolving a head-on collision

A head-on collision problem is any configuration in which Dij(t) ≤ (ri + rj) and vi(t)Tvj(t) ≈ π rad. Figure 7(a) illustrates the head-on collision problem.

Figure 7.

Head-on collision problem.

The paths from the current positions xi(t) and xj(t) to the goal positions xi(tf) and xj(tf) lead to a configuration in which the attitude vectors xitvit and xjtvjt are parallel (or close to parallel) and in opposite directions, in the sense that a point of intersection cannot be computed. Figure 7(b)(d) shows several examples of head-on collision. Figure 7(b) is a direct head-on collision because the vectors xitvit and xjtvjt are lying directly on Lij(t). Figure 7(c) is an approximate head-on collision and Figure 7(d) is a head-on collision that can be easily converted to a simple collision configuration.

For the configurations in Figure 7(b) and (c), the Q-CAC formulation presented earlier easily solves this problem without any modifications to the algorithm. However, whenever vitTvobsit0 for any i, the optimization algorithm takes some significant time to solve. Even though the resulting trajectory is desirable, this delay is undesirable for real-time collision avoidance. Therefore, whenever this configuration is encountered for any two vehicles, a one-step elementary evasive maneuver is initiated, in which either vi(t) or vj(t) is rotated by a small angle ψ > 0. This rotation effectively transforms the head-on collision configuration to a simple collision configuration. Once this is done, the avoidance constraints defined in Eqs. (21) and (22) solve in real time. The trajectory obtained using this strategy for two-vehicle reconfiguration with head-on collision avoidance is shown in [14].

3.3.3. Detecting and resolving cross-path collision for two vehicles

A cross-path collision problem is any configuration in which Dij(t) ≤ (ri + rj) and the current vector directions vi(t) and vj(t) are on the same side of Lij(t), and the attitude vectors xitvit and xjtvjt are not parallel. Because the vectors are not parallel, a point (for 2D) or line (for 3D) of intersection can be computed for both vectors. Figure 8 is an example of a cross-path collision problem.

Figure 8.

Cross-path collision trajectory.

Note that for the avoidance process, the attitude control algorithm attempts to expand the angles θi(t) and θj(t) to an angle = π/2. Based on this initial configuration, therefore, vi(t) and vj(t) will remain parallel or close to parallel, but not in opposite directions. If this continues, the desired goal positions may never be reached, or may be reached after a great deal of effort. To resolve this problem, it is required to determine whether the two vehicles are indeed in a cross-path configuration. The task is therefore to see if there exists a point or line of intersection between xitvit and xjtvjt, and if such an intersection lies on one side of Lij.

3.3.4. Determining cross-path collision in 3D and 2D.

To determine cross-path collision between i and j in 3D, two planes PLi and PLj are defined, both parallel to the z axes of the world coordinate frame (Figure 9). Each plane must contain the vectors xitvit and xjtvjt as shown in the figure. Therefore, the plane PLi is defined as the set (Ni(t), xi(t), vi(t), z(t)), where zi(t) is a point chosen above or below xi(t) or vi(t) on the z axis and Ni(t) is the normal vector perpendicular to xi(t), vi(t), and zi(t). Once Nj(t) is similarly defined, the intersection of the two planes can be computed using techniques from computational geometry. If the two planes are not parallel, the computation of planes’ intersection will return a line lij. Once this line is determined, the next step is check if it is on one side of the plane parallel to the z axis and containing the points xi(t) and xj(t).

Figure 9.

Determination of cross-path collision in 3D.

An easy way to do this is to compute the perpendicular distances from the points xi(t), vi(t), xj(t), and vj(t), to lij.

Let the corresponding distances be:


If dvitdxit and dvjtdxjt, then the line of intersection is in front of both vehicles, and a cross-path collision is imminent as shown in Figure 9(a) and (b). Otherwise, there is no cross-path conflict as shown in Figure 9(c).

The analysis is simpler in the 2D case. Instead of lij, we search for a point pij, which is the point of intersection of the lines passing through xitvit and xjtvjt as shown in Figure 10. If indeed such a point is found, we use pijinstead of lijin the previous set of equations.

Figure 10.

The point pij is the point of intersection of the infinite lines passing through direction vectors xitvit and xjtvjt. The position of pij in relation to both direction vectors determines if a cross-path collision is imminent. If pij is in front of both vectors as in (a) and (b), then a cross-path collision is imminent; otherwise, no cross-path collision is imminent as in (c).

Figure 11 shows an illustration of the computation of dxi and dvi for any i.

Figure 11.

Continuing the explanation from Figure 10, dxi is the distance from any xi (vehicle i) topij, whereas dvi is the distance from vi to pij, that is, the distance of the outer boundary (where vi lies) of the safety region of vehicle i to pij.

Figure 12(a) is a cross-path collision configuration, but (b) is a simple collision configuration.

Figure 12.

The effects of cross-path conflict resolution.

The solution strategy adopted is to convert any cross-path configuration such as Figure 12 (a) to a simple configuration such as (b). To do this, one only must move either vi(t) or vj(t) to the other side of Lij(t) (or onto the line Lij(t)). A simple strategy to decide which v(t) should be moved to obtain smoother phase transition is to measure θi(t) and θj(t). If θj(t) < θi(t), then vj(t) should be moved. This is done by swapping vj(t) and vobsjt, which immediately results in a simple collision reconfiguration. Thereafter, when the Q-CAC algorithm expands θj(t), it is the former vobsjt (which is now the new vj(t)) that moves, whereas the former vj(t) (which is now the new vobsjt) remains static.

Therefore, if a cross-path trajectory is determined, to resolve the problem it is sufficient to swap the variables in one of the avoidance constraints (Eq. (21) or Eq. (22)). For example, Eq. (21) may be left as it is and Eq. (22) is rewritten in the form


The trajectories obtained by applying this strategy to cross-path collision avoidance for two vehicles in 2D and 3D are shown in [14].

3.3.5. Resolving cross-path collision for more than two vehicles

If more than two vehicles are involved as shown in Figure 13, for any vehicle i, whose attitude vector vi(t) is in a cross-path configuration with vehicles j and k, we are concerned only about the two bounding obstacle vectors vobsijt and vobsikt.

Figure 13.

Three-vehicle cross-path trajectory problem.

In order not to get into a stalemate situation (undesirable for aircraft), only positive nonzero velocities are required to be generated. We adopt a counterclockwise avoidance measure to achieve this, where, for each vehicle, the left bounding obstacle vector is always chosen as the cross-path obstacle vector for avoidance. For example, for k to turn counterclockwise, it chooses the vector vobskit to avoid instead of vobskjt. Thus, for the configuration of Figure 13, the following set of attitude constraints is enforced:


3.4. Consensus with Q-CAC–based avoidance

Once a safe attitude vector vi(k) is computed at time k for any i, the next position xi(k + 1) is computed as a point a distance ri/2 from the current position, along the vector vi(k). Note that vi(k) is normalized to keep the computed control bounded. Whether there are intersections of the safety regions or not, one can guarantee the safety of the algorithm by bounding the control size within the interval 0 < ui ≤ ri/2. This means that a vehicle never steps beyond its safety region at any single time step.

Another important consideration is the size of control computed at each time using Laplacian matrices, which is directly proportional to the algebraic connectivity of the communication graph, and inversely proportional to the magnitude of the current time k. This means that, while the early values of u are large and therefore unsafe for collision avoidance (and must be bounded), the latter values of u are very small and therefore slow down the rate of convergence. One can observe that collisions are less likely to occur in the latter times when the vehicles are closer to their goal positions; consequently, convergence is slower at that time. Therefore, there is need to obtain constantly bounded control u which can guarantee both collision avoidance and a high speed of convergence. The following modifications to Eq. (4) and Eq. (5) were proposed in our previous works [5, 9, 14]. For the leader-follower architecture,


And for the leaderless architecture,


where λ2(L) is the second smallest eigenvalue of the Laplacian L. The parameter η is for scaling the consensus term and β is for scaling the proportional term in Eqs. (32) and (33). The logarithmic term log10(k + 1) and the term Δt2λ2L are used to reduce ‖u‖ when k is small and increase ‖u‖ when k is large. The choices of parameters η and β should depend on the radius of S and safety region ε for each vehicle. Alternatively, one may choose to compute an unbounded u using Eqs. (4) or (5), then for each ui>ri2, normalize ui and set ui=ri2ui.

The step-by-step procedure for implementing the algorithm including a flowchart can be found in Ref. [14].


4. Simulation results

To demonstrate the solutions developed in this chapter, we revisit the experiment presented in Figure 1. The robots are homogeneous, and S for each robot is 85 mm, ε = 90 mm, whereas the dimensions of the soccer pitch are 6050 mm x 4050 mm. In Figure 14 (a), Eq. (5) was applied with the cyclic communication topology with one leader (Figure 2). In Figure 14 (b), Eq. (33) was applied with a full communication topology (i.e., every vehicle can communicate with each other). The simulation was done with MATLAB R2009a on an Intel® Core(TM)2 Duo P8600 @ 2.40 GHz with 2 GB RAM, running Windows 7. For Figure 14(a), the multipath planning problem took 244 time-steps to solve, resulting in a total computation time of 7.343 s, in which 203 avoidance attempts were made, and there were no collisions. For Figure 14(b), using a full communication topology, the computational time was 0.0131 s, and there were no collisions.

Figure 14.

Collision-free reconfiguration: (a) using topology with Eq. (5) and (b) using fully connected graph with Eq. (33).

In [14], more simulations and analyses are presented, together with the limitations of this approach, which remains to be explored for future development.


5. Conclusion

In this chapter, we considered consensus-based multipath planning. An approach to incorporating collision avoidance in adversarial situations in the consensus algorithm by applying Q-CAC is presented. Simulation results are presented here to show that for a sizable number of vehicles, collision avoidance and fast convergence are guaranteed. Future work will include implementation on a team of mobile robots and autonomous aerial vehicles.


  1. 1. Zickler S, Laue T, Birbach O, Wongphati M, Veloso M. SSL-vision: The shared vision system for the RoboCup small size league. In: RoboCup 2009: Robot Soccer World Cup XIII. Baltes J, Lagoudakis MG, Naruse T, Shiry S, editors. Lecture Notes in Artificial Intelligence. Springer; 2010. p. 425-436. ISBN 978-3-642-11876-0
  2. 2. Waymo. Google’s Self-Driving Cars [Internet]. 2016. Available from: [Accessed: August, 2017]
  3. 3. PATH. California Partners for Advanced Transit and Highways [Internet]. 2006. Available from: [Accessed: December, 2009]
  4. 4. Blackwood G, Lay O, Deininger B, Gudim M, Ahmed A, Duren R, Noeckerb C, Barden B. The StarLight mission: A formation-flying stellar interferometer. In: SPIE 4852, Interferometry in Space; 22 August; Waikoloa, Hawaii. SPIE Digital Library; 2002. DOI:
  5. 5. Okoloko I, Basson A. Consensus with collision avoidance: An LMI approach. In: 5th IEEE International Conference on Automation, Robotics and Applications; 06–08 December; Wellington, NZ. IEEE; 2011. ISBN:9781457703287
  6. 6. Chandler PR, Pachter M, Rasmussen S. UAV cooperative control. In: IEEE ACC; 25–27 June; Arlington, VA. IEEExplore; 2001. p. 50-55. DOI: 10.1109/ACC.2001.945512
  7. 7. Richards A, Schouwenaars T, How JP, Feron E. Spacecraft trajectory planning with avoidance constraints using mixed-integer linear programming. AIAA Journal of Guidance Control and Dynamics. 2002;25:755-764. DOI:
  8. 8. Okoloko I. Consensus based distributed motion planning on a sphere. In: IEEE ACC; 17–19 June; Washington DC. IEEEXplore; 2013. p. 6132-6137. DOI: 10.1109/ACC.2013.6580799
  9. 9. Okoloko I. Path planning for multiple spacecraft using consensus with LMI avoidance constraints. In: IEEE Aerospace Conference; 3–10 March; Big Sky, Montana. IEEEXplore; 2012. p. 1-8. DOI:10.1109/AERO.2012.6187118
  10. 10. Okoloko I, Kim Y. Distributed constrained attitude and position control using graph Laplacians. In: ASME Dynamic Systems and Control Conference; 13–15 September; Cambridge, Massachusetts. ASME; 2010. p. 377-383. DOI: 10.1115/DSCC2010-4036
  11. 11. Hwang I, Tomlin C. Protocol-based conflict resolution for finite information horizon. In: IEEE ACC; 8–10 May; Anchorage, Alaska. IEEExplore; 2002. p. 748-753. DOI: 10.1109/ACC.2002.1024903
  12. 12. Peng L, Zhao Y, Tian B, Zhang J, Bing-Hong W, Hai-Tao Z, Zhou T. Consensus of self-driven agents with avoidance of collisions. Physical Review. 2009;79(E). DOI: 10.1103/PhysRevE.79.026113
  13. 13. Olfati-Saber R. Flocking for multi-agent dynamic systems: Algorithms and theory. IEEE Transactions on Automatic Control. 2006;51(3):401-420. DOI: 10.1109/TAC.2005.864190
  14. 14. Okoloko I. Multi-Path Planning and Multi-Body Constrained Attitude Control [Dissertation]. Stellenbosch, South Africa: PhD Thesis: Stellenbosch University; 2012. p. 185. Available from: http://hdl
  15. 15. Fax AJ. Optimal and Cooperative Control of Vehicle Formations [Thesis]. Pasadena, CA: PhD Thesis, CALTECH; 2002. p. 135. Available from:
  16. 16. Kim Y, Mesbahi M. Quadratically constrained attitude control via semidefinite programming. IEEE Transactions on Automatic Control. 2004;49:731-735. DOI: 10.1109/TAC.2004.825959
  17. 17. Boyd S, Ghaoui LE, Feron E, Balakrishnan V. Linear Matrix Inequalities in System and Control Theory. Philadelphia, PA: SIAM; 1994. p. 205. ISBN: 0-89871-334-X

Written By

Innocent Okoloko

Submitted: May 15th, 2017 Reviewed: September 26th, 2017 Published: March 29th, 2018