We are attempting using mecanum_Polar drive for our robot this year. According to the WPILib class for Java, it is declared as:
*robotDriveName*.mecanumDrive_Polar(double magnitude, double direction, double rotatation)
The the explanation form the class says that…
- “magnitude” is it’s speed
- “direction” determines strafing
- “rotation” is the spin.
However, when actually applied to the roboRIO, things go awry. What actually happens is this:
- “magnitude” is actually spin
- “rotation” is actually speed
- “direction” doesn’t transmit anything, or the roboRIO reads “0” and doesn’t send code to Talon motor controllers.
Has anyone else experienced or fixed this? Or have we just done something terribly wrong?
Could you post your code?
*What does your driver interface look like? i.e., how does the driver control each of the 3 degrees of freedom (forward, strafe,rotate)?
Put the bot up on blocks ,then:
a) issue a pure “forward” command and record the direction each of the 4 wheels is spinning
b) issue a pure “strafe right” command and record the direction each of the 4 wheels is spinning
c) issue a pure “rotate clockwise” command and record the direction each of the 4 wheels is spinning
Post your results here.
We had a similar problem the other day and the solution was that two of our motors needed to be inverted.
The procedure I described in post#3 allows you to determine which motors need to be inverted, and whether the PWM cables are going to the wrong ports/motors.