Mech-Eye SDK 2.1.0 Release Notes

This document introduces the new features, improvements, and resolved issues of Mech-Eye SDK 2.1.0.

Highlights

  • Improved point cloud quality: The Point Cloud Processing parameters have been redesigned and can effectively remove outliers and noises while preserving the object edge information in the point cloud, improving point cloud quality.

  • Enhanced the functionality of interfaces:

    • Parameters used for hand-eye calibration are added to the GenICam interface and Mech-Eye API, and corresponding sample programs are provided. You can now perform hand-eye calibration directly with the interfaces.

    • Parameters for obtaining multi-part payload type data are added to the GenICam interface, and corresponding HALCON sample programs are provided. You can now easily obtain textured point clouds and depth maps that contain only the Z values.

    • A firmware upgrade tool is added. You can now upgrade the camera firmware without Mech-Eye Viewer.

  • Improved capture speed: the camera capture speed has been elevated by measures such as improving memory usage and providing options of lower image resolutions. Applications with higher requirements on cycle time can be bettered handled.

New Features

GenICam

  • Added Parameters and Sample Programs for Hand-Eye Calibration

    Parameters used for hand-eye calibration are added to the GenICam interface, and corresponding HALCON sample programs are provided. Through these sample programs, you can perform hand-eye calibration, obtain extrinsic parameters, and switch the reference frame in which the point cloud is output from the camera.

  • Added Parameters and Sample Programs for Multi-Part Payload Type

    • GenICam parameters for obtaining multi-part payload type data in the AreaScan3D mode are added. Two channels are now supported, Range and Intensity.

    • Two HALCON sample programs demonstrating the applications of the above parameters are added:

  • Added Parameters and Sample Program for Camera IP Settings

    Parameters for obtaining the current IP settings of the camera are added to the GenICam interface, and a HALCON sample program for obtaining and modifying the camera IP settings is provided. You can now obtain and modify the camera IP settings with a GenICam client. Through the HALCON sample program, you can obtain the current IP address, subnet mask and gateway of the camera, as well as modifying these settings.

  • Added Read-Only Parameters for Camera Intrinsic Parameters and Temperatures

    • Parameters for obtaining the camera intrinsic parameters are added. You can now obtain the camera intrinsic parameters with a GenICam client.

      • Scan3dFocalLengthX

      • ​Scan3dFocalLengthY

      • ​Scan3dPrincipalPointU

      • ​​Scan3dPrincipalPointV

    • Parameters for obtaining the temperatures are added. You can now obtain the temperatures of the camera CPU and projector with a GenICam client.

      • DeviceTemperatureSelector: for selecting the camera component whose temperature you want to obtain. Options include MainBoard (CPU) and Sensor (projector).

      • DeviceTemperature: displays the temperature of the selected camera component.

Mech-Eye API

  • Added Methods and Sample Programs for Hand-Eye Calibration (C++ Only)

    C++ Methods used for hand-eye calibration are added, and a corresponding sample program is added. Through this sample program, you can perform hand-eye calibration, and obtain extrinsic parameters.

  • Added Firmware Upgrade Tool

    A firmware upgrade tool is added. With this tool, Ubuntu users can now upgrade the camera firmware as well.

  • Added Methods for Obtaining Device Temperature

    • C++:

      ErrorStatus MechEyeDevice::getDeviceTemperature(DeviceTemperature &)
    • C#:

      ErrorStatus MechEyeDevice.GetDeviceTemperature(ref mmind.apiSharp.DeviceTemperature temperature)
    • Python:

      Device.get_device_temperature(self)

