This commit is contained in:
CaiXiang
2025-11-14 16:09:58 +08:00
commit af65c2425d
74 changed files with 14650 additions and 0 deletions

197
PROJECT_STRUCTURE.md Normal file
View File

@@ -0,0 +1,197 @@
# 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/` 了解已修复的问题
---
**注意**:本文档描述了重新组织后的项目结构。所有文档和代码文件都已按模块分类整理。