다음 과정을 그대로 따라하자
sudo apt-get update
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
# catkin_ws와 별개로 하기 위해 catkin_car_ws로 만들어주자.
# (cartographer는 빌드를 catkin build로 하지않아서)
mkdir catkin_car_ws
cd catkin_car_ws
wstool init src
wstool merge -t src <https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall>
wstool update -t src
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y 할 때 에러가 발생할텐데
cartographer 패키지로 가서 package.xml 파일의 46번 줄에 있는 <depend>libabsl-dev</depend>
을 지워주자.
catkin_make_isolated --install --use-ninja
만약 빌드 시에 위와 같은 오류가 발생하면, 다음과 같이 jinja2 버전을 낮추어주자.
pip show jinja2 // jinja2 버전 확인 (원래는 3.1.4)
pip install Jinja2==3.0.3 // jinja2 버전 낮추기
그 후에 bag 파일을 통해 cartographer를 실행해주자
wget -P ~/Downloads <https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag>
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag