11.07.2015 Views

Navigation for an Intelligent Mobile Robot - IEEE Xplore

Navigation for an Intelligent Mobile Robot - IEEE Xplore

Navigation for an Intelligent Mobile Robot - IEEE Xplore

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CROWLEY: NAVIGATION FOR AN INTELLIGENT ROBOT 33a sequence of points that are adjacent to the exp<strong>an</strong>dedobstacles. If there is position error in the control of the pathexecution, such points c<strong>an</strong> possibly result in a collision.Brooks has recently proposed a new approach to the find-pathproblem based on modeling free space [2]. Brooks’ solution,developed in a two-dimensional pl<strong>an</strong>e, involved fitting twodimensional“generalized cylinders” to the space betweenobstacles to obtain pathways in which the object may freelytravel on a pl<strong>an</strong>e. The technique was extended to the thirddimension by stacking pl<strong>an</strong>es.B. The St<strong>an</strong><strong>for</strong>d Cart <strong>an</strong>d the C-MU RoverMoravec [8] developed a navigation system based onsensory signals using the St<strong>an</strong><strong>for</strong>d cart. This cart sensed itsenvironment using a set of nine stereo images obtained from asliding camera. A set of c<strong>an</strong>didate points were obtained in eachimage with <strong>an</strong> “interest” operator. Small local correlationswere then made at multiple resolutions to arrive at a depthestimate <strong>for</strong> the points. The matched points were plotted on atwo-dimensional grid <strong>an</strong>d then exp<strong>an</strong>ded to a circle. A bestFig. 2. Framework <strong>for</strong> intelligent navigation system.path from the current location to a goal was then chosen as theshortest sequence of line segments which were t<strong>an</strong>gent to theIII. THE COMPUTATIONAL FRAMEWORKcircles. The cart would adv<strong>an</strong>ce by 3 ft <strong>an</strong>d then repeat thesensing <strong>an</strong>d pl<strong>an</strong>ning process. Stereo matching was also A. The Composite Local Modelper<strong>for</strong>med between the images taken at different steps to The navigation system of the IMP is based on theobtain confirming <strong>an</strong>d additional depth in<strong>for</strong>mation. A new computational framework shown in Fig. 2. At the core of thisvehicle, called the C-MU Rover [9], has recently been framework is a dynamic model of the surface <strong>an</strong>d obstacles inconstructed by Moravec to support these techniques. the immediate environment of the IMP called the compositelocal model. “Local” refers to the fact that only in<strong>for</strong>mationC. Hilarein the local environment of the IMP is represented. “Composite”refers to the fact that this model is composed ofA team under the direction of George Giralt at the LAASlaboratory in Toulouse has been investigating the design <strong>an</strong>dcontrol of mobile robots since 1977. They have developed ain<strong>for</strong>mation obtained over time from multiple sensors <strong>an</strong>dmobile robot named Hilare. Chatila developed a navigationsystem <strong>for</strong> Hilare that is based on dividing a pre-learned floorpl<strong>an</strong> into convex regions [3]. Convex regions were <strong>for</strong>med byconnecting nearest vertices to <strong>for</strong>m areas called C-Cells.Laumond, at the LAAS in Toulouse, extended this idea bydeveloping hierarchies of C-Cells to represent rooms <strong>an</strong>d partsof a known domain [6].D. CommentMotion Comm<strong>an</strong>dsfrom m<strong>an</strong>y views.The composite local model plays two fundamental roles inthis computational framework.1) It is the structure in which potentially conflictingin<strong>for</strong>mation from diverse sensors is integrated withrecently observed in<strong>for</strong>mation <strong>an</strong>d in<strong>for</strong>mation recalledfrom long term storage (the Global Model).2) It is the structure on which processes <strong>for</strong> local pathpl<strong>an</strong>ning, path execution, learning, object tracking,object recognition, <strong>an</strong>d other “higher level” processesare based.A few other ef<strong>for</strong>ts towards developing autonomous mobile Because of the nature of the navigation task <strong>an</strong>d the sensorsrobots have also been reported. In m<strong>an</strong>y cases the ef<strong>for</strong>ts focus that are employed, the composite local model in the IMP ison engineering problems <strong>an</strong>d pay little attention to the issues of implemented with a relatively simple 2-D representation. Theworld modeling or path pl<strong>an</strong>ning [lo]. Other groups have IMP models the world <strong>an</strong>d pl<strong>an</strong>s paths in a 2-D “flat-l<strong>an</strong>d’’become bogged down on the vision problem, often spending universe. Because the rotating r<strong>an</strong>ge sensor is mounted at atheir ef<strong>for</strong>ts on general solutions to the problems of low level height of 30 in, the robot is able to detect <strong>an</strong>d represent most ofvision. We believe that the most import<strong>an</strong>t problems to be the furniture that it encounters. Surfaces<strong>an</strong>dobstacles areaddressed now are sensor interpretation, navigation, <strong>an</strong>dsystem org<strong>an</strong>ization. Toward this end, we have developed arepresented as connected sequences of line segments. Thus atable <strong>an</strong>d a wall have the same structure; both appear as acomputational paradigm <strong>for</strong> intelligent robotic systems. Thiscomputational paradigm provides a framework <strong>for</strong> the procbarrierwith <strong>an</strong>dimension.infinite (or unknown) extent in verticalesses involved in sensor interpretation, path pl<strong>an</strong>ning, <strong>an</strong>d The composite local model must include the ability topath execution.represent the uncertainty of in<strong>for</strong>mation. In this system,


