小車yolo機械臂(六)ros gazebo 小車攝像頭根據darknet_ros中yolo目標檢測的資訊進行自主運動
小車yolo機械臂(六)ros gazebo 小車攝像頭根據darknet_ros中yolo目標檢測的資訊進行自主運動
前言
前面幾篇部落格已經實現了小車通過命令列運動,以及yolo檢查結果資訊的輸出,那麼現在我們要將這兩者融合在一起。根據darkenet_ros中yolo的結果(比如前方檢測出有人,小車啟動,向前)自動進行運動。
rospy.Publisher()
我們要將控制小車運動的程式碼,寫到listener_yolo.py檔案中,在這個python檔案中,已經實現了yolo檢測目標的輸出,那麼現在我們要實現的就是將小車運動的命令植入到這個python檔案中。
pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)
我們用到rospy.Publisher,這是話題的一個釋出,這裡用到的是Twist訊息型別,因為/cmd_vel這個話題所對應的訊息型別為:geometry_msgs/Twist (上一個部落格有講解)
所以我們在python檔案的頂部,要匯入:
from geometry_msgs.msg import Twist
queue_size 這裡比較複雜,我就直接貼上複製其它博主的講解了:
rospy中的publish()預設是阻塞式同步傳送模式。這將導致連線斷開後publish卡死(比如無線連線的publisher和subscriber)。
不過,可以將publish和subscribe的queue_size寫入一個大於0的值使publish成為非同步模式。
- queue_size: None(不建議)
這將設定為阻塞式同步收發模式! - queue_size: 0(不建議)
這將設定為無限緩衝區模式,很危險! - queue_size: 1,2,3
對於只關心最新資料的sensor訊息,可以設為1;
對於系統負載不高,能及時處理的訊息,可以設為1,2,3. - queue_size: 10 or more
- 一般情況下,設為10 。queue_size太大了會導致資料延遲不同步
更多請參考:
ROS筆記:Python
ROS訂閱最新的訊息及queue_size和buff_size的理解
ROS進二階學習筆記(10) – rospy.Publisher() 之 queue_size
08.ROS入門學習 - 用python寫 Publisher 和 Subscriber
rospy讓小車自主動起來
直接上程式碼:
#!/usr/bin/env python
import rospy
from darknet_ros_msgs.msg import BoundingBoxes
from geometry_msgs.msg import Twist
def callback(data):
print data.bounding_boxes[0].Class
if data.bounding_boxes[0].Class == 'person':
pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)
desired_velocity = Twist()
desired_velocity.linear.x = 0.1
desired_velocity.angular.z = 0
pub.publish(desired_velocity)
print "go on"
def listener():
rospy.init_node('topic_subscriber')
sub = rospy.Subscriber('/darknet_ros/bounding_boxes', BoundingBoxes, callback)
rospy.spin()
if __name__ == '__main__':
listener()
我們啟動模型:
roslaunch mrobot_gazebo my_gazebo3.launch
現在小車還是靜止的,我們在小車模型前面放置一個人。
小車檢測到前方有人,就開始移動
在終端也小車也列印出了移動的結果。
相關文章
- 使用 YOLO 進行實時目標檢測YOLO
- 目標檢測之YOLO系列YOLO
- 深度學習目標檢測(object detection)系列(六)YOLO2深度學習ObjectYOLO
- ROS訊息訂閱監聽 rospy.Subscriber 訂閱監聽darknet_ros 中yolo python實現訂閱/darknet_ros/bounding_boxes topicROSYOLOPython
- 【YOLO目標檢測實戰 】3.使用YOLO11訓練COCO128資料集YOLO
- 目標檢測 YOLO v3 驗證 COCO 模型YOLO模型
- 單級式目標檢測方法概述:YOLO與SSDYOLO
- 目標檢測 YOLO v3 訓練 人臉檢測模型YOLO模型
- 從滑動視窗到YOLO、Transformer:目標檢測的技術革新YOLOORM
- 使用關鍵點進行小目標檢測
- 物體檢測實戰:使用 OpenCV 進行 YOLO 物件檢測OpenCVYOLO物件
- 深度學習與CV教程(13) | 目標檢測 (SSD,YOLO系列)深度學習YOLO
- 目標檢測入門系列手冊五:YOLO訓練教程YOLO
- 整合多種YOLO改進點,面向小白科研的YOLO檢測程式碼庫YOLOAirYOLOAI
- 【百度飛漿】YOLO系列目標檢測演算法詳解YOLO演算法
- 【目標檢測從放棄到入門】SSD / RCNN / YOLO通俗講解CNNYOLO
- Jetson AGX Xavier ROS下呼叫USB單目攝像頭ROS
- 檢測根目錄帶bom頭資訊的檔案
- YOLO目標檢測從V1到V3結構詳解YOLO
- 三分鐘:極速體驗JAVA版目標檢測(YOLO4)JavaYOLO
- 從零開始PyTorch專案:YOLO v3目標檢測實現PyTorchYOLO
- yolo資料標註方法YOLO
- 人員跌倒檢測攝像頭
- yolo5+gradio影片檢測案例YOLO
- “快到沒朋友”的目標檢測模型YOLO v3問世,之後arXiv垮掉了…模型YOLO
- 機械臂測試手機機械臂
- 安全帽佩戴檢測攝像頭
- ROS小車實踐記錄(五)ROS
- 日本最新研究:從你腦中自動領任務的機械手,三頭六臂不是夢
- 電動車頭盔穿戴檢測方案
- 從虛擬世界伸到現實的機械臂,靠攝像機就能玩轉任何物體虛擬世界機械臂
- 物體檢測(YOLO)示例:使用 C 語言YOLO
- win10 怎麼檢測攝像頭_win10怎麼設定攝像頭Win10
- 一文讀懂目標檢測:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSDCNNASTYOLO
- yoloYOLO
- 資料標註案例分享:車輛前置攝像頭資料採集標註專案丨曼孚科技
- 一次實踐:給自己的手機攝像頭進行相機標定
- Spiking-YOLO : 前沿性研究,脈衝神經網路在目標檢測的首次嘗試 | AAAI 2020YOLO神經網路AI