We had a bit of an argument over what would be an efficient way to control a mecanum bot. I have realized many teams attempt compete with mecanum bots, but don’t always take full advantage of their maneuverability.
Let’s be clear: Please do not turn this into another mecanum vs. 6wd discussion, this is about controlling mecanum bots easily and efficiently.
I suggested a 2 joystick approach. This could either be 2 Logitech Attack joysticks, or a PS2-like gamepad.
The left joystick would move forward, backwards, and strafe, while the right joystick would control rotation.
I feel like this would give the maximum amount of control. It is somewhat similar to a first-person-shooter video game. However, a concern has been brought up about 2 joysticks being too complicated and unnecessary.
Another suggestion was to use only 1 joystick and have a “mecanum mode” switch, where the robot would drive like a ‘regular’ bot until a button is pressed. Enabling the button would then allow it to temporarily strafe, until the button is released.
This eliminates the need for 2 joysticks, but limits the movement of the robot to either strafing or rotating; it can never do both at once.
I feel this defeats the purpose of having a mecanum drive, as it is being looked at as a ‘regular’ drive with optional strafing ability.
Then there is also the option of getting a 3-axis joystick, but all of us seem to dislike that idea.
What do you guys think? Or do you have any other suggestions?
Is “orbiting” like pivoting around a point? Similar to this video at 0:29?
The person who was suggesting the second control layout says we shouldn’t ever have a need to rotate & strafe simultaneously.
However, I believe having 2 joysticks is worth the slight increase in complexity, as it allows for greater maneuverability (which is why we chose mecanum in the first place!)
I haven’t found a rule against it yet so I am planning to use the first joystick to control translation, and the take apart a second joystick to create a dial that controls facing.
How are you going to process the output from this dial? e.g. Are you going to extract the angle and use that to create a setpoint for a closed-loop control with gyro angle as the process variable… or something else?
That is the basic plan. I think some of that is already supported in LabView Mecanum VI. A knob perhaps with stops for face goal, face feeding station seems to be the appropriate level of abstraction for this game.
Certainly a self centering joystick can’t control facing and the driver doesn’t need to worry about about turning speed he needs to worry about facing so giving him a control of rotation speed simply is making him do the control loop stuff in his head.
The functionality you seek is not part of the library support. The library support for holonomic is limited to using the gyro for field-centric control, not for angular-position seeking and holding.
In labview the axes from the controller will come out as follows
Axis 1: Left thumbstick X
Axis 2: Left thumbstick Y
Axis 4: Right thumbstick X
Axis 5: Right thumbstick Y
you will also get an extra 12 buttons along with your 4 axises
We used Axis 1 and 2 to go forward, backward, left and right
and axis 4 to rotate.