#!/bin/bash # 安装自定义路径功能脚本 echo "==========================================" echo " AGV 自定义路径功能安装脚本" echo "==========================================" # 1. 检查必要文件 if [ ! -f "src/path_curve_custom.cpp" ]; then echo "错误: 找不到 src/path_curve_custom.cpp" exit 1 fi # 2. 备份原始头文件 echo "备份原始头文件..." cp include/path_curve.h include/path_curve.h.backup # 3. 修改头文件 echo "更新头文件..." # 添加 string 头文件 sed -i '5 a #include ' include/path_curve.h # 在 setPathPoints 方法后添加新方法声明 sed -i '/void setPathPoints/a \ \ /**\ * @brief 从CSV文件加载路径点\ * @param filename CSV文件路径\ * @param has_header 是否包含表头(默认true)\ * @return 是否加载成功\ */\ bool loadFromCSV(const std::string& filename, bool has_header = true);\ \ /**\ * @brief 将路径点保存到CSV文件\ * @param filename CSV文件路径\ * @return 是否保存成功\ */\ bool saveToCSV(const std::string& filename) const;\ \ /**\ * @brief 使用样条插值生成路径\ * @param key_points 关键路径点\ * @param num_points 生成的路径点总数\ * @param tension 张力参数\ */\ void generateSpline(const std::vector& key_points,\ int num_points = 100,\ double tension = 0.5);' include/path_curve.h # 4. 修改 CMakeLists.txt echo "更新 CMakeLists.txt..." cp CMakeLists.txt CMakeLists.txt.backup sed -i '/src\/path_curve.cpp/a \ src/path_curve_custom.cpp' CMakeLists.txt # 5. 重新编译 echo "重新编译项目..." mkdir -p build cd build cmake .. cmake --build . echo "==========================================" echo " 安装完成!" echo "==========================================" echo "备份文件:" echo " - include/path_curve.h.backup" echo " - CMakeLists.txt.backup" echo "" echo "使用指南: CUSTOM_PATH_GUIDE.md" echo "示例文件: examples/custom_path.csv"