ArPiRobot-CoreLib C++
C++ library for ArPiRobot robots
|
#include <arpirobot/core/drive/TankDriveHelper.hpp>
Public Member Functions | |
TankDriveHelper (MotorController &leftMotor, MotorController &rightMotor) | |
TankDriveHelper (std::shared_ptr< MotorController > leftMotor, std::shared_ptr< MotorController > rightMotor) | |
TankDriveHelper (std::vector< std::reference_wrapper< MotorController >> leftMotors, std::vector< std::reference_wrapper< MotorController >> rightMotors) | |
TankDriveHelper (std::vector< std::shared_ptr< MotorController >> leftMotors, std::vector< std::shared_ptr< MotorController >> rightMotors) | |
void | updateLeftSpeed (double newLeftSpeed) |
void | updateRightSpeed (double newRightSpeed) |
void | update (double newLeftSpeed, double newRightSpeed) |
Drive helper for tank drive method.
Drive helpers calculate speeds for each motor based on a set of inputs and update all motors speeds at once. Tank drive uses two inputs: left speed and right speed.
arpirobot::TankDriveHelper::TankDriveHelper | ( | MotorController & | leftMotor, |
MotorController & | rightMotor | ||
) |
leftMotor | A singular left side motor (reference, must remain in scope) |
rightMotor | A singular right side motor (reference, must remain in scope) |
arpirobot::TankDriveHelper::TankDriveHelper | ( | std::shared_ptr< MotorController > | leftMotor, |
std::shared_ptr< MotorController > | rightMotor | ||
) |
leftMotor | A singular left side motor (shared_ptr) |
rightMotor | A singular right side motor (shared_ptr) |
arpirobot::TankDriveHelper::TankDriveHelper | ( | std::vector< std::reference_wrapper< MotorController >> | leftMotors, |
std::vector< std::reference_wrapper< MotorController >> | rightMotors | ||
) |
leftMotors | A set of left motors (references, must remain in scope) |
rightMotors | A set of right motors (references, must remain in scope) |
arpirobot::TankDriveHelper::TankDriveHelper | ( | std::vector< std::shared_ptr< MotorController >> | leftMotors, |
std::vector< std::shared_ptr< MotorController >> | rightMotors | ||
) |
leftMotors | A set of left motors (shared_ptrs) |
rightMotors | A set of right motors (shared_ptrs) |
void arpirobot::TankDriveHelper::update | ( | double | newLeftSpeed, |
double | newRightSpeed | ||
) |
Set a new left and right speed value at the same time. Speeds will be re-calculated and updated for each motor. If updating both values use this instead of calling updateLeftSpeed and updateRightSpeed because this will only recalculate motor speeds once.
newLeftSpeed | the new speed (-1.0 to 1.0) |
newRightSpeed | the new rotation (-1.0 to 1.0) |
void arpirobot::TankDriveHelper::updateLeftSpeed | ( | double | newLeftSpeed | ) |
Set a new left speed value. Speeds will be re-calculated and updated for each motor
newLeftSpeed | the new rotation (-1.0 to 1.0) |
void arpirobot::TankDriveHelper::updateRightSpeed | ( | double | newRightSpeed | ) |
Set a new right speed value. Speeds will be re-calculated and updated for each motor
newRightSpeed | the new rotation (-1.0 to 1.0) |