Mech-Eye SDK 2.2.0 Release notes

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

Highlights

  • Built-in parameter groups suitable for different scenarios or workpieces have been added, simplifying the process of parameter adjustment.

  • The interface and function of 3D Exposure Assistant have been improved to provide better calculation result of a single exposure time.

Mech-Eye Viewer

New Features

Added Built-in Parameter Groups

After the firmware of V4 cameras is upgraded to 2.2.0, built-in parameter groups suitable for different scenarios or workpieces are added to the camera. After selecting the parameter group that corresponds to your actual situation, you only need to adjust the parameter values slightly to acquire satisfactory data, simplifying the process of parameter adjustment.

Added Spanish Display

You can now select to display Mech-Eye Viewer 2.2.0 in Spanish. Change the display language in Options in the Help menu.

Visit Mech-Mind Online Community with One-Click

An Online Community option has been added to the Help menu of Mech-Eye Viewer 2.2.0. Clicking this option will open Mech-Mind Online Community.

The community provides downloads of resources and knowledge sharing relevant to the products. You can also post your questions and problems on the community to get help.

Displays Object Surface Features and Depth Variation Simultaneously in Point Cloud

A Jet + intensity option has been added to the Color menu in the left panel of the point cloud display. The intensity information of the object surface is overlaid on the jet color scheme. Suitable for checking the object surface features and depth changes at the same time.

Improvements

Improved Interface and Function of 3D Exposure Assistant

Mech-Eye Viewer 2.2.0 has renamed the Exposure Assistant tool to 3D Exposure Assistant and improved the interface and function of this tool.

Currently, 3D Exposure Assistant can automatically calculate the single exposure time suitable for the set ROI, and you can apply the calculation result to the Exposure Time parameter in the 3D Parameters category directly. This tool simplifies the process of parameter adjustment and allows you to improve the quality of the depth map and point cloud more conveniently.

Checks IP Address before Connection

Mech-Eye Viewer 2.2.0 now checks the camera IP address automatically before connecting to it, identifying in advance some issues that cause the connection to fail.

After Mech-Eye Viewer is started, the following issues are automatically checked. For the cameras that have issues, their info cards will display the cant connect icon.

  • If the camera IP address and the IP address of the computer Ethernet port connected to the camera are in the same subnet.

  • If multiple cameras have the same IP address.

Improved Firmware and Software Upgrade Processes

Mech-Eye Viewer 2.2.0 has comprehensively improved the processes of upgrading the firmware and software, enhancing user experience.

  • If the firmware or software needs to be upgraded, the camera info card will display the Upgrade button. Simply click this button to start upgrading the firmware or software.

  • If the software needs to be upgraded, the download link for Mech-Eye SDK is displayed after the Upgrade button is clicked. You can obtain the latest version of software from Mech-Mind Download Center by clicking this link.

Improved Save Data Function

The following aspects of the Save Data function have been improved in Mech-Eye Viewer 2.2.0:

  • The order of menus have been adjusted to match the actual order of selection.

  • When saving the point cloud, you can select to save the organized or unorganized point cloud with the Organization menu.

  • You can now save the point cloud in CSV format. The file size of the CSV format point cloud is smaller, and you can conveniently process and analyze the data using programs such as Microsoft Excel or programming languages.

  • When saving the point cloud in PLY or PCD format, you can select the color of the point cloud with the Color menu. Options are identical to those of the Color menu in the left panel of the point cloud display.

  • The Use Last Obtained Data option has been renamed to Acquire and save new data. You can check this option when you need to acquire new data and save it.

Improved Point Cloud Quality of Laser Cameras

The quality of the point cloud obtained with the following parameter settings has been improved in version 2.2.0 for laser cameras:

  • All laser cameras: the Laser Frame Partition Count parameter set to a value greater than 1

  • Deep (V3) and Pro L Enhanced (V3): Projector Selection Mode set to EnableAll

When using the above cameras and parameter settings, the following frequently encountered issues with the point cloud have been significantly reduced in version 2.2.0:

Issue Before 2.2.0 2.2.0

Points missing at object edges

edge missing 1

edge missing 2

Large depth fluctuation

depth fluctuation 1

depth fluctuation 2

Gaps at stitches

stitch 1

stitch 2

Improved Interface Text of FOV Calculator

The following updates have been made to the interface text of FOV Calculator in Mech-Eye Viewer 2.2.0 for easier understanding:

  • FOV height and FOV width have been changed to FOV width and FOV length.

  • The letters representing FOV length, FOV width and working distance have been changed to L, W, and H, respectively.

Resolved Issues

The following issues have been resolved in Mech-Eye Viewer 2.2.0:

  • Mech-Eye Viewer could not be opened unless the Allow an app or feature through Windows Defender Firewall setting of Windows Defender Firewall had been manually adjusted.

  • When Windows Remote Assistance was used to connect to the computer and open Mech-Eye Viewer, the Mech-Eye Viewer program crashed.

  • An invalid subnet mask could be set to the camera through Mech-Eye Viewer, causing the camera to become undiscoverable.

  • In Depth Analyzer, points that did not have depth values on the drawn line had depth values in the right plot.

  • If the Play button of the point cloud exhibit function had been clicked when no valid point cloud had been acquired, the display of the point cloud became abnormal when valid point cloud was acquired.

  • PRO S (V4) and PRO M (V4): The projector failed to project light occasionally and could not recover.

  • Laser L Enhanced (V3), LSR S (V4), and LSR L (V4): When the Exposure Mode / 2D Image (Texture) Exposure Mode parameter in the 2D Parameters category was set to HDR, the camera disconnected and restarted on its own occasionally.

