l - JHU CS

Algorithms for Sensor-Based Robotics:
Configuration Space
Computer Science 336
http://www.cs.jhu.edu/~hager/Teaching/cs336
Professor Hager
http://www.cs.jhu.edu/~hager
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
A place for everything, everything in its place
Benjamin Franklin
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Some Basics: Movement in Space
• We consider only rigid bodies, and we attach a frame of reference
(frame for short) to each body:
– An origin
– A convention for orientation
• Lots of frames: world, robot, end effector, links …
• A rigid body transformation relates frames to each other
– A translation of the origin (with respect to what?)
– A rotation about the origin
• Usually we have a convention that defines the world frame, and
relate everything else to this frame.
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Representing Rotations
• Consider S1 --- rotation in the plane
• The action of a rotation is to, well, rotate --> Rq: 2  2
• We can represent this action by a matrix R that is applied
(through matrix multiplication) to points in 2
cos(q) - sin(q)
sin(q)
cos(q)
vs
cos(q)
-sin(q)
sin(q)
cos(q)
• Note, we can either think of rotating a point through an angle, or
rotate the coordinate system (or frame) of the point.
• What is the space of all rotation matrices (what does it look like?)
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Rotation and Translation
• Translation: add a vector to a point: p’ = v + p
• Rotation: multiply by a matrix: p’ = R p
• Together: p’ = R p + v
– Think of this as rotating a point p by R and then translating it by v
• Alternatively: Rt (p’ – v) = p
– Think of this as the frame translating by v and then rotating by R
• We can do this multiple times, but it gets messy
– p’’ = R2 p’ + v2 = R2 (R1 p + v1) + v2 = R2 R1 p +R2 v1 + v2
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Geometric Transforms
Now, using the idea of homogeneous transforms,
we can write:
Tö
æ R
p' = çç
÷÷ p
è0 0 0 1 ø
The group of rigid body rotations SO(2) ´ (2) is
denoted SE(2) (for special Euclidean group)
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
From 2D to 3D Rotation
•
I can think of a 3D rotation as a rotation about different axes:
– rot(x,q) rot(y,q) rot(z,q)
– there are many conventions for these (see Appendix E)
•
•
•
•
Euler angles (ZYZ) --- where is the singularity (see eqn 3.8)
Roll Pitch Yaw (ZYX)
Angle axis
Quaternion
•
The space of rotation matrices has its own special name: SO(n) (for
special orthogonal group of dimension n). It is a manifold of dimension n
•
What is the derivative of a rotation matrix?
– A tricky question --- what is the topology of that space ;CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Geometric Transforms
Now, using the idea of homogeneous transforms,
we can write:
Tö
æ R
p' = çç
÷÷ p
è0 0 0 1 ø
The group of rigid body rotations SO(3) ´ (3) is
denoted SE(3) (for special Euclidean group)
What does the inverse transformation look like?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
From Transforms to Configurations
• A simple rigid body in space can be described in terms of its pose
• But, what about more complex cases?
–
–
–
–
Robot arm
Car
Snake
A robot arm mounted on a car carrying a snake?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Configuration Space
• A key concept for motion planning is a configuration:
– a complete specification of the position of every point in the system
• A simple example: a robot that translates but does not rotate in
the plane:
– what is a sufficient representation of its configuration?
• The space of all configurations is the configuration space or Cspace.
C-space formalism:
Lozano-Perez ‘79
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
The “Local” Talent
Lozano-Perez, T., Mason, M. T. and
Taylor, R. H. Automatic Synthesis of
Fine-Motion Strategies for Robots,
International Journal of Robotics
Research, Vol. 3, No. 1, 1984, pp.3—
24.
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Three Fundamental Issues with C-space
• How do we describe configurations
– What is the fundamental space of configurations for a mechanisms
– How we relate it to the workspace: Kinematics
• How are configurations related to controllable inputs to the
system?
– Holonomic vs. Non-holonomic systems
– Effect of dynamics
• How are obstacles represented in C-space
– Explicit mapping via Inverse kinematics
– Implicit in algorithm
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Configuration Space for
Manipulators
What are this arm’s forward kinematics?
(x,y)
b
(How does its position
depend on its joint angles?)
L2
L1
y
a
x
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Robot Manipulators
What are this arm’s forward kinematics?
(x,y)
b
Find (x,y) in terms of a and b ...
L2
L1
y
a
x
Keeping it “simple”
ca = cos(a) , sa = sin(a)
cb = cos(b) , sb = sin(b)
c+= cos(a+b) , s+= sin(a+b)
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Manipulator kinematics
(x,y)
b
x
y
=
L1ca
L1sa
+
L2c+
Position
L2s+
L2
L1
y
a
x
Keeping it “simple”
ca = cos(a) , sa = sin(a)
cb = cos(b) , sb = sin(b)
c+= cos(a+b) , s+= sin(a+b)
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Manipulator Kinematics
(x,y)
b
x
y
=
L1ca
L1sa
+
L2c+
Position
L2s+
L2
L1
y
a, b
a
x
Keeping it “simple”
ca = cos(a) , sa = sin(a)
cb = cos(b) , sb = sin(b)
c+= cos(a+b) , s+= sin(a+b)
Topology of Configuration Space
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Manipulator Kinematics
(x,y)
b
x
y
=
L1ca
L1sa
+
L2c+
Position
L2s+
L2
L1
y
a, b
a
x
L1 -L2
L1 +L2
Keeping it “simple”
ca = cos(a) , sa = sin(a)
cb = cos(b) , sb = sin(b)
c+= cos(a+b) , s+= sin(a+b)
The Workspace
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Once Again, With Frames
(x,y)
b
x
y
=
L1ca
L1sa
+
L2c+
Position
L2s+
L2
L1
y
F0 – frame at the base
F1 – frame at the end of link 1
F2 – frame at the end of link 2
a
x
Keeping it “simple”
ca = cos(a) , sa = sin(a)
cb = cos(b) , sb = sin(b)
c+= cos(a+b) , s+= sin(a+b)
Link transform: 0H1 = [R(a) | 0] [ I t]
t = [L1, 0]
F0  0H1  F1
Test: Where is the origin of F1 located w.r.t. F0?
F1  1H2  F2
Test: Where is the origin of F2 located w.r.t. F1?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
In 3D its much more complicated
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Inverse Kinematics
Inverse kinematics -- finding joint angles from Cartesian coordinates
via a geometric or algebraic approach...
L2
(x,y)
b
g
L1
a
Given (x,y) and L1 and L2 , what are the values of a, b, g ?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Inverse Kinematics
Inverse kinematics -- finding joint angles from Cartesian coordinates
via a geometric or algebraic approach...
L2
(x,y)
b
g =
g
cos-1
x2 + y2 - L12 - L22
2L1L2
L1
a
b = 180 - g
a =
(1,0) = 1.3183, -1.06
(-1,0) = 1.3183, 4.45
sin-1
L2 sin(g)
x2 + y2
+ tan-1(y/x)
atan2(y,x)
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh
Mocha
But it’s
not usually this ugly...
Puma
Inv. Kinematics
% Solve for theta(4)
%
% Solve for theta(1)
r=sqrt(Px^2 + Py^2);
if (n1 == 1),
theta(1)= atan2(Py,Px) + asin(d3/r);
else
theta(1)= atan2(Py,Px) + pi - asin(d3/r);
end
%
% Solve for theta(2)
V114= Px*cos(theta(1)) + Py*sin(theta(1));
r=sqrt(V114^2 + Pz^2);
Psi = acos((a2^2-d4^2-a3^2+V114^2+Pz^2)/
(2.0*a2*r));
theta(2) = atan2(Pz,V114) + n2*Psi;
%
% Solve for theta(3)
num = cos(theta(2))*V114+sin(theta(2))*Pz-a2;
den = cos(theta(2))*Pz - sin(theta(2))*V114;
theta(3) = atan2(a3,d4) - atan2(num, den);
V113 = cos(theta(1))*Ax + sin(theta(1))*Ay;
V323 = cos(theta(1))*Ay - sin(theta(1))*Ax;
V313 = cos(theta(2)+theta(3))*V113 +
sin(theta(2)+theta(3))*Az;
theta(4) = atan2((n4*V323),(n4*V313));
% Solve for theta(5)
num = -cos(theta(4))*V313 - V323*sin(theta(4));
den = -V113*sin(theta(2)+theta(3)) +
Az*cos(theta(2)+theta(3));
theta(5) = atan2(num,den);
% Solve for theta(6)
V112 = cos(theta(1))*Ox + sin(theta(1))*Oy;
V132 = sin(theta(1))*Ox - cos(theta(1))*Oy;
V312 = V112*cos(theta(2)+theta(3)) +
Oz*sin(theta(2)+theta(3));
V332 = -V112*sin(theta(2)+theta(3)) +
Oz*cos(theta(2)+theta(3));
V412 = V312*cos(theta(4)) - V132*sin(theta(4));
V432 = V312*sin(theta(4)) + V132*cos(theta(4));
num = -V412*cos(theta(5)) - V332*sin(theta(5));
den = - V432;
theta(6) = atan2(num,den);
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
it’s usuall much worse!
Some Other Examples of C-Space
• A rotating bar fixed at a point
– what is its C-space?
– what is its workspace (the set of points it can reach?)
• A rotating bar that translates along the rotation axis
– what is its C-space?
– what is its workspace
• A two-link manipulator
–
–
–
–
what is its C-space?
what is its workspace?
Suppose there are joint limits, does this change the C-space?
The workspace?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Open vs. Closed Chains
•
Serial (or open) chain mechanisms can usually be understood simply by
looking at how they are put together (like our 2-link manipulator)
•
Closed chain mechanisms have additional internal constraints --- the
links form closed loops, e.g.
Suppose 4 revolute, 2 prismatic, 6 links
Gruebler’s formula: N(k-n-1) +  fi
N = DOF of space (here 3) f = dof of joints (here 1)
n=# of joints; k # of links
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
What is the Dimension of
Configuration Space?
•
The dimension is the number of parameters necessary to uniquely
specify configuration
•
One way to do this is to explicitly generate a parameterization (e.g with
our 2-bar linkage)
•
Another is to start with too many parameters and add (independent)
constraints
–
–
–
–
–
•
suppose I start with 4 points in the plane (= 8 parameters), A, B, C, D
Now, require ||A-B|| = c1 and ||C-D|| = c2 ( 2 constraints)
Now, require B = C
( ? constraints)
Now, fix A = 0
( ? constraints)
HOW MANY D.O.F?
QUIZ:
– HOW MANY DOF DO YOU NEED TO MOVE FREELY IN 3-space?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
What is the Dimension of
Configuration Space?
•
The dimension is the smallest number of parameters necessary to uniquely
specify configuration
•
One way to do this is to explicitly generate a parameterization (e.g with our 2-bar
linkage)
•
Another is to start with too many parameters and add (independent) constraints
–
–
–
–
–
•
suppose I start with 4 points in the plane (= 8 parameters), A, B, C, D
Now, require ||A-B|| = c1 and ||C-D|| = c2 ( 2 constraints)
Now, require B = C
( ? constraints)
Now, fix A = 0
( ? constraints)
HOW MANY D.O.F?
QUIZ:
–
HOW MANY DOF DO YOU NEED TO MOVE FREELY IN 3-space?
•
–
3+3
HOW MANY in 4-space?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
How About This Robot?
Holonomic vs. Non-Holonomic Systems
•
The previous constraints were holonomic
-- they constrained the configuration of
the system.
– g(q, x, t) = 0 where q is a set of
configuration variables and x is workspace
pose
– Restrict the motion of the robot to a
smooth surface of the configuration space
•
Non-holonomic constraints are of the
form
Can you drive from A to B?
A
B
Can you do this?
– g(q, dq/dt, x, t) = 0 (position and velocity)
•
Example: A mobile robot with location x
and orientation q has motion
A
B
– dx/dt = (v(t) cos(q), v(t) sin(q))
– Note that the kinematics of this system
involves integration!
https://www.youtube.com/watch?v=ErX96vF__tI
CS 436/636, Greg Hager with
slides from H. Choset, Z. Dodds,
and Dinesh Mocha
Nonholonomic Systems
Most mobile robots share a common
(sometimes frustrating) property:
they are nonholonomic .
- makes it more difficult to navigate
between two arbitrary points
- need to resort to techniques like
parallel parking
Another (informal) definition, a
robot is nonholonomic if it can not
move to change its pose
instantaneously in all available
directions within its workspace
(although the complete set of
motions spans the workspace)
E.g. A car moves in x,y, theta, but can only go forward and backward along a curve
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Nonholonomicity
Most mobile robots share a common (sometimes frustrating)
property: they are nonholonomic .
- makes it more difficult to navigate between two arbitrary points
- need to resort to techniques like parallel parking
differential-drive robots
are nonholonomic
VL
VR
multiple-trailer
rigs are “very”
nonholonomic
CS 436/636, Greg Hager with slides from
H. Choset, Z. Dodds, and Dinesh Mocha
Nonholonomicity
The Scout robot (and many other mobile robots) share a common
(if frustrating) property: they are nonholonomic .
- makes it more difficult to navigate between two arbitrary points
- need to resort to techniques like parallel parking
In general, a robot is holonomic if it can move to change its
pose instantaneously in all available directions.
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Nonholonomicity
Most mobile robots share a common (sometimes frustrating)
property: they are nonholonomic .
- makes it more difficult to navigate between two arbitrary points
- need to resort to techniques like parallel parking
In general, a robot is holonomic if it can move to change its
pose instantaneously in all available directions.
i.e., the robot’s differential motion is unconstrained.
Synchro Drive
is this holonomic?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Nonholonomic Constraint: Unicycle
Y
q
(x,y)
X
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Nonholonomic Constraint: Cart
Y
q
(x,y)
X
Introduction to Autonomous Mobile Robots
ICR: Instantaneous Center of Rotation
What if the front wheels are parallel?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Differential Drive:
Forward Kinematics
• Two parallel wheels
– Diameter r
– Distance between both
wheels 2l
– Where is the ICR?
• Given r, l and the
spinning speed of each
wheels f1 and f2, the
forward kinematics
computes the velocity
in the inertial frame
 x 
 y  = f (r , l ,  ,  )
