Mech-Eye SDK 2.2.0更新说明

您正在查看V2.2.0版本的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您想使用最新版本,可以从梅卡曼德下载中心下载。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持。

本文介绍Mech-Eye SDK 2.2.0版本的新增功能、功能优化以及问题修复。

版本亮点

  • 新增预置参数组,适用于不同场景或工件,简化参数调节的过程。

  • 优化3D曝光助手的界面和功能,提供更好的单次曝光计算结果。

Mech-Eye Viewer

新增功能

新增预置参数组

将V4相机固件升级至2.2.0版本后,相机中新增适用于不同场景或工件的预置参数组。根据实际场景选择对应的参数组后,微调参数值即可获取质量满足要求的数据,简化参数调节的过程。

新增西班牙语显示语言

Mech-Eye Viewer 2.2.0新增西班牙语显示语言。在帮助菜单中的选项可更改显示语言。

一键访问梅卡曼德在线社区

Mech-Eye Viewer 2.2.0的帮助菜单中新增在线社区选项,单击即可打开梅卡曼德在线社区。

社区提供产品相关的资源下载和经验分享。遇到问题时,你也可以在社区上发帖提问,获取帮助。

点云同时显示物体表面特征和深度变化

点云显示界面左边栏的颜色菜单新增Jet+强度选项。在jet配色方案的基础上叠加物体表面的强度信息,便于同时查看物体表面特征和深度变化。

功能优化

优化3D曝光助手的界面和功能

Mech-Eye Viewer 2.2.0将原曝光助手工具更名为3D曝光助手,并优化了该工具的界面及功能。

当前,3D曝光助手可根据设置的感兴趣区域自动计算合适的单次曝光时间,并可将计算结果直接应用至3D参数分组下的曝光时间参数。通过该工具,可简化参数调节流程,更便捷地提升深度图和点云的质量。

连接前检查IP地址

Mech-Eye Viewer 2.2.0在连接相机前自动检查相机IP地址,可提前发现导致无法连接相机的问题。

Mech-Eye Viewer启动后,将自动检查以下问题。存在问题的相机,其信息卡片中将显示cant connect图标。

  • 相机IP地址和与相机相连的电脑网口IP地址是否在同一网段。

  • 是否有多台相机的IP地址相同。

优化固件和软件升级流程

Mech-Eye Viewer 2.2.0全面优化固件和软件升级流程,提升用户体验。

  • 如固件或软件需要升级,相机信息卡片中将显示升级按钮。单击该按钮即可开始升级固件或软件。

  • 如需升级软件,单击升级按钮后将显示Mech-Eye SDK的下载链接,可直接跳转至梅卡曼德下载中心获取最新版本的软件。

优化保存数据功能

Mech-Eye Viewer 2.2.0的保存数据功能优化了以下方面:

  • 调整界面中选项的排序,更加符合实际使用顺序。

  • 保存点云时,可通过数据结构菜单选择保存有序或无序点云。

  • 可保存CSV格式的点云。CSV格式的点云文件更小,且可便捷地使用Microsoft Excel等程序或编程语言进行数据处理和分析。

  • 保存PLY和PCD格式的点云时,可通过颜色菜单选择要保存的点云颜色。提供的选项与点云显示界面左边栏中的颜色菜单一致。

  • 更改原使用上次拍摄图片选项为重新采集数据,在需要重新采集数据并保存时勾选。

提升激光相机的点云质量

2.2.0版本提升了激光相机使用以下参数设置时获取的点云质量:

  • 所有激光相机:激光投影分块数参数设置为大于1的值

  • Deep(V3)和Pro L Enhanced(V3):投影机模式设置为EnableAll

使用上述相机和参数设置时,以下常见的点云质量问题在2.2.0版本中明显减少:

常见问题 2.2.0之前 2.2.0

物体边缘缺失

edge missing 1

edge missing 2

深度波动大

depth fluctuation 1

depth fluctuation 2

拼接处有缝隙

stitch 1

stitch 2

优化视野计算器的界面文字

Mech-Eye Viewer 2.2.0中,视野计算器的界面文字做出如下更新,更易理解:

  • 视野高度视野宽度改为视野宽度视野长度

  • 视野长度视野宽度工作距离的代表字母分别改为LWH

问题修复

Mech-Eye Viewer 2.2.0修复了以下问题:

  • Mech-Eye Viewer无法打开,手动更改Windows Defender防火墙中允许应用或功能通过Windows Defender防火墙的设置后才可打开。

  • 通过Windows远程桌面助手连接电脑并打开Mech-Eye Viewer时,Mech-Eye Viewer程序崩溃。

  • 通过Mech-Eye Viewer可为相机设置无效的子网掩码,导致相机无法被搜索到。

  • 深度图分析器中,所画线上无深度值的点在右图的曲线中有深度值。

  • 在未采集到有效点云的情况下单击点云展示功能的播放按钮后,如重新采集到有效点云,点云显示异常。

  • PRO S(V4)和PRO M(V4):偶发投影单元不投光,且无法恢复正常。

  • Laser L Enhanced(V3)、LSR S(V4)和LSR L(V4):2D参数分组下的曝光模式/2D图(纹理)曝光模式参数设置为HDR时,偶发相机断开连接并自动重启。

