ME 4135 Differential Motion and the Robot Jacobian

Slides:



Advertisements
Similar presentations
COMP Robotics: An Introduction
Advertisements

Ch 7.7: Fundamental Matrices
ME 4135 Robotics & Control R. Lindeke, Ph. D.. FKS vs. IKS  In FKS we built a tool for finding end frame geometry from Given Joint data:  In IKS we.
Robot Modeling and the Forward Kinematic Solution
Robot Modeling and the Forward Kinematic Solution
ME 4135 Differential Motion and the Robot Jacobian Slide Series 6 Fall 2011 R. R. Lindeke, Ph.D.
Links and Joints.
Continuing with Jacobian and its uses ME 4135 – Slide Set 7 R. R. Lindeke, Ph. D.
Forward and Inverse Kinematics CSE 3541 Matt Boggus.
Intuitive Kinematics – Converting Between Forward and Reverse Definitions of Space Lecture Series 2 ME 4135 R. R. Lindeke.
Chris Hall Aerospace and Ocean Engineering
Robot Modeling and the Forward Kinematic Solution ME 4135 Lecture Series 4 Dr. R. Lindeke – Fall 2011.
ME 4135 Fall 2011 R. R. Lindeke, Ph. D. Robot Dynamics – The Action of a Manipulator When Forced.
Robot Dynamics – Newton- Euler Recursive Approach ME 4135 Robotics & Controls R. Lindeke, Ph. D.
Inverse Kinematics –IKS Solutions ME 4135 – Robotics and Controls R.R. Lindeke, Ph.D., Fall 2011.
The Concepts of Orientation/Rotation ‘Transformations’ ME Lecture Series 2 Fall 2011, Dr. R. Lindeke 1.
The L-E (Torque) Dynamical Model: Inertial Forces Coriolis & Centrifugal Forces Gravitational Forces Frictional Forces.
Motion Kinematics – Lecture Series 3 ME 4135 – Fall 2011 R. Lindeke.
ME Robotics Dynamics of Robot Manipulators Purpose: This chapter introduces the dynamics of mechanisms. A robot can be treated as a set of linked.
Ch. 7: Dynamics.
Ch. 3: Forward and Inverse Kinematics
Ch. 4: Velocity Kinematics
Forward Kinematics.
COMP322/S2000/L221 Relationship between part, camera, and robot (cont’d) the inverse perspective transformation which is dependent on the focal length.
ME Robotics DIFFERENTIAL KINEMATICS Purpose: The purpose of this chapter is to introduce you to robot motion. Differential forms of the homogeneous.
Manipulator Dynamics Amirkabir University of Technology Computer Engineering & Information Technology Department.
Slide Set 3 – Review of Matrix Methods Applicable to Robot Control
Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
ME 4135 Robotics & Control Slide Set 3 – Review of Matrix Methods Applicable to Robot Control.
An Introduction to Robot Kinematics
KINEMATICS ANALYSIS OF ROBOTS (Part 1) ENG4406 ROBOTICS AND MACHINE VISION PART 2 LECTURE 8.
More details and examples on robot arms and kinematics
Velocities and Static Force
ME 4135 Differential Motion and the Robot Jacobian Fall 2012 R. R. Lindeke, Ph.D.
1 1.1 © 2012 Pearson Education, Inc. Linear Equations in Linear Algebra SYSTEMS OF LINEAR EQUATIONS.
February 21, 2000Robotics 1 Copyright Martin P. Aalund, Ph.D. Computational Considerations.
Inverse Kinematics.
Chapter 2 Robot Kinematics: Position Analysis
Robot Dynamics – Slide Set 10 ME 4135 R. R. Lindeke, Ph. D.
Simulation and Animation
Outline: 5.1 INTRODUCTION
KINEMATICS ANALYSIS OF ROBOTS (Part 4). This lecture continues the discussion on the analysis of the forward and inverse kinematics of robots. After this.
KINEMATICS ANALYSIS OF ROBOTS (Part 2)
The L-E (Torque) Dynamical Model: Inertial Forces Coriolis & Centrifugal Forces Gravitational Forces Frictional Forces.
Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.
PLANAR KINEMATICS OF A RIGID BODY
ME451 Kinematics and Dynamics of Machine Systems Review of Differential Calculus 2.5, 2.6 September 11, 2013 Radu Serban University of Wisconsin-Madison.
What is Kinematics. Kinematics studies the motion of bodies.
Just a quick reminder with another example
Lagrangian Mechanics A short overview. Introduction Previously studied Kinematics and differential motions of robots Now Dynamic analysis Inertias, masses,
Chapter 3 Differential Motions and Velocities
INTRODUCTION TO DYNAMICS ANALYSIS OF ROBOTS (Part 4)
Computer Graphics Matrices
Rotational Motion – Part I AP Physics C. The radian  There are 2 types of pure unmixed motion:  Translational - linear motion  Rotational - motion.
COMP322/S2000/L111 Inverse Kinematics Given the tool configuration (orientation R w and position p w ) in the world coordinate within the work envelope,
Assam Don Bosco University Fundamentals of Wave Motion Parag Bhattacharya Department of Basic Sciences School of Engineering and Technology.
ME 4135 Robotics & Control R. Lindeke, Ph. D.. FKS vs. IKS  In FKS we built a tool for finding end frame geometry from Given Joint data:  In IKS we.
Velocity Propagation Between Robot Links 3/4 Instructor: Jacob Rosen Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA.
MT411 Robotic Engineering
Character Animation Forward and Inverse Kinematics
Manipulator Dynamics 1 Instructor: Jacob Rosen
Robotic Kinematics – the Inverse Kinematic Solution
Path Control: Linear and Near-Linear Solutions
Robot Kinematics We know that a set of “joint angles” can be used to locate and orientate the hand in 3-D space We know that the joint angles can be combined.
Outline: 5.1 INTRODUCTION
KINEMATIC CHAINS & ROBOTS (I)
Outline: 5.1 INTRODUCTION
Chapter 2 Mathematical Analysis for Kinematics
Chapter 3. Kinematic analysis
Robotics 1 Copyright Martin P. Aalund, Ph.D.
Presentation transcript:

