58 lines
3.0 KiB
Markdown
Raw Permalink Normal View History

# VizumCameraKit 进度
2026-08-26 16:13:44 +08:00
### 2026-08-26 切换共享 VzNL SDK 3.6.20.116
Scope:
- 删除仓库内旧版 `external/VzNLSDK` 3.6.20.60。
- 头文件、链接库及运行时 DLL 统一使用
`E:/02_Modules/10_Projects/Active/GrabBag/Device/SDK/VzNLSDK`。
- 新版设备驱动 DLL 由 `VIZUMKIT_DLL_DIR` 自动部署到使用方输出目录。
### 2026-07-05 点云栅格化修正:启用 SDK 激光点填充
Scope:
- CapturePointCloudWithAutoDetect 在 BeginDetectLaser 后新增
`VzNL_EnableFillLaserPoint(handle, VzTrue)`(VZNL_DetectLaser.h:307,SDK 默认不填充)。
- 根因:默认模式下每条激光线只回传检出点、长度不一,软件侧左对齐拼 W×H 网格时
列向错位(同列不代表同横向位置)。启用填充后 SDK 输出定长线(无测量处填占位点),
回调侧 scanLine 本就保留全部点,网格自然列对齐,MatchVerify 的 cloud.txt 栅格随之正确。
Verification:
```
kit 与 MatchVerify 重编译通过;kit_smoke 终端运行退出码 0 全流程正常。
待实机:采一次点云,确认日志"收到扫描线 N 个点"各线等长、cloud.txt 网格列对齐。
```
Known quirk(与本次改动无关,业务无影响):
- kit_smoke 在 stdout 重定向到管道(>/dev/null 或 >file)时,业务流程完整跑完
("SDK destroyed"已打印、main 已返回)后进程收尾阶段段错误(139);
终端直跑恒为退出码 0。疑为 VzNL DLL 卸载时其日志组件写已关闭管道所致。
GUI 程序不受影响;自动化脚本调用 kit_smoke 时以日志内容而非退出码判断成败。
### 2026-07-05 模块建立(从 Mark3DCalibration 毕业)
Scope:
- 从 Mark3DCalibration 抽出最小集:`VizumCamera.h/.cpp`(src/modules/device/vizum)、
`IStructuredLightCamera.h`、`core/StructuredLightTypes.h`(均零修改拷入,
保持与原工程可对照);`external/VzNLSDK`(98MB 全量)与 header-only spdlog 一并拷入。
- `utils/Logger.h` 重写为无 Qt 版本(仅去掉 QString fmt 特化,宏接口与原版一致),
使 VizumCamera.cpp 无需任何改动即可编译。
- 新增 `VizumCamera::SetCalibROIEnabled(bool)`:封装 VzNL_EnableCalibROI,
启用后 GetLeftImage 返回 SDK 矫正图(MatchVerify 需求)。这是本模块相对
Mark3DCalibration 原版的唯一功能性差异。
- CMake:静态库 VizumCameraKit(PUBLIC 传递 include/ENABLE_VIZUM_CAMERA/链接)、
VIZUMKIT_DLL_DIR 缓存变量供使用方拷 DLL、kit_smoke 冒烟测试目标。
Verification:
```
cmake + VS2022 x64 Release 编译 -> VizumCameraKit.lib / kit_smoke.exe 生成
kit_smoke.exe(无相机) -> SDK initialized -> SearchCameras found 0 -> SDK destroyed,退出码0
VzNL 运行时 DLL 由 POST_BUILD 自动拷入输出目录(VzKernel/VzLog/VzNLDetect/VzNLGraphics 等)
```
Limits / Deferred:
- Mark3DCalibration 尚未切换到本模块(其内部副本仍在用),两份代码暂时并存;
切换迁移放到 MatchVerify 交付后单独做,避免影响其在途 WIP。
- 无远程仓库,待用户提供 Gitee/内网 git 地址后推送。
- SearchCameras/Connect/采集链路未连真机验证(S2 实机联调覆盖)。