-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
9: The Camera view in the visualizer has a very poor performance compared to the real cameras output #71
Comments
In addition, in some tests the image is occasionally flickering. Refer to https://github.com/ami-iit/component_ANA-Avatar-XPRIZE/issues/403. |
At some point we suspected that the line scattering observed in the fake-framegrabber rendering was due to the simultaneous display of multiple frames, and thus related to the Historical requests (refer to this documentation section). This seems now to be a wrong lead, as we can see in the screenshot below that even a single frame includes multiple lines instead of a singe one for the fake framegrabber. |
Logging the received image data on a yarp portWe publish the image data received through the plugin For this we added the support of yarp-openmct/openmctStaticServer/index.html Lines 12 to 13 in 3d6105d
yarp-openmct/openmctStaticServer/index.html Lines 28 to 33 in 3d6105d
yarp-openmct/openmctStaticServer/index.html Line 143 in 3d6105d
yarp-openmct/openmctStaticServer/realtime-telemetry-plugin.js Lines 5 to 16 in 3d6105d
We then use the stream video plugin example of We can conclude that the line scattered lines issue occurs in the data transmission between the telemetry server and the Open-MCT based visualizer client. Sending a fixed frameIf we break the telemetry server we get a constant sample and thus a fixed frame on the visualizer, similar to the output illustrated on #71 (comment), i.e with scattered lines. This confirms the observation from the previous experiment. We then implement some changes in order to have the server send the raw image data buffer, and the client to apply the conversion to the URI format and base 64 ( yarp-openmct/openmctStaticServer/realtime-telemetry-plugin.js Lines 10 to 21 in 34cae51
This way it's easier to compare the data sent and received. I'm suspecting an issue with the way the data transmission is scheduled, which could cause a race condition leading to concurrent data access in the case of big chunks of data, typically image data. |
This way, we get a fixed frame on the visualizer, and also on the yarpview display as well: We can see that the outputs are well aligned. We then break the telemetry server and the client visualizer in order to get in the debugger the sent and received buffers.
The buffers are identical. The problem is not in the transmission of the data between the server and client, but rather in the implementation of the yarp image type port reading. From the |
This works pretty well, it solves the scattered lines issue. We can now choose a better protocol for the connection, other than A debug version of the fix is implemented in https://github.com/ami-iit/yarp-openmct/tree/e5e0f28fbe8708954ac8240bfc43819b2955ff02. |
This change broke the shutdown sequence. Fixing... |
The proper closure of the
The closure process resumes normally after we kill the
|
Further analysis and fix documented in #102 . Converting current issue into an epic. |
Camera view In the visualizer has a very poor performance: pixelation, degraded resolution, color shift (e.g blue->red), delayed input (1min).
The text was updated successfully, but these errors were encountered: