Unity-Robotics-Hub icon indicating copy to clipboard operation
Unity-Robotics-Hub copied to clipboard

RosConnection.Update() spiking to >180ms execution. This thread-blocking causes bad frame spikes when Playing.

Open cokumura2019 opened this issue 2 years ago • 2 comments

Describe the bug I am getting massive stutters when streaming images from ROS. When using the Editor profiler, it's apparent that the RosConnection.Update() invocation is blocking the main thread for >180ms. I am also using

Note: I am using 5, 720x720 images (~45fps per cam)

To Reproduce Steps to reproduce the behavior:

  1. Start the Unity TCP endpoint specifying 127.0.0.1 as the IP address (via the bash terminal)
  2. Set up 5 visualizers using the Unity Visualization package, each connecting to a different ROSTopic (so each visualizer window is subscribed to a different Image topic)
  3. Open up the Unity Profiler window
  4. Observe the lag spikes!

Console logs / stack traces No errors thrown.

Expected behavior I guess I would expect that the Update() invocation shouldn't take so long to compute. 90% of the other frames that render the 5 camera views are smooth. However, when the frame lag spike occurs, it's very noticeable so I'd expect that any delay on the Update() function > 30ms is concerning.

Screenshots Screenshot of frame showing massive compute time for RosConnection.Update(): LargeDelayInRosConnec

Screenshot of frame showing normal compute time for RosConnection.Update() NormalSmallDelayInRosConnection

Environment (please complete the following information, where applicable):

  • Unity Version: Unity 2022.3.10f1
  • Unity machine OS + version: Ubuntu 20.04
  • ROS machine OS + version: Ubuntu 20.04, ROS Noetic
  • ROS–Unity communication: localhost via Unity-ROS TCP Endpoint (C++ version)
  • Branch or version: [v0.7.0 for the Unity-ROS TCP Connector for Unity] [v0.7.0 for the Unity-ROS visualization package] [v0.7.0 for Unity-ROS TCP endpoint]

Additional context These delay spikes occur relatively frequently (>2 times per second)

cokumura2019 avatar Nov 11 '23 22:11 cokumura2019

One other odd thing I noted:

  • When I made only 1 ROS topic subscription, a large lag spike was still present but occurred predictably around every 3 seconds, with smaller lag spikes every second.

cokumura2019 avatar Nov 12 '23 02:11 cokumura2019

I noticed the same thing, please leave an update if you find a fix!

zAle711 avatar Nov 17 '23 15:11 zAle711