00001
00002 #ifndef OBJECT_MANIPULATION_MSGS_MESSAGE_PLACERESULT_H
00003 #define OBJECT_MANIPULATION_MSGS_MESSAGE_PLACERESULT_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 "object_manipulation_msgs/ManipulationResult.h"
00014 #include "geometry_msgs/PoseStamped.h"
00015 #include "geometry_msgs/PoseStamped.h"
00016 #include "object_manipulation_msgs/PlaceLocationResult.h"
00017
00018 namespace object_manipulation_msgs
00019 {
00020 template <class ContainerAllocator>
00021 struct PlaceResult_ : public ros::Message
00022 {
00023 typedef PlaceResult_<ContainerAllocator> Type;
00024
00025 PlaceResult_()
00026 : manipulation_result()
00027 , place_location()
00028 , attempted_locations()
00029 , attempted_location_results()
00030 {
00031 }
00032
00033 PlaceResult_(const ContainerAllocator& _alloc)
00034 : manipulation_result(_alloc)
00035 , place_location(_alloc)
00036 , attempted_locations(_alloc)
00037 , attempted_location_results(_alloc)
00038 {
00039 }
00040
00041 typedef ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> _manipulation_result_type;
00042 ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> manipulation_result;
00043
00044 typedef ::geometry_msgs::PoseStamped_<ContainerAllocator> _place_location_type;
00045 ::geometry_msgs::PoseStamped_<ContainerAllocator> place_location;
00046
00047 typedef std::vector< ::geometry_msgs::PoseStamped_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::other > _attempted_locations_type;
00048 std::vector< ::geometry_msgs::PoseStamped_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::other > attempted_locations;
00049
00050 typedef std::vector< ::object_manipulation_msgs::PlaceLocationResult_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::PlaceLocationResult_<ContainerAllocator> >::other > _attempted_location_results_type;
00051 std::vector< ::object_manipulation_msgs::PlaceLocationResult_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::PlaceLocationResult_<ContainerAllocator> >::other > attempted_location_results;
00052
00053
00054 ROS_DEPRECATED uint32_t get_attempted_locations_size() const { return (uint32_t)attempted_locations.size(); }
00055 ROS_DEPRECATED void set_attempted_locations_size(uint32_t size) { attempted_locations.resize((size_t)size); }
00056 ROS_DEPRECATED void get_attempted_locations_vec(std::vector< ::geometry_msgs::PoseStamped_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::other > & vec) const { vec = this->attempted_locations; }
00057 ROS_DEPRECATED void set_attempted_locations_vec(const std::vector< ::geometry_msgs::PoseStamped_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::other > & vec) { this->attempted_locations = vec; }
00058 ROS_DEPRECATED uint32_t get_attempted_location_results_size() const { return (uint32_t)attempted_location_results.size(); }
00059 ROS_DEPRECATED void set_attempted_location_results_size(uint32_t size) { attempted_location_results.resize((size_t)size); }
00060 ROS_DEPRECATED void get_attempted_location_results_vec(std::vector< ::object_manipulation_msgs::PlaceLocationResult_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::PlaceLocationResult_<ContainerAllocator> >::other > & vec) const { vec = this->attempted_location_results; }
00061 ROS_DEPRECATED void set_attempted_location_results_vec(const std::vector< ::object_manipulation_msgs::PlaceLocationResult_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::object_manipulation_msgs::PlaceLocationResult_<ContainerAllocator> >::other > & vec) { this->attempted_location_results = vec; }
00062 private:
00063 static const char* __s_getDataType_() { return "object_manipulation_msgs/PlaceResult"; }
00064 public:
00065 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00066
00067 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00068
00069 private:
00070 static const char* __s_getMD5Sum_() { return "531ddb04b8422b6734fb74421d431059"; }
00071 public:
00072 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00073
00074 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00075
00076 private:
00077 static const char* __s_getMessageDefinition_() { return "# The result of the pickup attempt\n\
00078 ManipulationResult manipulation_result\n\
00079 \n\
00080 # The successful place location, if any\n\
00081 geometry_msgs/PoseStamped place_location\n\
00082 \n\
00083 # the list of attempted locations, in the order in which they were attempted\n\
00084 # the successful one should be the last one in this list\n\
00085 geometry_msgs/PoseStamped[] attempted_locations\n\
00086 \n\
00087 # the outcomes of the attempted locations, in the same order as attempted_locations\n\
00088 PlaceLocationResult[] attempted_location_results\n\
00089 ================================================================================\n\
00090 MSG: object_manipulation_msgs/ManipulationResult\n\
00091 # Result codes for manipulation tasks\n\
00092 \n\
00093 # task completed as expected\n\
00094 # generally means you can proceed as planned\n\
00095 int32 SUCCESS = 1\n\
00096 \n\
00097 # task not possible (e.g. out of reach or obstacles in the way)\n\
00098 # generally means that the world was not disturbed, so you can try another task\n\
00099 int32 UNFEASIBLE = -1\n\
00100 \n\
00101 # task was thought possible, but failed due to unexpected events during execution\n\
00102 # it is likely that the world was disturbed, so you are encouraged to refresh\n\
00103 # your sensed world model before proceeding to another task\n\
00104 int32 FAILED = -2\n\
00105 \n\
00106 # a lower level error prevented task completion (e.g. joint controller not responding)\n\
00107 # generally requires human attention\n\
00108 int32 ERROR = -3\n\
00109 \n\
00110 # means that at some point during execution we ended up in a state that the collision-aware\n\
00111 # arm navigation module will not move out of. The world was likely not disturbed, but you \n\
00112 # probably need a new collision map to move the arm out of the stuck position\n\
00113 int32 ARM_MOVEMENT_PREVENTED = -4\n\
00114 \n\
00115 # specific to grasp actions\n\
00116 # the object was grasped successfully, but the lift attempt could not achieve the minimum lift distance requested\n\
00117 # it is likely that the collision environment will see collisions between the hand/object and the support surface\n\
00118 int32 LIFT_FAILED = -5\n\
00119 \n\
00120 # specific to place actions\n\
00121 # the object was placed successfully, but the retreat attempt could not achieve the minimum retreat distance requested\n\
00122 # it is likely that the collision environment will see collisions between the hand and the object\n\
00123 int32 RETREAT_FAILED = -6\n\
00124 \n\
00125 # indicates that somewhere along the line a human said \"wait, stop, this is bad, go back and do something else\"\n\
00126 int32 CANCELLED = -7\n\
00127 \n\
00128 # the actual value of this error code\n\
00129 int32 value\n\
00130 \n\
00131 ================================================================================\n\
00132 MSG: geometry_msgs/PoseStamped\n\
00133 # A Pose with reference coordinate frame and timestamp\n\
00134 Header header\n\
00135 Pose pose\n\
00136 \n\
00137 ================================================================================\n\
00138 MSG: std_msgs/Header\n\
00139 # Standard metadata for higher-level stamped data types.\n\
00140 # This is generally used to communicate timestamped data \n\
00141 # in a particular coordinate frame.\n\
00142 # \n\
00143 # sequence ID: consecutively increasing ID \n\
00144 uint32 seq\n\
00145 #Two-integer timestamp that is expressed as:\n\
00146 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00147 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00148 # time-handling sugar is provided by the client library\n\
00149 time stamp\n\
00150 #Frame this data is associated with\n\
00151 # 0: no frame\n\
00152 # 1: global frame\n\
00153 string frame_id\n\
00154 \n\
00155 ================================================================================\n\
00156 MSG: geometry_msgs/Pose\n\
00157 # A representation of pose in free space, composed of postion and orientation. \n\
00158 Point position\n\
00159 Quaternion orientation\n\
00160 \n\
00161 ================================================================================\n\
00162 MSG: geometry_msgs/Point\n\
00163 # This contains the position of a point in free space\n\
00164 float64 x\n\
00165 float64 y\n\
00166 float64 z\n\
00167 \n\
00168 ================================================================================\n\
00169 MSG: geometry_msgs/Quaternion\n\
00170 # This represents an orientation in free space in quaternion form.\n\
00171 \n\
00172 float64 x\n\
00173 float64 y\n\
00174 float64 z\n\
00175 float64 w\n\
00176 \n\
00177 ================================================================================\n\
00178 MSG: object_manipulation_msgs/PlaceLocationResult\n\
00179 int32 SUCCESS = 1\n\
00180 int32 PLACE_OUT_OF_REACH = 2\n\
00181 int32 PLACE_IN_COLLISION = 3\n\
00182 int32 PLACE_UNFEASIBLE = 4\n\
00183 int32 PREPLACE_OUT_OF_REACH = 5\n\
00184 int32 PREPLACE_IN_COLLISION = 6\n\
00185 int32 PREPLACE_UNFEASIBLE = 7\n\
00186 int32 RETREAT_OUT_OF_REACH = 8\n\
00187 int32 RETREAT_IN_COLLISION = 9\n\
00188 int32 RETREAT_UNFEASIBLE = 10\n\
00189 int32 MOVE_ARM_FAILED = 11\n\
00190 int32 PLACE_FAILED = 12\n\
00191 int32 RETREAT_FAILED = 13\n\
00192 int32 result_code\n\
00193 \n\
00194 # whether the state of the world was disturbed by this attempt. generally, this flag\n\
00195 # shows if another task can be attempted, or a new sensed world model is recommeded\n\
00196 # before proceeding\n\
00197 bool continuation_possible\n\
00198 \n\
00199 "; }
00200 public:
00201 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00202
00203 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00204
00205 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00206 {
00207 ros::serialization::OStream stream(write_ptr, 1000000000);
00208 ros::serialization::serialize(stream, manipulation_result);
00209 ros::serialization::serialize(stream, place_location);
00210 ros::serialization::serialize(stream, attempted_locations);
00211 ros::serialization::serialize(stream, attempted_location_results);
00212 return stream.getData();
00213 }
00214
00215 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00216 {
00217 ros::serialization::IStream stream(read_ptr, 1000000000);
00218 ros::serialization::deserialize(stream, manipulation_result);
00219 ros::serialization::deserialize(stream, place_location);
00220 ros::serialization::deserialize(stream, attempted_locations);
00221 ros::serialization::deserialize(stream, attempted_location_results);
00222 return stream.getData();
00223 }
00224
00225 ROS_DEPRECATED virtual uint32_t serializationLength() const
00226 {
00227 uint32_t size = 0;
00228 size += ros::serialization::serializationLength(manipulation_result);
00229 size += ros::serialization::serializationLength(place_location);
00230 size += ros::serialization::serializationLength(attempted_locations);
00231 size += ros::serialization::serializationLength(attempted_location_results);
00232 return size;
00233 }
00234
00235 typedef boost::shared_ptr< ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> > Ptr;
00236 typedef boost::shared_ptr< ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> const> ConstPtr;
00237 };
00238 typedef ::object_manipulation_msgs::PlaceResult_<std::allocator<void> > PlaceResult;
00239
00240 typedef boost::shared_ptr< ::object_manipulation_msgs::PlaceResult> PlaceResultPtr;
00241 typedef boost::shared_ptr< ::object_manipulation_msgs::PlaceResult const> PlaceResultConstPtr;
00242
00243
00244 template<typename ContainerAllocator>
00245 std::ostream& operator<<(std::ostream& s, const ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> & v)
00246 {
00247 ros::message_operations::Printer< ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> >::stream(s, "", v);
00248 return s;}
00249
00250 }
00251
00252 namespace ros
00253 {
00254 namespace message_traits
00255 {
00256 template<class ContainerAllocator>
00257 struct MD5Sum< ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> > {
00258 static const char* value()
00259 {
00260 return "531ddb04b8422b6734fb74421d431059";
00261 }
00262
00263 static const char* value(const ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> &) { return value(); }
00264 static const uint64_t static_value1 = 0x531ddb04b8422b67ULL;
00265 static const uint64_t static_value2 = 0x34fb74421d431059ULL;
00266 };
00267
00268 template<class ContainerAllocator>
00269 struct DataType< ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> > {
00270 static const char* value()
00271 {
00272 return "object_manipulation_msgs/PlaceResult";
00273 }
00274
00275 static const char* value(const ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> &) { return value(); }
00276 };
00277
00278 template<class ContainerAllocator>
00279 struct Definition< ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> > {
00280 static const char* value()
00281 {
00282 return "# The result of the pickup attempt\n\
00283 ManipulationResult manipulation_result\n\
00284 \n\
00285 # The successful place location, if any\n\
00286 geometry_msgs/PoseStamped place_location\n\
00287 \n\
00288 # the list of attempted locations, in the order in which they were attempted\n\
00289 # the successful one should be the last one in this list\n\
00290 geometry_msgs/PoseStamped[] attempted_locations\n\
00291 \n\
00292 # the outcomes of the attempted locations, in the same order as attempted_locations\n\
00293 PlaceLocationResult[] attempted_location_results\n\
00294 ================================================================================\n\
00295 MSG: object_manipulation_msgs/ManipulationResult\n\
00296 # Result codes for manipulation tasks\n\
00297 \n\
00298 # task completed as expected\n\
00299 # generally means you can proceed as planned\n\
00300 int32 SUCCESS = 1\n\
00301 \n\
00302 # task not possible (e.g. out of reach or obstacles in the way)\n\
00303 # generally means that the world was not disturbed, so you can try another task\n\
00304 int32 UNFEASIBLE = -1\n\
00305 \n\
00306 # task was thought possible, but failed due to unexpected events during execution\n\
00307 # it is likely that the world was disturbed, so you are encouraged to refresh\n\
00308 # your sensed world model before proceeding to another task\n\
00309 int32 FAILED = -2\n\
00310 \n\
00311 # a lower level error prevented task completion (e.g. joint controller not responding)\n\
00312 # generally requires human attention\n\
00313 int32 ERROR = -3\n\
00314 \n\
00315 # means that at some point during execution we ended up in a state that the collision-aware\n\
00316 # arm navigation module will not move out of. The world was likely not disturbed, but you \n\
00317 # probably need a new collision map to move the arm out of the stuck position\n\
00318 int32 ARM_MOVEMENT_PREVENTED = -4\n\
00319 \n\
00320 # specific to grasp actions\n\
00321 # the object was grasped successfully, but the lift attempt could not achieve the minimum lift distance requested\n\
00322 # it is likely that the collision environment will see collisions between the hand/object and the support surface\n\
00323 int32 LIFT_FAILED = -5\n\
00324 \n\
00325 # specific to place actions\n\
00326 # the object was placed successfully, but the retreat attempt could not achieve the minimum retreat distance requested\n\
00327 # it is likely that the collision environment will see collisions between the hand and the object\n\
00328 int32 RETREAT_FAILED = -6\n\
00329 \n\
00330 # indicates that somewhere along the line a human said \"wait, stop, this is bad, go back and do something else\"\n\
00331 int32 CANCELLED = -7\n\
00332 \n\
00333 # the actual value of this error code\n\
00334 int32 value\n\
00335 \n\
00336 ================================================================================\n\
00337 MSG: geometry_msgs/PoseStamped\n\
00338 # A Pose with reference coordinate frame and timestamp\n\
00339 Header header\n\
00340 Pose pose\n\
00341 \n\
00342 ================================================================================\n\
00343 MSG: std_msgs/Header\n\
00344 # Standard metadata for higher-level stamped data types.\n\
00345 # This is generally used to communicate timestamped data \n\
00346 # in a particular coordinate frame.\n\
00347 # \n\
00348 # sequence ID: consecutively increasing ID \n\
00349 uint32 seq\n\
00350 #Two-integer timestamp that is expressed as:\n\
00351 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00352 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00353 # time-handling sugar is provided by the client library\n\
00354 time stamp\n\
00355 #Frame this data is associated with\n\
00356 # 0: no frame\n\
00357 # 1: global frame\n\
00358 string frame_id\n\
00359 \n\
00360 ================================================================================\n\
00361 MSG: geometry_msgs/Pose\n\
00362 # A representation of pose in free space, composed of postion and orientation. \n\
00363 Point position\n\
00364 Quaternion orientation\n\
00365 \n\
00366 ================================================================================\n\
00367 MSG: geometry_msgs/Point\n\
00368 # This contains the position of a point in free space\n\
00369 float64 x\n\
00370 float64 y\n\
00371 float64 z\n\
00372 \n\
00373 ================================================================================\n\
00374 MSG: geometry_msgs/Quaternion\n\
00375 # This represents an orientation in free space in quaternion form.\n\
00376 \n\
00377 float64 x\n\
00378 float64 y\n\
00379 float64 z\n\
00380 float64 w\n\
00381 \n\
00382 ================================================================================\n\
00383 MSG: object_manipulation_msgs/PlaceLocationResult\n\
00384 int32 SUCCESS = 1\n\
00385 int32 PLACE_OUT_OF_REACH = 2\n\
00386 int32 PLACE_IN_COLLISION = 3\n\
00387 int32 PLACE_UNFEASIBLE = 4\n\
00388 int32 PREPLACE_OUT_OF_REACH = 5\n\
00389 int32 PREPLACE_IN_COLLISION = 6\n\
00390 int32 PREPLACE_UNFEASIBLE = 7\n\
00391 int32 RETREAT_OUT_OF_REACH = 8\n\
00392 int32 RETREAT_IN_COLLISION = 9\n\
00393 int32 RETREAT_UNFEASIBLE = 10\n\
00394 int32 MOVE_ARM_FAILED = 11\n\
00395 int32 PLACE_FAILED = 12\n\
00396 int32 RETREAT_FAILED = 13\n\
00397 int32 result_code\n\
00398 \n\
00399 # whether the state of the world was disturbed by this attempt. generally, this flag\n\
00400 # shows if another task can be attempted, or a new sensed world model is recommeded\n\
00401 # before proceeding\n\
00402 bool continuation_possible\n\
00403 \n\
00404 ";
00405 }
00406
00407 static const char* value(const ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> &) { return value(); }
00408 };
00409
00410 }
00411 }
00412
00413 namespace ros
00414 {
00415 namespace serialization
00416 {
00417
00418 template<class ContainerAllocator> struct Serializer< ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> >
00419 {
00420 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00421 {
00422 stream.next(m.manipulation_result);
00423 stream.next(m.place_location);
00424 stream.next(m.attempted_locations);
00425 stream.next(m.attempted_location_results);
00426 }
00427
00428 ROS_DECLARE_ALLINONE_SERIALIZER;
00429 };
00430 }
00431 }
00432
00433 namespace ros
00434 {
00435 namespace message_operations
00436 {
00437
00438 template<class ContainerAllocator>
00439 struct Printer< ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> >
00440 {
00441 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::object_manipulation_msgs::PlaceResult_<ContainerAllocator> & v)
00442 {
00443 s << indent << "manipulation_result: ";
00444 s << std::endl;
00445 Printer< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> >::stream(s, indent + " ", v.manipulation_result);
00446 s << indent << "place_location: ";
00447 s << std::endl;
00448 Printer< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::stream(s, indent + " ", v.place_location);
00449 s << indent << "attempted_locations[]" << std::endl;
00450 for (size_t i = 0; i < v.attempted_locations.size(); ++i)
00451 {
00452 s << indent << " attempted_locations[" << i << "]: ";
00453 s << std::endl;
00454 s << indent;
00455 Printer< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::stream(s, indent + " ", v.attempted_locations[i]);
00456 }
00457 s << indent << "attempted_location_results[]" << std::endl;
00458 for (size_t i = 0; i < v.attempted_location_results.size(); ++i)
00459 {
00460 s << indent << " attempted_location_results[" << i << "]: ";
00461 s << std::endl;
00462 s << indent;
00463 Printer< ::object_manipulation_msgs::PlaceLocationResult_<ContainerAllocator> >::stream(s, indent + " ", v.attempted_location_results[i]);
00464 }
00465 }
00466 };
00467
00468
00469 }
00470 }
00471
00472 #endif // OBJECT_MANIPULATION_MSGS_MESSAGE_PLACERESULT_H
00473