The Virtual Wall Approach
to Limit Cycle Avoidance
for Unmanned Ground Vehicles?
Camilo Ordoneza,∗, Emmanuel G. Collins Jra,
Majura F. Selekwab, Damion D. Dunlapa
aCenter for Intelligent Systems, Control and Robotics (CISCOR)
Department of Mechanical Engineering
Florida A&M University - Florida State University College of Engineering
Tallahassee, FL 32310
bDepartment of Mechanical Engineering and Applied Mechanics
North Dakota State University
Fargo, ND, 58105
Robot Navigation in unknown and very cluttered environments constitutes one of
the key challenges in unmanned ground vehicle (UGV) applications. Navigational
limit cycles can occur when navigating (UGVs) using behavior-based or other reac-
tive algorithms. Limit cycles occur when the robot is navigating towards the goal
but enters an enclosure that has its opening in a direction opposite to the goal.
The robot then becomes effectively trapped in the enclosure. This paper presents
a solution named the Virtual Wall Approach (VWA) to the limit cycle problem
for robot navigation in very cluttered environments. This algorithm is composed of
three stages: detection, retraction, and avoidance. The detection stage uses spatial
memory to identify the limit cycle. Once the limit cycle has been identified, a label-
ing operator is applied to a local map of the obstacle field to identify the obstacle
or group of obstacles that are causing the deadlock enclosure. The retraction stage
defines a way-point for the robot outside the deadlock area. When the robot crosses
the boundary of the deadlock enclosure, a virtual wall is placed near the endpoints
of the enclosure to designate this area as off-limits. Finally, the robot activates a
virtual sensor so that it can proceed to its original goal, avoiding the virtual wall
and obstacles found on its way. Simulations, experiments, and analysis of the VWA
implemented on top of a preference-based fuzzy behavior system demonstrate the
effectiveness of the proposed method.
Key words: Robot Navigation, Cluttered Environments, Local Minima.,
Preprint submitted to Elsevier12 December 2006
Navigation in unknown, very cluttered environments is a difficult task in mo-
bile robotics. Behavioral approaches have been shown to be very successful in
these environments [2,6,12]. Robot navigation in these types of environments
has motivated the development of behavioral architectures that can tolerate in-
formation uncertainty and the ability to simultaneously accomodate the needs
of the different behaviors. Recently, Dunlap, Selekwa and Collins  developed
and implemented a fuzzy preference-based behavioral system which achieved
smooth navigation in cluttered environments.
However, experimental results have shown that behavioral systems that are
goal directed (i.e., systems in which one of the behaviors is goal seeking) tend
to fail when the robot enters an enclosure that has its opening in a direction
opposite to the goal. In scenarios like this, behavioral systems usually cause
the robot to become trapped in deadlocks. In particular, the robot exhibits
limit cycle behavior in which it retraces the same path indefinitely, thereby
failing to accomplish its mission of reaching the goal.
One way of escaping these deadlock enclosures has been by inclusion of deliber-
ative algorithms that use a stored map of the environment to detect and retract
from the deadlock regions. While these strategies have been effective in some
applications, many of them have been computationally demanding, resulting
in a slow retraction from the deadlock enclosures. This paper presents an algo-
rithm that uses local maps and virtual sensors to solve the problem of deadlock
detection and avoidance. Although the proposed limit cycle negotiation ap-
proach is independent of the navigation algorithm, the fuzzy preference-based
behavioral system for navigation in cluttered environments [6,12] was selected
to test the VWA due to its ability to generate smooth trajectories.
This paper is organized as follows. Section 2 presents the background necessary
to better understand the proposed limit cycle negotiation approach. Section
3 details the proposed approach to solve the limit cycle problem. Section 4
gives an overview of the fuzzy preference-based behavioral system that is used
to navigate the robot. Section 5 shows simulation results. Section 6 presents
experimental results. Concluding remarks are given in Section 7.
?Prepared through collaborative participation in the Robotics Consortium spon-
sored by the U. S. Army Research Laboratory under the Collaborative Technology
Alliance Program, Cooperative Agreement DAAD 19-01-2-0012. The U. S. Govern-
ment is authorized to reproduce and distribute reprints for Government purposes
notwithstanding any copyright notation thereon.
Email address: firstname.lastname@example.org (Camilo Ordonez).
This section provides the background necessary for a better understanding of
the proposed approach for limit cycle avoidance.
2.1 Basic Definitions
Grid: A grid G is a 2 dimensional array of squared elements G[i][j] called
cells. Each cell has a counter C[i][j] ? Z+(positive integers) associated with
Path Planning Problem: A path is a continuous curve in the configuration
space Q. The solution to the path planning problem is a continuous function
c ? C0(the set of continuous functions) such that c : [0,1] →
c(0) = qstart, c(1) = qgoal, c(s) ? Qfree ∀s ? [0,1], Qfree represents the
free configuration space and qstartand qgoalare the robot configurations at the
start and goal positions 
2.2 Limit Cycle Problem
A navigational limit cycle is a path that meets the following two conditions:
a. It is not a solution to the path planning problem.
b. It causes a region in the robot’s workspace to be visited a number of times
above a predefined threshold, i.e., G[i][j] > threshold.
Fig. 1 illustrates a typical example of a navigational limit cycle in an outdoor
environment. The robot’s trajectory is shown as a dashed line and the target
destination is represented by a rectangle outside the enclosure that is causing
the limit cycle (shaded region). In Fig. 1, the limit cycle is described by B →
C → B → D → B.
Fig. 2 illustrates a navigational limit cycle in an indoor environment.
2.3 Past Approaches to the Limit Cycle Problem
This problem of limit cycles in navigation has continually attracted the atten-
tion of researchers in the robotics community. Some important approaches to
solve the limit cycle problem are presented in [3,9–11,13,14]. The strategy of 
Fig. 1. Navigational Limit Cycle in an Outdoor Scenario
Fig. 2. Navigational Limit Cycle in an Indoor Scenario
keeps track of visited cells and causes the robot to avoid going to cells that have
already been visited. These authors use the following motor schemas to com-
plete their navigation system: Avoid-past, Move-to-goal, Avoid-static-obstacle
and Noise. At each time step Avoid-past references the spatial memory and
computes a vector away from areas that have already been visited. This vec-
tor is combined with vectors generated by Move-to-goal, Avoid-static-obstacle
and Noise. The sum of these vectors determines the robot’s heading and speed
for the next time interval. This approach is often successful. However, it lacks
a time-decay mechanism, which can result in the robot “boxing itself in.” The
wall following behavior of  tracks the contours of the obstacle in order to
skirt around it; this approach is presented as a possible solution for indoor
environments, where the obstacles have very defined geometries.
The virtual target approach of  defines a virtual target once a limit cycle
is detected. The robot is navigated according to the virtual target, until a
switch back condition is reached. The condition for switching back to the real
target is based on the detection of an opening of the deadlock enclosure to the
right or to the left of the robot. This switching back condition does not always
occur in a cluttered environment in which the enclosures are not continuous.
The approach of  adds memory and memory related behaviors to basic
reflexive systems as a possible solution to limit cycles. In addition, a virtual
rectangular obstacle is placed over the area where the limit cycle was detected.
However, in a cluttered environment designating this rectangular area as an
obstacle will cause the robot to avoid navigable area.
The research of  proposes a possible solution to the local minima problem
by classifying the environment based on spatio-temporal sequences. This ap-
proach is particularly designed for indoor environments where walls form the
The authors of  propose a method called the minimum risk approach,
to address the local path planning to handle the local minimum during the
blind goal-oriented robot navigation. This approach adopts a strategy of multi-
behavior coordination, in which a Path-Searching (PS) behavior is developed
to recommend the regional direction that is offering minimum risk. The min-
imum risk zone is determined based on the obstacles scanned by the robot
and the trajectory followed by the robot. The final command output is ob-
tained by coordinating three behaviors: PS, Obstacle-Avoidance (OA), and
Goal-Seeking (GS). This method successfully guides the robot to the goal in
some difficult scenarios.
Some of the results of the previously mentioned approaches are compared
against our approach in Section 5.
3Proposed Approach: The Virtual Wall Algorithm (VWA)
This section describes a new simple deliberative approach for detection and
avoidance of navigational limit cycles in cluttered indoor or outdoor environ-
ments with various sizes and shapes of potential deadlock regions. The basic
flowchart of the proposed algorithm is given in Fig. 3. The strategy was con-
ceived trying to emulate the reasoning of a human being in a similar situation.
Imagine a human in a very cluttered or maze-like environment seeking to reach
a goal that is at a known location. As this person moves towards the goal (say
using a compass), she may find herself in an enclosure that has only one exit,
which is the original entrance. Hence, she would change her destination to a
point outside this exit. Once outside the enclosure, she would remember not to
enter that enclosure again, effectively creating a virtual wall. Then, she would
proceed to her destination using a different path. Similarly to the “avoid the
past” strategy of  , this approach keeps track of places visited by the robot
in a spatial memory. However, this new approach uses the spatial memory
to detect limit cycles and not to compute repulsive forces. Furthermore, the
avoidance of the limit cycle region is carried out by building a virtual wall
to close the deadlocked area, instead of generating a repulsive force on each
The algorithm is divided into three major components: Limit Cycle Detection,
Obstacle Field Mapping, and Retraction from the Deadlock Enclosure. Each
of these is described in some detail below.
Fig. 3. Deadlock Detection and Avoidance Scheme
Connected Components Analysis: Connected components analysis of a
binary grid consists of the connected components labeling of the binary-1
cells, followed by property measurement of the component regions and decision
making . The connected components labeling operation performs the unit
change from cell to region or segment. All cells that have value 1 and are
connected to each other by a path of cells all with value 1 are given the same
identifying label. The label is a unique name or index of the region to which
the cells belong. The label is the identifier for a potential object region.
Connected Components Labeling Operator: Given a binary grid, a con-
nected components labeling operator can be employed to group the binary-1
cells into maximal connected regions. The input to the operator is a binary
grid and the output is a symbolic grid in which the label assigned to each cell
is an integer uniquely identifying the connected component to which that cell
belongs. A labeling operation is illustrated in Fig. 4
Two 1-cells p and q belong to the same connected component C if there is
a sequence of 1-cells (p0,p1,...,pn) of C, where p0 = p, pn = q, and pi is
a neighbor of pi−1 for i = 1,...,n. Therefore, the definition of a connected
component depends on the definition of neighbor. When only the north, south,
east, and west neighbors of a cell p are considered as part of its neighborhood,
then the resulting regions are called 4-connected, and we say that the grid
has been labeled using a connectivity 4 criterion. When the north, south,
0 1 0 1 1 1 1
0 0 0 1 0 0 1
0 0 0 0 0 0 1
1 1 0 1 0 0 1
0 1 0 0 0 0 1
0 1 1 1 1 1 1
0 1 0 2 2 2 2
0 0 0 2 0 0 2
0 0 0 0 0 0 2
2 2 0 3 0 0 2
0 2 0 0 0 0 2
0 2 2 2 2 2 2
Fig. 4. (a) Binary Grid (b) Application of a Connected Components Operator to
east, west, northeast, northwest, southeast, and southwest neighbors of a cell
p are considered part of its neighborhood, the resulting regions are called
8-connected. Fig. 5 shows the different connectivity criteria.
Connected Components Algorithm: There are many algorithms to per-
form a connected components analysis of a binary grid. In this paper, the
algorithm known as “The Classical Algorithm” is used. For a detailed expla-
nation refer to .
W P E
NW N NE
SW S SE
Fig. 5. (a) Connectivity-4 (b) Connectivity-8
3.2.1Limit cycle Detection
In order to detect navigational limit cycles, the robot must keep a memory
of visited places. A Dynamic spatial memory is employed to keep track of
recently visited places. A virtual grid, with grid size l as shown in Fig. 6, is
defined over the robot workspace. As shown in Fig. 7, the robot marks each cell
in this virtual grid by increasing its corresponding integer counter whenever it
passes over a point in the workspace that corresponds to the cell in the virtual
grid. This stage is represented in Fig. 3 by the block entitled Spatial Memory,
which receives the robot position information from the localization unit.
Fig. 6. Grid Size Selection.
A threshold number of visits is predefined such that whenever the number of
visits to one cell in the spatial memory exceeds this threshold, a limit cycle is
said to have been detected. Due to the size of the grid of the spatial memory,
the position update rate, and the speed of the robot, the counter associated
with a cell may be incremented more than once as the robot passes over that
cell. Fig. 7 illustrates the appearance of this array after a robot mission is
accomplished. The values of the counter associated to each grid are shown.
The threshold level was set to 26. This threshold value was found experimen-
tally in a laboratory environment taking into consideration the characteristics
mentioned above. Once the adequate threshold level was found, it was kept
constant for the different experiments.
Fig. 7. Spatial Memory Appearance after the Threshold Level has been Reached.
3.2.2 Obstacle Field Mapping
As the robotic vehicle navigates through the environment, in addition to track-
ing visited grids, it also builds a record of obstacles observed in each cell. This
record is stored in a 2 dimensional grid V M, hereafter referred as the virtual
map of obstacles. The integer counter of each cell of V M is incremented each
time that an obstacle is detected in that cell. Every time an obstacle is de-
tected by the laser range finder, a coordinate transformation is performed so
that the position of the obstacle is found with respect to a global coordinate
system that is located at the origin (lower left corner) of the grid V M. This
virtual map is eventually used in determining a strategy for retracting from
the limit cycle as described below in Subsection 3.2.3.
A typical example of a map of an obstacle field is shown in Fig. 8. The gray
level of each cell represents the number of times that an obstacle in that cell
has been seen by the robot. The darker cells are those that contain obstacles
that have been scanned more times by the laser range finder. Fig. 3 shows
that the obstacle map construction requires both localization information and
the relative position of the obstacles with respect to the laser range finder.
Fig. 8. Map of Obstacles in Gray Scale.
3.2.3 Retraction from the Deadlock Enclosure
Once the threshold level has been reached in the spatial memory, a way-point is
defined outside the deadlock. The robot uses this way-point as a temporal goal
so that it can safely leave the limit cycle enclosure using the behavioral control
system. To define the way-point, the virtual map of the obstacle field and the
spatial memory are processed by using the connected components algorithm,
known as “The Classical Algorithm” . This type of algorithm is commonly
used in image processing applications. In this approach, the connected com-
ponents algorithm is used to identify and label the connected components of
the obstacle field.
The Virtual Map is labeled using the connectivity 8 and connectivity 4 criteria.
Once the connected components have been identified, a way-point is chosen
outside the deadlock and the robot is directed towards it.
The fusion of the spatial memory and the map of obstacles is represented in
Fig. 3 by the block named Fusion. The outputs of this block are the way-point
and the virtual wall coordinates. The way-point is simply used to navigate
the robot to the outside of the enclosure; however the robot does not have to
reach this point. The robot continues navigating towards the way-point until
it realizes that its current position is outside the enclosure and it has enough
room to make a turn without going back into the deadlock enclosure.
After traveling at a safe distance from the enclosure, the robot builds a vir-
tual wall, essentially “closing the door” to the deadlocked area in the virtual
obstacle map. A virtual laser range finder is used as an additional sensor to
detect this virtual obstacle. This provides sensory information that enables
the vehicle to avoid returning to the deadlock enclosure. Fig. 3 shows that the
virtual laser computes the distance to the virtual wall defined in the fusion
block. The virtual laser is fused with the real laser range finder in the block
named Sensor Fusion.
Calculation of the Virtual Wall and Way-point
The general procedure to find the location of the virtual wall and the way
point is detailed below. To make it more clear an example is used to illustrate
the process. However, it is important to notice that the process is general
and it is not limited to the example provided. Assume the matrix of Fig. 9
represents the map of obstacles where 1 represents an obstacle that does not
belong to the enclosure. This virtual map grid is labeled using the connectivity
8 and connectivity 4 criteria to identify different connected obstacle regions .
For the obstacle field of Fig. 9, the labeling process, using the connectivity 8
criterion, identifies four obstacle regions as shown in Fig. 10; these connected
regions are marked by integers 1, 2, 3 and 4. The elements labeled as 1 belong
to one connected region (Region 1), elements labeled as 2 belong to another
connected region (Region 2), and so on. Now, based on the identified obstacle
fields, a bounding box that contains the deadlock enclosure is determined.
This box is defined by the extreme points that make up the region identified
as the deadlock, which happens to be the obstacle region that has the most
elements. In this case the bounding box is defined by the extreme points of
Region 2 in Fig. 10.
Once the bounding box for the deadlock enclosure is created, the size of the
virtual map of the obstacle field is trimmed down to remove any obstacle in-
formation that is outside the deadlock bounding box. This trimming is carried
0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 1 1 1 1 0 0
0 0 0 1 0 0 1 0 0 0
0 0 0 0 0 0 0 1 0 0
0 1 1 0 1 0 0 1 0 0
0 0 1 0 0 0 0 1 0 0
0 0 1 1 1 1 1 1 0 0
Fig. 9. Representation of the Map of Obstacles
out in order to allow a short term navigation process whose only objective is
to retract from the deadlock. The trimming process uses the coordinates of the
bounding box and selects from the virtual map only the cells that are inside
the bounding box. Therefore, this new grid is smaller than the original one.
Notice that the size of the grid of Fig 11 has been reduced compared to that
of Fig 10, and the grid only contains the elements inside the bounding box.
The trimmed virtual map of obstacles is then fused with the corresponding
local spatial memory of visited places. This fusion basically overlaps the two
grids and identifies in both of them the cell that corresponds to the location
where the threshold level was reached. This location is indicated by the mark
X in Fig 11. This mark X is just for explanatory purposes because the actual
label of this position is zero.
Fig. 10. Determination of the Bounding Box.
In order to find an appropriate location for the virtual wall, a binary inverse
of the trimmed image is computed. Notice that this new inverse image has
zeros in the places where obstacles were found and ones in the free regions.
The cell that is marked X will have a label of 1 since it was zero before. The
resulting image is labeled using connectivity 4. The points on the sides of the
bounding box that have the same label as the cell X (label 1) are identified.
These points correspond to the opening of the deadlock enclosure, and they
are used to determine the location of the virtual wall. They are marked 1 in
0 3 0 2 2 2 2
0 0 0 2 0 0 2
0 0 0 0 0 0 2
2 2 0 4 0 X 2
0 2 0 0 0 0 2
0 2 2 2 2 2 2
Fig. 11. Fusion of the Spatial Memory with the Map of Obstacles
1 0 1 0 0 0 0
1 1 1 0 1 1 0
1 1 1 1 1 1 0
0 0 1 0 1 X 0
2 0 1 1 1 1 0
2 0 0 0 0 0 0
Fig. 12. Determination of the Opening of the Enclosure
Fig. 12. The exact location of the virtual wall is found as follows: the wall
coordinates are determined by two points A and B that meet the following
three characteristics. First, they lay on the perimeter of the bounding box.
Second, they have been labeled 1, and third, they have as a neighbor at least
one cell that is part of the deadlock enclosure. The possible placements for the
virtual wall are illustrated in Fig. 13. In this figure, it is possible to see that
the virtual wall could lay on the upper border of the bounding box - between
the left and upper borders, on the left border - between the left and lower
borders, on the lower border - between the lower and right borders, on the
right border - between the right and upper borders, on the right border, or
on the upper border. The continuous line represents the part of the deadlock
enclosure that lies on the perimeter of the bounding box. After applying this
to the grid of Fig. 12, the virtual wall can be placed as shown in Fig. 14
To choose the way point there are two possibilities, depending on whether
the robot entered the deadlock enclosure or whether it was already inside the
enclosure when the robot began its mission. In the first case, the way point is
chosen at the location where the robot entered the enclosure. By doing this, it
is possible to guarantee that the way point is a reachable target. In the second
case, a way point is defined at a predefined distance from the virtual wall.
However, the robot does not need to reach this way point. The robot switches
back to its original target when it is at a safe distance from the virtual wall. In
Fig. 13. Possible Configurations of the Virtual Wall.
Fig. 14. Virtual Wall Placement.
the current implementation, the second option is used. The way-point location
is found as explained in Figs. 15 and 16.
As shown in Fig. 15, in order to find the waypoint, we first need to find the
stuck which goes from the point (X,Y ) to (XS,YS), which is
the point where the limit cycle was detected. The coordinates of the point
(X,Y ) are found using:
X = AX+ µ(BX− AX)(1)
Y = AY+ µ(BY− AY)(2)
µ =(XS− AX)(BX− AX) + (YS− AY)(BY− AY)
? B − A ?2
stuck components are determined as:
(XS− X)2+ (YS− Y )2
Afterwards, a vector that goes from the middle point of the virtual wall
(XM,YM) and has the opposite direction of
(XW,YW) can be found using:
stuck is defined. The waypoint
XW= XM+ α(−stuckx) (7)
YW= YM+ α(−stucky) (8)
This waypoint is located at a predefined distance α from the point (XM,YM).
This predefined distance is used just as a temporary goal for the robot, because
as explained above, the robot does not have to reach the waypoint.
Fig. 15. Determination of the Way-point.
To check when the robot is outside the deadlocked enclosure and the virtual
sensor may be activated, a vector ? pos from a point (Xi,Yi) to the current
position of the robot (Posx,Posy) is defined. The point (Xi,Yi) is given by
Xi= AX+ δ(BX− AX) (9)
Yi= AY+ δ(BY− AY)(10)
where Download full-text
δ =(Posx − AX)(BX− AX) + (Posy − AY)(BY− AY)
B − A ?2
The vector ? pos is then defined by
? pos = (Posx − Xi)ˆi + (Posy − Yi)ˆj (12)
Note that ? pos is perpendicular to the wall as shown in Fig. 16. The robot is
outside the deadlock enclosure when the following two conditions are satisfied:
(stuckx)(Posx) ≤ 0 (13)
(stucky)(Posy) ≤ 0(14)
Fig. 16. Virtual Wall Crossing Verification.
If (13) and (14) are satisfied, then the distance to the wall can be computed
? distwall ?=? ? pos ?
This architecture is equipped with a virtual laser that has the same config-
uration as the real sensor described below in Section 4. Therefore, the robot
can detect the positions of the virtual walls and avoid them as if they were
common obstacles. It is important to notice that when the robot is navigating
towards the way point, the virtual laser range finder is not activated so that
the robot doesn’t try to avoid the virtual wall. At this time, the robot is only