Making a X-Drive drive straight

Hi, I am on a newly made team with this season being our first season going solo. I have recently redesign my bot into a claw back dump with a x-drive. The problem is that in driver control and autonomous my drivetrain will curve to the left when driving straight with no weight. It is a small curve so not a huge problem but once weight is added to the claw (3 or more stars or a cube) it curves badly. (Shown in this video link text) If anyone can help me with this problem that would be great thanks! Can post pictures of code and robot if needed

Since it curves more when you pick up stars it could possibly be that the stars unevenly distribute the weight, giving one side more friction than the other. It also might be that one of the motors isn’t as strong as the other ones and when weight is added this becomes more pronounced. Idk if you are using high speed motors but one time my team accidentally put a regular motor on the drive leading to a curve.

My team had this problem and switched to a tank drive. In my opinion the x-drive offers no advantage over a tank drive in this years game.

We had X-Drive a long time ago and had the same problem. I would change to a tank drive if I was you

A tank drive with omni-wheels is pretty beast in my opinion.

Back to fixing the x-drive drifting for now…

It seems like you have more friction on one side of your drive than the other. Check to make sure there’s no extra friction in one of the wheels, whether it’s from a misaligned bearing flat or spacing that is slightly too tight. Another guess is that not every wheel is getting the same amount of traction (i.e. one wheel ended up slightly higher up than the other 3 because of VEX tolerances) or aren’t exactly 45 degrees apart (also because of VEX tolerances… ± 1 inch is a lot). It’s hard to fix; software may be the answer here.

My Mentor and I have both checked the friction on all the wheels and all of them are the same. We are running high speed internal gearing. I am thinking about switching to a tank drive but an x-drive works better for my driving style. In my program i am running a function to check the left to the right. I am thinking of making a function tuned to having stars on it.

If the curve is more pronounced when lifting, it might be that the arm is slightly off center.

Your idea for a straight drive while loaded is definitely worthwhile. Given the nature of the game objects, your right and left front wheels will always have different loads on them. The bot will likely steer toward the one with the greater load.

I do agree with the idea that the weight distribution would be off and effect the driving. But the way i am picking the stars up to reduce friction should produce a different curve based on weight. Could slowing the back motors done to the point they match the front be a viable solution?

If all of the friction is the same it’s probably a =n issue of traction where one (or two) wheels aren’t contacting the ground as well. When you pick up stars, this twists the drive, and this torsion worsens the problem. Try a simple suspension (as simple as one can get with a suspension…) or rebuilding the side that drives slower.

As what I can tell, an X-Drive isn’t really needed for this competition mainly because of the fact that you can solve the issue of alignment just by turning your robot. If you were to go to another competition, such as Skyrise, you most probably needed strafing to align with the poles on the side to dump the cubes as fast as possible.
EDIT//: But if the driver knows the correct timing to strafe at the correct moment to be as smooth as possible for intaking this season, go ahead and stay with an X-Drive. But this wasn’t relative to the answer of this question, because it only said “Making a X-Drive drive straight” and not “Is an X-Drive Preferred?”
In order to drive straight, you should consider these things:

  • The opposing force of friction that could be happening to one or more of the axles
  • An uneven robot where one side is heavier than the other (which will create more friction)
  • Some motors can be faster than others (wear and tear)
  • Maybe some drive motors are connected to the expander, while some are connected to the CORTEX directly. (Battery power difference)
  • Faulty coding (Any mistakes?) (MOST PROBABLY ISN’T THE ISSUE, JUST A CONSIDERATION)
  • Motors in the wrong ports

After the checking of the video, the considerations seemed to narrow down to these options:

  • The opposing force of friction that could be happening to one or more of the axles
  • Some motors can be faster than others (wear and tear)
  • Maybe some drive motors are connected to the expander, while some are connected to the CORTEX directly. (Battery power difference)

Here are some steps that can fix the problem:

  1. Replace the worn-down motors, or maybe re-order 4 new motors for the drive.
  2. If this isn’t the problem, try replacing some of the axles to new ones because the steel axles can rust, or potentially get more frictionous over time.
  3. Try adding a lubricant to the bearing flats of the slower wheels.
  4. Try to add encoders to each drive axle and use programming to make them compare to the slowest encoder.
  5. Ensure that all of the drive motors are all on the expander or all on the CORTEX.
    Hopefully this helps!
  • Cataclysm Team Member C.W.

We have that. :slight_smile:

I think that it may not have to do with friction at all. It may be that one of the motors on your x-drive has a different internal gear ratio (torque, speed, or turbo). A motor with a faster gear ratio has less torque. This would explain why it curves a little bit when the drive has minimal load, because one wheel is spinning faster/slower, but when more weight is added it slows down even more, because a speed motor has less torque.

But under no load this wheel would spin faster, making the robot swerve in the opposite direction. My guess is still one wheel slightly higher off the ground than the others.

Avoid X-drive due to such problems