Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
jazzy

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
kilted

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
rolling

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
iron

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
humble

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange

Package symbol

fields2cover package from fields2cover repo

fields2cover

ROS Distro
noetic

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

Robust and efficient coverage paths for autonomous agricultural vehicles. A modular and extensible Coverage Path Planning library

Additional Links

No additional links.

Maintainers

  • Gonzalo Mier

Authors

No additional authors.

Fields2Cover

Robust and efficient coverage paths for autonomous agricultural vehicles

Open in GitHub
Codespaces

DOI build CODECOV license Language-C++ Language-Python stars forks

image{.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:

image{.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:

  1. Decomposition algorithms:
    • Trapezoidal and Boustrophedon decomposition. Those algorithms are useful to split any concave field into several convex sub-fields.
  2. 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.
  3. Path planner:
    • Support for routes provided by the route optimizer.
  4. 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.
  5. 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

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

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged fields2cover at Robotics Stack Exchange