Closed JamesNewton closed 3 years ago
Not looked at this but could the physical rig be built into the robot? Maybe add a small point on the base and on the toolend which lock together effectivly forcing the robot into a known position, it may not be the home position but if its a known position then you could calculate the movement required to reach home.
EDIT: This would remove the need for a whole physical rig just for the initial calibration
Although #5 is closed with the index pulses, and that allows us to always return to the same starting position, there are several issues that prevent that from being a true home; that position isn't actually the position that you defined as home during the calibration process.
Because during movement joint calibration, there is a "frame dragging" of the sensor data behind the physical position of the joint. This is caused by the friction in the system, and results in us mapping the current motor position to a past encoder position.
Also, no matter how hard you try, you can never really place the robot at true home with the human eye, because an error of 0.5 degree in Joint 2 (for example) can result in a 6 mm error at the end effector.
To solve this issue ,
We have implemented a SetParameter to offset the PID move command values and returned measured angles. https://github.com/HaddingtonDynamics/Dexter/commit/4c506d60a42ed31d4acc35f74e6f6262ac6a78e5#diff-a940a548ba41bc988f99d51fd02f21de
We may need to build a physical rig to calibrate the robots at startup.
Measuring the transition from one eye to another may help.
Summary: Robot at apparent home, all angles near zero, but it is hard to accurately measure them physically. After calibration, you will be slightly off of home, but the sensors will all say zero. Offset angles if error can be measured.