Coder Social home page Coder Social logo

fastergicp's People

Contributors

slamwang avatar xumeng9612 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

fastergicp's Issues

Invalid (NaN, Inf) point coordinates given to nearestKSearch

I tried dropping fasterGICP in place as a replacement for fastGICP but unfortunately, running fast_gicp::FastVGICPCuda.align or fast_gicp::NDTCUDA.align gives me the following error:

localisation: /build/pcl-OilVEB/pcl-1.8.1+dfsg1/kdtree/include/pcl/kdtree/impl/kdtree_flann.hpp:136: int pcl::KdTreeFLANN<PointT, Dist>::nearestKSearch(const PointT&, int, std::vector<int>&, std::vector<float>&)
 const [with PointT = pcl::PointXYZ; Dist = flann::L2_Simple<float>]: Assertion `point_representation_->isValid (point) && "Invalid (NaN, Inf) point coordinates given to nearestKSearch!"' failed.

Running with fast_gicp:FastVGICP.align gives:

[pcl::KdTreeFLANN::setInputCloud] Invalid input!

The same scenario works with fastGICP and I double check that the input pointclouds are valid like:

     bool check_cloud_is_valid(const pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud) {                                                                                                                                 
       bool valid = true;                                                                                                                                                                                          
       auto it = cloud->begin();                                                                                                                                                                                   
       for (; it != cloud->end(); ++it) {                                                                                                                                                                          
         if (!pcl::isFinite(*it)) {                                                                                                                                                                                
           printf("Found a point with inf!");                                                                                                                                                                      
           std::cout << it->x << "," << it->y << "," << it->z << std::endl;                                                                                                                                        
           valid = false;                                                                                                                                                                                          
         }                                                                                                                                                                                                         
       }                                                                                                                                                                                                           
       if (!cloud->is_dense) {                                                                                                                                                                                     
         valid = false;                                                                                                                                                                                            
         std::cout << "is dense fail" << std::endl;                                                                                                                                                                
       }                                                                                                                                                                                                           
       return valid;                                                                                                                                                                                               
     }

Do you have any ideas? I can see in the fast_gicp repo https://github.com/SMRT-AIST/fast_gicp there have been some bugfixes since this repo was forked - maybe these contain the fix?

Could you give a simple explanation for the setting value?

Hi, @SLAMWang. Thanks for your great work.
I find it may be useful for our project.
But could you give a simple explanation for the setting value?

  1. I think the modification is done on fast_gicp.hpp and fast_gicp_impl.hpp. (correct me if I was wrong)
  2. I think a example for kitti is below:
    fast_gicp::FastGICP<pcl::PointXYZ, pcl::PointXYZ> gicp;

    but I am a little confuse about the setting value here (I think these values are related to the two-fold filter, pls update some comments to help us):
    double first_matching_error_;
  3. Another thing is confused me : what is the [imageProjection.cpp],[featureAssociation.cpp] for ?

Performance on the kitti test set

你好@SLAMWang. 非常感谢你有趣的工作!看到你的论文,被你方法精度惊艳到了,论文中报告的KITTI训练集精度接近0.2%的ATE,而目前SOTA大概只有0.45%左右,可以说有了极大地提升。不知道你的方法在KITTI测试集的精度如何?为什么没有在测试集上传结果呢,感觉很有希望排到榜首位置。另外,我按照你的readme操作,并没有成功运行KITTI数据集测试,不知道哪里出了问题?非常感谢,期待你的回复

Save point cloud

Hello!
I am a student learning about SLAM. Thank you for sharing such a wonderful tool.
I want to add
pcl::io::savePCDFile( "cloud.pcd", *map, true );
to mapping thread to save point clouds, but I can't find where it is.
If you don`t mind, may I ask where I should add the code??
I hope to hear you soon!!

P.S. I`m not familiar with GitHub (and English) yet, so sorry if my way using "Issues" were wrong.

Method of evaluation

您好@SLAMWang ,请问您论文里面的误差评估是采用什么方法,比如:
2022-12-15 14-26-50 的屏幕截图
2022-12-13 14-49-07 的屏幕截图
请问是用这个kitti误差评估的方法吗,A. Geiger, P. Lenz, andR. Urtasun, “Are we ready for autonomous driving?the kitti vision benchmark suite,” in Proc. IEEEConf. Comput. Vis. PatternRecognit., 2012, pp. 3354–3361.

RGBD camera pointcloud registration

Hi, thanks for your great work.
Is fasterGICP suitable for pointcloud from RGBD camera?
I have tried your algorithm to registrate pointcloud generated from RGBD camera, but the result is not satisfactory. Could you give me some suggestions to improve the performance in RGBD camera's pointcloud?
thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.