Dealing with Geometric Complexity in Motion

0 downloads 0 Views 359KB Size Report
motions near obstacles often require more care than motions away from .... required never gets that hard. Nevertheless the flow ..... of the McDonnell Douglas Space Systems Company, of ... [3] Stephen Cameron and Penelope Probert, editors.
Dealing with Geometric Complexity in Motion Planning Stephen Cameron Computing Laboratory and Robotics Research Group, Oxford University, UK [email protected] Abstract

‘high-level vs. low-level’ planning. Secondly, different portions of the motion planning problem are often intrinsically easier or harder than others; in particular, motions near obstacles often require more care than motions away from obstacles. Thus decomposition of the motion planning strategy helps us to put the computational effort where it is needed. Thirdly, the modularity suggested by this decomposition makes the planners easier to understand and to maintain— and important consideration for code destined for production use.

We consider the issues involved in writing path planners that can work well with complex geometric models of robots and workspaces, and outline our work in implementing a solution. We claim that many path planning problems can be solved by a mixture of global and local planning. In turn, local planning can be usefully supported by the provision of efficient distance computations. Global planning requires more domain-dependent techniques, but we have been experimenting with approximations to the Generalised Voronoi Diagram for compactness of representation, and the use of rule-based systems to encode tactical knowledge. Results are shown using a two path planning frameworks; one for industrial vehicles, and one for manipulators.

Separate Planning and Geometry. Much of the complexity of motion planners is to be found in their treatment of geometry, both in terms of the data-structures required to store and manipulate geometry and in terms of the code complexity required to handle geometry. (Programmers who can handle geometric code are few and far between, as witnessed by the slow development of geometric modelling systems.) By trying to separate out issues of geometry from issues of planning we promote a split in our planners between tactical knowledge—the rules for solving a particular spatial problem—and geometric knowledge. We believe that planners built with this split in mind are easier to understand and to change at the tactical level than those in which geometric calculations and tactical calculations are mixed. Further, as geometric complexity of the problems to be solved increases, this split makes it far easier to upgrade the planner to deal with the new situation

1 Introduction Research into motion planning has occupied many researchers for some years; still commercial uses of automated motion planning are few and far between. Two reasons for this are as follows: Speed. Motion planning has a reputation for being slow. Although motion planners have increased significantly in speed over the last few years, speed is still not at the level to make potential users embrace the technology. Utility. Potential users are potential users because they have hard motion planning problems to solve. These problems are complex because of the clearances required—they can’t easily solve the problem by looking at a motion simulation—or because of the sheer geometric complexity of the problem, or both. The practical needs of these users must be addressed if motion planning is to leave the research laboratory.

In this paper we enlarge on these principles using two example planning frameworks. The first framework is for planning paths for an automated guided vehicle, or industrial truck. This framework evolved around 1989–93 and directly lead to the development of the principles mentioned above. The second framework is ongoing work in which we applied the principles to a harder problem, namely the planning of paths for robot manipulators.

We contend that the volume of existing background research is great enough to build motion planners that can satisfy a growing number of potential commercial users, and over the last few years we have in our laboratory been concentrating less on basic research into motion planning, and more on how to put complete systems together. Although our work is still preliminary, we believe that our results do indicate a small number of guiding principles for the construction of planners for robotic systems. These principles can be summarised as follows:

2 Background Producing paths for robotic devices that avoid collisions has been a goal of robotics research for almost 3 decades, and a serious subject of academic study for over 10 years, and in this section we will only give an overview of the field: the reader is referred to [9], or to Latombe’s encyclopaedic textbook [13] for more details. Lozano-P´erez’s seminal work on the use of configuration space influenced motion planning for many years [16], as it provided a way of turning a complex problem, namely

Decompose the problem. Splitting the problem up into distinct parts with (often) different modes of solution has many advantages. Firstly, many motion planning problems are naturally split into along the lines of 1

