egrid.h

Go to the documentation of this file.
00001 /*********************************************************
00002  *
00003  * This source code is part of the Carnegie Mellon Robot
00004  * Navigation Toolkit (CARMEN)
00005  *
00006  * CARMEN Copyright (c) 2002 Michael Montemerlo, Nicholas
00007  * Roy, and Sebastian Thrun
00008  *
00009  * CARMEN is free software; you can redistribute it and/or 
00010  * modify it under the terms of the GNU General Public 
00011  * License as published by the Free Software Foundation; 
00012  * either version 2 of the License, or (at your option)
00013  * any later version.
00014  *
00015  * CARMEN is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied 
00017  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00018  * PURPOSE.  See the GNU General Public License for more 
00019  * details.
00020  *
00021  * You should have received a copy of the GNU General 
00022  * Public License along with CARMEN; if not, write to the
00023  * Free Software Foundation, Inc., 59 Temple Place, 
00024  * Suite 330, Boston, MA  02111-1307 USA
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 // @}

Generated on Wed Apr 5 18:34:18 2006 for CARMEN by  doxygen 1.4.4