ism_pose_prediction_visualizer_rviz.hpp
Go to the documentation of this file.
1 
17 #pragma once
18 //Ilcas includes
21 #include <ISM/common_type/RecognitionResult.hpp>
22 #include <asr_msgs/AsrAttributedPointCloud.h>
23 #include <asr_msgs/AsrAttributedPoint.h>
24 
25 //ros includes
26 #include <geometry_msgs/Pose.h>
27 #include <ros/ros.h>
28 #include <dynamic_reconfigure/server.h>
29 #include <asr_ism_visualizations/ism_pose_prediction_visualizerConfig.h>
30 #include <asr_ism_visualizations/ism_valid_position_visualizerConfig.h>
31 
32 namespace VIZ
33 {
34 
35 
37 {
38 public:
39  ISMPosePredictionVisualizerRVIZ(const ros::Publisher& publisher, double bin_size, double max_projection_angle_deviation, const std::map<std::string, boost::filesystem::path> type_to_ressource_path_map, const ros::NodeHandle& nh, const ros::NodeHandle& nh_vp)
40  : VisualizerRVIZ(publisher), mesh_resource_paths_(type_to_ressource_path_map){
41 
42  sphere_radius_ = std::sqrt(3.0) * bin_size / 2;
43  max_angle_scale_ = std::tan((max_projection_angle_deviation / 2) * (M_PI / 180)) * 2 * sphere_radius_;
44 
45  reconfigure_server_ = new dynamic_reconfigure::Server<asr_ism_visualizations::ism_pose_prediction_visualizerConfig>(nh);
46  dynamic_reconfigure::Server<asr_ism_visualizations::ism_pose_prediction_visualizerConfig>::CallbackType reconf_callback = boost::bind(&ISMPosePredictionVisualizerRVIZ::dynamicReconfCallback, this, _1, _2);
47  reconfigure_server_->setCallback(reconf_callback);
48 
49  reconfigure_server_vp_ = new dynamic_reconfigure::Server<asr_ism_visualizations::ism_valid_position_visualizerConfig>(nh_vp);
50  dynamic_reconfigure::Server<asr_ism_visualizations::ism_valid_position_visualizerConfig>::CallbackType reconf_callback_vp = boost::bind(&ISMPosePredictionVisualizerRVIZ::dynamicReconfCallbackVP, this, _1, _2);
51  reconfigure_server_vp_->setCallback(reconf_callback_vp);
52  }
53 
55 
56  }
57 
58  void releaseCallback() {
59  reconfigure_server_->clearCallback();
60  reconfigure_server_vp_->clearCallback();
61  delete reconfigure_server_;
63  }
64 
65  void dynamicReconfCallback(asr_ism_visualizations::ism_pose_prediction_visualizerConfig &config, uint32_t level) {
66  ROS_DEBUG_STREAM("Pose prediction visualizer dyn-params updated.");
67 
68  line_scale_ = config.lineScale;
69  marker_lifetime_ = config.markerLifetime;
70  base_frame_ = config.baseFrame;
71  axis_scale_ = config.axisScale;
72  max_distance_in_overlay_ = config.maxDistanceInOverlay;
73  max_angle_in_overlay_ = config.maxAngleInOverlay;
74  }
75 
76  void dynamicReconfCallbackVP(asr_ism_visualizations::ism_valid_position_visualizerConfig &config, uint32_t level) {
77  ROS_DEBUG_STREAM("Valid position visualizer dyn-params updated.");
78 
79  object_axis_map_ = config.objectAxisMap;
80  object_sampels_ = config.objectSampels;
81  sample_value_ = config.sampleValue;
82  sample_alpha_ = config.sampleAlpha;
83  pose_prediction_alpha_ = config.posePredictionAlpha;
84  pose_prediction_value_ = config.posePredictionValue;
85  sample_scale_ = config.sampelScale;
86  }
87 
88  void setGlobalParams(double marker_lifetime, std::string base_frame){
89  marker_lifetime_ = marker_lifetime;
90  base_frame_ = base_frame;
91  }
92 
96  void addVisualization(ISM::RecognitionResultPtr result, asr_msgs::AsrAttributedPointCloud attributed_point_cloud, bool valid_position_viz);
97 
100  void calculateDistColor(ISM::ObjectPtr camera_object_ptr);
101 
102 
104  void nextObject();
105  void prevObject();
106 
108  void nextPose();
109  void prevPose();
110 
114  update = false;
115  }
116 
117 private:
118 
120  MarkerArray generatePredictionMarker(ISM::RecognitionResultPtr result);
122  MarkerArray generateValidPositions(ISM::RecognitionResultPtr result);
123 
125  void updateObjectMarker();
126 
128  std::string base_frame_;
130  double axis_scale_;
131  double line_scale_;
134 
136 
139  bool update = false;
140 
142  std::string object_axis_map_;
150 
151 
152 
153  std::map<std::string, boost::filesystem::path> mesh_resource_paths_;
154  std::map<ISM::Object, std::vector<ISM::PosePtr>> object_type_to_poses_map_;
155  std::map<int, ISM::Object> id_to_object_name_map_;
156  //std::map<std::string, std::string> object_to_observed_id_map_;
157  std::vector<ColorRGBA> dist_color_;
158  dynamic_reconfigure::Server<asr_ism_visualizations::ism_pose_prediction_visualizerConfig>* reconfigure_server_;
159  dynamic_reconfigure::Server<asr_ism_visualizations::ism_valid_position_visualizerConfig>* reconfigure_server_vp_;
160 
161 };
163 
164 }
void setGlobalParams(double marker_lifetime, std::string base_frame)
MarkerArray generatePredictionMarker(ISM::RecognitionResultPtr result)
generates prediction markers
std::map< std::string, boost::filesystem::path > mesh_resource_paths_
void updateObjectMarker()
updates marker of selected object
MarkerArray generateValidPositions(ISM::RecognitionResultPtr result)
generates markers for validPositionSpace visualization
dynamic_reconfigure::Server< asr_ism_visualizations::ism_valid_position_visualizerConfig > * reconfigure_server_vp_
ISMPosePredictionVisualizerRVIZ(const ros::Publisher &publisher, double bin_size, double max_projection_angle_deviation, const std::map< std::string, boost::filesystem::path > type_to_ressource_path_map, const ros::NodeHandle &nh, const ros::NodeHandle &nh_vp)
dynamic_reconfigure::Server< asr_ism_visualizations::ism_pose_prediction_visualizerConfig > * reconfigure_server_
std::map< ISM::Object, std::vector< ISM::PosePtr > > object_type_to_poses_map_
void nextObject()
increments object counter and uptates object marker
#define ROS_DEBUG_STREAM(args)
visualization_msgs::MarkerArray MarkerArray
void calculateDistColor(ISM::ObjectPtr camera_object_ptr)
boost::shared_ptr< ISMPosePredictionVisualizerRVIZ > ISMPosePredictionVisualizerRVIZPtr
void addVisualization(ISM::RecognitionResultPtr result, asr_msgs::AsrAttributedPointCloud attributed_point_cloud, bool valid_position_viz)
void nextPose()
increments posecounter and uptates object marker
void clearAllMarkerOfTopic()
deletes all markers of topic and sets update to false
void dynamicReconfCallback(asr_ism_visualizations::ism_pose_prediction_visualizerConfig &config, uint32_t level)
void dynamicReconfCallbackVP(asr_ism_visualizations::ism_valid_position_visualizerConfig &config, uint32_t level)


asr_ism_visualizations
Author(s): Hanselmann Fabian, Heller Florian, Heizmann Heinrich, Kübler Marcel, Meißner Pascal, Reckling Reno, Stöckle Patrick, Trautmann Jeremias
autogenerated on Fri Nov 8 2019 03:28:47