ndt_compute_derivatives.cuh 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef FAST_GICP_CUDA_NDT_COMPUTE_DERIVATIVES_CUH
  2. #define FAST_GICP_CUDA_NDT_COMPUTE_DERIVATIVES_CUH
  3. #include <Eigen/Core>
  4. #include <Eigen/Geometry>
  5. #include <thrust/device_vector.h>
  6. #include <fast_gicp/cuda/gaussian_voxelmap.cuh>
  7. namespace fast_gicp {
  8. namespace cuda {
  9. double p2d_ndt_compute_derivatives(
  10. const GaussianVoxelMap& target_voxelmap,
  11. const thrust::device_vector<Eigen::Vector3f>& source_points,
  12. const thrust::device_vector<thrust::pair<int, int>>& correspondences,
  13. const thrust::device_ptr<const Eigen::Isometry3f>& linearized_x_ptr,
  14. const thrust::device_ptr<const Eigen::Isometry3f>& x_ptr,
  15. Eigen::Matrix<double, 6, 6>* H,
  16. Eigen::Matrix<double, 6, 1>* b);
  17. double d2d_ndt_compute_derivatives(
  18. const GaussianVoxelMap& target_voxelmap,
  19. const GaussianVoxelMap& source_voxelmap,
  20. const thrust::device_vector<thrust::pair<int, int>>& correspondences,
  21. const thrust::device_ptr<const Eigen::Isometry3f>& linearized_x_ptr,
  22. const thrust::device_ptr<const Eigen::Isometry3f>& x_ptr,
  23. Eigen::Matrix<double, 6, 6>* H,
  24. Eigen::Matrix<double, 6, 1>* b);
  25. } // namespace cuda
  26. } // namespace fast_gicp
  27. #endif