# Cooperative Collision Avoidance in Mobile Robots using Dynamic Vortex
Potential Fields

Wayne Paul Martis
Technische Universität Dortmund
Dortmund, Germany
<EMAIL_ADDRESS>
&Sachit Rao
International Institute of Information Technology Bangalore
Bangalore, India
<EMAIL_ADDRESS>
###### Abstract

In this paper, the collision avoidance problem for non-holonomic robots moving
at constant linear speeds in the 2-D plane is considered. The maneuvers to
avoid collisions are designed using dynamic vortex potential fields (PFs) and
their negative gradients; this formulation leads to a reciprocal behaviour
between the robots, denoted as being cooperative. The repulsive field is
selected as a function of the velocity and position of a robot relative to
another and introducing vorticity in its definition guarantees the absence of
local minima. Such a repulsive field is activated by a robot only when it is
on a collision path with other mobile robots or stationary obstacles. By
analysing the kinematics-based engagement dynamics in polar coordinates, it is
shown that a cooperative robot is able to avoid collisions with non-
cooperating robots, such as stationary and constant velocity robots, as well
as those actively seeking to collide with it. Conditions on the PF parameters
are identified that ensure collision avoidance for all cases. Experimental
results acquired using a mobile robot platform support the theoretical
contributions.

_Keywords_ Vortex Potential Fields $\cdot$ Mobile Robots $\cdot$ Collision
Avoidance $\cdot$ Reciprocity

##  1 Introduction

Collision avoidance (CA) is a crucial element in many applications involving
mobile robots as well as aerial vehicles. For example, in the deployment of a
swarm of robots for area exploration–see [1, 2, 3] for applications and
challenges–or air traffic management, where several aerial robots sharing the
same airspace have to reach their respective goal locations while avoiding
collisions with each other, [4, 5]. A commonly applied technique to avoid
collisions in such dynamic environments is based on artificial potential
fields (APFs), mainly because this technique uses local information and is
easy to implement. As is well known, in this approach, an attractive field is
defined at the goal location and repulsive fields are defined around
obstacles. These fields are typically functions of positions and/or the
velocities of the robots and obstacles. Calculating the negative gradient of
these PF functions leads to expressions for the inputs to the robot that can
steer it towards its goal.

The choice of PFs, however, can lead to the presence of local minima, where, a
robot gets “trapped” and is unable to move towards its goal. Variants of PF
functions have been proposed that avoid this issue, one of them being the
class of harmonic PFs, denoted by $\mathcal{U}$, that satisfy the Laplacian
equation $\nabla^{T}\nabla\mathcal{U}$=0, [6]. Alternative PFs have been
proposed in [7, 5, 8].

Another variant is the use of the so-called curl-free vector field, also the
vortex field, as the repulsive field defined around the obstacles rotates
around the obstacle. The direction of rotation can be selected by the
appropriate choice of signs of the gradients. Such fields have been used in
[9, 4, 10, 3, 11] to design repulsive PFs for collision avoidance. In our
work, where we focus on cooperative robots, we select such a rotating
repulsive field to ensure that a pair of robots on a collision path turn in
the same direction and avoid collisions; this formulation holds even for
multiple robots. As described in [4], fixing the direction of rotation of the
vortex repulsive field corresponds to fixing the “rule of the road”. Repulsive
PFs akin to the vortex PF we use are designed in [12], where the force vectors
are chosen to lie tangentially to an obstacle using a rotational matrix, and
in [13], where a helicoidal PF function is proposed around an obstacle that
enables a robot to rotate around it. It is emphasised these designs do not
explicitly consider the relative position or the velocity.

We use the dynamic vortex field function proposed in [14] to design the
repulsive field, where, the field is a function of the position and velocity
of a robot relative to another robot. As the repulsive field is defined in
terms of relative velocity and position, the direction of rotation of the
field becomes fixed, which in turn, ensures that robots turn in the same
direction. It should be mentioned that the dynamic vortex field in [14] is
designed for a robotic manipulator to avoid dynamic obstacles, which we apply
to mobile robots, thus bringing in the novelty to our approach.

Indeed, the idea of requiring cooperative robots to turn in the same direction
is the essence of the Hybrid Reciprocal Velocity Obstacle (HRVO) algorithm,
[15], as well as the Optimal Reciprocal Collision Avoidance (ORCA) algorithm,
[16, 17]. In these algorithm, cooperative robots perform maneuvers that are
reciprocal to each other to avoid collisions. The maneuvers are designed in
the velocity space of the robots; for example, in the HRVO algorithm, a robot
computes a new velocity that lies outside the velocity obstacle induced by
other robots and which is also closest to its preferred velocity. In contrast
to these algorithms, what we propose does not require the computation of
velocity obstacles and reciprocity appears as a natural consequence of the
formulation of the repulsive field. We also consider non-point robots,
modelled as circles, and determine conditions on the PF parameters as
functions of the robots’ radii, initial separation distance, as well as their
relative velocities that guarantee collision avoidance. We explicitly consider
a case where a robot is actively seeking to collide, denoted as the attacking
robot, with a cooperative robot and even for this case, bounds on the PF
parameters that enable the cooperative robot to repel the attacking robot are
identified. The attacking robot is assumed to apply the standard attractive PF
to collide with the cooperative robot.

The main contributions of this paper are the application of a dynamic vortex
potential field for collision avoidance in cooperative robots

  1. 1.

that naturally introduces reciprocity between cooperative robots, thus
eliminating the need to state rules that define the directions of turn;

  2. 2.

against non-cooperative robots that are either stationary or move at a
constant velocity;

  3. 3.

that can be applied to repel robots that actively seek to collide with
cooperative robots; and

  4. 4.

that consider the radius of the circle that bounds each cooperative robot.

It is also highlighted that the paper presents rigorous proofs of collision
avoidance for all cases, using Lyapunov theory and results from aerospace
guidance literature. The engagement between robots, in all cases, is defined
using kinematics-based dynamics in polar coordinates. The proofs are based on
the conditions–identified in [18]–that are both necessary and sufficient for
collision of points moving in 2-D space. Collision avoidance is demonstrated
by proving that the collision conditions form unstable equilibrium points and
hence, are _never_ satisfied. It is assumed that all types of robots are
homogeneous and move at the same linear speed. However, since the algorithm is
developed in the relative velocity space, it is applicable to robots that move
at different linear speeds.

We present experimental results for all our theoretical contributions in an
indoor robotics platform that consists of several differential-drive robots
that satisfy the non-holonomic constraints. As will be discussed, the
theoretical results can be applied directly with minor tuning of the PF
parameters, primarily to account for the inertial parameters of the robots
that are not considered in the theoretical derivations.

The paper is organised as follows: The kinematic model of the robot as well as
the engagement dynamics between two robots on a collision path are presented
in Sec. 2. The attractive and dynamic vortex repulsive fields that are used to
design the robot maneuvers are described in Sec. 3; the proofs of collision
avoidance are also presented here. Experimental results on the application of
the proposed approach on differential drive robots are presented in Sec. 4,
followed by concluding remarks in Sec. 6.

##  2 Preliminaries

The kinematics of the robot as well as that of the engagement dynamics defined
in terms of relative velocities in polar coordinates are described. These
relative velocities will be used to prove collision avoidance.

###  2.1 Robot description

A swarm of $N\geq 2$ homogeneous robots that move at constant linear speeds,
$V$, is considered. Each robot is assumed to be a point-mass and non-
holonomic, whose movements in a Cartesian plane ($X-Y$) are given by the
kinematic relations

$\displaystyle\dot{x}_{Ri}$ $\displaystyle=V\cos{\left(\phi_{Ri}\right)},\
\dot{y}_{Ri}=V\sin{\left(\phi_{Ri}\right)},$ (1a)
$\displaystyle\dot{\phi}_{Ri}$ $\displaystyle=\omega_{Ri}$ (1b)

where, $(x,y)_{Ri}$ are the coordinates of robots $R_{i},\ i=1,\cdots,N$, in
the Cartesian space with a known origin; $\phi_{Ri}$ is the heading angle,
which is measured positive counter-clockwise about the $X-$axis; and
$\omega_{Ri}$ is the angular velocity, which can be varied. This variation
leads to the accelerations

$\displaystyle\ddot{x}_{Ri}$
$\displaystyle=-V\sin{\left(\phi_{Ri}\right)}\dot{\phi}_{Ri}=F_{xRi}$ (2a)
$\displaystyle\ddot{y}_{Ri}$
$\displaystyle=V\cos{\left(\phi_{Ri}\right)}\dot{\phi}_{Ri}=F_{yRi},$ (2b)

where, the terms $F_{xRi},F_{yRi}$ can be interpreted as forces acting on the
robot that steer the robot to known goal locations $(x,y)_{RiG}$. It is these
forces that are selected as the negative gradients of the PFs defined in Sec.
3.

###  2.2 Engagement Dynamics

$R_{1}$$R_{2}$$r$$X$$Y$$\theta_{1}$$\theta_{2}$$V$$V$$\phi_{R1}$$\phi_{R2}$

Figure 1: A pair of robots on a collision path

Consider 2 robots, $R_{1}$ and $R_{2}$, moving in the plane at constant linear
speeds, as shown in Fig. 1. Following the notations used in aerospace guidance
literature, denote the separation distance between them as

$r_{1}=\sqrt{\left(x_{R1}-x_{R2}\right)^{2}+\left(y_{R1}-y_{R2}\right)^{2}}=r_{2},$
(3)

and the line-of-sight (LOS) angles as $\theta_{i}$, which are computed as

$\theta_{i}=\tan^{-1}{\left(\frac{y_{Rj}-y_{Ri}}{x_{Rj}-x_{Ri}}\right)},\
i,j=1,2,\ i\neq j,$ (4)

and are the angles made by the line joining the two robots and the $X-$axis
passing through the robots, respectively.

Using (1), (3), and (4), define the relative velocities in polar coordinates

