034-Path Planning for the Cye Personal Robot

This chapter is mainly about path planning for the cye personal robot, which generally includes the cye personal robot, path planner, traversability field,potential field and so on.

1. Path Planning for the Cye Personal Robot Parag H. Batavia Illah Nourbakhsh Carnegie Mellon University Robotics Institute Pittsburgh, PA 15212 [parag/illah]@ri.cmu.edu Abstract • The use of check points must be incorporated into the path planner, to minimize ded-reckoning error. In this paper, we describe the Cye personal robot, concen- trating on its path planning and navigation. We start out with a While other planners optimize for path length [8] in brief description of the general problem, followed by more the presence of obstacles, or concentrate on real-time detail on the Cye robot. After that, we concentrate on the path obstacle avoidance [2], we use an optimization criterion planner, which uses a global potential field approach, com- first introduced in [7] but also used in [6] (for the case of bined with a novel optimization criterion. This ensures that the polygonal regions of varying terrain), which optimizes robot maintains adequate distance from obstacles, while find- the integral of path cost, where the path cost is influ- ing an optimal path which incorporates partial terrain knowl- enced by both distance to obstacles and terrain travers- edge. This system has been in use for over five months, with ability. approximately 200 installations. As we will empirically show, Therefore, it is possible for the lowest cost path to it is robust and can handle dynamic obstacles and imperfect cut through an unexplored area of the world, if doing so maps. would create a significantly shorter path. In this manner, the traversability of various areas can be set, and the 1. Introduction planner will generate an optimal path using that infor- mation. Robust mobile robot navigation in real world envi- ronments is a long standing problem in robotics. In this 2. The Cye Personal Robot paper, we describe research in navigation and path gen- eration using the Probotics Cye robot. Cye is a 2- The Cye robot is designed to be used in a home, wheeled differential drive robot, whose primary mode of office, or research setting. As sold, it is available with a navigation is ded-reckoning. The only sensors are wheel Hoover mini-upright vacuum cleaner attachment and is encoders - there are no other active or passive sensing capable of vacuuming autonomously. A wagon is also modes. The accuracy of the ded-reckoning is sufficient available, which allows Cye to carry things such as cof- for indoor navigation, through the use of carefully fee, dishes, documents, etc. Since it is capable of pulling designed wheels and a set of known calibration surfaces, over 30lb, Cye can transport relatively large items. or “checkpoints”. An (inaccurate, incomplete) map of Cye is a two-wheeled, differential drive robot with the world is interactively constructed using Cye, in non-holonomic constraints, and is shown in Figure 1. which known freespace, known obstacle areas, and There is no caster wheel; instead, Cye is balanced on its unexplored areas are all marked. Path generation in such two main wheels, by placing the CG below the wheel an environment has the following challenges: axel, to reduce drag and slippage. The reason for this is • The robot must maintain adequate distance from Cye’s only means of navigation is ded-reckoning. Each walls and other obstacles. wheel has an encoder on it, and the on-board micro con- • There is uncertainty associated with the creation of troller uses this encoder to determine odometry and the map, and there can be dynamic obstacles. thereby maintain the robot’s position in the world -- • The robot should ideally use explored areas, but namely, (x, y, θ). should be willing to traverse unexplored areas if Ded-reckoning’s main advantage is that it is simple doing so results in a significant savings in path to compute, and does not rely on expensive sensors or length. off-board beacons. The disadvantage is that position • Path generation time must be short, as this is a robot estimation error accumulates over time. In Cye’s case, which is designed for both research and consumer for instance, after travelling 50 feet, the positional error use. can be as large as six inches. This is because a small

