KOKIAOKI / 3d_bbs

MIT License
172 stars 28 forks source link

Segmentation fault (core dumped) #9

Closed U-AMC closed 9 months ago

U-AMC commented 9 months ago

Hello, and thanks for your great research! I am currently experiencing a unknown segmentation error which seems to be caused by file_path. Would there be a faulty reason for this?

################[Necessary]################
## Folder Paths
target_clouds: "/home/username/Desktop/data/target"
source_clouds: "/home/username/Desktop/data/source"
output_folder: "/home/username/Desktop/data/output"

## 3D-BBS Parameters
min_level_res: 1.0 # [m]
max_level: 6

## Angular Search Range
# 6.28 input is converted to 2*M_PI
min_rpy: [-0.02,-0.02,0.0]
max_rpy: [0.02,0.02,6.28]

## Score threshold
# score_threshold = floor(src_points.size() * score_threshold_percentage)
score_threshold_percentage: 0.9

################[Optional]################
## Downsample Target Clouds Parameter
valid_tar_vgf: true
tar_leaf_size: 0.1

## Downsample Source Clouds Parameter
valid_src_vgf: true
src_leaf_size: 2.0

cut_src_points: true 
scan_range:
  - 0.0 # min [m]
  - 100 # max [m]

## Final align
use_gicp: false

The test.yaml are set as shown.

KOKIAOKI commented 9 months ago

Thank you for trying test code! Could you show me the full command line output?

U-AMC commented 9 months ago
[YAML] Loading paths...
[YAML] Loading 3D-BBS parameters...
[YAML] Loading angular search range...
[YAML] Loading score threshold percentage...
[YAML] Loading downsample souce clouds parameters...
[Setting] Loading target pcds...
Segmentation fault (core dumped)

Right after the file launches, it immediately fails. Just to note that I am running on Ubuntu 20.04 / CUDA 12.2 / PCL 1.10.0

KOKIAOKI commented 9 months ago

Thank you for sharing more information. Please take a moment.

kimdaebeom commented 9 months ago

Hi, thanks for your efforts! and I have a same problem...

KOKIAOKI commented 9 months ago

Hi! I was able to reproduce the same error in pcl::io::loadPCDFile() I'm trying to solve this.

Taeyoung96 commented 9 months ago

@KOKIAOKI
Hi, Thanks for the great work!

When I built an environment with docker to test it, it ran successfully on test_data! 😄

Related to docker, could I pull request for the execution and dockerfile?

I built and tested the environment in docker as shown below. Version
Ubuntu 22.04
NVIDIA driver 525.60.11
CUDA 12.0
Cudnn 8.0
Cmake 3.27.9
Eigen 3.4.0
PCL 1.12.1

terminal output :

