Go to the documentation of this file.00001
00002 #ifndef VISION_MSGS_MESSAGE_COP_FEEDBACK_H
00003 #define VISION_MSGS_MESSAGE_COP_FEEDBACK_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 "vision_msgs/system_error.h"
00018
00019 namespace vision_msgs
00020 {
00021 template <class ContainerAllocator>
00022 struct cop_feedback_ {
00023 typedef cop_feedback_<ContainerAllocator> Type;
00024
00025 cop_feedback_()
00026 : perception_primitive(0)
00027 , evaluation(0.0)
00028 , error()
00029 , eval_whitelist()
00030 {
00031 }
00032
00033 cop_feedback_(const ContainerAllocator& _alloc)
00034 : perception_primitive(0)
00035 , evaluation(0.0)
00036 , error(_alloc)
00037 , eval_whitelist(_alloc)
00038 {
00039 }
00040
00041 typedef uint64_t _perception_primitive_type;
00042 uint64_t perception_primitive;
00043
00044 typedef double _evaluation_type;
00045 double evaluation;
00046
00047 typedef std::vector< ::vision_msgs::system_error_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::vision_msgs::system_error_<ContainerAllocator> >::other > _error_type;
00048 std::vector< ::vision_msgs::system_error_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::vision_msgs::system_error_<ContainerAllocator> >::other > error;
00049
00050 typedef std::vector<uint64_t, typename ContainerAllocator::template rebind<uint64_t>::other > _eval_whitelist_type;
00051 std::vector<uint64_t, typename ContainerAllocator::template rebind<uint64_t>::other > eval_whitelist;
00052
00053
00054 typedef boost::shared_ptr< ::vision_msgs::cop_feedback_<ContainerAllocator> > Ptr;
00055 typedef boost::shared_ptr< ::vision_msgs::cop_feedback_<ContainerAllocator> const> ConstPtr;
00056 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00057 };
00058 typedef ::vision_msgs::cop_feedback_<std::allocator<void> > cop_feedback;
00059
00060 typedef boost::shared_ptr< ::vision_msgs::cop_feedback> cop_feedbackPtr;
00061 typedef boost::shared_ptr< ::vision_msgs::cop_feedback const> cop_feedbackConstPtr;
00062
00063
00064 template<typename ContainerAllocator>
00065 std::ostream& operator<<(std::ostream& s, const ::vision_msgs::cop_feedback_<ContainerAllocator> & v)
00066 {
00067 ros::message_operations::Printer< ::vision_msgs::cop_feedback_<ContainerAllocator> >::stream(s, "", v);
00068 return s;}
00069
00070 }
00071
00072 namespace ros
00073 {
00074 namespace message_traits
00075 {
00076 template<class ContainerAllocator> struct IsMessage< ::vision_msgs::cop_feedback_<ContainerAllocator> > : public TrueType {};
00077 template<class ContainerAllocator> struct IsMessage< ::vision_msgs::cop_feedback_<ContainerAllocator> const> : public TrueType {};
00078 template<class ContainerAllocator>
00079 struct MD5Sum< ::vision_msgs::cop_feedback_<ContainerAllocator> > {
00080 static const char* value()
00081 {
00082 return "e876bab42e04aea08a659bc18c7b47cc";
00083 }
00084
00085 static const char* value(const ::vision_msgs::cop_feedback_<ContainerAllocator> &) { return value(); }
00086 static const uint64_t static_value1 = 0xe876bab42e04aea0ULL;
00087 static const uint64_t static_value2 = 0x8a659bc18c7b47ccULL;
00088 };
00089
00090 template<class ContainerAllocator>
00091 struct DataType< ::vision_msgs::cop_feedback_<ContainerAllocator> > {
00092 static const char* value()
00093 {
00094 return "vision_msgs/cop_feedback";
00095 }
00096
00097 static const char* value(const ::vision_msgs::cop_feedback_<ContainerAllocator> &) { return value(); }
00098 };
00099
00100 template<class ContainerAllocator>
00101 struct Definition< ::vision_msgs::cop_feedback_<ContainerAllocator> > {
00102 static const char* value()
00103 {
00104 return "#Message that cop uses to answer on specified topics, U. Klank klank@in.tum.de\n\
00105 uint64 perception_primitive # Perception primitive that caused this answer\n\
00106 float64 evaluation # A score describing the quality of the outcomes of the perception primitive\n\
00107 system_error[] error # A list of occured system failures which might be caused by the perception primitive\n\
00108 uint64[] eval_whitelist # list results which are included into the evaluation (note: default is all, not none, so an empty list means that all elements have to be evaluated, since the case that none of the results should get an evaluation does not make much sense)\n\
00109 \n\
00110 ================================================================================\n\
00111 MSG: vision_msgs/system_error\n\
00112 uint64 MANIPULATION_POSE_UNREACHABLE = 64\n\
00113 uint64 GRASP_FAILED = 128 # Grasp into the void\n\
00114 uint64 OBJECT_NOT_FOUND = 256\n\
00115 uint64 VISION_PRIMITIVE_FAILED = 512\n\
00116 uint64 CONTRADICTING_TACTILE_FEEDBACK = 1024 # Collide without expecting it\n\
00117 uint64 CONTRADICTING_VISION_RESULTS = 2048\n\
00118 uint64 GRASP_FAILED_AND_CRASHED = 4096 # Throwing something out of the way\n\
00119 uint64 JLO_ERROR = 8192 # Could not get position\n\
00120 uint64 VECTOR_FIELD_CANT_REACH = 16384 # The arm got stuck along the way, did not reach the final grasping pose\n\
00121 \n\
00122 uint64 error_id # One of the error constants defined above\n\
00123 string node_name # The node causing this error\n\
00124 string error_description # Further information about the error\n\
00125 \n\
00126 ";
00127 }
00128
00129 static const char* value(const ::vision_msgs::cop_feedback_<ContainerAllocator> &) { return value(); }
00130 };
00131
00132 }
00133 }
00134
00135 namespace ros
00136 {
00137 namespace serialization
00138 {
00139
00140 template<class ContainerAllocator> struct Serializer< ::vision_msgs::cop_feedback_<ContainerAllocator> >
00141 {
00142 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00143 {
00144 stream.next(m.perception_primitive);
00145 stream.next(m.evaluation);
00146 stream.next(m.error);
00147 stream.next(m.eval_whitelist);
00148 }
00149
00150 ROS_DECLARE_ALLINONE_SERIALIZER;
00151 };
00152 }
00153 }
00154
00155 namespace ros
00156 {
00157 namespace message_operations
00158 {
00159
00160 template<class ContainerAllocator>
00161 struct Printer< ::vision_msgs::cop_feedback_<ContainerAllocator> >
00162 {
00163 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::vision_msgs::cop_feedback_<ContainerAllocator> & v)
00164 {
00165 s << indent << "perception_primitive: ";
00166 Printer<uint64_t>::stream(s, indent + " ", v.perception_primitive);
00167 s << indent << "evaluation: ";
00168 Printer<double>::stream(s, indent + " ", v.evaluation);
00169 s << indent << "error[]" << std::endl;
00170 for (size_t i = 0; i < v.error.size(); ++i)
00171 {
00172 s << indent << " error[" << i << "]: ";
00173 s << std::endl;
00174 s << indent;
00175 Printer< ::vision_msgs::system_error_<ContainerAllocator> >::stream(s, indent + " ", v.error[i]);
00176 }
00177 s << indent << "eval_whitelist[]" << std::endl;
00178 for (size_t i = 0; i < v.eval_whitelist.size(); ++i)
00179 {
00180 s << indent << " eval_whitelist[" << i << "]: ";
00181 Printer<uint64_t>::stream(s, indent + " ", v.eval_whitelist[i]);
00182 }
00183 }
00184 };
00185
00186
00187 }
00188 }
00189
00190 #endif // VISION_MSGS_MESSAGE_COP_FEEDBACK_H
00191