This topic lists noteworthy changes that might in rare cases cause compile-time or run-time issues when upgrading EnsensoSDK or uEye driver versions in an existing application.
Enabling or using new EnsensoSDK functions might in some cases cause incompatibilities in older functions and might require you to make small changes to your existing code as well.
Upgrade of EnsensoSDK¶
The new PatchMatch stereo matching method as been adopted as default method and therefore the default values for the following parameters have been changed: FlexView, stereo matching Method, UniquenessRatio, TargetBrightness, ShadowingThreshold.
In order to benefit from the unlimited measurement range of PatchMatch the new flag FullWidth has been introduced which always enforces rectified images to have maximal width, regardless of the width of the stereo matching AOI.
The RenderPointMap parameters Near and Far did not work correctly in previous releases. If these are in use in your application please verify that they still produce the intended result with the repaired behaviour.
Changed tree structure
Changed default value of PixelClock for N20, N30, N35 models.
Changed default value of TargetBrightness .
Reduced single-flash time limit on X-series to 120ms for faster recovery of hardware limiting circuit
The NxLibCommand now creates a temporary execution slot on construction. Code that directly accesses nodes below the Execute node will no longer work. You can use the new slot member method of the NxLibCommand class to get a reference to a command’s execution slot.
The NxLib headers now require C++11 by default. See this topic for information on the compatibility mode.
Calibration format has been upgraded to 9/10 to support an additional rotation offset in recalibration (see this topic for more information). Modifying the calibration of a camera with this version or newer will render a camera unusable in earlier SDK versions. The device then needs to be recalibrated with an earlier SDK if necessary.
NxView now shows update notifications. To get information on available versions, it makes an HTTP request to http://update.ensenso.com. This request contains the content of the Version node as JSON. For more details on the request and the data that is sent, you can inspect the source code of NxView that is delivered with the SDK.
This is an important firmware update for X series cameras.
This update introduces stricter flash time limits for X series projection modules which will prevent damage to the projection electronics in certain operation modes. This is an important update for the projector firmware. It can cause your application to run slower when using software triggered operation or cause frames without projection pattern when using hardware trigger when triggering faster than the reduced flash limit. Please review the reduced flash time limits under the X Series Illumination topic and contact the technical support if you are unsure if this affects your application.
Removed the dependency on the Wibu CodeMeter runtime for NxLib on Linux.
The structure of the Debug node was changed which might lead to runtime errors when accessing nodes only present in versions 2.0 and earlier.
The text format of the debug messages returned by nxLibGetDebugMessages changed.
The optimization goal of CalibrateHandEye was changed from reprojection error to euclidean distances of the pattern pose estimates. Therefore the output node ReprojectionError has been renamed to Residual. This will usually yield lower euclidean errors than the previous version and result in an overall better calibration result.
The output format of camera distortion coefficients has been changed from an array to named parameters. Writing the old array parameter is still supported, but the output is generated in the new format which is incompatible with older NxLib versions when transferring calibration data e.g. in json files.
The structure of the NxLib setting files changed. In particular, NxView will lose any cached settings after upgrading. If you want to recover these settings, you can copy them from the cache directory in the installation directory of the SDK and apply them in NxView.
The structure of the camera Status node was changed.
The structure of the Sensor node was changed for N10 cameras. It now contains separate nodes for the left and right sensor.
The structure of the Output node was changed to allow more flexible configurations.
The NxLibRemote TCP protocol changed. It is therefore not possible to connect a version 1.x NxLibRemote to a version 2.x NxLib or vice versa. This also means that a version 2.x NxTreeEdit cannot connect to older versions of the NxLib.
Wibu CodeMeter runtime is needed for loading the NxLib library; the EnsensoSDK installer will automatically install a minimal version of the CodeMeter runtime.
Restructured pattern buffer API:
Return format of GetPatternBuffers was changed (note that SetPatternBuffers still accepts the earlier format of GetPatternBuffers)
CollectPattern Result node structure changed.
Support for Debian 6 (Squeeze) and older has been dropped.
Support for Windows XP has been dropped.
Pipelining of stereo geometry: Scaling, Binning and AOI parameters are internally stored on the Rectified and DisparityMap binary nodes. This guarantees that multi threaded processing and parameter modifications always deliver correct depth data. Changes to Scaling, Binning and AOI parameters will only take effect when the affected processing steps have been repeated.
A bug fix in the communication interface between NxLib and NxLibRemote required us to make an incompatible change in the TCP protocol. You thus cannot establish TCP connections between NxLib versions ≥1.3.167 and NxLibRemote versions ≤1.3.166.
NxLibItem class operator now returns const objects with immutable path. This will avoid accidentally setting the path instead of the item value on temporary objects. Trying to set the path on temporaries will now generate compile-time errors. You will encounter compile-time errors where the assignment with operator= changed the path of the left hand side temporary object.
Upgrade of uEye Driver¶
uEye driver 4.80 contains improved blacklevel parametrization of the image sensors. The saved exposure and blacklevel values might therefore need to be updated.
uEye driver 4.72 fixes communication issues on internal camera buses. This reduces the number of reported image transfer failures. The release also fixes an issue causing error UEyeApiError -1 when opening the camera the first time on certain system configurations.
Due to a change in GPIO parametrization in uEye Driver 4.70 N10 cameras will not work with EnsensoSDK versions 1.3.167 and below when running uEye drivers 4.70 and newer. Please upgrade to EnsensoSDK version 1.3.170 or higher to run N10 cameras on uEye driver releases 4.70 or newer.
uEye driver 4.62 fixes a bug which could cause the sensor FPGA to enter a bad state making a camera reboot necessary.
uEye Driver 4.61 fixed an important issue with black level parametrization on the GigE camera image sensors. This yields huge improvements in image brightness at the same exposure times. You should therefore check and revise exposure times if you have been using fixed exposure settings in your application.