8_complete_flow.cpp
Go to the documentation of this file.
1 //=============================================================================
2 // Copyright (C) 2021-2024 Wageningen University - All Rights Reserved
3 // Author: Gonzalo Mier
4 // BSD-3 License
5 //=============================================================================
6 
7 
8 #include "fields2cover.h"
9 #include <iostream>
10 
11 int main() {
12  // Import field
13  F2CField field = f2c::Parser::importFieldGml(std::string(DATA_PATH) + "test1.xml");
14  F2CField orig_field = field.clone();
15  // Transform into UTM to work in meters
17 
18  F2CRobot robot (2.0, 6.0);
20  F2CCells no_hl = const_hl.generateHeadlands(field.getField(), 3.0 * robot.getWidth());
22  F2CSwaths swaths = bf.generateSwaths(M_PI, robot.getCovWidth(), no_hl.getGeometry(0));
24  swaths = snake_sorter.genSortedSwaths(swaths);
26  robot.setMinTurningRadius(2); // m
29 
30 
35  f2c::Visualizer::save("Tutorial_8_1_UTM.png");
36 
37 
38  // Transform the generated path back to the previousa CRS.
41 
43  f2c::Visualizer::plot(orig_field.getCellsAbsPosition());
45  f2c::Visualizer::save("Tutorial_8_1_GPS.png");
46 
47  return 0;
48 }
49 
50 
f2c::pp::DubinsCurves
Dubins' curves planner.
Definition: dubins_curves.h:17
f2c::hg::ConstHL
Class to generate headlands with equal width in each border.
Definition: constant_headland.h:18
5_route_planning.swaths
swaths
Definition: 5_route_planning.py:58
f2c::rp::SnakeOrder
Definition: snake_order.h:16
8_complete_flow.orig_field
orig_field
Definition: 8_complete_flow.py:14
f2c::Visualizer::plot
static void plot(double x, double y, const std::vector< double > &color={})
Definition: visualizer.cpp:23
2_objective_functions.path
path
Definition: 2_objective_functions.py:88
f2c::types::Field
Definition: Field.h:18
6_path_planning.path_planner
path_planner
Definition: 6_path_planning.py:27
f2c::pp::PathPlanning
Path planning class to connect a path using a TurningBase class method.
Definition: path_planning.h:19
2_objective_functions.robot
robot
Definition: 2_objective_functions.py:76
fields2cover.h
6_path_planning.dubins
dubins
Definition: 6_path_planning.py:30
3_headland_generator.const_hl
const_hl
Definition: 3_headland_generator.py:17
f2c::types::Path
Definition: Path.h:23
f2c::types::Cells
Definition: Cells.h:21
main
int main()
Definition: 8_complete_flow.cpp:11
f2c::Transform::transformToPrevCRS
static void transformToPrevCRS(F2CField &field)
Definition: transformation.cpp:197
parser_test.DATA_PATH
string DATA_PATH
Definition: parser_test.py:10
5_route_planning.snake_sorter
snake_sorter
Definition: 5_route_planning.py:81
f2c::types::Robot
Definition: Robot.h:25
3_headland_generator.no_hl
no_hl
Definition: 3_headland_generator.py:18
2_objective_functions.field
field
Definition: 2_objective_functions.py:16
f2c::Parser::importFieldGml
static F2CField importFieldGml(const std::string &file, bool fail_silently=false)
Definition: parser.cpp:21
f2c::Visualizer::figure
static void figure()
Create figure to plot on.
Definition: visualizer.cpp:254
f2c::Visualizer::save
static void save(const std::string &file)
Definition: visualizer.cpp:272
8_complete_flow.path_gps
path_gps
Definition: 8_complete_flow.py:40
f2c::types::Swaths
Definition: Swaths.h:20
5_route_planning.bf
bf
Definition: 5_route_planning.py:25
f2c::sg::BruteForce
Definition: brute_force.h:20
f2c::Transform::transformToUTM
static void transformToUTM(F2CField &field, bool is_etrs89_opt=true)
Definition: transformation.cpp:149


fields2cover
Author(s):
autogenerated on Fri Apr 25 2025 02:18:31