![]() |
Problems driving straight.
Hello team 5261 here. We drive rotate fine and can get by going forward and backwards but whenever we try to go faster like down a hall it seems the robot starts to turn left. I think this happens because one motor is faster than all the other. If someone could please tell me what the problem is or how to slow down just one specific motor.
USING LANGUAGE JAVA |
Re: Problems driving straight.
If you try moving the wheels by hand, does one side seem more difficult to move than another? Does one side of the drive sound differently to another? If you have more than one motor per side, make sure all motors are actually running (try one motor plugged in at a time and see if you notice anything). Without sensors to read it could be difficult to tell, though sound is usually a decent indicator
Check that all your motor controllers are properly calibrated. Check that you are using the same motor controllers on all motors in the drivetrain. If you are using chains/belts, check tension, perhaps one is tighter than the other and causing issues. Did you lubricate gears? Is anything potentially bent in a weird way? Is your drivetrain square (that is are both sides parallel)? Chances are the problem is a mechanical or electrical one. It is not impossible but most likely not a software problem, unless you are trying something fancy coding-wise. |
Re: Problems driving straight.
Quote:
|
Re: Problems driving straight.
It could be mechanical as others have indicated (chain being tighter one one side, one sides gearbox not being assembled as smoothly as the other, etc), but it could also be electrical - if one of the motor calibrations are way off for some reason, that could be an indicator. Read up in the user guides of the motor controller for how to calibrate.
Also are you using arcade drive (pushing forward on one joystick makes both sides go forward?) Otherwise it might be user input making it veer off a little bit. |
Re: Problems driving straight.
Not only could one motor be running slower, but one motor could actually be running REVERSE relative to the others. We've done this before, so check your program that each rotates the same direction as the others. You may need to do some dis-assembly to make sure each motor is running the right way.
|
Re: Problems driving straight.
Welcome to Chief Delphi
There is already a thread where someone is having a similar problem. You may find some useful information there. http://www.chiefdelphi.com/forums/sh...hreadid=142645 |
Re: Problems driving straight.
Is the hallway floor slick? try it on carpeting..... ;)
|
Re: Problems driving straight.
If you are using dead axles (round bearings supported by bolts) make sure the bolts are a little loose. Like others have said, take the system apart and test each component separately and then as it is reassembled.
Is your robot's CoG centered side to side? If one side of your bot is heaver it may increase friction and cause you to turn in that direction. As others have said, if your frame is not square, your robot won't track straight. If the bearings on one of your motors or wheels has higher friction, you bot won't go straight. If its not mechanical, you could try using a 'Y' cable so each motor controller gets the same PWM signal. You can program a button to pass both sides of the robot the same value or use a 'Y' cable to distribute the same PWM signal to the right and left sides of the bot. If the bot goes straight with this set up its likely your joystick controller is the issue. The key to finding the problem, is to be able to rule out each component in a systematic fashion. Let us know what you try and the results. Dave |
Re: Problems driving straight.
Quote:
|
Re: Problems driving straight.
Not near the bot at the moment but will try all those when I get the chnace later today.
|
Re: Problems driving straight.
An Xbox afterglow controller.
|
Re: Problems driving straight.
We're using tank drive for mecanum. This isn't for the 2016 bot because we a haven't completed. But all the programmers this year are new to programming so we wanted something to test on.
|
Re: Problems driving straight.
Two different gearboxes will never produce the same exact output power/torque/rpm, because small variances in gear friction and efficiency can drastically change the performance.
I assume you don't have encoders you can use to match the wheel speeds? If not, then simply add a "bias" multiplier to the motors in the faster gearbox so its max speed is slower such that it matches the other gearbox. For example, if the robot is steering to the left, that means the right gearbox needs to be slowed down: bias=0.9; // Figure out what number to use here until the robot drives straight, should be between 0 and 1 noninclusive leftmotor.set(joystick.getY()); rightmotor.set(joystick.getY()*bias); |
Re: Problems driving straight.
Sometimes motors don't run at the same exact rate. You can either play around with new motors, program one motor to be slower than the other or, my personal favorite, use a gyroscope! Gyros are easy to program, very useful, fun to use! Good luck with everything
|
Re: Problems driving straight.
Quote:
|
| All times are GMT -5. The time now is 22:39. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi