EDifferentialIK Class Reference

#include <RobotAPI/components/units/TCPControlUnit.h>

+ Inheritance diagram for EDifferentialIK:

Public Types

typedef Eigen::VectorXf(EDifferentialIK::* ComputeFunction) (float)
 

Public Member Functions

void applyDOFWeightsToJacobian (Eigen::MatrixXf &Jacobian)
 
void applyTCPWeights (Eigen::MatrixXf &invJacobian)
 
void applyTCPWeights (VirtualRobot::RobotNodePtr tcp, Eigen::MatrixXf &partJacobian)
 
Eigen::MatrixXf calcFullJacobian ()
 
void clearGoals ()
 
Eigen::VectorXf computeStep (float stepSize) override
 
Eigen::VectorXf computeStepIndependently (float stepSize)
 
bool computeSteps (Eigen::VectorXf &resultJointDelta, float stepSize=1.f, float mininumChange=0.01f, int maxNStep=50, ComputeFunction computeFunction=&DifferentialIK::computeStep)
 
bool computeSteps (float stepSize=1.f, float mininumChange=0.01f, int maxNStep=50) override
 
 EDifferentialIK (VirtualRobot::RobotNodeSetPtr rns, VirtualRobot::RobotNodePtr coordSystem=VirtualRobot::RobotNodePtr(), VirtualRobot::JacobiProvider::InverseJacobiMethod invJacMethod=eSVD)
 
int getJacobianRows ()
 
VirtualRobot::RobotNodePtr getRefFrame ()
 
float getWeightedError ()
 
float getWeightedErrorPosition (VirtualRobot::SceneObjectPtr tcp)
 
void setDOFWeights (Eigen::VectorXf dofWeights)
 
void setGoal (const Eigen::Matrix4f &goal, VirtualRobot::RobotNodePtr tcp, VirtualRobot::IKSolver::CartesianSelection mode, float tolerancePosition, float toleranceRotation, Eigen::VectorXf tcpWeight)
 
void setRefFrame (VirtualRobot::RobotNodePtr coordSystem)
 
bool solveIK (float stepSize=1, float minChange=0.01f, int maxSteps=50, bool useAlternativeOnFail=false)
 
- Public Member Functions inherited from Logging
SpamFilterDataPtr deactivateSpam (float deactivationDurationSec=10.0f, const std::string &identifier="", bool deactivate=true) const
 disables the logging for the current line for the given amount of seconds. More...
 
MessageTypeT getEffectiveLoggingLevel () const
 
 Logging ()
 
void setLocalMinimumLoggingLevel (MessageTypeT level)
 With setLocalMinimumLoggingLevel the minimum verbosity-level of log-messages can be set. More...
 
void setTag (const LogTag &tag)
 
void setTag (const std::string &tagName)
 
virtual ~Logging ()
 

Protected Member Functions

bool adjustDOFWeightsToJointLimits (const Eigen::VectorXf &plannedJointDeltas)
 
- Protected Member Functions inherited from Logging
bool checkLogLevel (MessageTypeT level) const
 
const LogSenderPtrgetLogSender () const
 Retrieve log sender. More...
 
LogSenderPtr loghelper (const char *file, int line, const char *function) const
 

Protected Attributes

Eigen::VectorXf dofWeights
 
std::map< VirtualRobot::SceneObjectPtr, Eigen::VectorXf > tcpWeights
 
Eigen::VectorXf tcpWeightVec
 
- Protected Attributes inherited from Logging
MessageTypeT minimumLoggingLevel
 
SpamFilterDataPtr spamFilter
 
LogTag tag
 

Detailed Description

Definition at line 238 of file TCPControlUnit.h.

Member Typedef Documentation

◆ ComputeFunction

