实验性功能
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),与上文相同的预期同样适用:其接口和功能集可能会在各版本之间发生变化。