diff --git a/source/RobotAPI/libraries/diffik/SimpleDiffIK.h b/source/RobotAPI/libraries/diffik/SimpleDiffIK.h index 2adcf162d666013f1d61016be15394761ad30e02..e51be99211a5c8c71f612ab920be6a65bfabdcab 100644 --- a/source/RobotAPI/libraries/diffik/SimpleDiffIK.h +++ b/source/RobotAPI/libraries/diffik/SimpleDiffIK.h @@ -111,4 +111,19 @@ namespace armarx ///@brief Use this to check a trajectory of waypoints static Reachability CalculateReachability(const std::vector<Eigen::Matrix4f> targets, const Eigen::VectorXf& initialJV, VirtualRobot::RobotNodeSetPtr rns, VirtualRobot::RobotNodePtr tcp = VirtualRobot::RobotNodePtr(), Parameters params = Parameters()); }; + + class SimpleDiffIKProvider : + public DiffIKProvider + { + public: + SimpleDiffIKProvider(VirtualRobot::RobotNodeSetPtr rns, VirtualRobot::RobotNodePtr tcp = VirtualRobot::RobotNodePtr(), SimpleDiffIK::Parameters params = SimpleDiffIK::Parameters()); + DiffIKResult SolveAbsolute(const Eigen::Matrix4f& targetPose); + DiffIKResult SolveRelative(const Eigen::Matrix4f& targetPose, const Eigen::VectorXf& startJointValues); + + private: + VirtualRobot::RobotNodeSetPtr rns; + VirtualRobot::RobotNodePtr tcp; + SimpleDiffIK::Parameters params; + }; } +