dashboard.h
Go to the documentation of this file.
1 
7 #ifndef DASHBOARD_H
8 #define DASHBOARD_H
9 
10 #include <math.h>
11 #include <string>
12 #include <sstream>
13 #include <boost/math/special_functions/sign.hpp>
14 
15 #include <qt5/QtWidgets/QMainWindow>
16 #include <qt5/QtCore/qtimer.h>
17 #include <qt5/QtGui/QKeyEvent>
18 #include <ui_dashboard.h>
19 
20 #include <cv_bridge/cv_bridge.h>
21 
22 #include <ros/ros.h>
23 #include <tf/tf.h>
24 #include <std_msgs/String.h>
25 #include <std_msgs/UInt8.h>
26 #include <std_msgs/Float64.h>
27 #include <std_msgs/Int16.h>
28 #include <sensor_msgs/Image.h>
29 #include <sensor_msgs/Imu.h>
30 #include <sensor_msgs/BatteryState.h>
31 #include <sensor_msgs/MagneticField.h>
32 #include <sensor_msgs/Range.h>
33 #include <nav_msgs/Odometry.h>
34 
35 #include <pses_ucbridge/GetFirmwareVersion.h>
36 #include <pses_ucbridge/GetControllerID.h>
37 #include <pses_ucbridge/GetSessionID.h>
38 #include <pses_ucbridge/ToggleKinect.h>
39 #include <pses_ucbridge/ToggleMotor.h>
40 #include <pses_ucbridge/ToggleUS.h>
41 #include <pses_ucbridge/ToggleDAQ.h>
42 
49 namespace Dash
50 {
55 typedef std_msgs::String string_msg;
60 typedef sensor_msgs::Image image_msg;
65 typedef sensor_msgs::Imu imu_msg;
70 typedef sensor_msgs::BatteryState battery_msg;
75 typedef sensor_msgs::MagneticField magnetic_msg;
80 typedef sensor_msgs::Range range_msg;
85 typedef std_msgs::Int16 int16_msg;
90 typedef std_msgs::Float64 float64_msg;
95 typedef std_msgs::UInt8 uint8_msg;
100 typedef nav_msgs::Odometry odom_msg;
101 
102 static const std::string DEFAULT_MODE_CONTROL_TOPIC =
103  "/dasboard/mode_control";
105 static const std::string DEFAULT_STEERING_COMMAND_TOPIC =
106  "/uc_bridge/set_steering_level_msg";
108 static const std::string DEFAULT_MOTOR_COMMAND_TOPIC =
109  "/uc_bridge/set_motor_level_msg";
111 static const std::string DEFAULT_IMU_TOPIC =
112  "/uc_bridge/imu";
114 static const std::string DEFAULT_MAGNETIC_TOPIC =
115  "/uc_bridge/mag";
118 static const std::string DEFAULT_USR_TOPIC =
119  "/uc_bridge/usr";
121 static const std::string DEFAULT_USF_TOPIC =
122  "/uc_bridge/usf";
124 static const std::string DEFAULT_USL_TOPIC =
125  "/uc_bridge/usl";
127 static const std::string DEFAULT_HALLCNT_TOPIC =
128  "/uc_bridge/hall_cnt";
130 static const std::string DEFAULT_HALLDT_TOPIC =
131  "/uc_bridge/hall_dt";
133 static const std::string DEFAULT_HALLDT8_TOPIC =
134  "/uc_bridge/hall_dt8";
136 static const std::string DEFAULT_VDBAT_TOPIC = "/uc_bridge/vdbat";
138 static const std::string DEFAULT_VSBAT_TOPIC =
139  "/uc_bridge/vsbat";
141 static const std::string DEFAULT_ODOM_TOPIC =
142  "/odom";
143 static const std::string DEFAULT_GET_FIRMWARE_SERVICE =
144  "/uc_bridge/get_firmware_version";
147 static const std::string DEFAULT_GET_CARID_SERVICE =
148  "/uc_bridge/get_controller_id";
150 static const std::string DEFAULT_GET_SID_SERVICE =
151  "/uc_bridge/get_session_id";
153 static const std::string DEFAULT_IMAGE_COLOR_TOPIC =
154  "kinect2/qhd/image_color";
156 static const std::string DEFAULT_IMAGE_DEPTH_TOPIC =
157  "kinect2/sd/image_depth";
159 static const std::string DEFAULT_TOGGLE_KINECT_SERVICE =
160  "/uc_bridge/toggle_kinect";
162 static const std::string DEFAULT_TOGGLE_MOTOR_SERVICE =
163  "/uc_bridge/toggle_motor";
165 static const std::string DEFAULT_TOGGLE_US_SERVICE =
166  "/uc_bridge/toggle_us";
168 static const std::string DEFAULT_TOGGLE_DAQ_SERVICE =
169  "/uc_bridge/toggle_daq";
170 static const std::string DEFAULT_VIDEO_FEED_MODE =
171  "Off";
172 static const int DEFAULT_MAX_FWD_SPEED =
173  1000;
174 static const int DEFAULT_MAX_BWD_SPEED =
175  -500;
176 static const int DEFAULT_SPEED_STEP = 50;
180 static const int DEFAULT_MAX_LEFT_STEER =
181  -1000;
182 static const int DEFAULT_MAX_RIGHT_STEER =
183  1000;
184 static const int DEFAULT_STEER_STEP = 100;
187 static const std::string VIDEO_FEED_MODE_COLOR =
188  "Color Image (1280x720)";
189 static const std::string VIDEO_FEED_MODE_DEPTH =
190  "Depth Image (640x480)";
191 }
192 
193 using namespace Dash;
194 
200 namespace Ui
201 {
202 class Dashboard;
203 }
204 
218 class Dashboard : public QMainWindow
219 {
220  Q_OBJECT
221 
222 public:
230  explicit Dashboard(ros::NodeHandle* nh, QWidget* parent = 0);
234  virtual ~Dashboard();
241  void keyPressEvent(QKeyEvent* event);
242 
243 private:
247  void fetchStartupParameters();
252  void reconfigureSpeedSlider();
256  void registerRosTopics();
260  void callGetFirmwareServide();
264  void callGetCarIdServide();
268  void callGetSidServide();
272  void configureVideoFeed();
276  void connectGuiSignals();
282  void initTopicPollingTimer();
289  void imuCallback(const imu_msg::ConstPtr& imu);
296  void magneticCallback(const magnetic_msg::ConstPtr& magnetic);
303  void usrCallback(const range_msg::ConstPtr& usr);
310  void uslCallback(const range_msg::ConstPtr& usl);
317  void usfCallback(const range_msg::ConstPtr& usf);
324  void hallCntCallback(const uint8_msg::ConstPtr& hallCnt);
331  void hallDtCallback(const float64_msg::ConstPtr& hallDt);
338  void hallDt8Callback(const float64_msg::ConstPtr& hallDt8);
345  void driveBatteryCallback(const battery_msg::ConstPtr& vdBat);
352  void systemBatteryCallback(const battery_msg::ConstPtr& vsBat);
359  void cameraCallback(const image_msg::ConstPtr& img);
366  void depthCallback(const image_msg::ConstPtr& img);
373  void odomCallback(const odom_msg::ConstPtr& odom);
374 
375  Ui::Dashboard* ui;
376  ros::NodeHandle* nh;
377  std::string modeControlTopic, steeringCommandTopic, motorCommandTopic,
378  imuTopic, magneticTopic, usrTopic, uslTopic, usfTopic, hallCntTopic,
379  hallDtTopic, hallDt8Topic, vdBatTopic, vsBatTopic, getFirmwareService,
380  getCarIdService, imageColorTopic, imageDepthTopic, toggleKinectService,
381  getSidService, toggleUSService, toggleMotorService, toggleDAQService,
382  odomTopic;
383  int maxForwardSpeed, maxReverseSpeed, speedStep, maxLeftSteering,
384  maxRightSteering, steeringStep;
385  int leftSgn, rightSgn, fwdSgn,
386  bwdSgn;
387  std::string videoFeedMode;
393  double x, y, z;
395  ros::Publisher modeControl, motorCommand,
397  ros::Subscriber odomSub, imuSub, magneticSub, usrSub, uslSub, usfSub,
398  hallCntSub, hallDtSub, hallDt8Sub, vdBatSub, vsBatSub, cameraSub,
399  depthSub;
400  QTimer* timer;
402 private slots:
409  void toggleKinect();
416  void toggleUS();
423  void toggleMotor();
430  void toggleDAQ();
436  void modeSelect(int index);
442  void cameraSelect(int index);
448  void valueChangedSpeed(int value);
454  void valueChangedSteering(int value);
461  void maxSpeedClicked();
468  void minSpeedClicked();
475  void zeroSpeedClicked();
482  void maxRightSteeringClicked();
489  void maxLeftSteeringClicked();
496  void centerSteeringClicked();
502  void pollNodeHandle();
503 };
504 
505 #endif // DASHBOARD_H
static const std::string DEFAULT_HALLDT_TOPIC
Definition: dashboard.h:130
nav_msgs::Odometry odom_msg
shortcut for Odometry messages
Definition: dashboard.h:100
static const std::string DEFAULT_GET_SID_SERVICE
Definition: dashboard.h:150
static const std::string DEFAULT_GET_FIRMWARE_SERVICE
Definition: dashboard.h:143
static const std::string DEFAULT_GET_CARID_SERVICE
Definition: dashboard.h:147
static const std::string DEFAULT_MAGNETIC_TOPIC
Definition: dashboard.h:114
sensor_msgs::BatteryState battery_msg
shortcut for battery messages
Definition: dashboard.h:70
static const std::string DEFAULT_MOTOR_COMMAND_TOPIC
Definition: dashboard.h:108
static const int DEFAULT_MAX_BWD_SPEED
Definition: dashboard.h:174
sensor_msgs::Range range_msg
shortcut for Range messages
Definition: dashboard.h:80
static const std::string DEFAULT_USF_TOPIC
Definition: dashboard.h:121
static const std::string DEFAULT_TOGGLE_DAQ_SERVICE
Definition: dashboard.h:168
static const std::string DEFAULT_ODOM_TOPIC
Definition: dashboard.h:141
static const std::string DEFAULT_VSBAT_TOPIC
Definition: dashboard.h:138
This namespace contains the autogenerated ui header.
static const int DEFAULT_MAX_RIGHT_STEER
Definition: dashboard.h:182
static const std::string VIDEO_FEED_MODE_DEPTH
Definition: dashboard.h:189
static const std::string DEFAULT_USR_TOPIC
Definition: dashboard.h:118
QTimer * timer
Definition: dashboard.h:400
ros::Subscriber vsBatSub
Definition: dashboard.h:397
static const std::string DEFAULT_MODE_CONTROL_TOPIC
Definition: dashboard.h:102
static const std::string DEFAULT_IMAGE_DEPTH_TOPIC
Definition: dashboard.h:156
ros::NodeHandle * nh
Definition: dashboard.h:376
static const std::string DEFAULT_TOGGLE_MOTOR_SERVICE
Definition: dashboard.h:162
std_msgs::String string_msg
shortcut for standard String messages
Definition: dashboard.h:55
sensor_msgs::Image image_msg
shortcut for Image messages
Definition: dashboard.h:60
static const int DEFAULT_SPEED_STEP
Definition: dashboard.h:176
int16_msg motorMessage
Definition: dashboard.h:388
Ui::Dashboard * ui
Definition: dashboard.h:375
std_msgs::Float64 float64_msg
shortcut for double messages
Definition: dashboard.h:90
static const std::string DEFAULT_IMU_TOPIC
Definition: dashboard.h:111
static const std::string DEFAULT_VIDEO_FEED_MODE
Definition: dashboard.h:170
std_msgs::Int16 int16_msg
shortcut for int16 messages
Definition: dashboard.h:85
std::string vsBatTopic
Definition: dashboard.h:377
sensor_msgs::MagneticField magnetic_msg
shortcut for Magnetic Field messages
Definition: dashboard.h:75
static const std::string DEFAULT_HALLCNT_TOPIC
Definition: dashboard.h:127
The Dashboard class provides functionality for the autogenerated ui header.
Definition: dashboard.h:218
static const std::string DEFAULT_HALLDT8_TOPIC
Definition: dashboard.h:133
int rightSgn
Definition: dashboard.h:385
static const std::string DEFAULT_USL_TOPIC
Definition: dashboard.h:124
ros::Publisher steeringCommand
Definition: dashboard.h:395
This namespace contains all typedefs and constants used in the Dashboard class.
static const std::string VIDEO_FEED_MODE_COLOR
Definition: dashboard.h:187
static const std::string DEFAULT_VDBAT_TOPIC
Definition: dashboard.h:136
double z
Definition: dashboard.h:393
static const std::string DEFAULT_TOGGLE_US_SERVICE
Definition: dashboard.h:165
static const std::string DEFAULT_TOGGLE_KINECT_SERVICE
Definition: dashboard.h:159
double distanceTravelled
Definition: dashboard.h:391
static const std::string DEFAULT_IMAGE_COLOR_TOPIC
Definition: dashboard.h:153
static const int DEFAULT_STEER_STEP
Definition: dashboard.h:184
static const std::string DEFAULT_STEERING_COMMAND_TOPIC
Definition: dashboard.h:105
std_msgs::UInt8 uint8_msg
shortcut for uint8 messages
Definition: dashboard.h:95
static const int DEFAULT_MAX_LEFT_STEER
Definition: dashboard.h:180
std::string videoFeedMode
Definition: dashboard.h:387
static const int DEFAULT_MAX_FWD_SPEED
Definition: dashboard.h:172
sensor_msgs::Imu imu_msg
shortcut for IMU messages
Definition: dashboard.h:65
string_msg mode
Definition: dashboard.h:390
int16_msg steeringMessage
Definition: dashboard.h:389
int steeringStep
Definition: dashboard.h:383


pses_dashboard
Author(s): Sebastian Ehmes
autogenerated on Sat Oct 28 2017 14:12:28