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 int num_lasers; 00058 bool initialized; 00059 00060 public: 00061 00062 Calibration() : initialized(false) {} 00063 Calibration(const std::string& calibration_file) { 00064 read(calibration_file); 00065 } 00066 00067 void read(const std::string& calibration_file); 00068 void write(const std::string& calibration_file); 00069 }; 00070 00071 } /* velodyne_pointcloud */ 00072 00073 00074 #endif /* end of include guard: __VELODYNE_CALIBRATION_H */ 00075 00076