We have two lead screws we are driving and one has been driving a little higher each time. It has the whole mechanism drive out of sync which could end up damaging the lead screws. Any ideas on how to fix this?
You could sync them up with a chain. This would force the one that was lagging behind to speed up. Our team had success with this on our 2013 bot.
Are your motor controllers calibrated?
I totally agree on calibrating your speed controllers, but if you had to you could use a PID loop to make them both spin at the same speed. I know Talon SRXs have a built in mode for making them spin a specific speed based off a sensor input.
Make sure that the gear ratios are the same. My team had a similar problem and this was one of the answers. Also make sure the are in line.
Calibrating the speed controllers is a good start. You can use an encoder to get the speed of each and tune a PID controller to run them both at the same speed. If you are using Talon SRXs, you can run one Talon as a follower so it will take the same input as another. This may be useful if you can only encode one lead screw. However, if the drives are (significantly) mechanically different, this will not solve you problem.
The “easiest” way around this, is to mechanically couple them. We have two ball screws this year: one on each side of the robot. We have a drive shaft running across the robot that couples them together. We are only encoding one ball screw and running two Talon SRXs in a leader-follower system.
The proper solution is to mechanically link the two drives.
Failing that, PID position control will probably work.
Simply calibrating the motor controllers will probably make it better, but will not fully solve the problem - motors and assemblies are non-identical and small differences in motor output and friction can contribute to significant differences in behavior.
We have 2 ball screws this season that have to be timed and we had debated using PID loops, but ended up settling on mechanically timing due to its simpler nature and proven reliability. For example, timing belts (what we used) and chain are both methods of mechanically timing, you could use gears as well although it is trickier.