that of moving objects amongst objects, into a seemingly simpler one of moving a configuration point amongst configuration space obstacles. As a by-product it also held out the enticing notion that planners could be built that were complete, in the sense that they were guaranteed to find a path if one existed. However the time and space complexity of complete planners turned out to be prohibitive, and so approximation techniques were developed that sacrificed completeness and replaced it with the notion of resolution completeness, that is, finding a path down to some usersupplied granularity on the path. Despite this development, the computation time of techniques based on C-space and some form of exhaustive search remains prohibitive for practical planners—the search space is simply so large. In the second half of the 1980s an alternative search technique was developed, namely that based on the idea of a potential field. In this the graph-based search routine previously used was replaced by one in which the configuration point was now attracted to the goal configuration under the influence of a simulated vector field that also contained repulsive terms that attempted to keep the robot away from obstacles [12]. Potential field techniques turned out to be ideal for robots that could move freely (‘free-flying robots’), that is, without other non-holonomic or kinematic constraints, and fast planners were developed for these types of situations [10]. It was also found possible to build planners that reverted from the central idea of configuration space, namely of representing the robot by a configuration point, and treated the whole robot as an extended charge under the influence of the potential field. Such a move greatly simplified the building of planners for systems with many degrees of freedom, at the expense of making them rather sensitive to the ‘fudge factors’ in the program. Thus by 1990 potential field based planners could deal with many motion planning problems involving mainly free-flying agents, and C-space based planners could deal with other problems but slowly. At this point a landmark program was developed by Barraquand and Latombe which could plan paths for systems that had large degrees of kinematic complexity [1]. This planner—the randomised path planner or RPP—used several evolutionary advances (digital models; potential field in the workspace rather than configuration space) and a revolutionary idea (the use of something like Brownian motion to assist the planning process). The speed of this planner showed that practical path planning was indeed possible; however the geometric complexity of the environment used was strictly limited. Nevertheless, even today RPP is the planner against which others are judged.

on demand from the path planner. This makes sense as when a vehicle is travelling down a corridor it only really needs the know local details of the model. We also produced a module that took data from a full three-dimensional geometric modelling system; this process is shown in figure 3. Task-level Planning We decided that the real goal of the planning process was to perform a set of motion tasks that move loads; however there is freedom of choice in how each load is accessed and in the order in which the loads are processed. Although the ability to plan good paths for the robot(s) was needed to solve this task planning problem, the task planner was implemented as a separate level in the planning process. Eventually we came up with a three-level planning hierarchy: Task-Level: At this level tasks are described in terms of what needs to be done; the planner at this level selects subgoals, which are point-to-point planning problems of the form normally seen in motion planning problems. Global Level A global level planner treats the vehicle as an agent that can be moved without steering constraints. Thus this planner might find paths that can’t, in fact, be executed by the vehicle. This planner is in fact used in two ways:

 The task-level planner uses the global planner to quickly reject routes that cannot be followed, 

and The route found by the global planner is used to prime the local planner in order to facilitate the search for a path.

Local Level The local level planner uses a potential field to attract the vehicle towards the goal [7, 8]. However it can deal with both the full shape of the vehicle and with non-holonomic constraints because (a) it bases the repulsive component of the potential field on the distances between the robot and the obstacles, and (b) the field acts, via a control transfer function, directly to affect the way that the vehicle is steered. As a bonus, this hierarchical decomposition of the planning process also promotes modularity of design; only the local planner is tuned to a particular vehicle, and so if another vehicle with car-like steering is used then only the local planner needs re-tuning, and if a vehicle with a totally different steering mechanism is used then (in principle) only the local level planner need be changed.

3 Vehicle Planning At the time that RPP was being developed we were working on a project to develop smart automated guided vehicles for industrial use [3], and as part of that we took a pragmatic view of the problem of developing a path planner for such devices. Two novel aspects of the work were

