route_planner_base_test.py
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 import pytest
8 import fields2cover as f2c
9 
10 def near(a, b):
11  assert pytest.approx(a) == pytest.approx(b)
12 
13 
15  rand = f2c.Random(4);
16  robot = f2c.Robot(2.0, 2.0);
17  robot.setMinTurningRadius(2);
18  robot.setMaxDiffCurv(0.1);
19 
20  const_hl = f2c.HG_Const_gen();
21  ring1 = f2c.LinearRing()
22  ring2 = f2c.LinearRing()
23  ring3 = f2c.LinearRing()
24  ring1.addPoint(0,0); ring1.addPoint(100,0); ring1.addPoint(100,100); ring1.addPoint(0,100); ring1.addPoint(0,0)
25  ring2.addPoint(20,20); ring2.addPoint(20,30); ring2.addPoint(30,30); ring2.addPoint(30,20); ring2.addPoint(20,20)
26  ring3.addPoint(60,60); ring3.addPoint(80,60); ring3.addPoint(80,80); ring3.addPoint(60,80); ring3.addPoint(60,60)
27 
28  cells = f2c.Cells(f2c.Cell(ring1))
29  cells.addRing(0, ring2)
30  cells.addRing(0, ring3)
31 
32 
33  no_hl = const_hl.generateHeadlandArea(cells, robot.getCovWidth(), 3);
34  hl_swaths = const_hl.generateHeadlandSwaths(cells, robot.getCovWidth(), 3, False);
35 
36  decomp = f2c.DECOMP_Boustrophedon();
37  decomp.setSplitAngle(0.0);
38  #no_hl = decomp.decompose(no_hl);
39 
40  bf = f2c.SG_BruteForce();
41  swaths = bf.generateSwaths(3.1416, robot.getCovWidth(), no_hl);
42 
43  route_planner = f2c.RP_RoutePlannerBase()
44  route = route_planner.genRoute(hl_swaths[1], swaths)
45 
46  path_planner = f2c.PP_PathPlanning();
47  dubins = f2c.PP_DubinsCurves();
48 
49  path_dubins = path_planner.planPath(robot, route, dubins)
50 
52  f2c.Visualizer.plot(cells);
53  f2c.Visualizer.plot(no_hl);
54  f2c.Visualizer.plot(hl_swaths[1]);
55  f2c.Visualizer.plot(path_dubins);
57 
58 
59 
60 
61 
f2c::Visualizer::plot
static void plot(double x, double y, const std::vector< double > &color={})
Definition: visualizer.cpp:23
route_planner_base_test.test_fields2cover_route_planner_base_simple_example
def test_fields2cover_route_planner_base_simple_example()
Definition: route_planner_base_test.py:14
route_planner_base_test.near
def near(a, b)
Definition: route_planner_base_test.py:10
f2c::Random
Definition: random.h:23
f2c::Visualizer::show
static void show()
Definition: visualizer.cpp:268
f2c::Visualizer::figure
static void figure()
Create figure to plot on.
Definition: visualizer.cpp:254


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