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 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