root@multirobot1-CILAB:~/workspace/test/build# ./gpu_test ../config/test.yaml 
[YAML] Loading paths...
[YAML] Loading 3D-BBS parameters...
[YAML] Loading angular search range...
[YAML] Loading score threshold percentage...
[YAML] Loading downsample souce clouds parameters...
[Setting] Loading target pcds...
[Setting] Loading source pcds...
[Setting] Create output folder with date...
[Voxel map] Creating hierarchical voxel map...
[Voxel map] Execution time: 221833[msec] 
-------------------------------
[Localize] pcd file name: 1
[Localize] Execution time: 126.891[msec] 
[Localize] Score: 719
-------------------------------
[Localize] pcd file name: 10
[Localize] Execution time: 646.21[msec] 
[Localize] Score: 869
-------------------------------
[Localize] pcd file name: 11
[Localize] Execution time: 3351.11[msec] 
[Localize] Score: 907
-------------------------------
[Localize] pcd file name: 12
[Localize] Execution time: 2230.99[msec] 
[Localize] Score: 863
-------------------------------
[Localize] pcd file name: 13
[Localize] Execution time: 550.258[msec] 
[Localize] Score: 597
-------------------------------
[Localize] pcd file name: 14
[Localize] Execution time: 2292.04[msec] 
[Localize] Score: 1001
-------------------------------
[Localize] pcd file name: 15
[Localize] Execution time: 529.112[msec] 
[Localize] Score: 492
-------------------------------
[Localize] pcd file name: 16
[Localize] Execution time: 152.919[msec] 
[Localize] Score: 890
-------------------------------
[Localize] pcd file name: 17
[Localize] Execution time: 296.275[msec] 
[Localize] Score: 718
-------------------------------
[Localize] pcd file name: 18
[Localize] Execution time: 475.436[msec] 
[Localize] Score: 760
-------------------------------
[Localize] pcd file name: 19
[Localize] Execution time: 959.659[msec] 
[Localize] Score: 730
-------------------------------
[Localize] pcd file name: 2
[Localize] Execution time: 109.258[msec] 
[Localize] Score: 1208
-------------------------------
[Localize] pcd file name: 20
[Localize] Execution time: 572.528[msec] 
[Localize] Score: 670
-------------------------------
[Localize] pcd file name: 21
[Localize] Execution time: 511.264[msec] 
[Localize] Score: 666
-------------------------------
[Localize] pcd file name: 22
[Localize] Execution time: 175.054[msec] 
[Localize] Score: 836
-------------------------------
[Localize] pcd file name: 23
[Localize] Execution time: 137.486[msec] 
[Localize] Score: 822
-------------------------------
[Localize] pcd file name: 24
[Localize] Execution time: 92.3328[msec] 
[Localize] Score: 845
-------------------------------
[Localize] pcd file name: 25
[Localize] Execution time: 104.793[msec] 
[Localize] Score: 774
-------------------------------
[Localize] pcd file name: 26
[Localize] Execution time: 103.445[msec] 
[Localize] Score: 769
-------------------------------
[Localize] pcd file name: 27
[Localize] Execution time: 145.053[msec] 
[Localize] Score: 889
-------------------------------
[Localize] pcd file name: 28
[Localize] Execution time: 128.226[msec] 
[Localize] Score: 969
-------------------------------
[Localize] pcd file name: 29
[Localize] Execution time: 260.802[msec] 
[Localize] Score: 877
-------------------------------
[Localize] pcd file name: 3
[Localize] Execution time: 298.594[msec] 
[Localize] Score: 952
-------------------------------
[Localize] pcd file name: 30
[Localize] Execution time: 370.472[msec] 
[Localize] Score: 1031
-------------------------------
[Localize] pcd file name: 31
[Localize] Execution time: 223.518[msec] 
[Localize] Score: 748
-------------------------------
[Localize] pcd file name: 32
[Localize] Execution time: 104.014[msec] 
[Localize] Score: 695
-------------------------------
[Localize] pcd file name: 4
[Localize] Execution time: 575.496[msec] 
[Localize] Score: 1074
-------------------------------
[Localize] pcd file name: 5
[Localize] Execution time: 3405.11[msec] 
[Localize] Score: 1060
-------------------------------
[Localize] pcd file name: 6
[Localize] Execution time: 1023.24[msec] 
[Localize] Score: 1122
-------------------------------
[Localize] pcd file name: 7
[Localize] Execution time: 2332.08[msec] 
[Localize] Score: 984
-------------------------------
[Localize] pcd file name: 8
[Localize] Execution time: 311.617[msec] 
[Localize] Score: 752
-------------------------------
[Localize] pcd file name: 9
[Localize] Execution time: 2591.78[msec] 
[Localize] Score: 901
[Localize] Average time: 786[msec] per frame

Thanks,

U-AMC commented 9 months ago

@KOKIAOKI Hi, Thanks for the great work!

When I built an environment with docker to test it, it ran successfully on test_data! 😄

Related to docker, could I pull request for the execution and dockerfile?

I built and tested the environment in docker as shown below.

Version Ubuntu 22.04 NVIDIA driver 525.60.11 CUDA 12.0 Cudnn 8.0 Cmake 3.27.9 Eigen 3.4.0 PCL 1.12.1 terminal output :

