update superstruct
This commit is contained in:
parent
2a8364adae
commit
112a00b96e
@ -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();
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user