robot_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_ROBOT_MESSAGES_H
00040 #define CARMEN_ROBOT_MESSAGES_H
00041 
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045 
00047 typedef struct {
00048   int num_sonars;
00049   double sensor_angle;               
00050   double *ranges;
00051   carmen_point_t *positions;
00052   carmen_point_t robot_pose;
00053   double tv, rv;
00054   double timestamp;
00055   char *host;                         
00056 } carmen_robot_sonar_message;
00057 
00058 #define      CARMEN_ROBOT_SONAR_NAME            "robot_sonar"
00059 #define      CARMEN_ROBOT_SONAR_FMT             "{int,double,<double:1>,<{double,double,double}:1>,{double,double,double},double,double,double,string}"
00060 
00062 typedef struct { 
00063   int num_bumpers;
00064   char *state;
00065   carmen_point_t robot_pose; //position of the center of the robot
00066   double tv, rv;
00067   double timestamp;
00068   char *host;                          
00069 } carmen_robot_bumper_message;
00070 
00071 #define CARMEN_ROBOT_BUMPER_NAME "carmen_robot_bumper"
00072 #define CARMEN_ROBOT_BUMPER_FMT "{int, <char:1>, {double,double,double}, double, double, double, string}"
00073   
00074 #ifndef COMPILE_WITHOUT_LASER_SUPPORT
00075 
00076 typedef struct {
00077   carmen_laser_laser_config_t config;   
00078   int num_readings;                     
00079   float *range;                         
00080   char *tooclose;                       
00081   int num_remissions;                   
00082   float *remission;                    
00083   carmen_point_t laser_pose;           
00084   carmen_point_t robot_pose;           
00085   double tv, rv;                       
00086   double forward_safety_dist, side_safety_dist;
00087   double turn_axis;
00088   double timestamp;                    
00089   char *host;                          
00090 } carmen_robot_laser_message;
00091 
00092 #define      CARMEN_ROBOT_LASER_FMT             "{{int,double,double,double,double,double,int},int,<float:2>,<char:2>,int,<float:5>,{double,double,double},{double,double,double},double,double,double,double,double,double,string}"
00093 
00094 
00095 #define      CARMEN_ROBOT_FRONTLASER_NAME       "carmen_robot_frontlaser"
00096 #define      CARMEN_ROBOT_FRONTLASER_FMT        CARMEN_ROBOT_LASER_FMT
00097 
00098 #define      CARMEN_ROBOT_REARLASER_NAME        "carmen_robot_rearlaser"
00099 #define      CARMEN_ROBOT_REARLASER_FMT         CARMEN_ROBOT_LASER_FMT
00100 #endif
00101 
00102 typedef struct {
00103   double vector_distance;
00104   double vector_angle;
00105   double timestamp;
00106   char *host;                   
00107 } carmen_robot_vector_status_message;
00108 
00109 #define CARMEN_ROBOT_VECTOR_STATUS_NAME "carmen_robot_vector_status"
00110 #define CARMEN_ROBOT_VECTOR_STATUS_FMT "{double, double, double, string}"
00111   
00112 typedef struct {
00113   double tv, rv;
00114   double timestamp;
00115   char *host;                   
00116 } carmen_robot_velocity_message;
00117 
00118 #define      CARMEN_ROBOT_VELOCITY_NAME         "carmen_robot_vel"
00119 #define      CARMEN_ROBOT_VELOCITY_FMT          "{double,double,double,string}"
00120 
00121 typedef struct {
00122   int trajectory_length;
00123   carmen_traj_point_t *trajectory;
00124   carmen_traj_point_t robot_position;
00125   double timestamp;
00126   char *host;                 
00127 } carmen_robot_follow_trajectory_message;
00128 
00129 #define      CARMEN_ROBOT_FOLLOW_TRAJECTORY_NAME         "carmen_robot_follow_trajectory"
00130 #define      CARMEN_ROBOT_FOLLOW_TRAJECTORY_FMT          "{int,<{double,double,double,double,double}:1>,{double,double,double,double,double},double,string}"
00131 
00132 typedef struct {
00133   double distance;
00134   double theta;
00135   double timestamp;
00136   char *host;               
00137 } carmen_robot_vector_move_message;
00138 
00139 #define      CARMEN_ROBOT_VECTOR_MOVE_NAME         "carmen_robot_vector_move"
00140 #define      CARMEN_ROBOT_VECTOR_MOVE_FMT          "{double,double,double,string}"
00141 
00142 #ifdef __cplusplus
00143 }
00144 #endif
00145 
00146 #endif
00147 
00148 // @}

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