Conference PaperPDF Available
Obstacle Detection and Traversal with Noisy Range Sensors
Mason U’Renand Jason T. Isaacs
Abstract The problem of obstacle detection and avoidance
for wheeled mobile rovers with noisy ultrasound range sensors
is discussed. We propose a path planning algorithm, split
into detection and traversal behaviors, which overcome the
problems associated with noisy range sensors. Said methods first
monitor and verify perceived objects then gerate appropriate
control inputs. A robust detection scheme affords accurate
object recognition which lends itself to smoother and quicker
traversal. We provide examples of various obstacle encounters
and traversal scenarios using high fidelity simulations built in
the ROS and Gazebo environments. We aim to analyze the
influence of monitoring and verifying sonar detections as well
as evaluate new path planning techniques.
Multi-Agent Systems (MAS), an abstraction of swarm
robotic systems, use a distributive model, to effect decisions
and controls on agents, which tend toward a common inter-
agent goal or collective swarm behavior. Applications of
MAS can be seen in autonomous farming, search-and-rescue
drones, and interplanetary resource foraging. Fundamental
to system cohesion, agents use sensorial feedback to gleen
information about their relative surroundings. Key to the
success of MAS, path planning can be split into detection
and traversal behaviors such that detection is the recognition
of an object and traversal is the reactionary movement
around the object. Due to inheret noise, specifically within
sonar range sensors, detection accuracy is limited, reducing
confidence in perceived relationship between the rover and
nearby objects. This work seeks to mitigate this observed
noise while improving upon current obstacle path planning
Path planning in the presence of obstacles for mobile
robotics has a history spanning several decades. Due to space
limitations, only a subset of these results are discussed in this
paper. Of those surveyed, the algorithms differ in the way
they avoid obstacles, either through goal orientation or edge
Artificial Potential Field (APF) is a goal oriented algorithm
based on the principle of a potential field in which rovers and
obstacles act as positive charges, and goals act as negative
charges [1]. Although a simple idea, APF has a sensitivity
to local minima that usually arises from the symmetry in
the environment and within concave obstacles [2]. Other
drawbacks that plague APF are summarized in [3].
Proposed by Sezer et al. in [4], Follow the Gap Method
(FGM) is a three stage, goal oriented algorithm, constructed
M. U’Ren and J.T. Isaacs are with the Department
of Computer Science, California State University, Chan-
nel Islands,,
by a gap array around the rover that is compared against
a gap threshold, when rovers and obstacles are considered
circular objects. If the calculated gap is large enough, the
rover will proceed along the gaps angle bisector creating a
smooth trajectory to it’s target location, but it is still not
immune to local minima.
Another approach, first suggested by Borenstein et al.
[5], Virtual Force Field (VFF) combines the APF method
with a two dimensional certainty grid defined by a cartesian
histogram plane of virtually represented obstacles. This grid
creates a sensitivity to certainty values in large clusters
(obstacle boundaries), which function as a repulsive force.
From there, APF is applied to the histogram grid, therefore
the problems that hindered APF are native to VFF.
The Vector Field Histogram (VFH) method uses a two
step data reduction process that models the feedback with
three levels of abstraction [6]. Each level functions as a
data reduction step that allows the rover to supersede blurry
and inaccurate sonar feedback by expanding on the certainty
values inherent to VFF. Although resistant to noisy range
sensors, this method does not guarantee convergence within
critical obstacles and is computationally expensive [7].
Among the earliest methods, the Bug family of algorithms
are fundamental and complete algorithms since they allow
the rover to reach their target point if it lies within a given
space [7]. Relying on edge detection, there are three different
flavors to this algorithm, Bug-1 [8], Bug-2 [8], and Dist-Bug
[9], [10] which respectively improve on each other.
Bug-1 and Bug-2 algorithms are among the earliest and
most elementary sensor based planners with provable guar-
antees [11]. Both function by creating a leaving point but
differ in the calculation. Where Bug-1 is dependent on a full
traversal to identify the ideal coordinates, Bug-2 compares
slopes of current pose and obstacle initialization pose with
the target waypoint [7]. Application of this algorithm is
conducted on single-wing wholly rotating air vehicle in [12].
Although Bug-2 typically offers an improvement on Bug-1,
there are special cases where the path may increase in length
Dist-Bug is considered the most improved, since after de-
tection it compares the current rover pose with the previous,
checking if tangential distance to the target is increasing.
Using range data, the algorithm defines a new leaving con-
dition which allows the rover to abandon obstacle boundaries
as soon as global convergence is guaranteed, based on free
range to the target [10].
A common drawback to edge detection methods is their
sensitivity to sensor accuracy. Ultrasonic sensors present
many shortcomings with respect to poor directionality, fre-
quent misreadings, and specular reflections [5], where any
one of these errors can cause the method to determine the
existence of an edge at an incorrect location. Our proposed
version of the Bug algorithm overcomes this sensitivity to
noisy range measurements. The Bug family is a logical
avoidance choice since it allows us to isolate the algorithm’s
results by virtue of immunity to local minima and path to
target assurance, if one exists. Any conclusions can then be
readily justified on this basis. Instead of using a direct Bug
algorithm, we propose a new version that takes in current
rover orientation to target location, rather than distance, to
decide exiting points. This should not effect results since
the biggest advantage the Bug Algorithms have is their safe
traversal of obstacles which remains the same. Our main
contribution is a new detection algorithm that allows the
rover to declare with confidence that an obstacle has been
encountered without sacrificing goal convergence.
The proposed obstacle detection and avoidance approach
was developed and validated on the NASA Swarmathon 2017
[14] swarm robotics platform. The Swarmathon platform
was chosen due to the fact that it is publicly available,
and the robotic tasks are sufficiently rich as to illustrate
the benefits of this approach. The platform comes with
both physical rovers and a matching simulator for virtual
testing. Our algorithms are implemented in C++ using the
Robot Operating System (ROS) [15] framework and the
Gazebo plugin for the Graphical User Interface (GUI). The
rovers are equipped with three noisy sonar range sensors,
and a global positioning system receiver. The GPS receiver
provides feedback for general navigation, and the sonar
sensors are used to detect obstacles
In summary, the main contribution of this work is to
provide obstacle detection and avoidance algorithms that
allow the mobile robots to perform a variety of swarm robotic
tasks in the presence of obstacles. To accomplish this task
the obstacle detection algorithm must distinguish between
both static obstacles and mobile obstacles.
The remainder of this paper is organized as follows. Sec-
tion II provides a mathematical description of the sense and
avoid with noisy range sensor problem, which is followed
in Section III by an explanation of the proposed approach.
Next, experimental and simulation results are examined in
Section IV, followed in Section V by the final conclusions
and directions for future work.
The forthcoming collision detection and obstacle transver-
sal algorithms are motivated by the desire to use swarms of
small inexpensive rovers to explore unknown environments
in search of resources. Each rover is assumed to be a
small, autonomous, skid-steer, robotic vehicle driven by four
independently powered wheels. Each rover is equipped with
three sonar sensors, a webcam, an inertial measurement unit
(IMU), wheel odometry sensors, and a global positioning
system (GPS) receiver. Rotating the tires at different speeds
creates skid-steer which gives the rover navigational control
while maneuvering within a 2-dimensional xy-plane. Hence,
if the speed of the right tires are greater than the left, the
rover will steer left and vice-versa. Although the following
explanation details the use of a skid-steer rover, the proposed
algorithms can be easily applied to general wheeled mobile
rovers equipped with noisy range sensors.
The state of a skid-steer vehicle xcan be represented by
the triplet (xd, yd, θ)SE(2), where (xd, yd)R2describe
the position of the vehicle center of gravity and θS1
represents the orientation. Vehicle control input uR2is
modeled as (v, ω)R2, where vis the forward velocity of
the vehicle center of gravity and ωis the rate of change in
vehicle orientation. Motion of the vehicle evolves according
to the following kinematic equation:
=f(x, u) =
For more details on skid-steering kinematics the authors refer
you to [16].
Our goal is to then find a safe trajectory from the rovers
present location to a goal location, in the presence of
obstacles, where a safe trajectory is achieved by an intelligent
go to goal algorithm that navigates without error to
the goal waypoint. We then assume that a go to goal
control algorithm exists that, in the absence of obstacles,
will guarantee rover traversal to the goal waypoint [16]. This
controller is modeled by:
u=h(xc, xg)(2)
where xcSE(2) describes the rover’s current pose and
xgSE(2) describes the rover’s goal pose.
When in the presence of obstacles, we rely on the three
low-cost, sonar sensors to provide feedback to our algorithm.
Each sensor has a maximum range of Rmax in a radial
pattern of βradians as shown in Figure 1. A sensor is
composed of a sending and receiving node, where the sender
emits an ultrasonic ping while the receiver listens for the
return of the sound wave. If the receiver hears the return
of the ultrasonic wave, it implies an object is within sonar
range, at which point a distance calculation is made based
upon the speed of sound within the medium of travel and
the time between pings. We can model this equation with:
Dα=S(vc,4t, n)(3)
where Dαis the rover’s measured distance from the obstacle,
α∈ {l, c, r}differentiates between the lef t, center, and
right sonars respectively, vcis the speed of sound in air,
4tis the difference in time between sending and receiving
pings, and nis a unknown disturbance term. If the value
of Dαfalls below a specified threshold distance from the
rover, an obstacle detection is flagged thereby triggering an
obstacle avoidance maneuver. Due to the noise term nin
(3), it is possible for the the rover to chatter between the
go to goal and avoid obstacle controllers.
The goal then becomes to determine an avoid obstacle
control algorithm that successfully traverses obstacles, and an
Fig. 1: Rover decision thresholds.
obstacle detection algorithm that allows switching between
the go to goal and avoid obstacle controllers without the
chattering that can occur due to noisy range measurements.
Design of our avoidance algorithm can then be broken
down into two classes: 1) accurately detecting obstacles, and
2) planning a safe traversal path from the object initialization
location to our goal waypoint.
A. Detection
If the rover is to be driven by the go to goal implemen-
tation of (2) in the presence of obstacles, we must rely on the
sonar sensors to accurately detect objects in the area in which
it’s traversing. Large errors from the sonar sensors, specifi-
cally at greater distances, can cause the rover to prematurely
switch to obstacle avoidance mode, thus outlier detection
must be performed on the data fed back from the sonar
sensors in (3). We introduce a double threshold sonar data
monitoring system (DTM) to perform the outlier detection.
The idea is to have two separate distance thresholds that are
chosen based on empirical measurements of the accuracy
of the sonar sensors. These threshold values for RIT and
RF T were determined from the experiments described in
Subsection IV, the results of which can be found in Table I.
The rover starts monitoring possible obstacles once an upper
threshold, RIT , is met and only then declares them obstacles
once a second lower threshold, RF T , is met.
Once within our initial threshold, the rover needs a way
of actively monitoring the distances returned from the sonar
sensors in (3). By sequentially adding new readings to
respective first-in first-out (FIFO) vector arrays, denoted as
Vl, Vc,and Vr, measurements can be tracked for inconsis-
tencies, where Vmax dictates their capacity.
Each vector is then checked against two conditions: 1) the
values must be acceptable, and 2) one of the recorded dis-
tances must cross the minimum threshold, RF T . Algorithm 1
describes this process where Cval is the current vector value,
Pval is the previous vector value, and ρis the combined head
on collision minimum reaction distance.
Distance thresholding compares current and previous val-
ues against ρto ultimately verify vector admissibility. Then
Algorithm 1 Vector Iterator: Iterates through a vector of
range measurements and returns minimum value.
Input: VRVmax .
Output: S: the smallest value in the input vector or (1) if
vector contains inadmissible values.
1: if VØthen
2: S=1
3: else
4: for diV s.t. i N,1iVmax do
5: if i= 1 then
6: Cval =di
7: else
8: Pval =Cval
9: Cval =di
10: if |Pval Cval | ≤ ρthen
11: S=Cval
12: else
13: S=1
14: break
15: if S < 0then
16: Clear V
17: return S, V
Fig. 2: Sonar ranges pictured are limited to 2m since
monitoring does not occur outside of 1.5m
with each iteration of the main control loop Algorithm 2:
Detection F unction executes to decide whether or not to
take action on the latest sonar values. If no sonar measure-
ments fall within the initial threshold RIT , then no action
is taken. Although once we’re confident with our readings,
DαRIT :α∈ {l, c, r}, we populate respective vectors
with each iteration, until it reaches the specified capacity
where it is either validated or dumped. The final check before
obstacle declaration occurs, verifies that a vector, Vα, and
it’s corresponding minimum reading, Sα, are not empty and
below the RF T respectively, otherwise clear each vector and
repopulate. At this point an obstacle has been detected and
a correction angle θca needs to be generated based on the
amount of acceptable vectors.
Depending on how many vectors are being considered
there are two possible θca calculators, wall and angle calc.
Algorithm 2 Detection Function: decides whether to take
action on values from vector iterator
Input: D={Dl, Dc, Dr}from equation 3.
Output: θca: the rover’s obstacle correction angle;
ST: left sonar value used for traversing;
1: if (Dl> RIT )&(Dc> RIT )&(Dr> RIT )then
2: No action taken.
3: else
4: VlDl
5: VcDc
6: VrDr
7: if (|Vl|=Vmax)|(|Vc|=Vmax )|(|Vc|=Vm)then
8: Sl=V ector Iterator(Vl)
9: Sc=V ector Iterator(Vc)
10: Sr=V ector Iterator(Vr)
11: if α∈ {l, c, r}:{(SαRF T )&(Vα6= Ø)}then
12: if {Vl, Vc, Vr}/Øthen
13: if Sl< Srthen
14: θca =wall(Sl, Sc, Sr)
15: else
16: θca =wall(Sr, Sc, Sl)
17: if θca =πthen
18: if Sl< Srthen
19: θca =angle calc(Sl, Sc)
20: else
21: θca =angle calc(Sr, Sc)
22: else
23: if {Vl, Vc}/Øthen
24: θca =angle calc(Sl, Sc)
25: else if {Vr, Vc}/Øthen
26: θca =angle calc(Sr, Sc)
27: else if Vl/Øand {Vc, Vr} ∈ Øthen
28: θca =angle calc(Sl,1)
29: else if Vc/Øand {Vl, Vr} ∈ Øthen
30: θca =angle calc(Sc,1)
31: else if Vr/Øand {Vl, Vc} ∈ Øthen
32: θca =angle calc(Sr,1)
33: ST=Si
34: else
35: Clear Vα
36: return θca, ST
If all three vectors are considered valid, it implies that we
have three acceptable minimum sonar readings (Sl, Sc, Sr),
at which point we need to determine which exterior value
is the smallest. Once we have prepped the variables, we
pass them to the wall function, which using the law of
sines within the triangle 4ADB, calculates θca, as shown
in Figure 2. Taking the given value Aand calculating B,
the result is compared against the expected value C, with
some degrees of freedom. It then flips the orientation of
the algorithm, given Band C, and verifies that Ais of
expected value. If so, the original θca is accepted and passed
to traversal, but if not, θca is flagged with π(Line 17
in Algorithm 2), and the smallest two vector values are
passed to angle calc. The value of πis chosen to be the
flag since the correction angle is bounded by 0and π, not
inclusive, which is further discussed in subsection III-B.
Angle calc, uses similar techniques, but lacks the ability
to verify results. If given two vectors, either {Vl, Vc}or
{Vr, Vc}, it calculates θca using given value Aand computed
value B, but lacks the knowledge of the expected value of
C. Unique to this function, when the rover is limited to one
valid vector, it uses a “static avoidance” angle, determined by
the rover’s field of vision. If field of vision breaks down into
three virtual sonar cones (Figure 1), we cannot assume each
sensor views an equal piece of the rover’s vision, since noise
causes overlap and expantion of propogating sonar waves.
But by using the approximate angle bisector of either left or
right virtual sonar cone, we overcome overlap and navigate
correctly to traversal. It is important to note that there is
not a case, that the two vectors considered would only be
{Vc, Vr}, due to the amount of overlap between individual
sonar cones. Once a vector has been accepted and flagged for
examination, it is compared with the remaining established
vectors, dictating how our correction angle is calculated. The
correction angle then intends to orient the rover into a clear
traversal path parallel to the obstacle.
B. Distinction & Traversal
Building on the safe traversal guaranteed by Bug Al-
gorithms, we propose a hybrid bug algorithm (HBA), that
intelligently distinguishes and traverses objects. But before
traversal can begin, the rover needs to verify that the ob-
ject is truly an obstacle and not a resource. Ultimately,
obstacle checking is done the same way regardless of vector
admissibility, but with a slight difference between how the
checking angle is calculated, where the checking angle is the
angle of rotation needed to face the object detected. When
more than one vector is accepted, the algorithm uses the
complement of θca to rotate in place toward the object for
checking. When only working with one vector, the rover
is rotated to face to the object. Depending on the state
preceding the Obstacle Avoidance State, if resources are
found, the rover transitions out of the current state and
proceeds to pick-up (search state). Unless the rover is already
carrying a resource (delivery state), in which case it would
treat both, objects and resources, as obstacles. In either case,
once an object is declared an obstacle the rover corrects
back to a parallel traversal path. It is important to note
that regardless of which side the rover detects obstacles, the
correction angle always preps the rover for counter-clockwise
rotation. Since the rover only traverses in this manner, we
are able to make the above assumption about the correction
angle (0< θca < π). If the rover’s orientation lives on or
outside of these bounds, it is driving parallel to the obstacle
or away from the obstacle. If the rover is driving away, the
obstacle has been passed, otherwise the only way the rover
arrives parallel to an object is when it has previously been
detected and traversal has begun.
Traversal is then built upon three crucial concepts,
Initialization,T r aversing, and C hecking. During traver-
sal, the rover uses a technique called wall f ollowing, which
utilizes the left sonar vector’s minimum value returned from
Algorithm 2, ST, to gauge relative current distance from
the obstacle it’s traversing. This is achieved by, using the
dynamic drive system mentioned in (1), while bounding ST,
thus creating a virtual road that allows for smooth traversal.
This can be seen in Algorithm 3, T raver sal Setup, where
R(x,y,θ)refers to the rover’s current pose, Ticorresponds
to the rover’s initialization, Tis the ideal perpendicular
distance from rover and edge, and xgis the goal waypoint
in an xy-plane.
Algorithm 3 Traversal Setup: adds new waypoints based on
rover’s current pose
Input: ST: current tangential distance to obstacle
Output: xg: set new effective waypoint specific to avoid-
1: if ST< Tmin and Ti=F alse then
2: T(x,y)=1
30 P30
n=1 R(x,y)
3: Set Ti=T rue
4: else if ST<0.2mthen
5: xg=rotate right(0.35 rads)
6: else
7: if ST< Tmin then
8: θca =0.08
9: else if ST> Tmax then
10: θca =0.08
11: x=T×cos(Rθ+θca) + Rx
12: y=T×sin(Rθ+θca) + Ry
13: xg= (x, y)
14: return xg
Once first encountered, the rover records its initial point
of contact, T(x,y), on the obstacle, which is a necessary step
when determining if a given Search waypoint is unreachable.
If while traversing, such a waypoint is marked “unreachable”,
the rover will remove the waypoint, exit Obstacle Avoidance
State, and proceed to the next waypoint. Otherwise, once
Initialization is finished (Ti=T r ue), the rover will
begin traversing the obstacle in a counter-clockwise manner.
Both drive systems use dynamic corrections, except traver-
sal is dependent on how far the rover exceeds lower and
upper bounds, triggering a new xgpassed to Algorithm 4
for monitoring. The T raver sal S etup and T r aversing
algorithms work hand-in-hand within the state machine.
T raver sal Setup is the function call that creates xgbased
on the various checks made, while T raversing serves as
a monitor of the waypoints. If the xgpasses all the checks
in place then no action is taken and the state machine will
continue to loop until xgis reached. But if action is needed
the algorithm will clear xgand pass the decision back to
T raver sal Setup in order to create a new waypoint based
on sensorial criteria.
This method of T raver sing is ideal for generally smooth
obstacles, but becomes more complicated with sharper, more
realistic objects. When dealing with sharper obstacles, the
Algorithm 4 Traversing: monitors the rovers current way-
point and resets xgonly if resource is found, full traversal
has been made, xgis visible on the right side of the rover,
or rover is driving outside of boundaries
Input: xg: a goal waypoint to drive to
Output: xgØ
1: if Wθ0then
2: δ= 2πWθ
3: else
4: δ=|Wθ|
5: if cube detected then
6: Set xg= Ø
7: else if R(x,y =W(x,y)then
8: Goal waypoint has been reached while traversing.
9: Set xg= Ø
10: else if π
11: Goal waypoint is to the right of rover’s orientation.
12: Set xg= Ø
13: else if Ti=T rue then
14: if R(x,y,θ)T(x,y)then
15: Rover has done a full traversal.
16: Set xg= Ø
17: if ST= 0 then
18: Rover is at an exterior corner.
19: Set xg= Ø
20: else if ST<0.2or {Sc, Sr}/Øthen
21: Set xg= Ø
22: else
23: if ST< Tmin or ST> Tmax then
24: Set xg= Ø
25: return xg
two challenges that present themselves are how to get around
local minima with sharp interior angles and navigating
around exterior angles with little to no sensor input. We
can manage navigation of interior angles by monitoring our
remaining two sonar vectors. Corrections are being made
to the rover’s path periodically based on the ST, in an
attempt to keep it relatively close to the obstacle, but if any
detections are made by the other vectors, (Sc, Sr), a static
correction angle of 0.35 rads (Line 5, Algorithm 3), in the
clockwise direction, is used to navigate the interior corner.
During rotation, traversal checks are then continually made
on the left vector, ensuring that once this has exceeded the
traversal’s lower bound, normal traversal will resume. While
interior angles are traversed by monitoring all sensor data,
the rover loses all sensorial information when encountering
exterior angles. This means that the rover will effectively “fly
blind” for a specified period of time or declare the obstacle
passed. Further complicating the issue, the rover will lose
it’s left vector data approximately 0.38maway from the
apex of the corner. Thus, the rover needs to drive forward a
static distance before it begins to make the turn, otherwise
it will enter an endless loop of re-recognizing the obstacle,
then losing it as it turns away in an attempt to orient itself
Fig. 3: Calculated correction angle ηwhile traversing
down the traversal path. At this point, Algorithm 4 would
not transition back to Algorithm 3 but would instead look
to Algorithm 5 to create a series of waypoints to properly
navigate the corner. Check wraps up this notion of dynamic
Algorithm 5 Check: rotates the rover around exterior corners
while monitoring orientation to xg
Input: η: the goal angle calculated in a counter clockwise
Output: xg: a new traversal waypoint or leaving waypoint
1: iter =θca ×3
2: xg= (x, y)s.t. θca =Rθand px2+y2= 0.3m
3: for i < iter s.t {i0} ∈ Ndo
4: xg=rotate lef t(β
iter )
5: xg= (x, y)s.t. θca =Rθand px2+y2= 0.025m
6: xg=rotate lef t(0.3rads)
7: return xg
driving by first statically driving forward 0.3m, placing the
rover roughly at the corner’s apex, then dynamically creating
several incremental waypoints to form an arc around the
corner. To achieve proper cornering, the correction angle,
ηin Figure 3, is re-calculated through the counter clockwise
difference between current rover orientation and tangential
distance between rover and goal waypoint. From the illus-
tration it can be deduced that if the correction angle were
calculated in a clockwise manner, the rover would rotate
right, exit Obstacle Avoidance State, then re-enter within
the local minima of the obstacle, at which point the rover
would be in an endless loop. During dynamic cornering,
Algorithm 4 monitors the left vector again to verify when the
lower bound has again been crossed, at which point normal
traversal resumes.
Although traversal and initialization guide the rover
around the obstacle, the key to obstacle avoidance is knowing
when to properly exit. This idea is a subset of traversal and is
achieved through checking a combination of four conditions:
1) has the rover traversed the entire obstacle, 2) has the
rover driven over the goal waypoint during traversal, 3) can
the rover see a clear path to the waypoint, and 4) has the
rover found a resource during traversal, which due to space
limitations, the later will not be discussed.
The first condition was briefly discussed above so we’ll
skip to the second condition. When in Search State the rover
is driving to a set of fixed waypoints that are laid out by
the search algorithm, but once Obstacle Avoidance State has
been declared, a new set of waypoints are generated specific
to avoidance. Thus the rover needs to remember the goal
waypoint while in avoidance, but since the GPS on the rover
is not reliable within 1m, we treat the goal waypoint as a
boundary rather than a singleton. Then while traversing the
obstacle, if the GPS marks the rover within the boundary,
the waypoint is marked found and avoidance is exited.
Finally, while traversing a smooth edge or exterior corner,
the rover should always be judging itself in relation to the
goal waypoint, deciding whether it’s acceptable to leave
traversal. For exterior angles, this occurs when the correction
angle is less than the angle needed to re-register the obstacle
with the left sonar vector, at which point the avoidance would
exit. But, there are a finite number of exterior corners on
any given obstacle, thus while traversing smooth edges, the
rover constantly calculates the inverse of η, angle δshown
in Figure 3. If δever falls between lower and upper exiting
bounds, π
4and π
2the goal waypoint exists to the right of the
rover, and avoidance would be exited. This is allowable since
even if the rover is within a local minima, the waypoint is
such that it would cause the rover to cut the minima shallow,
pick up the obstacle on the other side, then transition back out
of avoidance when appropriate. Thus the rover can essentially
multitask searching for waypoints, traversing obstacles, and
looking for resource (although not discussed).
A. Experimental Results
A common problem when working with ultrasonic range
sensors is sensitivity to noise, whether from frequency mis-
readings or specular reflections. Isolating the direct cause
proved difficult, but experimental results in Table I show
that any reading beyond 1.5mis uncertain. At 1.5mstandard
deviation drops to 6cm and improves as relative distance
decreases. It is important to note that although the measured
mean values are not equivalent to actual distances, their
variance remains minimal, hence although not accurate, they
are precise and admissible.
Sonar Accuracy
Actual Distance Mean Max Min STD VAR
0.5 0.33828 0.36 0.319 0.00804 6.469 ×105
1.0 0.8488 0.99 0.79 0.06686 0.00447
1.5 1.2974 1.7 1.11 0.06644 0.00441
2.0 1.3018 2.16 0.97 0.15105 0.02281
TABLE I: sonar distance measured in meters
Thus we empirically chose the values for RIT and RF T ,
set at 1.5mand 0.6mrespectively, where RIT is based on
reliable feedback and RF T is set at the webcam’s maximum
resource identification distance.
Performance of DTM was then tested against a single
threshold baseline in 25 individual trials. For each trial, the
rover was placed at a starting distance of 2maway from
an obstacle, then driven forward till each algorithm flagged
a seen obstacle at a percieved distance of 0.6m. As evi-
denced by Table II, our double threshold implementation was
Sonar Detections
Goal Flagged Distance (0.6m)
Algorithm Mean Max Min STD VAR
Single Theshold 1.48767 1.8415 0.40005 0.33755 0.11394
DTM 0.398399 0.4699 0.2286 0.04719 0.00222
TABLE II: Detection distance in meters
roughly a 73% improvement on its single threshold counter
part with a mean of 0.399399mcompared to 1.48767m
respectively. Supported by a standard deviation of 0.04719m
and a variance of 0.00222m, we can see that 95% of
detections occur within a 0.18876mof eachother. Although
our mean value is below our target detection distance, these
errors can be accounted for as previous discussed with
Table I. Thus we can conclude that DTM is effective at
minimizing detection error and consistant when detecting
B. Simulation Results
Simulations of our bug algorithm were run in the Gazebo
Simulation environment with favorable results as seen in
figs. 4 to 6, with comparisons between implementations
being made in Figure 7 and Table III. Within each simulation,
a black triangle denotes the start location (xc)of the
rover where the go to goal endpoint is marked by a
black X(xg). Obstacle interactions are characterized by a
few different symbols ranging from a red or black circle
marking either the obstacle seen decision boundary or the
obstacle leaving,obstacle unreachable judgement point
respectively. The go to goal path is broken up into the
current rover states, where search state is displayed by a
solid gray line, obstacle state either by a an orange dashed
line or cyan dotted line, and find home state as a dotted
black line. Subtle variations in traversal and decision points
will be discussed in respective figures.
Figure 4, models the safe traversal of a critical shape (U
& H), where the rover approaches said obstacle, switches
states correctly, then creates avoidance waypoints that direct
it in the appropriate traversal till a clear path is detected
to the goal waypoint. We can see that our implementation
of the Bug F amily still holds the necessary characteristics
which allow it to be immune to local minima and achieve
an unencumbered path to target.
Similar results are seen in Figure 5 when some goto goal
waypoints reside within obstacles and are thus unreachable.
On approach, the rover is attempting to reach xg1located
within obstacle1. After the first complete traversal, marked
by the cyan dotted line, xg1is cleared from the search state
queue and the goal waypoint is update to xg2, located within
obstacle2. The orange dashed line now marks the second
complete traversal of the object, at which point xg2is ruled
as unreachable and the rover transitions to locating xg3.
A brief traversal then begins marked by the solid green
line until xg3is seen in the direction of a clear path, thus
obstacle state transitions back out to search state. This
figure demonstrates a key characteristic where each traversal
is near identical to the previous, which shows that the rover is
Fig. 4: Rover odometry path when traversing through local
Fig. 5: Rover odometry path when xgis within obstacles
making consistent decisions regardless of how it encounters
the obstacle. This helps validate our algorithm by showing
consistency throughout.
Figure 6 then plots the adjusted rover path when navigating
between separate obstacles. While attempting to reach its
goal waypoint the rover encounters obstacle1and begins
traversal. While traversing the rover is constantly looking for
a clear path to its goal which is seen on the lower side of the
obstacle, where it transitions back into search state. Search
then handles trajectory until obstacle2is seen, at which point
obstacle state again creates avoidance waypoints around the
detected object. The rover exits along obstacle2
corner where the goal waypoint is then achieved and the
rover proceeds to the new waypoint denoted by the gray
Fig. 6: Rover odometry path with separate obstacles
Obstacle Traversal Times
Algorithm Mean Max Min STD VAR
Dist-Bug 90.6838 101.4 84.6 3.99496 15.95972
HBA 72.39992 75.3 69.699 1.20592 1.45425
TABLE III: Obstacle traversal times in simulations seconds
Fig. 7: Traversal at mean recorded simulation times.
dotted line. This figure demonstrates a key difference be-
tween our algorithm and previous Bug Algorithms, which
is seen in the exit points. We can see that the exit point from
obstacle1is chosen based on sight, not distances, slope, or
calculated ideal leaving points. If the later were true, the exit
point from obstacle1would exist further along in traversal.
Finally, assuming accurate obstacle detection, Table III
compares the performance of HBA against the Dist-Bug
algorithm, over 25 trials each. Using static starting/goal posi-
tions, we can see our implementation exerts 20% decrease
in traversal time with an average of 72.39992 simulation
seconds (sim-sec), as compared to 90.6838 sim-sec. This out-
come is further supported by the difference betweeen Dist-
Bugmin = 84.6sim-sec and HBAmax = 75.3sim-sec, which
suggests that the best Dist-Bug traversal was still slower than
the worst HBA traversal. Illustrated by Figure 7, traversal
times decrease when exit points are based on orientation to
xgrather than differences in go to goal distances, which
tracks the rover down a wasteful path down the obstacles
edge. Although, the obstacle’s orientation was chosen to
exagerate the benefits of our algorithm, it is important to note
that reorrientation, to an angle that placed the exit point of
both algorithms on the same exterior corner, would at best
allow the Dist-Bug to have an equivalent traversal time. We
can reach this conclusion since the Dist-Bug algorithm can
not truely leave while navigating an exterior corner since it is
strictly monitoring tangential distance rather than orientation
to xg.
From our results, we can conclude that after using a
hybrid version of the Bug Algorithm, a known successful
obstacle traversal technique, our double threshold sonar data
monitoring system worked effectively. By working with a
known algorithm, we can isolate and validate our results.
Objects may have been registered at a distance greater than
1.5m, but no action was taken against them. Once the relative
distance between rover and object fell below RIT , the values
were accurately captured within our vector arrays, Vα, and
then successfully analyzed for consistency since the rover
did not encounter any false detections. Then if a value,
Sαdropped below the RF T , it was correctly checked then
marked either as an obstacle or resource at which point the
appropriate action was taken.
Building on this work, we are currently applying these
algorithms to multi-agent systems, where multiple rovers
communicate current location in combination with discov-
ered obstacles and resources to better navigate foreign ter-
rain. This will allow us to improve the Bug Algorithm
by training the rover to remember encountered obstacles
and resources alike, thus building a virtual map of the
surrounding environment. Doing this will allow the rover
to calculate and plot uninhibited paths, to and from known
patches of resources, while superseding the traversal of an
[1] M. Zohaib, M. Pasha, R. Riaz, N. Javaid, M. Ilahi, and R. Khan,
“Control strategies for mobile robot with obstacle avoidance,arXiv
preprint arXiv:1306.1144, 2013.
[2] J. Oroko and B. Ikua, “Obstacle avoidance and path planning schemes
for autonomous navigation of a mobile robot: a review,Sustainable
Research and Innovation Proceedings, vol. 4, 2012.
[3] Y. Koren and J. Borenstein, “Potential field methods and their inherent
limitations for mobile robot navigation,” in Proc. of the IEEE Interna-
tional Conference on Robotics and Automation, 1991, pp. 1398–1404.
[4] V. Sezer and M. Gokasan, “A novel obstacle avoidance algo-
rithm:follow the gap method,Robotics and Autonomous Systems,
vol. 60, no. 9, pp. 1123–1134, 2012.
[5] J. Borenstein and Y. Koren, “Real-time obstacle avoidance for fast
mobile robots,” IEEE Trans. on Systems, Man, and Cybernetics,
vol. 19, no. 5, pp. 1179–1187, 1989.
[6] ——, “The vector field histogram-fast obstacle avoidance for mobile
robots,” IEEE Trans. on Robotics and Automation, vol. 7, no. 3, pp.
278–288, 1991.
[7] M. Zohaib, S. M. Pasha, N. Javaid, A. Salaam, and J. Iqbal, “An
improved algorithm for collision avoidance in environments having u
and h shaped obstacles,” Studies in Informatics and Control, vol. 23,
no. 1, pp. 97–106, 2014.
[8] V. Lumelsky and A. Stepanov, “Dynamic path planning for a mobile
automaton with limited information on the environment,IEEE Trans.
on Automatic Control, vol. 31, no. 11, pp. 1058–1063, 1986.
[9] E. Magid and E. Rivlin, “CAUTIOUSBUG: A competitive algorithm
for sensory-based robot navigation,” in Proc. of the IEEE/RSJ Inter-
national Conference on Intelligent Robots and Systems (IROS), vol. 3,
2004, pp. 2757–2762.
[10] I. Kamon and E. Rivlin, “Sensory-based motion planning with global
proofs,” IEEE Trans. on Robotics and Automation, vol. 13, no. 6, pp.
814–822, 1997.
[11] H. Choset, K. Lynch, S. Hutchinson, G. Kantor, W. Burgard,
L. Kavraki, and S. Thrun, “Principles of robot motion: Theory,
algorithms, and implementation,” The MIT Press, vol. 1st Edition, pp.
pp. 17 – 38, 2007.
[12] J. T. Isaacs, C. Magee, A. Subbaraman, F. Quitin, K. Fregene,
A. R. Teel, U. Madhow, and J. P. Hespanha, “Gps-optimal micro air
vehicle navigation in degraded environments,” in American Control
Conference (ACC), 2014. IEEE, 2014, pp. 1864–1871.
[13] Y. Alpaslan and P. Osman, “Performance comparison of bug algo-
rithms for mobile robots,” in 5th International Advanced Technologies
Symposium (IATS09), vol. 13, 2009.
[14] NASA Swarmathon, “Home - NASA Swarmathon,” 2017, Retrieved
on 09/29/2017 from [Online]. Available:
[15] M. Quigley, K. Conley, B. Gerkey, J. Faust, T. Foote, J. Leibs,
R. Wheeler, and A. Y. Ng, “ROS: an open-source robot operating
system,” in ICRA Workshop on open source software, vol. 3, no. 3.2.
Kobe, 2009, p. 5.
[16] E. Maalouf, M. Saad, and H. Saliah, “A higher level path tracking con-
troller for a four-wheel differentially steered mobile robot,Robotics
and Autonomous Systems, vol. 54, no. 1, pp. 23 – 33, 2006.
ResearchGate has not been able to resolve any citations for this publication.
Conference Paper
Full-text available
We investigate a computationally and memory efficient algorithm for radio frequency (RF) source-seeking with a single-wing rotating micro air vehicle (MAV) operating in an urban canyon environment. We present an algorithm that overcomes two significant difficulties of operating in an urban canyon environment. First, Global Positioning System (GPS) localization quality can be degraded due to the lack of clear line of sight to a sufficient number of GPS satellites. Second, the spatial RF field is complex due to multipath reflections leading to multiple maxima and minima in received signal strength (RSS). High quality GPS localization is maintained by observing the GPS signal to noise ratio (SNR) to each satellite and making inferences about directions of high GPS visibility (allowable) and directions of low GPS visibility (forbidden). To avoid local maxima in RSS due to multipath reflections we exploit the rotation of the MAV and the directionality of its RF antenna to derive estimates of the angle of arrival (AOA) at each rotation. Under mild assumptions on the noise associated with the AOA measurements, a greedy algorithm is shown to exhibit a global recurrence property. Simulations supplied with actual GPS SNR measurements indicate that this algorithm reliably finds the RF source while maintaining an acceptable level of GPS visibility. Additionally, outdoor experiments using Lockheed Martin's Samarai MAV demonstrate the efficacy of this approach for static source-seeking in an urban canyon environment.
Full-text available
This paper proposes a novel obstacle avoidance algorithm for autonomous mobile robot control. The proposed approach brings a solution to the problem of robot traversal in critical shaped environments and offers several advantages compared to the reported approaches. The algorithmic approach, named as, Intelligent Follow the Gap Method (IFGM) is based on improved Intelligent Bug Algorithm (IBA) and Follow the Gap Method (FGM). The robot field of view is taken into consideration. The IBA avoids obstacles by following their edge and scanning the path to destination, thus making the approach goal-oriented avoiding local minimum problem. To characterize the performance of IFGM, various scenarios of obstacles are considered. These scenarios range from having obstacles defined by simple and symmetrical shapes to critical shaped obstacles. The simulation results demonstrate that the algorithm results in safer and smoother trajectories in the presence of obstacles. It offers fast convergence and does not suffer from local minima. Finally, the performance comparison of the proposed algorithm with that of the reported approaches in terms of distance-time plots confirms the efficacy of the presented approach. The proposed algorithm lends itself to future implementations in the navigation of mobile and industrial robots, especially in applications exhibiting crucial time and critical obstacles including disaster management, spy, elderly people assistance and soccer games.
Conference Paper
Full-text available
In this study, Bug1, Bug2, and DistBug motion planning algorithms for mobile robots are simulated and their performances are compared. These motion planning algorithms are applied on a Pioneer mobile robot on the simulation environment of MobileSim. Sonar range sensors are used as the sensing elements. This study shows that mobile robots build a new motion planning using the bug's algorithms only if they meet an unknown obstacle during their motion to the goal. Each of the bug's algorithms is tested separately for an identical configuration space. At the end of this study, the performance comparison of the bug's algorithms is shown. Keywords: Bug, pioneer, robots, sonar, MobileSim Paper videos can be reached from this URL:
Full-text available
Obstacle avoidance is an important task in the field of robotics, since the goal of autonomous robot is to reach the destination without collision. Several algorithms have been proposed for obstacle avoidance, having drawbacks and benefits. In this survey paper, we mainly discussed different algorithms for robot navigation with obstacle avoidance. We also compared all provided algorithms and mentioned their characteristics; advantages and disadvantages, so that we can select final efficient algorithm by fusing discussed algorithms. Comparison table is provided for justifying the area of interest
Conference Paper
Full-text available
Based on a rigorous mathematical analysis, the authors present a systematic overview and a critical discussion of the inherent problems of potential field methods (PFMs). The authors previously (1989) developed a PFM called the virtual force field (VFF) method. Much insight has been gained into the strengths and weaknesses of this method. Four distinct drawbacks with PFMs are identified. Because of these drawbacks, the authors abandoned potential field methods and developed a new method for fast obstacle avoidance. This method, called the vector field histogram method, produces smooth, nonoscillatory motion, while sampling time and hardware are identical to those used in the VFF method
In this paper, a novel obstacle avoidance method is designed and applied to an experimental autonomous ground vehicle system. The proposed method brings a new solution to the problem and has several advantages compared to previous methods. This novel algorithm is easy to tune and it takes into consideration the field of view and the nonholonomic constraints of the robot. Moreover the method does not have a local minimum problem and results in safer trajectories because of its inherent properties in the definition of the algorithm. The proposed algorithm is tested in simulations and after the observation of successful results, experimental tests are performed using static and dynamic obstacle scenarios. The experimental test platform is an autonomous ground vehicle with Ackermann steering geometry which brings nonholonomic constraints to the vehicle. Experimental results show that the task of obstacle avoidance can be achieved using the algorithm on the autonomous vehicle platform. The algorithm is very promising for application in mobile and industrial robotics where obstacle avoidance is a feature of the robotic system.
Conference Paper
Abstract— This paper gives an overview of ROS, an open- source robot operating,system. ROS is not an operating,system in the traditional sense of process management,and scheduling; rather, it provides a structured communications layer above the host operating,systems,of a heterogenous,compute,cluster. In this paper, we discuss how ROS relates to existing robot software frameworks, and briefly overview some of the available application software,which,uses ROS.