Structure and Synthesis of Robot Motion
Kinematics
Subramanian RamamoorthySchool of Informatics
18 January, 2010
What is Kinematics?
• Kinematics (Greek κινειν, kinein, to move) is a branch of classical mechanics which describes the motion of objects without consideration of the circumstances leading to the motion.
• As opposed to dynamics - which studies relation between motion of objects and its causes.
• Robot kinematics is the study of the motion of robots. In a kinematic analysis the position, velocity and acceleration of all the links are calculated without considering the forces that cause this motion.
• Robot kinematics deals with aspects of redundancy, collision avoidance and singularity avoidance.
18/01/2010 Structure and Synthesis of Robot Motion 2
Why might we Ignore Causes of Motion
Many possible reasons:• To get a temporary handle on constraints• To restrict the solution space for the more detailed problem• Because, sometimes, that is enough (e.g., animation) or even
just kinematics can be hard (e.g., biology or surgery)
For now:• We will discuss this classical view of robot motion• In many modern problems, the strict separation of concerns
may be hard to achieve– E.g., Humanoid walking is an intricate mix of kinematics and dynamics
18/01/2010 Structure and Synthesis of Robot Motion 3
Recap: Describing 3-dim motion
18/01/2010 Structure and Synthesis of Robot Motion 4
Recap: Combined 3-dim Rotations
If a robot/object consists of many links/parts, we could compute position of any end with respect to a base via an appropriate sequence of transformations:
18/01/2010 Structure and Synthesis of Robot Motion 5
Where are these two pointsw.r.t. each other?
A Typical Scenario
• Many robotics problems involve a workspace goal that needs to be achieved through joint space actions
• Translating between the two coordinate systems requires thinking through a sequence of coord. Frames
• In the figure:– How does object motion
translate to robot manipulator motion?
18/01/2010 Structure and Synthesis of Robot Motion 6
Anatomy of a Typical Robot Manipulator
joints links
gripper (end effector)
Manipulator model from: http://uwf.edu/ria/robotics/robotdraw/4dofform.htm
18/01/2010 7Structure and Synthesis of Robot Motion
Structure and Synthesis of Robot Motion
Two Aspects of Kinematics
• Forward Kinematics– Given joint angles, compute the transformation
between world & gripper coordinates– Relatively straightforward
• Inverse Kinematics– Given the transformation between world
coordinates and an arbitrary frame, compute the joint angles that would line your gripper coordinates up with that frame.
– More complex
18/01/2010 8
Forward Kinematics
18/01/2010 Structure and Synthesis of Robot Motion 9
Scenario:You have a robotic arm that starts
out aligned with the xo-axis.
You tell the first link to move by 1 and the second link to move by 2
Question:What is the position of the end of the robotic arm?
Solution:Use transformation matrices from
earlier lecture
H = Rz(1 ) * Tx1(l1) * Rz(2 ) * Tx2(l2) * Rz(3 )
i.e. Rotating by 1 will put you in the X1Y1 frame. Translate in the along the X1 axis by l1. Rotating by 2 will put you in the X2Y2 frame. and so on until you are in the X3Y3 frame.
The position of the yellow dot relative to the X3Y3 frame is(l1, 0). Multiplying H by that position vector will give you the coordinates of the yellow point relative the the X0Y0 frame.
Locate the Yellow Dot in Base Frame
X2
X3Y2
Y3
1
2
3
1
2 3
X1
Y1
X0
Y0
18/01/2010 10Structure and Synthesis of Robot Motion
Rotation, around z, by Y2
Translation, along x2, by l2
X2
X3Y2
Y3
1
2
3
1
2 3
X1
Y1
X0
Y0
X4
Y4
H = Rz(1 ) * Tx1(l1) * Rz(2 ) * Tx2(l2) * Rz(3 ) * Tx3(l3)
This takes you from the X0Y0 frame to the X4Y4 frame.
The position of the yellow dot relative to the X4Y4 frame is (0,0).
1
0
0
0
H
1
Z
Y
X
Notice that multiplying by the (0,0,0,1) vector will equal the last column of the H matrix.
Variation: New Coordinate Frame at the Dot
18/01/2010 11Structure and Synthesis of Robot Motion
Denavit-Hartenberg Convention
A Standard Description involving 4 parameters:
a(i-1) : Length of perpendicular between joint axes
(i-1) : Amount of rotation around the common perpendicular so that the joint axes are parallel
d(i-1) : The displacement along the Zi axis needed to align the a(i-1) to the ai common perpendiculars.
i : Amount of rotation around the Zi
axis needed to align the X(i-1) axis with the Xi axis.
18/01/2010 Structure and Synthesis of Robot Motion 12
Transformation Matrices from DH Convention
18/01/2010 Structure and Synthesis of Robot Motion 13
1000
cosαcosαsinαcosθsinαsinθ
sinαsinαcosαcosθcosαsinθ
0sinθcosθ
i1)(i1)(i1)(ii1)(ii
i1)(i1)(i1)(ii1)(ii
1)(iii
d
d
a
Z(i - 1)
X(i -1)
Y(i -1)
( i -
1)
a(i -
1 )
Z i Y
i X
i
a
i
d
i i
1
X
Y
S
Revolute and Prismatic Joints Combined
(x , y)
Find Angle:
)x
yarctan(θ
More Specifically:
)x
y(2arctanθ arctan2() specifies that it’s in the
first quadrant
Finding S:
)y(xS 22
Inverse Kinematics: Simplest Example
18/01/2010 14Structure and Synthesis of Robot Motion
2
(x , y)
l2
l1
Given: l1, l2 , x , y
Find: 1, 2
Redundancy:A unique solution to this problem
does not exist - two solutions are possible. Sometimes no solution is possible.(x , y)l2
l1l2
l1
Bit More Complex: 2-link Manipulator
18/01/2010 15Structure and Synthesis of Robot Motion
21
22
21
22
2
2212
22
1
211211212
22
1
2222
2
yxarccosθ
c2
)(sins)(cc2
yx)2((1)
ll
ll
llll
lllll1
l22
1
(x , y)
21
21211
21211
1221
11
θθθ(3)
sinsy(2)
ccx(1)
)θcos(θc
cosθc
ll
ll
Solving for the Joint Angles
18/01/2010 Structure and Synthesis of Robot Motion 16
)c(s)s(c
cscss
ssy
)()c(c
ccc
ccx
2211221
12221211
21211
2212211
21221211
21211
lll
lll
ll
slsll
sslll
ll
2222221
1
2212
22
1122221
221122221
221
yx
x)c(ys
)c2(sx)c(
1
)c(s)s()c(
)(xy
slll
llllslll
lllll
sls
22
222211
yx
x)c(yarcsinθ
slll
Solving for Joint Angles, Contd.
18/01/2010 Structure and Synthesis of Robot Motion 17
Things can Begin to Get Complicated…
This is still within our model:
But, we’d like to avoid tedious calculations like in last slide
18/01/2010 Structure and Synthesis of Robot Motion 18
Keep feet fixed
Hands should followthe mouse
Use of the Jacobian
• Chain of links maps a set of input variables (Joint Angles) to end effecter variables:
• The Jacobian is defined as:
• A transformation from joint velocities to end-point velocities:
18/01/2010 Structure and Synthesis of Robot Motion 19
)(FX
)(
)(F
J
)(JXV
Jacobian: A Simple Example
18/01/2010 Structure and Synthesis of Robot Motion 20
Using the Jacobian Inverse
• Use task level goals to figure out how end effecter should move - V
• Solve for the joint angle velocities:
• Some pitfalls:– J might be singular– Overdetermined system
Concept of Pseudoinverse:
18/01/2010 Structure and Synthesis of Robot Motion 21
)(JYV
11
1
)'('')'( where
')'(
''
JJJJJJJ
VJ
VJJJ
JJVJ
JV
When is thissingular?
Jacobian of the 2-link Arm
18/01/2010 Structure and Synthesis of Robot Motion 22
Where are the Singularities in 2-link Arm?
18/01/2010 Structure and Synthesis of Robot Motion 23
= 0!
Regularizing the Inverse
• While the pseudoinverse will yield a solution, it may not be the right one always
• What are the criteria?• One way to handle this is to
define additional optimisation criteria:
18/01/2010 Structure and Synthesis of Robot Motion 24
function Goodness"" :)(
space null of basis lOrthonorma :
)('..)(
T
N
TNNVJ
Dealing with Ill-Posedness: Heuristic Optimisation
• Most real problems we care about will take us into these deep waters – hard to get the “correct” solution
• One practical approach that is favoured in animation is Cyclic Coordinate Descent– Iterative heuristic procedure, one joint at a
time– When faced with a large task, prioritise
hierarchically and make easy choices first– Other similar heuristics may also be useful
• Even so, with branching and multiple chains, one needs more care!
18/01/2010 Structure and Synthesis of Robot Motion 25
p1
p2
Other Issues: Closed Chains
18/01/2010 Structure and Synthesis of Robot Motion 26
Many of our approximations (e.g., Regularized Inverses) may be subject to peculiar constraints such as loop closure.
Learning Inverse Kinematics
• The relationships we have been discussing are fairly well defined, involving trigonometric functions, etc.
• It should be possible to approximate/learn them from data• Main problem: Inverse kinematics is an ill-posed problem –
there are potentially large number of solutions due to redundancies and singularities– This makes the learning problem non-convex
• One solution, use localized learning– e.g., A. D’Souza, S. Vijayakumar, S. Schaal, Learning Inverse
Kinematics, Proc. IROS 2001
18/01/2010 Structure and Synthesis of Robot Motion 27
Locally Weighted Learning for IK
• Use many local models with restricted regions of applicability:
• The Jacobian can be represented in terms of weighted sums, involving suitable kernels (e.g., Gaussian receptive fields)
• Then, learning becomes an iterative process involving targets:
18/01/2010 Structure and Synthesis of Robot Motion 28
Hard Kinematics Problem 1: Constraints & Scale
18/01/2010 Structure and Synthesis of Robot Motion 29
Source: J-C. Latombe, Stanford.
Hard Kinematics Problem 2:Flexibility, High-DOF, Complex Dynamics
18/01/2010 Structure and Synthesis of Robot Motion 30
DockingShop Rendering of HIV-1 Protease in Complex with the Cyclic Sulfamide Inhibitor Aha006 (PDB code 1AJV). Source: LBL.
Hard Kinematics Problem 3:Dealing with Non-rigid Objects
18/01/2010 Structure and Synthesis of Robot Motion 31
Source: J-C. Latombe, Stanford.
Summary
• We looked at forward and inverse kinematics
• Forward: Given joint angles, where is the end point?
• Inverse: If I want end point here, what are the angles?
• Latter is harder – analytical solutions are tedious and multi-valued, often use local approximations– Could use Machine Learning
Other challenging issues:• Although we classified
problems into categories, real world problems are more diverse (e.g., humans are not really rooted trees)
18/01/2010 Structure and Synthesis of Robot Motion 32
Top Related