1
2
 
q 
Introduction to Autonomous Mobile Robots
Differential Drive
Forward Kinematics
• If only f1 moves, then
the linear velocity of P
along RX is
r1
R
x1 =
2
• If only f2 moves, then
the linear velocity of P
along RX is
r 2
R
x2 =
2
• Combining both we
obtain
r1 r2
R
x =
+
2
2
Introduction to Autonomous Mobile Robots
• What about y?
R
y = 0
Differential Drive
Forward Kinematics
• If only f1 moves, then
the angular velocity of P
is
r1
1 =
2l
Introduction to Autonomous Mobile Robots
• If only f2 moves, then
the angular velocity of P • Finally, the velocity of
is
r 2
the robot is determined
2 =  r1 r 2 
by
2l
+
 x  

2
2
• Combining them we get
 
r1 r2

q=
2l
2l

 =
y
0
   r r 
q   1 - 2 
2l 
 2l
How to Move a Mobile Robot?
Introduction to Autonomous Mobile Robots
Open Loop
Feedback Control
Compute a trajectory as a sequence of segments
Use feedback to compute an error between
(straight lines, circles)
the robot position and the goal position
•Easier said than done
•Cannot adjust to the environment
•Difficult to ensure smoothness at the transitions
Feedback Control
General Idea
• Denote by RX and RY reference frame of a mobile robot
• Denote by e = R[ x y q ]T the position and orientation error
between the current robot position and the goal position
• Define a control matrix according to
 k11 k12 k13 
