Esempio n. 1
0
    def onButtonClicked(self):
        import inspect, os
        filepath = os.path.dirname(
            os.path.abspath(inspect.getfile(
                inspect.currentframe()))) + "/log/select_history.log"
        fd = QFileDialog(self)
        wc = "Csv files {.csv} (*.csv)"
        self.files = []
        current_directory = self.get_current_opened_directory(filepath)
        tmp_pathes, filter = fd.getOpenFileNamesAndFilter(
            filter=wc, initialFilter=('*.csv'), directory=current_directory)
        for path in tmp_pathes:
            self.files.append(path.encode("utf-8"))
        # print self.files
        if len(self.files) != 0:
            self.get_min_rows_csv(tmp_pathes)
            self.select_path.setText(self.files[0])
            with open(filepath, "w") as f:
                f.write(self.files[0])

                # handler = logging.FileHandler(filepath, mode='w')
                # logger_topic.addHandler(handler)
                # logger_topic.info(self.files[0])
        else:
            self.select_path.setText("")
Esempio n. 2
0
 def _handle_load_clicked(self):
     # path = QFileDialog.getOpenFileName(self, self.tr('Load from File'), '.', self.tr('Bag files {.bag} (*.bag)'))
     # path = str(QFileDialog.getExistingDirectory(self, "Select Directory"))
     import inspect
     filepath = os.path.dirname(
         os.path.abspath(inspect.getfile(
             inspect.currentframe()))) + "/log/select_bag.log"
     current_directory = self.get_current_opened_directory(filepath)
     fd = QFileDialog(self)
     wc = "Bag files {.bag} (*.bag)"
     path, filter = fd.getOpenFileNamesAndFilter(
         filter=wc, initialFilter=('*.bag'), directory=current_directory)
     # print path
     if len(path) != 0:
         with open(filepath, "w") as f:
             f.write(path[0])
     # if path[0][-4:] == ".bag":   # file
     #     print "True"
     #     self.load_bag(path[0])
     #     files = [path[0]]
     # else: #dir
     #     print "Else " + path
     #     path = path + "/"
     #     files = self.get_bag_files(path)
     #     print files
     #
     # # files = self.get_bag_files("/home/lab/bagfiles/")
     if path:
         self.get_features_from_bags(path)
Esempio n. 3
0
    def _save_log(self):
        dialog = QFileDialog()
        dialog.setAcceptMode(QFileDialog.AcceptSave)
        dialog.setNameFilter('Text file (*.txt)')
        dialog.setDefaultSuffix('.txt')
        dialog.setDirectory(os.getenv('HOME'))

        if dialog.exec_():
            file = open(dialog.selectedFiles()[0], 'w')
            file.write(self.logTextEdit.toPlainText())
            file.close()
    def get_file(self):
        file_dlg = QFileDialog()
        file_dlg.setFileMode(QFileDialog.AnyFile)

        if file_dlg.exec_():
            map_file_name = file_dlg.selectedFiles()

            rospy.loginfo('Selected files: %s' % map_file_name)
            if len(map_file_name) > 0:
                self.map_path_name = map_file_name[0]
                self._widget.file_path_edit.setText(self.map_path_name)
    def get_folder(self):
        file_dlg = QFileDialog()
        file_dlg.setFileMode(QFileDialog.Directory)

        if file_dlg.exec_():
            destination_map_file_name = file_dlg.selectedFiles()

            rospy.loginfo('Selected files: %s' % destination_map_file_name)
            if len(destination_map_file_name) > 0:
                self.destination_map_file_name = destination_map_file_name[0]
                self._widget.desination_file_name_edit.setText(
                    self.destination_map_file_name)
Esempio n. 6
0
    def load_FTS(self):
        # Start file dialog
        directory = os.path.join(rospkg.RosPack().get_path('rqt_simulation'),
                                 'config', 'FTS')
        File_dialog = QFileDialog(directory=directory, filter='.yaml')
        FTS_file = File_dialog.getOpenFileName()
        stream = file(FTS_file[0], 'r')
        data = yaml.load(stream)
        stream.close()

        # Load FTS
        self.region_of_interest = {}
        self.region_of_interest = data['FTS']
    def get_file_map_to_rviz(self):
        file_dlg = QFileDialog()
        file_dlg.setFileMode(QFileDialog.AnyFile)
        # file_dlg.setFilter("Yaml files (*.yaml)")
        # print('Hi, you try to get a file')

        if file_dlg.exec_():
            map_file_name = file_dlg.selectedFiles()

            rospy.loginfo(
                'Selected files to extract position of the fiducials: %s' %
                map_file_name)
            if len(map_file_name) > 0:
                self.map_forRviz_file_name = map_file_name[0]
                self._widget.map_to_rviz_path_edit.setText(
                    self.map_forRviz_file_name)
Esempio n. 8
0
 def onPlpClicked(self):
     import inspect, os
     filepath = os.path.dirname(
         os.path.abspath(inspect.getfile(
             inspect.currentframe()))) + "/log/save_plp.log"
     current_directory = self.get_current_opened_directory(filepath)
     fd = QFileDialog(self)
     wc = "Csv files {.py} (*.py)"
     # print current_directory
     filename, filter = fd.getOpenFileNamesAndFilter(
         filter=wc, initialFilter=('*.py'), directory=current_directory)
     if len(filename):
         self.plp_filename = filename[0]
         with open(filepath, "w") as f:
             f.write(self.plp_filename)
         self.select_path.setText(self.plp_filename)
    def get_file_yaml(self):
        file_dlg = QFileDialog()
        file_dlg.setFileMode(QFileDialog.AnyFile)
        # file_dlg.setFilter("Yaml files (*.yaml)")
        # print('Hi, you try to get a file')
        # print(self.map_file_name)
        if file_dlg.exec_():
            destination_map_config_file_name = file_dlg.selectedFiles()

            rospy.loginfo('Selected files: %s' %
                          destination_map_config_file_name)
            if len(destination_map_config_file_name) > 0:
                self.destination_map_config_file_name = destination_map_config_file_name[
                    0]
                self._widget.config_map_file_name_edit.setText(
                    self.destination_map_config_file_name)

                self.read_map()
Esempio n. 10
0
    def __init__(self, title, jsp, num_rows=0):
        super(JointStatePublisherGui, self).__init__()
        font = QFont("Helvetica", 9, QFont.Bold)
        self.hlayout = QHBoxLayout(self)
        vlayout = QVBoxLayout()
        glayout = QGridLayout()
        right_l_lauout = QVBoxLayout()
        self.listVeiw = QListWidget()
        self.checkbox = []
        self.value_line_edit = []
        self.sliders = []
        self.positions = []
        self.progressbars = []

        self.value_last = []

        speed_max = enviromnt_conf['joint_speed']
        slider_max = speed_max * 1000

        position_max = enviromnt_conf['joint_max_position']
        progress_max = position_max * 1000

        #create joints widget
        for i in range(0, num_rows):
            if config[i][0]:
                g_in_g = QGridLayout()
                checkbox = QCheckBox(config[i][1])
                checkbox.setFont(font)

                self.checkbox.append(checkbox)

                value_line_edit = QLineEdit()
                value_line_edit.setFont(font)
                value_line_edit.setText("0.0")

                self.value_line_edit.append(value_line_edit)

                display_lable = QLabel()
                display_lable.setFont(font)
                display_lable.setText("Position:")

                position_label = QLabel()
                position_label.setFont(font)
                position_label.setText("0.0")

                self.positions.append(position_label)

                position_progress_bar = QProgressBar()
                position_progress_bar.setMaximum(progress_max)
                position_progress_bar.setMinimum(-progress_max)
                position_progress_bar.setValue(0)

                self.progressbars.append(position_progress_bar)

                slider = QSlider()
                slider.setMaximum(slider_max)
                slider.setMinimum(-slider_max)
                slider.setOrientation(Qt.Horizontal)
                slider.valueChanged.connect(self.slider_value_changed)
                self.sliders.append(slider)

                g_in_g.addWidget(checkbox, 0, 0)
                g_in_g.addWidget(value_line_edit, 0, 1)
                g_in_g.addWidget(display_lable, 0, 2)
                g_in_g.addWidget(position_label, 0, 3)
                g_in_g.addWidget(slider, 1, 0, 1, 2)
                g_in_g.addWidget(position_progress_bar, 1, 2, 1, 2)

                glayout.addLayout(g_in_g, i, 0)

        #create v layout
        self.import_Btn = QPushButton('Import')
        self.import_Btn.setFont(font)
        self.import_Btn.clicked.connect(self.import_Btn_clecked)

        self.export_Btn = QPushButton('Export')
        self.export_Btn.setFont(font)
        self.export_Btn.clicked.connect(self.export_Btn_clicked)

        self.start_Btn = QPushButton("Start")
        self.start_Btn.setFont(font)
        self.start_Btn.clicked.connect(self.start_Btn_clicked)

        self.reset_Btn = QPushButton('Reset')
        self.reset_Btn.setFont(font)
        self.reset_Btn.clicked.connect(self.reset_Btn_clicked)

        self.record_Btn = QPushButton('Record')
        self.record_Btn.setFont(font)
        self.record_Btn.clicked.connect(self.record_Btn_clicked)

        self.replay_Btn = QPushButton('Repaly')
        self.replay_Btn.setFont(font)
        self.replay_Btn.clicked.connect(self.replay_Btn_clicked)

        self.delete_Btn = QPushButton("Delete")
        self.delete_Btn.setFont(font)
        self.delete_Btn.clicked.connect(self.delete_Btn_clicked)

        self.debug_Btn = QPushButton("Debug")
        self.debug_Btn.setFont(font)
        self.debug_Btn.clicked.connect(self.debug_Btn_clicked)

        vlayout.addWidget(self.import_Btn)
        vlayout.addWidget(self.export_Btn)
        vlayout.addWidget(self.start_Btn)
        vlayout.addWidget(self.reset_Btn)
        vlayout.addWidget(self.record_Btn)
        vlayout.addWidget(self.delete_Btn)
        vlayout.addWidget(self.replay_Btn)
        vlayout.addWidget(self.debug_Btn)

        self.master_url = QLineEdit("http://192.168.0.91:11311")
        self.master_url.setFont(font)

        self.master_ip = QLineEdit("192.168.0.91")
        self.master_ip.setFont(font)

        self.listVeiw.clicked.connect(self.listVeiw_clicked)
        self.listVeiw.currentRowChanged.connect(
            self.listVeiw_itemSelectionChanged)

        self.description = QTextEdit("")
        self.description.setFont(font)

        #self.description.setGeometry(0,100,100,500)

        right_l_lauout.addWidget(self.master_url)
        right_l_lauout.addWidget(self.master_ip)
        right_l_lauout.addWidget(self.listVeiw)
        right_l_lauout.addWidget(self.description)

        right_l_lauout.setStretch(0, 1)
        right_l_lauout.setStretch(1, 1)
        right_l_lauout.setStretch(2, 3)
        right_l_lauout.setStretch(3, 1)

        self.num_rows = len(self.checkbox)
        self.hlayout.addLayout(glayout)
        self.hlayout.addLayout(vlayout)
        self.hlayout.addLayout(right_l_lauout)
        self.setLayout(self.hlayout)

        self.callback_start = None
        self.callback_pause = None
        self.callback_record = None
        self.callback_reset = None
        self.callback_replay = None
        self.callback_replay_stop = None
        self.callback_delete = None
        self.callback_debug = None
        self.callback_import = None
        self.callback_export = None
        self.callback_list_clicked = None

        self.listVeiw_isClicked = False
        self.listVeiw_current_item = 0
        self.listVeiw_len = 0
        self.f = QFileDialog()
