Exemplo n.º 1
0
class NodeMoveToDestinationGUI(NodeGUI):
    def __init__(self):
        super(NodeMoveToDestinationGUI,self).__init__()
        self.robot = NamedComboBox('Robot')
        self.layout_.addWidget(self.robot)

        self.robots_list = get_params(id="robot").data

        self.robot.add_items(self.robots_list)

        self.time = NamedField('Time Limit','0.0')
        self.tolerance = NamedField('Tolerance','0.1')
        self.layout_.addWidget(self.time)
        self.layout_.addWidget(self.tolerance)

    def generate(self,parent=None):

        if len(self.robots_list) < 1:
            return 'ERROR: no robots defined!'
        elif len(self.locations_list) < 1:
            return 'ERROR: no locations defined!'

        robot = self.robots_list[int(self.robot.get())]

        if all([self.name.full(),self.label.full(), self.time.full(), self.tolerance.full()]):
            return NodeMoveToDestination(parent,self.get_name(),self.get_label(),
                    robot,self.time.get(),self.tolerance.get())
        else:
            return 'ERROR: node not properly defined'
Exemplo n.º 2
0
class SaveParameterGUI(NodeGUI):
    def __init__(self):
        super(SaveParameterGUI, self).__init__()
        self.type_ = NamedComboBox('Item Type')
        self.file_ = NamedField('Item Name', '')
        self.layout_.addWidget(self.type_)
        self.layout_.addWidget(self.file_)
        #self.param_ = NamedComboBox('Parameter')
        self.param_ = NamedField('ROS Parameter', '')
        self.layout_.addWidget(self.param_)

        type_list = getList('')
        self.type_.add_items(type_list.entries)

        #self.param_.add_items(rosparam.get_params(''))

    def generate(self):

        if len(self.type_list.entries) > 0:
            tname = self.type_list.entries[int(self.type_.get())]
        else:
            return 'ERROR: no types found!'

        if all([self.name.full(), self.label.full()], self.file_.full()):
            return SaveParameter(self.get_name(), self.get_label(), tname,
                                 self.file_.get(), self.param_.get())
        else:
            return 'ERROR: node not properly defined'
Exemplo n.º 3
0
class NodeActionUpdatePlanningSceneGUI(NodeGUI):
    def __init__(self):
        super(NodeActionUpdatePlanningSceneGUI, self).__init__(color='purple')
        self.title.setText('UPDATE PLANNING SCENE')
        self.title.setStyleSheet('background-color:' +
                                 colors['purple'].normal + ';color:#ffffff')
        self.wait_finish = NamedField('Wait', '', 'purple')
        self.wait_finish.set_field('1')
        self.note = NoteField('(1 = true, 0 = false)', 'purple')
        self.layout_.addWidget(self.wait_finish)
        self.layout_.addWidget(self.note)

    def save_data(self, data):
        return data

    def load_data(self, data):
        pass

    def generate(self):
        if all([self.name.full(), self.wait_finish.full()]):
            return NodeActionUpdatePlanningScene(self.get_name(),
                                                 self.get_label(),
                                                 int(self.wait_finish.get()))
        else:
            rospy.logerr(
                'check that all menu items are properly selected for this node'
            )
            return 'ERROR: check that all menu items are properly selected for this node'
 def __init__(self):
     super(NodeDecoratorWaitForSuccessGUI, self).__init__()
     self.title.setText('WAIT FOR SUCCESS LOGIC')
     self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
     self.timeout = NamedField('Timeout', self.get_label())
     self.timeout.set_field('-1')
     self.layout_.addWidget(self.timeout)
 def __init__(self):
     super(NodeDecoratorRepeatGUI, self).__init__()
     self.title.setText('REPEAT LOGIC')
     self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
     self.repeat = NamedField('Repeat (-1) for infinity', self.get_label())
     self.repeat.set_field('-1')
     self.layout_.addWidget(self.repeat)
