well if you used 4 separate Jaguar objects the only difference is having to make the driving methods yourself, or making an alternative setup for driving the Jaguars, with RobotDrive the methods are already there.
I make the 4 Jaguar objects and then use those for the robot Drive as shown.
Jaguar leftFront = new Jaguar(3);
Jaguar leftBack = new Jaguar(4);
Jaguar rightFront = new Jaguar(1);
Jaguar rightBack = new Jaguar(2);
RobotDrive robotDrive = new RobotDrive(leftFront, leftBack, rightFront, rightBack);
This way if I needed to I could set Jaguars individually and get the individual speeds for the dashboard and stuff as well as use the RobotDrive for handling mass changes and regular driving.
Code for a DriveTrain I wrote for testing:
package edu.wpi.first.wpilibj.test;
import edu.wpi.first.wpilibj.Jaguar;
import edu.wpi.first.wpilibj.RobotDrive;
/**
*
* @author Gus Michel
*/
public class DriveTrain {
private int LEFT_FRONT_JAG_PORT = 1;
private int LEFT_BACK_JAG_PORT = 2;
private int RIGHT_FRONT_JAG_PORT = 3;
private int RIGHT_BACK_JAG_PORT = 4;
private static DriveTrain instance = null;
private Jaguar leftFront;
private Jaguar leftBack;
private Jaguar rightFront;
private Jaguar rightBack;
private RobotDrive robotDrive;
private DriveTrain() {
leftFront = new Jaguar(LEFT_FRONT_JAG_PORT);
leftBack = new Jaguar(LEFT_BACK_JAG_PORT);
rightFront = new Jaguar(RIGHT_FRONT_JAG_PORT);
rightBack = new Jaguar(RIGHT_BACK_JAG_PORT);
robotDrive = new RobotDrive(leftFront, leftBack, rightFront, rightBack);
}
public static DriveTrain getInstance() {
if(instance == null) {
instance = new DriveTrain();
}
return instance;
}
public void drive(double throttle, double turn) {
robotDrive.drive(throttle, turn);
}
public void arcadeDrive(double throttle, double turn) {
robotDrive.arcadeDrive(throttle, turn);
}
public void tankDrive(double left, double right) {
robotDrive.tankDrive(left, right);
}
public double getLeftFrontSpeed() {
return leftFront.getSpeed();
}
public double getLeftBackSpeed() {
return leftBack.getSpeed();
}
public double getRightFrontSpeed() {
return rightFront.getSpeed();
}
public double getRightBackSpeed() {
return rightBack.getSpeed();
}
public void stop() {
robotDrive.drive(0,0);
}
}