MultiDimPIDControllerTemplate< dimensions > Class Template Reference

#include <RobotAPI/libraries/core/MultiDimPIDController.h>

+ Inheritance diagram for MultiDimPIDControllerTemplate< dimensions >:

Public Types

using PIDVectorX = Eigen::Matrix<float, dimensions, 1>
 

Public Member Functions

const PIDVectorX & getControlValue () const
 
 MultiDimPIDControllerTemplate (float Kp, float Ki, float Kd, double maxControlValue=std::numeric_limits< double >::max(), double maxDerivation=std::numeric_limits< double >::max(), bool threadSafe=true, std::vector< bool > limitless={})
 
void preallocate (size_t size)
 
void reset ()
 
void setMaxControlValue (double value)
 
void update (const double deltaSec, const PIDVectorX &measuredValue, const PIDVectorX &targetValue)
 
void update (const PIDVectorX &measuredValue, const PIDVectorX &targetValue)
 
 ~MultiDimPIDControllerTemplate ()
 
- Public Member Functions inherited from Logging
SpamFilterDataPtr deactivateSpam (float deactivationDurationSec=10.0f, const std::string &identifier="", bool deactivate=true) const
 disables the logging for the current line for the given amount of seconds.
 
MessageTypeT getEffectiveLoggingLevel () const
 
 Logging ()
 
void setLocalMinimumLoggingLevel (MessageTypeT level)
 With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set.
 
void setTag (const LogTag &tag)
 
void setTag (const std::string &tagName)
 
virtual ~Logging ()
 

Public Attributes

PIDVectorX controlValue
 
double derivative
 
bool firstRun
 
double integral
 
float Kd
 
float Ki
 
float Kp
 
IceUtil::Time lastUpdateTime
 
std::vector< bool > limitless
 
double maxControlValue
 
double maxDerivation
 
double maxIntegral = std::numeric_limits<double>::max()
 
std::recursive_mutex mutex
 
double previousError
 
PIDVectorX processValue
 
PIDVectorX target
 
bool threadSafe = true
 

Additional Inherited Members

- Protected Member Functions inherited from Logging
bool checkLogLevel (MessageTypeT level) const
 
const LogSenderPtr & getLogSender () const
 Retrieve log sender.
 
LogSenderPtr loghelper (const char *file, int line, const char *function) const
 
- Protected Attributes inherited from Logging
MessageTypeT minimumLoggingLevel
 
SpamFilterDataPtr spamFilter
 
LogTag tag
 

Member Typedef Documentation

◆ PIDVectorX

template<int dimensions = Eigen::Dynamic>
using PIDVectorX = Eigen::Matrix<float, dimensions, 1>

Constructor & Destructor Documentation

◆ MultiDimPIDControllerTemplate()

template<int dimensions = Eigen::Dynamic>
MultiDimPIDControllerTemplate ( float Kp,
float Ki,
float Kd,
double maxControlValue = std::numeric_limits<double>::max(),
double maxDerivation = std::numeric_limits<double>::max(),
bool threadSafe = true,
std::vector< bool > limitless = {} )
inline

◆ ~MultiDimPIDControllerTemplate()

template<int dimensions = Eigen::Dynamic>
~MultiDimPIDControllerTemplate ( )
inline

Member Function Documentation

◆ getControlValue()

template<int dimensions = Eigen::Dynamic>
const PIDVectorX & getControlValue ( ) const
inline

◆ preallocate()

template<int dimensions = Eigen::Dynamic>
void preallocate ( size_t size)
inline

◆ reset()

template<int dimensions = Eigen::Dynamic>
void reset ( )
inline

◆ setMaxControlValue()

template<int dimensions = Eigen::Dynamic>
void setMaxControlValue ( double value)
inline

◆ update() [1/2]

template<int dimensions = Eigen::Dynamic>
void update ( const double deltaSec,
const PIDVectorX & measuredValue,
const PIDVectorX & targetValue )
inline

◆ update() [2/2]

template<int dimensions = Eigen::Dynamic>
void update ( const PIDVectorX & measuredValue,
const PIDVectorX & targetValue )
inline

Member Data Documentation

◆ controlValue

template<int dimensions = Eigen::Dynamic>
PIDVectorX controlValue

◆ derivative

template<int dimensions = Eigen::Dynamic>
double derivative

◆ firstRun

template<int dimensions = Eigen::Dynamic>
bool firstRun

◆ integral

template<int dimensions = Eigen::Dynamic>
double integral

◆ Kd

template<int dimensions = Eigen::Dynamic>
float Kd

◆ Ki

template<int dimensions = Eigen::Dynamic>
float Ki

◆ Kp

template<int dimensions = Eigen::Dynamic>
float Kp

◆ lastUpdateTime

template<int dimensions = Eigen::Dynamic>
IceUtil::Time lastUpdateTime

◆ limitless

template<int dimensions = Eigen::Dynamic>
std::vector<bool> limitless

◆ maxControlValue

template<int dimensions = Eigen::Dynamic>
double maxControlValue

◆ maxDerivation

template<int dimensions = Eigen::Dynamic>
double maxDerivation

◆ maxIntegral

template<int dimensions = Eigen::Dynamic>
double maxIntegral = std::numeric_limits<double>::max()

◆ mutex

template<int dimensions = Eigen::Dynamic>
std::recursive_mutex mutex
mutable

◆ previousError

template<int dimensions = Eigen::Dynamic>
double previousError

◆ processValue

template<int dimensions = Eigen::Dynamic>
PIDVectorX processValue

◆ target

template<int dimensions = Eigen::Dynamic>
PIDVectorX target

◆ threadSafe

template<int dimensions = Eigen::Dynamic>
bool threadSafe = true

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