00001 00012 #ifndef __VELODYNE_CALIBRATION_H 00013 #define __VELODYNE_CALIBRATION_H 00014 00015 #include <map> 00016 #include <string> 00017 00018 namespace velodyne_pointcloud { 00019 00026 struct LaserCorrection { 00027 00029 float rot_correction; 00030 float vert_correction; 00031 float dist_correction; 00032 bool two_pt_correction_available; 00033 float dist_correction_x; 00034 float dist_correction_y; 00035 float vert_offset_correction; 00036 float horiz_offset_correction; 00037 int max_intensity; 00038 int min_intensity; 00039 float focal_distance; 00040 float focal_slope; 00041 00043 float cos_rot_correction; 00044 float sin_rot_correction; 00045 float cos_vert_correction; 00046 float sin_vert_correction; 00047 00048 int laser_ring; 00049 }; 00050 00052 class Calibration { 00053 00054 public: 00055 00056 std::map<int, LaserCorrection> laser_corrections; 00057 bool initialized; 00058 00059 public: 00060 00061 Calibration() : initialized(false) {} 00062 Calibration(const std::string& calibration_file) { 00063 read(calibration_file); 00064 } 00065 00066 void read(const std::string& calibration_file); 00067 void write(const std::string& calibration_file); 00068 }; 00069 00070 } /* velodyne_pointcloud */ 00071 00072 00073 #endif /* end of include guard: __VELODYNE_CALIBRATION_H */ 00074 00075