4 Separating Planning and Geometry As the vehicle planning problem uses a two-dimensional workspace the complexity of the geometric data-structures required never gets that hard. Nevertheless the flow of geometric data between levels of the planner is kept small in a way that readily extends to three-dimensional problems. Firstly, geometric data about the entire factory is kept is a separate repository that we called the world model [3, Ch. 13]. This uses efficient spatial decomposition techniques

Use of CAD Models. We reasoned that to be truly useful in an industrial setting our planner must work alongside the sort of CAD database to be found in industry. Thus we produced a module that could take a large CAD floorplan and produce localised maps efficiently 2

task lists Task-Level Planner

coarse paths

Coarse-Level Planner

coarse paths Fine-Level Planner robot commands

Figure 2: The vehicle planner in a small environment

Figure 1: Vehicle Planning Hierarchy Goodness Measures. These are normally real-valued estimates of the goodness of paths, and are often based on proximity measures (e.g., closest approach to any obstacle) as well as, say, length or time of path.

to store, retrieve and update spatially localised data (i.e., CAD models, geometric models, and unexpected obstacles found by the vehicles), and can filter out unnecessary detail when a local map is requested. Thus a planner can demand data within (say) a 20m radius of its current position, with detail below 20cm in length filtered out. In fact only the global and local planners use this CAD data. The task level planner knows about the start and goal configurations of the loads and the robots, and can then ask queries of the other planners and of the world model [3, Ch. 12]. For the load pickup and delivery problem, the task planner first analyses the loads’ start and goal configurations to see what constraints there are on pickup and putdown directions, as the robots can only approach the loads from one of two directions. This analysis is done using a collision detection routine within the world model. Then the global planner is called to plan rough paths, using distance and travelling time heuristics to guide the search for paths. The rough paths are returned to the task level planner only as distances (i.e., goodness measures), and as indices into a table of paths maintained by the global planner. Finally, the rough paths are ordered heuristically, and the local level planner called to refine the paths. At this point some rough paths may be found to be impossible; the task level planner is able to re-allocate and re-order paths to find alternative solutions if this is the case. The point about this process that we wish to emphasise here is the use of three types of sparse geometric data as currency between the modules, namely

Route Maps. These are often expressed as via points along a path, and provide a mechanism for path refinement, beginning with only start and goal configurations and refining the path through levels of planning. In fact, the route maps can also be thought of as a currency that is passed onto the vehicle run-time controller, and may be further refined there. For example, Hu’s work [3, Ch. 4] provides for alternative routemaps to be loaded onto a vehicle, which can then make decisions about alternatives in respect of sensor data. Figure 2 shows interaction between the global and local planners for a small workspace. In this the route map produced by the global planner is shown as a dotted line; as can be seen the obstacles and the steering constraints on the vehicle cause it to move away from the original route. However as the vehicle is essentially following a ‘carrot’—a point goal that is itself moving along the route—the quality of the route is high. A larger example, that uses geometric filtering, is shown in figure 3. This shows a three-dimensional model of a factory (top), which is automatically projected down into a two-dimensional floorplan from which alternative routes are selected (middle). Then the local planner ‘follows the carrot’ to produce a final path (bottom). The floor plan contains some 10000 polygonal edges, ranging in size from 10cm to 200m. The entire planning process took a small number of minutes with 1991 hardware, and so would take tens of seconds on cheap hardware today. The analysis of placements by the task level planner was not needed in the example above, but is shown in figure 4 which shows several palleted loads (scattered rather unworkman-like) around an area, and the analysis of attachment points via collision detection. The entire task-level

Proximity Data. Many decisions about the way to order the planning process can be naturally written as those depending on proximity data, which may be boolean (collision detection), real (distances between objects under different metrics), or an array of these (to efficiently test many alternatives). 3

Figure 4: Checking approach points for pallets planner for this system was in fact controlled by a PROLOG program, and consisted of a total of around 50 lines of PROLOG code. This encourages the reuse of the system to solve other spatial tasks, as in figure 5, which shows two robots cooperating to move a sofa in the presence of unmapped obstacles. The amount of PROLOG code is similar to that used in the earlier example, and took only a week to develop from the palletising planner.

