75
CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha 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

Algorithms for Sensor-Based Robotics: Configuration Space

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

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

Page 2: Algorithms for Sensor-Based Robotics: Configuration Space

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

Page 3: Algorithms for Sensor-Based Robotics: Configuration Space

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 --> Rθ: ℜ2 → ℜ2

•  We can represent this action by a matrix R that is applied (through matrix multiplication) to points in ℜ2

cos(θ) - sin(θ) vs cos(θ) sin(θ) sin(θ) cos(θ) -sin(θ) cos(θ)

•  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?)

Page 4: Algorithms for Sensor-Based Robotics: Configuration Space

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

Page 5: Algorithms for Sensor-Based Robotics: Configuration 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:

pTR

p !!"

#$$%

&=

1000'

The group of rigid body rotations SO(2) × ℜ(2) is denoted SE(2) (for special Euclidean group)

Page 6: Algorithms for Sensor-Based Robotics: Configuration Space

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,θ) rot(y,θ) rot(z,θ) –  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 ;-

Page 7: Algorithms for Sensor-Based Robotics: Configuration 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:

pTR

p !!"

#$$%

&=

1000'

The group of rigid body rotations SO(3) × ℜ(3) is denoted SE(3) (for special Euclidean group)

What does the inverse transformation look like?

Page 8: Algorithms for Sensor-Based Robotics: Configuration Space

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

Page 9: Algorithms for Sensor-Based Robotics: Configuration Space

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 C-space.

C-space formalism: Lozano-Perez ‘79

Page 10: Algorithms for Sensor-Based Robotics: Configuration Space

The “Local” Talent

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

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.

Page 11: Algorithms for Sensor-Based Robotics: Configuration Space

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

Page 12: Algorithms for Sensor-Based Robotics: Configuration Space

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?

α

β

L1

L2

(x,y)

y

x

(How does its position depend on its joint angles?)

Page 13: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Robot Manipulators

α

β

L1

L2

(x,y)

cα = cos(α) , sα = sin(α) cβ = cos(β) , sβ = sin(β)

c+= cos(α+β) , s+= sin(α+β)

Keeping it “simple”

y

x

What are this arm’s forward kinematics?

Find (x,y) in terms of α and β ...

Page 14: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Manipulator kinematics

cα = cos(α) , sα = sin(α) cβ = cos(β) , sβ = sin(β)

c+= cos(α+β) , s+= sin(α+β)

Keeping it “simple”

α

β

L1

L2

(x,y)

y

x

Position x L1cα L2c+

y L1sα L2s+

= +

Page 15: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Manipulator Kinematics

cα = cos(α) , sα = sin(α) cβ = cos(β) , sβ = sin(β)

c+= cos(α+β) , s+= sin(α+β)

Keeping it “simple”

α

β

L1

L2

(x,y)

y

x

Position x L1cα L2c+

y L1sα L2s+

= +

Topology of Configuration Space

α, β

Page 16: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Manipulator Kinematics

cα = cos(α) , sα = sin(α) cβ = cos(β) , sβ = sin(β)

c+= cos(α+β) , s+= sin(α+β)

Keeping it “simple”

α

β

L1

L2

(x,y)

y

x

Position x L1cα L2c+

y L1sα L2s+

= +

The Workspace

L1 +L2 L1 -L2

α, β

Page 17: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Once Again, With Frames

cα = cos(α) , sα = sin(α) cβ = cos(β) , sβ = sin(β)

c+= cos(α+β) , s+= sin(α+β)

Keeping it “simple”

α

β

L1

L2

(x,y)

y

x

Position x L1cα L2c+

y L1sα L2s+

= +

F0 – frame at the base F1 – frame at the end of link 1 F2 – frame at the end of link 2 Link transform: 0H1 = [R(α) | 0] [ Ι τ] τ = [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?

Page 18: Algorithms for Sensor-Based Robotics: Configuration Space

In 3D its much more complicated

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Page 19: Algorithms for Sensor-Based Robotics: Configuration Space

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

α

β

L1

L2 (x,y)

via a geometric or algebraic approach...

γ

Given (x,y) and L1 and L2 , what are the values of α, β, γ ?

Page 20: Algorithms for Sensor-Based Robotics: Configuration Space

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...

= cos-1 x2 + y2 - L12 - L2

2

2L1L2

= sin-1 L2 sin(γ)

x2 + y2 + tan-1(y/x)

But it’s not usually this ugly...

atan2(y,x)

α

β

L1

L2 (x,y)

γ

β = 180 - γ

(1,0) = 1.3183, -1.06 (-1,0) = 1.3183, 4.45

Page 21: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Puma Inv. Kinematics

% % 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);

% Solve for theta(4) 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);

it’s usuall much worse!

Page 22: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

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?

Page 23: Algorithms for Sensor-Based Robotics: Configuration Space

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

Page 24: Algorithms for Sensor-Based Robotics: Configuration 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 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?

