8 #ifndef FLOAM__ODOM_ESTIMATION_HPP_
9 #define FLOAM__ODOM_ESTIMATION_HPP_
17 #include <pcl/point_cloud.h>
18 #include <pcl/point_types.h>
19 #include <pcl/filters/filter.h>
20 #include <pcl/filters/voxel_grid.h>
21 #include <pcl/filters/passthrough.h>
22 #include <pcl/kdtree/kdtree_flann.h>
23 #include <pcl/filters/statistical_outlier_removal.h>
24 #include <pcl/filters/extract_indices.h>
25 #include <pcl/filters/crop_box.h>
28 #include <ceres/ceres.h>
29 #include <ceres/rotation.h>
32 #include <Eigen/Dense>
33 #include <Eigen/Geometry>
55 void init(
const double & mapResolution);
56 void initMapWithPoints(
const pcl::PointCloud<pcl::PointXYZ>::Ptr & edges,
const pcl::PointCloud<pcl::PointXYZ>::Ptr & surfaces);
57 void updatePointsToMap(
const pcl::PointCloud<pcl::PointXYZ>::Ptr & edges,
const pcl::PointCloud<pcl::PointXYZ>::Ptr & surfaces);
58 void getMap(pcl::PointCloud<pcl::PointXYZ>::Ptr & lidarCloudMap);
92 const pcl::PointCloud<pcl::PointXYZ>::Ptr & points,
93 const pcl::PointCloud<pcl::PointXYZ>::Ptr & map,
94 ceres::Problem & problem,
95 ceres::LossFunction * lossFunction);
98 const pcl::PointCloud<pcl::PointXYZ>::Ptr & points,
99 const pcl::PointCloud<pcl::PointXYZ>::Ptr & map,
100 ceres::Problem & problem,
101 ceres::LossFunction * lossFunction);
105 const pcl::PointCloud<pcl::PointXYZ>::Ptr & downsampledEdgeCloud,
106 const pcl::PointCloud<pcl::PointXYZ>::Ptr & downsampledSurfCloud);
110 const std::shared_ptr<pcl::PointXYZ> & pointsIn,
111 std::shared_ptr<pcl::PointXYZ> & pointsOut);
115 const pcl::PointCloud<pcl::PointXYZ>::Ptr & edgesIn,
116 pcl::PointCloud<pcl::PointXYZ>::Ptr & edgesOut,
117 const pcl::PointCloud<pcl::PointXYZ>::Ptr & surfacesIn,
118 pcl::PointCloud<pcl::PointXYZ>::Ptr & surfacesOut);
123 #endif // FLOAM__ODOM_ESTIMATION_HPP_