koide3 / hdl_localization

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

velodyne error #14

Closed melhousni closed 5 years ago

melhousni commented 5 years ago

Hello, When using this package on my own data, I get this error related to the velodyne noedelet manager :

ROS_MASTER_URI=http://localhost:11311

process[pcd_filter-1]: started with pid [6045] process[velodyne_nodelet_manager-2]: started with pid [6046] process[globalmap_server_nodelet-3]: started with pid [6047] process[hdl_localization_nodelet-4]: started with pid [6048] [ INFO] [1551999333.124715664]: Initializing nodelet with 8 worker threads. [ INFO] [1551999349.304315088, 1544280386.764437095]: search_method DIRECT7 is selected [ INFO] [1551999349.305892338, 1544280386.764437095]: enable imu-based prediction [ INFO] [1551999349.318159343, 1544280386.764437095]: globalmap received! [ INFO] [1551999354.942834302, 1544280386.764437095]: initial pose received!! [velodyne_nodelet_manager-2] process has died [pid 6046, exit code -11, cmd /opt/ros/kinetic/lib/nodelet/nodelet manager name:=velodyne_nodelet_manager log:=/home/mahdi/.ros/log/19b150fa-412c-11e9-8462-74d435ebc48a/velodyne_nodelet_manager-2.log]. log file: /home/mahdi/.ros/log/19b150fa-412c-11e9-8462-74d435ebc48a/velodyne_nodelet_manager-2*.log ^C[hdl_localization_nodelet-4] killing on exit [globalmap_server_nodelet-3] killing on exit [pcd_filter-1] killing on exit terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector >' what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument ^C^Cshutting down processing monitor... ... shutting down processing monitor complete done

I tried commenting out the 7th line in the launch file but then the package isnt working anymore. Any suggestions? Thank you

koide3 commented 5 years ago

Hi @melhousni , Could you try to launch the nodelets in standalone mode?

Change:

<node pkg="nodelet" type="nodelet" name="globalmap_server_nodelet" args="load hdl_localization/GlobalmapServerNodelet $(arg nodelet_manager)">

to: <node pkg="nodelet" type="nodelet" name="globalmap_server_nodelet" args="standalone hdl_localization/GlobalmapServerNodelet $(arg nodelet_manager)">

HappySamuel commented 5 years ago

Hi @koide3

What's the different between using load and standalone in this hdl_localization?

Samuel

koide3 commented 5 years ago

@HappySamuel ,

In the standalone mode, all the modules are started as separated nodes, while in the load model, they are loaded in a single node (nodelet manager) as nodelets. See http://wiki.ros.org/nodelet for details.

Starting nodelets in the standalone mode is sometimes helpful to find the problem.

HappySamuel commented 5 years ago

Hi @koide3

Thank you for the explanation.

Samuel