Holonomic drive not going straight

My team has a holonomic drive and we have problems with driving straight when lifting loads and we were wondering if other teams who have a holonomic drive experience similar issues and how one could go about fixing it or if we should get aboard the tank drive meta.

Even with a tank drive there is enough warping in our drive that it’s pretty difficult to drive straight. Moving to a tank drive will definitely help reduce the drift when you pick up larger loads but won’t solve the issue.

We had problems with this and it turned out one of the motors was running slower than the others. We replaced the motor and it ran fine.

Do you have a PID implemented? It is possible that your motors are not working because they are outputting different values, not regulated by a control loop

Drifting due to carrying a large load is usually because the load warps the drive, causing some wheels to have worse traction than the others. Especially with an x-drive where drifting is basically inherent, this causes massive drift in different directions. If you want to fix it you can use a gyro to stabilize your drive code; however, realize that encoders aren’t going to be very useful here because of wheel slip.

We are not currently using PID in our drive

That may be the problem, and it is generally a good idea to get a PID on everything, but I would try the other advice on this thread beforehand; Control Loops can take time to program, tune, etc.

You definitely don’t need PID for driver control on the drive. This drift is inherent in pretty much all robots that aren’t perfectly balanced and/or supported.

The balance of weight on your robot affects how straight you can drive. Our robot last year could never drive straight due to immense weight on one side.

Let me rephrase, you should have a PID on every subsystem. I agree you don’t really need PIDs in driver control, I just phrased it wrong

Or drop center if you want to turn nicely while your drive is under load. :slight_smile:

We had this problem before. Make sure all motors go at the same speed, Then check all ports to see if no loose wires. If it is none of these then its most likely that your base is bent a little.

Some motors will naturally run faster or slower than others. We use a tachometer to test a lot of motors and pair them so that all the motors on the drivetrain run as close to the same speed as possible. Also, make sure all the motors are geared the same (either all high torque, high speed, or turbo.)