Ask Your Question

[ndt_matching] gpu version died

asked 2019-07-27 09:00:55 -0500

hit_leon gravatar image


the ndt_matching node with pcl_generic method works fine,
but pcl_anh_gpu method always crashed when started


gpu: nvidia gtx980m
gpu driver version: 410
cuda version: 10.0
cudnn version:
ros: melodic
autoware: 1.12.0 and master

steps to reproduce

1. in simulation tab, select bag file (demo data provided by autoware), press start and pause
2. in setup tab, press tf and vehicle model
3. in map tab
    select and press point cloud (demo data provided by autoware)
    select and press vector map (demo data provided by autoware)
    select and press tf (demo data provided by autoware)
4. in simulation tab, press pause again to resume, 
    in rviz, verify that the pcd map and vector map are loaded correctly
5. in sensing tab, click voxel_grid_filter with default parameters
6. in computing tab, click nmea2tfpose with default parameters
    select pcl_anh_gpu method and click ndt_matching
7. in simulation tab, press pause to resume
8. then ndt_matching died with error message as below

error messages

Error: out of memory /home/leon/ 181 terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >' what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument [ndt_matching-1] process has died [pid 8436, exit code -6, cmd /home/leon/ __name:=ndt_matching __log:=/home/leon/.ros/log/a41e9918-b072-11e9-96f6-9cb6d01138d9/ndt_matching-1.log]. log file: /home/leon/.ros/log/a41e9918-b072-11e9-96f6-9cb6d01138d9/ndt_matching-1*.log

contents of ndt_matching-1-stdout.log

Log file: method_type: 2 use_gnss: 1 queue_size: 1 offset: linear get_height: 0 use_local_transform: 0 use_odom: 0 use_imu: 0 imu_upside_down: 0 imu_topic: /imu_raw localizer: velodyne (tf_x,tf_y,tf_z,tf_roll,tf_pitch,tf_yaw): (1.2, 0, 2, 0, 0, 0) Update points_map.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2019-07-28 21:19:55 -0500

Yamato Ando gravatar image

Thank you for reporting the bug.

pcl_anh_gpu is an algorithm that consumes a lot of memory. If the map is large or the resolution of the NDT is small, the memory will be insufficient and the process will die. A similar bug has been identified for the CPU implementation pcl_anh.

Since pcl_anh_gpu,pcl_anh and pcl_openmp have known bugs, I recommend usingpcl_generic.

If you like, please report the bug to autoware gitlab.

edit flag offensive delete link more


thanks for your reply, and I have reported this bug to gitlab.

hit_leon gravatar image hit_leon  ( 2019-07-29 01:05:09 -0500 )edit

@yamato-ando Are there Issues on the Gitlab site for these known bugs? I don't see them anywhere.

Josh Whitley gravatar image Josh Whitley  ( 2019-09-11 16:54:03 -0500 )edit

@Maximus5684 I'm sorry. Later I will report the bugs I know.

Yamato Ando gravatar image Yamato Ando  ( 2019-09-13 01:24:01 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2019-07-27 09:00:55 -0500

Seen: 646 times

Last updated: Jul 28 '19