首页 > 其他分享 >解决ROS配置中cv_bridge问题

解决ROS配置中cv_bridge问题

时间:2023-01-03 19:00:15浏览次数:56  
标签:bridge catkin src opencv ws ROS cv


cv_bridge — opencv和ros连接起来的桥

问题描述

在Jetson Nano+ROS环境上catkin_make时出现cv_bridge问题如下

CMake Error at /home/nano/catkin_ws/devel/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113 (message):
Project 'cv_bridge' specifies
'/home/nano/catkin_ws/src/vision_opencv/cv_bridge/include' as an include
dir, which is not found. It does neither exist as an absolute directory
nor in
'/home/nano/catkin_ws/src/vision_opencv/cv_bridge//home/nano/catkin_ws/src/vision_opencv/cv_bridge/include'.
Check the issue tracker
'https://github.com/ros-perception/vision_opencv/issues' and consider
creating a ticket if the problem has not been reported yet.
Call Stack (most recent call first):
/opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
tx2_fcnn_node/CMakeLists.txt:57 (find_package)

解决方法

  1. 卸载旧版本cv_bridge
sudo apt-get remove ros-indigo-cv-bridge
  1. 下载最新版cv_bridge
git clone https://github.com/ros-perception/vision_opencv.git
  1. 【可以省略】修改​​vision_opencv/cv_bridge/CMakeLists.txt​​,在20行左右的位置修改opencv版本
set(_opncv_version 4)
find_package(OpenCV 4 QUIET)
if(NOT OpenCV_FOUND)
message(STATUS “Did not find OpenCV 4, trying OpenCV 3”)
set(_opencv_version 3)
endif()

此步我并没有修改,也正确的找到opencv
但jetson nano默认安装的opencv环境是opencv4,可以参照 ​​​Trouble with catkin_make hector slam - #3 by hwlim3unws - Jetson TX2 - NVIDIA Developer Forums​​中hwlim3unws的方法 将opencv环境修改到3

  1. sudo apt-get purge ’ * libopencv * ’ (’ and * should have not space in between. Don’t know why but this website does not reflect when ’ and * is next to each other)
  2. sudo apt-get remove ros-*
  3. System Settings —> Software & Updates —> ‘Other Software’ tab —> uncheck nvidia related repos
  4. reinstall ROS using ROS website’s tutorial
  5. ~/catkin_ws$ source devel/setup.bash
  6. ~/catkin_ws$ catkin_make
  1. 将​​vision_opencv​​​中的​​cv_bridge/​​​拿出来,放到工作空间(​​catkin_wa/src​​)中,重新编译:
cd ~/catkin_ws/src/cv_bridge
mkdir build
cd build
cmake ..
make
sudo make install

这里我才用传统make的方法,网上也有人直接​​catkin_make --pkg cv_bridge​

【报错:make 66%时错误】

[ 66%] Building CXX object src/CMakeFiles/cv_bridge_boost.dir/module.cpp.o
In file included from /usr/include/python2.7/numpy/ndarrayobject.h:27:0,
from /home/nano/catkin_ws/src/cv_bridge/src/module.hpp:26,
from /home/nano/catkin_ws/src/cv_bridge/src/module.cpp:35:
/home/nano/catkin_ws/src/cv_bridge/src/module.hpp: In function ‘int do_numpy_import()’:
/usr/include/python2.7/numpy/__multiarray_api.h:1537:144: error: return-statement with no value, in function returning ‘int’ [-fpermissive]
efine import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NUMPY_IMPORT_ARRAY_RETVAL; } }
^
/usr/include/python2.7/numpy/__multiarray_api.h:1537:144: note: in definition of macro ‘import_array’
efine import_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NUMPY_IMPORT_ARRAY_RETVAL; } }
^~~~~~
src/CMakeFiles/cv_bridge_boost.dir/build.make:62: recipe for target 'src/CMakeFiles/cv_bridge_boost.dir/module.cpp.o' failed
make[2]: *** [src/CMakeFiles/cv_bridge_boost.dir/module.cpp.o] Error 1
CMakeFiles/Makefile2:930: recipe for target 'src/CMakeFiles/cv_bridge_boost.dir/all' failed
make[1]: *** [src/CMakeFiles/cv_bridge_boost.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

解决方法是,修改​​/home/nano/catkin_ws/src/cv_bridge/src/module.hpp​​(根据自己的路径),将最后一段(36~40)行改为

static void do_numpy_import( )
{
import_array( );
}

Resources

  • https://forums.developer.nvidia.com/t/trouble-with-catkin-make-hector-slam/126470/3
  • can’t process package cv_bridge · Issue #205 · ros-perception/vision_opencv · GitHub


标签:bridge,catkin,src,opencv,ws,ROS,cv
From: https://blog.51cto.com/doubleZ/5986620

相关文章

  • 关闭Mac的Microsoft AutoUpdate弹框提示
    macOS安装MicrosoftOfficeforMac之后,有时候会弹出MicrosoftAutoUpdate微软应用自动更新工具。就像下面这样:(我不知道您会不会烦,我是烦了)如果您也和我一样,不喜欢这样不......
  • opencv-python同时调用两个摄像头
    importcv2importnumpyasnpcapture=cv2.VideoCapture(0)capture_usb=cv2.VideoCapture(2)#打开自带的摄像头ifcapture.isOpened()andcapture_usb.isOpene......
  • 新建 Microsoft Office Word 文档 来源:牛客网
    题目链接:https://ac.nowcoder.com/acm/contest/28886/1015时间限制:C/C++1秒,其他语言2秒空间限制:C/C++32768K,其他语言65536K64bitIOFormat:%lld题目描述CSL正在学习......
  • ros,unknown package [geometry_msgs] 问题解决
    CMakeLists.txt:在find_package中添加 geometry_msgs:                          2.在generate_messages里添......
  • dbeaver查看表属性错误:Software caused connection abort: recv failed
    dbeaver查看表属性发生错误:Softwarecausedconnectionabort:recvfailedmysql默认连接是8小时wait_timeout 也就是说Connection如果8小时闲置不用就会失效(或者上手......
  • OpenCV学习之路(附加资料分享)
    目录​​一、前言​​​​二、学习历程​​​​三、学习资料​​​​书籍​​​​网站​​​​视频教程​​​​四、学习建议​​​​入门​​​​强化​​​​灵通​​一、......
  • Win7X64下,opencv安装折腾
    先说环境:win7X64专业版、python3.6.4pip安装了pillow,正常可使用为了不影响原来的环境,新建了一个python虚拟环境,如下:节选自https://zhuanlan.zhihu.com/p/216157886在......
  • Codeforces Round #840 (Div. 2) and Enigma 2022 - Cybros LNMIIT A--B
    ​​https://codeforces.com/contest/1763​​A.AbsoluteMaximization二进制操作经典的利用二进制位数操作的题,|和&。最大值肯定是所有元素的或。最小值是所有元素的与......
  • ros2订阅esp32发布的电池电压数据-补充
    ​​ros2订阅esp32发布的电池电压数据​​电池电压数据能订阅但是不显示,数据QoS不匹配,需要修改。默认: 需要使用的是外部机器人通过wifi传递的数据,设置://createpublisher......
  • CVE-2022-26923 Windows域提权漏洞
    前言ActiveDirectory域服务,是一种目录服务,提供了存储目录数据信息以及用户相关的一些密码,电话号码等等一些数据信息,且可让用户和管理员使用这些数据,有利于域管理员对用......