selfdriving
TrajectoriesAndRobotShape.h
Go to the documentation of this file.
1 /* -------------------------------------------------------------------------
2  * SelfDriving C++ library based on PTGs and mrpt-nav
3  * Copyright (C) 2019-2022 Jose Luis Blanco, University of Almeria
4  * See LICENSE for license information.
5  * ------------------------------------------------------------------------- */
6 
7 #pragma once
8 
9 #include <mpp/data/ptg_t.h>
10 #include <mrpt/config/CConfigFileBase.h>
11 #include <mrpt/containers/yaml.h>
12 #include <mrpt/math/TPolygon2D.h>
13 
14 #include <memory>
15 #include <variant>
16 #include <vector>
17 
18 namespace mpp
19 {
20 using robot_radius_t = double;
21 
22 using RobotShape =
23  std::variant<mrpt::math::TPolygon2D, robot_radius_t, std::monostate>;
24 
26 {
27  public:
28  TrajectoriesAndRobotShape() = default;
29  ~TrajectoriesAndRobotShape() = default;
30 
31  bool initialized() const { return initialized_; }
32  void clear();
33 
34  void initFromConfigFile(
35  mrpt::config::CConfigFileBase& cfg, const std::string& section);
36  // void initFromYAML(const mrpt::containers::yaml& node);
37 
38  std::vector<std::shared_ptr<ptg_t>> ptgs; //!< Allowed movement sets
40 
41  private:
42  bool initialized_ = false;
43 };
44 
46  const mrpt::math::TPoint2D& obstacleWrtRobot,
47  const TrajectoriesAndRobotShape& trs);
48 
49 } // namespace mpp
bool initialized() const
Definition: TrajectoriesAndRobotShape.h:31
std::vector< std::shared_ptr< ptg_t > > ptgs
Allowed movement sets.
Definition: TrajectoriesAndRobotShape.h:38
Definition: bestTrajectory.h:15
bool initialized_
Definition: TrajectoriesAndRobotShape.h:42
void initFromConfigFile(mrpt::config::CConfigFileBase &cfg, const std::string &section)
Definition: TrajectoriesAndRobotShape.h:25
RobotShape robotShape
Definition: TrajectoriesAndRobotShape.h:39
double robot_radius_t
Definition: TrajectoriesAndRobotShape.h:20
std::variant< mrpt::math::TPolygon2D, robot_radius_t, std::monostate > RobotShape
Definition: TrajectoriesAndRobotShape.h:23
bool obstaclePointCollides(const mrpt::math::TPoint2D &obstacleWrtRobot, const TrajectoriesAndRobotShape &trs)