Mech-Eye SDK 2.1.0 更新说明¶
本文介绍 Mech-Eye SDK 2.1.0 版本的新增功能、功能优化以及问题修复。本次版本重大变更如下:
提升点云质量:点云后处理参数全面优化,在保留点云中物体边缘信息的同时,可有效去除离群点与噪点,提升点云质量。
丰富接口功能:
GenlCam 接口与 Mech-Eye API 中新增手眼标定参数,并提供了相应例程,可直接进行手眼标定。
GenlCam 接口新增获取 multi-part payload type 相关参数并提供相应例程,轻松获取纹理点云与仅含Z值的深度图。
新增固件升级工具,无需 Mech-Eye Viewer 即可升级相机固件。
提升采集速度:优化内存占用,且新增分辨率选择功能以提升相机采集速度,更好地适应对节拍要求比较高的场景。
新增功能¶
GenICam¶
新增手眼标定参数及例程
GenICam 接口新增手眼标定所需的参数,并提供了 相应 HALCON 例程 。通过该例程可进行手眼标定,获取外参,并切换相机输出点云的坐标系。
新增 multi-part payload type 相关参数及例程
新增 GenICam 参数,支持在 AreaScan3D 模式下获取 multi-part payload type 数据。已支持 Range 与 Intensity 两个通道。
新增应用以上参数的 HALCON 例程:
obtain_textured_point_cloud 例程:通过 Range 与 Intensity 两个通道的数据 生成纹理点云 。
obtain_depth_map 例程:通过 Range 通道 获取仅包含物体 Z 值的深度图 ,加快 HALCON 的传输速度,提升效率。
新增相机 IP 设置相关参数及例程
GenICam 接口新增获取相机当前 IP 设置的参数,并提供了 获取及修改相机 IP 设置的 HALCON 例程 ,可直接通过 GenICam 客户端获取和修改 IP 设置。通过该 HALCON 例程可读取当前相机的 IP 地址、子网掩码与网关,也可通过该例程修改这些设置。
新增相机内参和温度的只读参数
新增内参参数,使用 GenICam 客户端即可读取相机内参。
Scan3dFocalLengthX
Scan3dFocalLengthY
Scan3dPrincipalPointU
Scan3dPrincipalPointV
新增温度参数,使用 GenICam 客户端即可读取相机 CPU 和投影仪的温度。
DeviceTemperatureSelector:选择需要读取温度的相机组件,包含 MainBoard (CPU)和 Sensor (投影仪)两个选项。
DeviceTemperature:该参数显示所选相机组件的温度。
Mech-Eye API¶
新增手眼标定方法及例程(仅 C++)
新增用于手眼标定的 C++ 方法,并提供了相应例程。通过该例程可进行手眼标定,获取外参。
新增固件升级工具
新增 固件升级工具 ,Ubuntu 系统下也可升级相机固件。
新增获取温度的方法
C++:
ErrorStatus MechEyeDevice::getDeviceTemperature(DeviceTemperature &)
C#:
ErrorStatus MechEyeDevice.GetDeviceTemperature(ref mmind.apiSharp.DeviceTemperature temperature)
Python:
Device.get_device_temperature(self)
Mech-Eye Viewer¶
LSR (V4) 与 DEEP (V4) 系列相机显示两种 2D 图
LSR (V4) 与 DEEP (V4) 系列相机连接 Mech-Eye Viewer 后,可在相机查看器界面选择显示 2D 图(纹理) 或 2D 图(深度源)。其中,2D 图(纹理)用于为点云添加纹理,2D 图(深度源)用于手眼标定、内参检查及设置感兴趣区域。切换 2D 图类型便于调节不同图像的曝光。
同时,相关的 2D 参数 名称更改如下:
原有名称
新名称
彩色相机曝光模式
2D 图(纹理)曝光模式
黑白相机曝光模式
2D 图(深度源)曝光模式
黑白相机曝光时间
2D 图(深度源)曝光时间
新增 MTU 功能
配置相机网络服务 窗口新增 MTU 设置功能,该功能在 管理员 用户下可见。同时,将相机固件版本升级至 2.1.0 后,相机的默认 MTU 值将变为 1500。
注解
Mech-Eye Viewer 中的 MTU 值与工控机中 巨型帧 的值应保持一致。
DEEP (V4) 新增选择深度图分辨率功能
DEEP (V4) 相机的深度图可选择分辨率,2048 × 1536 或 1024 × 768。使用低分辨率时,可有效提高相机的采集速度(约 35%),更好的应对高节拍场景。
在 管理员 用户下,选择
,在 深度图 下切换分辨率。新增恢复出厂内参功能
内参工具 新增 恢复出厂内参 功能,该功能在 管理员 用户下可见。
功能优化¶
优化点云后处理参数¶
点云后处理参数全面优化,由两个参数更新为四个参数,点云平滑和去除无用点的效果均得到提升。
原 点云平滑 更新为 表面平滑 。优化算法,使用同等强度时,可达到更好的平滑效果。
原 噪点去除 更新为 离群点去除 与 噪点去除 。将无用点云拆分为离群点与噪点,去除时更有针对性;且优化算法,使用同等强度时,可达到更好的去除效果。
新增 边缘保持。可根据物体类型选择边缘保持类型,更好地保留真实的物体边缘。
如需达到与原参数类似的后处理效果,请按以下方式调节新参数:
如原 点云平滑 设为 Normal,请将新 表面平滑 设为 Weak;
如原 噪点去除 设为 Normal,请将新 离群点去除 设为 Weak。
优化相机图像采集速度¶
将相机的固件版本升级至 2.1.0 后,相机图像采集速度有一定提升。
使用 Mech-Eye API C++ 采集深度图时,采集速度最小提升约 2%,采集速度最大提升超过 20%。
使用 Mech-Vision 采集深度图时,采集速度最小提升约 5%,采集速度最大提升超过 20%。
注解
V4 激光相机增加了彩色图去畸变功能,导致彩色图采集速度有所降低。
Mech-Eye Viewer¶
更改深度图保存的默认格式
保存深度图时,默认格式由 .tiff 更新为 .png ,提升易用性。
优化内参工具
优化 内参工具 的界面,增加提示信息,提升易用性。
新增高精度模式,提升相机内参精度,适用于对精度要求高的项目。该模式在 管理员 用户下可见。
优化参数说明区的显示
点击参数说明区的关闭按钮后,将不再显示参数说明区,避免参数被遮挡,提升易用性。
如需再次显示参数说明区,请勾选视图菜单中的 参数说明 选项。
优化视野计算器工具
优化 视野计算器 工具的界面,提升易用性。
优化相机型号下拉菜单,便于查找相机。
增加相机型号 LSR S (V4)。
将 LSR L (V4) 的彩色相机降采样功能移动至 相机管理器 ,并更改为彩色图分辨率设置功能。
DEEP (V4) 系列相机的 相机增益 默认值由 0 更新为 5。
激光相机的 激光强度 值范围由 20~100% 更新为 50~100% 。
Mech-Eye API¶
点云后处理参数全面优化,由两个参数更新为四个参数。对应的 Mech-Eye API 方法更新为:
C++:
表面平滑:
ErrorStatus MechEyeDevice::setCloudSurfaceSmoothingMode(PointCloudProcessingSettings::PointCloudSurfaceSmoothing) ErrorStatus MechEyeDevice::getCloudSurfaceSmoothingMode(PointCloudProcessingSettings::PointCloudSurfaceSmoothing &)
噪点去除:
ErrorStatus MechEyeDevice::setCloudNoiseRemovalMode(PointCloudProcessingSettings::PointCloudNoiseRemoval) ErrorStatus MechEyeDevice::getCloudNoiseRemovalMode(PointCloudProcessingSettings::PointCloudNoiseRemoval &)
离群点去除:
ErrorStatus MechEyeDevice::setCloudOutlierRemovalMode(PointCloudProcessingSettings::PointCloudOutlierRemoval) ErrorStatus MechEyeDevice::getCloudOutlierRemovalMode(PointCloudProcessingSettings::PointCloudOutlierRemoval &)
边缘保持:
ErrorStatus MechEyeDevice::setCloudEdgePreservationMode(PointCloudProcessingSettings::PointCloudEdgePreservation) ErrorStatus MechEyeDevice::getCloudEdgePreservationMode(PointCloudProcessingSettings::PointCloudEdgePreservation &)
C#:
表面平滑:
ErrorStatus MechEyeDevice.SetCloudSurfaceSmoothingMode(mmind.apiSharp.PointCloudSurfaceSmoothing mode) ErrorStatus MechEyeDevice.GetCloudSurfaceSmoothingMode(ref mmind.apiSharp.PointCloudSurfaceSmoothing mode)
噪点去除:
ErrorStatus MechEyeDevice.SetCloudNoiseRemovalMode(mmind.apiSharp.PointCloudNoiseRemoval mode) ErrorStatus MechEyeDevice.GetCloudNoiseRemovalMode(ref mmind.apiSharp.PointCloudNoiseRemoval mode)
离群点去除:
ErrorStatus MechEyeDevice.SetCloudOutlierRemovalMode(mmind.apiSharp.PointCloudOutlierRemoval mode) ErrorStatus MechEyeDevice.GetCloudOutlierRemovalMode(ref mmind.apiSharp.PointCloudOutlierRemoval mode)
边缘保持:
ErrorStatus MechEyeDevice.SetCloudEdgePreservationMode(mmind.apiSharp.PointCloudEdgePreservation mode) ErrorStatus MechEyeDevice.GetCloudEdgePreservationMode(ref mmind.apiSharp.PointCloudEdgePreservation mode)
Python:
表面平滑:
Device.set_cloud_surface_smoothing_mode(self, info) Device.get_cloud_surface_smoothing_mode(self)
噪点去除:
Device.set_cloud_noise_removal_mode(self, info) Device.get_cloud_noise_removal_mode(self)
离群点去除:
Device.set_cloud_outlier_removal_mode(self, info) Device.get_cloud_outlier_removal_mode(self)
边缘保持:
Device.set_cloud_edge_preservation_mode(self, info) Device.get_cloud_edge_preservation_mode(self)
问题修复¶
Mech-Eye SDK 2.1.0 修复了以下问题:
激光相机使用 3 次曝光且 激光投影分块数 为 3 或 4时,相机内存不足导致相机偶发断连。
Laser L (V3) 与 Laser L Enhanced (V3) 相机设置 激光投影分块数 ,曝光时间小于等于 20ms 时深度数据异常。
切换参数组时,偶发 感兴趣区域(ROI) 设置失效。
LSR (V4) 与 DEEP (V4) 系列相机的 曝光模式 为 自动曝光 或 HDR 时, 黑白相机曝光模式 的 Flash 不生效。
使用路由器连接相机时,相机 MTU 值过大导致相机有时无法正常工作。
相机内存不足导致偶发的丢帧。
PRO (V4)、LSR (V4) 与 DEEP (V4) 系列相机由于默认开启低功耗模式,导致偶发的丢帧。
多个相机 IP 地址相同时,修改其中一个相机的 IP 地址时,剩余相机的 IP 地址也同时更改。
单目相机 2D 图去畸变功能导致采集速度变慢。