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