Closed pratiksparwatwar closed 2 years ago
@pratiksparwatwar Hi,
Thank you for the report and for trying out Harvester. Here's a quick question: Does the issue happen every fetch_buffer
call?
As a typical scenario, there is a case where a frame turns corrupted due to an unexpected trouble such as insufficiently small size buffers; once an image buffer consisted of corrupted part then it cannot be parsed as long as the chunk parser is enabled. This case can be resolved with a large enough buffer that's about 9 kB enabling jumbo frame on the NIC. There is also a case where the corruption is introduced by a poor quality cable but it should be enough if you remind there's such a case.
Best regards, Kazunari
Hi
I have exactly the same problem as reported above by @pratiksparwatwar. My setup is also the same as his.
With device setting DeviceScanType = "Linescan3D" the following happens:
The first 17 calls to 'fetch_buffer' raises an exception with: Invalid layout of buffer attached to chunk parser! : RuntimeException thrown (file 'ChunkAdapterGEV.cpp', line 99)
Calls to 'fetch_buffer" after the first 17 calls raise a TimeoutException.
With device setting DeviceScanType = "Areascan" I do get 2D frames from the device when calling 'fetch_buffer'.
I.e. Areascan works whereas Linescan3D does not work.
Regards Francois
@pratiksparwatwar Hi,
Thank you for the report and for trying out Harvester. Here's a quick question: Does the issue happen every
fetch_buffer
call?As a typical scenario, there is a case where a frame turns corrupted due to an unexpected trouble such as insufficiently small size buffers; once an image buffer consisted of corrupted part then it cannot be parsed as long as the chunk parser is enabled. This case can be resolved with a large enough buffer that's about 9 kB enabling jumbo frame on the NIC. There is also a case where the corruption is introduced by a poor quality cable but it should be enough if you remind there's such a case.
Best regards, Kazunari
Issue Happens every fetch buffer call
Hi
I have exactly the same problem as reported above by @pratiksparwatwar. My setup is also the same as his.
With device setting DeviceScanType = "Linescan3D" the following happens:
The first 17 calls to 'fetch_buffer' raises an exception with: Invalid layout of buffer attached to chunk parser! : RuntimeException thrown (file 'ChunkAdapterGEV.cpp', line 99)
Calls to 'fetch_buffer" after the first 17 calls raise a TimeoutException.
With device setting DeviceScanType = "Areascan" I do get 2D frames from the device when calling 'fetch_buffer'.
I.e. Areascan works whereas Linescan3D does not work.
Regards Francois
Can you please share how to apply device settings through code.
Device settings are applied programatically using:
self.ia = self.harvester.create_image_acquirer(dev_idx)
# Iterate over all settings and apply.
nm = self.ia.remote_device.node_map
for m in my_camera_config:
for (k, v) in m.items():
if nm.has_node(k):
nm.get_node(k).value = v
In this code my_camera_config
is a list of dictionaries with key/value pairs being the name of the setting and the required valued.
For the Ranger3, these are two of the settings supported by the device:
my_camera_config = [{"DeviceScanType": "Linescan3D"}, {"RegionSelector": "Region1"}]
I have these in a TOML configuration file which the application loads and applies.
I tested the behaviour of harvesters_gui (from https://github.com/genicam/harvesters_gui) and see the same problem that the 3D data cannot be acquired from the Ranger3 due to:
Invalid layout of buffer attached to chunk parser! : RuntimeException thrown (file 'ChunkAdapterGEV.cpp', line 99)
Hi, I'd appreciate it if you could give it a try with the GenTL producer from MATRIX VISION to check if the phenomenon can be reproduced with that. Here's the link to their installer:
Once you installed that on your machine, please grep their CTI file (i.e., a GenTL producer). And then, please run your program again with their CTI file. Thanks! Regards, Kazunari.
Hi @kazunarikudo
Thanks for the idea to use the Matrix Vision CTI file. Using this file
/opt/mvIMPACT_Acquire/lib/x86_64/mvGenTLProducer.cti
I am able to acquire buffers from the SICK Ranger3 device!
I will see whether I can extract 3D profiles as needed using this.
Does this mean there is a bug in the CTI file provided by SICK?
Regards Francois
Hi @pratiksparwatwar
I finally got feedback from Sick support. It seems there is an issue where chunk data provided by the Ranger3 is not dealt with well in Harvester. Their recommendation is to disable Chunk Data on the device.
I tried this and it seems to have fixed the problem.
Regards Francois
@fswane and @pratiksparwatwar I would recommend that you test the fix provided by #281 and see if that solves your problems with chunks together with the Ranger3-camera.
Please report back if you still experience troubles. Best regards Jonas
@olofsjo Hi Jonas, thank you for taking care of this issue. I appreciate that. I have added some lines based on the suggested fix presented by Alfred to take care of some more practical situations. Hence, it's ready to be tested on the field! Thank you again for your support. Regards, Kazunari.
Hi Everybody, Could you ping me when any of you could confirm the issue has been resolved. We have resolved the first issue but I do not know if there are some more defects that block us to get the SICK Ranger 3 working. Thanks!
We have started testing on the release candidate for GenApi v3.4. Alfred found a smaller problem and made a pull request https://github.com/genicam/harvesters/pull/295, we will continue testing this week.
Hi
Thanks we'll have a look later this week and provide feedback.
Regards
Francois
On 2022/03/07 08:12, Kazunari Kudo wrote:
Hi Everybody, Could you ping me when any of you could confirm the issue has been resolved. We have resolved the first issue but I do not know if there are some more defects that block us to get the SICK Ranger 3 working. Thanks!
— Reply to this email directly, view it on GitHub https://github.com/genicam/harvesters/issues/269#issuecomment-1060228222, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADHIR3T63NFHP4Z43VHU6STU6WM4TANCNFSM5JJPRZWA. Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID: @.***>
Hi everyone, please help me down sdk 2.8 or 2.9 sick ranger3 from website sicksupportportal. Thanks
@manhsp I recommend that you pick 2.9 or a later version. 2.9 can be found here: https://supportportal.sick.com/release/3d-stream-sdk-version-29/ and 3.1 (currently the latest) here: https://supportportal.sick.com/release/3d-stream-sdk-version-31/
I don't have account this website. Can you help me?
Vào Th 2, 29 thg 8, 2022 vào lúc 13:33 Jonas Olofsson < @.***> đã viết:
@manhsp https://github.com/manhsp I recommend that you pick 2.9 or a later version. 2.9 can be found here: https://supportportal.sick.com/release/3d-stream-sdk-version-29/ and 3.1 (currently the latest) here: https://supportportal.sick.com/release/3d-stream-sdk-version-31/
— Reply to this email directly, view it on GitHub https://github.com/genicam/harvesters/issues/269#issuecomment-1229839286, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASAXPHZUQDG7PXHHCROEVALV3RKVBANCNFSM5JJPRZWA . You are receiving this because you were mentioned.Message ID: @.***>
@manhsp I recommend that you register for an account at https://supportportal.sick.com/
Hello everyone, I have a question regarding the scaling factors of the ranger3 3D camera, I have the datacube with the following bands: 'ZRange', 'Reflectance', 'XRange'. I also have the scaling factors: 'scale_factors_x_y_z': ['0.0130191', '1', '0.00870004']. I used this code in python to convert pixel values into real distances: z_range = data_cube[:,:,0] x_range = data_cube[:,:,2] ref = data_cube[:,:,1]
converted_data = np.empty_like(data_cube)
converted_data[:,:,0] = z_range scale[2] converted_data[:,:,1] = ref scale[1] converted_data[:,:,2] = x_range * scale[0] but the resulted values do not represent the real distances. I would very much appreciate any help on this matter. Note: the camera is well calibrated and the aspect ratio is also well calibrated. Thank you
Describe the Bug I am using Ranger3 Sick (3d machine vision camera) with Ubuntu 18.04. I have *.cti file from their Linux SDK. I am able to load cti file through harvester and get Camer info. but when I try to fetch_buffer I am gettig the following error.
_genapi.RuntimeException: Invalid layout of buffer attached to chunk parser! : RuntimeException thrown (file 'ChunkAdapterGEV.cpp', line 99)
I have used following code
from harvesters.core import Harvester import numpy as np h = Harvester() h.add_file("sickGenTLProducer.cti") h.update() print(len(h.device_info_list)) print(h.device_info_list[0]) ia = h.create_image_acquirer(0) ia.start_acquisition() with ia.fetch_buffer() as buffer: print(buffer)
To Reproduce Steps to reproduce the behavior:
Expected Behavior Needed buffer data from camera through code
Screenshots If applicable, add screenshots to help explain your problem; Note that it is not necessary to put everything as a screenshot! If the source is a text just paste the text because that is much helpful for us.
Configuration
Reproducibility
This phenomenon can be reproduced by other versions:
If so, please list up the reproducible versions you have confirmed:
Actions You Have Taken
Additional context Add any other context about the problem here.