Forward Kinematics and Configurations

30
Forward Kinematics and Configurations Kris Hauser I400/B659: Intelligent Robotics Spring 2014

description

Forward Kinematics and Configurations. Kris Hauser I400/B659 : Intelligent Robotics Spring 2014. q 2. q 1. Articulated Robot. Robot: usually a rigid articulated structure Geometric CAD models, relative to reference frames - PowerPoint PPT Presentation

Transcript of Forward Kinematics and Configurations

Page 1: Forward  Kinematics and Configurations

Forward Kinematics and ConfigurationsKris HauserI400/B659: Intelligent RoboticsSpring 2014

Page 2: Forward  Kinematics and Configurations

Articulated Robot• Robot: usually a rigid

articulated structure• Geometric CAD models,

relative to reference frames

• A configuration specifies the placement of those frames (forward kinematics)

q1

q2

Page 3: Forward  Kinematics and Configurations

Forward Kinematics

• Given:• A kinematic reference frame of the robot• Joint angles q1,…,qn

• Find rigid frames T1,…,Tn relative to T0

• A frame T=(R,t) consists of a rotation R and a translation t so that T·x = R·x + t• Make notation easy: use homogeneous coordinates• Transformation composition goes from right to left:

T1·T2 indicates the transformation T2 first, then T1

Page 4: Forward  Kinematics and Configurations

Kinematic Model of Articulated Robots: Reference Frame

T0

L0

L1

L2 L3

T1ref

T2ref

T3ref

T4ref

Page 5: Forward  Kinematics and Configurations

Rotating the first joint

T0

L0

T1ref

q1

T1(q1)

T1(q1) = T1ref·R(q1)

Page 6: Forward  Kinematics and Configurations

Where is the second joint?

T0

T2ref

q1

T2(q1) ?

Page 7: Forward  Kinematics and Configurations

Where is the second joint?

T0

T2ref

q1

T2parent(q1) = T1(q1) ·(T1

ref)-1·T2ref

Page 8: Forward  Kinematics and Configurations

After rotating joint 2

T0

T2R

q1

T2(q1,q2) = T1(q1) ·(T1ref)-1·T2

ref·R(q2)

q2

Page 9: Forward  Kinematics and Configurations

After rotating joint 2

T0

T2R

q1

Denote T2->1ref = (T1

ref)-1·T2ref (frame relative to parent)

T2(q1,q2) = T1(q1) ·T2->1ref·R(q2)

q2

Page 10: Forward  Kinematics and Configurations

General FormulaDenote (ref frame relative to parent)

T0

L0

L1

L2L3

T1(q1)

T2(q1,q2)T3(q1,..,q3)

T4(q1,…,q4)

Page 11: Forward  Kinematics and Configurations

Generalization to tree structures• Topological sort: p[k] = parent of link k• Denote (frame i relative to parent)• Let A(i) be the list of ancestors of i (sorted from root to i)

Page 12: Forward  Kinematics and Configurations

To 3D…• Much the same, except joint axis must be defined (relative to

parent)• Angle-axis parameterization

Page 13: Forward  Kinematics and Configurations

Generalizations• Prismatic joints• Ball joints• Cylindrical joints• Spirals• Free-floating bases

From LaValle, Planning Algorithms

Page 14: Forward  Kinematics and Configurations

Configuration Space

q=(q1,…,qn)

q1q2

q3

qn

A robot configuration is a specification of the positions of all robot frames relative to a fixed coordinate system

Usually a configuration is expressed as a “vector” of parameters

Page 15: Forward  Kinematics and Configurations

reference point

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)

x

yq

robot reference direction

workspace

Page 16: Forward  Kinematics and Configurations

Articulated Robot

q1

q2

q = (q1,q2,…,q10)

Page 17: Forward  Kinematics and Configurations

Protein

Page 18: Forward  Kinematics and Configurations

Configuration Space• Space of all its possible configurations• But the topology of this space is in general not that of a

Cartesian space

yq

robot

x

q

q’

3-D cylinder embedded in 4-D space

x

y

q2p

S1

R2S1

Page 19: Forward  Kinematics and Configurations

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

Page 20: Forward  Kinematics and Configurations

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

Page 21: Forward  Kinematics and Configurations

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

Page 22: Forward  Kinematics and Configurations

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

Page 23: Forward  Kinematics and Configurations

What is its topology?

q1

q2

(S1)7xI3

(I: Interval of reals)

Page 24: Forward  Kinematics and Configurations

Notion of a (Geometric) Path

• A path in C is a piece of continuous curve connecting two configurations q and q’:

t : s [0,1] t (s) C

q1

q3

q0

qn

q4

q2

t(s)

Page 25: Forward  Kinematics and Configurations

Examples• A straight line segment linearly interpolating between a and b

• t(s) = (1-s) a + s b• What about interpolating orientations?

• 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

Page 26: Forward  Kinematics and Configurations

Notion of Trajectory vs. Path

• A trajectory is a path parameterized by time: t : t [0,T] t (t) C

q1

q3

q0

qn

q4

q2

t(t)

Page 27: Forward  Kinematics and Configurations

x

yq

reference point

robotreference direction

workspaceq

x

y

2p

configuration space

What is the placement of the robot in the workspace at configuration (0,0,0)?

Translating & Rotating Rigid Robot in 2-D Workspace

Page 28: Forward  Kinematics and Configurations

x

yq

reference point

robotreference direction

workspaceq

x

y

2p

configuration space

What is the placement of the robot in the workspace at configuration (0,0,0)?

Translating & Rotating Rigid Robot in 2-D Workspace

Page 29: Forward  Kinematics and Configurations

x

yq

reference point

robotreference direction

workspaceq

x

y

2p

configuration space

What is this path in the workspace?

What would be the path in configuration space corresponding to a full rotation of the robot about point P?

P

Translating & Rotating Rigid Robot in 2-D Workspace

Page 30: Forward  Kinematics and Configurations

Klamp’t Python API• world = WorldModel()• world.readFile([some file])• robot = world.robot(0) [if the world has only one robot]• A robot’s configuration is a list of numbers

• robot.getConfig()• robot.setConfig(q) automatically performs forward kinematics• It does not necessarily transform like a vector!• Robot-specific interpolation function: robot.interpolate(a,b,u)

• A robot’s frames are given as a list of RobotModelLink’s• link = robot.getLink([index or name])• (R,t) = link.getTransform()

• 3D rigid transform utilities in se3.py