Go to the documentation of this file.00001
00002 #ifndef VISION_SRVS_SERVICE_COP_ADD_COLLISION_H
00003 #define VISION_SRVS_SERVICE_COP_ADD_COLLISION_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 "ros/service_traits.h"
00018
00019
00020
00021 #include "arm_navigation_msgs/CollisionObject.h"
00022
00023 namespace vision_srvs
00024 {
00025 template <class ContainerAllocator>
00026 struct cop_add_collisionRequest_ {
00027 typedef cop_add_collisionRequest_<ContainerAllocator> Type;
00028
00029 cop_add_collisionRequest_()
00030 : object_id(0)
00031 {
00032 }
00033
00034 cop_add_collisionRequest_(const ContainerAllocator& _alloc)
00035 : object_id(0)
00036 {
00037 }
00038
00039 typedef uint64_t _object_id_type;
00040 uint64_t object_id;
00041
00042
00043 typedef boost::shared_ptr< ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> > Ptr;
00044 typedef boost::shared_ptr< ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> const> ConstPtr;
00045 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00046 };
00047 typedef ::vision_srvs::cop_add_collisionRequest_<std::allocator<void> > cop_add_collisionRequest;
00048
00049 typedef boost::shared_ptr< ::vision_srvs::cop_add_collisionRequest> cop_add_collisionRequestPtr;
00050 typedef boost::shared_ptr< ::vision_srvs::cop_add_collisionRequest const> cop_add_collisionRequestConstPtr;
00051
00052
00053 template <class ContainerAllocator>
00054 struct cop_add_collisionResponse_ {
00055 typedef cop_add_collisionResponse_<ContainerAllocator> Type;
00056
00057 cop_add_collisionResponse_()
00058 : collisionname()
00059 , added_object()
00060 {
00061 }
00062
00063 cop_add_collisionResponse_(const ContainerAllocator& _alloc)
00064 : collisionname(_alloc)
00065 , added_object(_alloc)
00066 {
00067 }
00068
00069 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _collisionname_type;
00070 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > collisionname;
00071
00072 typedef ::arm_navigation_msgs::CollisionObject_<ContainerAllocator> _added_object_type;
00073 ::arm_navigation_msgs::CollisionObject_<ContainerAllocator> added_object;
00074
00075
00076 typedef boost::shared_ptr< ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> > Ptr;
00077 typedef boost::shared_ptr< ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> const> ConstPtr;
00078 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00079 };
00080 typedef ::vision_srvs::cop_add_collisionResponse_<std::allocator<void> > cop_add_collisionResponse;
00081
00082 typedef boost::shared_ptr< ::vision_srvs::cop_add_collisionResponse> cop_add_collisionResponsePtr;
00083 typedef boost::shared_ptr< ::vision_srvs::cop_add_collisionResponse const> cop_add_collisionResponseConstPtr;
00084
00085 struct cop_add_collision
00086 {
00087
00088 typedef cop_add_collisionRequest Request;
00089 typedef cop_add_collisionResponse Response;
00090 Request request;
00091 Response response;
00092
00093 typedef Request RequestType;
00094 typedef Response ResponseType;
00095 };
00096 }
00097
00098 namespace ros
00099 {
00100 namespace message_traits
00101 {
00102 template<class ContainerAllocator> struct IsMessage< ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> > : public TrueType {};
00103 template<class ContainerAllocator> struct IsMessage< ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> const> : public TrueType {};
00104 template<class ContainerAllocator>
00105 struct MD5Sum< ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> > {
00106 static const char* value()
00107 {
00108 return "039cdc2e4e021929b349f87d86d0ea70";
00109 }
00110
00111 static const char* value(const ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> &) { return value(); }
00112 static const uint64_t static_value1 = 0x039cdc2e4e021929ULL;
00113 static const uint64_t static_value2 = 0xb349f87d86d0ea70ULL;
00114 };
00115
00116 template<class ContainerAllocator>
00117 struct DataType< ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> > {
00118 static const char* value()
00119 {
00120 return "vision_srvs/cop_add_collisionRequest";
00121 }
00122
00123 static const char* value(const ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> &) { return value(); }
00124 };
00125
00126 template<class ContainerAllocator>
00127 struct Definition< ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> > {
00128 static const char* value()
00129 {
00130 return "\n\
00131 \n\
00132 uint64 object_id\n\
00133 \n\
00134 ";
00135 }
00136
00137 static const char* value(const ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> &) { return value(); }
00138 };
00139
00140 template<class ContainerAllocator> struct IsFixedSize< ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> > : public TrueType {};
00141 }
00142 }
00143
00144
00145 namespace ros
00146 {
00147 namespace message_traits
00148 {
00149 template<class ContainerAllocator> struct IsMessage< ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> > : public TrueType {};
00150 template<class ContainerAllocator> struct IsMessage< ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> const> : public TrueType {};
00151 template<class ContainerAllocator>
00152 struct MD5Sum< ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> > {
00153 static const char* value()
00154 {
00155 return "66d3c9bb4e74eca84445fb8e469ca2cb";
00156 }
00157
00158 static const char* value(const ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> &) { return value(); }
00159 static const uint64_t static_value1 = 0x66d3c9bb4e74eca8ULL;
00160 static const uint64_t static_value2 = 0x4445fb8e469ca2cbULL;
00161 };
00162
00163 template<class ContainerAllocator>
00164 struct DataType< ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> > {
00165 static const char* value()
00166 {
00167 return "vision_srvs/cop_add_collisionResponse";
00168 }
00169
00170 static const char* value(const ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> &) { return value(); }
00171 };
00172
00173 template<class ContainerAllocator>
00174 struct Definition< ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> > {
00175 static const char* value()
00176 {
00177 return "string collisionname\n\
00178 arm_navigation_msgs/CollisionObject added_object\n\
00179 \n\
00180 \n\
00181 ================================================================================\n\
00182 MSG: arm_navigation_msgs/CollisionObject\n\
00183 # a header, used for interpreting the poses\n\
00184 Header header\n\
00185 \n\
00186 # the id of the object\n\
00187 string id\n\
00188 \n\
00189 # The padding used for filtering points near the object.\n\
00190 # This does not affect collision checking for the object. \n\
00191 # Set to negative to get zero padding.\n\
00192 float32 padding\n\
00193 \n\
00194 #This contains what is to be done with the object\n\
00195 CollisionObjectOperation operation\n\
00196 \n\
00197 #the shapes associated with the object\n\
00198 arm_navigation_msgs/Shape[] shapes\n\
00199 \n\
00200 #the poses associated with the shapes - will be transformed using the header\n\
00201 geometry_msgs/Pose[] poses\n\
00202 \n\
00203 ================================================================================\n\
00204 MSG: std_msgs/Header\n\
00205 # Standard metadata for higher-level stamped data types.\n\
00206 # This is generally used to communicate timestamped data \n\
00207 # in a particular coordinate frame.\n\
00208 # \n\
00209 # sequence ID: consecutively increasing ID \n\
00210 uint32 seq\n\
00211 #Two-integer timestamp that is expressed as:\n\
00212 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00213 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00214 # time-handling sugar is provided by the client library\n\
00215 time stamp\n\
00216 #Frame this data is associated with\n\
00217 # 0: no frame\n\
00218 # 1: global frame\n\
00219 string frame_id\n\
00220 \n\
00221 ================================================================================\n\
00222 MSG: arm_navigation_msgs/CollisionObjectOperation\n\
00223 #Puts the object into the environment\n\
00224 #or updates the object if already added\n\
00225 byte ADD=0\n\
00226 \n\
00227 #Removes the object from the environment entirely\n\
00228 byte REMOVE=1\n\
00229 \n\
00230 #Only valid within the context of a CollisionAttachedObject message\n\
00231 #Will be ignored if sent with an CollisionObject message\n\
00232 #Takes an attached object, detaches from the attached link\n\
00233 #But adds back in as regular object\n\
00234 byte DETACH_AND_ADD_AS_OBJECT=2\n\
00235 \n\
00236 #Only valid within the context of a CollisionAttachedObject message\n\
00237 #Will be ignored if sent with an CollisionObject message\n\
00238 #Takes current object in the environment and removes it as\n\
00239 #a regular object\n\
00240 byte ATTACH_AND_REMOVE_AS_OBJECT=3\n\
00241 \n\
00242 # Byte code for operation\n\
00243 byte operation\n\
00244 \n\
00245 ================================================================================\n\
00246 MSG: arm_navigation_msgs/Shape\n\
00247 byte SPHERE=0\n\
00248 byte BOX=1\n\
00249 byte CYLINDER=2\n\
00250 byte MESH=3\n\
00251 \n\
00252 byte type\n\
00253 \n\
00254 \n\
00255 #### define sphere, box, cylinder ####\n\
00256 # the origin of each shape is considered at the shape's center\n\
00257 \n\
00258 # for sphere\n\
00259 # radius := dimensions[0]\n\
00260 \n\
00261 # for cylinder\n\
00262 # radius := dimensions[0]\n\
00263 # length := dimensions[1]\n\
00264 # the length is along the Z axis\n\
00265 \n\
00266 # for box\n\
00267 # size_x := dimensions[0]\n\
00268 # size_y := dimensions[1]\n\
00269 # size_z := dimensions[2]\n\
00270 float64[] dimensions\n\
00271 \n\
00272 \n\
00273 #### define mesh ####\n\
00274 \n\
00275 # list of triangles; triangle k is defined by tre vertices located\n\
00276 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
00277 int32[] triangles\n\
00278 geometry_msgs/Point[] vertices\n\
00279 \n\
00280 ================================================================================\n\
00281 MSG: geometry_msgs/Point\n\
00282 # This contains the position of a point in free space\n\
00283 float64 x\n\
00284 float64 y\n\
00285 float64 z\n\
00286 \n\
00287 ================================================================================\n\
00288 MSG: geometry_msgs/Pose\n\
00289 # A representation of pose in free space, composed of postion and orientation. \n\
00290 Point position\n\
00291 Quaternion orientation\n\
00292 \n\
00293 ================================================================================\n\
00294 MSG: geometry_msgs/Quaternion\n\
00295 # This represents an orientation in free space in quaternion form.\n\
00296 \n\
00297 float64 x\n\
00298 float64 y\n\
00299 float64 z\n\
00300 float64 w\n\
00301 \n\
00302 ";
00303 }
00304
00305 static const char* value(const ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> &) { return value(); }
00306 };
00307
00308 }
00309 }
00310
00311 namespace ros
00312 {
00313 namespace serialization
00314 {
00315
00316 template<class ContainerAllocator> struct Serializer< ::vision_srvs::cop_add_collisionRequest_<ContainerAllocator> >
00317 {
00318 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00319 {
00320 stream.next(m.object_id);
00321 }
00322
00323 ROS_DECLARE_ALLINONE_SERIALIZER;
00324 };
00325 }
00326 }
00327
00328
00329 namespace ros
00330 {
00331 namespace serialization
00332 {
00333
00334 template<class ContainerAllocator> struct Serializer< ::vision_srvs::cop_add_collisionResponse_<ContainerAllocator> >
00335 {
00336 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00337 {
00338 stream.next(m.collisionname);
00339 stream.next(m.added_object);
00340 }
00341
00342 ROS_DECLARE_ALLINONE_SERIALIZER;
00343 };
00344 }
00345 }
00346
00347 namespace ros
00348 {
00349 namespace service_traits
00350 {
00351 template<>
00352 struct MD5Sum<vision_srvs::cop_add_collision> {
00353 static const char* value()
00354 {
00355 return "119055ba7d9102720f55afbcc4f26f14";
00356 }
00357
00358 static const char* value(const vision_srvs::cop_add_collision&) { return value(); }
00359 };
00360
00361 template<>
00362 struct DataType<vision_srvs::cop_add_collision> {
00363 static const char* value()
00364 {
00365 return "vision_srvs/cop_add_collision";
00366 }
00367
00368 static const char* value(const vision_srvs::cop_add_collision&) { return value(); }
00369 };
00370
00371 template<class ContainerAllocator>
00372 struct MD5Sum<vision_srvs::cop_add_collisionRequest_<ContainerAllocator> > {
00373 static const char* value()
00374 {
00375 return "119055ba7d9102720f55afbcc4f26f14";
00376 }
00377
00378 static const char* value(const vision_srvs::cop_add_collisionRequest_<ContainerAllocator> &) { return value(); }
00379 };
00380
00381 template<class ContainerAllocator>
00382 struct DataType<vision_srvs::cop_add_collisionRequest_<ContainerAllocator> > {
00383 static const char* value()
00384 {
00385 return "vision_srvs/cop_add_collision";
00386 }
00387
00388 static const char* value(const vision_srvs::cop_add_collisionRequest_<ContainerAllocator> &) { return value(); }
00389 };
00390
00391 template<class ContainerAllocator>
00392 struct MD5Sum<vision_srvs::cop_add_collisionResponse_<ContainerAllocator> > {
00393 static const char* value()
00394 {
00395 return "119055ba7d9102720f55afbcc4f26f14";
00396 }
00397
00398 static const char* value(const vision_srvs::cop_add_collisionResponse_<ContainerAllocator> &) { return value(); }
00399 };
00400
00401 template<class ContainerAllocator>
00402 struct DataType<vision_srvs::cop_add_collisionResponse_<ContainerAllocator> > {
00403 static const char* value()
00404 {
00405 return "vision_srvs/cop_add_collision";
00406 }
00407
00408 static const char* value(const vision_srvs::cop_add_collisionResponse_<ContainerAllocator> &) { return value(); }
00409 };
00410
00411 }
00412 }
00413
00414 #endif // VISION_SRVS_SERVICE_COP_ADD_COLLISION_H
00415