Ubuntu18.04+ROS melodic 跑通VINS-MONO的一些踩坑记录

VINS-MONO的一些踩坑记录

0 本机环境

笔者的环境为Ubuntu 18.04 + ros melodic + opencv 4.1.1 + Eigen 3.3.9 +ceres solver-1.14

  • 跟VINS-MONO官方环境 ( Ubuntu 16.04, ROS Kinetic, OpenCV 3.3.1, Eigen 3.3.3, ceres solver)不同

1 踩坑开始

  • 第一个报错:‘CV_GRAY2BGR’ was not declared in this scope
    这是由于opencv版本高引起的,解决方法添加头文件:
#include <opencv2/imgproc/types_c.h>
  • 第二个报错:‘CV_AA’ was not declared in this scope
    解决方法添加头文件:
#include <opencv2/imgproc/imgproc_c.h>
  • 第三个报错:‘CV_CALIB_CB_ADAPTIVE_THRESH’ was not declared in this scope
    解决方法添加头文件:
#include <opencv2/calib3d/calib3d_c.h>
  • 第四个报错:‘CV_FONT_HERSHEY_SIMPLEX’ was not declared in this scope
    解决方法添加头文件:
#include <opencv2/imgproc/imgproc_c.h>

2 坑里打滚

这个时候直接catkin_make虽然可以通过,但是运行起来会遇到怀疑人生的报错。

[vins_estimator-2] process has died [pid 12283, exit code -11, cmd /home/xzt/catkin_ws/devel/lib/vins_estimator/vins_estimator __name:=vins_estimator __log:=/home/xzt/.ros/log/80f99180-e248-11ec-a970-84c5a661654d/vins_estimator-2.log].
log file: /home/xzt/.ros/log/80f99180-e248-11ec-a970-84c5a661654d/vins_estimator-2*.log
[feature_tracker-1] process has died [pid 12282, exit code -11, cmd /home/xzt/catkin_ws/devel/lib/feature_tracker/feature_tracker __name:=feature_tracker __log:=/home/xzt/.ros/log/80f99180-e248-11ec-a970-84c5a661654d/feature_tracker-1.log].
log file: /home/xzt/.ros/log/80f99180-e248-11ec-a970-84c5a661654d/feature_tracker-1*.log
[pose_graph-3] process has died [pid 12284, exit code -11, cmd /home/xzt/catkin_ws/devel/lib/pose_graph/pose_graph __name:=pose_graph __log:=/home/xzt/.ros/log/80f99180-e248-11ec-a970-84c5a661654d/pose_graph-3.log].
log file: /home/xzt/.ros/log/80f99180-e248-11ec-a970-84c5a661654d/pose_graph-3*.log

实际上这个问题vins-mono的issue里面也有人提到,对方的解决方法是降低CV的版本,问题有效解决。这个时候我们大胆怀疑应该是ROS自带的CV——bridgeCV版本对不上的问题。
遇到一堆不靠谱的改cv_bridge的,最终最终终于遇到了一个靠谱的,这里放上链接:
https://blog.csdn.net/bigdog_1027/article/details/79092263?spm=1001.2014.3001.5502

3 问题解决

