|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Mecanum drive cartesian problems
We are trying to use the mecanum drive cartesian method provided by wpilib. We are having a problem with the axis in the controllers not working properly.
We are using an xbox controller with 2 joysticks instead of a flight stick with a rotational axis. We are using the x and y axis on the left stick for the x and y variables called in the method and the x axis on the right stick for the rotation. What is supposed to happen: The left stick controls forward/backward and strafe left/right. The right stick controls rotation. The problem: For example, when I push forward on the left stick the robot turns, and when I push left on the right stick it strafes. When i push the left stick left/right the robot spins wheels but its not the right direction and doesnt move. Has anyone successfully used the wpilib mecanum drive methods, and could you give us some tips? We do not have a gyroscope set up currently and that variable is set as 0. Would that affect anything? |
|
#2
|
|||
|
|||
|
Re: Mecanum drive cartesian problems
I would check to make sure the motors are inverted correctly. Are you able to drive normally (arcade or tank)?
|
|
#3
|
||||
|
||||
|
Re: Mecanum drive cartesian problems
Sounds like your joystick axes are switched in the code. The rotation should be [-1,1], I'm not sure if positive goes clockwise since I don't have a drive base to test it with yet, but...
Cartesian is mostly used with gyro. I would recommend just trying polar for now, until you have a gyro set up. With cartesian and gyro set to 0, the robot constantly thinks it has yet to rotate at all. So as a result, things might get wonky. |
|
#4
|
|||
|
|||
|
Re: Mecanum drive cartesian problems
AFAIK, you should be able to use the cartesian methods without a gyro just fine. Internally the movement vector is just rotated by the gyro angle. Without a gyro, strafing will always be relative to the robot, so if you turn while strafing you will move in an arc.
|
|
#5
|
||||
|
||||
|
Re: Mecanum drive cartesian problems
Mecanum cartesian can be used without gyro. You don't need to use polar. Put the bot up on blocks. Issue a pure forward command and note the direction each of the 4 wheels is spinning. Do the same for pure strafe right, and rotate clockwise. Post your results here. |
|
#6
|
|||
|
|||
|
Re: Mecanum drive cartesian problems
We have fixed our robot, sort of.
We inverted one side of our robot and that fixed most of the problem. The joysticks were opposite so we inverted those also. now our robot works perfectly, except that our front is now our back and our back is our front. Other than that it is perfect. This is just a test chassis so direction isn't a problem. |
|
#7
|
|||
|
|||
|
Re: Mecanum drive cartesian problems
Quote:
![]() |
|
#8
|
||||
|
||||
|
Re: Mecanum drive cartesian problems
Did you verify that the wheels are installed in the correct orientation? Rollers on diagonal wheels should point in the same direction, with opposite directions on each diagonal.
|
|
#9
|
||||
|
||||
|
Re: Mecanum drive cartesian problems
Quote:
X when viewed from top. |
|
#10
|
|||
|
|||
|
Re: Mecanum drive cartesian problems
If it's moving opposite to what you expect after inverting the motors on one side, then you inverted the wrong side. We needed to invert the right-side motors to get ours working properly.
|
|
#11
|
|||
|
|||
|
Re: Mecanum drive cartesian problems
Could someone post code for using mecanum wheels and a gyro? I have the mecanum wheels working great without the gyro. I am using Java.
|
|
#12
|
|||
|
|||
|
Re: Mecanum drive cartesian problems
We haven't used mecanum wheels with a gyroscope at all. I would guess you have to create a gyroscope in the code and add it to the mecanum drive function.
|
|
#13
|
||||
|
||||
|
Re: Mecanum drive cartesian problems
Quote:
|
|
#14
|
|||
|
|||
|
Re: Mecanum drive cartesian problems
I would like to set up field-oriented control.
|
|
#15
|
||||
|
||||
|
Re: Mecanum drive cartesian problems
Are you using home-brew mec code, or WPILib robotdrive.java?
If the latter, mec cartesian has an input parameter for gyro. That gives you field-oriented control. If the former, just grab the rotateVector code from WPIlib. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|