8 from python_qt_binding.QtGui
import QWidget
9 from python_qt_binding
import loadUi
10 from rospy.topics
import Publisher, Subscriber
11 from rospy.timer
import Timer
12 from PyQt4.Qt
import QTimer, QGraphicsScene, QBrush, QImage, QPixmap, QPalette, QColor
13 from std_msgs.msg
import Float64, Bool, Empty
14 from dbw_mkz_msgs.msg
import ThrottleCmd, ThrottleReport, BrakeCmd, BrakeReport, SteeringCmd, SteeringReport, GearCmd, GearReport
16 from dbw_mkz_msgs.msg._Misc1Report
import Misc1Report
17 from dbw_mkz_msgs.msg._TirePressureReport
import TirePressureReport
18 from dbw_mkz_msgs.msg._FuelLevelReport
import FuelLevelReport
19 from sensor_msgs.msg._NavSatFix
import NavSatFix
21 from sensor_msgs.msg._Imu
import Imu
25 package_name =
'dbw_mkz_gui' 26 ui_filename =
'dbw_mkz_gui.ui' 27 gui_object_name =
'MkzGui' 83 self.gear_map.append(
'None')
84 self.gear_map.append(
'Park')
85 self.gear_map.append(
'Reverse')
86 self.gear_map.append(
'Neutral')
87 self.gear_map.append(
'Drive')
88 self.gear_map.append(
'Low')
114 current_time = rospy.Time.now()
122 self._widget.throttle_cmd_lbl.setText(str(self.
throttle_cmd))
123 self._widget.brake_cmd_lbl.setText(str(self.
brake_cmd))
124 self._widget.steering_cmd_lbl.setText(str(self.
steering_cmd))
127 if (current_time - self.
misc_stamp) < rospy.Duration(0.25):
131 self._widget.res_cncl_led.setPalette(self.
red_palette)
136 self._widget.on_off_led.setPalette(self.
red_palette)
141 self._widget.set_inc_led.setPalette(self.
red_palette)
146 self._widget.set_dec_led.setPalette(self.
red_palette)
151 self._widget.gap_inc_led.setPalette(self.
red_palette)
156 self._widget.gap_dec_led.setPalette(self.
red_palette)
161 self._widget.la_on_off_led.setPalette(self.
red_palette)
169 self._widget.la_on_off_led.setPalette(self.
gray_palette)
175 self._widget.throttle_led.setPalette(self.
red_palette)
177 if (current_time - self.
brake_stamp) < rospy.Duration(0.25):
180 self._widget.brake_led.setPalette(self.
red_palette)
185 self._widget.steering_led.setPalette(self.
red_palette)
187 if (current_time - self.
gear_stamp) < rospy.Duration(0.25):
197 self._widget.throttle_driver_led.setPalette(self.
green_palette)
200 self._widget.throttle_flt1_led.setPalette(self.
red_palette)
202 self._widget.throttle_flt1_led.setPalette(self.
green_palette)
205 self._widget.throttle_flt2_led.setPalette(self.
red_palette)
207 self._widget.throttle_flt2_led.setPalette(self.
green_palette)
210 self._widget.throttle_fltcon_led.setPalette(self.
red_palette)
212 self._widget.throttle_fltcon_led.setPalette(self.
green_palette)
214 self._widget.throttle_driver_led.setPalette(self.
gray_palette)
215 self._widget.throttle_flt1_led.setPalette(self.
gray_palette)
216 self._widget.throttle_flt2_led.setPalette(self.
gray_palette)
217 self._widget.throttle_fltcon_led.setPalette(self.
gray_palette)
220 if (current_time - self.
brake_stamp) < rospy.Duration(0.25):
227 self._widget.brake_flt1_led.setPalette(self.
red_palette)
232 self._widget.brake_flt2_led.setPalette(self.
red_palette)
237 self._widget.brake_fltcon_led.setPalette(self.
red_palette)
242 self._widget.brake_fltb_led.setPalette(self.
red_palette)
246 self._widget.brake_driver_led.setPalette(self.
gray_palette)
247 self._widget.brake_flt1_led.setPalette(self.
gray_palette)
248 self._widget.brake_flt2_led.setPalette(self.
gray_palette)
249 self._widget.brake_fltcon_led.setPalette(self.
gray_palette)
250 self._widget.brake_fltb_led.setPalette(self.
gray_palette)
257 self._widget.steering_driver_led.setPalette(self.
green_palette)
260 self._widget.steering_flt1_led.setPalette(self.
red_palette)
262 self._widget.steering_flt1_led.setPalette(self.
green_palette)
265 self._widget.steering_flt2_led.setPalette(self.
red_palette)
267 self._widget.steering_flt2_led.setPalette(self.
green_palette)
270 self._widget.steering_fltcon_led.setPalette(self.
red_palette)
272 self._widget.steering_flt2_led.setPalette(self.
green_palette)
274 self._widget.steering_driver_led.setPalette(self.
gray_palette)
275 self._widget.steering_flt1_led.setPalette(self.
gray_palette)
276 self._widget.steering_flt2_led.setPalette(self.
gray_palette)
277 self._widget.steering_fltcon_led.setPalette(self.
gray_palette)
280 if (current_time - self.
gear_stamp) < rospy.Duration(0.25):
287 self._widget.gear_fltbus_led.setPalette(self.
red_palette)
291 self._widget.gear_driver_led.setPalette(self.
gray_palette)
292 self._widget.gear_fltbus_led.setPalette(self.
gray_palette)
295 self._widget.lat_lbl.setText(str(self.
gps_lat))
296 self._widget.lon_lbl.setText(str(self.
gps_lon))
297 self._widget.speed_lbl.setText(str(self.
speed) +
' m/s')
298 self._widget.fl_pressure_lbl.setText(str(self.
fl_tire))
299 self._widget.fr_pressure_lbl.setText(str(self.
fr_tire))
300 self._widget.rl_pressure_lbl.setText(str(self.
rl_tire))
301 self._widget.rr_pressure_lbl.setText(str(self.
rr_tire))
302 self._widget.yaw_rate_lbl.setText(str(self.
yaw_rate) +
' rad/s')
303 self._widget.roll_rate_lbl.setText(str(self.
roll_rate) +
' rad/s')
304 self._widget.fuel_lbl.setText(str(self.
fuel) +
' %')
345 self._widget.la_on_off_led.setPalette(self.
gray_palette)
351 self.green_palette.setColor(QPalette.Window, QColor(0,255,0))
354 self.red_palette.setColor(QPalette.Window, QColor(255,0,0))
357 self.yellow_palette.setColor(QPalette.Window, QColor(200, 200, 50))
360 self.gray_palette.setColor(QPalette.Window, QColor(80, 80, 80))
363 self._widget.throttle_led.setText(
'')
364 self._widget.throttle_led.setPalette(self.
red_palette)
365 self._widget.brake_led.setText(
'')
366 self._widget.brake_led.setPalette(self.
red_palette)
367 self._widget.steering_led.setText(
'')
368 self._widget.steering_led.setPalette(self.
red_palette)
369 self._widget.gear_led.setText(
'')
373 self._widget.boo_led.setText(
'')
377 self._widget.throttle_driver_led.setText(
'')
378 self._widget.throttle_driver_led.setPalette(self.
gray_palette)
379 self._widget.throttle_flt1_led.setText(
'')
380 self._widget.throttle_flt1_led.setPalette(self.
gray_palette)
381 self._widget.throttle_flt2_led.setText(
'')
382 self._widget.throttle_flt2_led.setPalette(self.
gray_palette)
383 self._widget.throttle_fltcon_led.setText(
'')
384 self._widget.throttle_fltcon_led.setPalette(self.
gray_palette)
386 self._widget.brake_driver_led.setText(
'')
387 self._widget.brake_driver_led.setPalette(self.
gray_palette)
388 self._widget.brake_flt1_led.setText(
'')
389 self._widget.brake_flt1_led.setPalette(self.
gray_palette)
390 self._widget.brake_flt2_led.setText(
'')
391 self._widget.brake_flt2_led.setPalette(self.
gray_palette)
392 self._widget.brake_fltcon_led.setText(
'')
393 self._widget.brake_fltcon_led.setPalette(self.
gray_palette)
394 self._widget.brake_fltb_led.setText(
'')
395 self._widget.brake_fltb_led.setPalette(self.
gray_palette)
397 self._widget.steering_driver_led.setText(
'')
398 self._widget.steering_flt1_led.setText(
'')
399 self._widget.steering_flt2_led.setText(
'')
400 self._widget.steering_fltcon_led.setText(
'')
402 self._widget.gear_driver_led.setText(
'')
403 self._widget.gear_fltbus_led.setText(
'')
406 self._widget.on_off_led.setText(
'')
408 self._widget.res_cncl_led.setText(
'')
410 self._widget.set_inc_led.setText(
'')
412 self._widget.set_dec_led.setText(
'')
414 self._widget.gap_inc_led.setText(
'')
416 self._widget.gap_dec_led.setText(
'')
418 self._widget.la_on_off_led.setText(
'')
419 self._widget.la_on_off_led.setPalette(self.
gray_palette)
425 rospy.Subscriber(
'vehicle/throttle_report', ThrottleReport, self.recvThrottleReport)
426 rospy.Subscriber(
'vehicle/brake_report', BrakeReport, self.recvBrakeReport)
427 rospy.Subscriber(
'vehicle/steering_report', SteeringReport, self.recvSteeringReport)
428 rospy.Subscriber(
'vehicle/gear_report', GearReport, self.recvGearReport)
429 rospy.Subscriber(
'vehicle/misc1_report', Misc1Report, self.recvMisc1Report)
430 rospy.Subscriber(
'vehicle/tire_pressure_report', TirePressureReport, self.recvTirePressure)
431 rospy.Subscriber(
'vehicle/fuel_level_report', FuelLevelReport, self.recvFuelLevel)
432 rospy.Subscriber(
'vehicle/gps/fix', NavSatFix, self.recvGps)
433 rospy.Subscriber(
'vehicle/imu/data_raw', Imu, self.recvImu)
436 self.
yaw_rate = 1e-2 * math.floor(1e2 * msg.angular_velocity.z)
437 self.
roll_rate = 1e-2 * math.floor(1e2 * msg.angular_velocity.x)
440 self.
gps_lat = 1e-6 * math.floor(1e6 * msg.latitude)
441 self.
gps_lon = 1e-6 * math.floor(1e6 * msg.longitude)
446 self.
throttle_cmd = int(math.floor(100 * msg.pedal_cmd))
456 self.
brake_cmd = int(math.floor(100 * msg.pedal_cmd))
467 self.
speed = 0.1 * math.floor(10 * msg.speed)
496 self.fl_tire = msg.front_left
497 self.fr_tire = msg.front_right
498 self.rl_tire = msg.rear_left
499 self.rr_tire = msg.rear_right
502 self.
fuel = 0.1 * math.floor(10 * msg.fuel_level)
505 super(MkzGui, self).
__init__(context)
519 context.add_widget(self.
_widget)
522 update_timer = QTimer(self.
_widget)
524 update_timer.setSingleShot(
False);
def __init__(self, context)
def recvSteeringReport(self, msg)
def recvBrakeReport(self, msg)
def subscribeTopics(self)
def updateGuiCallback(self)
def shutdown_plugin(self)
def recvMisc1Report(self, msg)
def recvFuelLevel(self, msg)
def advertiseTopics(self)
def setupWidget(self, context)
def recvTirePressure(self, msg)
def recvThrottleReport(self, msg)
def recvGearReport(self, msg)