3. 全局路径规划算法(一):牛耕往复法(Boustrophedon)
牛耕往复法(Boustrophedon)源自希腊语“牛耕式转弯”,是最早应用于农业机械田间路径规划的全局覆盖算法。其核心思想是:农机沿平行直线往复行驶,相邻路径方向相反,形如牛耕地时的“去-回”轨迹。该算法在规则地块中具有极高的路径覆盖效率,是变量施肥作业路径规划的基础算法之一。
3.1 算法原理
牛耕往复法的规划过程分为三个步骤:
- 地块分解:将不规则多边形地块分解为若干凸多边形子区域(通常使用梯形分解法)。
- 主方向确定:根据地块长边方向、作物行向或最小转弯半径约束,确定全局作业主方向。
- 平行路径生成:沿主方向以固定作业幅宽生成平行直线路径,相邻路径方向交替(正向→反向→正向…)。
关键参数:作业幅宽 W(m)、地块长度 L(m)、地块宽度 B(m)、转弯半径 R(m)。路径间距 = W,路径条数 = ceil(B / W)。
算法伪代码(Python风格):
def boustrophedon_path(polygon, width, direction):
# 1. 梯形分解
sub_polygons = trapezoidal_decomposition(polygon)
paths = []
for sub in sub_polygons:
# 2. 沿主方向生成平行线
lines = generate_parallel_lines(sub, direction, width)
# 3. 交替方向
for i, line in enumerate(lines):
if i % 2 == 1:
line = reverse(line)
paths.append(line)
return paths
3.2 路径覆盖率计算
路径覆盖率是衡量算法有效性的核心指标。对于矩形地块,牛耕往复法的理论覆盖率计算公式如下:
| 参数 | 符号 | 公式 | 说明 |
|---|---|---|---|
| 总路径长度 | Ltotal | N × L + (N − 1) × Lturn | N = 路径条数;Lturn = 转弯段长度 |
| 有效覆盖面积 | Acov | L × B | 矩形地块总面积 |
| 理论覆盖率 | η | Acov / (Ltotal × W) × 100% | 理想无重叠、无遗漏 |
| 实际覆盖率 | ηact | Acov / (Ltotal × W + Aoverlap) × 100% | 考虑转弯重叠和边界重叠 |
注意:当转弯半径 R > W/2 时,转弯段会产生额外未覆盖区域(三角区),实际覆盖率会下降 3%~8%。变量施肥作业中,这部分区域通常需要单独补喷或降低施肥量。
3.3 优缺点分析
| 维度 | 优点 | 缺点 |
|---|---|---|
| 路径效率 | 路径总长度短,转弯次数少(仅需 N − 1 次) | 不规则地块需分解,增加预处理计算 |
| 覆盖质量 | 无遗漏覆盖,路径间距均匀 | 转弯处易产生重叠或遗漏 |
| 计算复杂度 | O(n log n),适合实时规划 | 对障碍物敏感,需先剔除障碍区 |
| 变量施肥适配 | 路径方向固定,便于处方图映射 | 无法动态避障,需预设全局路径 |
3.4 适用场景
- 规则矩形地块:如平原地区的大田块,覆盖率可达 98% 以上。
- 单一作物行向:玉米、小麦等条播作物,路径方向与行向一致。
- 变量施肥基础层:作为全局路径骨架,后续可叠加局部优化(如转弯平滑、障碍绕行)。
- 低障碍密度地块:障碍物面积占比 < 5% 时,算法效率最高。
3.5 路径规划示意图
下图展示了一个矩形地块中牛耕往复法的路径生成过程:地块长 100 m、宽 50 m,作业幅宽 5 m,共生成 10 条平行路径,相邻路径方向交替。
3.6 变量施肥中的特殊考虑
在变量施肥作业中,牛耕往复法需要额外处理以下问题:
- 处方图对齐:路径间距必须与施肥处方图的栅格分辨率匹配(通常为 5~10 m)。
- 转弯区施肥策略:转弯段(约占路径总长的 5%~12%)建议降低施肥量 20%~30%,避免重叠施肥。
- 边界补喷:地块边界因转弯半径限制可能产生未覆盖三角区,需单独规划补喷路径。
实践案例:某 200 亩玉米田采用牛耕往复法规划变量施肥路径,作业幅宽 6 m,路径条数 28 条,总路径长度 5.6 km。实际覆盖率 96.3%,转弯区重叠率 3.7%,通过处方图修正后,施肥均匀度提升至 92%。
3.7 算法局限性及改进方向
| 局限性 | 影响 | 改进方向 |
|---|---|---|
| 不规则地块分解复杂 | 增加预处理时间,可能产生子区域间衔接路径 | 使用梯形分解 + 最小转弯连接优化 |
| 转弯段效率低 | 转弯路径长度占比较大(10%~15%) | 引入鱼尾转弯或平滑转弯(Dubins曲线) |
| 无法动态避障 | 遇到临时障碍物需人工干预 | 结合局部路径规划(如DWA算法) |
| 对地块形状敏感 | L形、凹多边形地块覆盖率下降明显 | 采用混合算法(牛耕 + 螺旋 + 自由路径) |