Go to the documentation of this file.00001
00064 template <class Point>
00065 class GeneralSLAM<Point>
00066 {
00067 public:
00068 GeneralSLAM():odometry_(Eigen::Matrix4f::Identity())
00069 {}
00070
00071 virtual ~GeneralSLAM() {}
00072
00073 virtual void setInputCloud (const PointCloudConstPtr &cloud) {
00074 input_ = cloud;
00075 }
00076
00077 virtual void setOdometry (const Eigen::Matrix4f &odometry) {
00078 odometry_ = odometry;
00079 }
00080
00081 virtual pcl::PointCloud<Point>::ConstPtr getMap() {
00082 return map_;
00083 }
00084
00085 virtual bool compute() {
00086 if(!compute_registration())
00087 return false;
00088 if(!compute_transformation())
00089 return false;
00090 if(!compute_map())
00091 return false;
00092 }
00093
00094 protected:
00095
00096 virtual bool compute_registration()=0;
00097 virtual bool compute_transformation()=0;
00098 virtual bool compute_map()=0;
00099
00100 PointCloudConstPtr input_;
00101 pcl::PointCloud<Point> map_;
00102 Eigen::Matrix4f odometry_;
00103
00104 };