2. Figure 2: Map-N-Zap Screenshot. White areas Figure 1: The Cye Personal Robot are freespace, grey areas are uncertain, and black error in heading can cause a large error in position. For areas are obstacles. example, after travelling fifty feet, a one degree heading error leads to a positional error of about 10”. The error ation of an obstacle area on the map. Basic drawing growth rate depends on floor type and path geometry. tools are included, allowing the user to specify areas as Path geometry plays a role because rotations cause free, occupied, or uncertain. heading error to increase more rapidly than straight-line This screen shot helps to introduce Cye’s internal travel. representation of the world. Cye uses an evidence-grid To maintain tracking accuracy, Cye makes use of approach [4], in which the world is discredited into calibration surfaces, called “checkpoints”. A check- small grid cells, and the contents of each grid cell are a point is a known surface, usually a wall or a corner, measure of the occupancy. At the extremes, a cell can which the robot bumps into to re-calibrate itself. This have a ‘0’, which means that it is free space with 100% assumes that the tracking error hasn’t grown too large. certainty, or ‘255’, which means that the space is occu- That is, Cye has to be able to get relatively close to a pied, with 100% certainty. Values in-between reflect the checkpoint, and know that it is close, so that it can bump certainty of the presence of an obstacle. In Figure 2, up against the surface and reset its error. white areas represent free space, grey areas represent Cye has no active sensors. It detects obstacles by unexplored (or uncertain) space, and black areas repre- monitoring wheel velocity. When Cye bumps into an sent obstacles. obstacle, its wheel velocity drops, and this is sensed by the on-board micro controller. While this means that Cye has to physically bump into something to detect it, 3. Path Planner it resulted in a cost-savings and a simpler design. As Cye was designed to be sold at scales of thousands of The underlying structure of the planner incorpo- units per year, this was an important consideration. rates a grid based potential field. We assume that the As mentioned above, Cye only has a micro control- robot is a holonomic platform. Although Cye is non- ler on-board. All higher level functions are carried out holonomic, there is low-level motion control on-board by a remote PC. Cye and the remote PC communicate which transforms an arbitrary path to a set of wheel via a 19.2Kb radio link. Cye uses this link to send pack- velocities approximating that path. This field is con- ets to the PC, containing position updates and the state structed in two stages. In the first stage, each cell con- of the obstacle detection system, and to receive via-point tains a value denoting the traversability of that point. To commands from the PC. do this, a field describing the distance of any given When setting Cye up in a new environment, the user world point to the nearest obstacle is created using a has to create a map, which is shown in Figure 2. This grassfire approach. In this field, unexplored areas are map is created by dragging an icon of the robot around marked with a predetermined “pseudo-distance”. This on the screen using a mouse. The physical robot tracks distance value biases paths around unexplored areas. this movement, and the operator can teach it which areas In the second stage, a potential field is created in are free and which are occupied. An obstacle can be which each world point is the distance to the goal, non- mapped by driving Cye into it, which results in the cre- linearly weighted by the corresponding value in the tra- versability grid. This field is generated using a wave-

