00001
00002 #ifndef MOVE_ARM_MSGS_MESSAGE_MOVEARMGOAL_H
00003 #define MOVE_ARM_MSGS_MESSAGE_MOVEARMGOAL_H
00004 #include <string>
00005 #include <vector>
00006 #include <ostream>
00007 #include "ros/serialization.h"
00008 #include "ros/builtin_message_traits.h"
00009 #include "ros/message_operations.h"
00010 #include "ros/message.h"
00011 #include "ros/time.h"
00012
00013 #include "motion_planning_msgs/MotionPlanRequest.h"
00014
00015 namespace move_arm_msgs
00016 {
00017 template <class ContainerAllocator>
00018 struct MoveArmGoal_ : public ros::Message
00019 {
00020 typedef MoveArmGoal_<ContainerAllocator> Type;
00021
00022 MoveArmGoal_()
00023 : planner_service_name()
00024 , motion_plan_request()
00025 , accept_partial_plans(false)
00026 , accept_invalid_goals(false)
00027 , disable_ik(false)
00028 , disable_collision_monitoring(false)
00029 {
00030 }
00031
00032 MoveArmGoal_(const ContainerAllocator& _alloc)
00033 : planner_service_name(_alloc)
00034 , motion_plan_request(_alloc)
00035 , accept_partial_plans(false)
00036 , accept_invalid_goals(false)
00037 , disable_ik(false)
00038 , disable_collision_monitoring(false)
00039 {
00040 }
00041
00042 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _planner_service_name_type;
00043 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > planner_service_name;
00044
00045 typedef ::motion_planning_msgs::MotionPlanRequest_<ContainerAllocator> _motion_plan_request_type;
00046 ::motion_planning_msgs::MotionPlanRequest_<ContainerAllocator> motion_plan_request;
00047
00048 typedef uint8_t _accept_partial_plans_type;
00049 uint8_t accept_partial_plans;
00050
00051 typedef uint8_t _accept_invalid_goals_type;
00052 uint8_t accept_invalid_goals;
00053
00054 typedef uint8_t _disable_ik_type;
00055 uint8_t disable_ik;
00056
00057 typedef uint8_t _disable_collision_monitoring_type;
00058 uint8_t disable_collision_monitoring;
00059
00060
00061 private:
00062 static const char* __s_getDataType_() { return "move_arm_msgs/MoveArmGoal"; }
00063 public:
00064 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00065
00066 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00067
00068 private:
00069 static const char* __s_getMD5Sum_() { return "5cb487245a9e47510f799766f6160738"; }
00070 public:
00071 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00072
00073 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00074
00075 private:
00076 static const char* __s_getMessageDefinition_() { return "# Service name to call for getting a motion plan\n\
00077 # Move arm will call a service on this service name \n\
00078 # using the MotionPlanRequest specified here\n\
00079 string planner_service_name\n\
00080 \n\
00081 # A motion planning request\n\
00082 motion_planning_msgs/MotionPlanRequest motion_plan_request\n\
00083 \n\
00084 # OPTIONAL flag\n\
00085 # Setting this flag to true will allow move_arm to accept plans that do not go all the way to the goal\n\
00086 bool accept_partial_plans\n\
00087 \n\
00088 # OPTIONAL flag\n\
00089 # Setting this flag to true will allow move_arm to accept invalid goals\n\
00090 # This is useful if you are using a planner like CHOMP along with a noisy rapidly changing collision map\n\
00091 # and you would like to plan to a goal near an object.\n\
00092 bool accept_invalid_goals\n\
00093 \n\
00094 # OPTIONAL flag\n\
00095 # Setting this flag to true will disable the call to IK for a pose goal\n\
00096 bool disable_ik\n\
00097 \n\
00098 # OPTIONAL flag\n\
00099 # Setting this flag to true will disable collision monitoring during execution of a trajectory\n\
00100 bool disable_collision_monitoring\n\
00101 ================================================================================\n\
00102 MSG: motion_planning_msgs/MotionPlanRequest\n\
00103 # This service contains the definition for a request to the motion\n\
00104 # planner and the output it provides\n\
00105 \n\
00106 # Parameters for the workspace that the planner should work inside\n\
00107 motion_planning_msgs/WorkspaceParameters workspace_parameters\n\
00108 \n\
00109 # Starting state updates. If certain joints should be considered\n\
00110 # at positions other than the current ones, these positions should\n\
00111 # be set here\n\
00112 motion_planning_msgs/RobotState start_state\n\
00113 \n\
00114 # The goal state for the model to plan for. The goal is achieved\n\
00115 # if all constraints are satisfied\n\
00116 motion_planning_msgs/Constraints goal_constraints\n\
00117 \n\
00118 # No state at any point along the path in the produced motion plan will violate these constraints\n\
00119 motion_planning_msgs/Constraints path_constraints\n\
00120 \n\
00121 # A specification for regions where contact is \n\
00122 # allowed up to a certain depth\n\
00123 # Any collision within this set of regions with a link \n\
00124 # specified in the message will be allowed if\n\
00125 # it is less than the penetration depth specified in the message\n\
00126 AllowedContactSpecification[] allowed_contacts\n\
00127 \n\
00128 # A set of ordered collision operations, \n\
00129 # these are applied to all links, objects, \n\
00130 # namespaces in the collision space\n\
00131 OrderedCollisionOperations ordered_collision_operations\n\
00132 \n\
00133 # Specifies a set of links and paddings to change from the default\n\
00134 # specified in the yaml file\n\
00135 motion_planning_msgs/LinkPadding[] link_padding\n\
00136 \n\
00137 # The name of the motion planner to use. If no name is specified,\n\
00138 # a default motion planner will be used\n\
00139 string planner_id\n\
00140 \n\
00141 # The name of the group of joints on which this planner is operating\n\
00142 string group_name\n\
00143 \n\
00144 # The number of times this plan is to be computed. Shortest solution\n\
00145 # will be reported.\n\
00146 int32 num_planning_attempts\n\
00147 \n\
00148 # The maximum amount of time the motion planner is allowed to plan for\n\
00149 duration allowed_planning_time\n\
00150 \n\
00151 # 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\
00152 duration expected_path_duration\n\
00153 duration expected_path_dt\n\
00154 \n\
00155 ================================================================================\n\
00156 MSG: motion_planning_msgs/WorkspaceParameters\n\
00157 # This message contains a set of parameters useful in\n\
00158 # setting up the workspace for planning\n\
00159 geometric_shapes_msgs/Shape workspace_region_shape\n\
00160 geometry_msgs/PoseStamped workspace_region_pose\n\
00161 \n\
00162 \n\
00163 ================================================================================\n\
00164 MSG: geometric_shapes_msgs/Shape\n\
00165 byte SPHERE=0\n\
00166 byte BOX=1\n\
00167 byte CYLINDER=2\n\
00168 byte MESH=3\n\
00169 \n\
00170 byte type\n\
00171 \n\
00172 \n\
00173 #### define sphere, box, cylinder ####\n\
00174 # the origin of each shape is considered at the shape's center\n\
00175 \n\
00176 # for sphere\n\
00177 # radius := dimensions[0]\n\
00178 \n\
00179 # for cylinder\n\
00180 # radius := dimensions[0]\n\
00181 # length := dimensions[1]\n\
00182 # the length is along the Z axis\n\
00183 \n\
00184 # for box\n\
00185 # size_x := dimensions[0]\n\
00186 # size_y := dimensions[1]\n\
00187 # size_z := dimensions[2]\n\
00188 float64[] dimensions\n\
00189 \n\
00190 \n\
00191 #### define mesh ####\n\
00192 \n\
00193 # list of triangles; triangle k is defined by tre vertices located\n\
00194 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
00195 int32[] triangles\n\
00196 geometry_msgs/Point[] vertices\n\
00197 \n\
00198 ================================================================================\n\
00199 MSG: geometry_msgs/Point\n\
00200 # This contains the position of a point in free space\n\
00201 float64 x\n\
00202 float64 y\n\
00203 float64 z\n\
00204 \n\
00205 ================================================================================\n\
00206 MSG: geometry_msgs/PoseStamped\n\
00207 # A Pose with reference coordinate frame and timestamp\n\
00208 Header header\n\
00209 Pose pose\n\
00210 \n\
00211 ================================================================================\n\
00212 MSG: std_msgs/Header\n\
00213 # Standard metadata for higher-level stamped data types.\n\
00214 # This is generally used to communicate timestamped data \n\
00215 # in a particular coordinate frame.\n\
00216 # \n\
00217 # sequence ID: consecutively increasing ID \n\
00218 uint32 seq\n\
00219 #Two-integer timestamp that is expressed as:\n\
00220 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00221 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00222 # time-handling sugar is provided by the client library\n\
00223 time stamp\n\
00224 #Frame this data is associated with\n\
00225 # 0: no frame\n\
00226 # 1: global frame\n\
00227 string frame_id\n\
00228 \n\
00229 ================================================================================\n\
00230 MSG: geometry_msgs/Pose\n\
00231 # A representation of pose in free space, composed of postion and orientation. \n\
00232 Point position\n\
00233 Quaternion orientation\n\
00234 \n\
00235 ================================================================================\n\
00236 MSG: geometry_msgs/Quaternion\n\
00237 # This represents an orientation in free space in quaternion form.\n\
00238 \n\
00239 float64 x\n\
00240 float64 y\n\
00241 float64 z\n\
00242 float64 w\n\
00243 \n\
00244 ================================================================================\n\
00245 MSG: motion_planning_msgs/RobotState\n\
00246 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00247 sensor_msgs/JointState joint_state\n\
00248 motion_planning_msgs/MultiDOFJointState multi_dof_joint_state\n\
00249 ================================================================================\n\
00250 MSG: sensor_msgs/JointState\n\
00251 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00252 #\n\
00253 # The state of each joint (revolute or prismatic) is defined by:\n\
00254 # * the position of the joint (rad or m),\n\
00255 # * the velocity of the joint (rad/s or m/s) and \n\
00256 # * the effort that is applied in the joint (Nm or N).\n\
00257 #\n\
00258 # Each joint is uniquely identified by its name\n\
00259 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00260 # in one message have to be recorded at the same time.\n\
00261 #\n\
00262 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00263 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00264 # effort associated with them, you can leave the effort array empty. \n\
00265 #\n\
00266 # All arrays in this message should have the same size, or be empty.\n\
00267 # This is the only way to uniquely associate the joint name with the correct\n\
00268 # states.\n\
00269 \n\
00270 \n\
00271 Header header\n\
00272 \n\
00273 string[] name\n\
00274 float64[] position\n\
00275 float64[] velocity\n\
00276 float64[] effort\n\
00277 \n\
00278 ================================================================================\n\
00279 MSG: motion_planning_msgs/MultiDOFJointState\n\
00280 #A representation of a multi-dof joint state\n\
00281 time stamp\n\
00282 string[] joint_names\n\
00283 string[] frame_ids\n\
00284 string[] child_frame_ids\n\
00285 geometry_msgs/Pose[] poses\n\
00286 \n\
00287 ================================================================================\n\
00288 MSG: motion_planning_msgs/Constraints\n\
00289 # This message contains a list of motion planning constraints.\n\
00290 \n\
00291 motion_planning_msgs/JointConstraint[] joint_constraints\n\
00292 motion_planning_msgs/PositionConstraint[] position_constraints\n\
00293 motion_planning_msgs/OrientationConstraint[] orientation_constraints\n\
00294 motion_planning_msgs/VisibilityConstraint[] visibility_constraints\n\
00295 \n\
00296 ================================================================================\n\
00297 MSG: motion_planning_msgs/JointConstraint\n\
00298 # Constrain the position of a joint to be within a certain bound\n\
00299 string joint_name\n\
00300 \n\
00301 # the bound to be achieved is [position - tolerance_below, position + tolerance_above]\n\
00302 float64 position\n\
00303 float64 tolerance_above\n\
00304 float64 tolerance_below\n\
00305 \n\
00306 # A weighting factor for this constraint\n\
00307 float64 weight\n\
00308 ================================================================================\n\
00309 MSG: motion_planning_msgs/PositionConstraint\n\
00310 # This message contains the definition of a position constraint.\n\
00311 Header header\n\
00312 \n\
00313 # The robot link this constraint refers to\n\
00314 string link_name\n\
00315 \n\
00316 # The offset (in the link frame) for the target point on the link we are planning for\n\
00317 geometry_msgs/Point target_point_offset\n\
00318 \n\
00319 # The nominal/target position for the point we are planning for\n\
00320 geometry_msgs/Point position\n\
00321 \n\
00322 # The shape of the bounded region that constrains the position of the end-effector\n\
00323 # This region is always centered at the position defined above\n\
00324 geometric_shapes_msgs/Shape constraint_region_shape\n\
00325 \n\
00326 # The orientation of the bounded region that constrains the position of the end-effector. \n\
00327 # This allows the specification of non-axis aligned constraints\n\
00328 geometry_msgs/Quaternion constraint_region_orientation\n\
00329 \n\
00330 # Constraint weighting factor - a weight for this constraint\n\
00331 float64 weight\n\
00332 ================================================================================\n\
00333 MSG: motion_planning_msgs/OrientationConstraint\n\
00334 # This message contains the definition of an orientation constraint.\n\
00335 Header header\n\
00336 \n\
00337 # The robot link this constraint refers to\n\
00338 string link_name\n\
00339 \n\
00340 # The type of the constraint\n\
00341 int32 type\n\
00342 int32 LINK_FRAME=0\n\
00343 int32 HEADER_FRAME=1\n\
00344 \n\
00345 # The desired orientation of the robot link specified as a quaternion\n\
00346 geometry_msgs/Quaternion orientation\n\
00347 \n\
00348 # optional RPY error tolerances specified if \n\
00349 float64 absolute_roll_tolerance\n\
00350 float64 absolute_pitch_tolerance\n\
00351 float64 absolute_yaw_tolerance\n\
00352 \n\
00353 # Constraint weighting factor - a weight for this constraint\n\
00354 float64 weight\n\
00355 \n\
00356 ================================================================================\n\
00357 MSG: motion_planning_msgs/VisibilityConstraint\n\
00358 # This message contains the definition of a visibility constraint.\n\
00359 Header header\n\
00360 \n\
00361 # The point stamped target that needs to be kept within view of the sensor\n\
00362 geometry_msgs/PointStamped target\n\
00363 \n\
00364 # The local pose of the frame in which visibility is to be maintained\n\
00365 # The frame id should represent the robot link to which the sensor is attached\n\
00366 # The visual axis of the sensor is assumed to be along the X axis of this frame\n\
00367 geometry_msgs/PoseStamped sensor_pose\n\
00368 \n\
00369 # The deviation (in radians) that will be tolerated\n\
00370 # Constraint error will be measured as the solid angle between the \n\
00371 # X axis of the frame defined above and the vector between the origin \n\
00372 # of the frame defined above and the target location\n\
00373 float64 absolute_tolerance\n\
00374 \n\
00375 \n\
00376 ================================================================================\n\
00377 MSG: geometry_msgs/PointStamped\n\
00378 # This represents a Point with reference coordinate frame and timestamp\n\
00379 Header header\n\
00380 Point point\n\
00381 \n\
00382 ================================================================================\n\
00383 MSG: motion_planning_msgs/AllowedContactSpecification\n\
00384 # The names of the regions\n\
00385 string name\n\
00386 \n\
00387 # The shape of the region in the environment\n\
00388 geometric_shapes_msgs/Shape shape\n\
00389 \n\
00390 # The pose of the space defining the region\n\
00391 geometry_msgs/PoseStamped pose_stamped\n\
00392 \n\
00393 # The set of links that will be allowed to have penetration contact within this region\n\
00394 string[] link_names\n\
00395 \n\
00396 # The maximum penetration depth allowed for every link\n\
00397 float64 penetration_depth\n\
00398 ================================================================================\n\
00399 MSG: motion_planning_msgs/OrderedCollisionOperations\n\
00400 # A set of collision operations that will be performed in the order they are specified\n\
00401 CollisionOperation[] collision_operations\n\
00402 ================================================================================\n\
00403 MSG: motion_planning_msgs/CollisionOperation\n\
00404 # A definition of a collision operation\n\
00405 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\
00406 # between the gripper and all objects in the collision space\n\
00407 \n\
00408 string object1\n\
00409 string object2\n\
00410 string COLLISION_SET_ALL=\"all\"\n\
00411 string COLLISION_SET_OBJECTS=\"objects\"\n\
00412 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\
00413 \n\
00414 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\
00415 float64 penetration_distance\n\
00416 \n\
00417 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\
00418 int32 operation\n\
00419 int32 DISABLE=0\n\
00420 int32 ENABLE=1\n\
00421 \n\
00422 ================================================================================\n\
00423 MSG: motion_planning_msgs/LinkPadding\n\
00424 #name for the link\n\
00425 string link_name\n\
00426 \n\
00427 # padding to apply to the link\n\
00428 float64 padding\n\
00429 \n\
00430 "; }
00431 public:
00432 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00433
00434 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00435
00436 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00437 {
00438 ros::serialization::OStream stream(write_ptr, 1000000000);
00439 ros::serialization::serialize(stream, planner_service_name);
00440 ros::serialization::serialize(stream, motion_plan_request);
00441 ros::serialization::serialize(stream, accept_partial_plans);
00442 ros::serialization::serialize(stream, accept_invalid_goals);
00443 ros::serialization::serialize(stream, disable_ik);
00444 ros::serialization::serialize(stream, disable_collision_monitoring);
00445 return stream.getData();
00446 }
00447
00448 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00449 {
00450 ros::serialization::IStream stream(read_ptr, 1000000000);
00451 ros::serialization::deserialize(stream, planner_service_name);
00452 ros::serialization::deserialize(stream, motion_plan_request);
00453 ros::serialization::deserialize(stream, accept_partial_plans);
00454 ros::serialization::deserialize(stream, accept_invalid_goals);
00455 ros::serialization::deserialize(stream, disable_ik);
00456 ros::serialization::deserialize(stream, disable_collision_monitoring);
00457 return stream.getData();
00458 }
00459
00460 ROS_DEPRECATED virtual uint32_t serializationLength() const
00461 {
00462 uint32_t size = 0;
00463 size += ros::serialization::serializationLength(planner_service_name);
00464 size += ros::serialization::serializationLength(motion_plan_request);
00465 size += ros::serialization::serializationLength(accept_partial_plans);
00466 size += ros::serialization::serializationLength(accept_invalid_goals);
00467 size += ros::serialization::serializationLength(disable_ik);
00468 size += ros::serialization::serializationLength(disable_collision_monitoring);
00469 return size;
00470 }
00471
00472 typedef boost::shared_ptr< ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> > Ptr;
00473 typedef boost::shared_ptr< ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> const> ConstPtr;
00474 };
00475 typedef ::move_arm_msgs::MoveArmGoal_<std::allocator<void> > MoveArmGoal;
00476
00477 typedef boost::shared_ptr< ::move_arm_msgs::MoveArmGoal> MoveArmGoalPtr;
00478 typedef boost::shared_ptr< ::move_arm_msgs::MoveArmGoal const> MoveArmGoalConstPtr;
00479
00480
00481 template<typename ContainerAllocator>
00482 std::ostream& operator<<(std::ostream& s, const ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> & v)
00483 {
00484 ros::message_operations::Printer< ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> >::stream(s, "", v);
00485 return s;}
00486
00487 }
00488
00489 namespace ros
00490 {
00491 namespace message_traits
00492 {
00493 template<class ContainerAllocator>
00494 struct MD5Sum< ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> > {
00495 static const char* value()
00496 {
00497 return "5cb487245a9e47510f799766f6160738";
00498 }
00499
00500 static const char* value(const ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> &) { return value(); }
00501 static const uint64_t static_value1 = 0x5cb487245a9e4751ULL;
00502 static const uint64_t static_value2 = 0x0f799766f6160738ULL;
00503 };
00504
00505 template<class ContainerAllocator>
00506 struct DataType< ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> > {
00507 static const char* value()
00508 {
00509 return "move_arm_msgs/MoveArmGoal";
00510 }
00511
00512 static const char* value(const ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> &) { return value(); }
00513 };
00514
00515 template<class ContainerAllocator>
00516 struct Definition< ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> > {
00517 static const char* value()
00518 {
00519 return "# Service name to call for getting a motion plan\n\
00520 # Move arm will call a service on this service name \n\
00521 # using the MotionPlanRequest specified here\n\
00522 string planner_service_name\n\
00523 \n\
00524 # A motion planning request\n\
00525 motion_planning_msgs/MotionPlanRequest motion_plan_request\n\
00526 \n\
00527 # OPTIONAL flag\n\
00528 # Setting this flag to true will allow move_arm to accept plans that do not go all the way to the goal\n\
00529 bool accept_partial_plans\n\
00530 \n\
00531 # OPTIONAL flag\n\
00532 # Setting this flag to true will allow move_arm to accept invalid goals\n\
00533 # This is useful if you are using a planner like CHOMP along with a noisy rapidly changing collision map\n\
00534 # and you would like to plan to a goal near an object.\n\
00535 bool accept_invalid_goals\n\
00536 \n\
00537 # OPTIONAL flag\n\
00538 # Setting this flag to true will disable the call to IK for a pose goal\n\
00539 bool disable_ik\n\
00540 \n\
00541 # OPTIONAL flag\n\
00542 # Setting this flag to true will disable collision monitoring during execution of a trajectory\n\
00543 bool disable_collision_monitoring\n\
00544 ================================================================================\n\
00545 MSG: motion_planning_msgs/MotionPlanRequest\n\
00546 # This service contains the definition for a request to the motion\n\
00547 # planner and the output it provides\n\
00548 \n\
00549 # Parameters for the workspace that the planner should work inside\n\
00550 motion_planning_msgs/WorkspaceParameters workspace_parameters\n\
00551 \n\
00552 # Starting state updates. If certain joints should be considered\n\
00553 # at positions other than the current ones, these positions should\n\
00554 # be set here\n\
00555 motion_planning_msgs/RobotState start_state\n\
00556 \n\
00557 # The goal state for the model to plan for. The goal is achieved\n\
00558 # if all constraints are satisfied\n\
00559 motion_planning_msgs/Constraints goal_constraints\n\
00560 \n\
00561 # No state at any point along the path in the produced motion plan will violate these constraints\n\
00562 motion_planning_msgs/Constraints path_constraints\n\
00563 \n\
00564 # A specification for regions where contact is \n\
00565 # allowed up to a certain depth\n\
00566 # Any collision within this set of regions with a link \n\
00567 # specified in the message will be allowed if\n\
00568 # it is less than the penetration depth specified in the message\n\
00569 AllowedContactSpecification[] allowed_contacts\n\
00570 \n\
00571 # A set of ordered collision operations, \n\
00572 # these are applied to all links, objects, \n\
00573 # namespaces in the collision space\n\
00574 OrderedCollisionOperations ordered_collision_operations\n\
00575 \n\
00576 # Specifies a set of links and paddings to change from the default\n\
00577 # specified in the yaml file\n\
00578 motion_planning_msgs/LinkPadding[] link_padding\n\
00579 \n\
00580 # The name of the motion planner to use. If no name is specified,\n\
00581 # a default motion planner will be used\n\
00582 string planner_id\n\
00583 \n\
00584 # The name of the group of joints on which this planner is operating\n\
00585 string group_name\n\
00586 \n\
00587 # The number of times this plan is to be computed. Shortest solution\n\
00588 # will be reported.\n\
00589 int32 num_planning_attempts\n\
00590 \n\
00591 # The maximum amount of time the motion planner is allowed to plan for\n\
00592 duration allowed_planning_time\n\
00593 \n\
00594 # 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\
00595 duration expected_path_duration\n\
00596 duration expected_path_dt\n\
00597 \n\
00598 ================================================================================\n\
00599 MSG: motion_planning_msgs/WorkspaceParameters\n\
00600 # This message contains a set of parameters useful in\n\
00601 # setting up the workspace for planning\n\
00602 geometric_shapes_msgs/Shape workspace_region_shape\n\
00603 geometry_msgs/PoseStamped workspace_region_pose\n\
00604 \n\
00605 \n\
00606 ================================================================================\n\
00607 MSG: geometric_shapes_msgs/Shape\n\
00608 byte SPHERE=0\n\
00609 byte BOX=1\n\
00610 byte CYLINDER=2\n\
00611 byte MESH=3\n\
00612 \n\
00613 byte type\n\
00614 \n\
00615 \n\
00616 #### define sphere, box, cylinder ####\n\
00617 # the origin of each shape is considered at the shape's center\n\
00618 \n\
00619 # for sphere\n\
00620 # radius := dimensions[0]\n\
00621 \n\
00622 # for cylinder\n\
00623 # radius := dimensions[0]\n\
00624 # length := dimensions[1]\n\
00625 # the length is along the Z axis\n\
00626 \n\
00627 # for box\n\
00628 # size_x := dimensions[0]\n\
00629 # size_y := dimensions[1]\n\
00630 # size_z := dimensions[2]\n\
00631 float64[] dimensions\n\
00632 \n\
00633 \n\
00634 #### define mesh ####\n\
00635 \n\
00636 # list of triangles; triangle k is defined by tre vertices located\n\
00637 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
00638 int32[] triangles\n\
00639 geometry_msgs/Point[] vertices\n\
00640 \n\
00641 ================================================================================\n\
00642 MSG: geometry_msgs/Point\n\
00643 # This contains the position of a point in free space\n\
00644 float64 x\n\
00645 float64 y\n\
00646 float64 z\n\
00647 \n\
00648 ================================================================================\n\
00649 MSG: geometry_msgs/PoseStamped\n\
00650 # A Pose with reference coordinate frame and timestamp\n\
00651 Header header\n\
00652 Pose pose\n\
00653 \n\
00654 ================================================================================\n\
00655 MSG: std_msgs/Header\n\
00656 # Standard metadata for higher-level stamped data types.\n\
00657 # This is generally used to communicate timestamped data \n\
00658 # in a particular coordinate frame.\n\
00659 # \n\
00660 # sequence ID: consecutively increasing ID \n\
00661 uint32 seq\n\
00662 #Two-integer timestamp that is expressed as:\n\
00663 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00664 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00665 # time-handling sugar is provided by the client library\n\
00666 time stamp\n\
00667 #Frame this data is associated with\n\
00668 # 0: no frame\n\
00669 # 1: global frame\n\
00670 string frame_id\n\
00671 \n\
00672 ================================================================================\n\
00673 MSG: geometry_msgs/Pose\n\
00674 # A representation of pose in free space, composed of postion and orientation. \n\
00675 Point position\n\
00676 Quaternion orientation\n\
00677 \n\
00678 ================================================================================\n\
00679 MSG: geometry_msgs/Quaternion\n\
00680 # This represents an orientation in free space in quaternion form.\n\
00681 \n\
00682 float64 x\n\
00683 float64 y\n\
00684 float64 z\n\
00685 float64 w\n\
00686 \n\
00687 ================================================================================\n\
00688 MSG: motion_planning_msgs/RobotState\n\
00689 # This message contains information about the robot state, i.e. the positions of its joints and links\n\
00690 sensor_msgs/JointState joint_state\n\
00691 motion_planning_msgs/MultiDOFJointState multi_dof_joint_state\n\
00692 ================================================================================\n\
00693 MSG: sensor_msgs/JointState\n\
00694 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00695 #\n\
00696 # The state of each joint (revolute or prismatic) is defined by:\n\
00697 # * the position of the joint (rad or m),\n\
00698 # * the velocity of the joint (rad/s or m/s) and \n\
00699 # * the effort that is applied in the joint (Nm or N).\n\
00700 #\n\
00701 # Each joint is uniquely identified by its name\n\
00702 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00703 # in one message have to be recorded at the same time.\n\
00704 #\n\
00705 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00706 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00707 # effort associated with them, you can leave the effort array empty. \n\
00708 #\n\
00709 # All arrays in this message should have the same size, or be empty.\n\
00710 # This is the only way to uniquely associate the joint name with the correct\n\
00711 # states.\n\
00712 \n\
00713 \n\
00714 Header header\n\
00715 \n\
00716 string[] name\n\
00717 float64[] position\n\
00718 float64[] velocity\n\
00719 float64[] effort\n\
00720 \n\
00721 ================================================================================\n\
00722 MSG: motion_planning_msgs/MultiDOFJointState\n\
00723 #A representation of a multi-dof joint state\n\
00724 time stamp\n\
00725 string[] joint_names\n\
00726 string[] frame_ids\n\
00727 string[] child_frame_ids\n\
00728 geometry_msgs/Pose[] poses\n\
00729 \n\
00730 ================================================================================\n\
00731 MSG: motion_planning_msgs/Constraints\n\
00732 # This message contains a list of motion planning constraints.\n\
00733 \n\
00734 motion_planning_msgs/JointConstraint[] joint_constraints\n\
00735 motion_planning_msgs/PositionConstraint[] position_constraints\n\
00736 motion_planning_msgs/OrientationConstraint[] orientation_constraints\n\
00737 motion_planning_msgs/VisibilityConstraint[] visibility_constraints\n\
00738 \n\
00739 ================================================================================\n\
00740 MSG: motion_planning_msgs/JointConstraint\n\
00741 # Constrain the position of a joint to be within a certain bound\n\
00742 string joint_name\n\
00743 \n\
00744 # the bound to be achieved is [position - tolerance_below, position + tolerance_above]\n\
00745 float64 position\n\
00746 float64 tolerance_above\n\
00747 float64 tolerance_below\n\
00748 \n\
00749 # A weighting factor for this constraint\n\
00750 float64 weight\n\
00751 ================================================================================\n\
00752 MSG: motion_planning_msgs/PositionConstraint\n\
00753 # This message contains the definition of a position constraint.\n\
00754 Header header\n\
00755 \n\
00756 # The robot link this constraint refers to\n\
00757 string link_name\n\
00758 \n\
00759 # The offset (in the link frame) for the target point on the link we are planning for\n\
00760 geometry_msgs/Point target_point_offset\n\
00761 \n\
00762 # The nominal/target position for the point we are planning for\n\
00763 geometry_msgs/Point position\n\
00764 \n\
00765 # The shape of the bounded region that constrains the position of the end-effector\n\
00766 # This region is always centered at the position defined above\n\
00767 geometric_shapes_msgs/Shape constraint_region_shape\n\
00768 \n\
00769 # The orientation of the bounded region that constrains the position of the end-effector. \n\
00770 # This allows the specification of non-axis aligned constraints\n\
00771 geometry_msgs/Quaternion constraint_region_orientation\n\
00772 \n\
00773 # Constraint weighting factor - a weight for this constraint\n\
00774 float64 weight\n\
00775 ================================================================================\n\
00776 MSG: motion_planning_msgs/OrientationConstraint\n\
00777 # This message contains the definition of an orientation constraint.\n\
00778 Header header\n\
00779 \n\
00780 # The robot link this constraint refers to\n\
00781 string link_name\n\
00782 \n\
00783 # The type of the constraint\n\
00784 int32 type\n\
00785 int32 LINK_FRAME=0\n\
00786 int32 HEADER_FRAME=1\n\
00787 \n\
00788 # The desired orientation of the robot link specified as a quaternion\n\
00789 geometry_msgs/Quaternion orientation\n\
00790 \n\
00791 # optional RPY error tolerances specified if \n\
00792 float64 absolute_roll_tolerance\n\
00793 float64 absolute_pitch_tolerance\n\
00794 float64 absolute_yaw_tolerance\n\
00795 \n\
00796 # Constraint weighting factor - a weight for this constraint\n\
00797 float64 weight\n\
00798 \n\
00799 ================================================================================\n\
00800 MSG: motion_planning_msgs/VisibilityConstraint\n\
00801 # This message contains the definition of a visibility constraint.\n\
00802 Header header\n\
00803 \n\
00804 # The point stamped target that needs to be kept within view of the sensor\n\
00805 geometry_msgs/PointStamped target\n\
00806 \n\
00807 # The local pose of the frame in which visibility is to be maintained\n\
00808 # The frame id should represent the robot link to which the sensor is attached\n\
00809 # The visual axis of the sensor is assumed to be along the X axis of this frame\n\
00810 geometry_msgs/PoseStamped sensor_pose\n\
00811 \n\
00812 # The deviation (in radians) that will be tolerated\n\
00813 # Constraint error will be measured as the solid angle between the \n\
00814 # X axis of the frame defined above and the vector between the origin \n\
00815 # of the frame defined above and the target location\n\
00816 float64 absolute_tolerance\n\
00817 \n\
00818 \n\
00819 ================================================================================\n\
00820 MSG: geometry_msgs/PointStamped\n\
00821 # This represents a Point with reference coordinate frame and timestamp\n\
00822 Header header\n\
00823 Point point\n\
00824 \n\
00825 ================================================================================\n\
00826 MSG: motion_planning_msgs/AllowedContactSpecification\n\
00827 # The names of the regions\n\
00828 string name\n\
00829 \n\
00830 # The shape of the region in the environment\n\
00831 geometric_shapes_msgs/Shape shape\n\
00832 \n\
00833 # The pose of the space defining the region\n\
00834 geometry_msgs/PoseStamped pose_stamped\n\
00835 \n\
00836 # The set of links that will be allowed to have penetration contact within this region\n\
00837 string[] link_names\n\
00838 \n\
00839 # The maximum penetration depth allowed for every link\n\
00840 float64 penetration_depth\n\
00841 ================================================================================\n\
00842 MSG: motion_planning_msgs/OrderedCollisionOperations\n\
00843 # A set of collision operations that will be performed in the order they are specified\n\
00844 CollisionOperation[] collision_operations\n\
00845 ================================================================================\n\
00846 MSG: motion_planning_msgs/CollisionOperation\n\
00847 # A definition of a collision operation\n\
00848 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\
00849 # between the gripper and all objects in the collision space\n\
00850 \n\
00851 string object1\n\
00852 string object2\n\
00853 string COLLISION_SET_ALL=\"all\"\n\
00854 string COLLISION_SET_OBJECTS=\"objects\"\n\
00855 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\
00856 \n\
00857 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\
00858 float64 penetration_distance\n\
00859 \n\
00860 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\
00861 int32 operation\n\
00862 int32 DISABLE=0\n\
00863 int32 ENABLE=1\n\
00864 \n\
00865 ================================================================================\n\
00866 MSG: motion_planning_msgs/LinkPadding\n\
00867 #name for the link\n\
00868 string link_name\n\
00869 \n\
00870 # padding to apply to the link\n\
00871 float64 padding\n\
00872 \n\
00873 ";
00874 }
00875
00876 static const char* value(const ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> &) { return value(); }
00877 };
00878
00879 }
00880 }
00881
00882 namespace ros
00883 {
00884 namespace serialization
00885 {
00886
00887 template<class ContainerAllocator> struct Serializer< ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> >
00888 {
00889 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00890 {
00891 stream.next(m.planner_service_name);
00892 stream.next(m.motion_plan_request);
00893 stream.next(m.accept_partial_plans);
00894 stream.next(m.accept_invalid_goals);
00895 stream.next(m.disable_ik);
00896 stream.next(m.disable_collision_monitoring);
00897 }
00898
00899 ROS_DECLARE_ALLINONE_SERIALIZER;
00900 };
00901 }
00902 }
00903
00904 namespace ros
00905 {
00906 namespace message_operations
00907 {
00908
00909 template<class ContainerAllocator>
00910 struct Printer< ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> >
00911 {
00912 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::move_arm_msgs::MoveArmGoal_<ContainerAllocator> & v)
00913 {
00914 s << indent << "planner_service_name: ";
00915 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.planner_service_name);
00916 s << indent << "motion_plan_request: ";
00917 s << std::endl;
00918 Printer< ::motion_planning_msgs::MotionPlanRequest_<ContainerAllocator> >::stream(s, indent + " ", v.motion_plan_request);
00919 s << indent << "accept_partial_plans: ";
00920 Printer<uint8_t>::stream(s, indent + " ", v.accept_partial_plans);
00921 s << indent << "accept_invalid_goals: ";
00922 Printer<uint8_t>::stream(s, indent + " ", v.accept_invalid_goals);
00923 s << indent << "disable_ik: ";
00924 Printer<uint8_t>::stream(s, indent + " ", v.disable_ik);
00925 s << indent << "disable_collision_monitoring: ";
00926 Printer<uint8_t>::stream(s, indent + " ", v.disable_collision_monitoring);
00927 }
00928 };
00929
00930
00931 }
00932 }
00933
00934 #endif // MOVE_ARM_MSGS_MESSAGE_MOVEARMGOAL_H
00935