# ROS2 StarlingV2 image streaming

Source: https://forum.modalai.com/topic/3744/ros2-starlingv2-image-streaming
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2024-08-27 18:42:04 UTC by aidens
Replies: 2 · Views: 684

## aidens · 2024-08-27 18:42:04 UTC

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_alloc
```

I 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.

## Reply by gitcoder · 2024-09-03 21:56:18 UTC

Wow, I had this same exact problem! Hopefully we get some feedback from the Devs soon.

## Reply by Moderator (ModalAI staff) · 2024-09-04 04:15:57 UTC (in reply to gitcoder)

@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/