34 <strong>IEEE</strong> JOURNAL OF ROBOTICS AND AUTOMATION, VOL. RA-1, NO. 1, MARCH 1985confidence is represented by a set of states. The line segmentswhich compose the composite local model include a “state”attribute which represents the degree of confidence. Consistentline segments are rein<strong>for</strong>ced <strong>an</strong>d extended while inconsistentline segments are decayed <strong>an</strong>d eventually removed fromthe model. Representing uncertainty with states permits easyimplementation of arbitrary rules <strong>for</strong> rein<strong>for</strong>cement <strong>an</strong>d decay.B. The Sensor ModelsSensors typically produce large amounts of in<strong>for</strong>mation.Be<strong>for</strong>e the in<strong>for</strong>mation from a sensor c<strong>an</strong> be integrated into thecomposite local model, surface in<strong>for</strong>mation must be abstractedfrom it. The sensor model may be viewed as a <strong>for</strong>m of logicalsensor which provides the sensor in<strong>for</strong>mation in a st<strong>an</strong>dard<strong>for</strong>m which may be integrated into the composite localmodel.In the first version of the IMP, the sensors are a set ofcontact sensors on a skirt <strong>an</strong>d the rotating sonar sensor. In eachcase, the sensor model is <strong>an</strong> abstract description expressed asline segments which represent surfaces in the real world.C. Match <strong>an</strong>d UpdateThe module labeled “match” determines the correspondencebetween the line segments which compose the sensormodel <strong>an</strong>d the line segments which compose the compositelocal model. The correspondence is then used to determineerrors in the estimated position <strong>an</strong>d to update the position,length, <strong>an</strong>d confidence of the segments in the composite localmodel. Special procedures also exist <strong>for</strong> detecting <strong>an</strong>d trackingmoving objects.The module labeled “update” integrates the in<strong>for</strong>mationfrom the sensor models with the current composite localmodel. This module adjusts the position, size, connectivity,<strong>an</strong>d confidence of the segments in the composite local model toreflect the results of correspondence matching. This updateprocess also removes segments <strong>for</strong> which the confidence islow or <strong>for</strong> which the dist<strong>an</strong>ce is too far. The process does notremove nearby surfaces which are not currently visible.IV. CONSTRUCTING AN ABSTRACT DESCIUPTIQNOF RANGE DATADepth readings from the rotating sonar are converted intoline segments by a sequence of four steps.Project the reading to a Cartesi<strong>an</strong> world coordinatesystem.Segment measured points into line segments by detecting“discontinuities” <strong>an</strong>d then applying a recursive linefitting process.Compute the line equations of the points from the mostreliable interior points.Recompute the segment endpoints as the intersectionpoints with neighboring line segments.These processes are described below.A. Projection to Cartesi<strong>an</strong> World CoordinatesDepth readings are obtained from the rotating sonar incylindrical coordinates, i.e., as depth at a particular <strong>an</strong>gle. Aseach depth reading is made, the current estimated position <strong>an</strong>dorientation of the IMP is affixed to it. This permits the system0 <strong>Robot</strong>Fig. 3. Edges of sonar beam are projectedSonar BeamsSurf aceto world coordinates.to project the reading into a world coordinate system at a latertime, even if the data were taken while the IMP was moving.As a consequence of the detection mech<strong>an</strong>ism in the sonar,the depth reading refers to the depth to the nearest reflectingsurface <strong>an</strong>ywhere in the sonar beam’s circular footprint. Whenthe beam reflects from a flat surface at a non-perpendicular<strong>an</strong>gle, the sonar returns the dist<strong>an</strong>ce along the short edge of thebeam. Knowledge of this physical process is used in interpretingthe sonar depth readings.As each sonar reading is obtained, it is converted fromrobot-centered polar coordinates to a world-centered Cartesi<strong>an</strong>coordinate system. This is done by projecting a line by thespecified depth at the specified <strong>an</strong>gle, as illustrated in Fig. 3. Ifthe readings are decreasing as the sonar rotates in a counterclockwiseturn, the <strong>an</strong>gle is adjusted to be the left edge of thebeam by adding the estimated half <strong>an</strong>gle of the sonar beam. Ifthe depth is increasing, the <strong>an</strong>gle is adjusted to the right bysubtracting the estimated half <strong>an</strong>gle. The difference in depthbetween the adjacent readings to the right <strong>an</strong>d to the left iscomputed <strong>an</strong>d affixedmeasure.to the projected beam as a qualityB. Segmenting the Points Into Line SegmentsThe points are first grouped into a sequence of roughly colinearreadings such that the dist<strong>an</strong>ce between each adjacentpair of points is less th<strong>an</strong> a toler<strong>an</strong>ce. This toler<strong>an</strong>ce is selectedas a compromise between the maximum dist<strong>an</strong>ce at which thedepth readings c<strong>an</strong> be taken <strong>an</strong>d the smallest gap betweenobjects that the system c<strong>an</strong> detect. For a difference inorientation of a degrees per reading, the minimum dist<strong>an</strong>cegap size Gmin is determined by the desired maximum r<strong>an</strong>ge Rby considering the difference of beam edges <strong>for</strong> a perpendicularsurface. Such a geometry gives the relationshipG ~ > R n T<strong>an</strong>@)In our system, cy = 3” <strong>an</strong>d R = 25.6 ft, giving Gmin of 1.34ft. We have found a value of Gmin of 1.5 ft to be satisfactory.Thus, the points are sc<strong>an</strong>ned to detect <strong>an</strong>y points where thedist<strong>an</strong>ce between adjacent readings is greater th<strong>an</strong> 6~n. Suchpoints are called break points or discontinuity points. Breakpoints mark the boundaries of collections of points that arepassed to a recursive line fitting procedure.Recursive line fitting has been used <strong>for</strong> years to fit lines toedge points in images [5]. The algorithm is illustrated in Fig.4. A line equation of the <strong>for</strong>mAx+By+C=Ois computed between the two endpoints inthe collection of


