79 lines
2.6 KiB
C++
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);
|
|
} |