Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

J Intell Robot Syst (2006) 47: 101–124

DOI 10.1007/s10846-006-9055-3

A Fuzzy–Braitenberg Navigation Strategy for


Differential Drive Mobile Robots

X. Yang · R. V. Patel · M. Moallem

Received: 5 March 2004 / Accepted: 2 May 2006 /


Published online: 21 September 2006
© Springer Science+Business Media B.V. 2006

Abstract In this paper, a novel algorithm is developed to achieve efficient and


smooth navigation for a differential drive mobile robot in unknown environments.
The algorithm takes advantage of the essential characteristics of a differential drive
robot and combines fuzzy logic with the ideas of Braitenberg vehicles. We have also
proposed and tested a new technique for tuning a membership function referred to
as NEAR, representing the closeness of the robot to an obstacle. The tuning scheme
is obtained based on the distribution directives of the range sensors on the robot.
The resulting navigation algorithm has been implemented on a real mobile robot and
tested in various environments. Some problems in the implemented algorithm are
identified and effective solutions are proposed. Experimental results are presented
which demonstrate the effectiveness and improved performance of the resulting
Fuzzy–Braitenberg navigation scheme.

Key words Braitenberg vehicle · differential mobile robot · fuzzy logic ·


navigation system · unknown environment

This research was supported in part by the National Sciences and Engineering Research Council
(NSERC) of Canada under grants RGPIN1345 and RGPIN227612, and the Canada Foundation
for Innovation under the New Opportunities Program.

X. Yang (B) · R. V. Patel · M. Moallem


Department of Electrical & Computer Engineering, University of Western Ontario, London,
ON, N6A 5B9, Canada
e-mail: xyang23@engga.uwo.ca
R. V. Patel
e-mail: rajni@eng.uwo.ca
M. Moallem
e-mail: mmoallem@engga.uwo.ca
102 J Intell Robot Syst (2006) 47: 101–124

1. Introduction

In order to navigate safely in an unknown environment, a mobile robot needs


to deal with the uncertainty and imprecise, or incomplete, information about the
environment in a timely manner. This results in real-time demands on the navigation
system. Fuzzy logic is an excellent candidate for such applications due to its simplicity
and capability for real-time implementation, as well as its capabilities for inference
and approximate reasoning under uncertainty.
Fuzzy logic has been utilized in navigation systems for mobile robots for over a
decade. Early in 1991, [1] proposed a method of path planning and execution using
fuzzy logic for mobile robot control. From then on, the efficiency of using fuzzy logic
in mobile robot navigation systems has been demonstrated, see e.g. [2–5]. A com-
prehensive study of fuzzy logic-based autonomous robot navigation systems is given
in [6]. Recently, several new and improved solutions to the mobile robot navigation
problem in unknown environments based on fuzzy logic have been proposed [7–9].
There also exist methods combining fuzzy logic with other algorithms, such as genetic
algorithms [10], electrostatic potential fields [11], and neural networks [12], etc.
Despite all the benefits and efficiency that the fuzzy-logic algorithm offers for
mobile robot navigation systems, there exist grounds for further exploration. In
the existing literature, fuzzy logic-based navigation systems are mainly designed to
work in the pattern illustrated in Figure 1. With such a pattern, a mobile robot
is in a repeated behavior of watching–turning–going at a predefined frequency in
the navigation. During watching, the robot processes sensory data and applies the
fuzzy algorithm in order to find a proper direction which is both safe, from the
viewpoint of obstacle avoidance, and desired, from the viewpoint of goal seeking.
At the turning stage, this direction is utilized to turn the robot. In the going stage,
the robot proceeds forward at an adjusted speed, usually determined by the front
sensor readings [13]. The turning and going behaviors are completely exclusive from
one another. This may be considered as an advantage for a differential drive mobile
robot since it can achieve zero rotation radius, which simplifies implementation of
the algorithm. But for a robot with another type of drive, it is difficult to realize
the above behavior pattern because turning cannot be achieved without forward
motion. Even for differential drive robots, this kind of behavior pattern may incur
problems. A kind of jerky motion results when the mobile robot moves fast, as the
stopping action before turning behavior becomes easily observable. To solve this
problem, we develop a novel fuzzy navigation algorithm, combining the ideas of
Braitenberg Vehicles 2 and 3 [14]. With this algorithm, we take advantage of the
essential characteristics of a differential drive robot by setting different motor speeds
for each side to fulfill the turning behavior while going forward; namely, moving
smoothly and continuously in an arc based on fuzzy logic.
In the literature on fuzzy navigation algorithms for mobile robots, a unique
membership function µ NEAR is tuned for each sensor, or sensor group on the robot.
This means that n fuzzy membership functions µ NEAR are required for a robot with

Figure 1 Behaviors of a typical


