# AGV 路径跟踪控制系统 - 快速入门指南 本指南将帮助您快速上手 AGV 路径跟踪控制系统。 ## 1. 编译项目 ### Windows 用户 使用 PowerShell: ```powershell .\build.ps1 ``` 或手动编译: ```powershell mkdir build cd build cmake .. cmake --build . --config Release ``` ### Linux/MacOS 用户 ```bash chmod +x build.sh ./build.sh ``` 或手动编译: ```bash mkdir build cd build cmake .. make ``` ## 2. 运行程序 ### 命令行演示程序 Windows: ```powershell cd build\Release .\agv_demo.exe ``` Linux/MacOS: ```bash cd build ./agv_demo ``` ### 控制台 GUI 程序 Windows: ```powershell cd build\Release .\agv_gui.exe ``` Linux/MacOS: ```bash cd build ./agv_gui ``` ### Qt 图形界面程序 Windows: ```powershell cd build\Release .\agv_qt_gui.exe ``` Linux/MacOS: ```bash cd build ./agv_qt_gui ``` ## 3. 使用示例 运行 `agv_demo` 后,您将看到交互式菜单: 1. **选择路径类型** - 1: 直线路径 - 2: 圆弧路径 - 3: 贝塞尔曲线 - 4: S形曲线 2. **选择控制算法** - 1: Pure Pursuit(推荐用于平滑路径) - 2: Stanley(推荐用于高精度跟踪) 3. **查看结果** - 程序会在控制台显示控制序列 - 可选择保存为CSV文件 ## 4. 可视化结果 如果保存了CSV文件,可以使用Python脚本可视化: ```bash python visualize.py ``` 需要安装的依赖: ```bash pip install pandas matplotlib numpy ``` ## 5. 输出文件说明 生成的 CSV 文件包含: - **control_sequence.csv**: 时间、速度、转向角(弧度和角度) - **trajectory.csv**: AGV 的预测轨迹(x, y, θ) 文件格式示例: ```csv # AGV Control Sequence # Time(s), Velocity(m/s), Steering(rad), Steering(deg) 0.000000, 1.000000, 0.732770, 41.984039 0.100000, 1.000000, 0.732933, 41.993384 ``` ## 6. 自定义使用 参考 `examples/demo.cpp` 中的代码,您可以: ```cpp // 创建自定义路径 PathCurve my_path; my_path.generateLine(PathPoint(0, 0), PathPoint(10, 5), 100); // 调整 AGV 参数 AGVModel my_agv( 1.5, // 轴距 1.5m 3.0, // 最大速度 3.0 m/s M_PI/3 // 最大转向角 60 度 ); // 生成控制序列 tracker.generateControlSequence("pure_pursuit", 0.05, 15.0); ``` ## 常见问题 ### Q: 编译时找不到 cmake? **A:** 请安装 CMake:https://cmake.org/download/ ### Q: Windows 下编译失败? **A:** 确保安装了以下之一: - Visual Studio(推荐 2019 或更新版本) - MinGW-w64 ### Q: 如何修改路径参数? **A:** 编辑 `examples/demo.cpp` 或参考完整 README 文档自定义路径 ### Q: 控制序列太长或太短? **A:** 调整 `generateControlSequence` 的 `horizon` 参数(时域长度) ### Q: Pure Pursuit 和 Stanley 算法有什么区别? **A:** - **Pure Pursuit**:适合平滑路径,计算简单,跟踪稳定 - **Stanley**:适合高精度跟踪,对横向误差更敏感 ### Q: 如何调整可视化参数? **A:** 编辑 `visualize.py` 文件中的绘图参数,如箭头间隔、线宽等 ## 下一步 - 阅读完整的 [README.md](README.md) 了解详细 API 和算法原理 - 查看 `examples/` 目录下的示例代码学习使用方法 - 尝试不同的路径类型和控制算法组合 - 调整 AGV 参数观察对控制效果的影响 - 集成到您自己的项目中 ## 技术支持 如有问题或建议,请在代码仓库中创建 issue。 祝使用愉快!