Skip to content

Commit

Permalink
Fixed some definitions, added basic drive functions implimented from …
Browse files Browse the repository at this point in the history
…EZ-Template
  • Loading branch information
nikgajjar51 committed Jan 23, 2024
1 parent 990a1ce commit a527992
Show file tree
Hide file tree
Showing 2 changed files with 138 additions and 3 deletions.
139 changes: 136 additions & 3 deletions include/apollo/chassis/drivetrain.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ namespace apollo {
namespace chassis {
class Drivetrain {
public:
int joystick_threshold;
/////
// Drivetrain Types
/////
std::vector<pros::Motor> left_motors;
std::vector<pros::Motor> right_motors;
std::vector<pros::Motor> front_left_motors;
Expand Down Expand Up @@ -53,6 +55,23 @@ class Drivetrain {
std::vector<int> right_adi_encoder_ports,
std::vector<int> center_adi_encoder_ports,
double tracker_wheel_diameter, double tracker_gear_ratio);
// tank with adi expander
Drivetrain(util::drivetrain_type, std::vector<int> left_motor_ports,
std::vector<int> right_motor_ports, int inertial_sensor_port,
double drivetrain_wheel_diameter, double drivetrain_gear_ratio,
double drivetrain_gear_catridge,
std::vector<int> left_adi_encoder_ports,
std::vector<int> right_adi_encoder_ports, int expander_smart_port,
double tracker_wheel_diameter, double tracker_gear_ratio);
// tank with adi center expander
Drivetrain(util::drivetrain_type, std::vector<int> left_motor_ports,
std::vector<int> right_motor_ports, int inertial_sensor_port,
double drivetrain_wheel_diameter, double drivetrain_gear_ratio,
double drivetrain_gear_catridge,
std::vector<int> left_adi_encoder_ports,
std::vector<int> right_adi_encoder_ports,
std::vector<int> center_adi_encoder_ports, int expander_smart_port,
double tracker_wheel_diameter, double tracker_gear_ratio);
// tank with rotation
Drivetrain(util::drivetrain_type, std::vector<int> left_motor_ports,
std::vector<int> right_motor_ports, int inertial_sensor_port,
Expand Down Expand Up @@ -96,6 +115,27 @@ class Drivetrain {
std::vector<int> right_adi_encoder_ports,
std::vector<int> center_adi_encoder_ports,
double tracker_wheel_diameter, double tracker_gear_ratio);
// meccanum,x with adi expander
Drivetrain(util::drivetrain_type, std::vector<int> front_left_motor_ports,
std::vector<int> front_right_motor_ports,
std::vector<int> back_left_motor_ports,
std::vector<int> back_right_motor_ports, int inertial_sensor_port,
double drivetrain_wheel_diameter, double drivetrain_gear_ratio,
double drivetrain_gear_catridge,
std::vector<int> left_adi_encoder_ports,
std::vector<int> right_adi_encoder_ports, int expander_smart_port,
double tracker_wheel_diameter, double tracker_gear_ratio);
// meccanum,x with adi center expander
Drivetrain(util::drivetrain_type, std::vector<int> front_left_motor_ports,
std::vector<int> front_right_motor_ports,
std::vector<int> back_left_motor_ports,
std::vector<int> back_right_motor_ports, int inertial_sensor_port,
double drivetrain_wheel_diameter, double drivetrain_gear_ratio,
double drivetrain_gear_catridge,
std::vector<int> left_adi_encoder_ports,
std::vector<int> right_adi_encoder_ports,
std::vector<int> center_adi_encoder_ports, int expander_smart_port,
double tracker_wheel_diameter, double tracker_gear_ratio);
// meccanum,x with rotation
Drivetrain(util::drivetrain_type, std::vector<int> front_left_motor_ports,
std::vector<int> front_right_motor_ports,
Expand All @@ -114,7 +154,6 @@ class Drivetrain {
double drivetrain_gear_catridge, int left_rotation_port,
int right_rotation_port, int center_rotation_port,
double tracker_wheel_diameter, double tracker_gear_ratio);

// asterisk
Drivetrain(util::drivetrain_type, std::vector<int> front_left_motor_ports,
std::vector<int> left_motor_ports,
Expand Down Expand Up @@ -149,6 +188,31 @@ class Drivetrain {
std::vector<int> right_adi_encoder_ports,
std::vector<int> center_adi_encoder_ports,
double tracker_wheel_diameter, double tracker_gear_ratio);
// asterisk with adi expander
Drivetrain(util::drivetrain_type, std::vector<int> front_left_motor_ports,
std::vector<int> left_motor_ports,
std::vector<int> back_left_motor_ports,
std::vector<int> front_right_motor_ports,
std::vector<int> right_motor_ports,
std::vector<int> back_right_motor_ports, int inertial_sensor_port,
double drivetrain_wheel_diameter, double drivetrain_gear_ratio,
double drivetrain_gear_catridge,
std::vector<int> left_adi_encoder_ports,
std::vector<int> right_adi_encoder_ports, int expander_smart_port,
double tracker_wheel_diameter, double tracker_gear_ratio);
// asterisk with adi center expander
Drivetrain(util::drivetrain_type, std::vector<int> front_left_motor_ports,
std::vector<int> left_motor_ports,
std::vector<int> back_left_motor_ports,
std::vector<int> front_right_motor_ports,
std::vector<int> right_motor_ports,
std::vector<int> back_right_motor_ports, int inertial_sensor_port,
double drivetrain_wheel_diameter, double drivetrain_gear_ratio,
double drivetrain_gear_catridge,
std::vector<int> left_adi_encoder_ports,
std::vector<int> right_adi_encoder_ports,
std::vector<int> center_adi_encoder_ports, int expander_smart_port,
double tracker_wheel_diameter, double tracker_gear_ratio);
// asterisk with rotation
Drivetrain(util::drivetrain_type, std::vector<int> front_left_motor_ports,
std::vector<int> left_motor_ports,
Expand Down Expand Up @@ -197,7 +261,26 @@ class Drivetrain {
std::vector<int> right_adi_encoder_ports,
std::vector<int> center_adi_encoder_ports,
double tracker_wheel_diameter, double tracker_gear_ratio);
// h with rotaion
// h with adi expander
Drivetrain(util::drivetrain_type, std::vector<int> left_motor_ports,
std::vector<int> right_motor_ports,
std::vector<int> center_motor_ports, int inertial_sensor_port,
double drivetrain_wheel_diameter, double drivetrain_gear_ratio,
double drivetrain_gear_catridge,
std::vector<int> left_adi_encoder_ports,
std::vector<int> right_adi_encoder_ports, int expander_smart_port,
double tracker_wheel_diameter, double tracker_gear_ratio);
// h with adi center expander
Drivetrain(util::drivetrain_type, std::vector<int> left_motor_ports,
std::vector<int> right_motor_ports,
std::vector<int> center_motor_ports, int inertial_sensor_port,
double drivetrain_wheel_diameter, double drivetrain_gear_ratio,
double drivetrain_gear_catridge,
std::vector<int> left_adi_encoder_ports,
std::vector<int> right_adi_encoder_ports,
std::vector<int> center_adi_encoder_ports, int expander_smart_port,
double tracker_wheel_diameter, double tracker_gear_ratio);
// h with rotation
Drivetrain(util::drivetrain_type, std::vector<int> left_motor_ports,
std::vector<int> right_motor_ports,
std::vector<int> center_motor_ports, int inertial_sensor_port,
Expand All @@ -213,6 +296,56 @@ class Drivetrain {
double drivetrain_gear_catridge, int left_rotation_port,
int right_rotation_port, int center_rotation_port,
double tracker_wheel_diameter, double tracker_gear_ratio);

/////
// User Control
/////
int joytstick_deadzone;
void tank_control(util::drivetrain_swing_type);
void arcade_control(util::drivetrain_control_type,
util::drivetrain_swing_type);
void set_active_brake(int input);
void set_joystick_deadzone(int input);
void standard_curve_function(int input);
/////
// PTO
/////
/////
// Telemetry
/////
int get_left_sensor_value();
int get_left_sensor_velocity();
double get_left_motor_voltage();
double get_left_motor_current();
int get_right_sensor_value();
int get_right_sensor_velocity();
double get_right_motor_voltage();
double get_right_motor_current();
double get_inertial_sensor_value();
void reset_drive_sensors();
void reset_inertial_sensor();
void reset_left_drive_sensor();
void reset_right_drive_sensor();
/////
// Autonomous
/////
void set_max_speed(int input);
int get_max_speed();

private:
double active_brake = 0;
int max_speed;
double tick_per_revolution;
double tick_per_inch;
double motor_cartridge;

double tracker_circumference;
double tracker_diameter;
double tracker_ratio;

double wheel_circumference;
double wheel_diameter;
double wheel_gear_ratio;
};
} // namespace chassis
} // namespace apollo
2 changes: 2 additions & 0 deletions include/apollo/util/util.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,7 @@ enum drivetrain_type {
MECCANUM_DRIVE = 3,
H_DRIVE = 4
};
enum drivetrain_control_type { SINGLE_JOYSTICK = 1, SPLIT_JOYSTICK = 2 };
enum drivetrain_swing_type { LEFT_SWING = 1, RIGHT_SWING = 2 };
} // namespace util
} // namespace apollo

0 comments on commit a527992

Please sign in to comment.