AprilRobotics / apriltag_ros

A ROS wrapper of the AprilTag 3 visual fiducial detector
Other
373 stars 339 forks source link

Add transport options #107

Closed amalnanavati closed 3 years ago

amalnanavati commented 3 years ago

Currently, the continuous_detector node subscribes to the raw transport option by default (see this line). However, for performance reasons, it may be beneficial to subscribe to other transport options (e.g., compressed)

This issue is to add a transport option parameter that enables users to specify which transport option the continuous_detector node should subscribe to.

amalnanavati commented 3 years ago

Adding more details about the issue that motivated this, in case it helps others.

Our camera is running on a separate computer from the continuous_detector node, which by default subscribed to the raw transport. Due to the size of Image messages and network latency, both the Image and CameraInfo messages were being sent at a rate of ~30 FPS, but the Image messages were being received at a rate of ~10 FPS. This resulted in image_transport errors (see below) that prevented the callback from bein invoked.

[ WARN] [1635209610.548825014]: [image_transport] Topics '/camera/color/image_raw' and '/camera/color/camera_info' do not appear to be synchronized. In the last 10s:
        Image messages received:      206
        CameraInfo messages received: 294
        Synchronized pairs:           0

This was addressed by switching the transport hint to "compressed".

Thanks for merging #108 so promptly!

wxmerkt commented 3 years ago

Thank you for providing the fix and the clear explanation - this is a very useful addition!