Aikido
aikido::robot::GradientDescentIk Class Reference

Optimization-based IK solver that uses gradient descent from random seed. More...

#include <aikido/robot/GradientDescentIk.hpp>

Inheritance diagram for aikido::robot::GradientDescentIk:
aikido::robot::InverseKinematics

Public Member Functions

 GradientDescentIk (::dart::dynamics::MetaSkeletonPtr arm, ::dart::dynamics::BodyNodePtr endEffector, statespace::dart::ConstMetaSkeletonStateSpacePtr armSpace, common::RNG *rng)
 
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
 
std::shared_ptr< aikido::constraint::SampleablemSeedConfigSampleable
 
::dart::dynamics::InverseKinematicsPtr mDartIkSolver
 

Detailed Description

Optimization-based IK solver that uses gradient descent from random seed.

Constructor & Destructor Documentation

◆ GradientDescentIk()

aikido::robot::GradientDescentIk::GradientDescentIk ( ::dart::dynamics::MetaSkeletonPtr  arm,
::dart::dynamics::BodyNodePtr  endEffector,
statespace::dart::ConstMetaSkeletonStateSpacePtr  armSpace,
common::RNG rng 
)

Member Function Documentation

◆ getSolutions()

std::vector<Eigen::VectorXd> aikido::robot::GradientDescentIk::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::GradientDescentIk::mArm
private

◆ mArmSpace

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

◆ mDartIkSolver

::dart::dynamics::InverseKinematicsPtr aikido::robot::GradientDescentIk::mDartIkSolver
private

◆ mEndEffector

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

◆ mSeedConfigSampleable

std::shared_ptr<aikido::constraint::Sampleable> aikido::robot::GradientDescentIk::mSeedConfigSampleable
private