ME 4135 Differential Motion and the Robot Jacobian Slide Series 6 R. R. Lindeke, Ph.D.

Lets develop the differential Operator – bringing calculus to Robots The Differential Operator is a way to account for “Tiny Motions” (T) It can be used to study movement of the End Frame over a short time intervals (t) It is a way to track and explain motion for different points of view

Considering motion: We can define a General Rotation of a vector K: By a general matrix defined as:

These Rotation are given as: But lets remember for our purposes that this angle is very small (a ‘tiny rotation’) in radians If the angle is small we can have use some simplifications: Cos small  1 Sin small  small

Substituting the Small angle Approximation: Similarly for Y and Z:

Simplifying the Rotation Matrices (form their product): Note here: we have neglected higher order products of the  terms!

What about Small (general) Translations? We define it as a matrix: General ‘Tiny Motion’ is then (including both Rot. and Translation):

So using this idea: Let’s define a motion which is due to a robot’s joint(s) moving during a small time interval: T+T = {Rot(K,d)*Trans(dx,dy,dz)}T Consider Here: T is the original end frame pose Substituting for the matrices:

Solving for the differential motion (T)

Factoring T (on the RHS)

Further Simplifying: We will call this matrix the del operator: 

Thus, the Change in POSE (T or dT) is: dT (T) = T Where:  = {[Trans(dx,dy,dz)*Rot(K,d)] – I} Thus we see that this  operator is analogous to the derivative operator d( )/dx but now taken with respect to HTM’s!

Lets look into an application: Given: Subject it to 2 simultaneous movements: Along X0 (dx) by .0002 units (/unit time) About Z0 a Rotation of 0.001rad (/unit time)

Graphically:  Here: init = Atan2(3,5) = 1.0304 rad R Rinit = (32 + 52) .5 = 5.831 units init = Atan2(3,5) = 1.0304 rad R 

Where is the Frame n after one time step? Considering Position: Effect of “Translation”: X=3.0002 and Y = 5.000 New Rf = (3.00022 + 5.02).5 = 5.83105 u Effect of Rotation fin = 1.0304 + 0.001 = 1.0314 rad Therefore: Xf = Cos(fin) * Rf = 2.99505 And: Yf = Sin(fin) * Rf = 5.00309

Where is the Frame n after one time step? Considering Orientation:

After 1 time step, Exact Pose is:

Lets Approximate it using this  operator Tnew = Tinit + dT = Tinit + Tinit – the 1st law of differential calculus Where:

Thus, Tnew is Approximately:

Comparing: “Exact”: Approximate: Realistically these are all but equal but using the ‘del’ approximation, but finding it was much easier!

We can (might!) use the ‘del’ approach to move a robot in space: Take a starting POSE (Torig) and a starting motion set (deltas in rotation and translation as function of unit times) Form  operator for motion Compute dT (Torig) Form Tnew = Torig + dT Repeat as time moves forward over n time steps

