View Single Post
  #2   Spotlight this post!  
Unread 25-05-2014, 10:58
NWChen's Avatar
NWChen NWChen is offline
Alum
no team
 
Join Date: Oct 2012
Rookie Year: 2012
Location: New York City
Posts: 205
NWChen is a splendid one to beholdNWChen is a splendid one to beholdNWChen is a splendid one to beholdNWChen is a splendid one to beholdNWChen is a splendid one to beholdNWChen is a splendid one to beholdNWChen is a splendid one to behold
Re: Mecanum drive code

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).
__________________
2012 - 2015 • Team 2601


Last edited by NWChen : 25-05-2014 at 11:01.
Reply With Quote