Skip to content

emmarapt/OverFOMO

Repository files navigation


Adaptive Coverage Path Planning

An Active Sensing Coverage Path Planning scheme for Precision Agriculture applications!
View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Demo
  5. Qualitative Results
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgments
  10. References

About The Project

This project deals with the path planning of a mobile robot in an active sensing coverage path planning scheme adjusting the robot's speed based on the online received information of the captured images. At the heart of the proposed approach lies a novel mechanism that regulates the speed of the robot in accordance with both the relative quantity of identified classes (i.e., crops and weeds) and the confidence level of such detection. A state-of-the-art deep learning segmentation model is deployed for the identification and classification of crops and weeds in the incoming images. The overall methodology is integrated into a simu-realistic pipeline utilizing AirSim simulator for real-time reactions and observations.

(back to top)

Getting Started

This is an example of how you can setup the project locally. To get a local copy up and running follow these simple steps.

Prerequisites

Step 1. To run the project you should install the required system packages:

pip install -r requirements.txt

Note: TensorFlow version for CPU & GPU support may differ based on your system requirements.

Step 2. Install CUDA based on your system requirements (For GPU support).

Step 3. Install GDAL.

  1. Download a pre-built gdal wheel file

Note: You’ll need to select the file that matches your specific Python version and operating system (32 or 64 bit).

  1. Install the wheel file with pip
python -m pip install path-to-wheel-file.whl

Assuming that you’ve used the appropriate wheel file, this should successfully install gdal.

If you use anaconda environment, please follow the tutorial for installing gdal with conda.

Step 4. For the adaptive path planning approach you should download any available dataset for precision agriculture applications.

Note: The Weed Map ASLdataset was used for this research.

Installation

  1. Clone the repo

    git clone https://github.com/emmarapt/Adaptive_Coverage_Path_Planning.git
  2. Download any of the available AirSim Environments based on your OS

  3. Open an AirSim environment

    • 3.1 For Windows users:

    Go to AirSim's environment folder and launch Unreal by running the .exe application.

    • 3.2 For Linux users:

    Go to AirSim's environment folder via a terminal and launch Unreal by running the .sh file.

  4. Navigate to project directory via a terminal and run:

    python main.py
  5. Follow the message for Take-off:

    Press any key to takeoff

Enjoy the flight!

(back to top)

Usage

parameters.py contains all the necessary information to run the project.

  • QGIS when True, the project will read the input data representing the operational area (e.g. polygon, linestring) as QGIS format. If False, the project will read the input data straightforward from the inputVariables.json.

  • turnwps_path contains the path of TurnWPs.txt file which provides a set of waypoints (path) to completely cover a Region of Interest. You can use your own path or create one using the following online instance http://choosepath.ddns.net/ .

Note: The list of the waypoints are formatted in WGS84 coordinates.

Dataset

  • ortho_georef_img contains the path entry of the .tif field image within the dataset's folder
  • ortho_rgb_img contains the path entry of the .png field image within the dataset's folder

Constant speed

  • mission_type when 'constant', the robot will perform a mission with constant speed

Adaptive speed

  • mission_type when 'variable', the robot will perform a mission with adaptive speed based on the received online information

AirSim

  • initial_velocity defines the initial speed of the robot during its mission

Note: If mission_type is 'constant' the speed of the robot will be always equal to initial_velocity

  • distance_threshold defines a limit threshold distance between the current location of the robot and the next waypoint

Note: This is needed to overcome issue mentioned here. It may need adjudications depending on the speed and the size of the operational area.

  • time_interval defines the time interval capture of the images

  • corner_radius defines a circle around every turn-waypoint with a radius equal to its value

Note: This is needed so that the robot does not deviate from the original flight plan due to speed fluctuations.

For the rest parameters, you just need to replace the "path" entries to match with the paths in your operating system.

(back to top)

Demo

Now that you have the Adaptive Coverage Path Planning method running, you can use it for dealing with Informative Path Planning problems. Here is a video demonstration of using this project utilizing AirSim simulator in AirSimNH environment.

Qualitative Results

To validate the efficiency of the Adaptive Coverage Path Planning method we evaluate the generated orthomosaic maps in terms of image quality. Towards this direction, simulated missions deployed with the baseline and the active sensing method are conducted for the field "002" of the Weedmap ASLdataset, with nominal speed of 3 m/s.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Marios Krestenitis - github - mikrestenitis@iti.gr

Emmanuel K. Raptis - github - emmarapt@iti.gr

Athanasios Ch. Kapoutsis - github - athakapo@iti.gr

(back to top)

Acknowledgments

This research has been financed by the European Regional Development Fund of the European Union and Greek national funds through the Operational Program Competitiveness, Entrepreneurship and Innovation, under the call RESEARCH - CREATE - INNOVATE (T1EDK-00636).

(back to top)

Cite As:

M. Krestenitis, E. K. Raptis, A. C. Kapoutsis, K. Ioannidis, E. B. Kosmatopoulos, and S. Vrochidis, “Overcome the fear of missing out: Active sensing UAV scanning for precision agriculture,” Robotics and Autonomous Systems, p. 104581, 2023. [Link]

@article{krestenitis2023overcome,
  title={Overcome the fear of missing out: Active sensing UAV scanning for precision agriculture},
  author={Krestenitis, Marios and Raptis, Emmanuel K and Kapoutsis, Athanasios Ch and Ioannidis, Konstantinos and Kosmatopoulos, Elias B and Vrochidis, Stefanos},
  journal={Robotics and Autonomous Systems},
  pages={104581},
  year={2023},
  publisher={Elsevier}
}

About

Overcome the Fear Of Missing Out: Active Sensing UAV Scanning for Precision Agriculture

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages