20 #ifndef VOLUMETRIC_MAPPER_VOLUMETRIC_MAPPER_H_
21 #define VOLUMETRIC_MAPPER_VOLUMETRIC_MAPPER_H_
27 #include <tf2_ros/transform_listener.h>
28 #include <tf2_geometry_msgs/tf2_geometry_msgs.h>
31 #include <volumetric_mapper/volumetric_mapper.h>
34 #include <visualization_msgs/MarkerArray.h>
38 #include <gp/gp_utils.h>
46 namespace volumetric_mapper {
53 double min_intensity,
double max_intensity,
double transparency,
58 void AddMapData(
double value, geometry_msgs::TransformStamped tf);
60 void PubMapData(
double x_min,
double x_max,
double y_min,
double y_max,
61 double z_min,
double z_max);
66 libgp::GaussianProcess * gp_;
69 ros::Publisher publisher_;
70 visualization_msgs::MarkerArray wifi_trace_;
74 double min_intensity_;
75 double max_intensity_;
84 TraceMapper(ros::NodeHandle* nh, std::string topic,
double resolution,
85 double min_intensity,
double max_intensity,
double transparency);
88 void AddTraceData(
double value, geometry_msgs::TransformStamped tf);
93 ros::Publisher pub_map_trace_;
94 visualization_msgs::MarkerArray map_trace_;
98 double min_intensity_;
99 double max_intensity_;
100 double transparency_;
104 double roundPartial(
double value,
double resolution) {
105 return round(value / resolution) * resolution;
109 std_msgs::ColorRGBA intensityMapColor(
const double &height,
110 const double &alpha) {
111 std_msgs::ColorRGBA color;
117 double height_mod = height;
118 height_mod -= floor(height_mod);
123 i = floor(height_mod);
133 color.r = v; color.g = n; color.b = m;
136 color.r = n; color.g = v; color.b = m;
139 color.r = m; color.g = v; color.b = n;
142 color.r = m; color.g = n; color.b = v;
145 color.r = n; color.g = m; color.b = v;
148 color.r = v; color.g = m; color.b = n;
151 color.r = 1; color.g = 0.5; color.b = 0.5;
157 #endif // VOLUMETRIC_MAPPER_VOLUMETRIC_MAPPER_H_