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