fuzzy navigation system. Watching Turning Going
J Intell Robot Syst (2006) 47: 101–124 103

n sensors or sensor groups. This is tedious and introduces too much subjectivity in
the design process. In this paper, a new method for tuning the membership function
µ NEAR of the fuzzy set NEAR is proposed according to the distribution directives of
the sensors on a robot. Using this method only one fuzzy set NEAR is required, no
matter how many sensors the robot is equipped with.
The organization of this paper is as follows: In Section 2, we briefly review the idea
of Braitenberg vehicles. In Section 3, a new algorithm is proposed to determine the
motor speeds based on the sensory data and goal position using fuzzy logic and the
idea of Braitenberg Vehicles 2 and 3. In Section 4, we present some implementation
issues and experimental results as well as discussions about the improvements
achieved using the proposed scheme.

2. Background

2.1. Braitenberg Vehicles 2 and 3

We concentrate our attention on Braitenberg Vehicles 2 and 3, since in this paper


the idea of these two types of vehicles are used. Figures 2 and 3 (from [14]) depict
the idea of Braitenberg Vehicles 2 and 3, respectively. As illustrated, both Vehicles 2
and 3 are equipped with two sensors and two motors, but with different connections
between the sensors and the motors. For Vehicles 2a and 3a, each sensor is connected
to the motor on the same side, which is referred to as direct-connection. While for
Vehicles 2b and 3b, each sensor is connected to the motor on the opposite side, which
is referred to as crossed-connection. As shown in Figures 2 and 3, ‘+’ means that the
higher the readings of the sensor, the faster the motor runs. On the other hand, ‘−’
means the higher the readings, the slower the motor runs. In Figures 2 and 3, ‘s’
represents the source that can be detected by the sensors.
In the configuration of Vehicle 2, if the source is directly ahead, both vehicles
may hit the source unless they are deflected away from it. If the source is to one

Figure 2 Braitenberg’s
Vehicles 2a and 2b in the
vicinity of a source.
s

sensor

motor
2b
2a

+ + + +
104 J Intell Robot Syst (2006) 47: 101–124

Figure 3 Braitenberg’s
Vehicles 3a and 3b in the
vicinity of a source. sensor

-
3a

-
s

3b
- -
motor

side (Figure 2), for each vehicle, one of the sensors (the one nearer to the source)
is excited more than the other; hence the corresponding motor runs faster. As a
consequence, Vehicle 2a turns away from the source, giving the impression that it
is trying to avoid the source. But Vehicle 2b will hit the source at a high speed, or
we say that it is trying to pursue the source as best as it can. In the configuration
of Vehicle 3, while approaching the source, Vehicle 3a will orient toward it. Since
the vehicle is on an oblique course, the sensor nearer to the source will slow down
the motor on the same side, producing a turn toward that side. Vehicle 3a will finally
come to rest facing the source. Vehicle 3b may come to rest facing the source, but any
slight perturbation could cause it to drift away. Actually, if the source is originally to
one side, Vehicle 3b always slows down and turns toward the opposite side, which is
observed as avoiding the source.

2.2. Relating Braitenberg Vehicles to Mobile Robot Navigation

The mobile robot navigation problem can be generally decomposed into two sub-
problems: Getting to the goal and avoiding collisions [15]. In order to relate the idea
of Braitenberg vehicles to these two subproblems, the goal position can be considered
as a source which the robot wants to pursue, and an obstacle is regarded as a source
that it tries to avoid. Observing the behaviors of the Braitenberg vehicles in a vicinity
of their sources, we can easily identify that Vehicles 2a and 3b are suitable for the
purpose of obstacle avoidance, while Vehicle 2b is especially good for seeking the
goal. Between Vehicles 2a and 3b, we select the latter one for solving the problem of
collision avoidance for front and side obstacles. Clearly, it is safer for a mobile robot
to slow down and avoid obstacles in its way than to speed up towards them and then
perform the avoidance. Vehicle 2a is used for avoiding obstacles appearing near the
robot from the back, since it endows the robot with the ability of moving away from
collisions.
With the above analysis, we propose a navigation scheme for a differential drive
mobile robot as shown in Figure 4. Sensors detecting obstacles in the front, or on
J Intell Robot Syst (2006) 47: 101–124 105

Figure 4 A mobile robot with


the idea of Braitenberg
vehicles.

