KBMComponent.h File Reference
#include <ArmarXCore/core/Component.h>
#include <MemoryX/interface/components/KBMComponentInterface.h>
#include <MemoryX/interface/components/LongtermMemoryInterface.h>
#include <ArmarXCore/util/variants/eigen3/MatrixVariant.h>
#include <MemoryX/libraries/helpers/KinematicBezierMaps/kbm.h>
#include <cfloat>
+ Include dependency graph for KBMComponent.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  KBMComponent
 Wrapper for the KBM class. More...
 
class  KBMComponentPropertyDefinitions
 

Namespaces

 armarx
 This file offers overloads of toIce() and fromIce() functions for STL container types.
 
 armarx::KBMDifferentialIK
 

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 &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 More...
 
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. More...