ME 4135 Differential Motion and the Robot Jacobian Fall 2012 R. R. Lindeke, Ph.D.

Slides:



Advertisements
Similar presentations
Ch 7.7: Fundamental Matrices
Advertisements

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
Parametric Equations Local Coordinate Systems Curvature Splines
Transformations We want to be able to make changes to the image larger/smaller rotate move This can be efficiently achieved through mathematical operations.
ME 4135 Differential Motion and the Robot Jacobian Slide Series 6 Fall 2011 R. R. Lindeke, Ph.D.
1 C02,C03 – ,27,29 Advanced Robotics for Autonomous Manipulation Department of Mechanical EngineeringME 696 – Advanced Topics in Mechanical Engineering.
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.
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.
Rational Trigonometry Applied to Robotics
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. 4: Velocity Kinematics
Forward Kinematics.
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.
Screw Rotation and Other Rotational Forms
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.
Velocities and Static Force
ME 4135 Differential Motion and the Robot Jacobian
1 1.1 © 2012 Pearson Education, Inc. Linear Equations in Linear Algebra SYSTEMS OF LINEAR EQUATIONS.
Mathematical Fundamentals
Chapter 10 Review: Matrix Algebra
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)
1 C03 – Advanced Robotics for Autonomous Manipulation Department of Mechanical EngineeringME 696 – Advanced Topics in Mechanical Engineering.
The L-E (Torque) Dynamical Model: Inertial Forces Coriolis & Centrifugal Forces Gravitational Forces Frictional Forces.
1 Fundamentals of Robotics Linking perception to action 2. Motion of Rigid Bodies 南台科技大學電機工程系謝銘原.
Spatial Modeling – some fundamentals for Robot Kinematics ME 3230.
ME451 Kinematics and Dynamics of Machine Systems Review of Differential Calculus 2.5, 2.6 September 11, 2013 Radu Serban University of Wisconsin-Madison.
Path Control: Linear and Near- Linear Solutions Slide Set 9: ME 4135 R. Lindeke, PhD.
What is Kinematics. Kinematics studies the motion of bodies.
Just a quick reminder with another example
INTRODUCTION TO DYNAMICS ANALYSIS OF ROBOTS (Part 4)
Computer Graphics Matrices
Basic Theory (for curve 01). 1.1 Points and Vectors  Real life methods for constructing curves and surfaces often start with points and vectors, which.
Rotational Motion – Part I AP Physics C. The radian  There are 2 types of pure unmixed motion:  Translational - linear motion  Rotational - motion.
An Introduction to Robot Kinematics Renata Melamud.
Computer Graphics Mathematical Fundamentals Lecture 10 Taqdees A. Siddiqi
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.
Character Animation Forward and Inverse Kinematics
Manipulator Dynamics 1 Instructor: Jacob Rosen
Instant Velocity Centers – A ‘Fast Track’ to Linkage Control
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
Outline: 5.1 INTRODUCTION
Chapter 2 Mathematical Analysis for Kinematics
Robotics 1 Copyright Martin P. Aalund, Ph.D.
Presentation transcript:

ME 4135 Differential Motion and the Robot Jacobian Fall 2012 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 interval (  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’) If the angle is small we can have some simplifications: Cos  small  1 Sin  small   small

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

Simplifying the Rotation Matricies (product) Here, we have neglected products of the  terms!

What about Small (general) Translation? We define it as a matrix: General Tiny Motion is then (both considering both Rotation and Translation):

So let’s use this idea: Here we 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 Note, T is the original pose Substituting for the matrices:

Solving for the differential motion effect (  T)

Factoring the T out on the R.H.S.:

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

Thus, the Change in POSE (  T)  dT (that is  T) =  T   = {[Trans(dx,dy,dz)*Rot(K,d  )] – I}  Here we see that this  operator is analagous to the derivative operator d( )/du when taken wrt HTM’s

Lets look into an application: Given: Subject it to 2 simultaneous movements: – –Along X 0 (dx) a translation of.0002 units (/unit time) – –About Z 0 a Rotation of 0.001rad (/unit time)

Graphically:  R Here: R init = ( ).5 = units  init = Atan2(3,5) = rad

Where is the Frame ‘n’ after one time step? Considering Position: Considering Position: –Effect of “Translation”: X= and Y = New R f = ( ).5 = u –Effect of Rotation  fin = = rad  X f = Cos(  fin ) * R f = & Y f = Sin(  fin ) * R f =

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

