40 const VirtualRobot::RobotNodePtr& tcp =
nullptr,
41 const VirtualRobot::JacobiProvider::InverseJacobiMethod
42 invJacMethod = VirtualRobot::JacobiProvider::eSVDDamped,
43 bool _considerJointLimits =
true);
48 Eigen::VectorXf
calculate(
const Eigen::VectorXf& cartesianVel,
49 VirtualRobot::IKSolver::CartesianSelection mode);
50 Eigen::VectorXf
calculate(
const Eigen::VectorXf& cartesianVel,
51 float KpJointLimitAvoidanceScale,
52 VirtualRobot::IKSolver::CartesianSelection mode);
53 Eigen::VectorXf
calculate(
const Eigen::VectorXf& cartesianVel,
54 const Eigen::VectorXf& nullspaceVel,
55 VirtualRobot::IKSolver::CartesianSelection mode);
60 VirtualRobot::IKSolver::CartesianSelection mode);
63 float cartesianRadianRegularization);
69 VirtualRobot::RobotNodeSetPtr
rns;
70 VirtualRobot::DifferentialIKPtr
ik;
71 VirtualRobot::RobotNodePtr
_tcp;
78 void calculateJacobis(VirtualRobot::IKSolver::CartesianSelection mode);
79 Eigen::MatrixXf _jacobiWithCosts;
81 bool clampJacobiAtJointLimits(VirtualRobot::IKSolver::CartesianSelection mode,
82 const Eigen::VectorXf& cartesianVel,
84 Eigen::MatrixXf& _inv,
85 float jointLimitCheckAccuracy = 0.001f);
86 bool _considerJointLimits =
true;
87 float _cartesianMMRegularization;
88 float _cartesianRadianRegularization;
89 Eigen::VectorXf _jointCosts;