K =

k
k
k
 21 22 23 
and the control law defined by
 x 
 y  = Ke = K
 
q 
R
 x
 y
 
q 
• The greater the error, the faster the robot will move to “reduce”
the error. An error of “zero” will produce zero velocity.
Feedback Control
• Changing to polar
coordinates
 = x 2 + y 2
a = -q + tan (y, x)
-1
b = -q - a
The robot velocity v and
w can be converted by


 - cos a 0
   

sin
a
a  = 
 v 
1
   
  w
 b   - sin a

0

 

Feedback Control
• If we consider the
control law
v = kp
 = ka a + k b b
and substituting in the
previous equation we
get

- k   cos a
   
a  = k sin a - k a - k b 
a
b 
   

 b  
- k  sin a

Choose k, ka and kb wisely
Example of Trajectories
Introduction to Autonomous Mobile Robots
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Holonomic Constraints Examples
Maintain contact with a surface
Maintain a tray vertical
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Holonomic Robots
Navigation is simplified considerably if a robot can move
instantaneously in any direction
Omniwheels
Mecanum wheels
tradeoffs in locomotion/wheel design
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
if it can be done at all ...
Holonomic Designs
in action
Killough Platform
lego logo…
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Omni-Directional Designs
Nomad XR4000
Killough Platform
synchro drive with offsets
from the axis of rotation
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Holonomic hype
“The PeopleBot is a highly holonomic
platform, able to navigate in the
tightest of spaces…”
www.activmedia.com
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Holonomic reality
Discover ’97 -- Top 10 Innovation
Sage -- a museum tour guide
easier
to define than to determine…
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh
Mocha
A Useful Observation
• The Jacobian maps configuration velocities to workspace
velocities
• Suppose we wish to move from a point A to a point B in the
workspace along a path p(t) (a mapping from some time index to
a location in the workspace)
– dp/dt gives us a velocity profile --- how do we get the configuration
profile?
– Are the paths the same if choose the shortest paths in workspace
and configuration space?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Topology?
Sphere?
Torus?
2R manipulator
Configuration space
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
The Topology of Configuration Space
• Topology is the “intrinsic character” of a space
• Two spaces have a different topology if cutting and pasting is
required to make them the same (e.g. a sheet of paper vs. a
mobius strip)
– think of rubber figures --- if we can stretch and reshape
“continuously” without tearing, one into the other, they have the
same topology
• A basic mathematical mechanism for talking about topology is the
homeomorphism.
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Homeo- and Diffeomorphisms
•
Recall mappings:
– f: S  T
– If each elements of f goes to a unique T, f is injective (or 1-1)
– If each element of T has a corresponding preimage in S, then f is surjective
(or onto).
– If f is surjective and injective, then it is bijective (in which case an inverse, f-1
exists).
– f is smooth if derivatives of all orders exist (we say f is C)
•
If f: S  T is a bijection, and both f and f-1 are continuous, f is a
homeomorphism; if such a f exists, S and T are homeomorphic.
•
If homeomorphism where both f and f-1 are smooth is a diffeomorphism.
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Some Examples
• How would you show a square and a rectangle are
diffeomorphic?
• How would you show that a circle and an ellipse are
diffeomorphic (implies both are topologically S1)
• Interestingly, a “racetrack” is not diffeomorphic to a circle
– composed of two straight segments and two circular segments
– at the junctions, there is a discontinuity; it is therefore not possible to
construct a smooth map!
– How would you show this (hint, do this for a function on 1 and think
about the chain rule)
– Is it homeomorphic?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Local Properties
Ball
In metric space
a set V is a neighborhood of a point p if there exists an open ball with center
p and radius r > 0 such that
is contained in V.
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Manifolds
• A space S locally diffeomorphic (homeomorphic) to a space T if
each p S there is a neighborhood containing it for which a
diffeomorphism (homeomorphism) to some neighborhood of T
exists.
• S1 is locally diffeomorphic to 1
• The sphere is locally diffeomorphic to the plane (as is the torus)
• A set S is a k-dimensional manifold if it is locally homeomorphic
to k
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
2d Manifolds
real plane
cylinder
projective plane
mobius strip
torus
klein bottle
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Some Minor Notational Points
•
•
•
•
•
1 ´ 1 ´ ... ´ 1 = n
S1 ´ S1 ´ ... ´ S1  Sn (= Tn, the n-dimensional torus)
Sn is the n-dimensional sphere
SO(n) is the rotational group in n-space (which is not Sn !)
SE(n) = SO(n) x n
• Although Sn is an n-dimensional manifold, it is not a manifold of a
single chart --- there is no single, smooth, invertible mapping from
Sn to Rn --– they are not ??morphic?
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Examples
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
More on dimension
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
More Example Configuration Spaces
(contrasted with workspace)
•
Holonomic robot in plane:
– workspace 2
– configuration space 2
•
3-joint revolute arm in the plane
– Workspace, a circular section of outer radius L1 + L2 + L3
– configuration space T3
•
2-joint revolute arm with a prismatic joint in the plane
– workspace disc of radius L1 + L2 + L3
– configuration space T2 ´ 
•
3-joint revolute arm mounted on a mobile robot (holonomic)
– workspace is a “sandwich” of radius L1 + L2 + L3
 2 ´ T3
•
3-joint revolute arm floating in space
– workspace is 3
– configuration space is T3 x SE(3)
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha
Obstacles in C-Space
•
Let q denote a point in a configuration space Q
•
The path planning problem is to find a mapping c:[0,1] Q s.t. no
configuration along the path intersects an obstacle
•
Recall a workspace obstacle is WOi (a closed set)
•
A configuration space obstacle QOi is the set of configurations q at which
the robot intersects WOi, that is
– QOi = {q  Q | R(q)  WOi  }
•
The free configuration space (or just free space) Qfree is
Qfree = Q \ ( QOi )
The free space is generally an open set
A free path is a mapping c:[0,1] Qfree
A semifree path is a mapping c:[0,1] cl(Qfree)
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha