Go to the documentation of this file.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 <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
00018 namespace object_manipulation_msgs
00019 {
00020 template <class ContainerAllocator>
00021 struct ManipulationResult_ {
00022 typedef ManipulationResult_<ContainerAllocator> Type;
00023
00024 ManipulationResult_()
00025 : value(0)
00026 {
00027 }
00028
00029 ManipulationResult_(const ContainerAllocator& _alloc)
00030 : value(0)
00031 {
00032 }
00033
00034 typedef int32_t _value_type;
00035 int32_t value;
00036
00037 enum { SUCCESS = 1 };
00038 enum { UNFEASIBLE = -1 };
00039 enum { FAILED = -2 };
00040 enum { ERROR = -3 };
00041 enum { ARM_MOVEMENT_PREVENTED = -4 };
00042 enum { LIFT_FAILED = -5 };
00043 enum { RETREAT_FAILED = -6 };
00044 enum { CANCELLED = -7 };
00045
00046 typedef boost::shared_ptr< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > Ptr;
00047 typedef boost::shared_ptr< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> const> ConstPtr;
00048 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00049 };
00050 typedef ::object_manipulation_msgs::ManipulationResult_<std::allocator<void> > ManipulationResult;
00051
00052 typedef boost::shared_ptr< ::object_manipulation_msgs::ManipulationResult> ManipulationResultPtr;
00053 typedef boost::shared_ptr< ::object_manipulation_msgs::ManipulationResult const> ManipulationResultConstPtr;
00054
00055
00056 template<typename ContainerAllocator>
00057 std::ostream& operator<<(std::ostream& s, const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> & v)
00058 {
00059 ros::message_operations::Printer< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> >::stream(s, "", v);
00060 return s;}
00061
00062 }
00063
00064 namespace ros
00065 {
00066 namespace message_traits
00067 {
00068 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > : public TrueType {};
00069 template<class ContainerAllocator> struct IsMessage< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> const> : public TrueType {};
00070 template<class ContainerAllocator>
00071 struct MD5Sum< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > {
00072 static const char* value()
00073 {
00074 return "85f8d010e045fcb335637fc8fc59184b";
00075 }
00076
00077 static const char* value(const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> &) { return value(); }
00078 static const uint64_t static_value1 = 0x85f8d010e045fcb3ULL;
00079 static const uint64_t static_value2 = 0x35637fc8fc59184bULL;
00080 };
00081
00082 template<class ContainerAllocator>
00083 struct DataType< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > {
00084 static const char* value()
00085 {
00086 return "object_manipulation_msgs/ManipulationResult";
00087 }
00088
00089 static const char* value(const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> &) { return value(); }
00090 };
00091
00092 template<class ContainerAllocator>
00093 struct Definition< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > {
00094 static const char* value()
00095 {
00096 return "# Result codes for manipulation tasks\n\
00097 \n\
00098 # task completed as expected\n\
00099 # generally means you can proceed as planned\n\
00100 int32 SUCCESS = 1\n\
00101 \n\
00102 # task not possible (e.g. out of reach or obstacles in the way)\n\
00103 # generally means that the world was not disturbed, so you can try another task\n\
00104 int32 UNFEASIBLE = -1\n\
00105 \n\
00106 # task was thought possible, but failed due to unexpected events during execution\n\
00107 # it is likely that the world was disturbed, so you are encouraged to refresh\n\
00108 # your sensed world model before proceeding to another task\n\
00109 int32 FAILED = -2\n\
00110 \n\
00111 # a lower level error prevented task completion (e.g. joint controller not responding)\n\
00112 # generally requires human attention\n\
00113 int32 ERROR = -3\n\
00114 \n\
00115 # means that at some point during execution we ended up in a state that the collision-aware\n\
00116 # arm navigation module will not move out of. The world was likely not disturbed, but you \n\
00117 # probably need a new collision map to move the arm out of the stuck position\n\
00118 int32 ARM_MOVEMENT_PREVENTED = -4\n\
00119 \n\
00120 # specific to grasp actions\n\
00121 # the object was grasped successfully, but the lift attempt could not achieve the minimum lift distance requested\n\
00122 # it is likely that the collision environment will see collisions between the hand/object and the support surface\n\
00123 int32 LIFT_FAILED = -5\n\
00124 \n\
00125 # specific to place actions\n\
00126 # the object was placed successfully, but the retreat attempt could not achieve the minimum retreat distance requested\n\
00127 # it is likely that the collision environment will see collisions between the hand and the object\n\
00128 int32 RETREAT_FAILED = -6\n\
00129 \n\
00130 # indicates that somewhere along the line a human said \"wait, stop, this is bad, go back and do something else\"\n\
00131 int32 CANCELLED = -7\n\
00132 \n\
00133 # the actual value of this error code\n\
00134 int32 value\n\
00135 \n\
00136 ";
00137 }
00138
00139 static const char* value(const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> &) { return value(); }
00140 };
00141
00142 template<class ContainerAllocator> struct IsFixedSize< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> > : public TrueType {};
00143 }
00144 }
00145
00146 namespace ros
00147 {
00148 namespace serialization
00149 {
00150
00151 template<class ContainerAllocator> struct Serializer< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> >
00152 {
00153 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00154 {
00155 stream.next(m.value);
00156 }
00157
00158 ROS_DECLARE_ALLINONE_SERIALIZER;
00159 };
00160 }
00161 }
00162
00163 namespace ros
00164 {
00165 namespace message_operations
00166 {
00167
00168 template<class ContainerAllocator>
00169 struct Printer< ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> >
00170 {
00171 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::object_manipulation_msgs::ManipulationResult_<ContainerAllocator> & v)
00172 {
00173 s << indent << "value: ";
00174 Printer<int32_t>::stream(s, indent + " ", v.value);
00175 }
00176 };
00177
00178
00179 }
00180 }
00181
00182 #endif // OBJECT_MANIPULATION_MSGS_MESSAGE_MANIPULATIONRESULT_H
00183