Restructured linux to match Windows
This commit is contained in:
70
windows/templates/Drive.java
Normal file
70
windows/templates/Drive.java
Normal file
@@ -0,0 +1,70 @@
|
||||
package robot.subsystems;
|
||||
|
||||
import robot.Pose2d;
|
||||
|
||||
/**
|
||||
* Drive subsystem - business logic only.
|
||||
* Hardware interface defined as inner interface.
|
||||
* Tests use inline mocks - no FTC SDK needed.
|
||||
*/
|
||||
public class Drive {
|
||||
private final Hardware hardware;
|
||||
private Pose2d pose;
|
||||
|
||||
public Drive(Hardware hardware) {
|
||||
this.hardware = hardware;
|
||||
this.pose = new Pose2d();
|
||||
}
|
||||
|
||||
/**
|
||||
* Drive using field-centric controls.
|
||||
* @param forward Forward/backward speed (-1.0 to 1.0)
|
||||
* @param strafe Left/right speed (-1.0 to 1.0)
|
||||
* @param rotate Rotation speed (-1.0 to 1.0)
|
||||
*/
|
||||
public void drive(double forward, double strafe, double rotate) {
|
||||
// Your drive logic here
|
||||
double heading = hardware.getHeading();
|
||||
|
||||
// Example: field-centric conversion
|
||||
double cos = Math.cos(heading);
|
||||
double sin = Math.sin(heading);
|
||||
|
||||
double rotatedForward = forward * cos - strafe * sin;
|
||||
double rotatedStrafe = forward * sin + strafe * cos;
|
||||
|
||||
hardware.setPowers(rotatedForward, rotatedStrafe, rotate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop all drive motors.
|
||||
*/
|
||||
public void stop() {
|
||||
hardware.setPowers(0, 0, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current estimated pose.
|
||||
*/
|
||||
public Pose2d getPose() {
|
||||
return pose;
|
||||
}
|
||||
|
||||
/**
|
||||
* Hardware interface - implement this for real robot.
|
||||
*/
|
||||
public interface Hardware {
|
||||
/**
|
||||
* Get robot heading in radians.
|
||||
*/
|
||||
double getHeading();
|
||||
|
||||
/**
|
||||
* Set drive motor powers.
|
||||
* @param forward Forward power
|
||||
* @param strafe Strafe power
|
||||
* @param rotate Rotation power
|
||||
*/
|
||||
void setPowers(double forward, double strafe, double rotate);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user