1516X High Stakes 2.0
Codebase for 1516X High Stakes season
Loading...
Searching...
No Matches
globals.cpp
Go to the documentation of this file.
1#include "globals.h"
2#include "pros/abstract_motor.hpp"
3#include "pros/motors.hpp"
4
5/*
6 * Although the following constants belong in their own seperate
7 * files(auton.cpp, drivetriain.cpp), they are put here in order to maintain a
8 * common location for all of the constants used by the program to belong in.
9 * NOTE: This is the location where these variables are put into memory, but
10 * they can be otherwise modified throughout the program.
11 */
12
13// Defines the objects that are used by the program for each of the individual
14// subsystems.
15
16namespace Robot {
17namespace Globals {
18
19pros::Controller controller(pros::E_CONTROLLER_MASTER);
20pros::Motor RightFront(6, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees);
21pros::Motor LeftFront(-5, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees);
22pros::Motor LeftBack(-7, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees);
23pros::Motor RightBack(8, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees);
24pros::Motor LeftMid(2, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees);
25pros::Motor RightMid(-3, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees);
26pros::Motor IntakeMotor(-9, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees);
27pros::Motor HookMotor(4, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees);
28
29pros::adi::DigitalIn drivetrainToggleSwitch('G');
30pros::adi::DigitalIn autonToggleSwitch('F');
31
32pros::Optical colorSensor(4); // placeholder port number
33
34pros::adi::Pneumatics LatchControl('A', false);
35pros::adi::Pneumatics IntakeToggle('B', false);
36
37pros::Imu inertial_sensor(15);
38
39pros::MotorGroup drive_left({LeftFront.get_port(), LeftMid.get_port(), LeftBack.get_port()});
40pros::MotorGroup drive_right({RightFront.get_port(), RightMid.get_port(), RightBack.get_port()});
41pros::MotorGroup drive_({LeftFront.get_port(), RightFront.get_port(), LeftMid.get_port(), RightMid.get_port(),
42 LeftBack.get_port(), RightBack.get_port()});
43
44// Describes the lemlib objects that are used to control the autonomous
45// functions of the robot.
46lemlib::Drivetrain drivetrain{
47 &drive_left, // left drivetrain motors
48 &drive_right, // right drivetrain motors
49 12.125, // track width
50 lemlib::Omniwheel::OLD_325,
51 450, // drivetrain rpm is 450
52 2 // horizontal drift is 2
53};
54
55lemlib::OdomSensors sensors{
56 nullptr, // vertical tracking wheel 1
57 nullptr, // vertical tracking wheel 2
58 nullptr, // horizontal tracking wheel 1
59 nullptr, // we don't have a second tracking wheel, so we set it to nullptr
60 &inertial_sensor // inertial sensor
61};
62
63// forward/backward PID
64lemlib::ControllerSettings lateral_controller{
65 7.6, // kP
66 0, // KI
67 8, // kD
68 3, // Anti Windup
69 1, // smallErrorRange
70 100, // smallErrorTimeout
71 3, // largeErrorRange
72 500, // largeErrorTimeout
73 90 // slew rate
74};
75
76// turning PID
77lemlib::ControllerSettings angular_controller{
78 4.04, // kP
79 0, // kI
80 24.5, // kD
81 3, // Anti Windup
82 1, // smallErrorRange
83 100, // smallErrorTimeout
84 3, // largeErrorRange
85 500, // largeErrorTimeout
86 0 // slew rate
87};
88
89lemlib::ExpoDriveCurve throttle_curve(3, // joystick deadband out of 127
90 10, // minimum output where drivetrain will move out of 127
91 1.019 // expo curve gain
92);
93
94// input curve for steer input during driver control
95lemlib::ExpoDriveCurve steer_curve(4, // joystick deadband out of 127
96 6, // minimum output where drivetrain will move out of 127
97 1.0053 // expo curve gain
98);
99
101
102} // namespace Globals
103
104} // namespace Robot
pros::MotorGroup drive_({LeftFront.get_port(), RightFront.get_port(), LeftMid.get_port(), RightMid.get_port(), LeftBack.get_port(), RightBack.get_port()})
lemlib::OdomSensors sensors
Definition globals.cpp:55
pros::Motor LeftBack(-7, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees)
pros::adi::Pneumatics LatchControl('A', false)
lemlib::ExpoDriveCurve steer_curve(4, 6, 1.0053)
pros::MotorGroup drive_right({RightFront.get_port(), RightMid.get_port(), RightBack.get_port()})
pros::Motor IntakeMotor(-9, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees)
pros::Motor RightBack(8, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees)
pros::adi::DigitalIn drivetrainToggleSwitch('G')
lemlib::ControllerSettings angular_controller
Definition globals.cpp:77
lemlib::Chassis chassis(drivetrain, lateral_controller, angular_controller, sensors, &throttle_curve, &steer_curve)
pros::Motor RightFront(6, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees)
pros::Optical colorSensor(4)
pros::Motor LeftMid(2, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees)
pros::Motor HookMotor(4, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees)
lemlib::ControllerSettings lateral_controller
Definition globals.cpp:64
lemlib::ExpoDriveCurve throttle_curve(3, 10, 1.019)
pros::adi::DigitalIn autonToggleSwitch('F')
pros::adi::Pneumatics IntakeToggle('B', false)
pros::Motor LeftFront(-5, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees)
pros::Motor RightMid(-3, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees)
pros::Controller controller(pros::E_CONTROLLER_MASTER)
lemlib::Drivetrain drivetrain
Definition globals.cpp:46
pros::MotorGroup drive_left({LeftFront.get_port(), LeftMid.get_port(), LeftBack.get_port()})
pros::Imu inertial_sensor(15)
Definition auton.h:8