解决 cv_bridge 与 opencv4 版本冲突问题

解决了在 ROS melodic / noetic 下 cv_bridge 与 opencv4 版本冲突导致的 opencv 操作 导致 Segmentation fault (core dumped) 的问题。

解决方法

解决问题的方法是通过将 cv_bridge 和 我们自己功能包的依赖设为同一版本的 opencv。

采用重新编译 cv_bridge 功能包的方法,解决该冲突问题。

1. 下载 cv_bridge


    下载 noetic 版本的 cv_bridge。(noetic 版本的 cv_bridge 在 melodic 下也能使用,不过要做一些修改,后续会说明)
    下载地址:https://github.com/ros-perception/vision_opencv/tree/noetic
    下载完成后,将 cv_bridge 拷贝到 ros 工作空间的 src 文件夹下。
    为了不影响原来的包,将该文件夹重命名为 cv_bridge_new,并且将文件夹下 CMakeLists.txt 文件中 project 名称修改为 cv_bridge_new:  

 project(cv_bridge_new)

    并且修改 package.xml 中包的名称:

    <package format="2">
      <name>cv_bridge_new</name>

    在 CMakeLists.txt 文件中指定我们自己的功能包中所用的 opencv4:

    ...
    set(OpenCV_DIR opencv路径/opencv/build)
    set(_opencv_version 4)
    find_package(OpenCV 4 QUIET)
    ...
   

2. 编译 cv_bridge
    cd 到工作空间的根目录,执行 catkin_make
    在 noetic 版本下直接编译成功,生成名为 cv_bridge_new 的包。
    接下来在自己的功能包中使用 cv_bridge_new 包就行。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值