2023-11-17 08:59:56 -05:00

79 lines
2.6 KiB
C++

#include "globals.hpp"
using namespace ary;
namespace globals {
// Chassis
pros::Controller master(CONTROLLER_MASTER);
pros::Motor motor_fl(20, MOTOR_GEARSET_6, true);
pros::Motor motor_ml(17, MOTOR_GEARSET_6, true);
pros::Motor motor_bl(8, MOTOR_GEARSET_6, false);
pros::Motor motor_fr(12, MOTOR_GEARSET_6, false);
pros::Motor motor_mr(1, MOTOR_GEARSET_6, false);
pros::Motor motor_br(2, MOTOR_GEARSET_6, true);
pros::Motor_Group left_drive({ motor_fl, motor_ml, motor_bl });
pros::Motor_Group right_drive({ motor_fr, motor_mr, motor_br });
/*
Two seperate drivetrains, chassis
*/
Drive chassisLeft(
{-20, -17, 8},
{12, 1, -4},
10,
2.75,
600,
0.75
);
Drive chassisRight(
{-20, 10, -9},
{-13, -17, 12},
21,
2.75,
600,
0.75
);
lemlib::Drivetrain drivetrain(&leftMotors, // left motor group
&rightMotors, // right motor group
10, // 10 inch track width
lemlib::Omniwheel::NEW_325, // using new 3.25" omnis
360, // drivetrain rpm is 360
2 // chase power is 2. If we had traction wheels, it would have been 8
);
// lateral motion controller
lemlib::ControllerSettings linearController(10, // proportional gain (kP)
30, // derivative gain (kD)
1, // small error range, in inches
100, // small error range timeout, in milliseconds
3, // large error range, in inches
500, // large error range timeout, in milliseconds
20 // maximum acceleration (slew)
);
// angular motion controller
lemlib::ControllerSettings angularController(2, // proportional gain (kP)
10, // derivative gain (kD)
1, // small error range, in degrees
100, // small error range timeout, in milliseconds
3, // large error range, in degrees
500, // large error range timeout, in milliseconds
20 // maximum acceleration (slew)
);
// sensors for odometry
// note that in this example we use internal motor encoders, so we don't pass vertical tracking wheels
lemlib::OdomSensors sensors(nullptr, // vertical tracking wheel 1, set to nullptr as we don't have one
nullptr, // vertical tracking wheel 2, set to nullptr as we don't have one
&horizontal, // horizontal tracking wheel 1
nullptr, // horizontal tracking wheel 2, set to nullptr as we don't have a second one
&imu // inertial sensor
);
// create the chassis
lemlib::Chassis chassis(drivetrain, linearController, angularController, sensors);
}