CompositeDiffIK Class Reference

#include <RobotAPI/libraries/diffik/CompositeDiffIK.h>

Classes

class  NullspaceGradient
 
class  NullspaceJointLimitAvoidance
 
class  NullspaceJointTarget
 
class  NullspaceTarget
 
struct  NullspaceTargetStep
 
struct  Parameters
 
struct  Result
 
struct  SolveState
 
class  Target
 
struct  TargetStep
 

Public Types

typedef std::shared_ptr< class NullspaceGradient > NullspaceGradientPtr
 
typedef std::shared_ptr< class NullspaceJointLimitAvoidance > NullspaceJointLimitAvoidancePtr
 
typedef std::shared_ptr< class NullspaceJointTarget > NullspaceJointTargetPtr
 
typedef std::shared_ptr< class NullspaceTarget > NullspaceTargetPtr
 
typedef std::shared_ptr< Target > TargetPtr
 

Public Member Functions

void addNullspaceGradient (const NullspaceGradientPtr &gradient)
 
NullspaceTargetPtr addNullspacePositionTarget (const VirtualRobot::RobotNodePtr &tcp, const Eigen::Vector3f &target)
 
void addTarget (const TargetPtr &target)
 
TargetPtr addTarget (const VirtualRobot::RobotNodePtr &tcp, const Eigen::Matrix4f &target, VirtualRobot::IKSolver::CartesianSelection mode)
 
int CartesianSelectionToSize (VirtualRobot::IKSolver::CartesianSelection mode)
 
 CompositeDiffIK (const VirtualRobot::RobotNodeSetPtr &rns)
 
Result solve (Parameters params)
 
void step (Parameters &params, SolveState &s, int stepNr)
 

Static Public Member Functions

static Eigen::MatrixXf CalculateNullspaceLU (const Eigen::Matrix4f &jacobi)
 
static Eigen::MatrixXf CalculateNullspaceSVD (const Eigen::Matrix4f &jacobi)
 
static Eigen::VectorXf LimitInfNormTo (Eigen::VectorXf vec, float maxValue)
 

Member Typedef Documentation

◆ NullspaceGradientPtr

typedef std::shared_ptr<class NullspaceGradient> NullspaceGradientPtr

◆ NullspaceJointLimitAvoidancePtr

◆ NullspaceJointTargetPtr

typedef std::shared_ptr<class NullspaceJointTarget> NullspaceJointTargetPtr

◆ NullspaceTargetPtr

typedef std::shared_ptr<class NullspaceTarget> NullspaceTargetPtr

◆ TargetPtr

typedef std::shared_ptr<Target> TargetPtr

Constructor & Destructor Documentation

◆ CompositeDiffIK()

CompositeDiffIK ( const VirtualRobot::RobotNodeSetPtr & rns)

Member Function Documentation

◆ addNullspaceGradient()

void addNullspaceGradient ( const NullspaceGradientPtr & gradient)

◆ addNullspacePositionTarget()

CompositeDiffIK::NullspaceTargetPtr addNullspacePositionTarget ( const VirtualRobot::RobotNodePtr & tcp,
const Eigen::Vector3f & target )

◆ addTarget() [1/2]

void addTarget ( const TargetPtr & target)

◆ addTarget() [2/2]

CompositeDiffIK::TargetPtr addTarget ( const VirtualRobot::RobotNodePtr & tcp,
const Eigen::Matrix4f & target,
VirtualRobot::IKSolver::CartesianSelection mode )

◆ CalculateNullspaceLU()

Eigen::MatrixXf CalculateNullspaceLU ( const Eigen::Matrix4f & jacobi)
static

V contains right singular vector and nullspace: V.shape: (cols,cols) singular vectors: V[:,0:rows] nullspace: V[:,rows:cols-rows]

◆ CalculateNullspaceSVD()

Eigen::MatrixXf CalculateNullspaceSVD ( const Eigen::Matrix4f & jacobi)
static

◆ CartesianSelectionToSize()

int CartesianSelectionToSize ( VirtualRobot::IKSolver::CartesianSelection mode)

◆ LimitInfNormTo()

Eigen::VectorXf LimitInfNormTo ( Eigen::VectorXf vec,
float maxValue )
static

◆ solve()

◆ step()

void step ( CompositeDiffIK::Parameters & params,
SolveState & s,
int stepNr )

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