FeatureTracker.h
Go to the documentation of this file.
00001 /*
00002  * FeatureTracker.h
00003  *
00004  *      Author: roberto
00005  *
00006  * This is a modified implementation of the method for online estimation of kinematic structures described in our paper
00007  * "Online Interactive Perception of Articulated Objects with Multi-Level Recursive Estimation Based on Task-Specific Priors"
00008  * (Martín-Martín and Brock, 2014).
00009  * This implementation can be used to reproduce the results of the paper and to be applied to new research.
00010  * The implementation allows also to be extended to perceive different information/models or to use additional sources of information.
00011  * A detail explanation of the method and the system can be found in our paper.
00012  *
00013  * If you are using this implementation in your research, please consider citing our work:
00014  *
00015 @inproceedings{martinmartin_ip_iros_2014,
00016 Title = {Online Interactive Perception of Articulated Objects with Multi-Level Recursive Estimation Based on Task-Specific Priors},
00017 Author = {Roberto {Mart\'in-Mart\'in} and Oliver Brock},
00018 Booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems},
00019 Pages = {2494-2501},
00020 Year = {2014},
00021 Location = {Chicago, Illinois, USA},
00022 Note = {http://www.robotics.tu-berlin.de/fileadmin/fg170/Publikationen_pdf/martinmartin_ip_iros_2014.pdf},
00023 Url = {http://www.robotics.tu-berlin.de/fileadmin/fg170/Publikationen_pdf/martinmartin_ip_iros_2014.pdf},
00024 Projectname = {Interactive Perception}
00025 }
00026  * If you have questions or suggestions, contact us:
00027  * roberto.martinmartin@tu-berlin.de
00028  *
00029  * Enjoy!
00030  */
00031 
00032 #ifndef FEATURE_TRACKER_H_
00033 #define FEATURE_TRACKER_H_
00034 
00035 #include <omip_common/RecursiveEstimatorFilterInterface.h>
00036 #include <omip_common/OMIPTypeDefs.h>
00037 #include <omip_common/FeaturesDataBase.h>
00038 
00039 //ROS and OpenCV
00040 #include <opencv2/features2d/features2d.hpp>
00041 #include <opencv2/core/core.hpp>
00042 #include <camera_info_manager/camera_info_manager.h>
00043 #include <feature_tracker/FeatureTrackerDynReconfConfig.h>
00044 
00045 namespace omip
00046 {
00047 
00054 class FeatureTracker : public RecursiveEstimatorFilterInterface<ft_state_t, ft_measurement_t>
00055 {
00056 public:
00057 
00062     FeatureTracker(double loop_period_ns) :
00063         RecursiveEstimatorFilterInterface(loop_period_ns)
00064     {
00065     }
00066 
00071     virtual ~FeatureTracker()
00072     {
00073     }
00074 
00080     virtual void predictState(double time_interval_ns) = 0;
00081 
00088     virtual void correctState() = 0;
00089 
00095     virtual ft_state_t getState() const = 0;
00096 
00101     virtual void setFullRGBDPC(PointCloudPCL::ConstPtr full_rgb_pc)
00102     {
00103     }
00104 
00109     virtual void setOcclusionMaskImg(cv_bridge::CvImagePtr occ_mask_img)
00110     {
00111     }
00112 
00118     virtual void setCameraInfoMsg(const sensor_msgs::CameraInfo* camera_info)
00119     {
00120     }
00121 
00122     virtual void setDynamicReconfigureValues(feature_tracker::FeatureTrackerDynReconfConfig &config) =0;
00123 
00124     virtual cv_bridge::CvImagePtr getRGBImg()
00125     {
00126         return cv_bridge::CvImagePtr(new cv_bridge::CvImage());
00127     }
00128 
00129     virtual cv_bridge::CvImagePtr getDepthImg()
00130     {
00131         return cv_bridge::CvImagePtr(new cv_bridge::CvImage());
00132     }
00133 
00138     virtual cv_bridge::CvImagePtr getTrackedFeaturesImg()
00139     {
00140         return cv_bridge::CvImagePtr(new cv_bridge::CvImage());
00141     }
00142 
00148     virtual cv_bridge::CvImagePtr getTrackedFeaturesWithPredictionMaskImg()
00149     {
00150         return cv_bridge::CvImagePtr(new cv_bridge::CvImage());
00151     }
00152 
00157     virtual cv_bridge::CvImagePtr getDepthEdgesImg()
00158     {
00159         return cv_bridge::CvImagePtr(new cv_bridge::CvImage());
00160     }
00161 
00166     virtual cv_bridge::CvImagePtr getPredictingMaskImg()
00167     {
00168         return cv_bridge::CvImagePtr(new cv_bridge::CvImage());
00169     }
00170 
00175     virtual cv_bridge::CvImagePtr getTrackingMaskImg()
00176     {
00177         return cv_bridge::CvImagePtr(new cv_bridge::CvImage());
00178     }
00179 
00184     virtual cv_bridge::CvImagePtr getDetectingMaskImg()
00185     {
00186         return cv_bridge::CvImagePtr(new cv_bridge::CvImage());
00187     }
00188 
00193     virtual cv_bridge::CvImagePtr getPredictedAndLastFeaturesImg()
00194     {
00195         return cv_bridge::CvImagePtr(new cv_bridge::CvImage());
00196     }
00197 };
00198 }
00199 
00200 #endif /* FEATURE_TRACKER_H_ */


feature_tracker
Author(s): Roberto Martín-Martín
autogenerated on Sat Jun 8 2019 18:26:39