LocalizationRemoteGui.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 <mutex>
25
26
#include <Eigen/Geometry>
27
28
#include <
ArmarXCore/core/services/tasks/RunningTask.h
>
29
30
#include "
ArmarXGui/libraries/RemoteGui/Client/Widgets.h
"
31
#include <ArmarXGui/interface/RemoteGuiInterface.h>
32
#include <
ArmarXGui/libraries/RemoteGui/Client/Tab.h
>
33
#include <
ArmarXGui/libraries/RemoteGui/WidgetProxy.h
>
34
35
namespace
armarx::localization_and_mapping::components::cartographer_localization_and_mapping
36
{
37
38
class
LocalizationRemoteGuiCallee
39
{
40
public
:
41
virtual
void
onLocalizationCorrection
(
const
Eigen::Isometry3f& correction) = 0;
42
virtual
void
onApplyLocalizationCorrection
() = 0;
43
44
virtual
~LocalizationRemoteGuiCallee
() =
default
;
45
};
46
47
class
LocalizationRemoteGui
48
{
49
public
:
50
LocalizationRemoteGui
(
const
RemoteGuiInterfacePrx& remoteGui,
51
LocalizationRemoteGuiCallee
& callee);
52
53
~LocalizationRemoteGui
();
54
55
void
shutdown
();
56
57
void
enable
();
58
void
disable
();
59
60
void
reset
();
61
62
private
:
63
std::mutex mtx;
64
65
std::mutex handleEventsMtx;
66
RemoteGuiInterfacePrx remoteGui;
67
68
RunningTask<LocalizationRemoteGui>::pointer_type
runningTask;
69
70
LocalizationRemoteGuiCallee
& callee;
71
72
RemoteGui::TabProxy
tab;
73
74
void
createRemoteGuiTab();
75
76
// thread function
77
void
run();
78
79
void
handleEvents(
RemoteGui::TabProxy
& tab);
80
81
const
std::string REMOTE_GUI_TAB_MAME =
"Cartographer"
;
82
83
struct
RemoteGuiTab :
armarx::RemoteGui::Client::Tab
84
{
85
armarx::RemoteGui::Client::HBoxLayout
hbox;
86
87
struct
88
{
89
armarx::RemoteGui::Client::GroupBox
group;
90
91
armarx::RemoteGui::Client::FloatSpinBox
x
;
92
armarx::RemoteGui::Client::FloatSpinBox
y;
93
armarx::RemoteGui::Client::FloatSlider
yaw;
94
} localizationCorrection;
95
96
struct
97
{
98
armarx::RemoteGui::Client::GroupBox
group;
99
100
armarx::RemoteGui::Client::Button
applyButton;
101
} controlGroup;
102
};
103
104
Eigen::Vector3f localizationCorrection = Eigen::Vector3f::Zero();
105
106
RemoteGuiTab guiTab;
107
};
108
109
}
// namespace armarx::localization_and_mapping::components::cartographer_localization_and_mapping
Widgets.h
RunningTask.h
Tab.h
WidgetProxy.h
armarx::RemoteGui::TabProxy
Definition
WidgetProxy.h:18
armarx::RunningTask::pointer_type
IceUtil::Handle< RunningTask< T > > pointer_type
Shared pointer type for convenience.
Definition
RunningTask.h:174
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGuiCallee
Definition
LocalizationRemoteGui.h:39
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGuiCallee::onLocalizationCorrection
virtual void onLocalizationCorrection(const Eigen::Isometry3f &correction)=0
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGuiCallee::onApplyLocalizationCorrection
virtual void onApplyLocalizationCorrection()=0
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGuiCallee::~LocalizationRemoteGuiCallee
virtual ~LocalizationRemoteGuiCallee()=default
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGui::enable
void enable()
Definition
LocalizationRemoteGui.cpp:198
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGui::shutdown
void shutdown()
Definition
LocalizationRemoteGui.cpp:184
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGui::disable
void disable()
Definition
LocalizationRemoteGui.cpp:207
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGui::reset
void reset()
Definition
LocalizationRemoteGui.cpp:221
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGui::~LocalizationRemoteGui
~LocalizationRemoteGui()
Definition
LocalizationRemoteGui.cpp:33
armarx::localization_and_mapping::components::cartographer_localization_and_mapping::LocalizationRemoteGui::LocalizationRemoteGui
LocalizationRemoteGui(const RemoteGuiInterfacePrx &remoteGui, LocalizationRemoteGuiCallee &callee)
Definition
LocalizationRemoteGui.cpp:20
armarx::localization_and_mapping::components::cartographer_localization_and_mapping
Definition
Component.cpp:110
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition
ArmarXTimeserver.cpp:28
armarx::RemoteGui::Client::Button
Definition
Widgets.h:121
armarx::RemoteGui::Client::FloatSlider
Definition
Widgets.h:108
armarx::RemoteGui::Client::FloatSpinBox
Definition
Widgets.h:94
armarx::RemoteGui::Client::GroupBox
Definition
Widgets.h:194
armarx::RemoteGui::Client::HBoxLayout
Definition
Widgets.h:161
armarx::RemoteGui::Client::Tab
Definition
Tab.h:16
armarx
localization_and_mapping
components
cartographer_mapping_and_localization
LocalizationRemoteGui.h
Generated by
1.13.2