1. 项目概述
最近在Ubuntu 20.04上编译LIO-SAM时遇到了一些棘手的问题,特别是关于GTSAM和TBB库的版本冲突问题。经过多次尝试和排查,终于找到了可靠的解决方案。这里将完整记录整个编译过程、遇到的问题以及最终的解决方法,希望能帮助到同样遇到这些问题的开发者。
LIO-SAM是一个基于激光雷达和IMU的紧耦合SLAM系统,它依赖于GTSAM(Georgia Tech Smoothing and Mapping)库进行因子图优化。在Ubuntu 20.04上编译时,最大的挑战来自于GTSAM和TBB(Threading Building Blocks)库的版本兼容性问题。
2. 环境准备与依赖安装
2.1 系统基础环境
首先确保系统已经安装了基本的开发工具:
bash复制sudo apt update
sudo apt install -y build-essential cmake git
2.2 安装ROS Noetic
由于LIO-SAM是基于ROS的,需要先安装ROS Noetic(Ubuntu 20.04对应的ROS版本):
bash复制sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install -y ros-noetic-desktop-full
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
2.3 安装其他依赖
安装必要的系统依赖:
bash复制sudo apt install -y libboost-all-dev libeigen3-dev libpcl-dev ros-noetic-
