ROS訊息訂閱監聽 rospy.Subscriber 訂閱監聽darknet_ros 中yolo python實現訂閱/darknet_ros/bounding_boxes topic

WinstonYF發表於2020-10-26

準備

最近在做一個專案,要在小車上安裝攝像頭,攝像頭的影像的topic(話題)傳遞給darknet_ros裡的yolo進行檢測,現在要做的就是,單獨寫個python。

專案基礎:
ros下gazebo搭建小車(可鍵盤控制)安裝攝像頭模擬 載入yolo檢測識別標記物體

在上面專案的基礎上,在mrobot_gazebo下新建scripts,再在scripts下新建一個python檔案:listener_yolo.py,作用就是用於訂閱/darknet_ros/bounding_boxes話題的資訊,這個話題含有yolo識別檢測出的資訊。
在這裡插入圖片描述

終端檢視topic資訊

首先,我們先看看,怎麼使用終端檢視darnet_ros下yolo識別出來的資訊。
1,把上面說的專案執行起來

執行小車及攝像頭的gazebo模擬

 roslaunch mrobot_gazebo my_gazebo3.launch

執行darknet_ros

roslaunch darknet_ros darknet_ros.launch

2,檢視當前所有的topic

rostopic list

在這裡插入圖片描述
可以看到很多以darknet_ros開頭的

輸出話題

我們將/darknet_ros/bounding_boxes這個話題輸出,執行指令

rostopic echo /darknet_ros/bounding_boxes

在這裡插入圖片描述
yolo的檢測出的資訊就輸出在了終端裡

下一步我們就要使用python來訂閱這一話題,然後講訂閱後的資訊列印在終端上。

新建listener_yolo.py

在mrobot_gazebo下新建scripts,再在scripts下新建一個python檔案:listener_yolo.py

我們先要給listener_yolo.py許可權,不然無法執行。
在listener_yolo所在目錄執行:

chmod +x listener_yolo.py

在寫裡面的內容之前,我先把我查閱的比較有用的資料先羅列出來:
ROS Learning-014 learning_tf(程式設計) 座標系變換(tf)廣播員 (Python版)
ROS Learning-015 learning_tf(程式設計) 編寫一個監聽器程式 (Python版)
ros的節點node訂閱subscribe訊息python版Subscribing to a Topic
Rospy的官方教程程式碼講解(一)釋出與訂閱

ROS訊息傳遞——std_msgs

ROS自定義msg型別及使用 這篇的評價裡的內容激發了我:
Python 使用自定義 msg 匯入方式:
from 功能包名.msg import 訊息檔名

相關文章