StaticEnvironmentFilter.h
Go to the documentation of this file.
1 /*
2  * StaticEnvironmentFilter.h
3  *
4  * Author: roberto
5  *
6  * This is a modified implementation of the method for online estimation of kinematic structures described in our paper
7  * "Online Interactive Perception of Articulated Objects with Multi-Level Recursive Estimation Based on Task-Specific Priors"
8  * (Martín-Martín and Brock, 2014).
9  * This implementation can be used to reproduce the results of the paper and to be applied to new research.
10  * The implementation allows also to be extended to perceive different information/models or to use additional sources of information.
11  * A detail explanation of the method and the system can be found in our paper.
12  *
13  * If you are using this implementation in your research, please consider citing our work:
14  *
15 @inproceedings{martinmartin_ip_iros_2014,
16 Title = {Online Interactive Perception of Articulated Objects with Multi-Level Recursive Estimation Based on Task-Specific Priors},
17 Author = {Roberto {Mart\'in-Mart\'in} and Oliver Brock},
18 Booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems},
19 Pages = {2494-2501},
20 Year = {2014},
21 Location = {Chicago, Illinois, USA},
22 Note = {http://www.robotics.tu-berlin.de/fileadmin/fg170/Publikationen_pdf/martinmartin_ip_iros_2014.pdf},
23 Url = {http://www.robotics.tu-berlin.de/fileadmin/fg170/Publikationen_pdf/martinmartin_ip_iros_2014.pdf},
24 Projectname = {Interactive Perception}
25 }
26  * If you have questions or suggestions, contact us:
27  * roberto.martinmartin@tu-berlin.de
28  *
29  * Enjoy!
30  */
31 
32 #ifndef STATIC_ENVIRONMENT_FILTER_H_
33 #define STATIC_ENVIRONMENT_FILTER_H_
34 
35 #include "rb_tracker/RBFilter.h"
37 #include <pcl/registration/transformation_estimation_svd.h>
38 #include <tf/transform_listener.h>
39 
40 namespace omip
41 {
42 
43 typedef enum
44 {
51  NO_MOTION = 6,
53 }
55 
64 {
65 public:
66 
67  // Shared pointer type
69 
74  StaticEnvironmentFilter(double loop_period_ns, FeaturesDataBase::Ptr feats_database, double environment_motion_threshold);
75 
80 
86  virtual void predictState(double time_interval_ns);
87 
93  virtual void correctState();
94 
101  virtual void addSupportingFeature(Feature::Id supporting_feat_id);
102 
109  virtual void setMotionConstraint(int motion_constraint);
110 
119  virtual void estimateDeltaMotion(std::vector<Feature::Id>& supporting_features_ids, tf::Transform& previous_current_Tf);
120 
130  virtual void iterativeICP( pcl::PointCloud<pcl::PointXYZ>& previous_locations,
131  pcl::PointCloud<pcl::PointXYZ>& current_locations, tf::Transform& previous_current_Tf);
132 
137  virtual void constrainMotion();
138 
145  virtual void setComputationType(static_environment_tracker_t computation_type);
146 
147  virtual void Init();
148 
149 private:
150  // Minimum motion to consider that a feature moves
153 
157 
160 
162 
163  pcl::registration::TransformationEstimationSVD<pcl::PointXYZ, pcl::PointXYZ> _svdecomposer;
164 };
165 }
166 
167 #endif /* STATIC_ENVIRONMENT_FILTER_H_ */
virtual void iterativeICP(pcl::PointCloud< pcl::PointXYZ > &previous_locations, pcl::PointCloud< pcl::PointXYZ > &current_locations, tf::Transform &previous_current_Tf)
Estimate the transformation between 2 sets of feature locations by iteratively estimating ICP until e...
virtual void estimateDeltaMotion(std::vector< Feature::Id > &supporting_features_ids, tf::Transform &previous_current_Tf)
Estimate the motion between the last 2 frames of the set of supporting features, assuming they are al...
virtual void predictState(double time_interval_ns)
virtual void setMotionConstraint(int motion_constraint)
Set a constraint for the motion of the RB Right now this is only used by the StaticEnvironmentFilter...
virtual void addSupportingFeature(Feature::Id supporting_feat_id)
boost::shared_ptr< StaticEnvironmentFilter > Ptr
static_environment_tracker_t _computation_type
virtual void setComputationType(static_environment_tracker_t computation_type)
Set the computation type for the static environment Options: ICP based (t-1 to t) or EKF based (simil...
static_environment_tracker_t
pcl::registration::TransformationEstimationSVD< pcl::PointXYZ, pcl::PointXYZ > _svdecomposer
virtual void constrainMotion()
Function that constrains the last estimated pose of the static environment to the camera according to...
StaticEnvironmentFilter(double loop_period_ns, FeaturesDataBase::Ptr feats_database, double environment_motion_threshold)


rb_tracker
Author(s): Roberto Martín-Martín
autogenerated on Mon Jun 10 2019 14:06:11