class NodeActionGripperCloseGUI(NodeGUI):
    def __init__(self):
        super(NodeActionGripperCloseGUI, self).__init__(color='green')
        self.title.setText('GRIPPER CLOSE ACTION')
        self.title.setStyleSheet('background-color:' + colors['green'].normal +
                                 ';color:#ffffff')
        self.wait_finish = NamedField('Wait', '', 'green')
        self.wait_finish.set_field('1')
        self.note = NoteField('(1 = true, 0 = false)', 'green')
        self.layout_.addWidget(self.wait_finish)
        self.layout_.addWidget(self.note)

    def save_data(self, data):
        return data

    def load_data(self, data):
        pass

    def generate(self):
        if all([self.name.full(), self.wait_finish.full()]):
            return NodeActionGripper(self.get_name(), self.get_label(), False,
                                     int(self.wait_finish.get()))
        else:
            rospy.logerr(
                'check that all menu items are properly selected for this node'
            )
            return 'ERROR: check that all menu items are properly selected for this node'
Exemplo n.º 7
0
class SaveParameterGUI(NodeGUI):
    def __init__(self):
        super(SaveParameterGUI,self).__init__()
        self.type_ = NamedComboBox('Item Type')
        self.file_ = NamedField('Item Name','')
        self.layout_.addWidget(self.type_)
        self.layout_.addWidget(self.file_)
        #self.param_ = NamedComboBox('Parameter')
        self.param_ = NamedField('ROS Parameter','')
        self.layout_.addWidget(self.param_)

        type_list = getList('')
        self.type_.add_items(type_list.entries)

        #self.param_.add_items(rosparam.get_params(''))

    def generate(self):

        if len(self.type_list.entries) > 0:
            tname = self.type_list.entries[int(self.type_.get())]
        else:
            return 'ERROR: no types found!'

        if all([self.name.full(),self.label.full()],self.file_.full()):
            return SaveParameter(self.get_name(),self.get_label(),
                    tname, self.file_.get(), self.param_.get())
        else:
            return 'ERROR: node not properly defined'
Exemplo n.º 8
0
 def __init__(self):
     super(NodeActionDetectObjectsGUI,self).__init__(color='purple')
     self.title.setText('DETECT OBJECTS')
     self.title.setStyleSheet('background-color:'+colors['purple'].normal+';color:#ffffff')
     self.wait_finish = NamedField('Wait', '','purple')
     self.wait_finish.set_field('1')
     self.note = NoteField('(1 = true, 0 = false)','purple')
     self.layout_.addWidget(self.wait_finish)
     self.layout_.addWidget(self.note)
Exemplo n.º 9
0
 def __init__(self):
     super(NodeActionSGripperWideModeGUI,self).__init__(color='green')
     self.title.setText('GRIPPER CLOSE ACTION')
     self.title.setStyleSheet('background-color:'+colors['green'].normal+';color:#ffffff')
     self.wait_finish = NamedField('Wait', '','green')
     self.wait_finish.set_field('1')
     self.note = NoteField('(1 = true, 0 = false)','green')
     self.layout_.addWidget(self.wait_finish)
     self.layout_.addWidget(self.note)
Exemplo n.º 10
0
    def __init__(self, color='blue'):
        super(NodeGUI, self).__init__()
        rospack = rospkg.RosPack()
        ui_path = rospack.get_path('instructor_core') + '/ui/node_gui.ui'
        uic.loadUi(ui_path, self)

        self.name = NamedField('Name', '', color)
        self.label = NamedField('Label', '', color)
        self.name_layout.addWidget(self.name)
        self.name_layout.addWidget(self.label)
Exemplo n.º 11
0
 def __init__(self):
     super(NodeActionRecordDataGUI, self).__init__(color='green')
     self.title.setText('RECORD DATA')
     self.title.setStyleSheet('background-color:' + colors['green'].normal +
                              ';color:#ffffff')
     self.wait_finish = NamedField('Wait', '', 'green')
     self.wait_finish.set_field('1')
     self.note = NoteField('(1 = true, 0 = false)', 'green')
     self.layout_.addWidget(self.wait_finish)
     self.layout_.addWidget(self.note)
Exemplo n.º 12
0
 def __init__(self):
     super(NodeActionUpdatePlanningSceneGUI, self).__init__(color='purple')
     self.title.setText('UPDATE PLANNING SCENE')
     self.title.setStyleSheet('background-color:' +
                              colors['purple'].normal + ';color:#ffffff')
     self.wait_finish = NamedField('Wait', '', 'purple')
     self.wait_finish.set_field('1')
     self.note = NoteField('(1 = true, 0 = false)', 'purple')
     self.layout_.addWidget(self.wait_finish)
     self.layout_.addWidget(self.note)
Exemplo n.º 13
0
 def __init__(self):
     super(NodePublishMessageGUI, self).__init__(color='purple')
     self.title.setText('Publish Message')
     self.title.setStyleSheet('background-color:' +
                              colors['purple'].normal + ';color:#ffffff')
     self.wait_finish = NamedField('Wait', '', 'purple')
     self.wait_finish.set_field('1')
     self.note = NoteField('(1 = true, 0 = false)', 'purple')
     self.layout_.addWidget(self.wait_finish)
     self.layout_.addWidget(self.note)
Exemplo n.º 14
0
    def __init__(self,color='blue'):
        super(NodeGUI,self).__init__()
        rospack = rospkg.RosPack()
        ui_path = rospack.get_path('instructor_core') + '/ui/node_gui.ui'
        uic.loadUi(ui_path,self)

        self.name = NamedField('Name','',color)
        self.label = NamedField('Label','',color)
        self.name_layout.addWidget(self.name)
        self.name_layout.addWidget(self.label)
Exemplo n.º 15
0
    def __init__(self):
        super(SaveParameterGUI, self).__init__()
        self.type_ = NamedComboBox('Item Type')
        self.file_ = NamedField('Item Name', '')
        self.layout_.addWidget(self.type_)
        self.layout_.addWidget(self.file_)
        #self.param_ = NamedComboBox('Parameter')
        self.param_ = NamedField('ROS Parameter', '')
        self.layout_.addWidget(self.param_)

        type_list = getList('')
        self.type_.add_items(type_list.entries)
Exemplo n.º 16
0
 def __init__(self):
     super(LoadEntryFromFileGUI, self).__init__()
     self.type_ = NamedComboBox('Item Type')
     self.file_ = NamedComboBox('Item Name')
     self.entry_ = NamedField('Item Entry', '')
     self.layout_.addWidget(self.type_)
     self.layout_.addWidget(self.file_)
     self.layout_.addWidget(self.entry_)
     self.type_list = getList('')
     self.type_.add_items(self.type_list.entries)
     self.type_.interface().currentIndexChanged.connect(self.selected)
     self.file_list = []
Exemplo n.º 17
0
    def __init__(self):
        super(SaveParameterGUI,self).__init__()
        self.type_ = NamedComboBox('Item Type')
        self.file_ = NamedField('Item Name','')
        self.layout_.addWidget(self.type_)
        self.layout_.addWidget(self.file_)
        #self.param_ = NamedComboBox('Parameter')
        self.param_ = NamedField('ROS Parameter','')
        self.layout_.addWidget(self.param_)

        type_list = getList('')
        self.type_.add_items(type_list.entries)
Exemplo n.º 18
0
    def __init__(self):
        super(NodeMoveToDestinationGUI,self).__init__()
        self.robot = NamedComboBox('Robot')
        self.layout_.addWidget(self.robot)

        self.robots_list = get_params(id="robot").data

        self.robot.add_items(self.robots_list)

        self.time = NamedField('Time Limit','0.0')
        self.tolerance = NamedField('Tolerance','0.1')
        self.layout_.addWidget(self.time)
        self.layout_.addWidget(self.tolerance)
Exemplo n.º 19
0
class NodeDecoratorResetGUI(NodeGUI):
    def __init__(self):
        super(NodeDecoratorResetGUI,self).__init__()
        self.title.setText('RESET LOGIC')
        self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
        self.reset = NamedField('Reset (-1) for infinity',self.get_label())
        self.layout_.addWidget(self.reset)

    def generate(self):
        if all([self.name.full(),self.reset.full()]):
            return beetree.NodeDecoratorReset(self.get_name(),self.get_label(),int(self.reset.get()))
        else:
            return 'ERROR: node not properly defined'
Exemplo n.º 20
0
class NodeDecoratorWaitForSuccessGUI(NodeGUI):
    def __init__(self):
        super(NodeDecoratorWaitForSuccessGUI,self).__init__()
        self.title.setText('WAIT FOR SUCCESS LOGIC')
        self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
        self.timeout = NamedField('Timeout',self.get_label())
        self.timeout.set_field('-1')
        self.layout_.addWidget(self.timeout)

    def generate(self):
        if all([self.name.full(),self.timeout.full()]):
            return beetree.NodeDecoratorWaitForSuccess(self.get_name(),self.get_label(),int(self.timeout.get()))
        else:
            return 'ERROR: node not properly defined'
Exemplo n.º 21
0
class NodeGUI(QWidget):
    def __init__(self,color='blue'):
        super(NodeGUI,self).__init__()
        rospack = rospkg.RosPack()
        ui_path = rospack.get_path('instructor_core') + '/ui/node_gui.ui'
        uic.loadUi(ui_path,self)

        self.name = NamedField('Name','',color)
        self.label = NamedField('Label','',color)
        self.name_layout.addWidget(self.name)
        self.name_layout.addWidget(self.label)
    def reset(self):
        pass
    def generate(self):
        pass
    def get_name(self):
        return self.name.get()
    def get_label(self):
        return self.label.get()
    def save(self):
        data = {}
        for name, obj in inspect.getmembers(self):
            if isinstance(obj, NamedField):
                data[name] = {'type':'NamedField','field_name':obj.get_name(), 'value':obj.get()}
            if isinstance(obj, NamedComboBox):
                data[name] = {'type':'NamedComboBox','field_name':obj.get_name(), 'current_value':obj.get(),'index':obj.get_index(), 'values':obj.get_values()}
                pass
        data = self.save_data(data)
        return data
    def save_data(self,data):
        raise NotImplementedError('save_data is not implemented in base class NodeGUI')
    def load(self,data):
        for name, obj in inspect.getmembers(self):
            if isinstance(obj, NamedField):
                datum = data[name]
                obj.set_name(datum['field_name'])
                obj.set_field(datum['value'])
            if isinstance(obj, NamedComboBox):
                datum = data[name]
                obj.set_name(datum['field_name'])
                obj.add_items(datum['values'])
                obj.set_index(datum['index'])
                obj.set_value(datum['current_value'])
        self.load_data(data)

    def load_data(self,data):
        raise NotImplementedError('load_data is not implemented in base class NodeGUI')
        # raise NotImplementedError('load_data is not implemented in base class NodeGUI')
    def refresh_data(self):
        pass
Exemplo n.º 22
0
class NodeGUI(QWidget):
    def __init__(self,color='blue'):
        super(NodeGUI,self).__init__()
        rospack = rospkg.RosPack()
        ui_path = rospack.get_path('instructor_core') + '/ui/node_gui.ui'
        uic.loadUi(ui_path,self)

        self.name = NamedField('Name','',color)
        self.label = NamedField('Label','',color)
        self.name_layout.addWidget(self.name)
        self.name_layout.addWidget(self.label)
    def reset(self):
        pass
    def generate(self):
        pass
    def get_name(self):
        return self.name.get()
    def get_label(self):
        return self.label.get()
    def save(self):
        data = {}
        for name, obj in inspect.getmembers(self):
            if isinstance(obj, NamedField):
                data[name] = {'type':'NamedField','field_name':obj.get_name(), 'value':obj.get()}
            if isinstance(obj, NamedComboBox):
                data[name] = {'type':'NamedComboBox','field_name':obj.get_name(), 'current_value':obj.get(),'index':obj.get_index(), 'values':obj.get_values()}
                pass
        data = self.save_data(data)
        return data
    def save_data(self,data):
        return data
    def load(self,data):
        for name, obj in inspect.getmembers(self):
            if isinstance(obj, NamedField):
                datum = data[name]
                obj.set_name(datum['field_name'])
                obj.set_field(datum['value'])
            if isinstance(obj, NamedComboBox):
                datum = data[name]
                obj.set_name(datum['field_name'])
                obj.add_items(datum['values'])
                obj.set_index(datum['index'])
                obj.set_value(datum['current_value'])
        self.load_data(data)
    def load_data(self,data):
        pass
    def refresh_data(self):
        pass
Exemplo n.º 23
0
 def __init__(self):
     super(NodeDecoratorRepeatGUI,self).__init__()
     self.title.setText('REPEAT LOGIC')
     self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
     self.repeat = NamedField('Repeat (-1) for infinity',self.get_label())
     self.repeat.set_field('-1')
     self.layout_.addWidget(self.repeat)
    def __init__(self):
        super(NodePublishMessageGUI,self).__init__(color='purple')
        self.title.setText('Publish Message')
        self.title.setStyleSheet('background-color:'+colors['purple'].normal+';color:#ffffff')
        self.wait_finish = NamedField('Wait', '','purple')
        self.wait_finish.set_field('1')

        self.message_contents = NamedField('message','', 'purple')
        self.message_topic = NamedField('Rostopic','', 'purple')
        self.message_topic.set_field('info')

        self.note = NoteField('(1 = true, 0 = false)\nrostopic has prefix: /costar/messages/','purple')
        self.layout_.addWidget(self.message_contents)
        self.layout_.addWidget(self.message_topic)
        self.layout_.addWidget(self.wait_finish)
        self.layout_.addWidget(self.note)
class NodeDecoratorRepeatGUI(NodeGUI):
    def __init__(self):
        super(NodeDecoratorRepeatGUI, self).__init__()
        self.title.setText('REPEAT LOGIC')
        self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
        self.repeat = NamedField('Repeat (-1) for infinity', self.get_label())
        self.repeat.set_field('-1')
        self.layout_.addWidget(self.repeat)

    def generate(self):
        if all([self.name.full(), self.repeat.full()]):
            return beetree.NodeDecoratorRepeat(self.get_name(),
                                               self.get_label(),
                                               int(self.repeat.get()))
        else:
            return 'ERROR: check that all menu items are properly selected for this node'
Exemplo n.º 26
0
class NodeActionDetectObjectsGUI(NodeGUI):
    def __init__(self):
        super(NodeActionDetectObjectsGUI,self).__init__(color='purple')
        self.title.setText('DETECT OBJECTS')
        self.title.setStyleSheet('background-color:'+colors['purple'].normal+';color:#ffffff')
        self.wait_finish = NamedField('Wait', '','purple')
        self.wait_finish.set_field('1')
        self.note = NoteField('(1 = true, 0 = false)','purple')
        self.layout_.addWidget(self.wait_finish)
        self.layout_.addWidget(self.note)
    def generate(self):
        if all([self.name.full(),self.wait_finish.full()]):
            return NodeActionDetectObjects(self.get_name(),self.get_label(),int(self.wait_finish.get()))
        else:
            rospy.logerr('check that all menu items are properly selected for this node')
            return 'ERROR: check that all menu items are properly selected for this node'
Exemplo n.º 27
0
 def __init__(self):
     super(NodeDecoratorWaitForSuccessGUI,self).__init__()
     self.title.setText('WAIT FOR SUCCESS LOGIC')
     self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
     self.timeout = NamedField('Timeout',self.get_label())
     self.timeout.set_field('-1')
     self.layout_.addWidget(self.timeout)
