My question regards more the PLUS Toolkit library and maybe IGT, but I’ve been recommended this forum for support with this issue since PLUS is often used with Slicer3D and IGT. Here’s my original post on the PLUS repo.
Basically I’m currently working on a way to reproduce the interactions between Slicer3D and the PLUS Toolkit’s Ultrasound simulator, but using Unity instead of Slicer in order to easily create a 3D environment supporting VR interactions. My project revolves around simulating, in real time, an ultrasound image of the forearm of a patient (3D mesh).
I tried to understands how Slicer3D communicates with PLUS via IGT and to reproduce it in Unity/C#. The Unity system I’m working on works by creating a TCP Listener to which the PLUS US Sim will connect to in order to send it various tool’s transform matrices. Simultaneously, I create a TCP client that connects to PLUS and that will receive the simulated ultrasound image data.
My problem is that my solution works very briefly before the PlusServer.exe stops responding and shows me a few errors. I was wondering if some of you would have an idea of what it could mean.
Right after sending the starting transforms and receiving the first US image, PLUS seems to stop working and sends multiple error logs. This next screenshot show the errors after the first data exchange. The error seems to be
Failed to get oldest timestamp: no overlap between tracking and video data[...]:
After a few logs of this error, I get multiple
Failed to get video buffer item by timestamp [X ...]. And then I get a
ToolTimeStampedUpdate failed for tool: message until I close the PlusServer.exe. This next screenshot show all of these errors.
I’m pretty confident that at least a few data messages are exchanged between my solution and PLUS before it stops working since my mesh objects (tools) are move to the right position/rotation in the PLUS 3D space and I receive at least one image from PLUS that I can display (as seen on the screenshot bellow)
From what I can tell, maybe there is a timestamp issue between the data messages I send and PLUS, but I’m not sure how that would be possible since from what I understand PLUS is not using the timestamp (always 0) I send via the data message containing the transform matrix of X tool. Would anyone know what these error messages could mean?