Taking Motion W.R.T. other Spaces (another use for this del operator idea) Original Model (the motion we seek is defined in an inertial space): dT = T (1) However, if the motion is taken w.r.t. another (non-inertia) space: dT = TT (2) Here T implies motion w.r.t. itself – a moving frame – but could be motion w.r.t. any other non-inertia space (robot or camera, etc.) Consider as well: the pose change (motion that is happening) itself (dT) is independent of point of view so, by equating (1) and (2) we can isolate T T = (T)-1T

Solving for the specific Terms in T Positional Change Vector w.r.t. (any) Tspace: Angular effects wrt Tspace: d, n, o & a vectors are extracts from the T Matrix dp is the translation vector in   is the rotational effects in 

Subbing into a ‘del’ Form:

An Application of this issue: TRpart TCamPart TWCR If the Part is moving along a conveyor and we “measure” its motion in the Camera Frame (let the camera measure it at various times) and we would need to pick the part with the robot, we must track wrt to the robot, so we need part motion “del” in the robot’s space.

This is a Motion “Mapping” Issue: Pa R WC Ca Pa Pa R  C Pa Pa R WC Ca Pa Knowns: C Robot in WC Camera in WC And of course Part in Camera (But we don’t need it for now!)

Lets Isolate the “Middle” R WC Ca R  C R WC Ca To solve for R we make progress from “R to R” directly (R) and “The long way around”:

Rewriting into a Standard Form: It can be shown for 2 Matrices (A & B): A-1*B = (B-1*A)-1 (1) Or B-1*A = (A-1*B)-1 (2) If, on the previous page we consider: TWCCam as “A” and TWCR as “B”, and define the form: (TwcCam)-1*TWCR as “T” Then, Using the theorem (from matrix math) stated as (2) above “T”-1 is: (TWCR)-1* TWCCam

Continuing: Rewriting, we find that R = “T”-1(Cam) “T” R is now shown in the “standard form” for non-inertial space motion the terms: d, n, o & a vectors come from our ‘complex T’ matrix the dp and  vectors can be extracted from the Cam These term are required to define motion in the robot space Of course the “T” is really: (TwcCam)-1*TWCR here! Its from this “T” product that we extract n, o, a, d vectors

R is given by simplifying: 1st: (TwcCam)-1*TWCR = “T” Then these Scalars: WHERE: d, n, o & a vectors are extracts from the “T” Matrix above dp is the ‘translation’ vector in Cam  is the vector of ‘rotational effects’ in Cam

Lets Examine the Jacobian Ideas Fundamentally:

In This Model, Ddot & Dq,dot are: We state, then, that the Jacobian is a mapping tool that relates Cartesian Velocities (of the n frame) to the movement of the individual Robot Joints

Lets build one from ‘1st Principles’ – Here is a Spherical Arm: Lets start with only linear motion ---- equations are straight forward!  

Writing the Position Models: Z = R*Sin() X = R*Cos()*Cos() Y = R*Cos()*Sin() To find velocity, differentiate these as seen here:

Writing it as a Matrix: This is the Jacobian; It is built as the Matrix of partial joint contributions (coefficients of the velocity equations) to Velocity of the End Frame

Here we could develop an Inverse Jacobian: It was formed by taking the partial derivatives of the IKS equations

We say the Jacobian is a 6 by n (6xn) matrix The process we just did is limited to finding Linear Velocity! … and We need both linear and angular velocities for full functioned robots! We can approach the problem by separations as we did in the General case of Inverse Kinematics – Here we separate Velocity (Linear from Rotational), not Joints (Arms from Wrists) Generally speaking, in the Jacobian we will obtain one Column for each Joint and 6 rows for a full velocity effect We say the Jacobian is a 6 by n (6xn) matrix

Separation Leads to: A Cartesian Velocity Term V0n: An Angular Velocity Term 0n: Each of these “Ji’s” are 3 Row by n Columned Matrices

Building the “Sub-Jacobians”: We follow 3 stipulations: Velocities can only be added if they are defined in the same space – as we know from dynamics Motion of the end effector (n frame) is taken w.r.t. the base space (0 frame) Linear Velocity effects are physically separable from angular velocity effects To address the problem we will consider moving a single joint at a time (using DH separation ideas!)

Lets start with the Angular Velocity (!) Considering any joint i, its Axis of motion is: Zi-1 (Z in Frame i-1) The (modeling) effect of a joint is to drive the very next frame (frame i) If Joint i is revolute: here k(i-1) is the Zi-1 direction (by definition) This model is applied to each of the joints (revolute) in the machine (as it rotates the next frame, all subsequent fames, move similarly!) But if the Joint is Prismatic, it has no angular effect on its “controlled” frame and thus no rotoation from it on all subsequent frames

Developing the (base) J We need to add up each of the joint effects Thus we need to “normalize” them to base space to do the sum DH methods allow us to do this! Since Zi-1 is the active direction in a Frame of the model, we really need only to extract the 3rd column of the product of A1 * …*Ai-1 to have a definition of Zi-1 in base space. Then, this Ai’s products 3rd column is the effect of Joint i as defined in the (common) base space (note, the ‘qdot’ term is the rate of rotation of the given joint)

So the Angular Velocity then is: Note Zi-1 for Jointi – per DH algorithm! As stated previously, Zi-1 is the 3rd col. of A1*…Ai-1 (rows 1,2 & 3). And we will have a term in the sum for each joint

Going Back to the Spherical Device: Notice: 3 columns since we have 3 joints! Here, Z1 depends on the Frame Skeleton drawn!

Building the Linear Jacobian It too will depend on the motion associated with Zi-1 It too will require that we normalize each joints linear motion contribution to the base space We will find that revolute and prismatic joints will make functionally different contributions to the solution (as if we would think otherwise!) Prismatic joints are “Easy,” Revolutes are not!

Building the Linear Jacobian

Building the Linear Jacobian – for Prismatic Joints When a prismatic jointi moves, all subsequent links move (linearly) at the same rate and in the same direction

Building the Linear Jacobian – Prismatic Joints Therefore, for each prismatic joint of a machine, the contribution to the Jacobian (after normalizing) is: Zi-1 which is the 3rd column of the matrix given by: A0 * … * Ai-1 This is as expected based on the model on the previous slide (and our “move only one and then normalize it” method)

Building the Linear Jacobian for Revolute Joints This is a dicer problem, but then, remembering the idea of prismatic joints on angular velocity … But no that won’t work here – just because its a rotation, and it changes orientation of the end – revolute motion also does have a linear contribution effect to the motion of the end This is a “levering effect” which moves the origin of the n-frame as we saw when discussing the del-operator on the -R structure. We must compute and account for this effect and then normalize it too.

Building the Linear Jacobian – Revolute Joints Using this model we would expect that a rotation i would ‘lever the end’ by an amount that is equivalent (in direction) to the CROSS product of the ‘driver’ vector and the ‘connector’ vector and with a magnitude equal to Joint velocity

Building the Linear Jacobian – Revolute Joints This is the directional resultant (DR) vector given by: Zi-1 X di-1n [with Magnitude equal to joint speed!] Note the “Green” Vector is equal to the ‘red’ DR vector!

Building the Linear Jacobian – Revolute Joints Zi-1 X di-1n is the direction of the linear motion of the revolute joint i on n-Frame motion It too must be normalized Notice: di-1n = d0n – d0i-1 (call it eq. 3) This “normalizes” the vector di-1n to the base space But the d-vectors on the r.h.s. are really origin position of the various frames (Framei-1 and Framen) – i.e. the positions of frame “Origins” So let’s rewrite equation 3 as: di-1n = On – Oi-1

Building the Linear Jacobian – Revolute Joints The contribution to the Jv due to a revolute joint is then: Zi-1 X (On – Oi-1) Where: Zi-1 is the 3rd col. of the T0i-1 (A1*… *Ai-1) Oi-1 is 4th col. of the T0i-1 (A1*… *Ai-1) On is 4th col. Of T0n (the FKS!) NOTE when we pull the columns we only need the first 3 rows!

Building the Linear Jacobian Summarizing: The Jv is a 3-row by n columned matrix Each column is given by joint type: Revolute Joint: Zi-1 X (On – Oi-1) Prismatic Joint: Zi-1 And notice: select Zi-1 and Oi-1 for the frame before the current joint column

Combining Both Halves of the Jacobian: For Revolute Joints: For Prismatic Joints:

What is the Form of the Jacobian? Robot is: (PPRRRR) – a cylindrical machine with a spherical wrist: Z0 is (0,0,1)T; O0 = (0,0,0)T always, always, always! Zi-1’s and Oi-1’s are per the frame skeleton

Lets try this on the Spherical ARM we did earlier: 2 1 The robot indicates this frame skeleton:

Lets try this on the Spherical ARM we did earlier: LP Table: Fr Link Var  d a  C  S  C  S  0→1 1 R 1 90 C1 S1 1→2 2 2+90 -S2 C2 2→n 3 P 0 d3

Lets try this on the Spherical ARM we did earlier: Ai’s:

Lets try this on the Spherical ARM we did earlier: T1 = A1! T2 = A1 * A2 T0n = T3 = A1*A2*A3

Lets try this on the Spherical ARM we did earlier: THE JACOBIAN The Jacobian is Of This Form:

Lets try this on the Spherical ARM we did earlier: THE JACOBIAN Here:

After total Simplification, THE Full JACOBIAN is: