Go to the documentation of this file.00001
00002 #ifndef ARM_NAVIGATION_MSGS_SERVICE_GETSTATEVALIDITY_H
00003 #define ARM_NAVIGATION_MSGS_SERVICE_GETSTATEVALIDITY_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 #include "arm_navigation_msgs/RobotState.h"
00020 #include "arm_navigation_msgs/Constraints.h"
00021 #include "arm_navigation_msgs/Constraints.h"
00022
00023
00024 #include "arm_navigation_msgs/ArmNavigationErrorCodes.h"
00025 #include "arm_navigation_msgs/ContactInformation.h"
00026
00027 namespace arm_navigation_msgs
00028 {
00029 template <class ContainerAllocator>
00030 struct GetStateValidityRequest_ {
00031 typedef GetStateValidityRequest_<ContainerAllocator> Type;
00032
00033 GetStateValidityRequest_()
00034 : robot_state()
00035 , check_collisions(false)
00036 , check_path_constraints(false)
00037 , check_goal_constraints(false)
00038 , check_joint_limits(false)
00039 , group_name()
00040 , path_constraints()
00041 , goal_constraints()
00042 {
00043 }
00044
00045 GetStateValidityRequest_(const ContainerAllocator& _alloc)
00046 : robot_state(_alloc)
00047 , check_collisions(false)
00048 , check_path_constraints(false)
00049 , check_goal_constraints(false)
00050 , check_joint_limits(false)
00051 , group_name(_alloc)
00052 , path_constraints(_alloc)
00053 , goal_constraints(_alloc)
00054 {
00055 }
00056
00057 typedef ::arm_navigation_msgs::RobotState_<ContainerAllocator> _robot_state_type;
00058 ::arm_navigation_msgs::RobotState_<ContainerAllocator> robot_state;
00059
00060 typedef uint8_t _check_collisions_type;
00061 uint8_t check_collisions;
00062
00063 typedef uint8_t _check_path_constraints_type;
00064 uint8_t check_path_constraints;
00065
00066 typedef uint8_t _check_goal_constraints_type;
00067 uint8_t check_goal_constraints;
00068
00069 typedef uint8_t _check_joint_limits_type;
00070 uint8_t check_joint_limits;
00071
00072 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _group_name_type;
00073 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > group_name;
00074
00075 typedef ::arm_navigation_msgs::Constraints_<ContainerAllocator> _path_constraints_type;
00076 ::arm_navigation_msgs::Constraints_<ContainerAllocator> path_constraints;
00077
00078 typedef ::arm_navigation_msgs::Constraints_<ContainerAllocator> _goal_constraints_type;
00079 ::arm_navigation_msgs::Constraints_<ContainerAllocator> goal_constraints;
00080
00081
00082 typedef boost::shared_ptr< ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> > Ptr;
00083 typedef boost::shared_ptr< ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> const> ConstPtr;
00084 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00085 };
00086 typedef ::arm_navigation_msgs::GetStateValidityRequest_<std::allocator<void> > GetStateValidityRequest;
00087
00088 typedef boost::shared_ptr< ::arm_navigation_msgs::GetStateValidityRequest> GetStateValidityRequestPtr;
00089 typedef boost::shared_ptr< ::arm_navigation_msgs::GetStateValidityRequest const> GetStateValidityRequestConstPtr;
00090
00091
00092
00093 template <class ContainerAllocator>
00094 struct GetStateValidityResponse_ {
00095 typedef GetStateValidityResponse_<ContainerAllocator> Type;
00096
00097 GetStateValidityResponse_()
00098 : error_code()
00099 , contacts()
00100 {
00101 }
00102
00103 GetStateValidityResponse_(const ContainerAllocator& _alloc)
00104 : error_code(_alloc)
00105 , contacts(_alloc)
00106 {
00107 }
00108
00109 typedef ::arm_navigation_msgs::ArmNavigationErrorCodes_<ContainerAllocator> _error_code_type;
00110 ::arm_navigation_msgs::ArmNavigationErrorCodes_<ContainerAllocator> error_code;
00111
00112 typedef std::vector< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> >::other > _contacts_type;
00113 std::vector< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::ContactInformation_<ContainerAllocator> >::other > contacts;
00114
00115
00116 typedef boost::shared_ptr< ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> > Ptr;
00117 typedef boost::shared_ptr< ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> const> ConstPtr;
00118 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00119 };
00120 typedef ::arm_navigation_msgs::GetStateValidityResponse_<std::allocator<void> > GetStateValidityResponse;
00121
00122 typedef boost::shared_ptr< ::arm_navigation_msgs::GetStateValidityResponse> GetStateValidityResponsePtr;
00123 typedef boost::shared_ptr< ::arm_navigation_msgs::GetStateValidityResponse const> GetStateValidityResponseConstPtr;
00124
00125
00126 struct GetStateValidity
00127 {
00128
00129 typedef GetStateValidityRequest Request;
00130 typedef GetStateValidityResponse Response;
00131 Request request;
00132 Response response;
00133
00134 typedef Request RequestType;
00135 typedef Response ResponseType;
00136 };
00137 }
00138
00139 namespace ros
00140 {
00141 namespace message_traits
00142 {
00143 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> > : public TrueType {};
00144 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> const> : public TrueType {};
00145 template<class ContainerAllocator>
00146 struct MD5Sum< ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> > {
00147 static const char* value()
00148 {
00149 return "fe05d730cc03ecb8a8dff34774a12c59";
00150 }
00151
00152 static const char* value(const ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> &) { return value(); }
00153 static const uint64_t static_value1 = 0xfe05d730cc03ecb8ULL;
00154 static const uint64_t static_value2 = 0xa8dff34774a12c59ULL;
00155 };
00156
00157 template<class ContainerAllocator>
00158 struct DataType< ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> > {
00159 static const char* value()
00160 {
00161 return "arm_navigation_msgs/GetStateValidityRequest";
00162 }
00163
00164 static const char* value(const ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> &) { return value(); }
00165 };
00166
00167 template<class ContainerAllocator>
00168 struct Definition< ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> > {
00169 static const char* value()
00170 {
00171 return "\n\
00172 \n\
00173 arm_navigation_msgs/RobotState robot_state\n\
00174 \n\
00175 \n\
00176 bool check_collisions\n\
00177 \n\
00178 \n\
00179 bool check_path_constraints\n\
00180 \n\
00181 \n\
00182 bool check_goal_constraints\n\
00183 \n\
00184 \n\
00185 bool check_joint_limits\n\
00186 \n\
00187 \n\
00188 string group_name\n\
00189 \n\
00190 \n\
00191 \n\
00192 \n\
00193 arm_navigation_msgs/Constraints path_constraints\n\
00194 \n\
00195 \n\
00196 \n\
00197 \n\
00198 arm_navigation_msgs/Constraints goal_constraints\n\
00199 \n\
00200 \n\
00201 ================================================================================\n\
00202 MSG: arm_navigation_msgs/RobotState\n\
00203 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00204 sensor_msgs/JointState joint_state\n\
00205 arm_navigation_msgs/MultiDOFJointState multi_dof_joint_state\n\
00206 \n\
00207 ================================================================================\n\
00208 MSG: sensor_msgs/JointState\n\
00209 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00210 #\n\
00211 # The state of each joint (revolute or prismatic) is defined by:\n\
00212 # * the position of the joint (rad or m),\n\
00213 # * the velocity of the joint (rad/s or m/s) and \n\
00214 # * the effort that is applied in the joint (Nm or N).\n\
00215 #\n\
00216 # Each joint is uniquely identified by its name\n\
00217 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00218 # in one message have to be recorded at the same time.\n\
00219 #\n\
00220 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00221 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00222 # effort associated with them, you can leave the effort array empty. \n\
00223 #\n\
00224 # All arrays in this message should have the same size, or be empty.\n\
00225 # This is the only way to uniquely associate the joint name with the correct\n\
00226 # states.\n\
00227 \n\
00228 \n\
00229 Header header\n\
00230 \n\
00231 string[] name\n\
00232 float64[] position\n\
00233 float64[] velocity\n\
00234 float64[] effort\n\
00235 \n\
00236 ================================================================================\n\
00237 MSG: std_msgs/Header\n\
00238 # Standard metadata for higher-level stamped data types.\n\
00239 # This is generally used to communicate timestamped data \n\
00240 # in a particular coordinate frame.\n\
00241 # \n\
00242 # sequence ID: consecutively increasing ID \n\
00243 uint32 seq\n\
00244 #Two-integer timestamp that is expressed as:\n\
00245 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00246 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00247 # time-handling sugar is provided by the client library\n\
00248 time stamp\n\
00249 #Frame this data is associated with\n\
00250 # 0: no frame\n\
00251 # 1: global frame\n\
00252 string frame_id\n\
00253 \n\
00254 ================================================================================\n\
00255 MSG: arm_navigation_msgs/MultiDOFJointState\n\
00256 #A representation of a multi-dof joint state\n\
00257 time stamp\n\
00258 string[] joint_names\n\
00259 string[] frame_ids\n\
00260 string[] child_frame_ids\n\
00261 geometry_msgs/Pose[] poses\n\
00262 \n\
00263 ================================================================================\n\
00264 MSG: geometry_msgs/Pose\n\
00265 # A representation of pose in free space, composed of postion and orientation. \n\
00266 Point position\n\
00267 Quaternion orientation\n\
00268 \n\
00269 ================================================================================\n\
00270 MSG: geometry_msgs/Point\n\
00271 # This contains the position of a point in free space\n\
00272 float64 x\n\
00273 float64 y\n\
00274 float64 z\n\
00275 \n\
00276 ================================================================================\n\
00277 MSG: geometry_msgs/Quaternion\n\
00278 # This represents an orientation in free space in quaternion form.\n\
00279 \n\
00280 float64 x\n\
00281 float64 y\n\
00282 float64 z\n\
00283 float64 w\n\
00284 \n\
00285 ================================================================================\n\
00286 MSG: arm_navigation_msgs/Constraints\n\
00287 # This message contains a list of motion planning constraints.\n\
00288 \n\
00289 arm_navigation_msgs/JointConstraint[] joint_constraints\n\
00290 arm_navigation_msgs/PositionConstraint[] position_constraints\n\
00291 arm_navigation_msgs/OrientationConstraint[] orientation_constraints\n\
00292 arm_navigation_msgs/VisibilityConstraint[] visibility_constraints\n\
00293 \n\
00294 ================================================================================\n\
00295 MSG: arm_navigation_msgs/JointConstraint\n\
00296 # Constrain the position of a joint to be within a certain bound\n\
00297 string joint_name\n\
00298 \n\
00299 # the bound to be achieved is [position - tolerance_below, position + tolerance_above]\n\
00300 float64 position\n\
00301 float64 tolerance_above\n\
00302 float64 tolerance_below\n\
00303 \n\
00304 # A weighting factor for this constraint\n\
00305 float64 weight\n\
00306 ================================================================================\n\
00307 MSG: arm_navigation_msgs/PositionConstraint\n\
00308 # This message contains the definition of a position constraint.\n\
00309 Header header\n\
00310 \n\
00311 # The robot link this constraint refers to\n\
00312 string link_name\n\
00313 \n\
00314 # The offset (in the link frame) for the target point on the link we are planning for\n\
00315 geometry_msgs/Point target_point_offset\n\
00316 \n\
00317 # The nominal/target position for the point we are planning for\n\
00318 geometry_msgs/Point position\n\
00319 \n\
00320 # The shape of the bounded region that constrains the position of the end-effector\n\
00321 # This region is always centered at the position defined above\n\
00322 arm_navigation_msgs/Shape constraint_region_shape\n\
00323 \n\
00324 # The orientation of the bounded region that constrains the position of the end-effector. \n\
00325 # This allows the specification of non-axis aligned constraints\n\
00326 geometry_msgs/Quaternion constraint_region_orientation\n\
00327 \n\
00328 # Constraint weighting factor - a weight for this constraint\n\
00329 float64 weight\n\
00330 \n\
00331 ================================================================================\n\
00332 MSG: arm_navigation_msgs/Shape\n\
00333 byte SPHERE=0\n\
00334 byte BOX=1\n\
00335 byte CYLINDER=2\n\
00336 byte MESH=3\n\
00337 \n\
00338 byte type\n\
00339 \n\
00340 \n\
00341 #### define sphere, box, cylinder ####\n\
00342 # the origin of each shape is considered at the shape's center\n\
00343 \n\
00344 # for sphere\n\
00345 # radius := dimensions[0]\n\
00346 \n\
00347 # for cylinder\n\
00348 # radius := dimensions[0]\n\
00349 # length := dimensions[1]\n\
00350 # the length is along the Z axis\n\
00351 \n\
00352 # for box\n\
00353 # size_x := dimensions[0]\n\
00354 # size_y := dimensions[1]\n\
00355 # size_z := dimensions[2]\n\
00356 float64[] dimensions\n\
00357 \n\
00358 \n\
00359 #### define mesh ####\n\
00360 \n\
00361 # list of triangles; triangle k is defined by tre vertices located\n\
00362 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
00363 int32[] triangles\n\
00364 geometry_msgs/Point[] vertices\n\
00365 \n\
00366 ================================================================================\n\
00367 MSG: arm_navigation_msgs/OrientationConstraint\n\
00368 # This message contains the definition of an orientation constraint.\n\
00369 Header header\n\
00370 \n\
00371 # The robot link this constraint refers to\n\
00372 string link_name\n\
00373 \n\
00374 # The type of the constraint\n\
00375 int32 type\n\
00376 int32 LINK_FRAME=0\n\
00377 int32 HEADER_FRAME=1\n\
00378 \n\
00379 # The desired orientation of the robot link specified as a quaternion\n\
00380 geometry_msgs/Quaternion orientation\n\
00381 \n\
00382 # optional RPY error tolerances specified if \n\
00383 float64 absolute_roll_tolerance\n\
00384 float64 absolute_pitch_tolerance\n\
00385 float64 absolute_yaw_tolerance\n\
00386 \n\
00387 # Constraint weighting factor - a weight for this constraint\n\
00388 float64 weight\n\
00389 \n\
00390 ================================================================================\n\
00391 MSG: arm_navigation_msgs/VisibilityConstraint\n\
00392 # This message contains the definition of a visibility constraint.\n\
00393 Header header\n\
00394 \n\
00395 # The point stamped target that needs to be kept within view of the sensor\n\
00396 geometry_msgs/PointStamped target\n\
00397 \n\
00398 # The local pose of the frame in which visibility is to be maintained\n\
00399 # The frame id should represent the robot link to which the sensor is attached\n\
00400 # The visual axis of the sensor is assumed to be along the X axis of this frame\n\
00401 geometry_msgs/PoseStamped sensor_pose\n\
00402 \n\
00403 # The deviation (in radians) that will be tolerated\n\
00404 # Constraint error will be measured as the solid angle between the \n\
00405 # X axis of the frame defined above and the vector between the origin \n\
00406 # of the frame defined above and the target location\n\
00407 float64 absolute_tolerance\n\
00408 \n\
00409 \n\
00410 ================================================================================\n\
00411 MSG: geometry_msgs/PointStamped\n\
00412 # This represents a Point with reference coordinate frame and timestamp\n\
00413 Header header\n\
00414 Point point\n\
00415 \n\
00416 ================================================================================\n\
00417 MSG: geometry_msgs/PoseStamped\n\
00418 # A Pose with reference coordinate frame and timestamp\n\
00419 Header header\n\
00420 Pose pose\n\
00421 \n\
00422 ";
00423 }
00424
00425 static const char* value(const ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> &) { return value(); }
00426 };
00427
00428 }
00429 }
00430
00431
00432 namespace ros
00433 {
00434 namespace message_traits
00435 {
00436 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> > : public TrueType {};
00437 template<class ContainerAllocator> struct IsMessage< ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> const> : public TrueType {};
00438 template<class ContainerAllocator>
00439 struct MD5Sum< ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> > {
00440 static const char* value()
00441 {
00442 return "3229301226a0605e3ffc9dfdaeac662f";
00443 }
00444
00445 static const char* value(const ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> &) { return value(); }
00446 static const uint64_t static_value1 = 0x3229301226a0605eULL;
00447 static const uint64_t static_value2 = 0x3ffc9dfdaeac662fULL;
00448 };
00449
00450 template<class ContainerAllocator>
00451 struct DataType< ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> > {
00452 static const char* value()
00453 {
00454 return "arm_navigation_msgs/GetStateValidityResponse";
00455 }
00456
00457 static const char* value(const ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> &) { return value(); }
00458 };
00459
00460 template<class ContainerAllocator>
00461 struct Definition< ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> > {
00462 static const char* value()
00463 {
00464 return "\n\
00465 \n\
00466 \n\
00467 \n\
00468 arm_navigation_msgs/ArmNavigationErrorCodes error_code\n\
00469 \n\
00470 \n\
00471 arm_navigation_msgs/ContactInformation[] contacts\n\
00472 \n\
00473 \n\
00474 ================================================================================\n\
00475 MSG: arm_navigation_msgs/ArmNavigationErrorCodes\n\
00476 int32 val\n\
00477 \n\
00478 # overall behavior\n\
00479 int32 PLANNING_FAILED=-1\n\
00480 int32 SUCCESS=1\n\
00481 int32 TIMED_OUT=-2\n\
00482 \n\
00483 # start state errors\n\
00484 int32 START_STATE_IN_COLLISION=-3\n\
00485 int32 START_STATE_VIOLATES_PATH_CONSTRAINTS=-4\n\
00486 \n\
00487 # goal errors\n\
00488 int32 GOAL_IN_COLLISION=-5\n\
00489 int32 GOAL_VIOLATES_PATH_CONSTRAINTS=-6\n\
00490 \n\
00491 # robot state\n\
00492 int32 INVALID_ROBOT_STATE=-7\n\
00493 int32 INCOMPLETE_ROBOT_STATE=-8\n\
00494 \n\
00495 # planning request errors\n\
00496 int32 INVALID_PLANNER_ID=-9\n\
00497 int32 INVALID_NUM_PLANNING_ATTEMPTS=-10\n\
00498 int32 INVALID_ALLOWED_PLANNING_TIME=-11\n\
00499 int32 INVALID_GROUP_NAME=-12\n\
00500 int32 INVALID_GOAL_JOINT_CONSTRAINTS=-13\n\
00501 int32 INVALID_GOAL_POSITION_CONSTRAINTS=-14\n\
00502 int32 INVALID_GOAL_ORIENTATION_CONSTRAINTS=-15\n\
00503 int32 INVALID_PATH_JOINT_CONSTRAINTS=-16\n\
00504 int32 INVALID_PATH_POSITION_CONSTRAINTS=-17\n\
00505 int32 INVALID_PATH_ORIENTATION_CONSTRAINTS=-18\n\
00506 \n\
00507 # state/trajectory monitor errors\n\
00508 int32 INVALID_TRAJECTORY=-19\n\
00509 int32 INVALID_INDEX=-20\n\
00510 int32 JOINT_LIMITS_VIOLATED=-21\n\
00511 int32 PATH_CONSTRAINTS_VIOLATED=-22\n\
00512 int32 COLLISION_CONSTRAINTS_VIOLATED=-23\n\
00513 int32 GOAL_CONSTRAINTS_VIOLATED=-24\n\
00514 int32 JOINTS_NOT_MOVING=-25\n\
00515 int32 TRAJECTORY_CONTROLLER_FAILED=-26\n\
00516 \n\
00517 # system errors\n\
00518 int32 FRAME_TRANSFORM_FAILURE=-27\n\
00519 int32 COLLISION_CHECKING_UNAVAILABLE=-28\n\
00520 int32 ROBOT_STATE_STALE=-29\n\
00521 int32 SENSOR_INFO_STALE=-30\n\
00522 \n\
00523 # kinematics errors\n\
00524 int32 NO_IK_SOLUTION=-31\n\
00525 int32 INVALID_LINK_NAME=-32\n\
00526 int32 IK_LINK_IN_COLLISION=-33\n\
00527 int32 NO_FK_SOLUTION=-34\n\
00528 int32 KINEMATICS_STATE_IN_COLLISION=-35\n\
00529 \n\
00530 # general errors\n\
00531 int32 INVALID_TIMEOUT=-36\n\
00532 \n\
00533 \n\
00534 ================================================================================\n\
00535 MSG: arm_navigation_msgs/ContactInformation\n\
00536 # Standard ROS header contains information \n\
00537 # about the frame in which this \n\
00538 # contact is specified\n\
00539 Header header\n\
00540 \n\
00541 # Position of the contact point\n\
00542 geometry_msgs/Point position\n\
00543 \n\
00544 # Normal corresponding to the contact point\n\
00545 geometry_msgs/Vector3 normal \n\
00546 \n\
00547 # Depth of contact point\n\
00548 float64 depth\n\
00549 \n\
00550 # Name of the first body that is in contact\n\
00551 # This could be a link or a namespace that represents a body\n\
00552 string contact_body_1\n\
00553 string attached_body_1\n\
00554 uint32 body_type_1\n\
00555 \n\
00556 # Name of the second body that is in contact\n\
00557 # This could be a link or a namespace that represents a body\n\
00558 string contact_body_2\n\
00559 string attached_body_2\n\
00560 uint32 body_type_2\n\
00561 \n\
00562 uint32 ROBOT_LINK=0\n\
00563 uint32 OBJECT=1\n\
00564 uint32 ATTACHED_BODY=2\n\
00565 ================================================================================\n\
00566 MSG: std_msgs/Header\n\
00567 # Standard metadata for higher-level stamped data types.\n\
00568 # This is generally used to communicate timestamped data \n\
00569 # in a particular coordinate frame.\n\
00570 # \n\
00571 # sequence ID: consecutively increasing ID \n\
00572 uint32 seq\n\
00573 #Two-integer timestamp that is expressed as:\n\
00574 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00575 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00576 # time-handling sugar is provided by the client library\n\
00577 time stamp\n\
00578 #Frame this data is associated with\n\
00579 # 0: no frame\n\
00580 # 1: global frame\n\
00581 string frame_id\n\
00582 \n\
00583 ================================================================================\n\
00584 MSG: geometry_msgs/Point\n\
00585 # This contains the position of a point in free space\n\
00586 float64 x\n\
00587 float64 y\n\
00588 float64 z\n\
00589 \n\
00590 ================================================================================\n\
00591 MSG: geometry_msgs/Vector3\n\
00592 # This represents a vector in free space. \n\
00593 \n\
00594 float64 x\n\
00595 float64 y\n\
00596 float64 z\n\
00597 ";
00598 }
00599
00600 static const char* value(const ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> &) { return value(); }
00601 };
00602
00603 }
00604 }
00605
00606 namespace ros
00607 {
00608 namespace serialization
00609 {
00610
00611 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> >
00612 {
00613 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00614 {
00615 stream.next(m.robot_state);
00616 stream.next(m.check_collisions);
00617 stream.next(m.check_path_constraints);
00618 stream.next(m.check_goal_constraints);
00619 stream.next(m.check_joint_limits);
00620 stream.next(m.group_name);
00621 stream.next(m.path_constraints);
00622 stream.next(m.goal_constraints);
00623 }
00624
00625 ROS_DECLARE_ALLINONE_SERIALIZER;
00626 };
00627 }
00628 }
00629
00630
00631 namespace ros
00632 {
00633 namespace serialization
00634 {
00635
00636 template<class ContainerAllocator> struct Serializer< ::arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> >
00637 {
00638 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00639 {
00640 stream.next(m.error_code);
00641 stream.next(m.contacts);
00642 }
00643
00644 ROS_DECLARE_ALLINONE_SERIALIZER;
00645 };
00646 }
00647 }
00648
00649 namespace ros
00650 {
00651 namespace service_traits
00652 {
00653 template<>
00654 struct MD5Sum<arm_navigation_msgs::GetStateValidity> {
00655 static const char* value()
00656 {
00657 return "05125b9572f64feb9a7f590a8674e9ee";
00658 }
00659
00660 static const char* value(const arm_navigation_msgs::GetStateValidity&) { return value(); }
00661 };
00662
00663 template<>
00664 struct DataType<arm_navigation_msgs::GetStateValidity> {
00665 static const char* value()
00666 {
00667 return "arm_navigation_msgs/GetStateValidity";
00668 }
00669
00670 static const char* value(const arm_navigation_msgs::GetStateValidity&) { return value(); }
00671 };
00672
00673 template<class ContainerAllocator>
00674 struct MD5Sum<arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> > {
00675 static const char* value()
00676 {
00677 return "05125b9572f64feb9a7f590a8674e9ee";
00678 }
00679
00680 static const char* value(const arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> &) { return value(); }
00681 };
00682
00683 template<class ContainerAllocator>
00684 struct DataType<arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> > {
00685 static const char* value()
00686 {
00687 return "arm_navigation_msgs/GetStateValidity";
00688 }
00689
00690 static const char* value(const arm_navigation_msgs::GetStateValidityRequest_<ContainerAllocator> &) { return value(); }
00691 };
00692
00693 template<class ContainerAllocator>
00694 struct MD5Sum<arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> > {
00695 static const char* value()
00696 {
00697 return "05125b9572f64feb9a7f590a8674e9ee";
00698 }
00699
00700 static const char* value(const arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> &) { return value(); }
00701 };
00702
00703 template<class ContainerAllocator>
00704 struct DataType<arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> > {
00705 static const char* value()
00706 {
00707 return "arm_navigation_msgs/GetStateValidity";
00708 }
00709
00710 static const char* value(const arm_navigation_msgs::GetStateValidityResponse_<ContainerAllocator> &) { return value(); }
00711 };
00712
00713 }
00714 }
00715
00716 #endif // ARM_NAVIGATION_MSGS_SERVICE_GETSTATEVALIDITY_H
00717