#include <odom_estimation.hpp>
Public Member Functions | |
| void | addEdgeCostFactor (const pcl::PointCloud< pcl::PointXYZ >::Ptr &points, const pcl::PointCloud< pcl::PointXYZ >::Ptr &map, ceres::Problem &problem, ceres::LossFunction *lossFunction) |
| function More... | |
| void | addPointsToMap (const pcl::PointCloud< pcl::PointXYZ >::Ptr &downsampledEdgeCloud, const pcl::PointCloud< pcl::PointXYZ >::Ptr &downsampledSurfCloud) |
| void | addSurfCostFactor (const pcl::PointCloud< pcl::PointXYZ >::Ptr &points, const pcl::PointCloud< pcl::PointXYZ >::Ptr &map, ceres::Problem &problem, ceres::LossFunction *lossFunction) |
| void | downSamplingToMap (const pcl::PointCloud< pcl::PointXYZ >::Ptr &edgesIn, pcl::PointCloud< pcl::PointXYZ >::Ptr &edgesOut, const pcl::PointCloud< pcl::PointXYZ >::Ptr &surfacesIn, pcl::PointCloud< pcl::PointXYZ >::Ptr &surfacesOut) |
| void | getMap (pcl::PointCloud< pcl::PointXYZ >::Ptr &lidarCloudMap) |
| void | init (const double &mapResolution) |
| void | initMapWithPoints (const pcl::PointCloud< pcl::PointXYZ >::Ptr &edges, const pcl::PointCloud< pcl::PointXYZ >::Ptr &surfaces) |
| OdomEstimation () | |
| constructor / destructor More... | |
| void | pointAssociateToMap (const std::shared_ptr< pcl::PointXYZ > &pointsIn, std::shared_ptr< pcl::PointXYZ > &pointsOut) |
| void | updatePointsToMap (const pcl::PointCloud< pcl::PointXYZ >::Ptr &edges, const pcl::PointCloud< pcl::PointXYZ >::Ptr &surfaces) |
| ~OdomEstimation () | |
Public Attributes | |
| pcl::CropBox< pcl::PointXYZ > | m_cropBoxFilter |
| local map More... | |
| Eigen::Map< Eigen::Quaterniond > | m_currentRotation = Eigen::Map<Eigen::Quaterniond>(m_parameters) |
| Eigen::Map< Eigen::Vector3d > | m_currentTranslation = Eigen::Map<Eigen::Vector3d>(m_parameters + 4) |
| pcl::VoxelGrid< pcl::PointXYZ > | m_downSizeFilterEdge |
| points downsampling before add to map More... | |
| pcl::VoxelGrid< pcl::PointXYZ > | m_downSizeFilterSurf |
| pcl::KdTreeFLANN< pcl::PointXYZ >::Ptr | m_kdTreeEdgeMap |
| kd-tree More... | |
| pcl::KdTreeFLANN< pcl::PointXYZ >::Ptr | m_kdTreeSurfMap |
| Eigen::Isometry3d | m_lastOdom |
| pcl::PointCloud< pcl::PointXYZ >::Ptr | m_lidarCloudCornerMap |
| corner and surface map objects More... | |
| pcl::PointCloud< pcl::PointXYZ >::Ptr | m_lidarCloudSurfMap |
| Eigen::Isometry3d | m_odom |
| Odometry. More... | |
| int | m_optimizationCount |
| optimization count More... | |
| double | m_parameters [7] = {0, 0, 0, 1, 0, 0, 0} |
| Optimization parameters that ceres solvers update each loop. More... | |
| floam::lidar::Total | m_totals |
| totals counters (frames, time) More... | |
Odometry Estimation Class
Can be used across all lidar types
Definition at line 48 of file odom_estimation.hpp.
| floam::odom::OdomEstimation::OdomEstimation | ( | ) |
constructor / destructor
Definition at line 18 of file odom_estimation.cpp.
|
inline |
Definition at line 53 of file odom_estimation.hpp.
| void floam::odom::OdomEstimation::addEdgeCostFactor | ( | const pcl::PointCloud< pcl::PointXYZ >::Ptr & | points, |
| const pcl::PointCloud< pcl::PointXYZ >::Ptr & | map, | ||
| ceres::Problem & | problem, | ||
| ceres::LossFunction * | lossFunction | ||
| ) |
function
Definition at line 140 of file odom_estimation.cpp.
| void floam::odom::OdomEstimation::addPointsToMap | ( | const pcl::PointCloud< pcl::PointXYZ >::Ptr & | downsampledEdgeCloud, |
| const pcl::PointCloud< pcl::PointXYZ >::Ptr & | downsampledSurfCloud | ||
| ) |
Definition at line 277 of file odom_estimation.cpp.
| void floam::odom::OdomEstimation::addSurfCostFactor | ( | const pcl::PointCloud< pcl::PointXYZ >::Ptr & | points, |
| const pcl::PointCloud< pcl::PointXYZ >::Ptr & | map, | ||
| ceres::Problem & | problem, | ||
| ceres::LossFunction * | lossFunction | ||
| ) |
Definition at line 211 of file odom_estimation.cpp.
| void floam::odom::OdomEstimation::downSamplingToMap | ( | const pcl::PointCloud< pcl::PointXYZ >::Ptr & | edgesIn, |
| pcl::PointCloud< pcl::PointXYZ >::Ptr & | edgesOut, | ||
| const pcl::PointCloud< pcl::PointXYZ >::Ptr & | surfacesIn, | ||
| pcl::PointCloud< pcl::PointXYZ >::Ptr & | surfacesOut | ||
| ) |
Definition at line 128 of file odom_estimation.cpp.
| void floam::odom::OdomEstimation::getMap | ( | pcl::PointCloud< pcl::PointXYZ >::Ptr & | lidarCloudMap | ) |
Definition at line 326 of file odom_estimation.cpp.
| void floam::odom::OdomEstimation::init | ( | const double & | mapResolution | ) |
Definition at line 23 of file odom_estimation.cpp.
| void floam::odom::OdomEstimation::initMapWithPoints | ( | const pcl::PointCloud< pcl::PointXYZ >::Ptr & | edges, |
| const pcl::PointCloud< pcl::PointXYZ >::Ptr & | surfaces | ||
| ) |
TODO(flynneva): make this a parameter
Definition at line 40 of file odom_estimation.cpp.
| void floam::odom::OdomEstimation::pointAssociateToMap | ( | const std::shared_ptr< pcl::PointXYZ > & | pointsIn, |
| std::shared_ptr< pcl::PointXYZ > & | pointsOut | ||
| ) |
Definition at line 116 of file odom_estimation.cpp.
| void floam::odom::OdomEstimation::updatePointsToMap | ( | const pcl::PointCloud< pcl::PointXYZ >::Ptr & | edges, |
| const pcl::PointCloud< pcl::PointXYZ >::Ptr & | surfaces | ||
| ) |
TODO(flynneva): make this a parameter
generate map from edges and surfaces
TODO(flynneva): make these parameters
Update odom
Definition at line 51 of file odom_estimation.cpp.
| pcl::CropBox<pcl::PointXYZ> floam::odom::OdomEstimation::m_cropBoxFilter |
local map
Definition at line 82 of file odom_estimation.hpp.
| Eigen::Map<Eigen::Quaterniond> floam::odom::OdomEstimation::m_currentRotation = Eigen::Map<Eigen::Quaterniond>(m_parameters) |
Definition at line 66 of file odom_estimation.hpp.
| Eigen::Map<Eigen::Vector3d> floam::odom::OdomEstimation::m_currentTranslation = Eigen::Map<Eigen::Vector3d>(m_parameters + 4) |
Definition at line 67 of file odom_estimation.hpp.
| pcl::VoxelGrid<pcl::PointXYZ> floam::odom::OdomEstimation::m_downSizeFilterEdge |
points downsampling before add to map
Definition at line 78 of file odom_estimation.hpp.
| pcl::VoxelGrid<pcl::PointXYZ> floam::odom::OdomEstimation::m_downSizeFilterSurf |
Definition at line 79 of file odom_estimation.hpp.
| pcl::KdTreeFLANN<pcl::PointXYZ>::Ptr floam::odom::OdomEstimation::m_kdTreeEdgeMap |
kd-tree
Definition at line 70 of file odom_estimation.hpp.
| pcl::KdTreeFLANN<pcl::PointXYZ>::Ptr floam::odom::OdomEstimation::m_kdTreeSurfMap |
Definition at line 71 of file odom_estimation.hpp.
| Eigen::Isometry3d floam::odom::OdomEstimation::m_lastOdom |
Definition at line 61 of file odom_estimation.hpp.
| pcl::PointCloud<pcl::PointXYZ>::Ptr floam::odom::OdomEstimation::m_lidarCloudCornerMap |
corner and surface map objects
Definition at line 74 of file odom_estimation.hpp.
| pcl::PointCloud<pcl::PointXYZ>::Ptr floam::odom::OdomEstimation::m_lidarCloudSurfMap |
Definition at line 75 of file odom_estimation.hpp.
| Eigen::Isometry3d floam::odom::OdomEstimation::m_odom |
Odometry.
Definition at line 61 of file odom_estimation.hpp.
| int floam::odom::OdomEstimation::m_optimizationCount |
optimization count
Definition at line 85 of file odom_estimation.hpp.
| double floam::odom::OdomEstimation::m_parameters[7] = {0, 0, 0, 1, 0, 0, 0} |
Optimization parameters that ceres solvers update each loop.
Definition at line 64 of file odom_estimation.hpp.
| floam::lidar::Total floam::odom::OdomEstimation::m_totals |
totals counters (frames, time)
Definition at line 88 of file odom_estimation.hpp.