00001
00002 #ifndef COLLVOID_MSGS_MESSAGE_POSETWISTWITHCOVARIANCE_H
00003 #define COLLVOID_MSGS_MESSAGE_POSETWISTWITHCOVARIANCE_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012
00013 #include "ros/macros.h"
00014
00015 #include "ros/assert.h"
00016
00017 #include "std_msgs/Header.h"
00018 #include "geometry_msgs/Vector3.h"
00019 #include "geometry_msgs/PoseWithCovariance.h"
00020 #include "geometry_msgs/TwistWithCovariance.h"
00021 #include "geometry_msgs/PolygonStamped.h"
00022
00023 namespace collvoid_msgs
00024 {
00025 template <class ContainerAllocator>
00026 struct PoseTwistWithCovariance_ {
00027 typedef PoseTwistWithCovariance_<ContainerAllocator> Type;
00028
00029 PoseTwistWithCovariance_()
00030 : header()
00031 , robot_id()
00032 , radius(0.0)
00033 , holo_robot(false)
00034 , controlled(false)
00035 , holonomic_velocity()
00036 , pose()
00037 , twist()
00038 , footprint()
00039 {
00040 }
00041
00042 PoseTwistWithCovariance_(const ContainerAllocator& _alloc)
00043 : header(_alloc)
00044 , robot_id(_alloc)
00045 , radius(0.0)
00046 , holo_robot(false)
00047 , controlled(false)
00048 , holonomic_velocity(_alloc)
00049 , pose(_alloc)
00050 , twist(_alloc)
00051 , footprint(_alloc)
00052 {
00053 }
00054
00055 typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
00056 ::std_msgs::Header_<ContainerAllocator> header;
00057
00058 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _robot_id_type;
00059 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > robot_id;
00060
00061 typedef float _radius_type;
00062 float radius;
00063
00064 typedef uint8_t _holo_robot_type;
00065 uint8_t holo_robot;
00066
00067 typedef uint8_t _controlled_type;
00068 uint8_t controlled;
00069
00070 typedef ::geometry_msgs::Vector3_<ContainerAllocator> _holonomic_velocity_type;
00071 ::geometry_msgs::Vector3_<ContainerAllocator> holonomic_velocity;
00072
00073 typedef ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> _pose_type;
00074 ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> pose;
00075
00076 typedef ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> _twist_type;
00077 ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> twist;
00078
00079 typedef ::geometry_msgs::PolygonStamped_<ContainerAllocator> _footprint_type;
00080 ::geometry_msgs::PolygonStamped_<ContainerAllocator> footprint;
00081
00082
00083 typedef boost::shared_ptr< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> > Ptr;
00084 typedef boost::shared_ptr< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> const> ConstPtr;
00085 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00086 };
00087 typedef ::collvoid_msgs::PoseTwistWithCovariance_<std::allocator<void> > PoseTwistWithCovariance;
00088
00089 typedef boost::shared_ptr< ::collvoid_msgs::PoseTwistWithCovariance> PoseTwistWithCovariancePtr;
00090 typedef boost::shared_ptr< ::collvoid_msgs::PoseTwistWithCovariance const> PoseTwistWithCovarianceConstPtr;
00091
00092
00093 template<typename ContainerAllocator>
00094 std::ostream& operator<<(std::ostream& s, const ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> & v)
00095 {
00096 ros::message_operations::Printer< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> >::stream(s, "", v);
00097 return s;}
00098
00099 }
00100
00101 namespace ros
00102 {
00103 namespace message_traits
00104 {
00105 template<class ContainerAllocator> struct IsMessage< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> > : public TrueType {};
00106 template<class ContainerAllocator> struct IsMessage< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> const> : public TrueType {};
00107 template<class ContainerAllocator>
00108 struct MD5Sum< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> > {
00109 static const char* value()
00110 {
00111 return "6a79eb6c33b8f61b28a446c70db3ab02";
00112 }
00113
00114 static const char* value(const ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> &) { return value(); }
00115 static const uint64_t static_value1 = 0x6a79eb6c33b8f61bULL;
00116 static const uint64_t static_value2 = 0x28a446c70db3ab02ULL;
00117 };
00118
00119 template<class ContainerAllocator>
00120 struct DataType< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> > {
00121 static const char* value()
00122 {
00123 return "collvoid_msgs/PoseTwistWithCovariance";
00124 }
00125
00126 static const char* value(const ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> &) { return value(); }
00127 };
00128
00129 template<class ContainerAllocator>
00130 struct Definition< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> > {
00131 static const char* value()
00132 {
00133 return "Header header\n\
00134 string robot_id\n\
00135 float32 radius\n\
00136 bool holo_robot\n\
00137 bool controlled\n\
00138 geometry_msgs/Vector3 holonomic_velocity\n\
00139 geometry_msgs/PoseWithCovariance pose\n\
00140 geometry_msgs/TwistWithCovariance twist\n\
00141 geometry_msgs/PolygonStamped footprint\n\
00142 \n\
00143 ================================================================================\n\
00144 MSG: std_msgs/Header\n\
00145 # Standard metadata for higher-level stamped data types.\n\
00146 # This is generally used to communicate timestamped data \n\
00147 # in a particular coordinate frame.\n\
00148 # \n\
00149 # sequence ID: consecutively increasing ID \n\
00150 uint32 seq\n\
00151 #Two-integer timestamp that is expressed as:\n\
00152 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00153 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00154 # time-handling sugar is provided by the client library\n\
00155 time stamp\n\
00156 #Frame this data is associated with\n\
00157 # 0: no frame\n\
00158 # 1: global frame\n\
00159 string frame_id\n\
00160 \n\
00161 ================================================================================\n\
00162 MSG: geometry_msgs/Vector3\n\
00163 # This represents a vector in free space. \n\
00164 \n\
00165 float64 x\n\
00166 float64 y\n\
00167 float64 z\n\
00168 ================================================================================\n\
00169 MSG: geometry_msgs/PoseWithCovariance\n\
00170 # This represents a pose in free space with uncertainty.\n\
00171 \n\
00172 Pose pose\n\
00173 \n\
00174 # Row-major representation of the 6x6 covariance matrix\n\
00175 # The orientation parameters use a fixed-axis representation.\n\
00176 # In order, the parameters are:\n\
00177 # (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n\
00178 float64[36] covariance\n\
00179 \n\
00180 ================================================================================\n\
00181 MSG: geometry_msgs/Pose\n\
00182 # A representation of pose in free space, composed of postion and orientation. \n\
00183 Point position\n\
00184 Quaternion orientation\n\
00185 \n\
00186 ================================================================================\n\
00187 MSG: geometry_msgs/Point\n\
00188 # This contains the position of a point in free space\n\
00189 float64 x\n\
00190 float64 y\n\
00191 float64 z\n\
00192 \n\
00193 ================================================================================\n\
00194 MSG: geometry_msgs/Quaternion\n\
00195 # This represents an orientation in free space in quaternion form.\n\
00196 \n\
00197 float64 x\n\
00198 float64 y\n\
00199 float64 z\n\
00200 float64 w\n\
00201 \n\
00202 ================================================================================\n\
00203 MSG: geometry_msgs/TwistWithCovariance\n\
00204 # This expresses velocity in free space with uncertianty.\n\
00205 \n\
00206 Twist twist\n\
00207 \n\
00208 # Row-major representation of the 6x6 covariance matrix\n\
00209 # The orientation parameters use a fixed-axis representation.\n\
00210 # In order, the parameters are:\n\
00211 # (x, y, z, rotation about X axis, rotation about Y axis, rotation about Z axis)\n\
00212 float64[36] covariance\n\
00213 \n\
00214 ================================================================================\n\
00215 MSG: geometry_msgs/Twist\n\
00216 # This expresses velocity in free space broken into it's linear and angular parts. \n\
00217 Vector3 linear\n\
00218 Vector3 angular\n\
00219 \n\
00220 ================================================================================\n\
00221 MSG: geometry_msgs/PolygonStamped\n\
00222 # This represents a Polygon with reference coordinate frame and timestamp\n\
00223 Header header\n\
00224 Polygon polygon\n\
00225 \n\
00226 ================================================================================\n\
00227 MSG: geometry_msgs/Polygon\n\
00228 #A specification of a polygon where the first and last points are assumed to be connected\n\
00229 Point32[] points\n\
00230 \n\
00231 ================================================================================\n\
00232 MSG: geometry_msgs/Point32\n\
00233 # This contains the position of a point in free space(with 32 bits of precision).\n\
00234 # It is recommeded to use Point wherever possible instead of Point32. \n\
00235 # \n\
00236 # This recommendation is to promote interoperability. \n\
00237 #\n\
00238 # This message is designed to take up less space when sending\n\
00239 # lots of points at once, as in the case of a PointCloud. \n\
00240 \n\
00241 float32 x\n\
00242 float32 y\n\
00243 float32 z\n\
00244 ";
00245 }
00246
00247 static const char* value(const ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> &) { return value(); }
00248 };
00249
00250 template<class ContainerAllocator> struct HasHeader< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> > : public TrueType {};
00251 template<class ContainerAllocator> struct HasHeader< const ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> > : public TrueType {};
00252 }
00253 }
00254
00255 namespace ros
00256 {
00257 namespace serialization
00258 {
00259
00260 template<class ContainerAllocator> struct Serializer< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> >
00261 {
00262 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00263 {
00264 stream.next(m.header);
00265 stream.next(m.robot_id);
00266 stream.next(m.radius);
00267 stream.next(m.holo_robot);
00268 stream.next(m.controlled);
00269 stream.next(m.holonomic_velocity);
00270 stream.next(m.pose);
00271 stream.next(m.twist);
00272 stream.next(m.footprint);
00273 }
00274
00275 ROS_DECLARE_ALLINONE_SERIALIZER;
00276 };
00277 }
00278 }
00279
00280 namespace ros
00281 {
00282 namespace message_operations
00283 {
00284
00285 template<class ContainerAllocator>
00286 struct Printer< ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> >
00287 {
00288 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::collvoid_msgs::PoseTwistWithCovariance_<ContainerAllocator> & v)
00289 {
00290 s << indent << "header: ";
00291 s << std::endl;
00292 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
00293 s << indent << "robot_id: ";
00294 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.robot_id);
00295 s << indent << "radius: ";
00296 Printer<float>::stream(s, indent + " ", v.radius);
00297 s << indent << "holo_robot: ";
00298 Printer<uint8_t>::stream(s, indent + " ", v.holo_robot);
00299 s << indent << "controlled: ";
00300 Printer<uint8_t>::stream(s, indent + " ", v.controlled);
00301 s << indent << "holonomic_velocity: ";
00302 s << std::endl;
00303 Printer< ::geometry_msgs::Vector3_<ContainerAllocator> >::stream(s, indent + " ", v.holonomic_velocity);
00304 s << indent << "pose: ";
00305 s << std::endl;
00306 Printer< ::geometry_msgs::PoseWithCovariance_<ContainerAllocator> >::stream(s, indent + " ", v.pose);
00307 s << indent << "twist: ";
00308 s << std::endl;
00309 Printer< ::geometry_msgs::TwistWithCovariance_<ContainerAllocator> >::stream(s, indent + " ", v.twist);
00310 s << indent << "footprint: ";
00311 s << std::endl;
00312 Printer< ::geometry_msgs::PolygonStamped_<ContainerAllocator> >::stream(s, indent + " ", v.footprint);
00313 }
00314 };
00315
00316
00317 }
00318 }
00319
00320 #endif // COLLVOID_MSGS_MESSAGE_POSETWISTWITHCOVARIANCE_H
00321