Go to the documentation of this file.00001
00002 #ifndef OPENRAVEROS_SERVICE_ENV_GETROBOTS_H
00003 #define OPENRAVEROS_SERVICE_ENV_GETROBOTS_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 "openraveros/RobotInfo.h"
00022
00023 namespace openraveros
00024 {
00025 template <class ContainerAllocator>
00026 struct env_getrobotsRequest_ {
00027 typedef env_getrobotsRequest_<ContainerAllocator> Type;
00028
00029 env_getrobotsRequest_()
00030 : bodyid(0)
00031 , options(0)
00032 {
00033 }
00034
00035 env_getrobotsRequest_(const ContainerAllocator& _alloc)
00036 : bodyid(0)
00037 , options(0)
00038 {
00039 }
00040
00041 typedef int32_t _bodyid_type;
00042 int32_t bodyid;
00043
00044 typedef uint16_t _options_type;
00045 uint16_t options;
00046
00047
00048 typedef boost::shared_ptr< ::openraveros::env_getrobotsRequest_<ContainerAllocator> > Ptr;
00049 typedef boost::shared_ptr< ::openraveros::env_getrobotsRequest_<ContainerAllocator> const> ConstPtr;
00050 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00051 };
00052 typedef ::openraveros::env_getrobotsRequest_<std::allocator<void> > env_getrobotsRequest;
00053
00054 typedef boost::shared_ptr< ::openraveros::env_getrobotsRequest> env_getrobotsRequestPtr;
00055 typedef boost::shared_ptr< ::openraveros::env_getrobotsRequest const> env_getrobotsRequestConstPtr;
00056
00057
00058 template <class ContainerAllocator>
00059 struct env_getrobotsResponse_ {
00060 typedef env_getrobotsResponse_<ContainerAllocator> Type;
00061
00062 env_getrobotsResponse_()
00063 : robots()
00064 {
00065 }
00066
00067 env_getrobotsResponse_(const ContainerAllocator& _alloc)
00068 : robots(_alloc)
00069 {
00070 }
00071
00072 typedef std::vector< ::openraveros::RobotInfo_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::openraveros::RobotInfo_<ContainerAllocator> >::other > _robots_type;
00073 std::vector< ::openraveros::RobotInfo_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::openraveros::RobotInfo_<ContainerAllocator> >::other > robots;
00074
00075
00076 typedef boost::shared_ptr< ::openraveros::env_getrobotsResponse_<ContainerAllocator> > Ptr;
00077 typedef boost::shared_ptr< ::openraveros::env_getrobotsResponse_<ContainerAllocator> const> ConstPtr;
00078 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00079 };
00080 typedef ::openraveros::env_getrobotsResponse_<std::allocator<void> > env_getrobotsResponse;
00081
00082 typedef boost::shared_ptr< ::openraveros::env_getrobotsResponse> env_getrobotsResponsePtr;
00083 typedef boost::shared_ptr< ::openraveros::env_getrobotsResponse const> env_getrobotsResponseConstPtr;
00084
00085 struct env_getrobots
00086 {
00087
00088 typedef env_getrobotsRequest Request;
00089 typedef env_getrobotsResponse 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< ::openraveros::env_getrobotsRequest_<ContainerAllocator> > : public TrueType {};
00103 template<class ContainerAllocator> struct IsMessage< ::openraveros::env_getrobotsRequest_<ContainerAllocator> const> : public TrueType {};
00104 template<class ContainerAllocator>
00105 struct MD5Sum< ::openraveros::env_getrobotsRequest_<ContainerAllocator> > {
00106 static const char* value()
00107 {
00108 return "9996321108452a956d6ad7dd8fe30cad";
00109 }
00110
00111 static const char* value(const ::openraveros::env_getrobotsRequest_<ContainerAllocator> &) { return value(); }
00112 static const uint64_t static_value1 = 0x9996321108452a95ULL;
00113 static const uint64_t static_value2 = 0x6d6ad7dd8fe30cadULL;
00114 };
00115
00116 template<class ContainerAllocator>
00117 struct DataType< ::openraveros::env_getrobotsRequest_<ContainerAllocator> > {
00118 static const char* value()
00119 {
00120 return "openraveros/env_getrobotsRequest";
00121 }
00122
00123 static const char* value(const ::openraveros::env_getrobotsRequest_<ContainerAllocator> &) { return value(); }
00124 };
00125
00126 template<class ContainerAllocator>
00127 struct Definition< ::openraveros::env_getrobotsRequest_<ContainerAllocator> > {
00128 static const char* value()
00129 {
00130 return "\n\
00131 \n\
00132 \n\
00133 int32 bodyid\n\
00134 \n\
00135 \n\
00136 uint16 options\n\
00137 \n\
00138 \n\
00139 ";
00140 }
00141
00142 static const char* value(const ::openraveros::env_getrobotsRequest_<ContainerAllocator> &) { return value(); }
00143 };
00144
00145 template<class ContainerAllocator> struct IsFixedSize< ::openraveros::env_getrobotsRequest_<ContainerAllocator> > : public TrueType {};
00146 }
00147 }
00148
00149
00150 namespace ros
00151 {
00152 namespace message_traits
00153 {
00154 template<class ContainerAllocator> struct IsMessage< ::openraveros::env_getrobotsResponse_<ContainerAllocator> > : public TrueType {};
00155 template<class ContainerAllocator> struct IsMessage< ::openraveros::env_getrobotsResponse_<ContainerAllocator> const> : public TrueType {};
00156 template<class ContainerAllocator>
00157 struct MD5Sum< ::openraveros::env_getrobotsResponse_<ContainerAllocator> > {
00158 static const char* value()
00159 {
00160 return "38c02fd855ba1814cb013d4ea1e800bf";
00161 }
00162
00163 static const char* value(const ::openraveros::env_getrobotsResponse_<ContainerAllocator> &) { return value(); }
00164 static const uint64_t static_value1 = 0x38c02fd855ba1814ULL;
00165 static const uint64_t static_value2 = 0xcb013d4ea1e800bfULL;
00166 };
00167
00168 template<class ContainerAllocator>
00169 struct DataType< ::openraveros::env_getrobotsResponse_<ContainerAllocator> > {
00170 static const char* value()
00171 {
00172 return "openraveros/env_getrobotsResponse";
00173 }
00174
00175 static const char* value(const ::openraveros::env_getrobotsResponse_<ContainerAllocator> &) { return value(); }
00176 };
00177
00178 template<class ContainerAllocator>
00179 struct Definition< ::openraveros::env_getrobotsResponse_<ContainerAllocator> > {
00180 static const char* value()
00181 {
00182 return "RobotInfo[] robots\n\
00183 \n\
00184 \n\
00185 ================================================================================\n\
00186 MSG: openraveros/RobotInfo\n\
00187 # robot information\n\
00188 \n\
00189 BodyInfo bodyinfo\n\
00190 Manipulator[] manips\n\
00191 AttachedSensor[] sensors\n\
00192 \n\
00193 # total active dof\n\
00194 uint8 activedof\n\
00195 \n\
00196 # current active manipulator\n\
00197 uint8 activemanip\n\
00198 \n\
00199 # information about the active dofs\n\
00200 ActiveDOFs active\n\
00201 \n\
00202 # joint limits\n\
00203 float32[] activelowerlimit\n\
00204 float32[] activeupperlimit\n\
00205 \n\
00206 # upper 8 bits\n\
00207 uint16 Req_Manipulators=256\n\
00208 uint16 Req_Sensors=512\n\
00209 uint16 Req_ActiveDOFs=1024\n\
00210 uint16 Req_ActiveLimits=2048\n\
00211 \n\
00212 ================================================================================\n\
00213 MSG: openraveros/BodyInfo\n\
00214 # information about a body\n\
00215 int32 bodyid\n\
00216 \n\
00217 # current transformation\n\
00218 AffineTransformMatrix transform\n\
00219 \n\
00220 # degrees of freedom (number of joints)\n\
00221 uint8 dof\n\
00222 \n\
00223 # enabled status\n\
00224 uint8 enabled\n\
00225 \n\
00226 \n\
00227 # filename used to create body geometry\n\
00228 string filename\n\
00229 \n\
00230 # name of the body\n\
00231 string name\n\
00232 \n\
00233 # type of body\n\
00234 string type\n\
00235 \n\
00236 float32[] jointvalues\n\
00237 AffineTransformMatrix[] links\n\
00238 string[] linknames\n\
00239 string[] jointnames\n\
00240 \n\
00241 # joint limits\n\
00242 float32[] lowerlimit\n\
00243 float32[] upperlimit\n\
00244 \n\
00245 # request information bitmasks, also holds robot specific request information (lower 8 bits)\n\
00246 uint16 Req_JointValues=1\n\
00247 uint16 Req_Links=2\n\
00248 uint16 Req_LinkNames=4 # fills the linknames\n\
00249 uint16 Req_JointLimits=8\n\
00250 uint16 Req_Names=16 # if set, fills filename, name, and type\n\
00251 uint16 Req_JointNames=32 # fills the jointnames\n\
00252 ================================================================================\n\
00253 MSG: openraveros/AffineTransformMatrix\n\
00254 # column ordered 3x4 affine transformation, ie: the arrangement in memory is:\n\
00255 # where the upper 3x3 matrix is orthonormal\n\
00256 # [0] [3] [6] [9]\n\
00257 # [1] [4] [7] [10]\n\
00258 # [2] [5] [8] [11]\n\
00259 float32[12] m\n\
00260 \n\
00261 ================================================================================\n\
00262 MSG: openraveros/Manipulator\n\
00263 # information specific to a manipulator for a robot\n\
00264 \n\
00265 # zero-based index of base link that manipulator is attached to\n\
00266 int8 baselink\n\
00267 \n\
00268 # zero-based index of link defining the end-effector\n\
00269 int8 eelink\n\
00270 \n\
00271 # 3x4 matrix of the grasp frame relative to the end-effector link\n\
00272 AffineTransformMatrix tgrasp\n\
00273 \n\
00274 # zero-based hand joint indices\n\
00275 uint8[] handjoints\n\
00276 \n\
00277 # zero-based arm joints indices (from base to end-effector)\n\
00278 uint8[] armjoints\n\
00279 \n\
00280 # name of ik solver using\n\
00281 string iksolvername\n\
00282 \n\
00283 # manipulator name\n\
00284 string name\n\
00285 \n\
00286 ================================================================================\n\
00287 MSG: openraveros/AttachedSensor\n\
00288 # information specific to an attached sensor for a robot\n\
00289 \n\
00290 # name of sensor\n\
00291 string name\n\
00292 \n\
00293 # zero-based index of link sensor is attached to\n\
00294 int8 attachedlink\n\
00295 \n\
00296 # 3x4 matrix of the relative transform of the sensor frame with respect to the link frame\n\
00297 AffineTransformMatrix trelative\n\
00298 \n\
00299 # 3x4 matrix of the global transform of the sensor (ie, with link transform applied)\n\
00300 AffineTransformMatrix tglobal\n\
00301 \n\
00302 # type of sensor\n\
00303 string type\n\
00304 \n\
00305 ================================================================================\n\
00306 MSG: openraveros/ActiveDOFs\n\
00307 # specifies the active degrees of freedom of the robot\n\
00308 \n\
00309 # mask of active base degrees of freedom\n\
00310 uint32 affine\n\
00311 \n\
00312 # active joints\n\
00313 int32[] indices\n\
00314 \n\
00315 float32[3] rotationaxis\n\
00316 \n\
00317 # mask for affine dofs\n\
00318 uint8 DOF_X = 1\n\
00319 uint8 DOF_Y = 2\n\
00320 uint8 DOF_Z = 4\n\
00321 uint8 DOF_RotationAxis = 8\n\
00322 uint8 DOF_Rotation3D = 16\n\
00323 uint8 DOF_RotationQuat = 32\n\
00324 \n\
00325 ";
00326 }
00327
00328 static const char* value(const ::openraveros::env_getrobotsResponse_<ContainerAllocator> &) { return value(); }
00329 };
00330
00331 }
00332 }
00333
00334 namespace ros
00335 {
00336 namespace serialization
00337 {
00338
00339 template<class ContainerAllocator> struct Serializer< ::openraveros::env_getrobotsRequest_<ContainerAllocator> >
00340 {
00341 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00342 {
00343 stream.next(m.bodyid);
00344 stream.next(m.options);
00345 }
00346
00347 ROS_DECLARE_ALLINONE_SERIALIZER;
00348 };
00349 }
00350 }
00351
00352
00353 namespace ros
00354 {
00355 namespace serialization
00356 {
00357
00358 template<class ContainerAllocator> struct Serializer< ::openraveros::env_getrobotsResponse_<ContainerAllocator> >
00359 {
00360 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00361 {
00362 stream.next(m.robots);
00363 }
00364
00365 ROS_DECLARE_ALLINONE_SERIALIZER;
00366 };
00367 }
00368 }
00369
00370 namespace ros
00371 {
00372 namespace service_traits
00373 {
00374 template<>
00375 struct MD5Sum<openraveros::env_getrobots> {
00376 static const char* value()
00377 {
00378 return "67744c39b9378c6b7bc344ff1029d5bc";
00379 }
00380
00381 static const char* value(const openraveros::env_getrobots&) { return value(); }
00382 };
00383
00384 template<>
00385 struct DataType<openraveros::env_getrobots> {
00386 static const char* value()
00387 {
00388 return "openraveros/env_getrobots";
00389 }
00390
00391 static const char* value(const openraveros::env_getrobots&) { return value(); }
00392 };
00393
00394 template<class ContainerAllocator>
00395 struct MD5Sum<openraveros::env_getrobotsRequest_<ContainerAllocator> > {
00396 static const char* value()
00397 {
00398 return "67744c39b9378c6b7bc344ff1029d5bc";
00399 }
00400
00401 static const char* value(const openraveros::env_getrobotsRequest_<ContainerAllocator> &) { return value(); }
00402 };
00403
00404 template<class ContainerAllocator>
00405 struct DataType<openraveros::env_getrobotsRequest_<ContainerAllocator> > {
00406 static const char* value()
00407 {
00408 return "openraveros/env_getrobots";
00409 }
00410
00411 static const char* value(const openraveros::env_getrobotsRequest_<ContainerAllocator> &) { return value(); }
00412 };
00413
00414 template<class ContainerAllocator>
00415 struct MD5Sum<openraveros::env_getrobotsResponse_<ContainerAllocator> > {
00416 static const char* value()
00417 {
00418 return "67744c39b9378c6b7bc344ff1029d5bc";
00419 }
00420
00421 static const char* value(const openraveros::env_getrobotsResponse_<ContainerAllocator> &) { return value(); }
00422 };
00423
00424 template<class ContainerAllocator>
00425 struct DataType<openraveros::env_getrobotsResponse_<ContainerAllocator> > {
00426 static const char* value()
00427 {
00428 return "openraveros/env_getrobots";
00429 }
00430
00431 static const char* value(const openraveros::env_getrobotsResponse_<ContainerAllocator> &) { return value(); }
00432 };
00433
00434 }
00435 }
00436
00437 #endif // OPENRAVEROS_SERVICE_ENV_GETROBOTS_H
00438