Windows support included
This commit is contained in:
85
windows/generate-mecanum-drive.bat
Normal file
85
windows/generate-mecanum-drive.bat
Normal file
@@ -0,0 +1,85 @@
|
||||
@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
|
||||
Reference in New Issue
Block a user