GVINS之系统复现

0 引言

      GVINS系统涵盖了GNSS、Camera、INS等传感器,具有较好的全局位恣估计性能,具体介绍可参见博主文章:GVINS之系统简介。本文主要介绍GVINS系统复现的相关细节,包括环境的搭建、源码的下载及可能存在的相关问题解决方法。GVINS开源代码的网址为:https://github.com/HKUST-Aerial-Robotics/GVINS

1 搭建环境概况

       GVINS系统环境要求版本可见图1所示。

图1 GVINS环境要求

        本文搭建环境的版本如下表1所示,具体安装步骤可见后续章节。其中,ubuntu及ROS安装可参见其它相关教程,本文不再赘述,ROS安装教程,建议搜索使用鱼香ROS一键安装即可,简单、易操作。

表1 本文搭建环境版本

软件版本
 ubuntu20.04
ROSROS Kinetic非ROS2
C++11
Eigen3.3.3
Ceres1.12.0
gnss_comm-
Opencv3.4.5
gvins-

2 安装Eigen3.3.3

        Eigen3.3.3安装包下载网址为:https://gitlab.com/libeigen/eigen/-/releases,安装步骤如下:

2.1 解压安装包

tar xzf eigen-3.3.3.tar.gz

2.2 创建编译文件夹

cd eigen-3.3.3
mkdir build
cd build

2.3 编译

cmake ..

2.4 安装

sudo make install

3 安装Ceres1.12.0

3.1 在线下载Ceres1.12.0

git clone https://ceres-solver.googlesource.com/ceres-solver -b 1.12.0

 3.2 更新软件列表

sudo apt update
sudo apt upgrade

 3.3 解压安装包

tar xzf ceres1.12.0

3.4 创建编译文件夹

cd 
mkdir build
cd build

3.5 编译

cmake ..

3.6 安装

sudo make install

4 安装gnss_comm

        安装gnss_comm之前需要检查系统是否安装anaconda,如果安装则需要关闭anaconda环境,否则会出现安装失败等异常问题。

4.1 安装相关依赖

sudo apt-get install libgoogle-glog-dev

4.2 建立GVINS文件夹

mkdir GVINS
cd ~/GVINS
mkdir src
cd ~/src

 4.3 在线下载gnss_comm安装包

git clone https://github.com/HKUST-Aerial-Robotics/gnss_comm.git

4.4 编译

cd ~/GVINS
catkin_make

4.5 设置环境变量

source ~/GVINS/devel/setup.bash

5 安装Opencv3.4.5

        在线下载安装包网址:https://github.com/opencv/opencv/releases/tag/3.4.5

5.1 安装依赖

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev  libtiff5-dev libopenexr-dev libtbb-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libgtk-3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev pkg-config

5.2 linux_frame问题

        遇到linux_frame问题,可能是boot内存不足,需要删除多余内核。首先查看linux内存

df -h

        其次,查看系统内核

dpkg --get-selections|grep linux 

         然后,查看使用的内核

uname -a

        最后,卸载未使用的内核,以增加boot内存

sudo apt-get purge linux-modules-x.x.x-xx-generic

5.3 解压到/home目录下

tar xzf opencv-3.4.5
cd ~/home/opencv-3.4.5

5.4 建立编译文件夹

mkdir build

5.5 编译

cd build
cmake ..

5.6 安装

sudo make -j4
sudo make install

 5.7 修改配置文件

sudo gedit /etc/ld.so.conf

         在文件中加上一行,/usr/local是opencv的默认安装路径,这样告诉系统以后去lib目录下找opencv的库文件

include /usr/local/lib

         输入命令使得conf生效

sudo gedit /etc/bash.bashrc 

         在文件末尾加上:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
pkg-config opencv --modversion

6 多版本Opencv切换

        GVINS代码使用的opencv的版本是opencv2,并且由于ROS等系统也会安装一些opencv版本,所以需要配置opencv配置文件,调用需要的opencv版本,如果opencv版本不适配,编译gvins时将报错。

        修改cv_bridge,修改后的cv_bridge文件可通过本文附件下载。

sudo gedit cv_bridgeConfig.cmake

        更换头文件include(94)

