HEBI C++ API  1.0.0
hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType > Class Template Referencefinal

#include <gains.hpp>

Public Member Functions

FloatFieldType & kP ()
 Proportional PID gain. More...
 
const FloatFieldType & kP () const
 Proportional PID gain. More...
 
FloatFieldType & kI ()
 Integral PID gain. More...
 
const FloatFieldType & kI () const
 Integral PID gain. More...
 
FloatFieldType & kD ()
 Derivative PID gain. More...
 
const FloatFieldType & kD () const
 Derivative PID gain. More...
 
FloatFieldType & feedForward ()
 Feed forward term (this term is multiplied by the target and added to the output). More...
 
const FloatFieldType & feedForward () const
 Feed forward term (this term is multiplied by the target and added to the output). More...
 
FloatFieldType & deadZone ()
 Error values within +/- this value from zero are treated as zero (in terms of computed proportional output, input to numerical derivative, and accumulated integral error). More...
 
const FloatFieldType & deadZone () const
 Error values within +/- this value from zero are treated as zero (in terms of computed proportional output, input to numerical derivative, and accumulated integral error). More...
 
FloatFieldType & iClamp ()
 Maximum allowed value for the output of the integral component of the PID loop; the integrated error is not allowed to exceed value that will generate this number. More...
 
const FloatFieldType & iClamp () const
 Maximum allowed value for the output of the integral component of the PID loop; the integrated error is not allowed to exceed value that will generate this number. More...
 
FloatFieldType & punch ()
 Constant offset to the PID output outside of the deadzone; it is added when the error is positive and subtracted when it is negative. More...
 
const FloatFieldType & punch () const
 Constant offset to the PID output outside of the deadzone; it is added when the error is positive and subtracted when it is negative. More...
 
FloatFieldType & minTarget ()
 Minimum allowed value for input to the PID controller. More...
 
const FloatFieldType & minTarget () const
 Minimum allowed value for input to the PID controller. More...
 
FloatFieldType & maxTarget ()
 Maximum allowed value for input to the PID controller. More...
 
const FloatFieldType & maxTarget () const
 Maximum allowed value for input to the PID controller. More...
 
FloatFieldType & targetLowpass ()
 A simple lowpass filter applied to the target set point; needs to be between 0 and 1. At each timestep: x_t = x_t * a + x_{t-1} * (1 - a). More...
 
const FloatFieldType & targetLowpass () const
 A simple lowpass filter applied to the target set point; needs to be between 0 and 1. At each timestep: x_t = x_t * a + x_{t-1} * (1 - a). More...
 
FloatFieldType & minOutput ()
 Output from the PID controller is limited to a minimum of this value. More...
 
const FloatFieldType & minOutput () const
 Output from the PID controller is limited to a minimum of this value. More...
 
FloatFieldType & maxOutput ()
 Output from the PID controller is limited to a maximum of this value. More...
 
const FloatFieldType & maxOutput () const
 Output from the PID controller is limited to a maximum of this value. More...
 
FloatFieldType & outputLowpass ()
 A simple lowpass filter applied to the controller output; needs to be between 0 and 1. At each timestep: x_t = x_t * a + x_{t-1} * (1 - a). More...
 
const FloatFieldType & outputLowpass () const
 A simple lowpass filter applied to the controller output; needs to be between 0 and 1. At each timestep: x_t = x_t * a + x_{t-1} * (1 - a). More...
 
BoolFieldType & dOnError ()
 Controls whether the Kd term uses the "derivative of error" or "derivative of measurement." When the setpoints have step inputs or are noisy, setting this to false can eliminate corresponding spikes or noise in the output. More...
 
const BoolFieldType & dOnError () const
 Controls whether the Kd term uses the "derivative of error" or "derivative of measurement." When the setpoints have step inputs or are noisy, setting this to false can eliminate corresponding spikes or noise in the output. More...
 

Member Function Documentation

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::kP ( )
inline

Proportional PID gain.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::kP ( ) const
inline

Proportional PID gain.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::kI ( )
inline

Integral PID gain.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::kI ( ) const
inline

Integral PID gain.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::kD ( )
inline

Derivative PID gain.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::kD ( ) const
inline

Derivative PID gain.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::feedForward ( )
inline

Feed forward term (this term is multiplied by the target and added to the output).

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::feedForward ( ) const
inline

Feed forward term (this term is multiplied by the target and added to the output).

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::deadZone ( )
inline

Error values within +/- this value from zero are treated as zero (in terms of computed proportional output, input to numerical derivative, and accumulated integral error).

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::deadZone ( ) const
inline

Error values within +/- this value from zero are treated as zero (in terms of computed proportional output, input to numerical derivative, and accumulated integral error).

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::iClamp ( )
inline

Maximum allowed value for the output of the integral component of the PID loop; the integrated error is not allowed to exceed value that will generate this number.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::iClamp ( ) const
inline

Maximum allowed value for the output of the integral component of the PID loop; the integrated error is not allowed to exceed value that will generate this number.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::punch ( )
inline

Constant offset to the PID output outside of the deadzone; it is added when the error is positive and subtracted when it is negative.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::punch ( ) const
inline

Constant offset to the PID output outside of the deadzone; it is added when the error is positive and subtracted when it is negative.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::minTarget ( )
inline

Minimum allowed value for input to the PID controller.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::minTarget ( ) const
inline

Minimum allowed value for input to the PID controller.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::maxTarget ( )
inline

Maximum allowed value for input to the PID controller.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::maxTarget ( ) const
inline

Maximum allowed value for input to the PID controller.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::targetLowpass ( )
inline

A simple lowpass filter applied to the target set point; needs to be between 0 and 1. At each timestep: x_t = x_t * a + x_{t-1} * (1 - a).

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::targetLowpass ( ) const
inline

A simple lowpass filter applied to the target set point; needs to be between 0 and 1. At each timestep: x_t = x_t * a + x_{t-1} * (1 - a).

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::minOutput ( )
inline

Output from the PID controller is limited to a minimum of this value.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::minOutput ( ) const
inline

Output from the PID controller is limited to a minimum of this value.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::maxOutput ( )
inline

Output from the PID controller is limited to a maximum of this value.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::maxOutput ( ) const
inline

Output from the PID controller is limited to a maximum of this value.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::outputLowpass ( )
inline

A simple lowpass filter applied to the controller output; needs to be between 0 and 1. At each timestep: x_t = x_t * a + x_{t-1} * (1 - a).

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const FloatFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::outputLowpass ( ) const
inline

A simple lowpass filter applied to the controller output; needs to be between 0 and 1. At each timestep: x_t = x_t * a + x_{t-1} * (1 - a).

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
BoolFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::dOnError ( )
inline

Controls whether the Kd term uses the "derivative of error" or "derivative of measurement." When the setpoints have step inputs or are noisy, setting this to false can eliminate corresponding spikes or noise in the output.

template<typename MessageType, typename FloatFieldType, typename BoolFieldType, typename FloatEnumType, typename BoolEnumType>
const BoolFieldType& hebi::Gains< MessageType, FloatFieldType, BoolFieldType, FloatEnumType, BoolEnumType >::dOnError ( ) const
inline

Controls whether the Kd term uses the "derivative of error" or "derivative of measurement." When the setpoints have step inputs or are noisy, setting this to false can eliminate corresponding spikes or noise in the output.


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