Holonomic vs Mecanum Drive

Hi there, we’ve decided that this year, we were going to implement strafing into our robot. We came across two designs for our drive base; the holonomic drive (x-drive) with 4 omni-wheels, and a mecanum drive. We wanted to know if anyone has had experience with using both, and which drive-style you would recommend for strafing.


Having attempted both, i would say x-drives are definitely better than mecanum drives because they are relatively easy to build and get working properly compared to mecanum drives. Also, 4 omni wheels are a lot lighter than 4 mecanum wheels. The one thing to worry about is that an x-drive may have a hard time getting on the platforms for the parking bonus this year.

If you had to pick between the 2 I would agree with @steven1233f and say go with the x-drive. If you are going v5 then I’d recommend going for a regular holonomic (no mechanum) drive since it takes less motors.

I would point out some naming confusion that may help you in your research. Both the x-drive and the mecanum drive are holonomic drives, as is the poorly named “H-drive” (“H-drive” means something real and very, very different, but that’s what is used here). So you might look up “H-drive” on the forum as well for another option. The “kiwi drive” is another holonomic drive, but you probably don’t want that.

I’m not sure what @ReeseSteindler considers “regular holonomic,” though clearly he doesn’t consider it to be mecanum. Noting the comment on motors, he might be referring to the “H-drive,” since a typical one can be made using 3 motors, but the same is true of the “kiwi drive.” You could use fewer than 4 motors for an x-drive or a mecanum drive, but that’s a pain.

@steven1233f @callen @ReeseSteindler
Thanks for the info! Also, one more question, for x drives, I’ve always seen them built in a square shape. Are there any disadvantages to building them in a rectangle?
Square -

\ ------/

/-- \

– /

If it’s not square and you keep the wheels at the same angles, you’ll mostly see a change in rotation. This is because your wheels won’t be aligned tangent to the circle all four of them lie on. That means it won’t spin as well, but it should still spin better than a tank drive. However, if you change the angles to fix the rotation, then you’ll end up with diagonals that may not be what you think when you aim the joystick along them. Plus it’s easier to line up 45-degree angles than some arbitrary angles based on the size of the rectangle. So I would say you want to retain the angles used with the square even though you have a rectangle and you shouldn’t expect any significant problems.

I must concur that an “X” drive is superior, but there are some points of interest beyond your inquiry about the rectangular base (which you shouldn’t do, it compromises the drive system).

Two examples can be found, one where the wheels are mounted thus:

\   /
/   \

That works, but this is better

/  \
\  /

Because the latter spins better.

I highly recommend setting 393’s to the “160” gearing speed.

You can’t effectively test the bot on hard-flooring. It works, but the flooring is not even enough for the bot’s wheels to maintain contact throughout travel, so it makes you think the bot isn’t stable (as if it can’t drive in a straight line). The bot only works well on the kind of mat used by VEX in the competitions. No luck with carpet either, for the most part. This issue would likely be corrected if there were a suspension system such that all 4 wheels maintained contact with the floor. There is an alternative 3 wheel design that has less difficulty, but it may not be suitable for contests depending on your build and purpose for strafing.

There are X drive software examples online, but I assure you they are a naive version. They work, and the code is short. If your primary interest is strafing, that may do well enough.

However, our experience shows that most drivers need a “snap” of the controls. That is, a simple, naive control will allow you to draw a circle with the joystick, and basically drive in a circle by doing so. This means that the drive can move in ANY direction - at ANY angle.

That’s what’s disorienting to most drivers. They need the drive to “snap” to certain angles, specifically the major “45” degree angles. Otherwise, keeping the strafe “straight” is a problem.

Further, some drivers can more easily handle driving sideways than others, so we implemented two methods. One, the way you’d expect. You drive sideways to, well, drive sideways.

The second one works as if there is a driver in the center of the bot, but is in a chair that swivels 360 degrees. Whatever way the driver is facing is considered “forward” - so the driver can continue to “think” in terms of forward/left/right driving without having to “translate” during strafing. We used button 8’s left/right to rotate the imaginary driver 90 degrees at a time (but could have been 45 at a time).

We used that concept mixed with an automatic maneuver to effectively spin the bot around the driver. The driver thinks in terms of forward/left/right, but can spin the bot around that viewpoint so that “forward” can be driven with “Side A” of the bot facing any of the 4 major directions (and could be any of the major 8) - or, put another way, the forward direction of the driver’s view can orient any of the major “sides” (or diagonals) toward the front, as if the bot can be spun around the imaginary driver seated in the bot’s center.