From Kinematics to Arm Control a) Calibrating the Kinematics Model b) Arm Motion Selection c) Motor Torque Calculations for a Planetary Robot Arm CS36510 1 a) Calibrating the Kinematics Model • Resolution, Repeatability and Accuracy • Causes of Mechanical Error • Calibrating the kinematics model CS36510 2 Resolution, Repeatability and Accuracy 1. Resolution: smallest incremental move that a robot can physically produce. 2. Repeatability: a measure of the robot’s ability to move back to the same position and orientation over and over again. Also referred to as ‘precision’. 3. Accuracy: the ability of the robot to move precisely to a desired position in 3D space CS36510 3 Repeatability (Precision) and Accuracy Poor Accuracy Poor Repeatability (Assuming Gaussian Distribution) CS36510 Poor Accuracy Good Repeatability Good Accuracy Poor Repeatability Good Accuracy Good Repeatability 4 Causes of Mechanical Error Denavit-Hartenberg (D-H) Parameters: Link Length (d); Link Offset (a); Link Twist (α); Link Rotation (θ) CS36510 5 Calibrating the Beagle 2 Arm Typical Vicon measurement setup CS36510 Beagle 2 FM Arm with Vicon Markers 6 Oxford Metrics Vicon System ‘Object’definition in Vicon system CS36510 7 Calibrating the ARM Kinematics Model The simulated (perfect) arm is moved to a number of positions using the arm IK model. The end position for each simulated Vicon marker is measured. The real arm is then commanded to the same number of predefined positions in Cartesian space using the joint values calculated from the arm IK model. The actual end position for each real Vicon marker is measured. The real and simulated Vicon marker positions are compared and joint offsets (corrections) are calculated for the simulated arm’s IK model using a least-squares fitting method. The result is that the simulated arm with the corrected IK model produces identical With positioning results as the real arm. i.e. The IK Model simulated arm behaves as per the real arm. CS36510 IK model corrections 8 b) Arm Motion Selection • Joint-by-Joint Motion (JJM) • Slew Motion (SM) • Joint Interpolated Motion (JIM) CS36510 9 Joint-by-Joint Motion (JJM or JBJ) • Strengths: Simplest of the possible motion types; good for un-stowing and stowing an arm as the major joints can be moved one after another. Typically no straight-line trajectory inverse kinematics solution will exist for this type activity anyway. Good at minimising power usage per unit time. • Weaknesses: Joints cannot move simultaneously, hence cannot be used for straight line (continuous) trajectories. Rather payload motion will be in an series of arcs. Large total time to complete all joint motions. CS36510 10 Slew Motion (SM) • Strengths: Also known as “Simultaneous Full Speed” (SFS) motion. All joints that require motion start simultaneously at default joint speeds (usually maximum speed). Quicker joint motion completion when compared to JJM. SM can be used for payload straight-line trajectories. • Weaknesses: Greater power usage per unit time compared to JJM. Joints with smaller angular movement complete their motions before those joints with larger angular movements. Smooth straight-line trajectories not possible. Payload motion tends to zig-zag about the desired straight-line trajectory. CS36510 11 Joint Interpolated Motion (JIM) • Strengths: All joints that require movement start simultaneously and stop simultaneously. Robot attempts to achieve simultaneous start and stop by setting the speed of each joint angular motion to be proportional to the angular distance to be travelled for each joint. Produces smooth straight-line trajectory motion. • Weaknesses: Greater power usage per unit time compared to JJM. Greater computational overheads when compared to SM. CS36510 12 Knot Points • • Straight-line trajectory requires knot points (from spline mathematics) to be generated between the start and finish positions. The desired straight-line between the payload start and finish positions can be uniformly divided into intermediate points in Cartesian space (called knot points)1. Each of these points can be put through the IK model to generate the joint angles required to move the arm to each of these intermediate points in turn; whilst setting each joint speed (e.g. proportional for JIM) to the required angular motion. 1 Taylor, R. H., Planning and Execution of Straight Line Manipulator Trajectories, IBM J. RES. DEVELOP, VOL. 23, NO. 4, pp. 424-436, JULY 1979. CS36510 Start position Knot point Finish position 13 c) Motor Torque Calculations for a Planetary Robot Arm • What is torque, and why do we need it? – Torque (τ) is defined as a turning (or twisting) force – A robot arm joint motor, with an attached linkage and payload, has to generate a torque to be able to move the linkage and payload – The magnitude of τ depends upon the payload force, and the length of the joint motor linkage CS36510 14 Torque Equation - 1 τ=F×l where τ is the magnitude of the torque (N·m), l (in meters) is the linkage length, and F (in Newtons) is the magnitude of the force. In the vertical plane, the force acting upon an object (causing it to fall) is the acceleration due to gravity (for Earth, g ≈ 9.81 m/sec2). Therefore F = m × g, where m is the magnitude of the mass of the object (in kg), and F is normally referred to as the object’s weight. CS36510 15 Torque Equation - 2 sin 90° = 1 sin 45° = 0.7 sin 0° = 0 τ = F × l × sinθ F F L Linkage (length l) Joint Motor F θ = 45⁰ θ = 90⁰ L τ is maximum CS36510 θ = 0⁰ Pivot Point L maximum > τ > zero L τ is zero 16 Real Arm Linkage Torque Joint Motor F L Pivot Point Weight Motor Weight Linkage WM WL L CS36510 (Use maximum (holding) torque case) Real motors and linkages have mass and therefore weight under gravity Assume linkage mass is evenly distributed and the weight is located at the centre of the linkage length 17 Arm Joint Motor Torque Calculations WP WM1 WL1 WM2 WL2 WL3 Payload M1 L1 M3 M2 L2 L3 τM1= (WP × L1) + (WL1 × (0.5 × L1)) τM2= (WP × (L1 + L2)) + (WL1 × ((0.5 × L1) + L2)) + (WM1 × L2) + (WL2 × (0.5 × L2)) τM3= (WP × (L1 + L2 + L3)) + (WL1 × ((0.5 × L1) + L2 +L3)) + (WM1 × (L2 + L3)) + (WL2 × ((0.5 × L2) + L3)) + (WM2 × L3) + (WL3 × (0.5 × L3)) CS36510 18 Motor Torque Calculation Example Based upon arm configuration shown in the previous slide, calculate the three motor torques, i.e. τM1, τM2, and τM3, using the parameters in the table below: CS36510 Titan gravity 1.373 m/sec2 Payload mass 2.0 kg Linkage L1 length 0.3 m Linkage L2 length 0.5 m Linkage L3 length 0.6 m Mass of Linkage L1 0.5 kg Mass of Linkage L2 0.8 kg Mass of Linkage L3 0.9 kg Mass of Joint Motor 1 0.45 kg Mass of Joint Motor 2 0.75 kg τM1 = 0.927 Nm τM2 = 3.226 Nm τM3 = 7.340 Nm 19 Gear Box Selection: a) A gear box will be needed to achieved desired output motor torque b) Gear Box Torque Ratio is ratio of output torque to input torque, e.g. 100:1, 1000:1 etc. c) E.g. for τM3 select 73.1 × 10-3 Nm × 100:1 = 7.31 Nm CS36510 20 Final Points • Maximum holding torques calculated for each motor. Would need to add contingency (e.g. 20%) for each motor. • Calibration, motion selection, and motor torques also apply to a rover locomotion chassis, i.e. steering and drive mechanism • Same techniques can be applied, but chassis details not covered here CS36510 21