Restrictions sliders are working
This commit is contained in:
parent
98c2257a00
commit
e250dbc833
@ -16,15 +16,15 @@ class MasterPlugin(Plugin):
|
|||||||
self.setObjectName('Master Plugin - L1.5 safety system')
|
self.setObjectName('Master Plugin - L1.5 safety system')
|
||||||
|
|
||||||
self._widget = MasterWidget(context)
|
self._widget = MasterWidget(context)
|
||||||
|
self._ros_wrapper = ROSWrapper()
|
||||||
self._qt_wrapper = QtWrapper(self._widget)
|
self._qt_wrapper = QtWrapper(self._widget)
|
||||||
|
|
||||||
self._master_info = MasterInfo()
|
self._master_info = MasterInfo()
|
||||||
|
|
||||||
|
|
||||||
# self._qt_wrapper.connect_signals()
|
# self._qt_wrapper.connect_signals()
|
||||||
# self._qt_wrapper.set_sliders_to_initial_values()
|
# self._qt_wrapper.set_sliders_to_initial_values()
|
||||||
|
|
||||||
self._ros_wrapper = ROSWrapper()
|
|
||||||
# Setup functions to get _master_info states from _ros_wrapper
|
# Setup functions to get _master_info states from _ros_wrapper
|
||||||
self._ros_wrapper.setup_get_master_stop_state_function(self._master_info.get_master_stop_state)
|
self._ros_wrapper.setup_get_master_stop_state_function(self._master_info.get_master_stop_state)
|
||||||
self._ros_wrapper.setup_get_restrictions_function(self._master_info.get_restrictions)
|
self._ros_wrapper.setup_get_restrictions_function(self._master_info.get_restrictions)
|
||||||
|
14
safety_master_plugin/scripts/master_restrictions.py
Normal file
14
safety_master_plugin/scripts/master_restrictions.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
class Restrictions:
|
||||||
|
|
||||||
|
def __init__(self,distance,linear_velocity,angular_velocity):
|
||||||
|
self.distance = distance
|
||||||
|
self.linear_velocity = linear_velocity
|
||||||
|
self.angular_velocity = angular_velocity
|
||||||
|
|
||||||
|
|
||||||
|
def update_restrictions(self,restrictions_msg):
|
||||||
|
self.distance = restrictions_msg.distance.data
|
||||||
|
self.linear_velocity = restrictions_msg.linear_velocity.data
|
||||||
|
self.angular_velocity = restrictions_msg.angular_velocity.data
|
@ -9,6 +9,8 @@ import datetime
|
|||||||
from enums.clutch_state import ClutchState as CS
|
from enums.clutch_state import ClutchState as CS
|
||||||
from enums.stop_state import StopState as SS
|
from enums.stop_state import StopState as SS
|
||||||
|
|
||||||
|
from master_restrictions import Restrictions
|
||||||
|
|
||||||
from python_qt_binding.QtGui import QPixmap
|
from python_qt_binding.QtGui import QPixmap
|
||||||
from python_qt_binding.QtGui import QTextCursor
|
from python_qt_binding.QtGui import QTextCursor
|
||||||
from python_qt_binding.QtWidgets import QMessageBox
|
from python_qt_binding.QtWidgets import QMessageBox
|
||||||
@ -20,15 +22,22 @@ class QtWrapper:
|
|||||||
self.widget = widget
|
self.widget = widget
|
||||||
self.displayed_robots_id_list = []
|
self.displayed_robots_id_list = []
|
||||||
|
|
||||||
self.disable_sliders_tracking()
|
|
||||||
# self.set_sliders_to_initial_values()
|
|
||||||
|
|
||||||
self.master_stop_state = None
|
self.master_stop_state = None
|
||||||
|
|
||||||
|
# self.disable_sliders_tracking()
|
||||||
|
|
||||||
# self.ok_pixmap = QPixmap('/home/olek/safetysystemL1.5/src/SafetySystem/safety_user_plugin/ui/Ok.jpg')
|
# self.ok_pixmap = QPixmap('/home/olek/safetysystemL1.5/src/SafetySystem/safety_user_plugin/ui/Ok.jpg')
|
||||||
# self.cancel_pixmap = QPixmap('/home/olek/safetysystemL1.5/src/SafetySystem/safety_user_plugin/ui/Cancel.jpg')
|
# self.cancel_pixmap = QPixmap('/home/olek/safetysystemL1.5/src/SafetySystem/safety_user_plugin/ui/Cancel.jpg')
|
||||||
|
|
||||||
def set_sliders_to_initial_values(self):
|
def set_sliders_to_initial_values(self):
|
||||||
raise NotImplementedError
|
self.widget.distanceSlider.setMaximum(200)
|
||||||
|
self.widget.angularSlider.setMaximum(200)
|
||||||
|
self.widget.linearSlider.setMaximum(200)
|
||||||
|
|
||||||
|
self.widget.distanceSlider.setValue(50)
|
||||||
|
self.widget.angularSlider.setValue(100)
|
||||||
|
self.widget.linearSlider.setValue(100)
|
||||||
|
|
||||||
|
|
||||||
def disable_sliders_tracking(self):
|
def disable_sliders_tracking(self):
|
||||||
self.widget.distanceSlider.setTracking(False)
|
self.widget.distanceSlider.setTracking(False)
|
||||||
@ -43,18 +52,27 @@ class QtWrapper:
|
|||||||
self.restrictions_updated_callback = callback_function
|
self.restrictions_updated_callback = callback_function
|
||||||
|
|
||||||
def handle_restrictions_update(self):
|
def handle_restrictions_update(self):
|
||||||
raise NotImplementedError
|
distance = (float(self.widget.distanceSlider.value())/100)
|
||||||
# restrictions = Restrictions()
|
angular_velocity = (float(self.widget.angularSlider.value())/100)
|
||||||
# Do something
|
linear_velocity = (float(self.widget.linearSlider.value())/100)
|
||||||
# self.restrictions_updated_callback(restrictions)
|
|
||||||
|
self.widget.distanceLabel.setText("{:.2f}".format(distance))
|
||||||
|
self.widget.angularLabel.setText("{:.2f}".format(angular_velocity))
|
||||||
|
self.widget.linearLabel.setText("{:.2f}".format(linear_velocity))
|
||||||
|
|
||||||
|
restrictions = Restrictions(distance,angular_velocity,linear_velocity)
|
||||||
|
|
||||||
|
self.restrictions_updated_callback(restrictions)
|
||||||
|
|
||||||
|
|
||||||
def connect_signals(self):
|
def connect_signals(self):
|
||||||
# self.widget.distanceSlider.valueChanged.connect(self.handle_restrictions_update)
|
self.widget.distanceSlider.valueChanged.connect(self.handle_restrictions_update)
|
||||||
# self.widget.angularSlider.valueChanged.connect(self.handle_restrictions_update)
|
self.widget.angularSlider.valueChanged.connect(self.handle_restrictions_update)
|
||||||
# self.widget.linearSlider.valueChanged.connect(self.handle_restrictions_update)
|
self.widget.linearSlider.valueChanged.connect(self.handle_restrictions_update)
|
||||||
self.widget.masterstopButton.clicked.connect(self.handle_masterstopButton_clicked)
|
self.widget.masterstopButton.clicked.connect(self.handle_masterstopButton_clicked)
|
||||||
|
|
||||||
|
self.set_sliders_to_initial_values()
|
||||||
|
|
||||||
# def handle_emitted_signal(self,method_name):
|
# def handle_emitted_signal(self,method_name):
|
||||||
# exec('self.{0}()'.format(method_name))
|
# exec('self.{0}()'.format(method_name))
|
||||||
|
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
class Restrictions:
|
|
||||||
|
|
||||||
def __init__(self,restrictions_msg):
|
|
||||||
self.distance = restrictions_msg.distance.data
|
|
||||||
self.linear_velocity = restrictions_msg.linear_velocity.data
|
|
||||||
self.angular_velocity = restrictions_msg.angular_velocity.data
|
|
@ -32,7 +32,7 @@ class ROSWrapper:
|
|||||||
self.master_stop_publisher = rospy.Publisher('/RosAria/master_stop',Bool,queue_size = 1)
|
self.master_stop_publisher = rospy.Publisher('/RosAria/master_stop',Bool,queue_size = 1)
|
||||||
self.restrictions_publisher = rospy.Publisher('/RosAria/restrictions',RestrictionsMsg,queue_size = 1)
|
self.restrictions_publisher = rospy.Publisher('/RosAria/restrictions',RestrictionsMsg,queue_size = 1)
|
||||||
|
|
||||||
# self.periodic_timer = rospy.Timer(rospy.Duration(0.5),self.publish_periodic_update)
|
self.periodic_timer = rospy.Timer(rospy.Duration(0.5),self.publish_periodic_update)
|
||||||
|
|
||||||
def add_robot_subscriber(self,robot_id):
|
def add_robot_subscriber(self,robot_id):
|
||||||
if robot_id not in self.robot_info_subscribers:
|
if robot_id not in self.robot_info_subscribers:
|
||||||
|
Loading…
Reference in New Issue
Block a user