Kiwi Drive Help

My team is just starting to use Omni wheels and are having some problems. We have a kiwi drive train setup correctly but when we get together the electronics we are a bit stumped. We are using an Omni mixer and a cheap and dirty rc controller. We have everything good and when I go to drive, it seems to think forward is in between two wheels and not at a vertices. If someone could help me figure out the correct channels and ports on the Omni mixer and the receiver I would greatly appreciate it!

I might be able to help. Can you send some pictures

If you wanna take the easy a different way out, you could pull an 857. In 2002 we made a kiwi drive and instead of programming the controls with all the math and stuff, we fused 3 joysticks together. each joystick controlled one wheel.
image
(pic: Team 857, Kiwi control solution)

10 Likes

This doesn’t look like an easy solution :stuck_out_tongue:

OP: Can you better explain what you’re seeing and what you expect to see? A diagram may help.

1 Like

This is absolutely brilliant. I imagine it wasn’t perfectly proportional, but close enough to work.

The joysticks each control one wheel. When the welded, “Frame,” (which is representative of the robot) is pushed forward, the bottom joystick moves perpendicular to the tracking axis of the joystick, so that wheel doesn’t spin at all (cos(90)=0). The top two joysticks move on an angle, but only the single axis of the joystick is controlling the wheel (cos (60)=cos(-60))=0.5=> 50% power to each front wheel, just in opposite directions) which propels the robot forward. If you rotated this frame about the center point each wheel would be commanded to rotate the same direction at roughly the same rate, causing the robot to rotate as well.

Essentially, this setup does the vector addition and math for you because it is a direct representation of the real layout of the wheels.

2 Likes

If I understand you correctly, if you just wire all the motors in reverse of what they currently are (that is, swap the wires between the motor controllers and the motors), forward will be towards one of the wheels rather than away from it. This will also change the rotation direction - that is, rotate left will become rotate right.

If you DON’T want to change rotation direction, you can just try swapping the wiring to the two motors currently at the front with each other. (Don’t reverse the wires to each motor; swap the left front with the right front, most simply at the PWM wires between the mixer and the motor controllers.)

You could probably look at Team 1114 2015 robot. they did a kiwi drive and you might find your answer on their website or something

We aren’t using a RoboRIO, if we were, it would be no problem but we are using RC

Yeah, your problem likely lies in this mysterious “omni mixer”, do you have more details on it? Link? User Manual?

I found this manual for one I don’t know what one they are using
http://robotlogic.com/Mecanum_Mixer_Users_Guide.pdf

The mecanum mixer is for four-wheel robots; the omni mixer is for three-wheel kiwis. I’m guessing they’re using the mixer AndyMark sold until recently, but I don’t see it on their website right now. I have the mecanum version. Assuming this one works the same, it has 3 PWM inputs corresponding to forward, spin, and strafe axes, and outputs 3 PWM outputs, one corresponding to each wheel.

Google’s cached version of AndyMark’s web page:

This looks to be the documentation, but I can’t open it:

http://robotlogic.com/OMX3Flyer.pdf

If that’s the correct one, according to it’s own documentation forward IS between two wheels. Notice: Front Left Motor, Fight Right Motor, and Rear Motor. Indicating there is only one motor in the rear

Next, give the robot a forward command and the two motors on the front of the robot should turn on while the rear motor stays off.

Makes this fairly clear.

If I’m picturing the kinematics correctly, if they want left rear , right rear, and front motors, they can wire pwm cables to flip the robot front to back but leave rotation and translation working as before:

  • Rear output-> Front controller
  • Left Front output -> Left Rear controller
  • Right front output -> Right Rear controller