Once assembled, you realize that the robot is not the most accurate. How would you investigate this? How would you fix it?
Break manipulation inaccuracy sources into:
Control: Is the arm following the reference it is given in joint space? How does that error translate to task space? These are errors that can be measured by the system’s software, and usually point to control issues or actuation issues.
Kinematics and Taring: Do the forward kinematics match the real arm? These errors represent a disconnection between what the system’s software believes the hardware is doing and what it is doing in reality.
Perception: Is the target correctly aligned to the real world? These errors represent an inability to provide the robot arm with the correct target
Inaccuracy Sources
Name
Category
Measurement
Notes
Possible causes
Name
Category
Measurement
Notes
Possible causes
Motor drivers following their references
Control
Measure joint-level error signal in driver telemetry data
"Following their reference” means that reproted values are within tolerance of reference values, not considering. Reported values differing from real-world values is out of scope
Infeasible references
Malfunctioning actuator
Trajectory controller following it’s reference
Control
Measure joint-level positional error signal in controller telemetry data
Bad encoder
Bad torque measurement
Infeasible references
Bad dynamic model
Unmodeled hardware dynamics
Joint positions correctly tared
Kinematics and Taring
Use a hardware rig that fixes the passive arm in the zero-position, check telemetry reads zero within tolerance
Encoder drift or hysteresis
Joint torques correctly tared
Kinematics and Taring
Use a hardware rig that braces each joint, check for zero-torque within tolerance.
For each joint apply torque that will apply a known force against the rig’s contact position for that joint/link, check calculated torque against measured.
Torque sensor drift or hysteresis
Kinematic model aligns with real robot
Kinematics and Taring
Use a rig that attaches a 3D camera to the base with a known transform, measure a number of arm configurations, compare point cloud to forward kinematics.
Alternatively do so with a rig that provides known EEF targets and measure accuracy at touching the targets
Incorrect joint axis placements
Camera calibration
Perception
Use the checkerboard calibration technique and see if significantly differing values would be applied
Improperly conducted camera calibration
Hand eye calibration
Perception
Place an april tag on the end effector mounted with a known transofrm from EEF frame, detect the pose from the camera, compare to the pose from camera to tag through the camera→base and forward kinematics
Improperly conducted hand-eye calibration
Local minima in hand-eye calibration
Target segmentation aligns with object in camera image
Perception
Check recorded data of inaccurate pick tasks, visually validate the segmentation placement on the images used for pose estimation.
Perception model inaccuracy
Target pose aligns with object in camera frame
Perception
Use a 3D visualizer to check pose placement relative to image and known conveyor height.
Perception model inaccuracy
There are no rows in this table
Lower Level
Name
Test
How to fix
Name
Test
How to fix
Bad encoder
Measure encoder readings against known joint displacements
Replace
Bad torque measurement
Apply known torque and measure output
Replace
Infeasible references
Assess velocity and acceleration values of the references passed to the driver and compare to motor specs
Adjust constraints in motion planning/control
Bad dynamic model
Perform isolated joint-link system identification and compare outputs to full model parameters
Perform more intensive system identification
Unmodeled hardware dynamics
Collect data over a wide range of motion, compare model estimates to measured values, drill down to specific areas of disagreement.
Look for patterns and signals of things such as joint deformities, high joint friction, irregular joint axes
Increase specificity of dynamic model to account for unmodeled dynamics
Encoder drift or hysteresis
Endurance test of repeatable displacements
Replace sensors with less drift/hysteresis or put in place a monitoring system that can alert to the need of taring or parameter adjustment
Torque sensor drift or hysteresis
Endurance test of repeatable torques
Replace sensors with less drift/hysteresis or put in place a monitoring system that can alert to the need of taring or parameter adjustment
Incorrect joint axis placements
Perform measurements per joint at right angle configuration to validate axis placements
Use outputs of left-mentioned procedure to update joint axis placements
Malfunctioning actuator
Feasible references do not produce expected output
Replace
Improperly conducted camera calibration
Re-running procedure multiple times produces consistent results different to the applied results
Use outputs of re-run
Improperly conducted hand-eye calibration
Re-running procedure multiple times produces consistent results different to the applied results
Use outputs of re-run
Local minima in hand-eye calibration
Run multiple times on same calibration data tuning parameters and checking for jumps in converged error
Use outputs of best re-run
Perception model inaccuracy
Generate larger test-set
Re-train the model
There are no rows in this table
Order of investigation and why:
Control errors. This is performed first since it is the easiest to measure and if they are not present it is helpfult to check off first. Modelling errors such as bad kinematic models and incorrect joint taring can cause control errors, however it is better to investigate those with the context of whether the robot believes it is following it’s reference first.
If there are no control errors this is the next to be tested are perception errors, as regardless of subsequent errors an incorrect target will inevitably cause inaccuracy
Finally the kinematic and taring errors are investigated
Want to print your doc? This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (