QTCreator中创建ROSworkspace工程使用Opencv和cv_bridge

最近在搞这个项目,从无到有慢慢摸索,记录一下过程。

1,首先用QTCreator创建一个ros工程,使用的是带ROS插件的QTCreator,使用过程详见

How to Install (Users) — ROS Qt Creator Plug-in documentation (ros-qtc-plugin.readthedocs.io)

2,在QT中在rosworkspace中创建新的包(package),接着在包名上右键->new->basic node也可以,或者选择C++文件也可以(C++文件中需要自己编写节点代码)

3,每一个package都有相应的CMakeLists.txt文件,每新增一个节点都需要到里面去配置相应的环境。在CMakeLists.txt文件配置opencv,如下

set(OpenCV_DIR /usr/local/lib/cmake/opencv4)
find_package(OpenCV 4 REQUIRED)
include_directories(${OPENCV_INCLUDE_DIRS})
target_link_libraries(testopencv1 ${OPENCV_LIBS})

4,opencv和ros的cv_bridge转换使用,其中会出现一些问题,我今天遇到的的就是undefined reference to cv::imshow(),cv::waitKey()等,但是很奇怪cv::cvtColor()函数却没有报错。找了很久,最终参考如下链接解决。https://blog.csdn.net/bigdog_1027/article/details/79092263

cv_bridgeConfig.cmake文件中lib库的设置没有引入libopencv_highgui.so.3.2.0所以关于窗口显示的东西一直报错。不过为了以后方便使用自己安装的opencv4.2.0,所以我还是按着如上连接中的方法2修改了cv_bridgeConfig.cmake文件。

你可能感兴趣的:(机器人)