Tank drive with a single center-mounted strafe wheel (H-drive layout).
More...
#include <holo_drive.hpp>
|
| | HDrive (std::vector< int > left_ports, std::vector< int > right_ports, int center_port, int imu_port, double wheel_diameter, double gear_ratio=1.0) |
| | Construct an H-drive.
|
| |
|
| void | opcontrol (int throttle, int strafe, int turn) |
| | Drive from joystick inputs.
|
| |
|
| void | drive (double inches, int max_speed=100, int timeout_ms=3000) |
| | Drive forward inches (negative = reverse).
|
| |
| void | strafe (double inches, int max_speed=100, int timeout_ms=3000) |
| | Strafe right inches (negative = left).
|
| |
| void | turn_to (double heading_deg, int max_speed=80, int timeout_ms=2000) |
| | Turn to absolute heading 0–360°.
|
| |
| void | turn_relative (double degrees, int max_speed=80, int timeout_ms=2000) |
| | Turn degrees CW (positive) or CCW (negative).
|
| |
|
| void | set_drive_pid (double kP, double kI=0, double kD=0) |
| |
| void | set_strafe_pid (double kP, double kI=0, double kD=0) |
| |
| void | set_turn_pid (double kP, double kI=0, double kD=0) |
| |
| void | set_heading_pid (double kP, double kI=0, double kD=0) |
| |
|
| void | calibrate (bool wait=true) |
| |
| void | reset_sensors () |
| |
| void | set_brake_mode (pros::motor_brake_mode_e_t mode) |
| |
| double | get_heading () const |
| |
Tank drive with a single center-mounted strafe wheel (H-drive layout).
Left and right groups may contain any number of motors.
- Warning
- Before running any autonomous method you MUST call
set_*_pid() for each axis. Call calibrate() once inside initialize() if no other code calibrates the IMU.
Definition at line 256 of file holo_drive.hpp.
◆ HDrive()
| light::HDrive::HDrive |
( |
std::vector< int > |
left_ports, |
|
|
std::vector< int > |
right_ports, |
|
|
int |
center_port, |
|
|
int |
imu_port, |
|
|
double |
wheel_diameter, |
|
|
double |
gear_ratio = 1.0 |
|
) |
| |
Construct an H-drive.
- Parameters
-
| left_ports | left side motor ports (negative = reversed) |
| right_ports | right side motor ports (negative = reversed) |
| center_port | center strafe motor port |
| imu_port | inertial sensor port |
| wheel_diameter | wheel diameter in inches |
| gear_ratio | output_rpm / motor_rpm (1.0 = direct drive) |
◆ calibrate()
| void light::HDrive::calibrate |
( |
bool |
wait = true | ) |
|
◆ drive()
| void light::HDrive::drive |
( |
double |
inches, |
|
|
int |
max_speed = 100, |
|
|
int |
timeout_ms = 3000 |
|
) |
| |
Drive forward inches (negative = reverse).
◆ get_heading()
| double light::HDrive::get_heading |
( |
| ) |
const |
◆ opcontrol()
| void light::HDrive::opcontrol |
( |
int |
throttle, |
|
|
int |
strafe, |
|
|
int |
turn |
|
) |
| |
Drive from joystick inputs.
- Parameters
-
| throttle | forward / back |
| strafe | center wheel left / right |
| turn | CW / CCW |
◆ reset_sensors()
| void light::HDrive::reset_sensors |
( |
| ) |
|
◆ set_brake_mode()
| void light::HDrive::set_brake_mode |
( |
pros::motor_brake_mode_e_t |
mode | ) |
|
◆ set_drive_pid()
| void light::HDrive::set_drive_pid |
( |
double |
kP, |
|
|
double |
kI = 0, |
|
|
double |
kD = 0 |
|
) |
| |
◆ set_heading_pid()
| void light::HDrive::set_heading_pid |
( |
double |
kP, |
|
|
double |
kI = 0, |
|
|
double |
kD = 0 |
|
) |
| |
◆ set_strafe_pid()
| void light::HDrive::set_strafe_pid |
( |
double |
kP, |
|
|
double |
kI = 0, |
|
|
double |
kD = 0 |
|
) |
| |
◆ set_turn_pid()
| void light::HDrive::set_turn_pid |
( |
double |
kP, |
|
|
double |
kI = 0, |
|
|
double |
kD = 0 |
|
) |
| |
◆ strafe()
| void light::HDrive::strafe |
( |
double |
inches, |
|
|
int |
max_speed = 100, |
|
|
int |
timeout_ms = 3000 |
|
) |
| |
Strafe right inches (negative = left).
◆ turn_relative()
| void light::HDrive::turn_relative |
( |
double |
degrees, |
|
|
int |
max_speed = 80, |
|
|
int |
timeout_ms = 2000 |
|
) |
| |
Turn degrees CW (positive) or CCW (negative).
◆ turn_to()
| void light::HDrive::turn_to |
( |
double |
heading_deg, |
|
|
int |
max_speed = 80, |
|
|
int |
timeout_ms = 2000 |
|
) |
| |
Turn to absolute heading 0–360°.
The documentation for this class was generated from the following file: