-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathmainwindow.h
108 lines (79 loc) · 2.4 KB
/
mainwindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <map>
#include <memory>
#include <QMainWindow>
#include <QKeyEvent>
#include <QtCore>
#include "robot.h"
#include "laserscanner.h"
#include "robotmapper.h"
#include "slam2d.h"
class OSGWidget;
class QTimerEvent;
class QDockWidget;
class LaserScanWidget;
class MapViewer;
class HelperWidget;
namespace Ui
{
class MainWindowForm;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void setVelocityScaleFactor(int new_scale_factor);
public slots:
void on_actionAbout_triggered();
void on_actionExit_triggered();
void on_actionIncrease_Speed_triggered();
void on_actionDecrease_Speed_triggered();
void on_actionReset_Pose_triggered();
void on_actionMapShowHide_triggered();
void on_actionMapReset_Map_triggered();
void on_actionMapSave_Map_triggered();
void on_actionSlamShowHide_triggered();
void on_actionSlamReset_Map_triggered();
void on_actionSlamSave_Map_triggered();
void on_actionShortcuts_triggered();
void keyPressEvent(QKeyEvent *event);
void keyReleaseEvent(QKeyEvent *event);
protected:
Ui::MainWindowForm *main_window_ui_;
OSGWidget *osg_widget_{ nullptr };
QDockWidget *laser_scan_dock_widget_{ nullptr };
LaserScanWidget* laser_scan_widget_{ nullptr };
QDockWidget *map_dock_widget_{ nullptr };
MapViewer* map_view_widget_{ nullptr };
QDockWidget *slam_dock_widget_{ nullptr };
MapViewer* slam_view_widget_{ nullptr };
QDockWidget *helper_dock_widget_{ nullptr };
HelperWidget* helper_widget_{ nullptr };
std::unique_ptr<robo::Robot> robot_{ nullptr };
std::unique_ptr<robo::LaserScanner> lidar_{ nullptr };
void setupLidar();
std::unique_ptr<robo::RobotMapper> robot_mapper_{ nullptr };
robo::Slam2D slammer_;
double robot_vel_std_dev_{ 0.1 };
double robot_omega_std_dev_{ 0.1 };
int velocity_scale_factor_;
const int max_vel_scale_factor_{ 5 };
void incrementVelocityScaleFactor();
void decrementVelocityScaleFactor();
void initKeysPressedMap();
void handlePressedKeys();
std::map<int, bool> keys_pressed_map_;
void timerEvent(QTimerEvent *event);
int dynamics_timer_id_;
const double robot_dynamics_rate_hz_{ 100.0 };
void dynamicsTimerEvent();
int lidar_timer_id_;
const double lidar_rate_hz_{ 5.0 };
void lidarTimerEvent();
void resetMappingMap();
void resetSlamMap();
};
#endif // MAINWINDOW_H