Position and orientation of rigid bodies

Similar documents
Minimal representations of orientation

Position and orientation of rigid bodies

Differential Kinematics

Inverse differential kinematics Statics and force transformations

Ridig Body Motion Homogeneous Transformations

ROBOTICS 01PEEQW. Basilio Bona DAUIN Politecnico di Torino

Ch. 5: Jacobian. 5.1 Introduction

Robotics 1 Inverse kinematics

Advanced Robotic Manipulation

8 Velocity Kinematics

Robotics 1 Inverse kinematics

Robotics I June 11, 2018

Robotics 1 Inverse kinematics

Robotics I. Classroom Test November 21, 2014

DIFFERENTIAL KINEMATICS. Geometric Jacobian. Analytical Jacobian. Kinematic singularities. Kinematic redundancy. Inverse differential kinematics

DYNAMICS OF PARALLEL MANIPULATOR

MCE/EEC 647/747: Robot Dynamics and Control. Lecture 2: Rigid Motions and Homogeneous Transformations

Robotics I. February 6, 2014

MEAM 520. More Velocity Kinematics

Screw Theory and its Applications in Robotics

Robotics I Kinematics, Dynamics and Control of Robotic Manipulators. Velocity Kinematics

Lecture Notes - Modeling of Mechanical Systems

, respectively to the inverse and the inverse differential problem. Check the correctness of the obtained results. Exercise 2 y P 2 P 1.

(W: 12:05-1:50, 50-N202)

Example: RR Robot. Illustrate the column vector of the Jacobian in the space at the end-effector point.

Lecture «Robot Dynamics»: Kinematics 2

Robotics I. Test November 29, 2013

Lecture 7: Kinematics: Velocity Kinematics - the Jacobian

Chapter 1. Rigid Body Kinematics. 1.1 Introduction

The Jacobian. Jesse van den Kieboom

Robotics I. June 6, 2017

Case Study: The Pelican Prototype Robot

Robot Dynamics Lecture Notes. Robotic Systems Lab, ETH Zurich

Robotics & Automation. Lecture 17. Manipulability Ellipsoid, Singularities of Serial Arm. John T. Wen. October 14, 2008

Exercise 1b: Differential Kinematics of the ABB IRB 120

Lecture Schedule Week Date Lecture (M: 2:05p-3:50, 50-N202)

Lecture Note 4: General Rigid Body Motion

Robot Modeling and Control

Robot Dynamics Instantaneous Kinematiccs and Jacobians

PHYS 705: Classical Mechanics. Rigid Body Motion Introduction + Math Review

DYNAMICS OF PARALLEL MANIPULATOR

16.333: Lecture #3. Frame Rotations. Euler Angles. Quaternions

Robot Dynamics II: Trajectories & Motion

Kinematics of a UR5. Rasmus Skovgaard Andersen Aalborg University

Chapter 6. Screw theory for instantaneous kinematics. 6.1 Introduction. 6.2 Exponential coordinates for rotation

Trajectory Planning from Multibody System Dynamics

Nonholonomic Constraints Examples

Institute of Geometry, Graz, University of Technology Mobile Robots. Lecture notes of the kinematic part of the lecture

Robotics & Automation. Lecture 06. Serial Kinematic Chain, Forward Kinematics. John T. Wen. September 11, 2008

Linear Algebra & Geometry why is linear algebra useful in computer vision?

Artificial Intelligence & Neuro Cognitive Systems Fakultät für Informatik. Robot Dynamics. Dr.-Ing. John Nassour J.

Rigid Body Motion. Greg Hager Simon Leonard

Introduction to Mobile Robotics Compact Course on Linear Algebra. Wolfram Burgard, Bastian Steder

Linear Algebra & Geometry why is linear algebra useful in computer vision?

Kinematics. Félix Monasterio-Huelin, Álvaro Gutiérrez & Blanca Larraga. September 5, Contents 1. List of Figures 1.

Lecture Note 7: Velocity Kinematics and Jacobian

A geometric interpretation of the homogeneous coordinates is given in the following Figure.

Lecture «Robot Dynamics» : Kinematics 3

General Theoretical Concepts Related to Multibody Dynamics

Trajectory-tracking control of a planar 3-RRR parallel manipulator

In this section of notes, we look at the calculation of forces and torques for a manipulator in two settings:

Kinematics. Chapter Multi-Body Systems

Lecture Note 5: Velocity of a Rigid Body

Dynamics 12e. Copyright 2010 Pearson Education South Asia Pte Ltd. Chapter 20 3D Kinematics of a Rigid Body

Robotics. Kinematics. Marc Toussaint University of Stuttgart Winter 2017/18

Introduction to Mobile Robotics Compact Course on Linear Algebra. Wolfram Burgard, Cyrill Stachniss, Maren Bennewitz, Diego Tipaldi, Luciano Spinello

Homogeneous Transformations

Robotics - Homogeneous coordinates and transformations. Simone Ceriani

Lecture Note 8: Inverse Kinematics

Introduction to Mobile Robotics Compact Course on Linear Algebra. Wolfram Burgard, Cyrill Stachniss, Kai Arras, Maren Bennewitz

Mobile Robotics 1. A Compact Course on Linear Algebra. Giorgio Grisetti

Lecture Note 7: Velocity Kinematics and Jacobian

Kinematics. Basilio Bona. Semester 1, DAUIN Politecnico di Torino. B. Bona (DAUIN) Kinematics Semester 1, / 15

Pose estimation from point and line correspondences

Rotational motion of a rigid body spinning around a rotational axis ˆn;

Kinematics. Basilio Bona. October DAUIN - Politecnico di Torino. Basilio Bona (DAUIN - Politecnico di Torino) Kinematics October / 15

13 Path Planning Cubic Path P 2 P 1. θ 2

Chapter 2 Homogeneous Transformation Matrix

Robotics I. Figure 1: Initial placement of a rigid thin rod of length L in an absolute reference frame.

Chapter 2 Coordinate Systems and Transformations

Lecture 10. Rigid Body Transformation & C-Space Obstacles. CS 460/560 Introduction to Computational Robotics Fall 2017, Rutgers University

Homogeneous Coordinates

On the Observability and Self-Calibration of Visual-Inertial Navigation Systems

1 Coordinate Transformation

MSMS Vectors and Matrices

Generalization of the Euler Angles

Kinematics. Basilio Bona. Semester 1, DAUIN Politecnico di Torino. B. Bona (DAUIN) Kinematics Semester 1, / 15

Methods in Computer Vision: Introduction to Matrix Lie Groups

Kinematic Isotropy of the H4 Class of Parallel Manipulators

Advanced Robotic Manipulation

ME 115(b): Homework #2 Solution. Part (b): Using the Product of Exponentials approach, the structure equations take the form:

ROBOTICS: ADVANCED CONCEPTS & ANALYSIS

Robotics, Geometry and Control - Rigid body motion and geometry

q 1 F m d p q 2 Figure 1: An automated crane with the relevant kinematic and dynamic definitions.

Chapter 2 Math Fundamentals

Lesson Rigid Body Dynamics

Advanced Robotic Manipulation

Robot Control Basics CS 685

Rotational & Rigid-Body Mechanics. Lectures 3+4

Additional Problem (HW 10)

Transcription:

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