ubuntu18运行lio-sam

本文主要介绍在Ubuntu系统下运行LIO-SAM的相关内容。包括安装ROS依赖包、GTSAM 4.0.2等依赖,指出安装依赖可能出现的版本不对应、编译冲突等问题及解决办法。还提及运行LIO-SAM时可能出现的错误,如库文件位置问题、boost版本冲突等,并给出解决措施。

一、安装依赖

1.安装ROS依赖包

sudo apt-get install -y ros-melodic-navigation
sudo apt-get install -y ros-melodic-robot-localization
sudo apt-get install -y ros-melodic-robot-state-publisher

安装处出现【无法定位软件包】,是因为安装的依赖跟ubuntu版本不对应。比如ubuntu18.04对应melodic,将对应名称修改即可解决。

如果没安装或者没有正确安装依赖,可能出现下述问题

process[robot_state_publisher-5]: started with pid [4647]
ERROR: cannot launch node of type [robot_localization/ekf_localization_node]: robot_localization
ROS path [0]=/opt/ros/melodic/share/ros
ROS path [1]=/home/yinton/catkin_ws/src
ROS path [2]=/opt/ros/melodic/share
ERROR: cannot launch node of type [robot_localization/navsat_transform_node]: robot_localization
ROS path [0]=/opt/ros/melodic/share/ros
ROS path [1]=/home/yinton/catkin_ws/src
ROS path [2]=/opt/ros/melodic/share
process[lio_sam_rviz-8]: started with pid [4648]

2.安装GTSAM 4.0.2 (因子图库)

下载地址 https://github.com/borglab/gtsam 找到4.0.2版本,下载,解压
cd gtsam
mkdir build && cd build
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..
sudo make install -j8

据说非4.0.2版本容易出问题。若更换gtsam版本,重新编译即可覆盖。记得在catkin_make之前删除重复的gtsam包,不然无法编译。

选择eigen版本,虽然在此处不会出错,但是会在编译lio-sam时会出现版本冲突的错误

###############################################################################
# Option for using system Eigen or GTSAM-bundled Eigen
### These patches only affect usage of MKL. If you want to enable MKL, you *must*
### use our patched version of Eigen
### See:  http://eigen.tuxfamily.org/bz/show_bug.cgi?id=704 (Householder QR MKL selection)
###       http://eigen.tuxfamily.org/bz/show_bug.cgi?id=705 (Fix MKL LLT return code)
option(GTSAM_USE_SYSTEM_EIGEN "Find and use system-installed Eigen. If 'off', use the one bundled with GTSAM" OFF)
option(GTSAM_WITH_EIGEN_UNSUPPORTED "Install Eigen's unsupported modules" OFF)
set(GTSAM_USE_SYSTEM_EIGEN ON)                ##需要添加使用系统安装的eigen
# Switch for using system Eigen or GTSAM-bundled Eigen
if(GTSAM_USE_SYSTEM_EIGEN)
	find_package(Eigen3 REQUIRED)

	# Use generic Eigen include paths e.g. <Eigen/Core>
	set(GTSAM_EIGEN_INCLUDE_FOR_INSTALL "${EIGEN3_INCLUDE_DIR}")
	
	# check if MKL is also enabled - can have one or the other, but not both!
	# Note: Eigen >= v3.2.5 includes our patches
	if(EIGEN_USE_MKL_ALL AND (EIGEN3_VERSION VERSION_LESS 3.2.5))
	  message(FATAL_ERROR "MKL requires at least Eigen 3.2.5, and your system appears to have an older version. Disable GTSAM_USE_SYSTEM_EIGEN to use GTSAM's copy of Eigen, or disable GTSAM_WITH_EIGEN_MKL")
	endif()

可能需要安装

安装 TBB

 sudo apt-get install libtbb-dev

安装MKL

官网链接

sample:

sudo bash
#<type your user password when prompted.  this will put you in a root shell>
# cd to /tmp where this shell has write permission
cd /tmp
# now get the key:
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
# now install that key
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
# now remove the public key file exit the root shell
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
exit

Add the APT Repository

sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'
sudo apt-get update

要安装英特尔® 性能库之一的特定版本

sudo apt-get install intel-mkl-2018.2-046

要安装适用于 Python* 的英特尔® 分发版的特定语言版本:

sudo apt-get install intelpython3

运行LIO-SAM

下载和编译LIO-SAM

cd ~/catkin_ws/src
git clone https://github.com/TixiaoShan/LIO-SAM
cd ..
catkin_make

参数配置,本文以park.bag为例,该数据集带GPS数据,需要修改如下参数

