CartesianNaturalPositionController Class Reference

#include <RobotAPI/libraries/core/CartesianNaturalPositionController.h>

Public Member Functions

Eigen::VectorXf actualElbVel (const Eigen::VectorXf &jointVel)
 
Eigen::VectorXf actualTcpVel (const Eigen::VectorXf &jointVel)
 
const Eigen::VectorXf calculate (float dt, VirtualRobot::IKSolver::CartesianSelection mode=VirtualRobot::IKSolver::All)
 
const Eigen::VectorXf calculateNullspaceTargetDifference ()
 
 CartesianNaturalPositionController (const VirtualRobot::RobotNodeSetPtr &rns, const VirtualRobot::RobotNodePtr &elbow, float maxPositionAcceleration, float maxOrientationAcceleration, float maxNullspaceAcceleration, const VirtualRobot::RobotNodePtr &tcp=nullptr)
 
void clearFeedForwardVelocity ()
 
void clearNullspaceTarget ()
 
const Eigen::Vector3f & getCurrentElbowTarget () const
 
const Eigen::VectorXf & getCurrentNullspaceTarget () const
 
const Eigen::Matrix4f & getCurrentTarget () const
 
const Eigen::Vector3f getCurrentTargetPosition () const
 
float getOrientationError () const
 
float getPositionError () const
 
std::string getStatusText ()
 
bool hasNullspaceTarget () const
 
bool isTargetNear () const
 
bool isTargetReached () const
 
void setConfig (const CartesianNaturalPositionControllerConfig &cfg)
 
void setFeedForwardVelocity (const Eigen::Vector3f &feedForwardVelocityPos, const Eigen::Vector3f &feedForwardVelocityOri)
 
void setFeedForwardVelocity (const Eigen::Vector6f &feedForwardVelocity)
 
void setNullSpaceControl (bool enabled)
 
void setNullspaceTarget (const Eigen::VectorXf &nullspaceTarget)
 
void setNullspaceTarget (const std::vector< float > &nullspaceTarget)
 
void setTarget (const Eigen::Matrix4f &tcpTarget, const Eigen::Vector3f &elbowTarget)
 

Static Public Member Functions

static Eigen::VectorXf LimitInfNormTo (const Eigen::VectorXf &vec, const std::vector< float > &maxValue)
 

Public Attributes

bool autoClearFeedForward = true
 
Eigen::Vector6f cartesianVelocity = Eigen::Vector6f::Zero()
 
Eigen::Vector3f elbowTarget
 
Eigen::Vector6f feedForwardVelocity = Eigen::Vector6f::Zero()
 
float jointLimitAvoidanceKp = 0.f
 
float jointLimitAvoidanceScale = 0.f
 
Eigen::VectorXf lastJointVelocity
 
std::vector< float > maxJointVelocity
 
std::vector< float > maxNullspaceVelocity
 
bool nullSpaceControlEnabled = true
 
Eigen::VectorXf nullspaceTarget = Eigen::VectorXf(0)
 
float nullspaceTargetKp = 0
 
CartesianPositionController pcElb
 
CartesianPositionController pcTcp
 
Eigen::Matrix4f tcpTarget
 
float thresholdOrientationNear = 0.f
 
float thresholdOrientationReached = 0.f
 
float thresholdPositionNear = 0.f
 
float thresholdPositionReached = 0.f
 
CartesianVelocityController vcElb
 
CartesianVelocityControllerWithRamp vcTcp
 

Constructor & Destructor Documentation

◆ CartesianNaturalPositionController()

CartesianNaturalPositionController ( const VirtualRobot::RobotNodeSetPtr & rns,
const VirtualRobot::RobotNodePtr & elbow,
float maxPositionAcceleration,
float maxOrientationAcceleration,
float maxNullspaceAcceleration,
const VirtualRobot::RobotNodePtr & tcp = nullptr )

Member Function Documentation

◆ actualElbVel()

Eigen::VectorXf actualElbVel ( const Eigen::VectorXf & jointVel)

◆ actualTcpVel()

Eigen::VectorXf actualTcpVel ( const Eigen::VectorXf & jointVel)

◆ calculate()

const Eigen::VectorXf calculate ( float dt,
VirtualRobot::IKSolver::CartesianSelection mode = VirtualRobot::IKSolver::All )

◆ calculateNullspaceTargetDifference()

const Eigen::VectorXf calculateNullspaceTargetDifference ( )

◆ clearFeedForwardVelocity()

void clearFeedForwardVelocity ( )

◆ clearNullspaceTarget()

void clearNullspaceTarget ( )

◆ getCurrentElbowTarget()

const Eigen::Vector3f & getCurrentElbowTarget ( ) const

◆ getCurrentNullspaceTarget()

const Eigen::VectorXf & getCurrentNullspaceTarget ( ) const

◆ getCurrentTarget()

const Eigen::Matrix4f & getCurrentTarget ( ) const

◆ getCurrentTargetPosition()

const Eigen::Vector3f getCurrentTargetPosition ( ) const

◆ getOrientationError()

float getOrientationError ( ) const

◆ getPositionError()

float getPositionError ( ) const

◆ getStatusText()

std::string getStatusText ( )

◆ hasNullspaceTarget()

bool hasNullspaceTarget ( ) const

◆ isTargetNear()

bool isTargetNear ( ) const

◆ isTargetReached()

bool isTargetReached ( ) const

◆ LimitInfNormTo()

Eigen::VectorXf LimitInfNormTo ( const Eigen::VectorXf & vec,
const std::vector< float > & maxValue )
static

◆ setConfig()

void setConfig ( const CartesianNaturalPositionControllerConfig & cfg)

◆ setFeedForwardVelocity() [1/2]

void setFeedForwardVelocity ( const Eigen::Vector3f & feedForwardVelocityPos,
const Eigen::Vector3f & feedForwardVelocityOri )

◆ setFeedForwardVelocity() [2/2]

void setFeedForwardVelocity ( const Eigen::Vector6f & feedForwardVelocity)

◆ setNullSpaceControl()

void setNullSpaceControl ( bool enabled)

◆ setNullspaceTarget() [1/2]

void setNullspaceTarget ( const Eigen::VectorXf & nullspaceTarget)

◆ setNullspaceTarget() [2/2]

void setNullspaceTarget ( const std::vector< float > & nullspaceTarget)

◆ setTarget()

void setTarget ( const Eigen::Matrix4f & tcpTarget,
const Eigen::Vector3f & elbowTarget )

Member Data Documentation

◆ autoClearFeedForward

bool autoClearFeedForward = true

◆ cartesianVelocity

Eigen::Vector6f cartesianVelocity = Eigen::Vector6f::Zero()

◆ elbowTarget

Eigen::Vector3f elbowTarget

◆ feedForwardVelocity

Eigen::Vector6f feedForwardVelocity = Eigen::Vector6f::Zero()

◆ jointLimitAvoidanceKp

float jointLimitAvoidanceKp = 0.f

◆ jointLimitAvoidanceScale

float jointLimitAvoidanceScale = 0.f

◆ lastJointVelocity

Eigen::VectorXf lastJointVelocity

◆ maxJointVelocity

std::vector<float> maxJointVelocity

◆ maxNullspaceVelocity

std::vector<float> maxNullspaceVelocity

◆ nullSpaceControlEnabled

bool nullSpaceControlEnabled = true

◆ nullspaceTarget

Eigen::VectorXf nullspaceTarget = Eigen::VectorXf(0)

◆ nullspaceTargetKp

float nullspaceTargetKp = 0

◆ pcElb

◆ pcTcp

◆ tcpTarget

Eigen::Matrix4f tcpTarget

◆ thresholdOrientationNear

float thresholdOrientationNear = 0.f

◆ thresholdOrientationReached

float thresholdOrientationReached = 0.f

◆ thresholdPositionNear

float thresholdPositionNear = 0.f

◆ thresholdPositionReached

float thresholdPositionReached = 0.f

◆ vcElb

◆ vcTcp


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