tutorials
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
16
f2c::Transform::transformToUTM
(
field
);
17
18
F2CRobot
robot
(2.0, 6.0);
19
f2c::hg::ConstHL
const_hl
;
20
F2CCells
no_hl
=
const_hl
.generateHeadlands(
field
.getField(), 3.0 *
robot
.getWidth());
21
f2c::sg::BruteForce
bf
;
22
F2CSwaths
swaths
=
bf
.generateSwaths(M_PI,
robot
.getCovWidth(),
no_hl
.getGeometry(0));
23
f2c::rp::SnakeOrder
snake_sorter
;
24
swaths
=
snake_sorter
.genSortedSwaths(
swaths
);
25
f2c::pp::PathPlanning
path_planner
;
26
robot
.setMinTurningRadius(2);
// m
27
f2c::pp::DubinsCurves
dubins
;
28
F2CPath
path
=
path_planner
.planPath(
robot
,
swaths
,
dubins
);
29
30
31
f2c::Visualizer::figure
();
32
f2c::Visualizer::plot
(
field
);
33
f2c::Visualizer::plot
(
no_hl
);
34
f2c::Visualizer::plot
(
path
);
35
f2c::Visualizer::save
(
"Tutorial_8_1_UTM.png"
);
36
37
38
// Transform the generated path back to the previousa CRS.
39
F2CPath
path_gps
=
f2c::Transform::transformToPrevCRS
(
path
,
field
);
40
f2c::Transform::transformToPrevCRS
(
field
);
41
42
f2c::Visualizer::figure
();
43
f2c::Visualizer::plot
(
orig_field
.getCellsAbsPosition());
44
f2c::Visualizer::plot
(
path_gps
);
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