$\displaystyle\dot{r}_{i}$
$\displaystyle=V_{ri}=V\cos{\left(\phi_{Rj}-\theta_{i}\right)}-V\cos{\left(\phi_{Ri}-\theta_{i}\right)}$
(5a) $\displaystyle r_{i}\dot{\theta}_{i}$ $\displaystyle=V_{\theta
i}=V\sin{\left(\phi_{Rj}-\theta_{i}\right)}-V\sin{\left(\phi_{Ri}-\theta_{i}\right)},$
(5b)

which, along with (2), yield the relative accelerations

$\displaystyle\dot{V}_{ri}$ $\displaystyle=\frac{V_{\theta
i}^{2}}{r_{i}}+\cos{\left(\theta_{i}\right)}\left(F_{xRj}-F_{xRi}\right)+\sin{\left(\theta_{i}\right)}\left(F_{yRj}-F_{yRi}\right)$
(6a) $\displaystyle\dot{V}_{\theta i}$ $\displaystyle=\frac{-V_{ri}V_{\theta
i}}{r_{i}}-\sin{\left(\theta_{i}\right)}\left(F_{xRj}-F_{xRi}\right)+\cos{\left(\theta_{i}\right)}\left(F_{yRj}-F_{yRi}\right).$
(6b)

Since the LOS angles satisfy $\theta_{2}=\pi+\theta_{1}$, the relative
velocities also satisfy $V_{r1}=V_{r2}$ and $V_{\theta 1}=V_{\theta 2}$. Thus,
when a pair of robots are considered, the subscript $i$ is dropped for the
relative velocity and acceleration terms.

As proved in [18, Lemma 2], the robots $R_{1}$ and $R_{2}$ moving at a
constant velocity are on a collision path if $V_{r}<0$ and $V_{\theta}=0$;
these are both necessary and sufficient conditions for collision. Thus, if the
forces $F_{xRi},F_{yRi}$ acting on each robot are selected such that these
conditions are _violated_ , then, the robots avoid a collision with each
other. These forces are chosen based on the negative gradients of the dynamic
vortex potential field–which forms the repulsive field around each robot
considered as an obstacle–and an attractive field defined at the goal
location; these designs form the main results of the paper, which are
presented next.

##  3 Main Results

To design the inputs that steer each robot to its respective goal location and
avoid collisions, the following standard assumptions are made:

  1. A.1

The goal locations, $(x,y)_{RiG}$, of each robot are stationary and known.

  2. A.2

Each robot possesses information on the positions and velocities of other
robots in its vicinity.

###  3.1 Attractive Potential Field

Since each robot, $R_{i}$ knows its goal location, the inputs that steer the
robot towards its goal are designed based on the attractive PF function

$\mathcal{U}_{\text{Att}i}=\kappa\sqrt{\left(x_{Ri}-x_{RiG}\right)^{2}+\left(y_{Ri}-y_{RiG}\right)^{2}},$
(7)

where, $\kappa>0$ is a user-defined parameter. As can be seen,
$\mathcal{U}_{\text{Att}i}$ is simply a scaled Euclidean distance between the
current location of the robot and the goal. Now, it is shown that if the robot
inputs are chosen based on the negative gradient of
$\mathcal{U}_{\text{Att}i}$, then, it is attracted towards the goal. The proof
is based on constructing a Lyapunov function and analysing its dynamics.

For simplicity, consider a single robot and an obstacle-free environment (the
subscript $i$ is therefore dropped). Thus, using the terms introduced in Sec.
2.2, the forces generated by the attractive field become

$F_{xR\text{Att}}=\frac{-\partial\mathcal{U}_{\text{Att}}}{\partial\left(x_{R}-x_{RG}\right)}=+\kappa\cos{\left(\theta\right)},\
F_{yR\text{Att}}=\frac{-\partial\mathcal{U}_{\text{Att}}}{\partial\left(y_{R}-y_{RG}\right)}=+\kappa\sin{\left(\theta\right)}.$
(8)

In deriving these partial derivatives, the expressions for the LOS angle

$\cos{\left(\theta\right)}=\frac{x_{RG}-x_{R}}{r},\
\sin{\left(\theta\right)}=\frac{y_{RG}-y_{R}}{r}$ (9)

are used, where, $r$ is the separation distance between the robot and the
goal. Substituting (8) in (6), the relative accelerations become

$\dot{V}_{r}=\frac{V_{\theta}^{2}}{r}-\kappa,\
\dot{V}_{\theta}=\frac{-V_{r}V_{\theta}}{r}.$ (10)

Also, since the goal location, or target, is stationary, the relative
velocities, $V_{r},V_{\theta}$, in (5), reduce to
$V_{r}=-V\cos{\left(\phi_{R}-\theta\right)},\
V_{\theta}=-V\sin{\left(\phi_{R}-\theta\right)}$, from which it emerges that

$V_{r}^{2}+V_{\theta}^{2}=V^{2}.$ (11)

This condition implies that in the $V_{r}-V_{\theta}$ space, the relative
velocities are constrained to lie on a circle with the centre at the origin
and radius $V$.

The robot is attracted towards the target if the collision conditions
$V_{r}<0$ and $V_{\theta}=0$ are satisfied. Since these states have to satisfy
(11), for collision to occur, the relative velocity $V_{r}$ has to satisfy
$V_{r}=-V$. Also note that, since $|V_{r}|\leq V$, even if
$\dot{V}_{r}=-\kappa$ for $V_{\theta}=0$ and $r\neq 0$, in the dynamics (10),
the relative velocity satisfies $V_{r}=-V$. Thus, to examine the occurrence of
collision, by defining $\tilde{V}_{r}=V_{r}+V$, the stability of the
equilibrium point $r,V_{\theta},\tilde{V}_{r}=0$ is analysed, following
Lyapunov stability concepts, as discussed in [19]. Consider the Lyapunov
function

$\mathcal{V}_{LAtt}=\kappa
r+\frac{1}{2}V_{\theta}^{2}+\frac{1}{2}\tilde{V}_{r}^{2},$ (12)

which satisfies $\mathcal{V}_{LAtt}=0$ at the equilibrium point. By expressing
the dynamics (10) in terms of $\tilde{V}_{r}$, the derivative of
$\mathcal{V}_{LAtt}$ calculated using these dynamics is given by

$\dot{\mathcal{V}}_{LAtt}=-V\left(\kappa-\frac{V_{\theta}^{2}}{r}\right).$
(13)

Now, since $|V_{\theta}|\leq V$, by choosing $\kappa>(V^{2}/r^{*})$, where,
$r^{*}>0$, the derivative $\dot{\mathcal{V}}_{LAtt}<0\ \forall\ r>r^{*}$ and
$V_{\theta}\neq 0$. Thus, the trajectories of the non-linear dynamics are
attracted towards $r=r^{*}$ if the initial distance $r_{0}>r^{*}$. Note that,
from (8), $\kappa$ is a measure of the acceleration that can be provided by
the robot.

While the result (13) suggests a limit cycle type behaviour in the vicinity of
$r^{*}$, the analysis is further extended by determining if there exist
initial conditions and a time instant, say $t=t_{1}>0$, when
$V_{\theta}(t_{1})=0$, $V_{r}(t_{1})=-V\Rightarrow\tilde{V}_{r}=0$, and
$r(t_{1})\neq 0$ hold. If such conditions can be identified, then, the robot
reaches the equilibrium point within a finite time interval, say
$t_{1}<t_{2}<\infty$, since $\dot{\mathcal{V}}_{LAtt}=-V\kappa<0\ \forall\
t\geq t_{1}$. In addition, $\forall\ t\geq t_{2}$, though $V_{r}=-V$ and
$\dot{V}_{r}=-\kappa$ hold, since $|V_{r}|\leq V$, the magnitude of $V_{r}$
cannot increase any further, implies that these conditions lead to the robot
being “trapped” at the target location.

To determine if the conditions mentioned can be found, consider the dynamics
of $V_{r}$, in (10), and its simplification $\dot{V}_{r}=-\beta\kappa$, where,
$\beta<1$. Note that if $r_{0}<r^{*}$ and $V_{\theta}(t=0)\neq 0$, then
$\beta<0$ as well; however, from (13), since these conditions lead to
$\dot{\mathcal{V}}_{LAtt}>0$, the robot moves away from the target resulting
in $r>r^{*}$. Thus, the analysis can be performed by assuming an initial
separation distance $r_{0}>r^{*}$ and $0<\beta<1$. Now, by integrating
$\dot{V}_{r}=-\beta\kappa$ once, with the initial condition $V_{r0}$, leads to
$V_{r}(t_{1})=V_{r0}-kt_{1}$ and the value of $t_{1}$ when $V_{r}(t_{1})=-V$
and $V_{\theta}(t_{1})=0$, to be $t_{1}=\dfrac{V_{r0}+V}{\beta\kappa}$.
Integrating the dynamics of $\dot{r}=V_{r}$, results in

$r(t_{1})=r_{0}+\frac{\left(V_{r0}-V\right)^{2}}{2\beta\kappa}\Rightarrow
r(t_{1})\geq r_{0}>r^{*}.$ (14)

Thus, for $t\geq t_{1}$, since $\dot{\mathcal{V}}<0$ and the conditions for
collision are satisfied, the robot reaches its target location for any initial
conditions $V_{[}r0],V_{\theta 0}$, and $r_{0}$, implying that the equilibrium
point $r,V_{\theta},\tilde{V}_{r}=0$ is globally asymptotically stable.

The existence of $V_{\theta}(t_{1})=0$, $V_{r}(t_{1})=-V$, and $r(t_{1})\neq
0$ can be interpreted as follows: based on the initial conditions, the robot
moves away from the target location, but changes its orientation such that it
points towards the target and then moves to the target at constant speed.

######  Remark 3.1.

The presented analysis is required mainly because the robot does not
decelerate as it approaches the target, but moves at a constant linear speed.
This is a standard setting in aerospace guidance literature, where, an
interceptor is considered to move at constant speed and the forces acting on
the interceptor are designed to point it towards its target, leading to a
collision. In the current robotics application, however, in a practical
scenario, while implementing the forces (8), the robot’s speed can be switched
off to zero, when it is close (with allowable deviations) to the target
location.

The robot inputs that allow it to maneuver around various types of obstacles,
both static and dynamic, are designed next.

###  3.2 Dynamic Vortex Repulsive Potential Field

Consider two robots $R_{i}$ and $R_{j}$, as shown in Fig. 1, and let their
velocities in the plane be such that they are on a collision path. For each
robot, the repulsive field, as proposed in [14], is selected in the form

$\displaystyle\mathcal{U}_{\text{Rep}i}$
$\displaystyle=\begin{cases}\lambda\left(\cos{\gamma_{i}}\right)^{2}\frac{\left\lVert\mathbf{v}_{ij}\right\rVert}{r_{i}}\
&\text{if }\frac{\pi}{2}<\gamma\leq\pi\\\ 0&\ \text{otherwise}\end{cases},\
\lambda>0,$ (15a) where, $\displaystyle\cos{\gamma_{i}}$
$\displaystyle=\frac{\mathbf{v}_{ij}^{T}\mathbf{x}_{ij}}{\left\lVert\mathbf{v}_{ij}\right\rVert
r_{i}},\ \mathbf{x}_{ij}=\begin{bmatrix}\left(x_{Rj}-x_{Ri}\right)\\\
\left(y_{Rj}-y_{Ri}\right)\end{bmatrix},\
\mathbf{v}_{ij}=\begin{bmatrix}\left(V\cos{\left(\phi_{Rj}\right)}-V\cos{\left(\phi_{Ri}\right)}\right)\\\
\left(V\sin{\left(\phi_{Rj}\right)}-V\sin{\left(\phi_{Ri}\right)}\right)\end{bmatrix}.$
(15b)

As can be observed, the vectors $\mathbf{v}_{ij}$ and $\mathbf{x}_{ij}$ are
the velocities and positions of robot $R_{j}$ relative to robot $R_{i}$. The
term $\cos{\gamma_{i}}$ in (15b) has a direct connection with the relative
velocity terms introduced in Sec. 2.2. By computing the dot product
$\mathbf{v}_{ij}^{T}\mathbf{x}_{ij}$, expanding the norm
$\left\lVert\mathbf{v}_{ij}\right\rVert$, and rewriting $r_{i}$ using (3), it
can be shown that

$\cos{\gamma_{i}}=\frac{V_{r}}{V_{rel}},\
V_{rel}=V\sqrt{2}\sqrt{1-\cos{\left(\phi_{Ri}-\phi_{Rj}\right)}}.$ (16)

Now, if the two robots are on a collision course, then, the relative velocity
$V_{r}<0$ and the relative speed $V_{rel}>0$ as well. Thus, $\cos{\gamma_{i}}$
can be evaluated and the angle $\gamma_{i}$ lies in the domain
$\frac{\pi}{2}<\gamma_{i}\leq\pi$, which is also the condition used in the
definition of the repulsive potential field, (15a).

######  Remark 3.2.

The triggering condition defined in (15a) for a robot to “activate” the
repulsive potential field can be evaluated by calculating the relative
velocity $V_{r}$. This can be performed by the robots exchanging their state
information - heading angles, positions, and speeds - with each other or by
using on-board sensors to estimate these states, such as the infrared range
and bearing sensor system, [20]. The experimental platform we use to
demonstrate our algorithm provides each robot with the states of others.

Thus, a robot triggers the repulsive potential field only if it is on a
collision path with another. In (16), the relative speed condition $V_{rel}=0$
holds when the heading angles of the two robots satisfy $\phi_{Ri}=\phi_{Rj}$.
This condition occurs when they either are moving in parallel or are one
behind another; in the latter case, since they are moving at the same linear
speed, they also cannot overtake each other. In both these conditions, the
repulsive field is not triggered.

Prior to showing how the robot inputs are computed using the PF in (15a), the
gradients of $\mathcal{U}_{\text{Rep}i}$ are calculated. For robot $R_{i}$,
these are

$\displaystyle\frac{\partial\mathcal{U}_{\text{Rep}i}}{\partial\left(x_{Rj}-x_{Ri}\right)}$
$\displaystyle=-\frac{\lambda
V_{r}}{V_{rel}r^{2}}\left(2V_{\theta}\sin{\theta_{i}}+V_{r}\cos{\theta_{i}}\right)$
(17a)
$\displaystyle\frac{\partial\mathcal{U}_{\text{Rep}i}}{\partial\left(y_{Rj}-y_{Ri}\right)}$
$\displaystyle=+\frac{\lambda
V_{r}}{V_{rel}r^{2}}\left(2V_{\theta}\cos{\theta_{i}}-V_{r}\sin{\theta_{i}}\right).$
(17b)

Now, the repulsive field assumes the vortex nature when the robot inputs are
selected as

$F_{xRi\text{Rep}}=-\frac{\partial\mathcal{U}_{\text{Rep}i}}{\partial\left(y_{Rj}-y_{Ri}\right)},\
F_{yRi\text{Rep}}=+\frac{\partial\mathcal{U}_{\text{Rep}i}}{\partial\left(x_{Rj}-x_{Ri}\right)}.$
(18)

By fixing the signs of the components of the forces for each robot, it can be
shown that the field “rotates” in the same direction for all robots; flipping
the signs reverses the direction of rotation. As has been proved in [21],
based on the expression of the repulsive field function and selecting the
gradients according to (18), the field becomes curl-free.

Figure 2: Gradients of the repulsive dynamic vortex PF when two robots are on
a head-on collision course

The nature of the dynamic vortex PF can be understood from Fig. 2. In this
figure, robots $R_{1}$ and $R_{2}$ are on a head-on collision course. The
arrows around each robot show the direction of rotation of the other robot
approaching it. As can be seen, since the signs of the gradients are the same
for both robots, the direction of turn of both robots is the same. As the
repulsive field is set to zero when the robots are moving away from each
other, that is, when $V_{r}\geq 0$, there are no arrows in the space “behind”
each robot.

######  Remark 3.3.

In the non-vortex case, the robot inputs are given by the negative gradients
of the repulsive field and are of the form

$F_{xRi\text{Rep}}=-\frac{\partial\mathcal{U}_{\text{Rep}i}}{\partial\left(x_{Rj}-x_{Ri}\right)},\
F_{yRi\text{Rep}}=-\frac{\partial\mathcal{U}_{\text{Rep}i}}{\partial\left(y_{Rj}-y_{Ri}\right)},$
(19)

which, as will be shown, may not guarantee collision avoidance for all cases
of engagement.

Various cases of robots, both cooperative and otherwise, interacting in the
plane are considered next.

###  3.3 Collision Avoidance between a Pair of Robots

Collision avoidance is proved for the following cases:

  1. Case 1.

A pair of cooperative robots on a collision path;

  2. Case 2.

A robot on a collision path with a stationary or non-cooperative robot;

  3. Case 3.

A cooperative robot and a non-cooperating robot actively seeking to collide by
applying inputs derived using the Attractive PF.

For Case 3, the conditions on initial separation, initial relative velocity,
and the PF parameters that ensure collision avoidance are identified.

For each of these cases, the types of robots that are considered are first
defined and next, the proof of collision avoidance is presented.

####  3.3.1 Case 1

######  Definition 3.1.

Cooperative robots are those that apply the same inputs as others when they
are on a collision path.

With this definition, collision avoidance for the case of cooperative robots
is proved in the following theorem.

######  Theorem 3.1.

Consider two robots moving in the plane. Let each robot know the position and
velocity of the other, when measured in a common reference frame. If they are
on a collision path and each applies inputs according to (18), then, they
avoid a collision with each other.

###### Proof.

The proof of this theorem rests on showing that the conditions for collision,
$V_{r}<0$ and $V_{\theta}=0$, are never satisfied if each robot applies inputs
according to (18). This result is proved by analysing the non-linear
engagement dynamics, (10), with the substitution of the robots’ inputs, given
by (17) and (18). Since, for robot $R_{i}$, these inputs are a function of the
LOS angle $\theta_{i}$ with respect to itself, in the analysis, the inputs for
both robots are expressed using a single LOS angle variable. This is possible,
as, from Fig. 1, the two LOS angles satisfy the relation
$\theta_{j}=\pi+\theta_{i}$. Based on this relation, the robot inputs satisfy
$F_{xRi\text{Rep}}=-F_{xRj\text{Rep}}$ and
$F_{yRi\text{Rep}}=-F_{yRj\text{Rep}}$.

Using these results and after much simplification, in the closed-loop, the
dynamics of $V_{r}$ and $V_{\theta}$ become

$\displaystyle\dot{V}_{r}$
$\displaystyle=\frac{V_{\theta}^{2}}{r}+4\left(\frac{\lambda}{V_{rel}r^{2}}\right)V_{r}V_{\theta}$
(20a) $\displaystyle\dot{V}_{\theta}$
$\displaystyle=\frac{-V_{r}V_{\theta}}{r}+2\left(\frac{\lambda}{V_{rel}r^{2}}\right)V_{r}^{2}.$
(20b)

As can be observed, the equilibrium point of these dynamics is
$V_{r}=V_{\theta}=0$.

Based on these dynamics, the occurrence of collision is demonstrated by
analysing the Lyapunov function

$\mathcal{V}_{LRep}=r+\frac{1}{2}V_{\theta}^{2}+\frac{1}{2}V_{r}^{2}.$ (21)

Similar to (11), from (5), it can be shown that

$V_{r}^{2}+V_{\theta}^{2}=V_{rel}^{2}.$ (22)

