166 ScopedRecursiveLockPtr lock = getLock();
186 return std::make_unique<ScopedRecursiveLock>(mutex);
190 return ScopedRecursiveLockPtr();
197 ScopedRecursiveLockPtr lock = getLock();
206 update(
dt, measuredValue, targetValue);
213 ScopedRecursiveLockPtr lock = getLock();
220 ScopedRecursiveLockPtr lock = getLock();
227 ScopedRecursiveLockPtr lock = getLock();
234 ScopedRecursiveLockPtr lock = getLock();
274 pdControlValue =
pdOutputFilter->update(deltaSec, pdControlValue);
279 double deriv = (
controlValue - oldControlValue) / deltaSec;
287 double const controlValueClamped =
292 <<
", cV clamped: " << controlValueClamped <<
", i: " << (
Ki *
integral)
293 <<
", d: " << (
Kd *
derivative) <<
", dt: " << deltaSec;
304 ScopedRecursiveLockPtr lock = getLock();
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.
double controlValueDerivation
double getControlValue() const
void update(double deltaSec, double measuredValue, double targetValue)
std::shared_ptr< rtfilters::RTFilterBase > differentialFilter
double conditionalIntegralErrorTreshold
void setTarget(double newTarget)
void setMaxControlValue(double newMax)
PIDController & operator=(PIDController &&o)
IceUtil::Time lastUpdateTime
std::shared_ptr< rtfilters::RTFilterBase > pdOutputFilter
static IceUtil::Time GetTime(TimeMode timeMode=TimeMode::VirtualTime)
Get the current time.
static int Sign(double value)
static float angleModPI(float value)
static double LimitTo(double value, double absThreshold)
#define ARMARX_DEBUG
The logging level for output that is only interesting while debugging.
std::shared_ptr< ScopedRecursiveLock > ScopedRecursiveLockPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.