5 Manipulator Planning Given our success in planning for robot vehicles, we then moved to apply the principles to a much harder problem, namely manipulator planning. There are several reasons why this problem is harder. Three Dimensional Workspace The planner now has to deal with three-dimensional robots and obstacles. Kinematic Constraints Their are severe constraints on the way that a manipulator can move, due it its jointed structure. Large Extent. We have to worry about the ‘tail’ ofthe manipulator, as well as the part that is actually holding the workpiece. Our first problem was to consider the problem of local path planning, and to see whether a proximity-based solution could be found.

5.1

Local Planning

The virtual spring method [18, 17] is a variant of the potential field paradigm in which a potential field is set up to attract the links of the robot towards the goal, whilst repelling them from obstacles. The difference between the virtual spring method and a traditional potential field one (such as the Randomised Path Planner [1]) is that the former replaces the rigid links of robot by flexible ones—the virtual springs—to reduce the forces transmitted through the joints, and so reducing the depth and the number of local minima in the potential field. That is, the robot modelled in this method consists of a set of flexible but stiff links which are given some independence in motions, as illustrated in figure 6. We could parameterise the system by the joint angles (or equivalent) together with the length of the links, but instead it is more convenient to use the coordinates of the centre

Figure 3: A factory processed by the vehicle planner

4

Figure 6:

A Simple Visualisation of Virtual Springs

of each joint as parameters. We can then write down the dynamics of the system using a Lagrangian formulation, and solve it numerically. The virtual spring method works surprisingly well, and as an example figure 7 shows a classic motion-planning example in two-dimensions that takes 7 seconds to plan on a workstation that currently costs well under $10K. The way that global planning is mixed with local planning is similar to that used in the vehicle planning system mentioned earlier, with the tip of the manipulator being attracted to a moving goal that follows routeways on a map, shown in the bottom-right of figure 7.

5.2

Using Distance Information

The virtual springs planner, like many other potential field based planners, is easily recast to use distance information between the robot and obstacles. Thus one of the themes of this paper is the efficient computation of the distance between objects. Furthermore, there are two special features of the way that the distance information is used:

 The effect of the potential field is typically modelled

on an inverse square law. Thus the accuracy required in the distance computation falls off sharply with distance.

 When simulating the effect of the potential field we step forward in time, and typically using a small timestep. Thus we should try to take advantage of temporal coherence when computing distances—that is, objects are likely to be in nearby positions at subsequent calls to the distance routines.

Figure 5: A sofa moving problem, with two robots and run-time obstacles

5.3

Building Maps

Another major theme of this paper is the usefulness and construction of the ‘map’ of the environment, which is produced as part of the global planning stage. A general tool that is useful for constructing maps is the Generalised Voronoi Diagram (GVD), which is the locus of points that are equidistant between two or more objects, and this is already in use in several path-planning algorithms for vehicles (e.g., [21]). The map for figure 7 was simply the GVD for the environment (computed using the L1 metric). However there are several problems that arise when we want to perform global planning with more complicated examples: 5

(a) Figure 8:

(b)

A Path Planned for a 9 dof Manipulator

of points on the manipulator as it reaches round and into the large flange. It does, of course, introduce another problem, in that memory requirements make the use of digital approximations impractical for large examples. The third problem in the list above is overcome by heuristically generating a network of routes on each GVD face; the resultant network is shown in figure 8(b) for the same example (but from a different viewing angle). Recent work has suggested a method of pre-processing a global map using random arm configurations, that has been shown to work well with simple robot models in twodimensions [11]. However although this method could undoubtably be extended to work for complex examples in three dimensions we feel that it would be impractical, due to the large number (at least tens of thousands) of collision checks required. Instead our research is attempting to produce good maps for larger examples by using GVDs at multiple levels of resolution (depending on how close together obstacles are), using the algorithm of [14]. The payload problem will be tackled by starting from an initial map in which a minimum payload is used, and that can be pre-processed in many cases. Then the effect of each payload is to reduce the number of viable paths; which paths are no longer viable can be established from the distance information in the map, plus distance information computed on the fly using the techniques to be described next.

