https://arxiv.org/abs/2210.07838

20221014

github: https://github.com/Fields2Cover/Fields2Cover

简介

发布了一个开源 CPP 库,包含 4 个 CPP 的核心解决方案模块

  • headland generator

  • swath generator

  • route planner

  • path planner

每个模块都包含了至少一种 SOTA 的方法和一个目标函数

目前只支持凸域

贡献

  • 一个用于定位 CPP 问题的可连接模块的公共库,可以简单的应用于其他的 CPP 问题

  • 用于比较不同 CPP 算法和方法的评价工具

  • 使用 38 个凸域比较了 8 个 SOTA 的 CPP 方法和 7 个目标函数

  • 使用一个商业无人农业载具验证了 Fields2Cover 对提供真实环境解决方案的兼容性

Fields2Cover

Headland Generator module 岬角生成器模块

目标函数是去掉岬角后剩余的区域

Ar 是剩余面积,Ahl 是去掉岬角后的面积,Af 是原面积

Swath Generator moudle 列生成器模块

将岬角生成器生成的区域划分成列

当前版本只支持生成平行的非重叠列

使用三个目标函数

最小化列的数量

#Sα 是给定角度 α 的列的数量,Ahl 是去掉岬角的区域,Rw 是运行中的机器人宽度

最大化场地覆盖

Acov 是覆盖的区域数量,Ahl 是去掉岬角的区域,Si 是第 i 列

最小化列长

N 是列的数量,Sip 是第 i 列有的点数,i p=j 是第 i 列的第 j 点,||x||2 是欧几里得范数

Route Planner moudle

使用之前的条带来生成路由,包含了几个预设的模式

Boustrophendon

按顺序覆盖条带,牛耕式

Snake

每次跳过一个条带,沿一个方向遍历,然后返回再次遍历

Spiral

螺旋模式是蛇形模式的变体,将条带分成固定大小的集合进行遍历

此外还有自定义模式

目标函数为生成的路径长度

Path Planner moudle

路径规划器输入路线(排序好的列)和车辆参数,输出路径

目标函数为路径长度

结果

仿真结果

使用了三种不同的目标函数进行模拟

第二个实验使用了 38 个凸域

带原地旋转的牛耕式最短,蛇形次之,螺旋模式最长

田间试验


等待一只名叫希羽的狐