Hi,
I am on Ubuntu 18.04.2
I use a version of Plus built from sources
I use Plus to retrieve an image and a transform streams. I added a volume reconstructor:
<PlusConfiguration version="2.1">
<DataCollection StartupDelaySec="1.0" >
<DeviceSet
Name="Plus server: Local images and transform"
Description="Broadcasting images and positions generated by a local server through OpenIGTLink."/>
<Device
Id="Local_Image"
Type="OpenIGTLinkVideo"
MessageType="IMAGE"
ServerAddress="127.0.0.1"
ServerPort="30001"
IgtlMessageCrcCheckEnabled="FALSE"
UseReceivedTimestamps="FALSE"
SendTimeoutSec="30"
ReceiveTimeoutSec="30"
ReconnectOnReceiveTimeout ="FALSE">
<DataSources>
<DataSource Id="Video" Type="Video" PortUsImageOrientation="MF"/>
</DataSources>
<OutputChannels>
<OutputChannel Id="VideoStream" VideoDataSourceId="Video" />
</OutputChannels>
</Device>
<Device
Id="Local_Transform"
Type="OpenIGTLinkTracker"
MessageType="TRANSFORM"
ServerAddress="127.0.0.1"
ServerPort="30000"
IgtlMessageCrcCheckEnabled="FALSE"
UseReceivedTimestamps="FALSE"
SendTimeoutSec="30"
ReceivedTimeoutSec="30"
ToolReferenceFrame="KUKABase"
ReconnectOnReceiveTimeout ="FALSE">
<DataSources>
<DataSource Id="Flange" Type="Tool"/>
</DataSources>
<OutputChannels>
<OutputChannel Id="TrackerStream">
<DataSource Id="Flange"/>
</OutputChannel>
</OutputChannels>
</Device>
<Device
Id="TrackedVideoDevice"
Type="VirtualMixer" >
<InputChannels>
<InputChannel Id="TrackerStream" />
<InputChannel Id="VideoStream" />
</InputChannels>
<OutputChannels>
<OutputChannel Id="TrackedVideoStream"/>
</OutputChannels>
</Device>
<Device
Id="CaptureDevice"
Type="VirtualCapture">
<InputChannels>
<InputChannel Id="TrackedVideoStream" />
</InputChannels>
</Device>
<Device
Id="VolumeReconstructorDevice"
Type="VirtualVolumeReconstructor"
OutputVolDeviceName="3DScan">
<InputChannels>
<InputChannel Id="TrackedVideoStream" />
</InputChannels>
<VolumeReconstruction
ImageCoordinateFrame="Image" ReferenceCoordinateFrame="KUKABase"
Interpolation="LINEAR" Optimization="NONE" CompoundingMode="MEAN" FillHoles="OFF" NumberOfThreads="0"
ClipRectangleOrigin="0 0" ClipRectangleSize="0 0"
OutputOrigin="0 0 0" OutputExtent="0 300 0 300 0 300" OutputSpacing="0.15 0.15 0.15" />
</Device>
</DataCollection>
<CoordinateDefinitions>
<Transform From="Transducer" To="Flange"
Matrix="1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1"/>
<Transform From="Image" To="Transducer"
Matrix="0.0616 0 0 0
0 0 0.0616 0
0 -0.0616 0 6.56
0 0 0 1"/>
</CoordinateDefinitions>
<PlusOpenIGTLinkServer
MaxNumberOfIgtlMessagesToSend="1"
MaxTimeSpentWithProcessingMs="50"
ListeningPort="18944"
OutputChannelId="TrackedVideoStream"
IgtlMessageCrcCheckEnabled="FALSE"
SendValidTransformsOnly="FALSE">
<DefaultClientInfo>
<MessageTypes>
<Message Type="IMAGE" />
<Message Type="TRANSFORM" />
</MessageTypes>
<ImageNames>
<Image Name="Image" EmbeddedTransformToFrame="KUKABase"/>
</ImageNames>
<TransformNames>
<Transform Name="FlangeToKUKABase" />
</TransformNames>
</DefaultClientInfo>
</PlusOpenIGTLinkServer>
</PlusConfiguration>
I use the Plus Remote module for live reconstruction. It works fine on Slicer 4.8.1 for linux.
On Slicer 4.10.1 for linux, after Plus indicates: “Send reconstructed volume to client through OpenIGTLink|” Slicer freezes.
For those both version of Slicer I use binary release of Slicer and I download module with the module manager.
On a Slicer 4.11 built from sources, after the same message sent by Plus, Slicer seems to enter an infinite loop (one CPU at 100%).