Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Robot Motion Planning
GETTING WHERE YOU WANT TO BE
FARZAD NOZARIAN
AMIR KABIR UNIVERSITY OF TECHNOLOGY
FALL 2013
DEPARTMEN...
References
๏ต Computational Geometry
Algorithms and Applications
de Berg, M., Cheong, O., van Kreveld, M., Overmars, M - 3r...
Ultimate Goals in Robotics
Autonomous robots
tell what to do without having to say how to do it
plan its own motion
robot ...
Motion planning problem
any kind of robot wants to move in physical space
autonomous robot moving around in some factory e...
In this presentation
introduce some of the basic notions and techniques used in motion
planning
general motion planning pr...
Types of robot motions
depend on its mechanics
move in any direction
constrained in their motions
Car-like robots
cannot m...
Work Space and Configuration Space
Let R be a robot
set S={P1,...,Pt} of obstacles
placement, or configuration, of
the rob...
Reference point, an alternative way
We can specify a placement
of R by simply stating the coordinates of the reference poi...
suppose the robot can change its orientation
by rotation
We then need an extra parameter, ฯ†
to specify the orientation of ...
Configuration Space
The parameter space of a robot R denoted by ๐“’ (R)
A point p in this configuration space corresponds to...
Forbidden & free configuration space
not all points in configuration space are possible
robot intersects one of the obstac...
Mapping to Conf. Space
A path for the robot maps to a curve in
the configuration space, and vice versa
Every placement alo...
One subtle issue that we have ignored
Does the robot collide
with an obstacle when it touches that obstacle?
Obstacles are...
A Point Robot
Itโ€™s always good to start with a simple case!
The obstacles are polygons with disjoint interiors, whose
tota...
Bounding box
Our Goal ?
we add one infinitely large obstacle
๐’ž๐‘“๐‘Ÿ๐‘’๐‘’
๐ต
๐’ž๐‘“๐‘Ÿ๐‘’๐‘’ = เต˜๐ต แˆซ
๐‘–=1
๐‘ก
๐’ซ๐‘–
Compute a representation of the...
Represent Free Space
Algorithm ComputeFreeSpace(S)
Input. A set S of disjoint polygons.
Output. A trapezoidal map of ๐’žfree...
Trapezoidal Map
Compute the trapezoidal map T(E) with algorithm
Trapezoidal Map
Remove the trapezoids that lie inside one ...
How do we use T(๐’ž free) to find a path from a
start position pstart to a goal position pgoal?
If pstart and pgoal are in t...
Road Map
The road map is a graph ๐’ขroad , which is embedded in the plane
What is Road map ?
17
Plan a motion
We can use the road map, together with the trapezoidal map,
to plan a motion from a start to a goal position...
1. Find the trapezoid โˆ†start containing pstart and the trapezoid โˆ†goal containing pgoal.
2. if โˆ†start or โˆ†goal does not ex...
Are the paths we report always collision-free ?
Do we always find a collision-free path if one exists ?
Letโ€™s think about ...
Analyze the time of algorithm
Finding the trapezoids containing the start and goal
can be done in
O( logn )
using the poin...
Analyze the time of algorithm
Theorem 13.2
Let R be a point robot moving among a set S of polygonal
obstacles with n edges...
Minkowski Sums
The same approach can be used if the robot is a polygon
one difference
the configuration-space obstacles ar...
The Minkowski sum of two sets S1โŠ‚R2 and S2โŠ‚R2 , denoted by S1โŠ•S2,
is defined as :
S1 โŠ• S2 โ‰” ๐‘ + ๐‘ž: ๐‘ โˆˆ ๐‘†1, ๐‘ž โˆˆ ๐‘†2
Minkowsk...
Minkowski Sums
Theorem 13.3
Let R be a planar, translating robot and
let P be an obstacle.
Then the C-obstacle of P is P โŠ•...
Useful properties of Minkowski sums
Observation 13.4
Let P and R be two objects in the plane, and let ๐’žP := P โŠ• R. An extr...
Theorem 13.5
Let P and R be two convex polygons with n and m edges, respectively.
Then the Minkowski sum P โŠ• R is a convex...
Minkowski Sum Algorithm
A very simple algorithm
For each pair v, w of vertices,
with v โˆˆ P and w โˆˆ R, compute v + w
Comput...
Algorithm MINKOWSKISUM(P,R)
Input. A convex polygon P with vertices v1,...,vn, and a convex polygon R
with vertices w1, .....
Translational Motion Planning
Lemma 13.13
The free configuration space ๐’žfree of a convex robot of constant complexity
tran...
Thanks !
End
Upcoming SlideShare
Loading in โ€ฆ5
×

