550 likes | 710 Views
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
E N D
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 • 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!
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.
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?
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!)
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
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!
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
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)
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 =
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!
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
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.
By Inner Products: Relating these two definition of the SAME Point:
Collecting & Simplifying : Rewriting it in Matrix Form: Psst:This is a R matrix!
Converting it to a HTM Form (4x4) Vector of origin1 to orgin0 is (0,0,0) – they are the same point!
Lets See? is 37deg and P1 is (2,4,6) • Cos = 0.799 • Sin = 0.602 • HTM is: • Model is:
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!
What about Pure Rotation about X or Y Axes? • Uses the same Inner Product approach (Cosines of angles between vectors after rotation) • Trotx = • Troty =
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?
First Define two simple Operations: • Simple Translation of (4,0,0)A = • Simple Rotation of 90 about ZaxisB =
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
Check Order issue: • 1st Translate then rotate • Its almost like drawing a cat!
Given P2 (1,1,0)2 Where is it in Space0? • Let’s Guess it is found by applying an (overall) Transformation given by:
Check Order issue: • 2nd – Rotate then Translate • Should be different physically! • Lets See
Given P2 (1,1,0)2 Where is it in Space0? • Lets Guess it is found by applying an (overall) Transformation given by:
Checking Case Two • Now we don’t redefine space between operations • That is, all operations are taken WRT a fixed coordinate system
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!
Case 2: Rot - Translate • What about here? • Lets see what we get
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!
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
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
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)
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)
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
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
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
Robot Mapping: Note: Drill not shown, (the Tool frame is actually located at the drill tip!) n 0 Tool Ho R P Ce Ta
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.
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
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
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!
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’