sbgisen / hdl_localization

Real-time 3D localization using a (velodyne) 3D LIDAR
BSD 2-Clause "Simplified" License
2 stars 2 forks source link

NDT_CUDAオプションで実行すると時間経過で落ちる #42

Open nyxrobotics opened 9 months ago

nyxrobotics commented 9 months ago

概要 NDT_CUDAオプションで実行するとCPU使用率が大きく減少し、比較的少ないGPU使用率で実行できる しかししばらく実行していると下記のようなエラーで落ちる fast_gicpの問題ですが不要なら #24 の対応の都合でNDT_CUDAオプションを消してしまったほうが楽

lm not converged!!
nodelet: /build/pcl-gWGA5r/pcl-1.10.0+dfsg/kdtree/include/pcl/kdtree/impl/kdtree_flann.hpp:138: int pcl::KdTreeFLANN<PointT, Dist>::nearestKSearch(const PointT&, int, std::vector<int>&, std::vector<float>&) const [with PointT = pcl::PointXYZI; Dist = flann::L2_Simple<float>]: Assertion `point_representation_->isValid (point) && "Invalid (NaN, Inf) point coordinates given to nearestKSearch!"' failed.
terminate called after throwing an instance of 'thrust::system::system_error'
  what():  for_each: failed to synchronize: cudaErrorIllegalAddress: an illegal memory access was encountered

再現手順 修正しないとどう困るか 原因 修正案

nyxrobotics commented 9 months ago

~pcl::removeNaNFromPointCloudやpcl::PassThroughでvelodyneの点群からNaNやInfを取り除いても改善ぜず fast_gicpの何らかのバグだと思いますが治せる見込みがないのでNDT_CUDAオプションは消そうと思います~

NDT_CUDAオプション有効時のほうが実行周期が早く収束もよいという結果だったためバグを修正する方針にします

nyxrobotics commented 9 months ago

下記で修正 https://github.com/sbgisen/fast_gicp/pull/4