The drive is not straight and spin has large error. Is there a way to calibrate the drive?
Sorry to hear your GoPiGo is misbehaving. There are a couple of potential reasons for this.
Let’s see if it’s a hardware issue first. On each motor, there’s a disk that spins with two sensors very close to it. The position of the top of those sensors should be flush with the external face of the disk. Can you do a visual check on this ?
If the encoders are fine, let’s see if we can do something in software. There’s some variability when assembling the robot. You can change a couple of constants to represent your specific robot. Use this code when starting your program but take the time to measure your own robot. 64.5 and 119.0 are just examples.
from math import pi gpg = easygopigo3.EasyGoPiGo3() # adjust these two values for your robot wd = 64.5 #default is 66.5 : wheel diameter, adjust for your robot. wbw = 119.0 #default is 117 : distance between the two wheels, adjust for your robot. gpg.WHEEL_DIAMETER = wd gpg.WHEEL_CIRCUMFERENCE = wd * pi gpg.WHEEL_BASE_WIDTH = wbw gpg.WHEEL_BASE_CIRCUMFERENCE = wbw * pi
How do I do this in bloxster?
Cannot help with bloxster but can offer some hints:
- check that wheels are not smashed against the clear spacer on axles
- mount battery pack on top plate for more accurate spins
- derive your effective wheel diameter from driving 5 feet or 1.5 meters, before tuning wheel base for spins
- Review this thread, especially Matt’s post: Wheels, Encoders, Hardware, and Software - Theory vs Reality
My apologies, I was away for a little bit.
The changes in software cannot be done in DexterOS for the moment. Have you looked at the encoders, do they look fine to you?
Can you share a photo of them?
Can you measure the distance between the two wheels? From the center of one wheel to the center of the other wheel?