|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
I have tried searching CD and WPILib for a while now, and tried everything. How do you do mecanum wheel programming?
|
|
#2
|
|||
|
|||
|
Re: Programming Mecanum Wheels
Hi! I've dug up a few mechanum links from wpi located here: http://wpilib.screenstepslive.com/s/...botdrive-class and here: http://wpilib.screenstepslive.com/s/...-mecanum-drive.
I don't know if they particularly relate to your team's robot, but they will hopefully be useful! My team has done mechanum drivetrain for the two years I have been on the team, so let me know if you have any questions or need more explanation! ![]() |
|
#3
|
||||
|
||||
|
Re: Programming Mecanum Wheels
Quote:
Code:
/**
* Drive method for Mecanum wheeled robots.
*
* A method for driving with Mecanum wheeled robots. There are 4 wheels
* on the robot, arranged so that the front and back wheels are toed in 45 degrees.
* When looking at the wheels from the top, the roller axles should form an X across the robot.
*
* This is designed to be directly driven by joystick axes.
*
* @param x The speed that the robot should drive in the X direction. [-1.0..1.0]
* @param y The speed that the robot should drive in the Y direction.
* This input is inverted to match the forward == -1.0 that joysticks produce. [-1.0..1.0]
* @param rotation The rate of rotation for the robot that is completely independent of
* the translation. [-1.0..1.0]
* @param gyroAngle The current angle reading from the gyro. Use this to implement field-oriented controls.
*/
public void mecanumDrive_Cartesian(double x, double y, double rotation, double gyroAngle) {
if(!kMecanumCartesian_Reported) {
UsageReporting.report(tResourceType.kResourceType_RobotDrive, getNumMotors(), tInstances.kRobotDrive_MecanumCartesian);
kMecanumCartesian_Reported = true;
}
|
|
#4
|
|||
|
|||
|
I have no idea why this code is not working, any ideas, I have been stressing about it for the past two hours.
Code:
double magnitude = driveStick.getMagnitude();
double direction = driveStick.getDirectionDegrees();
double rotation = otherStick.getTwist();
RobotDrive driveTrain = new RobotDrive(3,4,5,6);
while (isEnabled() && isOperatorControl()) {
driveTrain.mecanumDrive_Polar(magnitude, direction, rotation);
Timer.delay(0.005);
}
Any ideas? |
|
#5
|
|||
|
|||
|
Re: Programming Mecanum Wheels
You probably want to fetch the current values from your joystick *inside* the while(isEnabled && isOperatorControl()) loop. Otherwise you take the reading once and keep sending them over and over.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|