ArPiRobot-CoreLib C++
C++ library for ArPiRobot robots
Public Member Functions | List of all members
arpirobot::TankDriveHelper Class Reference

#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)
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ TankDriveHelper() [1/4]

arpirobot::TankDriveHelper::TankDriveHelper ( MotorController leftMotor,
MotorController rightMotor 
)
Parameters
leftMotorA singular left side motor (reference, must remain in scope)
rightMotorA singular right side motor (reference, must remain in scope)

◆ TankDriveHelper() [2/4]

arpirobot::TankDriveHelper::TankDriveHelper ( std::shared_ptr< MotorController leftMotor,
std::shared_ptr< MotorController rightMotor 
)
Parameters
leftMotorA singular left side motor (shared_ptr)
rightMotorA singular right side motor (shared_ptr)

◆ TankDriveHelper() [3/4]

arpirobot::TankDriveHelper::TankDriveHelper ( std::vector< std::reference_wrapper< MotorController >>  leftMotors,
std::vector< std::reference_wrapper< MotorController >>  rightMotors 
)
Parameters
leftMotorsA set of left motors (references, must remain in scope)
rightMotorsA set of right motors (references, must remain in scope)

◆ TankDriveHelper() [4/4]

arpirobot::TankDriveHelper::TankDriveHelper ( std::vector< std::shared_ptr< MotorController >>  leftMotors,
std::vector< std::shared_ptr< MotorController >>  rightMotors 
)
Parameters
leftMotorsA set of left motors (shared_ptrs)
rightMotorsA set of right motors (shared_ptrs)

Member Function Documentation

◆ update()

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.

Parameters
newLeftSpeedthe new speed (-1.0 to 1.0)
newRightSpeedthe new rotation (-1.0 to 1.0)

◆ updateLeftSpeed()

void arpirobot::TankDriveHelper::updateLeftSpeed ( double  newLeftSpeed)

Set a new left speed value. Speeds will be re-calculated and updated for each motor

Parameters
newLeftSpeedthe new rotation (-1.0 to 1.0)

◆ updateRightSpeed()

void arpirobot::TankDriveHelper::updateRightSpeed ( double  newRightSpeed)

Set a new right speed value. Speeds will be re-calculated and updated for each motor

Parameters
newRightSpeedthe new rotation (-1.0 to 1.0)

The documentation for this class was generated from the following file: