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