the side (front or side sensors), are in negative crossed-connection with the motors.
This means that the smaller the distance between the robot and an obstacle detected
by these sensors, the slower will be the motor on the opposite side. This is the idea
suggested by Vehicle 3b. Sensors on the back part of the robot (rear sensors) are
in positive direct-connection with the motors. This means that the closer an object
is to the robot from the rear, the faster will be the motor on the same side, which
uses the idea of Vehicle 2a. This behavior is desired for the robot to avoid collisions
with objects coming from the rear. Note that several sensors on each side of the
robot are used at the same time for detecting obstacles. For example, the mobile
robot Koala [16] employed in our experiments is equipped with a ring of 16 infrared
proximity/ambient light sensors (eight on each side). In Figure 4, we use one to
represent any sensor on the corresponding side. The target angle φ is referred to as the
angular difference between the robot heading direction and the goal position, which
is calculated during navigation. Assume that a ‘sensor’ on each side can sense the
value of φ on the same side. And the two sensors are in positive crossed-connection
with the motors. This means that the bigger the φ, the faster will be the motor on the
opposite side. Here the idea of Braitenberg Vehicle 2b is applied.
In such a configuration, we can see that the mobile robot cannot only necessarily
avoid obstacles but can also efficiently seek to reach its goal position in an unknown
environment. In the following section, we develop algorithms based on fuzzy logic to
realize the above conclusions.

3. Fuzzy Logic-based Algorithms

3.1. Algorithm for Obstacle Avoidance

Since the proposed algorithm is left–right symmetric for the mobile robot, we will
consider only one side. As illustrated in Figure 5, each side of the robot is equally
106 J Intell Robot Syst (2006) 47: 101–124

Figure 5 The partitions of


sensors on a mobile robot.
Robot Heading

Front
Sensor
I
α Front-side
II

III
Rear-side
IV

Rear

partitioned by the dotted line into four areas, i.e., I, II, III and IV. The sensors
corresponding to these areas are called front-sensor, front-side-sensor, rear-side-
sensor, and rear-sensor, respectively. This partitioning allows us to design the fuzzy
rule base for collision avoidance as follows:

– If d detected by the front-sensor is NEAR, then 1V is negative VERY BIG


(NVB);
– If d detected by the front-side-sensor is NEAR, then 1V is negative BIG (NB);
– If d detected by the rear-side-sensor is NEAR, then 1V is negative SMALL (NS);
– If d detected by the rear-sensor is NEAR, then 1V is positive VERY SMALL
(PS).

where d is the normalized distance between the robot and an obstacle; NEAR is a
fuzzy set defined for d associated with an individual sensor; 1V is the change of speed
for the corresponding motor; and NVB, NB, NS and PS are fuzzy sets defined for 1V.
By considering the system configuration proposed in Figure 4, the first three rules are
related to the negative crossed-connection between the sensors and motors. So when
these sensors detect something NEAR, the motor on the opposite side will be slowed
down. The last rule is about the positive direct-connection, i.e., the NEAR detected
by the rear-sensor will speed up the motor on the same side.
Observing the rule base, we notice that the d detected by a sensor in a different
area will have a different effect on the corresponding motor. It is reasonable that
the robot should turn more to avoid an object in front than to avoid an object to
its side. On the other hand, it is worthwhile mentioning that the same d detected by
a different sensor may have a different meaning for the robot. From the collision
avoidance viewpoint, an obstacle detected by the front sensor is more important than
that detected by the side or rear sensors with the same d. In the existing literature of
fuzzy navigation algorithms, this consideration is often realized by designing unique
membership functions of fuzzy set NEAR for individual sensors. Our method herein
is to design the membership function µ NEAR as shown in Figure 6 for the sensor in
the 0◦ -direction only. The terms a0 , b0 and c0 are assigned by our knowledge about
the sensor; c0 is taken as a threshold value, by which the robot thinks itself to be
NEAR in some sense to an obstacle if c0 has been detected by any sensor. Usually,
we take b0 = 1.0. Since d is normalized, b0 = 1.0 means that the robot considers any
J Intell Robot Syst (2006) 47: 101–124 107

Figure 6 Membership function of NEAR for a sensor in 0◦ -direction.

object in its front sight to be NEAR to a certain degree. The value of a0 is assigned
according to the robot’s speed, showing the point at which the robot considers itself
extremely NEAR an object in the front. It is reasonable that the faster the robot
moves, the bigger will be the value of a0 . Once they are specified, a0 , b0 and c0 can
be used to calculate parameters aα and bα of µ NEAR for each sensor considering its
distributive angle α on the robot. The distributive angle α of a sensor is illustrated

0.9

0.8

0.7

0.6
ω

0.5

0.4

0.3

0.2

0.1

α
o o
0o 20 40 o 60 o 80 o 100 120 o
140 o
160o 180 o

Figure 7 Activation function for the meanings of NEAR.


108 J Intell Robot Syst (2006) 47: 101–124

Figure 8 Comparisons between membership functions of NEAR.

