9#include "core/robot_specs.h"
10#include "core/subsystems/odometry/odometry_tank.h"
11#include "core/utils/command_structure/auto_command.h"
12#include "core/utils/controls/feedback_base.h"
13#include "core/utils/controls/pid.h"
14#include "core/utils/pure_pursuit.h"
40 vex::motor_group& left_motors, vex::motor_group& right_motors,
robot_specs_t& config,
44 AutoCommand* DriveToPointCmd(
45 Translation2d pt, vex::directionType dir = vex::forward,
double max_speed = 1.0,
46 double end_speed = 0.0
48 AutoCommand* DriveToPointCmd(
50 double max_speed = 1.0,
double end_speed = 0.0
53 AutoCommand* DriveToPointCmd(
54 double x,
double y, vex::directionType dir = vex::forward,
double max_speed = 1.0,
55 double end_speed = 0.0
58 AutoCommand* DriveForwardCmd(
59 double dist, vex::directionType dir = vex::forward,
double max_speed = 1.0,
60 double end_speed = 0.0
62 AutoCommand* DriveForwardCmd(
63 Feedback& fb,
double dist, vex::directionType dir = vex::forward,
64 double max_speed = 1.0,
double end_speed = 0.0
67 AutoCommand* TurnToHeadingCmd(
double heading,
double max_speed = 1.0,
double end_speed = 0.0);
68 AutoCommand* TurnToHeadingCmd(
69 Feedback& fb,
double heading,
double max_speed = 1.0,
double end_speed = 0.0
72 AutoCommand* TurnToPointCmd(
73 double x,
double y, vex::directionType dir = vex::directionType::fwd,
74 double max_speed = 1.0,
double end_speed = 0.0
76 AutoCommand* TurnToPointCmd(
77 Translation2d point, vex::directionType dir = vex::directionType::fwd,
78 double max_speed = 1.0,
double end_speed = 0.0
81 AutoCommand* TurnDegreesCmd(
double degrees,
double max_speed = 1.0,
double start_speed = 0.0);
82 AutoCommand* TurnDegreesCmd(
83 Feedback& fb,
double degrees,
double max_speed = 1.0,
double end_speed = 0.0
86 AutoCommand* PurePursuitCmd(
90 AutoCommand* PurePursuitCmd(
92 double max_speed = 1,
double end_speed = 0
94 Condition* DriveStalledCondition(
double stall_time);
95 AutoCommand* DriveTankCmd(
double left,
double right);
152 double inches, vex::directionType dir,
Feedback& feedback,
double max_speed = 1,
169 double inches, vex::directionType dir,
double max_speed = 1,
double end_speed = 0
186 double degrees,
Feedback& feedback,
double max_speed = 1,
double end_speed = 0
202 bool turn_degrees(
double degrees,
double max_speed = 1,
double end_speed = 0);
219 double x,
double y, vex::directionType dir,
Feedback& feedback,
double max_speed = 1,
238 double x,
double y, vex::directionType dir,
double max_speed = 1,
double end_speed = 0
253 double heading_deg,
Feedback& feedback,
double max_speed = 1,
double end_speed = 0
265 bool turn_to_heading(
double heading_deg,
double max_speed = 1,
double end_speed = 0);
298 double max_speed = 1,
double end_speed = 0
321 vex::motor_group& left_motors;
322 vex::motor_group& right_motors;
329 Feedback* drive_default_feedback = NULL;
330 Feedback* turn_default_feedback = NULL;
335 bool func_initialized =
338 bool is_pure_pursuit =
false;
Definition auto_command.h:25
Definition feedback_base.h:10
Definition odometry_base.h:30
Wrapper for a vector of points, checking if any of the points are too close for pure pursuit.
Definition pure_pursuit.h:12
bool turn_to_heading(double heading_deg, Feedback &feedback, double max_speed=1, double end_speed=0)
Definition tank_drive.cpp:544
void drive_tank_raw(double left, double right)
Definition tank_drive.cpp:147
bool drive_forward(double inches, vex::directionType dir, Feedback &feedback, double max_speed=1, double end_speed=0)
Definition tank_drive.cpp:240
bool turn_degrees(double degrees, Feedback &feedback, double max_speed=1, double end_speed=0)
Definition tank_drive.cpp:319
BrakeType
Definition tank_drive.h:24
@ ZeroVelocity
try to bring the robot to rest. But don't try to hold position
Definition tank_drive.h:26
@ None
just send 0 volts to the motors
Definition tank_drive.h:25
@ Smart
bring the robot to rest and once it's stopped, try to hold that position
Definition tank_drive.h:27
void drive_tank(double left, double right, int power=1, BrakeType bt=BrakeType::None)
Definition tank_drive.cpp:160
void reset_auto()
Reset the initialization for autonomous drive functions.
Definition tank_drive.cpp:136
TankDrive(vex::motor_group &left_motors, vex::motor_group &right_motors, robot_specs_t &config, OdometryBase *odom=NULL)
Definition tank_drive.cpp:8
static double modify_inputs(double input, int power=2)
Definition tank_drive.cpp:615
Pose2d get_position()
Returns the Robot position as a Pose2d.
Definition tank_drive.cpp:145
void drive_arcade(double forward_back, double left_right, int power=1, BrakeType bt=BrakeType::None)
Definition tank_drive.cpp:217
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:381
void stop()
Stops rotation of all the motors using their "brake mode".
Definition tank_drive.cpp:139
bool pure_pursuit(PurePursuit::Path path, vex::directionType dir, Feedback &feedback, double max_speed=1, double end_speed=0)
Definition tank_drive.cpp:630
Definition translation2d.h:21
Definition robot_specs.h:11