< >
Home » ROS与QT语言入门教程 » ROS与QT语言入门教程-两个节点同时具有发布和订阅图像消息

ROS与QT语言入门教程-两个节点同时具有发布和订阅图像消息

ROS与QT语言入门教程-两个节点同时具有发布和订阅图像消息

说明

  • 利用OpenCV将图片转化为ROS可以接受的消息

  • 两个节点同时具有发布和订阅图像消息

点击查看完整代码

整个流程

  • 建立两个节点image_node_a 和 image_node_b

  • 节点image_node_a在一个topic——node_a下发布图像message

  • 节点image_node_b订阅topic——node_a

  • 然后节点image_node_b又把收到的信息转换为opencv格式的图像进行处理

  • 接着节点image_node_b把处理后的信息又在topic——node_b下发布出去

  • 最后,node_a订阅topic——node_b

节点node_a

在工作空间~/cv_ws/src下新建一个文件夹——image_node_a,该文件夹下包含一个src文件夹/image_node_a.cppCMakeLists.txtpackage.xml

image_node_a.cpp中载入图片的路径修改为自己的图片路径:

 cv::Mat image = cv::imread("/home/dwy/Lenna.png", CV_LOAD_IMAGE_COLOR);

修改路径:/home/XXXX/XXXX.png

节点node_b

在工作空间~/cv_ws/src下新建一个文件夹——image_node_b,该文件夹下包含一个src的文件夹/image_node_b.cppCMakeLists.txtpackage.xml

查看其结构

├── image_node_a
│   ├── CMakeLists.txt
│   ├── package.xml
│   └── src
│       └── image_node_a.cpp
└── image_node_b
    ├── CMakeLists.txt
    ├── package.xml
    └── src
        └── image_node_b.cpp

编译工程空间

$ export ROS_PACKAGE_PATH=~/cv_ws/src:$ROS_PACKAGE_PATH 
$ roscd image_node_a
$ cd ~/cv_ws
$ catkin_make

运行

打开一个终端

$ roscore

打开另一个终端,运行节点node_a

$ cd ~/cv_ws
$ source ./devel/setup.bash
$ rosrun image_node_a  image_node_a

打开另一个终端,运行节点node_b

$ cd ~/cv_ws
$ source ./devel/setup.bash
$ rosrun image_node_b  image_node_b

查看该实例的节点关系图

$ rqt_graph

参考资料

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与qt语言入门教程, ros qt