def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) loadUi(os.path.join(path, 'resources', 'path.ui'), self) try: rospy.wait_for_service('robot_send_command', timeout=5) self.send_command = rospy.ServiceProxy('robot_send_command', SrvRobotCommand) except: rospy.loginfo('ERROR connecting to service robot_send_command.') #self.pub = rospy.Publisher( # 'robot_command_json', MsgRobotCommand, queue_size=10) self.btnLoadPath.clicked.connect(self.btnLoadPathClicked) icon = QtGui.QIcon.fromTheme('document-open') self.btnLoadPath.setIcon(icon) self.btnSavePath.clicked.connect(self.btnSavePathClicked) icon = QtGui.QIcon.fromTheme('document-save') self.btnSavePath.setIcon(icon) self.btnRunPath.clicked.connect(self.btnRunPathClicked) icon = QtGui.QIcon.fromTheme('media-playback-start') self.btnRunPath.setIcon(icon) self.btnDelete.clicked.connect(self.btnDeleteClicked) self.btnLoadPose.clicked.connect(self.btnLoadPoseClicked) self.btnStep.clicked.connect(self.btnStepClicked) self.btnCancel.clicked.connect(self.btnCancelClicked) self.listWidgetPoses.itemSelectionChanged.connect(self.lstPosesClicked) self.listWidgetPoses.itemDoubleClicked.connect(self.qlistDoubleClicked) self.jason = Jason() self.ok_command = "OK" self.offset_position = 100 self.quat = [0, np.sin(np.deg2rad(45)), 0, np.cos(np.deg2rad(45))] self.quat_inv = [0, -np.sin(np.deg2rad(45)), 0, np.cos(np.deg2rad(45))] self.pub_marker_array = rospy.Publisher('visualization_marker_array', MarkerArray, queue_size=10) self.marker_array = MarkerArray() self.lines = LinesMarker() self.lines.set_size(0.005) self.lines.set_color((1, 0, 0, 1)) self.lines.set_frame('/workobject') self.marker_array.markers.append(self.lines.marker) self.arrow = ArrowMarker(0.1) self.arrow.set_color((0, 0, 1, 1)) self.arrow.set_frame('/workobject') # self.arrow.set_position((0.2, 0.2, 0.2)) # self.arrow.set_orientation((0, 0, 0, 1)) self.marker_array.markers.append(self.arrow.marker) for id, m in enumerate(self.marker_array.markers): m.id = id self.tmrRunPath = QtCore.QTimer(self) self.tmrRunPath.timeout.connect(self.timeRunPathEvent)