3.front expansion from the robot’s goal point. This field is used to create a path from start to goal which minimizes Set growth_cntr = 1 Iterate over all cells, c(i, j) the path length plus the cost of traversability. progress = 0 if c(i, j) == growth_cntr 3.1. Traversability Field progress = 1 Iterate over the 8-neighbors of c(i, j) The traversability field is a grid in which each cell n(k, l) = neighbor corresponds to a point in the map, based on its coordi- n(k, l) = MIN(growth_cntr+1, n(k, l)) nates. Each cell has a related value which is a measure if progress == 0 then exit of traversability. It is important to note that here, two Increment growth_cntr end factors influence traversability: • The distance to the nearest obstacle • Terrain type Figure 3: Traversability Grid Algorithm Therefore, an area can have low traversability because it is unexplored, or also because it is close to an rain. The bottom plot shows the potential field which is obstacle. generated using the traversability field. The method for A Grassfire transform is used to create the travers- generating the potential field is described next. ability field. This is one method to create a voronoi dia- gram, for cell-based path planning methods [1]. These 3.2. Potential Field planners maximize distance from obstacles, but do not necessarily optimize for path length, sacrificing path The final potential field is created using a combina- length for safety. tion of a wavefront transform [REF] and the traversabil- The transform operates as follows. First, the grid is ity grid. The transform starts at the goal, and progresses initialized with ‘1’s in all grid locations which corre- until the start point is encountered. In the standard wave- spond to map locations which are occupied. In this for- front algorithm, the cell representing the goal point is mulation, lower values indicate lower values of seeded with a ‘1’, and all the unoccupied neighbors (we traversability. A ‘1’ means that the cell is completely use the 4-neighbors in this case) are seeded with ‘2’, and occupied, and therefore is not traversable. Higher values all the unoccupied neighbors of ‘2’ are seeded with ‘3’, mean that it is possible to traverse the area. etc., until the start point is reached. At this point, a Since the map contains a priori information about potential field is created. The planner then starts at the the traversability of non-obstacle areas, the field is ini- start point, and takes steps in the direction of decreasing tialized with this information as well. In this case, it cell value, until the goal is reached means pre-assigning values in the traversability grid to This method generates a path that is optimal in each cell which corresponds to a map location which is length, but tends to hug the sides of obstacles. This unexplored. Although the map contains certainty infor- problem can be alleviated by “growing” the obstacles by mation, this information is not used when seeding the a certain amount, guaranteeing a minimum distance. traversability grid. Instead, thresholds are used to mark However, this is unsatisfying, as occasionally, to guaran- areas as “unexplored”. These areas are seeded with a tee completion, it may be necessary to take a risk and value, adding a bias to unexplored areas, which, as we get very close to an obstacle. will show, influences the paths which are generated. Similarly, the basic wavefront approach cannot han- After the initial seeding is done, the field is grown dle varying terrain types or any uncertainty in the state using the algorithm shown in Figure 3. of the world. One method for getting around this is to The first two plots in Figure 4 show this process. tag all uncertain or unexplored areas as obstacles, and The top plot shows a sample world, consisting of a start avoid them entirely. Again, this is unsatisfying, as it is point, an end point, one obstacle, and one unexplored worthwhile to explore new areas, if doing so could result area. The middle plot shows the results of a grassfire in a significant savings in path cost. transform applied to the sample world. The italicized Using the traversability grid allows the planner to values show the initial seeding. Note that in a standard use information on how navigable a region is while gen- grassfire transform, the value of each cell denotes the erating the path. Unlike a standard wavefront algorithm, distance to the nearest obstacle. In this formulation, where the optimality criteria is path length, the optimal- however, the contents of each cell is a measure of tra- ity criteria of our planner is a combination of path length versability, due to the inclusion of the unexplored ter- and traversability. The algorithm for calculating the potential field is shown in Figure 5.