Mech-Eye API

Mech-Eye API 2.2.0进行了重构,在保留原有的全部功能的基础上,调整为更加清晰的结构,并提供新增功能。

  • 如希望在已有客户端程序中使用2.2.0版本的Mech-Eye API,请参考迁移指南修改客户端程序。

  • 如需将相机固件版本升级至2.2.0,但需继续在客户端程序中使用2.1.0版本的Mech-Eye API,请参考2.2.0版本的向下兼容性完成对应的处理。

新增功能

新增预置参数组

将V4相机固件升级至2.2.0版本后,相机中新增适用于不同场景或工件的预置参数组。根据实际场景选择对应的参数组后,微调参数值即可获取质量满足要求的数据,简化参数调节的过程。

计算点云法向量

调用以下新增方法,可直接获取包含法向量的3D数据,减少后续数据处理的工作量。

如需使用该新增功能,则必须参考迁移指南修改客户端程序,以应用2.2.0版本的Mech-Eye API。
  • 获取带法向量的无纹理点云:

    • 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()
  • 获取带法向量的纹理点云:

    • 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()

检测相机连接状态

新增心跳信号发送机制,可用于检测相机断开连接的问题。

如需使用该新增功能,则必须参考迁移指南修改客户端程序,以应用2.2.0版本的Mech-Eye API。
  • 通过以下方法设置心跳信号的频率:

    • C++

    • C#

    • Python

    camera.setHeartbeatInterval(1000);
    camera.SetHeartbeatInterval(1000);
    camera.set_heartbeat_interval(1000)
  • 通过以下方法注册回调函数,可自动检测到相机断开连接的情况并提供报错:

    • 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))

提供保存点云的方法

调用以下新增方法,可直接保存PLY、PCD或CSV格式的点云,无需依赖第三方软件库。

如需使用该新增功能,则必须参考迁移指南修改客户端程序,以应用2.2.0版本的Mech-Eye API。
  • 保存无纹理点云:

    • 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")
  • 保存纹理点云:

    • 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")

新增IP配置工具

2.2.0版本以可执行文件形式提供IP配置工具,包含Mech-Eye Viewer中提供的全部相关功能,可在Ubuntu系统中完成相机的IP配置。

提供LabView和VisionPro例程

通过C# Mech-Eye API,可在LabView和VisionPro中连接并控制相机。相关例程可从GitHub下载。

以下版本经过测试:

  • LabView:2023

  • VisionPro:9.8 SR1

功能优化

提升激光相机的点云质量

2.2.0版本提升了激光相机使用以下参数设置时获取的点云质量:

  • 所有激光相机:激光投影分块数参数设置为大于1的值

  • Deep(V3)和Pro L Enhanced(V3):投影机模式设置为EnableAll

使用上述相机和参数设置时,以下常见的点云质量问题在2.2.0版本中明显减少:

常见问题 2.2.0之前 2.2.0

物体边缘缺失

edge missing 1

edge missing 2

深度波动大

depth fluctuation 1

depth fluctuation 2

拼接处有缝隙

stitch 1

stitch 2

问题修复

  • PRO S(V4)和PRO M(V4):偶发投影单元不投光,且无法恢复正常。

  • Laser L Enhanced(V3)、LSR S(V4)和LSR L(V4):2D参数分组下的曝光模式/2D图(纹理)曝光模式参数设置为HDR时,偶发相机断开连接并自动重启。

GenICam接口

新增功能

新增预置参数组

将V4相机固件升级至2.2.0版本后,相机中新增适用于不同场景或工件的预置参数组。根据实际场景选择对应的参数组后,微调参数值即可获取质量满足要求的数据,简化参数调节的过程。

新增IP配置工具

2.2.0版本以可执行文件形式提供IP配置工具,包含Mech-Eye Viewer中提供的全部相关功能,可在Ubuntu系统中完成相机的IP配置。

功能优化

提升激光相机的点云质量

2.2.0版本提升了激光相机使用以下参数设置时获取的点云质量:

  • 所有激光相机:激光投影分块数参数设置为大于1的值

  • Deep(V3)和Pro L Enhanced(V3):投影机模式设置为EnableAll

使用上述相机和参数设置时,以下常见的点云质量问题在2.2.0版本中明显减少:

常见问题 2.2.0之前 2.2.0

物体边缘缺失

edge missing 1

edge missing 2

深度波动大

depth fluctuation 1

depth fluctuation 2

拼接处有缝隙

stitch 1

stitch 2

问题修复

  • 如GenICam客户端在连接相机后发生异常并退出,会导致该相机之后无法被正常连接。

  • PRO S(V4)和PRO M(V4):偶发投影单元不投光,且无法恢复正常。

  • Laser L Enhanced(V3)、LSR S(V4)和LSR L(V4):2D参数分组下的曝光模式/2D图(纹理)曝光模式参数设置为HDR时,偶发相机断开连接并自动重启。

历史版本更新说明

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。