00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00029
00030
00039 #ifndef EGRID_H
00040 #define EGRID_H
00041
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045
00046 typedef struct {
00047 double resolution;
00048 int size_x, size_y;
00049 double theta_offset;
00050 double prior_occ;
00051 double occ_evidence, emp_evidence, max_prob;
00052 double max_sure_range, max_range;
00053 double wall_thickness;
00054
00055 float **prob;
00056 int distance_table_size;
00057 double **distance_table;
00058
00059 int first;
00060 double start_x, start_y, start_theta;
00061 } evidence_grid;
00062
00063 int carmen_mapper_initialize_evidence_grid(evidence_grid *grid,
00064 int size_x, int size_y,
00065 double resolution, double theta_offset,
00066 double prior_occ, double occ_evidence,
00067 double emp_evidence, double max_prob,
00068 double max_sure_range, double max_range,
00069 double wall_thickness);
00070
00071 void carmen_mapper_free_evidence_grid(evidence_grid *grid);
00072
00073 void carmen_mapper_update_evidence_grid(evidence_grid *grid,
00074 double laser_x, double laser_y,
00075 double laser_theta, int num_readings,
00076 float *laser_range,
00077 double angular_resolution,
00078 double first_beam_angle);
00079
00080 void carmen_mapper_update_evidence_grid_general(evidence_grid *grid,
00081 double laser_x, double laser_y,
00082 double laser_theta, int num_readings,
00083 float *laser_range,
00084 float *laser_angle,
00085 double angular_resolution,
00086 double first_beam_angle);
00087
00088 void carmen_mapper_clear_evidence_grid(evidence_grid *grid);
00089
00090 void carmen_mapper_finish_evidence_grid(evidence_grid *grid, int downsample,
00091 int border);
00092 #ifdef __cplusplus
00093 }
00094 #endif
00095
00096 #endif
00097
00098