path_planning.h
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 #pragma once
8 #ifndef FIELDS2COVER_PATH_PLANNING_PATH_PLANNING_H_
9 #define FIELDS2COVER_PATH_PLANNING_PATH_PLANNING_H_
10 
11 #include <utility>
12 #include <vector>
13 #include "fields2cover/types.h"
15 
16 namespace f2c::pp {
17 
19 class PathPlanning {
20  public:
22  static F2CPath planPath(const F2CRobot& robot, const F2CRoute& route,
23  TurningBase& turn);
24 
27  static F2CPath planPath(const F2CRobot& robot, const F2CSwaths& swaths,
28  TurningBase& turn);
29 
33  const F2CSwaths& s1, const F2CMultiPoint& mp, const F2CSwaths& s2,
34  TurningBase& turn);
35 
38  const F2CPoint& p1, double ang1,
39  const F2CMultiPoint& mp,
40  const F2CPoint& p2, double ang2,
41  TurningBase& turn);
42 
43  private:
44  static double getSmoothTurningRadius(const F2CRobot& robot);
45  static std::vector<std::pair<F2CPoint, double>> simplifyConnection(
46  const F2CRobot& robot,
47  const F2CPoint& p1, double ang1,
48  const F2CMultiPoint& mp,
49  const F2CPoint& p2, double ang2);
50 };
51 
52 } // namespace f2c::pp
53 
54 #endif // FIELDS2COVER_PATH_PLANNING_PATH_PLANNING_H_
f2c::pp::PathPlanning::simplifyConnection
static std::vector< std::pair< F2CPoint, double > > simplifyConnection(const F2CRobot &robot, const F2CPoint &p1, double ang1, const F2CMultiPoint &mp, const F2CPoint &p2, double ang2)
Definition: path_planning.cpp:104
f2c::pp::PathPlanning::planPath
static F2CPath planPath(const F2CRobot &robot, const F2CRoute &route, TurningBase &turn)
Compute the coverage path using a route as a reference.
Definition: path_planning.cpp:12
5_route_planning.swaths
swaths
Definition: 5_route_planning.py:58
f2c::pp::PathPlanning::getSmoothTurningRadius
static double getSmoothTurningRadius(const F2CRobot &robot)
Definition: path_planning.cpp:94
1_basic_types.p1
p1
Definition: 1_basic_types.py:11
f2c::pp
Path planning algorithms' namespace.
Definition: dubins_curves.h:14
types.h
f2c::pp::PathPlanning::planPathForConnection
static F2CPath planPathForConnection(const F2CRobot &robot, const F2CSwaths &s1, const F2CMultiPoint &mp, const F2CSwaths &s2, TurningBase &turn)
Definition: path_planning.cpp:46
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
5_route_planning.route
route
Definition: 5_route_planning.py:29
1_basic_types.p2
p2
Definition: 1_basic_types.py:15
f2c::types::Path
Definition: Path.h:23
f2c::types::MultiPoint
Definition: MultiPoint.h:18
f2c::types::Route
Definition: Route.h:23
f2c::pp::TurningBase
Base class for turn planners.
Definition: turning_base.h:22
f2c::types::Point
Definition: Point.h:21
f2c::types::Robot
Definition: Robot.h:25
turning_base.h
f2c::types::Swaths
Definition: Swaths.h:20


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