After 1 time step, Exact Position is:

Lets Approximate it with the ‘  operator’  T new = T init + dT = T init +  T init Where:

Therefore T new is Approximately:

Comparing: “Exact”: “Exact”: Approximate: Approximate: Realistically these are all but equal and using the ‘del’ approximation is soooo much easier!

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

Taking Motion WRT other Spaces (non inertial basis) Original Model:  dT =  T(1) Motion Taken WRT another (non-inertia) space:  dT = T  T  (2)  Here T  implies motion wrt its own frame but could be any other non-inertia space  But the change itself (dT) is independent of point of view so, equating (1) and (2) we can isolate T    T  = (T) -1   T

Solving for the specific Terms in T  Origin Change Vector wrt T space : Angular effects wrt T space : d, n, o & a vectors are extracts from the T Matrix d p is the translation vector in   is the rotational effect in 

Finding T  -- from earlier example The Orientation Effects: Translation Effects:

Subbing into a ‘del’ Form:

Approximating New T Pose with the ‘ T  operator’ T new = T init + dT = T init + T init * T  Where:

Comparing: “Exact” (from earlier): “Exact” (from earlier): New Approximation: New Approximation: Realistically these are all but equal – actually closer with this technique

An Application of this issue: T WC R T Cam Part T R part If the Part is moving along a conveyor and we “measure” its motion with a Camera (in camera frame) but we want to pick up the part with the robot, we must ‘track’ it so we need to known the part motion in robot’s space (not camera space!).

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

Lets Isolate the “Middle”    RWCCa R   C  RWCCa To solve for R  we “mathematically move” from R to R directly ( R  ) and “The long way around”:

Rewriting into Standard Form: It can be shown for any 2 Matrices (A & B): A -1 *B = (B -1 *A) -1 (1) If, on the previous page we consider: T WC R as “A” and T WC Cam as “B”, And define (T WC Cam ) -1 *(T WC R ) as “T” Now, Using the theorem above (from matrix math), then   We find that R  = “T” -1  ( Cam  )  ”T” R  is now shown in the standard form of earlier –  –the terms: d, n, s & a vectors in the “T” matrix and the d p and  vectors from the Cam  are then all that is required to define part motion with respect to the robot space

R  is given by simplifying! (T WC Cam ) -1 *(T WC R ) = “T” HERE: d, n, s & a vectors are extracts from the “T” Matrix above d p is the ‘translation’ vector in Cam   is the ‘rotational effects’ in Cam  Thus we would have a means for tracking a moving part directly into robot space!

Now, Lets Examine the Jacobian Fundamentally: We use these Jacobians to further our knowledge of Geometric Calculus

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

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

Writing the Position Models: Z = R*Sin(  ) X = R*Cos(  )*Cos(  ) Y = R*Cos(  )*Sin(  ) To find velocity differentiate these which leads to:

Writing it as a Matrix: This is the linear motion 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 eqns.

The process we did just now is limited to finding Linear Velocity We need linear and angular velocity for full functional robots! We can approach the problem by separations as before … Here we had separated Velocity (Linear from Rotational) but not joints (arms) from joints (wrist) Generally speaking, in the Jacobian we will obtain one Column for each Joint and 6 rows for full velocity effect We say the Jacobian is a 6 by n matrix

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

Building the Sub- Jacobians (in general): We define 3 motion stipulations: Velocities can only be added if they are defined in the same space Motion of the end effecter (n frame) is taken wrt the base space (0 frame) Linear Velocity effects are (truly) physically separated from angular velocity effects To address the problem we will only move one joint at a time (uses the fundamental DH separation principle!)

Lets start with the Angular Velocity (!) Considering any joint i, its Axis of motion is: Z i-1 (Z in Frame i-1) The (modeling) effect of the joint is to drive the very next frame (frame i) If Joint i is revolute: – –here k i-1 is the unit vector of Z i-1 – –This could be applied to each of the joints (revolute) in the machine (it rotates the next frame – and of course, all subsequent frames rotate similarly!) But if the Joint is Prismatic, it has no angular effect on its “controlled” frame (and, thus, subsequent frames all the way to the end frame)

