500 likes | 1.17k Views
Robot Motion Planning Introduction One of the ultimate goals in robotics is to design autonomous robots: robots that you can tell what to do without having to say how to do it. Introduction
E N D
Introduction • One of the ultimate goals in robotics is to design autonomous robots: robots that you can tell what to do without having to say how to do it.
Introduction • To be able to plan a motion, a robot must have some knowledge about environment in which it is moving. • This motion planning problem has to be solved whenever any kind of robot wants to move in physical space. • The type of motions a robot can execute depend on its mechanics.
Work Space & Configuration Space • R : robot, simple polygon • R (x, y): robot translated over a vector (x, y) • Pi : obstacles • S : S={P1,…,Pt}
Work Space & Configuration Space • R (x, y, Ф) • Ф: rotated clockwise through an angleФ
Work Space & Configuration Space • C(R) : configuration space, the parameter space of a robot R • The work space is the space where the robot actually moves around. • The configuration space is the parameter space of the robot.
Work Space & Configuration Space • Cforb (R,S) : forbidden configuration space • Cfree (R,S) : free configuration space
A Point Robot • For a point robot, the work space and the configuration space are identical. • To simplify the description we restrict the motion of the robot to a large bounding box B that contains the set of polygons.
A Point Robot • This free space is a possibly disconnected region, which may have holes. • Our goal is to compute a representation of the free space that allows us to find a path for any start and goal position. • Use trapezoidal map tocompute free space.
A Point Robot • trapezoidal map (chapter 6) • O (nlogn)
A Point Robot • T(Cfree) : the trapezoidal map of the free space • Use T(Cfree) to find path from a start position pstart to a goal position pgoal.
A Point Robot • Any path we report must be collision-free, since it consists of segments inside trapezoids and all trapezoids are in free space. • We always find a collision-free path if one exists.
A Point Robot • Time Complexity: process S (trapezoidal map) : O(nlogn) breadth-first search : O(n)
Minkowski Sums • The same approach can be used if the robot is a polygon. • The configuration-space obstacles are no longer same as the obstacles in work space. • CP : configuration-space obstacles
Minkowski Sums • CP : configuration-space obstacles
Minkowski Sums • Minkowski Sums
Express the CP as minkowski sums • p = (px, py) • -p = (-px, -py) • -S := {-p : p S } • Let R be a planar, translating robot and let P be an obstacle. Then the C-obstacle of P is P (-R(0,0)).
Minkowski Sums • If P and R don’t have parallel edges, then the number of edges of the Minkoswi sum is exactly n + m.
Compute Minkowski Sums • For each pair v, w of vertices, with v P and w R, compute v + w. Next, compute the convex hull of all these sums.
Compute Minkowski Sums • Java Applet
It only looks at pairs of vertices that are extreme in the same direction. • In the algorithm we use the notation angle(pq) to denote the angle that the vector pq makes with the positive x-axis.
c P 3 4 R 1 2 a b
i=1 j=1 v4=v1 w5=w1 Add (a+1) as a vertex to P R (a+1)
Angle(v1v2) Angle(w1w2) angle(v1v2) = angle(w1w2) i=2 j=2 a b 1 2 (a+1)
i=2 j=2 Add (b+2) as a vertex to P R (a+1) (b+2)
c Angle(v2v3) Angle(w2w3) angle(v2v3) > angle(w2w3) i=2 j=3 b 3 2 (a+1) (b+2)
i=2 j=3 Add (b+3) as a vertex to P R (b+3) (a+1) (b+2)
c Angle(v2v3) Angle(w3w4) angle(v2v3) < angle(w3w4) i=3 j=3 b 4 3 (b+3) (a+1) (b+2)
i=3 j=3 Add (c+3) as a vertex to P R (c+3) (b+3) (a+1) (b+2)
c Angle(v3v4) Angle(w3w4) angle(v3v4) > angle(w3w4) i=3 j=4 (c+3) a 4 3 (b+3) (a+1) (b+2)
i=3 j=4 Add (c+4) as a vertex to P R (c+3) (c+4) (b+3) (a+1) (b+2)
c Angle(v3v4) Angle(w4w5) angle(v3v4) < angle(w4w5) i=4 j=4 (c+3) (c+3) (c+4) a 4 (b+3) (b+3) 1 (a+1) (a+1) (b+2) (b+2)
i=4 j=4 Add (a+4) as a vertex to P R (c+4) (c+3) (b+3) (a+4) (a+1) (b+2)
(c+4) (c+3) (a+4) (b+3) (a+1) (b+2)
Time Complexity • It is O(n+m) if both polygons are convex. • It is O(nm) if one of the polygons is convex and one is non-convex. • It is O(n m ) if both polygons are non-convex. 2 2
Translational Motion Planning • A polygon with m vertices can be triangulated in O(mlogm) time. • Computing CP of each of triangles takes linear time in total. • Merge step can be done in O(nlogn). T(n)=