2.7 KiB
Executable File
2.7 KiB
Executable File
VizumCameraKit 进度
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 实机联调覆盖)。