85 lines
3.4 KiB
Batchfile
85 lines
3.4 KiB
Batchfile
@echo off
|
|
REM Generate MecanumDrive.java hardware implementation
|
|
setlocal
|
|
|
|
set "PROJECT_DIR=%~1"
|
|
|
|
(
|
|
echo package robot.hardware;
|
|
echo.
|
|
echo import robot.subsystems.Drive;
|
|
echo.
|
|
echo // Uncomment when deploying to robot:
|
|
echo // import com.qualcomm.robotcore.hardware.DcMotor;
|
|
echo // import com.qualcomm.robotcore.hardware.HardwareMap;
|
|
echo // import com.qualcomm.robotcore.hardware.IMU;
|
|
echo // import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit;
|
|
echo.
|
|
echo /**
|
|
echo * Mecanum drive hardware implementation.
|
|
echo * Implements Drive.Hardware interface.
|
|
echo *
|
|
echo * DEPLOYMENT NOTE:
|
|
echo * Uncomment FTC imports and implementation when ready to deploy.
|
|
echo * Keep commented during development/testing on PC.
|
|
echo */
|
|
echo public class MecanumDrive implements Drive.Hardware {
|
|
echo.
|
|
echo // Uncomment when deploying:
|
|
echo // private final DcMotor frontLeft;
|
|
echo // private final DcMotor frontRight;
|
|
echo // private final DcMotor backLeft;
|
|
echo // private final DcMotor backRight;
|
|
echo // private final IMU imu;
|
|
echo.
|
|
echo public MecanumDrive^(/* HardwareMap hardwareMap */^) {
|
|
echo // Uncomment when deploying:
|
|
echo // frontLeft = hardwareMap.get^(DcMotor.class, "frontLeft"^);
|
|
echo // frontRight = hardwareMap.get^(DcMotor.class, "frontRight"^);
|
|
echo // backLeft = hardwareMap.get^(DcMotor.class, "backLeft"^);
|
|
echo // backRight = hardwareMap.get^(DcMotor.class, "backRight"^);
|
|
echo // imu = hardwareMap.get^(IMU.class, "imu"^);
|
|
echo //
|
|
echo // // Configure motors
|
|
echo // frontLeft.setZeroPowerBehavior^(DcMotor.ZeroPowerBehavior.BRAKE^);
|
|
echo // frontRight.setZeroPowerBehavior^(DcMotor.ZeroPowerBehavior.BRAKE^);
|
|
echo // backLeft.setZeroPowerBehavior^(DcMotor.ZeroPowerBehavior.BRAKE^);
|
|
echo // backRight.setZeroPowerBehavior^(DcMotor.ZeroPowerBehavior.BRAKE^);
|
|
echo }
|
|
echo.
|
|
echo @Override
|
|
echo public double getHeading^(^) {
|
|
echo // Stub for testing - returns 0
|
|
echo return 0.0;
|
|
echo.
|
|
echo // Uncomment when deploying:
|
|
echo // return imu.getRobotYawPitchRollAngles^(^).getYaw^(AngleUnit.RADIANS^);
|
|
echo }
|
|
echo.
|
|
echo @Override
|
|
echo public void setPowers^(double forward, double strafe, double rotate^) {
|
|
echo // Stub for testing - does nothing
|
|
echo.
|
|
echo // Uncomment when deploying:
|
|
echo // // Mecanum drive kinematics
|
|
echo // double frontLeftPower = forward + strafe + rotate;
|
|
echo // double frontRightPower = forward - strafe - rotate;
|
|
echo // double backLeftPower = forward - strafe + rotate;
|
|
echo // double backRightPower = forward + strafe - rotate;
|
|
echo //
|
|
echo // // Normalize powers
|
|
echo // double maxPower = Math.max^(1.0, Math.max^(
|
|
echo // Math.max^(Math.abs^(frontLeftPower^), Math.abs^(frontRightPower^)^),
|
|
echo // Math.max^(Math.abs^(backLeftPower^), Math.abs^(backRightPower^)^)
|
|
echo // ^)^);
|
|
echo //
|
|
echo // frontLeft.setPower^(frontLeftPower / maxPower^);
|
|
echo // frontRight.setPower^(frontRightPower / maxPower^);
|
|
echo // backLeft.setPower^(backLeftPower / maxPower^);
|
|
echo // backRight.setPower^(backRightPower / maxPower^);
|
|
echo }
|
|
echo }
|
|
) > "%PROJECT_DIR%\src\main\java\robot\hardware\MecanumDrive.java"
|
|
|
|
endlocal
|
|
exit /b 0 |