Developing the J  We need to add up each of the joint effects BUT, We need to “normalize” them to base space to added them up DH methods allow us to do this! Since Z i-1 is in a Frame of the model, we really need only extract the 3 rd column of the product of A 1 * A 2 * …*A i-1 to have a definition of Z i-1 in base space to add the effect of Joint i in this ‘common space’ (note, the ‘qdot’ term is the rotational velocity of the revolute joint)

So J  then is just this: As stated previously, Z i-1 is the (1 st 3 rows) of the 3 rd col. of A 0 *…A i-1 And we will have a term in the sum for each joint Note Z i-1 for Joint i – per DH algorithm!

For the Spherical Device: All the rest of the Z i ’s depend on the Frame Skeleton drawn! Notice: 3 cols. since we have 3 joints!

Building the Linear Jacobian It too will depend on the movement of Z i-1 It too will depend on the movement of Z i-1 It too will require that we normalize each joints contribution to the base space It too will require that we normalize each joints contribution to the base space We will also find that revolute and prismatic joints will make functionally different contributions to the solution (as if we would think otherwise!) We will also find that revolute and prismatic joints will make functionally different contributions to the solution (as if we would think otherwise!) Prismatics are “Easy,” Revolutes, not so much! Prismatics are “Easy,” Revolutes, not so much!

Building the Linear Jacobian

Building the Linear Jacobian – Prismatic Joints When the prismatic joint i 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: Z i-1 which is the 3 rd column of the matrix given by: A 1 * … * A i-1 This is as expected based on the model on the previous slide

Building the Linear Jacobian – Revolute Joints This is a dicer problem – remembering the idea of prismatic joints on angular velocity … But no that won’t work here just because its a rotation, and it (primarily) changes orientation of the end, it does also have a linear contribution effect to the motion of the end as we saw in in our earlier “Del” discussion – that is revolute joints have a “levering effect” which moves the origin of the n-frame (and the levering is clearly a cartesian motion). 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 a rotation  i about Z i-1 would lever the end by an effect that is equivalent to the CROSS product of the driver vector and the connector vector

Building the Linear Jacobian – Revolute Joints This is the driver vector given by: Z i-1 X d i-1 n [with a Magnitude equal to joint velocity]

Building the Linear Jacobian – Revolute Joints Z i-1 X d i-1 n is the direction of the linear contribution of the revolute joint i on n-Frame motion It must be normalized Notice: d i-1 n = d 0 n – d 0 i-1 This equation “normalizes” the vector d i-1 n But as we know, the d-vectors are origin position of the various frames (Frame i-1 and Frame n ) So let’s rewrite the normalizing equation as: d i-1 n = O n – O i-1 (cap. letter O for origin!)

Building the Linear Jacobian – Revolute Joints The contribution to the J v due to a revolute joint is then: Z i-1 X (O n – O i-1 ) – –Where: Z i-1 is the 3 rd col. of the T 0 i-1 (A 0 *… *A i-1 ) O i-1 is 4 th col. of the T 0 i-1 (A 0 *… *A i-1 ) O n is 4 th col. Of T 0 n (the FKS!) NOTE: when we pull the columns we only need the first 3 rows

Building the Linear Jacobian Summarizing: – –The J v is a 3-row by n columned matrix – –Each column is given by joint type: Revolute Joint: Z i-1 X (O n – O i-1 ) Prismatic Joint: Z i-1

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

What is the Form of the Jacobian Robot is: (PPRRRR) – a cylindrical machine with a spherical wrist: Robot is: (PPRRRR) – a cylindrical machine with a spherical wrist: Z 0 is [0,0,1) T ; O 0 = (0,0,0) T always, always, always! Z 0 is [0,0,1) T ; O 0 = (0,0,0) T always, always, always! Z i-1 ’s and O i-1 ’s are per the frame skeleton Z i-1 ’s and O i-1 ’s are per the frame skeleton

Lets build one – Here is the Spherical Arm (that we did earlier): 11 22 d3d3 Lets start by making a frame skeleton (just do it!)

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

Lets try this on the Spherical ARM we did earlier: FrLinkVar  da  C  S  C  S  0→11R 1 C1S1 1→22R  S2C2 2→n3P00 d LP Table:

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

Lets try this on the Spherical ARM we did earlier: T1 = A1 T1 = A1 T2 = A1 * A2 T2 = A1 * A2 T 0 n = T3 = A1*A2*A3 T 0 n = T3 = A1*A2*A3

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

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

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