diff --git a/source/RobotAPI/libraries/core/CartesianVelocityController.cpp b/source/RobotAPI/libraries/core/CartesianVelocityController.cpp index d873e26c9078764965ba7f49f3f95de7ee63bcb9..cdb5fc3666a89f134f59772f13a0b65c2bb99c66 100644 --- a/source/RobotAPI/libraries/core/CartesianVelocityController.cpp +++ b/source/RobotAPI/libraries/core/CartesianVelocityController.cpp @@ -30,11 +30,11 @@ using namespace armarx; -CartesianVelocityController::CartesianVelocityController(const VirtualRobot::RobotNodeSetPtr& rns, const VirtualRobot::RobotNodePtr& tcp) +CartesianVelocityController::CartesianVelocityController(const VirtualRobot::RobotNodeSetPtr& rns, const VirtualRobot::RobotNodePtr& tcp, const VirtualRobot::JacobiProvider::InverseJacobiMethod invJacMethod) : rns(rns) { //ARMARX_IMPORTANT << VAROUT(rns->getRobot()->getRootNode()); - ik.reset(new VirtualRobot::DifferentialIK(rns, rns->getRobot()->getRootNode(), VirtualRobot::JacobiProvider::eSVDDamped)); + ik.reset(new VirtualRobot::DifferentialIK(rns, rns->getRobot()->getRootNode(), invJacMethod)); this->tcp = tcp ? tcp : rns->getTCP(); this->cartesianMMRegularization = 100; diff --git a/source/RobotAPI/libraries/core/CartesianVelocityController.h b/source/RobotAPI/libraries/core/CartesianVelocityController.h index 66fbcf4bb8ddc7462e2cc087a811cbb5971ff076..9c8c32d8836b15ca259280b6ab3ee4e766375f9c 100644 --- a/source/RobotAPI/libraries/core/CartesianVelocityController.h +++ b/source/RobotAPI/libraries/core/CartesianVelocityController.h @@ -39,7 +39,8 @@ namespace armarx class CartesianVelocityController { public: - CartesianVelocityController(const VirtualRobot::RobotNodeSetPtr& rns, const VirtualRobot::RobotNodePtr& tcp = nullptr); + CartesianVelocityController(const VirtualRobot::RobotNodeSetPtr& rns, const VirtualRobot::RobotNodePtr& tcp = nullptr, + const VirtualRobot::JacobiProvider::InverseJacobiMethod invJacMethod = VirtualRobot::JacobiProvider::eSVDDamped); Eigen::VectorXf calculate(const Eigen::VectorXf& cartesianVel, float KpJointLimitAvoidanceScale, VirtualRobot::IKSolver::CartesianSelection mode); Eigen::VectorXf calculate(const Eigen::VectorXf& cartesianVel, const Eigen::VectorXf& nullspaceVel, VirtualRobot::IKSolver::CartesianSelection mode); diff --git a/source/RobotAPI/statecharts/ForceTorqueUtility/CMakeLists.txt b/source/RobotAPI/statecharts/ForceTorqueUtility/CMakeLists.txt index ef239c2905ea1998e8a54f3a5f4ef7d8a88afff4..de39626430545225ec015175d53796e5ea837687 100644 --- a/source/RobotAPI/statecharts/ForceTorqueUtility/CMakeLists.txt +++ b/source/RobotAPI/statecharts/ForceTorqueUtility/CMakeLists.txt @@ -25,7 +25,7 @@ armarx_component_set_name("ForceTorqueUtility") #endif() set(COMPONENT_LIBS -# ArmarXCoreInterfaces RobotAPIInterfaces RobotAPICore ${Simox_LIBRARIES} + ArmarXCoreInterfaces RobotAPIInterfaces RobotAPICore ${Simox_LIBRARIES} ArmarXCore ArmarXCoreStatechart ArmarXCoreObservers) # Sources