1 / 55

ME 4135 Robotics & Control

ME 4135 Robotics & Control. Slide Set 3 – Review of Matrix Methods Applicable to Robot Control. Creating a Rational Approach to Kinematics – A review of Matrix Methods. As the robots got more and more “Revolute” building Inertial models (FKS & IKS) was increasingly complicated

Download Presentation

ME 4135 Robotics & Control

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ME 4135 Robotics & Control Slide Set 3 – Review of Matrix Methods Applicable to Robot Control

  2. Creating a Rational Approach to Kinematics – A review of Matrix Methods • As the robots got more and more “Revolute” building Inertial models (FKS & IKS) was increasingly complicated • We would like a more logical approach to this problem • We will define a concept of Homogeneous Matrices in S–O3 Space to aid in this model building effort • Consider, we only built Positional DOF models to this point • We need both Position & Orientation models to drive real robots!

  3. Considering Translation and Rotation • Translation, in a simple sense, is just the movement of one point from another without changing the orientation of space. • We can assign space frames (coordinate systems) to any object in space – (or all objects in space!). • If we wish to relate one object (and its space frame) to any other space frame we should be able to write a set of equations that represent each axis of the remote space in another’s systems axes and write a vector that relate the positions of the origins of the ‘systems’ to each other.

  4. Defining Transformations – here lets consider translational transformations Lets say that we have a point P1 sitting at the origin of Frame1, and a second point A1 located at (2,7,3)1 tell me, What is the pose of the coordinate frame attached to A1 as described in the space Fame 0?

  5. Translational Transformation • In physics we said to just add the two vectors (because the vector numbers are ‘the same’ since the axes point in the same directions) • So if A1 is at (2,7,3) in ‘1th Space’ then it is at: (2,7,3) + (12,35,45) = (2+12, 7+35, 3+45) = (14,42,48) in Null Space • But simple vector additiontechniques only works for simple translation where space is not ‘reorientated’! • We must then Generalize the method (to me this ‘general approach’ is easier – but it seems more cumbersome when we start thinking this way!)

  6. Defining the Homogeneous Transformation Matrix • It is a 4x4 Matrix that describes “3-Space” with information that relates Orientation and Position (pose) of a remote space to a local space nx ox ax dx ny oy ay dy nz oz az dz 0 0 0 1 This 3x3 ‘Sub-Matrix’ is the information that relates orientation of Framerem to Frame Local (This is called R the rotational Submatrix) D vector is the position of the origin of the remote space in Local Coordinate dimensions A vector projects the Zrem Axis to the Local Coordinate System N vector projects the Xrem Axis to the Local Coordinate System O vector projects the Yrem Axis to the Local Coordinate System

  7. Defining the Homogeneous Transformation Matrix nx ox ax dx ny oy ay dy nz oz az dz 0 0 0 1 Scaling Factor Perspective or Projection Vector • This matrix is a transformation tool for space motion!

  8. HTM – A Physical Interpretation • A representation of a Coordinate Transformation relating the coordinates of a point ‘P’ between 2 like-geometrid (-- ie SO3 --) different coordinate systems • A representation of the Position and Orientation (POSE) of a transformed coordinate frame in the “space” defined by a fixed coordinate frame • An OPERATION that takes a vector P and rotates and/or translates it to a new vector Ptin the same coordinate frame

  9. Lets use it on our ‘Translational’ problem • What is the n vector here • Well, since X1 points in X0 direction, it is simply: (1,0,0) • Using the same reasoning: • The o vector is: (0,1,0) • And the a vector is: (0,0,1) • Here the d vector is: • The definition of the origin of Frame1 in Frame0 coordinates: (12,35,45)

  10. Solving: • H. Transformation Matrix is: • Point A1 to ‘1 space’: 1 0 0 12 0 1 0 35 0 0 1 45 0 0 0 1 T01 = The solution of where A1 is in Frame0 is the product of these two matrices! 1 0 0 2 0 1 0 7 0 0 1 3 0 0 0 1 T1A =

  11. Solution is given by: 1 0 0 14 0 1 0 42 0 0 1 48 0 0 0 1 T01· T1A = Hey, This works! (we got the same answer) -at least for this translational stuff!

  12. What about Rotational Transformations? • Lets start with a “Pure Rotation” • A Pure Rotation is one about only 1 axis (a separable rotation) • We will consider this about Z0 (Initially) • This means: Rotate the ‘Remote’ Frame1 by an angle Q about the Z0 axis of ‘Local’ Frame0

  13. After Rotation we find this Relationship

  14. What is the Representation of P1 in Both Frames? • Assume the (identical) point is at (2,4,6)1 • And we had rotated Frame 1 by 37 degrees about the Z0 Axis • Where is the point as defined in Frame0? • We will employ the Method of Inner Products to find this.

  15. By Inner Products: Relating these two definition of the SAME Point:

  16. Collecting & Simplifying : Rewriting it in Matrix Form: Psst:This is a R matrix!

  17. Converting it to a HTM Form (4x4) Vector of origin1 to orgin0 is (0,0,0) – they are the same point!

  18. Lets See?  is 37deg and P1 is (2,4,6) • Cos = 0.799 • Sin = 0.602 • HTM is: • Model is:

  19. Solving then: • XP0 = (row1 * P1) = .799*2-.601*4+0*6+0*1=-0.806 • YP0 = (row2*P1) = .601*2+.799*4+0*6+0*1 = 4.398 • ZP0 = (row3*P1) = 0*2+0*4+1*6+0*1 = 6 • This is the same as we Observed!

  20. What about Pure Rotation about X or Y Axes? • Uses the same Inner Product approach (Cosines of angles between vectors after rotation) • Trotx = • Troty =

  21. Lets look at Another Issue! • Since we are in Matrix Math now, We remember that the “order of multiplication” matters • That is A*B  B*A (in general) • When we deal with physical space this is true as well. But it even offers one more added difficulty: • Did we take motion Relatively (space is redefined after an operation) or are all operations taken W.R.T. a fixed geometric space?

  22. First Define two simple Operations: • Simple Translation of (4,0,0)A = • Simple Rotation of 90 about ZaxisB =

  23. Now Define 2 Cases: • Case 1 is where we “redefine” Space after each operation • Case 2 is where all operations are taken against a fixed (inertia) space frame

  24. Check Order issue: • 1st Translate then rotate • Its almost like drawing a cat!

  25. Autocad Here! (Case 1:Trans – rot)

  26. Given P2 (1,1,0)2 Where is it in Space0? • Let’s Guess it is found by applying an (overall) Transformation given by:

  27. Is (3,1,0,1)0 Equal to T20*(1,1,0,1)2?

  28. Check Order issue: • 2nd – Rotate then Translate • Should be different physically! • Lets See

  29. AutoCad Again (Case1: Rot-Trans)

  30. Given P2 (1,1,0)2 Where is it in Space0? • Lets Guess it is found by applying an (overall) Transformation given by:

  31. Is (-1,5,0,1)0 Equal to T20*(1,1,0,1)2?

  32. Checking Case Two • Now we don’t redefine space between operations • That is, all operations are taken WRT a fixed coordinate system

  33. Autocad: (Case2 Trans – Rot)

  34. Looks Familiar! • The effect is just like the Rotate then Translate operational order when we were in Case 1 • Therefore, To get the Transformation Model, we must write: Trot*Ttrans • Yes, the order of multiplying is reversed from the order of operating!

  35. Case 2: Rot - Translate • What about here? • Lets see what we get

  36. Autocad: (Case 2, Rot-Trans)

  37. Looks Familiar Too • This is just like what happened in Case 1 when we did Translate then Rotate • The overall effect here must be:Ttrans * Trot • Yes the order of multiplying is again reversed from the order of operating!

  38. This can be Generalized • For Case 1 operations (space is redefined between each operation), the OVERALL EFFECT is found by taking the product of the operations in the order they are taken • For Case 2 operations (all operations taken W.R.T. a fixed Frame), the OVERALL EFFECT is found by forming the product of the individual operations taken in reverse order

  39. This can be Generalized in an Algorithm! • As an Algorithm, we would say, when considering any and all additional individual Operations: • Initially Place the First Operation (must have been taken WRT Frame 0!) • Then write each successive operation as a matrix and place it in “multiply order” by the iterative application of the two steps below (for Operations 2 thru j) • Step 1: Considering Operation i (taken wrtany Frame n), its effect is modeled after all prior operations taken WRT any Frames < n • And • Step 2: Considering the same Operation i(taken about frame n), its effect is modeled before all prior operations taken WRT Frame n or any frame > n

  40. Looking at our earlier “modeling” • When we studied Case I (First Time) • Model Pure Rotation about Z – Call it OpA • Model Translation along X – Call it OpB • 1st Op A about Z0; then 2ndOpB along X1 • By the Algorithm: Place A first then Determine placement of B – • Step 1: place B after A if Frame 1 > Frame 0 (yes!) • Step 2: place B before A if Frame 1  0 (No!) • Correct order is A*B (as we saw)

  41. If Operational Order was reversed (but still Case I) • What of: Op B along X0 Op B about Z1? • Place A first then determine placement of B – again by the algorithm: • Step 1 place B after A if Frame 0 > Frame 1 (no!) • Step 2: place B before A if Fr0  Fr 1 (Yes!) • Correct order is B*A (as seen)

  42. Setting Case II by Algorithm • Op A is Rot about Z0; Op B is Translation wrt X in Fr0 • Place A then apply algorithm to place B • Step 1: Place B after A if Fr 0 > Fr 0 (no!) • Step 2: Place B before A if Fr 0  Fr 0 (yes!) • Correct order is B*A (as we observed) • BUT REMEMBER: • The algorithm can easily be extended to any number of operations (remembering that the a higher number frame results after each successive operation!) regardless of if the individual operation are purely Case I or Case II

  43. This Does Matter! • Robotic Modeling is a Case 1 problem • Euler Orientation is a Case 1 problem • However, RPY Orientation is a Case 2 problem • Finally, Robot Mapping is (typically) a Case 1 problem • Lets look into robot mapping

  44. One Last (cool!) General Idea: Robot Mapping • This is an offline tool for finding Robot Targets (IKS targeting!) • Moves Robot programming ‘Upstairs’ – to the engineering office • Relies on CAD models and geometry defined in increasingly complex spaces • Looks at chains of Transforms to define targets and robot tooling in common coordinate frames

  45. Robot Mapping: Note: Drill not shown, (the Tool frame is actually located at the drill tip!) n 0 Tool Ho R P Ce Ta

  46. Robot Mapping • The idea here is to match up the Tool’s geometric pose with the pose of a Target in our work space. • If we have a part that needs a hole drilled at a certain location, we must get the tool, carried by the robot, to this location (actually a point right above the drilled hole and also at the bottom of the drilled hole will be needed). • Remembering Dynamics, to equate poses, they must be defined in a common coordinate system.

  47. Robot Mapping (cont.) • Typically, we would have a lot of geometric information about our working environment ‘just laying around’ • This data would be in the CAD drawings of parts and in CAD facilities plans of our cells and factories • Additionally the information is also provided in equipment drawings (tables, fixtures, even robots to some extent) • But, if we are going to talk about a robot, that machine is a series of adjustable joints and links that can be moved around (in an IKS sense) to put the tool accurately at the working positions we need. • The Necessary Pose is (within the robot): Tno

  48. Robot Mapping (cont.) • Thinking about what we know: • We would know where we want a hole in a part (in part coordinates) or: TPHo • We likely want to place the part at a specific location on a table or in a fixture or: TTaP or TFP (known in process documentation) • The Table in the Cell (or fixture on a Table) TCeTa or (TTaF and TCeTa) would be known in our facility designs and/or process documentation

  49. Robot Mapping (cont.) • Other thing we would know: • Were our robot is placed in the cell: TCeR from facility drawings • Were the robot Cartesian home frame is located in the Robot space: TR0 from equipment drawings • And finally where a tool is mounted to the end of the robot wrist: Tntool by measuring the tool and holder • What we would like to find is: T0n which contains the information about where the robot needs to ‘pose’ to do the hole drilling operation!

  50. Robot Mapping (cont.) • Knowing this stuff, we should be able to generate a kinemetic chain (of HTM’s)– or map – that defines the hole in the cell: TCeTa*TTaP*TPHo • At the same time we can build akinematic chain for mapping theTool (the drill) back to the Cell too: TCER*TR0*T0n*Tntool • Now equate the two – they are defined in a common reference system – and isolate the desired information (T0n) • That is, extract the ‘unknown’ from the ‘known stuff’

More Related