然后修改完之后,就可以跑通了。
请添加图片描述

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 很高兴听到您想要在Ubuntu 18.04上运行VINS-Mono。以下是一些步骤,希望能帮助您完成这个任务: 1. 安装ROS:在Ubuntu 18.04上安装ROS,可以使用以下命令: ``` sudo apt-get install ros-melodic-desktop-full ``` 2. 安装依赖项:在安装VINS-Mono之前,需要安装一些依赖项。您可以使用以下命令来安装它们: ``` sudo apt-get install cmake libgoogle-glog-dev libatlas-base-dev libsuitesparse-dev libeigen3-dev ``` 3. 克隆VINS-Mono:使用以下命令克隆VINS-Mono: ``` git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git ``` 4. 编译VINS-Mono:进入VINS-Mono目录并编译它: ``` cd VINS-Mono mkdir build cd build cmake .. make -j4 ``` 5. 运行VINS-Mono:在VINS-Mono目录中,使用以下命令运行它: ``` roslaunch vins_estimator euroc.launch ``` 如果您想使用自己的数据,请将数据放入VINS-Mono/data文件夹中,并在euroc.launch文件中更改数据路径。 希望这些步骤能够帮助您在Ubuntu 18.04上成功运行VINS-Mono。如果您有任何问题,请随时问我。 ### 回答2: 首先,如果您尚未安装Ubuntu 18.04,请先完成此步骤。接下来,我们将讲解在Ubuntu 18.04上如何跑通VINS-MonoVINS-Mono是一个面向单目相机的视觉惯性里程计算法,它使用相机和IMU数据来计算三维运动轨迹。要在Ubuntu 18.04上能够跑通VINS-Mono,您需要执行以下步骤: 1.安装必要的依赖项 在终端中输入以下命令以确保所有依赖项都已安装: ``` sudo apt-get update sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev ``` 2.获取VINS-Mono 在终端中输入以下命令以从GitHub上获取VINS-Mono源代码: ``` mkdir VINS-Mono cd VINS-Mono git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git ``` 3.安装必要的ROS依赖项 在终端中输入以下命令以安装VINS-MonoROS依赖项: ``` cd ../VINS-Mono rosdep install --from-paths src --ignore-src -r -y ``` 4.生成ROS工作区 在终端中输入以下命令以生成ROS工作区: ``` cd ../VINS-Mono catkin_make ``` 5.设置环境变量 在终端中输入以下命令以设置ROS工作区的环境变量: ``` source devel/setup.bash ``` 6.运行VINS-Mono 在终端中输入以下命令以启动VINS-Mono: ``` roslaunch vins_mono euroc.launch ``` 在运行VINS-Mono之前,您需要将存储Euroc数据集的文件夹路径添加到euroc.launch文件中。 现在,您应该已经成功地在Ubuntu 18.04上运行了VINS-Mono。跟随上述步骤,您可以轻松地安装和运行VINS-Mono,从而实现自己的项目和研究。 ### 回答3: VINS-Mono是一种单目视觉SLAM算法,用于机器人或者无人机的位置估计和地图构建。Ubuntu18.04是一种开源的操作系统,因此将这两个工具组合来使用是十分容易的。 首先,需要注意的是VINS-Mono需要安装ROS(机器人操作系统)来支持其运行,因此需要先安装ROSROS的安装可以通过官方网站(http://wiki.ros.org/melodic/Installation/Ubuntu)提供的步骤进行。其中,需要选择适当的ROS版本来与Ubuntu18.04兼容。建议选择ROS Melodic Morenia,这是针对Ubuntu18.04版本的ROS版本。 安装完成后,需要安装VINS-Mono包,可以通过以下命令进行安装: ``` $ sudo apt-get install ros-melodic-vins-mono ``` 其中,ros-melodic-vins-monoVINS-MonoROS包。 接下来,安装状态估计器(state estimator)。状态估计器是使用VINS-Mono进行位置估计的必要工具。状态估计器常用的是MSCKF(Multi-State Constraint KalmanFilter)。 ``` $ sudo apt-get install ros-melodic-msckf ``` 接着,需要下载VINS-Mono的代码库,通过Git软件进行下载: ``` $ git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git ``` 在下载代码库之后,需要注意一些依赖项,这些依赖项可以通过以下命令进行安装: ``` $ sudo apt-get install libsuitesparse-dev liblapack-dev libblas-dev libopencv-dev ``` 安装完所有依赖项之后,可以运行VINS-Mono,可以通过以下命令使用roslaunch运行: ``` $ roslaunch vins_estimator vins_rviz.launch ``` 这将启动VINS-Mono和RVIZ(一种可视化工具),可用于显示结果。 总之,安装和运行VINS-Mono需要安装ROS、MSCKF、VINS-Mono代码库和VINS-Mono依赖项。如果按照以上步骤操作,则ubuntu18.04就可以跑通VINS-Mono
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值