You are on page 1of 6

Simple Obstacle Avoidance Algorithm for Robot Navigation

Ioan Susnea*, Adrian Filipescu*, Grigore Vasiliu*, Adrian Radaschin* *University Dunarea de Jos of Galati, Romania, Faculty of Computer Science Department of Control Engineering, e-mail: isusnea@yahoo.com;vasiliugrigore3@yahoo.com;adrian.filipescu@ugal.ro;radaschinadrian@yahoo.com Abstract: While most current implementations treat the problem of obstacle avoidance as a sub-task of path planning in a purely deliberative approach , replanning the route in real-time, upon detection of an unexpected obstacle can be difficult, especially when the control system is based on low-cost/low power microcontrollers. This paper presents a simple, reactive algorithm, designed to work with low-cost, interchangeable sensors, fast enough to be implemented on embedded microcontrollers.The algorithm defines a sensitivity area around the robot, whose shape and size are dinamically adjusted depending on the kinematic parameters of the robot. When an obstacle is detected within this sensitivity bubble, the robot rebounds, by choosing a new look-ahead point, located in a direction having the least density of obstacles, and continues to move in this direction until it regains visibility to the goal, or a new obstacle is detected.

1. INTRODUCTION Obstacle avoidance is crucial for robot navigation. Therefore a significant number of solutions have been proposed for this problem. Unfortunately, most of these solutions demand a heavy computational load, which makes them difficult, if not impossible, to implement on low cost, microcontroller based, control structures. This paper presents the results of a research aimed to develop a new algorithm for obstacle avoidance relying on low cost ultrasonic or infrared sensors, and involving a reasonable level of calculations, so that it can be easily used in real time control applications with microcontrollers. The approach of the proposed algorithm is entirely reactive only the most recent sensor readings are used for decision, and, in order to overcome the problem of sensor noise, rather than repeating measurements with each sensor, the proposed solution integrates the information from several distinct sensors. Besides this introduction, the structure of the present paper is as follows: Section 2 contains a brief overview of the state of the art in this field. This section is aimed to facilitate the understanding of the proposed algorithm. However, only reactive algorithms, of comparable complexity are presented here. Section 3 contains a description of the proposed solution, and notes on the actual implementation. Section 4 presents the experimental results used for evaluating the algorithm. Section 5 is reserved for conclusions and discussion.
1

2. BRIEF OVERVIEW OF THE STATE OF THE ART 2.1 The Bug Algorithms The simplest obstacle avoidance algorithm ever described is called the bug algorithm (Lumelski ae. al. 1990a). According to it, when an obstacle is encountered, the robot fully circles the object in order to find the point with the shortest distance to the goal, then leaves the boundary of the obstacle from this point (see figure 1).

Fig. 1 Illustration of the Bug algorithm This algorithm is obviously very inefficient, and therefore several improvements have been proposed (Lumelski et. al. 1990b, Kamon et. al, 1996). In the bug2 algorithm (figure 2), the robot starts following the boundary of the obstacle, but leaves it as soon as it intersects the line segment that connects the start point and the goal.

This work was supported by CNCSIS UEFISCSU, project number PNII IDEI ID_641/2007

Fig. 2 Illustration of the Bug2 algorithm

Although their simplicity is a major advantage, the bug-type algorithms have some significant shortcomings: they do not consider the actual kynematics of the robot, which is important with non-holonomic robots, they consider only the most recent sensor readings, and therefore sensor noise seriously affects the overall performance of the robot, they are slow. 2.2 The Potential Field Algorithm While the bug-type algorithms are based on a purely reactive approach, the following algorithms tend to view the obstacle avoidance as a sub-task of the path planning, in a deliberative approach. The potential field algorithm, described in (Khatib, 1985), and (Koren et. al. 1988), assumes that the robot is driven by virtual forces that attract it towards the goal, or reject it away from the obstacles. The actual path is determined by the resultant of these virtual forces (see figure 3)

Fig. 4 The polar histogram used in the VFH algorithm In figure 4, the x-axis represents the angles associated with sonar readings, and the y-axis represents the probability P that there really is an obstacle in that direction. The probabilities are computed by creating a local occupancy grid map of the environment around the robot. The polar histogram is used to identify all the passages large enough to allow the robot to pass-through. The selection of the particular path to be followed by the robot is based on the evaluation of a cost function, defined for each passage. This depends on the alignment of the robots path with the goal, and on the difference between the current wheel orientation and the new direction. The passage with the minimum cost is selected.

Fig. 3 Illustration of the Potential Field Algorithm Despite its elegance, this algorithm still does not solve all the drawbacks of the bug algorithms, performs poorly on narrow passages, and is rather difficult to use in real time applications. 2.3 The Vector Field Histogram (VFH) Algorithm Described for the first time in (Borenstein, 1991), and later improved in (Ulrich 1998, and Ulrich 2000), the Vector Field Histogram, or VFH algorithm overcomes the problem of the sensors noise by creating a polar histogram of several recent sensor readings, like the one depicted in figure 4.

This algorithm offers better robustness to sensor noise, and takes into account the kinematics of the robot, but low-cost sonar rangers are slow, and performing repeated readings on each sensor can take a considerable time. This makes VFH difficult to implement for real-time reactive decisions related to obstacle avoidance. 2.4 The Bubble Band Technique Proposed by Khatib, and Quinlan in (Khatib, 1993), this method defines a bubble containing the maximum available free space around the robot, which can be traveled in any direction without collision. The shape and size of the bubble are determined by a simplified model of the robots geometry, and by the range information provided by the sensors (see figure 5).

Fig. 5 Illustration of the Bubble Band concept

With this concept, a band of such bubbles can be used to plan a path between a starting point and a goal. Obviously, this technique is more a problem of offline path planning than one of obstacle avoidance, but we have included it in this brief presentation, because the idea of a bubble, seen as a subset of free space around the robot has some similarity with the solution proposed in this paper. 2.5 Other Obstacle Avoidance Algorithms There are, of course, several other interesting algorithms for obstacle avoidance. However, relatively few of them are suitable for real-time, embedded applications, and will not be discussed here. Among them, fuzzy logic solutions, like those presented in (Kim, 2006), and (Tsafestas, 2006) can be integrated as a natural extension of the fuzzy path following problem, described in (Susnea et. al., 2008a). 3. DESCRIPTION OF THE PROPOSED SOLUTION 3.1 Detection of Obstacles Consider a vehicle, having a ring of equidistant ultrasonic sensors, covering an angle of 180 degrees, as shown in figure 6.

in figure 6) defined like this is dynamically adjusted, depending on the distance that can be traveled through by the robot, during the time interval delta_t, provided that the bubble does not exceed the range of the sonar sensors (curve A in figure 6). ). Also note, that the readings of the sensors represent the distance between the actual position of the sensor (which is on the boundary of the vehicle) and the obstacle. Therefore, the above definition of the sensitivity bubble indirectly includes information on the geometric shape of the robot. Since the ultrasonic sensors are uniformly distributed, covering an arc of 180 degrees, the sonar readings can be represented in a polar diagram, as shown in figure 7.

Fig. 7 Polar representation of the sonar readings 3.2 Description of the Algorithm

