sobec::Flex Class Reference

#include <sobec/flexibility_compensation.hpp>

Public Member Functions

 Flex ()
 
 Flex (const FlexSettings &settings)
 
void initialize (const FlexSettings &settings)
 
const eVector2 & computeDeflection (const eArray2 &torques, const eArray2 &delta0, const eArray2 &stiffness, const eArray2 &damping, const double dt)
 
void correctDeflections (const eVector2 &leftFlexingTorque, const eVector2 &rightFlexingTorque, eVectorX &q, eVectorX &dq)
 
void correctEstimatedDeflections (const eVectorX &desiredTorque, eVectorX &q, eVectorX &dq)
 
const FlexSettings & getSettings ()
 
void resetLeftFlex0 ()
 
void resetRightFlex0 ()
 
void setLeftFlex0 (const eVector2 &delta0)
 
void setRightFlex0 (const eVector2 &delta0)
 

Constructor & Destructor Documentation

◆ Flex() [1/2]

sobec::Flex::Flex ( )

◆ Flex() [2/2]

sobec::Flex::Flex ( const FlexSettings &  settings)

Member Function Documentation

◆ computeDeflection()

const eVector2 & sobec::Flex::computeDeflection ( const eArray2 &  torques,
const eArray2 &  delta0,
const eArray2 &  stiffness,
const eArray2 &  damping,
const double  dt 
)

Computes the deflection expected for certain flexing torque according to:

delta = (delta0 * damping - torques * dt) * inverse(stiffness * dt + damping)

◆ correctDeflections()

void sobec::Flex::correctDeflections ( const eVector2 &  leftFlexingTorque,
const eVector2 &  rightFlexingTorque,
eVectorX &  q,
eVectorX &  dq 
)

Arguments:

leftFlexTorque and rightFlexingTorque are composed as {pitch_torque, roll_torque}

q and dq are the robot posture and velocities without the freeFlyer part.

leftHipIndices and rightHipIndices indicate the hip joints for both q, and dq.

Todo:
: Do we include an option to choose between filtered / not filtered?

◆ correctEstimatedDeflections()

void sobec::Flex::correctEstimatedDeflections ( const eVectorX &  desiredTorque,
eVectorX &  q,
eVectorX &  dq 
)

Arguments:

desired torque are the values commanded by the controller.

q and dq are the robot posture and velocities without the freeFlyer part.

leftHipIndices and rightHipIndices indicate the hip joints for both q, and dq.

◆ getSettings()

const FlexSettings& sobec::Flex::getSettings ( )
inline

◆ initialize()

void sobec::Flex::initialize ( const FlexSettings &  settings)

◆ resetLeftFlex0()

void sobec::Flex::resetLeftFlex0 ( )
inline

◆ resetRightFlex0()

void sobec::Flex::resetRightFlex0 ( )
inline

◆ setLeftFlex0()

void sobec::Flex::setLeftFlex0 ( const eVector2 &  delta0)
inline

◆ setRightFlex0()

void sobec::Flex::setRightFlex0 ( const eVector2 &  delta0)
inline

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