L090MecanumOpMode

What each lesson’s patch does to this file, in the order the lessons come, from applying solutions/ on solutions-auto-schedules.1. A line marked + is new, and a line marked - is gone; each number is the line’s place in the file after the lesson.

L090

--- mytry/L090MecanumOpMode.java  (before L090)
+++ mytry/L090MecanumOpMode.java  (after L090)
@@ lines 86 to 123 @@
   86         // When on L090S030, see
   87         // https://msb-stitt.github.io/ftc31459-26-27-biobuzz/guide/tasks/l090.html#l090s030
   88         // for what to do here.
+  89         double strafe = deadband(-leftStickX, band);
+  90         strafe = signedSquared(strafe);
+  91         Tracker.publish("arcade/strafe", strafe);
   92
   93         // When on L090S040, see
   94         // https://msb-stitt.github.io/ftc31459-26-27-biobuzz/guide/tasks/l090.html#l090s040
   95         // for what to do here.
+  96         double frontLeftPower = forward - strafe - turn;
+  97         double frontRightPower = forward + strafe + turn;
+  98         double backLeftPower = forward + strafe - turn;
+  99         double backRightPower = forward - strafe + turn;
+ 100         double frontLeftSize = Math.abs(frontLeftPower);
+ 101         double frontRightSize = Math.abs(frontRightPower);
+ 102         double backLeftSize = Math.abs(backLeftPower);
+ 103         double backRightSize = Math.abs(backRightPower);
+ 104         double biggest = Math.max(frontLeftSize, frontRightSize);
+ 105         biggest = Math.max(biggest, backLeftSize);
+ 106         biggest = Math.max(biggest, backRightSize);
+ 107         biggest = Math.max(1.0, biggest);
+ 108         frontLeftPower = frontLeftPower / biggest;
+ 109         frontRightPower = frontRightPower / biggest;
+ 110         backLeftPower = backLeftPower / biggest;
+ 111         backRightPower = backRightPower / biggest;
+ 112         Tracker.publish("power/frontLeft", frontLeftPower);
+ 113         Tracker.publish("power/frontRight", frontRightPower);
+ 114         Tracker.publish("power/backLeft", backLeftPower);
+ 115         Tracker.publish("power/backRight", backRightPower);
+ 116
+ 117         hardware.frontLeft.setPower(frontLeftPower);
+ 118         hardware.frontRight.setPower(frontRightPower);
+ 119         hardware.backLeft.setPower(backLeftPower);
+ 120         hardware.backRight.setPower(backRightPower);
  121
  122         boolean buttonA = gamepad1.a;
  123         Tracker.publish("button/a", buttonA);