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
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
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
IceUtil::Handle< RunningTask< T > > pointer_type
Shared pointer type for convenience.
ArVizDrawerMapBuilder(armarx::viz::Client &arviz, ::cartographer::mapping::MapBuilderInterface &mapBuilder, const Eigen::Isometry3f &world_T_map)