Non-Square X-Drive?

So…we have an revere tray stacker. But we want an X-drive. Problem is the gravitational center is way off to the back and our robot has to be 27 holes wide otherwise we have problems with scoring. So can we build an x drive that is not square(35 hole*27 hole)?


In theory this would work my only concern with it is that your Turing would be slower than a traditional x drive

1 Like

Yes it’s possible. Since you are talking about a difference of about 4" in the legs, I’d suggest using the basic code to get the base turning and give your team a chance to work on the game elements.

There is some extra math to get it perfect, searching on non-square holonomic drives will give you the math.

Good luck!


square or not, the program are the same

The turning would be less efficient assuming omni rollers have friction(which they do). But I can imagine turning being impacted a ton by having a non square chassis

1 Like

How much power is lost in an X drive system, compared with a tank drive?

The X-Drive is about √2 times faster, which would mean that it has √2 times less torque.

1 Like

Are X drives systems more prone to tipping than tank drives?

If it’s wheels out on the end of a stick (robot really looks like an X or +) and you move the center of gravity well past the wheels, then yes. If you look at the bases that are more of a frame with the X drive embedded in the frame, then no, about the same as a tank.

Any frame will flip moving the CG out past the frame perimeter far enough.

Normally you would pick X or + drives depending on what you want the motion of the base to be. If Strafing across the field appeals to you, and it’s not a heavy pushing game, then X is your choice.

In @Doge’s case, heavy load in the back and then moving the CG even farther would have a tank drive lifting up the front.

wait… but the x drive has wheels pointing at an angle, which should mean speed loss, but how is it sqrt 2 times faster

Watch the Famous Cody Smith explanation about Omni wheel drives

of course i know that omni wheels have small wheels and how they work, but when the wheels are at a angle, isnt some energy lost by spining the other wheel?

Sorry, I didn’t mention this before, but that is for a square x-drive. Basically, you could think about a square x-drive. if it moved forward it would be moved at the speed of a tank drive. If it moved diagonally it is moving sqrt 2 times faster because that is the diagonal of a square.
This image shows the basic idea, assuming the x and y-axis represent forward and horizontal movement. You can check this article out for a great explanation,


Yes, you get more speed (1.4 time as much) but less transferred power.

Cody shows the math around the force vectors, it’s worth watching.

I know right that was my point!
The angled wheels are wasting alot of energy to spin the small wheels on the wheel on the opposite side! How is it supposed to gain speed?

See also the below video, and this old thread about it.

Note that the speed of the robot appears faster in the x-drive configuration.


There was recently a very interesting thread on Chief Delphi where they discussed pros and cons of the Mecanum vs X-Drive (which they call Poor Man’s Mecanum or PMM).

This post by GeeTwo describes an asymmetric X-Drive:

A wrinkle on PMM I experimented with a couple of years ago is one I called Pakuni Drive†, named after the simian aliens from Land of the Lost and their attribute of walking forwards like humans, but running sideways like my little brother Vernon when he was 18 months old. The idea is that I toed in the wheels ~22.5° rather than 45°. (It turns out that the acute angle on a 5-12-13 right triangle is closer to 22.62°, so that’s what I really did.) Anyway, this gives a forward acceleration which is 2.4x better in the forward direction than the lateral (strafe) direction, but a free speed which is 2.4x better in the lateral. My intention was to start the robot accelerating in the “forward” direction, then rotate the robot 90 degrees to “shift” to a speed 2.4x as fast for longer (cross-field) runs. My attempts with an arduino and no gyro or other feedback nor radio input were unsuccessful, so I’m putting the concept out there in case anyone wants to try this with better control systems.

† My earlier name for this before inspiration hit was roto-shifter, as will be explained in later sentences.


The speed is sqrt(2) times faster, however, some torque is lost due to the increase in speed making the torque 1/sqrt(2).

Back in 2008 we built a version called Twitch that moved the wheels from one “tank” orientation to another. It was pretty cool, but never really made it past the VEX prototype page.