13 from python_qt_binding.QtCore
import Signal, Slot, pyqtSlot
15 from python_qt_binding.QtGui
import QFrame, QVBoxLayout
17 from python_qt_binding.QtWidgets
import QFrame, QVBoxLayout
21 roslib.load_manifest(
'kobuki_qtestsuite')
24 from kobuki_testsuite
import ScanToAngle, DriftEstimation
28 import detail.common_rc
30 from detail.gyro_drift_frame_ui
import Ui_gyro_drift_frame
39 super(GyroDriftFrame, self).
__init__(parent)
40 self.
_ui = Ui_gyro_drift_frame()
53 self._ui.setupUi(self)
55 self._ui.start_button.setEnabled(
True)
56 self._ui.stop_button.setEnabled(
False)
60 Used to terminate the plugin 62 rospy.loginfo(
"Kobuki TestSuite: gyro drift shutdown")
71 Pause plots, more importantly, pause greedy plot rendering 74 self._plot_widget.enable_timer(
False)
76 self._plot_widget_live.enable_timer(
False)
80 This gets called when the frame goes out of focus (tab switch). 81 Disable everything to avoid running N tabs in parallel when in 82 reality we are only running one. 92 Restore the frame after a hibernate. 95 self._plot_widget.setWindowTitle(
"Error")
98 self._plot_widget.data_plot.dynamic_range =
True 100 self._plot_widget_live.setWindowTitle(
"Live Graphs")
109 self._ui.start_button.setEnabled(
False)
110 self._ui.stop_button.setEnabled(
True)
115 self._motion.init(self._ui.angular_speed_spinbox.value())
117 self._plot_widget._start_time = rospy.get_time()
118 self._plot_widget.enable_timer(
True)
131 self._motion_thread.start()
140 self._scan_to_angle.shutdown()
145 self._motion_thread.wait()
148 self._motion.shutdown()
150 self._ui.start_button.setEnabled(
True)
151 self._ui.stop_button.setEnabled(
False)
156 self._motion.init(self._ui.angular_speed_spinbox.value())
def on_stop_button_clicked(self)
_gyro_scan_angle_topic_name
def _pause_plots(self)
Widget Management.
_laser_scan_angle_topic_name
_error_scan_angle_topic_name
def __init__(self, parent=None)
def on_start_button_clicked(self)
Qt Callbacks.
def on_angular_speed_spinbox_valueChanged(self, value)