mrs_lib
Various reusable classes, functions and utilities for use in MRS projects
Loading...
Searching...
No Matches
static_edges_visualization.h
1#ifndef STATIC_EDGES_VISUALIZATION_H
2#define STATIC_EDGES_VISUALIZATION_H
3
4#include "prism.h"
5#include <mrs_lib/safety_zone.h>
6
7#include <visualization_msgs/msg/marker.hpp>
8#include <visualization_msgs/msg/marker_array.hpp>
9#include <geometry_msgs/msg/point.hpp>
10#include <geometry_msgs/msg/transform_stamped.hpp>
12#include <string>
13#include <rclcpp/rclcpp.hpp>
14#include <atomic>
15
16namespace mrs_lib
17{
19 {
20
21 public:
22 // Represents the prism
23 StaticEdgesVisualization(safety_zone::Prism prism, const std::string& uav_name, const std::string& frame_id, const rclcpp::Node::SharedPtr node,
24 const double& markers_update_rate);
25
26 // Represents corresponding obstacle in the safety_zone.
27 StaticEdgesVisualization(safety_zone::SafetyZone* safety_zone, const int& obstacle_id, const std::string& uav_name, const std::string& frame_id,
28 const rclcpp::Node::SharedPtr node, const double& markers_update_rate);
29
30 // Represents border of the safety_zone.
31 StaticEdgesVisualization(safety_zone::SafetyZone* safety_zone, const std::string& uav_name, const std::string& frame_id, const rclcpp::Node::SharedPtr node,
32 const double& markers_update_rate);
33
35
36 void update() override;
37 void cleanup() override;
38
39 private:
40 void init();
41 void sendMarker();
42
43 // It is required for generating static marker names,
44 // because their id's must be unique on topic
45 const int id_;
46 static std::atomic<int> id_generator_;
47
48 safety_zone::Prism prism_;
49 std::string uav_name_;
50 std::string frame_id_;
51 rclcpp::Node::SharedPtr node_;
52
53 // Static markers
56 rclcpp::TimerBase::SharedPtr timer_;
57 visualization_msgs::msg::MarkerArray last_markers_;
58 visualization_msgs::msg::MarkerArray last_coordinates_;
59
60 }; // class StaticEdgesVisualization
61} // namespace mrs_lib
62
63
64#endif
user wrapper of the publisher handler implementation
Definition publisher_handler.h:127
Definition static_edges_visualization.h:19
Definition prism.h:33
Definition safety_zone.h:16
All mrs_lib functions, classes, variables and definitions are contained in this namespace.
Definition attitude_converter.h:24
Defines PublisherHandler and related convenience classes for upgrading the ROS publisher.