CROWLEY: NAVIGATION FOR AN INTELLIGENT ROBOT 37The correspondence types are used to extend thecomposite local model segment during the update process.4) Is the segment LM the longest found so far?The correspondence function provides both the index of thecorresponding segment <strong>an</strong>d the type of correspondence.D. The Update Process-- Local Model SegmentSensor Model SegmentThe update process is the mech<strong>an</strong>ism by which linesegments from the sensor model, global model, <strong>an</strong>d contact Fig. 7. Orientation error given by average difference in <strong>an</strong>gle betweensensor enter <strong>an</strong>d refine the composite local model. During sensor model segments <strong>an</strong>d corresponding local model segments.each sonar sc<strong>an</strong>, segments from the sensor model are matchedto the current composite local model, <strong>an</strong>d the result of F. Updating the Vertex Positions <strong>an</strong>d Segment StatesThe main functions of the update process are as follows.1) Increase the confidence state of tr<strong>an</strong>sient segments <strong>for</strong>which there is a corresponding segment in the sensormodel.2) Decay the confidence of segments that should be visible,but <strong>for</strong> which there is not a corresponding segment the inmost recent sensor model.3) Add newly observed sensor model segments <strong>an</strong>d segmentsrecalled from the global model to the compositelocal model.4) Refine the vertex position of segments which are“rein<strong>for</strong>ced” by the sensor model.E. Marking the Visible Segments in the Composite LocalModelSegments in the composite local model <strong>for</strong> which there is nocorrespondence are only modified under two conditions.The segment was marked as visible during constructionof the sonar model.The nearest point on the line segment is more th<strong>an</strong> a givendist<strong>an</strong>ce from the IMP’s current position.The second condition is a simple mech<strong>an</strong>ism by whichsegments “fall off the end of the world” as the IMP movesaway from them. The actual dist<strong>an</strong>ce is relatively unimport<strong>an</strong>tas long as it is beyond the sonar r<strong>an</strong>ge <strong>an</strong>d the current area oflocal navigation. Of course, the larger this dist<strong>an</strong>ce, the more“extra” segments the system has to consider on eachcalculation.The first condition establishes a “visible horizon” <strong>for</strong> theIMP. As each point is added to the Sensor Model, the functionVISIBLE is called, <strong>for</strong> a point at the direction of the beam <strong>an</strong>d ther<strong>an</strong>ge of the sonar, to determine which segment in thecomposite local model should be visible. If a segment is found,the difference in <strong>an</strong>gle between the beam <strong>an</strong>d that segment iscomputed. If this difference in <strong>an</strong>gle is not small ( c 15 ”) thenthat composite local model segment is marked as visible.Segments <strong>for</strong> which the <strong>an</strong>gle of incidence of the sonar beam isvery small are not detected reliably by the sonar <strong>an</strong>d are thusnot marked as visible.Unconnected vertices should be extended when there is acorrespondence of types 1, 2, or 3.The position of connected vertices has precedence overthe position of <strong>an</strong> unconnected vertex.A segment is more stable when both its vertices areconnected.The actual rules <strong>for</strong> state updates are implemented as casestatements based on the current state <strong>an</strong>d then ’on thecorrespondence type.After the vertex positions <strong>an</strong>d states of the segments in thecomposite local model have been updated, segments from thesensor model <strong>for</strong> which there was no correspondence in thecomposite local model are added to the composite local modelin the lowest confidence state (state 1). A relabeling process isthen used to connect adjacent segments <strong>for</strong> which the verticesare very close.VI. CORRECTING THE ESTIMATED POSITIONLocal path execution <strong>an</strong>d learning <strong>an</strong>d updating the compositelocal model all depend critically on maintaining <strong>an</strong> accurateestimate of the IMP’s current position. An inst<strong>an</strong>t<strong>an</strong>eousestimate of the IMP’s position is maintained from the rotaryposition encoders on the IMP’s wheels. This estimatedposition is monitored <strong>an</strong>d corrected by a process based oncomparing the sensor model to the composite local model.Be<strong>for</strong>e the composite local model is updated from the sensormodel, the correspondence between the sensor model <strong>an</strong>d thecomposite local model is used to detect <strong>an</strong>d correct <strong>an</strong>ysystematic error in the estimated position of the IMP.As each sensor model line segment is obtained, thecorrespondence is found to the most likely line segment in thecomposite local model. The difference in <strong>an</strong>gle between thesesegments is then computed. When a sensor model has beenconstructed from a complete sc<strong>an</strong> of the rotating depth sensor,the average error in <strong>an</strong>gle is computed. This average error iscomputed from the difference in orientation between SensorModel segments <strong>an</strong>d the corresponding composite local modelsegments, as illustrated by Fig. 7. The sensor model is thenrotated around the position of the IMP by this average error in