in Figure 5, and is the angular difference between the sensor direction and the robot
heading direction. To incorporate the distributive angle α in µ NEAR, we choose the
curve shown in Figure 7 as an activation function. For a sensor with a distributive
angle α on the robot, the associated membership function of NEAR is obtained as
aα = ωa0 , bα = max{c0 , ωb0 }.
For the robot Koala which is equipped with infrared sensors, in the implementation
of the proposed algorithm, we assigned a0 = 0.6, b0 = 1.0, and c0 = 0.5. Figure 8
illustrates µ NEAR for the sensors in the 0◦ -direction, 90◦ -direction and 120◦ -direction,
respectively. We can see that the same d, say 0.4, detected by the sensor in the 90◦ -
direction or 120◦ -direction is much less important than that in the 0◦ -direction. In
other words, we capture the desired meaning of the fuzzy term NEAR for sensors
in various directions by associating them with the appropriate membership function
µ NEAR, taking into account the distributive angles of the sensors. Up to this point, the
proposed method has an advantage over other methods in that it conveys important
information about the robot to the algorithms. This makes it particularly efficient
when we want to interpolate between sensors in the system, since we do not need any
extra design effort for the associated fuzzy set NEAR.

3.2. Algorithm for Goal-seeking

The rule base used for goal seeking behavior is designed as the follows:
– If φ is VERY SMALL (VS), then 1V is VERY SMALL (VS);
– If φ is SMALL (S), then 1V is positive SMALL (PS);
– If φ is BIG (B), then 1V is positive BIG (PB);
– If φ is VERY BIG (VB), then 1V is positive VERY BIG (PVB).
Where VS, S, B, VB are fuzzy sets representing φ in the universe of discourse
[0◦ 180◦ ] (Figure 9); VS, PS, PB, and PVB are fuzzy sets partitioned for 1V. These
rules are all related to the positive crossed-connection between φ and the motors. So
φ on one side would cause increase in the speed of the motor on the opposite side. The
universe of discourse for 1V is subject to the speed level chosen for the robot without
considering the influence of obstacles and the goal position, which is referred to as
J Intell Robot Syst (2006) 47: 101–124 109

Figure 9 Membership functions of the target angle φ.

base speed. If we select V0 as the base speed for the robot, the universe of discourse
for 1V and its partitioning is designed as shown in Figure 10. It is observed that
the partition of the universe of discourse is asymmetrical about the origin (1V = 0).
Such partitioning is reasonable in that the robot should always be collision -free in
the navigation process. By this, we put more weight on the importance of collision
avoidance than goal seeking behavior. Since the speed of the robot should be always
a feasible value, we choose V0 ≤ 0.5Vmax , where Vmax is the maximum speed value of
the robot. For the Koala robot, the maximum speed value is 0.5m/s.

3.3. The Overall Algorithm

Combining the algorithms of obstacle avoidance and goal-seeking together, we


obtain the overall Fuzzy–Braitenberg navigation system as summarized in Figure 11,
where d is the normalized distance detected by a sensor; α is the distributive angle
of the sensor; µ is the membership function of the fuzzy set NEAR; φ is the target

NB NS VS PS
NVB PB PVB
1.0

ΔV

−2V o −V 0 Vo
o 0.5V o

Figure 10 Membership functions of 1V.


110 J Intell Robot Syst (2006) 47: 101–124

Rule Base for


Collision Avoidance

d
μ
Fuzzy Inference
ΔV Vo
Engine
α
+ Defuzzification V

Fuzzy Inference
φ Engine ΔV

Rule Base for


Goal Seeking

Figure 11 The overall Fuzzy–Braitenberg algorithm for the navigation system.

angle; 1V is a fuzzy set representing the speed change in the corresponding motor;
V0 and V are crisp values of the base speed and calculated speed of the corresponding
motor, respectively. From Figure 11, it can be observed that the sensor’s distributive
angle α associates the sensor with a unique fuzzy set NEAR. The fuzzy inference
engine for collision avoidance takes reasoning about the degree of NEAR fired by its
input d, using the fuzzy rules for collision avoidance, to give the speed change 1V for
the corresponding motor. Similarly, the goal seeking module takes the target angle
φ as input and produces the speed change 1V for the corresponding motor based
on the fuzzy rules for goal-seeking. The fuzzy sets 1V are combined by the fuzzy
sum operation [18]. The final output V is obtained by incorporating the change of the
speed in the base speed V0 .

Figure 12 A particular
situation in the mobile
robot navigation.
J Intell Robot Syst (2006) 47: 101–124 111

Figure 13 The Koala robot (silver version).

If the robot does not meet obstacles during the navigation, φ would become 0◦ no
matter how big it is originally. Based on the proposed algorithms, we have V = V0
for each motor, which means the robot heads towards its goal position at a constant
speed. If this is not the case, the two motors will have different speeds, which means
the robot is able to achieve turning while going to both avoid obstacles and pursue its
goal.
It is interesting to investigate the particular situation depicted in Figure 12, in
which the robot is heading to the goal position but the way ahead is blocked. Actually,
this is a frequent case for a mobile robot navigating in an unknown environment.
In the potential fields method [17], it gives rise to a typical equilibrium problem in
which the robot oscillates back and forth in front of the obstacle. With the proposed
algorithm, this problem is solved. Upon analysis of the Braitenberg Vehicle 3b,
any slight perturbation would cause the robot to drift away from the obstacle in
this situation. Such a perturbation could be anything that causes a difference of
measurements between sensors on the two sides, which could result from many

