se2ez
se2ez::CollisionAwareTreeIK Class Reference

A collision aware version of tree IK. More...

#include <ik.h>

Inheritance diagram for se2ez::CollisionAwareTreeIK:
[legend]

Public Member Functions

 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...
 

Protected Member Functions

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...
 

Private Attributes

CollisionManagerPtr cm_
 Collision Manager for IK. More...
 
StatePtr state_
 Work state. 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 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

A collision aware version of tree IK.

Definition at line 260 of file ik.h.

Constructor & Destructor Documentation

◆ CollisionAwareTreeIK() [1/3]

CollisionAwareTreeIK::CollisionAwareTreeIK ( const RobotPtr robot,
const std::vector< std::string > &  frames,
unsigned int  iterations = 50,
double  eps = 1e-4 
)

Constructor.

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

CollisionAwareTreeIK

Definition at line 247 of file ik.cpp.

◆ CollisionAwareTreeIK() [2/3]

se2ez::CollisionAwareTreeIK::CollisionAwareTreeIK ( const CollisionAwareTreeIK )
delete

◆ CollisionAwareTreeIK() [3/3]

se2ez::CollisionAwareTreeIK::CollisionAwareTreeIK ( CollisionAwareTreeIK &&  )
delete

Member Function Documentation

◆ doIK()

bool CollisionAwareTreeIK::doIK ( KDL::JntArray &  in,
KDL::JntArray &  out,
const KDL::Frames &  goals 
)
overrideprotectedvirtual

Actually solve an IK query.

Parameters
[in]inInitial seed joint angles.
[out]outOutput joint angles.
[in]goalsGoals to satisfy.
Returns
True on success false on failure.

Reimplemented from se2ez::TreeIK.

Definition at line 255 of file ik.cpp.

Member Data Documentation

◆ cm_

CollisionManagerPtr se2ez::CollisionAwareTreeIK::cm_
private

Collision Manager for IK.

Definition at line 280 of file ik.h.

◆ state_

StatePtr se2ez::CollisionAwareTreeIK::state_
private

Work state.

Definition at line 281 of file ik.h.


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