Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Kinematics
Kinematic map, Jacobian, optimality principle of inverse kinematics, singularities, conguration/operational/null space, multiple simultaneous tasks, special task variables, trajectory interpolation, motion proles
Problem
Move all joints in a coordinated way so that the endeffector makes a desired movement
2/47
3 ingredients
1) When we know/set the joint angles, where is the endeffector? 2) When we change the joint angles, how does the eff. change position? 3) When we want a certain change in eff. position, how do we have to change the joint angles?
3/47
Notation
q Rn q R
n
vector of joint angles (robot conguration) vector of joint angular velocities small step in joint angles some endeffector(s) feature(s) e.g. position R3 or vector R3 kinematic map Rdn Jacobian squared norm of v w.r.t. metric W
q
q Rn y Rd : qy J (q ) = ||v ||2 W = v Wv
4/47
3 ingredients
kinematic map
Jacobian
optimality criteria
1) When we know/set the joint angles q , where is the endeffector y ? 2) When we change the joint angles q , how does the eff. change position y ? 3) When we want a certain change y in eff. position, how do we have to
5/47
Kinematics
A kinematic structure is a graph (usually tree or chain) of rigid links and joints
6/47
Kinematics
B
B'
eff
A
A'
C'
A kinematic structure is a graph (usually tree or chain) of rigid links and joints
6/47
Kinematics
eff
joint transf.
B'
A
A'
C'
link transf.
TW e (q ) = TW A TAA (q ) TA B TB B (q ) TB
TC C (q ) TC
7/47
Joint types
link transformations: TW A joint transformations: TAA (q ) depends on q Rn
TAA
TAA
0 1 0 0
0 0 1 0
q 0 0 1
8/47
9/47
Kinematic Map
For any joint angle vector q Rn we can compute TW e (q ) by forward chaining of transformations TW e (q ) gives us the pose of the endeffector
10/47
Kinematic Map
For any joint angle vector q Rn we can compute TW e (q ) by forward chaining of transformations TW e (q ) gives us the pose of the endeffector Two basic ways to dene a kinematic map : q y are pos (q ) = TW e (q ).translation and
1 vec (q ) = [TW e (q ).rotation] 0 0
R3 R3
10/47
3 ingredients
kinematic map Jacobian
optimality criteria
11/47
Jacobian
2) When we change the joint angles q , how does the eff. change position y ?
J (q ) =
(q ) = q
1 (q ) q1 2 (q ) q1 d (q )
. . .
1 (q ) q2 2 (q ) q2
q1
d (q ) q2
d (q )
1 (q ) qn 2 (q ) qn
. . .
Rdn
qn
12/47
Jacobian
eff
axis point
i-th joint
We consider an innitesimal variation qi of the ith joint and see how the endeffectors position pe = pos (q ) and attached vector ae = vec (q ) change. It must hold pe = Jpos (q )i qi ae = Jvec (q )i qi
13/47
Jacobian
eff
axis point
i-th joint
We consider an innitesimal variation qi of the ith joint and see how the endeffectors position pe = pos (q ) and attached vector ae = vec (q ) change. It must hold pe = Jpos (q )i qi
ae = Jvec (q )i qi
1 ai = [TW i (q ).rot] 0 is rotation axis and pi = [TW i (q ).pos] position of ith joint 0
13/47
Jacobian
eff
axis point
i-th joint
Position Jacobian:
Vector Jacobian: R
3n
[a1 (pe p1 )]
[a2 (pe p2 )]
[an (pe pn )]
Jpos (q ) =
Jvec (q ) =
[a1 ae ]
[a2 ae ]
[an ae ]
. . .
R3n
. . .
14/47
Jacobian
To compute the Jacobian of some endeffector position or vector, we only need to know the position and rotation axis of each joint. The two kinematic maps pos and vec are only two basic examples but many more complex geometric features can be computed from these, as we will see later.
15/47
3 ingredients
kinematic map Jacobian
optimality criteria
16/47
17/47
18/47
18/47
Inverse Kinematics
2 f (qt+1 ) = ||qt+1 qt ||2 W + ||(qt+1 ) y ||C
When using the local linearization (qt+1 ) (qt ) + J (qt+1 qt ), the optimal next joint state qt+1 that minimizes f (qt+1 ) is (see excercises): qt+1 = qt + J (y yt ) q = J y J = (J CJ + W )-1 J C = W -1 J (JW -1 J + C -1 )-1
(last equality: Woodbury identity)
for C and W = I, J = J (JJ )-1 is called pseudo-inverse W generalizes the metric in q -space C regularizes this pseudo-inverse (see later section on singularities)
19/47
3 ingredients
kinematic map Jacobian
optimality criteria
20/47
21/47
Why does this not follow the interpolated trajectory y 0:T exactly? What happens if T = 1 and y is far?
21/47
22/47
22/47
23/47
Null/task/operational/joint/conguration spaces
The space of all q Rn is called joint/conguration space The space of all y Rd is called task/operational space Usually d < n, which is called redundancy
24/47
Null/task/operational/joint/conguration spaces
The space of all q Rn is called joint/conguration space The space of all y Rd is called task/operational space Usually d < n, which is called redundancy For a desired endeffector state y there exists a whole manifold (assuming is smooth) of joint congurations q : nullspace(y ) = {q | (q ) = y }
Plain q = J y resolves redundancy based on the be lazy criterion. One can also add null space motion: an additional drift h Rn in the nullspace of the task: q = J y + (I J J ) h This corresponds to a cost term ||qt+1 qt h||2 W in f (qt+1 )!
24/47
Singularity
In general: A matrix J singular rank(J ) < d rows of J are linearly dependent dimension of image is < d y = Jq dimensions of y limited Intuition: arm fully stretched
25/47
Singularity
In general: A matrix J singular rank(J ) < d rows of J are linearly dependent dimension of image is < d y = Jq dimensions of y limited Intuition: arm fully stretched Implications: det(JJ ) = 0 pseudo-inverse J (JJ )-1 is ill-dened! inverse kinematics q = J (JJ )-1 y computes innite steps! Singularity robust pseudo inverse J (JJ + I)-1 The term I is called regularization Recall our general solution (for W = I) J = J (JJ + C -1 )-1 is already singularity robust
25/47
Multiple tasks
26/47
Multiple tasks
27/47
Multiple tasks
Assume we have m simultaneous tasks; for each task i we have: a kinematic mapping yi = i (q ) Rdi a current value yi,t = i (qt ) a desired value yi a metric Ci or precision i (related via Ci = i I)
28/47
Multiple tasks
Assume we have m simultaneous tasks; for each task i we have: a kinematic mapping yi = i (q ) Rdi a current value yi,t = i (qt ) a desired value yi a metric Ci or precision i (related via Ci = i I) Each task contributes a term to the objective function f (qt+1 ) = ||qt+1 qt ||2 W
2 + ||1 (qt+1 ) y1 ||C1
2 ||2 (qt+1 ) y2 ||
28/47
Multiple tasks
Assume we have m simultaneous tasks; for each task i we have: a kinematic mapping yi = i (q ) Rdi a current value yi,t = i (qt ) a desired value yi a metric Ci or precision i (related via Ci = i I) Each task contributes a term to the objective function f (qt+1 ) = ||qt+1 qt ||2 W
2 + ||1 (qt+1 ) y1 ||C1
2 ||2 (qt+1 ) y2 ||
qt+1 = qt +
i=1
J Ci J + W
28/47
Multiple tasks
A much nicer way to write (and code) exactly the same:
29/47
Multiple tasks
A much nicer way to write (and code) exactly the same: f (qt+1 ) = ||qt+1 qt ||2 W + (qt+1 ) (qt+1 )
) M ( (q ) y1 1 1 t+1 2 (2 (qt+1 ) y2 ) with the big task vector (qt+1 ) := . . .
di
where M1 is the Cholesky decomposition C1 = M1 M1 . The optimal joint step now is: qt+1 = qt (J J + W )-1 J (qt ) with J
(q ) q
We learnt how to puppeteer a robot We can handle many task variables (but specifying their precisions becomes cumbersome...)
RightHand position LeftHand position
30/47
The following slides will dene 10 different types of task variables. This is meant to give an idea of possibilities and as reference.
31/47
Notation: posi and roti denote position and rotation in TW i ak , pk are axis and position of joint k [k i] indicates whether joint k is between root and link i Jposi (q )1:3,k is the kth row
32/47
Notation: posi and roti denote position and rotation in TW i ak , pk are axis and position of joint k [k i] indicates whether joint k is between root and link i Jposi (q )1:3,k is the kth row
33/47
Derivation: For y = Rp the derivative w.r.t. a rotation around axis a is y = Rp + R p = Rp + a Rp where a is the skew matrix of a. For y = R-1 p the derivative is y = R-1 p R-1 (R )R-1 p = R-1 (p a p), where a p = a p. Notation: Jrotj (q )1:3,k = [k j ] ak contains the joint axesthe short notation J p means that each column in J takes the cross-product with p.
34/47
Derivation: For y = Rp the derivative w.r.t. a rotation around axis a is y = Rp + R p = Rp + a Rp where a is the skew matrix of a. For y = R-1 p the derivative is y = R-1 p R-1 (R )R-1 p = R-1 (p a p), where a p = a p. (For details see http://userpage.fu-berlin.de/mtoussai/notes/3d-geometry.pdf) Notation: Jrotj (q )1:3,k = [k j ] ak contains the joint axesthe short notation J p means that each column in J takes the cross-product with p.
35/47
d=1 link index i, attached vector v , world reference v aligni,v (q ) = v veci,v Jaligni,v (q ) = v Jveci,v
align = 1 anti-align align = 0 orthog.
align = 1 align
36/47
d=1 link indices i, j , attached vectors vi , vj alignij,vi ,vj (q ) = vecj,vj veci,vi Jalignij,vi ,vj (q ) = vecj,vj Jveci,vi + Jvecj,vj veci,vi
align = 1 anti-align align = 0 orthog.
align = 1 align
37/47
Jlimits (q )1,i =
[ ]: indicator function
38/47
pb k | > 0]
b pa k p k b| |pa p k k
(Jpospa + Jpospb ) k k
A collision detection engine returns a set {(a, b, pa , pb )K k=1 } of potential b collisions between link ak and bk , with nearest points pa k on a and pk on b.
39/47
40/47
Example: Set the target y = 0 and the precistion very low this task describes posture comfortness in terms of deviation from the joints zero position.
41/47
nearest distance
LeftHand position
43/47
43/47
44/47
The sine prole xt = x0 + 1 2 [1 cos(t/T )](xT x0 ) is a compromise for low max-acceleration and max-velocity
Taken from http://www.20sim.com/webhelp/toolboxes/mechatronics_toolbox/ motion_profile_wizard/motionprofiles.htm 45/47
46/47
47/47