8 #define IKFAST_HAS_LIBRARY 9 #define IKFAST_NAMESPACE hya_ik 22 template <
typename SCALAR =
double>
26 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
39 const std::vector<size_t>& freeJoints = std::vector<size_t>())
override 45 throw std::runtime_error(
"Error specifying free joints in HyAInverseKinematics");
48 Eigen::Matrix<SCALAR, 3, 3, Eigen::RowMajor> eeBaseRotationRowMajor =
49 eeBasePose.getRotationMatrix().toImplementation();
50 const std::vector<double> freeJoints_ikf(freeJoints.begin(), freeJoints.end());
51 hya_ik::ComputeIk(eeBasePose.position().toImplementation().data(), eeBaseRotationRowMajor.data(),
52 freeJoints_ikf.size() > 0 ? freeJoints_ikf.data() :
nullptr, solutions);
56 if (num_solutions == 0)
61 for (
size_t i = 0;
i < num_solutions;
i++)
65 sol.
getPositions().data(), freeJoints_ikf.size() > 0 ? freeJoints_ikf.data() :
nullptr);
80 const std::vector<size_t>& freeJoints = std::vector<size_t>())
override 82 return computeInverseKinematics(res, eeWorldPose.inReferenceFrame(baseWorldPose), freeJoints);
const ct::rbd::JointState< 6, SCALAR >::Position & jointLowerLimit()
Definition: HyAJointLimits.h:13
Definition: HyAInverseKinematics.h:23
bool computeInverseKinematics(JointPositionsVector_t &res, const RigidBodyPoseTpl &eeBasePose, const std::vector< size_t > &freeJoints=std::vector< size_t >()) override
Definition: HyAInverseKinematics.h:37
virtual const IkSolutionBase< T > & GetSolution(size_t index) const
typename BASE::JointPosition_t JointPosition_t
Definition: HyAInverseKinematics.h:29
bool computeInverseKinematics(JointPositionsVector_t &res, const RigidBodyPoseTpl &eeWorldPose, const RigidBodyPoseTpl &baseWorldPose, const std::vector< size_t > &freeJoints=std::vector< size_t >()) override
Definition: HyAInverseKinematics.h:77
typename BASE::RigidBodyPoseTpl RigidBodyPoseTpl
Definition: HyAInverseKinematics.h:31
const ct::rbd::JointState< 6, SCALAR >::Position & jointUpperLimit()
Definition: HyAJointLimits.h:22
typename JointState< 6, SCALAR >::Position JointPosition_t
virtual void GetSolution(T *solution, const T *freevalues) const=0
void toUniquePosition(T lowerLimitVec, double tolerance=0.0)
typename BASE::JointPositionsVector_t JointPositionsVector_t
Definition: HyAInverseKinematics.h:30
JointPositionBlock getPositions()
virtual size_t GetNumSolutions() const
bool checkPositionLimits(const T lowerLimit, const T upperLimit, const double tolerance=0.0)
std::vector< JointPosition_t, Eigen::aligned_allocator< JointPosition_t > > JointPositionsVector_t