Mech-Eye API

Mech-Eye API 2.2.0 has been restructured to provide a clearer structure while keeping all the previously available functions. New functions have also been added.

  • If you wish to use the 2.2.0 version of Mech-Eye API in your existing client program, please refer to Migration Guide and modify your client program.

  • If you need to upgrade the camera firmware to 2.2.0 but need to keep using the 2.1.0 version of Mech-Eye API in your client program, please refer to Backward Compatibility of Version 2.2.0 and complete the corresponding actions for the language in use.

New Features

Added Built-in Parameter Groups

After the firmware of V4 cameras is upgraded to 2.2.0, built-in parameter groups suitable for different scenarios or workpieces are added to the camera. After selecting the parameter group that corresponds to your actual situation, you only need to adjust the parameter values slightly to acquire satisfactory data, simplifying the process of parameter adjustment.

Compute Point Cloud Normals

By calling the following methods you can now obtain 3D data containing normals directly, reducing the workload of subsequent data processing.

If you want to use this new function, please modify your client program according to Migration Guide to use the 2.2.0 version of Mech-Eye API.
  • Obtain untextured point cloud with normals:

    • C++

    • C#

    • Python

    mmind::eye::Frame3D frame3D;
    camera.capture3DWithNormal(frame3D);
    
    PointCloudWithNormals pointCloud = frame3D.getUntexturedPointCloudWithNormals();
    var frame3D = new Frame3D();
    camera.Capture3DWithNormal(ref frame3D);
    
    var pointCloud = frame3D.GetUntexturedPointCloudWithNormals();
    frame_3d = Frame3D()
    camera.capture_3d_with_normal(frame_3d)
    
    point_cloud = frame_3d.get_untextured_point_cloud_with_normals()
  • Obtain textured point cloud with normals:

    • C++

    • C#

    • Python

    mmind::eye::Frame2DAnd3D frame2DAnd3D;
    camera.capture2DAnd3DWithNormal(frame2DAnd3D);
    
    TexturedPointCloudWithNormals pointCloud = frame2DAnd3D.getTexturedPointCloudWithNormals();
    var frame2DAnd3D = new Frame2DAnd3D();
    camera.Capture2DAnd3DWithNormal(ref frame2DAnd3D);
    
    var pointCloud = frame2DAnd3D.GetTexturedPointCloudWithNormals();
    frame_2d_and_3d = Frame2DAnd3D()
    camera.capture_2d_and_3d_with_normal(frame_2d_and_3d)
    
    point_cloud = frame_2d_and_3d.get_textured_point_cloud_with_normals()

Check Camera Connection Status

The new heartbeat mechanism can be used to detect device disconnections.

If you want to use this new function, please modify your client program according to Migration Guide to use the 2.2.0 version of Mech-Eye API.
  • Use the following method to set the interval of the heartbeat signals:

    • C++

    • C#

    • Python

    camera.setHeartbeatInterval(1000);
    camera.SetHeartbeatInterval(1000);
    camera.set_heartbeat_interval(1000)
  • Use the following method to register the callback function that automatically detects a camera disconnection and reports error:

    • C++

    • C#

    • Python

    mmind::eye::CameraEvent::EventCallback callback = [](mmind::eye::CameraEvent::Event event, void* pUser) {
            std::cout << "A camera event has occurred. The event ID is " << event << "." << std::endl;
        };
    
    mmind::eye::CameraEvent::registerCameraEventCallback(camera, callback, nullptr, mmind::eye::CameraEvent::CAMERA_EVENT_DISCONNECTED);
    private static void CallbackFunc(CameraEvent.Event cameraEvent, IntPtr pUser)
    {
        Console.WriteLine("A camera event has occurred. The event ID is {0}.", cameraEvent);
    }
    
    Utils.ShowError(CameraEvent.RegisterCameraEventCallback(ref camera, CallbackFunc, IntPtr.Zero, (uint)CameraEvent.Event.CAMERA_EVENT_DISCONNECTED));
    class CustomCallback(EventCallbackBase):
        def __init__(self):
            super().__init__()
    
        def run(self, event):
            print("A camera event has occurred. The event ID is {0}.".format(event))
    
    camera_event = CameraEvent()
    callback = CustomCallback()
    show_error(camera_event.register_camera_event_callback(camera, callback, CameraEvent.CAMERA_EVENT_ALL))

Added Methods for Saving Point Cloud

By calling the following methods, you can now save the point cloud in PLY, PCD or CSV format directly, without the need to reply on any third-party software libraries.

