se2ez
|
A collision aware version of tree IK. More...
#include <ik.h>
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 | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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... | |
CollisionAwareTreeIK::CollisionAwareTreeIK | ( | const RobotPtr & | robot, |
const std::vector< std::string > & | frames, | ||
unsigned int | iterations = 50 , |
||
double | eps = 1e-4 |
||
) |
Constructor.
[in] | robot | Robot to construct IK solver for. |
[in] | frames | Frames to use as task frames. |
[in] | iterations | Maximum number of iterations to use in solver. |
[in] | eps | Solution tolerance. |
|
delete |
|
delete |
|
overrideprotectedvirtual |
Actually solve an IK query.
[in] | in | Initial seed joint angles. |
[out] | out | Output joint angles. |
[in] | goals | Goals to satisfy. |
Reimplemented from se2ez::TreeIK.
|
private |
|
private |