This constraint also indicates that $\mathcal{V}_{LRep}=r+0.5V_{rel}^{2}$.
Thus, the Lyapunov function $\mathcal{V}_{LRep}$ can be interpreted as the sum
of a potential energy component, measured by $r$, and a kinetic energy
component, given by the relative speed $V_{rel}$. Note that if the robots
collide, which implies $r=0$, and continue to move together, then
$V_{rel}=V_{r}=V_{\theta}=0$ as well. Thus, $\mathcal{V}_{LRep}=0$ at the
equilibrium point, which corresponds to collision.

Since the robots are on a collision course, indicated by $V_{r}(t=0)=-2V<0$
and $V_{\theta}(t=0)=0$, the dynamics of $\mathcal{V}_{LRep}$ is analysed
under these conditions. Let, at $t=0$, the robots be separated by distance
$r_{0}$. Next, evaluating the derivative of $\mathcal{V}_{LRep}$ along the
trajectories of the states $\dot{r}=V_{r}$ and $V_{r},V_{\theta}$ as given by
(20), results in the expression

$\dot{\mathcal{V}}_{LRep}=V_{r}\left(1+\frac{6\lambda}{V_{rel}r^{2}}V_{r}V_{\theta}\right).$
(23)

Thus, if $\dot{\mathcal{V}}_{LRep}<0$ for all values of the states, then, the
equilibrium point is stable, which implies that collision occurs. However, the
converse also holds true, an unstable equilibrium point, indicated by
$\dot{\mathcal{V}}_{LRep}>0$, results only with an increase in the separation
distance $r$, implying that the robots do not collide.

From (23), consider the ratio

$\frac{\dot{\mathcal{V}}_{LRep}}{V_{r}}=\left(1+\frac{6\lambda}{V_{rel}r^{2}}V_{r}V_{\theta}\right).$
(24)

Since, at $t=0$, $\dot{V}_{\theta}>0$ and $V_{r}<0$, the robots begin to turn
away from each other, while simultaneously also approaching each other, that
is, the separation distance, $r$, between the robots reduces. Thus, for some
$\lambda$ and $r_{0}$, a time instant, $t_{1}>0$, can be found when the ratio
$0<\frac{\dot{\mathcal{V}}_{LRep}}{V_{r}}<1\ \forall\ 0\leq t<t_{1}$. This
implies that during this interval, the separation distance _cannot_ reduce
faster than $\mathcal{V}_{LRep}$. Thus, even if $t=t_{1}$ is the time instant
when $\mathcal{V}_{LRep}$ reaches its minimum, that is, when
$\dot{\mathcal{V}}_{LRep}=0$, since $V_{r}\neq 0$ at $t=t_{1}$, there exist
_non-zero_ values of $r,V_{r},V_{\theta}$ that satisfy
$V_{r}V_{\theta}=-\frac{V_{rel}r^{2}}{6\lambda}<0$. Thus, there exists a non-
zero separation distance when the Lyapunov function $\mathcal{V}_{LRep}$
reaches its minimum. This also implies that for $t>t_{1}$, the derivative of
$\mathcal{V}_{LRep}$ changes sign.

Now, for $t>t_{1}$, since $\dot{\mathcal{V}}_{LRep}>0$, the origin becomes an
unstable equilibrium point. Moreover, as the separation distance increases,
the terms $\frac{V_{\theta}^{2}}{r}>0$ and $\frac{-V_{r}V_{\theta}}{r}>0$
dominate the derivatives of $V_{r}$ and $V_{\theta}$, respectively, implying
that, there exists a time instant, say $t=t_{2}>t_{1}$, when $V_{r}=0$ and
$V_{\theta}=V_{rel}$. Thus, as the trajectories in the $V_{r}-V_{\theta}$
space are attracted to this point, the conditions for collision do not hold
any longer and the robots now “deactivate” the vortex repulsive field.

∎

The following remarks help in obtaining an intuitive understanding of the
effect of the inputs designed using the vortex repulsive field and the proof
of Theorem 3.1:

  1. i.

The inputs to the robots are

$\displaystyle F_{xRi\text{Rep}}$ $\displaystyle=-\frac{\lambda
V_{r}}{V_{rel}r^{2}}\left(2V_{\theta}\cos{\theta_{i}}-V_{r}\sin{\theta_{i}}\right)$
(25a) $\displaystyle F_{yRi\text{Rep}}$ $\displaystyle=-\frac{\lambda
V_{r}}{V_{rel}r^{2}}\left(2V_{\theta}\sin{\theta_{i}}+V_{r}\cos{\theta_{i}}\right),$
(25b)

from which can be seen that the magnitude of these forces increases with
decreasing $r$. Thus, if the two robots are initially located close to each
other, $r\approx 0$, then, for any $\lambda>0$, these forces ensure that the
robots turn away from each other at a faster rate. Similarly, if the robots
are far away, $r\gg 0$, then, these forces do not significantly influence the
robots’ maneuvers. The effect of bounded robot inputs on collision avoidance
is discussed in a later section.

  2. ii.

As the robots deactivate the repulsive field once $V_{r}=0$ and
$V_{\theta}=V_{rel}$ at $t=t_{2}$, the dynamics of the relative accelerations
reduce to

$\dot{V}_{r}=\frac{V_{\theta}^{2}}{r}>0,\ \dot{V}_{\theta}=0,$

implying the trajectories in the $V_{r}-V_{\theta}$ space do not enter the
domain $V_{r}<0$. Thus, the forces eliminate oscillatory behaviour during
collision avoidance.

  3. iii.

Also, at $t=t_{2}$, the behaviour of the robots will now be defined by the
attractive potential field, which, as discussed in Sec. 3.1, ensures that the
robots reach their goal locations.

####  3.3.2 Case 2

In this section, it is shown that the inputs (18) also aid in a robot avoiding
collisions with stationary or non-cooperative robots. Prior to presenting this
proof, a non-cooperative robot is formally defined.

######  Definition 3.2.

A non-cooperative robot is one that moves at a constant velocity and does not
actively avoid collisions with other robots.

######  Theorem 3.2.

A robot applying the inputs (18) can avoid a collision with both stationary
and non-cooperative robots.

###### Proof.

Consider a robot, $R_{i}$, which is on a collision path with either a
stationary or non-cooperative robot. Since, both stationary and non-
cooperative robots do not apply the inputs (18), in the dynamics (6) for robot
$R_{i}$, the terms $F_{xRj}=F_{yRj}=0$. The relative velocity expressions for
a stationary robot reduce to $V_{r}=-V\cos{\left(\phi_{Ri}-\theta_{i}\right)}$
and $V_{\theta}=-V\sin{\left(\phi_{Ri}-\theta_{i}\right)}$, while, for a
constant velocity non-cooperative robot, the relative velocity terms are as
given in (5). However, in both cases, the relative accelerations have the same
expressions.

Thus, when robot $R_{i}$ applies the inputs (18), in the closed-loop, the
relative accelerations become

$\displaystyle\dot{V}_{r}$
$\displaystyle=\frac{V_{\theta}^{2}}{r}+2\left(\frac{\lambda}{V_{rel}r^{2}}\right)V_{r}V_{\theta}$
(26a) $\displaystyle\dot{V}_{\theta}$
$\displaystyle=\frac{-V_{r}V_{\theta}}{r}+\left(\frac{\lambda}{V_{rel}r^{2}}\right)V_{r}^{2}.$
(26b)

Now, by defining a Lyapunov function, denoted by $\mathcal{V}_{LRepNC}$ with
an expression identical to the one in Theorem 3.1, its derivative is analysed.
The derivative of $\mathcal{V}_{LRepNC}$ is given by

$\displaystyle\dot{\mathcal{V}}_{LRepNC}=-|V_{r}|\left(1+\frac{3\lambda}{V_{rel}r^{2}}V_{r}V_{\theta}\right).$
(27)

In this case, employing arguments similar to those used in the proof of
Theorem 3.1, it can be shown that, the cooperative robot is able to avoid a
collision with the non-cooperative one. ∎

######  Remark 3.4.

Note the difference in the coefficients in the terms in (20) and (26) derived
using the repulsive field inputs, (18). This difference is natural, since in
Case 1, the robots reciprocate and turn away from each other, thus increasing
the magnitude of the relative acceleration component. On the other hand, in
Case 2, since it is only one of the robots that turns away from the non-
cooperative robot, the relative acceleration is smaller.

######  Remark 3.5.

Since the proof of collision avoidance is shown in the relative velocity
space, our algorithm is applicable even when cooperative robots on a collision
path move at different constant linear speeds.

####  3.3.3 Case 3

In this case, a robot, say $R_{j}$, that is actively seeking to collide with a
cooperative robot, $R_{i}$, is considered. An “attacking” robot is defined as

######  Definition 3.3.

An attacking robot is one that chooses a cooperative robot as a goal (or
target) and applies its inputs according to the inputs defined by the negative
gradient of the attractive PF, in (8).

Prior to demonstrating collision avoidance against an attacking robot, a few
notations are introduced based on the engagement geometry shown in Fig. 1. Let
$R_{2}$ be the attacking robot which is trying to collide with the cooperative
robot $R_{1}$. Thus, the attractive PF for $R_{2}$ is

$\mathcal{U}_{\text{Attack}2}=\kappa\sqrt{\left(x_{R2}-x_{R1}\right)^{2}+\left(y_{R2}-y_{R1}\right)^{2}},$
(28)

and following the discussion presented in Sec. 3.1, its inputs are chosen as
the negative gradients

$\displaystyle F_{x2}$
$\displaystyle=\frac{-\partial\mathcal{U}_{\text{Attack}2}}{\partial\left(x_{R2}-x_{R1}\right)}=+\kappa\cos{\left(\theta_{2}\right)}=-\kappa\cos{\left(\theta_{1}\right)}$
(29a) $\displaystyle F_{y2}$
$\displaystyle=\frac{-\partial\mathcal{U}_{\text{Attack}2}}{\partial\left(y_{R2}-y_{R1}\right)}=+\kappa\sin{\left(\theta_{2}\right)}=-\kappa\sin{\left(\theta_{1}\right)},$
(29b)

since, $\theta_{2}=\pi+\theta_{1}$.

