NASA Astrobee Robot Software  0.19.1
Flight software for the Astrobee robots operating inside the International Space Station.
visualization_functions.h
Go to the documentation of this file.
1 /* Copyright (c) 2017, United States Government, as represented by the
2  * Administrator of the National Aeronautics and Space Administration.
3  *
4  * All rights reserved.
5  *
6  * The Astrobee platform is licensed under the Apache License, Version 2.0
7  * (the "License"); you may not use this file except in compliance with the
8  * License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15  * License for the specific language governing permissions and limitations
16  * under the License.
17  */
18 
19 #ifndef MAPPER_VISUALIZATION_FUNCTIONS_H_
20 #define MAPPER_VISUALIZATION_FUNCTIONS_H_
21 
22 #include <octomap/octomap.h>
23 #include <octomap/OcTree.h>
24 
25 #include <visualization_msgs/MarkerArray.h>
26 #include <ff_msgs/Zone.h>
27 #include <ff_msgs/SetZones.h>
28 #include <ff_msgs/GetZones.h>
30 #include <Eigen/Core>
31 #include <string>
32 #include <vector>
33 #include <set>
34 
36 
37 // Some colors for visualization markers
38 class Color : public std_msgs::ColorRGBA {
39  public:
40  Color() : std_msgs::ColorRGBA() {}
41  Color(double red, double green, double blue) : Color(red, green, blue, 1.0) {}
42  Color(double red, double green, double blue, double alpha) : Color() {
43  r = red;
44  g = green;
45  b = blue;
46  a = alpha;
47  }
48 
49  static const Color White() { return Color(1.0, 1.0, 1.0); }
50  static const Color Black() { return Color(0.0, 0.0, 0.0); }
51  static const Color Gray() { return Color(0.5, 0.5, 0.5); }
52  static const Color Red() { return Color(1.0, 0.0, 0.0); }
53  static const Color Green() { return Color(0.0, 1.0, 0.0); }
54  static const Color Blue() { return Color(0.0, 0.0, 1.0); }
55  static const Color Yellow() { return Color(1.0, 1.0, 0.0); }
56  static const Color Orange() { return Color(1.0, 0.5, 0.0); }
57  static const Color Purple() { return Color(0.5, 0.0, 1.0); }
58  static const Color Chartreuse() { return Color(0.5, 1.0, 0.0); }
59  static const Color Teal() { return Color(0.0, 1.0, 1.0); }
60  static const Color Pink() { return Color(1.0, 0.0, 0.5); }
61 };
62 
63 // Overwrites the given properties of the marker array.
64 void SetMarkerProperties(const std_msgs::Header &header,
65  const double &life_time,
66  visualization_msgs::MarkerArray *markers);
67 
68 // Delete markers from a given array
69 void SetMarkersForDeletion(visualization_msgs::MarkerArray *marker_array);
70 
71 void DeleteMarkersTemplate( // Delete all markers
72  const std::string &frame_id,
73  visualization_msgs::MarkerArray *marker_array);
74 
75 void DrawObstacleNodes(const std::vector<Eigen::Vector3d> &points,
76  const std::string &frame_id,
77  const double &resolution,
78  visualization_msgs::MarkerArray *marker_array);
79 
80 void DrawTreeNodes(
81  const std::vector<Eigen::Vector3d> points,
82  const std::string& frame_id,
83  const double resolution,
84  visualization_msgs::MarkerArray *marker_array);
85 
86 void DrawCollidingNodes(const std::vector<Eigen::Vector3d> &points,
87  const std::string &frame_id,
88  const double &resolution,
89  visualization_msgs::MarkerArray *marker_array);
90 
91 void DrawCollidingNodes(const std::vector<octomap::point3d> &points,
92  const std::string &frame_id,
93  const double &resolution,
94  visualization_msgs::MarkerArray *marker_array);
95 
96 void DrawNodes(const std::vector<Eigen::Vector3d> &points,
97  const std::string &frame_id,
98  const std::string &ns, // namespace
99  const double &resolution,
100  const std_msgs::ColorRGBA &color,
101  const double &transparency, // 0 -> transparent, 1 -> opaque
102  visualization_msgs::MarkerArray *marker_array);
103 
104 void DrawNodes(const std::vector<octomap::point3d> &points,
105  const std::string &frame_id,
106  const std::string &ns, // namespace
107  const double &resolution,
108  const std_msgs::ColorRGBA &color,
109  const double &transparency, // 0 -> transparent, 1 -> opaque
110  visualization_msgs::MarkerArray *marker_array);
111 
112 void MarkerNode(const Eigen::Vector3d &point,
113  const std::string &frame_id,
114  const std::string &ns, // namespace
115  const double &resolution,
116  const std_msgs::ColorRGBA &color,
117  const double &transparency, // 0 -> transparent, 1 -> opaque
118  const int &seqNumber,
119  visualization_msgs::Marker *marker);
120 
121 void PathVisualization(const std::vector<Eigen::Vector3d> &total_path,
122  const std::vector<Eigen::Vector3d> &waypoints,
123  visualization_msgs::MarkerArray* markers);
124 
125 void PathVisualization(const std::vector<Eigen::Vector3d> &total_path,
126  const std::vector<Eigen::Vector3d> &waypoints,
127  const std_msgs::ColorRGBA &color,
128  const std::string &ns, // namespace
129  visualization_msgs::MarkerArray* markers);
130 
131 void DrawArrowPoints(const Eigen::Vector3d &p1,
132  const Eigen::Vector3d &p2,
133  const std_msgs::ColorRGBA &color,
134  const double &diameter,
135  visualization_msgs::Marker* marker);
136 
137 } // namespace visualization_functions
138 
139 #endif // MAPPER_VISUALIZATION_FUNCTIONS_H_
visualization_functions::DeleteMarkersTemplate
void DeleteMarkersTemplate(const std::string &frame_id, visualization_msgs::MarkerArray *marker_array)
Definition: visualization_functions.cc:40
visualization_functions::Color::Chartreuse
static const Color Chartreuse()
Definition: visualization_functions.h:58
visualization_functions::Color::Blue
static const Color Blue()
Definition: visualization_functions.h:54
visualization_functions::Color::Color
Color(double red, double green, double blue)
Definition: visualization_functions.h:41
visualization_functions::Color::Red
static const Color Red()
Definition: visualization_functions.h:52
visualization_functions::Color::White
static const Color White()
Definition: visualization_functions.h:49
visualization_functions::Color::Teal
static const Color Teal()
Definition: visualization_functions.h:59
visualization_functions::MarkerNode
void MarkerNode(const Eigen::Vector3d &point, const std::string &frame_id, const std::string &ns, const double &resolution, const std_msgs::ColorRGBA &color, const double &transparency, const int &seqNumber, visualization_msgs::Marker *marker)
Definition: visualization_functions.cc:173
visualization_functions::DrawTreeNodes
void DrawTreeNodes(const std::vector< Eigen::Vector3d > points, const std::string &frame_id, const double resolution, visualization_msgs::MarkerArray *marker_array)
visualization_functions::PathVisualization
void PathVisualization(const std::vector< Eigen::Vector3d > &total_path, const std::vector< Eigen::Vector3d > &waypoints, visualization_msgs::MarkerArray *markers)
Definition: visualization_functions.cc:201
visualization_functions::Color
Definition: visualization_functions.h:38
visualization_functions::Color::Black
static const Color Black()
Definition: visualization_functions.h:50
visualization_functions::Color::Gray
static const Color Gray()
Definition: visualization_functions.h:51
visualization_functions::Color::Green
static const Color Green()
Definition: visualization_functions.h:53
visualization_functions::DrawNodes
void DrawNodes(const std::vector< Eigen::Vector3d > &points, const std::string &frame_id, const std::string &ns, const double &resolution, const std_msgs::ColorRGBA &color, const double &transparency, visualization_msgs::MarkerArray *marker_array)
Definition: visualization_functions.cc:85
visualization_functions::Color::Purple
static const Color Purple()
Definition: visualization_functions.h:57
point_cloud_common::Vector3d
Eigen::Vector3d Vector3d(const PointType &point)
Definition: utilities.h:328
visualization_functions
Definition: visualization_functions.h:35
visualization_functions::Color::Color
Color(double red, double green, double blue, double alpha)
Definition: visualization_functions.h:42
visualization_functions::Color::Yellow
static const Color Yellow()
Definition: visualization_functions.h:55
visualization_functions::DrawArrowPoints
void DrawArrowPoints(const Eigen::Vector3d &p1, const Eigen::Vector3d &p2, const std_msgs::ColorRGBA &color, const double &diameter, visualization_msgs::Marker *marker)
Definition: visualization_functions.cc:261
visualization_functions::DrawObstacleNodes
void DrawObstacleNodes(const std::vector< Eigen::Vector3d > &points, const std::string &frame_id, const double &resolution, visualization_msgs::MarkerArray *marker_array)
Definition: visualization_functions.cc:57
visualization_functions::Color::Pink
static const Color Pink()
Definition: visualization_functions.h:60
green
uint8_t green
Definition: signal_lights.h:62
visualization_functions::SetMarkersForDeletion
void SetMarkersForDeletion(visualization_msgs::MarkerArray *marker_array)
Definition: visualization_functions.cc:52
msg_conversions.h
visualization_functions::Color::Orange
static const Color Orange()
Definition: visualization_functions.h:56
visualization_functions::SetMarkerProperties
void SetMarkerProperties(const std_msgs::Header &header, const double &life_time, visualization_msgs::MarkerArray *markers)
Definition: visualization_functions.cc:27
blue
uint8_t blue
Definition: signal_lights.h:63
red
uint8_t red
Definition: signal_lights.h:61
visualization_functions::DrawCollidingNodes
void DrawCollidingNodes(const std::vector< Eigen::Vector3d > &points, const std::string &frame_id, const double &resolution, visualization_msgs::MarkerArray *marker_array)
Definition: visualization_functions.cc:71
visualization_functions::Color::Color
Color()
Definition: visualization_functions.h:40