AUV-Coop-Assembly
Master Thesis for Robotics Engineering. Cooperative peg-in-hole assembly with two underwater vehicles guided by vision
kdlHelper.h
1 #ifndef KDLHelper_H
2 #define KDLHelper_H
3 
4 #include <kdl_parser/kdl_parser.hpp>
5 #include <kdl/chain.hpp>
6 #include <kdl/chainjnttojacsolver.hpp>
7 #include <kdl/chainfksolverpos_recursive.hpp>
8 #include <urdf/model.h>
9 #include <Eigen/Core>
10 
11 #include "../../support/header/conversions.h"
12 #include "../../support/header/defines.h"
13 
14 
15 class KDLHelper
16 {
17 public:
18  KDLHelper(std::string filename, std::string link0_name,
19  std::string endEffector_name, std::string vehicle_name,
20  std::string toolName = "");
21  ~KDLHelper();
22  int setEESolvers();
23  int setToolSolvers(Eigen::Matrix4d eeTtool_eigen);
24  int setToolSolvers();
25  int getFixedFrame(std::string frameOrigin, std::string frameTarget, Eigen::Matrix4d *xTx_eigen);
26  int getEEpose(std::vector<double> jointPos, Eigen::Matrix4d *eePose_eigen);
27  int getJacobianEE(std::vector<double> jointPos, Eigen::Matrix<double, 6, ARM_DOF> *jacobianEE_eigen);
28  int getJacobianTool(std::vector<double> jointPos, Eigen::Matrix<double, 6, ARM_DOF> *jacobianTool_eigen);
29  int getNJoints();
30 
32  int getToolpose(std::vector<double> jointPos, Eigen::Matrix4d eeTtool_eigen, Eigen::Matrix4d *toolPose_eigen);
34  int setToolSolvers_old(Eigen::Matrix4d eeTtool_eigen);
35 
36 private:
37  int nJoints;
38  std::string link0_name;
39  std::string vehicle_name;
40  std::string endEffector_name;
41  std::string tool_name;
42  KDL::Tree tree;
43  KDL::ChainJntToJacSolver* jacobEE_solver;
44  KDL::ChainJntToJacSolver* jacobTool_solver;
45  //TODO capire diff tra recursive e non
46  KDL::ChainFkSolverPos_recursive* eePose_solver;
47 
48 };
49 
50 #endif // KDLHelper_H
int getJacobianEE(std::vector< double > jointPos, Eigen::Matrix< double, 6, ARM_DOF > *jacobianEE_eigen)
KDLHelper::getJacobianEE respect base frame of arm (link0)
Definition: kdlHelper.cpp:165
int getFixedFrame(std::string frameOrigin, std::string frameTarget, Eigen::Matrix4d *xTx_eigen)
KDLHelper::getFixedFrame get relative position of things inside the urdf file of the robot that NOT c...
Definition: kdlHelper.cpp:220
KDLHelper(std::string filename, std::string link0_name, std::string endEffector_name, std::string vehicle_name, std::string toolName="")
KDLHelper::KDLHelper.
Definition: kdlHelper.cpp:8
int getJacobianTool(std::vector< double > jointPos, Eigen::Matrix< double, 6, ARM_DOF > *jacobianTool_eigen)
KDLHelper::getJacobianTool respect base frame of arm (link0)
Definition: kdlHelper.cpp:188
int setToolSolvers()
KDLHelper::setToolSolvers version for when the peg is a link of the robot.
Definition: kdlHelper.cpp:121
int setToolSolvers_old(Eigen::Matrix4d eeTtool_eigen)
old
Definition: kdlHelper.cpp:312
int getToolpose(std::vector< double > jointPos, Eigen::Matrix4d eeTtool_eigen, Eigen::Matrix4d *toolPose_eigen)
debug
Definition: kdlHelper.cpp:274
int setEESolvers()
KDLHelper::setEESolvers Initialize the kinematic solvers (jacob and pose) for the arm End Effector...
Definition: kdlHelper.cpp:55