root@multirobot1-CILAB:~/workspace/test/build# ./gpu_test ../config/test.yaml 
[YAML] Loading paths...
[YAML] Loading 3D-BBS parameters...
[YAML] Loading angular search range...
[YAML] Loading score threshold percentage...
[YAML] Loading downsample souce clouds parameters...
[Setting] Loading target pcds...
[Setting] Loading source pcds...
[Setting] Create output folder with date...
[Voxel map] Creating hierarchical voxel map...
[Voxel map] Execution time: 221833[msec] 
-------------------------------
[Localize] pcd file name: 1
[Localize] Execution time: 126.891[msec] 
[Localize] Score: 719
-------------------------------
[Localize] pcd file name: 10
[Localize] Execution time: 646.21[msec] 
[Localize] Score: 869
-------------------------------
[Localize] pcd file name: 11
[Localize] Execution time: 3351.11[msec] 
[Localize] Score: 907
-------------------------------
[Localize] pcd file name: 12
[Localize] Execution time: 2230.99[msec] 
[Localize] Score: 863
-------------------------------
[Localize] pcd file name: 13
[Localize] Execution time: 550.258[msec] 
[Localize] Score: 597
-------------------------------
[Localize] pcd file name: 14
[Localize] Execution time: 2292.04[msec] 
[Localize] Score: 1001
-------------------------------
[Localize] pcd file name: 15
[Localize] Execution time: 529.112[msec] 
[Localize] Score: 492
-------------------------------
[Localize] pcd file name: 16
[Localize] Execution time: 152.919[msec] 
[Localize] Score: 890
-------------------------------
[Localize] pcd file name: 17
[Localize] Execution time: 296.275[msec] 
[Localize] Score: 718
-------------------------------
[Localize] pcd file name: 18
[Localize] Execution time: 475.436[msec] 
[Localize] Score: 760
-------------------------------
[Localize] pcd file name: 19
[Localize] Execution time: 959.659[msec] 
[Localize] Score: 730
-------------------------------
[Localize] pcd file name: 2
[Localize] Execution time: 109.258[msec] 
[Localize] Score: 1208
-------------------------------
[Localize] pcd file name: 20
[Localize] Execution time: 572.528[msec] 
[Localize] Score: 670
-------------------------------
[Localize] pcd file name: 21
[Localize] Execution time: 511.264[msec] 
[Localize] Score: 666
-------------------------------
[Localize] pcd file name: 22
[Localize] Execution time: 175.054[msec] 
[Localize] Score: 836
-------------------------------
[Localize] pcd file name: 23
[Localize] Execution time: 137.486[msec] 
[Localize] Score: 822
-------------------------------
[Localize] pcd file name: 24
[Localize] Execution time: 92.3328[msec] 
[Localize] Score: 845
-------------------------------
[Localize] pcd file name: 25
[Localize] Execution time: 104.793[msec] 
[Localize] Score: 774
-------------------------------
[Localize] pcd file name: 26
[Localize] Execution time: 103.445[msec] 
[Localize] Score: 769
-------------------------------
[Localize] pcd file name: 27
[Localize] Execution time: 145.053[msec] 
[Localize] Score: 889
-------------------------------
[Localize] pcd file name: 28
[Localize] Execution time: 128.226[msec] 
[Localize] Score: 969
-------------------------------
[Localize] pcd file name: 29
[Localize] Execution time: 260.802[msec] 
[Localize] Score: 877
-------------------------------
[Localize] pcd file name: 3
[Localize] Execution time: 298.594[msec] 
[Localize] Score: 952
-------------------------------
[Localize] pcd file name: 30
[Localize] Execution time: 370.472[msec] 
[Localize] Score: 1031
-------------------------------
[Localize] pcd file name: 31
[Localize] Execution time: 223.518[msec] 
[Localize] Score: 748
-------------------------------
[Localize] pcd file name: 32
[Localize] Execution time: 104.014[msec] 
[Localize] Score: 695
-------------------------------
[Localize] pcd file name: 4
[Localize] Execution time: 575.496[msec] 
[Localize] Score: 1074
-------------------------------
[Localize] pcd file name: 5
[Localize] Execution time: 3405.11[msec] 
[Localize] Score: 1060
-------------------------------
[Localize] pcd file name: 6
[Localize] Execution time: 1023.24[msec] 
[Localize] Score: 1122
-------------------------------
[Localize] pcd file name: 7
[Localize] Execution time: 2332.08[msec] 
[Localize] Score: 984
-------------------------------
[Localize] pcd file name: 8
[Localize] Execution time: 311.617[msec] 
[Localize] Score: 752
-------------------------------
[Localize] pcd file name: 9
[Localize] Execution time: 2591.78[msec] 
[Localize] Score: 901
[Localize] Average time: 786[msec] per frame

