RIT VEXU Core API
Loading...
Searching...
No Matches
mecanum_drive.h
1#pragma once
2
3#include "core/utils/controls/pid.h"
4#include "vex.h"
5
6#ifndef PI
7#define PI 3.141592654
8#endif
9
15
16 public:
21 // PID configurations for autonomous driving
22 PID::pid_config_t drive_pid_conf;
23 PID::pid_config_t drive_gyro_pid_conf;
24 PID::pid_config_t turn_pid_conf;
25
26 // Diameter of the mecanum wheels
27 double drive_wheel_diam;
28
29 // Diameter of the perpendicular undriven encoder wheel
30 double lateral_wheel_diam;
31
32 // Width between the center of the left and right wheels
33 double wheelbase_width;
34 };
35
40 vex::motor &left_front, vex::motor &right_front, vex::motor &left_rear, vex::motor &right_rear,
41 vex::rotation *lateral_wheel = NULL, vex::inertial *imu = NULL, mecanumdrive_config_t *config = NULL
42 );
43
52 void drive_raw(double direction_deg, double magnitude, double rotation);
53
64 void drive(double left_y, double left_x, double right_x, int power = 2);
65
78 bool auto_drive(double inches, double direction, double speed, bool gyro_correction = true);
79
90 bool auto_turn(double degrees, double speed, bool ignore_imu = false);
91
92 private:
93 vex::motor &left_front, &right_front, &left_rear, &right_rear;
94
96 vex::rotation *lateral_wheel;
97 vex::inertial *imu;
98
99 PID *drive_pid = NULL;
100 PID *drive_gyro_pid = NULL;
101 PID *turn_pid = NULL;
102
103 bool init = true;
104};
void drive_raw(double direction_deg, double magnitude, double rotation)
Definition mecanum_drive.cpp:32
MecanumDrive(vex::motor &left_front, vex::motor &right_front, vex::motor &left_rear, vex::motor &right_rear, vex::rotation *lateral_wheel=NULL, vex::inertial *imu=NULL, mecanumdrive_config_t *config=NULL)
Definition mecanum_drive.cpp:7
bool auto_drive(double inches, double direction, double speed, bool gyro_correction=true)
Definition mecanum_drive.cpp:94
void drive(double left_y, double left_x, double right_x, int power=2)
Definition mecanum_drive.cpp:65
bool auto_turn(double degrees, double speed, bool ignore_imu=false)
Definition mecanum_drive.cpp:199
Definition core/utils/controls/pid.h:23
Definition mecanum_drive.h:20
Definition core/utils/controls/pid.h:43