Omini Wheels!

Hey Guys, it’s our first year that we are going to use omini wheels, our omini Wheels is in 45º Degrees. Someone can help us with Omini Wheels Programming?:confused: :confused:

If your omni (it’s short for omnidirectional) wheels are mounted at 45 degree angles in the corners of your robot, the programming is exactly like having mecanum wheels. You can use the provided mecanum drive functions.

what do you need help with? we’ve been doing it for years and believe we’ve mastered it so ask me anything! The way we do it is first convert the joystick input into a vector(direction and magnitude) and a rotation input, this is done with simple trig(the rotation is simple just the x axis scaled by some factor). so you have your X axis and Y axis, with A^2+B^2=C^2 you can calculate the magnitude and with the sin/cos/tan you can calculate the direction(angle). when you know this you add or subtract your gyro angle and other compensation. this will give you a desired output vector. From that you just go backwards. With a desired output vector you calculate the X and Y components which you then multiply by the magnitude to get the raw values to send to your X axis wheels and Y axis wheels. The rotation is a rather simple, just add/subtract a constant value to every wheel then normalize the outputs and send it to the speed controllers. It’s a very simple system that only requires basic trig.

You can do it in fancier ways but this way has worked brilliantly for us with no issues and is very simple to implement.

if you want to take it further you can also calibrate each wheel so your robot doesn’t rotate as it moves. if you map the pwm value to wheel speed of each wheel with a known load, you can assure your robot will always move in straight lines without rotating or drifting. You can also use PID feedback but from what we’ve discovered in previous years is that while yes it works, it takes away from the responsiveness so it’s better to just let the driver deal with any potential unwanted rotation.

Hope this helps if you need more information feel free to ask.

This drive configuration is known as Killough. You can search this term for lots more tips, I’m sure.

To be fair, Killough Drive is specifically the 3 wheeled Omni Directional Drive Base (also called Kiwi Drive) If they are doing a 4 wheeled base looking up Holonomic Drive or Omni Drive would probably yield better results.

That being said, no reason to not look up all of them to get a better understanding on what you can do with these drive bases :slight_smile:

I think we can allow the term to be more general. Stephen Killough’s original 1994 design was something really different from the designs seen in modern FRC:

Picture a round platform with three motors underneath, each governing the motion of two wheels that look like miniature balloon tires. The wheels in each pair are mounted in a cage at right angles to each other; the motor can rotate the cage so that one wheel or the other is touching the ground at any one time. By configuring the three pairs of wheels to allow the same type of motion found in three pivoting casters, and by changing the relative speeds of the motors, Killough can make his robotic platform rotate, follow a straight or curved path, and even rotate while moving forward.

I’m simply referring to the number of wheels. Killough search results in a lot of 3 wheel drive bases (as that’s what he made). Whereas using the other words I mentioned would lead to other results.

No reason to not look up as much as possible right?