A planar manipulator moving using the virtual springs method. Path planning takes 7 seconds on a Silicon Graphics Iris Indigo R4000. Figure 7:

 Although the GVD is well-defined in three dimensions reliable algorithms for its construction are still a matter for research.

 Complex geometric models give rise to complex GVDs. However most of this complexity is in the form of small branches on the GVD, which correspond to small geometric features that are largely irrelevant to planning process.

 The

GVD in three dimensions contains twodimensional faces, whereas for planning we require a graph structure. (In other words, we need to further characterise the possible pathways within the GVD.)

 Innipulator real manipulator motion planning problems the mawill be carrying a payload. This payload

6 Fast Distance Computation It should be clear from the previous section that many path planning schemes need to compute some type of distance measure between objects. It is not always necessary for this measure to be accurate when objects are far apart, but the distance measure will be called many times as part of an inner loop of the planner. We have used a variation on the algorithm of Gilbert, Johnson and Keerthi (GJK) for convex polyhedra [6]. (An alternative method of computing distances which should work equally well is that of [15], but this would have involved us in more preprocessing.) One modification that we have made is to store enough information from one run of GJK 1 in order to speed up the next run. As robot path planners tend to step gradually forward in time, this single modification has a dramatic effect on computation times. This modifications, plus some other

may affect the map, and therefore reduces the ability to fully pre-process the map. For our initial work on the virtual springs method we solved the first two problems by using a digital approximation to the GVD. That is to say, we set up a grid in space of (say) 643 points, and at each point work out its distance to the nearest obstacle, and ‘colour’ the point with the identify of that obstacle. In turn, this grid is computed using a wavefront method: the grid points within the obstacles are initialised to distance zero, and the distances of neighbouring points computed iteratively until the wavefronts collide. This method works surprisingly well, and as an example figure 8(a) shows a path generated by this system for a 9 degree-of-freedom (dof) manipulator with a mixture of revolute and ball-joints—the dotted lines trace out the paths

1 Namely, the identities of the simplices corresponding to the witness points for the minimum distance.

6

modularity in mind, in particular in order to enable us to try out new modelling schemes. The major components of OXSIM, and their interrelationship, as shown in figure 9; note that the rate of information flow between components is quite small, especially when a simulation is actually running. The user has to provide a set of pieces which will be unioned to model the various objects in the world. These are currently generated by our ROBMOD modelling system [2], and then fed to a convex hull routine. The resultant models for each piece are convex polyhedra, modelled using a variant on the winged-edge data structure. These models are dumped (together with circumsphere information) into archival file structures, which are read in by O XSIM itself. The two major structural inputs to O XSIM are the tree structures for the hierarchical object representations, and the kinematic structure of the robot. For simplicity, the latter is provided in standard Denavit-Hartenberg (D-H) notation, which uses a systematic method for assigning right-handed coordinate frames to each link of the manipulator(s). However D-H notation can be error-prone for humans to work with, and so we intend to provide a graphical tool to make it easier to generate this notation. OXSIM itself is driven by a simple command language; this makes it easy to perform experiments using different motion planning strategies. Alternatively, we can embed the key distance computation code from OXSIM within stand-alone motion planners for efficiency. The main functional advantage of this implementation over our earlier one is the ability to deal with arms with extent, rather than the ‘fat sticks’ models used originally. For example, figure 10 shows a five-link arm in motion, for which the planning takes 32.8 seconds on a SGI Indy 4600, of which approximately 49% of the CPU time is consumed doing distance computations. The links of the manipulator are each decomposed as the union of twelve primitives, using the structure illustrated in figure 12. The 5 link robot is modelled as 7 virtual spring segments. One of the extra segments is simulated as an elastic band (i.e. with small stiffness and mass) that connects the tip of the arm and the nominal path and draws the arm toward the goal configuration. The other is simulated as a zero-length heavy load (i.e. with infinite stiffness and mass) that sits at the base of the arm and prevents the arm’s base from floating while subject to various energy terms. Figure 11 shows a further example for a six link manipulator: note that the choice of global path is critical in this case. Figure 13 shows an example with a simpler path but more complex geometry (a mechanical digger); planning for these paths takes 47s and 28s with our current implementation.