If $R_{1}$ and $R_{2}$ are on a collision path, then, the cooperative robot
$R_{1}$ considers the robot $R_{2}$ as a dynamic obstacle. Now, $R_{1}$
“projects” the dynamic vortex PF around robot $R_{2}$ and applies its inputs
in order to avoid a collision; these inputs are given by (18). This projection
of the repulsive field by one robot on another is visualised in Fig. 2. The
dynamics of the relative velocities become

$\displaystyle\dot{V}_{r}$
$\displaystyle=\frac{V_{\theta}^{2}}{r}+2\left(\frac{\lambda}{V_{rel}r^{2}}\right)V_{r}V_{\theta}-\kappa$
(30a) $\displaystyle\dot{V}_{\theta}$
$\displaystyle=\frac{-V_{r}V_{\theta}}{r}+\left(\frac{\lambda}{V_{rel}r^{2}}\right)V_{r}^{2}.$
(30b)

As can be observed, if the robot $R_{1}$ does not project a repulsive field,
that is, if $\lambda=0$, and if the robots are moving such that the collision
conditions are satisfied, then, $R_{2}$ will collide with $R_{1}$. This is
also supported by the discussion in Sec. 3.1.

The conditions when collision is avoided are identified in the following
theorem.

######  Theorem 3.3.

Given the PF parameters $\kappa,\lambda>0$, if the initial separation
distance, $r_{0}$, between the attacking and cooperative robots satisfies
$r_{0}\geq\sqrt{3\lambda V}$, where $V$ is the linear speed of each robot,
then, the cooperative robot is able to avoid colliding with the attacking
robot.

###### Proof.

Based on the dynamics (30), collision avoidance is demonstrated by analysing
the Lyapunov function

$\mathcal{V}_{LAtck}=\kappa r+\frac{1}{2}V_{\theta}^{2}+\frac{1}{2}V_{r}^{2},$
(31)

with equilibrium conditions $r=V_{r}=V_{\theta}=0$; these equilibrium
conditions are similar to those selected in Case 1\. From (30) as well as the
relation $\dot{r}=V_{r}$, the derivative of $\mathcal{V}_{LAtck}$ becomes

$\dot{\mathcal{V}}_{LAtck}=\frac{3\lambda}{V_{rel}r^{2}}V_{r}^{2}V_{\theta}.$
(32)

First, the case when the robots are initially on a head-on collision course is
considered. Let $V_{r}(t=0)=-2V$ and $V_{\theta}(t=0)=0$, then, there exists a
time interval, $0<t\leq t_{1}$, when $\dot{\mathcal{V}}_{LAtck}>0$, since,
during this interval, from (30b), the relative acceleration
$\dot{V}_{\theta}>0$. Thus, in this interval, the equilibrium point is
unstable, indicating that collision is avoided.

Since the states $V_{r},V_{\theta}$ satisfy the condition (22), let, at
$t=t_{1}$, $V_{\theta}(t=t_{1})=2V$, $V_{r}=0$, and $r(t=t_{1})=r_{1}>0$. Now,
the cooperative robot $R_{1}$ stops projecting the vortex repulsive field,
since the triggering condition given in (15a) does not hold. Thus, at
$t=t_{1}$, the dynamics (30) become

$\dot{V}_{r}=\frac{V_{\theta}^{2}}{r}-\kappa,\
\dot{V}_{\theta}=\frac{-V_{r}V_{\theta}}{r}.$ (33)

Now, if for some $t=t_{2}\geq t_{1}$, the separation distance $r$ and the
relative velocity $V_{\theta}$ are such that $\dot{V}_{r}<0$ then, the
attacking robot begins to approach the cooperative robot. However, the
cooperative robot again projects the repulsive field and the collision
avoidance maneuver starts again. Since, for $t\geq t_{2}$, $V_{\theta}>0$, the
derivative of the Lyapunov function again satisfies
$\dot{\mathcal{V}}_{LAtck}>0$, thus, indicating an unstable equilibrium
$(r,V_{r},V_{\theta})=0$.

This result holds for any $\lambda,\kappa>0$ and $r_{0}$.

Suppose the initial conditions are $V_{r}(t=0)<0$ and $V_{\theta}(t=0)<0$.
Now, $\dot{\mathcal{V}}_{LAtck}<0$, indicating a possibility of the
equilibrium states being stable. However, by imposing conditions on the
parameter $\lambda$ and the initial separation distance $r_{0}$, it may be
possible that the robots have a non-zero separation distance at the time
instant when $\mathcal{V}_{LAtck}=0$. As used in the proof of Theorem 3.1,
compute the ratio

$\displaystyle\frac{\dot{\mathcal{V}}_{LAtck}}{\dot{r}}$
$\displaystyle=\frac{3\lambda}{V_{rel}r^{2}}V_{r}V_{\theta}\leq\frac{3\lambda}{2r_{0}^{2}}V_{rel}.$
Thus, for a chosen $\lambda>0$, if $\displaystyle r_{0}$
$\displaystyle\geq\sqrt{3\lambda
V}\Rightarrow\frac{\dot{\mathcal{V}}_{LAtck}}{\dot{r}}<1,$ (34)

indicating that $r$ cannot go to zero before $\mathcal{V}_{LAtck}$ reaches a
minimum, implying that there will be a non-zero separation distance between
the attacking and cooperative robots.

Note that $\mathcal{V}_{LAtck}$ reaches a minimum when $V_{\theta}=0$, since,
for $V_{r}(t=0)<0$ and $V_{\theta}(t=0)<0$, the relative acceleration
$\dot{V}_{\theta}>0$, from (30b). Denote this time instant as $t=t_{3}$. Now,
if $V_{r}(t=t_{3})<0$, it has already been shown that collision does not
occur. On the other hand, if $V_{r}(t=t_{3})\equiv 0$, depending on the
magnitudes of the parameters, the robots are still separated by a non-zero
distance, but are moving parallel to each other.

This analysis shows that the trajectories in the $V_{r}-V_{\theta}$ space
oscillate around $V_{r}=0$ and $V_{\theta}>0$, indicating that the cooperative
robot keeps turning away from the attacking robot until the collision
avoidance conditions are violated. Once this happens and the attacking robot
maneuvers to collide with the cooperative one, the latter again begins to turn
away to avoid colliding with the former. ∎

###  3.4 Collision avoidance for non-point cooperative robots with bounded
inputs

The results presented so far consider the robots to be points. In this
section, the analysis on collision avoidance is extended to cooperative robots
that are defined by circles of radius $R_{\text{Rob}}>0$ and also have limits
on their accelerations. This analysis will aid in determining:

  1. i.

the influence of limits that naturally bound the acceleration inputs that can
be applied by a robot, when the input commanded by the repulsive field is
greater than this limit;

  2. ii.

the amount of space that is needed by a robot while performing the collision
avoidance maneuver, both against other mobile robots as well as stationary
obstacles; and

  3. iii.

the role of the PF parameters $\lambda$ and $\kappa$ in the case of avoiding
collision with an attacking robot.

First, the relation between the acceleration inputs calculated using the
vortex potential field and limits on these inputs is derived. From (17) and
(18), for a cooperative robot $R_{i}$, it can be seen that if the separation
distance $r$ is very small, then clearly the inputs will have large
magnitudes. As discussed in Sec. 3.3.1, it is this relation that enables point
robots to turn away and avoid a collision even if their initial separation
distance is very small. However, if these inputs are bounded, say according to
$|F_{xRi\text{Rep}},F_{yRi\text{Rep}}|\leq F_{\lim}$, then, for small values
of $r$, the inputs become saturated at $F_{\lim}$.

In such cases, similar to (3.3.3), for a chosen repulsive field parameter
$\lambda$ and by setting $V_{rel}=2V$, by introducing another design parameter
$r^{*}>0$, the robots’ inputs can be defined as the output of the function

$\displaystyle F_{xRi\text{Rep}}$
$\displaystyle=\begin{cases}-\dfrac{\lambda}{V_{rel}r^{2}}\left(2V_{r}V_{\theta}\cos{\theta_{i}}-V_{r}^{2}\sin{\theta_{i}}\right)\
&\text{if }r>r^{*}\\\
-F_{\lim}\text{sign}\left(2V_{r}V_{\theta}\cos{\theta_{i}}-V_{r}^{2}\sin{\theta_{i}}\right)&\
\text{otherwise}\end{cases}$ (35a) $\displaystyle F_{yRi\text{Rep}}$
$\displaystyle=\begin{cases}-\dfrac{\lambda}{V_{rel}r^{2}}\left(2V_{r}V_{\theta}\sin{\theta_{i}}+V_{r}^{2}\cos{\theta_{i}}\right)\
&\text{if }r>r^{*}\\\
-F_{\lim}\text{sign}\left(2V_{r}V_{\theta}\sin{\theta_{i}}+V_{r}^{2}\cos{\theta_{i}}\right)&\
\text{otherwise}\end{cases}.$ (35b)

The design parameter $r^{*}$ can be expressed in terms of a minimum initial
separation distance and the acceleration limit $F_{\lim}$ that ensures that
robots, each of radius $R_{\text{Rob}}$, can avoid “grazing” each other while
performing the collision avoidance maneuver. To do so, consider two such
cooperative robots, $R_{1}$ and $R_{2}$, as shown in Fig. 3. Let these robots
be initially separated by a distance $2l\leq r^{*}$ and also be moving on a
head-on collision course, so that the relative speed is the highest at
$V_{rel}=2V$. As has been proved in Theorem 3.1, the robots begin to turn away
from each other to avoid a collision. However, given their initial separation
distance, the magnitudes of the inputs to each robot become $F_{\lim}$. As a
result, the robots trace a circle with radius

$R_{\text{turn}}=\frac{V^{2}}{F_{\lim}}.$ (36)

This result is derived using the expression

$R_{\text{turn}}=\Bigg{|}\frac{\left(\dot{x}^{2}+\dot{y}^{2}\right)^{\frac{3}{2}}}{\dot{x}\ddot{y}-\dot{y}\ddot{x}}\Bigg{|},$