class NodePublishMessageGUI(NodeGUI):
    def __init__(self):
        super(NodePublishMessageGUI,self).__init__(color='purple')
        self.title.setText('Publish Message')
        self.title.setStyleSheet('background-color:'+colors['purple'].normal+';color:#ffffff')
        self.wait_finish = NamedField('Wait', '','purple')
        self.wait_finish.set_field('1')

        self.message_contents = NamedField('message','', 'purple')
        self.message_topic = NamedField('Rostopic','', 'purple')
        self.message_topic.set_field('info')

        self.note = NoteField('(1 = true, 0 = false)\nrostopic has prefix: /costar/messages/','purple')
        self.layout_.addWidget(self.message_contents)
        self.layout_.addWidget(self.message_topic)
        self.layout_.addWidget(self.wait_finish)
        self.layout_.addWidget(self.note)
    
    def save_data(self,data):
        return data
    def load_data(self,data):
        pass
    def generate(self):
        if all([self.name.full(),self.wait_finish.full()]):
            full_topic_name = os.path.join('/costar/messages/',str(self.message_topic.get()))
            return NodeActionPublishMessage(self.get_name(),str(self.message_contents.get()), full_topic_name, int(self.wait_finish.get()))
        else:
            rospy.logerr('check that all menu items are properly selected for this node')
            return 'ERROR: check that all menu items are properly selected for this node'
 def __init__(self):
     super(NodeActionGripperCloseGUI,self).__init__(color='green')
     self.title.setText('GRIPPER CLOSE ACTION')
     self.title.setStyleSheet('background-color:'+colors['green'].normal+';color:#ffffff')
     self.wait_finish = NamedField('Wait', '','green')
     self.wait_finish.set_field('1')
     self.note = NoteField('(1 = true, 0 = false)','green')
     self.layout_.addWidget(self.wait_finish)
     self.layout_.addWidget(self.note)
Exemplo n.º 30
0
 def __init__(self):
     super(NodeActionRecordDataGUI,self).__init__(color='green')
     self.title.setText('RECORD DATA')
     self.title.setStyleSheet('background-color:'+colors['green'].normal+';color:#ffffff')
     self.wait_finish = NamedField('Wait', '','green')
     self.wait_finish.set_field('1')
     self.note = NoteField('(1 = true, 0 = false)','green')
     self.layout_.addWidget(self.wait_finish)
     self.layout_.addWidget(self.note)
 def __init__(self):
     super(NodeActionUpdatePlanningSceneGUI,self).__init__(color='purple')
     self.title.setText('UPDATE PLANNING SCENE')
     self.title.setStyleSheet('background-color:'+colors['purple'].normal+';color:#ffffff')
     self.wait_finish = NamedField('Wait', '','purple')
     self.wait_finish.set_field('1')
     self.note = NoteField('(1 = true, 0 = false)','purple')
     self.layout_.addWidget(self.wait_finish)
     self.layout_.addWidget(self.note)
class NodeActionGripperCloseGUI(NodeGUI):
    def __init__(self):
        super(NodeActionGripperCloseGUI,self).__init__(color='green')
        self.title.setText('GRIPPER CLOSE ACTION')
        self.title.setStyleSheet('background-color:'+colors['green'].normal+';color:#ffffff')
        self.wait_finish = NamedField('Wait', '','green')
        self.wait_finish.set_field('1')
        self.note = NoteField('(1 = true, 0 = false)','green')
        self.layout_.addWidget(self.wait_finish)
        self.layout_.addWidget(self.note)
    def save_data(self,data):
        return data
    def load_data(self,data):
        pass
    def generate(self):
        if all([self.name.full(),self.wait_finish.full()]):
            return NodeActionGripper(self.get_name(),self.get_label(),False,int(self.wait_finish.get()))
        else:
            rospy.logerr('check that all menu items are properly selected for this node')
            return 'ERROR: check that all menu items are properly selected for this node'
Exemplo n.º 33
0
class NodeDecoratorResetGUI(NodeGUI):
    def __init__(self):
        super(NodeDecoratorResetGUI,self).__init__()
        self.title.setText('RESET LOGIC')
        self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
        self.reset = NamedField('Reset (-1) for infinity',self.get_label())
        self.layout_.addWidget(self.reset)

    def save_data(self,data):
        return data

    def load_data(self,data):
        # no data to load
        pass
        
    def generate(self):
        if all([self.name.full(),self.reset.full()]):
            return beetree.NodeDecoratorReset(self.get_name(),self.get_label(),int(self.reset.get()))
        else:
            return 'ERROR: check that all menu items are properly selected for this node'
class NodeActionUpdatePlanningSceneGUI(NodeGUI):
    def __init__(self):
        super(NodeActionUpdatePlanningSceneGUI,self).__init__(color='purple')
        self.title.setText('UPDATE PLANNING SCENE')
        self.title.setStyleSheet('background-color:'+colors['purple'].normal+';color:#ffffff')
        self.wait_finish = NamedField('Wait', '','purple')
        self.wait_finish.set_field('1')
        self.note = NoteField('(1 = true, 0 = false)','purple')
        self.layout_.addWidget(self.wait_finish)
        self.layout_.addWidget(self.note)

    def save_data(self,data):
        return data
    def load_data(self,data):
        pass
    def generate(self):
        if all([self.name.full(),self.wait_finish.full()]):
            return NodeActionUpdatePlanningScene(self.get_name(),self.get_label(),int(self.wait_finish.get()))
        else:
            rospy.logerr('check that all menu items are properly selected for this node')
            return 'ERROR: check that all menu items are properly selected for this node'
Exemplo n.º 35
0
 def __init__(self):
     super(LoadEntryFromFileGUI,self).__init__()
     self.type_ = NamedComboBox('Item Type')
     self.file_ = NamedComboBox('Item Name')
     self.entry_ = NamedField('Item Entry','')
     self.layout_.addWidget(self.type_)
     self.layout_.addWidget(self.file_)
     self.layout_.addWidget(self.entry_)
     self.type_list = getList('')
     self.type_.add_items(self.type_list.entries)
     self.type_.interface().currentIndexChanged.connect(self.selected)
     self.file_list = []
Exemplo n.º 36
0
class NodeDecoratorWaitForSuccessGUI(NodeGUI):
    def __init__(self):
        super(NodeDecoratorWaitForSuccessGUI,self).__init__()
        self.title.setText('WAIT FOR SUCCESS LOGIC')
        self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
        self.timeout = NamedField('Timeout',self.get_label())
        self.timeout.set_field('-1')
        self.layout_.addWidget(self.timeout)

    def save_data(self,data):
        return data

    def load_data(self,data):
        # no data to load
        pass

    def generate(self):
        if all([self.name.full(),self.timeout.full()]):
            return beetree.NodeDecoratorWaitForSuccess(self.get_name(),self.get_label(),int(self.timeout.get()))
        else:
            return 'ERROR: check that all menu items are properly selected for this node'
Exemplo n.º 37
0
class NodeDecoratorWaitForSuccessGUI(NodeGUI):
    def __init__(self):
        super(NodeDecoratorWaitForSuccessGUI, self).__init__()
        self.title.setText('WAIT FOR SUCCESS LOGIC')
        self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
        self.timeout = NamedField('Timeout', self.get_label())
        self.timeout.set_field('-1')
        self.layout_.addWidget(self.timeout)

    def save_data(self, data):
        return data

    def load_data(self, data):
        # no data to load
        pass

    def generate(self):
        if all([self.name.full(), self.timeout.full()]):
            return beetree.NodeDecoratorWaitForSuccess(self.get_name(),
                                                       self.get_label(),
                                                       int(self.timeout.get()))
        else:
            return 'ERROR: check that all menu items are properly selected for this node'
Exemplo n.º 38
0
class LoadEntryFromFileGUI(NodeGUI):
    def __init__(self):
        super(LoadEntryFromFileGUI, self).__init__()
        self.type_ = NamedComboBox('Item Type')
        self.file_ = NamedComboBox('Item Name')
        self.entry_ = NamedField('Item Entry', '')
        self.layout_.addWidget(self.type_)
        self.layout_.addWidget(self.file_)
        self.layout_.addWidget(self.entry_)
        self.type_list = getList('')
        self.type_.add_items(self.type_list.entries)
        self.type_.interface().currentIndexChanged.connect(self.selected)
        self.file_list = []

    def selected(self, t):
        value = str(t)
        self.file_list = getList(self.type_list.entries[int(self.type_.get())])
        self.file_.interface().clear()
        self.file_.add_items(self.file_list.entries)

    def generate(self):

        if len(self.file_list.entries) > 0:
            fname = self.file_list.entries[int(self.file_.get())]
        else:
            return 'ERROR: no items found!'

        if len(self.type_list.entries) > 0:
            tname = self.type_list.entries[int(self.type_.get())]
        else:
            return 'ERROR: no types found!'

        if all([self.name.full(), self.label.full(), self.entry_.full()]):
            return LoadEntry(self.get_name(), self.get_label(), tname, fname,
                             self.entry_.get())
        else:
            return 'ERROR: node not properly defined'
Exemplo n.º 39
0
class LoadEntryFromFileGUI(NodeGUI):
    def __init__(self):
        super(LoadEntryFromFileGUI,self).__init__()
        self.type_ = NamedComboBox('Item Type')
        self.file_ = NamedComboBox('Item Name')
        self.entry_ = NamedField('Item Entry','')
        self.layout_.addWidget(self.type_)
        self.layout_.addWidget(self.file_)
        self.layout_.addWidget(self.entry_)
        self.type_list = getList('')
        self.type_.add_items(self.type_list.entries)
        self.type_.interface().currentIndexChanged.connect(self.selected)
        self.file_list = []

    def selected(self,t):
        value = str(t)
        self.file_list = getList(self.type_list.entries[int(self.type_.get())])
        self.file_.interface().clear()
        self.file_.add_items(self.file_list.entries)

    def generate(self):

        if len(self.file_list.entries) > 0:
            fname = self.file_list.entries[int(self.file_.get())]
        else:
            return 'ERROR: no items found!'

        if len(self.type_list.entries) > 0:
            tname = self.type_list.entries[int(self.type_.get())]
        else:
            return 'ERROR: no types found!'

        if all([self.name.full(),self.label.full(), self.entry_.full()]):
            return LoadEntry(self.get_name(),self.get_label(),
                    tname, fname, self.entry_.get())
        else:
            return 'ERROR: node not properly defined'
Exemplo n.º 40
0
class NodePublishMessageGUI(NodeGUI):
    def __init__(self):
        super(NodePublishMessageGUI, self).__init__(color='purple')
        self.title.setText('Publish Message')
        self.title.setStyleSheet('background-color:' +
                                 colors['purple'].normal + ';color:#ffffff')
        self.wait_finish = NamedField('Wait', '', 'purple')
        self.wait_finish.set_field('1')

        self.message_contents = NamedField('message', '', 'purple')
        self.message_topic = NamedField('Rostopic', '', 'purple')
        self.message_topic.set_field('info')

        self.note = NoteField(
            '(1 = true, 0 = false)\nrostopic has prefix: /costar/messages/',
            'purple')
        self.layout_.addWidget(self.message_contents)
        self.layout_.addWidget(self.message_topic)
        self.layout_.addWidget(self.wait_finish)
        self.layout_.addWidget(self.note)

    def save_data(self, data):
        return data

    def load_data(self, data):
        pass

    def generate(self):
        if all([self.name.full(), self.wait_finish.full()]):
            full_topic_name = os.path.join('/costar/messages/',
                                           str(self.message_topic.get()))
            return NodeActionPublishMessage(self.get_name(),
                                            str(self.message_contents.get()),
                                            full_topic_name,
                                            int(self.wait_finish.get()))
        else:
            rospy.logerr(
                'check that all menu items are properly selected for this node'
            )
            return 'ERROR: check that all menu items are properly selected for this node'
Exemplo n.º 41
0
    def __init__(self):
        super(NodePublishMessageGUI, self).__init__(color='purple')
        self.title.setText('Publish Message')
        self.title.setStyleSheet('background-color:' +
                                 colors['purple'].normal + ';color:#ffffff')
        self.wait_finish = NamedField('Wait', '', 'purple')
        self.wait_finish.set_field('1')

        self.message_contents = NamedField('message', '', 'purple')
        self.message_topic = NamedField('Rostopic', '', 'purple')
        self.message_topic.set_field('info')

        self.note = NoteField(
            '(1 = true, 0 = false)\nrostopic has prefix: /costar/messages/',
            'purple')
        self.layout_.addWidget(self.message_contents)
        self.layout_.addWidget(self.message_topic)
        self.layout_.addWidget(self.wait_finish)
        self.layout_.addWidget(self.note)
Exemplo n.º 42
0
 def __init__(self):
     super(NodeDecoratorIgnoreFailGUI, self).__init__()
     self.title.setText('IGNORE FAIL LOGIC')
     self.title.setStyleSheet('background-color:#00C8FF;color:#ffffff')
     self.repeat = NamedField('Repeat', self.get_label())
     self.layout_.addWidget(self.repeat)