imuTopic: "imu_raw"
gpsTopic: "odometry/gps"
useImuHeadingInitialization: true

运行LIO-SAM

source devel/setup.bash
roslaunch lio_sam run.launch
rosbag play ~/date/park.bag

可能出现的错误

运行时报错
error while loading shared libraries: [libmetis-gtsam.so](https://link.zhihu.com/?target=http%3A//libmetis-gtsam.so/): cannot open shared object file: No such file or directory

解决: sudo ln -s /usr/local/lib/libmetis-gtsam.so /usr/lib/libmetis-gtsam.so

巨坑
运行时报错

[lio_sam_mapOptmization-5] process has died [pid 260348, exit code -11

[lio_sam_mapOptmization-2]

[lio_sam_mapOptmization-3]

解决:

方法一 、gesam编译时使用,cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF ..

方法二、解决方法

实际问题是库文件libmetis.so 的位置。它是一个运行时库,但是当应用程序查找它时,它的位置不在预期的目录中。在通过运行命令sudo make install -j8安装库gtsam 时,文件libmetis.so安装在/usr/local/lib/的默认位置,但是当我们启动 ros 工作区时,运行时库查看位置/opt/ros/melodic/库/

cd /usr/local/lib/
sudo cp libmetis.so /opt/ros/melodic/lib/

方法三、(实际解决问题)

删除了自己安装的boost1.68

sudo rm -r /usr/local/include/boost
sudo rm -r /usr/local/lib/libboost*

原理不明,因为看得到了编译lio-sam有一个warning可能会发生boost的版本冲突,就试了试,虽然再次编译的时候会出现errormake[2]: *** 没有规则可制作目标“/usr/local/lib/libboost_serialization.so”,但是只需要将libboost_serialization复制到指定路径下即可,

sudo cp  /usr/lib/x86_64-linux-gnu/libboost_serialization.so /usr/local/lib/```

在这里插入图片描述

### 在 Ubuntu 20.04安装运行 LIO-SAM 的详细指南 #### 准备工作 在开始之前,确保已经安装了必要的依赖项以及配置好 ROS 环境。以下是详细的步骤: --- #### 1. 下载源码 通过 Git 克隆 LIO-SAM 的官方仓库至本地环境: ```bash git clone https://github.com/TonyRobotics/LIO-SAM.git ~/catkin_ws/src/ cd ~/catkin_ws/src/LIO-SAM && git submodule update --init --recursive ``` 此命令会克隆主项目及其子模块[^2]。 --- #### 2. 安装 GTSAM 库 GTSAMLIO-SAM 运行的核心依赖之一,在 Ubuntu 20.04 中可以通过 PPA 添加并安装特定版本的库: ```bash sudo add-apt-repository ppa:borglab/gtsam-release-4.1 sudo apt-get update sudo apt install libgtsam-dev libgtsam-unstable-dev ``` 上述操作将安装 GTSAM 版本 4.1,这是兼容 LIO-SAM 所需的最低版本[^3]。 --- #### 3. 可选依赖:TBB 和 MKL 尽管 TBB 被标记为可选项,但它能够显著提升性能,因此推荐安装: ```bash sudo apt-get install libtbb-dev ``` 关于 Intel MKL,虽然理论上可以提高计算效率,但在实际应用中并未表现出明显优势,并且其安装过程较为复杂。如果遇到困难可以直接忽略该部分设置。在 CMake 配置阶段可通过 `MKL=OFF` 参数禁用它[^4]: ```bash cmake .. -DMKL=OFF ``` --- #### 4. 构建 Catkin 工作空间 进入 Catkin 工作目录后执行以下命令完成构建流程: ```bash cd ~/catkin_ws/ rosdep install --from-paths src --ignore-src -r -y catkin_make -DCMAKE_BUILD_TYPE=Release source devel/setup.bash ``` 这些脚本不仅解决了包间依赖关系问题,还能优化最终二进制文件大小与速度表现[^1]。 --- #### 5. 导入数据集测试功能 为了验证整个系统的正常运作状态,可以从公开资源获取一组 LiDAR 数据作为输入样本;或者利用仿真工具生成实时流式点云序列供后续分析处理之用。具体方法参见文档中的实验章节描述。 --- #### 常见错误排查 - **CMake 错误**: 如果发现缺少某些头文件路径定义,则重新检查是否遗漏任何第三方组件加载环节。 - **ROS 插件缺失**: 当提示找不到指定类型的节点服务接口时,请确认 ros-noetic-*系列软件包已被完全部署到位。 --- ### 总结 按照以上指导顺利完成所有前置条件布置之后,即可启动可视化界面观察融合定位效果变化趋势图谱展示等内容.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值