Figure 14 The experimental environment.


112 J Intell Robot Syst (2006) 47: 101–124

2500

GOAL

2000

1500

1000

500

0
Elasped Time (s): 61.0590
START
0 500 1000 1500 2000 2500

b 1.0
Front Sensor
Side Sensor
Sensor Readings

Rear Sensor
Left

0
1.0
Right

Front Sensor
Side Sensor
Rear Sensor

0
5000
Distance to Goal
d(mm)

0
o
100

o
φ

0
Target Angle
o
−100
v(mm/s)

90

0 Left Motor
Right Motor
− 90
0 10 20 30 40 50 60

Figure 15 The path of the Koala navigating in an unknown static environment.

factors, such as asymmetry of the obstacle, ambient light, and imprecision in the
sensor measurements. Since we have put more emphasis on collision avoidance in the
J Intell Robot Syst (2006) 47: 101–124 113

2500

Elapsed Time (s): 75.5610 GOAL

2000

1500

1000
A

500 B

D
0
0 500 1000 1500 2000 2500

b 1.0
Front Sensor
Side Sensor
Left
Sensor Readings

Rear Sensor

0
1.0
Front Sensor
Right

Side Sensor
Rear Sensor

0
5000
Distance to Goal
d(mm)

0
o
100
Target Angle
o
φ

−100
o
v(mm/s)

90

0 Left Motor
Right Motor
− 90
0 10 20 30 40 50 60 70

Figure 16 The path of the Koala navigating in a dynamic environment.

algorithm, once the robot drifts slightly away from the obstacle, the cooperative be-
havior of obstacle-avoidance and goal-seeking would again dominate the navigation
114 J Intell Robot Syst (2006) 47: 101–124

2500
Elapsed Time (s): 133.6850
GOAL

2000

1500

1000

500

0
0 500 1000 1500 2000 2500

b 1.0
Front Sensor
Sensor Readings

Side Sensor
Left

Rear Sensor

0
1.0
Right

Front Sensor
Side Sensor
Rear Sensor

0
5000
Distance to Goal
d(mm)

0
100
Target Angle
0
φ

−100
v(mm/s)

90

0 Left Motor
Right Motor
− 90
0 20 40 60 80 100 120

Figure 17 Data analysis for the typical fuzzy navigation algorithm.

process. Thus, with the proposed navigation algorithm, the robot cannot only cope
with the uncertainties and imprecisions about the environment, but it can also take
J Intell Robot Syst (2006) 47: 101–124 115

2500

Elapsed Time (s): 64.2230 GOAL

2000

1500

1000

500

0
0 500 1000 1500 2000 2500

b 1.0
Front Sensor
Side Sensor
Left
Sensor Readings

Rear Sensor

0
1.0
Front Sensor
Right

Side Sensor
Rear Sensor

0
5000
Distance to Goal
d(mm)

0
100
Target Angle
0
φ

−100
v(mm/s)

90

0 Left Motor
Right Motor
−90
0 10 20 30 40 50 60

Figure 18 Data analysis for Fuzzy–Braitenberg navigation algorithm.

advantage of them in some cases. As a result, the ability to navigate in an unknown


environment is greatly improved.
116 J Intell Robot Syst (2006) 47: 101–124

2500

Elapsed Time (s): 122.0380 GOAL


Battery Drop(mv): 260

2000

1500

1000

500

0
0 500 1000 1500 2000 2500

1.0
Front Sensor
Side Sensor
Sensor Readings

Rear Sensor
Right Left

0
1.0
Front Sensor
Side Sensor
Rear Sensor

0
5000
Distance to Goal
d(mm)

0
100
Target Angle
φ

–100
v(mm/s)

90

0 Left Motor
Right Motor
–90
0 20 40 60 80 100 120
Time (s)

Figure 19 Navigation time and drop in battery level for the typical fuzzy navigation algorithm.
J Intell Robot Syst (2006) 47: 101–124 117

a
2500

Elapsed Time (s): 58.3950


GOAL
Battery Drop(mv): 100

2000

1500

1000

500

0
0 500 1000 1500 2000 2500

b 1
Front Sensor
Side Sensor
Left
Sensor Readings

Rear Sensor

0
1
Front Sensor
Right

Side Sensor
Rear Sensor

0
5000
Distance to Goal
d(mm)

0
100
Target Angle
φ

−100
v(mm/s)

