ArVizDrawerMapBuilder.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @author Fabian Reister ( fabian dot reister at kit dot edu )
17  * @date 2021
18  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19  * GNU General Public License
20  */
21 
22 #pragma once
23 
24 #include <Eigen/Geometry>
25 
27 
29 
30 namespace cartographer::mapping
31 {
32  class MapBuilderInterface;
33 } // namespace cartographer::mapping
34 
36 {
37 
38  /**
39  * @brief The ArVizDrawerMapBuilder class.
40  *
41  * Draws
42  * - the pose graph
43  * - the occupancy grid map
44  * - the frames (global & map)
45  */
46  class ArVizDrawerMapBuilder // : public armarx::viz::ScopedClient
47  {
48 
49  public:
51  ::cartographer::mapping::MapBuilderInterface& mapBuilder,
52  const Eigen::Isometry3f& world_T_map);
54 
55  // Call this method for periodic map visualization.
56  // Internally, it starts a periodic task for the drawOnce method.
57  void startMappingVisu();
58 
59  // Call this method if you only want to visualize, e.g., a recorded map once
60  void drawOnce();
61 
62  private:
63  void run();
64 
65  armarx::viz::Client& arviz;
66 
67  void drawOptimizedPoseGraph();
68  void drawGridMap();
69  void drawFrames();
70 
71  ::cartographer::mapping::MapBuilderInterface& mapBuilder;
72 
74 
75  const Eigen::Isometry3f world_T_map;
76  };
77 
78 
79 } // namespace armarx::localization_and_mapping::cartographer_adapter
armarx::localization_and_mapping::cartographer_adapter::ArVizDrawerMapBuilder::drawOnce
void drawOnce()
Definition: ArVizDrawerMapBuilder.cpp:137
ScopedClient.h
armarx::localization_and_mapping::cartographer_adapter::ArVizDrawerMapBuilder
The ArVizDrawerMapBuilder class.
Definition: ArVizDrawerMapBuilder.h:46
RunningTask.h
armarx::localization_and_mapping::cartographer_adapter::ArVizDrawerMapBuilder::ArVizDrawerMapBuilder
ArVizDrawerMapBuilder(armarx::viz::Client &arviz, ::cartographer::mapping::MapBuilderInterface &mapBuilder, const Eigen::Isometry3f &world_T_map)
Definition: ArVizDrawerMapBuilder.cpp:99
armarx::localization_and_mapping::cartographer_adapter::ArVizDrawerMapBuilder::startMappingVisu
void startMappingVisu()
Definition: ArVizDrawerMapBuilder.cpp:112
armarx::localization_and_mapping::cartographer_adapter::ArVizDrawerMapBuilder::~ArVizDrawerMapBuilder
~ArVizDrawerMapBuilder()
Definition: ArVizDrawerMapBuilder.cpp:118
cartographer::mapping
Definition: ArVizDrawer.h:40
armarx::localization_and_mapping::cartographer_adapter
This file is part of ArmarX.
Definition: ApproximateTimeQueue.cpp:15
IceUtil::Handle
Definition: forward_declarations.h:30
armarx::viz::Client
Definition: Client.h:117