ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    ROS2 StarlingV2 image streaming

    Ask your questions right here!
    3
    3
    113
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      aidens
      last edited by

      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.

      G 1 Reply Last reply Reply Quote 1
      • G
        gitcoder @aidens
        last edited by

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

        ModeratorM 1 Reply Last reply Reply Quote 0
        • ModeratorM
          Moderator ModalAI Team @gitcoder
          last edited by

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

          1 Reply Last reply Reply Quote 0
          • First post
            Last post
          Powered by NodeBB | Contributors