### Configuration space - Computer Science

```Configuration Space
Kris Hauser
Assistant Professor of Computer Science
Indiana University
• 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)
• Lab 1: Install RobotSim
Definitions
• Workspace:
• The world in which a robot lives and occupies space
• Usually 2D (mobile robots) or 3D (most other robots)
Robots have different shapes and
kinematics! What is a motion?
Idea: Reduce robot to a point
 Configuration Space
Feasible space
Forbidden space
Configuration Space
qn
q=(q1,…,qn)
q1
 A robot configuration is
a specification of the
positions of all robot
points relative to a fixed
q coordinate system
3
 Usually a configuration is
expressed as a “vector”
of parameters
q2
Rigid Robot
workspace
robot
y
reference direction
q
reference point
x
• 3-parameter representation: q = (x,y,q)
• In a 3-D workspace q would be of the form
(x,y,z,a,b,g)
Articulated Robot
q = (q1,q2,…,q10)
q2
q1
Protein
Configuration Space
• Space of all its possible configurations
• But the topology of this space is in general not that of a
Cartesian space
3-D cylinder embedded in 4-D space
robot
q
y
q
2p
q
y
S1
q’
x
R2S1
x
Configuration Space
• Space of all its possible configurations
• But the topology of this space is in general 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 in general not that of a
Cartesian space
C = S1xS1
Configuration Space
• Space of all its possible configurations
• But the topology of this space is in general not that of a
Cartesian space
C = S1xS1
Some Important Topological
Spaces
•
•
•
•
•
•
R: real number line
Rn: N-dimensional Cartesian space
S1: boundary of circle in 2D
S2: surface of sphere in 3D
SO(2), SO(3): set of 2D, 3D orientations (special orthogonal group)
SE(2), SE(3): set of rigid 2D, 3D translations and rotations (special
Euclidean group)
• Cartesian product A x B, power notation An = A x A … x A
• Homeomorphism ~ denotes topological equivalence
•
•
•
•
Continuous mapping with continuous inverse (bijective)
Cube ~ S2
SO(2) ~ S1
SE(3) ~ SO(3) x R3
What is its topology?
(S1)7xI3
(I: Interval of reals)
q2
q1
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
Example: A sphere
Rigid Robot in 2-D Workspace
workspace
robot
y
reference direction
q
reference point
x
• 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 a 4-D space
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 r33
with:
• ri12+ri22+ri32 = 1
• ri1rj1 + ri2r2j + ri3rj3 = 0
• det(R) = +1
Rigid Robot in 3-D Workspace
• q = (x,y,z,a,b,g)
The c-space is a 6-D space (manifold) embedded
• Other
representation:
q = (x,y,z,r
in a 12-D
Cartesian space.
It is denoted
by 33)
11,r12,…,r
where r11, r12, …, r33 are the elements of rotation
matrix
SE(3) =R:R3xSO(3)
r11 r12 r13
r21 r22 r23
r31 r32 r33
with:
• ri12+ri22+ri32 = 1
• ri1rj1 + ri2r2j + ri3rj3 = 0
• det(R) = +1
Parameterization of SO(3)
 Euler angles:
(f,q,y)
z
z
z
z
y
f
1234
y
q
y
y
x
x
x
 More next time
x
y
Notion of a (Geometric) Path
q0
q1
q2
qn
t(s)
q4
q3
• A path in C is a piece of continuous curve connecting two
configurations q and q’:
t : s  [0,1]  t (s)  C
Examples
• A straight line segment linearly interpolating between a and b
• t(s) = (1-s) a + s b
• A polynomial with coeffients c0,…,cn
• t(s) = c0 + c1s + … + cnsn
• Piecewise polynomials
• Piecewise linear
• Splines (B-spline, hermite splines are popular)
• Can be an arbitrary curve
• Only limited by your imagination and representation capabilities
Notion of Trajectory vs. Path
q0
q1
q2
qn
t(t)
q4
q3
• A trajectory is a path parameterized by time:
t : t  [0,T]  t (t)  C
Translating & Rotating Rigid
Robot in 2-D Workspace
q
workspace
configuration space
2p
robot
reference direction
q
y
y
reference point
x
What is the placement of the robot in the workspace at configuration (0,0,0)?
x
Translating & Rotating Rigid
Robot in 2-D Workspace
q
workspace
configuration space
2p
robot
reference direction
q
y
y
reference point
x
What is the placement of the robot in the workspace at configuration (0,0,0)?
x
Translating & Rotating Rigid
Robot in 2-D Workspace
q
workspace
configuration space
What is this path in the workspace?
2p
robot
reference direction
y
q
P
y
reference point
x
What would be the path in configuration space corresponding
to a full rotation of the robot about point P?
x
Every robot maps to a point in
its configuration space ...
~40 D
15 D
6D
q0
q1
12 D
qn
~65-120 D
q4
q3
... and every robot path is a
curve in configuration space
q0
q1
qn
q4
q3
… and obstacles (and other constraints)
map to configuration space obstacles
~40 D
15 D
6D
q0
q1
12 D
qn
~65-120 D
q4
q3
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-obstacle is 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
Workspace W
Configuration space C
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
Translating & Rotating Polygon
in 2-D Workspace
Articulated 2-Joint Robot
Some constraints can’t be
modeled as C-Space obstacles
• Differential constraints: smoothness, finite curvature, drift,
etc…
• Global constraints: finite length, power consumption, etc…
Homotopic Paths
• Two paths with the same endpoints are homotopic if one can
be continuously deformed into the other
• RxS1 example:
q
t3
t1
• t1 and t2 are homotopic
• t1 and t3 are not homotopic
• In this example, infinity of homotopy classes
t2
q’
Connectedness of C-Space
• C is connected if every two configurations can be connected
by a path
• C is simply-connected if any two paths connecting the same
endpoints are homotopic
Examples: R2 or R3
• Otherwise C is multiply-connected
Examples: S1 and SO(3) are multiply-connected:
- In S1, infinity of homotopy classes
- In SO(3), only two homotopy classes
Homotopy of Free Paths
Recap
• Configuration space:
• Tool to map a robot in a 2-D or 3-D workspace into a point in n-D
space
• Topological spaces
• Mapping obstacles into C-space
• Principles Ch. 3.5-3.8, Appendix E
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) > 0
such 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’) = maxxA ||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’|}
q
a
 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
q’
```