#include <flex-joints/flexi-hips.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) |
const eVector3 & | currentFlexToJoint (const eVector2 &delta) |
const eVector2 & | estimateFlexingTorque (const eVector3 &hipPos, const eVector3 &jointTorque) |
const eVector2 & | estimateFlexingTorque (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 FlexSettings & | getSettings () |
void | reset () |
void | setLeftFlex0 (const eVector2 &delta0) |
const eVector2 & | getLeftFlex0 (void) |
void | setRightFlex0 (const eVector2 &delta0) |
const eVector2 & | getRightFlex0 (void) |
const eVector2 | getLeftFlex (void) |
const eVector2 | getRightFlex (void) |
const eVector2 | getLeftFlexRate (void) |
const eVector2 | getRightFlexRate (void) |
const eArray2 & | get_summation_LH (void) |
const eArray2 & | get_summation_RH (void) |
const std::deque< eArray2 > & | get_queue_LH (void) |
const std::deque< eArray2 > & | get_queue_RH (void) |
flex::Flex::Flex | ( | ) |
flex::Flex::Flex | ( | const FlexSettings & | settings | ) |
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)
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.
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.
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.
const eVector2 & flex::Flex::estimateFlexingTorque | ( | const eVector3 & | hipPos, |
const eVector3 & | jointTorque | ||
) |
const eVector2 & flex::Flex::estimateFlexingTorque | ( | const eVector3 & | hipPos, |
const eVector3 & | jointTorque, | ||
const eVector2 & | delta0, | ||
const eVector3 & | jointForce | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void flex::Flex::initialize | ( | const FlexSettings & | settings | ) |
void flex::Flex::reset | ( | ) |
|
inline |
|
inline |