Page 25: Algorithms for Sensor-Based Robotics: Configuration 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?

Page 26: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds,

and Dinesh Mocha

Holonomic vs. Non-Holonomic Systems

•  The previous constraints were holonomic -- they constrained the configuration of the system.

–  g(q, t) = 0 (note they can be time-varying!)

•  Non-holonomic constraints are of the form

–  g(q,dq/dt,t) = 0 (position and velocity)

•  Example: A mobile robot with location x and orientation θ has motion –  dx/dt = (v(t) cos(θ), v(t) sin(θ)) –  Note that the kinematics of this system involves integration!

http://www.youtube.com/watch?v=clNdfz4KDMU

Page 27: Algorithms for Sensor-Based Robotics: Configuration Space

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

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

Page 28: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides

from H. Choset, Z. Dodds, and Dinesh

Mocha

Nonholonomicity

- makes it more difficult to navigate between two arbitrary points

- need to resort to techniques like parallel parking

multiple-trailer rigs are “very” nonholonomic

differential-drive robots are nonholonomic

VR

VL

The Scout robot (and many other mobile robots) share a common (if frustrating) property: they are nonholonomic .

Page 29: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides

from H. Choset, Z. Dodds, and Dinesh

Mocha

Nonholonomicity

In general, a robot is holonomic if it can move to change its pose instantaneously in all available directions.

- makes it more difficult to navigate between two arbitrary points

- need to resort to techniques like parallel parking

The Scout robot (and many other mobile robots) share a common (if frustrating) property: they are nonholonomic .

Page 30: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides

from H. Choset, Z. Dodds, and Dinesh

Mocha

Nonholonomicity

- makes it more difficult to navigate between two arbitrary points

- need to resort to techniques like parallel parking

i.e., the robot’s differential motion is unconstrained.

is the Nomad holonomic?

Synchro Drive

In general, a robot is holonomic if it can move to change its pose instantaneously in all available directions.

The Scout robot (and many other mobile robots) share a common (if frustrating) property: they are nonholonomic .

Page 31: Algorithms for Sensor-Based Robotics: Configuration Space

Holonomic Robots Navigation is simplified considerably if a robot can move

instantaneously in any direction

tradeoffs in locomotion/wheel design

Mecanum wheels Omniwheels

if it can be done at all ... CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Page 32: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Holonomic Designs

Killough Platform

in action

lego logo…

Page 33: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Omni-Directional Designs

Killough Platform

Nomad XR4000

synchro drive with offsets from the axis of rotation

Page 34: Algorithms for Sensor-Based Robotics: Configuration Space

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

Page 35: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Holonomic reality

Sage -- a museum tour guide

Discover ’97 -- Top 10 Innovation

easier to define than to determine…

Page 36: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Motivating Topology: Transforming Velocity

•  Recall forward kinematics K: Q → W

•  The Jacobian of K is the n × m matrix with entries –  Ji,j = d Ki / d qj

•  The Jacobian transforms velocities: –  dw/dt = J dq/dt

•  If square and invertible, then –  dq/dt = J-1 dw/dt

•  Example: our favorite two-link arm... α

β

L1

L2

(x,y)

y

x

x L1cα L2cα+β

y L1sα L2sα+β

= +

Page 37: Algorithms for Sensor-Based Robotics: Configuration Space

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?

Page 38: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Topology?

2R manipulator

Configuration space

Sphere? Torus?

Page 39: Algorithms for Sensor-Based Robotics: 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.

Page 40: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Homeo- and Diffeomorphisms

•  Recall mappings: –  φ: S → T –  If each elements of φ goes to a unique T, φ is injective (or 1-1) –  If each element of T has a corresponding preimage in S, then φ is surjective

(or onto). –  If φ is surjective and injective, then it is bijective (in which case an inverse, φ-1

exists). –  φ is smooth if derivatives of all orders exist (we say φ is C∞)

•  If φ: S → T is a bijection, and both φ and φ-1 are continuous, φ is a homeomorphism; if such a φ exists, S and T are homeomorphic.

•  If homeomorphism where both φ and φ-1 are smooth is a diffeomorphism.

Page 41: Algorithms for Sensor-Based Robotics: Configuration Space

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?

Page 42: Algorithms for Sensor-Based Robotics: Configuration Space

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.

Page 43: Algorithms for Sensor-Based Robotics: Configuration Space

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

Page 44: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

2d Manifolds

real plane cylinder

projective plane

torus

klein bottle mobius strip

Page 45: Algorithms for Sensor-Based Robotics: Configuration Space

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?

Page 46: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Examples

Page 47: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

More on dimension

Page 48: Algorithms for Sensor-Based Robotics: Configuration Space

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)

Page 49: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

What if the robot is not a point?

The mobile robot should probably not be modeled as a point...

β

α

Nor should robots with extended linkages that may contact obstacles...

Page 50: Algorithms for Sensor-Based Robotics: Configuration Space

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)

Page 51: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides

from H. Choset, Z. Dodds, and Dinesh

Mocha

Mapping Obstacles to C-Space

•  Consider a mobile robot of unit radius moving in the plane with one obstacle

In image processing, this would be the equivalent of dilating the obstacle using a circular structuring element.

In a closed space, what does an “impassible” configuration obstacle look like?

Page 52: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Disc in 2-D workspace

workspace configuration space workspace

Page 53: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

What if the Robot is not a Point

Expand obstacle(s)

Reduce robot

not quite right ...

Page 54: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Example of a World (and Robot)

Obstacles

Free Space

Robot x,y

Page 55: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Configuration Space: Accommodate Robot Size

Obstacles

Free Space

Robot (treat as point object) x,y

Page 56: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Minkowski sum

•  The Minkowski sum of two sets P and Q, denoted by P⊕Q, is defined as P+Q = { p+q | p ∈P, q∈Q }

•  Similarly, the Minkowski difference is defined as P – Q = { p–q | p∈P, q∈Q } p

q

Minkowski Sums

The Minkowski sum of two sets A and B, denoted by A⇥ B, is defined as

A⇥ B = {a + b : a ⌅ A, b ⌅ B}The Minkowski di�erence of two sets A and B, denoted by A⇤ B, is defined as

A⇤ B = {a� b : a ⌅ A, b ⌅ B}How does it relate to path planning?

Recall the definition of the configuration-space obstacle

QObstacle = {q : q ⌅ Q and Robot(q) ⌥ Obstacle ⇧= ⌃}(set of all robot configurations that collide with the obstacle)Classical result shown by Lozano-Perez and Wesley 1979

for polygons and polyhedra : QObstacle = Obstacle⇤ Robot

⊖ =

Q

[Fig. courtesy of Manocha]

Erion Plaku (JHU–CS336/436) 6

Page 57: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides

from H. Choset, Z. Dodds, and Dinesh

Mocha

Dilation When done with binary images, this is often called dilation.

original dilated adding a 5x5 square of white pixels at each

white pixel

“dilation”

Page 58: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Polygonal robot translating in 2-D workspace

workspace configuration space

Page 59: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Polygonal robot translating & rotating in 2-D workspace

workspace configuration space

Page 60: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Additional degrees of freedom What would the configuration space of a rectangular robot (red) in this world look like? Assume it can translate and rotate in the plane.

(The blue rectangle is an obstacle.)

x

y

Page 61: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

a 2d possibility

why not keep it this simple?

x

y

2d projection...

Page 62: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Another Example

x

y

P

45 degrees

R

Page 63: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Another Example

Taking the cross section of configuration space in which the robot is rotated 45 degrees...

x

y 45 degrees

How many sides does P ⊕R have?

P

R

Page 64: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Another Example

Taking the cross section of configuration space in which the robot is rotated 45 degrees...

x

y 45 degrees

How many sides does P ⊕R have?

P

R

Page 65: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

A problem?

qinit

qgoal

with otherwise straightforward paths http://www.math.berkeley.edu/~sethian/Applets/java_files_robotic_legal/robotic_legal.html

Page 66: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Requires one more d…

qinit

qgoal too conservative !

what instead?

Page 67: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

When the robot is at one orientation

qinit

qgoal

it can make it...

Page 68: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

qinit

qgoal

When the robot is at another orientation

it depends...

Page 69: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

The Configuration Space (C-space) θ1 θ2 θ3

C-space workspace

TOP VIEW

θ1

θ2

θ3

θ1 θ2

θ3

Page 70: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Where can we put ?

Configuration Space

An obstacle in the robot’s workspace

β

α

270

360

180

90

0 90 180 135 45

Torus (wraps horizontally and vertically)

qA

qB

β

α

A

B

Page 71: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Where do we put ?

Configuration Space “Quiz”

An obstacle in the robot’s workspace

β

α

270

360

180

90

0 90 180 135 45

qA β

αqB

A

B

Torus (wraps horizontally and vertically)

Page 72: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Configuration Space Obstacle

An obstacle in the robot’s workspace

β

α

270

360

180

90

0 90 180 135 45

qB

qA

The C-space representation of this obstacle…

β

α

How do we get from A to B ?

A

B

Reference configuration

Page 73: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Two Link Path

Thanks to Ken Goldberg

Page 74: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Two Link Path

Page 75: Algorithms for Sensor-Based Robotics: Configuration Space

CS 436/636, Greg Hager with slides from H. Choset, Z. Dodds, and Dinesh Mocha

Summary

•  Configuration spaces, workspaces, and some basic ideas about topology

•  Types of robots: holonomic/nonholonomic, serial, parallel

•  Kinematics and inverse kinematics

•  Coordinate frames and coordinate transformations

•  Jacobians and velocity relationships

T. Lozano-Pérez. Spatial planning: A configuration space approach. IEEE Transactions on Computing, C-32(2):108-120, 1983.