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 个凸域
带原地旋转的牛耕式最短,蛇形次之,螺旋模式最长
Comments | NOTHING