MovingEdgeSettings.h
Go to the documentation of this file.
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-fuerte-vision_visp/doc_stacks/2013-12-28_17-43-01.443180/vision_visp/visp_tracker/msg/MovingEdgeSettings.msg */
00002 #ifndef VISP_TRACKER_MESSAGE_MOVINGEDGESETTINGS_H
00003 #define VISP_TRACKER_MESSAGE_MOVINGEDGESETTINGS_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 MovingEdgeSettings_ {
00022   typedef MovingEdgeSettings_<ContainerAllocator> Type;
00023 
00024   MovingEdgeSettings_()
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   MovingEdgeSettings_(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   typedef boost::shared_ptr< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> > Ptr;
00104   typedef boost::shared_ptr< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator>  const> ConstPtr;
00105   boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00106 }; // struct MovingEdgeSettings
00107 typedef  ::visp_tracker::MovingEdgeSettings_<std::allocator<void> > MovingEdgeSettings;
00108 
00109 typedef boost::shared_ptr< ::visp_tracker::MovingEdgeSettings> MovingEdgeSettingsPtr;
00110 typedef boost::shared_ptr< ::visp_tracker::MovingEdgeSettings const> MovingEdgeSettingsConstPtr;
00111 
00112 
00113 template<typename ContainerAllocator>
00114 std::ostream& operator<<(std::ostream& s, const  ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> & v)
00115 {
00116   ros::message_operations::Printer< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> >::stream(s, "", v);
00117   return s;}
00118 
00119 } // namespace visp_tracker
00120 
00121 namespace ros
00122 {
00123 namespace message_traits
00124 {
00125 template<class ContainerAllocator> struct IsMessage< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> > : public TrueType {};
00126 template<class ContainerAllocator> struct IsMessage< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator>  const> : public TrueType {};
00127 template<class ContainerAllocator>
00128 struct MD5Sum< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> > {
00129   static const char* value() 
00130   {
00131     return "376fefab194f3282c421288b8a099b76";
00132   }
00133 
00134   static const char* value(const  ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> &) { return value(); } 
00135   static const uint64_t static_value1 = 0x376fefab194f3282ULL;
00136   static const uint64_t static_value2 = 0xc421288b8a099b76ULL;
00137 };
00138 
00139 template<class ContainerAllocator>
00140 struct DataType< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> > {
00141   static const char* value() 
00142   {
00143     return "visp_tracker/MovingEdgeSettings";
00144   }
00145 
00146   static const char* value(const  ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> &) { return value(); } 
00147 };
00148 
00149 template<class ContainerAllocator>
00150 struct Definition< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> > {
00151   static const char* value() 
00152   {
00153     return "# This message contains tracking parameters.\n\
00154 #\n\
00155 # These parameters determine how precise, how fast and how\n\
00156 # reliable will be the tracking.\n\
00157 #\n\
00158 # It should be tuned carefully and can be changed dynamically.\n\
00159 #\n\
00160 # For more details, see the ViSP documentation:\n\
00161 # http://www.irisa.fr/lagadic/visp/publication.html\n\
00162 \n\
00163 \n\
00164 # Moving edge parameters.\n\
00165 \n\
00166 int64 mask_size    # Mask size (in pixel) used to compute the image gradient\n\
00167                    # and determine the object contour.\n\
00168                    # A larger mask size is better for larger images.\n\
00169                    # 3 pixels is enough for 640x480 images.\n\
00170                    # Increasing this value makes the tracking slower.\n\
00171                    #\n\
00172                    # Caution: this value cannot be changed dynamically\n\
00173                    # without resetting the tracking.\n\
00174 \n\
00175 int64 n_mask       # Number of masks applied to determine the object contour.\n\
00176                    # Increasing this value makes the tracking slower.\n\
00177 \n\
00178 int64 range        # Maximum seek distance on both sides of the reference pixel.\n\
00179                    # It should match the maximum distance in pixel between\n\
00180                    # the current position of the feature projection and\n\
00181                    # its next position.\n\
00182                    # I.e. if the object moves fast and your tracking\n\
00183                    # frequency is low, this value should be increased.\n\
00184                    # Increasing this value makes the tracking slower.\n\
00185 \n\
00186 float64 threshold  # Value used to determine if a moving edge is valid\n\
00187                    # or not.\n\
00188 \n\
00189 float64 mu1        # Minimum image contrast allowed to detect a contour.\n\
00190 float64 mu2        # Maximum image contrast allowed to detect a contour.\n\
00191 \n\
00192 int64 sample_step   # Minimum distance in pixel between two\n\
00193                     # discretization points.\n\
00194                     # It avoids having too many discretization points when\n\
00195                     # the tracked object is far away (and its projection\n\
00196                     # in the image is small).\n\
00197                     # Increasing this value makes the tracking *faster*.\n\
00198 \n\
00199 int64 ntotal_sample # How many discretization points are used to track the\n\
00200                     # feature.\n\
00201                     # Higher is better but slow down the tracking.\n\
00202                     # The best value depends on your model and its distance\n\
00203                     # with respect to the camera.\n\
00204                     # Increasing this value makes the tracking slower.\n\
00205 \n\
00206 int64 strip             # How many pixels are ignored around the borders.\n\
00207 float64 min_samplestep  # Minimum allowed samplestep. Useful to specify\n\
00208                         # a lower bound when the samplestep is changed\n\
00209                         # dynamically.\n\
00210                         # This is not done by visp_tracker currently.\n\
00211 float64 aberration      # Ignored.\n\
00212 float64 init_aberration # Ignored.\n\
00213 \n\
00214 \n\
00215 # Tracker parameters.\n\
00216 \n\
00217 float64 lambda          # Gain used to compute the control law.\n\
00218 float64 first_threshold # What proportion of points should be valid to\n\
00219                         # acccept an initial pose.\n\
00220                         # Value should be between 0 et 1.\n\
00221 \n\
00222 \n\
00223 ";
00224   }
00225 
00226   static const char* value(const  ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> &) { return value(); } 
00227 };
00228 
00229 template<class ContainerAllocator> struct IsFixedSize< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> > : public TrueType {};
00230 } // namespace message_traits
00231 } // namespace ros
00232 
00233 namespace ros
00234 {
00235 namespace serialization
00236 {
00237 
00238 template<class ContainerAllocator> struct Serializer< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> >
00239 {
00240   template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00241   {
00242     stream.next(m.mask_size);
00243     stream.next(m.n_mask);
00244     stream.next(m.range);
00245     stream.next(m.threshold);
00246     stream.next(m.mu1);
00247     stream.next(m.mu2);
00248     stream.next(m.sample_step);
00249     stream.next(m.ntotal_sample);
00250     stream.next(m.strip);
00251     stream.next(m.min_samplestep);
00252     stream.next(m.aberration);
00253     stream.next(m.init_aberration);
00254     stream.next(m.lambda);
00255     stream.next(m.first_threshold);
00256   }
00257 
00258   ROS_DECLARE_ALLINONE_SERIALIZER;
00259 }; // struct MovingEdgeSettings_
00260 } // namespace serialization
00261 } // namespace ros
00262 
00263 namespace ros
00264 {
00265 namespace message_operations
00266 {
00267 
00268 template<class ContainerAllocator>
00269 struct Printer< ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> >
00270 {
00271   template<typename Stream> static void stream(Stream& s, const std::string& indent, const  ::visp_tracker::MovingEdgeSettings_<ContainerAllocator> & v) 
00272   {
00273     s << indent << "mask_size: ";
00274     Printer<int64_t>::stream(s, indent + "  ", v.mask_size);
00275     s << indent << "n_mask: ";
00276     Printer<int64_t>::stream(s, indent + "  ", v.n_mask);
00277     s << indent << "range: ";
00278     Printer<int64_t>::stream(s, indent + "  ", v.range);
00279     s << indent << "threshold: ";
00280     Printer<double>::stream(s, indent + "  ", v.threshold);
00281     s << indent << "mu1: ";
00282     Printer<double>::stream(s, indent + "  ", v.mu1);
00283     s << indent << "mu2: ";
00284     Printer<double>::stream(s, indent + "  ", v.mu2);
00285     s << indent << "sample_step: ";
00286     Printer<int64_t>::stream(s, indent + "  ", v.sample_step);
00287     s << indent << "ntotal_sample: ";
00288     Printer<int64_t>::stream(s, indent + "  ", v.ntotal_sample);
00289     s << indent << "strip: ";
00290     Printer<int64_t>::stream(s, indent + "  ", v.strip);
00291     s << indent << "min_samplestep: ";
00292     Printer<double>::stream(s, indent + "  ", v.min_samplestep);
00293     s << indent << "aberration: ";
00294     Printer<double>::stream(s, indent + "  ", v.aberration);
00295     s << indent << "init_aberration: ";
00296     Printer<double>::stream(s, indent + "  ", v.init_aberration);
00297     s << indent << "lambda: ";
00298     Printer<double>::stream(s, indent + "  ", v.lambda);
00299     s << indent << "first_threshold: ";
00300     Printer<double>::stream(s, indent + "  ", v.first_threshold);
00301   }
00302 };
00303 
00304 
00305 } // namespace message_operations
00306 } // namespace ros
00307 
00308 #endif // VISP_TRACKER_MESSAGE_MOVINGEDGESETTINGS_H
00309 


visp_tracker
Author(s): Thomas Moulard/thomas.moulard@gmail.com
autogenerated on Sat Dec 28 2013 17:46:03