$search
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-electric-vision_visp/doc_stacks/2013-03-02_14-13-07.148743/vision_visp/visp_tracker/msg/MovingEdge.msg */ 00002 #ifndef VISP_TRACKER_MESSAGE_MOVINGEDGE_H 00003 #define VISP_TRACKER_MESSAGE_MOVINGEDGE_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 visp_tracker 00019 { 00020 template <class ContainerAllocator> 00021 struct MovingEdge_ { 00022 typedef MovingEdge_<ContainerAllocator> Type; 00023 00024 MovingEdge_() 00025 : mask_size(0) 00026 , n_mask(0) 00027 , range(0) 00028 , threshold(0.0) 00029 , mu1(0.0) 00030 , mu2(0.0) 00031 , sample_step(0) 00032 , ntotal_sample(0) 00033 , strip(0) 00034 , min_samplestep(0.0) 00035 , aberration(0.0) 00036 , init_aberration(0.0) 00037 , lambda(0.0) 00038 , first_threshold(0.0) 00039 { 00040 } 00041 00042 MovingEdge_(const ContainerAllocator& _alloc) 00043 : mask_size(0) 00044 , n_mask(0) 00045 , range(0) 00046 , threshold(0.0) 00047 , mu1(0.0) 00048 , mu2(0.0) 00049 , sample_step(0) 00050 , ntotal_sample(0) 00051 , strip(0) 00052 , min_samplestep(0.0) 00053 , aberration(0.0) 00054 , init_aberration(0.0) 00055 , lambda(0.0) 00056 , first_threshold(0.0) 00057 { 00058 } 00059 00060 typedef int64_t _mask_size_type; 00061 int64_t mask_size; 00062 00063 typedef int64_t _n_mask_type; 00064 int64_t n_mask; 00065 00066 typedef int64_t _range_type; 00067 int64_t range; 00068 00069 typedef double _threshold_type; 00070 double threshold; 00071 00072 typedef double _mu1_type; 00073 double mu1; 00074 00075 typedef double _mu2_type; 00076 double mu2; 00077 00078 typedef int64_t _sample_step_type; 00079 int64_t sample_step; 00080 00081 typedef int64_t _ntotal_sample_type; 00082 int64_t ntotal_sample; 00083 00084 typedef int64_t _strip_type; 00085 int64_t strip; 00086 00087 typedef double _min_samplestep_type; 00088 double min_samplestep; 00089 00090 typedef double _aberration_type; 00091 double aberration; 00092 00093 typedef double _init_aberration_type; 00094 double init_aberration; 00095 00096 typedef double _lambda_type; 00097 double lambda; 00098 00099 typedef double _first_threshold_type; 00100 double first_threshold; 00101 00102 00103 private: 00104 static const char* __s_getDataType_() { return "visp_tracker/MovingEdge"; } 00105 public: 00106 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); } 00107 00108 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); } 00109 00110 private: 00111 static const char* __s_getMD5Sum_() { return "376fefab194f3282c421288b8a099b76"; } 00112 public: 00113 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); } 00114 00115 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); } 00116 00117 private: 00118 static const char* __s_getMessageDefinition_() { return "# This message contains tracking parameters.\n\ 00119 #\n\ 00120 # These parameters determine how precise, how fast and how\n\ 00121 # reliable will be the tracking.\n\ 00122 #\n\ 00123 # It should be tuned carefully and can be changed dynamically.\n\ 00124 #\n\ 00125 # For more details, see the ViSP documentation:\n\ 00126 # http://www.irisa.fr/lagadic/visp/publication.html\n\ 00127 \n\ 00128 \n\ 00129 # Moving edge parameters.\n\ 00130 \n\ 00131 int64 mask_size # Mask size (in pixel) used to compute the image gradient\n\ 00132 # and determine the object contour.\n\ 00133 # A larger mask size is better for larger images.\n\ 00134 # 3 pixels is enough for 640x480 images.\n\ 00135 # Increasing this value makes the tracking slower.\n\ 00136 #\n\ 00137 # Caution: this value cannot be changed dynamically\n\ 00138 # without resetting the tracking.\n\ 00139 \n\ 00140 int64 n_mask # Number of masks applied to determine the object contour.\n\ 00141 # Increasing this value makes the tracking slower.\n\ 00142 \n\ 00143 int64 range # Maximum seek distance on both sides of the reference pixel.\n\ 00144 # It should match the maximum distance in pixel between\n\ 00145 # the current position of the feature projection and\n\ 00146 # its next position.\n\ 00147 # I.e. if the object moves fast and your tracking\n\ 00148 # frequency is low, this value should be increased.\n\ 00149 # Increasing this value makes the tracking slower.\n\ 00150 \n\ 00151 float64 threshold # Value used to determine if a moving edge is valid\n\ 00152 # or not.\n\ 00153 \n\ 00154 float64 mu1 # Minimum image contrast allowed to detect a contour.\n\ 00155 float64 mu2 # Maximum image contrast allowed to detect a contour.\n\ 00156 \n\ 00157 int64 sample_step # Minimum distance in pixel between two\n\ 00158 # discretization points.\n\ 00159 # It avoids having too many discretization points when\n\ 00160 # the tracked object is far away (and its projection\n\ 00161 # in the image is small).\n\ 00162 # Increasing this value makes the tracking *faster*.\n\ 00163 \n\ 00164 int64 ntotal_sample # How many discretization points are used to track the\n\ 00165 # feature.\n\ 00166 # Higher is better but slow down the tracking.\n\ 00167 # The best value depends on your model and its distance\n\ 00168 # with respect to the camera.\n\ 00169 # Increasing this value makes the tracking slower.\n\ 00170 \n\ 00171 int64 strip # How many pixels are ignored around the borders.\n\ 00172 float64 min_samplestep # Minimum allowed samplestep. Useful to specify\n\ 00173 # a lower bound when the samplestep is changed\n\ 00174 # dynamically.\n\ 00175 # This is not done by visp_tracker currently.\n\ 00176 float64 aberration # Ignored.\n\ 00177 float64 init_aberration # Ignored.\n\ 00178 \n\ 00179 \n\ 00180 # Tracker parameters.\n\ 00181 \n\ 00182 float64 lambda # Gain used to compute the control law.\n\ 00183 float64 first_threshold # What proportion of points should be valid to\n\ 00184 # acccept an initial pose.\n\ 00185 # Value should be between 0 et 1.\n\ 00186 \n\ 00187 "; } 00188 public: 00189 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); } 00190 00191 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); } 00192 00193 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const 00194 { 00195 ros::serialization::OStream stream(write_ptr, 1000000000); 00196 ros::serialization::serialize(stream, mask_size); 00197 ros::serialization::serialize(stream, n_mask); 00198 ros::serialization::serialize(stream, range); 00199 ros::serialization::serialize(stream, threshold); 00200 ros::serialization::serialize(stream, mu1); 00201 ros::serialization::serialize(stream, mu2); 00202 ros::serialization::serialize(stream, sample_step); 00203 ros::serialization::serialize(stream, ntotal_sample); 00204 ros::serialization::serialize(stream, strip); 00205 ros::serialization::serialize(stream, min_samplestep); 00206 ros::serialization::serialize(stream, aberration); 00207 ros::serialization::serialize(stream, init_aberration); 00208 ros::serialization::serialize(stream, lambda); 00209 ros::serialization::serialize(stream, first_threshold); 00210 return stream.getData(); 00211 } 00212 00213 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr) 00214 { 00215 ros::serialization::IStream stream(read_ptr, 1000000000); 00216 ros::serialization::deserialize(stream, mask_size); 00217 ros::serialization::deserialize(stream, n_mask); 00218 ros::serialization::deserialize(stream, range); 00219 ros::serialization::deserialize(stream, threshold); 00220 ros::serialization::deserialize(stream, mu1); 00221 ros::serialization::deserialize(stream, mu2); 00222 ros::serialization::deserialize(stream, sample_step); 00223 ros::serialization::deserialize(stream, ntotal_sample); 00224 ros::serialization::deserialize(stream, strip); 00225 ros::serialization::deserialize(stream, min_samplestep); 00226 ros::serialization::deserialize(stream, aberration); 00227 ros::serialization::deserialize(stream, init_aberration); 00228 ros::serialization::deserialize(stream, lambda); 00229 ros::serialization::deserialize(stream, first_threshold); 00230 return stream.getData(); 00231 } 00232 00233 ROS_DEPRECATED virtual uint32_t serializationLength() const 00234 { 00235 uint32_t size = 0; 00236 size += ros::serialization::serializationLength(mask_size); 00237 size += ros::serialization::serializationLength(n_mask); 00238 size += ros::serialization::serializationLength(range); 00239 size += ros::serialization::serializationLength(threshold); 00240 size += ros::serialization::serializationLength(mu1); 00241 size += ros::serialization::serializationLength(mu2); 00242 size += ros::serialization::serializationLength(sample_step); 00243 size += ros::serialization::serializationLength(ntotal_sample); 00244 size += ros::serialization::serializationLength(strip); 00245 size += ros::serialization::serializationLength(min_samplestep); 00246 size += ros::serialization::serializationLength(aberration); 00247 size += ros::serialization::serializationLength(init_aberration); 00248 size += ros::serialization::serializationLength(lambda); 00249 size += ros::serialization::serializationLength(first_threshold); 00250 return size; 00251 } 00252 00253 typedef boost::shared_ptr< ::visp_tracker::MovingEdge_<ContainerAllocator> > Ptr; 00254 typedef boost::shared_ptr< ::visp_tracker::MovingEdge_<ContainerAllocator> const> ConstPtr; 00255 boost::shared_ptr<std::map<std::string, std::string> > __connection_header; 00256 }; // struct MovingEdge 00257 typedef ::visp_tracker::MovingEdge_<std::allocator<void> > MovingEdge; 00258 00259 typedef boost::shared_ptr< ::visp_tracker::MovingEdge> MovingEdgePtr; 00260 typedef boost::shared_ptr< ::visp_tracker::MovingEdge const> MovingEdgeConstPtr; 00261 00262 00263 template<typename ContainerAllocator> 00264 std::ostream& operator<<(std::ostream& s, const ::visp_tracker::MovingEdge_<ContainerAllocator> & v) 00265 { 00266 ros::message_operations::Printer< ::visp_tracker::MovingEdge_<ContainerAllocator> >::stream(s, "", v); 00267 return s;} 00268 00269 } // namespace visp_tracker 00270 00271 namespace ros 00272 { 00273 namespace message_traits 00274 { 00275 template<class ContainerAllocator> struct IsMessage< ::visp_tracker::MovingEdge_<ContainerAllocator> > : public TrueType {}; 00276 template<class ContainerAllocator> struct IsMessage< ::visp_tracker::MovingEdge_<ContainerAllocator> const> : public TrueType {}; 00277 template<class ContainerAllocator> 00278 struct MD5Sum< ::visp_tracker::MovingEdge_<ContainerAllocator> > { 00279 static const char* value() 00280 { 00281 return "376fefab194f3282c421288b8a099b76"; 00282 } 00283 00284 static const char* value(const ::visp_tracker::MovingEdge_<ContainerAllocator> &) { return value(); } 00285 static const uint64_t static_value1 = 0x376fefab194f3282ULL; 00286 static const uint64_t static_value2 = 0xc421288b8a099b76ULL; 00287 }; 00288 00289 template<class ContainerAllocator> 00290 struct DataType< ::visp_tracker::MovingEdge_<ContainerAllocator> > { 00291 static const char* value() 00292 { 00293 return "visp_tracker/MovingEdge"; 00294 } 00295 00296 static const char* value(const ::visp_tracker::MovingEdge_<ContainerAllocator> &) { return value(); } 00297 }; 00298 00299 template<class ContainerAllocator> 00300 struct Definition< ::visp_tracker::MovingEdge_<ContainerAllocator> > { 00301 static const char* value() 00302 { 00303 return "# This message contains tracking parameters.\n\ 00304 #\n\ 00305 # These parameters determine how precise, how fast and how\n\ 00306 # reliable will be the tracking.\n\ 00307 #\n\ 00308 # It should be tuned carefully and can be changed dynamically.\n\ 00309 #\n\ 00310 # For more details, see the ViSP documentation:\n\ 00311 # http://www.irisa.fr/lagadic/visp/publication.html\n\ 00312 \n\ 00313 \n\ 00314 # Moving edge parameters.\n\ 00315 \n\ 00316 int64 mask_size # Mask size (in pixel) used to compute the image gradient\n\ 00317 # and determine the object contour.\n\ 00318 # A larger mask size is better for larger images.\n\ 00319 # 3 pixels is enough for 640x480 images.\n\ 00320 # Increasing this value makes the tracking slower.\n\ 00321 #\n\ 00322 # Caution: this value cannot be changed dynamically\n\ 00323 # without resetting the tracking.\n\ 00324 \n\ 00325 int64 n_mask # Number of masks applied to determine the object contour.\n\ 00326 # Increasing this value makes the tracking slower.\n\ 00327 \n\ 00328 int64 range # Maximum seek distance on both sides of the reference pixel.\n\ 00329 # It should match the maximum distance in pixel between\n\ 00330 # the current position of the feature projection and\n\ 00331 # its next position.\n\ 00332 # I.e. if the object moves fast and your tracking\n\ 00333 # frequency is low, this value should be increased.\n\ 00334 # Increasing this value makes the tracking slower.\n\ 00335 \n\ 00336 float64 threshold # Value used to determine if a moving edge is valid\n\ 00337 # or not.\n\ 00338 \n\ 00339 float64 mu1 # Minimum image contrast allowed to detect a contour.\n\ 00340 float64 mu2 # Maximum image contrast allowed to detect a contour.\n\ 00341 \n\ 00342 int64 sample_step # Minimum distance in pixel between two\n\ 00343 # discretization points.\n\ 00344 # It avoids having too many discretization points when\n\ 00345 # the tracked object is far away (and its projection\n\ 00346 # in the image is small).\n\ 00347 # Increasing this value makes the tracking *faster*.\n\ 00348 \n\ 00349 int64 ntotal_sample # How many discretization points are used to track the\n\ 00350 # feature.\n\ 00351 # Higher is better but slow down the tracking.\n\ 00352 # The best value depends on your model and its distance\n\ 00353 # with respect to the camera.\n\ 00354 # Increasing this value makes the tracking slower.\n\ 00355 \n\ 00356 int64 strip # How many pixels are ignored around the borders.\n\ 00357 float64 min_samplestep # Minimum allowed samplestep. Useful to specify\n\ 00358 # a lower bound when the samplestep is changed\n\ 00359 # dynamically.\n\ 00360 # This is not done by visp_tracker currently.\n\ 00361 float64 aberration # Ignored.\n\ 00362 float64 init_aberration # Ignored.\n\ 00363 \n\ 00364 \n\ 00365 # Tracker parameters.\n\ 00366 \n\ 00367 float64 lambda # Gain used to compute the control law.\n\ 00368 float64 first_threshold # What proportion of points should be valid to\n\ 00369 # acccept an initial pose.\n\ 00370 # Value should be between 0 et 1.\n\ 00371 \n\ 00372 "; 00373 } 00374 00375 static const char* value(const ::visp_tracker::MovingEdge_<ContainerAllocator> &) { return value(); } 00376 }; 00377 00378 template<class ContainerAllocator> struct IsFixedSize< ::visp_tracker::MovingEdge_<ContainerAllocator> > : public TrueType {}; 00379 } // namespace message_traits 00380 } // namespace ros 00381 00382 namespace ros 00383 { 00384 namespace serialization 00385 { 00386 00387 template<class ContainerAllocator> struct Serializer< ::visp_tracker::MovingEdge_<ContainerAllocator> > 00388 { 00389 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) 00390 { 00391 stream.next(m.mask_size); 00392 stream.next(m.n_mask); 00393 stream.next(m.range); 00394 stream.next(m.threshold); 00395 stream.next(m.mu1); 00396 stream.next(m.mu2); 00397 stream.next(m.sample_step); 00398 stream.next(m.ntotal_sample); 00399 stream.next(m.strip); 00400 stream.next(m.min_samplestep); 00401 stream.next(m.aberration); 00402 stream.next(m.init_aberration); 00403 stream.next(m.lambda); 00404 stream.next(m.first_threshold); 00405 } 00406 00407 ROS_DECLARE_ALLINONE_SERIALIZER; 00408 }; // struct MovingEdge_ 00409 } // namespace serialization 00410 } // namespace ros 00411 00412 namespace ros 00413 { 00414 namespace message_operations 00415 { 00416 00417 template<class ContainerAllocator> 00418 struct Printer< ::visp_tracker::MovingEdge_<ContainerAllocator> > 00419 { 00420 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::visp_tracker::MovingEdge_<ContainerAllocator> & v) 00421 { 00422 s << indent << "mask_size: "; 00423 Printer<int64_t>::stream(s, indent + " ", v.mask_size); 00424 s << indent << "n_mask: "; 00425 Printer<int64_t>::stream(s, indent + " ", v.n_mask); 00426 s << indent << "range: "; 00427 Printer<int64_t>::stream(s, indent + " ", v.range); 00428 s << indent << "threshold: "; 00429 Printer<double>::stream(s, indent + " ", v.threshold); 00430 s << indent << "mu1: "; 00431 Printer<double>::stream(s, indent + " ", v.mu1); 00432 s << indent << "mu2: "; 00433 Printer<double>::stream(s, indent + " ", v.mu2); 00434 s << indent << "sample_step: "; 00435 Printer<int64_t>::stream(s, indent + " ", v.sample_step); 00436 s << indent << "ntotal_sample: "; 00437 Printer<int64_t>::stream(s, indent + " ", v.ntotal_sample); 00438 s << indent << "strip: "; 00439 Printer<int64_t>::stream(s, indent + " ", v.strip); 00440 s << indent << "min_samplestep: "; 00441 Printer<double>::stream(s, indent + " ", v.min_samplestep); 00442 s << indent << "aberration: "; 00443 Printer<double>::stream(s, indent + " ", v.aberration); 00444 s << indent << "init_aberration: "; 00445 Printer<double>::stream(s, indent + " ", v.init_aberration); 00446 s << indent << "lambda: "; 00447 Printer<double>::stream(s, indent + " ", v.lambda); 00448 s << indent << "first_threshold: "; 00449 Printer<double>::stream(s, indent + " ", v.first_threshold); 00450 } 00451 }; 00452 00453 00454 } // namespace message_operations 00455 } // namespace ros 00456 00457 #endif // VISP_TRACKER_MESSAGE_MOVINGEDGE_H 00458