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 #include <filesystem>
9 
10 
12 #include "robot/abstract_robot.h"
13 #include "robot/ceti_robot.h"
16 #include "reader/wing_reader.h"
17 #include "reader/robot_reader.h"
18 
20 
24  protected:
25  std::unique_ptr<ros::Publisher> pub_;
26  std::map<const std::string, std::vector<pcl::PointXYZ>> grounds_;
27  std::vector<std::vector<std::unique_ptr<AbstractRobotElement>>> wings_;
28  std::vector<std::vector<std::vector<protobuf_entry>>> protobuf_;
29  std::string filename_;
30 
31  public:
33 
37  BaseCalculationMediator(std::shared_ptr<ros::NodeHandle> const& d);
38 
40 
47  void generateGrounds(const tf2::Vector3 origin, const float diameter, float resolution);
48 
50 
54  void approximation(std::map<const std::string, std::vector<tf2::Transform>>& workcell, std::vector<protobuf_entry>& wc_solution);
55 
57 
62  void writeFile(std::vector<protobuf_entry>& wc_solution);
63 
65 
69  void publish(CetiRobot* r);
70 
72  void setupRviz();
73 
75 
79  void calculate(std::map<const std::string, std::vector<tf2::Transform>>& workcell);
80 
81  void setPanel() override;
82 
84 
92  bool checkCollision(const std::string& robot, std::bitset<3>& panel_mask, bool& workload, std::vector<object_data>& ts);
93 
95 
98  void mediate() override;
99 
101 
105  void connectRobots(std::unique_ptr<AbstractRobotDecorator> robot) override;
106 
107  bool sceneCollision(std::vector<protobuf_entry>& wc_solution);
108 
109 
110 };
111 
112 #endif
BaseCalculationMediator::calculate
void calculate(std::map< const std::string, std::vector< tf2::Transform >> &workcell)
Workspace calculator.
Definition: base_calculation_mediator.cpp:203
BaseCalculationMediator::setupRviz
void setupRviz()
Rviz setup methode.
BaseCalculationMediator::checkCollision
bool checkCollision(const std::string &robot, std::bitset< 3 > &panel_mask, bool &workload, std::vector< object_data > &ts)
check_collision
Definition: base_calculation_mediator.cpp:63
abstract_mediator.h
BaseCalculationMediator::BaseCalculationMediator
BaseCalculationMediator(std::shared_ptr< ros::NodeHandle > const &d)
BaseCalculationMediator constructor.
Definition: base_calculation_mediator.cpp:3
log_decorator.h
BaseCalculationMediator
Concrete Mediator.
Definition: base_calculation_mediator.h:23
BaseCalculationMediator::protobuf_
std::vector< std::vector< std::vector< protobuf_entry > > > protobuf_
Datastructure as product of all baseposition -> robot combinations.
Definition: base_calculation_mediator.h:28
abstract_robot.h
ceti_robot.h
BaseCalculationMediator::grounds_
std::map< const std::string, std::vector< pcl::PointXYZ > > grounds_
Possible ground positions per robots.
Definition: base_calculation_mediator.h:26
BaseCalculationMediator::filename_
std::string filename_
Definition: base_calculation_mediator.h:29
BaseCalculationMediator::wings_
std::vector< std::vector< std::unique_ptr< AbstractRobotElement > > > wings_
Possible panels per robot.
Definition: base_calculation_mediator.h:27
BaseCalculationMediator::connectRobots
void connectRobots(std::unique_ptr< AbstractRobotDecorator > robot) override
Robot Connector implementation.
Definition: base_calculation_mediator.cpp:25
BaseCalculationMediator::generateGrounds
void generateGrounds(const tf2::Vector3 origin, const float diameter, float resolution)
Ground generator.
Definition: base_calculation_mediator.cpp:13
AbstractMediator
AbstractMediator.
Definition: abstract_mediator.h:43
CetiRobot
Concrete Ceti-Robot.
Definition: ceti_robot.h:14
BaseCalculationMediator::setPanel
void setPanel() override
pure virtual Sets panels for robots
Definition: base_calculation_mediator.cpp:30
rviz_panel.h
BaseCalculationMediator::publish
void publish(CetiRobot *r)
Marker publishing methode.
Definition: base_calculation_mediator.cpp:770
wing_reader.h
BaseCalculationMediator::pub_
std::unique_ptr< ros::Publisher > pub_
Publisher sharing visualization messages of the scene.
Definition: base_calculation_mediator.h:25
robot_reader.h
BaseCalculationMediator::mediate
void mediate() override
Mediator implementation.
Definition: base_calculation_mediator.cpp:130
BaseCalculationMediator::writeFile
void writeFile(std::vector< protobuf_entry > &wc_solution)
Writes result file.
Definition: base_calculation_mediator.cpp:555
BaseCalculationMediator::sceneCollision
bool sceneCollision(std::vector< protobuf_entry > &wc_solution)
Definition: base_calculation_mediator.cpp:469
BaseCalculationMediator::approximation
void approximation(std::map< const std::string, std::vector< tf2::Transform >> &workcell, std::vector< protobuf_entry > &wc_solution)
Approximates other robots to fit in the workspace.
Definition: base_calculation_mediator.cpp:305


multi_cell_builder
Author(s): Matteo Anedda
autogenerated on Sun Apr 9 2023 23:59:51