se2ez
se2ez::CollisionAwareChainIK Class Reference

Convenience wrapper around CollisionAwareTreeIK for solving chains with a single tip frame. More...

#include <ik.h>

Inheritance diagram for se2ez::CollisionAwareChainIK:
[legend]

Public Member Functions

 CollisionAwareChainIK (const RobotPtr &robot, const std::string &frame, unsigned int iterations=50, double eps=1e-4)
 Constructor. More...
 
virtual ~CollisionAwareChainIK ()
 Destructor. More...
 
 CollisionAwareChainIK (const CollisionAwareChainIK &)=delete
 
 CollisionAwareChainIK (CollisionAwareChainIK &&)=delete
 
bool solve (StatePtr state, const Eigen::Isometry2d &frame, Request request=ALL)
 Solve an IK request. More...
 
- Public Member Functions inherited from se2ez::CollisionAwareTreeIK
 CollisionAwareTreeIK (const RobotPtr &robot, const std::vector< std::string > &frames, unsigned int iterations=50, double eps=1e-4)
 Constructor. More...
 
 CollisionAwareTreeIK (const CollisionAwareTreeIK &)=delete
 
 CollisionAwareTreeIK (CollisionAwareTreeIK &&)=delete
 
- Public Member Functions inherited from se2ez::TreeIK
 TreeIK (const RobotPtr &robot, const std::vector< std::string > &frames, unsigned int iterations=50, double eps=1e-4)
 Constructor. More...
 
 TreeIK (const TreeIK &)=delete
 
 TreeIK (TreeIK &&)=delete
 
bool solve (StatePtr state, const tf::EigenMap< std::string, Eigen::Isometry2d > &frames, const std::map< std::string, Request > &request={})
 Solve an IK request. More...
 
void setJointWeight (const std::string &frame, const Eigen::VectorXd &weights) override
 Sets the weights on a specific joint in the robot for IK solving. More...
 
void setJointWeights (const Eigen::VectorXd &weights) override
 Sets the weights for all joints in the robot for IK solving. More...
 
void setLambda (double lambda) override
 Sets lambda, damping constant in WDLS. More...
 
- Public Member Functions inherited from se2ez::IKSolver
 IKSolver (const IKSolver &)=delete
 
 IKSolver (IKSolver &&)=delete
 
void setRestarts (unsigned int restarts)
 Sets the number of random restarts to use when solving a request. More...
 

Private Attributes

const std::string frame_
 Task frame. More...
 

Additional Inherited Members

- Public Types inherited from se2ez::IKSolver
enum  Request {
  NONE = 0,
  X_AXIS = 1 << 0,
  Y_AXIS = 1 << 1,
  ROTATION = 1 << 2,
  POSITION = X_AXIS | Y_AXIS,
  ALL = POSITION | ROTATION
}
 A bitmask specification of what task components should this IK request satisfy. More...
 
- Protected Types inherited from se2ez::IKSolver
enum  Index {
  POS_X = 0,
  POS_Y = 1,
  POS_Z = 2,
  ROT_X = 3,
  ROT_Y = 4,
  ROT_Z = 5
}
 KDL specific indices for different components of the task matrix. More...
 
- Protected Member Functions inherited from se2ez::CollisionAwareTreeIK
bool doIK (KDL::JntArray &in, KDL::JntArray &out, const KDL::Frames &goals) override
 Actually solve an IK query. More...
 
- Protected Member Functions inherited from se2ez::TreeIK
bool setTask (KDL::Frames &goals, const tf::EigenMap< std::string, Eigen::Isometry2d > &frames, const std::map< std::string, Request > &request)
 Sets current task matrix and goals according to request. More...
 
- Protected Member Functions inherited from se2ez::IKSolver
 IKSolver (const RobotPtr &robot, unsigned int frames)
 Constructor. Protected so only derived classes can create this. More...
 
void setRequest (unsigned int task, Request request)
 Sets the task matrix values for a task at index task according to a request. More...
 
void setTask (unsigned int task, Index index, bool active)
 Sets the specific index component of a task to active. More...
 
void setRandom (KDL::JntArray &array) const
 Sets a KDL array to random values between joint limits. More...
 
- Protected Attributes inherited from se2ez::TreeIK
const std::map< std::string, unsigned int > frames_
 Mapping of task frame name to index. More...
 
const KDL::Tree tree_
 KDL tree used for solving. More...
 
KDL::TreeFkSolverPos_recursive fk_
 Forward kinematics solver. More...
 
KDL::TreeIkSolverVel_wdls velIK_
 Inverse velocity solver. More...
 
KDL::TreeIkSolverPos_NR_JL posIK_
 Inverse position solver. More...
 
std::mutex mutex_
 Thread mutex. More...
 
- Protected Attributes inherited from se2ez::IKSolver
const unsigned int n_
 Number of joint variables. More...
 
const unsigned int t_
 Number of tasks. More...
 
const RobotPtr robot_
 Reference to robot. More...
 
const KDL::JntArray min_
 Joint minimums. More...
 
const KDL::JntArray max_
 Joint maximums. More...
 
KDL::MatrixXd weights_
 Joint variable weights. More...
 
KDL::MatrixXd tasks_
 Task weights. More...
 
double lambda_ {0.01}
 Lambda, WDLS constant. More...
 
unsigned int restarts_ {10}
 Number of random restarts. More...
 

Detailed Description

Convenience wrapper around CollisionAwareTreeIK for solving chains with a single tip frame.

Definition at line 296 of file ik.h.

Constructor & Destructor Documentation

◆ CollisionAwareChainIK() [1/3]

CollisionAwareChainIK::CollisionAwareChainIK ( const RobotPtr robot,
const std::string frame,
unsigned int  iterations = 50,
double  eps = 1e-4 
)

Constructor.

Parameters
[in]robotRobot to construct IK solver for.
[in]frameFrame to use as task frame.
[in]iterationsMaximum number of iterations to use in solver.
[in]epsSolution tolerance.

CollisionAwareChainIK

Definition at line 294 of file ik.cpp.

◆ ~CollisionAwareChainIK()

CollisionAwareChainIK::~CollisionAwareChainIK ( )
virtual

Destructor.

Definition at line 300 of file ik.cpp.

◆ CollisionAwareChainIK() [2/3]

se2ez::CollisionAwareChainIK::CollisionAwareChainIK ( const CollisionAwareChainIK )
delete

◆ CollisionAwareChainIK() [3/3]

se2ez::CollisionAwareChainIK::CollisionAwareChainIK ( CollisionAwareChainIK &&  )
delete

Member Function Documentation

◆ solve()

bool CollisionAwareChainIK::solve ( StatePtr  state,
const Eigen::Isometry2d &  frame,
Request  request = ALL 
)

Solve an IK request.

Parameters
[in,out]stateState to set to result of IK query. Input value is used as first seed.
[in]frameDesired value to query.
[in]requestRequested components. ALL by default.
Returns
True on success, false on failure.

Definition at line 304 of file ik.cpp.

Member Data Documentation

◆ frame_

const std::string se2ez::CollisionAwareChainIK::frame_
private

Task frame.

Definition at line 325 of file ik.h.


The documentation for this class was generated from the following files: