58 lines
3.0 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# VizumCameraKit 进度
### 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 实机联调覆盖)。