38 <strong>IEEE</strong> JOURNAL OF ROBOTICS AND AUTOMATION, VOL. RA-1, NO. 1, MARCH 1985- Local Model Segment-;1.1\Sensor Model SegmentFig. 8. Position error given by average difference in position betweenconnected vertices in sensor model <strong>an</strong>d corresponding connected verticesin the local model.<strong>an</strong>gle, as illustrated by Fig. 8, <strong>an</strong>d the average error issubtracted from the estimated orientation.Next, the average error in position is computed bycomputing the average x <strong>an</strong>d y errors between connectedvertices in the rotated sensor model<strong>an</strong>d the correspondingvertices in the composite local model. This average error inposition is then subtracted from the estimated position<strong>an</strong>dfrom the position of the line segments in the sensor model. Thesegments in the composite local model are then updated toinclude the results of matching to the sensor model.VU. GLOBAL PATH PLANNING AND NAVIGATIONGlobal path pl<strong>an</strong>ning is based on the network of places,whereas local path pl<strong>an</strong>ning <strong>an</strong>d execution are based on thein<strong>for</strong>mationin the composite local model. The global pathpl<strong>an</strong>ning process uses the network of places to determine theshortest sequence of straight line paths that will take the IMPto a specified goal point. Global paths are pl<strong>an</strong>ned based on <strong>an</strong>etwork of “Adit” points which are connected by straight linepaths. The path is then executed as a sequence of straight linemovements.A. <strong>Navigation</strong> ModesThere are three modes in which the IMP may travel.Learn Mode: Limited exploratory movements in <strong>an</strong> unfamiliarenvironment, with the purpose of learning the environment.M<strong>an</strong>ual Mode: User specified motion executed by localnavigation.Automatic Mode: Autonomous movement to a namedgoal point in response to a comm<strong>an</strong>d of the <strong>for</strong>m “go to(place)’’.Learn mode permits the IMP to learn the global model fromwhich it constructs the network of places. Automatic mode isdesigned to permit the IMP to execute navigation tasks in thelearned environment. M<strong>an</strong>ual mode is default a mode in whichthe IMP may travel to a visible point using only local straightline navigation.B. The Network of Places <strong>an</strong>d the Global ModelThe learned domain of the IMP is represented in two relateddata structures: the “global model” <strong>an</strong>d the “network ofplaces.” The global model is the collection of line segmentsobserved by the composite local model while making a tour ofiniFig. 9. Global model produced <strong>for</strong> typical floor pl<strong>an</strong> used in simulator.tiIFig. 10. Network of placescomposed of adits<strong>an</strong>dlegalhighways.Aditsshown as boxes.the house in learn mode. The global model permits the IMP torecall the surfaces that it should observe at <strong>an</strong>y location in theknown world. An example of a global model constructed bythe automatic learning processrunningon the simulator isshown in Fig. 9. The network of places is the structure whichserves as a basis <strong>for</strong> global path pl<strong>an</strong>ning. The network ofplaces is obtained by dividing the free space in the globalmodel into convex regions. A convex region has the propertythat <strong>an</strong>y two points within the region may be connected by astraight line that remains entirely within the region. Thus amobile robot may travel between <strong>an</strong>y two points within aconvex region by a single straight line motion. An example ofthe convex regions <strong>for</strong> the global model shown in Fig. 9 isshown in Fig. 10.Convex regions are constructed with <strong>an</strong> algorithm which isdesigned to maximize the area of the largest convex region [4].A pair of navigation l<strong>an</strong>dmarks, called “adits” (<strong>an</strong> adit is theopposite of <strong>an</strong> exit), are created <strong>for</strong> each cut that is made topartition free space to create the convex regions. The adits aredisplaced to the sides of the cut so that the robot will passthrough the cut at a roughly perpendicular <strong>an</strong>gle. This protectsthe robot from grazing the edges of door ways <strong>an</strong>d tightspaces.Convex regions are shrunk by the diameter of the robot to