90

0
Left Motor
− 90 Right Motor
0 10 20 30 40 50
Time (s)

Figure 20 Navigation time and drop in battery level for the Fuzzy–Braitenberg algorithm.
118 J Intell Robot Syst (2006) 47: 101–124

140
Fuzzy–Braitenberg Algorithm
Navigation Time (s)

120 Typical Fuzzy Algorithm

100

80

60

40
0 1 2 3 4 5 6

300
Fuzzy–Braitenberg Algorithm
250 Typical Fuzzy Algorithm
Battery Drop (mv)

200

150

100

50

0
0 1 2 3 4 5 6
Number of Obstacles

Figure 21 Comparisons of navigation time and power consumption.

4. Experimental Results & Discussions

4.1. Experiments with the Koala Robot

We have implemented the Fuzzy–Braitenberg navigation algorithm on an actual


mobile robot – The Koala, and tested it through extensive experiments in various

Figure 22 The corridor-like


environment.
J Intell Robot Syst (2006) 47: 101–124 119

2500

GOAL

2000

1500

1000

500

0
0 500 1000 1500 2000 2500

Figure 23 The path of the Koala navigating in a corridor.

environments. The Koala is a small (32×32 cm), six wheeled, differential drive vehicle
manufactured by K-team SA and is shown in Figure 13a. Low-level motion and
hardware control are performed by an on-board microprocessor (16 MHz Motorola
68331). The Koala is currently equipped with a ring of 16 infrared proximity/ambient
light sensors and incremental wheel encoders. The IR sensors provide range mea-
surements from 5 to 20 cm [16]. Figure 13b shows the physical distribution of the 16
IR sensors.
One scene of the experimental environment in our research lab is shown in
Figure 14. The Koala navigates in the environment with several obstacles of various
shapes and sizes scattered on the floor. The Koala starts at a point [x0 y0 θ0 ] and
seeks its goal position [xg yg θg ]. The coordinates represent the position and orien-
tation of the robot in the fixed 2D coordinate system attached to the environment. We
performed a number of experiments to demonstrate the effectiveness of the proposed
fuzzy navigation system in an unknown static environment. One of the experimental
results is presented in Figure 15. It can be seen that the Koala robot always tries to go
towards its goal position at a constant speed if there are no close obstacles. It slows
down in the presence of obstacles in the front and adjusts the motor speed on each
side to perform the obstacle avoidance behavior. At the same time, influenced by the
attraction of the goal position, the robot does not take any redundant turning in the
avoidance behavior.
Experiments were also performed to demonstrate the effectiveness of the algo-
rithm in a dynamic environment. Figure 16a shows the resulting path of the robot
reacting to an object which suddenly comes in front of it. We can see that, at point C
while the robot is going towards the goal position, an object in the shape of a cylinder
120 J Intell Robot Syst (2006) 47: 101–124

suddenly moves from point A to B. The robot first slows down on detecting the object.
But when the object moves too close to it, the robot draws back to point D, and then
performs the avoidance action to avoid the object. As shown in Figure 16b, from 30 to
37s, the robot performs the backward and avoidance actions accordingly. Clearly, the
proposed algorithm endows the robot with the ability for quick response to dynamic
environments.

4.2. Comparisons

In this section, a comparison is carried out between the performance of the Koala
robot with a typical fuzzy navigation algorithm [1–5] and that with the proposed
Fuzzy–Braitenberg algorithm. The starting point and goal position were fixed and the
same base speed was used. The results are shown in Figures 17 and 18, respectively.
It is observed from Figure 17 that the target angle φ changes abruptly and frequently
with the two motors always having the same speed. However, in Figure 18, we
can see that the target angle φ changes smoothly, the speeds of the two motors
vary independently, and the readings of the rear sensors are generally low. With
the typical fuzzy navigation algorithm, the turning action is achieved by the zero-
radius rotation behavior, which cannot be depicted in Figure 17. With the zero-radius
rotation behavior, an obstacle which is originally close to the robot in the front
may become close to the side or rear of the robot. Thus the readings of side and
rear sensors are generally high and various. On the other hand, this kind of turning
behavior results in the robot taking a lot of time adjusting its heading direction in
the presence of obstacles without forward movement. Thus a longer navigation time
(133.7s) is needed. With the Fuzzy–Braitenberg algorithm, the navigation time is
greatly reduced (64.2s). This is due to the fact that the desired turning action is
attained by the different speeds of the two motors.
In order to investigate the issues of navigation time and power consumption
for the two algorithms, we performed a series of experiments in the presence of
a different number of obstacles with a fixed starting point, goal position and base
speed. The Koala robot was run using the two algorithms to navigate the environment
with obstacles placed in front of it from zero up to six times during its navigation.
As an example, the resulting paths and recorded data for the two algorithms with
obstacle appearing for six times are shown in Figures 19 and 20, respectively. The
navigation time and power consumption are shown in Figure 21. It can be observed
that the Koala robot takes more time and energy when the typical fuzzy navigation
algorithm is used than when the Fuzzy–Braitenberg algorithm is used. Furthermore,
the navigation time for the typical fuzzy navigation algorithm increases significantly
with the number of times that obstacles are placed in front of the robot; while
the navigation time for the Fuzzy–Braitenberg algorithm mainly depends on the
travelled distance instead of the number of obstacles. Thus, navigation time and
power consumption can be significantly reduced using the proposed algorithm.

