supereight
|
#include <Eigen/Geometry>
#include <se/common/image_utils.hpp>
#include <se/common/math_util.hpp>
#include <se/image/image.hpp>
#include "impl/icp_impl.hpp"
Go to the source code of this file.
Classes | |
struct | se::icp::Data |
Namespaces | |
namespace | se |
Helper wrapper to allocate and de-allocate octants in the octree. | |
namespace | se::icp |
Enumerations | |
enum | se::icp::TrackingResult { se::icp::ResultSuccess = 1 , se::icp::ResultUnknown = 0 , se::icp::ResultInvalidInputNormal = -1 , se::icp::ResultProjectionOutside = -2 , se::icp::ResultInvalidRefNormal = -3 , se::icp::ResultDistThreshold = -4 , se::icp::ResultNormalThreshold = -5 } |
Functions | |
Eigen::Matrix< float, 6, 6 > | se::icp::makeJTJ (const Eigen::Matrix< float, 1, 21 > &v) |
Eigen::Matrix< float, 6, 1 > | se::icp::solve (const Eigen::Matrix< float, 1, 27 > &vals) |
void | se::icp::newReduce (const int block_idx, float *output_data, const Eigen::Vector2i &output_res, Data *J_data, const Eigen::Vector2i &J_res) |
void | se::icp::reduceKernel (float *output_data, const Eigen::Vector2i &output_res, Data *J_data, const Eigen::Vector2i &J_res) |
template<typename ProjectF > | |
void | se::icp::trackKernel (Data *output_data, const Image< Eigen::Vector3f > &input_point_cloud_S, const Image< Eigen::Vector3f > &input_normals_S, const Image< Eigen::Vector3f > &surface_point_cloud_M_ref, const Image< Eigen::Vector3f > &surface_normals_M_ref, const Eigen::Isometry3f &T_WS, const Eigen::Isometry3f &T_WS_ref, const ProjectF project, const float dist_threshold, const float normal_threshold) |
ProjectF is functor with the following declaration, returning whether the projection of point_S succeeded: | |
bool | se::icp::updatePoseKernel (Eigen::Isometry3f &T_WS, const float *reduction_output_data, const float icp_threshold) |
bool | se::icp::checkPoseKernel (Eigen::Isometry3f &T_WS, Eigen::Isometry3f &previous_T_WS, const float *reduction_output_data, const Eigen::Vector2i &reduction_output_res, const float track_threshold) |