def __init__(self, context): Plugin.__init__(self, context) self.setObjectName('RqtGraspViewer') self._widget = QWidget() ui_file = os.path.join(rospkg.RosPack().get_path('rqt_grasp_viewer'), 'ui', 'RqtGraspViewer.ui') loadUi(ui_file, self._widget) self._widget.setObjectName('RqtGraspViewerUi') context.add_widget(self._widget) main_layout = QHBoxLayout() self._default_labels = [ "obj_id", "object", "grasp_id", "grasp", "quality" ] self._filemodel = QStandardItemModel(0, 5) self._filemodel.setHorizontalHeaderLabels(self._default_labels) self._table_view = QTableView() self._table_view.setModel(self._filemodel) self._table_view.resizeColumnsToContents() main_layout.addWidget(self._table_view) self._widget.scrollarea.setLayout(main_layout) self.init_services() self.init_subscribers() # self._table_view.clicked.connect(self.on_table_view_clicked) self._table_view.selectionModel().selectionChanged.connect( self.on_table_view_select)
def __init__(self, context): Plugin.__init__(self, context) self.setObjectName('RqtGraspViewer') self._widget = QWidget() ui_file = os.path.join(rospkg.RosPack().get_path('rqt_grasp_viewer'), 'ui', 'RqtGraspViewer.ui') loadUi(ui_file, self._widget) self._widget.setObjectName('RqtGraspViewerUi') context.add_widget(self._widget) main_layout = QHBoxLayout() self._default_labels = ["obj_id", "object", "grasp_id", "grasp", "quality"] self._filemodel = QStandardItemModel(0, 5) self._filemodel.setHorizontalHeaderLabels(self._default_labels) self._table_view = QTableView() self._table_view.setModel(self._filemodel) self._table_view.resizeColumnsToContents() main_layout.addWidget(self._table_view) self._widget.scrollarea.setLayout(main_layout) self.init_services() self.init_subscribers() # self._table_view.clicked.connect(self.on_table_view_clicked) self._table_view.selectionModel().selectionChanged.connect(self.on_table_view_select)
def __init__(self, context): Plugin.__init__(self, context) self.setObjectName("MissionPlugin") self._plans = None self._widget = QWidget() loadUi(os.path.join(uipath, "missionplugin.ui"), self._widget) context.add_widget(self._widget) self._widget.findChild(QPushButton, "addButton").clicked.connect(self._on_add) self._widget.findChild(QPushButton, "removeButton").clicked.connect(self._on_remove) self._widget.findChild(QPushButton, "skipToButton").clicked.connect(self._on_skip_to) self._widget.findChild(QPushButton, "startButton").clicked.connect(self._on_start) self._widget.findChild(QPushButton, "stopButton").clicked.connect(self._on_stop) self.on_plans_changed.connect(self._on_plans) self._plans_sub = rospy.Subscriber("mission/plans", PlansStamped, lambda msg: self.on_plans_changed.emit(msg)) self._modify_srv = rospy.ServiceProxy("mission/modify_plan", ModifyPlan) self._run_action = None
def __init__(self, context): Plugin.__init__(self, context) self.setObjectName('RqtMekaPostureRecorder') self._widget = QWidget() self._group_check_box = {} self._group_spinbox = {} self._file_path = None ui_file = os.path.join(rospkg.RosPack().get_path('rqt_meka_posture_recorder'), 'ui', 'RqtMekaPostureRecorder.ui') loadUi(ui_file, self._widget) self._widget.setObjectName('RqtMekaPostureRecorderUi') context.add_widget(self._widget) self._cm_prefix = "meka_roscontrol" self._recorder_name = "meka_posture_recorder" # find the existing groups (running controllers) self._group_list = [] self.init_group_list() nb_group = len(self._group_list) if nb_group == 0: rospy.logerr("No controllers available.") return self._postureCount = 0 self._verticalHeader = [] # add a column and a checkbox per group hlayout = QHBoxLayout() vlayout = QVBoxLayout() all_group_layout = QHBoxLayout() self._tree_widget = QTreeWidget() self._tree_widget.setColumnCount(nb_group + 1) self._tree_widget.setHeaderLabels([" "] + self._group_list) group_item = QTreeWidgetItem(["group"]) self._tree_widget.addTopLevelItem(group_item) time_item = QTreeWidgetItem(["time_from_start"]) self._tree_widget.addTopLevelItem(time_item) for index_item, group_name in enumerate(self._group_list): check_box = QCheckBox("enable") self._tree_widget.setItemWidget(group_item, index_item + 1, check_box) self._group_check_box[group_name] = check_box spinbox = QDoubleSpinBox() spinbox.setValue(2.0) spinbox.setSingleStep(0.5) spinbox.setMinimum(0.0) self._tree_widget.setItemWidget(time_item, index_item + 1, spinbox) self._group_spinbox[group_name] = spinbox self._postures_item = QTreeWidgetItem(["postures"]) self._tree_widget.addTopLevelItem(self._postures_item) vlayout.addWidget(self._tree_widget) hlayout.addLayout(vlayout) self._widget.scrollarea.setLayout(hlayout) self._client = {} self.init_services("start_record", PostureRecordStart) self.init_services("stop_record", PostureRecordStop) self.init_services("save", PostureRecordSave) self.init_services("add_waypoint", PostureRecordAddWaypoint) self.init_services("get_all_postures", PostureRecordGetAllPostures) self._widget.btn_new_posture.clicked.connect(self.on_new_posture_clicked) self._widget.btn_save_postures.clicked.connect(self.on_save_postures_clicked) self._widget.btn_add_wp.clicked.connect(self.on_add_wp_clicked) self._widget.btn_store_posture.clicked.connect(self.on_store_posture_clicked) self._widget.btn_browse.clicked.connect(self.on_btn_file_path_clicked) self._widget.chk_select_all.stateChanged.connect(self.on_check_all_changed) self._widget.time_from_start.valueChanged.connect(self.on_time_from_start_changed) self.init_postures()
def __init__(self, context): Plugin.__init__(self, context) self.setObjectName('RqtMekaPostureEditor') self._widget = QWidget() self._filemodel = {} self._table_view = {} self._vh = {} self._file_path = None ui_file = os.path.join(rospkg.RosPack().get_path('rqt_meka_posture_editor'), 'ui', 'RqtMekaPostureEditor.ui') loadUi(ui_file, self._widget) self._widget.setObjectName('RqtMekaPostureEditorUi') context.add_widget(self._widget) self._cm_prefix = "meka_roscontrol" self._client = {} # find the existing groups (running controllers) self._group_list = [] self.init_group_list() self._current_posture_dict = {} self._posture_unstored = {} self._posture_modified = {} self._table_initialized = {} self._current_posture_name = None nb_group = len(self._group_list) if nb_group == 0: rospy.logerr("No controllers available.") return self._postureCount = 0 self._verticalHeader = [] # add a one column table per group all_group_layout = QHBoxLayout() for group_name in self._group_list: self._filemodel[group_name] = QStandardItemModel(0, 1) self._filemodel[group_name].setHorizontalHeaderLabels([group_name]) self._table_view[group_name] = QTableView() self._table_view[group_name].setModel(self._filemodel[group_name]) self._table_view[group_name].resizeColumnsToContents() self._vh[group_name] = self._table_view[group_name].verticalHeader() self._vh[group_name].sectionResized.connect(partial(self.on_row_resized, group_name)) all_group_layout.addWidget(self._table_view[group_name]) self._widget.scrollarea.setLayout(all_group_layout) #temporary set a value there self._widget.edit_file_path.setText("/vol/meka/stable/share/meka_posture_execution/cfg/postures.yml") self._widget.btn_load_postures.clicked.connect(self.on_load_postures_clicked) self._widget.btn_save_postures.clicked.connect(self.on_save_postures_clicked) self._widget.btn_execute.clicked.connect(self.on_execute_clicked) self._widget.btn_stop.clicked.connect(self.on_stop_clicked) self._widget.btn_undo_mod.clicked.connect(self.on_undo_modification_clicked) self._widget.btn_browse.clicked.connect(self.on_btn_file_path_clicked) self._widget.treeWidget.itemClicked.connect(self.on_posture_clicked) self._mp = MekaPosture("myposture")