运行svo 2.0的 vio时遇到opencv冲突的问题

当我运行如下指令时,遇到了如下问题

指令

cd svo_ws
source ./devel/setup.bash
roslaunch svo_ros euroc_vio_mono.launch
rosbag play MH_01_easy.bag -s 50

运行时遇到的问题

OpenCV Error: Bad argument (Unknown interpolation method) in resize, file /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/imgproc/src/imgwarp.cpp, line 3367
terminate called after throwing an instance of 'cv::Exception'what():  /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/imgproc/src/imgwarp.cpp:3367: error: (-5) Unknown interpolation method in function resize

后来发现在编译时有一个warnning

/usr/bin/ld: warning: libopencv_core.so.3.4, needed by /home/serena/svo_ws/devel/.private/dbow2_catkin/lib/libDBoW2.so, may conflict with libopencv_core.so.3.2
/usr/bin/ld: warning: libopencv_imgcodecs.so.3.2, needed by /home/serena/svo_ws/devel/.private/svo_online_loopclosing/lib/libbow.so, may conflict with libopencv_imgcodecs.so.3.4

然后我根据问题找到了一个解决方案:(25条消息) ROS学习:cv_bridge与opencv版本冲突三种解决方案_Mr.Qin_的博客-CSDN博客_cv_bridge这篇文章中也提到了之所以出现上述问题,是因为ros本身携带的OpenCV与我自己安装的OpenCV发生冲突,因为在我们使用ros处理图像时,会用到cv_bridge库,但是通常情况下cv_bridge使用的是ros中的opencv,然后我们的工程代码使用的是我们自己安装的opencv,此时就容易发生冲突。

解决这种冲突的方式有三种:

1. 不使用cv_bridge,这种方法有些逃避问题的嫌疑,因为很多时候没有cv_bridge,代码是没法工作的,这种方法不好。

2. 更改ros下cv_bridge中使用opencv的设置,让ros中的cv_bridge使用本地安装的opencv,可以按照下面文章中的步骤来设置。Ubuntu18.04 ros-melodic opencv版本冲突问题解决 (icode9.com)

3. 重新编译一个不同名字但是与cv_bridge相同功能的库。修改方法可以按照下面文章中的方法三进行修改。​​​​​(25条消息) ROS学习:cv_bridge与opencv版本冲突三种解决方案_Mr.Qin_的博客-CSDN博客_cv_bridge 下载cv_bridge库时要选择适配自己ros版本的版本,比如我的ros是melodic的,所以你下载时选择melodic 分支进行下载。

 修改文件夹名字时,注意有两处,一处是:vision_opencv-melodic下的cv_bridge修改为cv_bridge_1, 然后是vision_opencv-melodic/cv_bridge_1/include/下的cv_bridge也要修改为cv_bridge_1.

然后是修改引用cv_bridge.h的文件,修改为cv_bridge_1/cv_bridge.h。在svo_ros中需要修改的地方是,svo_ros/package.xml,svo_ros/src/svo_interface.cpp,和visualizer.h.

 整完之后,重新catkin build 进行编译,然后重新运行,通常情况下就没有问题了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DOS Network一月项目月报

欢迎大家阅读DOS Network第一期项目月报!DOS为了跟大家更好的沟通和交流,将在每个月为大家跟进DOS Network项目进展月报。月报主要分为项目研发和社区及营销两个部分。 如果你是刚认识DOS Network预言机网络的新朋友,欢迎查阅往期文章&#x…

lsof详解

from:https://www.cnblogs.com/the-study-of-linux/p/5501593.html lsof (list open files)是一个列出当前系统打开文件的工具。在linux系统环境下,任何事物都可以以文件形式存在,通过文件不仅可以访问常规的数据,还可以访问网络连接和硬件。…

Ubuntu18.04上下载安装使用sogou输入法

下载地址:搜狗输入法Linux官网-首页 安装设置网址:搜狗输入法Linux官网-安装指导 这样Ubuntu下工作就更加方便了。

正则

(一)字符类 [...]  方括号内的任意字符 [^...]   不在方括号内的任意字符 .    除换行符和其它Unicode行终止符之外的任意字符 \w   任何ASCII字符组成的单词,等价于[a-zA-Z0-9] \W   任何非ASCII字符组成的单词,等价…

使用Cloud Studio写python

1、进入【腾讯云开发者平台】 2、点击【进入工作空间】 3、点击【新建工作空间】 4、点击【从模版创建】 选择你需要的空间环境,就可以开始啦!转载于:https://juejin.im/post/5c75f79051882562962ef5d7

显卡、显卡驱动、显存、GPU、CUDA、cuDNN

显卡Video card,Graphics card,又叫显示接口卡,是一个硬件概念(相似的还有网卡),执行计算机到显示设备的数模信号转换任务,安装在计算机的主板上,将计算机的…

ros rviz显示rosbag中的图像和imu数据

一、rosbag相关的指令 1. rostopic list //列举出系统中正在发布的ros 话题 2. rosbag record -a //录制系统中所有正在发布的ros 话题 3. rosbag record topic1 topic2 .... -o bagname.bag 4. rosbag play bagname.bag //播放bag文件 5. rosbag info bagname.bag //查看…

PX4的workqueue

Workqueue相当于是中断子程序,然后在queue的cycle里面要注意,不能在cycle函数里面用printf打印,在cycle里面printf函数是打印不出来的。 也不能在cycle里面用while(1),就是不能让程序一直在queue里面执行,要想让cycle执…

企业选择 多云管理平台 六大注意事项

企业选择 多云管理平台 六大注意事项 1、是否足够简单,学习曲线有多长 2、是否可实现自动化环境部署,日常运维作业等一系列操作? 3、是否可以管理全异构的云环境,支持主流公有云厂商的云资源? 4、是否能提供管理成本、…

面向接口编程

面向接口编程 一般在实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应该是所有的定义与实现分离,尽管这对于系统中某些复杂的情况有些繁烦。面向接口编程设计 使用面向接口编程思想将层与层之间通过接口依赖,下…

Java并发学习之一——线程的创建

与每个java语言中的元素一样,线程是对象。在Java中,我们有两种方式创建线程: 1、通过直接继承thread类,然后覆盖run方法。 2、构建一个实现Runnable接口的类,然后创建一个thread类对象并传递Runnable对象作为构造参数 …

day1||python

测试题: 0. Python 是什么类型的语言? Python是一种面向对象、解释型、动态类型计算机程序设计语言解释型:程序无需编译成二进制代码,而是在执行时对语句一条一条编译动态类型:在程序执行过程中,可以改变变…

2.7万字还原行业面貌,《2019 AI金融风控行业研究报告》正式上线!...

在金融科技领域,风险控制的重要性,从其关联的金融业务和结合的技术维度可见一斑:风控涉及信用借贷、保险、支付、供应链金融等场景,并运用了包括生物特征识别、机器学习、自然语言处理、大数据、云计算等多项技术。 区别于美国有…

【原创】QT简单计算器

代码 //main.cpp#include "calculator_111.h" #include <QtWidgets/QApplication>int main(int argc, char *argv[]) { QApplication a(argc, argv); Calculator_111 w; w.show(); return a.exec(); /* //QT creator Calculator_111 win; win.show(); return…

cs堡垒机使用说明

一、堡垒机介绍 为了保证机房的网络安全&#xff0c;IDC内所有服务器不被允许从办公网直接ssh登录&#xff0c;必须通过跳板机进行间接登录。用户通过跳板机执行的所有命令&#xff08;包括通过跳板机登录的其他机器后的命令&#xff09;都会被保存并审计。 cs是我们登录IDC服…

export和export default的区别

es6中export和export default的区别 export与export default均可用于导出常量、函数、文件、模块&#xff1b;你可以在其它文件或模块中通过import(常量 | 函数 | 文件 | 模块)名的方式&#xff0c;将其导入&#xff0c;以便能够对其进行使用&#xff1b;在一个文件或模块中&am…

koa中间件机制详解

转自&#xff1a;https://cnodejs.org/topic/58fd8ec7523b9d0956dad945 koa是由express原班人马打造的一个更小、更富有表现力、更健壮的web框架。 在我眼中&#xff0c;koa的确是比express轻量的多&#xff0c;koa给我的感觉更像是一个中间件框架&#xff0c;koa只是一个基础的…

极度推荐的文章和网站

推荐文章---收录中 因为是及时雨,这里就给他放在开头啦&#xff1a;http://www.cnblogs.com/zhuzhenwei918/p/7241971.html webpack3.0配置指南&#xff1a;http://www.cnblogs.com/caideyipi/articles/7080010.html 超酷的伪元素网站&#xff1a;https://tympanus.net/Develop…

倍道而行:选择排序

一、为什么学了之后过段时间又会忘记了&#xff1f; 因为没有去运用它和认为面试需要而没有真正的重视。现在给它赋予意义&#xff1a;1.那就是基础牢固&#xff0c;才可触类旁通2.真正记得和随时可以拿出手&#xff0c;那么面试可以PK掉一大批人。不然看到一个精妙的算法就学一…

如何构建一个真实的推荐系统?

AI 前线导读&#xff1a;随着互联网行业的井喷式发展&#xff0c;数据规模呈现爆炸式增长。大数据中蕴含了巨大的价值&#xff0c;但同时也来了很 “信息过载” 的问题。推荐系统作为一个广泛应用的信息过滤系统&#xff0c;在很多领域取得了巨大的成功。在电子商务上&#xff…