
4 Jur van den Berg, Stephen J. Guy, Ming Lin, and Dinesh Manocha
3 Problem Definition
The problem we discuss in this paper is formally defined as follows. Let there be a
set of n robots sharing an environment. For simplicity we assum e the robots are disc-
shaped and move in the plane R
2
(the definitions and algorithms we present in this
paper can easily be extended to translating polygons, and also to higher dimensions).
Each robot A has a current position p
A
(the center of its disc), a current velocity
v
A
and a radius r
A
. These parameters are part of the robot’s external state, i.e. we
assume th at they can be ob served by other robots. Furthermore, each robot has a
maximum speed v
max
A
and a preferred velocity v
pref
A
, which is the velocity the robot
would assume had no other robots been in its way (for instance a velocity directed
towards the robot’s goal with a magnitude equal to the robot’s preferred speed). We
consider these parameters part of the internal state of the robot, and can therefore
not be observed by other robots.
The task is for ea ch robot A to independently (and simultaneously) select a new
velocity v
new
A
for itself such that a ll robots are g uaranteed to be collision-free for at
least a preset amo unt of time
τ
when they would co ntinue to move at their new ve-
locity. As a secondary objective, the robots should select their new velo c ity as close
as possible to their preferred velocity. The robots are not allowed to communicate
with each other, and can only use observations of the other robot’s current position
and velocity. However, each of the robots may assume that the other robots use the
same strategy as itself to select a new velocity.
We name this problem “ reciprocal n-body collision avoidance”. Note that this
problem cannot be solved using central coordination , as the pre ferred velocity of
each robot is only known to the robot itself. In Sectio n 4, we present a sufficient
condition for each robot to select a velocity that is co llision-free for (at least)
τ
time. In Section 5 we show how we use this principle in a continuous cycle for
multi-robot navigation.
4 Reciprocal Collision Avoidance
4.1 Preliminaries
For two robots A and B, the velocity obstacle VO
τ
A|B
(read: the velocity obstacle for
A induced by B f or time window
τ
) is the set of all relative velocities of A with
respect to B that will result in a collision between A and B at some moment before
time
τ
[5]. It is formally defined as fo llows. Let D(p,r) denote an open disc of radius
r centered at p;
D(p,r) = {q|kq − pk < r}, (1)
then:
VO
τ
A|B
= {v | ∃t ∈ [0,
τ
] :: tv ∈ D(p
B
− p
A
,r
A
+ r
B
)} (2)