![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged fields2cover at Robotics Stack Exchange
![]() |
fields2cover package from fields2cover repofields2cover |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 2.0.0 |
License | BSD-3 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Fields2Cover/fields2cover.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-22 |
Dev Status | DEVELOPED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Gonzalo Mier
Authors
Fields2Cover
Robust and efficient coverage paths for autonomous agricultural vehicles
{.align-center}
The extended documentation is here.
The coverage path planning problem (CPP) aims to create a path to cover an area with one or several vehicles. CPP has many application as cleaning robots, surveillance, de-mining or agriculture. Each of the application has its own requirements. For example, in cleaning robots environment is usually unknown and the objective is improve the probability of cover the area. On the other hand, CPP in agriculture knows the area to cover, but the coverage has to be complete.
Fields2Cover library provides several algorithms to plan the coverage path on any kind of fields:
{.align-center width=”500px”}
Although the development of this project is focused on offline planning of agricultural vehicles, the library accepts pull requests from other types of coverage planners.
F2C version 2.0
The version 2.0 of Fields2Cover comes with support for non-convex fields and fields with obstacles!! This has been huge request from the community and finally it's here.
A quick list of new additions to the library:
- Decomposition algorithms:
- Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
- Route planner:
- Route optimizer using OR-tools can be used to order the swaths, instead of just using a known pattern.
- Support for a point used as the start and end points of the route.
- Path planner:
- Support for routes provided by the route optimizer.
- Swath generator:
- Speed improvement on swath generation.
- New cost function: [NSwathModified]{.title-ref}. It uses an approximation to compute the number of swaths, reducing computation costs.
- Many bugs fixed.
Citing
Please cite the following paper (https://ieeexplore.ieee.org/document/10050562) when using Fields2Cover for your research:
@article{Mier_Fields2Cover_An_open-source_2023,
author={Mier, Gonzalo and Valente, João and de Bruin, Sytze},
journal={IEEE Robotics and Automation Letters},
title={Fields2Cover: An Open-Source Coverage Path Planning Library for Unmanned Agricultural Vehicles},
year={2023},
volume={8},
number={4},
pages={2166-2172},
doi={10.1109/LRA.2023.3248439}
}
Why?
There are many CPP papers out there, but almost no code about their implementation. Due to this, research about this topic is slow as you need to implement every algorithm you want to compare with.
Fields2Cover provides a flexible structure and several algorithms to compare with, so any developer can research about this topic easily.
Installation
The Fields2Cover package has only been tested on Ubuntu 18.04, 20.04 and 22.04. If you are able to run it in other operative systems, open an issue/PR and it will be added to this guide
Requirements on Linux
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - 07-02-2024
- Route planner travelling through the headlands
[1.3.0] - 21-04-2023
- Add decomposition algorithms: trapezoidal, boustrophedon
[1.2.0] - 17-10-2022
Added
- Tests to do cover < 90% functions
Changes
- SG use the objective function as a parameter instead of a template.
- RP do not save the swaths and modify them using the functions provided
- PP do not save the robot and use the robot params with a param on the function.
Changes
- Objectives are split for each of the modules.
- Global objective renamed to SG objective.
- Path objective renamed to RP objective.
Added
- PP objective
- HL objective
[1.1.0]
Added
- On HL module: constant headland algorithm.
- On SG module: brute force algorithm.
- On RP module: Boustrophedon, custom, snake and spiral.
- On PP module: Dubins and Reeds-Sheep with/without continuous curvature.
- Objective functions are split between global and path cost functions.
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
fields2cover_ros |