53 #include <visp/vpDebug.h>
54 #include <visp/vpParseArgv.h>
55 #include <visp/vpIoTools.h>
56 #include <visp/vpCalibration.h>
57 #include <visp/vpExponentialMap.h>
64 std::vector<vpHomogeneousMatrix> cMo(N) ;
65 std::vector<vpHomogeneousMatrix> wMe(N) ;
77 std::cout <<
"Simulated hand to eye transformation: eMc " << std::endl ;
78 std::cout << eMc << std::endl ;
82 for (
int i=0 ; i < N ; i++)
88 wMe[0].buildFrom(0, 0, 0, 0, 0, 0);
105 cMo[i] = cMc.
inverse() * cMo[i-1];
106 wMe[i] = wMe[i-1] * eMc * cMc * eMc.
inverse();
111 for (
int i=0 ; i < N ; i++) {
113 wMo = wMe[i] * eMc * cMo[i];
114 std::cout << std::endl <<
"wMo[" << i <<
"] " << std::endl ;
115 std::cout << wMo << std::endl ;
116 std::cout <<
"cMo[" << i <<
"] " << std::endl ;
117 std::cout << cMo[i] << std::endl ;
118 std::cout <<
"wMe[" << i <<
"] " << std::endl ;
119 std::cout << wMe[i] << std::endl ;
131 std::cout << std::endl <<
"Output: hand to eye calibration result: eMc estimated " << std::endl ;
132 std::cout << eMc << std::endl ;
The class provides a data structure for the homogeneous matrices as well as a set of operations on th...
void extract(vpRotationMatrix &R) const
void buildFrom(const vpTranslationVector &t, const vpRotationMatrix &R)
Construction from translation vector and rotation matrix.
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)
Class that provides a data structure for the column vectors as well as a set of operations on these v...
vpHomogeneousMatrix inverse() const
static vpHomogeneousMatrix direct(const vpColVector &v)
Class that consider the case of a translation vector.
Class that consider the case of the parameterization for the rotation.