ROS2 StarlingV2 image streaming
-
Hi,
I am trying to stream images from the hires camera over ros using the starlingV2 drone for a robotics application. I am facing a lot of issues due to network bandwidth.
I would like to know what the best approach to stream images from the hires_small_color camera stream to a host computer at a modest rate of 5hz. I have tried the following approaches
Simply streaming the raw images over a ros topic at a rate higher than 1 hz seems to lead to significant latency and lag which at worst case has crashed my qvio and caused the drone to crash. Running iperf seems to suggest a bandwidth of about 200Mbits between my host computer and the drone, so I imagine the issue here is in the serialization of the images.
Using a RTSP server seems to stream the images quickly, but for my use case I require accurate and aligned timestamps with QVIO.
I have tried to subscribe to the /hires_small_encoded topic, but the entire mpa_to_ros2 program crashes with this error.
Interface hires_small_encoded now publishing terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_allocI recently reflashed a recalibrated my starling2 drone. The following are the outputs of voxl-version
-------------------------------------------------------------------------------- system-image: 1.7.8-M0054-14.1a-perf kernel: #1 SMP PREEMPT Sat May 18 00:10:25 UTC 2024 4.19.125 -------------------------------------------------------------------------------- hw platform: M0054 mach.var: 1.0.1 -------------------------------------------------------------------------------- voxl-suite: 1.3.3 --------------------------------------------------------------------------------I am looking for any advice as to how to stream the hires_small images from the drone to a host computer at around 5hz.
-
Hi,
I am trying to stream images from the hires camera over ros using the starlingV2 drone for a robotics application. I am facing a lot of issues due to network bandwidth.
I would like to know what the best approach to stream images from the hires_small_color camera stream to a host computer at a modest rate of 5hz. I have tried the following approaches
Simply streaming the raw images over a ros topic at a rate higher than 1 hz seems to lead to significant latency and lag which at worst case has crashed my qvio and caused the drone to crash. Running iperf seems to suggest a bandwidth of about 200Mbits between my host computer and the drone, so I imagine the issue here is in the serialization of the images.
Using a RTSP server seems to stream the images quickly, but for my use case I require accurate and aligned timestamps with QVIO.
I have tried to subscribe to the /hires_small_encoded topic, but the entire mpa_to_ros2 program crashes with this error.
Interface hires_small_encoded now publishing terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_allocI recently reflashed a recalibrated my starling2 drone. The following are the outputs of voxl-version
-------------------------------------------------------------------------------- system-image: 1.7.8-M0054-14.1a-perf kernel: #1 SMP PREEMPT Sat May 18 00:10:25 UTC 2024 4.19.125 -------------------------------------------------------------------------------- hw platform: M0054 mach.var: 1.0.1 -------------------------------------------------------------------------------- voxl-suite: 1.3.3 --------------------------------------------------------------------------------I am looking for any advice as to how to stream the hires_small images from the drone to a host computer at around 5hz.
-
@gitcoder You really shouldn't use ROS for this, especially when network bandwidth is limited. ROS and ROS 2 add significant network bandwidth both local to the device and over the network.
If you really need it over ROS 2, you should use a compressimage sensor message. Here's some code we found through a search https://answers.ros.org/question/385599/how-to-publish-a-compressedimage-in-ros2-foxy/
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login