7#include "../core/include/robot_specs.h"
8#include "../core/include/subsystems/odometry/odometry_tank.h"
9#include "../core/include/utils/command_structure/auto_command.h"
10#include "../core/include/utils/controls/feedback_base.h"
11#include "../core/include/utils/controls/pid.h"
12#include "../core/include/utils/pure_pursuit.h"
40 AutoCommand *DriveToPointCmd(
point_t pt, vex::directionType dir = vex::forward,
double max_speed = 1.0,
41 double end_speed = 0.0);
42 AutoCommand *DriveToPointCmd(
Feedback &fb,
point_t pt, vex::directionType dir = vex::forward,
double max_speed = 1.0,
43 double end_speed = 0.0);
45 AutoCommand *DriveForwardCmd(
double dist, vex::directionType dir = vex::forward,
double max_speed = 1.0,
46 double end_speed = 0.0);
47 AutoCommand *DriveForwardCmd(
Feedback &fb,
double dist, vex::directionType dir = vex::forward,
double max_speed = 1.0,
48 double end_speed = 0.0);
50 AutoCommand *TurnToHeadingCmd(
double heading,
double max_speed = 1.0,
double end_speed = 0.0);
51 AutoCommand *TurnToHeadingCmd(
Feedback &fb,
double heading,
double max_speed = 1.0,
double end_speed = 0.0);
53 AutoCommand *TurnToPointCmd(
double x,
double y, vex::directionType dir = vex::directionType::fwd,
54 double max_speed = 1.0,
double end_speed = 0.0);
56 AutoCommand *TurnDegreesCmd(
double degrees,
double max_speed = 1.0,
double start_speed = 0.0);
57 AutoCommand *TurnDegreesCmd(
Feedback &fb,
double degrees,
double max_speed = 1.0,
double end_speed = 0.0);
59 AutoCommand *PurePursuitCmd(
PurePursuit::Path path, directionType dir,
double max_speed = 1,
double end_speed = 0);
61 double end_speed = 0);
62 Condition *DriveStalledCondition(
double stall_time);
63 AutoCommand *DriveTankCmd(
double left,
double right);
114 bool drive_forward(
double inches, directionType dir,
Feedback &feedback,
double max_speed = 1,
double end_speed = 0);
128 bool drive_forward(
double inches, directionType dir,
double max_speed = 1,
double end_speed = 0);
141 bool turn_degrees(
double degrees,
Feedback &feedback,
double max_speed = 1,
double end_speed = 0);
156 bool turn_degrees(
double degrees,
double max_speed = 1,
double end_speed = 0);
172 double end_speed = 0);
188 bool drive_to_point(
double x,
double y, vex::directionType dir,
double max_speed = 1,
double end_speed = 0);
211 bool turn_to_heading(
double heading_deg,
double max_speed = 1,
double end_speed = 0);
245 double end_speed = 0);
265 motor_group &left_motors;
266 motor_group &right_motors;
270 Feedback *drive_default_feedback = NULL;
271 Feedback *turn_default_feedback = NULL;
279 bool func_initialized =
false;
281 bool is_pure_pursuit =
false;
Definition auto_command.h:24
Definition feedback_base.h:10
Definition odometry_base.h:24
Definition pure_pursuit.h:14
Definition tank_drive.h:23
bool drive_forward(double inches, directionType dir, Feedback &feedback, double max_speed=1, double end_speed=0)
Definition tank_drive.cpp:222
bool turn_to_heading(double heading_deg, Feedback &feedback, double max_speed=1, double end_speed=0)
Definition tank_drive.cpp:513
void drive_tank_raw(double left, double right)
Definition tank_drive.cpp:133
TankDrive(motor_group &left_motors, motor_group &right_motors, robot_specs_t &config, OdometryBase *odom=NULL)
Definition tank_drive.cpp:7
bool turn_degrees(double degrees, Feedback &feedback, double max_speed=1, double end_speed=0)
Definition tank_drive.cpp:297
BrakeType
Definition tank_drive.h:25
@ ZeroVelocity
try to bring the robot to rest. But don't try to hold position
@ None
just send 0 volts to the motors
@ Smart
bring the robot to rest and once it's stopped, try to hold that position
void drive_tank(double left, double right, int power=1, BrakeType bt=BrakeType::None)
Definition tank_drive.cpp:145
void reset_auto()
Definition tank_drive.cpp:123
static double modify_inputs(double input, int power=2)
Definition tank_drive.cpp:577
bool pure_pursuit(PurePursuit::Path path, directionType dir, Feedback &feedback, double max_speed=1, double end_speed=0)
Definition tank_drive.cpp:590
void drive_arcade(double forward_back, double left_right, int power=1, BrakeType bt=BrakeType::None)
Definition tank_drive.cpp:200
bool drive_to_point(double x, double y, vex::directionType dir, Feedback &feedback, double max_speed=1, double end_speed=0)
Definition tank_drive.cpp:357
void stop()
Definition tank_drive.cpp:128
Definition robot_specs.h:11