4. Set growth_cntr = 1 Iterate over all cells, c(i, j) progress = 0 if c(i, j) == growth_cntr progress = 1 S Iterate over the 4-neighbors of c(i, j) G n(k, l) = neighbor T = traversability(k, l) if T < MinTraversability n(k, l) = growth_cntr + (MinTraversability - T)^3 + 1 else n(k, l) = growth_cntr + 1 if progress == 0 then exit end 2 2 2 3 4 5 4 3 4 Figure 5: Potential Field Algorithm. 2 1 2 3 4 4 4 3 4 The non-linearity is important. It can be shown that S 1 2 3 4 4 3 3 G if a linear scaling is used, then the path only asymptoti- 2 1 2 3 4 4 3 3 4 cally converges to the appropriate distance from obsta- cles. I.e., when entering a hallway, the robot will cut the 2 1 2 3 4 4 4 4 4 corner slightly to save path length, but then will only 2 1 2 3 4 5 5 5 5 asymptotically approach the center of the hallway. Using a non-linear scaling guarantees that the robot will quickly converge to the center of the hall. The planner is fairly insensitive to the non-linear factor. Extreme values only slightly affect how far the robot travels before cen- tering itself. 37 28 19 10 8 7 6 5 3 The result of this algorithm is shown in the bottom figure of Figure 4. To create a path from this grid, we 46 X 18 9 7 6 5 4 2 begin at the start point, and walk “down” the field, mov- 55 X 18 9 7 6 5 3 1 ing in the direction which results in the largest decrease 64 X 19 10 8 7 6 4 2 in cell number. This path is marked on the bottom fig- 73 X 18 9 7 6 5 4 3 ure. At the point where the field value is ‘8’, there are two possible decisions -- either right or down -- result- 82 X 19 10 8 7 6 5 4 ing in two different, but equivalent paths. Both paths have length 12, and both paths pass through one unex- plored cell. An alternative would be to detour around the unexplored region entirely, which is what a standard Figure 4: The Cye Path Planning Algo- wavefront algorithm would do. This would result in a rithm. The top image is a sample world longer path length of 16. The optimality criterion we use with an obstacle on the left and an unex- trades off traversability for path length, and therefore plored area on the right. The middle grid was willing to enter an unexplored area because it led to shows the traversability grid, and the bot- a shorter path. tom grid shows the final potential field. Note the use of the “MinTraversability” parameter. 3.3. Sub-goal Planning This states that if the traversability of a cell is below a certain value, then we bias the corresponding potential Since Cye navigates using ded-reckoning, having a field value by a non-linear factor of the traversability. working path planner is not enough to guarantee that it Practically, this has the effect of setting a minimum tra- can always reach its goal. As mentioned in Section 2, versability (or distance from obstacle) requirement. Cye uses checkpoints, or known calibration surfaces, to When going down hallways, this causes the robot to run register itself with its map. A full path planning system down the center of the hall. It takes a significant savings in path cost to overcome the bias of this factor.

5.should make use of these check points, so that it can traverse longer distances, while keeping positioning error low. The algorithm the planner uses to incorporate check points is fairly straightforward, and basically involves searching over the available checkpoints, and generating intermediate paths to them. The first step is to generate a path from the start to the goal. After this, a wavefront expansion is done from the entire path, keeping track of all checkpoints that are encountered. This gives a mea- sure of the distance from the path to each checkpoint. We filter on this distance, to prevent using checkpoints which are distant from the original path, as distant Figure 6: Avoiding Local Minima checkpoints provide a diminishing return on overall positional accuracy. Next, the checkpoint closest to the start of the path is found, and a new path is generated from Cye’s current location to the checkpoint. Following this, a new path is generated from the checkpoint to the end goal. Then, the next checkpoint is located, and planned to. If the nearest checkpoint is actually the end goal, then we are done, and Cye moves to the final goal. If it is not, we repeat the process until the final goal is found. Although this algorithm involves additional plan generation, the over- all computation time of the planner is low, so this does not add much overhead, but it greatly enhances the per- formance. 4. Results This path planner has been available for about five months, and is an integral part of Cye’s operation. There are about 200 installations of the planner, based on the number of people who have the latest version of Map-N- Zap. Assuming a mean usage time of 2.5 months, and a weekly usage of 300’ per user (probably an underesti- mate), Cye (and by extension, the path planner) has autonomously travelled over 110 miles. Figure 7: Cye opportunistically using unex- Since the planner calculates a global field, it is not plored areas to shorten path length. susceptible to local minima. Figure 6 shows an example While the planner operates well in “simulated” of this. The figure shows an obstacle configuration mode as the above results show, the real test is when it is which traditionally causes problems for potential field coupled with the physical robot. To put the planner based planners which operate locally. The planner prop- through a significant real world test, we performed the erly avoids the “U”-shaped obstacle, and routes around following experiment. it instead. Figure 8 shows a map representing an area includ- Figure 7 shows the advantage of having a planner ing an office, along with the adjoining corridors. The which accounts for terrain type. The top figure shows an traversable area of this map is about 450 sq. ft. There is example of this. White areas are explored, and grey a fair amount of traffic through this area. areas are unexplored. In the top case, the cost of going We randomly generated 25 goal points spaced on around the unexplored area is less than the cost of going the free areas of the map. The only constraints were that through it. However, as the bottom figure shows, if the no two goal points lie within 2 feet of each other, and no detour is too large, then cutting through the unexplored goal point can be closer than 6” to an obstacle. After area becomes the better option. that, a random ordering of the goal points was gener-

