AUV-Coop-Assembly
Master Thesis for Robotics Engineering. Cooperative peg-in-hole assembly with two underwater vehicles guided by vision
conversions.h
1 #ifndef CONVERSIONS_H
2 #define CONVERSIONS_H
3 
4 #include <iostream>
5 #include <cmat/cmat.h>
6 #include <Eigen/Core>
7 #include <Eigen/Geometry>
8 #include <geometry_msgs/Transform.h>
9 #include <tf_conversions/tf_eigen.h>
10 #include <kdl/chainjnttojacsolver.hpp>
11 #include <kdl/chainfksolverpos_recursive.hpp>
12 #include <visp3/core/vpHomogeneousMatrix.h>
13 #include <opencv2/core.hpp>
14 
15 namespace CONV{
16 
18  std::vector<double> tfMat3x3_to_vector(tf::Matrix3x3 matrix3x3);
19  Eigen::VectorXd vector_std2Eigen(std::vector<double> vect);
20  std::vector<double> vector_cmat2std(CMAT::Matrix mat);
21  std::vector<double> vector_eigen2std(Eigen::VectorXd vect);
22 
24  Eigen::Matrix3d rotMatrix_cmat2eigen(CMAT::RotMatrix mat_cmat);
25  Eigen::Matrix4d transfMatrix_cmat2eigen(CMAT::TransfMatrix mat_cmat);
26  Eigen::MatrixXd matrix_cmat2eigen (CMAT::Matrix mat_cmat);
27 
29  // one generic is ok, they are the same
30  //CMAT::TransfMatrix transfMatrix_eigen2cmat(Eigen::Matrix4d mat_eigen);
31  //CMAT::RotMatrix rotMatrix_eigen2cmat(Eigen::Matrix3d mat_eigen);
32  CMAT::Matrix matrix_eigen2cmat(Eigen::MatrixXd mat_eigen);
33 
35  // not necessary at moment
36  //CMAT::TransfMatrix transfMatrix_tf2cmat(tf::Transform mat_tf);
37 
39  Eigen::Matrix4d transfMatrix_tf2eigen(tf::Transform mat_tf);
40 
42  //not necessary at moment
43  //tf::Transform transfMatrix_eigen2tf(Eigen::Matrix4d mat_eigen);
44 
45  // KDL to Eigen.
46  Eigen::Matrix4d transfMatrix_kdl2eigen(KDL::Frame mat_kdl);
47  Eigen::MatrixXd jacobian_kdl2eigen(KDL::Jacobian mat_kdl);
48 
49  //Eigen to KDL
50  KDL::Frame transfMatrix_eigen2kdl(Eigen::Matrix4d mat_eigen);
51 
52  //openCV ~ CMAT
53  //CMAT::Matrix matrix_opencv2cmat(cv::Mat1d mat_opencv);
54 
55  //visp ~ CMAT
56  CMAT::Matrix matrix_visp2cmat(vpMatrix mat_visp);
57 
58  //visp ~ eigen
59  Eigen::MatrixXd matrix_visp2eigen(vpMatrix mat_visp);
60  vpHomogeneousMatrix transfMatrix_eigen2visp(Eigen::MatrixXd mat_eigen);
61 
62  //eigen ~ geometry_msgs
63  Eigen::Matrix4d transfMatrix_geomMsgs2Eigen(geometry_msgs::Transform mat_msgs);
64  geometry_msgs::Transform transfMatrix_eigen2geomMsgs(Eigen::Matrix4d mat_eigen);
65 
66 
67 }
68 
69 #endif // CONVERSIONS_H