Hello, my team and I are experimenting with our Romis right now and we’re wondering if anyone else had problems with the robot not driving straight? Instead of driving straight, it curves and the slower it goes, the worse it gets. I’ve calibrated the gyro and everything seems correct, so I’m guessing it’s just the physical motor’s drag or something. Anyone have any suggestions to correct it? Thanks!
Does it curve to a specific side repeatable, driving in a circle, or just wobbling on on its course?
It just curves on one side. So, if I told it to drive straight for a meter, it would slightly curve to the right for about a meter instead of driving straight. The curvature gets worse the slower you go.
What happens if you swap sides with the motors and wheels?
I swapped the motors and now it curves to the right. It’s definitely the one motor that is causing this.
That is annoying. I guess you have two options. Contact Pololu support, they are incredible and may swap it out for you, or ignore it and use programming to make it go straight for auto (which you probably will want to do anyway).
Edit: This is not uncommon. We bought a bunch of Spheros for our Classroom way back when they launched, and many do not go straight. It also happens with full FRC robots, but one motor being off is a bit less noticeable due to the weight of the bots and the fact that they have multiple drive motors.
Are the wheels the same distance on the motor shafts?
Is there more in out play on one motor than the other?
Try putting the wheel on the side that lags further out or the other side further in. Or the other way around.
If you hold the robot in your hand and run both sides at equal speeds do the encoder speeds and distances match?
In my opinion this is normal and something you need to account for in programming. Not only does my romi do a slight curve, but your FRC robots probably do too. The Romi is just smaller with less robust parts, so the physics has more impact. My team has had issues with the AndyMark chassis turning slightly during one year’s auto code.
The solution could be done in 3 ways with programming:
- A simple approach is to an an offset/multiplier to correct a consistently turning robot.
- Use encoders to try and to match the distance of each side. Using either tank drive or arcade drive you can do this.
- Use the Gyro to observe the angle and correct the driving speed on one side or the other.
That is a good point. There are many constants that the Romi has going for it that our full-size bots do not. Sometimes, a kit chassis is not straight (maybe someone cut one side a bit too short), or bolts are not tightened, bearings are in backward, someone forgot to grease something, an elevator is inadvertently touching a wheel, or a host of a million other things that could cause a robot to not go straight. Not that I am saying these have happened to you, but some have happened to us. Any of these things could make the robot not go straight without doing so in code or in driver adjustments with the controls. One year, we had completely different gearing on the left and right sides of our bot. We figured it out in time, but it could have been problematic.
Did you remove the two motors and reinstall/reconnect them on the other side or did you just swap the wiring, leaving the motors in place?