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.
 
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 LogSenderPtrgetLogSender () 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
 

Detailed Description

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

Definition at line 39 of file MultiDimPIDController.h.

Member Typedef Documentation

◆ PIDVectorX

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

Definition at line 42 of file MultiDimPIDController.h.

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

Definition at line 44 of file MultiDimPIDController.h.

◆ ~MultiDimPIDControllerTemplate()

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

Definition at line 74 of file MultiDimPIDController.h.

Member Function Documentation

◆ getControlValue()

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

Definition at line 201 of file MultiDimPIDController.h.

+ Here is the caller graph for this function:

◆ preallocate()

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

Definition at line 66 of file MultiDimPIDController.h.

+ Here is the caller graph for this function:

◆ reset()

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

Definition at line 214 of file MultiDimPIDController.h.

+ Here is the call graph for this function:

◆ setMaxControlValue()

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

Definition at line 207 of file MultiDimPIDController.h.

◆ update() [1/2]

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

Definition at line 79 of file MultiDimPIDController.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ update() [2/2]

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

Definition at line 185 of file MultiDimPIDController.h.

+ Here is the call graph for this function:

Member Data Documentation

◆ controlValue

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

Definition at line 236 of file MultiDimPIDController.h.

◆ derivative

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

Definition at line 231 of file MultiDimPIDController.h.

◆ firstRun

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

Definition at line 239 of file MultiDimPIDController.h.

◆ integral

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

Definition at line 229 of file MultiDimPIDController.h.

◆ Kd

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

Definition at line 228 of file MultiDimPIDController.h.

◆ Ki

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

Definition at line 228 of file MultiDimPIDController.h.

◆ Kp

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

Definition at line 228 of file MultiDimPIDController.h.

◆ lastUpdateTime

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

Definition at line 235 of file MultiDimPIDController.h.

◆ limitless

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

Definition at line 242 of file MultiDimPIDController.h.

◆ maxControlValue

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

Definition at line 237 of file MultiDimPIDController.h.

◆ maxDerivation

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

Definition at line 238 of file MultiDimPIDController.h.

◆ maxIntegral

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

Definition at line 230 of file MultiDimPIDController.h.

◆ mutex

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

Definition at line 240 of file MultiDimPIDController.h.

◆ previousError

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

Definition at line 232 of file MultiDimPIDController.h.

◆ processValue

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

Definition at line 233 of file MultiDimPIDController.h.

◆ target

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

Definition at line 234 of file MultiDimPIDController.h.

◆ threadSafe

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

Definition at line 241 of file MultiDimPIDController.h.


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