5. Discussions

The experiments performed in an unknown environment, such as that shown in


Figure 14, demonstrate the efficiency of the Fuzzy–Braitenberg navigation system.
In some special situations, however, we encountered problems.
J Intell Robot Syst (2006) 47: 101–124 121

Figure 22 shows a situation in which the Koala is passing through a corridor-like


path. Here by a corridor-like path, we mean a path which is narrow enough for the
robot to detect objects on both its sides simultaneously, and broad enough (wider
than the width of the robot body) for the robot to get through. On the other hand, the
walls of the corridor should be longer than the length of the robot body. Otherwise,
the robot just takes it as a gate and has no problem to deal with. Figure 23 illustrates
the resulting performance of the Koala robot in such a situation. We can see that the
robot oscillates from side to side. This phenomenon originates from the properties
of the Braitenberg algorithms in that any perturbation in sensory readings changes
the speed of the corresponding motor. Furthermore, during one sampling period the
robot turns to avoid a wall on one side. But in the next period, it has to turn to avoid
the wall on the other side.
Here we suggest the algorithm-switch-mechanism for solving this undesired prob-
lem. One way is to switch the Fuzzy–Braitenberg algorithm to wall-following algo-
rithm when the robot enters the corridor and switch back when it leaves. The resulting
performance of the robot is shown in Figure 24. It can be seen that, when it enters the
corridor, the robot begins to follow the wall which is nearer to the goal position. The
oscillating behavior has been greatly alleviated. However, since the walls may consist
of objects in different color and material, the wall detected by the infrared sensors is
not as consistent as illustrated in Figure 24. The slight perturbations in the path could
come from inconsistent sensory readings.
It is not unusual that there are obstacles scattered in the corridor. In the wall-
following behavior, however, the robot would have no ability to perform the obstacle-
avoidance action. So, we suggest the switch-mechanism between Fuzzy–Braitenberg

2500

GOAL

2000

1500

1000

500

0
0 500 1000 1500 2000 2500

Figure 24 The path of the Koala with Fuzzy–Braitenberg and wall-following algorithms.
122 J Intell Robot Syst (2006) 47: 101–124

2500

GOAL

2000

1500

1000

500

0
0 500 1000 1500 2000 2500

Figure 25 The path of the Koala with Fuzzy–Braitenberg and improved fuzzy algorithms.

algorithm and the improved fuzzy navigation algorithm implemented in [19]. The
algorithm depicted in [19] is a typical fuzzy navigation algorithm and solves a
‘goal-unreachable’ problem found in fuzzy logic-based algorithms for mobile robot
navigation systems. The resulting path is shown in Figure 25. Due to the robustness
of the fuzzy logic-based algorithm, perturbations from inconsistent sensory readings
are suppressed. The performance of the robot in the corridor is smooth as desired.
In addition, it is worth mentioning that the above-mentioned switch-mechanism
has another benefit. Figure 26 illustrates the path of the robot equipped with the
Fuzzy–Braitenberg algorithm navigating in an environment with obstacles randomly
scattered. As can be observed, the robot turns around the goal position and is not able
to reach it. Consider the case where the robot approaches the goal position which is
not in its heading direction. If the distance between the robot and the goal position is
not long enough for the robot to complete the turn and face the goal, the scene shown
in Figure 26 would result. This is because, with the Fuzzy–Braitenberg algorithm, the
robot is not able to achieve zero-radius rotation. So it cannot directly reach a point
to the side within a small distance. The fuzzy algorithm depicted in [19] endows the
robot with an excellent ability to deal with the goal-unreachable problems. Therefore,
switching the Fuzzy–Braitenberg algorithm to the fuzzy navigation algorithm can be
used when the robot finds itself in the vicinity of the goal position. This is illustrated
in Figure 27 showing the improved performance of the robot equipped with the
second switching mechanism. It can be observed that the path resulting from the
Fuzzy–Braitenberg algorithm is always smooth and continuous, which is another
benefit offered by the proposed algorithm.
J Intell Robot Syst (2006) 47: 101–124 123

1800

1600
GO
GOAL

1400

1200

1000

800

600

400

200

0
0 200 400 600 800 1000 1200 1400 1600 1800

