编译环境:ubuntu20.04+ros noetic + opencv 4.2.0 + gtsam4.0.2+ Ceres1.14.0(一定要注意版本信息,我复现的时候更换了三次的gtsam的版本,ceres-solver的版本也是进行了更换)
gstam4.0.3下载地址:https://github.com/borglab/gtsam/releases/tag/4.0.3
ceres2.0.0下载地址:https://github.com/ceres-solver/releases/tag/2.0.0
文献阅读参考翻译:https://zhuanlan.zhihu.com/p/387784945
参考资料:
LVI-SAM:配置环境、安装测试、适配自己采集数据集-CSDN博客
Ubuntu20.04部署编译LVI-SAM_lvisam bag数据-CSDN博客
亲自部署LIO-SAM、LVI-SAM的全过程经历01——跑通_lvi-sam运行m2dgr数据集-CSDN博客
复现流程:
一、gtsam安装配置:
sudo add-apt-repository ppa:borglab/gtsam-release-4.0
sudo apt install libgtsam-dev libgtsam-unstable-dev
二、Ceres下载安装
sudo apt-get install -y libgoogle-glog-dev
sudo apt-get install -y libatlas-base-dev
git clone https://github.com/ceres-solver/ceres-solver/archive/1.14.0.zip
(或者直接利用网址下载,然后解压)
cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..
sudo make install -j4
三、创建工作空间并下载源码
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_worksapce
git clone https://github.com/TixiaoShan/LVI-SAM
四、源码修改
1、LVI-SAM/CMakeLists.txt
将第8行中set(CMAKE_CXX_FLAGS"-std=c++11“)修改11为14、
第37行后面加入find_package(Boost REQUIRED COMPONENTS timer thread serialization chrono)
2、LVI-SAM/src/lidar_odometry/utility.h
LVI-SAM/src/visual_odometry/visual_loop/parameters.h
LVI-SAM/src/visual_odometry/visual_feature/parameters.h
修改头文件#include <opencv/cv.h>为#include <opencv2/opencv.hpp>
3、LVI-SAM/src/visual_odometry/visual_loop/ThirdParty/DVision/BRIEF.cpp中添加头文件#include<opencv2/imgproc.hpp>
将53行CV_RGB2GRAY为cv::COLOR_RGB2GRAY
4、LVI-SAM/src/visual_odometry/visual_loop/keyframe.cpp第240行243行修改CV_FONT_HERSHEY_SIMPLEX为cv::FONT_HERSHEY_SIMPLEX
5、LVI-SAM/src/visual_odometry/visual_loop/loop_detection.cpp第64、82、92、112、149行修改CV_FONT_HERSHEY_SIMPLEX为cv::FONT_HERSHEY_SIMPLEX
五、编译LVI-SAM
sudo apt-get install ros-noetic-fake-localization
sudo apt-get install ros-noetic-robot-localization
cd ~/catkin_ws
catkin_make
六、运行数据集
cd ~/catkin_ws/devel
source setup.bash
roslaunch lvi-sam run.launch
rosbag play handheld.bag
数据集:参考资料一
---------------------------------------------------------------------------------------------------------------------------------
下面是我第一次复现所出现的问题,上面的复现流程是第二次操作,可只看上面,当有错误出现可以参考一下下面可能遇到的问题。
复现过程出现的问题:
问题一:
The specified base path "工作空间" contains a package but "catkin_make" must be invoked in the root of workspace(catkin_make 编译出现的问题)
解决办法:将工作空间中的include , CmakeList.txt ,package.xml文件删除掉即可。
问题二:
pose_local_parameterization.h:11:1: error: expected class-name before ‘{’ token
解决办法:未解决(更换了gtsam的版本)
问题三:
error: ‘LocalParameterization’ is not a member of ‘ceres’
问题原因:ceres-solver版本问题2.2.0,降低版本2.0.0
问题三:
error: static assertion failed: Error: GTSAM was built against a different version of Eigen
原因:use system eigen:OFF
解决办法:cmake/HandleEigen.cmake 在if(GTSAM_USE_SYSTEM_EIGEN)之前加入set(GTSAM_USE_SYSTEM_EIGEN ON)重新编译

问题四: error: ‘CV_FONT_HERSHEY_SIMPLEX’ was not declared in this scope
解决办法:将相应的文件里面错误行改为:cv:: FONT_HERSHEY_SIMPLEX
问题五:error: conversion from ‘std::shared_ptr<gtsam::PreintegrationParams>’ to non-scalar
解决办法:重新下载的gtsam的版本4.0.3
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------以下准备做LVI-SAM硬件端的部署
适配自己设备需要修改源码的参考资料:
问题一:对于终端报错Large velocity,reset IMU-preintegration!
参考资料:编译基于LIO-SAM的liorf“Large velocity, reset IMU-preintegration!“-CSDN博客
LVI-SAM代码阅读:由粗到精学习LVI-SAM - 知乎
LVI-SAM evo评估:LVI-SAM评估_liosam 保存轨迹-CSDN博客
LIO_SAM部署参考:LIO-SAM运行自己数据包遇到的问题解决--SLAM不学无数术小问题_速度过快,liosam建图会飘-CSDN博客
注意点:
一、数据格式:IMU、LIDAR
坐标系的一致性要求:rosbag info xxxx.bag(查询数据集的topic)
二、lidar与imu外参标定,imu内参标定
三、修改源代码参数
文章详细描述了在Ubuntu20.04环境下配置ROSNoetic、OpenCV4.2.0等库时遇到的编译问题,包括工作空间路径问题、依赖版本冲突和头文件错误,提供了相应的解决方法。
549

被折叠的 条评论
为什么被折叠?



