flex::Flex Class Reference

#include <flex-joints/flexi-hips.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)
 
const eVector3currentFlexToJoint (const eVector2 &delta)
 
const eVector2estimateFlexingTorque (const eVector3 &hipPos, const eVector3 &jointTorque)
 
const eVector2estimateFlexingTorque (const eVector3 &hipPos, const eVector3 &jointTorque, const eVector2 &delta0, const eVector3 &jointForce)
 
void correctDeflections (const eVector2 &leftFlexingTorque, const eVector2 &rightFlexingTorque, eVectorX &q, eVectorX &dq)
 
void correctEstimatedDeflections (const eVectorX &desiredTorque, eVectorX &q, eVectorX &dq, const eVector3 &leftForce, const eVector3 &rightForce)
 
void correctEstimatedDeflections (const eVectorX &desiredTorque, eVectorX &q, eVectorX &dq)
 
const FlexSettingsgetSettings ()
 
void reset ()
 
void setLeftFlex0 (const eVector2 &delta0)
 
const eVector2getLeftFlex0 (void)
 
void setRightFlex0 (const eVector2 &delta0)
 
const eVector2getRightFlex0 (void)
 
const eVector2 getLeftFlex (void)
 
const eVector2 getRightFlex (void)
 
const eVector2 getLeftFlexRate (void)
 
const eVector2 getRightFlexRate (void)
 
const eArray2get_summation_LH (void)
 
const eArray2get_summation_RH (void)
 
const std::deque< eArray2 > & get_queue_LH (void)
 
const std::deque< eArray2 > & get_queue_RH (void)
 

Constructor & Destructor Documentation

◆ Flex() [1/2]

flex::Flex::Flex ( )

◆ Flex() [2/2]

flex::Flex::Flex ( const FlexSettings settings)

Member Function Documentation

◆ computeDeflection()

const eVector2 & flex::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 flex::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.

◆ correctEstimatedDeflections() [1/2]

void flex::Flex::correctEstimatedDeflections ( const eVectorX desiredTorque,
eVectorX q,
eVectorX dq,
const eVector3 leftForce,
const eVector3 rightForce 
)

Arguments:

desired torque are the values commanded by the controller.

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

Each force (leftForce, rightForce) must be provided in the local hip joint frame.

◆ correctEstimatedDeflections() [2/2]

void flex::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.

◆ currentFlexToJoint()

const eVector3 & flex::Flex::currentFlexToJoint ( const eVector2 delta)

◆ estimateFlexingTorque() [1/2]

const eVector2 & flex::Flex::estimateFlexingTorque ( const eVector3 hipPos,
const eVector3 jointTorque 
)

◆ estimateFlexingTorque() [2/2]

const eVector2 & flex::Flex::estimateFlexingTorque ( const eVector3 hipPos,
const eVector3 jointTorque,
const eVector2 delta0,
const eVector3 jointForce 
)

◆ get_queue_LH()

const std::deque<eArray2>& flex::Flex::get_queue_LH ( void  )
inline

◆ get_queue_RH()

const std::deque<eArray2>& flex::Flex::get_queue_RH ( void  )
inline

◆ get_summation_LH()

const eArray2& flex::Flex::get_summation_LH ( void  )
inline

◆ get_summation_RH()

const eArray2& flex::Flex::get_summation_RH ( void  )
inline

◆ getLeftFlex()

const eVector2 flex::Flex::getLeftFlex ( void  )
inline

◆ getLeftFlex0()

const eVector2& flex::Flex::getLeftFlex0 ( void  )
inline

◆ getLeftFlexRate()

const eVector2 flex::Flex::getLeftFlexRate ( void  )
inline

◆ getRightFlex()

const eVector2 flex::Flex::getRightFlex ( void  )
inline

◆ getRightFlex0()

const eVector2& flex::Flex::getRightFlex0 ( void  )
inline

◆ getRightFlexRate()

const eVector2 flex::Flex::getRightFlexRate ( void  )
inline

◆ getSettings()

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

◆ initialize()

void flex::Flex::initialize ( const FlexSettings settings)

◆ reset()

void flex::Flex::reset ( )

◆ setLeftFlex0()

void flex::Flex::setLeftFlex0 ( const eVector2 delta0)
inline

◆ setRightFlex0()

void flex::Flex::setRightFlex0 ( const eVector2 delta0)
inline

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