0


跑通GICI-LIB——上海交通大学开源GNSS/INS/Camera组合导航库

前言

GICI-LIB是由上海交通大学池澄博士开源的GNSS/INS/Camera组合导航库

GICI-LIB原文链接:C. Chi, X. Zhang, J. Liu, Y. Sun, Z. Zhang, and X. Zhan, "GICI-LIB: A GNSS/INS/Camera Integrated Navigation Library," arXiv preprint, arXiv:2306.13268.

https://doi.org/10.48550/arXiv.2306.13268.

GICI-LIB有以下几个特点:

  • 基于因子图优化(FGO),包含几乎所有的GNSS因子、惯导因子、视觉因子及运动约束;使用可靠的初始化、观测值稀疏化和异常值剔除算法。其中GNSS部分支持四大系统和全频率观测值
  • 使用面向对象的C++语言开发,GICI-LIB设计的因子图优化器拓展性较好,易于添加其他传感器,可实例化成为任意一种鲁棒性较好的多传感器融合算法
  • 多种算法支持:其中GNSS部分包括SPP、RTD、SDGNSS、RTK及PPP;组合算法包括SPP(RTK)/INS的松、紧组合,SPP(RTK)/INS/Camera的SRR、RRR(S-Solution,R-Raw)组合,其余组合算法如PPP/INS可由用户自行实例化
  • 支持各种数据I/O,包括串口、TCP/IP、NTRIP、V4L2、文件和rostopic
  • 支持多种格式信息的编、解码,包括RTCM2/3、Ublox、Septentrio、Novatel、Tersus的原始观测数据格式,NMEA, GNSS-DCB(差分码偏差)和ATX(天线校正)文件, image-pack, image-v4l2等相机格式、惯导的IMU-pack

环境安装

Ubuntu

    GICI-LIB基于Ubuntu20.04开发,支持Ubuntu18.04、20.04和22.04,下面环境安装均以Ubuntu20.04为例(18.04同样,22.04需要ROS2,没有测试)

** 最好在新安装ubuntu操作系统后安装以下环境,如果有非源码安装或不同版本环境,建议先卸载干净。**

    查看gflags/glog/yaml-cpp环境:
locate gflags
locate glog
    或者查看/usr/lib或/usr/local/lib路径下有没有对应的lib***.so环境,使用apt或源码make uninstall卸载干净。

Glog 0.6.0及以上版本

** 一定使用源码安装**gflags和glog:

sudo git clone https://github.com/gflags/gflags.git
cd gflags/
mkdir build && cd build
cmake .. -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC ..
make -j8
sudo make install
sudo git clone https://github.com/google/glog
cd glog/
mkdir build && cd build
sudo cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON ..
sudo make -j8
sudo make install

Yaml-cpp0.6.0(0.7.0会报错)

下载Yaml-cpp 0.6.0源码:https://github.com/jbeder/yaml-cpp/tree/yaml-cpp-0.6.0

unzip yaml-cpp-yaml-cpp-0.6.0.zip
cd yaml-cpp-yaml-cpp-0.6.0
sudo mkdir build && cd build/
sudo cmake -DYAML_BUILD_SHARED_LIBS=on ..
sudo make -j8
sudo make install

ROS Noetic(可选,GICI可不依赖ROS运行)

建议使用鱼香ROS一键安装ROS:

wget http://fishros.com/install -O fishros && . fishros

安装完成后,再输入一次上面的一键安装命令,选择更新rosdepc。

Eigen 3.3及以上版本(随ROS Noetic安装)

如果不安装ROS:

先查看原版本eigen库的位置

vim /usr/include/eigen3/Eigen/src/Core/util/Macros.h

如果没有,跳到下一步直接安装新版本。

如果版本小于3.3,先卸载eigen3:

sudo rm -rf /usr/include/eigen3 /usr/lib/cmake/eigen3 /usr/share/doc/libeigen3-dev /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums

再安装新版本:

先下载eigen-3.4.0.tar.gz:Releases · libeigen / eigen · GitLab

sudo tar -xzvf eigen-3.4.0.tar.gz 
cd eigen-3.4.0
mkdir build
cd build
sudo cmake ..
sudo make install
 
#安装后,头文件安装在/usr/local/include/eigen3/

# 移动头文件:
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 
 
- - 在很多程序中include时经常使用#include <Eigen/Dense>;否则系统无法默认搜索到,build时会找不到;
- - 或者直接修改CmakeLists.txt中eigen3库的路径,include_directories( "/usr/local/include/eigen3" ),但太麻烦!

OpenCV 4.2.0及以上版本(随ROS Noetic安装)

如果不安装ROS:

先查看原版本OpenCV库的位置:

pkg-config --modversion opencv4

安装OpenCV:

参考:Ubuntu18.04 系统安装 OpenCv_ubuntu18.04安装opencv_街头卖艺小杨的博客-CSDN

Ceres 2.1.0及以上版本

查看Ceres版本:
打开/home或/root下的ceres-solver文件夹,打开package.xml文件,即可看到ceres版本

安装ceres:Installation — Ceres Solver

编译GICI-LIB

下载代码

git clone https://github.com/chichengcn/gici-open.git

编译

cd gici-open/
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j8 

出现以下界面,恭喜你,编译成功!

编译(ROS)

cd gici-open/ros_wrapper/
catkin_make -DCMAKE_BUILD_TYPE=Release
source ./devel/setup.bash

编译成功!

使用数据集运行GICI-LIB

下载gici-dataset:GitHub - chichengcn/gici-open-dataset: Land vehicle GNSS/INS/Camera dataset

放入<gici-root-directory>/gici-dataset路径下:

将yaml配置文件中的<data-directory>、<gici-root-directory>和<output-directory>分别换成gici-dataset、gici-open和gici-open/ouput的路径,在gici-open/build路径下使用

./gici_main ../option/pseudo_real_time_estimation_RTK_TC.yaml

即可运行gici-lib!

结果在output路径下,***_solution.txt文件可以直接用rtkplot打开查看结果:

使用ROS运行同理:

source devel/setup.bash
rosrun gici_ros gici_ros_main ./src/gici/option/ros_real_time_estimation_***.yaml

如何使用GICILIB自带的工具和rviz实时显示结果

待更新。。。

标签: 开源 github

本文转载自: https://blog.csdn.net/XXXHCITIZENZ/article/details/131750312
版权归原作者 XXXHCITIZENZ 所有, 如有侵权,请联系我们删除。

“跑通GICI-LIB——上海交通大学开源GNSS/INS/Camera组合导航库”的评论:

还没有评论