base_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_BASE_MESSAGES_H
00040 #define CARMEN_BASE_MESSAGES_H
00041 
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045 
00046 // These messages are generic format messages
00047 
00048 #define CARMEN_BASE_RESET_OCCURRED_NAME "carmen_base_reset_occurred"
00049 typedef carmen_default_message carmen_base_reset_occurred_message;
00050 #define CARMEN_BASE_RESET_COMMAND_NAME "carmen_base_reset_command"
00051 typedef carmen_default_message carmen_base_reset_command_message;
00052 
00053 typedef struct {
00054   double x, y, theta;
00055   double tv, rv;
00056   double acceleration;
00057   double timestamp;
00058   char *host;
00059 } carmen_base_odometry_message;
00060 
00061 #define      CARMEN_BASE_ODOMETRY_NAME       "carmen_base_odometry"
00062 #define      CARMEN_BASE_ODOMETRY_FMT        "{double,double,double,double,double,double,double,string}"
00063 
00064 typedef struct {
00065   double tv, rv;
00066   double timestamp;
00067   char *host;
00068 } carmen_base_velocity_message;
00069 
00070 #define      CARMEN_BASE_VELOCITY_NAME       "carmen_base_velocity"
00071 #define      CARMEN_BASE_VELOCITY_FMT        "{double,double,double,string}"
00072 
00073 typedef struct {
00074   double xv;
00075   double yv;
00076   double rv;
00077   double timestamp;
00078   char *host;
00079 } carmen_base_holonomic_velocity_message;
00080 
00081 #define      CARMEN_BASE_HOLONOMIC_VELOCITY_NAME       "carmen_base_holonomic_velocity"
00082 #define      CARMEN_BASE_HOLONOMIC_VELOCITY_FMT        "{double,double,double,double,string}"
00083 
00084 typedef struct {
00085   int num_sonars;
00086   double sensor_angle;                    //width of sonar cone
00087   double *range;
00088   carmen_point_p positions;
00089   double timestamp;
00090   char *host;
00091 } carmen_base_sonar_message;
00092 
00093 #define      CARMEN_BASE_SONAR_NAME          "carmen_base_sonar"
00094 #define      CARMEN_BASE_SONAR_FMT           "{int,double,<double:1>,<{double,double,double}:1>,double,string}"
00095 
00096 typedef struct {
00097   int rate;
00098   int num_sonars;
00099   int *order;
00100   carmen_point_t *sonar_offsets;
00101   double timestamp;
00102   char *host;
00103 } carmen_base_sonar_conf_message;
00104 
00105 #define      CARMEN_BASE_SONAR_CONF_NAME          "carmen_base_sonar_conf"
00106 #define      CARMEN_BASE_SONAR_CONF_FMT           "{int,int,<int:2>,<{double,double,double}:2>,double,string}"
00107 
00108 typedef struct {
00109   int num_bumpers;
00110   unsigned char *state;
00111   double timestamp;
00112   char *host;
00113 } carmen_base_bumper_message;
00114 
00115 #define      CARMEN_BASE_BUMPER_NAME          "carmen_base_bumper"
00116 #define      CARMEN_BASE_BUMPER_FMT           "{int,<char:1>,double,string}"
00117 
00118 typedef struct {
00119   int num_irs;
00120   double *range;
00121   double timestamp;
00122   char *host;
00123 } carmen_base_ir_message;
00124 
00125 #define      CARMEN_BASE_IR_NAME          "carmen_base_ir"
00126 #define      CARMEN_BASE_IR_FMT           "{int,<double:1>,double,string}"
00127 
00128 typedef struct {
00129   int history;
00130   int num_irs;
00131   int order[32];
00132   double timestamp;
00133   char *host;
00134 } carmen_base_ir_conf_message;
00135 
00136 #define      CARMEN_BASE_IR_CONF_NAME          "carmen_base_ir_conf"
00137 #define      CARMEN_BASE_IR_CONF_FMT           "{int,int,[int:32],double,string}"
00138 
00139 typedef struct {
00140   unsigned char *data;
00141   int size;
00142   double timestamp;
00143   char *host;
00144 } carmen_base_binary_data_message;
00145 
00146 #define CARMEN_BASE_BINARY_COMMAND_NAME "carmen_base_binary_command"
00147 #define CARMEN_BASE_BINARY_COMMAND_FMT "{<char:2>,int,double,string}"
00148 
00149 #define CARMEN_BASE_BINARY_DATA_NAME "carmen_base_binary_data"
00150 #define CARMEN_BASE_BINARY_DATA_FMT "{<char:2>,int,double,string}"
00151 
00152 #ifdef __cplusplus
00153 }
00154 #endif
00155 
00156 #endif
00157 
00158 // @}
00159 

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