Ultimate Goals In Robotics

716 views

Published on

This presentation provides a summary of chapter 13 of book "Computational Geometry: Algorithms and Applications" by Mark de Berg.

Published in: Education
  • Login to see the comments

Ultimate Goals In Robotics

  1. 1. Robot Motion Planning GETTING WHERE YOU WANT TO BE FARZAD NOZARIAN AMIR KABIR UNIVERSITY OF TECHNOLOGY FALL 2013 DEPARTMENT OF COMPUTER ENGINEERING AND IT
  2. 2. References ๏ต Computational Geometry Algorithms and Applications de Berg, M., Cheong, O., van Kreveld, M., Overmars, M - 3rd ed. 2008 Chapter 13 - Robot Motion Planning
  3. 3. Ultimate Goals in Robotics Autonomous robots tell what to do without having to say how to do it plan its own motion robot must have some knowledge about the environment where obstacles are located where walls and machines are located can be provided by a floor plan For other information detect obstacles that are not on the floor plan people rely on its sensors 1
  4. 4. Motion planning problem any kind of robot wants to move in physical space autonomous robot moving around in some factory environment quite rare compared to the robot arms Consists of a number of links, connected by joints Its base is firmly connected to the ground Other end carries a hand Usually two types of joints Revolute joint Prismatic joint Perform tasks like welding or spraying 2
  5. 5. In this presentation introduce some of the basic notions and techniques used in motion planning general motion planning problem is quite difficult some simplifying assumptions simplification & assumptions 2-dimensional motion planning problem planar region environment polygonal obstacles polygonal robot environment is static(no people walking !) 3
  6. 6. Types of robot motions depend on its mechanics move in any direction constrained in their motions Car-like robots cannot move sideways certain minimum turning radius Itโ€™s geometry is quite complicated robots that can move in arbitrary directions Can translate only Can rotate 4
  7. 7. Work Space and Configuration Space Let R be a robot set S={P1,...,Pt} of obstacles placement, or configuration, of the robot can be specified by a translation vector For instance (1,โˆ’1),(1,1),(0,3),(โˆ’1,1),and (โˆ’1,โˆ’1) R(6,4) (7,3),(7,5),(6,7),(5,5), and(5,3) 5
  8. 8. Reference point, an alternative way We can specify a placement of R by simply stating the coordinates of the reference point Thus R(x,y) specifies that the robot is placed with its reference point at (x,y) In general, the reference point does not have to be inside the robot; it can also be a point outside the robot 6
  9. 9. suppose the robot can change its orientation by rotation We then need an extra parameter, ฯ† to specify the orientation of the robot We let R(x,y,ฯ†) denote the robot with its reference point at (x,y) and rotated counterclockwise through an angle ฯ† Degrees of freedom (DOF) two for planar robots that can only translate three for planar robots that can rotate + translate 2D 3D a translating robot in R3 has three degrees of freedom to translate and rotate in R3 has six degrees of freedom 7Orientation of Robots
  10. 10. Configuration Space The parameter space of a robot R denoted by ๐“’ (R) A point p in this configuration space corresponds to a certain placement R(p) of the robot in the work space example : translating and rotating robot in the plane the configuration space is 3-dimensional point (x,y,ฯ†) R(x,y,ฯ†) in the work space โ‰ˆ A translating robot in the plane is the 2-dimensional Euclidean plane configuration space identical to work space Work Space is the space where the robot actually moves around Configuration Space is the parameter space of the robot A polygonal robot in the work space is represented by a point in configuration space 8
  11. 11. Forbidden & free configuration space not all points in configuration space are possible robot intersects one of the obstacles in S are forbidden forbidden configuration space, or forbidden space denoted by ๐’žforb(โ„›,S) placements where the robot does not intersect any obstacle denoted by ๐’žfree(โ„›,S)free configuration space or free space 9
  12. 12. Mapping to Conf. Space A path for the robot maps to a curve in the configuration space, and vice versa Every placement along the path simply maps to the corresponding point in configuration space Can we also map obstacles to configuration space? yes An obstacle P is mapped to the set of points p in configuration space such that R(p) intersects P configuration-space obstacle or ๐’ž-obstacle ๐’ž-obstacles may overlap even when the obstacles in the work space are disjoint 10
  13. 13. One subtle issue that we have ignored Does the robot collide with an obstacle when it touches that obstacle? Obstacles are open sets, so that the robot is allowed to touch them In practice a movement where the robot passes very close to an obstacle cannot be considered safe because of possible errors in robot control Enlarging all the obstacles before the computation of a path 11
  14. 14. A Point Robot Itโ€™s always good to start with a simple case! The obstacles are polygons with disjoint interiors, whose total number of vertices is denoted by n As before Denote the obstacles by P1,...,Pt Denote the robot by R Natural assumption that its reference point is the point robot itself The work space and the configuration space are identical finding a path from a particular start position to a particular goal position ? 12
  15. 15. Bounding box Our Goal ? we add one infinitely large obstacle ๐’ž๐‘“๐‘Ÿ๐‘’๐‘’ ๐ต ๐’ž๐‘“๐‘Ÿ๐‘’๐‘’ = เต˜๐ต แˆซ ๐‘–=1 ๐‘ก ๐’ซ๐‘– Compute a representation of the free space that allows us to find a path for any start and goal position Trapezoidal map Vertical Extension O(nlogn) 13
  16. 16. Represent Free Space Algorithm ComputeFreeSpace(S) Input. A set S of disjoint polygons. Output. A trapezoidal map of ๐’žfree(R,S) for a point robot R. 1. Let E be the set of edges of the polygons in S. 2. Compute the trapezoidal map T(E) with algorithm TRAPEZOIDALMAP described in Chapter 6. 3. Remove the trapezoids that lie inside one of the polygons from T(E) and return the resulting subdivision. Lemma 13.1A trapezoidal map of the free configuration space for a point robot moving among a set of disjoint polygonal obstacles with n edges in total can be computed by a randomized algorithm in O(nlogn) expected time. 14
  17. 17. Trapezoidal Map Compute the trapezoidal map T(E) with algorithm Trapezoidal Map Remove the trapezoids that lie inside one of the polygons from T(E) 15
  18. 18. How do we use T(๐’ž free) to find a path from a start position pstart to a goal position pgoal? If pstart and pgoal are in the same trapezoid of the map pstart pgoal If the start and goal position are in different trapezoids To guide the motion across trapezoids we construct a road map through the free space 16
  19. 19. Road Map The road map is a graph ๐’ขroad , which is embedded in the plane What is Road map ? 17
  20. 20. Plan a motion We can use the road map, together with the trapezoidal map, to plan a motion from a start to a goal position Pstart Pgoal โˆ†start โˆ†goal 18
  21. 21. 1. Find the trapezoid โˆ†start containing pstart and the trapezoid โˆ†goal containing pgoal. 2. if โˆ†start or โˆ†goal does not exist 3. then Report that the start or goal position is in the forbidden space. 4. else Let ฮฝstart be the node of ๐’ขroad in the center of โˆ†start . 5. Let ฮฝgoal be the node of ๐’ขroad in the center of โˆ†goal. 6. Compute a path in ๐’ขroad from ฮฝstart to ฮฝgoal using breadth-first search. 7. if there is no such path 8. then Report that there is no path from pstart to pgoal. 9. else Report the path consisting of a straight-line motion from pstart to ฮฝstart, the path found in ๐’ขroad, and a straight-line motion from ฮฝgoal to pgoal. Algorithm ComputePath( T(๐’žfree ), ๐’ข road, pstart, pgoal) Input. The trapezoidal map T( ๐’ž free) of the free space, the road map ๐’ขroad , a start position pstart, and goal position pgoal. Output. A path from pstart to pgoal if it exists. If a path does not exist, this fact is reported. Compute Path Algorithm 19
  22. 22. Are the paths we report always collision-free ? Do we always find a collision-free path if one exists ? Letโ€™s think about its correctness 20
  23. 23. Analyze the time of algorithm Finding the trapezoids containing the start and goal can be done in O( logn ) using the point location structure of Chapter 6 Or alternatively simply check all trapezoids in linear time 1 2 The breadth-first search takes linear time in the size of the graph ๐’ขroad The time to report the path is bounded by the maximum number of arcs on a path in ๐’ขroad, which is O(n) 3 21
  24. 24. Analyze the time of algorithm Theorem 13.2 Let R be a point robot moving among a set S of polygonal obstacles with n edges in total. We can preprocess S in O(nlogn) expected time, such that between any start and goal position a collision-free path for R can be computed in O(n) time, if it exists. 22
  25. 25. Minkowski Sums The same approach can be used if the robot is a polygon one difference the configuration-space obstacles are no longer the same as the obstacles in work space The configuration-space obstacle, or ๐’ž-obstacle, of an obstacle P and the robot R is defined as the set of points in configuration space such that the corresponding placement of R intersects P ๐’ž๐’ซ: = ๐‘ฅ, ๐‘ฆ : โ„› ๐‘ฅ, ๐‘ฆ ๐’ซ โˆฉ โ‰  0 23
  26. 26. The Minkowski sum of two sets S1โŠ‚R2 and S2โŠ‚R2 , denoted by S1โŠ•S2, is defined as : S1 โŠ• S2 โ‰” ๐‘ + ๐‘ž: ๐‘ โˆˆ ๐‘†1, ๐‘ž โˆˆ ๐‘†2 Minkowski Sums where p+q denotes the vector sum of the vectors p and q if p=(px,py) and q=(qx,qy) then we have : p+q := (px+qx, py+qy) 24
  27. 27. Minkowski Sums Theorem 13.3 Let R be a planar, translating robot and let P be an obstacle. Then the C-obstacle of P is P โŠ• ( โˆ’R(0,0) ) โˆ’p := (โˆ’px,โˆ’py) For a set S โˆ’S := { โˆ’p: p โˆˆ S } For a point p=(px,py) more info 25
  28. 28. Useful properties of Minkowski sums Observation 13.4 Let P and R be two objects in the plane, and let ๐’žP := P โŠ• R. An extreme point in direction ิฆ๐‘‘ on ๐’žP is the sum of extreme points in direction ิฆ๐‘‘ on P and R we now prove that the Minkowski sum of two convex polygons has linear complexity 26
  29. 29. Theorem 13.5 Let P and R be two convex polygons with n and m edges, respectively. Then the Minkowski sum P โŠ• R is a convex polygon with at most n + m edges. Proof. e must be generated by points on P and R that are extreme in the same direction at least one of P and R must have an edge that is extreme in that direction total number of edges is at most n + m 27Useful properties of Minkowski sums
  30. 30. Minkowski Sum Algorithm A very simple algorithm For each pair v, w of vertices, with v โˆˆ P and w โˆˆ R, compute v + w Compute the convex hull of all these sums An alternative algorithm It only looks at pairs of vertices that are extreme in the same direction angle(pq) notation 28
  31. 31. Algorithm MINKOWSKISUM(P,R) Input. A convex polygon P with vertices v1,...,vn, and a convex polygon R with vertices w1, ..., wm. The lists of vertices are assumed to be in counter-clockwise order, with v1and w1 being the vertices with smallest y-coordinate Output. The Minkowski sum P โŠ• R. 1. iโ†1; jโ†1 2. vn+1โ†v1; vn+2โ†v2; wm+1โ†w1; wm+2โ†w2 3. repeat 4. Add vi +wj as a vertex to PโŠ•R. 5. if angle(vivi+1) < angle(wjwj+1) 6. then iโ†(i+1) 7. else if angle(vivi+1) < angle(wjwj+1) 8. then jโ†(j+1) 9. else iโ†(i+1); jโ†(j+1) 10. until i=n+1 and j=m+1 Minkowski Sum Algorithm 29
  32. 32. Translational Motion Planning Lemma 13.13 The free configuration space ๐’žfree of a convex robot of constant complexity translating among a set of polygons with n edges in total can be computed in O(nlog2n) time. Theorem 13.14 Let R be a convex robot of constant complexity translating among a set S of disjoint polygonal obstacles with n edges in total. We can preprocess S in O(nlog2n) expected time, such that between any start and goal position a collision-free path for R, if it exists, can be computed in O(n) time. 30
  33. 33. Thanks ! End

ร—