localize_messages.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 CARMEN_LOCALIZE_MESSAGES_H
00040 #define CARMEN_LOCALIZE_MESSAGES_H
00041 
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045 
00046 /* Initialization message for localize */
00047 
00048 #define CARMEN_INITIALIZE_UNIFORM     1
00049 #define CARMEN_INITIALIZE_GAUSSIAN    2
00050 
00051 typedef struct {
00052   int distribution;
00053   int num_modes;
00054   carmen_point_t *mean, *std;
00055   double timestamp;
00056   char *host;
00057 } carmen_localize_initialize_message;
00058 
00059 #define CARMEN_LOCALIZE_INITIALIZE_NAME  "carmen_localize_initialize"
00060 #define CARMEN_LOCALIZE_INITIALIZE_FMT   "{int,int,<{double,double,double}:2>,<{double,double,double}:2>,double,string}"
00061 
00062   /* initialize by map placename */
00063 
00064 typedef struct {
00065   char *placename;
00066   double timestamp;
00067   char *host;
00068 } carmen_localize_initialize_placename_message;
00069 
00070 #define CARMEN_LOCALIZE_INITIALIZE_PLACENAME_NAME "carmen_localize_initialize_placename"
00071 #define CARMEN_LOCALIZE_INITIALIZE_PLACENAME_FMT "{string,double,string}"
00072 
00073 /* Contains the mean and standard deviation of the position of the robot */
00074 
00075 typedef struct {
00076   carmen_point_t globalpos, globalpos_std;
00077   carmen_point_t odometrypos;
00078   double globalpos_xy_cov;
00079   int converged;
00080   double timestamp;
00081   char *host;
00082 } carmen_localize_globalpos_message;
00083 
00084 #define CARMEN_LOCALIZE_GLOBALPOS_NAME "carmen_localize_globalpos"
00085 #define CARMEN_LOCALIZE_GLOBALPOS_FMT  "{{double,double,double},{double,double,double},{double,double,double},double,int,double,string}"
00086 
00087 /* particle message */
00088 
00089 typedef struct {
00090   float x, y, theta, weight;
00091 } carmen_localize_particle_ipc_t, *carmen_localize_particle_ipc_p;
00092 
00093 typedef struct {
00094   int num_particles;
00095   carmen_localize_particle_ipc_p particles;
00096   carmen_point_t globalpos, globalpos_std;
00097   double globalpos_xy_cov;
00098   double timestamp;
00099   char *host;
00100 } carmen_localize_particle_message;
00101 
00102 #define CARMEN_LOCALIZE_PARTICLE_NAME "carmen_localize_particle"
00103 #define CARMEN_LOCALIZE_PARTICLE_FMT  "{int,<{float,float,float,float}:1>,{double,double,double},{double,double,double},double,double,string}"
00104 
00105 /* sensor message in localize coordinates */
00106 
00107 typedef struct {
00108   carmen_laser_laser_config_t config;
00109   int num_readings, laser_skip;
00110   float *range;
00111   char *mask;
00112   carmen_point_t pose;
00113   int num_laser;
00114   double timestamp;
00115   char *host;
00116 } carmen_localize_sensor_message;
00117 
00118 #define CARMEN_LOCALIZE_SENSOR_NAME "carmen_localize_sensor"
00119 #define CARMEN_LOCALIZE_SENSOR_FMT  "{{int,double,double,double,double,double,int},int,int,<float:2>,<char:2>,{double,double,double},int,double,string}"
00120 
00121 typedef struct {
00122   int map_is_global_likelihood;
00123   double timestamp;
00124   char *host;
00125 } carmen_localize_map_query_message;
00126   
00127 #define CARMEN_LOCALIZE_MAP_QUERY_NAME "carmen_localize_map_query"
00128 #define CARMEN_LOCALIZE_MAP_QUERY_FMT "{int,double,string}"
00129   
00130 typedef struct {
00131   unsigned char *data;    
00132   int size;
00133   carmen_map_config_t config;
00134   int compressed;
00135   int map_is_global_likelihood;
00136   double timestamp;
00137   char *host;
00138 } carmen_localize_map_message;  
00139   
00140 #define CARMEN_LOCALIZE_MAP_NAME "carmen_localize_map"
00141 #define CARMEN_LOCALIZE_MAP_FMT  "{<char:2>,int,{int,int,double,string},int,int,double,string}"
00142 
00143 #define CARMEN_LOCALIZE_GLOBALPOS_QUERY_NAME "carmen_localize_globalpos_query"
00144 typedef carmen_default_message carmen_localize_globalpos_query_message;
00145 
00146 #ifdef __cplusplus
00147 }
00148 #endif
00149 
00150 #endif
00151 // @}

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