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 -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.

Spring Boot项目打包和运行的操作方法

《SpringBoot项目打包和运行的操作方法》SpringBoot应用内嵌了Web服务器,所以基于SpringBoot开发的web应用也可以独立运行,无须部署到其他Web服务器中,下面以打包dem... 目录一、打包为JAR包并运行1.打包为可执行的 JAR 包2.运行 JAR 包二、打包为WAR包并运行

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

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

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

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

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