00001
00002 #ifndef OBJECT_MANIPULATION_MSGS_MESSAGE_PLACEACTIONGOAL_H
00003 #define OBJECT_MANIPULATION_MSGS_MESSAGE_PLACEACTIONGOAL_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 "std_msgs/Header.h"
00014 #include "actionlib_msgs/GoalID.h"
00015 #include "object_manipulation_msgs/PlaceGoal.h"
00016
00017 namespace object_manipulation_msgs
00018 {
00019 template <class ContainerAllocator>
00020 struct PlaceActionGoal_ : public ros::Message
00021 {
00022 typedef PlaceActionGoal_<ContainerAllocator> Type;
00023
00024 PlaceActionGoal_()
00025 : header()
00026 , goal_id()
00027 , goal()
00028 {
00029 }
00030
00031 PlaceActionGoal_(const ContainerAllocator& _alloc)
00032 : header(_alloc)
00033 , goal_id(_alloc)
00034 , goal(_alloc)
00035 {
00036 }
00037
00038 typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
00039 ::std_msgs::Header_<ContainerAllocator> header;
00040
00041 typedef ::actionlib_msgs::GoalID_<ContainerAllocator> _goal_id_type;
00042 ::actionlib_msgs::GoalID_<ContainerAllocator> goal_id;
00043
00044 typedef ::object_manipulation_msgs::PlaceGoal_<ContainerAllocator> _goal_type;
00045 ::object_manipulation_msgs::PlaceGoal_<ContainerAllocator> goal;
00046
00047
00048 private:
00049 static const char* __s_getDataType_() { return "object_manipulation_msgs/PlaceActionGoal"; }
00050 public:
00051 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00052
00053 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00054
00055 private:
00056 static const char* __s_getMD5Sum_() { return "0bc4a10ff02371586d3e2875e87d3a89"; }
00057 public:
00058 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00059
00060 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00061
00062 private:
00063 static const char* __s_getMessageDefinition_() { return "\n\
00064 Header header\n\
00065 actionlib_msgs/GoalID goal_id\n\
00066 PlaceGoal goal\n\
00067 \n\
00068 ================================================================================\n\
00069 MSG: std_msgs/Header\n\
00070 # Standard metadata for higher-level stamped data types.\n\
00071 # This is generally used to communicate timestamped data \n\
00072 # in a particular coordinate frame.\n\
00073 # \n\
00074 # sequence ID: consecutively increasing ID \n\
00075 uint32 seq\n\
00076 #Two-integer timestamp that is expressed as:\n\
00077 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00078 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00079 # time-handling sugar is provided by the client library\n\
00080 time stamp\n\
00081 #Frame this data is associated with\n\
00082 # 0: no frame\n\
00083 # 1: global frame\n\
00084 string frame_id\n\
00085 \n\
00086 ================================================================================\n\
00087 MSG: actionlib_msgs/GoalID\n\
00088 # The stamp should store the time at which this goal was requested.\n\
00089 # It is used by an action server when it tries to preempt all\n\
00090 # goals that were requested before a certain time\n\
00091 time stamp\n\
00092 \n\
00093 # The id provides a way to associate feedback and\n\
00094 # result message with specific goal requests. The id\n\
00095 # specified must be unique.\n\
00096 string id\n\
00097 \n\
00098 \n\
00099 ================================================================================\n\
00100 MSG: object_manipulation_msgs/PlaceGoal\n\
00101 \n\
00102 # An action for placing an object\n\
00103 \n\
00104 # which arm to be used for grasping\n\
00105 string arm_name\n\
00106 \n\
00107 # a list of possible desired poses of the object once it's been placed\n\
00108 geometry_msgs/PoseStamped[] place_locations\n\
00109 \n\
00110 # the grasp that has been executed on this object\n\
00111 Grasp grasp\n\
00112 \n\
00113 # how far the retreat should ideally be away from the place location\n\
00114 float32 desired_retreat_distance\n\
00115 \n\
00116 # the min distance between the retreat and the place location that must actually be feasible \n\
00117 # for the place not to be rejected\n\
00118 float32 min_retreat_distance\n\
00119 \n\
00120 # how the place location should be approached\n\
00121 # the frame_id that this lift is specified in MUST be either the robot_frame \n\
00122 # or the gripper_frame specified in your hand description file\n\
00123 GripperTranslation approach\n\
00124 \n\
00125 # the name that the target object has in the collision map\n\
00126 # can be left empty if no name is available\n\
00127 string collision_object_name\n\
00128 \n\
00129 # the name that the support surface (e.g. table) has in the collision map\n\
00130 # can be left empty if no name is available\n\
00131 string collision_support_surface_name\n\
00132 \n\
00133 # whether collisions between the gripper and the support surface should be acceptable\n\
00134 # during move from pre-place to place and during retreat. Collisions when moving to the\n\
00135 # pre-place location are still not allowed even if this is set to true.\n\
00136 bool allow_gripper_support_collision\n\
00137 \n\
00138 # whether reactive placing based on tactile sensors should be used\n\
00139 bool use_reactive_place\n\
00140 \n\
00141 # how much the object should be padded by when deciding if the grasp\n\
00142 # location is freasible or not\n\
00143 float64 place_padding\n\
00144 \n\
00145 # OPTIONAL (These will not have to be filled out most of the time)\n\
00146 # constraints to be imposed on every point in the motion of the arm\n\
00147 motion_planning_msgs/Constraints path_constraints\n\
00148 \n\
00149 # OPTIONAL (These will not have to be filled out most of the time)\n\
00150 # additional collision operations to be used for every arm movement performed\n\
00151 # during placing. Note that these will be added on top of (and thus overide) other \n\
00152 # collision operations that the grasping pipeline deems necessary. Should be used\n\
00153 # with care and only if special behaviors are desired.\n\
00154 motion_planning_msgs/OrderedCollisionOperations additional_collision_operations\n\
00155 \n\
00156 # OPTIONAL (These will not have to be filled out most of the time)\n\
00157 # additional link paddings to be used for every arm movement performed\n\
00158 # during placing. Note that these will be added on top of (and thus overide) other \n\
00159 # link paddings that the grasping pipeline deems necessary. Should be used\n\
00160 # with care and only if special behaviors are desired.\n\
00161 motion_planning_msgs/LinkPadding[] additional_link_padding\n\
00162 \n\
00163 ================================================================================\n\
00164 MSG: geometry_msgs/PoseStamped\n\
00165 # A Pose with reference coordinate frame and timestamp\n\
00166 Header header\n\
00167 Pose pose\n\
00168 \n\
00169 ================================================================================\n\
00170 MSG: geometry_msgs/Pose\n\
00171 # A representation of pose in free space, composed of postion and orientation. \n\
00172 Point position\n\
00173 Quaternion orientation\n\
00174 \n\
00175 ================================================================================\n\
00176 MSG: geometry_msgs/Point\n\
00177 # This contains the position of a point in free space\n\
00178 float64 x\n\
00179 float64 y\n\
00180 float64 z\n\
00181 \n\
00182 ================================================================================\n\
00183 MSG: geometry_msgs/Quaternion\n\
00184 # This represents an orientation in free space in quaternion form.\n\
00185 \n\
00186 float64 x\n\
00187 float64 y\n\
00188 float64 z\n\
00189 float64 w\n\
00190 \n\
00191 ================================================================================\n\
00192 MSG: object_manipulation_msgs/Grasp\n\
00193 \n\
00194 # The internal posture of the hand for the pre-grasp\n\
00195 # only positions are used\n\
00196 sensor_msgs/JointState pre_grasp_posture\n\
00197 \n\
00198 # The internal posture of the hand for the grasp\n\
00199 # positions and efforts are used\n\
00200 sensor_msgs/JointState grasp_posture\n\
00201 \n\
00202 # The position of the end-effector for the grasp relative to the object\n\
00203 geometry_msgs/Pose grasp_pose\n\
00204 \n\
00205 # The estimated probability of success for this grasp\n\
00206 float64 success_probability\n\
00207 \n\
00208 # Debug flag to indicate that this grasp would be the best in its cluster\n\
00209 bool cluster_rep\n\
00210 ================================================================================\n\
00211 MSG: sensor_msgs/JointState\n\
00212 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00213 #\n\
00214 # The state of each joint (revolute or prismatic) is defined by:\n\
00215 # * the position of the joint (rad or m),\n\
00216 # * the velocity of the joint (rad/s or m/s) and \n\
00217 # * the effort that is applied in the joint (Nm or N).\n\
00218 #\n\
00219 # Each joint is uniquely identified by its name\n\
00220 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00221 # in one message have to be recorded at the same time.\n\
00222 #\n\
00223 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00224 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00225 # effort associated with them, you can leave the effort array empty. \n\
00226 #\n\
00227 # All arrays in this message should have the same size, or be empty.\n\
00228 # This is the only way to uniquely associate the joint name with the correct\n\
00229 # states.\n\
00230 \n\
00231 \n\
00232 Header header\n\
00233 \n\
00234 string[] name\n\
00235 float64[] position\n\
00236 float64[] velocity\n\
00237 float64[] effort\n\
00238 \n\
00239 ================================================================================\n\
00240 MSG: object_manipulation_msgs/GripperTranslation\n\
00241 # defines a translation for the gripper, used in pickup or place tasks\n\
00242 # for example for lifting an object off a table or approaching the table for placing\n\
00243 \n\
00244 # the direction of the translation\n\
00245 geometry_msgs/Vector3Stamped direction\n\
00246 \n\
00247 # the desired translation distance\n\
00248 float32 desired_distance\n\
00249 \n\
00250 # the min distance that must be considered feasible before the\n\
00251 # grasp is even attempted\n\
00252 float32 min_distance\n\
00253 ================================================================================\n\
00254 MSG: geometry_msgs/Vector3Stamped\n\
00255 # This represents a Vector3 with reference coordinate frame and timestamp\n\
00256 Header header\n\
00257 Vector3 vector\n\
00258 \n\
00259 ================================================================================\n\
00260 MSG: geometry_msgs/Vector3\n\
00261 # This represents a vector in free space. \n\
00262 \n\
00263 float64 x\n\
00264 float64 y\n\
00265 float64 z\n\
00266 ================================================================================\n\
00267 MSG: motion_planning_msgs/Constraints\n\
00268 # This message contains a list of motion planning constraints.\n\
00269 \n\
00270 motion_planning_msgs/JointConstraint[] joint_constraints\n\
00271 motion_planning_msgs/PositionConstraint[] position_constraints\n\
00272 motion_planning_msgs/OrientationConstraint[] orientation_constraints\n\
00273 motion_planning_msgs/VisibilityConstraint[] visibility_constraints\n\
00274 \n\
00275 ================================================================================\n\
00276 MSG: motion_planning_msgs/JointConstraint\n\
00277 # Constrain the position of a joint to be within a certain bound\n\
00278 string joint_name\n\
00279 \n\
00280 # the bound to be achieved is [position - tolerance_below, position + tolerance_above]\n\
00281 float64 position\n\
00282 float64 tolerance_above\n\
00283 float64 tolerance_below\n\
00284 \n\
00285 # A weighting factor for this constraint\n\
00286 float64 weight\n\
00287 ================================================================================\n\
00288 MSG: motion_planning_msgs/PositionConstraint\n\
00289 # This message contains the definition of a position constraint.\n\
00290 Header header\n\
00291 \n\
00292 # The robot link this constraint refers to\n\
00293 string link_name\n\
00294 \n\
00295 # The offset (in the link frame) for the target point on the link we are planning for\n\
00296 geometry_msgs/Point target_point_offset\n\
00297 \n\
00298 # The nominal/target position for the point we are planning for\n\
00299 geometry_msgs/Point position\n\
00300 \n\
00301 # The shape of the bounded region that constrains the position of the end-effector\n\
00302 # This region is always centered at the position defined above\n\
00303 geometric_shapes_msgs/Shape constraint_region_shape\n\
00304 \n\
00305 # The orientation of the bounded region that constrains the position of the end-effector. \n\
00306 # This allows the specification of non-axis aligned constraints\n\
00307 geometry_msgs/Quaternion constraint_region_orientation\n\
00308 \n\
00309 # Constraint weighting factor - a weight for this constraint\n\
00310 float64 weight\n\
00311 ================================================================================\n\
00312 MSG: geometric_shapes_msgs/Shape\n\
00313 byte SPHERE=0\n\
00314 byte BOX=1\n\
00315 byte CYLINDER=2\n\
00316 byte MESH=3\n\
00317 \n\
00318 byte type\n\
00319 \n\
00320 \n\
00321 #### define sphere, box, cylinder ####\n\
00322 # the origin of each shape is considered at the shape's center\n\
00323 \n\
00324 # for sphere\n\
00325 # radius := dimensions[0]\n\
00326 \n\
00327 # for cylinder\n\
00328 # radius := dimensions[0]\n\
00329 # length := dimensions[1]\n\
00330 # the length is along the Z axis\n\
00331 \n\
00332 # for box\n\
00333 # size_x := dimensions[0]\n\
00334 # size_y := dimensions[1]\n\
00335 # size_z := dimensions[2]\n\
00336 float64[] dimensions\n\
00337 \n\
00338 \n\
00339 #### define mesh ####\n\
00340 \n\
00341 # list of triangles; triangle k is defined by tre vertices located\n\
00342 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
00343 int32[] triangles\n\
00344 geometry_msgs/Point[] vertices\n\
00345 \n\
00346 ================================================================================\n\
00347 MSG: motion_planning_msgs/OrientationConstraint\n\
00348 # This message contains the definition of an orientation constraint.\n\
00349 Header header\n\
00350 \n\
00351 # The robot link this constraint refers to\n\
00352 string link_name\n\
00353 \n\
00354 # The type of the constraint\n\
00355 int32 type\n\
00356 int32 LINK_FRAME=0\n\
00357 int32 HEADER_FRAME=1\n\
00358 \n\
00359 # The desired orientation of the robot link specified as a quaternion\n\
00360 geometry_msgs/Quaternion orientation\n\
00361 \n\
00362 # optional RPY error tolerances specified if \n\
00363 float64 absolute_roll_tolerance\n\
00364 float64 absolute_pitch_tolerance\n\
00365 float64 absolute_yaw_tolerance\n\
00366 \n\
00367 # Constraint weighting factor - a weight for this constraint\n\
00368 float64 weight\n\
00369 \n\
00370 ================================================================================\n\
00371 MSG: motion_planning_msgs/VisibilityConstraint\n\
00372 # This message contains the definition of a visibility constraint.\n\
00373 Header header\n\
00374 \n\
00375 # The point stamped target that needs to be kept within view of the sensor\n\
00376 geometry_msgs/PointStamped target\n\
00377 \n\
00378 # The local pose of the frame in which visibility is to be maintained\n\
00379 # The frame id should represent the robot link to which the sensor is attached\n\
00380 # The visual axis of the sensor is assumed to be along the X axis of this frame\n\
00381 geometry_msgs/PoseStamped sensor_pose\n\
00382 \n\
00383 # The deviation (in radians) that will be tolerated\n\
00384 # Constraint error will be measured as the solid angle between the \n\
00385 # X axis of the frame defined above and the vector between the origin \n\
00386 # of the frame defined above and the target location\n\
00387 float64 absolute_tolerance\n\
00388 \n\
00389 \n\
00390 ================================================================================\n\
00391 MSG: geometry_msgs/PointStamped\n\
00392 # This represents a Point with reference coordinate frame and timestamp\n\
00393 Header header\n\
00394 Point point\n\
00395 \n\
00396 ================================================================================\n\
00397 MSG: motion_planning_msgs/OrderedCollisionOperations\n\
00398 # A set of collision operations that will be performed in the order they are specified\n\
00399 CollisionOperation[] collision_operations\n\
00400 ================================================================================\n\
00401 MSG: motion_planning_msgs/CollisionOperation\n\
00402 # A definition of a collision operation\n\
00403 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\
00404 # between the gripper and all objects in the collision space\n\
00405 \n\
00406 string object1\n\
00407 string object2\n\
00408 string COLLISION_SET_ALL=\"all\"\n\
00409 string COLLISION_SET_OBJECTS=\"objects\"\n\
00410 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\
00411 \n\
00412 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\
00413 float64 penetration_distance\n\
00414 \n\
00415 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\
00416 int32 operation\n\
00417 int32 DISABLE=0\n\
00418 int32 ENABLE=1\n\
00419 \n\
00420 ================================================================================\n\
00421 MSG: motion_planning_msgs/LinkPadding\n\
00422 #name for the link\n\
00423 string link_name\n\
00424 \n\
00425 # padding to apply to the link\n\
00426 float64 padding\n\
00427 \n\
00428 "; }
00429 public:
00430 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00431
00432 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00433
00434 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00435 {
00436 ros::serialization::OStream stream(write_ptr, 1000000000);
00437 ros::serialization::serialize(stream, header);
00438 ros::serialization::serialize(stream, goal_id);
00439 ros::serialization::serialize(stream, goal);
00440 return stream.getData();
00441 }
00442
00443 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00444 {
00445 ros::serialization::IStream stream(read_ptr, 1000000000);
00446 ros::serialization::deserialize(stream, header);
00447 ros::serialization::deserialize(stream, goal_id);
00448 ros::serialization::deserialize(stream, goal);
00449 return stream.getData();
00450 }
00451
00452 ROS_DEPRECATED virtual uint32_t serializationLength() const
00453 {
00454 uint32_t size = 0;
00455 size += ros::serialization::serializationLength(header);
00456 size += ros::serialization::serializationLength(goal_id);
00457 size += ros::serialization::serializationLength(goal);
00458 return size;
00459 }
00460
00461 typedef boost::shared_ptr< ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> > Ptr;
00462 typedef boost::shared_ptr< ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> const> ConstPtr;
00463 };
00464 typedef ::object_manipulation_msgs::PlaceActionGoal_<std::allocator<void> > PlaceActionGoal;
00465
00466 typedef boost::shared_ptr< ::object_manipulation_msgs::PlaceActionGoal> PlaceActionGoalPtr;
00467 typedef boost::shared_ptr< ::object_manipulation_msgs::PlaceActionGoal const> PlaceActionGoalConstPtr;
00468
00469
00470 template<typename ContainerAllocator>
00471 std::ostream& operator<<(std::ostream& s, const ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> & v)
00472 {
00473 ros::message_operations::Printer< ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> >::stream(s, "", v);
00474 return s;}
00475
00476 }
00477
00478 namespace ros
00479 {
00480 namespace message_traits
00481 {
00482 template<class ContainerAllocator>
00483 struct MD5Sum< ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> > {
00484 static const char* value()
00485 {
00486 return "0bc4a10ff02371586d3e2875e87d3a89";
00487 }
00488
00489 static const char* value(const ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> &) { return value(); }
00490 static const uint64_t static_value1 = 0x0bc4a10ff0237158ULL;
00491 static const uint64_t static_value2 = 0x6d3e2875e87d3a89ULL;
00492 };
00493
00494 template<class ContainerAllocator>
00495 struct DataType< ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> > {
00496 static const char* value()
00497 {
00498 return "object_manipulation_msgs/PlaceActionGoal";
00499 }
00500
00501 static const char* value(const ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> &) { return value(); }
00502 };
00503
00504 template<class ContainerAllocator>
00505 struct Definition< ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> > {
00506 static const char* value()
00507 {
00508 return "\n\
00509 Header header\n\
00510 actionlib_msgs/GoalID goal_id\n\
00511 PlaceGoal goal\n\
00512 \n\
00513 ================================================================================\n\
00514 MSG: std_msgs/Header\n\
00515 # Standard metadata for higher-level stamped data types.\n\
00516 # This is generally used to communicate timestamped data \n\
00517 # in a particular coordinate frame.\n\
00518 # \n\
00519 # sequence ID: consecutively increasing ID \n\
00520 uint32 seq\n\
00521 #Two-integer timestamp that is expressed as:\n\
00522 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00523 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00524 # time-handling sugar is provided by the client library\n\
00525 time stamp\n\
00526 #Frame this data is associated with\n\
00527 # 0: no frame\n\
00528 # 1: global frame\n\
00529 string frame_id\n\
00530 \n\
00531 ================================================================================\n\
00532 MSG: actionlib_msgs/GoalID\n\
00533 # The stamp should store the time at which this goal was requested.\n\
00534 # It is used by an action server when it tries to preempt all\n\
00535 # goals that were requested before a certain time\n\
00536 time stamp\n\
00537 \n\
00538 # The id provides a way to associate feedback and\n\
00539 # result message with specific goal requests. The id\n\
00540 # specified must be unique.\n\
00541 string id\n\
00542 \n\
00543 \n\
00544 ================================================================================\n\
00545 MSG: object_manipulation_msgs/PlaceGoal\n\
00546 \n\
00547 # An action for placing an object\n\
00548 \n\
00549 # which arm to be used for grasping\n\
00550 string arm_name\n\
00551 \n\
00552 # a list of possible desired poses of the object once it's been placed\n\
00553 geometry_msgs/PoseStamped[] place_locations\n\
00554 \n\
00555 # the grasp that has been executed on this object\n\
00556 Grasp grasp\n\
00557 \n\
00558 # how far the retreat should ideally be away from the place location\n\
00559 float32 desired_retreat_distance\n\
00560 \n\
00561 # the min distance between the retreat and the place location that must actually be feasible \n\
00562 # for the place not to be rejected\n\
00563 float32 min_retreat_distance\n\
00564 \n\
00565 # how the place location should be approached\n\
00566 # the frame_id that this lift is specified in MUST be either the robot_frame \n\
00567 # or the gripper_frame specified in your hand description file\n\
00568 GripperTranslation approach\n\
00569 \n\
00570 # the name that the target object has in the collision map\n\
00571 # can be left empty if no name is available\n\
00572 string collision_object_name\n\
00573 \n\
00574 # the name that the support surface (e.g. table) has in the collision map\n\
00575 # can be left empty if no name is available\n\
00576 string collision_support_surface_name\n\
00577 \n\
00578 # whether collisions between the gripper and the support surface should be acceptable\n\
00579 # during move from pre-place to place and during retreat. Collisions when moving to the\n\
00580 # pre-place location are still not allowed even if this is set to true.\n\
00581 bool allow_gripper_support_collision\n\
00582 \n\
00583 # whether reactive placing based on tactile sensors should be used\n\
00584 bool use_reactive_place\n\
00585 \n\
00586 # how much the object should be padded by when deciding if the grasp\n\
00587 # location is freasible or not\n\
00588 float64 place_padding\n\
00589 \n\
00590 # OPTIONAL (These will not have to be filled out most of the time)\n\
00591 # constraints to be imposed on every point in the motion of the arm\n\
00592 motion_planning_msgs/Constraints path_constraints\n\
00593 \n\
00594 # OPTIONAL (These will not have to be filled out most of the time)\n\
00595 # additional collision operations to be used for every arm movement performed\n\
00596 # during placing. Note that these will be added on top of (and thus overide) other \n\
00597 # collision operations that the grasping pipeline deems necessary. Should be used\n\
00598 # with care and only if special behaviors are desired.\n\
00599 motion_planning_msgs/OrderedCollisionOperations additional_collision_operations\n\
00600 \n\
00601 # OPTIONAL (These will not have to be filled out most of the time)\n\
00602 # additional link paddings to be used for every arm movement performed\n\
00603 # during placing. Note that these will be added on top of (and thus overide) other \n\
00604 # link paddings that the grasping pipeline deems necessary. Should be used\n\
00605 # with care and only if special behaviors are desired.\n\
00606 motion_planning_msgs/LinkPadding[] additional_link_padding\n\
00607 \n\
00608 ================================================================================\n\
00609 MSG: geometry_msgs/PoseStamped\n\
00610 # A Pose with reference coordinate frame and timestamp\n\
00611 Header header\n\
00612 Pose pose\n\
00613 \n\
00614 ================================================================================\n\
00615 MSG: geometry_msgs/Pose\n\
00616 # A representation of pose in free space, composed of postion and orientation. \n\
00617 Point position\n\
00618 Quaternion orientation\n\
00619 \n\
00620 ================================================================================\n\
00621 MSG: geometry_msgs/Point\n\
00622 # This contains the position of a point in free space\n\
00623 float64 x\n\
00624 float64 y\n\
00625 float64 z\n\
00626 \n\
00627 ================================================================================\n\
00628 MSG: geometry_msgs/Quaternion\n\
00629 # This represents an orientation in free space in quaternion form.\n\
00630 \n\
00631 float64 x\n\
00632 float64 y\n\
00633 float64 z\n\
00634 float64 w\n\
00635 \n\
00636 ================================================================================\n\
00637 MSG: object_manipulation_msgs/Grasp\n\
00638 \n\
00639 # The internal posture of the hand for the pre-grasp\n\
00640 # only positions are used\n\
00641 sensor_msgs/JointState pre_grasp_posture\n\
00642 \n\
00643 # The internal posture of the hand for the grasp\n\
00644 # positions and efforts are used\n\
00645 sensor_msgs/JointState grasp_posture\n\
00646 \n\
00647 # The position of the end-effector for the grasp relative to the object\n\
00648 geometry_msgs/Pose grasp_pose\n\
00649 \n\
00650 # The estimated probability of success for this grasp\n\
00651 float64 success_probability\n\
00652 \n\
00653 # Debug flag to indicate that this grasp would be the best in its cluster\n\
00654 bool cluster_rep\n\
00655 ================================================================================\n\
00656 MSG: sensor_msgs/JointState\n\
00657 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00658 #\n\
00659 # The state of each joint (revolute or prismatic) is defined by:\n\
00660 # * the position of the joint (rad or m),\n\
00661 # * the velocity of the joint (rad/s or m/s) and \n\
00662 # * the effort that is applied in the joint (Nm or N).\n\
00663 #\n\
00664 # Each joint is uniquely identified by its name\n\
00665 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00666 # in one message have to be recorded at the same time.\n\
00667 #\n\
00668 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00669 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00670 # effort associated with them, you can leave the effort array empty. \n\
00671 #\n\
00672 # All arrays in this message should have the same size, or be empty.\n\
00673 # This is the only way to uniquely associate the joint name with the correct\n\
00674 # states.\n\
00675 \n\
00676 \n\
00677 Header header\n\
00678 \n\
00679 string[] name\n\
00680 float64[] position\n\
00681 float64[] velocity\n\
00682 float64[] effort\n\
00683 \n\
00684 ================================================================================\n\
00685 MSG: object_manipulation_msgs/GripperTranslation\n\
00686 # defines a translation for the gripper, used in pickup or place tasks\n\
00687 # for example for lifting an object off a table or approaching the table for placing\n\
00688 \n\
00689 # the direction of the translation\n\
00690 geometry_msgs/Vector3Stamped direction\n\
00691 \n\
00692 # the desired translation distance\n\
00693 float32 desired_distance\n\
00694 \n\
00695 # the min distance that must be considered feasible before the\n\
00696 # grasp is even attempted\n\
00697 float32 min_distance\n\
00698 ================================================================================\n\
00699 MSG: geometry_msgs/Vector3Stamped\n\
00700 # This represents a Vector3 with reference coordinate frame and timestamp\n\
00701 Header header\n\
00702 Vector3 vector\n\
00703 \n\
00704 ================================================================================\n\
00705 MSG: geometry_msgs/Vector3\n\
00706 # This represents a vector in free space. \n\
00707 \n\
00708 float64 x\n\
00709 float64 y\n\
00710 float64 z\n\
00711 ================================================================================\n\
00712 MSG: motion_planning_msgs/Constraints\n\
00713 # This message contains a list of motion planning constraints.\n\
00714 \n\
00715 motion_planning_msgs/JointConstraint[] joint_constraints\n\
00716 motion_planning_msgs/PositionConstraint[] position_constraints\n\
00717 motion_planning_msgs/OrientationConstraint[] orientation_constraints\n\
00718 motion_planning_msgs/VisibilityConstraint[] visibility_constraints\n\
00719 \n\
00720 ================================================================================\n\
00721 MSG: motion_planning_msgs/JointConstraint\n\
00722 # Constrain the position of a joint to be within a certain bound\n\
00723 string joint_name\n\
00724 \n\
00725 # the bound to be achieved is [position - tolerance_below, position + tolerance_above]\n\
00726 float64 position\n\
00727 float64 tolerance_above\n\
00728 float64 tolerance_below\n\
00729 \n\
00730 # A weighting factor for this constraint\n\
00731 float64 weight\n\
00732 ================================================================================\n\
00733 MSG: motion_planning_msgs/PositionConstraint\n\
00734 # This message contains the definition of a position constraint.\n\
00735 Header header\n\
00736 \n\
00737 # The robot link this constraint refers to\n\
00738 string link_name\n\
00739 \n\
00740 # The offset (in the link frame) for the target point on the link we are planning for\n\
00741 geometry_msgs/Point target_point_offset\n\
00742 \n\
00743 # The nominal/target position for the point we are planning for\n\
00744 geometry_msgs/Point position\n\
00745 \n\
00746 # The shape of the bounded region that constrains the position of the end-effector\n\
00747 # This region is always centered at the position defined above\n\
00748 geometric_shapes_msgs/Shape constraint_region_shape\n\
00749 \n\
00750 # The orientation of the bounded region that constrains the position of the end-effector. \n\
00751 # This allows the specification of non-axis aligned constraints\n\
00752 geometry_msgs/Quaternion constraint_region_orientation\n\
00753 \n\
00754 # Constraint weighting factor - a weight for this constraint\n\
00755 float64 weight\n\
00756 ================================================================================\n\
00757 MSG: geometric_shapes_msgs/Shape\n\
00758 byte SPHERE=0\n\
00759 byte BOX=1\n\
00760 byte CYLINDER=2\n\
00761 byte MESH=3\n\
00762 \n\
00763 byte type\n\
00764 \n\
00765 \n\
00766 #### define sphere, box, cylinder ####\n\
00767 # the origin of each shape is considered at the shape's center\n\
00768 \n\
00769 # for sphere\n\
00770 # radius := dimensions[0]\n\
00771 \n\
00772 # for cylinder\n\
00773 # radius := dimensions[0]\n\
00774 # length := dimensions[1]\n\
00775 # the length is along the Z axis\n\
00776 \n\
00777 # for box\n\
00778 # size_x := dimensions[0]\n\
00779 # size_y := dimensions[1]\n\
00780 # size_z := dimensions[2]\n\
00781 float64[] dimensions\n\
00782 \n\
00783 \n\
00784 #### define mesh ####\n\
00785 \n\
00786 # list of triangles; triangle k is defined by tre vertices located\n\
00787 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
00788 int32[] triangles\n\
00789 geometry_msgs/Point[] vertices\n\
00790 \n\
00791 ================================================================================\n\
00792 MSG: motion_planning_msgs/OrientationConstraint\n\
00793 # This message contains the definition of an orientation constraint.\n\
00794 Header header\n\
00795 \n\
00796 # The robot link this constraint refers to\n\
00797 string link_name\n\
00798 \n\
00799 # The type of the constraint\n\
00800 int32 type\n\
00801 int32 LINK_FRAME=0\n\
00802 int32 HEADER_FRAME=1\n\
00803 \n\
00804 # The desired orientation of the robot link specified as a quaternion\n\
00805 geometry_msgs/Quaternion orientation\n\
00806 \n\
00807 # optional RPY error tolerances specified if \n\
00808 float64 absolute_roll_tolerance\n\
00809 float64 absolute_pitch_tolerance\n\
00810 float64 absolute_yaw_tolerance\n\
00811 \n\
00812 # Constraint weighting factor - a weight for this constraint\n\
00813 float64 weight\n\
00814 \n\
00815 ================================================================================\n\
00816 MSG: motion_planning_msgs/VisibilityConstraint\n\
00817 # This message contains the definition of a visibility constraint.\n\
00818 Header header\n\
00819 \n\
00820 # The point stamped target that needs to be kept within view of the sensor\n\
00821 geometry_msgs/PointStamped target\n\
00822 \n\
00823 # The local pose of the frame in which visibility is to be maintained\n\
00824 # The frame id should represent the robot link to which the sensor is attached\n\
00825 # The visual axis of the sensor is assumed to be along the X axis of this frame\n\
00826 geometry_msgs/PoseStamped sensor_pose\n\
00827 \n\
00828 # The deviation (in radians) that will be tolerated\n\
00829 # Constraint error will be measured as the solid angle between the \n\
00830 # X axis of the frame defined above and the vector between the origin \n\
00831 # of the frame defined above and the target location\n\
00832 float64 absolute_tolerance\n\
00833 \n\
00834 \n\
00835 ================================================================================\n\
00836 MSG: geometry_msgs/PointStamped\n\
00837 # This represents a Point with reference coordinate frame and timestamp\n\
00838 Header header\n\
00839 Point point\n\
00840 \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 ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> &) { return value(); }
00877 };
00878
00879 template<class ContainerAllocator> struct HasHeader< ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> > : public TrueType {};
00880 template<class ContainerAllocator> struct HasHeader< const ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> > : public TrueType {};
00881 }
00882 }
00883
00884 namespace ros
00885 {
00886 namespace serialization
00887 {
00888
00889 template<class ContainerAllocator> struct Serializer< ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> >
00890 {
00891 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00892 {
00893 stream.next(m.header);
00894 stream.next(m.goal_id);
00895 stream.next(m.goal);
00896 }
00897
00898 ROS_DECLARE_ALLINONE_SERIALIZER;
00899 };
00900 }
00901 }
00902
00903 namespace ros
00904 {
00905 namespace message_operations
00906 {
00907
00908 template<class ContainerAllocator>
00909 struct Printer< ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> >
00910 {
00911 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::object_manipulation_msgs::PlaceActionGoal_<ContainerAllocator> & v)
00912 {
00913 s << indent << "header: ";
00914 s << std::endl;
00915 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
00916 s << indent << "goal_id: ";
00917 s << std::endl;
00918 Printer< ::actionlib_msgs::GoalID_<ContainerAllocator> >::stream(s, indent + " ", v.goal_id);
00919 s << indent << "goal: ";
00920 s << std::endl;
00921 Printer< ::object_manipulation_msgs::PlaceGoal_<ContainerAllocator> >::stream(s, indent + " ", v.goal);
00922 }
00923 };
00924
00925
00926 }
00927 }
00928
00929 #endif // OBJECT_MANIPULATION_MSGS_MESSAGE_PLACEACTIONGOAL_H
00930