480 likes | 593 Views
CS B659: Principles of Intelligent Robot Motion. Configuration Space. Readings. Ch 3.1-3.4 A Simple Motion-Planning Algorithm for General Robot Manipulators , T. Lozano-Perez, 1987. * Spatial Planning: a Configuration Space Approach , T. Lozano-Perez, 1980. Agenda.
E N D
CS B659: Principles of Intelligent Robot Motion Configuration Space
Readings • Ch 3.1-3.4 • A Simple Motion-Planning Algorithm for General Robot Manipulators, T. Lozano-Perez, 1987. • * Spatial Planning: a Configuration Space Approach, T. Lozano-Perez, 1980.
Agenda • Introduce configuration spaces (C-spaces) • Topology of C-spaces • Mapping obstacles into C-space • Discuss semester project ideas • Reading schedule
Motion Planning Framework Continuous representation (configuration space and related spaces + constraints) Discretization (random sampling, criticality-based decomposition) Graph searching (blind, best-first, A*)
Robots have different shapes and kinematics! What is a path?
Idea: Reduce robot to a point Configuration Space Feasible space Forbidden space
Configuration Space qn q=(q1,…,qn) q3 q1 q2 • A robot configuration is a specification of the positions of all robot points relative to a fixed coordinate system • Usually a configuration is expressed as a “vector” of parameters
Rigid Robot 3-parameter representation: q = (x,y,q) In a 3-D workspace q would be of the form (x,y,z,a,b,g) workspace robot reference direction q y reference point x
Articulated Robot q2 q1 q = (q1,q2,…,q10)
Configuration Space Space of all its possible configurations But the topology of this space is usually not that of a Cartesian space q 3-D cylinder embedded in 4-D space q 2p q’ robot y q y x x S1 R2S1
Configuration Space Space of all its possible configurations But the topology of this space is usually not that of a Cartesian space C = S1 x S1
Configuration Space Space of all its possible configurations But the topology of this space is usually not that of a Cartesian space C = S1xS1
Configuration Space Space of all its possible configurations But the topology of this space is usually not that of a Cartesian space C = S1xS1
What is its topology? q2 q1 (S1)7xI3 (I: Interval of reals)
Structure of Configuration Space It is a manifold, i.e., for each point q, there is a 1-to-1 map between a neighborhood of q and a Cartesian space Rn, where n is the dimensionality of C This map is a local coordinate system called a chart. C can always be covered by a finite number of charts. Such a set is called an atlas
Rigid Robot in 2-D Workspace 3-parameter representation: q = (x,y,q)with q [0,2p). Two charts are needed Other representation: q = (x,y,cosq,sinq)c-space is a 3-D cylinder R2 x S1 embedded in a4-D space workspace robot reference direction q y reference point x
Rigid Robot in 3-D Workspace q = (x,y,z,a,b,g) Other representation: q = (x,y,z,r11,r12,…,r33) where r11, r12, …, r33 are the elements of rotation matrix R:r11 r12 r13 r21 r22 r23 r31 r32 r33with: ri12+ri22+ri32 = 1 ri1rj1 + ri2r2j + ri3rj3 = 0 det(R) = +1
Rigid Robot in 3-D Workspace q = (x,y,z,a,b,g) Other representation: q = (x,y,z,r11,r12,…,r33) where r11, r12, …, r33 are the elements of rotation matrix R:r11 r12 r13 r21 r22 r23 r31 r32 r33with: ri12+ri22+ri32 = 1 ri1rj1 + ri2r2j + ri3rj3 = 0 det(R) = +1 The c-space is a 6-D space (manifold) embedded in a 12-D Cartesian space. It is denoted by R3xSO(3)
Parameterization of SO(3) Euler angles: (f,q,y) Unit quaternion:(cos q/2, n1sin q/2, n2sin q/2, n3sin q/2) z z z z y f y q y y y x x x x 1 2 3 4
Parameterization of SO(3) Euler angles: (f,q,y) Unit quaternion:(cos q/2, n1sin q/2, n2sin q/2, n3sin q/2) z z z z y f y q y y y x x x x 1 2 3 4 More on this next week…
Notion of a Path A path in C is a piece of continuous curve connecting two configurations q and q’:t: s[0,1] t (s) C q 2 q q q q q t(s) 1 n 0 4 3
Notion of Trajectory vs. Path A trajectory is a path parameterized by time:t: t [0,T] t (t) C q 2 q q q q q t(s) 1 n 0 4 3
q workspace 2p robot reference direction y q y reference point x x Translating & Rotating Rigid Robot in 2-D Workspace configuration space What is the placement of the robot in the workspace at configuration (0,0,0)?
q workspace 2p robot reference direction y q y reference point x x Translating & Rotating Rigid Robot in 2-D Workspace configuration space What is the placement of the robot in the workspace at configuration (0,0,0)?
q workspace What is this path in the workspace? 2p robot reference direction y q P y reference point x x What would be the path in configuration space corresponding to a full rotation of the robot about point P? Translating & Rotating Rigid Robot in 2-D Workspace configuration space
q q q q q 1 3 0 n 4 Every robot maps to a point in its configuration space ... ~40 D 15 D 6 D 12 D ~65-120 D
... and every robot path is a curve in configuration space q q q q q 1 3 0 n 4
q q q q q 1 3 0 n 4 But how do obstacles (and other constraints) map in configuration space? ~40 D 15 D 6 D 12 D ~65-120 D
Obstacles in C-Space A configuration q is collision-free, or free, if the robot placed at q has null intersection with the obstacles in the workspace The free space F is the set of free configurations A C-obstacleis the set of configurations where the robot collides with a given workspace obstacle A configuration is semi-free if the robot at this configuration touches obstacles without overlap
Disc Robot in 2-D Workspace Configuration space C Workspace W path y x configuration = coordinates (x,y) of robot’s center configuration space C = {(x,y)} free space F = subset of collision-free configurations
Translating Polygon in 2-D Workspace reference point
b1-a1 b1 a1 CB = B A = {b-a | aA, bB}
Linear-Time Computation (convex polygons) O(n+m)
Some constraints can’t be modeled as C-Space obstacles • Differential constraints: smoothness, finite curvature, drift, etc… • Global constraints: finite length, power consumption, etc…
Remark on Free-Space Topology The robot and the obstacles are modeled as closed subsets, meaning that they contain their boundaries One can show that the C-obstacles are closed subsets of the configuration space C as well Consequently, the free space F is an open subset of C. Hence, each free configuration is the center of a ball of non-zero radius entirely contained in F
Homotopic Paths Two paths with the same endpoints are homotopicif one can be continuously deformed into the other RxS1 example: t1 and t2 are homotopic t1 and t3 are not homotopic In this example, infinity of homotopy classes q t2 t1 t3 q’
Connectedness of C-Space C is connected if every two configurations can be connected by a path C is simply-connectedif any two paths connecting the same endpoints are homotopicExamples: R2 or R3 Otherwise C is multiply-connectedExamples: S1 and SO(3) are multiply-connected:- In S1, infinity of homotopy classes- In SO(3), only two homotopy classes
Recap • Configuration space: • Tool to map a robot in a 2-D or 3-D workspace into a point in n-D space • Mapping obstacles into C-space
Schedule • 1/21: Probabilistic roadmap planning • 1/26: Rigid transforms & collision detection • 1/28: Forward & inverse kinematics • 2 slots • 2/2, 2/4: project discussions • 2/9, 2/11: Nonholonomic systems • 3 slots
Project Proposal • Due 1/28 for each group • 1-2 paragraphs on proposed topic
Notions of Continuity • Path continuity (geometric, or C0) • For all s, d(t(s),t(s’)) -> 0 as s’->s • Trajectory continuity (geometric, or C0) • For all t, d(t(t),t(t’)) -> 0 as t’->t • Higher order continuity • C1: For all t, t’(t) is well defined • C2: For all t, t’’(t) is well defined • …
Metric in Configuration Space A metric or distance function d in C is a map d: (q1,q2) C2 d(q1,q2) > 0such that: d(q1,q2) = 0 if and only if q1 = q2 d(q1,q2) = d (q2,q1) d(q1,q2) < d(q1,q3) + d(q3,q2)
Metric in Configuration Space Example: Robot A and point x of A x(q): location of x in the workspace when A is at configuration q A distance d in C is defined by:d(q,q’) = maxxA ||x(q)-x(q’)||where ||a - b|| denotes the Euclidean distance between points a and b in the workspace
Specific Examples in R2 x S1 q = (x,y,q), q’ = (x’,y’,q’) with q,q’ [0,2p) a = min{|q-q’| , 2p-|q-q’|} d(q,q’) = sqrt[(x-x’)2 + (y-y’)2 + a2] d(q,q’) = sqrt[(x-x’)2 + (y-y’)2 + (ar)2]where r is the maximal distance between the reference point and a robot point a q q’