I admit; I’m surprised that 0.6-1% makes a difference here. If you drove, say, the entire length of the field – 54 feet, or 648 inches, 1% of that is 6.5 inches – not enough to rotate the robot by 45 degrees. My guess is that it is worse than that while driving.
That’s my recommended next-test – get some plotting set up (velocities, distances, currents, voltages) and try driving the robot around. Put the same variable (e.g., velocity) for all 4 motors on a common plot as 4 separate series.
You can plot things in a few different ways; Glass is my preferred method as of late. SmartDashboard.putNumber will make the values accessible to Glass, then you can make plots and drag the values into them.
A regular multimeter won’t give you much information here; you need a different tool and/or technique – 4-wire resistance measurement. Resistances in series add up, and the contact resistance of the multimeter is probably on the order of 1.2 ohms. The resistance of the PDH is probably on the order of 0.005-0.010 ohms, but the meter won’t read that. That said, the test you did do probably shows there’s nothing egregious.
While doing more testing, we had the decided to try realigning the wheels, this seems to have helped a lot, but when we aligned them again (3 or 4 times total) we got inconsistent results for our angle offsets, and it’s still not perfect. We are planning on trying this some more, does anyone know if there’s any trick to it or a better way than in the readme in base falcon swerve?
Also, draw a mark on each one with a permanent marker, and make that mark extend to the aluminum piece they are glued into. If they ever rotate, you’ll be able to see that the marks are misaligned.
Pull up your dashboard of choice (e.g., Glass, SmartDashboard…) and compare the results for:
"Mod " + mod.moduleNumber + " Cancoder"
versus "Mod " + mod.moduleNumber + " Integrated"
(see Swerve.java, beginning line 142)
If the modules are zeroed, and these numbers are more than slightly different, you have a problem.
It’s also probably worth mentioning that we have the battery in the back of the robot, and it ways about a third of the rest of the robot, so the center of mass is way in the back, so that probably accounts for a lot of the behavior when going sideways.