|
Functions | |
bool | applyProprioceptionLimits (Eigen::Map< memoryx::KBM::Vector > &solution, const memoryx::KBM::Vector &lowerProprioceptionLimits, const memoryx::KBM::Vector &upperProprioceptionLimits) |
apply limits to solution and return true, if solution has been changed = solution was not in limits More... | |
memoryx::KBM::Vector | calculateJointDeltas (const memoryx::KBM::Models::KBM &kbm, const memoryx::KBM::Vector &target, const memoryx::KBM::Vector &position, const memoryx::KBM::Vector &proprioception, float stepSizeFactor, float maxStepSize) |
calculateJointDeltas is in internal function called by solve More... | |
bool | checkProprioceptionLimits (const memoryx::KBM::Vector &solution, const memoryx::KBM::Vector &lowerProprioceptionLimits, const memoryx::KBM::Vector &upperProprioceptionLimits) |
check if solution is within the limits More... | |
float | randomFloat (float LO, float HI) |
randomFloat creates a random float between LO and HI More... | |
memoryx::KBM::Vector | randomProprioception (const memoryx::KBM::Vector &lowerProprioceptionLimits, const memoryx::KBM::Vector &upperProprioceptionLimits) |
Creates a vector of random values between the limits. More... | |
bool | solve (const memoryx::KBM::Models::KBM &kbm, const memoryx::KBM::Vector &targetPosition, const memoryx::KBM::Vector ¤tPostion, const memoryx::KBM::Vector ¤tProprioception, Eigen::Map< memoryx::KBM::Vector > &solution, float positionTolerance=5.0f, float minimumDelta=0.0f, bool requireImprovment=false, int maxSteps=50, float stepSizeFactor=0.2f, float maxStepSize=FLT_MAX) |
solves the inverse kinematics More... | |
bool | solveMany (const memoryx::KBM::Models::KBM &kbm, const memoryx::KBM::Vector &targetPosition, const memoryx::KBM::Vector ¤tPosition, const memoryx::KBM::Vector ¤tProprioception, const memoryx::KBM::Vector &lowerProprioceptionLimits, const memoryx::KBM::Vector &upperProprioceptionLimits, Eigen::Map< memoryx::KBM::Vector > &solution, bool applyLimits=true, int maxSolves=25, float positionTolerance=5.0f, float minimumDelta=0.0f, bool requireImprovment=false, int maxSteps=50, float stepSizeFactor=0.2f, float maxStepSize=FLT_MAX) |
KBMDifferentialIK::solveMany runs solve many times. More... | |
bool applyProprioceptionLimits | ( | Eigen::Map< memoryx::KBM::Vector > & | solution, |
const memoryx::KBM::Vector & | lowerProprioceptionLimits, | ||
const memoryx::KBM::Vector & | upperProprioceptionLimits | ||
) |
apply limits to solution and return true, if solution has been changed = solution was not in limits
Definition at line 1084 of file KBMComponent.cpp.
memoryx::KBM::Vector calculateJointDeltas | ( | const memoryx::KBM::Models::KBM & | kbm, |
const memoryx::KBM::Vector & | target, | ||
const memoryx::KBM::Vector & | position, | ||
const memoryx::KBM::Vector & | proprioception, | ||
float | stepSizeFactor, | ||
float | maxStepSize | ||
) |
calculateJointDeltas is in internal function called by solve
Definition at line 987 of file KBMComponent.cpp.
bool checkProprioceptionLimits | ( | const memoryx::KBM::Vector & | solution, |
const memoryx::KBM::Vector & | lowerProprioceptionLimits, | ||
const memoryx::KBM::Vector & | upperProprioceptionLimits | ||
) |
check if solution is within the limits
Definition at line 1050 of file KBMComponent.cpp.
randomFloat creates a random float between LO and HI
Definition at line 982 of file KBMComponent.cpp.
memoryx::KBM::Vector randomProprioception | ( | const memoryx::KBM::Vector & | lowerProprioceptionLimits, |
const memoryx::KBM::Vector & | upperProprioceptionLimits | ||
) |
Creates a vector of random values between the limits.
Definition at line 1028 of file KBMComponent.cpp.
bool solve | ( | const memoryx::KBM::Models::KBM & | kbm, |
const memoryx::KBM::Vector & | targetPosition, | ||
const memoryx::KBM::Vector & | currentPostion, | ||
const memoryx::KBM::Vector & | currentProprioception, | ||
Eigen::Map< memoryx::KBM::Vector > & | solution, | ||
float | positionTolerance = 5.0f , |
||
float | minimumDelta = 0.0f , |
||
bool | requireImprovment = false , |
||
int | maxSteps = 50 , |
||
float | stepSizeFactor = 0.2f , |
||
float | maxStepSize = FLT_MAX |
||
) |
solves the inverse kinematics
kbm | the learned KBM |
targetPosition | the target position |
currentPosition | the current position |
currentProprioception | the current proprioception |
solution | will contain the joint values that solve the inverse kinematics |
Definition at line 1261 of file KBMComponent.cpp.
bool solveMany | ( | const memoryx::KBM::Models::KBM & | kbm, |
const memoryx::KBM::Vector & | targetPosition, | ||
const memoryx::KBM::Vector & | currentPosition, | ||
const memoryx::KBM::Vector & | currentProprioception, | ||
const memoryx::KBM::Vector & | lowerProprioceptionLimits, | ||
const memoryx::KBM::Vector & | upperProprioceptionLimits, | ||
Eigen::Map< memoryx::KBM::Vector > & | solution, | ||
bool | applyLimits = true , |
||
int | maxSolves = 25 , |
||
float | positionTolerance = 5.0f , |
||
float | minimumDelta = 0.0f , |
||
bool | requireImprovment = false , |
||
int | maxSteps = 50 , |
||
float | stepSizeFactor = 0.2f , |
||
float | maxStepSize = FLT_MAX |
||
) |
KBMDifferentialIK::solveMany runs solve many times.
kbm | |
targetPosition | |
currentProprioception | |
lowerProprioceptionLimits | |
upperProprioceptionLimits | |
solution | |
maxSolves | maximum number of times solve() should be called |
positionTolerance | |
minimumDelta | |
requireImprovment | |
maxSteps | |
stepSizeFactor | |
maxStepSize |
Definition at line 1127 of file KBMComponent.cpp.