Go to the documentation of this file.
28 #include <Eigen/Dense>
30 #include <VirtualRobot/Robot.h>
34 #include <RobotAPI/interface/core/CartesianWaypointControllerConfig.h>
46 class CartesianWaypointController;
53 const Eigen::VectorXf& currentJointVelocity,
54 float maxPositionAcceleration,
55 float maxOrientationAcceleration,
56 float maxNullspaceAcceleration,
57 const VirtualRobot::RobotNodePtr& tcp =
nullptr,
58 const VirtualRobot::RobotNodePtr& referenceFrame =
nullptr
62 [[deprecated(
"compued null space velocity does not match pseudo inverse svd method in simox. never use this function.")]]
72 void setFeedForwardVelocity(
const Eigen::Vector3f& feedForwardVelocityPos,
const Eigen::Vector3f& feedForwardVelocityOri);
95 void setConfig(
const CartesianWaypointControllerConfig& cfg);
118 Eigen::VectorXf _out;
119 Eigen::VectorXf _jnv;
float getOrientationError() const
float thresholdOrientationReached
std::vector< Eigen::Matrix4f > waypoints
void setNullSpaceControl(bool enabled)
bool isCurrentTargetNear() const
void setCurrentJointVelocity(const Eigen::Ref< const Eigen::VectorXf > ¤tJointVelocity)
const Eigen::Vector3f getCurrentTargetPosition() const
CartesianPositionController ctrlCartesianPos2Vel
Vertex target(const detail::edge_base< Directed, Vertex > &e, const PCG &)
bool nullSpaceControlEnabled
size_t skipToClosestWaypoint(float rad2mmFactor)
bool isLastWaypoint() const
float getPositionError() const
void clearFeedForwardVelocity()
void swapWaypoints(std::vector< Eigen::Matrix4f > &waypoints)
void setFeedForwardVelocity(const Eigen::Vector6f &feedForwardVelocity)
std::shared_ptr< CartesianWaypointController > CartesianWaypointControllerPtr
float thresholdPositionNear
CartesianWaypointController(const VirtualRobot::RobotNodeSetPtr &rns, const Eigen::VectorXf ¤tJointVelocity, float maxPositionAcceleration, float maxOrientationAcceleration, float maxNullspaceAcceleration, const VirtualRobot::RobotNodePtr &tcp=nullptr, const VirtualRobot::RobotNodePtr &referenceFrame=nullptr)
const Eigen::Matrix4f & getCurrentTarget() const
bool isFinalTargetNear() const
bool isCurrentTargetReached() const
Eigen::Vector6f cartesianVelocity
const Eigen::VectorXf & calculate(float dt)
Matrix< float, 6, 1 > Vector6f
size_t currentWaypointIndex
float thresholdPositionReached
void setWaypoints(const std::vector< Eigen::Matrix4f > &waypoints)
void addWaypoint(const Eigen::Matrix4f &waypoint)
MatrixXX< 4, 4, float > Matrix4f
void setTarget(const Eigen::Matrix4f &target)
float KpJointLimitAvoidance
float jointLimitAvoidanceScale
bool autoClearFeedForward
bool isFinalTargetReached() const
void setConfig(const CartesianWaypointControllerConfig &cfg)
Eigen::Vector6f feedForwardVelocity
float thresholdOrientationNear
This file offers overloads of toIce() and fromIce() functions for STL container types.
CartesianVelocityControllerWithRamp ctrlCartesianVelWithRamps
std::string getStatusText()