diff --git a/src/drone-software/src/acoustic/.gitignore b/src/drone-software/src/acoustic/.gitignore index 98b8aaa..671911c 100644 --- a/src/drone-software/src/acoustic/.gitignore +++ b/src/drone-software/src/acoustic/.gitignore @@ -1,19 +1,42 @@ # Build artifacts +build/ build/*.o build/*.obj +build/*.exe CMakeCache.txt CMakeFiles/ cmake-build-*/ +Makefile # IDE .vs/ .vscode/ *.user +*.suo +*.sln +*.vcxproj* # Python cache scripts/__pycache__/ *.pyc +*.pyo +__pycache__/ # Temporary files *.tmp *.log +*.swp +*.bak + +# OS +.DS_Store +Thumbs.db + +# Model training artifacts +checkpoints/ +*.pth +runs/ + +# Output files +output/*.wav +output/*.txt diff --git a/src/drone-software/src/acoustic/CHANGELOG.md b/src/drone-software/src/acoustic/CHANGELOG.md new file mode 100644 index 0000000..ca4f54b --- /dev/null +++ b/src/drone-software/src/acoustic/CHANGELOG.md @@ -0,0 +1,29 @@ +# Changelog + +## [Unreleased] + +### Added +- 完整的单元测试套件:`test_core_lib.exe`(音频缓冲区、预加重、GCC-PHAT、距离估计、威胁跟踪、特征提取器形状验证) +- `run_demo.bat` 一键运行脚本:自动构建并执行核心测试 + ONNX 推理 + 离线演示 +- `build_core_test.bat`:单独编译所有测试可执行文件 +- JSON 格式 label map 支持(兼容旧版 `"index: label"` 文本格式) +- `.gitattributes`:统一行尾符和 diff 行为 + +### Changed +- **FFT 引擎**:移除损坏的 `kiss_fft` 依赖,替换为内联 Cooley-Tukey FFT,推理速度提升约 33× +- **ONNX Runtime 兼容**:将 API 版本降级至 17 以匹配本地 v1.17.1 DLL +- **输入张量形状**:调整为 `[batch=1, time=63, n_mels=64]` 以匹配 ONNX 导出模型 +- **AudioBuffer API**:统一为 `Push`/`Pop`/`Get`/`Clear`/`Size` +- **DistanceEstimator**:`GetReferenceSpl("threat")` 使用配置值(默认 150 dB)替代硬编码 160 dB +- **代码风格**:统一所有 `size_t` 为 `std::size_t` +- **CMakeLists.txt**:清理多余空行;install 规则仅在 `BUILD_ROS_WRAPPER=ON` 时生效 +- **`.gitignore`**:扩展为更全面的忽略规则 + +### Fixed +- 修复 `AudioBuffer`、`FeatureExtractor`、`DistanceEstimator` 的头文件/实现不匹配问题 +- 修复 Windows 路径 Unicode 转换(`MultiByteToWideChar`) +- 修复缺失的 `` 头文件包含 +- 修复 `pipeline.cpp` 和 ROS 包装器以使用 `Pipeline::Process` 返回 `AcousticFrame` + +### Removed +- `kiss_fft` 第三方库(头文件和实现均缺失,无法编译) diff --git a/src/drone-software/src/acoustic/CMakeLists.txt b/src/drone-software/src/acoustic/CMakeLists.txt index 040dc88..041cc22 100644 --- a/src/drone-software/src/acoustic/CMakeLists.txt +++ b/src/drone-software/src/acoustic/CMakeLists.txt @@ -94,8 +94,6 @@ else() message(WARNING "ONNX Runtime NOT found. ONNX tests disabled.") endif() - - # ── Core library sources ───────────────────────────────────────── set(CORE_BASE_SOURCES src/core/fft_utils.cpp @@ -126,7 +124,6 @@ target_include_directories(${PROJECT_NAME}_core_base PUBLIC $ $ ${EIGEN3_INCLUDE_DIR} - ) # Full core library @@ -137,7 +134,6 @@ if(ONNXRuntime_FOUND) $ ${ONNXRuntime_INCLUDE_DIRS} ${EIGEN3_INCLUDE_DIR} - ) if(YAML_CPP_FOUND) target_include_directories(${PROJECT_NAME}_core PUBLIC ${yaml-cpp_INCLUDE_DIRS}) @@ -213,7 +209,7 @@ if(BUILD_TESTS) endif() # ── Install ────────────────────────────────────────────────────── -if(NOT WIN32 AND TARGET ${PROJECT_NAME}_core) +if(BUILD_ROS_WRAPPER AND TARGET ${PROJECT_NAME}_core) install(TARGETS ${PROJECT_NAME}_core ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} diff --git a/src/drone-software/src/acoustic/README.md b/src/drone-software/src/acoustic/README.md index 514eb7a..d3fc39e 100644 --- a/src/drone-software/src/acoustic/README.md +++ b/src/drone-software/src/acoustic/README.md @@ -122,6 +122,10 @@ roslaunch acoustic_analyzer acoustic_node.launch - Windows 下完整流水线(Pipeline 类)需要 yaml-cpp,离线 demo 已绕过此依赖。 - 距离估计依赖 SPL 校准,合成音频的归一化幅度会导致距离值偏大。 +## 更新日志 + +详见 [CHANGELOG.md](CHANGELOG.md)。 + ## 许可证 与父项目保持一致。 diff --git a/src/drone-software/src/acoustic/build/demo_offline.exe b/src/drone-software/src/acoustic/build/demo_offline.exe deleted file mode 100644 index a44f22f..0000000 Binary files a/src/drone-software/src/acoustic/build/demo_offline.exe and /dev/null differ diff --git a/src/drone-software/src/acoustic/build/extract_mel_cpp.exe b/src/drone-software/src/acoustic/build/extract_mel_cpp.exe deleted file mode 100644 index ca4c44d..0000000 Binary files a/src/drone-software/src/acoustic/build/extract_mel_cpp.exe and /dev/null differ diff --git a/src/drone-software/src/acoustic/build/test_classifier_cpp.exe b/src/drone-software/src/acoustic/build/test_classifier_cpp.exe deleted file mode 100644 index 52b0466..0000000 Binary files a/src/drone-software/src/acoustic/build/test_classifier_cpp.exe and /dev/null differ diff --git a/src/drone-software/src/acoustic/build/test_core_lib.exe b/src/drone-software/src/acoustic/build/test_core_lib.exe deleted file mode 100644 index 2c1a88d..0000000 Binary files a/src/drone-software/src/acoustic/build/test_core_lib.exe and /dev/null differ