Mech-Eye Viewer

  • Two 2D Image Types Displayed for DEEP (V4) and LSR (V4) Series

    For the DEEP (V4) or LSR (V4) series, you can now select whether to display 2D Image (Texture) or 2D Image (Depth Source) in Mech-Eye Viewer. The 2D image (texture) is used for texturing the point cloud, and the 2D images (depth source) are used in hand-eye calibration, checking intrinsic parameters and setting ROI. Switching the 2D image display helps you adjust the exposure of different 2D images.

    Meanwhile, the names of the relevant 2D Parameters have been updated accordingly:

    Old name New name

    Color Camera Exposure Mode

    2D Image (Texture) Exposure Mode

    Monochrome Camera Exposure Mode

    2D Image (Depth Source) Exposure Mode

    Monochrome Camera Exposure Time

    2D Image (Depth Source) Exposure Time

  • Added MTU Value Setting

    The setting for adjusting the MTU value is added to the IP address configuration window. This setting is available in the Administrator account. Meanwhile, after the camera firmware is upgraded to 2.1.0, the default MTU value of the camera will change to 1500.

    The MTU value of the camera should be consistent with the jumbo frame value set on the computer.
  • Adjustable Depth Map Resolution for DEEP (V4) series

    The resolution of the depth map obtained by the DEEP (V4) series can now be adjusted. Options include 2048 × 1536 and 1024 × 768. Using the lower resolution can speed up image capturing effectively (about 35%) and thus better cope with applications with short cycle time.

    In the Administrator account, select Tools  Camera Controller, and adjust the resolution in the Depth Map menu.

  • Added Reset to Factory Intrinsic Parameters Function

    The reset to factory intrinsic parameters function is added to Intrinsic Parameter Tool. This function is available in the Administrator account.

Improvements

Improved Point Cloud Processing Parameters

The Point Cloud Processing parameters have been redesigned, upgrading from 2 parameters to 4, and the performance of smoothing and unwanted-point removal has been greatly enhanced.

  • The old Point Cloud Smoothing parameter is upgraded to Surface Smoothing. The smoothing algorithm is enhanced, and the same intensity now provides better smoothing result.

  • The old Noise Removal parameter is upgraded to Outlier Removal and Noise Removal. Unwanted points are divided into outliers and noise, with separate, more targeted removal parameters. The removal algorithm is also enhanced, and the same intensity now provides better removal result.

  • A new Edge Preservation parameter is added. You can now select the type of edge preservation to perform based on the object type, better preserving the object edge features.

If you want to achieve the processing result similar to the old parameters, please adjust the new parameters in the following way:

  • If the old Point Cloud Smoothing parameter was set to Normal, set the new Surface Smoothing parameter to Weak.

  • If the old Noise Removal parameter was set to Normal, set the new Outlier Removal parameter to Weak.

Improved Capture Speed of Camera

After the camera firmware is upgraded to 2.1.0, the capture speed of the camera is improved.

  • Depth map:

    • When obtaining the depth map through Mech-Eye API C++, the capture speed is improved by at least 2% and at most 35% or more.

    • When obtaining the depth map through Mech-Vision, the capture speed is improved by at least 5% and at most 20% or more.

  • 2D image:

    • For V4 non-laser cameras, when obtaining the 2D image through Mech-Eye API C++, the capture speed is improved by at least 59% and at most 70% or more.

    • For V4 non-laser cameras, when obtaining the 2D image through Mech-Vision, the capture speed is improved by at least 66% and at most 70% or more.

The 2D image distortion correction function has been added to V4 laser cameras, which resulted in a reduction of the capture speed of the 2D image.

Mech-Eye Viewer

  • Changed the Default Format of Depth Map when Saving

    The default format of depth map when saving is changed from TIFF to PNG, improving usability.

  • Improved Intrinsic Parameter Tool

    • The user interface of Intrinsic Parameter Tool has been improved, with more tips and hints added, improving the usability of the tool.

    • A high-accuracy mode is added, in which stricter standards are used to check the intrinsic parameters. This mode is suitable for projects with high accuracy requirements. This mode is available in the Administrator account.

  • Improved Display of Parameter Description Section

    After the close button of the Parameter Description section is clicked, this section is no longer displayed, so that the parameters are not overlapped, improving the usability of the parameter panel.

    To display the Parameter Description section again, check the Parameter Description option in the View menu.

  • Improved FOV Calculator Tool

    • The user interface of the FOV Calculator tool has been improved, improving the usability of the tool.

    • The drop-down list of camera models has been improved and is more convenient for finding the more frequently used models.

    • The LSR S (V4) model is added to the list.

  • The texture camera binning function of LSR L (V4) has been moved to Camera Controller and redesigned as the 2D image resolution setting function.

  • The default value of Camera Gain for the DEEP (V4) series is updated from 0 to 5.

  • The value range of Laser Power for laser cameras is updated from 20–100% to 50–100%.

Mech-Eye API

