WPILibJ currently supports two mecanum control methods. They are methods of
RobotDrive (thanks to 2168 for the API mirror).
If you have a gyro on your robot, you can try field-centric (cartesian) control. This means that, regardless of orientation, your robot will move in the direction that your joystick points. For field-centric control, you can call the mecanumDrive_Cartesian method of RobotDrive:
Code:
RobotDrive drive;
Joystick joystick;
Gyro gyro;
...
//assign drive, joystick, and gyro to their respective ports
...
drive.mecanumDrive_Cartesian(joystick.getX(), joystick.getY(), joystick.getTwist(), gyro.getAngle());
Alternatively, if your robot has no gyro, you can use robot-centric (polar) control. This means that your robot will move in the direction that your joystick points, relative to itself. For robot-centric control, call the mecanumDrive_Polar method of RobotDrive:
Code:
drive.mecanumDrive_Polar(joystick.getMagnitude(), joystick.getDirectionDegrees(), joystick.getTwist());
I would recommend you look more at the above link to see what you can do for mecanum control. Note that both RobotDrive methods here rely upon having a joystick with a z-axis, where the z-axis controls the rotation/turning of the robot (and is used by the getTwist() method).