6. manually. We never had to physically move Cye. The locations of the failures are marked on the map in Figure 8. The three failures were: • An individual repeatedly blocked Cye’s path in a Point B hallway, until it was unable to find a free path through the hallway. (Point A) • An unknown failure happened here. (Point B) • Cye’s ded-reckoning error accumulated to the point Point A where it couldn’t find the checkpoint it was expect- Point C ing, and so because lost (Point C) Overall, these results are encouraging. They show that it is possible to reliably navigate in a real world environment. This is a necessary requirement for per- sonal robots. Figure 8: Real-World Test Area 5. Conclusion ated, and Cye navigated through this series of goals. We We have developed a path planner which uses a did four runs. Each run started at the home base, went novel optimization criterion. This criterion allows a through all 25 goal points, and then returned to the home robot to find short paths, while maintaining adequate base, resulting in 26 paths per run. The total number of distance from obstacles, along with handling unexplored paths generated was 104, over the four runs. Note that areas or areas of varying terrain in a principled manner. this number indicates paths from start to goal - it does This planner has been used for months with over not include paths generated during checkins. Therefore, 200 real world installations. Our experiments show that the actual number of paths generated is much higher. the planner is robust, handles dynamic obstacles, and The first two runs did not have any goal points placed in can deal with an uncertain map. the office area. The last two runs included goal points in the office area, which meant that Cye had to accurately navigate a narrow doorway a number of times. Table 1 6. References shows the results. [1] J.F. Canny and M.C. Lin, “An Opportunistic Global Path Planner,” Algorithmica, 10:102-120, 1993 Total Mean Min. Max Num. [2] O. Khatib, “Real-time Obstacle Avoidance for Manipu- Run Length Length Length Length Failure lators and Mobile Robots,” International Journal of (ft.) (ft.) (ft.) (ft.) / (%) Robotics Research, 5(1):90-99, 1986 [3] D. Koditscheck, “Exact Robot Navigation by Means of 1 840 32 3 79 1 / 4% Potential Functions: Some Topological Consider- ations,” Proceedings of the IEEE International Confer- 2 833 32 3 80 0 / 0% ence on Robotics and Automation, May, 1987 [4] M.C. Martin and H. Moravec, “Robot Evidence Grids,” 3 976 38 4 105 1 / 4% CMU RI Tech Report CMU-RI-TR-96-06, March, 4 1098 42 4 92 1 / 4% 1996 [5] J.S.B. Mitchel, D.W. Payton and D.M. Keirsey, “Plan- Total 3748 36 3 105 3 / 3% ning and Reasoning for Autonomous Vehicle Control,” International Journal of Intelligent Systems, 11:129- Table 1: Real-World Results 198 [6] N.C. Rowe and R.S. Alexander, “Finding Optimal-Path Maps for Path Planning Across Weighted Regions,” Over the four runs, Cye ran approximately 0.68 International Journal of Robotics Research, 19(2), 83- miles (1.1km) autonomously. There were six collisions 95, 2000 which did not require human intervention. In these [7] C. Thorpe, “Path Relaxation: Path Planning for a Mobile cases, Cye was able to plan around the unexpected Robot,” Proceedings of the National Conference on obstacle, and continue. There were three failures which Artificial Intelligence, aaai-84, August, 1984 [8] J.S. Zelek, “Dynamic Issues for Mobile Robot Real- required human intervention. In these cases, the inter- Time Discovery and Path Planning,” Proceedings of vention was limited to repositioning Cye on the map the IEEE CIRA,” November, 1999.