测试LVI"/>
Ubuntu16.04编译测试LVI
Ubuntu16.04编译测试LVI_SAM过程
1、前期准备
ROS、Eigen(由于之前相关使用,安装Eigen3.4)等。
2、重点依赖安装
(1)gtsam安装
gtsam是一个优化的库,有的教程描述安装gtsam-4.0.2版本,但是与现有系统冲突(问题如博客),因此改为了gtsam-4.0.0-alpha2版本安装,可通过。具体安装方式
mkdir build && cd build # 创建build文件夹
cmake -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF .. #注意参数
sudo make install
(2)ceres安装
ceres是一个用于雷达后端优化的库,教程上建议使用ceres-solver-1.14.0,但是出现如下错误:`
/home/seivl/Download/ceres-solver-1.14.0/internal/ceres/gtest/gtest.h:10445:35: error: variable or field ‘it’ declared voidfor (typename C::const_iterator it = container.begin();^
internal/ceres/CMakeFiles/residual_block_test.dir/build.make:81: recipe for target 'internal/ceres/CMakeFiles/residual_block_test.dir/residual_block_test.o' failed
这是因为与Eigen3.4冲突(ceres-solver-1.14.0适配于Eigen3.2.5),下载ceres-solver-2.0.0进行安装即可。安装过程为:
mkdir build && cd build
cmake..
make
sudo make install
3、LVI_SAM 编译
(1)错误一
c++: internal compiler error: Killed (program cc1plus)
编译过程出现上述错误,有的博客说是内存不够,采用的增加虚拟内存的方式,具体见
采用后,仍有些卡顿,故我在开发环境中编译(qtcreator)通过后,再采用catkin_make编译。
(2)错误二
Specified unknown feature "cxx_std_14" for target "lvi_sam_visual_loop".
Specified unknown feature "cxx_std_14" for target "lvi_sam_visual_odometry".
解决办法:
将Cmakelist.txt中 set(CMAKE_CXX_FLAGS "-std=c++11")
修改为set(CMAKE_CXX_FLAGS "-std=c++14")
,再进行编译即可,因为原本C++11版本过低。虽然修改后仍会提示错误,但是能够编译通过。
4、LVI_SAM数据集测试
(1)数据集下载
官方地址:
=sharingy也有网友分享的网盘下载链接
;提取码:088v
;提取码:g2q7
(2)set(CMAKE_BUILD_TYPE “Release”)不可更改问题
Cmakelist.txt中的Release如果更改为Debug模式,会导致数据集跑起来出现夸张飘逸问题,无法建图,不能更改,暂时没有找到原因。
参考资料
=MzU1NjEwMTY0Mw==&mid=2247532503&idx=1&sn=f0bb96e8e5970dc8c07734ccad047243&chksm=fbc806b3ccbf8fa5a85713f94ee29d86d814496c69bcf246bd1dc5957d91851a891bfc41c8db&scene=27
更多推荐
Ubuntu16.04编译测试LVI
发布评论