where, $\dot{x},\dot{y}$ and $\ddot{x},\ddot{y}$ are the velocity and
acceleration components in Cartesian space and are given by (1) and (2),
respectively.

Since the robots are homogeneous, the value $F_{\lim}$ is the same for each
robot. Owing to this homogeneity, the motions of the two robots are symmetric.
Now, the point when the separation distance is the smallest, denoted by the
distance $2d$ in Fig. 3, can be shown to satisfy

$d=\sqrt{R_{\text{turn}}^{2}+l^{2}}-R_{\text{turn}}.$ (37)

This occurs at the time-instant defined by $t=t_{1}$ in the proof of Theorem
3.1. Thus, the circles traced by the robots touch each other if the initial
separation distance $l=0$, which implies collision.

For the robots to avoid grazing each other, the distance $d$ should satisfy
$2d\geq 2R_{\text{Rob}}$, which, in turn, leads to

$R_{\text{turn}}\leq\frac{l^{2}-R_{\text{Rob}}^{2}}{2R_{\text{Rob}}}\
\Rightarrow
F_{\lim}\geq\frac{2R_{\text{Rob}}V^{2}}{l^{2}-R_{\text{Rob}}^{2}}.$ (38)

This result clearly indicates that if the initial difference
$\left(l^{2}-R_{\text{Rob}}^{2}\right)$ is small, the robot radius
$R_{\text{Rob}}$ and speed $V$ are large, then, the acceleration limit has to
be proportionately large for the robots to turn away from each other and avoid
a collision. Note that if $F_{\lim}$ is large, then, the radius
$R_{\text{turn}}$ is also small.

In the case of a non-cooperative robot that is moving at a constant velocity,
the acceleration limit should satisfy

$F_{\lim}\geq\frac{4R_{\text{Rob}}V^{2}}{l^{2}-4R_{\text{Rob}}^{2}},$ (39)

which is larger than what is required when two cooperative robots are avoiding
each other. This too should be expected since it is only the cooperative robot
that is performing the collision avoidance maneuver.

Thus, based on the acceleration capacity of the robot, their initial
separation distance and hence, $r^{*}$, can be suitably selected.

$X$$Y$$R_{1}(t=0)$$R_{2}(t=0)$$R_{1}(t=t_{1})$$R_{2}(t=t_{1})$$R_{\text{turn}}$$R_{\text{turn}}$$2l$$2d$

Figure 3: A pair of cooperative robots defined by circles avoiding colliding
with each other

######  Remark 3.6.

Free Space Needed: The result (38) and (36) can be used to determine the space
that is needed by a cooperative robot to avoid collisions with other
robots/obstacles in its vicinity. Since a robot turns away from obstacles at
its limit $F_{\lim}$, then it traces a circle of radius $R_{\text{turn}}$;
this can happen if the obstacles are at distances that satisfy (38). Consider
a scenario where a cooperative robot is at the open side of an enclosure
closed on 3-sides. In this scenario, since the direction of turn of the robot
is fixed, the free space that will be needed by the robot to avoid colliding
with any edge is the area traced by a semi-circle of radius
$\left(R_{\text{turn}}+R_{\text{Rob}}\right)$.

###  3.5 Collision Avoidance between Multiple Robots

Proof of collision avoidance using the vortex repulsive field can be directly
extended when multiple robots are involved. Collision amongst multiple robots
can occur when the condition to activate the repulsive field, (15a), is true
for several pairs of robots. Now, the closed-loop dynamics of pairwise
relative velocities are examined and the proof of Theorem 3.1 is applied to
show that for each pair, collision is avoided. Note that when $N>2$ robots are
involved, the number of pairwise relative velocities, $V_{r}$ and
$V_{\theta}$, are $N(N-1)/2$, each.

For simplicity, let the robots be defined as points. Now, the inputs for
collision avoidance for each robot $R_{i},\ i=1,\cdots,N$, are given by

$\displaystyle F_{xRi\text{Rep}}$
$\displaystyle=-\lambda\sum\limits_{j|\cos{\gamma_{ij}}<0}{\frac{V_{rij}}{V_{relij}r_{ij}^{2}}\left(2V_{\theta
ij}\cos{\theta_{ij}}-V_{rij}\sin{\theta_{ij}}\right)}$ (40a) $\displaystyle
F_{yRi\text{Rep}}$
$\displaystyle=-\lambda\sum\limits_{j|\cos{\gamma_{ij}}<0}{\frac{V_{rij}}{V_{relij}r_{ij}^{2}}\left(2V_{\theta
ij}\sin{\theta_{ij}}+V_{rij}\cos{\theta_{ij}}\right)},$ (40b)

where, $j=1\cdots N,\ i\neq j$; for the pair of robots $R_{i}$ and $R_{j}$,
$r_{ij}$ denotes the separation distance between them; $V_{rij}$ and
$V_{\theta ij}$ are the relative velocities; $\theta_{ij}$ is the LOS angle;
and $V_{relij}$ is the relative speed, given by (16). The following identities
hold for a pair of robots $R_{i}$ and $R_{j}$, for which the triggering
condition, $\cos{\gamma_{ij}}<0$, is true:

$\displaystyle F_{xRij\text{Rep}}$ $\displaystyle=-F_{xRij\text{Rep}},\
F_{yRij\text{Rep}}=-F_{yRij\text{Rep}},$ $\displaystyle\theta_{ji}$
$\displaystyle=\pi+\theta_{ij},\ V_{rij}=V_{rji},\ V_{\theta ij}=V_{\theta
ji}.$ (41)

In the same spirit as Theorem 3.1, collision avoidance between multiple point
robots can be proved by defining the Lyapunov function

$\mathcal{V}_{LRepMult}=\sum\limits_{i,j|\cos{\gamma_{ij}}<0}{\left(r_{ij}+\frac{1}{2}\left(V_{\theta
ij}^{2}+V_{rij}^{2}\right)\right)}$ (42)

and evaluating its derivatives along the trajectories of the relative
accelerations and that of the separation distance, given by
$\dot{r}_{ij}=V_{rij}$. Using (3.5) and after simplification, it can be shown
that

$\dot{\mathcal{V}}_{LRepMult}=-\sum{|V_{rij}|\left(1+\frac{3N^{\prime}\lambda}{V_{relij}r_{ij}^{2}}V_{rij}V_{\theta
ij}\right)},$ (43)

where, $N^{\prime}$ is the number of cooperative robots that are performing
the collision avoidance maneuvers. Now, using the same arguments as used in
proving Theorem 3.1, it can be shown that the equilibrium conditions
$r_{ij}=V_{rij}=V_{\theta ij}=0$ are unstable for any pair of robots. Thus,
collision is avoided between any pair of robots that are on a collision
course.

Remarks: For robots bounded by circles and with bounded inputs, the results of
Sec. 3.4 hold in the multiple robots case as well. The coefficient
$3N^{\prime}$, in (43), appears when a pair of cooperative robots are avoiding
each other, $N^{\prime}=2$ in (5), as well as when a single cooperative robot
is maneuvering to avoid colliding with a non-cooperative robot, $N^{\prime}=1$
in (27).

###  3.6 Implementation

As suggested in [9], with the use of potential fields, a robot can avoid
collisions and navigate to its goal if its heading angle, $\phi_{Ri}$, is
controlled to achieve the desired heading angle, $\phi_{Ri\text{Des}}$, given
by

$\phi_{Ri\text{Des}}=\tan^{-1}{\left(\frac{F_{yRi\text{Att}}+\sum\limits_{j}{F_{yRij\text{Rep}}}}{F_{xRi\text{Att}}+\sum\limits_{j}{F_{xRij\text{Rep}}}}\right)}.$
(44)

In the context of this paper, $F_{xRi\text{Att}}$ and $F_{yRi\text{Att}}$ are
given by (8), while $F_{xRi\text{Rep}}$ and $F_{yRi\text{Rep}}$ are calculated
using (17) and (18).

To ensure $\phi_{Ri}\to\phi_{Ri\text{Des}}$, the angular speed, $\omega_{Ri}$
in (1b), can be designed as the output of the controller

$\omega_{Ri}=K_{p}\left(\phi_{Ri\text{Des}}-\phi_{Ri}\right),$ (45)

where, $K_{p}>0$ is the control gain. This control law can also be chosen as a
Proportional-Integral controller so that bounded disturbances acting on the
robot can be suppressed.

In this section, it is shown that the implementation, (44) and (45), leads to
collision avoidance between robots as well as navigation towards the goal
location. For ease of understanding, these cases are considered separately.
First, the case of navigating towards the goal is considered, that is, in
(44), the repulsive field components are set to zero. Thus, as discussed in
Sec. 3.1, from the expressions for $F_{yRi\text{Att}}$ and
$F_{xRi\text{Att}}$, as given by (8), the desired heading angle for robot
$R_{i}$ becomes

$\displaystyle\phi_{Ri\text{Des}}$
$\displaystyle=\tan^{-1}{\left(\frac{\kappa\sin{\left(\theta_{i}\right)}}{\kappa\cos{\left(\theta_{i}\right)}}\right)}$
implying $\displaystyle\phi_{Ri\text{Des}}$ $\displaystyle=\theta_{i}\
\text{or}\ \phi_{Ri\text{Des}}=\theta_{i}+\pi.$ (46)

Since it has been shown in Sec. 3.1 that the relative velocity states
$V_{\theta}=0$ and $V_{r}<0$ are stable equilibrium states, the valid solution
for the heading angle is $\phi_{Ri\text{Des}}=\theta_{i}$.

Now, consider the case of collision avoidance between a pair of cooperative
robots $R_{i}$ and $R_{j}$. using the vortex repulsive field. By setting
$F_{yRi\text{Att}}=0$ and $F_{xRi\text{Att}}=0$ in (44) and from (17) and
(18), the desired heading angle for $R_{i}$ becomes