High-Level Planner(s)

Geometric Modeller

Subgoal Lists

OxSim Interpreter

OxSim proper

Distance

Local Planner

Computation

(virtual springs)

Figure 9:

Major Components of OXSIM

smaller modifications, are enough to provide a roughly 2–3 times speedup over the original algorithm.

6.1

Using A Containment Hierarchy

The GJK algorithm only considers the distance between a pair of convex objects, and provides the exact distance between them. By constructing hierarchical representations of objects we can represent objects at multiple levels of resolution, and so provide only as much accuracy in the distance calculation as is required at any stage. At the highest resolution then, we effectively model objects as the union of convex polyhedra. We feel that this is acceptable for our problem domain, and note that other models (e.g., surface patch models) could be added to the scheme provided some form of distance algorithm is available for the models. It is worth noting that there are several domaindependent methods of speeding up these distance computations further. Parallel computation is one method [19]; another makes use of the fact that distance values change relatively slowly as the objects move, and so if we have upper bounds on the velocities of the objects we can keep track of estimates of the distances, and only find the true values when the estimates start to get bad [4]. (Remember that the effect of obstacles on the path planning process drops dramatically with distance.) Finally, we can use special forms of an object hierarchy, such as that employed in [5] in which parts of the robot are represented by bounds on their swept volume as the relevant joints travel over their range.

8 Conclusions In this paper we have expounded on the principles of problem decomposition and the separation of geometry and planning that allow (we claim) the development of planners that are useful outside of a research environment. Our current scheme makes use of the enhanced version of Gilbert, Johnson and Keerthi’s minimum distance algorithm, together with the virtual spring method, and works well for quite complicated situations in 3D environments. Instead of using stick-like links, we replace the links with real geometries and represent the links in a hierarchical data structure to attain efficiency.

7 Implementation of the Composite Scheme We have implemented the techniques discussed in this paper within a new system called OXSIM, which includes: a hierarchical object decomposition scheme; our augmented GJK algorithm; distance tracking heuristics; and a reimplementation of the virtual springs method [20]. The code and the system have, however, been designed with 7

Figure 10:

A 5 link manipulator in motion

link:

spheres:

geometries:

Figure 12: A diagrammatic representation of the decomposition of a link. We have also experimented with alternative planners— one uses a dumb scheme for low-level planning (somewhat like the Kavraki planner), and another uses genetic algorithms for path refinement—and we feel that we are reaping the benefits of modular design. Our next challenge is to demonstrate the framework on large, industrial-scale problems.

Acknowledgement This work would not have been made possible without the support of the many staff, visitors and research students at Oxford, including Tony Hague, Masato Kageyama, Alistair McLean, Jian Peng, Caigong Qin, and Bill Triggs. The author also gratefully acknowledges the support of the McDonnell Douglas Space Systems Company, of the Engineering and Physical Sciences Research Council, Komatsu Ltd, and of ESPRIT-BRA grant SECOND.

References [1] J. Barraquand and J.C. Latombe. Robot motion planning: A distributed representation approach. Int. J. Robotics Res., 10(6):628–649, 1991. [2] Stephen Cameron and Jon Aylett. ROBMOD: A geometry engine for robotics. In Int. Conf. Robotics & Automation, pages 880–885, Philadelphia, April 1988. [3] Stephen Cameron and Penelope Probert, editors. Advanced Guided Vehicles: Aspects of the Oxford AGV Project. World Scientific Press, September 1994. Robotics and Automated Systems Volume 9, ISBN 981-02-1393-X.