CROWLEY: NAVIGATION FOR AN INTELLIGENT ROBOT 39represent the free space in which the robot may travel. Thespace inside a doorway after shrinking <strong>for</strong>ms a special regioncalled a “doorway region.” Doorway regions are not guar<strong>an</strong>teedto be convex. Each adit is connected to the adit on theother side of the doorway <strong>an</strong>d to all other adits within itsconvex region, as shown in Fig. 10. In this figure, the adits tothe convex regions are illustrated with boxes.The network of places is a three level structure. At the toplevel are a list of user-defined “named places.” At the middleis a list of convex regions. Each named place points to aconvex region, <strong>an</strong>d each convex region contains a list ofnamed places. Each convex region also contains a list of adits.The adits serve as l<strong>an</strong>dmarks to global path pl<strong>an</strong>ning <strong>an</strong>dexecution. The convex regions serve as “legal highways” <strong>for</strong>pl<strong>an</strong>ning paths to <strong>an</strong>y named place.C. Global Path Pl<strong>an</strong>ningA global path is pl<strong>an</strong>ned as a sequence of adits which willtake the robot from its current convex region to the convexregion which contains a specified goal point. A comm<strong>an</strong>d ofthe <strong>for</strong>m “go to (place)” provides a pointer to a convex regionthat in turn provides a list of possible goal adits. The aditclosest to the named place is chosen as a goal <strong>for</strong> pathpl<strong>an</strong>ning. Knowledge of the current convex region gives a listof adits from which to start the path. The nearest adit isselected as a starting adit. The shortest path through thenetwork of adits is determined using a version of Dijkstra’salgorithm [ 11 which halts when a path to the desired goal placehas been found. If the start (or the end) of this path leadsthrough two adits in the same region, the first (or last) adit isdropped from the path. Global path execution is then reducedto a three step process in which the IMP 1) moves to the firstadit in the path, 2) moves from each adit on the path to thenext, <strong>an</strong>d 3) then moves from the last adit to the goal place.VIII. .LOCAL NAVIGATIONFig. 11. State tr<strong>an</strong>sition diagram <strong>for</strong> local navigation.IMPFig. 12. Legal highway <strong>for</strong> pathGoalexecution.In the TURN state, the IMP turns toward the goal point untilthe difference between the estimated orientation <strong>an</strong>d thedirection to the goal point falls below the minimum turningresolution. The IMP then enters the WAIT state to make acomplete sonar sc<strong>an</strong> <strong>an</strong>d verify the current estimated position.The sonar sc<strong>an</strong> \results in <strong>an</strong> update in the estimated position<strong>an</strong>d orientation, even if there is no ch<strong>an</strong>ge in the estimatedposition or orientation. The call to the function “Set-Estimated-Position” signals the completion of the sc<strong>an</strong> <strong>an</strong>dcauses a tr<strong>an</strong>sition back to the DECIDE state. If the IMP is not atthe goal, <strong>an</strong>d is turned toward the goal, control will pass fromDECIDE t0 MOVE.Upon entering the MOVE state, the IMP computes theequation of the line (the path equation) from the currentlocation to the goal point. A cyclic process is then initiated inwhich the system moves <strong>for</strong>ward while per<strong>for</strong>ming thefollowing tests as rapidly as possible.1) Verify that the dist<strong>an</strong>ce to the goal point is decreasing.When the dist<strong>an</strong>ce to the goal stops decreasing, the systemreturns to HOLD to wait <strong>for</strong> the next goal. If the dist<strong>an</strong>ce is everA local straight line path is executed by a finite state processwhich monitors the position of the robot to assure that it increasing <strong>an</strong>d is larger th<strong>an</strong> the goal toler<strong>an</strong>ce, then theremains on the desired straight line within a toler<strong>an</strong>ce. This system will go into the WAIT state to take a cle<strong>an</strong> view of theprocess also monitors the local model to assure that no world.unexpected obstacle blocks the path. A recursive obstacle 2) Verify that the perpendicular dist<strong>an</strong>ce from the currentavoid<strong>an</strong>ce algorithm is used to pl<strong>an</strong> a path around unexpected estimated position to the path line segment is below aobstacles.A. Local Path ExecutionStraight line movement to a goal point is monitored by arelatively simple finite state process. The states of this processare the set {HOLD, DECIDE, TURN, MOVE, WAIT, BLOCKED). Thetoler<strong>an</strong>ce. This test is illustrated by Fig. 12. It is per<strong>for</strong>med byevaluating the path equation using the current estimatedposition, yielding the perpendicular dist<strong>an</strong>ce to the pathequation. If this dist<strong>an</strong>ce exceeds the toler<strong>an</strong>ce, then the IMPwill go to WAIT.3) Verify that there is a free path to the goal. This is donestate tr<strong>an</strong>sition diagram <strong>for</strong> this process is shown in Fig. 11. by projecting parallel line segmentsin the composite localThe process waits in the HOLD state <strong>for</strong> a goal from the global model. If the path becomes blocked, the IMP will go intopath execution process. When a goal is received, the IMP blocked state <strong>an</strong>d signal <strong>for</strong> local path pl<strong>an</strong>ning to avoid theenters the DECIDE state. In the DECIDE state it first tests thedist<strong>an</strong>ce to the goal. If this dist<strong>an</strong>ce is less th<strong>an</strong> a toler<strong>an</strong>ce, itreturns to HOLD. If the dist<strong>an</strong>ce is above the toler<strong>an</strong>ce, theobstacle.If the IMP is in the MOVE or TURN States <strong>an</strong>d its contactsensor is triggered, it immediately halts <strong>an</strong>d enters the BLOCKEDdifference in <strong>an</strong>gle between the current heading <strong>an</strong>d the goal is state. Entering BLOCKED triggers the local path pl<strong>an</strong>ningtested. If this <strong>an</strong>gle is above the minimum resolution <strong>for</strong> procedures to pl<strong>an</strong> a path around <strong>an</strong> obstacle. A lowturning,the IMP enters the TURN state; otherwise it enters theMOVE Sbb.confidence line segment is also placed into the composite localmodel to represent the obstacle.


