#3 cartographer_ros process crashes on ROS on Fedora
Opened 4 years ago by lukehutchison. Modified 4 years ago

I installed the Fedora ROS packages from this COPR repository on Fedora 29. I then tried compiling Google Cartographer for ROS (cartographer_ros). Cartographer crashes with the following message:

[cartographer_node-3] process has died [pid 6674, exit code -11, cmd /home/luke/catkin_ws/install_isolated/lib/cartographer_ros/cartographer_node -configuration_directory /home/luke/catkin_ws/install_isolated/share/cartographer_ros/configuration_files -configuration_basename backpack_3d.lua points2_1:=horizontal_laser_3d points2_2:=vertical_laser_3d __name:=cartographer_node __log:=/home/luke/.ros/log/aef6f06a-a488-11e9-b5c4-00e04c6818e8/cartographer_node-3.log].
log file: /home/luke/.ros/log/aef6f06a-a488-11e9-b5c4-00e04c6818e8/cartographer_node-3*.log

This may not actually be this Fedora ROS build's fault, but nonetheless, Cartographer is a good stress test for ROS, so it may be worth trying to get Cartographer working with your next ROS build.

I followed the instructions here:

https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html
https://google-cartographer.readthedocs.io/en/latest/#system-requirements

Then these instructions, which triggered the crash:

https://google-cartographer-ros.readthedocs.io/en/latest/demos.html

This is the complete script I used:

# Install extra packages for Cartographer:
# (Parallels Ubuntu setup: https://google-cartographer.readthedocs.io/en/latest/#system-requirements )

dnf -y install protobuf protobuf-devel clang gcc-c++ git cairo-devel lua-devel suitesparse-devel ninja-build python2-sphinx python3-wstool python3-rosdep lapack-devel metis-devel tbb-devel ros-kinetic-pcl_conversions-devel ros-kinetic-tf2_eigen-devel

# Replace system gmock and gtest (depended upon by the ROS packages) with googletest

rpm -e --nodeps gflags gflags-devel glog glog-devel gmock gmock-devel gtest gtest-devel

cd /tmp
git clone https://github.com/gflags/gflags.git
cd gflags
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DBUILD_SHARED_LIBS=ON . && make && sudo make install && sudo ldconfig

cd /tmp
git clone https://github.com/google/glog.git
cd glog
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DBUILD_SHARED_LIBS=ON . && make && sudo make install && sudo ldconfig

cd /tmp
git clone https://github.com/google/googletest.git
cd googletest
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DBUILD_SHARED_LIBS=ON . && make && sudo make install && sudo ldconfig
cd

# Set up ROS

source /usr/lib64/ros/setup.bash
sudo rosdep init
rosdep update

# Create a new cartographer_ros workspace in ‘catkin_ws’.

mkdir catkin_ws
cd catkin_ws
python3-wstool init src
python3-wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
python3-wstool update -t src

# Disable tests -- they have a linkage error that I couldn't resolve: replace line "foreach(ABS_FIL ${ALL_TESTS})" with "foreach(ABS_FIL)" in:

emacs src/cartographer/CMakeLists.txt

# Build and install

catkin_make_isolated --install --use-ninja

PS The reason for building gflags, glog, and googletest (gmock + gtest) is the following, which is another problem with ROS on Fedora:

https://github.com/googlecartographer/cartographer/issues/1611
https://github.com/ceres-solver/ceres-solver/issues/491

Login to comment on this ticket.

Metadata