Generously sponsored by
Experience Engineering
Students are trained to use industry standard CAD software, machinery, and power tools to design and manufacture the robot.
First-class
developer experience
Senior developers with decades of industry experience mentor our students.
We make sure every team member is equipped with the knowledge and tools they need to succeed.
package ca.team4308.absolutelib.control;
import ca.team4308.absolutelib.math.Vector2;
import ca.team4308.absolutelib.math.DoubleUtils;
public class JoystickHelper {
public static Vector2 SlopedScaledAxialDeadzone(Vector2 stickInput, double deadzone) {
double deadzoneX = deadzone * Math.abs(stickInput.y);
double deadzoneY = deadzone * Math.abs(stickInput.x);
Vector2 result = new Vector2(0.0, 0.0);
Vector2 sign = new Vector2(Math.signum(stickInput.x), Math.signum(stickInput.y));
if (Math.abs(stickInput.x) > deadzoneX) {
result.x = sign.x * DoubleUtils.mapRangeNew(Math.abs(stickInput.x), deadzoneX, 1, 0, 1);
}
if (Math.abs(stickInput.y) > deadzoneY) {
result.y = sign.y * DoubleUtils.mapRangeNew(Math.abs(stickInput.y), deadzoneY, 1, 0, 1);
}
return result;
}
public static Vector2 ScaledRadialDeadzone(Vector2 stickInput, double deadzone) {
double inputMagnitude = stickInput.magnitude();
if (inputMagnitude < deadzone) {
return new Vector2(0.0, 0.0);
} else {
double legalRange = 1.0 - deadzone;
double normalizedMag = Math.min(1.0, (inputMagnitude - deadzone) / legalRange);
double scale = normalizedMag / inputMagnitude;
return new Vector2(stickInput.normalize().x * scale, stickInput.normalize().y * scale);
}
}
}
The controls subteam uses Java to control the robot's swerve drive and motors.
import * as React from "react"
import { cn } from "@/lib/utils"
const Table = React.forwardRef<
HTMLTableElement,
React.HTMLAttributes<HTMLTableElement>
>(({ className, ...props }, ref) => (
<div className="relative w-full overflow-auto">
<table
ref={ref}
className={cn("w-full caption-bottom text-sm", className)}
{...props}
/>
</div>
))
Table.displayName = "Table"
The information technology subteam uses React, React Native, and Next.js to develop the scouting app and website.