$\phi_{Ri\text{Des}}=\tan^{-1}{\left(\frac{2V_{\theta}\sin{\theta_{i}}+V_{r}\cos{\theta_{i}}}{2V_{\theta}\cos{\theta_{i}}-V_{r}\sin{\theta_{i}}}\right)}.$
(47)

The desired heading angle for $R_{j}$ can be similarly derived. Using the
result $\theta_{j}=\theta_{i}+\pi$, it can be shown that

$\displaystyle\tan{\phi_{Ri\text{Des}}}$
$\displaystyle=\tan{\phi_{Rj\text{Des}}},$ (48a) implying,
$\displaystyle\phi_{Ri\text{Des}}$ $\displaystyle=\phi_{Rj\text{Des}}\
\text{or}$ (48b) $\displaystyle\phi_{Ri\text{Des}}$
$\displaystyle=\pi+\phi_{Rj\text{Des}}.$ (48c)

Since the repulsive field is triggered only when robots are on a collision
path, their heading angles cannot be the same, thus the solution (48b) does
not hold. As a result, the heading angles of the two cooperative robots
satisfy $\phi_{Ri\text{Des}}=\pi+\phi_{Rj\text{Des}}$, implying that while
they are on a collision course, they turn away from each other. This result
also matches with that derived in Sec. 3.4.

When only robot $R_{i}$ is cooperative and robot $R_{j}$ is either non-
cooperative or attacking, a similar analysis can be performed to find a
relation between $\phi_{Ri\text{Des}}$ and the heading angle of robot $R_{j}$.
When $R_{j}$ is non-cooperative, $\phi_{Rj\text{Des}}=\phi_{Rj}\ \forall\
t\geq 0$, since $R_{j}$ does not change its path. When $R_{j}$ is attacking,
$\phi_{Rj\text{Des}}=\theta_{i}$. As has been proved in the earlier sections,
collision is avoided between the cooperative robot and both non-cooperative or
attacking types of robots.

Note that while calculating $\phi_{Ri\text{Des}}$, either in (47) or in (3.6),
the PF parameters $\kappa$ and $\lambda$ do not appear, indicating that these
parameters do not influence the desired heading angle. However, from the
closed-loop dynamics of the relative velocities $V_{r}$ and $V_{\theta}$, it
can be seen that the PF parameters affect the magnitudes of these relative
velocities, which in turn, determine $\phi_{Ri\text{Des}}$.

These theoretical results are supported by experimental, which are presented
next.

##  4 Experimental Results

The dynamic vortex PF algorithm is implemented on the QBOT 2E mobile robot
platform by Quanser111https://www.quanser.com/products/qbot-2e/. All
experiments are conducted in the Autonomous Vehicles Research
Studio222https://www.quanser.com/products/autonomous-vehicles-research-
studio/, also from Quanser. Some of the key features of the robot and the
Studio are listed in Table 1.

Table 1: Key parameters of the experimental platform QBOT 2E mobile robot
---
$2R_{\text{Rob}}$ | 35 cm
$V_{\max}$ | 0.7 m/s
Chosen robot speed $V$ | 0.17 m/s
On-board computer | Raspberry Pi with integrated WiFi
Studio
Workspace volume |  $3.5\times 3.5\times 2$ (in m)
Motion capture | Optitrack Flex 13 localization cameras

Within the Studio, all robots are localised in the same coordinate frame. The
position, velocity, and orientation of each robot are determined using the
motion capture system and transmitted by WiFi to a central computer, where the
collision avoidance algorithm is implemented. The angular speed, $\omega$,
which is given by the control law (45), of the robot and its constant linear
speed, $V$, are obtained by driving the wheels of the robot independently.
These states are related by the kinematic relations

$V=\frac{v_{R}+v_{L}}{2},\ \omega=\frac{v_{R}-v_{L}}{d},\
v_{R,L}=\omega_{R,L}r_{w},$ (49)

where, $v_{R,L}$ are the linear speeds of the right and left wheels; $d$ is
the distance between the wheels; and $r_{w}$ is the radius of each wheel.

In all the experimental results, once the robots reach within 20 cm of their
goal locations, they stop. This setting has support in Remark 3.1, since the
speeds of the robots are kept constant throughout. Also, for all cases, the
paths of the robots in the $X-Y$ space, the trajectories of the relative
velocities in the $V_{r}-V_{\theta}$ space, and the evolution of the
separation distance, $r$, are shown.

###  4.1 Case 1 - Results

Two cooperative robots, $R_{1,2}$, are initially at rest at positions
$(x,y)_{R10}$ and $(x,y)_{R20}$, respectively. For each robot, its goal
locations is selected as the initial position of the other. They are also
oriented such that, if they move at a constant velocity, they are on a head-on
collision course. The PF parameters were set at $\lambda=10$ and $\kappa=10$.

Figure 4: Collision avoidance by a pair of cooperative robots initially on a
head-on collision course. As time progresses, the shade of the circles becomes
lighter; this visualisation idea is borrowed from [16].

The reciprocal nature of collision avoidance is evident from the paths traced
by the robots in the $X-Y$ space (depicted as shaded circles) shown in Fig. 4.
Each robot turns to its right in order to avoid collisions; this direction of
turn is decided by the choice of the signs of the gradients that define the
inputs. As can also be seen in the trajectory of the relative velocities in
the $V_{r}-V_{\theta}$ space, there are no stable equilibria in the
$\\{V_{r}<0\ \text{and}\ V_{\theta}=0\\}$ domain, thus ensuring that the
conditions for collision are never satisfied. In addition, the robots do not
display any oscillatory behaviour as well; this can also be observed in the
results that follow.

To generate the graph in the $V_{r}-V_{\theta}$ space, the values of these
states are divided by the set-speed $V$. Moreover, once the condition
$V_{r}=0$ holds, the triggering condition becomes invalid and the robots
deactivate the repulsive fields. They then move to their respective goal
locations based on the inputs from the Attractive PF. Since the robots have
non-zero radii, the parameter $\lambda$ is tuned during experimentation, so
that they avoid collisions. This is equivalent to changing the parameter
$r^{*}$ in the expression of the inputs given by (35). Setting $\lambda=5$ led
to the robots colliding with each other, while for $\lambda\geq 10$, they were
able to maintain non-zero separation distance between themselves. Thus, for
larger $\lambda$, the robots could turn away faster from each other. The
expressions (35) and (39) support this choice.

Figure 5: Collision avoidance by three cooperative robots all of which are
initially on a collision course.

The case of 3 cooperative robots is presented next. Each robot is initially
located at the vertex of an (almost) equilateral triangle; their goal
locations are the mid-points of the sides opposite to their respective
vertices. The results are shown in Fig. 5 and support the theoretical
discussion presented in Sec. 3.5. The aspect that stands out in this case is
the behaviour of the three robots, which follows the “symmetric roundabout”
behaviour as described in [4] and which can be seen in the figure on the left
in Fig. 5. As can be seen, the three robots begin to trace a circle in the
clockwise direction leading to this behaviour. This behaviour is visualised in
Fig. 3; since this behaviour occurs for each pair, the resulting motion in
$X-Y$ space appears as though the robots are following a roundabout.

In fact, the robots considered pair-wise follow the discussion presented in
Sec. 3.4. Each robot begins to trace a circle passing through the vertex of
the triangle in the clockwise direction. Thus, if the initial separation and
PF parameters are chosen according to the results in Sec. 3.4, then none of
these circles intersects with any other, leading to collision avoidance
amongst all robots. It is emphasised that no rules are stated that define the
direction of turn of each robot, but appear naturally based on the choices of
the signs of the gradients, defined in (18).

###  4.2 Case 2 - Results

The results of a cooperative robot, $R_{1}$, avoiding a collision with a non-
cooperative robot, $R_{2}$, are shown in Fig. 6. The robots are initially on a
head-on collision course. As can be seen, the robot $R_{2}$ moves towards its
goal, which is the initial position of $R_{1}$, at a constant velocity and
does not maneuver even though $R_{1}$ is on its path. $R_{1}$, on the other
hand, projects the dynamic vortex PF around $R_{2}$ and maneuvers around it,
since the triggering condition becomes true. As can be seen in Fig. 6, the
equilibrium conditions, identified in Theorem 3.2, are not stable.

Figure 6: A cooperative robot avoiding collision with a non-cooperative robot.

###  4.3 Case 3 - Results

The results of a cooperative robot, $R_{1}$, avoiding a collision with an
attacking robot, $R_{2}$, are shown in Fig. 7. Even here, the robots are
initially on a head-on collision course. The PF parameters are selected such
the conditions - identified in Theorem 3.3 \- for $R_{1}$ to avoid colliding
with $R_{2}$ hold. As can be seen, $R_{2}$ maneuvers and begins to “chase”
$R_{1}$, while $R_{1}$ has already changed its heading angle in order to avoid
colliding with $R_{2}$. In this experiment, once $R_{1}$ has reached the
vicinity of its goal, it stops moving and only then does $R_{2}$ collide with
it. During experimentation, it was observed that a lower value of the
repulsive PF parameter, $\lambda$, resulted in $R_{1}$ making several ($>2$)
circular turns before it reached its goal; however, at no instant was $R_{2}$
able to collide with $R_{1}$. This behaviour is equivalent to the oscillatory
behaviour recognised in Sec. 3.3.3.

Figure 7: A cooperative robot avoiding collision with an attacking robot.

##  5 Comparison with a non-vortex PF

Simulation results and a brief analysis are presented when a pair of
cooperative robots apply inputs given by the non-vortex PF, (19). Analogous to
the results in Sec. 3.3.1, analysis for this case does not consider the
attractive PF. Thus, without the vortex field, from (6), in the closed-loop,
the relative accelerations become

