Autoware - can't launch .launch file without runtime manager
- Ubuntu 16.04
- Autoware Docker pre-built container
autoware/autoware:latest-melodic-cuda
- Local ROS version: Kinetic
Hi all,
I'm trying to use most of Autoware's packages without launching them from the runtime manager.
I use a .launch file that launches all the packages and nodes I need. This works fine, except for ndt_matching.launch
from the lidar_localizer
package.
I realized that even by running:
cd /home/autoware/Autoware
source install/setup.bash
roslaunch lidar_localizer ndt_matching.launch
I get the following error:
auto-starting new master process[master]: started with pid [12645] ROS_MASTER_URI=http://localhost:11311
setting /run_id to 5739dd7a-1c64-11ea-8d07-48a472bde50c process[rosout-1]: started with pid [12656] started core service [/rosout] process[ndt_matching-2]: started with pid [12659] 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-2] process has died [pid 12659, exit code -6, cmd /home/autoware/Autoware/install/lidar_localizer/lib/lidar_localizer/ndt_matching __name:=ndt_matching __log:=/root/.ros/log/5739dd7a-1c64-11ea-8d07-48a472bde50c/ndt_matching-2.log]. log file: /root/.ros/log/5739dd7a-1c64-11ea-8d07-48a472bde50c/ndt_matching-2*.log
Any idea why? I realized that this doesn't happen when I first launch the runtime manager and then kill the runtime manager's node from the command line and eventually launch ndt_matching.launch. This must be something configured when launching roslaunch runtime_manager runtime_manager.launch
.
By the way, by default the ndt_matching method used is pcl_generic
, and not pcl_anh
or other, which I have read had some issues in the past with the same kind of error.