40 <strong>IEEE</strong> JOURNAL AND AUTOMATION, OF ROBOTICSVOL. RA-I, NO. 1, MARCH 1985B. Local Obstacle Avoid<strong>an</strong>ceThe purpose of local obstacle avoid<strong>an</strong>ce is to pl<strong>an</strong> asequence of straight line paths which will take the IMP around<strong>an</strong> unexpected obstacle. A very simple recursive process isused, based on the segments in the composite local model.This process pl<strong>an</strong>s two paths, one to the left of the obstacle <strong>an</strong>done to the right. Tests are then made to see if a free path existsin the composite local model from this point to the goal <strong>an</strong>dfrom this point to the current position. If either path isblocked, the procedure is called recursively to see if it ispossible to get around the blockage. The recursion is notcontinued beyond three levels.IX. LEARNING THE GLOBAL MODELThe global model is learned by a process which detects <strong>an</strong>dfollows segments in the composite local model using a set ofpseudo-sensors which we have come to call “whiskers.”These pseudo-sensors are implemented in the composite localmodel using the VISIBLE function. That is, a test is made to seeif <strong>an</strong>y line segments in the local model block a pair of points tothe right of the IMP at a dist<strong>an</strong>ce of 3 ft.Learning begins by loading the current contents of theglobal model into the composite local model. The compositelocal model is then searched <strong>for</strong> the nearest potential startingpoint. A potential starting point must be a point to the left ofline segment which meets the following conditions.1) The line perpendicular to line equation <strong>an</strong>d passingthrough the IMP’s position (<strong>an</strong>d the starting point)intersects with the composite local model line segment.2) The function FREEPATH to the starting point from theIMP’s position must return the value true.The IMP moves directly to the nearest starting point <strong>an</strong>dthen begins tracking the wall. The IMP moves in 2 foot steps,calculating each move based on the current segment. Aftereach move a sonar sc<strong>an</strong> is made <strong>an</strong>d then the composite localmodel is updated.There are two conditions which c<strong>an</strong> cause the IMP to stoptracking the current segment. The first is where a call toFREEPATH detects a segment blocking the next goal point. Inthis case the blocking segment becomes the new currentsegment. The other condition is that where the currentsegment is no longer visible to the right. In this case the hum<strong>an</strong>supervisor is asked if it is OK to turn right. If the <strong>an</strong>swer isyes, the IMP proceeds in search mode, making a sequence of 1ft moves <strong>an</strong>d 30” turns to the right, while searching <strong>for</strong> a newsegment to the right with its whiskers. If the <strong>an</strong>swer is no, theIMP proceeds <strong>for</strong>ward in moves of 2 ft, searching to the rightwith its whiskers <strong>for</strong> a new segment.Learning terminates automatically when the system comeswithin 3 ft of the first goal while tracking a segment whichcorresponds to the first segment. Learning may be terminatedby the supervisor at <strong>an</strong>y time. On termination, the compositelocal model is loaded into the global model <strong>an</strong>d the network ofplaces is computed by convex decomposition.An example of a learned global model <strong>an</strong>d the path followedduring the learning procedure is shown in Fig. 14. The linesegments are a global model produced by the learningFig. 13. Learning global model. Left frame illustrates whiskers used indetecting presence of current segment <strong>an</strong>d FREEPATH calculation used toverify next move. Boxes show ends of whiskers <strong>an</strong>d next goal point.Center frame shows new segment detected by FREEPATH function. Rightframe shows IMP turning right in search of new segment to track.Fig. 14. Trace of IMP during simulated active learning. Line segmentsrepresent global model. “ + ” ’s represent actual position of IMP as ittraveled. “X” ’s represent estimated position. Errors in position ofsegments in sensor model were only source of error in experiment.”algorithm. The “ + ’s represent the actual position of theIMP as it traveled. The “X” ’s represent the estimatedposition. Errors in the position of segments produced by thesensor model were the source of error in the estimatedposition.X. SUMMARY AND CONCLUSIONThis work describes a navigation system <strong>for</strong> <strong>an</strong> intelligentmobile robot. This system is based on maintaining a dynamicmodel of the external world (the composite local model) usinga rotating depth sensor. A side effect of maintaining .thisdynamic model is <strong>an</strong> error vector which is used to maintain <strong>an</strong>estimate of the robot’s position as it moves. The dynamicallymaintained composite local model also supports the functionsof local obstacle avoid<strong>an</strong>ce, local pl<strong>an</strong>ning, <strong>an</strong>d learning.A path pl<strong>an</strong>ning technique has been described that is basedon a pre-learned “network of places.” The robot’s domain isrepresented as a network of maximum-area convex regions.These convex regions serve as “legal highways” in which therobot may travel. The cuts which <strong>for</strong>m these convex regionsprovide “adits” which serve as key points <strong>for</strong> pl<strong>an</strong>ning pathsthrough the known environment. Each straight line motion isexecuted by a finite state process which monitors motion usingthe composite local model.These techniques yield<strong>an</strong>inexpensivenavigationsystemthat is suitable <strong>for</strong> indoor environments. This system pl<strong>an</strong>s <strong>an</strong>dexecutes paths as a sequence of straight line motions. Such


