Fine tuning of Teleop class (untested)
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
package org.firstinspires.ftc.teamcode.cometbots;
|
package org.firstinspires.ftc.teamcode;
|
||||||
|
|
||||||
import static org.firstinspires.ftc.teamcode.util.action.FieldConstants.blueBucketStartPose;
|
import static org.firstinspires.ftc.teamcode.util.action.FieldConstants.blueBucketStartPose;
|
||||||
|
|
||||||
@ -9,9 +9,9 @@ import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
|
|||||||
import org.firstinspires.ftc.teamcode.pedroPathing.follower.Follower;
|
import org.firstinspires.ftc.teamcode.pedroPathing.follower.Follower;
|
||||||
import org.firstinspires.ftc.teamcode.runmodes.Teleop;
|
import org.firstinspires.ftc.teamcode.runmodes.Teleop;
|
||||||
|
|
||||||
@TeleOp(name="Drive", group="A")
|
@TeleOp(name="ComeBot Drive", group="Debug")
|
||||||
@Disabled
|
@Disabled
|
||||||
public class CometDrive extends OpMode {
|
public class CometBotDrive extends OpMode {
|
||||||
|
|
||||||
private Teleop teleop;
|
private Teleop teleop;
|
||||||
|
|
||||||
@ -20,12 +20,7 @@ public class CometDrive extends OpMode {
|
|||||||
teleop = new Teleop(hardwareMap,
|
teleop = new Teleop(hardwareMap,
|
||||||
telemetry,
|
telemetry,
|
||||||
new Follower(hardwareMap),
|
new Follower(hardwareMap),
|
||||||
blueBucketStartPose,
|
|
||||||
gamepad1);
|
gamepad1);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void start() {
|
|
||||||
teleop.start();
|
teleop.start();
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,16 @@
|
|||||||
package org.firstinspires.ftc.teamcode.runmodes;
|
package org.firstinspires.ftc.teamcode.runmodes;
|
||||||
|
|
||||||
|
import static org.firstinspires.ftc.teamcode.PedroConstants.BACK_LEFT_MOTOR;
|
||||||
|
import static org.firstinspires.ftc.teamcode.PedroConstants.BACK_LEFT_MOTOR_DIRECTION;
|
||||||
|
import static org.firstinspires.ftc.teamcode.PedroConstants.BACK_RIGHT_MOTOR;
|
||||||
|
import static org.firstinspires.ftc.teamcode.PedroConstants.BACK_RIGHT_MOTOR_DIRECTION;
|
||||||
|
import static org.firstinspires.ftc.teamcode.PedroConstants.FRONT_LEFT_MOTOR;
|
||||||
|
import static org.firstinspires.ftc.teamcode.PedroConstants.FRONT_LEFT_MOTOR_DIRECTION;
|
||||||
|
import static org.firstinspires.ftc.teamcode.PedroConstants.FRONT_RIGHT_MOTOR;
|
||||||
|
import static org.firstinspires.ftc.teamcode.PedroConstants.FRONT_RIGHT_MOTOR_DIRECTION;
|
||||||
|
|
||||||
|
import com.qualcomm.robotcore.hardware.DcMotor;
|
||||||
|
import com.qualcomm.robotcore.hardware.DcMotorEx;
|
||||||
import com.qualcomm.robotcore.hardware.Gamepad;
|
import com.qualcomm.robotcore.hardware.Gamepad;
|
||||||
import com.qualcomm.robotcore.hardware.HardwareMap;
|
import com.qualcomm.robotcore.hardware.HardwareMap;
|
||||||
|
|
||||||
@ -12,51 +23,36 @@ import org.firstinspires.ftc.teamcode.util.action.RunAction;
|
|||||||
public class Teleop {
|
public class Teleop {
|
||||||
|
|
||||||
private ClawSubsystem claw;
|
private ClawSubsystem claw;
|
||||||
private ClawSubsystem.ClawState clawState;
|
|
||||||
|
|
||||||
private Follower follower;
|
private Follower follower;
|
||||||
private Pose startPose;
|
private DcMotorEx leftFront;
|
||||||
|
private DcMotorEx leftRear;
|
||||||
|
private DcMotorEx rightFront;
|
||||||
|
private DcMotorEx rightRear;
|
||||||
private Telemetry telemetry;
|
private Telemetry telemetry;
|
||||||
|
|
||||||
private Gamepad gamepad1;
|
private Gamepad gamepad1;
|
||||||
private Gamepad currentGamepad1;
|
private Gamepad currentGamepad1;
|
||||||
private Gamepad previousGamepad1;
|
private Gamepad previousGamepad1;
|
||||||
|
|
||||||
public RunAction stopDrive, startDrive;
|
public Teleop(HardwareMap hardwareMap, Telemetry telemetry, Follower follower, Gamepad gamepad1) {
|
||||||
|
|
||||||
public double speed = 0.5;
|
claw = new ClawSubsystem(hardwareMap, ClawSubsystem.ClawState.CLOSED);
|
||||||
|
initMotors(hardwareMap);
|
||||||
public Teleop(HardwareMap hardwareMap, Telemetry telemetry, Follower follower, Pose startPose, Gamepad gamepad1) {
|
|
||||||
claw = new ClawSubsystem(hardwareMap, clawState);
|
|
||||||
|
|
||||||
this.follower = follower;
|
this.follower = follower;
|
||||||
this.startPose = startPose;
|
|
||||||
|
|
||||||
this.telemetry = telemetry;
|
this.telemetry = telemetry;
|
||||||
this.gamepad1 = gamepad1;
|
this.gamepad1 = gamepad1;
|
||||||
|
|
||||||
this.currentGamepad1 = new Gamepad();
|
this.currentGamepad1 = new Gamepad();
|
||||||
this.previousGamepad1 = new Gamepad();
|
this.previousGamepad1 = new Gamepad();
|
||||||
|
|
||||||
stopDrive = new RunAction(this::stopDrive);
|
|
||||||
startDrive = new RunAction(this::startDrive);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start() {
|
public void start() {
|
||||||
claw.start();
|
claw.start();
|
||||||
follower.setPose(startPose);
|
|
||||||
follower.startTeleopDrive();
|
follower.startTeleopDrive();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startDrive() {
|
|
||||||
follower.startTeleopDrive();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void stopDrive() {
|
|
||||||
follower.breakFollowing();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void update() {
|
public void update() {
|
||||||
previousGamepad1.copy(currentGamepad1);
|
previousGamepad1.copy(currentGamepad1);
|
||||||
currentGamepad1.copy(gamepad1);
|
currentGamepad1.copy(gamepad1);
|
||||||
@ -64,14 +60,30 @@ public class Teleop {
|
|||||||
if (currentGamepad1.a && !previousGamepad1.a)
|
if (currentGamepad1.a && !previousGamepad1.a)
|
||||||
claw.switchState();
|
claw.switchState();
|
||||||
|
|
||||||
follower.setTeleOpMovementVectors(-gamepad1.left_stick_y * speed, -gamepad1.left_stick_x * speed, -gamepad1.right_stick_x * speed);
|
follower.setTeleOpMovementVectors(-gamepad1.left_stick_y, -gamepad1.left_stick_x, -gamepad1.right_stick_x);
|
||||||
follower.update();
|
follower.update();
|
||||||
|
|
||||||
telemetry.addData("X", follower.getPose().getX());
|
telemetry.addData("X", follower.getPose().getX());
|
||||||
telemetry.addData("Y", follower.getPose().getY());
|
telemetry.addData("Y", follower.getPose().getY());
|
||||||
telemetry.addData("Heading", Math.toDegrees(follower.getPose().getHeading()));
|
telemetry.addData("Heading", Math.toDegrees(follower.getPose().getHeading()));
|
||||||
|
telemetry.addData("Claw State", claw.getState());
|
||||||
telemetry.addData("Claw State", clawState);
|
|
||||||
telemetry.update();
|
telemetry.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initMotors(HardwareMap hardwareMap) {
|
||||||
|
rightFront = hardwareMap.get(DcMotorEx.class, FRONT_RIGHT_MOTOR);
|
||||||
|
rightRear = hardwareMap.get(DcMotorEx.class, BACK_RIGHT_MOTOR);
|
||||||
|
leftFront = hardwareMap.get(DcMotorEx.class, FRONT_LEFT_MOTOR);
|
||||||
|
leftRear = hardwareMap.get(DcMotorEx.class, BACK_LEFT_MOTOR);
|
||||||
|
|
||||||
|
rightFront.setDirection(FRONT_RIGHT_MOTOR_DIRECTION);
|
||||||
|
rightRear.setDirection(BACK_RIGHT_MOTOR_DIRECTION);
|
||||||
|
leftFront.setDirection(FRONT_LEFT_MOTOR_DIRECTION);
|
||||||
|
leftRear.setDirection(BACK_LEFT_MOTOR_DIRECTION);
|
||||||
|
|
||||||
|
leftFront.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
||||||
|
leftRear.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
||||||
|
rightRear.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
||||||
|
rightFront.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user