WPILibC++  unspecified
frc::RobotDriveBase Class Referenceabstract

Common base class for drive platforms. More...

#include <RobotDriveBase.h>

Inheritance diagram for frc::RobotDriveBase:
Collaboration diagram for frc::RobotDriveBase:

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
 
RobotDriveBaseoperator= (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
 
- Public Member Functions inherited from frc::SendableBase
 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...
 
- Public Member Functions inherited from frc::Sendable
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.
 
- Protected Member Functions inherited from frc::SendableBase
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}
 

Detailed Description

Common base class for drive platforms.

Member Function Documentation

double RobotDriveBase::ApplyDeadband ( double  value,
double  deadband 
)
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.

Parameters
valuevalue to clip
deadbandrange 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().

Parameters
deadbandThe 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.

Parameters
maxOutputMultiplied with the output percentage computed by the drive functions.

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