00001
00002 #ifndef OBJECT_MANIPULATION_MSGS_MESSAGE_PICKUPGOAL_H
00003 #define OBJECT_MANIPULATION_MSGS_MESSAGE_PICKUPGOAL_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 "object_manipulation_msgs/GraspableObject.h"
00018 #include "object_manipulation_msgs/Grasp.h"
00019 #include "object_manipulation_msgs/GripperTranslation.h"
00020 #include "arm_navigation_msgs/Constraints.h"
00021 #include "arm_navigation_msgs/OrderedCollisionOperations.h"
00022 #include "arm_navigation_msgs/LinkPadding.h"
00023 #include "object_manipulation_msgs/GraspableObject.h"
00024
00025 namespace object_manipulation_msgs
00026 {
00027 template <class ContainerAllocator>
00028 struct PickupGoal_ {
00029 typedef PickupGoal_<ContainerAllocator> Type;
00030
00031 PickupGoal_()
00032 : arm_name()
00033 , target()
00034 , desired_grasps()
00035 , lift()
00036 , collision_object_name()
00037 , collision_support_surface_name()
00038 , allow_gripper_support_collision(false)
00039 , use_reactive_execution(false)
00040 , use_reactive_lift(false)
00041 , only_perform_feasibility_test(false)
00042 , ignore_collisions(false)
00043 , path_constraints()
00044 , additional_collision_operations()
00045 , additional_link_padding()
00046 , movable_obstacles()
00047 , max_contact_force(0.0)
00048 {
00049 }
00050
00051 PickupGoal_(const ContainerAllocator& _alloc)
00052 : arm_name(_alloc)
00053 , target(_alloc)
00054 , desired_grasps(_alloc)
00055 , lift(_alloc)
00056 , collision_object_name(_alloc)
00057 , collision_support_surface_name(_alloc)
00058 , allow_gripper_support_collision(false)
00059 , use_reactive_execution(false)
00060 , use_reactive_lift(false)
00061 , only_perform_feasibility_test(false)
00062 , ignore_collisions(false)
00063 , path_constraints(_alloc)
00064 , additional_collision_operations(_alloc)
00065 , additional_link_padding(_alloc)
00066 , movable_obstacles(_alloc)
00067 , max_contact_force(0.0)
00068 {
00069 }
00070
00071 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _arm_name_type;
00072 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > arm_name;
00073
00074 typedef ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> _target_type;
00075 ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> target;
00076
00077 typedef std::vector< ::object_manipulation_msgs::Grasp_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::Grasp_<ContainerAllocator> >::other > _desired_grasps_type;
00078 std::vector< ::object_manipulation_msgs::Grasp_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::Grasp_<ContainerAllocator> >::other > desired_grasps;
00079
00080 typedef ::object_manipulation_msgs::GripperTranslation_<ContainerAllocator> _lift_type;
00081 ::object_manipulation_msgs::GripperTranslation_<ContainerAllocator> lift;
00082
00083 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _collision_object_name_type;
00084 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > collision_object_name;
00085
00086 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _collision_support_surface_name_type;
00087 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > collision_support_surface_name;
00088
00089 typedef uint8_t _allow_gripper_support_collision_type;
00090 uint8_t allow_gripper_support_collision;
00091
00092 typedef uint8_t _use_reactive_execution_type;
00093 uint8_t use_reactive_execution;
00094
00095 typedef uint8_t _use_reactive_lift_type;
00096 uint8_t use_reactive_lift;
00097
00098 typedef uint8_t _only_perform_feasibility_test_type;
00099 uint8_t only_perform_feasibility_test;
00100
00101 typedef uint8_t _ignore_collisions_type;
00102 uint8_t ignore_collisions;
00103
00104 typedef ::arm_navigation_msgs::Constraints_<ContainerAllocator> _path_constraints_type;
00105 ::arm_navigation_msgs::Constraints_<ContainerAllocator> path_constraints;
00106
00107 typedef ::arm_navigation_msgs::OrderedCollisionOperations_<ContainerAllocator> _additional_collision_operations_type;
00108 ::arm_navigation_msgs::OrderedCollisionOperations_<ContainerAllocator> additional_collision_operations;
00109
00110 typedef std::vector< ::arm_navigation_msgs::LinkPadding_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::LinkPadding_<ContainerAllocator> >::other > _additional_link_padding_type;
00111 std::vector< ::arm_navigation_msgs::LinkPadding_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::LinkPadding_<ContainerAllocator> >::other > additional_link_padding;
00112
00113 typedef std::vector< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> >::other > _movable_obstacles_type;
00114 std::vector< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> >::other > movable_obstacles;
00115
00116 typedef float _max_contact_force_type;
00117 float max_contact_force;
00118
00119
00120 ROS_DEPRECATED uint32_t get_desired_grasps_size() const { return (uint32_t)desired_grasps.size(); }
00121 ROS_DEPRECATED void set_desired_grasps_size(uint32_t size) { desired_grasps.resize((size_t)size); }
00122 ROS_DEPRECATED void get_desired_grasps_vec(std::vector< ::object_manipulation_msgs::Grasp_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::Grasp_<ContainerAllocator> >::other > & vec) const { vec = this->desired_grasps; }
00123 ROS_DEPRECATED void set_desired_grasps_vec(const std::vector< ::object_manipulation_msgs::Grasp_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::Grasp_<ContainerAllocator> >::other > & vec) { this->desired_grasps = vec; }
00124 ROS_DEPRECATED uint32_t get_additional_link_padding_size() const { return (uint32_t)additional_link_padding.size(); }
00125 ROS_DEPRECATED void set_additional_link_padding_size(uint32_t size) { additional_link_padding.resize((size_t)size); }
00126 ROS_DEPRECATED void get_additional_link_padding_vec(std::vector< ::arm_navigation_msgs::LinkPadding_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::LinkPadding_<ContainerAllocator> >::other > & vec) const { vec = this->additional_link_padding; }
00127 ROS_DEPRECATED void set_additional_link_padding_vec(const std::vector< ::arm_navigation_msgs::LinkPadding_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::arm_navigation_msgs::LinkPadding_<ContainerAllocator> >::other > & vec) { this->additional_link_padding = vec; }
00128 ROS_DEPRECATED uint32_t get_movable_obstacles_size() const { return (uint32_t)movable_obstacles.size(); }
00129 ROS_DEPRECATED void set_movable_obstacles_size(uint32_t size) { movable_obstacles.resize((size_t)size); }
00130 ROS_DEPRECATED void get_movable_obstacles_vec(std::vector< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> >::other > & vec) const { vec = this->movable_obstacles; }
00131 ROS_DEPRECATED void set_movable_obstacles_vec(const std::vector< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> >::other > & vec) { this->movable_obstacles = vec; }
00132 private:
00133 static const char* __s_getDataType_() { return "object_manipulation_msgs/PickupGoal"; }
00134 public:
00135 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00136
00137 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00138
00139 private:
00140 static const char* __s_getMD5Sum_() { return "49435aa8e5853b02489b00dc68d7fa3b"; }
00141 public:
00142 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00143
00144 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00145
00146 private:
00147 static const char* __s_getMessageDefinition_() { return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\
00148 # An action for picking up an object\n\
00149 \n\
00150 # which arm to be used for grasping\n\
00151 string arm_name\n\
00152 \n\
00153 # the object to be grasped\n\
00154 GraspableObject target\n\
00155 \n\
00156 # a list of grasps to be used\n\
00157 # if empty, the grasp executive will call one of its own planners\n\
00158 Grasp[] desired_grasps\n\
00159 \n\
00160 # how the object should be lifted after the grasp\n\
00161 # the frame_id that this lift is specified in MUST be either the robot_frame \n\
00162 # or the gripper_frame specified in your hand description file\n\
00163 GripperTranslation lift\n\
00164 \n\
00165 # the name that the target object has in the collision map\n\
00166 # can be left empty if no name is available\n\
00167 string collision_object_name\n\
00168 \n\
00169 # the name that the support surface (e.g. table) has in the collision map\n\
00170 # can be left empty if no name is available\n\
00171 string collision_support_surface_name\n\
00172 \n\
00173 # whether collisions between the gripper and the support surface should be acceptable\n\
00174 # during move from pre-grasp to grasp and during lift. Collisions when moving to the\n\
00175 # pre-grasp location are still not allowed even if this is set to true.\n\
00176 bool allow_gripper_support_collision\n\
00177 \n\
00178 # whether reactive grasp execution using tactile sensors should be used\n\
00179 bool use_reactive_execution\n\
00180 \n\
00181 # whether reactive object lifting based on tactile sensors should be used\n\
00182 bool use_reactive_lift\n\
00183 \n\
00184 # set this to true if you only want to query the manipulation pipeline as to what \n\
00185 # grasps it thinks are feasible, without actually executing them. If this is set to \n\
00186 # true, the atempted_grasp_results field of the result will be populated, but no arm \n\
00187 # movement will be attempted\n\
00188 bool only_perform_feasibility_test\n\
00189 \n\
00190 # set this to true if you want to ignore all collisions throughout the pickup \n\
00191 # and also move directly to the pre-grasp using Cartesian controllers\n\
00192 bool ignore_collisions\n\
00193 \n\
00194 # OPTIONAL (These will not have to be filled out most of the time)\n\
00195 # constraints to be imposed on every point in the motion of the arm\n\
00196 arm_navigation_msgs/Constraints path_constraints\n\
00197 \n\
00198 # OPTIONAL (These will not have to be filled out most of the time)\n\
00199 # additional collision operations to be used for every arm movement performed\n\
00200 # during grasping. Note that these will be added on top of (and thus overide) other \n\
00201 # collision operations that the grasping pipeline deems necessary. Should be used\n\
00202 # with care and only if special behaviors are desired\n\
00203 arm_navigation_msgs/OrderedCollisionOperations additional_collision_operations\n\
00204 \n\
00205 # OPTIONAL (These will not have to be filled out most of the time)\n\
00206 # additional link paddings to be used for every arm movement performed\n\
00207 # during grasping. Note that these will be added on top of (and thus overide) other \n\
00208 # link paddings that the grasping pipeline deems necessary. Should be used\n\
00209 # with care and only if special behaviors are desired\n\
00210 arm_navigation_msgs/LinkPadding[] additional_link_padding\n\
00211 \n\
00212 # an optional list of obstacles that we have semantic information about\n\
00213 # and that can be moved in the course of grasping\n\
00214 GraspableObject[] movable_obstacles\n\
00215 \n\
00216 # the maximum contact force to use while grasping (<=0 to disable)\n\
00217 float32 max_contact_force\n\
00218 \n\
00219 \n\
00220 ================================================================================\n\
00221 MSG: object_manipulation_msgs/GraspableObject\n\
00222 # an object that the object_manipulator can work on\n\
00223 \n\
00224 # a graspable object can be represented in multiple ways. This message\n\
00225 # can contain all of them. Which one is actually used is up to the receiver\n\
00226 # of this message. When adding new representations, one must be careful that\n\
00227 # they have reasonable lightweight defaults indicating that that particular\n\
00228 # representation is not available.\n\
00229 \n\
00230 # the tf frame to be used as a reference frame when combining information from\n\
00231 # the different representations below\n\
00232 string reference_frame_id\n\
00233 \n\
00234 # potential recognition results from a database of models\n\
00235 # all poses are relative to the object reference pose\n\
00236 household_objects_database_msgs/DatabaseModelPose[] potential_models\n\
00237 \n\
00238 # the point cloud itself\n\
00239 sensor_msgs/PointCloud cluster\n\
00240 \n\
00241 # a region of a PointCloud2 of interest\n\
00242 object_manipulation_msgs/SceneRegion region\n\
00243 \n\
00244 # the name that this object has in the collision environment\n\
00245 string collision_name\n\
00246 ================================================================================\n\
00247 MSG: household_objects_database_msgs/DatabaseModelPose\n\
00248 # Informs that a specific model from the Model Database has been \n\
00249 # identified at a certain location\n\
00250 \n\
00251 # the database id of the model\n\
00252 int32 model_id\n\
00253 \n\
00254 # the pose that it can be found in\n\
00255 geometry_msgs/PoseStamped pose\n\
00256 \n\
00257 # a measure of the confidence level in this detection result\n\
00258 float32 confidence\n\
00259 \n\
00260 # the name of the object detector that generated this detection result\n\
00261 string detector_name\n\
00262 \n\
00263 ================================================================================\n\
00264 MSG: geometry_msgs/PoseStamped\n\
00265 # A Pose with reference coordinate frame and timestamp\n\
00266 Header header\n\
00267 Pose pose\n\
00268 \n\
00269 ================================================================================\n\
00270 MSG: std_msgs/Header\n\
00271 # Standard metadata for higher-level stamped data types.\n\
00272 # This is generally used to communicate timestamped data \n\
00273 # in a particular coordinate frame.\n\
00274 # \n\
00275 # sequence ID: consecutively increasing ID \n\
00276 uint32 seq\n\
00277 #Two-integer timestamp that is expressed as:\n\
00278 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00279 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00280 # time-handling sugar is provided by the client library\n\
00281 time stamp\n\
00282 #Frame this data is associated with\n\
00283 # 0: no frame\n\
00284 # 1: global frame\n\
00285 string frame_id\n\
00286 \n\
00287 ================================================================================\n\
00288 MSG: geometry_msgs/Pose\n\
00289 # A representation of pose in free space, composed of postion and orientation. \n\
00290 Point position\n\
00291 Quaternion orientation\n\
00292 \n\
00293 ================================================================================\n\
00294 MSG: geometry_msgs/Point\n\
00295 # This contains the position of a point in free space\n\
00296 float64 x\n\
00297 float64 y\n\
00298 float64 z\n\
00299 \n\
00300 ================================================================================\n\
00301 MSG: geometry_msgs/Quaternion\n\
00302 # This represents an orientation in free space in quaternion form.\n\
00303 \n\
00304 float64 x\n\
00305 float64 y\n\
00306 float64 z\n\
00307 float64 w\n\
00308 \n\
00309 ================================================================================\n\
00310 MSG: sensor_msgs/PointCloud\n\
00311 # This message holds a collection of 3d points, plus optional additional\n\
00312 # information about each point.\n\
00313 \n\
00314 # Time of sensor data acquisition, coordinate frame ID.\n\
00315 Header header\n\
00316 \n\
00317 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\
00318 # in the frame given in the header.\n\
00319 geometry_msgs/Point32[] points\n\
00320 \n\
00321 # Each channel should have the same number of elements as points array,\n\
00322 # and the data in each channel should correspond 1:1 with each point.\n\
00323 # Channel names in common practice are listed in ChannelFloat32.msg.\n\
00324 ChannelFloat32[] channels\n\
00325 \n\
00326 ================================================================================\n\
00327 MSG: geometry_msgs/Point32\n\
00328 # This contains the position of a point in free space(with 32 bits of precision).\n\
00329 # It is recommeded to use Point wherever possible instead of Point32. \n\
00330 # \n\
00331 # This recommendation is to promote interoperability. \n\
00332 #\n\
00333 # This message is designed to take up less space when sending\n\
00334 # lots of points at once, as in the case of a PointCloud. \n\
00335 \n\
00336 float32 x\n\
00337 float32 y\n\
00338 float32 z\n\
00339 ================================================================================\n\
00340 MSG: sensor_msgs/ChannelFloat32\n\
00341 # This message is used by the PointCloud message to hold optional data\n\
00342 # associated with each point in the cloud. The length of the values\n\
00343 # array should be the same as the length of the points array in the\n\
00344 # PointCloud, and each value should be associated with the corresponding\n\
00345 # point.\n\
00346 \n\
00347 # Channel names in existing practice include:\n\
00348 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\
00349 # This is opposite to usual conventions but remains for\n\
00350 # historical reasons. The newer PointCloud2 message has no\n\
00351 # such problem.\n\
00352 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\
00353 # (R,G,B) values packed into the least significant 24 bits,\n\
00354 # in order.\n\
00355 # \"intensity\" - laser or pixel intensity.\n\
00356 # \"distance\"\n\
00357 \n\
00358 # The channel name should give semantics of the channel (e.g.\n\
00359 # \"intensity\" instead of \"value\").\n\
00360 string name\n\
00361 \n\
00362 # The values array should be 1-1 with the elements of the associated\n\
00363 # PointCloud.\n\
00364 float32[] values\n\
00365 \n\
00366 ================================================================================\n\
00367 MSG: object_manipulation_msgs/SceneRegion\n\
00368 # Point cloud\n\
00369 sensor_msgs/PointCloud2 cloud\n\
00370 \n\
00371 # Indices for the region of interest\n\
00372 int32[] mask\n\
00373 \n\
00374 # One of the corresponding 2D images, if applicable\n\
00375 sensor_msgs/Image image\n\
00376 \n\
00377 # The disparity image, if applicable\n\
00378 sensor_msgs/Image disparity_image\n\
00379 \n\
00380 # Camera info for the camera that took the image\n\
00381 sensor_msgs/CameraInfo cam_info\n\
00382 \n\
00383 # a 3D region of interest for grasp planning\n\
00384 geometry_msgs/PoseStamped roi_box_pose\n\
00385 geometry_msgs/Vector3 roi_box_dims\n\
00386 \n\
00387 ================================================================================\n\
00388 MSG: sensor_msgs/PointCloud2\n\
00389 # This message holds a collection of N-dimensional points, which may\n\
00390 # contain additional information such as normals, intensity, etc. The\n\
00391 # point data is stored as a binary blob, its layout described by the\n\
00392 # contents of the \"fields\" array.\n\
00393 \n\
00394 # The point cloud data may be organized 2d (image-like) or 1d\n\
00395 # (unordered). Point clouds organized as 2d images may be produced by\n\
00396 # camera depth sensors such as stereo or time-of-flight.\n\
00397 \n\
00398 # Time of sensor data acquisition, and the coordinate frame ID (for 3d\n\
00399 # points).\n\
00400 Header header\n\
00401 \n\
00402 # 2D structure of the point cloud. If the cloud is unordered, height is\n\
00403 # 1 and width is the length of the point cloud.\n\
00404 uint32 height\n\
00405 uint32 width\n\
00406 \n\
00407 # Describes the channels and their layout in the binary data blob.\n\
00408 PointField[] fields\n\
00409 \n\
00410 bool is_bigendian # Is this data bigendian?\n\
00411 uint32 point_step # Length of a point in bytes\n\
00412 uint32 row_step # Length of a row in bytes\n\
00413 uint8[] data # Actual point data, size is (row_step*height)\n\
00414 \n\
00415 bool is_dense # True if there are no invalid points\n\
00416 \n\
00417 ================================================================================\n\
00418 MSG: sensor_msgs/PointField\n\
00419 # This message holds the description of one point entry in the\n\
00420 # PointCloud2 message format.\n\
00421 uint8 INT8 = 1\n\
00422 uint8 UINT8 = 2\n\
00423 uint8 INT16 = 3\n\
00424 uint8 UINT16 = 4\n\
00425 uint8 INT32 = 5\n\
00426 uint8 UINT32 = 6\n\
00427 uint8 FLOAT32 = 7\n\
00428 uint8 FLOAT64 = 8\n\
00429 \n\
00430 string name # Name of field\n\
00431 uint32 offset # Offset from start of point struct\n\
00432 uint8 datatype # Datatype enumeration, see above\n\
00433 uint32 count # How many elements in the field\n\
00434 \n\
00435 ================================================================================\n\
00436 MSG: sensor_msgs/Image\n\
00437 # This message contains an uncompressed image\n\
00438 # (0, 0) is at top-left corner of image\n\
00439 #\n\
00440 \n\
00441 Header header # Header timestamp should be acquisition time of image\n\
00442 # Header frame_id should be optical frame of camera\n\
00443 # origin of frame should be optical center of cameara\n\
00444 # +x should point to the right in the image\n\
00445 # +y should point down in the image\n\
00446 # +z should point into to plane of the image\n\
00447 # If the frame_id here and the frame_id of the CameraInfo\n\
00448 # message associated with the image conflict\n\
00449 # the behavior is undefined\n\
00450 \n\
00451 uint32 height # image height, that is, number of rows\n\
00452 uint32 width # image width, that is, number of columns\n\
00453 \n\
00454 # The legal values for encoding are in file src/image_encodings.cpp\n\
00455 # If you want to standardize a new string format, join\n\
00456 # ros-users@lists.sourceforge.net and send an email proposing a new encoding.\n\
00457 \n\
00458 string encoding # Encoding of pixels -- channel meaning, ordering, size\n\
00459 # taken from the list of strings in src/image_encodings.cpp\n\
00460 \n\
00461 uint8 is_bigendian # is this data bigendian?\n\
00462 uint32 step # Full row length in bytes\n\
00463 uint8[] data # actual matrix data, size is (step * rows)\n\
00464 \n\
00465 ================================================================================\n\
00466 MSG: sensor_msgs/CameraInfo\n\
00467 # This message defines meta information for a camera. It should be in a\n\
00468 # camera namespace on topic \"camera_info\" and accompanied by up to five\n\
00469 # image topics named:\n\
00470 #\n\
00471 # image_raw - raw data from the camera driver, possibly Bayer encoded\n\
00472 # image - monochrome, distorted\n\
00473 # image_color - color, distorted\n\
00474 # image_rect - monochrome, rectified\n\
00475 # image_rect_color - color, rectified\n\
00476 #\n\
00477 # The image_pipeline contains packages (image_proc, stereo_image_proc)\n\
00478 # for producing the four processed image topics from image_raw and\n\
00479 # camera_info. The meaning of the camera parameters are described in\n\
00480 # detail at http://www.ros.org/wiki/image_pipeline/CameraInfo.\n\
00481 #\n\
00482 # The image_geometry package provides a user-friendly interface to\n\
00483 # common operations using this meta information. If you want to, e.g.,\n\
00484 # project a 3d point into image coordinates, we strongly recommend\n\
00485 # using image_geometry.\n\
00486 #\n\
00487 # If the camera is uncalibrated, the matrices D, K, R, P should be left\n\
00488 # zeroed out. In particular, clients may assume that K[0] == 0.0\n\
00489 # indicates an uncalibrated camera.\n\
00490 \n\
00491 #######################################################################\n\
00492 # Image acquisition info #\n\
00493 #######################################################################\n\
00494 \n\
00495 # Time of image acquisition, camera coordinate frame ID\n\
00496 Header header # Header timestamp should be acquisition time of image\n\
00497 # Header frame_id should be optical frame of camera\n\
00498 # origin of frame should be optical center of camera\n\
00499 # +x should point to the right in the image\n\
00500 # +y should point down in the image\n\
00501 # +z should point into the plane of the image\n\
00502 \n\
00503 \n\
00504 #######################################################################\n\
00505 # Calibration Parameters #\n\
00506 #######################################################################\n\
00507 # These are fixed during camera calibration. Their values will be the #\n\
00508 # same in all messages until the camera is recalibrated. Note that #\n\
00509 # self-calibrating systems may \"recalibrate\" frequently. #\n\
00510 # #\n\
00511 # The internal parameters can be used to warp a raw (distorted) image #\n\
00512 # to: #\n\
00513 # 1. An undistorted image (requires D and K) #\n\
00514 # 2. A rectified image (requires D, K, R) #\n\
00515 # The projection matrix P projects 3D points into the rectified image.#\n\
00516 #######################################################################\n\
00517 \n\
00518 # The image dimensions with which the camera was calibrated. Normally\n\
00519 # this will be the full camera resolution in pixels.\n\
00520 uint32 height\n\
00521 uint32 width\n\
00522 \n\
00523 # The distortion model used. Supported models are listed in\n\
00524 # sensor_msgs/distortion_models.h. For most cameras, \"plumb_bob\" - a\n\
00525 # simple model of radial and tangential distortion - is sufficent.\n\
00526 string distortion_model\n\
00527 \n\
00528 # The distortion parameters, size depending on the distortion model.\n\
00529 # For \"plumb_bob\", the 5 parameters are: (k1, k2, t1, t2, k3).\n\
00530 float64[] D\n\
00531 \n\
00532 # Intrinsic camera matrix for the raw (distorted) images.\n\
00533 # [fx 0 cx]\n\
00534 # K = [ 0 fy cy]\n\
00535 # [ 0 0 1]\n\
00536 # Projects 3D points in the camera coordinate frame to 2D pixel\n\
00537 # coordinates using the focal lengths (fx, fy) and principal point\n\
00538 # (cx, cy).\n\
00539 float64[9] K # 3x3 row-major matrix\n\
00540 \n\
00541 # Rectification matrix (stereo cameras only)\n\
00542 # A rotation matrix aligning the camera coordinate system to the ideal\n\
00543 # stereo image plane so that epipolar lines in both stereo images are\n\
00544 # parallel.\n\
00545 float64[9] R # 3x3 row-major matrix\n\
00546 \n\
00547 # Projection/camera matrix\n\
00548 # [fx' 0 cx' Tx]\n\
00549 # P = [ 0 fy' cy' Ty]\n\
00550 # [ 0 0 1 0]\n\
00551 # By convention, this matrix specifies the intrinsic (camera) matrix\n\
00552 # of the processed (rectified) image. That is, the left 3x3 portion\n\
00553 # is the normal camera intrinsic matrix for the rectified image.\n\
00554 # It projects 3D points in the camera coordinate frame to 2D pixel\n\
00555 # coordinates using the focal lengths (fx', fy') and principal point\n\
00556 # (cx', cy') - these may differ from the values in K.\n\
00557 # For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will\n\
00558 # also have R = the identity and P[1:3,1:3] = K.\n\
00559 # For a stereo pair, the fourth column [Tx Ty 0]' is related to the\n\
00560 # position of the optical center of the second camera in the first\n\
00561 # camera's frame. We assume Tz = 0 so both cameras are in the same\n\
00562 # stereo image plane. The first camera always has Tx = Ty = 0. For\n\
00563 # the right (second) camera of a horizontal stereo pair, Ty = 0 and\n\
00564 # Tx = -fx' * B, where B is the baseline between the cameras.\n\
00565 # Given a 3D point [X Y Z]', the projection (x, y) of the point onto\n\
00566 # the rectified image is given by:\n\
00567 # [u v w]' = P * [X Y Z 1]'\n\
00568 # x = u / w\n\
00569 # y = v / w\n\
00570 # This holds for both images of a stereo pair.\n\
00571 float64[12] P # 3x4 row-major matrix\n\
00572 \n\
00573 \n\
00574 #######################################################################\n\
00575 # Operational Parameters #\n\
00576 #######################################################################\n\
00577 # These define the image region actually captured by the camera #\n\
00578 # driver. Although they affect the geometry of the output image, they #\n\
00579 # may be changed freely without recalibrating the camera. #\n\
00580 #######################################################################\n\
00581 \n\
00582 # Binning refers here to any camera setting which combines rectangular\n\
00583 # neighborhoods of pixels into larger \"super-pixels.\" It reduces the\n\
00584 # resolution of the output image to\n\
00585 # (width / binning_x) x (height / binning_y).\n\
00586 # The default values binning_x = binning_y = 0 is considered the same\n\
00587 # as binning_x = binning_y = 1 (no subsampling).\n\
00588 uint32 binning_x\n\
00589 uint32 binning_y\n\
00590 \n\
00591 # Region of interest (subwindow of full camera resolution), given in\n\
00592 # full resolution (unbinned) image coordinates. A particular ROI\n\
00593 # always denotes the same window of pixels on the camera sensor,\n\
00594 # regardless of binning settings.\n\
00595 # The default setting of roi (all values 0) is considered the same as\n\
00596 # full resolution (roi.width = width, roi.height = height).\n\
00597 RegionOfInterest roi\n\
00598 \n\
00599 ================================================================================\n\
00600 MSG: sensor_msgs/RegionOfInterest\n\
00601 # This message is used to specify a region of interest within an image.\n\
00602 #\n\
00603 # When used to specify the ROI setting of the camera when the image was\n\
00604 # taken, the height and width fields should either match the height and\n\
00605 # width fields for the associated image; or height = width = 0\n\
00606 # indicates that the full resolution image was captured.\n\
00607 \n\
00608 uint32 x_offset # Leftmost pixel of the ROI\n\
00609 # (0 if the ROI includes the left edge of the image)\n\
00610 uint32 y_offset # Topmost pixel of the ROI\n\
00611 # (0 if the ROI includes the top edge of the image)\n\
00612 uint32 height # Height of ROI\n\
00613 uint32 width # Width of ROI\n\
00614 \n\
00615 # True if a distinct rectified ROI should be calculated from the \"raw\"\n\
00616 # ROI in this message. Typically this should be False if the full image\n\
00617 # is captured (ROI not used), and True if a subwindow is captured (ROI\n\
00618 # used).\n\
00619 bool do_rectify\n\
00620 \n\
00621 ================================================================================\n\
00622 MSG: geometry_msgs/Vector3\n\
00623 # This represents a vector in free space. \n\
00624 \n\
00625 float64 x\n\
00626 float64 y\n\
00627 float64 z\n\
00628 ================================================================================\n\
00629 MSG: object_manipulation_msgs/Grasp\n\
00630 \n\
00631 # The internal posture of the hand for the pre-grasp\n\
00632 # only positions are used\n\
00633 sensor_msgs/JointState pre_grasp_posture\n\
00634 \n\
00635 # The internal posture of the hand for the grasp\n\
00636 # positions and efforts are used\n\
00637 sensor_msgs/JointState grasp_posture\n\
00638 \n\
00639 # The position of the end-effector for the grasp relative to a reference frame \n\
00640 # (that is always specified elsewhere, not in this message)\n\
00641 geometry_msgs/Pose grasp_pose\n\
00642 \n\
00643 # The estimated probability of success for this grasp\n\
00644 float64 success_probability\n\
00645 \n\
00646 # Debug flag to indicate that this grasp would be the best in its cluster\n\
00647 bool cluster_rep\n\
00648 \n\
00649 # how far the pre-grasp should ideally be away from the grasp\n\
00650 float32 desired_approach_distance\n\
00651 \n\
00652 # how much distance between pre-grasp and grasp must actually be feasible \n\
00653 # for the grasp not to be rejected\n\
00654 float32 min_approach_distance\n\
00655 \n\
00656 # an optional list of obstacles that we have semantic information about\n\
00657 # and that we expect might move in the course of executing this grasp\n\
00658 # the grasp planner is expected to make sure they move in an OK way; during\n\
00659 # execution, grasp executors will not check for collisions against these objects\n\
00660 GraspableObject[] moved_obstacles\n\
00661 \n\
00662 ================================================================================\n\
00663 MSG: sensor_msgs/JointState\n\
00664 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
00665 #\n\
00666 # The state of each joint (revolute or prismatic) is defined by:\n\
00667 # * the position of the joint (rad or m),\n\
00668 # * the velocity of the joint (rad/s or m/s) and \n\
00669 # * the effort that is applied in the joint (Nm or N).\n\
00670 #\n\
00671 # Each joint is uniquely identified by its name\n\
00672 # The header specifies the time at which the joint states were recorded. All the joint states\n\
00673 # in one message have to be recorded at the same time.\n\
00674 #\n\
00675 # This message consists of a multiple arrays, one for each part of the joint state. \n\
00676 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
00677 # effort associated with them, you can leave the effort array empty. \n\
00678 #\n\
00679 # All arrays in this message should have the same size, or be empty.\n\
00680 # This is the only way to uniquely associate the joint name with the correct\n\
00681 # states.\n\
00682 \n\
00683 \n\
00684 Header header\n\
00685 \n\
00686 string[] name\n\
00687 float64[] position\n\
00688 float64[] velocity\n\
00689 float64[] effort\n\
00690 \n\
00691 ================================================================================\n\
00692 MSG: object_manipulation_msgs/GripperTranslation\n\
00693 # defines a translation for the gripper, used in pickup or place tasks\n\
00694 # for example for lifting an object off a table or approaching the table for placing\n\
00695 \n\
00696 # the direction of the translation\n\
00697 geometry_msgs/Vector3Stamped direction\n\
00698 \n\
00699 # the desired translation distance\n\
00700 float32 desired_distance\n\
00701 \n\
00702 # the min distance that must be considered feasible before the\n\
00703 # grasp is even attempted\n\
00704 float32 min_distance\n\
00705 ================================================================================\n\
00706 MSG: geometry_msgs/Vector3Stamped\n\
00707 # This represents a Vector3 with reference coordinate frame and timestamp\n\
00708 Header header\n\
00709 Vector3 vector\n\
00710 \n\
00711 ================================================================================\n\
00712 MSG: arm_navigation_msgs/Constraints\n\
00713 # This message contains a list of motion planning constraints.\n\
00714 \n\
00715 arm_navigation_msgs/JointConstraint[] joint_constraints\n\
00716 arm_navigation_msgs/PositionConstraint[] position_constraints\n\
00717 arm_navigation_msgs/OrientationConstraint[] orientation_constraints\n\
00718 arm_navigation_msgs/VisibilityConstraint[] visibility_constraints\n\
00719 \n\
00720 ================================================================================\n\
00721 MSG: arm_navigation_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: arm_navigation_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 arm_navigation_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 ================================================================================\n\
00758 MSG: arm_navigation_msgs/Shape\n\
00759 byte SPHERE=0\n\
00760 byte BOX=1\n\
00761 byte CYLINDER=2\n\
00762 byte MESH=3\n\
00763 \n\
00764 byte type\n\
00765 \n\
00766 \n\
00767 #### define sphere, box, cylinder ####\n\
00768 # the origin of each shape is considered at the shape's center\n\
00769 \n\
00770 # for sphere\n\
00771 # radius := dimensions[0]\n\
00772 \n\
00773 # for cylinder\n\
00774 # radius := dimensions[0]\n\
00775 # length := dimensions[1]\n\
00776 # the length is along the Z axis\n\
00777 \n\
00778 # for box\n\
00779 # size_x := dimensions[0]\n\
00780 # size_y := dimensions[1]\n\
00781 # size_z := dimensions[2]\n\
00782 float64[] dimensions\n\
00783 \n\
00784 \n\
00785 #### define mesh ####\n\
00786 \n\
00787 # list of triangles; triangle k is defined by tre vertices located\n\
00788 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
00789 int32[] triangles\n\
00790 geometry_msgs/Point[] vertices\n\
00791 \n\
00792 ================================================================================\n\
00793 MSG: arm_navigation_msgs/OrientationConstraint\n\
00794 # This message contains the definition of an orientation constraint.\n\
00795 Header header\n\
00796 \n\
00797 # The robot link this constraint refers to\n\
00798 string link_name\n\
00799 \n\
00800 # The type of the constraint\n\
00801 int32 type\n\
00802 int32 LINK_FRAME=0\n\
00803 int32 HEADER_FRAME=1\n\
00804 \n\
00805 # The desired orientation of the robot link specified as a quaternion\n\
00806 geometry_msgs/Quaternion orientation\n\
00807 \n\
00808 # optional RPY error tolerances specified if \n\
00809 float64 absolute_roll_tolerance\n\
00810 float64 absolute_pitch_tolerance\n\
00811 float64 absolute_yaw_tolerance\n\
00812 \n\
00813 # Constraint weighting factor - a weight for this constraint\n\
00814 float64 weight\n\
00815 \n\
00816 ================================================================================\n\
00817 MSG: arm_navigation_msgs/VisibilityConstraint\n\
00818 # This message contains the definition of a visibility constraint.\n\
00819 Header header\n\
00820 \n\
00821 # The point stamped target that needs to be kept within view of the sensor\n\
00822 geometry_msgs/PointStamped target\n\
00823 \n\
00824 # The local pose of the frame in which visibility is to be maintained\n\
00825 # The frame id should represent the robot link to which the sensor is attached\n\
00826 # The visual axis of the sensor is assumed to be along the X axis of this frame\n\
00827 geometry_msgs/PoseStamped sensor_pose\n\
00828 \n\
00829 # The deviation (in radians) that will be tolerated\n\
00830 # Constraint error will be measured as the solid angle between the \n\
00831 # X axis of the frame defined above and the vector between the origin \n\
00832 # of the frame defined above and the target location\n\
00833 float64 absolute_tolerance\n\
00834 \n\
00835 \n\
00836 ================================================================================\n\
00837 MSG: geometry_msgs/PointStamped\n\
00838 # This represents a Point with reference coordinate frame and timestamp\n\
00839 Header header\n\
00840 Point point\n\
00841 \n\
00842 ================================================================================\n\
00843 MSG: arm_navigation_msgs/OrderedCollisionOperations\n\
00844 # A set of collision operations that will be performed in the order they are specified\n\
00845 CollisionOperation[] collision_operations\n\
00846 ================================================================================\n\
00847 MSG: arm_navigation_msgs/CollisionOperation\n\
00848 # A definition of a collision operation\n\
00849 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\
00850 # between the gripper and all objects in the collision space\n\
00851 \n\
00852 string object1\n\
00853 string object2\n\
00854 string COLLISION_SET_ALL=\"all\"\n\
00855 string COLLISION_SET_OBJECTS=\"objects\"\n\
00856 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\
00857 \n\
00858 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\
00859 float64 penetration_distance\n\
00860 \n\
00861 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\
00862 int32 operation\n\
00863 int32 DISABLE=0\n\
00864 int32 ENABLE=1\n\
00865 \n\
00866 ================================================================================\n\
00867 MSG: arm_navigation_msgs/LinkPadding\n\
00868 #name for the link\n\
00869 string link_name\n\
00870 \n\
00871 # padding to apply to the link\n\
00872 float64 padding\n\
00873 \n\
00874 "; }
00875 public:
00876 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00877
00878 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00879
00880 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00881 {
00882 ros::serialization::OStream stream(write_ptr, 1000000000);
00883 ros::serialization::serialize(stream, arm_name);
00884 ros::serialization::serialize(stream, target);
00885 ros::serialization::serialize(stream, desired_grasps);
00886 ros::serialization::serialize(stream, lift);
00887 ros::serialization::serialize(stream, collision_object_name);
00888 ros::serialization::serialize(stream, collision_support_surface_name);
00889 ros::serialization::serialize(stream, allow_gripper_support_collision);
00890 ros::serialization::serialize(stream, use_reactive_execution);
00891 ros::serialization::serialize(stream, use_reactive_lift);
00892 ros::serialization::serialize(stream, only_perform_feasibility_test);
00893 ros::serialization::serialize(stream, ignore_collisions);
00894 ros::serialization::serialize(stream, path_constraints);
00895 ros::serialization::serialize(stream, additional_collision_operations);
00896 ros::serialization::serialize(stream, additional_link_padding);
00897 ros::serialization::serialize(stream, movable_obstacles);
00898 ros::serialization::serialize(stream, max_contact_force);
00899 return stream.getData();
00900 }
00901
00902 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00903 {
00904 ros::serialization::IStream stream(read_ptr, 1000000000);
00905 ros::serialization::deserialize(stream, arm_name);
00906 ros::serialization::deserialize(stream, target);
00907 ros::serialization::deserialize(stream, desired_grasps);
00908 ros::serialization::deserialize(stream, lift);
00909 ros::serialization::deserialize(stream, collision_object_name);
00910 ros::serialization::deserialize(stream, collision_support_surface_name);
00911 ros::serialization::deserialize(stream, allow_gripper_support_collision);
00912 ros::serialization::deserialize(stream, use_reactive_execution);
00913 ros::serialization::deserialize(stream, use_reactive_lift);
00914 ros::serialization::deserialize(stream, only_perform_feasibility_test);
00915 ros::serialization::deserialize(stream, ignore_collisions);
00916 ros::serialization::deserialize(stream, path_constraints);
00917 ros::serialization::deserialize(stream, additional_collision_operations);
00918 ros::serialization::deserialize(stream, additional_link_padding);
00919 ros::serialization::deserialize(stream, movable_obstacles);
00920 ros::serialization::deserialize(stream, max_contact_force);
00921 return stream.getData();
00922 }
00923
00924 ROS_DEPRECATED virtual uint32_t serializationLength() const
00925 {
00926 uint32_t size = 0;
00927 size += ros::serialization::serializationLength(arm_name);
00928 size += ros::serialization::serializationLength(target);
00929 size += ros::serialization::serializationLength(desired_grasps);
00930 size += ros::serialization::serializationLength(lift);
00931 size += ros::serialization::serializationLength(collision_object_name);
00932 size += ros::serialization::serializationLength(collision_support_surface_name);
00933 size += ros::serialization::serializationLength(allow_gripper_support_collision);
00934 size += ros::serialization::serializationLength(use_reactive_execution);
00935 size += ros::serialization::serializationLength(use_reactive_lift);
00936 size += ros::serialization::serializationLength(only_perform_feasibility_test);
00937 size += ros::serialization::serializationLength(ignore_collisions);
00938 size += ros::serialization::serializationLength(path_constraints);
00939 size += ros::serialization::serializationLength(additional_collision_operations);
00940 size += ros::serialization::serializationLength(additional_link_padding);
00941 size += ros::serialization::serializationLength(movable_obstacles);
00942 size += ros::serialization::serializationLength(max_contact_force);
00943 return size;
00944 }
00945
00946 typedef boost::shared_ptr< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> > Ptr;
00947 typedef boost::shared_ptr< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> const> ConstPtr;
00948 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00949 };
00950 typedef ::object_manipulation_msgs::PickupGoal_<std::allocator<void> > PickupGoal;
00951
00952 typedef boost::shared_ptr< ::object_manipulation_msgs::PickupGoal> PickupGoalPtr;
00953 typedef boost::shared_ptr< ::object_manipulation_msgs::PickupGoal const> PickupGoalConstPtr;
00954
00955
00956 template<typename ContainerAllocator>
00957 std::ostream& operator<<(std::ostream& s, const ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> & v)
00958 {
00959 ros::message_operations::Printer< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> >::stream(s, "", v);
00960 return s;}
00961
00962 }
00963
00964 namespace ros
00965 {
00966 namespace message_traits
00967 {
00968 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> > : public TrueType {};
00969 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> const> : public TrueType {};
00970 template<class ContainerAllocator>
00971 struct MD5Sum< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> > {
00972 static const char* value()
00973 {
00974 return "49435aa8e5853b02489b00dc68d7fa3b";
00975 }
00976
00977 static const char* value(const ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> &) { return value(); }
00978 static const uint64_t static_value1 = 0x49435aa8e5853b02ULL;
00979 static const uint64_t static_value2 = 0x489b00dc68d7fa3bULL;
00980 };
00981
00982 template<class ContainerAllocator>
00983 struct DataType< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> > {
00984 static const char* value()
00985 {
00986 return "object_manipulation_msgs/PickupGoal";
00987 }
00988
00989 static const char* value(const ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> &) { return value(); }
00990 };
00991
00992 template<class ContainerAllocator>
00993 struct Definition< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> > {
00994 static const char* value()
00995 {
00996 return "# ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======\n\
00997 # An action for picking up an object\n\
00998 \n\
00999 # which arm to be used for grasping\n\
01000 string arm_name\n\
01001 \n\
01002 # the object to be grasped\n\
01003 GraspableObject target\n\
01004 \n\
01005 # a list of grasps to be used\n\
01006 # if empty, the grasp executive will call one of its own planners\n\
01007 Grasp[] desired_grasps\n\
01008 \n\
01009 # how the object should be lifted after the grasp\n\
01010 # the frame_id that this lift is specified in MUST be either the robot_frame \n\
01011 # or the gripper_frame specified in your hand description file\n\
01012 GripperTranslation lift\n\
01013 \n\
01014 # the name that the target object has in the collision map\n\
01015 # can be left empty if no name is available\n\
01016 string collision_object_name\n\
01017 \n\
01018 # the name that the support surface (e.g. table) has in the collision map\n\
01019 # can be left empty if no name is available\n\
01020 string collision_support_surface_name\n\
01021 \n\
01022 # whether collisions between the gripper and the support surface should be acceptable\n\
01023 # during move from pre-grasp to grasp and during lift. Collisions when moving to the\n\
01024 # pre-grasp location are still not allowed even if this is set to true.\n\
01025 bool allow_gripper_support_collision\n\
01026 \n\
01027 # whether reactive grasp execution using tactile sensors should be used\n\
01028 bool use_reactive_execution\n\
01029 \n\
01030 # whether reactive object lifting based on tactile sensors should be used\n\
01031 bool use_reactive_lift\n\
01032 \n\
01033 # set this to true if you only want to query the manipulation pipeline as to what \n\
01034 # grasps it thinks are feasible, without actually executing them. If this is set to \n\
01035 # true, the atempted_grasp_results field of the result will be populated, but no arm \n\
01036 # movement will be attempted\n\
01037 bool only_perform_feasibility_test\n\
01038 \n\
01039 # set this to true if you want to ignore all collisions throughout the pickup \n\
01040 # and also move directly to the pre-grasp using Cartesian controllers\n\
01041 bool ignore_collisions\n\
01042 \n\
01043 # OPTIONAL (These will not have to be filled out most of the time)\n\
01044 # constraints to be imposed on every point in the motion of the arm\n\
01045 arm_navigation_msgs/Constraints path_constraints\n\
01046 \n\
01047 # OPTIONAL (These will not have to be filled out most of the time)\n\
01048 # additional collision operations to be used for every arm movement performed\n\
01049 # during grasping. Note that these will be added on top of (and thus overide) other \n\
01050 # collision operations that the grasping pipeline deems necessary. Should be used\n\
01051 # with care and only if special behaviors are desired\n\
01052 arm_navigation_msgs/OrderedCollisionOperations additional_collision_operations\n\
01053 \n\
01054 # OPTIONAL (These will not have to be filled out most of the time)\n\
01055 # additional link paddings to be used for every arm movement performed\n\
01056 # during grasping. Note that these will be added on top of (and thus overide) other \n\
01057 # link paddings that the grasping pipeline deems necessary. Should be used\n\
01058 # with care and only if special behaviors are desired\n\
01059 arm_navigation_msgs/LinkPadding[] additional_link_padding\n\
01060 \n\
01061 # an optional list of obstacles that we have semantic information about\n\
01062 # and that can be moved in the course of grasping\n\
01063 GraspableObject[] movable_obstacles\n\
01064 \n\
01065 # the maximum contact force to use while grasping (<=0 to disable)\n\
01066 float32 max_contact_force\n\
01067 \n\
01068 \n\
01069 ================================================================================\n\
01070 MSG: object_manipulation_msgs/GraspableObject\n\
01071 # an object that the object_manipulator can work on\n\
01072 \n\
01073 # a graspable object can be represented in multiple ways. This message\n\
01074 # can contain all of them. Which one is actually used is up to the receiver\n\
01075 # of this message. When adding new representations, one must be careful that\n\
01076 # they have reasonable lightweight defaults indicating that that particular\n\
01077 # representation is not available.\n\
01078 \n\
01079 # the tf frame to be used as a reference frame when combining information from\n\
01080 # the different representations below\n\
01081 string reference_frame_id\n\
01082 \n\
01083 # potential recognition results from a database of models\n\
01084 # all poses are relative to the object reference pose\n\
01085 household_objects_database_msgs/DatabaseModelPose[] potential_models\n\
01086 \n\
01087 # the point cloud itself\n\
01088 sensor_msgs/PointCloud cluster\n\
01089 \n\
01090 # a region of a PointCloud2 of interest\n\
01091 object_manipulation_msgs/SceneRegion region\n\
01092 \n\
01093 # the name that this object has in the collision environment\n\
01094 string collision_name\n\
01095 ================================================================================\n\
01096 MSG: household_objects_database_msgs/DatabaseModelPose\n\
01097 # Informs that a specific model from the Model Database has been \n\
01098 # identified at a certain location\n\
01099 \n\
01100 # the database id of the model\n\
01101 int32 model_id\n\
01102 \n\
01103 # the pose that it can be found in\n\
01104 geometry_msgs/PoseStamped pose\n\
01105 \n\
01106 # a measure of the confidence level in this detection result\n\
01107 float32 confidence\n\
01108 \n\
01109 # the name of the object detector that generated this detection result\n\
01110 string detector_name\n\
01111 \n\
01112 ================================================================================\n\
01113 MSG: geometry_msgs/PoseStamped\n\
01114 # A Pose with reference coordinate frame and timestamp\n\
01115 Header header\n\
01116 Pose pose\n\
01117 \n\
01118 ================================================================================\n\
01119 MSG: std_msgs/Header\n\
01120 # Standard metadata for higher-level stamped data types.\n\
01121 # This is generally used to communicate timestamped data \n\
01122 # in a particular coordinate frame.\n\
01123 # \n\
01124 # sequence ID: consecutively increasing ID \n\
01125 uint32 seq\n\
01126 #Two-integer timestamp that is expressed as:\n\
01127 # * stamp.secs: seconds (stamp_secs) since epoch\n\
01128 # * stamp.nsecs: nanoseconds since stamp_secs\n\
01129 # time-handling sugar is provided by the client library\n\
01130 time stamp\n\
01131 #Frame this data is associated with\n\
01132 # 0: no frame\n\
01133 # 1: global frame\n\
01134 string frame_id\n\
01135 \n\
01136 ================================================================================\n\
01137 MSG: geometry_msgs/Pose\n\
01138 # A representation of pose in free space, composed of postion and orientation. \n\
01139 Point position\n\
01140 Quaternion orientation\n\
01141 \n\
01142 ================================================================================\n\
01143 MSG: geometry_msgs/Point\n\
01144 # This contains the position of a point in free space\n\
01145 float64 x\n\
01146 float64 y\n\
01147 float64 z\n\
01148 \n\
01149 ================================================================================\n\
01150 MSG: geometry_msgs/Quaternion\n\
01151 # This represents an orientation in free space in quaternion form.\n\
01152 \n\
01153 float64 x\n\
01154 float64 y\n\
01155 float64 z\n\
01156 float64 w\n\
01157 \n\
01158 ================================================================================\n\
01159 MSG: sensor_msgs/PointCloud\n\
01160 # This message holds a collection of 3d points, plus optional additional\n\
01161 # information about each point.\n\
01162 \n\
01163 # Time of sensor data acquisition, coordinate frame ID.\n\
01164 Header header\n\
01165 \n\
01166 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\
01167 # in the frame given in the header.\n\
01168 geometry_msgs/Point32[] points\n\
01169 \n\
01170 # Each channel should have the same number of elements as points array,\n\
01171 # and the data in each channel should correspond 1:1 with each point.\n\
01172 # Channel names in common practice are listed in ChannelFloat32.msg.\n\
01173 ChannelFloat32[] channels\n\
01174 \n\
01175 ================================================================================\n\
01176 MSG: geometry_msgs/Point32\n\
01177 # This contains the position of a point in free space(with 32 bits of precision).\n\
01178 # It is recommeded to use Point wherever possible instead of Point32. \n\
01179 # \n\
01180 # This recommendation is to promote interoperability. \n\
01181 #\n\
01182 # This message is designed to take up less space when sending\n\
01183 # lots of points at once, as in the case of a PointCloud. \n\
01184 \n\
01185 float32 x\n\
01186 float32 y\n\
01187 float32 z\n\
01188 ================================================================================\n\
01189 MSG: sensor_msgs/ChannelFloat32\n\
01190 # This message is used by the PointCloud message to hold optional data\n\
01191 # associated with each point in the cloud. The length of the values\n\
01192 # array should be the same as the length of the points array in the\n\
01193 # PointCloud, and each value should be associated with the corresponding\n\
01194 # point.\n\
01195 \n\
01196 # Channel names in existing practice include:\n\
01197 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\
01198 # This is opposite to usual conventions but remains for\n\
01199 # historical reasons. The newer PointCloud2 message has no\n\
01200 # such problem.\n\
01201 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\
01202 # (R,G,B) values packed into the least significant 24 bits,\n\
01203 # in order.\n\
01204 # \"intensity\" - laser or pixel intensity.\n\
01205 # \"distance\"\n\
01206 \n\
01207 # The channel name should give semantics of the channel (e.g.\n\
01208 # \"intensity\" instead of \"value\").\n\
01209 string name\n\
01210 \n\
01211 # The values array should be 1-1 with the elements of the associated\n\
01212 # PointCloud.\n\
01213 float32[] values\n\
01214 \n\
01215 ================================================================================\n\
01216 MSG: object_manipulation_msgs/SceneRegion\n\
01217 # Point cloud\n\
01218 sensor_msgs/PointCloud2 cloud\n\
01219 \n\
01220 # Indices for the region of interest\n\
01221 int32[] mask\n\
01222 \n\
01223 # One of the corresponding 2D images, if applicable\n\
01224 sensor_msgs/Image image\n\
01225 \n\
01226 # The disparity image, if applicable\n\
01227 sensor_msgs/Image disparity_image\n\
01228 \n\
01229 # Camera info for the camera that took the image\n\
01230 sensor_msgs/CameraInfo cam_info\n\
01231 \n\
01232 # a 3D region of interest for grasp planning\n\
01233 geometry_msgs/PoseStamped roi_box_pose\n\
01234 geometry_msgs/Vector3 roi_box_dims\n\
01235 \n\
01236 ================================================================================\n\
01237 MSG: sensor_msgs/PointCloud2\n\
01238 # This message holds a collection of N-dimensional points, which may\n\
01239 # contain additional information such as normals, intensity, etc. The\n\
01240 # point data is stored as a binary blob, its layout described by the\n\
01241 # contents of the \"fields\" array.\n\
01242 \n\
01243 # The point cloud data may be organized 2d (image-like) or 1d\n\
01244 # (unordered). Point clouds organized as 2d images may be produced by\n\
01245 # camera depth sensors such as stereo or time-of-flight.\n\
01246 \n\
01247 # Time of sensor data acquisition, and the coordinate frame ID (for 3d\n\
01248 # points).\n\
01249 Header header\n\
01250 \n\
01251 # 2D structure of the point cloud. If the cloud is unordered, height is\n\
01252 # 1 and width is the length of the point cloud.\n\
01253 uint32 height\n\
01254 uint32 width\n\
01255 \n\
01256 # Describes the channels and their layout in the binary data blob.\n\
01257 PointField[] fields\n\
01258 \n\
01259 bool is_bigendian # Is this data bigendian?\n\
01260 uint32 point_step # Length of a point in bytes\n\
01261 uint32 row_step # Length of a row in bytes\n\
01262 uint8[] data # Actual point data, size is (row_step*height)\n\
01263 \n\
01264 bool is_dense # True if there are no invalid points\n\
01265 \n\
01266 ================================================================================\n\
01267 MSG: sensor_msgs/PointField\n\
01268 # This message holds the description of one point entry in the\n\
01269 # PointCloud2 message format.\n\
01270 uint8 INT8 = 1\n\
01271 uint8 UINT8 = 2\n\
01272 uint8 INT16 = 3\n\
01273 uint8 UINT16 = 4\n\
01274 uint8 INT32 = 5\n\
01275 uint8 UINT32 = 6\n\
01276 uint8 FLOAT32 = 7\n\
01277 uint8 FLOAT64 = 8\n\
01278 \n\
01279 string name # Name of field\n\
01280 uint32 offset # Offset from start of point struct\n\
01281 uint8 datatype # Datatype enumeration, see above\n\
01282 uint32 count # How many elements in the field\n\
01283 \n\
01284 ================================================================================\n\
01285 MSG: sensor_msgs/Image\n\
01286 # This message contains an uncompressed image\n\
01287 # (0, 0) is at top-left corner of image\n\
01288 #\n\
01289 \n\
01290 Header header # Header timestamp should be acquisition time of image\n\
01291 # Header frame_id should be optical frame of camera\n\
01292 # origin of frame should be optical center of cameara\n\
01293 # +x should point to the right in the image\n\
01294 # +y should point down in the image\n\
01295 # +z should point into to plane of the image\n\
01296 # If the frame_id here and the frame_id of the CameraInfo\n\
01297 # message associated with the image conflict\n\
01298 # the behavior is undefined\n\
01299 \n\
01300 uint32 height # image height, that is, number of rows\n\
01301 uint32 width # image width, that is, number of columns\n\
01302 \n\
01303 # The legal values for encoding are in file src/image_encodings.cpp\n\
01304 # If you want to standardize a new string format, join\n\
01305 # ros-users@lists.sourceforge.net and send an email proposing a new encoding.\n\
01306 \n\
01307 string encoding # Encoding of pixels -- channel meaning, ordering, size\n\
01308 # taken from the list of strings in src/image_encodings.cpp\n\
01309 \n\
01310 uint8 is_bigendian # is this data bigendian?\n\
01311 uint32 step # Full row length in bytes\n\
01312 uint8[] data # actual matrix data, size is (step * rows)\n\
01313 \n\
01314 ================================================================================\n\
01315 MSG: sensor_msgs/CameraInfo\n\
01316 # This message defines meta information for a camera. It should be in a\n\
01317 # camera namespace on topic \"camera_info\" and accompanied by up to five\n\
01318 # image topics named:\n\
01319 #\n\
01320 # image_raw - raw data from the camera driver, possibly Bayer encoded\n\
01321 # image - monochrome, distorted\n\
01322 # image_color - color, distorted\n\
01323 # image_rect - monochrome, rectified\n\
01324 # image_rect_color - color, rectified\n\
01325 #\n\
01326 # The image_pipeline contains packages (image_proc, stereo_image_proc)\n\
01327 # for producing the four processed image topics from image_raw and\n\
01328 # camera_info. The meaning of the camera parameters are described in\n\
01329 # detail at http://www.ros.org/wiki/image_pipeline/CameraInfo.\n\
01330 #\n\
01331 # The image_geometry package provides a user-friendly interface to\n\
01332 # common operations using this meta information. If you want to, e.g.,\n\
01333 # project a 3d point into image coordinates, we strongly recommend\n\
01334 # using image_geometry.\n\
01335 #\n\
01336 # If the camera is uncalibrated, the matrices D, K, R, P should be left\n\
01337 # zeroed out. In particular, clients may assume that K[0] == 0.0\n\
01338 # indicates an uncalibrated camera.\n\
01339 \n\
01340 #######################################################################\n\
01341 # Image acquisition info #\n\
01342 #######################################################################\n\
01343 \n\
01344 # Time of image acquisition, camera coordinate frame ID\n\
01345 Header header # Header timestamp should be acquisition time of image\n\
01346 # Header frame_id should be optical frame of camera\n\
01347 # origin of frame should be optical center of camera\n\
01348 # +x should point to the right in the image\n\
01349 # +y should point down in the image\n\
01350 # +z should point into the plane of the image\n\
01351 \n\
01352 \n\
01353 #######################################################################\n\
01354 # Calibration Parameters #\n\
01355 #######################################################################\n\
01356 # These are fixed during camera calibration. Their values will be the #\n\
01357 # same in all messages until the camera is recalibrated. Note that #\n\
01358 # self-calibrating systems may \"recalibrate\" frequently. #\n\
01359 # #\n\
01360 # The internal parameters can be used to warp a raw (distorted) image #\n\
01361 # to: #\n\
01362 # 1. An undistorted image (requires D and K) #\n\
01363 # 2. A rectified image (requires D, K, R) #\n\
01364 # The projection matrix P projects 3D points into the rectified image.#\n\
01365 #######################################################################\n\
01366 \n\
01367 # The image dimensions with which the camera was calibrated. Normally\n\
01368 # this will be the full camera resolution in pixels.\n\
01369 uint32 height\n\
01370 uint32 width\n\
01371 \n\
01372 # The distortion model used. Supported models are listed in\n\
01373 # sensor_msgs/distortion_models.h. For most cameras, \"plumb_bob\" - a\n\
01374 # simple model of radial and tangential distortion - is sufficent.\n\
01375 string distortion_model\n\
01376 \n\
01377 # The distortion parameters, size depending on the distortion model.\n\
01378 # For \"plumb_bob\", the 5 parameters are: (k1, k2, t1, t2, k3).\n\
01379 float64[] D\n\
01380 \n\
01381 # Intrinsic camera matrix for the raw (distorted) images.\n\
01382 # [fx 0 cx]\n\
01383 # K = [ 0 fy cy]\n\
01384 # [ 0 0 1]\n\
01385 # Projects 3D points in the camera coordinate frame to 2D pixel\n\
01386 # coordinates using the focal lengths (fx, fy) and principal point\n\
01387 # (cx, cy).\n\
01388 float64[9] K # 3x3 row-major matrix\n\
01389 \n\
01390 # Rectification matrix (stereo cameras only)\n\
01391 # A rotation matrix aligning the camera coordinate system to the ideal\n\
01392 # stereo image plane so that epipolar lines in both stereo images are\n\
01393 # parallel.\n\
01394 float64[9] R # 3x3 row-major matrix\n\
01395 \n\
01396 # Projection/camera matrix\n\
01397 # [fx' 0 cx' Tx]\n\
01398 # P = [ 0 fy' cy' Ty]\n\
01399 # [ 0 0 1 0]\n\
01400 # By convention, this matrix specifies the intrinsic (camera) matrix\n\
01401 # of the processed (rectified) image. That is, the left 3x3 portion\n\
01402 # is the normal camera intrinsic matrix for the rectified image.\n\
01403 # It projects 3D points in the camera coordinate frame to 2D pixel\n\
01404 # coordinates using the focal lengths (fx', fy') and principal point\n\
01405 # (cx', cy') - these may differ from the values in K.\n\
01406 # For monocular cameras, Tx = Ty = 0. Normally, monocular cameras will\n\
01407 # also have R = the identity and P[1:3,1:3] = K.\n\
01408 # For a stereo pair, the fourth column [Tx Ty 0]' is related to the\n\
01409 # position of the optical center of the second camera in the first\n\
01410 # camera's frame. We assume Tz = 0 so both cameras are in the same\n\
01411 # stereo image plane. The first camera always has Tx = Ty = 0. For\n\
01412 # the right (second) camera of a horizontal stereo pair, Ty = 0 and\n\
01413 # Tx = -fx' * B, where B is the baseline between the cameras.\n\
01414 # Given a 3D point [X Y Z]', the projection (x, y) of the point onto\n\
01415 # the rectified image is given by:\n\
01416 # [u v w]' = P * [X Y Z 1]'\n\
01417 # x = u / w\n\
01418 # y = v / w\n\
01419 # This holds for both images of a stereo pair.\n\
01420 float64[12] P # 3x4 row-major matrix\n\
01421 \n\
01422 \n\
01423 #######################################################################\n\
01424 # Operational Parameters #\n\
01425 #######################################################################\n\
01426 # These define the image region actually captured by the camera #\n\
01427 # driver. Although they affect the geometry of the output image, they #\n\
01428 # may be changed freely without recalibrating the camera. #\n\
01429 #######################################################################\n\
01430 \n\
01431 # Binning refers here to any camera setting which combines rectangular\n\
01432 # neighborhoods of pixels into larger \"super-pixels.\" It reduces the\n\
01433 # resolution of the output image to\n\
01434 # (width / binning_x) x (height / binning_y).\n\
01435 # The default values binning_x = binning_y = 0 is considered the same\n\
01436 # as binning_x = binning_y = 1 (no subsampling).\n\
01437 uint32 binning_x\n\
01438 uint32 binning_y\n\
01439 \n\
01440 # Region of interest (subwindow of full camera resolution), given in\n\
01441 # full resolution (unbinned) image coordinates. A particular ROI\n\
01442 # always denotes the same window of pixels on the camera sensor,\n\
01443 # regardless of binning settings.\n\
01444 # The default setting of roi (all values 0) is considered the same as\n\
01445 # full resolution (roi.width = width, roi.height = height).\n\
01446 RegionOfInterest roi\n\
01447 \n\
01448 ================================================================================\n\
01449 MSG: sensor_msgs/RegionOfInterest\n\
01450 # This message is used to specify a region of interest within an image.\n\
01451 #\n\
01452 # When used to specify the ROI setting of the camera when the image was\n\
01453 # taken, the height and width fields should either match the height and\n\
01454 # width fields for the associated image; or height = width = 0\n\
01455 # indicates that the full resolution image was captured.\n\
01456 \n\
01457 uint32 x_offset # Leftmost pixel of the ROI\n\
01458 # (0 if the ROI includes the left edge of the image)\n\
01459 uint32 y_offset # Topmost pixel of the ROI\n\
01460 # (0 if the ROI includes the top edge of the image)\n\
01461 uint32 height # Height of ROI\n\
01462 uint32 width # Width of ROI\n\
01463 \n\
01464 # True if a distinct rectified ROI should be calculated from the \"raw\"\n\
01465 # ROI in this message. Typically this should be False if the full image\n\
01466 # is captured (ROI not used), and True if a subwindow is captured (ROI\n\
01467 # used).\n\
01468 bool do_rectify\n\
01469 \n\
01470 ================================================================================\n\
01471 MSG: geometry_msgs/Vector3\n\
01472 # This represents a vector in free space. \n\
01473 \n\
01474 float64 x\n\
01475 float64 y\n\
01476 float64 z\n\
01477 ================================================================================\n\
01478 MSG: object_manipulation_msgs/Grasp\n\
01479 \n\
01480 # The internal posture of the hand for the pre-grasp\n\
01481 # only positions are used\n\
01482 sensor_msgs/JointState pre_grasp_posture\n\
01483 \n\
01484 # The internal posture of the hand for the grasp\n\
01485 # positions and efforts are used\n\
01486 sensor_msgs/JointState grasp_posture\n\
01487 \n\
01488 # The position of the end-effector for the grasp relative to a reference frame \n\
01489 # (that is always specified elsewhere, not in this message)\n\
01490 geometry_msgs/Pose grasp_pose\n\
01491 \n\
01492 # The estimated probability of success for this grasp\n\
01493 float64 success_probability\n\
01494 \n\
01495 # Debug flag to indicate that this grasp would be the best in its cluster\n\
01496 bool cluster_rep\n\
01497 \n\
01498 # how far the pre-grasp should ideally be away from the grasp\n\
01499 float32 desired_approach_distance\n\
01500 \n\
01501 # how much distance between pre-grasp and grasp must actually be feasible \n\
01502 # for the grasp not to be rejected\n\
01503 float32 min_approach_distance\n\
01504 \n\
01505 # an optional list of obstacles that we have semantic information about\n\
01506 # and that we expect might move in the course of executing this grasp\n\
01507 # the grasp planner is expected to make sure they move in an OK way; during\n\
01508 # execution, grasp executors will not check for collisions against these objects\n\
01509 GraspableObject[] moved_obstacles\n\
01510 \n\
01511 ================================================================================\n\
01512 MSG: sensor_msgs/JointState\n\
01513 # This is a message that holds data to describe the state of a set of torque controlled joints. \n\
01514 #\n\
01515 # The state of each joint (revolute or prismatic) is defined by:\n\
01516 # * the position of the joint (rad or m),\n\
01517 # * the velocity of the joint (rad/s or m/s) and \n\
01518 # * the effort that is applied in the joint (Nm or N).\n\
01519 #\n\
01520 # Each joint is uniquely identified by its name\n\
01521 # The header specifies the time at which the joint states were recorded. All the joint states\n\
01522 # in one message have to be recorded at the same time.\n\
01523 #\n\
01524 # This message consists of a multiple arrays, one for each part of the joint state. \n\
01525 # The goal is to make each of the fields optional. When e.g. your joints have no\n\
01526 # effort associated with them, you can leave the effort array empty. \n\
01527 #\n\
01528 # All arrays in this message should have the same size, or be empty.\n\
01529 # This is the only way to uniquely associate the joint name with the correct\n\
01530 # states.\n\
01531 \n\
01532 \n\
01533 Header header\n\
01534 \n\
01535 string[] name\n\
01536 float64[] position\n\
01537 float64[] velocity\n\
01538 float64[] effort\n\
01539 \n\
01540 ================================================================================\n\
01541 MSG: object_manipulation_msgs/GripperTranslation\n\
01542 # defines a translation for the gripper, used in pickup or place tasks\n\
01543 # for example for lifting an object off a table or approaching the table for placing\n\
01544 \n\
01545 # the direction of the translation\n\
01546 geometry_msgs/Vector3Stamped direction\n\
01547 \n\
01548 # the desired translation distance\n\
01549 float32 desired_distance\n\
01550 \n\
01551 # the min distance that must be considered feasible before the\n\
01552 # grasp is even attempted\n\
01553 float32 min_distance\n\
01554 ================================================================================\n\
01555 MSG: geometry_msgs/Vector3Stamped\n\
01556 # This represents a Vector3 with reference coordinate frame and timestamp\n\
01557 Header header\n\
01558 Vector3 vector\n\
01559 \n\
01560 ================================================================================\n\
01561 MSG: arm_navigation_msgs/Constraints\n\
01562 # This message contains a list of motion planning constraints.\n\
01563 \n\
01564 arm_navigation_msgs/JointConstraint[] joint_constraints\n\
01565 arm_navigation_msgs/PositionConstraint[] position_constraints\n\
01566 arm_navigation_msgs/OrientationConstraint[] orientation_constraints\n\
01567 arm_navigation_msgs/VisibilityConstraint[] visibility_constraints\n\
01568 \n\
01569 ================================================================================\n\
01570 MSG: arm_navigation_msgs/JointConstraint\n\
01571 # Constrain the position of a joint to be within a certain bound\n\
01572 string joint_name\n\
01573 \n\
01574 # the bound to be achieved is [position - tolerance_below, position + tolerance_above]\n\
01575 float64 position\n\
01576 float64 tolerance_above\n\
01577 float64 tolerance_below\n\
01578 \n\
01579 # A weighting factor for this constraint\n\
01580 float64 weight\n\
01581 ================================================================================\n\
01582 MSG: arm_navigation_msgs/PositionConstraint\n\
01583 # This message contains the definition of a position constraint.\n\
01584 Header header\n\
01585 \n\
01586 # The robot link this constraint refers to\n\
01587 string link_name\n\
01588 \n\
01589 # The offset (in the link frame) for the target point on the link we are planning for\n\
01590 geometry_msgs/Point target_point_offset\n\
01591 \n\
01592 # The nominal/target position for the point we are planning for\n\
01593 geometry_msgs/Point position\n\
01594 \n\
01595 # The shape of the bounded region that constrains the position of the end-effector\n\
01596 # This region is always centered at the position defined above\n\
01597 arm_navigation_msgs/Shape constraint_region_shape\n\
01598 \n\
01599 # The orientation of the bounded region that constrains the position of the end-effector. \n\
01600 # This allows the specification of non-axis aligned constraints\n\
01601 geometry_msgs/Quaternion constraint_region_orientation\n\
01602 \n\
01603 # Constraint weighting factor - a weight for this constraint\n\
01604 float64 weight\n\
01605 \n\
01606 ================================================================================\n\
01607 MSG: arm_navigation_msgs/Shape\n\
01608 byte SPHERE=0\n\
01609 byte BOX=1\n\
01610 byte CYLINDER=2\n\
01611 byte MESH=3\n\
01612 \n\
01613 byte type\n\
01614 \n\
01615 \n\
01616 #### define sphere, box, cylinder ####\n\
01617 # the origin of each shape is considered at the shape's center\n\
01618 \n\
01619 # for sphere\n\
01620 # radius := dimensions[0]\n\
01621 \n\
01622 # for cylinder\n\
01623 # radius := dimensions[0]\n\
01624 # length := dimensions[1]\n\
01625 # the length is along the Z axis\n\
01626 \n\
01627 # for box\n\
01628 # size_x := dimensions[0]\n\
01629 # size_y := dimensions[1]\n\
01630 # size_z := dimensions[2]\n\
01631 float64[] dimensions\n\
01632 \n\
01633 \n\
01634 #### define mesh ####\n\
01635 \n\
01636 # list of triangles; triangle k is defined by tre vertices located\n\
01637 # at indices triangles[3k], triangles[3k+1], triangles[3k+2]\n\
01638 int32[] triangles\n\
01639 geometry_msgs/Point[] vertices\n\
01640 \n\
01641 ================================================================================\n\
01642 MSG: arm_navigation_msgs/OrientationConstraint\n\
01643 # This message contains the definition of an orientation constraint.\n\
01644 Header header\n\
01645 \n\
01646 # The robot link this constraint refers to\n\
01647 string link_name\n\
01648 \n\
01649 # The type of the constraint\n\
01650 int32 type\n\
01651 int32 LINK_FRAME=0\n\
01652 int32 HEADER_FRAME=1\n\
01653 \n\
01654 # The desired orientation of the robot link specified as a quaternion\n\
01655 geometry_msgs/Quaternion orientation\n\
01656 \n\
01657 # optional RPY error tolerances specified if \n\
01658 float64 absolute_roll_tolerance\n\
01659 float64 absolute_pitch_tolerance\n\
01660 float64 absolute_yaw_tolerance\n\
01661 \n\
01662 # Constraint weighting factor - a weight for this constraint\n\
01663 float64 weight\n\
01664 \n\
01665 ================================================================================\n\
01666 MSG: arm_navigation_msgs/VisibilityConstraint\n\
01667 # This message contains the definition of a visibility constraint.\n\
01668 Header header\n\
01669 \n\
01670 # The point stamped target that needs to be kept within view of the sensor\n\
01671 geometry_msgs/PointStamped target\n\
01672 \n\
01673 # The local pose of the frame in which visibility is to be maintained\n\
01674 # The frame id should represent the robot link to which the sensor is attached\n\
01675 # The visual axis of the sensor is assumed to be along the X axis of this frame\n\
01676 geometry_msgs/PoseStamped sensor_pose\n\
01677 \n\
01678 # The deviation (in radians) that will be tolerated\n\
01679 # Constraint error will be measured as the solid angle between the \n\
01680 # X axis of the frame defined above and the vector between the origin \n\
01681 # of the frame defined above and the target location\n\
01682 float64 absolute_tolerance\n\
01683 \n\
01684 \n\
01685 ================================================================================\n\
01686 MSG: geometry_msgs/PointStamped\n\
01687 # This represents a Point with reference coordinate frame and timestamp\n\
01688 Header header\n\
01689 Point point\n\
01690 \n\
01691 ================================================================================\n\
01692 MSG: arm_navigation_msgs/OrderedCollisionOperations\n\
01693 # A set of collision operations that will be performed in the order they are specified\n\
01694 CollisionOperation[] collision_operations\n\
01695 ================================================================================\n\
01696 MSG: arm_navigation_msgs/CollisionOperation\n\
01697 # A definition of a collision operation\n\
01698 # E.g. (\"gripper\",COLLISION_SET_ALL,ENABLE) will enable collisions \n\
01699 # between the gripper and all objects in the collision space\n\
01700 \n\
01701 string object1\n\
01702 string object2\n\
01703 string COLLISION_SET_ALL=\"all\"\n\
01704 string COLLISION_SET_OBJECTS=\"objects\"\n\
01705 string COLLISION_SET_ATTACHED_OBJECTS=\"attached\"\n\
01706 \n\
01707 # The penetration distance to which collisions are allowed. This is 0.0 by default.\n\
01708 float64 penetration_distance\n\
01709 \n\
01710 # Flag that determines whether collisions will be enabled or disabled for the pair of objects specified above\n\
01711 int32 operation\n\
01712 int32 DISABLE=0\n\
01713 int32 ENABLE=1\n\
01714 \n\
01715 ================================================================================\n\
01716 MSG: arm_navigation_msgs/LinkPadding\n\
01717 #name for the link\n\
01718 string link_name\n\
01719 \n\
01720 # padding to apply to the link\n\
01721 float64 padding\n\
01722 \n\
01723 ";
01724 }
01725
01726 static const char* value(const ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> &) { return value(); }
01727 };
01728
01729 }
01730 }
01731
01732 namespace ros
01733 {
01734 namespace serialization
01735 {
01736
01737 template<class ContainerAllocator> struct Serializer< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> >
01738 {
01739 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
01740 {
01741 stream.next(m.arm_name);
01742 stream.next(m.target);
01743 stream.next(m.desired_grasps);
01744 stream.next(m.lift);
01745 stream.next(m.collision_object_name);
01746 stream.next(m.collision_support_surface_name);
01747 stream.next(m.allow_gripper_support_collision);
01748 stream.next(m.use_reactive_execution);
01749 stream.next(m.use_reactive_lift);
01750 stream.next(m.only_perform_feasibility_test);
01751 stream.next(m.ignore_collisions);
01752 stream.next(m.path_constraints);
01753 stream.next(m.additional_collision_operations);
01754 stream.next(m.additional_link_padding);
01755 stream.next(m.movable_obstacles);
01756 stream.next(m.max_contact_force);
01757 }
01758
01759 ROS_DECLARE_ALLINONE_SERIALIZER;
01760 };
01761 }
01762 }
01763
01764 namespace ros
01765 {
01766 namespace message_operations
01767 {
01768
01769 template<class ContainerAllocator>
01770 struct Printer< ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> >
01771 {
01772 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::object_manipulation_msgs::PickupGoal_<ContainerAllocator> & v)
01773 {
01774 s << indent << "arm_name: ";
01775 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.arm_name);
01776 s << indent << "target: ";
01777 s << std::endl;
01778 Printer< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> >::stream(s, indent + " ", v.target);
01779 s << indent << "desired_grasps[]" << std::endl;
01780 for (size_t i = 0; i < v.desired_grasps.size(); ++i)
01781 {
01782 s << indent << " desired_grasps[" << i << "]: ";
01783 s << std::endl;
01784 s << indent;
01785 Printer< ::object_manipulation_msgs::Grasp_<ContainerAllocator> >::stream(s, indent + " ", v.desired_grasps[i]);
01786 }
01787 s << indent << "lift: ";
01788 s << std::endl;
01789 Printer< ::object_manipulation_msgs::GripperTranslation_<ContainerAllocator> >::stream(s, indent + " ", v.lift);
01790 s << indent << "collision_object_name: ";
01791 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.collision_object_name);
01792 s << indent << "collision_support_surface_name: ";
01793 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.collision_support_surface_name);
01794 s << indent << "allow_gripper_support_collision: ";
01795 Printer<uint8_t>::stream(s, indent + " ", v.allow_gripper_support_collision);
01796 s << indent << "use_reactive_execution: ";
01797 Printer<uint8_t>::stream(s, indent + " ", v.use_reactive_execution);
01798 s << indent << "use_reactive_lift: ";
01799 Printer<uint8_t>::stream(s, indent + " ", v.use_reactive_lift);
01800 s << indent << "only_perform_feasibility_test: ";
01801 Printer<uint8_t>::stream(s, indent + " ", v.only_perform_feasibility_test);
01802 s << indent << "ignore_collisions: ";
01803 Printer<uint8_t>::stream(s, indent + " ", v.ignore_collisions);
01804 s << indent << "path_constraints: ";
01805 s << std::endl;
01806 Printer< ::arm_navigation_msgs::Constraints_<ContainerAllocator> >::stream(s, indent + " ", v.path_constraints);
01807 s << indent << "additional_collision_operations: ";
01808 s << std::endl;
01809 Printer< ::arm_navigation_msgs::OrderedCollisionOperations_<ContainerAllocator> >::stream(s, indent + " ", v.additional_collision_operations);
01810 s << indent << "additional_link_padding[]" << std::endl;
01811 for (size_t i = 0; i < v.additional_link_padding.size(); ++i)
01812 {
01813 s << indent << " additional_link_padding[" << i << "]: ";
01814 s << std::endl;
01815 s << indent;
01816 Printer< ::arm_navigation_msgs::LinkPadding_<ContainerAllocator> >::stream(s, indent + " ", v.additional_link_padding[i]);
01817 }
01818 s << indent << "movable_obstacles[]" << std::endl;
01819 for (size_t i = 0; i < v.movable_obstacles.size(); ++i)
01820 {
01821 s << indent << " movable_obstacles[" << i << "]: ";
01822 s << std::endl;
01823 s << indent;
01824 Printer< ::object_manipulation_msgs::GraspableObject_<ContainerAllocator> >::stream(s, indent + " ", v.movable_obstacles[i]);
01825 }
01826 s << indent << "max_contact_force: ";
01827 Printer<float>::stream(s, indent + " ", v.max_contact_force);
01828 }
01829 };
01830
01831
01832 }
01833 }
01834
01835 #endif // OBJECT_MANIPULATION_MSGS_MESSAGE_PICKUPGOAL_H
01836