Update Follower.java
Made the follower optionally take in a second parameter for the localizer
This commit is contained in:
@ -154,6 +154,16 @@ public class Follower {
|
|||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This creates a new Follower given a HardwareMap and a localizer.
|
||||||
|
* @param hardwareMap HardwareMap required
|
||||||
|
* @param localizer the localizer you wish to use
|
||||||
|
*/
|
||||||
|
public Follower(HardwareMap hardwareMap, Localizer localizer) {
|
||||||
|
this.hardwareMap = hardwareMap;
|
||||||
|
initialize(localizer);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This initializes the follower.
|
* This initializes the follower.
|
||||||
* In this, the DriveVectorScaler and PoseUpdater is instantiated, the drive motors are
|
* In this, the DriveVectorScaler and PoseUpdater is instantiated, the drive motors are
|
||||||
@ -190,6 +200,49 @@ public class Follower {
|
|||||||
breakFollowing();
|
breakFollowing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This initializes the follower.
|
||||||
|
* In this, the DriveVectorScaler and PoseUpdater is instantiated, the drive motors are
|
||||||
|
* initialized and their behavior is set, and the variables involved in approximating first and
|
||||||
|
* second derivatives for teleop are set.
|
||||||
|
* @param localizer the localizer you wish to use
|
||||||
|
*/
|
||||||
|
|
||||||
|
public void initialize(Localizer localizer) {
|
||||||
|
driveVectorScaler = new DriveVectorScaler(FollowerConstants.frontLeftVector);
|
||||||
|
poseUpdater = new PoseUpdater(hardwareMap, localizer);
|
||||||
|
|
||||||
|
// rightFront = hardwareMap.get(DcMotorEx.class, "motor_rf");
|
||||||
|
// rightRear = hardwareMap.get(DcMotorEx.class, "motor_rb");
|
||||||
|
// leftFront = hardwareMap.get(DcMotorEx.class, "motor_lf");
|
||||||
|
// leftRear = hardwareMap.get(DcMotorEx.class, "motor_lb");
|
||||||
|
|
||||||
|
leftFront = hardwareMap.get(DcMotorEx.class, leftFrontMotorName);
|
||||||
|
leftRear = hardwareMap.get(DcMotorEx.class, leftRearMotorName);
|
||||||
|
rightRear = hardwareMap.get(DcMotorEx.class, rightRearMotorName);
|
||||||
|
rightFront = hardwareMap.get(DcMotorEx.class, rightFrontMotorName);
|
||||||
|
|
||||||
|
// TODO: Make sure that this is the direction your motors need to be reversed in.
|
||||||
|
leftFront.setDirection(DcMotorSimple.Direction.REVERSE);
|
||||||
|
leftRear.setDirection(DcMotorSimple.Direction.REVERSE);
|
||||||
|
|
||||||
|
motors = Arrays.asList(leftFront, leftRear, rightFront, rightRear);
|
||||||
|
|
||||||
|
for (DcMotorEx motor : motors) {
|
||||||
|
MotorConfigurationType motorConfigurationType = motor.getMotorType().clone();
|
||||||
|
motorConfigurationType.setAchieveableMaxRPMFraction(1.0);
|
||||||
|
motor.setMotorType(motorConfigurationType);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (DcMotorEx motor : motors) {
|
||||||
|
motor.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT);
|
||||||
|
}
|
||||||
|
|
||||||
|
dashboardPoseTracker = new DashboardPoseTracker(poseUpdater);
|
||||||
|
|
||||||
|
breakFollowing();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This sets the maximum power the motors are allowed to use.
|
* This sets the maximum power the motors are allowed to use.
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user