Three wheel Omni drive

I am working on a three wheel Omni drive. It’s forward and backward motion is pretty straight but left and right is not at all straight. I have tried changing rpm of each motor but it isn’t helping. I want to know where I am going wrong. Also is there any way to avoid skidding of Omni wheel ?IMG_20200328_121424

Can you explain what you mean by not going straight when turning? I’d just assume that if you want to turn in place, you just have all three motors spin in the same direction. If you want to drive forward while turning, I’d assume that to start out, you could just have the same code to drive forward, but you use the third wheel to turn in a direction. Ultimately you could probably make a more efficient equation, but for turning, that should work.

If you want to reduce skidding, you could implement a type of slew control, where you don’t feed all the current instantaneously to the motor, but gradually ramp up the power.


I am referring to these directions. I was talking about left , right mentioned in the diagram.

I will try it. Thank you :slightly_smiling_face:.


I’m guessing it is a combination of uneven geometry and uneven motor speeds. Do you have encoders on the motors so you can ensure speed control?

There is an error of 0.5 -1 cm in the dimensions.
Encoders aren’t there but I used tachometer to get the base speed of motor.
Motor 1 -310.7 rpm
Motor 2- 399.4 rpm
Motor 3 - 390 rpm
I have taken care of this difference in the code .
Motor 2=Motor 2 * 0.776942356
Motor 3=Motor 3 * 0.794871795
Is this a correct way to deal with it ?

The thing is, not all motors are even or linear so the only way to deal with it is real-time feedback from from an encoder or similar to accurately control each motors speed.


I like this design from a programming standpoint. I 3-d printed some 3x equilateral triangles for vex IQ and built one. Never got to programming it, but I HAD considered a gyro to track rotation, then using calculations so that I could reset “front” every 120°. Possible even having it spin in place to whichever of the three wheels was closest and resetting that to front and the press of a button.

Interesting challenge no matter how you tackle it. Post back if you get it working. Interested in your solution.


This isn’t my idea, I took this from a wonderful book called “RioBotz Combat Robot Tutorial” by Marco Antonio Meggiolaro (the team captain of Minotaur, the battlebot), but it could help out.

1 Like

The code here is in RobotC and for the IQ version of the base. It may be helpful.

Of course posting your code may make this go faster


It’s interesting to use gyro for real time feedback as suggested by @calvc01 .
I have never worked on gyro . How should I start with it ?

I got to know something new.

1 Like


20 Character limit


If anyone remembers this type of drive coined the term Kiwi drive from a innovate video from NBN

1 Like

Ohh so sad, way more history than VEX. Nothing but Net was 2014. Kiwi drive was in the lexicon in 2003, it’s a pseudo- rename of this drive (

Chief Delphi reference from 2003 ( where they say they were watching a video from two years before, so you are now back to 2001.

And in a post in that thread is this comment “Kiwi Drive was their robot name…” so not a real drive name even though there is a Wikipedia post.

This is the problem when there is settled names for things and a team goes “Hey this is my Chitty, Bang Mango 100 bar linkage, reversed Kraw” robot. Umm, no, that’s a square bot, with a 4 bar linkage and a claw that you painted orange. The use of binary numbers, mapping colors to fruit and leetspeek of claw doesn’t make it a thing. :slight_smile:

On the other hand @Mocha_9185A been here for awhile, maybe they are also poking fun at the rest of us?

But way off topic here @J_tech you got a ton of resources thrown at you, hows it going, did you get it to drive for you?


I haven’t tried anything yet. I am not having access to any of the material I was working on because of lockdown. Btw, I got some good ideas here and eager to implement them.

1 Like

I’m thinking that in order to strafe left or right you’ll need to have one wheel perpendicular to the strafing direction , and have the other 2 wheels do the pushing

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.