sobec::Flex Class Reference

#include <sobec/flexibility_compensation.hpp>

Public Member Functions

 Flex ()
 
 Flex (const FlexSettings &settings)
 
void initialize (const FlexSettings &settings)
 
const eVector2computeDeflection (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 FlexSettingsgetSettings ()
 
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: