I have the camera wired to a hardware trigger (set to trigger on the falling edge of the signal) at slightly less than 0.5Hz and it seems to time out while waiting for the trigger every time. If I up the frequency to be greater than 2Hz it does not have the same errors. I tried to change the “Timeout” parameter within NxTree but those changes don’t seem to stick and the timeout errors keep happening. Is there a solution to let it wait longer in between the trigger signals?
I assume you are observing the errors while using NxView. NxView executes the commands “Trigger” and “Retrieve” and the error is probably raised by the “Trigger” command since the 1000ms are hardcoded to the trigger parameters in NxView and therefor cannot be overwritten in NxTreeEdit.
Depending on your use case, you may prefer to use Engage instead of NxView. I see no hardcoded timeout there.
I looked into this topic a little more, because a trigger command should never run into a timeout in the case of a hardware trigger. You won’t get timeouts in the trigger command if you disable “Capture Texture“:
The timeout occurs only when Capture Texture is enabled (see ‘/Cameras/[serial]/Parameters/Capture/Texture/Enabled’ in NxTreeEdit or “Capture Texture” in Parameters Dialog of NxView). Capture Texture is currently only useful if software triggered and can lead to strange behaviour if used with a hardware trigger.
I’ll add a fix to the next release so that the trigger command won’t try to tigger a texture image if a hardware trigger is used. The Option should also be disabled in NxView settings in this case.
The errors are still showing up even with the Capture Texture disabled. It is able to take photos occasionally (an improvement from before!), but it drops some frames unexpectedly and also accrues thousands on errors in between the firings of my hardware trigger. Is there a way to address that? Thank you.
Engage also seems to continuously display warnings on the bottom of the screen and runs into the same dropping frames issue (the triggers happen approximately every 0.4Hz, but it will drop every third or fourth frame or so and skip one iteration of imaging.)
It is currently not possible to use the camera parameter “Capture/Texture” in conjunction with a hardware trigger. This means that no texture is generated in the camera node that can then be used by NxLib to color a point cloud or similar data. However, it is still possible to switch between the camera parameters for texture capture (no projector light, different exposure time) and those for stereo matching.
The tasks normally handled by NxLib must then be performed in your own code: changing the parameters for texture generation, calling the NxLib Trigger command and the hardware trigger, calling the NxLib Retrieve command, changing the parameters for stereo matching, calling the NxLib Trigger command and the hardware trigger, calling the NxLib Retrieve command, calling the NxLib ComputeDisparityMap command, calling the NxLib ComputePointMap command, and coloring the point map with the texture.
The error that’s appearing now (“Waiting for images timed out”) is different to the one before (“Waiting for trigger timed out.”) I’d need a log file to inspect this further. See here.
In another post you said you are using ros. Ros has its own procedure for capturing a camera’s texture data, and it is not necessary to enable the “Capture/Texture” parameter