高精度导航对自主机器人和自动驾驶等应用至关重要。鉴于GNSS/INS/Camera(GIC)融合导航在复杂环境下的高精度和高可靠的表现,现已成为当下研究的热点。近期,上海交通大学开源了GICI-LIB,该代码以可扩展的设计理念,实现了支持SPP、RTK、PPP等多种GNSS定位算法的GIC传感器之间多种形式的松/紧组合。并附加各场景的测试数据。本次仅按照说明文档对GICI-LIB进行Build,在此过程中遇到诸多问题,现对问题进行归纳。本机采用Win11+VMware 17 Pro+Ubuntu 20.04组合的方式搭建调试环境。
一、简介
GICI-LIB的依赖项见下图,并附上必备依赖项的链接:Eigen、OpenCV、Yaml-cpp、Gflags、Glog和Ceres-Slover。
注:建议严格按照给定版本进行下载,避免出现各种问题;同时安装顺序按照上图序号进行,其中先配置Gflags,再配置Glog。
二、配置依赖项
1. Eigen-3.3.7
链接:https://gitlab.com/libeigen/eigen/-/releases/3.3.7
(1)解压对应源码文件,如eigen-3.3.7.zip,解压命令:unzip eigen-3.3.7.zip
(2)用终端打开文件夹,创建并进入build文件夹,输入命令:mkdir build && cd build
(3)cmake ..
(4)make -j4
(5)sudo make install //建议sudo+指令,否则可能无权限
2. OpenCV-4.2.0
链接:https://github.com/opencv/opencv/tree/4.2.0
(1)解压对应源码文件,如opencv-4.2.0.zip,解压命令:unzip opencv-4.2.0.zip
(2)用终端打开文件夹,创建并进入build文件夹,输入命令:mkdir build && cd build
(3)cmake ..
(4)make -j4
(5)sudo make install
3. Yaml-cpp-0.6.0
链接:https://github.com/jbeder/yaml-cpp/tree/yaml-cpp-0.6.0
(1)解压对应源码文件,如yaml-cpp-yaml-cpp-0.6.0.zip,解压命令:unzip yaml-cpp-yaml-cpp-0.6.0.zip
(2)用终端打开文件夹,创建并进入build文件夹,输入命令:mkdir build && cd build
(3)cmake .. -DBUILD_SHARED_LIBS=ON //-DBUILD_SHARED_LIBS=ON代表 动态库
(4)make -j4
(5)sudo make install
(6)sudo ldconfig //当用户安装了一个新的动态链接库时,就需要手工运行这个命令
4. Gflags-2.2.2
链接:https://github.com/gflags/gflags/tree/v2.2.2
(1)解压对应源码文件,如gflags-2.2.2.zip,解压命令:unzip gflags-2.2.2.zip
(2)用终端打开文件夹,创建并进入build文件夹,输入命令:mkdir build && cd build
(3)cmake .. -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON
(4)make -j4
(5)sudo make install
(6)sudo ldconfig
5. Glog-0.6.0
链接:https://github.com/google/glog/tree/v0.6.0
(1)解压对应源码文件,如glog-0.6.0.zip,解压命令:unzip glog-0.6.0.zip
(2)用终端打开文件夹,创建并进入build文件夹,输入命令:mkdir build && cd build
(3)cmake .. -DBUILD_SHARED_LIBS=ON
(4)make -j4
(5)sudo make install
(6)sudo ldconfig
6. Ceres Slover-2.1.0
链接:https://github.com/ceres-solver/ceres-solver/tree/2.1.0
(1)解压对应源码文件,如ceres-solver-master.zip,解压命令:unzip ceres-solver-master.zip
(2)用终端打开文件夹,创建并进入build文件夹,输入命令:mkdir build && cd build
(3)cmake ..
(4)make -j4
(5)sudo make install
三、Build GICI
1. 下载GICI_LIB源码,链接:https://github.com/chichengcn/gici-open
2. 基于VS Code打开源码文件夹
3. 在工程目录下打开终端,输入以下命令:
(1)mkdir build && cd build
(2)cmake .. -DCMAKE_BUILD_TYPE=Release
(3)make -j4 //此过程较慢。若界面卡死,可重新在终端输入该指令
四、Run GICI
1. GICI测试数据集:GitHub - chichengcn/gici-open-dataset: Land vehicle GNSS/INS/Camera dataset
2. 按照manual.pdf对解算进行配置,仅修改path和time即可。
3. 在build终端下输入:./gici_main 配置文件.yaml,Enter运行即可。
参考链接
gici-open编译与运行_什么都不会的小澎友的博客-CSDN博客
Cpp(十一) yaml-cpp的使用_autoooooooo的博客-CSDN博客
cmake编译错误“recompile with -fPIC“_cmake fpic_读书健身敲代码的博客-CSDN博客