Log in

View Full Version : Using Jaguar() instead of RobotDrive()


neal
17-01-2012, 21:53
I was wondering if there's any difference using just RobotDrive(1,2,3,4) (what we currently do) and making Jaguar(1) for motor then use that instead.

This (https://github.com/Neal/Team1777/blob/master/src/vikingrobotics/Drive.java)is how our code is right now.

Your feedback's are appreciated. Let me know if there's anything better I could do (in the whole project).

cgmv123
17-01-2012, 22:34
Jaguar is used to control individual Jaguars. Robot Drive uses the Jaguar class to make a basic drive system to get you started.

gixxy
17-01-2012, 22:58
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);
}
}