navigator_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_NAVIGATOR_MESSAGES_H
00040 #define CARMEN_NAVIGATOR_MESSAGES_H
00041 
00042 #include <carmen/global.h>
00043 #include <carmen/map.h>
00044 
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048   
00049 #define CARMEN_NAVIGATOR_STATUS_QUERY_NAME     "carmen_navigator_status_query"
00050 typedef carmen_default_message carmen_navigator_status_query_message;
00051 #define CARMEN_NAVIGATOR_PLAN_QUERY_NAME       "carmen_navigator_plan_query"
00052 typedef carmen_default_message carmen_navigator_plan_query_message;
00053 #define CARMEN_NAVIGATOR_STOP_NAME             "carmen_navigator_stop"
00054 typedef carmen_default_message carmen_navigator_stop_message;
00055 #define CARMEN_NAVIGATOR_GO_NAME               "carmen_navigator_go"
00056 typedef carmen_default_message carmen_navigator_go_message;
00057   
00062 typedef struct {
00063   int autonomous;                
00067   int goal_set;                  
00068   carmen_point_t goal;           
00069   carmen_traj_point_t robot;     
00070   double timestamp;
00071   char *host;
00072 } carmen_navigator_status_message;
00073   
00074 #define CARMEN_NAVIGATOR_STATUS_NAME       "carmen_navigator_status"
00075 #define CARMEN_NAVIGATOR_STATUS_FMT        "{int,int,{double, double, double},{double, double, double, double, double},double,string}"
00076   
00085 typedef struct {
00086   carmen_traj_point_t *path;
00087   int path_length;
00088   double timestamp;
00089   char *host;
00090 } carmen_navigator_plan_message;
00091   
00092 #define      CARMEN_NAVIGATOR_PLAN_NAME       "carmen_navigator_plan"
00093 #define      CARMEN_NAVIGATOR_PLAN_FMT        "{<{double, double, double, double, double}:2>,int,double,string}"
00094 
00099 typedef struct {
00100   double x, y;           
00102   double timestamp;
00103   char *host;
00104 } carmen_navigator_set_goal_message;
00105   
00106 #define      CARMEN_NAVIGATOR_SET_GOAL_NAME         "carmen_navigator_set_goal"
00107 #define      CARMEN_NAVIGATOR_SET_GOAL_FMT          "{double,double,double,string}"
00108   
00113 typedef struct {
00114   carmen_point_t goal;   
00118   double timestamp;
00119   char *host;
00120 } carmen_navigator_set_goal_triplet_message;
00121   
00122 #define      CARMEN_NAVIGATOR_SET_GOAL_TRIPLET_NAME         "carmen_navigator_set_goal_triplet"
00123 #define      CARMEN_NAVIGATOR_SET_GOAL_TRIPLET_FMT          "{{double,double,double},double,string}"
00124   
00125 typedef enum{CARMEN_NAVIGATOR_GOAL_REACHED_v,
00126                CARMEN_NAVIGATOR_USER_STOPPED_v,
00127                CARMEN_NAVIGATOR_UNKNOWN_v} carmen_navigator_reason_t;
00128   
00133 typedef struct {
00134   carmen_navigator_reason_t reason; 
00138   double timestamp;
00139   char *host;
00140 } carmen_navigator_autonomous_stopped_message;
00141   
00142 #define      CARMEN_NAVIGATOR_AUTONOMOUS_STOPPED_NAME "carmen_navigator_autonomous_stopped"
00143 #define      CARMEN_NAVIGATOR_AUTONOMOUS_STOPPED_FMT "{int,double,string}"
00144   
00145 typedef enum {CARMEN_NAVIGATOR_MAP_v, CARMEN_NAVIGATOR_ENTROPY_v, 
00146               CARMEN_NAVIGATOR_COST_v, CARMEN_NAVIGATOR_UTILITY_v,
00147               CARMEN_LOCALIZE_LMAP_v, CARMEN_LOCALIZE_GMAP_v} 
00148   carmen_navigator_map_t;
00149   
00155 typedef struct {
00156   carmen_navigator_map_t map_type;
00157   double timestamp;
00158   char *host;
00159 } carmen_navigator_map_request_message;
00160   
00161 #define CARMEN_NAVIGATOR_MAP_REQUEST_NAME "carmen_navigator_map_request"
00162 #define CARMEN_NAVIGATOR_MAP_REQUEST_FMT "{int,double,string}"
00163 
00168   typedef struct {
00169     unsigned char *data;    
00170     int size;
00171     int compressed;
00172     carmen_map_config_t config;
00173     carmen_navigator_map_t map_type;
00174     double timestamp;
00175     char *host;
00176   } carmen_navigator_map_message;  
00177   
00178 #define CARMEN_NAVIGATOR_MAP_NAME "carmen_navigator_map"
00179 #define CARMEN_NAVIGATOR_MAP_FMT "{<char:2>,int,int,{int,int,double,string},int,double,string}"
00180   
00186 typedef struct {
00187   char *placename;
00188   double timestamp;
00189   char *host;
00190 } carmen_navigator_placename_message;
00191   
00192 #define CARMEN_NAVIGATOR_SET_GOAL_PLACE_NAME "carmen_navigator_set_goal_place"
00193 #define CARMEN_NAVIGATOR_SET_GOAL_PLACE_FMT "{string,double,string}"
00194   
00195 typedef struct {
00196   int code;
00197   char *error;
00198   double timestamp;
00199   char *host;
00200 } carmen_navigator_return_code_message;
00201   
00202 #define CARMEN_NAVIGATOR_RETURN_CODE_NAME "carmen_navigator_return_code"
00203 #define CARMEN_NAVIGATOR_RETURN_CODE_FMT "{int,string,double,string}"
00204   
00231 typedef struct {
00232   char *attribute;
00233   int value;
00234   char *status_message;
00235   int reset_all_to_defaults;
00236   double timestamp;
00237   char *host;
00238 } carmen_navigator_display_config_message;
00239   
00240 #define CARMEN_NAVIGATOR_DISPLAY_CONFIG_NAME "carmen_navigator_display_config"
00241 #define CARMEN_NAVIGATOR_DISPLAY_CONFIG_FMT "{string, int, string, int, double, string}"
00242   
00243 #ifdef __cplusplus
00244 }
00245 #endif
00246 
00247 #endif
00248 
00249 // @}

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