driving straight

Hello all,

We’ve noticed a small problem with our robot…nothing our driveteam cant handle, but something nonetheless.
When both joysticks are powered full speed forward for example, the robot has a tendency to veer to one side.

Is this a mechanical issue, or just inherent to the motors (one spinning its natural direction and the other “technically” spinning in reverse).

anyone else notice this, are there corrections for this?

First check and see if you have more weight on one side of your robot. If your battery and other heavy items are on one side, you will veer to the side.

Hi i am from team 3512 i have noticed that with our robot and it was becuase our driver was putting more pressure on one controller than the other. So you might want to get one controller to go foward and back and another controller to go right and left.

Check:

  • The tension in the chains is similar for each side
  • The wiring to the motors on both sides has no defects (loose wiring, etc).
  • Your wheels spin in similar fashions – i.e. if 1 bearing is going bad due to wear/dirt/etc then it will cause that wheel to resist more, causing the robot to skew to that side.

It may be possible (but doubtful) that you have a worn out CIM motor (factory defective) and thus it is putting out less power. Check the motor Free Speeds if the above doesn’t work.

Some DC motors have a slight bias to them, as in they spin slightly faster in one direction than the other.

Every FRC Robot I’ve ever driven has had some sort of drift to one side, some are worse than others. The problem can be magnified by having more weight on one side, a more efficient or less efficient transmission on one side, etc.

The easiest way I know of to fix this is in software, basically you take the speed of the slower motor, and tune the speed of the faster motor to match this one. This is usually done using an encoder or similar sensor to sense wheel speed and then fed through a loop that equalizes the speed, and can be really accurate if done correctly. You can also use a gyro, where a heading is taken from the joysticks and then that heading is compared to that of the robots and then is worked out from there, one side is sped up or slowed down accordingly. Personally, I played with scaling in 2007 where I found the approximate speed difference between the two sides, and then scaled the signal of the faster side to match the slower side - it worked okay, but it isn’t really the right way to do things.

Thanks guys
The weight dist. is pretty even across the robot (front/rear + left/right).
The free speed seems similar, even @ tranny when robot is elevated - no real way to test.

Both motors/trannies were run to break in and re-lubricated. i think the bias of the motors are enough at full speed to veer.

What are the options to control robot movement:

2 joy sticks tank style
1 joy stick arcade

telepathy

Years of experience tells us that motor bias is not a significant factor.

Speed controller bias is a possibility – make sure you’re telling the software the truth about whether you’re using Victors or Jaguars.

Another likely cause is imperfectly straight wheels. Depending on what your drivebase configuration is, more mechanical resistance on one side could also be a problem.

I noticed you used the word “Veer” to one side.

Does it constantly turn right or left all the time or only
on startup?

Does it drive straight after the veer?

It could be a “stiction” problem in that a bearing, shaft
etc needs to break away and go to its kinetic coefficient
of friction versus static. It could be a bad brush in the motor
landing on some carbon and it takes a 100ms to burn through
before developing torque.

Alan and the gang are on the money for the depowering of the
the “fast side”. Its been used for years. But how much its veering
should be looked into. Try taking the drive chains off and just spinning
the drive wheels. Do they spin easily on both sides? If so work your
way backward. Swap motors, drives. See if the problem follows a
specific component form side to side.

Check the alignment of your frame. When the drives are disconnected
and you let it slide down a plywood ramp does it still veer? Are the
axles parallel to one another. One slightly ahead of the other will make
it turn like a Radio Flyer steering system.

Engineers always want answers, so see if you can find some by
the simple experiments and observations mentioned above.

Hope this helps

Did you try calibrating your Jaguars?

This is a topic that comes up every year.

Assuming that you have taken care of calibrating the Jaguars I will move on to the issue of ‘motor bias’.

DC motors have a tendency to run a little faster in one direction than in the reverse direction. It is a nature of the beast.

Since you have at least two motors, one on each side of the robot, and they are turning in opposite directions relative to each other, there is the motor bias problem.

So if one side is turning CW, the other side is CCW. And one of those modes is faster than the other.

And all of this is assuming you have calibrated the Jaguars, and that you didn’t build in a drivetrain defect into a transmission, like a draggy failed bearing, etc.

So even with calibrated Jag’s, perfectly matched transmission, it will not go perfectly straight.

Drive 20 feet forward. Note which way the robot veered.

Drive 20 feet in reverse. Note which way the robot veered.

If the robot turned the opposite direction in reverse as forwards (e.g. it ended up near the original start point), one side of the drive is faster than the other in both directions. Check tension, motor free speeds, grease, calibration, etc.

If the robot turned the same way forwards and backwards (one side is faster forwards but the other side is faster in reverse), it may just be motor bias. You can (1) double check speed controller calibration, (2) just live with it, or (3) add sensors or other mechanisms to help correct the problem. Usually (1) and (2) will be good enough.

I have to disagree with that. We had a drivebase a number of years ago that could go perfectly straight even when only being driven by the motors on one side. If there is nothing causing binding in the drivetrain, the most important factor for how straight a robot will go is the alignment of the wheels.

In addition to calibrating the Jags and checking the motors, you may also want to check your joystick calibration. One joystick could be set to put out a higher PWM value then the other, and thus one set of motors would be driving faster than the other set.

This is quite common, it’s near impossible for your robot to go perfectly straight on it’s own. Even if your robot’s weight was perfectly distributed the manufacturing process of any of your parts can have an effect.

If you have some encoders around, consider using them to make sure your wheels are traveling the correct distance and if not correcting their speed in code (see: closed-loop control systems).