1. 项目背景与问题概述
最近在Ubuntu 20.04上部署LIO-SAM(Lidar Inertial Odometry and Mapping)时,遇到了不少编译问题。作为一款基于激光雷达和IMU的紧耦合SLAM系统,LIO-SAM在机器人导航和自动驾驶领域应用广泛,但它的依赖环境复杂,新手很容易在编译阶段就踩坑。我在实际部署过程中,从系统配置到依赖安装,再到最后的编译调试,总结出了一套完整的解决方案。
LIO-SAM的核心是基于GTSAM因子图优化的激光-惯性里程计,它需要ROS Noetic、PCL、Eigen、GTSAM等一系列库的支持。Ubuntu 20.04虽然是官方推荐的系统版本,但由于不同硬件环境和历史安装残留,编译时可能会出现各种奇怪的问题。下面我就把整个解决过程拆解开来,包括环境准备、依赖安装、常见报错及解决方案。
2. 环境准备与依赖安装
2.1 系统基础环境配置
首先确认系统版本和ROS环境:
bash复制lsb_release -a # 确认是Ubuntu 20.04
rosversion -d # 确认是noetic
如果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 ros-noetic-desktop-full
注意:安装ROS后务必执行
source /opt/ros/noetic/setup.bash并写入.bashrc,否则后续编译会报找不到ROS包的错误。
2.2 关键依赖库安装
LIO-SAM的核心依赖包括:
- GTSAM (>=4.0.0)
- PCL (>=1.10)
- Eigen (>=3.3.7
