Kinematics and Configurations Kris Hauser I400B659 Intelligent Robotics Spring 2014 Articulated Robot Robot usually a rigid articulated structure Geometric CAD models relative to reference frames ID: 214604
Download Presentation The PPT/PDF document "Forward" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Forward Kinematics and Configurations
Kris Hauser
I400/B659
:
Intelligent Robotics
Spring
2014Slide2
Articulated Robot
Robot: usually a
rigid articulated structure
Geometric CAD models, relative to reference framesA configuration specifies the placement of those frames (forward kinematics)
q
1
q
2Slide3
Forward Kinematics
Given:
A kinematic reference frame of the robot
Joint angles q1,…,qnFind rigid frames T1,…,
Tn relative to
T0A frame T=(R,t) consists of a rotation R and a translation t so that T·x = R·
x + tMake notation easy: use homogeneous coordinatesTransformation composition goes from right to left:T1·T2 indicates the transformation T
2 first, then T1Slide4
Kinematic Model of Articulated Robots: Reference Frame
T
0
L
0
L
1
L
2
L
3
T
1
ref
T
2
ref
T
3
ref
T
4
refSlide5
Rotating the first joint
T
0
L
0
T
1
ref
q
1
T
1
(q
1
)
T
1
(q
1
) =
T
1
ref
·
R
(q
1
)Slide6
Where is the second joint?
T
0
T
2
ref
q
1
T
2
(q
1
) ?Slide7
Where is the second joint?
T
0
T
2
ref
q
1
T
2
parent
(q
1
) =
T
1
(q
1
)
·
(T
1
ref
)
-1
·
T
2
refSlide8
After rotating joint 2
T
0
T
2
R
q
1
T
2
(q
1
,q
2
) =
T
1
(q
1
)
·
(T
1
ref
)
-1
·T
2
ref
·
R
(q
2
)
q
2Slide9
After rotating joint 2
T
0
T
2
R
q
1
Denote
T
2->
1
ref
= (
T
1
ref
)
-1
·T
2
ref
(frame relative to parent)
T
2
(q
1
,q
2
)
= T
1
(q
1
)
·
T
2-
>
1
ref
·R(q2)
q
2Slide10
General Formula
Denote
(ref frame
relative to parent)
T
0
L
0
L
1
L
2
L
3
T
1
(q
1
)
T
2
(q
1
,q
2
)
T
3
(q
1
,..,q
3
)
T
4
(q
1
,…,q
4
)Slide11
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)
Slide12
To 3D…Much the same, except joint axis must be defined (relative to parent)
Angle-axis parameterizationSlide13
Generalizations
Prismatic joints
Ball
jointsCylindrical jointsSpiralsFree-floating bases
From LaValle,
Planning AlgorithmsSlide14
Configuration Space
q=(q
1
,…,q
n
)
q
1
q
2
q
3
q
n
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 parametersSlide15
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
y
q
robot
reference direction
workspaceSlide16
Articulated Robot
q
1
q
2
q = (q
1
,q
2
,…,q
10
)Slide17
ProteinSlide18
Configuration Space
Space of all its possible configurations
But the topology of this space is in general not that of a Cartesian space
y
q
robot
x
q
q’
3-D cylinder embedded in 4-D space
x
y
q
2
p
S
1
R
2
S
1Slide19
Configuration Space
Space of all its possible configurations
But the topology of this space is in general not that of a Cartesian space
C = S
1
x S
1Slide20
Configuration Space
Space of all its possible configurations
But the topology of this space is in general not that of a Cartesian space
C = S
1
xS
1Slide21
Configuration Space
Space of all its possible configurations
But the topology of this space is in general not that of a Cartesian space
C = S
1
xS
1Slide22
Some Important Topological Spaces
R: real number line
R
n: N-dimensional Cartesian spaceS1: boundary of circle in 2DS2: surface of sphere in 3DSO(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 AHomeomorphism ~ denotes topological equivalenceContinuous mapping with continuous inverse (bijective)Cube ~ S
2SO(2) ~ S1SE(3) ~ SO(3) x R3Slide23
What is its topology?
q
1
q
2
(S
1
)
7
xI
3
(I: Interval of
reals
)Slide24
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
q
1
q
3
q
0
q
n
q
4
q
2
t
(s)Slide25
Examples
A straight line segment linearly interpolating between a and b
t
(s) = (1-s) a + s bWhat about interpolating orientations?A polynomial with coeffients c0
,…,cn
t(s) = c0 + c1s + … + cn
snPiecewise polynomialsPiecewise linearSplines (B-spline,
hermite splines are popular)Can be an arbitrary curveOnly limited by your imagination and representation capabilitiesSlide26
Notion of Trajectory vs. Path
A
trajectory
is a path parameterized by time: t : t
[0,T]
t (t) C
q
1
q
3
q
0
q
n
q
4
q
2
t
(t)Slide27
x
y
q
reference point
robot
reference direction
workspace
q
x
y
2
p
configuration space
What is the placement of the robot in the workspace at configuration (0,0,0)?
Translating & Rotating Rigid Robot in 2-D WorkspaceSlide28
x
y
q
reference point
robot
reference direction
workspace
q
x
y
2
p
configuration space
What is the placement of the robot in the workspace at configuration (0,0,0)?
Translating & Rotating Rigid Robot in 2-D WorkspaceSlide29
x
y
q
reference point
robot
reference direction
workspace
q
x
y
2
p
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 WorkspaceSlide30
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 numbersrobot.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’slink = robot.getLink([index or name])
(R,t) = link.getTransform()3D rigid transform utilities in se3.py