ugv_nav4d
PlannerGui.h
Go to the documentation of this file.
1 #pragma once
2 #include <QObject>
3 #include <QWidget>
4 
5 #ifndef Q_MOC_RUN
6 #include <vizkit3d/SubTrajectoryVisualization.hpp>
7 #include <vizkit3d/MLSMapVisualization.hpp>
8 #include <vizkit3d/TraversabilityMap3dVisualization.hpp>
9 #include <vizkit3d/GridVisualization.hpp>
10 #include <vizkit3d/SbplSplineVisualization.hpp>
11 #include <vizkit3d/RigidBodyStateVisualization.hpp>
12 #include <maps/grid/MLSMap.hpp>
13 #include <base/Eigen.hpp>
14 #include <ugv_nav4d/Planner.hpp>
15 #include <traversability_generator3d/TraversabilityConfig.hpp>
16 #include <trajectory_follower/SubTrajectory.hpp>
17 #endif
18 
19 class QDoubleSpinBox;
20 class QSpinBox;
21 class QSlider;
22 class QPushButton;
23 class QComboBox;
24 class QProgressBar;
25 
26 namespace vizkit3d {
27  class Vizkit3DWidget;
28 }
29 
30 class PlannerGui : public QObject
31 {
32  Q_OBJECT;
33 
34  void setupPlanner(int argc, char** argv);
35  void setupUI();
36 
37 public:
38  PlannerGui(int argc, char** argv);
39  PlannerGui(const std::string &dumpName);
40 
41  void show();
42 public slots:
44  void picked(float x, float y,float z, int buttonMask, int modifierMask);
45 
46  //display the planner results
47  void plannerIsDone();
48 
50  void plan(const base::Pose& start, const base::Pose& goal);
51 
52 signals:
53  //is emitted if the planner thread is done
54  void plannerDone();
55 
56 private slots:
57  void maxSlopeEditingFinished();
58  void inclineLimittingLimitSpinBoxEditingFinished();
59  void inclineLimittingMinSlopeSpinBoxEditingFinished();
60  void slopeMetricScaleSpinBoxEditingFinished();
61  void startOrientationChanged(int newValue);
62  void goalOrientationChanged(int newValue);
63  void timeEditingFinished();
64  void replanButtonReleased();
65  void dumpPressed();
66  void slopeMetricComboBoxIndexChanged(int index);
67  void numThreadsValueChanged(int newValue);
68  void obstacleDistanceSpinBoxEditingFinished();
69  void obstacleFactorSpinBoxEditingFinished();
70 
71 private:
72  void loadMls();
73  void loadMls(const std::string& path);
74  void startPlanThread();
75 
76 private:
77  vizkit3d::Vizkit3DWidget* widget;
78  QDoubleSpinBox* maxSlopeSpinBox;
79  QDoubleSpinBox* slopeMetricScaleSpinBox;
80  QDoubleSpinBox* time;
81  QDoubleSpinBox* inclineLimittingMinSlopeSpinBox;
82  QDoubleSpinBox* inclineLimittingLimitSpinBox;
83  QSlider* startOrientatationSlider;
84  QSlider* goalOrientationSlider;
85  QDoubleSpinBox* obstacleDistanceSpinBox;
86  QDoubleSpinBox* obstacleFactorSpinBox;
87  QComboBox* slopeMetricComboBox;
88  QComboBox* heuristicComboBox;
89  QSpinBox* numThreadsSpinBox;
90  QProgressBar* bar;
91  QWidget window;
92  vizkit3d::SbplSplineVisualization splineViz;
93  vizkit3d::SubTrajectoryVisualization trajViz;
94  vizkit3d::SubTrajectoryVisualization trajViz2;
95  vizkit3d::MLSMapVisualization mlsViz;
96  vizkit3d::TraversabilityMap3dVisualization trav3dViz;
97  vizkit3d::TraversabilityMap3dVisualization obstacleMapViz;
98  vizkit3d::RigidBodyStateVisualization startViz;
99  vizkit3d::RigidBodyStateVisualization goalViz;
100  vizkit3d::GridVisualization gridViz;
101  maps::grid::MLSMapSloped mlsMap;
102  base::Pose start;
103  base::Pose goal;
104  bool pickStart = true;
105  bool startPicked = false;
106  bool goalPicked = false;
107  bool threadRunning = false;
108  sbpl_spline_primitives::SplinePrimitivesConfig splineConfig;
109  ugv_nav4d::Mobility mobilityConfig;
110  traversability_generator3d::TraversabilityConfig travConfig;
111  ugv_nav4d::PlannerConfig plannerConfig;
112  std::shared_ptr<ugv_nav4d::Planner> planner; //is pointer cause of lazy init
113  std::vector<trajectory_follower::SubTrajectory> path;
114  std::vector<trajectory_follower::SubTrajectory> beautifiedPath;
115 
116 };
Definition: PlannerGui.h:31
void show()
Definition: PlannerGui.cpp:488
PlannerGui(int argc, char **argv)
Definition: PlannerGui.cpp:54
void plannerDone()
void plannerIsDone()
Definition: PlannerGui.cpp:593
void plan(const base::Pose &start, const base::Pose &goal)
Definition: PlannerGui.cpp:631
void picked(float x, float y, float z, int buttonMask, int modifierMask)
Definition: PlannerGui.cpp:446
Definition: PlannerGui.h:26
Definition: Mobility.hpp:12
Definition: PlannerConfig.hpp:8