ArPiRobot-CoreLib C++
C++ library for ArPiRobot robots
|
#include <arpirobot/core/drive/ArcadeDriveHelper.hpp>
Public Member Functions | |
ArcadeDriveHelper (MotorController &leftMotor, MotorController &rightMotor) | |
ArcadeDriveHelper (std::shared_ptr< MotorController > leftMotor, std::shared_ptr< MotorController > rightMotor) | |
ArcadeDriveHelper (std::vector< std::reference_wrapper< MotorController >> leftMotors, std::vector< std::reference_wrapper< MotorController >> rightMotors) | |
ArcadeDriveHelper (std::vector< std::shared_ptr< MotorController >> leftMotors, std::vector< std::shared_ptr< MotorController >> rightMotors) | |
void | updateSpeed (double newSpeed) |
void | updateRotation (double newRotation) |
void | update (double newSpeed, double newRotation) |
Drive helper for arcade drive method.
Drive helpers calculate speeds for each motor based on a set of inputs and update all motors speeds at once. Arcade drive uses two inputs: speed and rotation.
arpirobot::ArcadeDriveHelper::ArcadeDriveHelper | ( | 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::ArcadeDriveHelper::ArcadeDriveHelper | ( | 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::ArcadeDriveHelper::ArcadeDriveHelper | ( | 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::ArcadeDriveHelper::ArcadeDriveHelper | ( | 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::ArcadeDriveHelper::update | ( | double | newSpeed, |
double | newRotation | ||
) |
Set a new speed and rotation value at the same time. Speeds will be re-calculated and updated for each motor. If updating both values use this instead of calling updateSpeed and updateRotation because this will only recalculate motor speeds once.
newSpeed | the new speed (-1.0 to 1.0) |
newRotation | the new rotation (-1.0 to 1.0) |
void arpirobot::ArcadeDriveHelper::updateRotation | ( | double | newRotation | ) |
Set a new rotation value. Speeds will be re-calculated and updated for each motor
newRotation | the new rotation (-1.0 to 1.0) |
void arpirobot::ArcadeDriveHelper::updateSpeed | ( | double | newSpeed | ) |
Set a new speed value. Speeds will be re-calculated and updated for each motor
newSpeed | the new speed (-1.0 to 1.0) |