The Point Cloud Processing parameters have been redesigned, upgrading from 2 parameters to 4. The corresponding Mech-Eye API methods are upgraded as follows:

  • C++:

    • Surface Smoothing

      ErrorStatus MechEyeDevice::setCloudSurfaceSmoothingMode(PointCloudProcessingSettings::PointCloudSurfaceSmoothing)
      ErrorStatus MechEyeDevice::getCloudSurfaceSmoothingMode(PointCloudProcessingSettings::PointCloudSurfaceSmoothing &)
    • Noise Removal

      ErrorStatus MechEyeDevice::setCloudNoiseRemovalMode(PointCloudProcessingSettings::PointCloudNoiseRemoval)
      ErrorStatus MechEyeDevice::getCloudNoiseRemovalMode(PointCloudProcessingSettings::PointCloudNoiseRemoval &)
    • Outlier Removal

      ErrorStatus MechEyeDevice::setCloudOutlierRemovalMode(PointCloudProcessingSettings::PointCloudOutlierRemoval)
      ErrorStatus MechEyeDevice::getCloudOutlierRemovalMode(PointCloudProcessingSettings::PointCloudOutlierRemoval &)
    • Edge Preservation

      ErrorStatus MechEyeDevice::setCloudEdgePreservationMode(PointCloudProcessingSettings::PointCloudEdgePreservation)
      ErrorStatus MechEyeDevice::getCloudEdgePreservationMode(PointCloudProcessingSettings::PointCloudEdgePreservation &)
  • C#:

    • Surface Smoothing

      ErrorStatus MechEyeDevice.SetCloudSurfaceSmoothingMode(mmind.apiSharp.PointCloudSurfaceSmoothing mode)
      ErrorStatus MechEyeDevice.GetCloudSurfaceSmoothingMode(ref mmind.apiSharp.PointCloudSurfaceSmoothing mode)
    • Noise Removal

      ErrorStatus MechEyeDevice.SetCloudNoiseRemovalMode(mmind.apiSharp.PointCloudNoiseRemoval mode)
      ErrorStatus MechEyeDevice.GetCloudNoiseRemovalMode(ref mmind.apiSharp.PointCloudNoiseRemoval mode)
    • Outlier Removal

      ErrorStatus MechEyeDevice.SetCloudOutlierRemovalMode(mmind.apiSharp.PointCloudOutlierRemoval mode)
      ErrorStatus MechEyeDevice.GetCloudOutlierRemovalMode(ref mmind.apiSharp.PointCloudOutlierRemoval mode)
    • Edge Preservation

      ErrorStatus MechEyeDevice.SetCloudEdgePreservationMode(mmind.apiSharp.PointCloudEdgePreservation mode)
      ErrorStatus MechEyeDevice.GetCloudEdgePreservationMode(ref mmind.apiSharp.PointCloudEdgePreservation mode)
  • Python:

    • Surface Smoothing

      Device.set_cloud_surface_smoothing_mode(self, info)
      Device.set_cloud_surface_smoothing_mode(self, info)
    • Noise Removal

      Device.set_cloud_noise_removal_mode(self, info)
      Device.get_cloud_noise_removal_mode(self)
    • Outlier Removal

      Device.set_cloud_outlier_removal_mode(self, info)
      Device.get_cloud_outlier_removal_mode(self)
    • Edge Preservation

      Device.set_cloud_edge_preservation_mode(self, info)
      Device,get_cloud_edge_preservation_mode(self)

Resolved Issues

The following issues are resolved in Mech-Eye SDK 2.1.0:

  • When a laser camera used 3 exposure times, and Laser Frame Partition Count was set to 3 or 4, the camera would disconnect occasionally due to insufficient memory.

  • For Laser L (V3) and Laser L Enhanced (V3) cameras, if Laser Frame Partition Count was set to 2 or higher, and exposure time(s) was set to 20 ms or less, the depth data would be abnormal.

  • ROI setting occasionally became ineffective when the parameter group had been switched.

  • For the DEEP (V4) and LSR (V4) series, if Exposure Mode was set to Auto or HDR, the Flash option of Monochrome Camera Exposure Mode would not take effect.

  • When the camera was connected to a router, a large MTU value of the camera would result in occasional malfunction of the camera.

  • Data frames were occasionally lost due to insufficient camera memory.

  • For the PRO (V4), DEEP (V4) and LSR (V4) series, the default low power consumption mode would result in occasional data frame loss.

  • When multiple cameras had the same IP address, changing the IP address of one camera would change the IP addresses of the other cameras at the same time.

  • The 2D image distortion correction function of monocular cameras resulted in slower capture speed.