map_merger.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2011, Dirk Thomas, TU Darmstadt
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  * * Redistributions in binary form must reproduce the above
12  * copyright notice, this list of conditions and the following
13  * disclaimer in the documentation and/or other materials provided
14  * with the distribution.
15  * * Neither the name of the TU Darmstadt nor the names of its
16  * contributors may be used to endorse or promote products derived
17  * from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23  * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30  * POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 #ifndef rqt_map_merger__MapMerger_H
34 #define rqt_map_merger__MapMerger_H
35 
36 #include <rqt_gui_cpp/plugin.h>
37 
38 #include <ui_map_merger.h>
39 
41 #include <sensor_msgs/Image.h>
42 #include <nav_msgs/OccupancyGrid.h>
43 
44 
45 #include <opencv2/core/core.hpp>
46 
47 #include <QImage>
48 #include <QList>
49 #include <QMutex>
50 #include <QString>
51 #include <QSize>
52 #include <QWidget>
53 
54 #include <vector>
55 
56 
57 namespace rqt_map_merger {
58 
59 class MapMerger
60  : public rqt_gui_cpp::Plugin
61 {
62 
63  Q_OBJECT
64 
65 public:
66 
67  MapMerger();
68 
69  virtual void initPlugin(qt_gui_cpp::PluginContext& context);
70  cv::Mat occupancyGridToCvMat(const nav_msgs::OccupancyGrid * map);
71  nav_msgs::OccupancyGrid cvMatToOccupancyGrid(const cv::Mat * im);
72 
73  virtual void shutdownPlugin();
74  bool eventFilter(QObject* watched, QEvent* event);
75 
76  void redraw_Label_1();
77  void redraw_Label_2();
78  void redraw_Label_merged();
79  void timerCallback(const ros::TimerEvent& e);
80 
81 
82 public slots:
83  void onSlider1Moved(int idx);
84  void onSlider2Moved(int idx);
85  void onMergePressed();
86  void onSaveGeotiffPressed();
87  void onStateUseTransformChanged(int checked);
88  void onGetTransform();
89 
90 
91 protected:
92 
93  void map1Callback(nav_msgs::OccupancyGridConstPtr const & map);
94  void map2Callback(nav_msgs::OccupancyGridConstPtr const & map);
95 
96 protected slots:
97 
98 
99 protected:
100 
101 
102 
103  Ui::MapMergerWidget ui_;
104 
105  QWidget* widget_;
106 
108 
111 
112  std::vector<QImage> qimages_1_;
113  std::vector<cv::Mat> cv_maps_1_;
114  std::vector<nav_msgs::OccupancyGrid> og_maps_1_;
115  QImage qimage_1_;
116  cv::Mat cv_map_1_;
117  nav_msgs::OccupancyGrid og_map_1_;
118  std::vector<QImage> qimages_2_;
119  std::vector<cv::Mat> cv_maps_2_;
120  std::vector<nav_msgs::OccupancyGrid> og_maps_2_;
121  QImage qimage_2_;
122  cv::Mat cv_map_2_;
123  nav_msgs::OccupancyGrid og_map_2_;
124 
127 
131 
133 
136 
139 
143 
145 
149 
150 };
151 
152 }
153 
154 #endif // rqt_image_view__ImageView_H
ros::Publisher map_2_to_use_pub_
Definition: map_merger.h:147
bool eventFilter(QObject *watched, QEvent *event)
Definition: map_merger.cpp:247
virtual void shutdownPlugin()
Definition: map_merger.cpp:271
std::vector< QImage > qimages_1_
Definition: map_merger.h:112
ros::Publisher map_1_to_use_pub_
Definition: map_merger.h:146
void onSlider1Moved(int idx)
Definition: map_merger.cpp:126
std::vector< cv::Mat > cv_maps_2_
Definition: map_merger.h:119
std::vector< QImage > qimages_2_
Definition: map_merger.h:118
std::vector< cv::Mat > cv_maps_1_
Definition: map_merger.h:113
nav_msgs::OccupancyGrid og_map_1_
Definition: map_merger.h:117
nav_msgs::OccupancyGrid og_map_2_
Definition: map_merger.h:123
Ui::MapMergerWidget ui_
Definition: map_merger.h:103
cv::Mat occupancyGridToCvMat(const nav_msgs::OccupancyGrid *map)
Definition: map_merger.cpp:345
ros::NodeHandle my_nh_
Definition: map_merger.h:132
std::vector< nav_msgs::OccupancyGrid > og_maps_1_
Definition: map_merger.h:114
ros::Publisher hector_command_pub_
Definition: map_merger.h:148
void map2Callback(nav_msgs::OccupancyGridConstPtr const &map)
Definition: map_merger.cpp:300
void timerCallback(const ros::TimerEvent &e)
Definition: map_merger.cpp:113
ros::Subscriber map_2_sub_
Definition: map_merger.h:110
void map1Callback(nav_msgs::OccupancyGridConstPtr const &map)
Definition: map_merger.cpp:276
virtual void initPlugin(qt_gui_cpp::PluginContext &context)
Definition: map_merger.cpp:61
image_transport::Subscriber subscriber_
Definition: map_merger.h:107
void onStateUseTransformChanged(int checked)
Definition: map_merger.cpp:150
void onSlider2Moved(int idx)
Definition: map_merger.cpp:136
ros::Subscriber map_1_sub_
Definition: map_merger.h:109
nav_msgs::OccupancyGrid cvMatToOccupancyGrid(const cv::Mat *im)
Definition: map_merger.cpp:324
std::vector< nav_msgs::OccupancyGrid > og_maps_2_
Definition: map_merger.h:120


hector_rqt_plugins
Author(s): Dirk Thomas, Thorsten Graber, Gregor Gebhardt
autogenerated on Mon Jun 10 2019 13:36:34