base_calculation_mediator.h
Go to the documentation of this file.
1 #ifndef BASE_CALCULATION_MEDIATOR_
2 #define BASE_CALCULATION_MEDIATOR_
3 
4 #include <ros/ros.h>
5 #include <ros/package.h>
6 #include <yaml-cpp/yaml.h>
7 #include <fstream>
8 
10 #include "robot/abstract_robot.h"
11 #include "robot/ceti_robot.h"
14 
15 #include "reader/wing_reader.h"
16 #include "reader/robot_reader.h"
17 
19 
23  protected:
24  std::unique_ptr<ros::Publisher> pub_;
25  std::unique_ptr<Wing_reader> wing_reader_;
26  std::unique_ptr<Robot_reader> robot_reader_;
27 
28 
29  std::map<const std::string, std::vector<pcl::PointXYZ>> grounds_;
30  std::vector<std::vector<std::unique_ptr<Abstract_robot_element>>> wings_;
31 
32  public:
34 
38  Base_calculation_mediator(std::shared_ptr<ros::NodeHandle> const& d);
39 
41 
48  std::vector<pcl::PointXYZ> generate_grounds(const tf2::Vector3 origin, const float diameter, float resolution);
49 
51 
54  inline Wing_reader* wing_reader() {return wing_reader_.get();}
55 
57 
60  inline Robot_reader* robot_reader() {return robot_reader_.get();}
61 
63 
67  void approximation(Ceti_robot* robot);
68 
70 
76  void write_file(Ceti_robot* A, Ceti_robot* B);
77 
79 
83  void publish(Ceti_robot* r);
84 
86  void setup_rviz();
87 
89 
92  void calculate(std::vector<tf2::Transform>& ground_per_robot);
93 
95  void set_panel();
96 
98 
102  bool check_collision(const int& robot) override;
103 
105 
108  void mediate() override;
109 
111 
116  void build_wings(std::bitset<3>& wings, int& robot) override;
117 
119 
123  void connect_robots(std::unique_ptr<Abstract_robot_decorator> robot) override;
124 
125 };
126 
127 #endif
Base_calculation_mediator::setup_rviz
void setup_rviz()
Rviz setup methode.
Base_calculation_mediator::robot_reader_
std::unique_ptr< Robot_reader > robot_reader_
Robot_reader which collects robot poses.
Definition: base_calculation_mediator.h:26
Abstract_mediator
Abstract mediator.
Definition: impl/abstract_mediator.h:33
Base_calculation_mediator::write_file
void write_file(Ceti_robot *A, Ceti_robot *B)
Writes result file.
Definition: base_calculation_mediator.cpp:299
Base_calculation_mediator::wing_reader
Wing_reader * wing_reader()
Get Wing_reader.
Definition: base_calculation_mediator.h:54
Wing_reader
Wing reader.
Definition: wing_reader.h:14
log_decorator.h
Base_calculation_mediator::pub_
std::unique_ptr< ros::Publisher > pub_
Publisher sharing visualization messages of the scene.
Definition: base_calculation_mediator.h:24
Base_calculation_mediator::wing_reader_
std::unique_ptr< Wing_reader > wing_reader_
Wing_reader which collects panel information of robots.
Definition: base_calculation_mediator.h:25
ceti_robot.h
abstract_robot.h
Base_calculation_mediator
Concrete Mediator.
Definition: base_calculation_mediator.h:22
abstract_mediator.h
Base_calculation_mediator::set_panel
void set_panel()
Sets panels for robots.
Definition: base_calculation_mediator.cpp:28
Base_calculation_mediator::build_wings
void build_wings(std::bitset< 3 > &wings, int &robot) override
Resets wings of a robot.
Definition: base_calculation_mediator.cpp:422
Base_calculation_mediator::mediate
void mediate() override
Mediator implementation.
Definition: base_calculation_mediator.cpp:99
rviz_panel.h
Base_calculation_mediator::wings_
std::vector< std::vector< std::unique_ptr< Abstract_robot_element > > > wings_
Possible panels per robot.
Definition: base_calculation_mediator.h:30
Base_calculation_mediator::connect_robots
void connect_robots(std::unique_ptr< Abstract_robot_decorator > robot) override
Robot Connector implementation.
Definition: base_calculation_mediator.cpp:22
Base_calculation_mediator::generate_grounds
std::vector< pcl::PointXYZ > generate_grounds(const tf2::Vector3 origin, const float diameter, float resolution)
Ground generator.
Definition: base_calculation_mediator.cpp:9
Base_calculation_mediator::publish
void publish(Ceti_robot *r)
Marker publishing methode.
Definition: base_calculation_mediator.cpp:441
Base_calculation_mediator::approximation
void approximation(Ceti_robot *robot)
Approximates other robots to fit in the workspace.
Definition: base_calculation_mediator.cpp:218
Base_calculation_mediator::check_collision
bool check_collision(const int &robot) override
check_collision
Definition: base_calculation_mediator.cpp:45
Abstract_mediator::wings
std::vector< std::vector< Abstract_robot_element * > > wings()
Definition: impl/abstract_mediator.h:52
wing_reader.h
robot_reader.h
Base_calculation_mediator::grounds_
std::map< const std::string, std::vector< pcl::PointXYZ > > grounds_
Possible ground positions per robots.
Definition: base_calculation_mediator.h:29
Ceti_robot
Concrete Ceti-Robot.
Definition: ceti_robot.h:22
Base_calculation_mediator::Base_calculation_mediator
Base_calculation_mediator(std::shared_ptr< ros::NodeHandle > const &d)
Base_calculation_mediator constructor.
Definition: base_calculation_mediator.cpp:3
Base_calculation_mediator::calculate
void calculate(std::vector< tf2::Transform > &ground_per_robot)
Ground position calculator.
Definition: base_calculation_mediator.cpp:140
Base_calculation_mediator::robot_reader
Robot_reader * robot_reader()
Get Robot_reader.
Definition: base_calculation_mediator.h:60
Robot_reader
Robot reader.
Definition: robot_reader.h:15


multi_cell_builder
Author(s): MA
autogenerated on Thu Jan 12 2023 23:45:43