470 likes | 572 Views
ME 4135 Robotics & Control R. Lindeke, Ph. D. Slide Series 5: IKS for Robots. FKS vs. IKS. In FKS we built a tool for finding end frame geometry from Given Joint data: In IKS we need Joint models from given End Point Geometry:. Cartesian Space. Joint Space. Joint Space. Cartesian Space.
E N D
ME 4135 Robotics & Control R. Lindeke, Ph. D. Slide Series 5:IKS for Robots
FKS vs. IKS • In FKS we built a tool for finding end frame geometry from Given Joint data: • In IKS we need Joint models from given End Point Geometry: Cartesian Space Joint Space Joint Space Cartesian Space
So this IKS is Nasty (as we know!) • It a more difficult problem because: • The Equation set is “Over-Specified” • 12 equations in 6 unknowns • Space is “Under-Specified” • Planer devices with more joints than 2 • The Solution set can contain Redundancies • Multiple solutions • The Solution Sets may be un-defined • Unreachable in 1 or many joints
Uses of IKS • Builds Workspace • Allows “Off-Line Programming” solutions • Thus, compares Workspace capabilities with Programming realities to assure that execution is feasible • Aids in Workplace design and operation simulations
Doing a Pure IKS solution: the R Manipulator R Frame Skeleton (as last time)
Forming The IKS: • Examining these two equation (n, o, a and d are ‘givens’ in an inverse sense!!!): • Term (1, 4) & (2,4) both side allow us to find an equation for : • (1,4): C1*(d2+cl2) = dx • (2,4): S1*(d2+cl2) = dy • Form a ratio to build Tan(): • S1/C1 = dy/ dx • Tan = dy/dx • = Atan2(dx, dy)
Forming The IKS: • After is found, back substitute and solve for d2: • (1,4): C1*(d2+cl2) = dx • Isolating d2: d2 = [dx/C1] - cl2
Alternative Method – doing a pure inverse approach • Form A1-1then pre-multiply both side by this ‘inverse’ • Leads to: A2 = A1-1*T0ngiven
Solving: • Selecting and Equating (1,4) • 0 = -S1*dx + C1*dy • Solving: S1*dx = C1*dy • Tan() = (S1/C1) = (dy/dx) • = Atan2(dx, dy) • Selecting and Equating (3,4) -- after back substituting solution • d2 + cl2 = C1*dx + S1*dy • d2 = C1*dx + S1*dy- cl2
Performing IKS For Industrial Robots: • First lets consider the previously defined Spherical Wrist simplification • All Wrist joint Z’s intersect at a point • The nthFrame is offset from this intersection by a distance dn along the a vector of the desired solution (3rd column of desired orientation sub-matrix) • This result is as expected by following the DH Algorithm!
Performing IKS • We can now separate the effects of the ARM joints • Joints 1 to 3 in a full function manipulator (without redundant joints) • They function to position the spherical wrist at a target POSITION related to the desired target POSE • … From the WRIST Joints • Joints 4 to 6 in a full functioning spherical wrist • Wrist Joints function as the primary tool to ORIENT the end frame as required by the desired target POSE
Performing IKS: Focus on Positioning • We will define a point (the WRIST CENTER) as: • Pc = [Px, Py, Pz] • Here we define Pc = dtarget - dn*a • Px = dtarget,x - dn*ax • Py = dtarget,y - dn*ay • Pz = dtarget,z - dn*az
Focusing on the ARM Manipulators in terms of Pc: • Prismatic: • q1 = Pz (its along Z0!) – cl1 • q2 = Px or Py - cl2 • q3 = Py or Px - cl3 • Cylindrical: • 1 = Atan2(Px, Py) • d2 = Pz – cl2 • d3 = Px*C1 – cl3 or +(Px2 + Py2).5 – cl3
Focusing on the ARM Manipulators in terms of Pc: • Spherical: • 1 = Atan2(Px, Py) • 2 = Atan2( (Px2 + Py2).5 , Pz) • D3 = (Px2 + Py2 + Pz2).5 – cl3
Focusing on the ARM Manipulators in terms of Pc: • Articulating: • 1 = Atan2(Px, Py) • 3 = Atan2(D, (1 – D2).5) • Where D = • 2 = - • is: Atan2((Px2 + Py2).5, Pz) • is:
One Further Complication: • This can be considered the d2 offset problem • A d2 offset is a design issue that states that the nthframe has a non-zero offset along the Y0 axis as observed with all joints at home, in the solution of the T0n • This leads to two solutions for 1 • the So-Called Shoulder Left and Shoulder Right solutions
Defining the d2 Offset issue Here: ‘The ARM’ might be a prismatic joint as in the Stanford Arm or it might be a2 & a3 links in an Articulating Arm and rotates out of plane A d2 offset means that there are two places where 1 can be placed to touch a given point (and note, when 1is at Home, the wrist center is not on the X0 axis!)
Solving For 1 • We will have a Choice (of two) poses for :
In this so-called “Hard Arm” • We have two 1’s • These lead to two 2’s (Spherical) • Or to four 2’s and 3’s in the Articulating Arm • Shoulder Right Elbow Up & Down • Shoulder Left Elbow Up & Down
The Orientation Model • Evolves from: • Separates Arm Joint and Wrist Joint Contribution to the desiredTarget(given) orientation
Focusing on Orientation Issues • Lets begin by considering Euler Angles (they are a model that is almost identical to a full functioning Spherical Wrist): • Form Product: • Rz1*Ry2*Rz3 • This becomesR36
Euler Wrist Simplified: And this matrix is equal to a U matrix prepared by multiplying the inverse of the ARM joint orientation matrices inverse and the Desired (given) target orientation NOTE: R03 is Manipulator Arm dependent!
Solving for Individual Orientation Angles (1st): • Selecting (3,3)→ C= U33 • With Cwe “know” S= (1-C2).5 • Hence: = Atan2(U33, (1-U332).5 • NOTE: 2solutions for !
Re-examining the Matrices: • To solve for : Select terms: (1,3) & (2,3) • CS = U13 • SS = U23 • Dividing the 2nd by the 1st: S /C = U23/U13 • Tan() = U23/U13 • = Atan2(U13, U23)
Continuing our Solution: • To solve for : Select terms: (3,1) & (3,2) • -SC = U31 • SS = U32 • Tan() = U32/-U31 • = Atan2(-U31, U32)
Summarizing: • = Atan2(U33, (1-U332).5 • = Atan2(U13, U23) • = Atan2(-U31, U32)
Solving: • Examination here lets select (3,3) both sides: • 0 = C4U23 – S4U13 • S4U13 = C4U23 • Tan(4) = S4/C4 = U23/U13 • 4 = Atan2(U13, U23) • With the given desired orientation and values (from the arm joints) we have a value for 4 the RHS is completely known
Solving for 5 & 6 • For 5: Select (1,3) & (2,3) terms • S5 = C4U13 + S4U23 • C5 = U33 • Tan(5) = S5/C5 = (C4U13 + S4U23)/U33 • 5 = Atan2(U33, C4U13 + S4U23) • For 6: Select (3,1) & (3, 2) • S6 = C4U21 – S4U11 • C6 = C4U22 – S4U12 • Tan(6) = S6/C6 = ([C4U21 – S4U11],[C4U22 – S4U12]) • 6 = Atan2 ([C4U21 – S4U11], [C4U22 – S4U12])
Summarizing: • 4 = Atan2(U13, U23) • 5 = Atan2(U33, C4U13 + S4U23) • 6 = Atan2 ([C4U21 – S4U11], [C4U22 – S4U12])
Lets Try One: • Cylindrical Robot w/ Spherical Wrist • Given a Target matrix (it’s an IKS after all!) • The d3 “constant” is 400mm; the d6 offset (call it the ‘Hand Span’) is 150 mm. • 1 = Atan2((dx – ax*150),(dy-ay*150)) • d2 = (dz – az*150) • d3 = [(dx – ax*150)2,(dy-ay*150)2].5 - 400
The Frame Skeleton: Note “Dummy” Frame to account for Orientation problem with Spherical Wrist modeled earlier
Solving for U: NOTE: We needed a “Dummy Frame” to account for the Orientation issue at the end of the Arm
Subbing Uij’s Into Spherical Wrist Joint Models: • 4 = Atan2(U13, U23)= Atan2((C1ax + S1az), (S1ax-C1az)) • 5 = Atan2(U33, C4U13 + S4U23)= Atan2{ay, [C4(C1ax+S1az) + S4 (S1ax-C1az)]} • 6 = Atan2 ([C4U21 - S4U11], [C4U22 - S4U12]) = Atan2{[C4(S1nx-C1nz) - S4(C1nx+S1nz)], [C4(S1ox-C1oz) - S4(C1ox+S1oz)]}