path_planner.py)line: 直线插值,简单快速smooth: 贝塞尔曲线,考虑起始和目标航向,更平滑combine_paths()sim_offline.py)simulate_full_path() 接受割草机起始位置和航向mower_start_pos = (work_path[0][0] - 1.5, work_path[0][1] - 1.0) # 距离工作起点约1.8m
mower_start_heading = pi / 4 # 45度
approach_method = 'smooth' # 使用平滑贝塞尔曲线
path_planner.py: 路径规划核心模块check_approach_trajectory.py: 轨迹分析工具view_simulation.py: 结果可视化工具approach_path_test.png: 路径规划算法对比图simulation_results.png: 完整仿真结果(包含引导路径和工作路径)python sim_offline.py
python path_planner.py
python check_approach_trajectory.py
python view_simulation.py
# 或直接查看 simulation_results.png
编辑 sim_offline.py 的 main() 函数:
```python
mower_start_pos = (work_path[0][0] - 1.5, work_path[0][1] - 1.0)
mower_start_heading = pi / 4
mower_start_pos = (5.0, 3.0) # 例如:从路径中间某处开始
mower_start_heading = pi / 2 # 90度朝北
```
# 直线路径(更简单直接)
history = simulate_full_path(work_path, mower_start_pos, mower_start_heading,
params, approach_method='line')
# 平滑路径(考虑航向,更自然)
history = simulate_full_path(work_path, mower_start_pos, mower_start_heading,
params, approach_method='smooth')
| 功能需求 | 状态 | 说明 |
|---|---|---|
| 从割草机启动点生成路径到工作起点 | ✅ 完成 | path_planner.py |
| 路径显示在仿真中 | ✅ 完成 | 橙色虚线 |
| 沿引导路径移动到工作起点 | ✅ 完成 | 前10秒执行良好 |
| 到达后继续沿规划路径走 | ✅ 完成 | 自动切换到工作路径 |
| 可视化区分两种路径 | ✅ 完成 | 不同颜色和样式 |
结论:引导路径功能已完全实现并正常工作!后续只需修复Pure Pursuit的段推进bug即可完善整个系统。