13 #include <boost/math/special_functions/sign.hpp> 15 #include <qt5/QtWidgets/QMainWindow> 16 #include <qt5/QtCore/qtimer.h> 17 #include <qt5/QtGui/QKeyEvent> 18 #include <ui_dashboard.h> 20 #include <cv_bridge/cv_bridge.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> 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> 103 "/dasboard/mode_control";
106 "/uc_bridge/set_steering_level_msg";
109 "/uc_bridge/set_motor_level_msg";
128 "/uc_bridge/hall_cnt";
131 "/uc_bridge/hall_dt";
134 "/uc_bridge/hall_dt8";
144 "/uc_bridge/get_firmware_version";
148 "/uc_bridge/get_controller_id";
151 "/uc_bridge/get_session_id";
154 "kinect2/qhd/image_color";
157 "kinect2/sd/image_depth";
160 "/uc_bridge/toggle_kinect";
163 "/uc_bridge/toggle_motor";
166 "/uc_bridge/toggle_us";
169 "/uc_bridge/toggle_daq";
188 "Color Image (1280x720)";
190 "Depth Image (640x480)";
193 using namespace Dash;
230 explicit Dashboard(ros::NodeHandle* nh, QWidget* parent = 0);
241 void keyPressEvent(QKeyEvent* event);
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);
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,
383 int maxForwardSpeed, maxReverseSpeed, speedStep, maxLeftSteering,
395 ros::Publisher modeControl, motorCommand,
397 ros::Subscriber odomSub, imuSub, magneticSub, usrSub, uslSub, usfSub,
398 hallCntSub, hallDtSub, hallDt8Sub, vdBatSub,
vsBatSub, cameraSub,
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();
505 #endif // DASHBOARD_H static const std::string DEFAULT_HALLDT_TOPIC
nav_msgs::Odometry odom_msg
shortcut for Odometry messages
static const std::string DEFAULT_GET_SID_SERVICE
static const std::string DEFAULT_GET_FIRMWARE_SERVICE
static const std::string DEFAULT_GET_CARID_SERVICE
static const std::string DEFAULT_MAGNETIC_TOPIC
sensor_msgs::BatteryState battery_msg
shortcut for battery messages
static const std::string DEFAULT_MOTOR_COMMAND_TOPIC
static const int DEFAULT_MAX_BWD_SPEED
sensor_msgs::Range range_msg
shortcut for Range messages
static const std::string DEFAULT_USF_TOPIC
static const std::string DEFAULT_TOGGLE_DAQ_SERVICE
static const std::string DEFAULT_ODOM_TOPIC
static const std::string DEFAULT_VSBAT_TOPIC
This namespace contains the autogenerated ui header.
static const int DEFAULT_MAX_RIGHT_STEER
static const std::string VIDEO_FEED_MODE_DEPTH
static const std::string DEFAULT_USR_TOPIC
static const std::string DEFAULT_MODE_CONTROL_TOPIC
static const std::string DEFAULT_IMAGE_DEPTH_TOPIC
static const std::string DEFAULT_TOGGLE_MOTOR_SERVICE
std_msgs::String string_msg
shortcut for standard String messages
sensor_msgs::Image image_msg
shortcut for Image messages
static const int DEFAULT_SPEED_STEP
std_msgs::Float64 float64_msg
shortcut for double messages
static const std::string DEFAULT_IMU_TOPIC
static const std::string DEFAULT_VIDEO_FEED_MODE
std_msgs::Int16 int16_msg
shortcut for int16 messages
sensor_msgs::MagneticField magnetic_msg
shortcut for Magnetic Field messages
static const std::string DEFAULT_HALLCNT_TOPIC
The Dashboard class provides functionality for the autogenerated ui header.
static const std::string DEFAULT_HALLDT8_TOPIC
static const std::string DEFAULT_USL_TOPIC
ros::Publisher steeringCommand
This namespace contains all typedefs and constants used in the Dashboard class.
static const std::string VIDEO_FEED_MODE_COLOR
static const std::string DEFAULT_VDBAT_TOPIC
static const std::string DEFAULT_TOGGLE_US_SERVICE
static const std::string DEFAULT_TOGGLE_KINECT_SERVICE
static const std::string DEFAULT_IMAGE_COLOR_TOPIC
static const int DEFAULT_STEER_STEP
static const std::string DEFAULT_STEERING_COMMAND_TOPIC
std_msgs::UInt8 uint8_msg
shortcut for uint8 messages
static const int DEFAULT_MAX_LEFT_STEER
std::string videoFeedMode
static const int DEFAULT_MAX_FWD_SPEED
sensor_msgs::Imu imu_msg
shortcut for IMU messages
int16_msg steeringMessage