Go to the documentation of this file.
28 #include <Eigen/Dense>
30 #include <VirtualRobot/Robot.h>
32 #include <RobotAPI/interface/core/CartesianNaturalPositionControllerConfig.h>
45 class CartesianNaturalPositionController;
47 std::shared_ptr<CartesianNaturalPositionController>;
53 const VirtualRobot::RobotNodePtr& elbow,
54 float maxPositionAcceleration,
55 float maxOrientationAcceleration,
56 float maxNullspaceAcceleration,
57 const VirtualRobot::RobotNodePtr& tcp =
nullptr);
61 const std::vector<float>& maxValue);
70 const Eigen::Vector3f& feedForwardVelocityOri);
94 void setConfig(
const CartesianNaturalPositionControllerConfig& cfg);
96 Eigen::VectorXf
actualTcpVel(
const Eigen::VectorXf& jointVel);
97 Eigen::VectorXf
actualElbVel(
const Eigen::VectorXf& jointVel);
129 VirtualRobot::RobotNodeSetPtr rns;
std::vector< float > maxNullspaceVelocity
std::shared_ptr< CartesianNaturalPositionController > CartesianNaturalPositionControllerPtr
void clearFeedForwardVelocity()
void clearNullspaceTarget()
bool autoClearFeedForward
CartesianPositionController pcElb
MatrixXX< 4, 4, float > Matrix4f
const Eigen::VectorXf calculate(float dt, VirtualRobot::IKSolver::CartesianSelection mode=VirtualRobot::IKSolver::All)
void setNullspaceTarget(const Eigen::VectorXf &nullspaceTarget)
const Eigen::VectorXf calculateNullspaceTargetDifference()
CartesianPositionController pcTcp
float jointLimitAvoidanceKp
float thresholdPositionNear
Eigen::Vector3f elbowTarget
const Eigen::Matrix4f & getCurrentTarget() const
void setConfig(const CartesianNaturalPositionControllerConfig &cfg)
const Eigen::Vector3f & getCurrentElbowTarget() const
float thresholdOrientationNear
void setNullSpaceControl(bool enabled)
static Eigen::VectorXf LimitInfNormTo(const Eigen::VectorXf &vec, const std::vector< float > &maxValue)
void setTarget(const Eigen::Matrix4f &tcpTarget, const Eigen::Vector3f &elbowTarget)
Eigen::Vector6f cartesianVelocity
Eigen::VectorXf actualElbVel(const Eigen::VectorXf &jointVel)
Eigen::Vector6f feedForwardVelocity
bool isTargetReached() const
CartesianVelocityController vcElb
bool isTargetNear() const
std::vector< float > maxJointVelocity
const Eigen::VectorXf & getCurrentNullspaceTarget() const
float getOrientationError() const
float thresholdOrientationReached
CartesianVelocityControllerWithRamp vcTcp
float jointLimitAvoidanceScale
const Eigen::Vector3f getCurrentTargetPosition() const
Eigen::Matrix4f tcpTarget
Eigen::VectorXf lastJointVelocity
bool hasNullspaceTarget() const
std::string getStatusText()
float getPositionError() const
float thresholdPositionReached
CartesianNaturalPositionController(const VirtualRobot::RobotNodeSetPtr &rns, const VirtualRobot::RobotNodePtr &elbow, float maxPositionAcceleration, float maxOrientationAcceleration, float maxNullspaceAcceleration, const VirtualRobot::RobotNodePtr &tcp=nullptr)
void setFeedForwardVelocity(const Eigen::Vector6f &feedForwardVelocity)
Eigen::VectorXf actualTcpVel(const Eigen::VectorXf &jointVel)
bool nullSpaceControlEnabled
This file offers overloads of toIce() and fromIce() functions for STL container types.
Eigen::VectorXf nullspaceTarget