Loss of Frames with 3D Camera

#1

Hi there

I have a problem with a 3d camera:

Vendor: LMI

Model: Gocator 2420

Version: 5.2.18.11

I am using Python and Pycharm and the latest CVb software. After setting the number of buffers to 3, or 10 or 100 or 1000 after the last buffer image (if buffer size = 3, at image 4) i get (i have removed a try catch to find the error):

Traceback (most recent call last):
File “C:/Users/User/PycharmProjects/base-valve/base_valve_GUI.py”, line 816, in run
np_array3D = cvb.as_array(image3D)
File “C:\Users\User\AppData\Local\conda\conda\envs\base-valve\lib\site-packages\cvb_ *init* _.py”, line 281, in as_array
if not image.plane_data_types_identical:
RuntimeError: failed to extract type - resource might be gone

I am using two cameras (the other one a Jai GO-5000M-PGE, no problem with it at any buffer size).
I have optimized the network card setting as per instructions to maximize performance on both cards. The 3D camera is using the GenTl protocol.

the relevant code snippet is:

image3D, status3D = self.stream3D.wait()
np_array3D = cvb.as_array(image3D, copy=False)
np_array_3D = np_array3D[:, :, 0] # height map

The status3D is always good : 0

Thank you for your help,
GTG

#2

See reply in this post: Change RingBufferCount

#3

Hi Germano,

I can see the same behavior when I use stream.wait() with a Gocator.
Internally the wait() function just calls wait_for() with the maximum duration, which is uint32. So I can reproduce your issue also with stream.wait_for(4294967290).
However, when using a more realistic threshold (e.g. 5000) it works for me.

It looks like that the Gocator TL can’t handle long timeout values, but we have to look into it.
For now you could just use wait_for() with a reasonable timeout threshold.

Best regards,
Maurice