update superstruct

This commit is contained in:
ary 2023-09-30 15:54:19 -04:00
parent 2a8364adae
commit 112a00b96e
2 changed files with 48 additions and 11 deletions

View File

@ -10,16 +10,23 @@ namespace superstruct {
//configs //configs
void configureExitConditions(); void configureExitConditions();
void configureConstants(); void configureConstants();
void autonomousResets();
void motorsCoast(); void motorsCoast();
void motorsHold(); void motorsHold();
void motorsBrake(); void motorsBrake();
void disableActiveBrake();
// Movement Methods // Movement Methods
void driveChassis(double dist, double speedScale, bool useHeadingCorrection); void driveChassis(double dist, bool useHeadingCorrection);
void turnChassis(double theta, double turnSpeedScale); void turnChassis(double theta);
void leftSwing(double theta, double swingSpeedScale); void leftSwing(double theta);
void rightSwing(double theta, double swingSpeedScale); void rightSwing(double theta);
void setDriveScale(double val);
void setTurnScale(double val);
void setSwingScale(double val);
//- Structure methods //- Structure methods
void togglePto(); void togglePto();

View File

@ -4,6 +4,10 @@ using namespace ary;
using namespace globals; using namespace globals;
bool ptoEnabled = false; bool ptoEnabled = false;
double speedScale = 1.0;
double turnScale = 1.0;
double swingScale = 1.0;
namespace superstruct { namespace superstruct {
void configureExitConditions() { void configureExitConditions() {
chassis.set_exit_condition(chassis.turn_exit, 100, 3, 500, 7, 500, 500); chassis.set_exit_condition(chassis.turn_exit, 100, 3, 500, 7, 500, 500);
@ -21,6 +25,16 @@ namespace superstruct {
chassis.set_pid_constants(&chassis.swingPID, 6, 0, 40, 0); chassis.set_pid_constants(&chassis.swingPID, 6, 0, 40, 0);
} }
void autonomousResets() {
chassis.reset_pid_targets();
chassis.reset_gyro();
chassis.reset_drive_sensor();
configureConstants();
configureExitConditions();
motorsBrake();
}
void motorsCoast() { void motorsCoast() {
chassis.set_drive_brake(MOTOR_BRAKE_COAST); chassis.set_drive_brake(MOTOR_BRAKE_COAST);
} }
@ -33,26 +47,42 @@ namespace superstruct {
chassis.set_drive_brake(MOTOR_BRAKE_BRAKE); chassis.set_drive_brake(MOTOR_BRAKE_BRAKE);
} }
void disableActiveBrake() {
chassis.set_active_brake(0.0);
}
// motion and stuff // motion and stuff
void driveChassis(double dist, double speedScale, bool useHeadingCorrection) { void driveChassis(double dist, bool useHeadingCorrection) {
//chassis.set_mode(ary::DRIVE); //chassis.set_mode(ary::DRIVE);
chassis.set_drive(dist, DRIVE_SPEED * speedScale, (dist > 14.0) ? true : false, useHeadingCorrection); chassis.set_drive(dist, DRIVE_SPEED * speedScale, (dist > 14.0) ? true : false, useHeadingCorrection);
} }
void turnChassis(double theta, double turnSpeedScale) { void turnChassis(double theta) {
//chassis.set_mode(ary::TURN); //chassis.set_mode(ary::TURN);
chassis.set_turn(theta, TURN_SPEED * turnSpeedScale); chassis.set_turn(theta, TURN_SPEED * turnScale);
} }
void leftSwing(double theta, double swingSpeedScale) { void leftSwing(double theta) {
//chassis.set_mode(SWING); //chassis.set_mode(SWING);
chassis.set_swing(LEFT_SWING, theta, SWING_SPEED * swingSpeedScale); chassis.set_swing(LEFT_SWING, theta, SWING_SPEED * swingScale);
} }
void rightSwing(double theta, double swingSpeedScale) { void rightSwing(double theta) {
//chassis.set_mode(SWING); //chassis.set_mode(SWING);
chassis.set_swing(RIGHT_SWING, theta, SWING_SPEED * swingSpeedScale); chassis.set_swing(RIGHT_SWING, theta, SWING_SPEED * swingScale);
}
void setDriveScale(double val) {
speedScale = std::clamp(val, 0.1, 1.0);
}
void setTurnScale(double val) {
turnScale = std::clamp(val, 0.1, 1.0);
}
void setSwingScale(double val) {
swingScale = std::clamp(val, 0.1, 1.0);
} }
// Structure methods // Structure methods