typedef Eigen::VectorXf(EDifferentialIK::* ComputeFunction(float)

Definition at line 241 of file TCPControlUnit.h.

Constructor & Destructor Documentation

◆ EDifferentialIK()

EDifferentialIK ( VirtualRobot::RobotNodeSetPtr  rns,
VirtualRobot::RobotNodePtr  coordSystem = VirtualRobot::RobotNodePtr(),
VirtualRobot::JacobiProvider::InverseJacobiMethod  invJacMethod = eSVD 
)

Definition at line 626 of file TCPControlUnit.cpp.

Member Function Documentation

◆ adjustDOFWeightsToJointLimits()

bool adjustDOFWeightsToJointLimits ( const Eigen::VectorXf &  plannedJointDeltas)
protected

Definition at line 1259 of file TCPControlUnit.cpp.

+ Here is the call graph for this function:

◆ applyDOFWeightsToJacobian()

void applyDOFWeightsToJacobian ( Eigen::MatrixXf &  Jacobian)

Definition at line 1083 of file TCPControlUnit.cpp.

+ Here is the caller graph for this function:

◆ applyTCPWeights() [1/2]

void applyTCPWeights ( Eigen::MatrixXf &  invJacobian)

◆ applyTCPWeights() [2/2]

void applyTCPWeights ( VirtualRobot::RobotNodePtr  tcp,
Eigen::MatrixXf &  partJacobian 
)

◆ calcFullJacobian()

Eigen::MatrixXf calcFullJacobian ( )

Definition at line 631 of file TCPControlUnit.cpp.

◆ clearGoals()

void clearGoals ( )

Definition at line 666 of file TCPControlUnit.cpp.

◆ computeStep()

VectorXf computeStep ( float  stepSize)
override

Definition at line 845 of file TCPControlUnit.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ computeStepIndependently()

VectorXf computeStepIndependently ( float  stepSize)

Definition at line 917 of file TCPControlUnit.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ computeSteps() [1/2]

bool computeSteps ( Eigen::VectorXf &  resultJointDelta,
float  stepSize = 1.f,
float  mininumChange = 0.01f,
int  maxNStep = 50,
ComputeFunction  computeFunction = &DifferentialIK::computeStep 
)

◆ computeSteps() [2/2]

bool computeSteps ( float  stepSize = 1.f,
float  mininumChange = 0.01f,
int  maxNStep = 50 
)
override

Definition at line 705 of file TCPControlUnit.cpp.

+ Here is the caller graph for this function:

◆ getJacobianRows()

int getJacobianRows ( )
inline

Definition at line 249 of file TCPControlUnit.h.

◆ getRefFrame()

VirtualRobot::RobotNodePtr getRefFrame ( )
inline

Definition at line 245 of file TCPControlUnit.h.

◆ getWeightedError()

float getWeightedError ( )

Definition at line 1195 of file TCPControlUnit.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getWeightedErrorPosition()

float getWeightedErrorPosition ( VirtualRobot::SceneObjectPtr  tcp)

Definition at line 1209 of file TCPControlUnit.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setDOFWeights()

void setDOFWeights ( Eigen::VectorXf  dofWeights)

Definition at line 700 of file TCPControlUnit.cpp.

◆ setGoal()

void setGoal ( const Eigen::Matrix4f &  goal,
VirtualRobot::RobotNodePtr  tcp,
VirtualRobot::IKSolver::CartesianSelection  mode,
float  tolerancePosition,
float  toleranceRotation,
Eigen::VectorXf  tcpWeight 
)

Definition at line 681 of file TCPControlUnit.cpp.

+ Here is the call graph for this function:

◆ setRefFrame()

void setRefFrame ( VirtualRobot::RobotNodePtr  coordSystem)

Definition at line 676 of file TCPControlUnit.cpp.

◆ solveIK()

bool solveIK ( float  stepSize = 1,
float  minChange = 0.01f,
int  maxSteps = 50,
bool  useAlternativeOnFail = false 
)

Definition at line 1061 of file TCPControlUnit.cpp.

+ Here is the call graph for this function:

Member Data Documentation

◆ dofWeights

Eigen::VectorXf dofWeights
protected

Definition at line 276 of file TCPControlUnit.h.

◆ tcpWeights

std::map<VirtualRobot:: SceneObjectPtr, Eigen::VectorXf> tcpWeights
protected

Definition at line 277 of file TCPControlUnit.h.

◆ tcpWeightVec

Eigen::VectorXf tcpWeightVec
protected

Definition at line 278 of file TCPControlUnit.h.


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