00001
00002 #ifndef OBJECT_MANIPULATION_MSGS_MESSAGE_MANIPULATIONRESULT_H
00003 #define OBJECT_MANIPULATION_MSGS_MESSAGE_MANIPULATIONRESULT_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
00014 namespace object_manipulation_msgs
00015 {
00016 template <class ContainerAllocator>
00017 struct ManipulationResult_ : public ros::Message
00018 {
00019 typedef ManipulationResult_<ContainerAllocator> Type;
00020
00021 ManipulationResult_()
00022 : value(0)
00023 {
00024 }
00025
00026 ManipulationResult_(const ContainerAllocator& _alloc)
00027 : value(0)
00028 {
00029 }
00030
00031 typedef int32_t _value_type;
00032 int32_t value;
00033
00034 enum { SUCCESS = 1 };
00035 enum { UNFEASIBLE = -1 };
00036 enum { FAILED = -2 };
00037 enum { ERROR = -3 };
00038 enum { ARM_MOVEMENT_PREVENTED = -4 };
00039 enum { LIFT_FAILED = -5 };
00040 enum { RETREAT_FAILED = -6 };
00041 enum { CANCELLED = -7 };
00042
00043 private:
00044 static const char* __s_getDataType_() { return "object_manipulation_msgs/ManipulationResult"; }
00045 public:
00046 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00047
00048 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00049
00050 private:
00051 static const char* __s_getMD5Sum_() { return "85f8d010e045fcb335637fc8fc59184b"; }
00052 public:
00053 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00054
00055 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00056
00057 private:
00058 static const char* __s_getMessageDefinition_() { return "# Result codes for manipulation tasks\n\
00059 \n\
00060 # task completed as expected\n\
00061 # generally means you can proceed as planned\n\
00062 int32 SUCCESS = 1\n\
00063 \n\
00064 # task not possible (e.g. out of reach or obstacles in the way)\n\
00065 # generally means that the world was not disturbed, so you can try another task\n\
00066 int32 UNFEASIBLE = -1\n\
00067 \n\
00068 # task was thought possible, but failed due to unexpected events during execution\n\
00069 # it is likely that the world was disturbed, so you are encouraged to refresh\n\
00070 # your sensed world model before proceeding to another task\n\
00071 int32 FAILED = -2\n\
00072 \n\
00073 # a lower level error prevented task completion (e.g. joint controller not responding)\n\
00074 # generally requires human attention\n\
00075 int32 ERROR = -3\n\
00076 \n\
00077 # means that at some point during execution we ended up in a state that the collision-aware\n\
00078 # arm navigation module will not move out of. The world was likely not disturbed, but you \n\
00079 # probably need a new collision map to move the arm out of the stuck position\n\
00080 int32 ARM_MOVEMENT_PREVENTED = -4\n\
00081 \n\
00082 # specific to grasp actions\n\
00083 # the object was grasped successfully, but the lift attempt could not achieve the minimum lift distance requested\n\
00084 # it is likely that the collision environment will see collisions between the hand/object and the support surface\n\
00085 int32 LIFT_FAILED = -5\n\
00086 \n\
00087 # specific to place actions\n\
00088 # the object was placed successfully, but the retreat attempt could not achieve the minimum retreat distance requested\n\
00089 # it is likely that the collision environment will see collisions between the hand and the object\n\
00090 int32 RETREAT_FAILED = -6\n\
00091 \n\
00092 # indicates that somewhere along the line a human said \"wait, stop, this is bad, go back and do something else\"\n\
00093 int32 CANCELLED = -7\n\
00094 \n\
00095 # the actual value of this error code\n\
00096 int32 value\n\
00097 \n\
00098 "; }
00099 public:
00100 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00101
00102 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00103
00104 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00105 {
00106 ros::serialization::OStream stream(write_ptr, 1000000000);
00107 ros::serialization::serialize(stream, value);
00108 return stream.getData();
00109 }
00110
00111 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00112 {
00113 ros::serialization::IStream stream(read_ptr, 1000000000);
00114 ros::serialization::deserialize(stream, value);
00115 return stream.getData();
00116 }
00117
00118 ROS_DEPRECATED virtual uint32_t serializationLength() const
00119 {
00120 uint32_t size = 0;
00121 size += ros::serialization::serializationLength(value);
00122 return size;
00123 }
00124
00125 typedef boost::shared_ptr< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > Ptr;
00126 typedef boost::shared_ptr< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> const> ConstPtr;
00127 };
00128 typedef ::object_manipulation_msgs::ManipulationResult_<std::allocator<void> > ManipulationResult;
00129
00130 typedef boost::shared_ptr< ::object_manipulation_msgs::ManipulationResult> ManipulationResultPtr;
00131 typedef boost::shared_ptr< ::object_manipulation_msgs::ManipulationResult const> ManipulationResultConstPtr;
00132
00133
00134 template<typename ContainerAllocator>
00135 std::ostream& operator<<(std::ostream& s, const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> & v)
00136 {
00137 ros::message_operations::Printer< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> >::stream(s, "", v);
00138 return s;}
00139
00140 }
00141
00142 namespace ros
00143 {
00144 namespace message_traits
00145 {
00146 template<class ContainerAllocator>
00147 struct MD5Sum< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > {
00148 static const char* value()
00149 {
00150 return "85f8d010e045fcb335637fc8fc59184b";
00151 }
00152
00153 static const char* value(const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> &) { return value(); }
00154 static const uint64_t static_value1 = 0x85f8d010e045fcb3ULL;
00155 static const uint64_t static_value2 = 0x35637fc8fc59184bULL;
00156 };
00157
00158 template<class ContainerAllocator>
00159 struct DataType< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > {
00160 static const char* value()
00161 {
00162 return "object_manipulation_msgs/ManipulationResult";
00163 }
00164
00165 static const char* value(const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> &) { return value(); }
00166 };
00167
00168 template<class ContainerAllocator>
00169 struct Definition< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > {
00170 static const char* value()
00171 {
00172 return "# Result codes for manipulation tasks\n\
00173 \n\
00174 # task completed as expected\n\
00175 # generally means you can proceed as planned\n\
00176 int32 SUCCESS = 1\n\
00177 \n\
00178 # task not possible (e.g. out of reach or obstacles in the way)\n\
00179 # generally means that the world was not disturbed, so you can try another task\n\
00180 int32 UNFEASIBLE = -1\n\
00181 \n\
00182 # task was thought possible, but failed due to unexpected events during execution\n\
00183 # it is likely that the world was disturbed, so you are encouraged to refresh\n\
00184 # your sensed world model before proceeding to another task\n\
00185 int32 FAILED = -2\n\
00186 \n\
00187 # a lower level error prevented task completion (e.g. joint controller not responding)\n\
00188 # generally requires human attention\n\
00189 int32 ERROR = -3\n\
00190 \n\
00191 # means that at some point during execution we ended up in a state that the collision-aware\n\
00192 # arm navigation module will not move out of. The world was likely not disturbed, but you \n\
00193 # probably need a new collision map to move the arm out of the stuck position\n\
00194 int32 ARM_MOVEMENT_PREVENTED = -4\n\
00195 \n\
00196 # specific to grasp actions\n\
00197 # the object was grasped successfully, but the lift attempt could not achieve the minimum lift distance requested\n\
00198 # it is likely that the collision environment will see collisions between the hand/object and the support surface\n\
00199 int32 LIFT_FAILED = -5\n\
00200 \n\
00201 # specific to place actions\n\
00202 # the object was placed successfully, but the retreat attempt could not achieve the minimum retreat distance requested\n\
00203 # it is likely that the collision environment will see collisions between the hand and the object\n\
00204 int32 RETREAT_FAILED = -6\n\
00205 \n\
00206 # indicates that somewhere along the line a human said \"wait, stop, this is bad, go back and do something else\"\n\
00207 int32 CANCELLED = -7\n\
00208 \n\
00209 # the actual value of this error code\n\
00210 int32 value\n\
00211 \n\
00212 ";
00213 }
00214
00215 static const char* value(const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> &) { return value(); }
00216 };
00217
00218 template<class ContainerAllocator> struct IsFixedSize< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > : public TrueType {};
00219 }
00220 }
00221
00222 namespace ros
00223 {
00224 namespace serialization
00225 {
00226
00227 template<class ContainerAllocator> struct Serializer< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> >
00228 {
00229 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00230 {
00231 stream.next(m.value);
00232 }
00233
00234 ROS_DECLARE_ALLINONE_SERIALIZER;
00235 };
00236 }
00237 }
00238
00239 namespace ros
00240 {
00241 namespace message_operations
00242 {
00243
00244 template<class ContainerAllocator>
00245 struct Printer< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> >
00246 {
00247 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> & v)
00248 {
00249 s << indent << "value: ";
00250 Printer<int32_t>::stream(s, indent + " ", v.value);
00251 }
00252 };
00253
00254
00255 }
00256 }
00257
00258 #endif // OBJECT_MANIPULATION_MSGS_MESSAGE_MANIPULATIONRESULT_H
00259