# Introduction to Motion Planning

## Commenti

## Transcript

Introduction to Motion Planning

L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Introduction to Motion Planning A fundamental need in robotics is to have algorithms that convert high-level specifications of tasks from humans into low-level descriptions of how to move: motion planning and trajectory planning. A classical version of motion planning is sometimes referred to as the Piano Mover’s Problem. 125 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Robot motion planning usually ignores dynamics and other differential constraints and focuses primarily on the translations and rotations required to move the piano. Recent work, however, does consider other aspects, such as uncertainties, differential constraints, modeling errors, and optimality. Trajectory planning usually refers to the problem of taking the solution from a robot motion planning algorithm and determining how to move along the solution in a way that respects the mechanical limitations of the robot. 126 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 In artificial intelligence, the terms planning and AI planning take on a more discrete flavor. Instead of moving a piano through a continuous space, as in the robot motion planning problem, the task might be to solve a puzzle, such as the Rubik’s cube or a sliding-tile puzzle, or to achieve a task that is modeled discretely, such as building a stack of blocks. Although such problems could be modeled with continuous spaces, it seems natural to define a finite set of actions that can be applied to a discrete set of states and to construct a solution by giving the appropriate sequence of actions. 127 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Natural questions at this point are, What is a plan? How is a plan represented? How is it computed? What is it supposed to achieve? How is its quality evaluated? Who or what is going to use it? Regarding the user of the plan, it clearly depends on the application. In most applications, an algorithm executes the plan; however, the user could even be a human. Imagine, for example, that the planning algorithm provides you with an investment strategy. Robot (Robotics), agent (AI), controller (Control Theory), decision-maker or player (game theory) Planning algorithms: find a strategy for one or more decision makers 128 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Motivational Examples and Applications ◮ Discrete puzzles, operations, and scheduling . ◮ An automotive assembly puzzle ◮ Sealing cracks in automotive assembly ◮ Making smart video game characters ◮ Virtual humans and humanoid robots ◮ Parking cars and trailers ◮ Flying Through the Air or in Space ◮ Designing better drugs 129 130 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 A motion computed by a planning algorithm, for a digital actor to reach into a refrigerator An application of motion planning to the sealing process in automotive manufacturing A planning algorithm computes the motions of 100 digital actors moving across terrain with obstacles L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 131 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Geometric Models The world generally contains two kinds of entities: ◮ Obstacles: Portions of the world that are “permanently” occupied, for example, as in the walls of a building. ◮ Robots: Bodies that are modeled geometrically and are controllable via a motion plan. Both obstacles and robots will be considered as (closed) subsets of W. Let the obstacle region O denote the set of all points in W that lie in one or more obstacles; hence, O ⊂ W. The next step is to define a systematic way of representing O that has great expressive power while being computationally efficient. 132 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Canonical Planning Problem The assumptions in the canonical planning problem are ◮ The robot is the unique object that is moving (this excludes moving obstacles and other possible robots). ◮ The robot is a point moving in the space (this does not consider possible nonolonomy constraints). ◮ Obstacles positions and orientations are known (not true in unstructured environment). ◮ Obstacles must not be “touched” (this excludes robot-environment interaction, manipulation) Such assumptions lead to a purely geometrical problem. 133 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Representation issues: ◮ Can it be obtained automatically or with little processing? ◮ What is the complexity of the representation? ◮ Can collision queries be efficiently resolved? ◮ Can a solid or surface be easily inferred? Idea: systematically constructing representations of obstacles and robots using a collection of primitives. Both obstacles and robots will be considered as (closed) subsets of W. Let the obstacle region O denote the set of all points in W that lie in one or more obstacles; hence, O ⊂ W. The next step is to define a systematic way of representing O that has great expressive power while being computationally efficient. 134 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Regarding obstacles, consider primitives of the form: H = {(x, y, z) ∈ W|f (x, y, z) ≤ 0} which is a half-space is f is linear. Now let f be any polynomial, such as f (x, y) = x2 + y 2 − 1. Obstacles can be formed from finite intersections or unions: O = H1 ∩ H2 ∩ · · · ∩ Hn , O = H1 ∪ H2 ∪ · · · ∪ Hn . O could then become any semi-algebraic set. Notions of inside and outside are clear and furthermore collision checking is performed in time that is linear in the number of primitives. 135 136 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Regarding the robot if it is a rigid body, the robot transformations are 2D Rigid-body transformations: cos θ − sin θ xt T = sin θ cos θ yt 0 0 1 3D Rigid-body transformations: RPY and translation cos α cos β sin α cos β T = − sin β 0 cos α sin β sin γ − sin α cos γ cos α sin β cos γ + sin α sin γ xt sin α sin β sin γ + cos α cos γ sin α sin β cos γ − cos α sin γ cos β sin γ cos β cos γ 0 0 yt zt 1 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 The C-Space The configurations space is the set of all possible transformations of the robot. It is an important abstraction that allows to use the same motion planning algorithm to problem that differ in geometry and kinematics. ◮ Path planning becomes a search on a space of transformations ◮ What does this space look like? ◮ How should it be represented? ◮ What alternative representations are allowed and how do they affect performance? Three views of the configuration space: ◮ As a topological manifold ◮ As a metric space ◮ As a differentiable manifold Number 3 is too complicated! There is no calculus in basic path planning 137 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 X topological set if 1. The union of any number of open sets is an open set. 2. The intersection of a finite number of open sets is an open set. 3. Both X and ∅ are open sets. A set C ⊆ X is closed if and only if X \ C is open. Many subsets of X could be neither open nor closed. We will only consider spaces of the form C ⊆ Rn . Rn comes equipped with standard open sets: A set O is open if every x ∈ O is contained in a ball that is contained in O. 138 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Let X and Y be any topological spaces. A function f : X → Y is called continuous if for any open set O ⊆ Y, the preimage f −1 (O) ⊆ X is an open set. A bijection f : X → Y is called a homeomorphism if both f and f −1 are continuous. If such f exists, then X and Y are homeomorphic. 139 140 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Homeomorphic and non homeomorphic subspaces of R2 . R These are all homeomorphic subspaces of . ———————————————————————————————————– ———————————————————————————————————– 141 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Manifolds Let M ⊆ Rm be any set that becomes a topological space using the subset topology. M is called a manifold if for every x ∈ M, an open set O ⊂ M exists such that 1. x ∈ O; 2. O is homeomorphic to Rn ; 3. n is fixed for all x ∈ M. It “feels like” Rn around every x ∈ M. Subspaces of : Yes Yes Yes No Yes Yes No No 142 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Plane, R2 Cylinder, R × S 1 Möbius band Torus Klein bottle Projective plane, RP2 Two-sphere, S 2 Double torus L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Examples of configuration space 2D rigid body: Transformation is given by T2 ∈ SE(2) hence in R9 . 3D rigid body: Transformation is given by T3 ∈ SE(3) hence in R16 . However rotations and translations can be chosen independently. Translations are in Rn while rotation suffer of the periodicity of trigonometric functions, e.g. For 2D bodies θ ∈ [0, 2π[ and the set of rotations is S1 . For a mobile polygonal robot in W = R2 the robot is described by the position of one of its points (e.g., COM, vertex) and the polygon orientation with respect to a fixed frame. Hence C = R2 × SO(2) that has dimension 3. For a mobile polygonal robot in W = R3 the configuration space is C = R3 × SO(3) that has dimension 6. 143 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 For a planar manipulator with (fixed base) two links and two rotational joints the configuration space is a subset of (R2 × SO(2))2 . The dimension of the configuration space is 3n − 2n = n since each joint constrains the motion of the following link (2 constraints per joint). Configuration variables commonly used are q = (q1 , q2 ) with q1 , q2 ∈ [0, 2π). However, such representation is valid only locally (q1 and q2 close in W far apart in Q). Hence Q should be represented by SO(2) × SO(2). 144 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 C-space for a unicycle with configurations (x, y, θ). Or a square box with the top and bottom identified: 145 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 C-Space Obstacles Given world W, a closed obstacle region O ⊂ W, closed robot A, and configuration space C. Let A(q) ⊂ W denote the placement of the robot into configuration q. The obstacle region Cobs in C is Cobs = {q ∈ C|A(q) ∩ O 6= ∅}, which is a closed set. The free space Cf ree is an open subset of C: Cf ree = C \ Cobs We want to keep the configuration in Cf ree at all times! Consider Cobs for the case of translation only. The Minkowski sum of two sets is defined as X ⊕ Y = {x + y ∈ Rn |x ∈ Xand y ∈ Y } 146 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 The Minkowski difference of two sets is defined as X ⊖ Y = {x − y ∈ Rn |x ∈ Xand y ∈ Y } 147 148 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 2D translation only Cobs A O Cobs O β2 α3 α1 α2 β1 β3 α3 β4 Inward and outward normals β2 α2 β3 β1 β4 α1 Sorted around S 1 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 2D translation and rotation Cobs ⇒ 3D subset of R2 × S1 . y θ x 149 150 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 2D contact types: A O Type EV Equation polynomials in xt , yt , cos θ, sin θ arise. A Type VE O 151 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 3D contact types: O A O Type FV A O Type VF Equation polynomials in xt , yt , cos θ, sin θ arise. For two-links C = S1 × S1 A Type EE 152 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Basic motion planning problem Given robot A and obstacle O models, C-space C, and qI , qG ∈ Cf ree . Given robot and obstacle models, C-space , and Cobs Cobs Cf ree qG Cobs qI Automatically compute a path τ : [0, 1] → Cf ree so that τ (0) = qI and τ (1) = qG . L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 There are three main philosophies for addressing the motion planning problem: ◮ Combinatorial (or roadmap) planning (exact planning) ◮ Sampling-based planning (probabilistic planning, randomized planning) ◮ Artificial potential fields methods All work in the configuration space and most of the method require preliminary (expensive!) computation of Cobs and Cf ree . The computation of Cobs can be exact (algebraic model needed) or approximate (grid decomposition). 153 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 A planning algorithm may be: ◮ Complete: If a solution exists, it finds one; otherwise, it reports failure. ◮ Semi-complete: If a solution exists, it finds one; otherwise, it may run forever. ◮ Resolution complete: If a solution exists, it finds one; otherwise, it terminates and reports that no solution within a specified resolution exists. ◮ Probabilistically complete: If a solution exists, the probability that it will be found tends to one as the number of iterations tends to infinity. First for Combinatorial approach, the others for the sampling approach 154 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Combinatorial Motion Planning (∼ 1980) There are generally two good reasons to study combinatorial approaches to motion planning: 1. For many special classes, elegant and efficient algorithms can be developed. These algorithms are complete, do not depend on approximation, and can offer much better performance than other planning methods. 2. It is both interesting and satisfying to know that there are complete algorithms for an extremely broad class of motion planning problems. Thus, even if the class of interest does not have some special limiting assumptions, there still exist general-purpose tools and algorithms that can solve it. These algorithms also provide theoretical upper bounds on the time needed to solve motion planning problems. 155 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Combinatorial approaches construct a finite data structure (named Roadmap) that exactly encodes the planning problem. Some of the algorithms first construct a cell decomposition of Cf ree from which the roadmap is consequently derived (cell decomposition methods). Other methods directly construct a roadmap without the consideration of cells (maximum clearence roadmap). Both methods typologies produce a topological graph G: - Each vertex is a configuration q ∈ Cf ree - Each edge is a path τ : [0, 1] → Cf ree for which τ (0) and τ (1) are vertices. 156 157 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 A roadmap is a topological graph G with two properties: 1. Accessibility: From anywhere in Cf ree it is trivial to compute a path that reaches at least one point along any edge in G. 2. Connectivity-preserving: If there exists a path through Cf ree from qI to qG , then there must also exist one that travels through G. We consider polygonal obstacle regions where clever data structures can be used to encode vertices, edges, regions (e.g. Doubly connected edge list) ICRA 2012 Tutorial - Motion Planning - 14 May 2012 – 9 / 72 Figura 16: Left: Polygonal obstacles, Right: Example of roadmap L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Cell Decomposition Methods Given Cf ree cells are obtained with the following properties: ◮ Planning in a cell is trivial ◮ Adjacency information can be extracted easily to build the roadmap ◮ Exists an efficient way to determine the cells containing qI and qG . Once the roadmap has been constructed a graph path computation is performed (see chapter on Graph Optimization). Cell decomposition methods are divided in Approximate and Exact Cell Decomposition. 158 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Approximate Cell Decomposition Idea: Decompose the space into cells with predefined shapes so that any path inside a cell is obstacle free. The union of such cells is a lower approximation of Cf ree . Define a discrete grid in C-Space and mark any cell of the grid that intersects Cobs as blocked. Find a path through remaining cells by using algorithms for discrete optimization. 159 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 As described, the method can be incomplete: Indeed, it cannot find a path, in the case in figure, even though one path exists. A possible solution is to distinguish between – Cells that are entirely contained in Cobs (FULL) and – Cells that partially intersect Cobs (MIXED) Try to find a path using the current set of cells. If no path is found subdivide the MIXED cells and try again with the new set of cells. 160 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Exact Cell Decomposition Idea: Any straight path within one cell is guaranteed to not intersect any obstacle. The difference with respect to approximate cell decomposition is that the union of cell is exactly Cf ree . Trapezoidal decomposition The construction is based on the sweep vertical line method that corresponds to a method to span the entire space with a vertical line and select lines that pass through vertex of obstacles or environment. Then sample point for each cell and for segments of the cells borders are considered as nodes of the graph, straight segments connecting nodes of cells with the nodes of the cells borders are the edges. 161 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 The resulting roadmap G: 162 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Triangulation decomposition Another method is to triangulate Cf ree by connecting vertices of obstacles with vertices of other obstacles or vertices of the environment that are in line of sight. Center of triangles and midpoints of triangle edges are the nodes of the roadmap. The straight arcs from the centers to the borders are the edges of the roadmap. Compute triangulation: O(n2 ) time naive, O(n) optimal, O(n log n) a good tradeoff. Build easy roadmap from the triangulation: More complex decompositions may be considered. Some are more suitable for generalization to higher dimensional spaces. 163 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Direct roadmap construction In case of requests such as the computation of minimum length paths or of paths that maximize the distance from obstacles, the roadmap can be constructed without subdividing the configuration space into cells. In case of shortest paths requirements the shortest-path roadmaps can be constructed based on the Visibility graph concept. Visibility Graphs In case of obstacles absence, the shortest path from qS to qG is the straight line. On the other hand, in presence of obstacles, it is a sequence of straight lines. 164 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 The path is obtained in the closure of Cf ree and hence the robot can touch the obstacles. We consider as nodes in the roadmap the reflex vertices that are vertices of the polygons for which the interior angle (in Cf ree ) is greater than π 165 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Edges of the roadmap are the arcs between two consecutive reflex vertices and the arcs corresponding to bitangent lines between (mutually visible) reflex vertices To solve a query the initial and final configurations qS and qG are connected to visible vertices 166 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 The optimal path is then computed on the roadmap 167 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Known also as reduced visibility graph The shortest-path roadmap, G, is constructed as follows: a reflex vertex is a polygon vertex for which the interior angle (in Cf ree ) is greater than π. The vertices of G are the reflex vertices. Edges of G are formed from two different sources: Consecutive reflex vertices: If two reflex vertices are the endpoints of an edge of Cobs , then an edge between them is made in G. Bitangent edges: If a bitangent line can be drawn through a pair of reflex vertices, then a corresponding edge is made in G. A bitangent line, is a line that is incident to two reflex vertices and does not poke into the interior of Cobs at any of these vertices. Furthermore, these vertices must be mutually visible from each other. 168 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 We obtain shortest path but with this choice we try to stay as close as possible to obstacles. Hence, any error in the execution of the path may lead to a collision. Moreover, the approach is too complicated in higher dimensional spaces. From the implementation point of view a radial sweep can be performed for the edges computation. 169 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Maximum–clearance roadmaps We may be interested in moving along not-shortest paths but along paths that are far from obstacles. This can be done through the construction of the Maximum–clearance roadmaps that try to keep the robot as far as possible from obstacles and environment limits. Other names: generalized Voronoi diagrams or retraction method. Peculiarity: each point of the roadmap (vertices and points on edges) are equidistant from two points of the boundary of the environment or of obstacles. Retraction: the set S of points on the roadmap is the deformation retract of X = Cf ree (in case of topological spaces): let h : X × [0, 1] → X such that ◮ h(x, 0) = x ∀x ∈ X, ◮ h(x, 1) = g(x) ∀x ∈ X where g : X → S is continuous, ◮ h(s, t) = s ∀s ∈ S, t ∈ [0, 1]. 170 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Voronoi Diagram: The set of line segments separating the regions corresponding to different colors. ◮ Line segment: points equidistant from 2 data points; ◮ Vertices: points equidistant from more than 2 data points. http://www.cs.cornell.edu/Info/People/chew/Delaunay.html 171 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 In case of polygonal Cobs and environment edges are straight line segments or arcs of quadratic curves. Straight edges: Points equidistant from 2 lines Curved edges: Points equidistant from one corner and one line 172 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 173 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Sample-Based Motion Planning Idea: Avoid explicit construction of Cobs , conduct a search that prob the C space with a sampling scheme with a collision detection module as a “black box”. With this approach planning algorithms are independent of the particular geometric models. Distances in C-space (X , ρ) is a metric space if X is a topological space and ρ : X × X → R is such that ∀a, b, c ∈ X 1. ρ(a, b) ≥ 0 non-negativity, 2. ρ(a, b) = 0 ⇔ a = b reflexivity, 3. ρ(a, b) = ρ(b, a) symmetry, 4. ρ(a, b) + ρ(b, c) ≥ ρ(a, c) triangle inequality 174 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Lp metrics in Rn : ρ(x, y) = ( Pn p 1 p i=1 |xi − yi | ) . L2 Euclidean metric, L1 Manhattan metric (in R2 length of a path moving along axis-aligned grid), L∞ (x, y) = maxi=1, ..., n |xi − yi |. Lp norms induced by the Lp metrics: 1 Pn kxkp = ( i=1 kxi kp ) p With the norms: ρ(x, y) = kx − yk that is convenient for computations. 175 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Sampling Theory The C-space is uncountably infinite while there is a countable number of samples. The performance of algorithms based on sampling depends on how the C-space is sampled and on the sequence with which samples are chosen (the algorithm will end after a finite number of samples). The gap between the infinite sampling sequence and the uncountable C-space leads to the concept of denseness. Given U, V ⊂ X topological spaces, U is dense in V if the closure of U is V , i.e. cl(U ) = U ∪ ∂U = V . For example (0, 1) is dense in [0, 1], Q is dense in R. 176 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 The goal is to have a dense sequence of samples in C-space, but dense in probability! For example, consider C = [0, 1], let I = [a, b] =⊂ C with b − a = l. Consider a sequence of k independent random samples, the probability that no one of the samples falls into I is p = (1 − l)k . When the number of samples tends to infinity the probability p tends to 0. Hence, the probability that any nonzero length interval contains no point converges to zero. In other words, the infinite sequence of samples is dense in C with probability 1. 177 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Random Samples The goal is to generate uniform random samples, i.e. to determine a uniform probability density function on the C-space. Random sampling is the easiest of all sampling methods for the C-space because it often consists of Cartesian product. If a uniform sample is taken from X1 and X2 the uniformity is obtained also for X1 × X2 . Hence, for 5 robots with translational movements in [0, 1]2 we have C = [0, 1]10 . Given 10 points uniformly at random form [0, 1] we may rearrange them in a 10D vector obtaining a uniform distribution over C. Low-dispersion Sampling In case of a grid, the resolution can be increased by decreasing the step size of each axis. A possible extension of this concept is the criterion of dispersion: Definition 1. In a metric space (X , ρ) the dispersion of a finite set P of samples is δ(P ) = sup {min{ρ(x, p)}} x∈X p∈P 178 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 L2 and L∞ dispersions: (a) 196 pseudorandom samples (b) 196 pseudorandom samples 179 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Collision Detection Once samples have been obtained it is necessary to check if a configuration is in collision. Hence, a collision detection algorithm is crucial since it will also take the largest amount of time in the planning algorithm. Even though it is often treated as a black box, it is important to study its inner workings to understand the information it provides and its associated computational cost. For 2D convex robots and convex obstacles linear-time collision detection algorithm can be determined. Whenever we are able to determine a model of Cobs we can consider a logical predicate φ : C → T, F with T = true and F = f alse, where q ∈ Cobs ⇒ φ(q) = T and q ∈ / Cobs ⇒ φ(q) = F . The logical predicate may be easily implemented based on the available model. However, it is not sufficient in some cases, for example the logical predicate is a boolean function and it does not provide any information on how far the robot is from the obstacle. 180 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 In this case, a distance function is preferred. Let d : C → [0, +∞) be the distance between q and the closest point in O. For E, F closed sets of Rn ρ(E, F ) = mine∈E, f ∈F ke − f k. Consider the case of a robot with m links A1 , . . . , Am and an obstacle set O with k connected components. The detection of collisions is difficult and can be faced with a two-phase approach. The broad phase: the idea is to avoid computation for bodies that are far away from each other. A bounding–box can be placed around the objects and overlapping between bounding–boxes may be easily checked. The narrow phase: individual pairs of probably closer bodies are checked. 181 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 182 A hierarchical approach can be used: consider two complicated non–convex sets E, F to be checked for collisions. They can be part of the same robots or of a robot and an obstacles. They are subsets of R2 or R3 , defined using any kind of geometric primitives, such as triangles. The idea is to decompose a body into a set of bounding boxes. Such boxes may be as tight as possible around the part of the body or may be as simple as possible so that intersection test is easy. regions has a distance L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Consider a tree TE and TF for each set E and F a vertex corresponds to a region X of points of E (or F ) in a bounding-box. Two child-vertices are constructed by defining two smaller subset of X with associated bounding-boxes whose union cover X. If root vertices e0 and f0 , of TE and TF respectively, do not overlap no collision occurs between E and F . If they overlap we consider the children e1,1 and e1,2 of the root e0 of TE and we check the overlapping between their bounding-boxes and the bounding-box of the root f0 of TF . In case of overlapping (e.g. e12 with f0 ) we test e1,2 with the children f1,1 and f1,2 . The procedure is iterated. For each non overlapping node ei,j or fi,j the region is not further explored by 183 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 creating new children nodes and hence the branch is cut. 184 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Collision detection along paths Motion planning algorithm will also require that an entire path is in Cf ree . Hence, given a parametrization of the path τ : [0, 1] → C we must be able to check whether τ ([0, 1]) ⊂ Cf ree . A possible solution is to determine a resolution ∆q in Cf ree that induce a step size t2 − t1 where t1 , t2 ∈ [0, 1] and ρ(τ (t1 ), τ (t2 )) ≤ ∆q where ρ is a metric on C. If ∆q is too small we incur in high computational times. On the other hand, if it is too large we may miss collisions. Choosing a resolution in [0, 1] may lead to a non efficient resolution in C and to a collision missing. 185 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Incremental Sampling and Searching Such methods are similar to those shown in the chapter on discrete optimization. The main difference is that in those algorithm edges were representing control action while incremental sampling and searching algorithm construct a topological graph where edges are path segments. The main idea behind such algorithm may be synthetized as follows: 1. Initialization: consider a graph G(V, E) with E = ∅ and V contains at least qI and qG (and possibly other points in Cf ree ). 2. Vertex Selection Method (VSM): Choose vertex qcur ∈ V to expand the graph. 3. Local Planning Method (LPM): For some qnew ∈ Cf ree try to construct a path τ : [0, 1] → Cf ree with τ (0) = qcur and τ (1) = qnew . If a collision occurs along τ go to step 2. 4. Insert edges and nodes to the graph: Insert τ in E and if not already in V insert qnew in V . 5. Check for a solution: Check if in G there is the desired path. 6. Iterate: Iterate unitl a solution is found or termination conditions are met. 186 187 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Algorithms usually differ on implementations of VSM (similar to priority queue) and LPM. Similarily to algorithms for graph explorations, unidirectional (single-tree), bidirectional (two-trees) or multi-directional (more than two trees) methods can be used. Bidirectional and multi-directional methods are useful in case of complex spaces with “traps” but are more difficult to manage. qI qG qG qI (a) qI (b) qG (c) qI qG (d) For bidirectional trees we can alternate between trees when selecting vertices L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 while, in case of more than two trees, heuristics on which pair of trees should be selected for connection must be used. Re-adaptation of grid search algorithms Grid search algorithm can be used with the proposed sample and searching scheme. The basic idea is to discretize each dimension of the C–space obtaining k-neighbourhood with k ≥ 1. The algorithm start searching the closest 1-neighbourhood (or k-neighbourhood) that are in Cf ree . For example: N2 (q) = {q ± ∆qi ± ∆qj |1 ≤ i, j ≤ n, i 6= j} ∪ N1 (q). A candidate vertex is extracted from the k-neighbourhood of qcur , it is checked for collision. Then a path on the grid from qcur is computed and tested for collision. The grid graph is computed on the fly. 188 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 If a solution is not found there are two possible alternatives: increase resolution by tuning parameters (how? how much? how often interleave between search and sampling?) renounce to the grid and work on the continuous space. 189 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Rapidly Exploring Dense Tree Idea: no parameter tuning but incrementally construct a search tree that gradually improves the resolution. The tree will densely cover the space in the limit (nodes and edges arbitrarily close to any configuration of the space). At the base of such algorithm there is a dense sequence of samples α(i). If the sequence is random the tree is called Rapidly exploring Random Tree (RRT) while in general is called Rapidly exploring Dense Tree (RDT). Consider first only the exploration of the tree in a obstacle free C–space. An RTD is a topological graph G = (V, E). With S ⊂ Cf ree we denote the set of all points reached by G (swath of the graph): [ S= e([0, 1]) e∈E Scheme of RDT Algorithm with no obstacle , 1 G.init(q0 ) 2 for i = 1 to k do 3 G.add vertex(α(i)); 4 qn ← NEAREST(S(G), α(i)); 5 G.add edge(qn , α(i)); 190 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 45 iterations 2345 iterations 191 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Scheme of RDT Algorithm , 1 G.init(q0 ) 2 for i = 1 to k do 3 qn ← NEAREST(S(G), α(i)); 4 qs ← STOPPING-CONFIGURATION(qn, α(i)); 5 if qs 6= qn then 6 G.add vertex(qs ); 7 G.add edge(qn , qs ); Two possible approaches for NEAREST computation: exact and approximation. Exact approaches may be very difficult in case on paths that are not segments (e.g. in SO(3)), while approximate approaches require a resolution parameter. 192 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Planning on a RDT For a single-tree search the idea is to grow a tree from qI and periodically (k iterations) check is qG is reachable in Cf ree . This can be done by considering qG as the sampled node. In case of a bidirectional search two RDT are grown from qI and qG and the growth should be balanced between the two. After a given number of iteration a node added in a tree is used as a random sample for the other one. When the cardinality of a tree is larger than the other the procedure is swapped between the two trees. The cardinality of a tree can be computed in terms of number of nodes or total length of all arcs. 193 194 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 More formally, we first introduce the following concepts Let r ∈ R+ , n, d ∈ N, the Random r-Disc Graph in d dimensions Gdisc (n, r) is a graph whose n vertices {X1 , . . . , Xn } are independent and uniformly distributed random variables in (0, 1)d and such that (Xi , Xj ) with i, j ∈ {1, . . . , n}, i 6= j is an edge if and only if kXi − Xj k < r. Theorem (Penrose 2003): Connectivity of random r-Graphs Given a random r-disc Graph in d dimensions, Gdisc (n, r), it holds 1 disc lim P ({G (n, r) is conncected}) = n→+∞ 0 if ζd rd > log(n)/n if ζd rd < log(n)/n where ζd is the volume of the unit ball in d dimensions. Let n, d, k ∈ N, the Random k-Nearest Neighbour Graph in d dimension Gnear (n, k) is a graph whose n vertices {X1 , . . . , Xn } are independent and uniformly distributed random variables in (0, 1)d and such that (Xi , Xj ) with i 6= j is an edge if and only if Xj is among the k nearest neighbours of Xi or viceversa. L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 SAMPLING: A sample procedure is a map that provides a sequence of points in C such that the samples are independent and identically distributed. It may be convenient to consider a map (SampleFree in the following) that provides a subsequence of points in Cf ree . NEAREST NEIGHBOUR: is a map that given graph G = (V, E) and a point x ∈ C provides the closest vertex v = N earest(G, x) to x for a given distance function. For example, v = argminv̄∈V kx − v̄k. The function k − N earest(G, x, k) = {v1 , . . . , vk } provides the k nearest vertex of V to x. NEAREST VERTICES: is a map that given graph G = (V, E) a point x ∈ C and a parameter r ∈ R provides the subset of vertices in V that are contained in a ball of radius r centered in x: N ear(G, x, r) = {v ∈ V |v ∈ Bx,r } where the same distance of Nearest function is used. 195 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 196 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 STEERING: given two configurations x, y ∈ C and a value η > 0 the map provides the point closer to y than x is: Steer(x, y) = argminz∈Bx, η kz − yk COLLISION TEST: given to configurations x, x′ ∈ C the function ObstacleF ree(x, x′ ) returns T rue if the line segment between x and x′ lies in Cf ree , F alse otherwise. 197 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Probabilistic RoadMaps (PRM) Consider the case of multiple queries for the same robot and environment. In this case, it worth spending more time in sampling than searching in order to preprocess the models to better handling future queries. Hence, a roadmap is built based on Probabilistic Roadmap Methods (or Sampling-based Roadmaps). The basic method consists in the preprocessing phase and the query phase. The idea of the preprocessing phase is to build a graph by attempting connections among n randomly sampled points in C. The graph should be easily accessible from any point in Cf ree Scheme of PRM Preprocessing , 1 V ← ∅; E ← ∅; 2 for i = 0, . . . , n do 3 qrand ← SampleF ree(ωi ) 4 U ← N ear(G, qr and, r) 5 V ← V ∪ {qrand } 6 for each u ∈ U (in order of increasing ku − qrand k) do 7 if qrand and u are not in the same connected component of G then 8 if ObstacleF ree(qrand , u) then E ← E ∪ {(qrand , u), (u, qrand )} 9 return G For construction the roadmap is a forest. 198 199 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Cobs α(i) Cobs The query phase can be processed only when the tree is sufficiently complete to cover the whole space. Indeed, given qI and qG they can be used as samples and tried to be connected to G. If connection is found a classical graph path search is conducted. Otherwise, with the obtained resolution (given by the sampling dispersion) no solution is found. L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Visibility Roadmap Another possible approach is to consider a smaller representation of the roadmap that is based on the visibility concept. This approach has larger computational costs but suits well for multi-query cases. q V (q) (a) Visibility definition (b) Visibility roadmap A vertex q ∈ V of graph G is a Guard if no other guards lay on the visibility region V (q) of q, i.e. ∃q̃ guard such that q̃ ∈ V (q). q ∈ V of graph G is a Connector if there are at least two different guards in its visibility region, i.e. ∃q̃1 , q̃2 guards such that q ∈ V (q̃1 ) ∩ V (q̃2 ). The neighbourhood function returns the entire set V and hence each sample α(i) tries to connect with all vertices. However, if α(i) cannot be connected to any guards (i.e., α(i) ∈ / V (qG ) ∀qG guards), α(i) becomes a guard and it is inserted in 200 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 G. If α(i) can be connected to two guards of two different connected component of G, α(i) and the two edges towards the guards are inserted in G. Otherwise, α(i) is discarded. A positive aspect of this approach is that there is a dramatic reduction in the number of vertices thanks to the possible discard of samples. Notice that the algorithm is probabilistic complete if random samples are used and is resolution complete if sample are dense even though samples are discarded. A drawback is that better guards can came up during tree construction but are not taken into account. 201 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Rapidly Exploring Random Tree (RRT) Consider the case of single query, the RRT scheme is as follows Scheme of RRT , 1 V ← {qinit }; E ← ∅; 2 for i = 0, . . . , n do 3 qrand ← SampleF ree(ωi ) 4 qnearest ← N earest(G, qrand ) 5 qnew ← Steer(qnearest , qrand ) 6 if ObstacleF ree(qnearest , qnew ) then 7 V ← V ∪ {qnew }; E ← E ∪ {(qnearest , qnew )} 8 return G Figures from Prof. Karaman website: http://sertac.scripts.mit.edu/web/?p=502 202 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Optimality in sample based methods In case we are interest in finding optimal paths, a cost function must be introduced and the RRT and PRM methods can be modified accordingly to provide optimal paths. Since the methods are sample based the optimality is in probability (almost sure convergence to optimal solutions). One of the main differences between RRT* (PRM*) and RRT (PRM) is the use of a varying value of r in the function N ear. The idea is to chose a value that decreases for increasing number of vertices in the graph guaranteeing that a neighbour vertex exists with high probability. Optimal Probabilistic RoadMap Scheme of PRM* Preprocessing , 1 V ← {qinit } ∪ {SampleF ree(ωj )|j = 1, . . . , n}; E ← ∅; 2 for each v ∈ V do 3 U ← N ear(G, qr and, r(n)) \ {v} 4 for each u ∈ U do 5 if ObstacleF ree(v, u) then E ← E ∪ {(v, u), (u, v)} 6 return G 1/d log(n) where r(n) = γP RM e γP RM > γP∗ RM = 2(1 + 1/d)1/d (µ(Cf ree )/ζd )1/d , n µ(Cf ree ) is the volume of Cf ree . The connection radius decay with n and the average number of connection attempted is proportional to log(n). 203 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 RRT* The main concept of RRT* is the rewiring of paths that are not optimal when a new node is inserted. Hence, arcs are added and removed from the tree based on the cost of the paths. Let Line(q1 , q2 ) : [0, s] → C be the straight line between the configurations q1 and q2 . Let denote with P arent(v) the unique vertex u such that (u, v) ∈ E. Cost : V → R+ maps a vertex v in the cost of the unique path from the root vertex v0 to v. We suppose Cost(v) = Cost(P arent(v)) + c(Line(P arent(v), v)) and Cost(v0 ) = 0. Let r(|V |) = min{γRRT ∗ (log(|V |)/|V |)1/d , η} with γRRT ∗ ≥ 2(1 + 1/d)1/d (µ(Cf ree )/ζd )1/d , µ(Cf ree ) is the volume of Cf ree . 204 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Scheme of RRT* , 1 V ← {qinit }; E ← ∅; 2 for i = 0, . . . , n do 3 qrand ← SampleF ree(ωi ) 4 qnearest ← N earest(G, qrand ) 5 qnew ← Steer(qnearest , qrand ) (depends on value η) 6 if ObstacleF ree(qnearest , qnew ) then 7 Qnear ← N ear(G, qnew , r(|V |)) 8 V ← V ∪ {qnew }; E ← E ∪ {(qnearest , qnew )} 9 qmin ← qnearest ; cmin ← Cost(qnearest ) + c(Line(qnearest , qnew )) 10 for each qnear ∈ Qnear do 11 if ObstacleF ree(qnear , qnew ) ∧ Cost(qnear ) + c(Line(qnear , qnew )) < cmin then 12 qmin ← qnear ; cmin ← Cost(qnear ) + c(Line(qnear , qnew )) 13 E ← E ∪ {(qmin , qnew )} 14 for each qnear ∈ Qnear do 15 if ObstacleF ree(qnew , qnear ) ∧ Cost(qnew ) + c(Line(qnew , qnear )) < Cost(qnear ) then 16 qparent ← P arent(qnear ); 17 E ← (E \ {(qparent , qnear )}) ∪ {(qnew , qnear )} 18 return G 205 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Figures from Prof. Karaman website: http://sertac.scripts.mit.edu/web/?p=502 206 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Kynodynamic Planning Consider the problem of determining a control law u to steer a dynamic system ẋ = f (x, u) from x(0) = x0 toward a reachable point xG avoiding all obstacles. RT Consider also the cost function J (x) = 0 g(x(t))dt to be minimized. Let dist : X × X → R+ be the optimal cost of a trajectory that connects the two points avoiding all obstacles. More formally dist(z1 , z2 ) = minT ∈R+ ,u:[0, T ]→U J (x)subject to ẋ = f (x, u), ∀t ∈ [0, T ] x(0) = z1 x(T ) = z2 Also in this case the Nearest function is given by N earest(G, z) = argminv∈V dist(v, z). In order to define the set of vertices near a sample we first have to consider small time controllable points. Let Reach(z, l) = {z ′ ∈ X : dist(z, z ′ ) ≤ l ∨ dist(z ′ , z) ≤ l} where l(n) is chosen so that Reach(z, l(n)) contains a ball of volume γ log(n)/n. The set of near vertices 207 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 is hence N ear(G, z, n) = V ∩ Reach(z, l(n)) with n = |V |. The (local) steering function computes then an optimal path between two points z1 and z2 with kz1 − z2 k ≤ ǫ. The function provides both the control and the time that are solution of the optimal control problem above. Example of an optimal planning for a Dubins car is reported in figure: Figura 17: From a) to c) from 500 to 6500 samples for RRT*, in d) RRT after 2000 samples. Picture from Karaman, Sertac, and Emilio Frazzoli. “Optimal Kinodynamic Motion Planning Using Incremental Sampling-based Methods.” 49th IEEE Conference on Decision and Control (CDC). Atlanta, GA, USA, 2010. 76817687. 208 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Artificial potential based planning For online planning it can be useful to use the artificial potential field approacha . The idea is to let a point (representative point of the robot such as the center of mass) move under the action of a potential field U . The potential field is the combination of an attractive action toward the desired target and a repulsive action from Cobs . The most promising direction of motion is given by the opposite of the gradient −∇U (q). Attractive potential Let qg be the goal configuration we want to steer the system to. qg is hence considered as a minimum of a potential, e.g. Ua1 (q) = 21 ka eT (q)e(q) = 12 ka kek2 with ka > 0 and e(q) = q − qg . Ua1 is positive definite with a global minimum in qg . The attractive force fa1 = −∇Ua1 (q) = ka e(q) has large module for configuration far from qg . Another possible choice is Ua2 (q) = ka ke(q)k with a corresponding attractive e(q) that is constant in module but it is not defined force fa2 = −∇Ua2 (q) = ka ke(q)k in qg . a Refer to the book: “Robotics: Modelling, Planning and Control” by Siciliano, B., Sciavicco, L., Villani, L., Oriolo, G., Springer-Verlag London, 2009. 209 210 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 A possible trade-off between the two potentials is to glue them in ke(q)k = 1 to have an attractive force that is limited in module and is defined everywhere: U for ke(q)k ≥ 1 a2 Ua (q) = Ua otherwise 1 Repulsive potential To avoid collisions with Cobs the idea is to overimpose a repulsive potential to the one that attracts the robot toward qg . For any COi convex component of Cobs we define the following repulsive potential γ 1 1 kr,i for ηi (q) ≤ η0,i γ ηi (q) − η0,i Uri (q) = 0 otherwise where kr,i > 0 and ηi (q) = minq ′ ∈COi kq − q ′ k is the distance of q from CO i . η0,i is the radius of influence of Ur,i . The constant γ is typically chosen equal to 2. The repulsive force is fri (q) = −∇Ur,i = kr,i ηi2 (q) 0 1 ηi (q) − 1 η0,i γ−1 ∇ηi (q) for ηi (q) ≤ η0,i otherwise L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 From the convexity of any COi we have that qm = argminq ′ ∈COi kq − q ′ k exists and it is unique. ∇ηi (q) is orthogonal to the equipotential curve through q and it is directed as the oriented half-line from qm through q. Pp The total repulsive potential is Ur (q) = i=1 Ur,i (q). We suppose that the goal configuration is out of the radius of influence of any COi , i.e. η(qg ) > η0,i , ∀i = 1, . . . , p. The total potential the robot is subject to is Ut (q) = Ua (q) + Ur (q) with a Pp corresponding force ft (q) = −∇Ut = fa (q) + i=1 fr,i (q). The problem with such approach is that there exists a unique global minimum but there may be several local minima where the robot can steer to. Hence, as it is the method is not complete and techniques to avoid local minima must be considered. Planning Method The potential fields can be used in different ways to steer a robot. In case of online planning, the force ft generated by the potential field can be used as generalized forces acting on the dynamical system: τ = ft (q). This approach will lead toward a more natural motion since the effect of ft is filtered by the dynamic of the robot. Another possible approach is to consider the robot as a 211 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 unitary mass point moving under the effect of ft : q̈ = ft (q); or the force can be seen as a reference speed: q̇ = ft (q). The latter provides faster reaction to the effects of ft and is used as kinematic control where low level control references are provided. The former approach requires inverse kinematic resolution. The first two methods will steer the robot toward the final destination but with not null speed as the latter does. In such cases a damping term must be added to ft . Potential planning methods can be used also in discrete (or discretized) state space where to each cell a value of the potential field is associated. The idea is still to move the robot toward potential minimizers. 212 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Figures from Prof. Oriolo course: http://www.dis.uniroma1.it/˜oriolo/amr/ 213 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Behaviour based Algorithms: Bug Algorithms In case of robots with on-board sensors that provide only local knowledge of the environment, the classical planning algorithms can not be applied without an a priori information on the environment. The behaviour based planning algorithms are usually applied in case of such limited knowledge. The main idea is that robot reacts to what it detects in the environment by following pre-assigned rules. The bug algorithm is a very simple behaviour based planning method for mobile robots and is based on two behaviours (control laws): move straight to the goal, follow a wall. Few assumptions must be made: robots are points that know the direction toward the goal and can measure both the traveled distance and the distance between two points. The robots have on board (tactile) sensors that detect the contact with obstacles and are able to follow the obstacle contour. The world is supposed to be a bounded subset of R2 with a finite number of obstacles. 214 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Scheme of Bug-0 Algorithm , 1 Head toward the goal; 2 if the goal is achieved then stop else 3 if a contact with an obstacle is detected then follow the obstacle’s boudary (on the left) until heading toward the goal is again possible 215 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 The Bug-0 Algorithm is not complete 216 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Consider now a smarter bug that is able to compute the distance from the goal, to compute the traveled distance and to recognize a point previously crossed. Scheme of Bug-1 Algorithm , 1 Head toward the goal; 2 if the goal is achieved then stop else 3 if a contact with an obstacle is detected then circumnavigate the obstacle (toward the left), identify the closest point L to the goal in the obstacle’s boundary and return to this point along the shortest path along obstacle boundary. How the bug can recognize that the goal is not reachable? (e.g. from L the direction toward the goal points into an obstacle the goal is unreachable). A lower bound of the distance T traveled by the bug is the distance D from start P P to goal. An upper bound is T ≤ D + 3/2 Pi with Pi is the sum of the perimeters of all obstacles. 217 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Consider another extension Scheme of Bug-2 Algorithm , 1 Head toward the goal along the goal– line; 2 if the goal is achieved then stop else 3 if a hit point is reached follow the obstacle’s boundary (toward the left) until the goal–line is crossed at a leave point closer to the goal than any previous hit point on the same side of the goal–line. A lower bound of the distance T traveled by the bug is the distance D from start P to goal. An upper bound is T ≤ D + 1/2 ni Pi where the sum is done over all the obstacles intersected by the goal–line, Pi is the perimeter of the intersected obstacles and ni is the number of times the goal–line intersects obstacle i. 218 L. Pallottino, Sistemi Robotici Distribuiti - Versione del 28 Maggio 2015 Comparison between Bug-1 and Bug-2 219