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

这篇具有很好参考价值的文章主要介绍了跑通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 

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

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

 编译(ROS)

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

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

 编译成功!

使用数据集运行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!

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

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

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

 使用ROS运行同理:

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

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

待更新。。。文章来源地址https://www.toymoban.com/news/detail-718210.html

到了这里,关于跑通GICI-LIB——上海交通大学开源GNSS/INS/Camera组合导航库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 上海交通大学电院夏令营直博保姆级攻略

    目录 写在前面 个人情况 报名【5月25日至6月26日】 面试【7月9日or7月10日】 面试结果通知与双选竞争【8月1日至9月初】 双选的一些TIPS 福(广)利(告)时间:Top1%室友的保研大宝箱! 本攻略主要是对2022年上海交通大学夏令营从报名到成功上岸与老师双选经验的记录。所有流

    2024年02月15日
    浏览(45)
  • 体验文心一言AI大模型生成伊利诺伊大学香槟分校、复旦大学、上海交通大学、东南大学和加州伯克利大学简介

    UIUC(University of Illinois at Urbana-Champaign)是美国伊利诺伊大学香槟分校的简称。该学校成立于1868年,位于美国伊利诺伊州香槟市,是一所公立研究型大学。UIUC是美国著名的常春藤盟校之一,在多个学科领域享有声誉,包括工程、商科、建筑、心理学、法学、医学、农学等。

    2024年02月11日
    浏览(63)
  • [保研/考研机试] KY110 Prime Number 上海交通大学复试上机题 C++实现

    Prime Number https://www.nowcoder.com/share/jump/437195121691717713466 Output the k-th prime number. 输入描述: k≤10000 输出描述: The k-th prime number. 输入: 输出:

    2024年02月13日
    浏览(42)
  • [保研/考研机试] KY102 计算表达式 上海交通大学复试上机题 C++实现

    对于一个不存在括号的表达式进行计算 输入描述: 存在多组数据,每组数据一行,表达式不存在空格 输出描述: 输出结果 ①设立运算符和运算数两个栈,,一个用来存储运算符,另一个用来存储运算数。 ②在运算符栈中放置一个特殊运算符#,其优先级最低。 ③将表达式尾部

    2024年02月13日
    浏览(108)
  • [保研/考研机试] KY109 Zero-complexity Transposition 上海交通大学复试上机题 C++实现

    You are given a sequence of integer numbers. Zero-complexity transposition of the sequence is the reverse of this sequence. Your task is to write a program that prints zero-complexity transposition of the given sequence. For each case, the first line of the input file contains one integer n-length of the sequence (0 < n ≤ 10 000). The second line contain

    2024年02月13日
    浏览(42)
  • 【上海大学数字逻辑实验报告】六、时序电路

    掌握同步二进制计数器和移位寄存器的原理。 学会用分立元件构成2位同步二进制加计数器。 学会在Quartus II上设计单向移位寄存器。 学会在Quartus II上设计环形计数器。 同步计数器是指计数器中的各触发器的时钟脉冲输入端连接在一起,接到输入的计数脉冲的CP端,所以各触

    2024年02月04日
    浏览(45)
  • 【上海大学数字逻辑实验报告】四、组合电路(三)

    掌握多路选择器74LS151的原理。 掌握译码器74LS138的原理。 学会在Quartus II上使用多路选择74LS151设计电路。 学会在Quartus II上使用译码器74LS138设计电路。 多路选择器又称数据选择器或多路开关,它是一种多路输入单路输出的组合逻辑电路,其逻辑功能是从多个输入中选出一个,

    2024年02月05日
    浏览(41)
  • 【上海大学数字逻辑实验报告】三、组合电路(二)

    掌握8421码到余3码的转换。 掌握2421码到格雷码的转换。 进一步熟悉组合电路的分析和设计方法。 学会使用Quartus II设计8421码到余3码的转换电路逻辑图。 学会使用Quartus II设计2421码到格雷码的转换电路逻辑图。 8421码是最常用的BCD码,在这种编码方式中,每一位二进制代码的

    2024年02月05日
    浏览(71)
  • 上海市大学生网络安全大赛题解

    利用周末打了上海市大学生网络安全大赛,最后打了第三,这次的 Misc 真的是难上天,除了签到其他都做不动...膜一波复旦的师傅们。比赛中我打的是 Crypto 和部分 Web,这里也贴了一些队友的 wp。 Misc 签到 直接 base32 解码。 Pwn baby_arm arm 架构,核心思想是改掉 mprotect 函数的参

    2024年02月13日
    浏览(55)
  • 上海开放大学-Samba共享服务器基本配置

    扫码获取搭建步骤: 实验名称: Samba共享服务器基本配置 简答题(直接打字回答在题目下方,仅完成4道题目的同学,最高30分。另外70分是加给自己搭建实验环境完成实验报告的同学): 1、Samba是什么,有什么用处? 2、CentOS系统中,在线安装Samba服务,用什么命令? 3、C

    2023年04月14日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包