A 6 link manipulator example; planning takes 52.3s on an SGI Indy 4600. Figure 11:

8

[4] R. K. Culley and K. G. Kempf. A collision detection algorithm based on velocity and distance bounds. In Int. Conf. Robotics & Automation, pages 1064–1069, San Francisco, April 1986. [5] Bernard Faverjon and Pierre Tournassoud. A local based approach for path planning of manipulators with a high number of degrees of freedom. In Int. Conf. Robotics & Automation, pages 1152–1159, Raleigh, March 1987. [6] E. G. Gilbert, D. W. Johnson, and S. S. Keerthi. A fast procedure for computing the distance between complex objects in three-dimensional space. IEEE Trans. Robotics & Automation, 4(2):193–203, April 1988. [7] T. Hague and S. Cameron. Motion planning for nonholonomic industrial robot vehicles. In Proc. IROS-91, pages 1275–1280, Osaka, November 1991. IEEE. [8] Tony Hague. Motion Planning for Autonomous Guided Vehicles. PhD thesis, Oxford University Department of Enginering Science, 1993. [9] Yong Koo Hwang and Narendra Ahuja. Gross motion planning—a survey. ACM Computing Surveys, 24(3):219– 291, September 1992. [10] Yong Koo Hwang and Narendra Ahuja. A potential field approach to path planning. IEEE Trans. Robotics & Automation, 8(1):23–32, February 1992. [11] Lydia Kavraki and Jean-Claude Latombe. Randomized preprocessing of configuration space for fast path planning. In Int. Conf. Robotics & Automation, pages 2138–2145, San Diego, May 1994.

Figure 13:

[12] O. Khatib. A unified approach for motion and force control of robot manipulators: The operational space formulation. IEEE J. Robotics & Automation, pages 43–53, February 1987.

Further examples of the planner in action.

[20] Caigong Qin, Stephen Cameron, and Alistair McLean. Towards efficient motion planning for manipulators with complex geometry. In Proc. IEEE Int. Symp. Assembly and Task Planning, pages 207–212, August 1995.

[13] Jean-Claude Latombe. Robot Motion Planning. Kluwer Academic Publishers, 1991.

[21] O. Takahashi and R. J. Schilling. Motion planning in a plane using generalized Voronoi diagrams. IEEE Trans. Robotics & Automation, 5(2):143–150, April 1989.

[14] D. Lavender, A. Bowyer, J. Davenport, A. Wallis, and J. Woodwark. Voronoi diagrams of set-theoretic solid models. IEEE Comp. Graphics & Applications, 12(5):69–77, September 1992. [15] Ming Lin and John Canny. A fast algorithm for incremental distance calculation. In Int. Conf. Robotics & Automation, pages 1008–1014, Sacremento, April 1991. [16] T. Lozano-P´erez. Spatial planning—a configuration space approach. IEEE Transactions on Computers, C-32(2):108– 120, February 1983.

This paper was prepared as a position paper for Workshop WT2, ‘Practical Motion Planning in Robotics: Current Approaches and Future Directions’, at the IEEE Conference on Robotics and Automation, Minneapolis, 23rd Aprl 1996. c IEEE 1996. Contact address: Oxford University Computing Laboratory, Wolfson Building, Parks Road, Oxford OX1 3QD, UK. Phone: +44 1865 273850.

[17] A. W. McLean and S. A. Cameron. The virtual springs method: Path planning and collision avoidance for redundant manipulators. Int. J. Robotics Res., 1996.

[18] Alistair McLean and Stephen Cameron. Snake-based path planning for redundant manipulators. In Int. Conf. Robotics & Automation, volume 2, pages 275–282, Atlanta, May 1993. [19] Caigong Qin. Parallel computation of robot motions. MSc dissertation, Oxford, 1993.

9