BasicControllers.h File Reference
#include <cmath>
#include <type_traits>
#include <ArmarXCore/core/util/algorithm.h>
#include <RobotAPI/libraries/core/PIDController.h>
#include <RobotAPI/libraries/core/math/MathUtils.h>
+ Include dependency graph for BasicControllers.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  deltas
 
class  MinJerkPositionController
 
struct  MinJerkPositionController::FixedMinJerkState
 
struct  MinJerkPositionController::Output
 
struct  MinJerkPositionController::State
 
struct  PositionThroughVelocityControllerWithAccelerationAndPositionBounds
 
struct  PositionThroughVelocityControllerWithAccelerationBounds
 
struct  PositionThroughVelocityControllerWithAccelerationBoundsAndPeriodicPosition
 
struct  PositionThroughVelocityControllerWithAccelerationRamps
 
struct  PositionThroughVelocityControllerWithAccelerationRamps::Output
 
class  RampedAccelerationVelocityControllerConfiguration
 
struct  VelocityControllerWithAccelerationAndPositionBounds
 Performs velocity control while staying in positional bounds, obeying acceleration / deceleration and staying below a velocity bound. More...
 
struct  VelocityControllerWithAccelerationBounds
 
struct  VelocityControllerWithRampedAcceleration
 
struct  VelocityControllerWithRampedAcceleration::Output
 
struct  VelocityControllerWithRampedAccelerationAndPositionBounds
 

Namespaces

 armarx
 This file offers overloads of toIce() and fromIce() functions for STL container types.
 

Typedefs

typedef std::shared_ptr< const RampedAccelerationVelocityControllerConfiguration > RampedAccelerationVelocityControllerConfigurationCPtr
 
typedef std::shared_ptr< class RampedAccelerationVelocityControllerConfiguration > RampedAccelerationVelocityControllerConfigurationPtr
 

Functions

deltas accelerateToVelocity (float v0, float acc, float vt)
 
float angleDistance (float angle1, float angle2)
 
float brakingDistance (float v0, float deceleration)
 
void findVelocityAndAccelerationForTimeAndDistance (float distance, float v0, float vmax, float dec, std::array< deltas, 3 > trapeze, float newDt, float &newV, float &newAcc, float &newDec)
 
template<class T , class = typename std::enable_if<std::is_floating_point<T>::value>::type>
T periodicClamp (T value, T periodLo, T periodHi)
 
float positionThroughVelocityControlWithAccelerationAndPositionBounds (float dt, float maxDt, float currentV, float maxV, float acceleration, float deceleration, float currentPosition, float targetPosition, float p, float positionLimitLo, float positionLimitHi)
 
float positionThroughVelocityControlWithAccelerationBounds (float dt, float maxDt, float currentV, float maxV, float acceleration, float deceleration, float currentPosition, float targetPosition, float p)
 
float positionThroughVelocityControlWithAccelerationBoundsAndPeriodicPosition (float dt, float maxDt, float currentV, float maxV, float acceleration, float deceleration, float currentPosition, float targetPosition, float pControlPosErrorLimit, float p, float &direction, float positionPeriodLo, float positionPeriodHi)
 
template<class T , class = typename std::enable_if<std::is_floating_point<T>::value>::type>
std::pair< T, Tpq (T p, T q)
 
std::array< deltas, 3 > trapeze (float v0, float acc, float vMax, float dec, float vt, float dx)
 
float trapezeArea (float v0, float vmax, float dt1, float dt2, float dt3)
 
std::array< deltas, 3 > trapezeWithDt (float v0, float acc, float vMax, float dec, float vt, float dx, float dt)
 
float velocityControlWithAccelerationAndPositionBounds (float dt, float maxDt, float currentV, float targetV, float maxV, float acceleration, float deceleration, float directSetVLimit, float currentPosition, float positionLimitLoSoft, float positionLimitHiSoft, float positionLimitLoHard, float positionLimitHiHard)
 
float velocityControlWithAccelerationBounds (float dt, float maxDt, const float currentV, float targetV, float maxV, float acceleration, float deceleration, float directSetVLimit)