if(NOT "include;/usr/local/include/opencv;/usr/local/include/opencv2 " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/local/include/opencv;/usr/local/include/opencv2;/usr/local/include;/usr/include")

         更换库文件路径libraries(119)

set(libraries "cv_bridge;/usr/local/lib/libopencv_calib3d.so.3.4.5;/usr/local/lib/libopencv_objdetect.so.3.4.5;/usr/local/lib/libopencv_core.so.3.4.5;/usr/local/lib/libopencv_photo.so.3.4.5;/usr/local/lib/libopencv_dnn.so.3.4.5;/usr/local/lib/libopencv_shape.so.3.4.5;/usr/local/lib/libopencv_features2d.so.3.4.5;/usr/local/lib/libopencv_stitching.so.3.4.5;/usr/local/lib/libopencv_flann.so.3.4.5;/usr/local/lib/libopencv_superres.so.3.4.5;/usr/local/lib/libopencv_highgui.so.3.4.5;/usr/local/lib/libopencv_videoio.so.3.4.5;/usr/local/lib/libopencv_imgcodecs.so.3.4.5;/usr/local/lib/libopencv_video.so.3.4.5;/usr/local/lib/libopencv_imgproc.so.3.4.5;/usr/local/lib/libopencv_videostab.so.3.4.5;/usr/local/lib/libopencv_ml.so.3.4.5;/usr/local/lib/libopencv_viz.so.3.4.5")

7 GVINS源码及数据集下载

7.1 进入src文件夹

cd ~/GVINS/src/

7.2 下载gvins源码

git clone https://github.com/HKUST-Aerial-Robotics/GVINS.git

7.3 编译

cd ..
catkin_make

7.4 设置环境变量

source ~/GVINS/devel/setup.bash

7.5 下载数据集

        由于gvins数据集下载需要通过Onedrive,即使科学上网的前提下可能存在下载中断及异常的情况,推荐大家可以找TB代下,稳定节省时间。

7.6 启动gvins的launch

roslaunch gvins visensor_f9p.launch

7.7 打开rviz可视化软件

rviz -d ~/GVINS/src/GVINS/config/gvins_rviz_config.rviz

7.8 播放sport_field数据集

rosbag play sports_field.bag

        最后的运行效果图如下图所示,两条曲线都需要显示出来,才说明GVINS系统复现成功,后续期文章,将为大家带来,GVINS的代码解读、文章公式理解、自研设备搭建等相关内容,期待大家持续关注。

图2 sport_field数据集运行结果

复现QQ系统,首先需要了解QQ系统的基本功能和原理,然后根据这些内容进行开发。 QQ系统的基本功能包括:注册登录、好友管理、即时通讯、群组功能、个人资料管理等。 在开发过程中,可以选择使用Java语言和CSDN平台进行开发。首先,使用Java语言编写服务器端代码,用于处理用户的注册、登录、好友管理等操作。服务器端需要连接数据库,将用户的注册信息和好友关系存储起来,同时还要处理用户之间的即时通讯。 接着,编写客户端代码,使用Java语言编写QQ系统的界面,并与服务器进行通信。通过CSDN平台,可以获得很多关于Java Swing的UI库,从而快速搭建起QQ系统的界面。界面设计时,可以参考QQ系统的界面布局和样式,保证用户使用的便捷性和美观性。 在开发过程中,还需要实现即时通讯功能。可以利用Java的socket编程,建立服务器和客户端之间的连接。服务器端和客户端可以通过socket进行数据的传输,实现用户之间的即时通讯功能。同时,还可以添加群组功能,使用户可以创建和管理自己的群组,进行群组内的即时通讯。 最后,还需要实现个人资料管理功能,通过CSDN平台提供的数据库,保存用户的个人资料,同时允许用户修改个人资料。这样,用户就可以在QQ系统中查看和修改自己的个人资料。 总之,通过使用Java语言和CSDN平台,可以实现QQ系统复现。使用Java语言进行服务器端和客户端开发,实现注册登录、好友管理、即时通讯、群组功能、个人资料管理等基本功能,从而让用户可以在该系统中进行聊天和交流。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式导航

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值