WPILibC++
unspecified
|
Common base class for drive platforms. More...
#include <RobotDriveBase.h>
Public Types | |
enum | MotorType { kFrontLeft = 0, kFrontRight = 1, kRearLeft = 2, kRearRight = 3, kLeft = 0, kRight = 1, kBack = 2 } |
The location of a motor on the robot for the purpose of driving. | |
Public Member Functions | |
RobotDriveBase (const RobotDriveBase &)=delete | |
RobotDriveBase & | operator= (const RobotDriveBase &)=delete |
void | SetDeadband (double deadband) |
Change the default value for deadband scaling. More... | |
void | SetMaxOutput (double maxOutput) |
Configure the scaling factor for using RobotDrive with motor controllers in a mode other than PercentVbus or to limit the maximum output. More... | |
void | SetExpiration (double timeout) override |
double | GetExpiration () const override |
bool | IsAlive () const override |
void | StopMotor () override=0 |
bool | IsSafetyEnabled () const override |
void | SetSafetyEnabled (bool enabled) override |
void | GetDescription (llvm::raw_ostream &desc) const override=0 |
![]() | |
SendableBase (bool addLiveWindow=true) | |
Creates an instance of the sensor base. More... | |
~SendableBase () override | |
Free the resources used by this object. | |
std::string | GetName () const final |
Gets the name of this Sendable object. More... | |
void | SetName (const llvm::Twine &name) final |
Sets the name of this Sendable object. More... | |
std::string | GetSubsystem () const final |
Gets the subsystem name of this Sendable object. More... | |
void | SetSubsystem (const llvm::Twine &subsystem) final |
Sets the subsystem name of this Sendable object. More... | |
![]() | |
void | SetName (const llvm::Twine &subsystem, const llvm::Twine &name) |
Sets both the subsystem name and device name of this Sendable object. More... | |
virtual void | InitSendable (SendableBuilder &builder)=0 |
Initializes this Sendable object. More... | |
Protected Member Functions | |
double | Limit (double number) |
Limit motor values to the -1.0 to +1.0 range. | |
double | ApplyDeadband (double number, double deadband) |
Returns 0.0 if the given value is within the specified range around zero. More... | |
void | Normalize (llvm::MutableArrayRef< double > wheelSpeeds) |
Normalize all wheel speeds if the magnitude of any wheel is greater than 1.0. | |
![]() | |
void | AddChild (std::shared_ptr< Sendable > child) |
Add a child component. More... | |
void | AddChild (void *child) |
Add a child component. More... | |
void | SetName (const llvm::Twine &moduleType, int channel) |
Sets the name of the sensor with a channel number. More... | |
void | SetName (const llvm::Twine &moduleType, int moduleNumber, int channel) |
Sets the name of the sensor with a module and channel number. More... | |
Protected Attributes | |
double | m_deadband = 0.02 |
double | m_maxOutput = 1.0 |
MotorSafetyHelper | m_safetyHelper {this} |
Common base class for drive platforms.
|
protected |
Returns 0.0 if the given value is within the specified range around zero.
The remaining range between the deadband and 1.0 is scaled from 0.0 to 1.0.
value | value to clip |
deadband | range around zero |
void RobotDriveBase::SetDeadband | ( | double | deadband | ) |
Change the default value for deadband scaling.
The default value is 0.02. Values smaller then the deadband are set to 0, while values larger then the deadband are scaled from 0.0 to 1.0. See ApplyDeadband().
deadband | The deadband to set. |
void RobotDriveBase::SetMaxOutput | ( | double | maxOutput | ) |
Configure the scaling factor for using RobotDrive with motor controllers in a mode other than PercentVbus or to limit the maximum output.
maxOutput | Multiplied with the output percentage computed by the drive functions. |