Jetson Nano上的ROS和OpenCV与CUDA:不兼容版本
我想在我的Jetson Nano上使用ROS和支持CUDA的OpenCV。在这一点上,我不关心版本 问题:Jetson Nano只支持CUDA 10和Ubuntu 18.04。Ubuntu 18.04的ROS版本是Melodic,需要OpenCV 3.2,但OpenCV 3.2只支持CUDA 8 我在SO()上找到了一个使用CUDA 9构建它的指南,但在使用CUDA 10尝试时失败了,原因是“错误:标识符”\uuuuuShfl\uDown“未定义”,以及其他一些“\uShfl\uXXX”错误 这里有人成功地让它工作了吗?或者有没有关于如何修复“shfl\u down”错误的想法 OpenCV 3.2能否与CUDA 10.2配合使用Jetson Nano上的ROS和OpenCV与CUDA:不兼容版本,opencv,ros,nano,nvidia-jetson,Opencv,Ros,Nano,Nvidia Jetson,我想在我的Jetson Nano上使用ROS和支持CUDA的OpenCV。在这一点上,我不关心版本 问题:Jetson Nano只支持CUDA 10和Ubuntu 18.04。Ubuntu 18.04的ROS版本是Melodic,需要OpenCV 3.2,但OpenCV 3.2只支持CUDA 8 我在SO()上找到了一个使用CUDA 9构建它的指南,但在使用CUDA 10尝试时失败了,原因是“错误:标识符”\uuuuuShfl\uDown“未定义”,以及其他一些“\uShfl\uXXX”错误 这
set(OpenCV_INCLUDE_DIRS
<path_to>/include
<path_to>/include/opencv2
)
set(OpenCV_LIB_DIR
<path_to>/lib
)
set(OpenCV_LIBS
opencv_core
opencv_highgui
opencv_imgcodecs
)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIB_DIR})
add_executable(${PROJECT_NAME} src/main.cpp)
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
set(OpenCV\u INCLUDE\u DIRS
/包括
/include/opencv2
)
设置(OpenCV_LIB_DIR
/解放党
)
设置(OpenCV_库)
opencv_内核
opencv_highgui
opencv_imgcodecs
)
include_目录(${OpenCV_include_DIRS})
链接目录(${OpenCV\u LIB\u DIR})
添加可执行文件(${PROJECT\u NAME}src/main.cpp)
目标链接库(${PROJECT\u NAME}${OpenCV\u LIBS})
在OpenCV_LIBS
下添加代码中使用的OpenCV模块
注:我不是一个在我的机器上测试这个位置的人,所以把这个当作一个暂时的答案,如果你有问题,请告诉我,我会尽力帮助
我找到了一个解决方案,尽管我还没有对其进行广泛的测试:
find_包(Boost-REQUIRED-python37)
更改为find_包(Boost-REQUIRED-python)
返回null ptr代码>
我知道这是一个有点黑客的解决方案,所以如果有人知道更好的东西,请让我知道 如果您实际使用CUDA 8或更高版本进行编译,但安装的CUDA肯定是10.2,这也是cmake在配置过程中检测到的,那么您只会遇到这样的错误。如果配置有问题,请cmake尝试使用cuda版本进行构建谢谢你的建议,我会尝试看看它是否有效。但是cv_桥是否仍然使用OpenCV 3.2,从而在使用cv_桥从ROS图像转换到OpenCV图像时产生兼容性问题?原则上,您的建议是有效的,但只有在我添加cv_桥作为依赖项之前。然后我得到错误“Project'cv_bridge'将'/usr/include/opencv'指定为include dir,但找不到它”。我想我必须从源代码构建cv_桥(以及任何依赖于OpenCV的模块),指定要使用哪个OpenCV?感谢更新,我也刚刚找到了那篇文章并尝试了它。不幸的是,它似乎只有在主要OpenCV版本匹配时才起作用,因为它失败,出现错误“找不到与请求的版本“3”兼容的包“OpenCV”的配置文件,然后将版本4.1.1列为不接受。@Milan您是如何构建cv_桥的?下载cv_bridge包并尝试使用
catkin_make-DOpenCV_DIR=/usr/local/share/OpenCV
构建,或者更改cv_bridge的CMakeLists.txt文件,添加可选的OpenCV位置是的,我使用了第一个选项,将cv_bridge下载到我的catkin_工作区并运行catkin_make-DOpenCV DIR=/usr/local/share/opencv4。这就是我得到错误的时候。看起来cv_bridge正在进行检查,以确保opencv版本为3.x.x