# AGV 路径跟踪项目文件结构 ## 📁 目录结构 ``` agv_path_tracking/ ├── 📄 README.md # 项目主文档 ├── 📄 CMakeLists.txt # CMake 构建配置 ├── 📄 build_can.sh/bat # CAN 模块编译脚本 ├── 📄 build.sh # 主程序编译脚本 │ ├── 📂 src/ # 源代码目录 │ ├── 📂 can/ # CAN 通信模块 │ │ ├── CANController.h # CAN 控制器头文件 │ │ ├── CANController.cpp # CAN 控制器实现 │ │ ├── can_example.cpp # CAN 基础示例 │ │ └── can_complete_example.cpp # CAN 完整示例 │ │ │ ├── 📂 tests/ # 测试代码 │ │ └── test_csv_load.cpp # CSV 加载测试 │ │ │ ├── agv_model.cpp # AGV 模型 │ ├── control_generator.cpp # 控制生成器 │ ├── path_curve.cpp # 路径曲线 │ ├── path_curve_custom.cpp # 自定义路径曲线 │ └── path_tracker.cpp # 路径跟踪器 │ ├── 📂 include/ # 头文件目录 │ └── 📂 can/ # CAN 相关头文件 │ └── CANController.h # CAN 控制器头文件 │ ├── 📂 lib/ # 库文件目录 │ ├── ControlCAN.h # CAN 设备 API 头文件 │ ├── ControlCAN.dll # CAN 驱动动态库 │ ├── ControlCAN.lib # CAN 导入库 │ └── README.md # 库说明文档 │ ├── 📂 docs/ # 文档目录 │ ├── 📂 can/ # CAN 相关文档 │ │ ├── CAN_README.md # CAN 使用说明 │ │ └── CAN_API_Reference.cpp # CAN API 快速参考 │ │ │ ├── 📂 guides/ # 使用指南 │ │ ├── START_HERE.txt # 快速开始 │ │ ├── QUICK_START.md # 快速入门 │ │ ├── QUICKSTART.md # 快速开始指南 │ │ ├── BUILD_INSTRUCTIONS.md # 编译说明 │ │ ├── CUSTOM_PATH_README.md # 自定义路径说明 │ │ ├── SMOOTH_PATH_GENERATOR_README.md # 平滑路径生成器说明 │ │ └── TRACKING_TEST_GUIDE.md # 跟踪测试指南 │ │ │ ├── 📂 fixes/ # 修复记录 │ │ ├── ALL_FIXES_SUMMARY.md # 所有修复总结 │ │ ├── BUG_FIXES_SUMMARY.md # Bug 修复总结 │ │ ├── CSV_LOAD_FIX.md # CSV 加载修复 │ │ ├── FIX_SUMMARY.md # 修复总结 │ │ ├── README_FIXES.md # 修复说明 │ │ ├── TRACKING_ERROR_ANALYSIS.md # 跟踪误差分析 │ │ ├── TRACKING_FIX_COMPLETE.md # 跟踪修复完成 │ │ ├── TRAJECTORY_COMPLETE.md # 轨迹完成 │ │ ├── TRAJECTORY_FIX.md # 轨迹修复 │ │ └── FINAL_REPORT.md # 最终报告 │ │ │ ├── 📂 custom_path/ # 自定义路径文档 │ │ ├── README.md # 自定义路径说明 │ │ ├── CUSTOM_PATH_GUIDE.md # 自定义路径指南 │ │ ├── QT_GUI_CUSTOM_PATH_GUIDE.md # QT GUI 指南 │ │ ├── QUICKSTART_CUSTOM_PATH.md # 快速开始 │ │ ├── SMOOTH_PATH_QUICKSTART.md # 平滑路径快速开始 │ │ └── PROJECT_STRUCTURE.md # 项目结构 │ │ │ └── 📂 protocol/ # 协议文档 │ └── CAN_Protocol.pdf # CAN 协议规范 │ ├── 📂 build/ # 构建输出目录 │ ├── can_demo.exe # CAN 完整示例程序 │ ├── can_simple.exe # CAN 简单示例程序 │ ├── ControlCAN.dll # CAN 驱动库(运行时) │ └── ... # 其他构建文件 │ └── 📂 examples/ # 示例目录(如果有) ``` ## 📋 主要模块说明 ### 1. CAN 通信模块 (`src/can/`) - **CANController.h/cpp** - CAN 控制器封装类,提供易用的 CAN 设备操作接口 - **can_example.cpp** - 基础 CAN 通信示例 - **can_complete_example.cpp** - 完整的 CAN 通信示例,包含 AGV 控制场景 ### 2. 路径跟踪模块 (`src/`) - **agv_model.cpp** - AGV 运动学模型 - **path_curve.cpp** - 路径曲线定义和处理 - **path_tracker.cpp** - 路径跟踪算法实现 - **control_generator.cpp** - 控制量生成器 ### 3. 文档模块 (`docs/`) - **can/** - CAN 通信相关文档和 API 参考 - **guides/** - 各种使用指南和快速开始文档 - **fixes/** - Bug 修复记录和分析报告 - **custom_path/** - 自定义路径功能文档 - **protocol/** - 通信协议规范 ### 4. 库文件 (`lib/`) - **ControlCAN.h/dll/lib** - USBCAN 设备驱动库 ## 🚀 快速开始 ### 编译项目 #### 编译 CAN 模块 ```bash # Linux/MSYS2 ./build_can.sh # Windows build_can.bat ``` #### 编译主程序 ```bash ./build.sh ``` ### 运行示例 #### CAN 通信示例 ```bash cd build ./can_demo.exe ``` ## 📖 文档导航 ### 新手入门 1. **START_HERE.txt** - 从这里开始 (`docs/guides/START_HERE.txt`) 2. **QUICK_START.md** - 快速入门指南 (`docs/guides/QUICK_START.md`) 3. **BUILD_INSTRUCTIONS.md** - 编译说明 (`docs/guides/BUILD_INSTRUCTIONS.md`) ### CAN 通信 1. **CAN_README.md** - CAN 使用说明 (`docs/can/CAN_README.md`) 2. **CAN_API_Reference.cpp** - API 快速参考 (`docs/can/CAN_API_Reference.cpp`) ### 自定义路径 1. **CUSTOM_PATH_README.md** - 自定义路径说明 (`docs/guides/CUSTOM_PATH_README.md`) 2. **custom_path/README.md** - 详细文档 (`docs/custom_path/README.md`) ### 修复记录 1. **ALL_FIXES_SUMMARY.md** - 所有修复总结 (`docs/fixes/ALL_FIXES_SUMMARY.md`) 2. **FINAL_REPORT.md** - 最终报告 (`docs/fixes/FINAL_REPORT.md`) ## 🔧 开发指南 ### 添加新的 CAN 功能 1. 在 `src/can/` 目录下创建源文件 2. 如需要头文件,同时在 `include/can/` 创建 3. 更新 `build_can.sh/bat` 编译脚本 4. 在 `docs/can/` 添加相关文档 ### 添加新的文档 - 使用指南 → `docs/guides/` - 修复记录 → `docs/fixes/` - 模块文档 → `docs/模块名/` ## 📝 文件命名规范 ### 源代码文件 - C++ 源文件:小写字母 + 下划线,如 `path_tracker.cpp` - C++ 头文件:小写字母 + 下划线,如 `path_tracker.h` - 类名:驼峰命名,如 `CANController` ### 文档文件 - Markdown 文档:大写字母 + 下划线,如 `QUICK_START.md` - 说明文件:`README.md` ## ⚙️ 构建系统 - **CMakeLists.txt** - CMake 构建配置 - **build.sh** - Linux/MSYS2 构建脚本 - **build_can.sh/bat** - CAN 模块构建脚本 ## 📦 依赖库 - ControlCAN - USBCAN 设备驱动库(位于 `lib/`) - 标准 C++11 或更高版本 ## 🎯 下一步 1. 阅读 `docs/guides/START_HERE.txt` 快速开始 2. 查看 `docs/can/CAN_README.md` 了解 CAN 通信 3. 运行示例程序了解项目功能 4. 查看 `docs/fixes/` 了解已修复的问题 --- **注意**:本文档描述了重新组织后的项目结构。所有文档和代码文件都已按模块分类整理。