Omni Drive Controls

To prepare for next year my team wants to do an Omni Drive next year if it is viable. If we do I am curious on how other people have done controls for their Omni Drive and how you would recommend to do mine.

What do you mean by an Omni drive? How many wheels? 4? 5?

There’s the H drive, the Kiwi Drive, and the X drive. H drives have 5 wheels, Kiwi has three, and X has four angled wheels acting as mecanums.


Back near the beginning of this season I built a little holonomic chassis. I was using the left stick for X/Y translation controls and the right stick’s horizontal axis for rotation control. It was fairly intuitive.

Less intuitive is the math that goes into making sure the joysticks don’t step on each others’ toes, as there are three axes controlling each motor, so it’s quite easy to get values over 100% just by summing them. To fix that problem, I experimented with two control schemes, one basic and another slightly more advanced one.


I am taking about an X-drive.

I would agree with @John_TYler 's approach. You don’t really want rotation about the vertical axis on the same joystick as translation in a horizontal plane. The problem with that is that it becomes harder to make sure you maintain perfect alignment while translating in different directions. It’s not that it won’t work, though.

The algorithm you use will heavily depend on what kind of holonomic drive you want. As you’ve said an X-drive, that sends you in certain directions. I highly recommend calling axes of the wheels the diagonals, forward-backward and left-right being at 45 degrees to the wheel axes. This way your default forward will be one of your fastest directions.

@John_TYler 's basic scheme is a great place to start. It’s pretty straightforward. Depending on how advanced you get, you could just adjust the control sensitivity a little all the way up to keeping “forward” the same direction in the room’s fixed frame of reference rather than associated with a given end of the robot in its moving frame of reference. My students have found it very helpful to be able to switch front and back on non-holonomic drives, and that can be even more so with holonomic drives, just plenty more complicated to program.