$\displaystyle\dot{V}_{r}$
$\displaystyle=\frac{V_{\theta}^{2}}{r}-2\left(\frac{\lambda}{V_{rel}r^{2}}\right)V_{r}^{2}$
(50a) $\displaystyle\dot{V}_{\theta}$
$\displaystyle=\frac{-V_{r}V_{\theta}}{r}+4\left(\frac{\lambda}{V_{rel}r^{2}}\right)V_{r}V_{\theta}.$
(50b)

For these dynamics, the equilibrium conditions are the pairs
$V_{r}=V_{\theta}=0$ and $V_{r}=-2V,V_{\theta}=0$. The latter is an
equilibrium condition since the relative velocities satisfy (22), thus, even
if the magnitude of $\dot{V}_{r}$ is high, the relative velocity $|V_{r}|\leq
2V$. The existence of this additional equilibrium point is also different from
the closed-loop dynamics (20), which results from the use of the vortex PF.

Lyapunov analysis is performed to analyse the stability of this equilibrium
point, since it is the conditions $V_{r}<0,V_{\theta}=0$ that lead to
collision. Thus, if this equilibrium point is unstable, then collision is
avoided. From the Lyapunov function

$\mathcal{V}_{LNV}=r+\frac{1}{2}V_{\theta}^{2}+\frac{1}{2}\left(V_{r}+2V\right)^{2}$
(51)

and its derivative

$\displaystyle\dot{\mathcal{V}}_{LNV}$
$\displaystyle=V_{r}\left(1+\alpha\left(V_{\theta}^{2}-V_{r}^{2}\right)\right)+2V\dot{V}_{r}$
$\displaystyle=V_{r}\left(1+\alpha
V^{2}\right)-2\alpha\left(V_{r}+2V\right)V_{r}^{2}+2V\frac{V_{\theta}^{2}}{r}.$
(52)

where, $\alpha=\frac{2\lambda}{V_{rel}r^{2}}>0$. Now, if the robots are
initially on a head-on collision course, that is,
$0<V_{r}(t=0)\leq-2V,V_{\theta}(t=0)=0$, then, from (50b), it can be seen that
$\dot{V}_{\theta}=0\ \forall\ t\geq 0$, implying at the robots do not turn
away from each other. Thus, for these initial conditions, which are also the
equilibrium conditions, the relative velocity $V_{r}\to-2V$, implying that the
derivative $\dot{\mathcal{V}}_{LNV}=V_{r}\left(1+\alpha V^{2}\right)<0$, and
in turn, that the equilibrium point is asymptotically stable when the
collision conditions are satisfied. Thus, the robots collide with each other.
This result is in direct contrast with the use of the vortex PF, where, the
closed-loop dynamics have a single equilibrium point $V_{r}=V_{\theta}=0$ and
the inputs derived from the vortex PF ensure that the robots turn away from
each other rendering the equilibrium point to be unstable.

Simulation results showing the trajectories of the robots in the $X-Y$ space,
with and without the vortex field, are shown in Fig. 8. In each case, the
robots are initially on a head-on course with the target of one robot set as
the initial position of the other. As is evident, without the vortex field,
the robots do not turn and eventually collide with each other, near the
origin; for the results in Fig. 8, the simulation was not stopped though the
robots collide. The result with the vortex field is the same as discussed in
the earlier sections: the robots turn away from each other and then move to
their goal locations.

Figure 8: Trajectories of the cooperative robots in $X-Y$ space with (left)
and without (right) the vortex repulsive PF.

##  6 Conclusions

In this article, we presented a dynamic vortex PF algorithm for collision
avoidance between different types of non-holonomic robots and multiple robots
as well. The algorithm is able to ensure that there are no local minima in the
relative velocity space when a cooperative robot is on a collision path with
other cooperative robots, non-cooperative robots, as well as an attacking
robot. For the last case, conditions on the PF parameters were identified such
that the attacking robot is never able to collide with a cooperative robot.
The nature of the vortex PF guarantees that robots turn in the same direction
while avoiding collisions with one another, thus lending the robots a
reciprocal behaviour. With the identification of the free space that is needed
by a robot with non-zero radius and bounded inputs to avoid collisions, the
algorithm can be extended to robots navigating spaces such as corridors or
paths where the robot maybe forced to turn in one direction. In such cases,
the problem of how to select the direction of rotation of the robot would need
to be addressed. This article also considered robots to move at constant
linear speeds, thus the algorithm can be extended when this assumption does
not hold.

## Acknowledgments

This work was supported by Karnataka Innovation & Technology Society, Dept. of
IT, BT and S&T, Govt. of Karnataka vide GO No. ITD 76 ADM 2017, Bengaluru;
Dated 28.02.2018.

## References

  * [1] Russell Gayle, William Moss, Ming C. Lin, and Dinesh Manocha.  Multi-robot coordination using generalized social potential fields.  In 2009 IEEE International Conference on Robotics and Automation, pages 106–113, 2009.
  * [2] Zhi Yan, Nicolas Jouandeau, and Arab Ali Cherif.  A survey and analysis of multi-robot coordination.  International Journal of Advanced Robotic Systems, 10(12):399, 2013\.
  * [3] David McIntyre, Wasif Naeem, and Xiandong Xu.  Cooperative obstacle avoidance using bidirectional artificial potential fields.  In 2016 UKACC 11th International Conference on Control (CONTROL), pages 1–6, 2016.
  * [4] J. Košecká, C. Tomlin, G. Pappas, and S. Sastry.  Generation of conflict resolution manoeuvres for air traffic management.  In Proceedings of the 1997 IEEE/RSJ International Conference on Intelligent Robot and Systems. Innovative Robotics for Real-World Applications. IROS ’97, volume 3, pages 1598–1603, 1997.
  * [5] Yanshuang Du, Xuejun Zhang, and Zunli Nie.  A real-time collision avoidance strategy in dynamic airspace based on dynamic artificial potential field algorithm.  IEEE Access, 7:169469–169479, 2019.
  * [6] Jürgen Guldner, Vadim I. Utkin, and Hideki Hashimoto.  Robot Obstacle Avoidance in n-Dimensional Space Using Planar Harmonic Artificial Potential Fields.  Journal of Dynamic Systems, Measurement, and Control, 119(2):160–166, 06 1997.
  * [7] Takateru Urakubo.  Stability analysis and control of nonholonomic systems with potential fields.  Journal of Intelligent & Robotic Systems, 89(1):121–137, 2018\.
  * [8] Li Keyu, Lu Yonggen, and Zhang Yanchi.  Dynamic obstacle avoidance path planning of UAV Based on improved APF.  In 2020 5th International Conference on Communication, Image and Signal Processing (CCISP), pages 159–163, 2020.
  * [9] A. De Luca and G. Oriolo.  Local incremental planning for nonholonomic mobile robots.  In Proceedings of the 1994 IEEE International Conference on Robotics and Automation, volume 1, pages 104–110, 1994.
  * [10] Naoki Shibata, Seiji Sugiyama, and Takahiro Wada.  Collision avoidance control with steering using velocity potential field.  In 2014 IEEE Intelligent Vehicles Symposium Proceedings, pages 438–443, 2014.
  * [11] Daegyun Choi, Kyuman Lee, and Donghoon Kim.  Enhanced Potential Field-Based Collision Avoidance for Unmanned Aerial Vehicles in a Dynamic Environment.  2020\.
  * [12] L. A. García-Delgado, J. R. Noriega, D. Berman-Mendoza, A. L. Leal-Cruz, A. Vera-Marquina, R. Gómez-Fuentes, A. García-Juárez, A. G. Rojas-Herníandez, and I. E. Zaldívar-Huerta.  Repulsive function in potential field based control with algorithm for safer avoidance.  Journal of Intelligent & Robotic Systems, 80(1):59–70, 2015.
  * [13] Giuseppe Fedele, Luigi D’Alfonso, Francesco Chiaravalloti, and Gaetano D’Aquila.  Obstacles avoidance based on switching potential functions.  Journal of Intelligent & Robotic Systems, 90(3):387–405, 2018\.
  * [14] Dae-Hyung Park, Heiko Hoffmann, Peter Pastor, and Stefan Schaal.  Movement reproduction and obstacle avoidance with dynamic movement primitives and potential fields.  In Humanoids 2008 - 8th IEEE-RAS International Conference on Humanoid Robots, pages 91–98, 2008.
  * [15] Jamie Snape, Jur van den Berg, Stephen J. Guy, and Dinesh Manocha.  The hybrid reciprocal velocity obstacle.  IEEE Transactions on Robotics, 27(4):696–706, 2011.
  * [16] Jur van den Berg, Stephen J. Guy, Ming Lin, and Dinesh Manocha.  Reciprocal n-body collision avoidance.  In Cédric Pradalier, Roland Siegwart, and Gerhard Hirzinger, editors, Robotics Research, pages 3–19, Berlin, Heidelberg, 2011. Springer Berlin Heidelberg.
  * [17] Javier Alonso-Mora, Andreas Breitenmoser, Martin Rufli, Paul Beardsley, and Roland Siegwart.  Optimal Reciprocal Collision Avoidance for Multiple Non-Holonomic Robots, pages 203–216.  Springer Berlin Heidelberg, Berlin, Heidelberg, 2013.
  * [18] A. Chakravarthy and D. Ghose.  Obstacle avoidance in a dynamic environment: a collision cone approach.  IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans, 28(5):562–574, 1998.
  * [19] Hassan K. Khalil.  Nonlinear Systems (3rd edition).  Prentice-Hall, Inc, Upper Saddle River, New Jersey, 2002.  ISBN: 0-13-067389-7.
  * [20] A. Gutierrez, A. Campo, M. Dorigo, J. Donate, F. Monasterio-Huelin, and L. Magdalena.  Open e-puck range & bearing miniaturized board for local communication in swarm robotics.  In 2009 IEEE International Conference on Robotics and Automation, pages 3111–3116. IEEE, 2009.
  * [21] H M Schey.  Div, Grad, Curl, and All That An Informal Text on Vector Calculus (3rd edition).  W W Norton & Company Inc, New York, London, 1997.  ISBN: 0-393-969979-5.