00001 00018 #ifndef CALIBRATION_OBJECT_H 00019 #define CALIBRATION_OBJECT_H 00020 #ifndef Q_MOC_RUN 00021 #include <Eigen/Dense> 00022 #endif 00023 00024 class Calibration_Object 00025 { 00026 public: 00027 EIGEN_MAKE_ALIGNED_OPERATOR_NEW 00028 Calibration_Object(); 00029 Eigen::Matrix4d frame_marker_left; 00030 Eigen::Matrix4d frame_marker_right; 00031 double top_angle_ab; 00032 double top_angle_bc; 00033 double top_angle_ca; 00034 double side_a; 00035 double side_b; 00036 double side_c; 00037 double marker_edge_size; 00038 00039 double marker_left_rotation_z; 00040 double marker_left_transformation_z; 00041 double marker_left_transformation_x; 00042 double marker_left_rotation_x; 00043 00044 double marker_right_rotation_z; 00045 double marker_right_transformation_z; 00046 double marker_right_transformation_x; 00047 double marker_right_rotation_x; 00048 00049 std::string marker_id_left; 00050 std::string marker_id_right; 00051 00052 void calculateTransformationFrames(); 00053 00054 protected: 00055 00056 Eigen::Affine3d getDHTransformation(double rotZ, double transZ, double rotX, double transX); 00057 00058 /*static const double CALIBRATION_OBJECT_FLAT_ANGLE_AB = 1.12; 00059 static const double CALIBRATION_OBJECT_FLAT_ANGLE_BC = 1.12; 00060 static const double CALIBRATION_OBJECT_FLAT_ANGLE_CA = 1.38; 00061 static const double CALIBRATION_OBJECT_FLAT_SIDE_A = 1.293; 00062 static const double CALIBRATION_OBJECT_FLAT_SIDE_B = 0.577; 00063 static const double CALIBRATION_OBJECT_FLAT_SIDE_C = 1.293; 00064 00065 static const double CALIBRATION_OBJECT_HIGH_ANGLE_AB = 0.46469; 00066 static const double CALIBRATION_OBJECT_HIGH_ANGLE_BC = 0.46469; 00067 static const double CALIBRATION_OBJECT_HIGH_ANGLE_CA = 0.6435; 00068 static const double CALIBRATION_OBJECT_HIGH_SIDE_A = 1.2786; 00069 static const double CALIBRATION_OBJECT_HIGH_SIDE_B = 1.143; 00070 static const double CALIBRATION_OBJECT_HIGH_SIDE_C = 1.2786; 00071 00072 static const double MARKER_LEFT_TRANSFORMATION_X =0.1; 00073 static const double MARKER_LEFT_TRANSFORMATION_Y =0.1; 00074 static const double MARKER_LEFT_ROTATION_Z =0; 00075 static const double MARKER_RIGHT_TRANSFORMATION_X =0.1; 00076 static const double MARKER_RIGHT_TRANSFORMATION_Y =0.1; 00077 static const double MARKER_RIGHT_ROTATION_Z =0; 00078 static const double MARKER_EDGE_SIZE =0.08; 00079 static const unsigned int MARKER_ID_LEFT =10; 00080 static const unsigned int MARKER_ID_RIGHT =9;*/ 00081 }; 00082 00083 #endif // CALIBRATION_OBJECT_H