CROWLEY: NAVIGATION FOR AN INTELLIGENT ROBOTpaths are not necessarily optimal in the sense of being shortest;they are, however, a reasonable trade-off between efficiency<strong>an</strong>d safety.REFERENCESA. V. Aho, J. E. Hopcroft, <strong>an</strong>d J. D. Ullm<strong>an</strong>, Data Structures <strong>an</strong>dAlgorithms. Reading, MA: Addison-Wesley, 1983.R. A. Brooks, “Solving the find-path problem by good representationof free space,” in Proc. Nat. Conf. Artificial Zntelligence, AAAZ-82, pp. 381-386, AUg. 1982.R. Chatila, “Path pl<strong>an</strong>ning <strong>an</strong>d environmental learning in a mobilerobot system,” in Proc. ECAZ, Orsay, Fr<strong>an</strong>ce, Aug. 1982.J. L. Crowley <strong>an</strong>d R. J. Redpath, “An algorithm <strong>for</strong> maximum areaconvex decomposition,” <strong>Robot</strong>ics Institute, Carnegie-Mellon Univ.,Pittsburgh, PA, Tech. Rep. in preparation, 1984.R. 0. Duda <strong>an</strong>d P. E. Hart, Pattern Classification <strong>an</strong>d SceneAnalysis. New York: Wiley, 1973.J. P. Laumond, “Model structuring <strong>an</strong>d concept recognition: Twoaspects of learning <strong>for</strong> a mobile robot,” in Proc. Eighth ZJCAZ-83,pp. 839-841, Aug. 1983.T. Loz<strong>an</strong>o-Pe‘rez, “Automatic pl<strong>an</strong>ning of m<strong>an</strong>ipulator tr<strong>an</strong>sfer movements,’’ZEEE Tr<strong>an</strong>s. Syst., M<strong>an</strong>, Cybern., vol. SMC-11, pp. 681-698, Aug. 1981.H. P. Moravec, “Obstacle avoid<strong>an</strong>ce <strong>an</strong>d navigation in the real worldby a seeing robot rover,” Carnegie-Mellon <strong>Robot</strong>ics Institute, Pittsburgh,PA, Tech. Rep. CMU-RI-TR-3, Sept. 1980.[9] H. P. Moravec, “The CMU rover,” in Proc. Nat. Conf. ArtificialIntelligence, AAAZ-82, pp. 377-380, Aug. 1982.[lo] Y. K<strong>an</strong>ayama, “Concurrent programming of intelligent robots,” inProc. Eighth ZJCAI-83, pp. 834-838, Aug. 1983.41

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!