Robotics 1 Position and orientation of rigid bodies Prof. Alessandro De Luca Robotics 1 1
Position and orientation right-handed orthogonal Reference Frames RF A A p AB B RF B rigid body position: A p AB (vector! R 3 ), expressed in RF A (use of coordinates I other than Cartesian is possible, e.g. cylindrical or spherical) orientation: orthonormal 3x3 matrix (R T = R -1 " A R B B R A = I), with det = +1 A R B = [ A x B A y B A z B ] x A y A z A (x B y B z B ) are unit vectors (with unitary norm) of frame RF A (RF B ) components in A R B are the direction cosines of the axes of RF B with respect to (w.r.t.) RF A Robotics 1 2
orthonormal, with det = +1 A R B = orientation of RF i w.r.t. RF k Rotation matrix x A T x B x A T y B x A T z B y A T x B y A T y B y A T z B z A T x B z A T y B z A T z B chain rule property k R i! i R j = k R j orientation of RF j w.r.t. RF i direction cosine of z B w.r.t. x A algebraic structure of a group SO(3) (neutral element = I; inverse element = R T ) orientation of RF j w.r.t. RF k NOTE: in general, the product of rotation matrices does not commute! Robotics 1 3
Change of coordinates z 0 0 p x z 1 P 0 P = 0 p y 0 p z = 1 p x 0 x 1 + 1 p y 0 y 1 + 1 p z 0 z 1 1 p x y 1 = 0 x 1 0 y 1 0 z 1 1 p y RF 1 1 p z RF 0 y 0 = 0 R 1 1 P x 0 x 1 the rotation matrix 0 R 1 (i.e., the orientation of RF 1 w.r.t. RF 0 ) represents also the change of coordinates of a vector from RF 1 to RF 0 Robotics 1 4
Ex: Orientation of frames in a plane (elementary rotation around z-axis) v y C O # P # u x B 0 OP RF C RF 0 x y z = x = OB xb = u cos # - v sin #$ y = OC + Cy = u sin # + v cos #$ z = w or 0 x C 0 y C 0 z C cos # $sin # $0 sin # $ cos # 0 0 0 1 u v w = R z (#) C OP u v w similarly: R x (#) = 1 0 0 0 cos # sin # 0 sin # cos #$ R z (-#) = R zt (#) R y (#) = cos # 0 sin # 0 1 0 sin # 0 cos #$ Robotics 1 5
Ex: Rotation of a vector around z y y # v v x = v cos %$ y = v sin %$ x = v cos (% + #) = v (cos % cos # - sin % sin #) x = x cos # - y sin # O %$ x x y = v sin (% + #) = v (sin % cos # + cos % sin #) x = x sin # + y cos # or z = z x y z = cos # sin # 0 sin # cos # 0 0 0 1 x y z = R z (#) x y z as before! Robotics 1 6
Equivalent interpretations of a rotation matrix the same rotation matrix, e.g., R z (#), may represent: v RF C P RF C # v # # RF 0 RF 0 the orientation of a rigid body with respect to a reference frame RF 0 ex: [ 0 x c 0 y c 0 z c ] = R z (#) the change of coordinates from RF C to RF 0 ex: 0 P = R z (#) C P the vector rotation operator ex: v = R z (#) v the rotation matrix 0 R C is an operator superposing frame RF 0 to frame RF C Robotics 1 7
Composition of rotations 1 R 2 brings RF 0 on RF 1 2 brings RF 1 on RF 2 R 3 brings RF 2 on RF 3 0 R 1 p 23 = 0 3 p p 01 = 0 p 12 = 0 RF 1 RF 0 a comment on computational complexity RF 2 RF 3 0 p = ( 0 R 1 1 R 2 2 R 3 ) 3 p = 0 R 3 3 p 63 products 42 summations 0 p = 0 R 1 ( 1 R 2 ( 2 R 33 p)) 27 products 18 summations 2 p Robotics 1 1 p 8
Axis/angle representation r z z 0 P v r DATA unit vector r (!r! = 1)$ # (positive if counterclockwise, as seen from an observer placed like r) x 0 z 1 r x RF 1 #$ v RF 0 y 1 r y y 0 RF 1 is the result of rotating RF 0 by an angle # around the unit vector r DIRECT PROBLEM find R(#,r) = [ 0 x 1 0 y 1 0 z 1 ] such that 0 P= R(#,r) 1 P 0 v = R(#,r) 0 v x 1 Robotics 1 9
Axis/angle: Direct problem z 1 3 z 0 1 C C -1 = C T 2 R z (#) r y 1 R(#,r) = C R z (#) C T concatenation of three rotations C = n s r RF 1 RF 0 y 0 after the first rotation the z-axis coincides with r x 0 x 1 sequence of 3 rotations that bring frame RF 0 to superpose with frame RF 1 n and s are orthogonal unit vectors such that n " s = r, or n y s z - s y n z = r x n z s x - s z n x = r y n x s y - s x n y = r z Robotics 1 10
Axis/angle: Direct problem solution R(#,r) = C R z (#) C T R(#,r) = n s r c# - s# 0 s# c# 0 0 0 1 n T s T r T = r r T + (n n T + s s T ) c# + (s n T - n s T ) s# taking into account that C C T = n n T + s s T + r r T = I, and that depends only on r and #!! 0 -r z r y s n T - n s T = 0 -r x = S(r) R(#,r) = r r T + (I - r r T ) c# + S(r) s# 0 skew-symmetric(r): r " v = S(r)v = - S(v)r = R T (-#,r) = R(-#,-r) Robotics 1 11
Rodriguez formula v = R(#,r) v v = v cos # + (r " v) sin # + (1 - cos #)(r T v) r proof: R(#,r) v = (r r T + (I - r r T ) cos # + S(r) sin #)v = r r T v (1 - cos #) + v cos # + (r " v) sin # q.e.d. Robotics 1 14
Unit quaternion " to eliminate undetermined and singular cases arising in the axis/angle representation, one can use the unit quaternion representation Q = {-,.} = {cos(#/2), sin(#/2) r} a scalar 3-dim vector " - 2 +!.! 2 = 1 (thus, unit... ) " (#, r) and (-#, -r) gives the same quaternion Q " the absence of rotation is associated to Q = {1, 0} " unit quaternions can be composed with special rules (in a similar way as in the product of rotation matrices) Q 1 *Q 2 = {- 1-2 -. 1T. 2, - 1. 2 + - 2. 1 +. 1 ". 2 } Robotics 1 20
Robotics 1 Minimal representations of orientation (Euler and roll-pitch-yaw angles) Homogeneous transformations Prof. Alessandro De Luca Robotics 1 1
Minimal representations rotation matrices: 9 elements - 3 orthogonality relationships - 3 unitary relationships = 3 independent variables direct problem inverse problem sequence of 3 rotations around independent axes fixed (a i ) or moving/current (a i ) axes 12 + 12 possible different sequences (e.g., XYX) actually, only 12 since {(a 1 α 1 ), (a 2 α 2 ), (a 3 α 3 )} { (a 3 α 3 ), (a 2 α 2 ), (a 1 α 1 )} Robotics 1 2
x z z R z (ψ) = ZX Z Euler angles 1 2 R z (φ) = RF φ φ x RF y y cos φ sin φ 0 sin φ cos φ 0 0 0 1 3 θ z x x z RF cos ψ sin ψ 0 sin ψ cos ψ 0 0 0 1 z z ψ y θ y x ψ R x (θ) = 1 0 0 0 cos θ sin θ 0 sin θ cos θ x y y RF Robotics 1 3
ZX Z Euler angles direct problem: given φ, θ, ψ ; find R R ZX Z (φ, θ, ψ) = R Z (φ) R X (θ) R Z (ψ) order of definition in concatenation = cφ cψ - sφ cθ sψ - cφ sψ - sφ cθ cψ sφ sθ sφ cψ + cφ cθ sψ - sφ sψ + cφ cθ cψ - cφ sθ sθ sψ sθ cψ cθ given a vector v = (x,y,z ) expressed in RF, its expression in the coordinates of RF is v = R ZX Z (φ, θ, ψ) v the orientation of RF is the same that would be obtained with the sequence of rotations: ψ around z, θ around x (fixed), φ around z (fixed) Robotics 1 4
x x z Roll-Pitch-Yaw angles 1 ROLL z 2 z R X (ψ) = ψ ψ y y 1 0 0 0 cos ψ sin ψ 0 sin ψ cos ψ C 2 R Z (φ)c 2 T with R Z (φ) = z 3 θ x x YAW cos φ sin φ 0 sin φ cos φ 0 0 0 1 θ z y y z y x PITCH φ C 1 R Y (θ)c 1 T φ with R Y (θ) = cos θ 0 sin θ 0 1 0 sin θ 0 cos θ Robotics 1 6 z x y y
Roll-Pitch-Yaw angles (fixed XYZ) direct problem: given ψ, θ, φ ; find R R RPY (ψ, θ, φ) = R Z (φ) R Y (θ) R X (ψ) order of definition cφ cθ cφ sθ sψ - sφ cψ cφ sθ cψ + sφ sψ = sφ cθ sφ sθ sψ + cφ cψ sφ sθ cψ - cφ sψ - sθ cθ sψ cθ cψ inverse problem: given R = {r ij }; find ψ, θ, φ note the order of products! r 32 2 + r 33 2 = c 2 θ, r 31 = -sθ θ = ATAN2{-r 31, ± r 32 2 + r 332 } if r 32 2 + r 33 2 0 (i.e., cθ 0) two symmetric values w.r.t. π/2 r 32 /cθ = sψ, r 33 /cθ = cψ ψ = ATAN2{r 32 /cθ, r 33 /cθ} similarly... φ = ATAN2{ r 21 /cθ, r 11 /cθ } singularities for θ = ± π/2 Robotics 1 7
Homogeneous transformations P B p A p RF B A p AB affine relationship O B RF A O A A p = A p AB + A R B B p A p hom = A p A R B A p AB B p = 1 0 0 0 1 1 = A T B B p hom linear relationship vector in homogeneous coordinates 4x4 matrix of homogeneous transformation Robotics 1 9
Properties of T matrix describes the relation between reference frames (relative pose = position & orientation) transforms the representation of a position vector (applied vector from the origin of the frame) from a given frame to another frame it is a roto-translation operator on vectors in the three-dimensional space it is always invertible ( A T B ) -1 = B T A can be composed, i.e., A T C = A T B B T C note: it does not commute! Robotics 1 10
Inverse of a homogeneous transformation A p = A p AB + A R B B p B p = B p BA + B R A A p = - A R B T A p AB + A R B T A p A R B 0 0 0 1 A p AB B R A 0 0 0 1 B p BA = A R B T - A R B T A p AB 0 0 0 1 A T B B T ( A T B ) -1 A Robotics 1 11
Defining a robot task y E RF E absolute definition of task task definition relative to the robot end-effector z E RF B RF T 2 1 3 W T T = W T B B T E E T T known, once the robot direct kinematics of the is placed robot arm (function of q) RF W B T E (q) = W T B -1 W T T E T T -1 = cost Robotics 1 12
Final comments on T matrices they are the main tool for computing the direct kinematics of robot manipulators they are used in many application areas (in robotics and beyond) in the positioning of a vision camera (matrix b T c with the extrinsic parameters of the camera posture) in computer graphics, for the real-time visualization of 3D solid objects when changing the observation point A T B = A R B α x α y α z A p AB σ all zero in robotics coefficients of perspective deformation scaling coefficient always unitary in robotics Robotics 1 13
Robotics 1 Direct kinematics Prof. Alessandro De Luca Robotics 1 1
Kinematics of robot manipulators! study of geometric and time properties of the motion of robotic structures, without reference to the causes producing it! robot seen as (open) kinematic chain of rigid bodies interconnected by (revolute or prismatic) joints Robotics 1 2
! functional aspects Motivations! definition of robot workspace! calibration! operational aspects task execution (actuation by motors) task definition and performance two different spaces related by kinematic (and dynamic) maps! trajectory planning! programming! motion control Robotics 1 3
Kinematics formulation and parameterizations JOINT space r = f(q) DIRECT INVERSE! choice of parameterization q TASK (Cartesian) space q = (q 1,,q n ) q = f -1 (r) r = (r 1,,r m )! unambiguous and minimal characterization of the robot configuration! n = # degrees of freedom (dof) = # robot joints (rotational or translational)! choice of parameterization r! compact description of positional and/or orientation (pose) components of interest to the required task! m! 6, and usually m! n (but this is not strictly needed) Robotics 1 4
Open kinematic chains q 2 q n RF E q 1 q 3 q 4 e.g., the relative angle between a link and the following one r = (r 1,,r m ) e.g., it describes the pose of frame RF E! m = 2! pointing in space! positioning in the plane! m = 3! orientation in space! positioning and orientation in the plane Robotics 1 5
Classification by kinematic type (first 3 dofs) SCARA (RRP) cartesian or gantry (PPP) cylindric (RPP) polar or spherical (RRP) articulated or anthropomorphic (RRR) P = 1-dof translational (prismatic) joint R = 1-dof rotational (revolute) joint Robotics 1 6
Direct kinematic map! the structure of the direct kinematics function depends from the chosen r r = f r (q)! methods for computing f r (q)! geometric/by inspection! systematic: assigning frames attached to the robot links and using homogeneous transformation matrices Robotics 1 7
y Example: direct kinematics of 2R arm l 1 l 2 q 1 q 2 P " p q = q 1 y p x x r = q 2 p x p y " p x = l 1 cos q 1 + l 2 cos(q 1 +q 2 ) p y = l 1 sin q 1 + l 2 sin(q 1 +q 2 ) " = q 1 + q 2 for more general cases we need a method! n = 2 m = 3 Robotics 1 8
Numbering links and joints link 1 joint 2 link i-1 joint i+1 joint n joint 1 link 0 (base) joint i-1 joint i link i link n (end effector) revolute prismatic Robotics 1 9
Relation between joint axes axis of joint i axis of joint i+1 90 A # i $ % $ 90 B common normal (axis of link i) a i = distance AB between joint axes (always well defined) # i = twist angle between joint axes [projected on a plane % orthogonal to the link axis] with sign (pos/neg)! Robotics 1 10
Relation between link axes link i-1 axis of joint i link i axis of link i-1 C D & i ' $ axis of link i d i = distance CD (a variable if joint i is prismatic) & i = angle (a variable if joint i is revolute) between link axes [projected on a plane ' orthogonal to the joint axis] with sign (pos/neg)! Robotics 1 11
Frame assignment by Denavit-Hartenberg (DH) joint axis i-1 link i-1 joint axis i link i joint axis i+1 frame RF i is attached to link i a i z i # i d i z i-1 x i-1 O i x i & i O i-1 axis around which the link rotates or along which the link slides common normal to joint axes i and i+1 Robotics 1 12
axis of joint i-1 Denavit-Hartenberg parameters link i-1 axis of joint i D link i a i axis of joint i+1 z i # i d i z i-1 x i-1 O i x i & i O i-1! unit vector z i along axis of joint i+1! unit vector x i along the common normal to joint i and i+1 axes (i ( i+1)! a i = distance DO i positive if oriented as x i (constant = length of link i)! d i = distance O i-1 D positive if oriented as z i-1 (variable if joint i is PRISMATIC)! # i = twist angle between z i-1 and z i around x i (constant)! & i = angle between x i-1 and x i around z i-i (variable if joint i is REVOLUTE) Robotics 1 13
Homogeneous transformation between DH frames (from frame i-1 to frame i )! roto-translation around and along z i-1 c& i -s& i 0 0 1 0 0 0 s& i c& i 0 0 0 1 0 0 i-1 A i (q i ) = 0 0 1 0 0 0 1 d = i 0 0 0 1 0 0 0 1 c& i -s& i 0 0 s& i c& i 0 0 0 0 1 d i 0 0 0 1 rotational joint ) q i = & i prismatic joint ) q i = d i! roto-translation around and along x i i A i = 1 0 0 a i 0 c# i -s# i 0 0 s# i c# i 0 0 0 0 1 always a constant matrix Robotics 1 15
Denavit-Hartenberg matrix i-1 A i (q i ) = i-1 A i (q i ) i A i = c& i -c# i s& i s# i s& i a i c& i s& i c# i c& i -s# i c& i a i s& i 0 s# i c# i d i 0 0 0 1 compact notation: c = cos, s = sin Robotics 1 16
Direct kinematics of manipulators description internal to the robot y E slide s using: product 0 A 1 (q 1 ) 1 A 2 (q 2 ) n-1 A n (q n ) q=(q 1,,q n ) x E z E approach a normal n z 0 RF B y 0 x 0 B T E = B T 0 0 A 1 (q 1 ) 1 A 2 (q 2 ) n-1 A n (q n ) n T E r = f r (q) external description using r = (r 1,,r m ) B T E = R p = 000 1 n s a p 0 0 0 1 alternative descriptions of robot direct kinematics Robotics 1 17
Example: SCARA robot q 3 q 2 q 1 q 4 Robotics 1 18
Step 1: joint axes all parallel (or coincident) twists # i = 0 or % J1 shoulder J2 elbow J3 prismatic J4 revolute Robotics 1 19
Step 2: link axes the vertical heights of the link axes are arbitrary (for the time being) a 1 a 2 a 3 = 0 Robotics 1 20
Step 3: frames z 1 y i axes for i > 0 are not shown (and not needed; they form right-handed frames) z 0 x z 2 = z 3 1 x 2 x 3 x 4 z 4 = a axis (approach) x 0 y 0 Robotics 1 21
Step 4: DH parameters table i # i $ a i d i & i z 1 x z 2 = z 3 1 1 0 a 1 d 1 q 1 2 0 a 2 0 q 2 x 4 x 2 x 3 3 0 0 q 3 0 4 % 0 d 4 q 4 z 0 z 4 x 0 y 0 note: d 1 and d 4 could have been chosen = 0! moreover, here it is d 4 < 0!! Robotics 1 22
Step 5: transformation matrices 0 A 1 (q 1 )= 1 A 2 (q 2 )= c& 1 - s& 1 0 a 1 c& 1 s& 1 c& 1 0 a 1 s& 1 0 0 1 d 1 0 0 0 1 c& 2 - s& 2 0 a 2 c& 2 s& 2 c& 2 0 a 2 s& 2 0 0 1 0 0 0 0 1 q = (q 1, q 2, q 3, q 4 ) = (& 1, & 2, d 3, & 4 ) 2 A 3 (q 3 )= 3 A 4 (q 4 )= 1 0 0 0 0 1 0 0 0 0 1 d 3 0 0 0 1 c& 4 s& 4 0 0 s& 4 -c& 4 0 0 0 0-1 0 0 0 d 4 1 Robotics 1 23
Step 6: direct kinematics 0 A 3 (q 1,q 2,q 3 )= 3 A 4 (q 4 )= R(q 1,q 2,q 4 )=[ n s a ] 0 A 4 (q 1,q 2,q 3,q 4 )= c 12 -s 12 0 a 1 c 1 + a 2 c 12 s 12 c 12 0 a 1 s 1 + a 2 s 12 0 0 1 0 0 0 d 1 +q 3 1 c 4 s 4 0 0 s 4 -c 4 0 0 0 0-1 0 0 0 d 4 1 c 124 s 124 0 a 1 c 1 + a 2 c 12 s 124 -c 124 0 a 1 s 1 + a 2 s 12 0 0-1 d 1 +q 3 +d 4 0 0 0 1 p = p(q 1,q 2,q 3 ) Robotics 1 24
Robotics 1 Differential kinematics Prof. Alessandro De Luca Robotics 1 1
Differential kinematics relationship between motion (velocity) in the joint space and motion (linear and angular velocity) in the task (Cartesian) space instantaneous velocity mappings can be obtained through time derivation of the direct kinematics function or geometrically at the differential level different treatments arise for rotational quantities establish the link between angular velocity and time derivative of a rotation matrix time derivative of the angles in a minimal representation of orientation Robotics 1 2
Linear and angular velocity of the robot end-effector.. ω 2 = z 1 2. ω n = z n-1 n ω v ω 1 = z 0 1. v 3 = z 2 d 3. ω i = z i-1 i alternative definitions of the e-e direct kinematics r = (p,φ) R p T = 000 1 v and ω are vectors, namely elements of vector spaces: they can be obtained as the sum of contributions of the joint velocities (in any order) on the other hand, φ (and dφ/dt) is not an element of a vector space: a minimal representation of a sequence of rotations is not obtained by summing the corresponding minimal representations (angles φ) in general, ω dφ/dt Robotics 1 4
Finite and infinitesimal translations finitex, y, z or infinitesimal dx, dy, dz translations (linear displacements) always commute z y z z x y z y = x same final position y Robotics 1 5
initial orientation z Finite rotations do not commute example y φ X = 90 z y x z mathematical fact: ω is NOT an exact differential form (the integral of ω over time depends on the integration path!) x z φ Z = 90 φ Z = 90 x y φ X = 90 x z y x different final orientations note: finite rotations still commute when Robotics 1 made around the same fixed axis 6 y
Infinitesimal rotations commute! infinitesimal rotations dφ X, dφ Y, dφ Z around x,y,z axes R X (φ X ) = 1 0 0 0 cos φ X sin φ X 0 sin φ X cos φ X R X (dφ X ) = 1 0 0 0 1 dφ X 0 dφ X 1 R Y (φ Y ) = cos φ Y 0 sin φ Y 0 1 0 R Z (φ Z ) = sin φ Y 0 cos φ Y 1 dφ Z 0 R Y (dφ Y ) = 1 0 dφ Y 0 1 0 dφ Y 0 1 cos φ Z sin φ Z 0 sin φ Z cos φ Z 0 0 0 1 R(dφ) = R(dφ X, dφ Y, dφ Z ) = in any sequence R Z (dφ Z ) = 1 dφ z dφ Y dφ z 1 dφ X dφ Y dφ X 1 = I + S(dφ) dφ Z 1 0 0 0 1 neglecting second- and third-order (infinitesimal) terms Robotics 1 7
Time derivative of a rotation matrix let R = R(t) be a rotation matrix, given as a function of time since I = R(t)R T (t), taking the time derivative of both sides yields 0 = d[r(t)r T (t)]/dt = dr(t)/dt R T (t) + R(t) dr T (t)/dt = dr(t)/dt R T (t) + [dr(t)/dt R T (t)] T thus dr(t)/dt R T (t) = S(t) is a skew-symmetric matrix let p(t) = R(t)p a vector (with constant norm) rotated over time comparing dp(t)/dt = dr(t)/dt p = S(t)R(t) p = S(t) p(t) dp(t)/dt = ω(t) p(t) = S(ω(t)) p(t) we get S = S(ω). R = S(ω) R. S(ω) = R R T ω p. p Robotics 1 8
Robot Jacobian matrices analytical Jacobian (obtained by time differentiation) r = p φ = f r (q). p f r = = r (q). = J r (q) q q q.. φ geometric Jacobian (no derivatives) v ω =. p ω J = L (q). = J(q) q J A (q) q. Robotics 1 11
Geometric Jacobian always a 6 x n matrix end-effector instantaneous velocity v E ω E = J L (q) J A (q) q. = J L1 (q) J A1 (q) J Ln (q) J An (q). q 1. q n superposition of effects.. v E = J L1 (q) q 1 + + J Ln (q) q n.. ω E = J A1 (q) q 1 + + J An (q) q n contribution to the linear. e-e velocity due to q 1 contribution to the angular. e-e velocity due to q 1 linear and angular velocity belong to (linear) vector spaces in R 3 Robotics 1 14
Contribution of a prismatic joint Note: joints beyond the i-th one are considered to be frozen, so that the distal part of the robot is a single rigid body.. J Li (q) q i = z i-1 d i z i-1 E RF 0 q i = d i. J Li (q) q i prismatic i-th joint. z i-1 d i. J Ai (q) q i 0 Robotics 1 15
Contribution of a revolute joint. J Li (q) q i.. J Ai (q) q i = z i-1 θ i z i-1 O i-1 p i-1,e RF 0 q i = θ i. J Li (q) q i. J Ai (q) q i revolute i-th joint (z i-1 p i-1,e ) θ i. z i-1 θ i. Robotics 1 16
Expression of geometric Jacobian. p 0,E ( =) ω E v E ω E = J L (q) J A (q) q. = J L1 (q) J A1 (q) J Ln (q) J An (q). q 1. q n prismatic i-th joint revolute i-th joint this can be also computed as J Li (q) z i-1 z i-1 p i-1,e = p 0,E q i J Ai (q) 0 z i-1 z i-1 = 0 R 1 (q 1 ) i-2 R i-1 (q i-1 ) 0 0 1 p i-1,e = p 0,E (q 1,,q n ) - p 0,i-1 (q 1,,q i-1 ) all vectors should be expressed in the same reference frame (here, the base frame RF 0 ) Robotics 1 17
space of joint velocities Robot Jacobian decomposition in linear subspaces and duality J space of task (Cartesian) velocities dual spaces 0 0 ℵ(J) R(J) R(J T ) + ℵ(J) = R n R(J) + ℵ(J T ) = R m R(J T ) ℵ(J T ) 0 0 dual spaces space of joint torques J T space of task (Cartesian) forces (in a given configuration q) Robotics 1 26
Mobility analysis ρ(j) = ρ(j(q)), R(J) = R(J(q)), ℵ(J T )= ℵ(J T (q)) are locally defined, i.e., they depend on the current configuration q R(J(q)) = subspace of all generalized velocities (with linear and/or angular components) that can be instantaneously realized by the robot end-effector when varying the joint velocities in the configuration q if J(q) has max rank (typically = m) in the configuration q, the robot end-effector can be moved in any direction of the task space R m if ρ(j(q)) < m, there exist directions in R m along which the robot endeffector cannot instantaneously move these directions lie in ℵ(J T (q)), namely the complement of R(J(q)) to the task space R m, which is of dimension m - ρ(j(q)) when ℵ(J(q)) {0} (this is always the case if m<n, i.e., in robots that are redundant for the task), there exist non-zero joint velocities that produce zero end-effector velocity ( self motions ) Robotics 1 27
Kinematic singularities configurations where the Jacobian loses rank loss of instantaneous mobility of the robot end-effector for m=n, they correspond in general to Cartesian poses that lead to a number of inverse kinematic solutions that differs from the generic case in a singular configuration, one cannot find a joint velocity that realizes a desired end-effector velocity in an arbitrary direction of the task space close to a singularity, large joint velocities may be needed to realize some (even small) velocity of the end-effector finding and analyzing in advance all singularities of a robot helps in avoiding them during trajectory planning and motion control when m = n: find the configurations q such that det J(q) = 0 when m < n: find the configurations q such that all m m minors of J are singular (or, equivalently, such that det [J(q) J T (q)] = 0) finding all singular configurations of a robot with a large number of joints, or the actual distance from a singularity, is a hard computational task Robotics 1 28