obstacle avoidance coimbra

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: [email protected];[email protected];[email protected];[email protected] 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 1 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 This work was supported by CNCSIS –UEFISCSU, project number PNII – IDEI ID_641/2007 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. Fig. 2 Illustration of the Bug2 algorithm

Upload: ioan-susnea

Post on 27-Apr-2015

36 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Obstacle Avoidance Coimbra

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 ScienceDepartment of Control Engineering,

e-mail: [email protected];[email protected];[email protected];[email protected]

Abstract: While most current implementations treat the problem of obstacle avoidance as a sub-task ofpath planning in a purely deliberative approach , replanning the route in real-time, upon detection of anunexpected obstacle can be difficult, especially when the control system is based on low-cost/low powermicrocontrollers. This paper presents a simple, reactive algorithm, designed to work with low-cost,interchangeable sensors, fast enough to be implemented on embedded microcontrollers.The algorithmdefines a sensitivity area around the robot, whose shape and size are dinamically adjusted depending onthe kinematic parameters of the robot. When an obstacle is detected within this “sensitivity bubble”, therobot “rebounds”, by choosing a new look-ahead point, located in a direction having the least density ofobstacles, and continues to move in this direction until it regains visibility to the goal, or a new obstacle isdetected.

1. INTRODUCTION

1Obstacle avoidance is crucial for robot navigation. Thereforea significant number of solutions have been proposed for thisproblem. Unfortunately, most of these solutions demand aheavy computational load, which makes them difficult, if notimpossible, to implement on low cost, microcontroller based,control structures.

This paper presents the results of a research aimed to developa new algorithm for obstacle avoidance relying on low costultrasonic or infrared sensors, and involving a reasonablelevel of calculations, so that it can be easily used in real timecontrol 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, ratherthan repeating measurements with each sensor, the proposedsolution integrates the information from several distinctsensors.

Besides this introduction, the structure of the present paper isas follows:

Section 2 contains a brief overview of the state of the art inthis field. This section is aimed to facilitate the understandingof the proposed algorithm. However, only reactivealgorithms, of comparable complexity are presented here.

Section 3 contains a description of the proposed solution, andnotes on the actual implementation. Section 4 presents theexperimental results used for evaluating the algorithm.Section 5 is reserved for conclusions and discussion.

1 This work was supported by CNCSIS –UEFISCSU, projectnumber PNII – IDEI ID_641/2007

2. BRIEF OVERVIEW OF THE STATE OF THE ART

2.1 The Bug Algorithms

The simplest obstacle avoidance algorithm ever described iscalled “the bug algorithm” (Lumelski ae. al. 1990a).According to it, when an obstacle is encountered, the robotfully circles the object in order to find the point with theshortest distance to the goal, then leaves the boundary of theobstacle from this point (see figure 1).

Fig. 1 Illustration of the Bug algorithm

This algorithm is obviously very inefficient, and thereforeseveral improvements have been proposed (Lumelski et. al.1990b, Kamon et. al, 1996). In the ‘bug2” algorithm (figure2), the robot starts following the boundary of the obstacle, butleaves it as soon as it intersects the line segment that connectsthe start point and the goal.

Fig. 2 Illustration of the Bug2 algorithm

Page 2: Obstacle Avoidance Coimbra

Although their simplicity is a major advantage, the bug-typealgorithms 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, andtherefore sensor noise seriously affects the overallperformance of the robot,

� they are slow.

2.2 The Potential Field Algorithm

While the bug-type algorithms are based on a purely reactiveapproach, the following algorithms tend to view the obstacleavoidance as a sub-task of the path planning, in a deliberativeapproach.

The potential field algorithm, described in (Khatib, 1985),and (Koren et. al. 1988), assumes that the robot is driven byvirtual forces that attract it towards the goal, or reject it awayfrom the obstacles. The actual path is determined by theresultant of these virtual forces (see figure 3)

Fig. 3 Illustration of the Potential Field Algorithm

Despite its elegance, this algorithm still does not solve all thedrawbacks of the bug algorithms, performs poorly on narrowpassages, and is rather difficult to use in real timeapplications.

2.3 The Vector Field Histogram (VFH) Algorithm

Described for the first time in (Borenstein, 1991), and laterimproved in (Ulrich 1998, and Ulrich 2000), the Vector FieldHistogram, or VFH algorithm overcomes the problem of thesensors noise by creating a polar histogram of several recentsensor readings, like the one depicted in figure 4.

Fig. 4 The polar histogram used in the VFH algorithm

In figure 4, the x-axis represents the angles associated withsonar readings, and the y-axis represents the probability Pthat there really is an obstacle in that direction.

The probabilities are computed by creating a local occupancygrid map of the environment around the robot.

The polar histogram is used to identify all the passages largeenough to allow the robot to pass-through. The selection ofthe particular path to be followed by the robot is based on theevaluation of a cost function, defined for each passage. Thisdepends on the alignment of the robot’s path with the goal,and on the difference between the current wheel orientationand the new direction. The passage with the minimum cost isselected.

This algorithm offers better robustness to sensor noise, andtakes into account the kinematics of the robot, but low-costsonar rangers are slow, and performing repeated readings oneach sensor can take a considerable time. This makes VFHdifficult to implement for real-time reactive decisions relatedto obstacle avoidance.

2.4 The Bubble Band Technique

Proposed by Khatib, and Quinlan in (Khatib, 1993), thismethod defines a “bubble” containing the maximum availablefree space around the robot, which can be traveled in anydirection without collision. The shape and size of the bubbleare determined by a simplified model of the robot’sgeometry, and by the range information provided by thesensors (see figure 5).

Fig. 5 Illustration of the Bubble Band concept

Page 3: Obstacle Avoidance Coimbra

With this concept, a band of such bubbles can be used to plana path between a starting point and a goal. Obviously, thistechnique is more a problem of offline path planning than oneof obstacle avoidance, but we have included it in this briefpresentation, because the idea of a bubble, seen as a subset offree space around the robot has some similarity with thesolution proposed in this paper.

2.5 Other Obstacle Avoidance Algorithms

There are, of course, several other interesting algorithms forobstacle avoidance. However, relatively few of them aresuitable for real-time, embedded applications, and will not bediscussed here. Among them, fuzzy logic solutions, like thosepresented in (Kim, 2006), and (Tsafestas, 2006) can beintegrated as a natural extension of the fuzzy path followingproblem, 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 ultrasonicsensors, covering an angle of 180 degrees, as shown in figure6.

Fig. 6 Robot, ultrasonic sensors, and sensitivity bubble

If N is the number of sonar sensors, the following codedefines 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 thetime interval between successive evaluations of sensor data,and Ki are scaling constants, used for tuning. In our

experiment, ]32.0[ −∈Ki .

Note that the shape and size of the sensitivity bubble (curve B

in figure 6) defined like this is dynamically adjusted,depending on the distance that can be traveled through by therobot, during the time interval delta_t, provided that thebubble does not exceed the range of the sonar sensors (curveA in figure 6). ). Also note, that the readings of the sensorsrepresent the distance between the actual position of thesensor (which is on the boundary of the vehicle) and theobstacle. Therefore, the above definition of the sensitivitybubble indirectly includes information on the geometricshape of the robot.

Since the ultrasonic sensors are uniformly distributed,covering an arc of 180 degrees, the sonar readings can berepresented in a polar diagram, as shown in figure 7.

Fig. 7 Polar representation of the sonar readings

3.2 Description of the Algorithm

Fig. 8 An Illustration of the rebound process

Page 4: Obstacle Avoidance Coimbra

Initially, the robot moves straugth towards the goal. If anobstacle is detected within the sensitivity bubble, the robots“rebounds” in a direction found as having the lowest densityof obstacles, and continues its motion in this new directionuntil the goal becomes visible (i.e. no obstacle within thevisibility range of the sonar in that direction), or until a newobstacle is encountered.

Figure 8 presents an illustration of the rebound mechanism.In this image, H is the “hit-point” – the location of the robotat the moment of the detection of an obstacle, and V is thepoint where the robot regains visibility of the goal. The wholeprocess is summarized in the flowchart presented in figure 9.

Fig. 9 Flowchart of the Bubble Rebound Algorithm

3.3 Computing the Rebound Angle

Considering the fact that the sonar cells are uniformlydistributed, at an angular pace:

N

πα =0 (1)

then, the sonar index, i, contains angular information:

−∈

=

2,

2

0

NNi

ii αα(2)

where N is the total number of sonar cells.

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

−=

−==

2

2

2

2N

Ni

i

N

Ni

ii

R

D

α (3)

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 controlof mobile robots, based on embedded systems.

The experiment was designed to work with the robotsPioneer3-DX and PeopleBot, manufactured by MobileRobotsInc. (Mobilerobots Inc., 2000). During the simulation phaseof the experiment, we have used the robot simulator softwareMobileSim, offered by MobileRobots Inc., derived from thePlayer/Stage Simulator.

Various maps of the environment, with multiple distributionsof obstacles were created with the software applicationMapper3, also from MobileRobots.

The algorithm was also tested using real robots, withsatisfactory results.

The actual implementation used a low-cost, 8-bitmicrocontroller, and was written in C. Besides the obstacleavoidance task, the microcontroller was executing additionaltasks for fuzzy path following, and communication, asdescribed in (susnea et. al., 2008b).

Figure 10 is a snapshot generated with MobileSim, toillustrate the basic obstacle avoidance behavior. Figure 11shows an example of corridor navigation, and figure 12shows the trail of the robot while performing a more difficulttask, assumming that a higher level global panner, hasdefined an intermediate goal.

Fig. 10 Basic obstacle avoidance with simulated robot

Fig. 11 An example of corridor navigation

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 typicaloffice enviromnent containing a variety of static obstacles,plus human operators moving permanently whithin thevisibility range of the sonars.

Page 5: Obstacle Avoidance Coimbra

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

Fig. 13 The robots used for the experiments

The control structure used in the experiment was thatdescribed in (Susnea et. al. 2008b). The overall performanceof the robots in these conditions was satisfactory. Most ofthe failures recorded were due to cummulative odometricerors.

The average speed of the robots during the experiments was0.4m/s, which is reasonable for example - for an intelligentwheelchair, moving indoors.

5. DISCUSSION

Among the advantages of the proposed solution, we notice:

• It demands very low computational power, and canbe 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 walkinghumans;

• It can be easily adapted for other sensors, likerotating laser rangers. Moreover, sensor substitutioncan be executed “on the fly” when multiple sensorsare available;

• It performs well on narrow corridors.

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

• It is far from being optimal;

• Like most purely reactive algorithms, it requires ahigher level path planner to perform reasonably wellin maze-type environments. For example, in figure12, the algorithm might fail to conduct the robotfrom Start to Goal2, unless a planner can defineintermediary 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 goalexists;

• It is still vulnerable to sensor noise. This problem isonly partly solved with this algorithm because itconsiders the readings of all sensors whencomputing the rebound angle.

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

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 ofthe above mentioned solutions.

Despite of the obvious drawbacks, the proposed algorithmmay still be of interest in applications where the cost criterionis particularly important, and a higher level planner isavailable.

Further work is required to improve the overall smoothnessof the motion. This is possible, because at this time, the robotstops and adjusts its heading each time an obstacle isdetected. Most of the avoidance maneuvers can actually beexecuted on the fly, without the need to stop the robot.

This is actually an easy task, if the bubble rebound obstacleavoidance is used in conjuction with a pure pursuit algorithmfor path following (Morales et. al, 2009). By selecting a

Page 6: Obstacle Avoidance Coimbra

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

Figure 15. A method to improve motion smoothness

The experiments with the simulator, and with real robotssuggest that such simple algorithms can be used in theimplementation of low-cost embedded control devices forintelligent wheelchairs, and other service robots, contributingto a drastic cost reduction of these equipments. This is, infact, the kind of application we had in mind when developingthis algorithm.

REFERENCES

Borenstein, J., Koren, Y. (1991), The vector field histogram –fast obstacle avoidance for mobile robots. IEEEJournal of Robotics and Automation, 7, pp:278–288.

Kamon, I., Rivlin, E., Rimon, E. (1996), A new range-sensorbased globally convergent navigation algorithm formobile robots, in Proceedings of the IEEEInternational Conference on Robotics andAutomation, Minneapolis.

Khatib, O., (1985), Real-time obstacle avoidance formanipulators and mobile robots. IEEE InternationalConference on Robotics and Automation, March25-28, St. Louis, pp. 500-505..

Khatib, O., Quinlan, S. (1993), Elastic bands: connecting,path planning and control, in Proceedings of IEEEInternational Conference on Robotics andAutomation, Atlanta, GA

Kim J.H.,Park J.B., Yang H. (2006) Implementation of theavoidance algorithm for autonomous mobile robots usingfuzzy rules in Fuzzy Systems and KnowledgeDiscovery, Springer Verlag.

Koren, Y., Borenstein, J (1988), High-speed obstacleavoidance for mobile robotics, in Proceedings of theIEEE Symposium on Intelligent Control,Arlington, VA, August, pp. 382-384.

Lumelsky, V., Skewis, T. (1990a), Incorporating rangesensing in the robot navigation function. IEEETransactions on Systems, Man, and Cybernetics,20, pp. 1058–1068..

Lumelsky, V., Stepanov, A., (1990b) Path-planning strategiesfor a point mobile automaton moving amidst unknownobstacles of arbitrary shape, in Autonomous RobotVehicles. New York, Spinger-Verlag,

Morales J., Martinez J.L., Martinez M.A., and Mandow A(2009). Pure-Pursuit Reactive Path Tracking forNonholonomic Mobile Robots with a 2D Laser Scanner,EURASIP Journal on Advances în SignalProcessing , 2009

Susnea I, Vasiliu G, Filipescu A (2008), Real-time,embedded fuzzy control of the Pioneer3-DX robot forpath following, Proceedings of 12th WSEASInternational Conference on SYSTEMS,Heraklion, Greece, pp: 334-338,

Susnea I . Vasiliu G, Filipescu A, Coman G. (2008b), On theimplementation of a robotic assistant for the elderly. Anovel approach, 7th WSEAS Int. Conf. onComputational, Iintelligence Man-machineSystems and Cybernatics (CIMMACS '08), Cairo,Egipt, pp: 215-220

Tzafestas S.G. and Zavlangas P. (2006) Industrial and mobilerobot collision–free motion planning using fuzzy logicalgorithms, Industrial-Robotics-Theory-Modelling-Control, ARS/plV, Germany, pp: 964-995

Ulrich, I., Borenstein, J (1998)., VFH+: Reliable obstacleavoidance for fast mobile robots, in Proceedings ofthe International Conference on Robotics andAutomation (ICRA’98), Leuven, Belgium

Ulrich, I., Borenstein, J. (2000), VFH*: Local obstacleavoidance with look-ahead verification, inProceedings of the IEEE InternationalConference on Robotics and Automation, SanFrancisco.

Mobilerobots Inc. (2000) www.mobilerobots.com