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

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

Detailed Description

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.

Constructor & Destructor Documentation

◆ ArcadeDriveHelper() [1/4]

arpirobot::ArcadeDriveHelper::ArcadeDriveHelper ( 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)

◆ ArcadeDriveHelper() [2/4]

arpirobot::ArcadeDriveHelper::ArcadeDriveHelper ( 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)

◆ ArcadeDriveHelper() [3/4]

arpirobot::ArcadeDriveHelper::ArcadeDriveHelper ( 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)

◆ ArcadeDriveHelper() [4/4]

arpirobot::ArcadeDriveHelper::ArcadeDriveHelper ( 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::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.

Parameters
newSpeedthe new speed (-1.0 to 1.0)
newRotationthe new rotation (-1.0 to 1.0)

◆ updateRotation()

void arpirobot::ArcadeDriveHelper::updateRotation ( double  newRotation)

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

Parameters
newRotationthe new rotation (-1.0 to 1.0)

◆ updateSpeed()

void arpirobot::ArcadeDriveHelper::updateSpeed ( double  newSpeed)

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

Parameters
newSpeedthe new speed (-1.0 to 1.0)

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