实验性功能

Zivid SDK 中的一些功能被标记为 实验性(experimental)。本页说明该标签的含义,以及如何在应用程序中使用实验性功能。

"实验性"的含义

Zivid 将功能以实验性的形式发布,以便让您更快用上这些功能,并从实际使用中收集反馈。这样我们可以在其成为 API 的永久部分之前对设计进行改进。

实际上,实验性功能是指 Zivid 可能会更改其 API 或行为的功能。

如何识别实验性功能

如果不明确引用 Experimental 这个词,您就无法使用实验性功能。根据具体功能不同,它可能出现在:

  • 命名空间中,例如 Zivid::Experimental,

  • 设置路径中,例如 Settings::Experimental::...,或

  • 工具名称中,例如 ZividExperimentalHandEyeCalibration

这是有意为之的:它确保您始终清楚自己的代码何时依赖于某个实验性功能。

预期效果

警告

实验性功能可能会发生变更或被移除。其接口可能在 SDK 各版本之间发生变化,这意味着升级时您可能需要更新代码。升级前请查看 changelog,如果生产环境需要稳定的接口,请固定使用特定的 SDK 版本。

质量

实验性功能在发布时通常遵循与 SDK 其他部分相同的质量标准,没有已知的不稳定问题,并具有合理的测试覆盖率。如果情况有所不同,会在该具体功能的文档中说明相应的限制。

封装可用性

实验性功能可能并非在每种语言封装中都可用。例如,某个功能可能已存在于 C++ API 中,但尚未在 Python 或 .NET 封装中实现。

安全使用实验性功能

  • 请查阅相应具体功能的文档,了解其中说明的任何限制。

  • 升级时请固定 SDK 版本并查看 changelog,因为接口可能会发生变化。

  • 如果您计划在生产环境中部署某个实验性功能,或对其成熟度有疑问,请通过 customersuccess@zivid.com 联系客户成功团队。

按 SDK 和封装划分的可用性

下表显示了每个实验性功能目前在各封装中的可用情况。Yes 表示该功能在对应封装中可用,No 表示不可用。

  • C++ —— C++ SDK(Zivid::Experimental)。

  • .NET —— .NET SDK(Zivid.NET.Experimental)。

  • Python —— zivid-python 封装(zivid.experimental)。

  • ROS —— zivid-ros ROS 2 驱动。

  • HALCON —— 用于从 HALCON 和其他 GenICam 消费者操作的 GenICam(GenTL)生产者。

实验性功能

C++

.NET

Python

ROS

HALCON

相机内参

Yes

Yes

Yes

Yes

No

像素映射

Yes

No

Yes

No

No

低自由度(DOF)机器人的手眼标定

Yes

Yes

Yes

Yes

No

点云导出(ZDF、PLY、XYZ、PCD)

Yes

Yes

Yes

Yes

No

点云配准(拼接)

Yes

Yes

Yes

No

No

条形码检测

Yes

No

Yes

No

No

重新处理

Yes

No

No

No

No

设置信息

Yes

部分支持

No

No

No

实验性设置节点

Yes

Yes

Yes

Yes

Yes

备注

  • .NET SDK 中的 设置信息 仅提供 Resolution;defaultValue/validValues/validRange 查询未被封装。

  • ROS 和 HALCON 使用的是完整的设置对象,因此即使这些实验性 API 没有被单独封装,实验性设置节点也能正常工作。ROS 驱动还通过专用服务额外封装了相机内参、低自由度手眼标定和点云导出功能。

GenICam / HALCON 封装

用于从 HALCON 和其他 GenICam 消费者操作 Zivid 相机的 GenICam GenTL 生产者本身也是实验性的。安装程序将其显示为 GenICam GenTL Producer (Experimental),与上文相同的预期同样适用:其接口和功能集可能会在各版本之间发生变化。