We have put together our Mecanum drive and have the default drive program for a single joystick and have the motor controllers assigned the right ID in the web config (we are using CAN Talon SRX’s) and the right ID’s in the right spots but when we try and drive the robot it doesn’t move except in Mecanum which is moving it forward and backwards. we inverted the front motors and now it moves forward and back correctly but when we try to turn it Mecanums in the opposite direction. And when we try to Mecanum the wheels opposes each other and nothing happens. We are using a Logitech attack 3 to control the robot.
We used both jags and Victor 884s for our frame (at different times). Our code had the left motors ininverted in Begin. I cannot provide said picture atm because I am away from my computer. You should try to play aound with your axises and see what happens.
Just make absolutely sure that the corners you have your motors on are the same as the corners you’re telling the program they are on in Begin. Usually it’s the two right side motors that need to be inverted.
How did you change it from Open 2 Motors to Open 4 Motors? If you used the “Replace” menu option, you might find that some of the constants’ labels are left over from the default code and don’t match what are actually connected to. You might find it easiest to delete the Open 4 Motor Drive function and all its associated inputs from Begin.vi, then replace them.
Which ones need to be inverted depends on the number of stages in your gearbox; each stage reverses the rotation direction.
The reason that only one side needs to be inverted is that the motors themselves have opposite orientations. A clockwise shaft rotation (viewed from the motor side) is forward on the left and reverse on the right for no gearbox or a spur gearbox with an even number of stages.
For some reason, it seems as the inputs in the default mecanum code are inverted for some people, including myself. I’m not sure if this occurs for everyone, but just try to play with your joystick inputs and inversions. I personally had to edit the default code to get the wheels to spin the right way. You probably don’t have to.
If by “play with your joystick inputs” you mean “wire the joystick values to the wrong inputs on the robot drive vi”, that should never be necessary… and it makes your code confusing and difficult for others to help you.
I personally had to edit the default code to get the wheels to spin the right way. You probably don’t have to.
If by “edit the default code” you mean “edit the inverse kinematic computation”, that should never be necessary…and it makes your code confusing and difficult for others to help you.
Correct me if I’m wrong, but I’ve been reading that the default mecanum code in the WPI library actually takes the incorrect inputs by default. I’m not sure if thats true for everyone, but it was only with that advice I recieved on this forum concerning possible incorrect code that we were able to get mecanum working. And this was after countless tests, wire swaps, and inversions.