Aikido
aikido::robot::IkFast Class Reference

Analytic IK solver that uses pre-compiled IkFast binary. More...

#include <aikido/robot/IkFast.hpp>

Inheritance diagram for aikido::robot::IkFast:
aikido::robot::InverseKinematics

Public Member Functions

 IkFast (::dart::dynamics::MetaSkeletonPtr arm, ::dart::dynamics::BodyNodePtr endEffector, statespace::dart::ConstMetaSkeletonStateSpacePtr armSpace, const std::string &binaryPath)
 
std::vector< Eigen::VectorXd > getSolutions (const Eigen::Isometry3d &targetPose, const size_t maxSolutions) const override
 Returns a set of IK solutions for the given pose. More...
 

Private Attributes

::dart::dynamics::MetaSkeletonPtr mArm
 
::dart::dynamics::BodyNodePtr mEndEffector
 
statespace::dart::ConstMetaSkeletonStateSpacePtr mArmSpace
 
dart::dynamics::SharedLibraryIkFast * mIkFastSolverPtr
 

Detailed Description

Analytic IK solver that uses pre-compiled IkFast binary.

Constructor & Destructor Documentation

◆ IkFast()

aikido::robot::IkFast::IkFast ( ::dart::dynamics::MetaSkeletonPtr  arm,
::dart::dynamics::BodyNodePtr  endEffector,
statespace::dart::ConstMetaSkeletonStateSpacePtr  armSpace,
const std::string &  binaryPath 
)

Member Function Documentation

◆ getSolutions()

std::vector<Eigen::VectorXd> aikido::robot::IkFast::getSolutions ( const Eigen::Isometry3d &  targetPose,
const size_t  maxSolutions 
) const
overridevirtual

Returns a set of IK solutions for the given pose.

Note that at most maxSolutions solutions are returned, but fewer may be (and possibly none if solving fails).

Parameters
targetPoseEnd-effector pose to solve inverse kinematics for.
maxSolutionsUpper limit on how many solutions to find and return.
Returns
solution configurations that reach the target pose.

Implements aikido::robot::InverseKinematics.

Member Data Documentation

◆ mArm

::dart::dynamics::MetaSkeletonPtr aikido::robot::IkFast::mArm
private

◆ mArmSpace

statespace::dart::ConstMetaSkeletonStateSpacePtr aikido::robot::IkFast::mArmSpace
private

◆ mEndEffector

::dart::dynamics::BodyNodePtr aikido::robot::IkFast::mEndEffector
private

◆ mIkFastSolverPtr

dart::dynamics::SharedLibraryIkFast* aikido::robot::IkFast::mIkFastSolverPtr
private