Thanks,

Thanks for sharing!!

KOKIAOKI commented 9 months ago

@Taeyoung96 Thank you for sharing that!

Yes, please! However, may I merge the corrections for the issues indicated in the next thread first? After that, I would like to request a PR from you.

KOKIAOKI commented 9 months ago

@U-AMC @kimdaebeom Could you try the newest main branch to see if it works in your environment?

I found that gpu_test should use gpu_test.cpp instead of gpu_test.cu and use add_executable (gcc compiling) in CMakeLists Refer to the segmentation fault problem of pcl::io::loadPCDFile() with nvcc compilation

(@Taeyoung96 I'm sorry that I forgot to cut the brunch and pushed it to main)

Taeyoung96 commented 9 months ago

@KOKIAOKI
No problem! :+1:
When I retested with the new updated branch, I got the same score, but the time taken was significantly reduced!
I'm excited to learn something new from new branch.
Would it be okay if I sent you a PR?

terminal output :

root@multirobot1-CILAB:~/workspace/test/build# ./gpu_test ../config/test.yaml 
[YAML] Loading paths...
[YAML] Loading 3D-BBS parameters...
[YAML] Loading angular search range...
[YAML] Loading score threshold percentage...
[YAML] Loading downsample souce clouds parameters...
[Setting] Loading target pcds...
[Setting] Loading source pcds...
[Setting] Create output folder with date...
[Voxel map] Creating hierarchical voxel map...
[Voxel map] Execution time: 7616.3[msec] 
-------------------------------
[Localize] pcd file name: 1
[Localize] Execution time: 39.2529[msec] 
[Localize] Score: 719
-------------------------------
[Localize] pcd file name: 10
[Localize] Execution time: 206.158[msec] 
[Localize] Score: 869
-------------------------------
[Localize] pcd file name: 11
[Localize] Execution time: 1085.87[msec] 
[Localize] Score: 907
-------------------------------
[Localize] pcd file name: 12
[Localize] Execution time: 672.341[msec] 
[Localize] Score: 863
-------------------------------
[Localize] pcd file name: 13
[Localize] Execution time: 143.333[msec] 
[Localize] Score: 597
-------------------------------
[Localize] pcd file name: 14
[Localize] Execution time: 756.003[msec] 
[Localize] Score: 1001
-------------------------------
[Localize] pcd file name: 15
[Localize] Execution time: 125.542[msec] 
[Localize] Score: 492
-------------------------------
[Localize] pcd file name: 16
[Localize] Execution time: 45.562[msec] 
[Localize] Score: 890
-------------------------------
[Localize] pcd file name: 17
[Localize] Execution time: 80.0392[msec] 
[Localize] Score: 718
-------------------------------
[Localize] pcd file name: 18
[Localize] Execution time: 125.65[msec] 
[Localize] Score: 760
-------------------------------
[Localize] pcd file name: 19
[Localize] Execution time: 266.06[msec] 
[Localize] Score: 730
-------------------------------
[Localize] pcd file name: 2
[Localize] Execution time: 37.055[msec] 
[Localize] Score: 1208
-------------------------------
[Localize] pcd file name: 20
[Localize] Execution time: 154.671[msec] 
[Localize] Score: 670
-------------------------------
[Localize] pcd file name: 21
[Localize] Execution time: 133.951[msec] 
[Localize] Score: 666
-------------------------------
[Localize] pcd file name: 22
[Localize] Execution time: 50.7911[msec] 
[Localize] Score: 836
-------------------------------
[Localize] pcd file name: 23
[Localize] Execution time: 39.9124[msec] 
[Localize] Score: 822
-------------------------------
[Localize] pcd file name: 24
[Localize] Execution time: 27.8912[msec] 
[Localize] Score: 845
-------------------------------
[Localize] pcd file name: 25
[Localize] Execution time: 27.847[msec] 
[Localize] Score: 774
-------------------------------
[Localize] pcd file name: 26
[Localize] Execution time: 29.2153[msec] 
[Localize] Score: 769
-------------------------------
[Localize] pcd file name: 27
[Localize] Execution time: 43.5789[msec] 
[Localize] Score: 889
-------------------------------
[Localize] pcd file name: 28
[Localize] Execution time: 37.666[msec] 
[Localize] Score: 969
-------------------------------
[Localize] pcd file name: 29
[Localize] Execution time: 74.7134[msec] 
[Localize] Score: 877
-------------------------------
[Localize] pcd file name: 3
[Localize] Execution time: 86.0392[msec] 
[Localize] Score: 952
-------------------------------
[Localize] pcd file name: 30
[Localize] Execution time: 112.116[msec] 
[Localize] Score: 1031
-------------------------------
[Localize] pcd file name: 31
[Localize] Execution time: 60.9528[msec] 
[Localize] Score: 748
-------------------------------
[Localize] pcd file name: 32
[Localize] Execution time: 29.1845[msec] 
[Localize] Score: 695
-------------------------------
[Localize] pcd file name: 4
[Localize] Execution time: 176.928[msec] 
[Localize] Score: 1074
-------------------------------
[Localize] pcd file name: 5
[Localize] Execution time: 1166.1[msec] 
[Localize] Score: 1060
-------------------------------
[Localize] pcd file name: 6
[Localize] Execution time: 317.771[msec] 
[Localize] Score: 1122
-------------------------------
[Localize] pcd file name: 7
[Localize] Execution time: 759.323[msec] 
[Localize] Score: 984
-------------------------------
[Localize] pcd file name: 8
[Localize] Execution time: 88.5859[msec] 
[Localize] Score: 752
-------------------------------
[Localize] pcd file name: 9
[Localize] Execution time: 815.359[msec] 
[Localize] Score: 901
[Localize] Average time: 243[msec] per frame
KOKIAOKI commented 9 months ago

@Taeyoung96 Thank you for testing the newest branch also!

Maybe this reduction of the time is due to the past PR https://github.com/KOKIAOKI/3d_bbs/pull/5 I replaced score calculation by cuda graph with one kernel execution.

Would it be okay if I sent you a PR?

Yes! Adding docker support would be very helpful.

U-AMC commented 9 months ago

@U-AMC @kimdaebeom Could you try the newest main branch to see if it works in your environment?

I found that gpu_test should use gpu_test.cpp instead of gpu_test.cu and use add_executable (gcc compiling) in CMakeLists Refer to the segmentation fault problem of pcl::io::loadPCDFile() with nvcc compilation

(@Taeyoung96 I'm sorry that I forgot to cut the brunch and pushed it to main)

Got it. I'll share results ASAP.

kimdaebeom commented 9 months ago

@U-AMC I still have the same issues... I think you'd better use the docker image by @Taeyoung96 ! Thanks for your effort!

U-AMC commented 9 months ago

@U-AMC @kimdaebeom Could you try the newest main branch to see if it works in your environment?

I found that gpu_test should use gpu_test.cpp instead of gpu_test.cu and use add_executable (gcc compiling) in CMakeLists Refer to the segmentation fault problem of pcl::io::loadPCDFile() with nvcc compilation

(@Taeyoung96 I'm sorry that I forgot to cut the brunch and pushed it to main)

I got the segmentation issue solved, but now the issue comes with localization failure. I'll try it on an isolated container (besides to @Taeyoung96 's docker approach) and see if there are other environment issues.

U-AMC commented 9 months ago

@U-AMC @kimdaebeom Could you try the newest main branch to see if it works in your environment? I found that gpu_test should use gpu_test.cpp instead of gpu_test.cu and use add_executable (gcc compiling) in CMakeLists Refer to the segmentation fault problem of pcl::io::loadPCDFile() with nvcc compilation (@Taeyoung96 I'm sorry that I forgot to cut the brunch and pushed it to main)

I got the segmentation issue solved, but now the issue comes with localization failure. I'll try it on an isolated container (besides to @Taeyoung96 's docker approach) and see if there are other environment issues.

Re-installation of CUDA 12.1 solved the issue!! Docker environment also runs without any problem after CUDA update. Thanks for all contributions! I'll close the issue.