Fig. 6 Robot, ultrasonic sensors, and sensitivity bubble If N is the number of sonar sensors, the following code defines the sensitivity bubble:
unsigned int sonar_readings[N]; unsigned int bubble_boundary[N]; bubble_boundary[i]=Ki*V*delta_t; int check_for_obstacles(void){ for(i=0;i<N;i++) {

if(sonar_readings[i]<=bubble_boundary[i] return(1); else return(0); }

Where, V is the translation velocity of the robot, delta_t is the time interval between successive evaluations of sensor data, and Ki are scaling constants, used for tuning. In our experiment, Ki [0.2 3] . Note that the shape and size of the sensitivity bubble (curve B

Fig. 8 An Illustration of the rebound process

Initially, the robot moves straugth towards the goal. If an obstacle is detected within the sensitivity bubble, the robots rebounds in a direction found as having the lowest density of obstacles, and continues its motion in this new direction until the goal becomes visible (i.e. no obstacle within the visibility range of the sonar in that direction), or until a new obstacle is encountered. Figure 8 presents an illustration of the rebound mechanism. In this image, H is the hit-point the location of the robot at the moment of the detection of an obstacle, and V is the point where the robot regains visibility of the goal. The whole process is summarized in the flowchart presented in figure 9.

where Di is the value reported by the sonar cell i. 4. EXPERIMENTAL RESULTS This experiment is part of a more comprehensive research, aimed to develop cost effective solutions for real time control of mobile robots, based on embedded systems. The experiment was designed to work with the robots Pioneer3-DX and PeopleBot, manufactured by MobileRobots Inc. (Mobilerobots Inc., 2000). During the simulation phase of the experiment, we have used the robot simulator software MobileSim, offered by MobileRobots Inc., derived from the Player/Stage Simulator. Various maps of the environment, with multiple distributions of obstacles were created with the software application Mapper3, also from MobileRobots. The algorithm was also tested using real robots, with satisfactory results. The actual implementation used a low-cost, 8-bit microcontroller, and was written in C. Besides the obstacle avoidance task, the microcontroller was executing additional tasks for fuzzy path following, and communication, as described in (susnea et. al., 2008b). Figure 10 is a snapshot generated with MobileSim, to illustrate the basic obstacle avoidance behavior. Figure 11 shows an example of corridor navigation, and figure 12 shows the trail of the robot while performing a more difficult task, assumming that a higher level global panner, has defined an intermediate goal.

Fig. 9 Flowchart of the Bubble Rebound Algorithm 3.3 Computing the Rebound Angle Considering the fact that the sonar cells are uniformly distributed, at an angular pace:

0 =

(1) contains angular information: (2) Fig. 10 Basic obstacle avoidance with simulated robot

then, the sonar index, i,

i = i 0

N N i , 2 2
where N is the total number of sonar cells.

With these notations, the simplest way to compute the rebound angle is:

D
i

N 2

Fig. 11 An example of corridor navigation (3) Finally, the algorithm was tested with two real robots, namely the models Pioneer3 and PeopleBot of MobileRobots, having the same kynematic model, (see figure 13) in a typical office enviromnent containing a variety of static obstacles, plus human operators moving permanently whithin the visibility range of the sonars.

R =

i =

D
i= N 2

N 2 N 2

It is far from being optimal; Like most purely reactive algorithms, it requires a higher level path planner to perform reasonably well in maze-type environments. For example, in figure 12, the algorithm might fail to conduct the robot from Start to Goal2, unless a planner can define intermediary goal Goal1. The motion is not smooth; Motion is attempted even if there is no path to goal.; Failure is possible even when a valid path to goal exists; It is still vulnerable to sensor noise. This problem is only partly solved with this algorithm because it considers the readings of all sensors when computing the rebound angle.

Fig. 12 An example of navigation in a maze-type environment with intermediary goals

However, there is a common situation, presented in figure 14, when sonar sensors fail to detect large obstacles.

Fig. 13 The robots used for the experiments The control structure used in the experiment was that described in (Susnea et. al. 2008b). The overall performance of the robots in these conditions was satisfactory. Most of the failures recorded were due to cummulative odometric erors. The average speed of the robots during the experiments was 0.4m/s, which is reasonable for example - for an intelligent wheelchair, moving indoors. 5. DISCUSSION Among the advantages of the proposed solution, we notice: It demands very low computational power, and can be implemented on low-cost microcontrollers; It works fine with low-cost sensors It is capable to avoid any kind of static obstacles, and even some moving obstacles, like walking humans; It can be easily adapted for other sensors, like rotating laser rangers. Moreover, sensor substitution can be executed on the fly when multiple sensors are available; It performs well on narrow corridors.

Fig. 14 A common situation when sonar sensors fail Possible solutions to this problem could be: Using a higher density of sensors Using a mix of different types of sensors (ultrason, infrared, lasser) Using a rotating laser ranger.

The bubble rebound algorithm remains compatible with all of the above mentioned solutions. Despite of the obvious drawbacks, the proposed algorithm may still be of interest in applications where the cost criterion is particularly important, and a higher level planner is available. Further work is required to improve the overall smoothness of the motion. This is possible, because at this time, the robot stops and adjusts its heading each time an obstacle is detected. Most of the avoidance maneuvers can actually be executed on the fly, without the need to stop the robot. This is actually an easy task, if the bubble rebound obstacle avoidance is used in conjuction with a pure pursuit algorithm for path following (Morales et. al, 2009). By selecting a

And the major weaknesses of the algorithm are those common for the majority of purely reactive algorithms:

look-ahead point L in a direction defined by the rebound angle, the resulting motion while avoiding the obstacle follows a sequence of arc segments, as depicted in figure 15.

Koren, Y., Borenstein, J (1988), High-speed obstacle avoidance for mobile robotics, in Proceedings of the IEEE Symposium on Intelligent Control, Arlington, VA, August, pp. 382-384. Lumelsky, V., Skewis, T. (1990a), Incorporating range sensing in the robot navigation function. IEEE Transactions on Systems, Man, and Cybernetics, 20, pp. 10581068.. Lumelsky, V., Stepanov, A., (1990b) Path-planning strategies for a point mobile automaton moving amidst unknown obstacles of arbitrary shape, in Autonomous Robot Vehicles. New York, Spinger-Verlag, Morales J., Martinez J.L., Martinez M.A., and Mandow A (2009). Pure-Pursuit Reactive Path Tracking for Nonholonomic Mobile Robots with a 2D Laser Scanner,

EURASIP Journal on Advances n Signal Processing , 2009


Figure 15. A method to improve motion smoothness The experiments with the simulator, and with real robots suggest that such simple algorithms can be used in the implementation of low-cost embedded control devices for intelligent wheelchairs, and other service robots, contributing to a drastic cost reduction of these equipments. This is, in fact, the kind of application we had in mind when developing this algorithm. REFERENCES Borenstein, J., Koren, Y. (1991), The vector field histogram fast obstacle avoidance for mobile robots. IEEE Journal of Robotics and Automation, 7, pp:278 288. Kamon, I., Rivlin, E., Rimon, E. (1996), A new range-sensor based globally convergent navigation algorithm for mobile robots, in Proceedings of the IEEE Susnea I, Vasiliu G, Filipescu A (2008), Real-time, embedded fuzzy control of the Pioneer3-DX robot for th path following, Proceedings of 12 WSEAS International Conference on SYSTEMS, Heraklion, Greece, pp: 334-338, Susnea I . Vasiliu G, Filipescu A, Coman G. (2008b), On the implementation of a robotic assistant for the elderly. A th novel approach, 7 WSEAS Int. Conf. on

Computational, Iintelligence Man-machine Systems and Cybernatics (CIMMACS '08), Cairo,


Egipt, pp: 215-220 Tzafestas S.G. and Zavlangas P. (2006) Industrial and mobile robot collisionfree motion planning using fuzzy logic algorithms, Industrial-Robotics-TheoryModelling-Control, ARS/plV, Germany, pp: 964-995 Ulrich, I., Borenstein, J (1998)., VFH+: Reliable obstacle avoidance for fast mobile robots, in Proceedings of

International Conference on Robotics and Automation, Minneapolis.


Khatib, O., (1985), Real-time obstacle avoidance for manipulators and mobile robots. IEEE International Conference on Robotics and Automation, March 25-28, St. Louis, pp. 500-505.. Khatib, O., Quinlan, S. (1993), Elastic bands: connecting, path planning and control, in Proceedings of IEEE

the International Conference on Robotics and Automation (ICRA98), Leuven, Belgium


Ulrich, I., Borenstein, J. (2000), VFH*: Local obstacle avoidance with look-ahead verification, in

Proceedings of the IEEE International Conference on Robotics and Automation, San Francisco.
Mobilerobots Inc.

International Conference on Robotics and Automation, Atlanta, GA


Kim J.H.,Park J.B., Yang H. (2006) Implementation of the avoidance algorithm for autonomous mobile robots using fuzzy rules in Fuzzy Systems and Knowledge Discovery, Springer Verlag.

(2000) www.mobilerobots.com

You might also like