我是 ROS 的新手。我正在处理来自 ARDRONE 的视频,但我无法流式传输视频。
我是否必须更改发布者和订阅者中的主题才能流式传输视频???
提到我必须使用包文件进行流式传输。
我的发布者和订阅者节点如下:
def __init__(self):
self.image_pub = rospy.Publisher("image_topic_2",Image,queue_size=10)
self.bridge = CvBridge()
self.image_sub = rospy.Subscriber("image_topic",Image,self.callback)
def callback(self,data):
try:
cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8")
except CvBridgeError as e:
print(e)
(rows,cols,channels) = cv_image.shape
if cols > 60 and rows > 60 :
cv2.circle(cv_image, (50,50), 10, 255)
cv2.imshow("Image window", cv_image)
cv2.waitKey(3)
try:
self.image_pub.publish(self.bridge.cv2_to_imgmsg(cv_image, "bgr8"))
except CvBridgeError as e:
print(e)
有人可以解释一下这到底是如何工作的吗?
rostopic hz /ardrone/image_raw 输出为:
rostopic hz /ardrone/image_raw
subscribed to [/ardrone/image_raw]
average rate: 31.109
min: 0.011s max: 0.051s std dev: 0.00873s window: 31
average rate: 31.077
min: 0.011s max: 0.059s std dev: 0.00947s window: 62
average rate: 30.875
min: 0.011s max: 0.061s std dev: 0.00909s window: 92
average rate: 30.508
罗斯图:
/ardrone/image_raw/compressedDepth/set_parameters
/ardrone_driver/set_logger_level
/ardrone/front/image_raw/compressedDepth/set_parameters
/ardrone/setledanimation
/ardrone/image_raw/theora/set_parameters
/image_converter_3034_1485929043890/set_logger_level
/ardrone/front/image_raw/compressed/set_parameters
/ardrone/front/set_camera_info
/ardrone/setflightanimation
/ardrone/setrecord
/image_converter_3034_1485929043890/get_loggers
/rosout/set_logger_level
/ardrone/image_raw/compressed/set_parameters
/ardrone_driver/get_loggers
/ardrone/togglecam
/ardrone/flattrim
/ardrone/bottom/image_raw/theora/set_parameters
/ardrone/bottom/set_camera_info
/ardrone/bottom/image_raw/compressed/set_parameters
/ardrone/bottom/image_raw/compressedDepth/set_parameters
/rosout/get_loggers
/ardrone/setcamchannel
/ardrone/front/image_raw/theora/set_parameters