Esempio n. 11
0
    def load_scenario(self):
        # Start file dialog GUI
        directory = os.path.join(rospkg.RosPack().get_path('rqt_simulation'),
                                 'config', 'FTS')
        File_dialog = QFileDialog(directory=directory, filter='.yaml')
        scenario_file = File_dialog.getOpenFileName()
        try:
            stream = file(scenario_file[0], 'r')
        except:
            print('In file ' + self.filename + ' at line ' +
                  str(self.cf.f_lineno) + ': Error no valid scenario file')
            return False

        data = yaml.load(stream)

        # Remove all robots
        for i in range(0, len(self.tab_list) - 1):
            self.remove_robot()

        # Reset map
        self.reset()

        # Load map
        self.world_comboBox.setCurrentIndex(
            self.world_comboBox.findText(data['Map']))

        # Load FTS
        # Sort the keys is needed for the edge matrix in the map_dialog
        self.FTS.region_of_interest = data['FTS']
        sorted_keys = self.FTS.region_of_interest.keys()
        sorted_keys.sort()
        stream.close()

        self.scenario_file = scenario_file[0]

        self.current_graphicsScene.load_graphic_from_FTS(self.FTS)

        # Load robot tabs
        robot_tabs = data['Tasks']

        for i in range(0, len(self.FTS.region_of_interest)):
            self.tab_list[self.num_robots - 1].robot_comboBox_init.addItem(
                self.FTS.region_of_interest.keys()[i])
        self.tab_list[self.num_robots - 1].robot_comboBox_init.model().sort(0)

        for i in range(0, len(robot_tabs)):
            if i > 0:
                self.add_robot()
            self.tab_list[i].robot_name_input.setText(robot_tabs.keys()[i])
            self.tab_list[i].robot_comboBox.setCurrentIndex(
                self.tab_list[i].robot_comboBox.findText(
                    robot_tabs[robot_tabs.keys()[i]]['robot_model']))
            self.tab_list[i].robot_comboBox_init.setCurrentIndex(
                self.tab_list[i].robot_comboBox_init.findText(
                    robot_tabs[robot_tabs.keys()[i]]['initial_pose']))
            self.tab_list[i].initial_pose[
                'start_' +
                str(i + 1).zfill(2)]['pose'] = self.FTS.region_of_interest[
                    self.tab_list[i].robot_comboBox_init.currentText()]['pose']
            self.tab_list[i].initial_pose['start_' + str(i + 1).zfill(2)][
                'label'] = self.tab_list[i].robot_comboBox_init.currentText()
            if robot_tabs[robot_tabs.keys()[i]]['use_qualisys']:
                self.tab_list[i].robot_localization_checkBox.setCheckState(
                    Qt.Checked)
            self.tab_list[i].robot_hard_task_input.setText(
                robot_tabs[robot_tabs.keys()[i]]['tasks']['hard_task'])
            self.tab_list[i].robot_soft_task_input.setText(
                robot_tabs[robot_tabs.keys()[i]]['tasks']['soft_task'])

        self.button_execute_task.setEnabled(True)