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.