If you want to use this new function, please modify your client program according to Migration Guide to use the 2.2.0 version of Mech-Eye API.
  • Save untextured point cloud:

    • C++

    • C#

    • Python

    mmind::eye::Frame3D frame3D;
    camera.capture3D(frame3D);
    
    frame3D.saveUntexturedPointCloud(mmind::eye::FileFormat::PLY, "PointCloud.ply");
    var frame3D = new frame3D();
    camera.Capture3D(ref frame3D);
    
    frame3D.SaveUntexturedPointCloud(FileFormat.PLY, "PointCloud.ply");
    frame_3d = Frame3D()
    camera.capture_3d(frame_3d)
    
    frame_3d.save_untextured_point_cloud(FileFormat_PLY, "PointCloud.ply")
  • Save textured point cloud:

    • C++

    • C#

    • Python

    mmind::eye::Frame2DAnd3D frame2DAnd3D;
    camera.capture2DAnd3D(frame2DAnd3D);
    
    frame2DAnd3D.saveTexturedPointCloud(mmind::eye::FileFormat::PLY, "TexturedPointCloud.ply");
    var frame2DAnd3D = new Frame2DAnd3D();
    camera.Capture2DAnd3D(ref frame2DAnd3D);
    
    frame2DAnd3D.SaveTexturedPointCloud(FileFormat.PLY, "TexturedPointCloud.ply");
    frame_2d_and_3d = Frame2DAnd3D()
    camera.capture_2d_and_3d(frame_2d_and_3d)
    
    frame_2d_and_3d.save_textured_point_cloud(FileFormat_PLY, "TexturedPointCloud.ply")

Added IP Configuration Tool

An IP configuration tool containing all relevant functions provided in Mech-Eye Viewer is provided in the form of an executable file in version 2.2.0. Using this tool, you can complete the IP configuration of the camera on Ubuntu.

Provides LabView and VisionPro Samples

Through C# Mech-Eye API, you can connect to and control the camera in LabView and VisionPro. The relevant samples can be downloaded from GitHub.

The following versions have been tested:

  • LabView: 2023

  • VisionPro: 9.8 SR1

Improvements

Improved Point Cloud Quality of Laser Cameras

The quality of the point cloud obtained with the following parameter settings has been improved in version 2.2.0 for laser cameras:

  • All laser cameras: the Laser Frame Partition Count parameter set to a value greater than 1

  • Deep (V3) and Pro L Enhanced (V3): Projector Selection Mode set to EnableAll

When using the above cameras and parameter settings, the following frequently encountered issues with the point cloud have been significantly reduced in version 2.2.0:

Issue Before 2.2.0 2.2.0

Points missing at object edges

edge missing 1

edge missing 2

Large depth fluctuation

depth fluctuation 1

depth fluctuation 2

Gaps at stitches

stitch 1

stitch 2

Resolved Issues

  • PRO S (V4) and PRO M (V4): The projector failed to project light occasionally and could not recover.

  • Laser L Enhanced (V3), LSR S (V4), and LSR L (V4): When the Exposure Mode / 2D Image (Texture) Exposure Mode parameter in the 2D Parameters category was set to HDR, the camera disconnected and restarted on its own occasionally.

GenICam Interface

New Features

Added Built-in Parameter Groups

After the firmware of V4 cameras is upgraded to 2.2.0, built-in parameter groups suitable for different scenarios or workpieces are added to the camera. After selecting the parameter group that corresponds to your actual situation, you only need to adjust the parameter values slightly to acquire satisfactory data, simplifying the process of parameter adjustment.

Added IP Configuration Tool

An IP configuration tool containing all relevant functions provided in Mech-Eye Viewer is provided in the form of an executable file in version 2.2.0. Using this tool, you can complete the IP configuration of the camera on Ubuntu.

Improvements

Improved Point Cloud Quality of Laser Cameras

The quality of the point cloud obtained with the following parameter settings has been improved in version 2.2.0 for laser cameras:

  • All laser cameras: the Laser Frame Partition Count parameter set to a value greater than 1

  • Deep (V3) and Pro L Enhanced (V3): Projector Selection Mode set to EnableAll

When using the above cameras and parameter settings, the following frequently encountered issues with the point cloud have been significantly reduced in version 2.2.0:

Issue Before 2.2.0 2.2.0

Points missing at object edges

edge missing 1

edge missing 2

Large depth fluctuation

depth fluctuation 1

depth fluctuation 2

Gaps at stitches

stitch 1

stitch 2

Resolved Issues

  • If the GenICam client encountered an issue and exited while connected to a camera, the camera could not be connected normally afterwards.

  • PRO S (V4) and PRO M (V4): The projector failed to project light occasionally and could not recover.

  • Laser L Enhanced (V3), LSR S (V4), and LSR L (V4): When the Exposure Mode / 2D Image (Texture) Exposure Mode parameter in the 2D Parameters category was set to HDR, the camera disconnected and restarted on its own occasionally.

Release Notes of Previous Versions

We Value Your Privacy

We use cookies to provide you with the best possible experience on our website. By continuing to use the site, you acknowledge that you agree to the use of cookies. If you decline, a single cookie will be used to ensure you're not tracked or remembered when you visit this website.