49 #include <visp3/core/vpDebug.h>
50 #include <visp3/io/vpParseArgv.h>
51 #include <visp3/core/vpIoTools.h>
52 #include <visp3/vision/vpCalibration.h>
53 #include <visp3/core/vpExponentialMap.h>
59 const unsigned int N = 6;
61 std::vector<vpHomogeneousMatrix> cMo(N) ;
62 std::vector<vpHomogeneousMatrix> wMe(N) ;
74 std::cout <<
"Simulated hand to eye transformation: eMc " << std::endl ;
75 std::cout << eMc << std::endl ;
79 for (
unsigned int i=0 ; i < N ; i++)
85 wMe[0].buildFrom(0, 0, 0, 0, 0, 0);
102 cMo[i] = cMc.
inverse() * cMo[i-1];
103 wMe[i] = wMe[i-1] * eMc * cMc * eMc.
inverse();
108 for (
unsigned int i=0 ; i < N ; i++) {
110 wMo = wMe[i] * eMc * cMo[i];
111 std::cout << std::endl <<
"wMo[" << i <<
"] " << std::endl ;
112 std::cout << wMo << std::endl ;
113 std::cout <<
"cMo[" << i <<
"] " << std::endl ;
114 std::cout << cMo[i] << std::endl ;
115 std::cout <<
"wMe[" << i <<
"] " << std::endl ;
116 std::cout << wMe[i] << std::endl ;
128 std::cout << std::endl <<
"Output: hand to eye calibration result: eMc estimated " << std::endl ;
129 std::cout << eMc << std::endl ;
135 std::cout <<
"Catch an exception: " << e << std::endl;
Implementation of an homogeneous matrix and operations on such kind of matrices.
error that can be emited by ViSP classes.
void extract(vpRotationMatrix &R) const
void buildFrom(const vpTranslationVector &t, const vpRotationMatrix &R)
static double rad(double deg)
static void calibrationTsai(std::vector< vpHomogeneousMatrix > &cMo, std::vector< vpHomogeneousMatrix > &rMe, vpHomogeneousMatrix &eMc)
calibration method of effector-camera from R. Tsai and R. Lorenz .
static double deg(double rad)
Implementation of column vector and the associated operations.
vpHomogeneousMatrix inverse() const
static vpHomogeneousMatrix direct(const vpColVector &v)
Class that consider the case of a translation vector.
Implementation of a rotation vector as axis-angle minimal representation.