59 units::meter_t trackwidth,
89 units::meters_per_second_t leftVelocityTolerance,
90 units::meters_per_second_t rightVelocityTolerance);
106 const Pose2d& currentPose, units::meters_per_second_t leftVelocity,
107 units::meters_per_second_t rightVelocity,
const Pose2d& poseRef,
108 units::meters_per_second_t leftVelocityRef,
109 units::meters_per_second_t rightVelocityRef);
124 const Pose2d& currentPose, units::meters_per_second_t leftVelocity,
125 units::meters_per_second_t rightVelocity,
129 units::meter_t m_trackwidth;
#define WPILIB_DLLEXPORT
Definition SymbolExports.h:36
The linear time-varying differential drive controller has a similar form to the LQR,...
Definition LTVDifferentialDriveController.h:40
bool AtReference() const
Returns true if the pose error is within tolerance of the reference.
LTVDifferentialDriveController(const frc::LinearSystem< 2, 2, 2 > &plant, units::meter_t trackwidth, const wpi::array< double, 5 > &Qelems, const wpi::array< double, 2 > &Relems, units::second_t dt)
Constructs a linear time-varying differential drive controller.
DifferentialDriveWheelVoltages Calculate(const Pose2d ¤tPose, units::meters_per_second_t leftVelocity, units::meters_per_second_t rightVelocity, const Trajectory::State &desiredState)
Returns the left and right output voltages of the LTV controller.
LTVDifferentialDriveController & operator=(LTVDifferentialDriveController &&)=default
Move assignment operator.
DifferentialDriveWheelVoltages Calculate(const Pose2d ¤tPose, units::meters_per_second_t leftVelocity, units::meters_per_second_t rightVelocity, const Pose2d &poseRef, units::meters_per_second_t leftVelocityRef, units::meters_per_second_t rightVelocityRef)
Returns the left and right output voltages of the LTV controller.
void SetTolerance(const Pose2d &poseTolerance, units::meters_per_second_t leftVelocityTolerance, units::meters_per_second_t rightVelocityTolerance)
Sets the pose error which is considered tolerable for use with AtReference().
LTVDifferentialDriveController(LTVDifferentialDriveController &&)=default
Move constructor.
A plant defined using state-space notation.
Definition LinearSystem.h:35
Represents a 2D pose containing translational and rotational elements.
Definition Pose2d.h:28
This class is a wrapper around std::array that does compile time size checking.
Definition array.h:26
Implements a table of key-value pairs with linear interpolation between values.
Definition interpolating_map.h:23
Eigen::Vector< double, Size > Vectord
Definition EigenCore.h:12
Motor voltages for a differential drive.
Definition DifferentialDriveWheelVoltages.h:14
Represents one point on the trajectory.
Definition Trajectory.h:34