Ubuntu18.04运行Vins-Fusion

2024-05-30 04:18
文章标签 运行 fusion ubuntu18.04 vins

本文主要是介绍Ubuntu18.04运行Vins-Fusion,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一. 安装ros

1. Installation

2. Environment setup

3. Dependencies for building packages

4. 安装ros与opencv的桥接工具包

5.验证ros是否安装成功

二.  安装eigen

三. 安装opencv

1. 进入下载opencv的根目录

四. 安装ceres

1. 安装ceres依赖项

2. 进入Ceres的主目录,编译Ceres

五. 编译Vins-Fusion

1. 创建ros工作空间

2. 编译VINS-Fusion

3. 至此VINS-Fusion编译完成,后面需要打开四个shell窗口分别运行ros命令,为了避免每次打开新的shell都需要source,我们将其添加到bash配置文件中

4. 下载EuRoc数据集

5. 运行VINS-Fusion

Monocualr camera + IMU

Stereo cameras + IMU

Stereo cameras

六. 运行效果



一. 安装ros

不同的ubuntu版本对应不同版本的ros,具体可查询ros官网

http://wiki.ros.org/ROS/Installation

ubuntu16.04以及更老的版本对应ROS Kinetic Kame

ubuntu18.04对应ROS Melodic Morenia

ubuntu20.04对应ROS Noetic Ninjemys

下面开始安装ROS Melodic,详细安装教程可以参考下面的官网连接:

http://wiki.ros.org/melodic/Installation/Ubuntu

1. Installation

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 
sudo apt update 
sudo apt install ros-melodic-desktop-full 

 

2. Environment setup

  If you have more than one ROS distribution installed, ~/.bashrc must only source the setup.bash for the version you are currently using.

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc 
source ~/.bashrc

3. Dependencies for building packages

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init
rosdep update

4. 安装ros与opencv的桥接工具包

sudo apt-get install ros-melodic-cv-bridge ros-melodic-tf ros-melodic-message-filters ros-melodic-image-transport

5.验证ros是否安装成功

roscore

二.  安装eigen

sudo apt-get install libeigen3-dev

三. 安装opencv

下载opencv源码:

https://github.com/opencv/opencv

如果没有安装cmake,需要先安装cmake

sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

1. 进入下载opencv的根目录

mkdir build 
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make install

四. 安装ceres

下载ceres源码:

https://github.com/ceres-solver/ceres-solver

1. 安装ceres依赖项

sudo apt-get install liblapack-dev 
sudo apt-get install libsuitesparse-dev 
sudo apt-get install libcxsparse3.1.2 
sudo apt-get install libgflags-dev 
sudo apt-get install libgoogle-glog-dev libgtest-dev

安装libcxsparse3.1.2有可能找不到安装源,可参考如下解决:

sudo vi /etc/apt/sources.list
文件最后一行添加镜像源:deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
sudo apt-get update

2. 进入Ceres的主目录,编译Ceres

mkdir build
cd build
cmake ..
sudo make install

五. 编译Vins-Fusion

1. 创建ros工作空间

mkdir -p ~/catkin_ws/src              
cd ~/catkin_ws/src
catkin_init_workspace

2. 编译VINS-Fusion

cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash

3. 至此VINS-Fusion编译完成,后面需要打开四个shell窗口分别运行ros命令,为了避免每次打开新的shell都需要source,我们将其添加到bash配置文件中

sudo  vi ~/.bashrc
最后一行添加:source ~/catkin_ws/devel/setup.bash
保存,退出

4. 下载EuRoc数据集

https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#the_euroc_mav_dataset

我们以MH_04_difficult.bag为例,将其下载并保存在目录~/SLAM/test_data/

5. 运行VINS-Fusion

以单相机+IMU为例,分别打开四个shell窗口,运行命令

   窗口1:

roslaunch vins vins_rviz.launch

   窗口2:

rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml

   窗口3(可选择运行,执行回环检测):

(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 

   窗口4:

rosbag play ~/SLAM/test_data/MH_04_difficult.bag

Monocualr camera + IMU

roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 
rosbag play ~/SLAM/test_data/MH_04_difficult.bag

Stereo cameras + IMU

roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml 
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml 
rosbag play ~/SLAM/test_data/MH_04_difficult.bag

Stereo cameras

roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml 
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml 
rosbag play ~/SLAM/test_data/MH_04_difficult.bag

六. 运行效果

这篇关于Ubuntu18.04运行Vins-Fusion的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015557

相关文章

Java终止正在运行的线程的三种方法

《Java终止正在运行的线程的三种方法》停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作,停止一个线程可以用Thread.stop()方法,但最好不要用它,本文给大家介绍了... 目录前言1. 停止不了的线程2. 判断线程是否停止状态3. 能停止的线程–异常法4. 在沉睡中停止5

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

mysqld_multi在Linux服务器上运行多个MySQL实例

《mysqld_multi在Linux服务器上运行多个MySQL实例》在Linux系统上使用mysqld_multi来启动和管理多个MySQL实例是一种常见的做法,这种方式允许你在同一台机器上运行多个... 目录1. 安装mysql2. 配置文件示例配置文件3. 创建数据目录4. 启动和管理实例启动所有实例

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服