Figure 26 The path of the Koala with Fuzzy–Braitenberg algorithm near the goal position.

2000

1800

1600
GOAL

1400

1200

1000

800

600

400

200

0
0 200 400 600 800 1000 1200 1400 1600 1800 2000

Figure 27 The path of the Koala with Fuzzy–Braitenberg and improved fuzzy algorithm near the
goal position.
124 J Intell Robot Syst (2006) 47: 101–124

6. Concluding Remarks

In this paper, we have developed a novel fuzzy navigation algorithm based on the idea
of Braitenberg vehicles, fully taking advantage of the essential characteristics of a
differential drive mobile robot. A new technique was proposed to capture the desired
meaning of the fuzzy term NEAR for individual sensors by taking into account their
distributive angles at the robot. The resulting algorithms have been implemented on
the Koala robot in our laboratory. A series of experiments in static and dynamic
environments have shown the efficiency and effectiveness of the Fuzzy–Braitenberg
navigation algorithm. Some problems for the implemented algorithm were discussed
and effective solutions based on switching between the Fuzzy–Braitenberg algorithm
and another fuzzy algorithm were suggested for alleviating them.

References

1. Yen, J., Pfluger, N.: Path planning and execution using fuzzy logic. AIAA Guidance, Navigation
and Control Conference 3, 1691–1698, New Orleans, Louisiana (Aug. 1991)
2. Reignier, P.: Fuzzy logic techniques for mobile robot obstacle avoidance. Robot. Auton. Syst. 12,
143–153 (1994)
3. Lee, P.S., Wang, L.L.: Collision avoidance by fuzzy logic control for automated guided vehicle
navigation. J. Robot. Syst. 11, 743–760 (1994)
4. Beaufrere, B.: A mobile robot navigation method using a fuzzy logic approach. Robotica 13,
437–448 (1995)
5. Yen, J., Pfluger, N.: A fuzzy logic based extension to Payton and Rosenblatt’s command fusion
method for mobile robot navigation. IEEE Trans. Syst. Man Cybern. 25(6), 971–978 (1995)
6. Saffiotti, A.: The uses of fuzzy logic in autonomous robot navigation. Soft Comput. 1, 180–197
(1997)
7. Montaner, M.B., Serrano, A.R.: Fuzzy knowledge-based controller design for autonomous robot
navigation. Expert Syst. Appl. 14, 179–186 (1998)
8. Maaref, H., Barret, C.: Sensor-based fuzzy navigation of an autonomous mobile robot in an
indoor environment. Control Eng. Pract. 8, 747–768 (2000)
9. Doitsodis, L., Valavanis, K.P., Tsourveloudis, N.C.: Fuzzy logic based autonomous skid steering
vehicle navigation. Proceedings of IEEE Int. Conf. on Robotics and Automation 2, 2171–2177,
Washington, District of Columbia, May 2002
10. Pratihar, D.K., Dep, K., Ghosh, A.: A genetic-fuzzy approach for mobile robot navigation among
moving obstacles. Int. J. Approx. Reason. 20, 145–172 (1999)
11. Tsourveloudis, N.C., Valavanis, K.P., Hebert, T.: Autonomous vehicle navigation utilizing elec-
trostatic potential fields and fuzzy logic. IEEE Trans. Robot. Autom. 17(4), 490–497 (2001)
12. Wang, J.S., Lee, C.S.: Self-adaptive recurrent neural-fuzzy control for an autonomous underwater
vehicle. Proceedings of IEEE Int. Conf. on Robotics and Automation 2, 1095–1100, Washington,
District of Columbia, May 2002
13. Yang, X., Moallem, M., Patel, R.V.: A novel intelligent technique for mobile robot navigation.
Proceedings of IEEE Int. Conference on Control Applications, Istanbul, Turkey, June, 2003
14. Braitenberg, V.: Vehicles: Experiments in Synthetic Psychology. MIT, Cambridge, Massachusetts
(1984)
15. Ratering, S., Gini, M.: Robot navigation in a known environment with unknown obstacles. Auton.
Robots 1, 149–165 (1995)
16. K-Team S.A.: Koala User’s Manual (Version 2.0). K-Team S.A., Lausanne, Switzerland (2001)
17. Koditschek, D.E.: Exact robot navigation by means of potential functions: Some topological
considerations. Proceedings of IEEE Int. Conf. on Robotics and Automation, pp.1–6. Raleigh,
North Carolina, 1987
18. Lee, C.: Fuzzy logic in control systems: Fuzzy logic controller – Part I. IEEE Trans. Syst. Man
Cybern. 20, 404–418 (1990)
19. Yang, X., Moallem, M., Patel, R.V.: An improved fuzzy logic based navigation system for mobile
robots. Proceedings of IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, Las Vegas,
Nevada, Oct. 2003

You might also like