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 PIDVectorXgetControlValue () 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. More...
 
MessageTypeT getEffectiveLoggingLevel () const
 
 Logging ()
 
void setLocalMinimumLoggingLevel (MessageTypeT level)
 With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set. More...
 
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 LogSenderPtrgetLogSender () const
 Retrieve log sender. More...
 
LogSenderPtr loghelper (const char *file, int line, const char *function) const
 
- Protected Attributes inherited from Logging
MessageTypeT minimumLoggingLevel
 
SpamFilterDataPtr spamFilter
 
LogTag tag
 

Detailed Description

template<int dimensions = Eigen::Dynamic>
class armarx::MultiDimPIDControllerTemplate< dimensions >

Definition at line 39 of file MultiDimPIDController.h.

Member Typedef Documentation

◆ PIDVectorX

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

Definition at line 43 of file MultiDimPIDController.h.

Constructor & Destructor Documentation

◆ MultiDimPIDControllerTemplate()

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

Definition at line 45 of file MultiDimPIDController.h.

◆ ~MultiDimPIDControllerTemplate()

Definition at line 74 of file MultiDimPIDController.h.

Member Function Documentation

◆ getControlValue()

const PIDVectorX& getControlValue ( ) const
inline

Definition at line 186 of file MultiDimPIDController.h.

+ Here is the caller graph for this function:

◆ preallocate()

void preallocate ( size_t  size)
inline

Definition at line 66 of file MultiDimPIDController.h.

+ Here is the caller graph for this function:

◆ reset()

void reset ( )
inline

Definition at line 196 of file MultiDimPIDController.h.

+ Here is the caller graph for this function:

◆ setMaxControlValue()

void setMaxControlValue ( double  value)
inline

Definition at line 190 of file MultiDimPIDController.h.

◆ update() [1/2]

void update ( const double  deltaSec,
const PIDVectorX measuredValue,
const PIDVectorX targetValue 
)
inline

Definition at line 75 of file MultiDimPIDController.h.

+ Here is the caller graph for this function:

◆ update() [2/2]

void update ( const PIDVectorX measuredValue,
const PIDVectorX targetValue 
)
inline

Definition at line 171 of file MultiDimPIDController.h.

Member Data Documentation

◆ controlValue

PIDVectorX controlValue

Definition at line 219 of file MultiDimPIDController.h.

◆ derivative

double derivative

Definition at line 214 of file MultiDimPIDController.h.

◆ firstRun

bool firstRun

Definition at line 222 of file MultiDimPIDController.h.

◆ integral

double integral

Definition at line 212 of file MultiDimPIDController.h.

◆ Kd

float Kd

Definition at line 211 of file MultiDimPIDController.h.

◆ Ki

float Ki

Definition at line 211 of file MultiDimPIDController.h.

◆ Kp

float Kp

Definition at line 211 of file MultiDimPIDController.h.

◆ lastUpdateTime

IceUtil::Time lastUpdateTime

Definition at line 218 of file MultiDimPIDController.h.

◆ limitless

std::vector<bool> limitless

Definition at line 225 of file MultiDimPIDController.h.

◆ maxControlValue

double maxControlValue

Definition at line 220 of file MultiDimPIDController.h.

◆ maxDerivation

double maxDerivation

Definition at line 221 of file MultiDimPIDController.h.

◆ maxIntegral

double maxIntegral = std::numeric_limits<double>::max()

Definition at line 213 of file MultiDimPIDController.h.

◆ mutex

std::recursive_mutex mutex
mutable

Definition at line 223 of file MultiDimPIDController.h.

◆ previousError

double previousError

Definition at line 215 of file MultiDimPIDController.h.

◆ processValue

PIDVectorX processValue

Definition at line 216 of file MultiDimPIDController.h.

◆ target

PIDVectorX target

Definition at line 217 of file MultiDimPIDController.h.

◆ threadSafe

bool threadSafe = true

Definition at line 224 of file MultiDimPIDController.h.


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