Example #1
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self, self.logoLayout.parent().width(), self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        #self.stopButton.clicked.connect(self.stopClicked)

        plannerList = ['RRTstar', 'SORRTstar','BITstar', 'FMTstar', 'InformedRRTstar', 'PRMstar']
        self.plannerBox.addItems(plannerList)
        # objectiveList = ['PathClearance', 'PathLength', 'ThresholdPathLength', 'WeightedLengthAndClearanceCombo']
        # self.objectiveBox.addItems(objectiveList)
        self.liftDropButton.clicked.connect(self.liftDropExecute)
        self.liftDropButton.setCheckable(True)
        self.jointForce = 0
        self.pub = rospy.Publisher('amazon_warehouse_robot/joint_cmd', Float32, queue_size=10)

        self.gotoPointButton.clicked.connect(self.gotoPointExecute)
        self.gotoPointButton.setCheckable(True)
Example #2
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)
        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)

        self.rotationDial.valueChanged.connect(self.rotationChange)
        self.altdSlider.valueChanged.connect(self.altitudeChange)

        self.cameraWidget = ColorFilterWidget(self)
        self.sensorsWidget = SensorsWidget(self)
        self.changeCamButton.clicked.connect(self.changeCamera)

        self.trackingCommunicator = Communicator()

        self.pushButton.clicked.connect(self.pushClicked)
        self.pushButton.setCheckable(True)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.camera1 = CameraWidget(self)

        self.takeoff = False
        self.reset = False
        self.record = False
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        #self.stopButton.clicked.connect(self.stopClicked)

        # plannerList = ['RRTstar', 'SORRTstar','BITstar', 'FMTstar', 'InformedRRTstar', 'PRMstar']
        # self.plannerBox.addItems(plannerList)
        # objectiveList = ['PathClearance', 'PathLength', 'ThresholdPathLength', 'WeightedLengthAndClearanceCombo']
        # self.objectiveBox.addItems(objectiveList)
        self.liftDropButton.clicked.connect(self.liftDropExecute)
        self.liftDropButton.setCheckable(True)
        self.jointForce = 0
        self.node = rclpy.create_node('amazon_robot_joint_state')
        self.pub = self.node.create_publisher(
            Float64, 'amazon_robot/joint1_position_controller/command', 10)

        self.gotoPointButton.clicked.connect(self.gotoPointExecute)
        self.gotoPointButton.setCheckable(True)
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)

        self.segmentCheck.stateChanged.connect(self.showSegmentWidget)

        self.segmentWidget = SegmentWidget(self)

        self.segmentCommunicator = Communicator()
        self.trackingCommunicator = Communicator()

        #self.stopButton.clicked.connect(self.stopClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoff = False
        self.reset = False
Example #5
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)

        self.cameraCheck.stateChanged.connect(self.showCameraWidget)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)

        self.rotationDial.valueChanged.connect(self.rotationChange)
        self.altdSlider.valueChanged.connect(self.altitudeChange)

        self.cameraWidget = CameraWidget(self)
        self.sensorsWidget = SensorsWidget(self)

        self.cameraCommunicator = Communicator()
        self.trackingCommunicator = Communicator()

        self.stopButton.clicked.connect(self.stopClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.takeoff = False
        self.reset = False
Example #6
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        #self.stopButton.clicked.connect(self.stopClicked)

        plannerList = [
            'RRTstar', 'SORRTstar', 'BITstar', 'FMTstar', 'InformedRRTstar',
            'PRMstar'
        ]
        self.plannerBox.addItems(plannerList)
Example #7
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)

        self.cameraWidget = CameraWidget(self)

        self.cameraCommunicator = Communicator()
        self.trackingCommunicator = Communicator()
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.stopButton.clicked.connect(self.stopClicked)
Example #9
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self, self.logoLayout.parent().width(), self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)
        
        self.segmentCheck.stateChanged.connect(self.showSegmentWidget)
        
        self.segmentWidget=SegmentWidget(self)

        self.segmentCommunicator=Communicator()
        self.trackingCommunicator = Communicator()

        #self.stopButton.clicked.connect(self.stopClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoff=False
        self.reset=False
Example #10
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)
        
        self.cameraCheck.stateChanged.connect(self.showCameraWidget)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)
        self.colorFilterCheck.stateChanged.connect(self.showColorFilterWidget)
        
        self.rotationDial.valueChanged.connect(self.rotationChange)
        self.altdSlider.valueChanged.connect(self.altitudeChange)
        
        self.cameraWidget=CameraWidget(self)
        self.sensorsWidget=SensorsWidget(self)
        self.colorFilterWidget=ColorFilterWidget(self)

        self.cameraCommunicator=Communicator()
        self.colorFilterCommunicator=Communicator()
        self.trackingCommunicator = Communicator()

        self.stopButton.clicked.connect(self.stopClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.takeoff=False
        self.reset=False
Example #11
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)
        self.logo = LogoWidget(self, self.logoLayout.parent().width(), self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)
        self.sensorsWidget=SensorsWidget(self)

        self.rotationDial.valueChanged.connect(self.rotationChange)
        self.altdSlider.valueChanged.connect(self.altitudeChange)
        self.changeCamButton.clicked.connect(self.changeCamera)
        self.pushButton.clicked.connect(self.pushClicked)
        self.pushButton.setCheckable(True)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.camera1=CameraWidget(self)

        self.record = False
        self.takeoff=False
        self.reset=False
Example #12
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
Example #13
0
class MainWindow(QMainWindow, Ui_MainWindow):

    updGUI = pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)

        self.cameraWidget = CameraWidget(self)

        self.cameraCommunicator = Communicator()
        self.trackingCommunicator = Communicator()

    def setCamera(self, camera):
        self.camera = camera
        self.cameraWidget.show()

    def getCamera(self):
        return self.camera

    def setMotors(self, motors):
        self.motors = motors

    def getMotors(self):
        return self.motors

    def updateGUI(self):
        self.cameraWidget.imageUpdate.emit()

    def setXYValues(self, newX, newY):
        self.XValue.setText(str(newX))
        self.YValue.setText(str(newY))
        myW=-newX*self.motors.getMaxW()
        myV=-newY*self.motors.getMaxV()
        self.motors.setV(myV)
        self.motors.setW(myW)
        self.motors.sendVelocities()
Example #14
0
class MainWindow(QMainWindow, Ui_MainWindow):

    updGUI = pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)

        self.cameraWidget = CameraWidget(self)

        self.cameraCommunicator = Communicator()
        self.trackingCommunicator = Communicator()

    def setCamera(self, camera):
        self.camera = camera
        self.cameraWidget.show()

    def getCamera(self):
        return self.camera

    def setMotors(self, motors):
        self.motors = motors

    def getMotors(self):
        return self.motors

    def updateGUI(self):
        self.cameraWidget.imageUpdate.emit()

    def setXYValues(self, newX, newY):
        self.XValue.setText(str(newX))
        self.YValue.setText(str(newY))
        myW = -newX * self.motors.getMaxW()
        myV = -newY * self.motors.getMaxV()
        self.motors.setV(myV)
        self.motors.setW(myW)
        self.motors.sendVelocities()
Example #15
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)

        self.cameraWidget = CameraWidget(self)

        self.cameraCommunicator = Communicator()
        self.trackingCommunicator = Communicator()
Example #16
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.stopButton.clicked.connect(self.stopClicked)
Example #17
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self, self.logoLayout.parent().width(), self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
Example #18
0
class MainWindow(QMainWindow, Ui_MainWindow):

    updGUI = pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)
        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)

        self.rotationDial.valueChanged.connect(self.rotationChange)
        self.altdSlider.valueChanged.connect(self.altitudeChange)

        self.cameraWidget = ColorFilterWidget(self)
        self.sensorsWidget = SensorsWidget(self)
        self.changeCamButton.clicked.connect(self.changeCamera)

        self.trackingCommunicator = Communicator()

        self.pushButton.clicked.connect(self.pushClicked)
        self.pushButton.setCheckable(True)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.camera1 = CameraWidget(self)

        self.takeoff = False
        self.reset = False
        self.record = False

    def getDrone(self):
        return self.drone

    def setDrone(self, drone):
        self.drone = drone

    def setAlgorithm(self, algorithm):
        self.algorithm = algorithm

    def getAlgorithm(self):
        return self.algorithm

    def updateGUI(self):
        self.camera1.updateImage()
        self.sensorsWidget.sensorsUpdate.emit()

    def pushClicked(self):
        if self.pushButton.isChecked():
            icon = QtGui.QIcon()
            self.pushButton.setText('Stop Code')
            self.pushButton.setStyleSheet("background-color: #ec7063")
            icon.addPixmap(QtGui.QPixmap(":/images/stop.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.pushButton.setIcon(icon)
            self.algorithm.play()
        else:
            icon = QtGui.QIcon()
            self.pushButton.setText('Play Code')
            self.pushButton.setStyleSheet("background-color: #7dcea0")
            icon.addPixmap(QtGui.QPixmap(":/images/play.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.pushButton.setIcon(icon)
            self.algorithm.stop()
            self.rotationDial.setValue(self.altdSlider.maximum() / 2)
            self.altdSlider.setValue(self.altdSlider.maximum() / 2)
            self.drone.sendCMDVel(0, 0, 0, 0, 0, 0)
            self.teleop.stopSIG.emit()

    def takeOffClicked(self):
        if (self.takeoff == True):
            self.takeoffButton.setText("Take Off")
            self.drone.land()
            self.takeoff = False
        else:
            self.takeoffButton.setText("Land")
            self.drone.takeoff()
            self.takeoff = True

    def resetClicked(self):
        if self.reset == True:
            self.resetButton.setText("Reset")
            self.drone.reset()
            self.reset = False
        else:
            self.resetButton.setText("Unreset")
            self.drone.reset()
            self.reset = True
            self.rotationDial.setValue(self.altdSlider.maximum() / 2)
            self.altdSlider.setValue(self.altdSlider.maximum() / 2)
            self.drone.sendCMDVel(0, 0, 0, 0, 0, 0)
            self.teleop.stopSIG.emit()

    def changeCamera(self):
        self.drone.toggleCam()

    def showSensorsWidget(self, state):
        if state == Qt.Checked:
            self.sensorsWidget.show()
        else:
            self.sensorsWidget.close()

    def closeSensorsWidget(self):
        self.sensorsCheck.setChecked(False)

    def rotationChange(self, value):
        value = (1.0 / (self.rotationDial.maximum() / 2)) * (
            value - (self.rotationDial.maximum() / 2))
        self.rotValue.setText('%.2f' % value)
        self.drone.setYaw(value)
        self.drone.sendVelocities()

    def altitudeChange(self, value):
        value = (1.0 / (self.altdSlider.maximum() / 2)) * (
            value - (self.altdSlider.maximum() / 2))
        self.altdValue.setText('%.2f' % value)
        self.drone.setVZ(value)
        self.drone.sendVelocities()

    def setXYValues(self, newX, newY):
        self.XValue.setText('%.2f' % newX)
        self.YValue.setText('%.2f' % newY)
        self.drone.setVX(-newY)
        self.drone.setVY(-newX)
        self.drone.sendVelocities()

    def closeEvent(self, event):
        self.algorithm.kill()
        self.drone.__camera.stop()
        #self.navdata.stop()
        self.drone.__pose.stop()
        event.accept()
Example #19
0
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):

    getPathSig = QtCore.pyqtSignal()
    updGUI = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.colorFilterWidget = ColorFilterWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.stopButton.clicked.connect(self.stopClicked)
        self.colorFilter.stateChanged.connect(self.showColorFilterWidget)

    def setSensor(self, sensor):
        self.sensor = sensor

    def getSensor(self):
        return self.sensor

    def setGrid(self, grid):
        self.grid = grid
        self.grid.setMap(self.map.map)

    def updateGUI(self):
        self.map.updateMap(self.grid)
        self.colorFilterWidget.imageUpdate.emit()

    def width(self):
        return self.map.width

    def height(self):
        return self.map.height

    def getPathClicked(self):
        self.getPathSig.emit()

    def playClicked(self):
        print "play clicked"
        self.sensor.setPlayButton(True)

    def stopClicked(self):
        print "Stop clicked"
        self.sensor.setPlayButton(False)
        self.sensor.stop()
        self.setXYValues(0, 0)
        self.teleop.stopSIG.emit()

    def setXYValues(self, newW, newV):
        self.WValue.setText(unicode(newW))
        self.VValue.setText(unicode(-newV))
        self.sensor.setV(-newV)
        self.sensor.setW(newW)

    def closeColorFilterWidget(self):
        self.colorFilter.setChecked(False)

    def showColorFilterWidget(self, state):
        if state == QtCore.Qt.Checked:
            self.colorFilterWidget.show()
        else:
            self.colorFilterWidget.close()
Example #20
0
class MainWindow(QMainWindow, Ui_MainWindow):
    updGUI = pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self, 0)
        self.teleop1 = TeleopWidget(self, 1)
        self.tlLayout.addWidget(self.teleop)
        self.tlLayout_1.addWidget(self.teleop1)
        self.teleop.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)

        self.cameraCheck.stateChanged.connect(self.showCameraWidget)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)

        self.cameraWidget = CameraWidget(self)
        self.sensorsWidget = SensorsWidget(self)

        self.cameraCommunicator = Communicator()
        self.trackingCommunicator = Communicator()

        self.stopButton.clicked.connect(self.stopClicked)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.takeoff = False
        self.reset = False

    def getCamera(self):
        return self.camera

    def setCamera(self, camera):
        self.camera = camera

    def getNavData(self):
        return self.navdata

    def setNavData(self, navdata):
        self.navdata = navdata

    def getPose3D(self):
        return self.pose

    def setPose3D(self, pose):
        self.pose = pose

    def getCMDVel(self):
        return self.cmdvel

    def setCMDVel(self, cmdvel):
        self.cmdvel = cmdvel

    def getExtra(self):
        return self.extra

    def setExtra(self, extra):
        self.extra = extra

    def updateGUI(self):
        self.cameraWidget.imageUpdate.emit()
        self.sensorsWidget.sensorsUpdate.emit()

    def stopClicked(self):
        if self.record == True:
            self.extra.record(False)
        self.cmdvel.sendCMDVel(0, 0, 0, 0, 0, 0)
        self.teleop.stopSIG.emit()
        self.teleop1.stopSIG.emit()

    def takeOffClicked(self):
        if (self.takeoff == True):
            self.takeoffButton.setText("Take Off")
            self.extra.land()
            self.takeoff = False
        else:
            self.takeoffButton.setText("Land")
            self.extra.takeoff()
            self.takeoff = True

    def resetClicked(self):
        if self.reset == True:
            self.resetButton.setText("Reset")
            self.extra.reset()
            self.reset = False
        else:
            self.resetButton.setText("Unreset")
            self.extra.reset()
            self.reset = True

    def showCameraWidget(self, state):
        if state == Qt.Checked:
            self.cameraWidget.show()
        else:
            self.cameraWidget.close()

    def closeCameraWidget(self):
        self.cameraCheck.setChecked(False)

    def showSensorsWidget(self, state):
        if state == Qt.Checked:
            self.sensorsWidget.show()
        else:
            self.sensorsWidget.close()

    def closeSensorsWidget(self):
        self.sensorsCheck.setChecked(False)

    def setXYValues(self, newX, newY):
        self.XValue.setText('%.2f' % newX)
        self.YValue.setText('%.2f' % -newY)
        self.cmdvel.setVX(-newY)
        self.cmdvel.setVY(-newX)
        self.cmdvel.sendVelocities()

    def setZYawValues(self, newZ, newYaw):
        self.altdValue.setText('%.2f' % -newZ)
        self.rotValue.setText('%.2f' % newYaw)
        self.cmdvel.setVZ(-newZ)
        self.cmdvel.setYaw(newYaw)
        self.cmdvel.sendVelocities()

    def closeEvent(self, event):
        self.camera.stop()
        self.navdata.stop()
        self.pose.stop()
        event.accept()
Example #21
0
class MainWindow(QMainWindow, Ui_MainWindow):
    
    updGUI=pyqtSignal()
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)
        
        self.cameraCheck.stateChanged.connect(self.showCameraWidget)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)
        self.colorFilterCheck.stateChanged.connect(self.showColorFilterWidget)
        
        self.rotationDial.valueChanged.connect(self.rotationChange)
        self.altdSlider.valueChanged.connect(self.altitudeChange)
        
        self.cameraWidget=CameraWidget(self)
        self.sensorsWidget=SensorsWidget(self)
        self.colorFilterWidget=ColorFilterWidget(self)

        self.cameraCommunicator=Communicator()
        self.colorFilterCommunicator=Communicator()
        self.trackingCommunicator = Communicator()

        self.stopButton.clicked.connect(self.stopClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.takeoff=False
        self.reset=False
      
    def getCamera(self):
        return self.camera

    def setCamera(self,camera):
        self.camera = camera

    def getNavData(self):
        return self.navdata

    def setNavData(self,navdata):
        self.navdata = navdata

    def getPose3D(self):
        return self.pose

    def setPose3D(self,pose):
        self.pose = pose

    def getCMDVel(self):
        return self.cmdvel

    def setCMDVel(self,cmdvel):
        self.cmdvel = cmdvel

    def getExtra(self):
        return self.extra

    def setExtra(self,extra):
        self.extra = extra

    def setAlgorithm(self, algorithm ):
        self.algorithm=algorithm

    def getAlgorithm(self):
        return self.algorithm
    
    def updateGUI(self):
        self.cameraWidget.imageUpdate.emit()
        self.sensorsWidget.sensorsUpdate.emit()
        self.colorFilterWidget.imageUpdate.emit()
    
    def playClicked(self):
        if self.record == True:
            self.extra.record(True)
        self.algorithm.play()
    
    def stopClicked(self):
        if self.record == True:
            self.extra.record(False)
        self.algorithm.stop()
        self.rotationDial.setValue(self.altdSlider.maximum()/2)
        self.altdSlider.setValue(self.altdSlider.maximum()/2)
        self.cmdvel.sendCMDVel(0,0,0,0,0,0)
        self.teleop.stopSIG.emit()
    
    def takeOffClicked(self):
        if(self.takeoff==True):
            self.takeoffButton.setText("Take Off")
            self.extra.land()
            self.takeoff=False
        else:
            self.takeoffButton.setText("Land")    
            self.extra.takeoff()
            self.takeoff=True

    def resetClicked(self):
        if self.reset == True:
            self.resetButton.setText("Reset")
            self.extra.reset()
            self.reset=False
        else:
            self.resetButton.setText("Unreset")
            self.extra.reset()
            self.reset=True
        
    def showCameraWidget(self,state):
        if state == Qt.Checked:
            self.cameraWidget.show()
        else:
            self.cameraWidget.close()
            
    def closeCameraWidget(self):
        self.cameraCheck.setChecked(False)

    def showColorFilterWidget(self,state):
        if state == Qt.Checked:
            self.colorFilterWidget.show()
        else:
            self.colorFilterWidget.close()

    def closeColorFilterWidget(self):
        self.colorFilterCheck.setChecked(False)

    def showSensorsWidget(self,state):
        if state == Qt.Checked:
            self.sensorsWidget.show()           
        else:
            self.sensorsWidget.close() 

    def closeSensorsWidget(self):
        self.sensorsCheck.setChecked(False)
    
    def rotationChange(self,value):
        value=(1.0/(self.rotationDial.maximum()/2))*(value - (self.rotationDial.maximum()/2))
        self.rotValue.setText('%.2f' % value)  
        self.cmdvel.setYaw(value)
        self.cmdvel.sendVelocities()

    def altitudeChange(self,value):
        value=(1.0/(self.altdSlider.maximum()/2))*(value - (self.altdSlider.maximum()/2))
        self.rotValue.setText('%.2f' % value)
        self.cmdvel.setVZ(value)
        self.cmdvel.sendVelocities()

    def setXYValues(self,newX,newY):
        self.XValue.setText('%.2f' % newX)
        self.YValue.setText('%.2f' % newY)
        self.cmdvel.setVX(-newY)
        self.cmdvel.setVY(-newX)
        self.cmdvel.sendVelocities()

    def closeEvent(self, event):
        self.algorithm.kill()
        self.camera.client.stop()
        self.navdata.stop()
        self.pose.stop()
        event.accept()
Example #22
0
class MainWindow(QMainWindow, Ui_MainWindow):
    
    getPathSig = QtCore.pyqtSignal()
    updGUI = QtCore.pyqtSignal()
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self, self.logoLayout.parent().width(), self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        #self.stopButton.clicked.connect(self.stopClicked)
      
    def setSensor(self, sensor):
        self.sensor = sensor
           
    def getSensor(self):
        return self.sensor

    def getMotors(self):
        return self.motors

    def setMotors(self,motors):
        self.motors=motors

    def setAlgorithm(self, algorithm ):
        self.algorithm=algorithm

    def setVelocity(self, vel):
        self.vel = vel

    def getVelocity(self):
        return self.vel

    def getAlgorithm(self):
        return self.algorithm
    
    def setGrid(self, grid):
        self.grid = grid
        self.grid.setMap(self.map.map)

    def updateGUI(self):
        self.map.updateMap(self.grid)
    
    def width(self):
        return self.map.width

    def height(self):
        return self.map.height

    def worldWidth(self):
        return self.map.worldWidth

    def worldHeight(self):
        return self.map.worldHeight

    def origX(self):
        return self.map.originX

    def origY(self):
        return self.map.originY

    def mapAngle(self):
        return self.map.mapAngle

    def getPathClicked(self):
        self.getPathSig.emit()

    def playClicked(self):
        if self.playButton.isChecked():
            icon = QtGui.QIcon()
            self.playButton.setText("Stop Code")
            self.playButton.setStyleSheet("background-color: #ec7063")
            icon.addPixmap(QtGui.QPixmap(":/images/stop.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.algorithm.play()
        else:
            icon = QtGui.QIcon()
            self.playButton.setStyleSheet("background-color: #7dcea0")
            icon.addPixmap(QtGui.QPixmap(":/images/play.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.playButton.setText("Play Code")
            self.algorithm.stop()
            self.setXYValues(0, 0)
            self.teleop.stopSIG.emit()

    def setXYValues(self,newW,newV):
        self.WValue.setText(str(newW))
        self.VValue.setText(str(-newV))
        myW = newW * self.vel.getMaxW()
        myV = -newV * self.vel.getMaxV()
        self.vel.setV(myV)
        self.vel.setW(myW)
Example #23
0
class MainWindow(QMainWindow, Ui_MainWindow):

    getPathSig = QtCore.pyqtSignal(list)
    updGUI = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        #self.stopButton.clicked.connect(self.stopClicked)

        plannerList = [
            'RRTstar', 'SORRTstar', 'BITstar', 'FMTstar', 'InformedRRTstar',
            'PRMstar'
        ]
        self.plannerBox.addItems(plannerList)
        # objectiveList = ['PathClearance', 'PathLength', 'ThresholdPathLength', 'WeightedLengthAndClearanceCombo']
        # self.objectiveBox.addItems(objectiveList)

    def setSensor(self, sensor):
        self.sensor = sensor

    def getSensor(self):
        return self.sensor

    def getMotors(self):
        return self.motors

    def setMotors(self, motors):
        self.motors = motors

    def setAlgorithm(self, algorithm):
        self.algorithm = algorithm

    def setVelocity(self, vel):
        self.vel = vel

    def getVelocity(self):
        return self.vel

    def getAlgorithm(self):
        return self.algorithm

    def setGrid(self, grid):
        self.grid = grid
        self.grid.setMap(self.map.map)

    def updateGUI(self):
        self.map.updateMap(self.grid)

    def width(self):
        return self.map.width

    def height(self):
        return self.map.height

    def worldWidth(self):
        return self.map.worldWidth

    def worldHeight(self):
        return self.map.worldHeight

    def origX(self):
        return self.map.originX

    def origY(self):
        return self.map.originY

    def mapAngle(self):
        return self.map.mapAngle

    def getPathClicked(self):
        pList = []
        pList.append(self.getPlanner())
        #pList.append(self.getObjective())
        pList.append(self.getRunTime())
        self.getPathSig.emit(pList)

    def playClicked(self):
        if self.playButton.isChecked():
            icon = QtGui.QIcon()
            self.playButton.setText("Stop Code")
            self.playButton.setStyleSheet("background-color: #ec7063")
            icon.addPixmap(QtGui.QPixmap(":/images/stop.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.algorithm.play()
        else:
            icon = QtGui.QIcon()
            self.playButton.setStyleSheet("background-color: #7dcea0")
            icon.addPixmap(QtGui.QPixmap(":/images/play.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.playButton.setText("Play Code")
            self.algorithm.stop()
            self.setXYValues(0, 0)
            self.teleop.stopSIG.emit()

    def setXYValues(self, newW, newV):
        self.WValue.setText(str(newW))
        self.VValue.setText(str(-newV))
        myW = newW * self.vel.getMaxW()
        myV = -newV * self.vel.getMaxV()
        self.vel.setV(myV)
        self.vel.setW(myW)

    def getPlanner(self):
        planner = self.plannerBox.currentText()
        return planner

    def getObjective(self):
        objective = self.objectiveBox.currentText()
        return objective

    def getRunTime(self):
        runtime = str(self.runtimeBox.value())
        return runtime
class MainWindow(QMainWindow, Ui_MainWindow):

    getPathSig = QtCore.pyqtSignal()
    updGUI = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.stopButton.clicked.connect(self.stopClicked)

    def setSensor(self, sensor):
        self.sensor = sensor

    def getSensor(self):
        return self.sensor

    def getMotors(self):
        return self.motors

    def setMotors(self, motors):
        self.motors = motors

    def setAlgorithm(self, algorithm):
        self.algorithm = algorithm

    def setVelocity(self, vel):
        self.vel = vel

    def getVelocity(self):
        return self.vel

    def getAlgorithm(self):
        return self.algorithm

    def setGrid(self, grid):
        self.grid = grid
        self.grid.setMap(self.map.map)

    def updateGUI(self):
        self.map.updateMap(self.grid)

    def width(self):
        return self.map.width

    def height(self):
        return self.map.height

    def worldWidth(self):
        return self.map.worldWidth

    def worldHeight(self):
        return self.map.worldHeight

    def origX(self):
        return self.map.originX

    def origY(self):
        return self.map.originY

    def mapAngle(self):
        return self.map.mapAngle

    def getPathClicked(self):
        self.getPathSig.emit()

    def playClicked(self):
        print("Play clicked")
        self.algorithm.play()

    def stopClicked(self):
        print("Stop clicked")
        self.algorithm.stop()
        self.setXYValues(0, 0)
        self.teleop.stopSIG.emit()

    def setXYValues(self, newW, newV):
        self.WValue.setText(str(newW))
        self.VValue.setText(str(-newV))
        myW = newW * self.vel.getMaxW()
        myV = -newV * self.vel.getMaxV()
        self.vel.setV(myV)
        self.vel.setW(myW)
class MainWindow(QMainWindow, Ui_MainWindow):

    updGUI = pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)

        self.segmentCheck.stateChanged.connect(self.showSegmentWidget)

        self.segmentWidget = SegmentWidget(self)

        self.segmentCommunicator = Communicator()
        self.trackingCommunicator = Communicator()

        #self.stopButton.clicked.connect(self.stopClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoff = False
        self.reset = False

    def setCamera(self, camera):
        self.camera = camera
        #self.cameraWidget.show() #uncomment if wanted to see the image of the
        #camera whenever you start the execution

    def getCamera(self):
        return self.camera

    def setMotors(self, motors):
        self.motors = motors

    def getMotors(self):
        return self.motors

    def setAlgorithm(self, algorithm):
        self.algorithm = algorithm

    def getAlgorithm(self):
        return self.algorithm

    def updateGUI(self):
        self.segmentWidget.imageUpdate.emit()

    def playClicked(self):
        if self.playButton.isChecked():
            self.segmentWidget.show()
            self.segmentCheck.setChecked(True)
            icon = QtGui.QIcon()
            self.playButton.setText("Stop Code")
            self.playButton.setStyleSheet("background-color: #ec7063")
            icon.addPixmap(QtGui.QPixmap(":/images/stop.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.algorithm.play()
        else:
            icon = QtGui.QIcon()
            self.playButton.setStyleSheet("background-color: #7dcea0")
            icon.addPixmap(QtGui.QPixmap(":/images/play.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.playButton.setText("Play Code")
            self.algorithm.stop()
            self.teleop.stopSIG.emit()

    #def stopClicked(self):
    #   self.algorithm.stop()
    #   self.teleop.stopSIG.emit()
    # ponerrrrr: self.teleop.returnToOrigin()

    def resetClicked(self):
        if self.reset == True:
            self.resetButton.setText("Reset")
            self.reset = False
        else:
            self.resetButton.setText("Unreset")
            self.reset = True

    def showSegmentWidget(self, state):
        if state == Qt.Checked:
            self.segmentWidget.show()
        else:
            self.segmentWidget.close()

    def closeSegmentWidget(self):
        self.segmentCheck.setChecked(False)

    def setXYValues(self, newX, newY):
        limits = self.motors.getLimits()
        pan = newX * limits.maxPan
        tilt = -newY * limits.maxTilt

        self.YValue.setText(str(tilt))
        self.XValue.setText(str(pan))
        #self.YValue.setText("{:.0f}".format(tilt))
        #self.XValue.setText("{:.0f}".format(pan))
        if (self.motors):
            self.motors.setPTMotorsData(pan, tilt, limits.maxPanSpeed,
                                        limits.maxTiltSpeed)

    def closeEvent(self, event):
        self.algorithm.kill()
        self.camera.client.stop()
        self.closeSegmentWidget()
        event.accept()
Example #26
0
class MainWindow(QMainWindow, Ui_MainWindow):
    
    updGUI=pyqtSignal()
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self, self.logoLayout.parent().width(), self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)
        
        self.segmentCheck.stateChanged.connect(self.showSegmentWidget)
        
        self.segmentWidget=SegmentWidget(self)

        self.segmentCommunicator=Communicator()
        self.trackingCommunicator = Communicator()

        #self.stopButton.clicked.connect(self.stopClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoff=False
        self.reset=False
      
    def setCamera(self, camera):
        self.camera = camera
        #self.cameraWidget.show() #uncomment if wanted to see the image of the 
                                  #camera whenever you start the execution

    def getCamera(self):
        return self.camera

    def setMotors(self, motors):
        self.motors = motors

    def getMotors(self):
		return self.motors

    def setAlgorithm(self, algorithm ):
        self.algorithm=algorithm

    def getAlgorithm(self):
        return self.algorithm
    
    def updateGUI(self):
        self.segmentWidget.imageUpdate.emit()
    
    def playClicked(self):
        if self.playButton.isChecked():
            self.segmentWidget.show()
            self.segmentCheck.setChecked(True)
            icon = QtGui.QIcon()
            self.playButton.setText("Stop Code")
            self.playButton.setStyleSheet("background-color: #ec7063")
            icon.addPixmap(QtGui.QPixmap(":/images/stop.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.algorithm.play()
        else:
            icon = QtGui.QIcon()
            self.playButton.setStyleSheet("background-color: #7dcea0")
            icon.addPixmap(QtGui.QPixmap(":/images/play.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.playButton.setText("Play Code")
            self.algorithm.stop()
            self.teleop.stopSIG.emit()
    
    #def stopClicked(self):        
     #   self.algorithm.stop()
     #   self.teleop.stopSIG.emit()
        # ponerrrrr: self.teleop.returnToOrigin()

    def resetClicked(self):
        if self.reset == True:
            self.resetButton.setText("Reset")
            self.reset=False
        else:
            self.resetButton.setText("Unreset")
            self.reset=True

    def showSegmentWidget(self,state):
        if state == Qt.Checked:
            self.segmentWidget.show()
        else:
            self.segmentWidget.close()
            
    def closeSegmentWidget(self):
        self.segmentCheck.setChecked(False)

    def setXYValues(self, newX, newY):
        limits = self.motors.getLimits()
        pan =  newX*limits.maxPan
        tilt = - newY*limits.maxTilt

        self.YValue.setText(str(tilt))
        self.XValue.setText(str(pan))
        #self.YValue.setText("{:.0f}".format(tilt))
        #self.XValue.setText("{:.0f}".format(pan))
        if (self.motors):
            self.motors.setPTMotorsData(pan, tilt, limits.maxPanSpeed, limits.maxTiltSpeed)

    def closeEvent(self, event):
        self.algorithm.kill()
        self.camera.client.stop()
        self.closeSegmentWidget()
        event.accept()
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
    
    getPathSig = QtCore.pyqtSignal()
    updGUI=QtCore.pyqtSignal()
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.colorFilterWidget=ColorFilterWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.stopButton.clicked.connect(self.stopClicked)
        self.colorFilter.stateChanged.connect(self.showColorFilterWidget)
      
    def setSensor(self,sensor):
        self.sensor=sensor
           
    def getSensor(self):
        return self.sensor
    
    def setGrid(self, grid):
        self.grid = grid
        self.grid.setMap(self.map.map)

    def updateGUI(self):
        self.map.updateMap(self.grid)
        self.colorFilterWidget.imageUpdate.emit()
    
    def width(self):
        return self.map.width

    def height(self):
        return self.map.height

    def getPathClicked(self):
        self.getPathSig.emit()

    def playClicked(self):
        print "play clicked"
        self.sensor.setPlayButton(True)
    
    def stopClicked(self):
        print "Stop clicked"
        self.sensor.setPlayButton(False)
        self.sensor.stop()
        self.setXYValues(0, 0)
        self.teleop.stopSIG.emit()

    def setXYValues(self,newW,newV):
        self.WValue.setText(unicode(newW))
        self.VValue.setText(unicode(-newV))
        self.sensor.setV(-newV)
        self.sensor.setW(newW)

    def closeColorFilterWidget(self):
        self.colorFilter.setChecked(False)

    def showColorFilterWidget(self, state):
        if state == QtCore.Qt.Checked:
            self.colorFilterWidget.show()
        else:
            self.colorFilterWidget.close()
Example #28
0
class MainWindow(QMainWindow, Ui_MainWindow):

    getPathSig = QtCore.pyqtSignal()
    updGUI = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        #self.stopButton.clicked.connect(self.stopClicked)

    def setSensor(self, sensor):
        self.sensor = sensor

    def getSensor(self):
        return self.sensor

    def getMotors(self):
        return self.motors

    def setMotors(self, motors):
        self.motors = motors

    def setAlgorithm(self, algorithm):
        self.algorithm = algorithm

    def setVelocity(self, vel):
        self.vel = vel

    def getVelocity(self):
        return self.vel

    def getAlgorithm(self):
        return self.algorithm

    def setGrid(self, grid):
        self.grid = grid
        self.grid.setMap(self.map.map)

    def updateGUI(self):
        self.map.updateMap(self.grid)

    def width(self):
        return self.map.width

    def height(self):
        return self.map.height

    def worldWidth(self):
        return self.map.worldWidth

    def worldHeight(self):
        return self.map.worldHeight

    def origX(self):
        return self.map.originX

    def origY(self):
        return self.map.originY

    def mapAngle(self):
        return self.map.mapAngle

    def getPathClicked(self):
        self.getPathSig.emit()

    def playClicked(self):
        if self.playButton.isChecked():
            icon = QtGui.QIcon()
            self.playButton.setText("Stop Code")
            self.playButton.setStyleSheet("background-color: #ec7063")
            icon.addPixmap(QtGui.QPixmap(":/images/stop.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.algorithm.play()
        else:
            icon = QtGui.QIcon()
            self.playButton.setStyleSheet("background-color: #7dcea0")
            icon.addPixmap(QtGui.QPixmap(":/images/play.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.playButton.setText("Play Code")
            self.algorithm.stop()
            self.setXYValues(0, 0)
            self.teleop.stopSIG.emit()

    def setXYValues(self, newW, newV):
        self.WValue.setText(str(newW))
        self.VValue.setText(str(-newV))
        myW = newW * self.vel.getMaxW()
        myV = -newV * self.vel.getMaxV()
        self.vel.setV(myV)
        self.vel.setW(myW)
Example #29
0
class MainWindow(QMainWindow, Ui_MainWindow):
    
    getPathSig = QtCore.pyqtSignal()
    updGUI = QtCore.pyqtSignal()
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.stopButton.clicked.connect(self.stopClicked)
      
    def setSensor(self, sensor):
        self.sensor = sensor
           
    def getSensor(self):
        return self.sensor

    def getMotors(self):
        return self.motors

    def setMotors(self,motors):
        self.motors=motors

    def setAlgorithm(self, algorithm ):
        self.algorithm=algorithm

    def setVelocity(self, vel):
        self.vel = vel

    def getVelocity(self):
        return self.vel

    def getAlgorithm(self):
        return self.algorithm
    
    def setGrid(self, grid):
        self.grid = grid
        self.grid.setMap(self.map.map)

    def updateGUI(self):
        self.map.updateMap(self.grid)
    
    def width(self):
        return self.map.width

    def height(self):
        return self.map.height

    def worldWidth(self):
        return self.map.worldWidth

    def worldHeight(self):
        return self.map.worldHeight

    def origX(self):
        return self.map.originX

    def origY(self):
        return self.map.originY

    def mapAngle(self):
        return self.map.mapAngle

    def getPathClicked(self):
        self.getPathSig.emit()

    def playClicked(self):
        print("Play clicked")
        self.algorithm.play()
    
    def stopClicked(self):
        print("Stop clicked")
        self.algorithm.stop()
        self.setXYValues(0, 0)
        self.teleop.stopSIG.emit()

    def setXYValues(self,newW,newV):
        self.WValue.setText(str(newW))
        self.VValue.setText(str(-newV))
        myW = newW * self.vel.getMaxW()
        myV = -newV * self.vel.getMaxV()
        self.vel.setV(myV)
        self.vel.setW(myW)
Example #30
0
class MainWindow(QMainWindow, Ui_MainWindow):

    updGUI = pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)

        self.cameraCheck.stateChanged.connect(self.showCameraWidget)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)
        self.colorFilterCheck.stateChanged.connect(self.showColorFilterWidget)

        self.rotationDial.valueChanged.connect(self.rotationChange)
        self.altdSlider.valueChanged.connect(self.altitudeChange)

        self.cameraWidget = CameraWidget(self)
        self.sensorsWidget = SensorsWidget(self)
        self.colorFilterWidget = ColorFilterWidget(self)

        self.cameraCommunicator = Communicator()
        self.colorFilterCommunicator = Communicator()
        self.trackingCommunicator = Communicator()

        # self.stopButton.clicked.connect(self.stopClicked)
        self.playstopButton.clicked.connect(self.playstopClicked)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.takeoff = False
        self.reset = False

    def getCamera(self):
        return self.camera

    def setCamera(self, camera):
        self.camera = camera

    def getNavData(self):
        return self.navdata

    def setNavData(self, navdata):
        self.navdata = navdata

    def getPose3D(self):
        return self.pose

    def setPose3D(self, pose):
        self.pose = pose

    def getCMDVel(self):
        return self.cmdvel

    def setCMDVel(self, cmdvel):
        self.cmdvel = cmdvel

    def getExtra(self):
        return self.extra

    def setExtra(self, extra):
        self.extra = extra

    def setAlgorithm(self, algorithm):
        self.algorithm = algorithm

    def getAlgorithm(self):
        return self.algorithm

    def updateGUI(self):
        self.cameraWidget.imageUpdate.emit()
        self.sensorsWidget.sensorsUpdate.emit()
        self.colorFilterWidget.imageUpdate.emit()

    def playstopClicked(self):
        if self.playstopButton.isChecked():
            if self.record == True:
                self.extra.record(True)
            self.playstopButton.setText("Stop code")
            self.playstopButton.setStyleSheet("background-color: #ec7063")
            self.playstopButton.setIcon(self.icon1)
            self.algorithm.play()
        else:
            if self.record == True:
                self.extra.record(False)
            self.algorithm.stop()
            self.playstopButton.setStyleSheet("background-color: #7dcea0")
            self.playstopButton.setText("Play code")
            self.playstopButton.setIcon(self.icon)
            self.rotationDial.setValue(self.altdSlider.maximum() / 2)
            self.altdSlider.setValue(self.altdSlider.maximum() / 2)
            self.cmdvel.sendCMDVel(0, 0, 0, 0, 0, 0)
            self.teleop.stopSIG.emit()

    def takeOffClicked(self):
        if (self.takeoff == True):
            self.takeoffButton.setText("Take Off")
            self.extra.land()
            self.takeoff = False
        else:
            self.takeoffButton.setText("Land")
            self.extra.takeoff()
            self.takeoff = True

    def resetClicked(self):
        if self.reset == True:
            self.resetButton.setText("Reset")
            self.extra.reset()
            self.reset = False
        else:
            self.resetButton.setText("Unreset")
            self.extra.reset()
            self.reset = True

    def showCameraWidget(self, state):
        if state == Qt.Checked:
            self.cameraWidget.show()
        else:
            self.cameraWidget.close()

    def closeCameraWidget(self):
        self.cameraCheck.setChecked(False)

    def showColorFilterWidget(self, state):
        if state == Qt.Checked:
            self.colorFilterWidget.show()
        else:
            self.colorFilterWidget.close()

    def closeColorFilterWidget(self):
        self.colorFilterCheck.setChecked(False)

    def showSensorsWidget(self, state):
        if state == Qt.Checked:
            self.sensorsWidget.show()
        else:
            self.sensorsWidget.close()

    def closeSensorsWidget(self):
        self.sensorsCheck.setChecked(False)

    def rotationChange(self, value):
        value = (1.0 / (self.rotationDial.maximum() / 2)) * (
            value - (self.rotationDial.maximum() / 2))
        self.rotValue.setText('%.2f' % value)
        self.cmdvel.setYaw(value)
        self.cmdvel.sendVelocities()

    def altitudeChange(self, value):
        value = (1.0 / (self.altdSlider.maximum() / 2)) * (
            value - (self.altdSlider.maximum() / 2))
        self.rotValue.setText('%.2f' % value)
        self.cmdvel.setVZ(value)
        self.cmdvel.sendVelocities()

    def setXYValues(self, newX, newY):
        self.XValue.setText('%.2f' % newX)
        self.YValue.setText('%.2f' % newY)
        self.cmdvel.setVX(-newY)
        self.cmdvel.setVY(-newX)
        self.cmdvel.sendVelocities()

    def closeEvent(self, event):
        self.algorithm.kill()
        self.camera.client.stop()
        self.navdata.stop()
        self.pose.stop()
        event.accept()
Example #31
0
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
    
    updGUI=QtCore.pyqtSignal()
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)

        self.record = False

        self.updGUI.connect(self.updateGUI)
        
        self.cameraCheck.stateChanged.connect(self.showCameraWidget)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)
        self.colorFilterCheck.stateChanged.connect(self.showColorFilterWidget)
        
        self.rotationDial.valueChanged.connect(self.rotationChange)
        self.altdSlider.valueChanged.connect(self.altitudeChange)
        
        self.cameraWidget=CameraWidget(self)
        self.sensorsWidget=SensorsWidget(self)
        self.colorFilterWidget=ColorFilterWidget(self)

        self.cameraCommunicator=Communicator()
        self.colorFilterCommunicator=Communicator()
        
        self.stopButton.clicked.connect(self.stopClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.takeoff=False
      
    def setSensor(self,sensor):
        self.sensor=sensor
           
    def getSensor(self):
        return self.sensor
    
    def updateGUI(self):
        self.cameraWidget.imageUpdate.emit()
        self.colorFilterWidget.imageUpdate.emit()
        self.sensorsWidget.sensorsUpdate.emit()  
    
    def playClicked(self):
        if self.record == True:
            self.sensor.record(True)
        self.sensor.setPlayButton(True)
    
    def stopClicked(self):
        if self.record == True:
            self.sensor.record(False)
        self.sensor.setPlayButton(False)
        self.rotationDial.setValue(self.altdSlider.maximum()/2)
        self.altdSlider.setValue(self.altdSlider.maximum()/2)
        self.teleop.stopSIG.emit()
    
    def takeOffClicked(self):
        if(self.takeoff==True):
            self.takeoffButton.setText("Take Off")
            self.sensor.land()
            self.takeoff=False
        else:
            self.takeoffButton.setText("Land")    
            self.sensor.takeoff()
            self.takeoff=True
        
    def showCameraWidget(self,state):
        if state == QtCore.Qt.Checked:
            self.cameraWidget.show()
        else:
            self.cameraWidget.close()
            
    def closeCameraWidget(self):
        self.cameraCheck.setChecked(False)

    def showColorFilterWidget(self,state):
        if state == QtCore.Qt.Checked:
            self.colorFilterWidget.show()
        else:
            self.colorFilterWidget.close()

    def closeColorFilterWidget(self):
        self.colorFilterCheck.setChecked(False)
        
    def showSensorsWidget(self,state):
        if state == QtCore.Qt.Checked:
            self.sensorsWidget.show()           
        else:
            self.sensorsWidget.close() 

    def closeSensorsWidget(self):
        self.sensorsCheck.setChecked(False)
    
    def rotationChange(self,value):
        value=(1.0/(self.rotationDial.maximum()/2))*(value - (self.rotationDial.maximum()/2))
        self.rotValue.setText(unicode(value))  
        self.sensor.setYaw(value)
        self.sensor.sendVelocities()

    def altitudeChange(self,value):
        value=(1.0/(self.altdSlider.maximum()/2))*(value - (self.altdSlider.maximum()/2))
        self.altdValue.setText(unicode(value))
        self.sensor.setVZ(value)
        self.sensor.sendVelocities()

    def setXYValues(self,newX,newY):
        self.XValue.setText(unicode(newX))
        self.YValue.setText(unicode(newY))
        if not self.sensor.isVirtual():
            self.sensor.setVX(-newY/10.0)
            self.sensor.setVY(-newX/10.0)
        else:
            self.sensor.setVX(-newY)
            self.sensor.setVY(-newX)
        self.sensor.sendVelocities()
Example #32
0
class MainWindow(QMainWindow, Ui_MainWindow):

    getPathSig = QtCore.pyqtSignal(list)
    updGUI = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop = TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.map = Map(self)
        self.mapLayout.addWidget(self.map)
        self.teleop.setVisible(True)

        self.logo = LogoWidget(self,
                               self.logoLayout.parent().width(),
                               self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.getPathButton.clicked.connect(self.getPathClicked)
        self.playButton.clicked.connect(self.playClicked)
        self.playButton.setCheckable(True)
        #self.stopButton.clicked.connect(self.stopClicked)

        # plannerList = ['RRTstar', 'SORRTstar','BITstar', 'FMTstar', 'InformedRRTstar', 'PRMstar']
        # self.plannerBox.addItems(plannerList)
        # objectiveList = ['PathClearance', 'PathLength', 'ThresholdPathLength', 'WeightedLengthAndClearanceCombo']
        # self.objectiveBox.addItems(objectiveList)
        self.liftDropButton.clicked.connect(self.liftDropExecute)
        self.liftDropButton.setCheckable(True)
        self.jointForce = 0
        self.pub = rospy.Publisher('amazon_warehouse_robot/joint_cmd',
                                   Float32,
                                   queue_size=10)

        self.gotoPointButton.clicked.connect(self.gotoPointExecute)
        self.gotoPointButton.setCheckable(True)

    def setSensor(self, sensor):
        self.sensor = sensor

    def getSensor(self):
        return self.sensor

    def getMotors(self):
        return self.motors

    def setMotors(self, motors):
        self.motors = motors

    def setAlgorithm(self, algorithm):
        self.algorithm = algorithm

    def setVelocity(self, vel):
        self.vel = vel

    def getVelocity(self):
        return self.vel

    def getAlgorithm(self):
        return self.algorithm

    def setGrid(self, grid):
        self.grid = grid
        self.grid.setMap(self.map.map)

    def updateGUI(self):
        self.map.updateMap(self.grid)

    def width(self):
        return self.map.width

    def height(self):
        return self.map.height

    def worldWidth(self):
        return self.map.worldWidth

    def worldHeight(self):
        return self.map.worldHeight

    def origX(self):
        return self.map.originX

    def origY(self):
        return self.map.originY

    def mapAngle(self):
        return self.map.mapAngle

    def getPathClicked(self):
        pList = []
        # pList.append(self.getPlanner())
        #pList.append(self.getObjective())
        # pList.append(self.getRunTime())
        self.getPathSig.emit(pList)

    def playClicked(self):
        if self.playButton.isChecked():
            icon = QtGui.QIcon()
            self.playButton.setText("Stop Code")
            self.playButton.setStyleSheet("background-color: #ec7063")
            icon.addPixmap(QtGui.QPixmap(":/images/stop.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.algorithm.play()
        else:
            icon = QtGui.QIcon()
            self.playButton.setStyleSheet("background-color: #7dcea0")
            icon.addPixmap(QtGui.QPixmap(":/images/play.png"),
                           QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.playButton.setIcon(icon)
            self.playButton.setText("Play Code")
            self.algorithm.stop()
            self.setXYValues(0, 0)
            self.teleop.stopSIG.emit()

    def setXYValues(self, newW, newV):
        # self.WValue.setText(str(newW))
        # self.VValue.setText(str(-newV))
        myW = newW * self.vel.getMaxW()
        myV = -newV * self.vel.getMaxV()
        self.vel.setV(myV)
        self.vel.setW(myW)

    def getPlanner(self):
        planner = self.plannerBox.currentText()
        return planner

    def getObjective(self):
        objective = self.objectiveBox.currentText()
        return objective

    def getRunTime(self):
        runtime = str(self.runtimeBox.value())
        return runtime

    def liftDropExecute(self):
        #print ('Lift/Drop Button Clicked')
        if self.jointForce != 25:
            self.jointForce = 25
            self.pub.publish(self.jointForce)
            self.liftDropButton.setText("Drop")
            print('Platform Lifted!')
        else:
            self.jointForce = 0
            self.pub.publish(self.jointForce)
            self.liftDropButton.setText("Lift")
            print('Platform Dropped!')

    def gotoPointExecute(self):
        self.algorithm.setNewPalletFlag(self.playButton.isChecked())

    def setDestinyXYValues(self, newX, newY):
        self.XValue.setText(str(newX))
        self.YValue.setText(str(newY))

    def setPositionXYValues(self, newX, newY):
        self.VValue.setText(str(newX))
        self.WValue.setText(str(newY))
Example #33
0
class MainWindow(QMainWindow, Ui_MainWindow):

    updGUI=pyqtSignal()
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)
        self.teleop=TeleopWidget(self)
        self.tlLayout.addWidget(self.teleop)
        self.teleop.setVisible(True)
        self.logo = LogoWidget(self, self.logoLayout.parent().width(), self.logoLayout.parent().height())
        self.logoLayout.addWidget(self.logo)
        self.logo.setVisible(True)

        self.updGUI.connect(self.updateGUI)
        self.sensorsCheck.stateChanged.connect(self.showSensorsWidget)
        self.sensorsWidget=SensorsWidget(self)

        self.rotationDial.valueChanged.connect(self.rotationChange)
        self.altdSlider.valueChanged.connect(self.altitudeChange)
        self.changeCamButton.clicked.connect(self.changeCamera)
        self.pushButton.clicked.connect(self.pushClicked)
        self.pushButton.setCheckable(True)
        self.resetButton.clicked.connect(self.resetClicked)
        self.takeoffButton.clicked.connect(self.takeOffClicked)
        self.camera1=CameraWidget(self)

        self.record = False
        self.takeoff=False
        self.reset=False

    def getCamera(self):
        return self.camera

    def setCamera(self,camera):
        self.camera = camera

    def getNavData(self):
        return self.navdata

    def setNavData(self,navdata):
        self.navdata = navdata

    def getPose3D(self):
        return self.pose

    def setPose3D(self,pose):
        self.pose = pose

    def getCMDVel(self):
        return self.cmdvel

    def setCMDVel(self,cmdvel):
        self.cmdvel = cmdvel

    def getExtra(self):
        return self.extra

    def setExtra(self,extra):
        self.extra = extra

    def setAlgorithm(self, algorithm ):
        self.algorithm=algorithm

    def getAlgorithm(self):
        return self.algorithm

    def updateGUI(self):
        self.camera1.updateImage()
        self.sensorsWidget.sensorsUpdate.emit()

    def pushClicked(self):
        if self.pushButton.isChecked():
            icon = QtGui.QIcon()
            self.pushButton.setText('Stop Code')
            self.pushButton.setStyleSheet("background-color: #ec7063")
            icon.addPixmap(QtGui.QPixmap(":/images/stop.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.pushButton.setIcon(icon)
            self.algorithm.play()
        else:
            icon = QtGui.QIcon()
            self.pushButton.setText('Play Code')
            self.pushButton.setStyleSheet("background-color: #7dcea0")
            icon.addPixmap(QtGui.QPixmap(":/images/play.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
            self.pushButton.setIcon(icon)
            self.algorithm.stop()

    def resetClicked(self):
        if self.reset == True:
            self.resetButton.setText("Reset")
            self.extra.reset()
            self.reset=False
        else:
            self.resetButton.setText("Unreset")
            self.extra.reset()
            self.reset=True

    def takeOffClicked(self):
        if(self.takeoff==True):
            self.takeoffButton.setText("Take Off")
            self.extra.land()
            self.takeoff=False
        else:
            self.takeoffButton.setText("Land")
            self.extra.takeoff()
            self.takeoff=True

    def resetClicked(self):
        if self.reset == True:
            self.resetButton.setText("Reset")
            self.extra.reset()
            self.reset=False
        else:
            self.resetButton.setText("Unreset")
            self.extra.reset()
            self.reset=True

    def changeCamera(self):
        self.extra.toggleCam()

    def showSensorsWidget(self,state):
        if state == Qt.Checked:
            self.sensorsWidget.show()
        else:
            self.sensorsWidget.close()

    def closeSensorsWidget(self):
        self.sensorsCheck.setChecked(False)

    def rotationChange(self,value):
        value=(1.0/(self.rotationDial.maximum()/2))*(value - (self.rotationDial.maximum()/2))
        self.rotValue.setText('%.2f' % value)
        self.cmdvel.setYaw(value)
        self.cmdvel.sendVelocities()

    def altitudeChange(self,value):
        value=(1.0/(self.altdSlider.maximum()/2))*(value - (self.altdSlider.maximum()/2))
        self.rotValue.setText('%.2f' % value)
        self.cmdvel.setVZ(value)
        self.cmdvel.sendVelocities()

    def setXYValues(self,newX,newY):
        self.XValue.setText('%.2f' % newX)
        self.YValue.setText('%.2f' % newY)
        self.cmdvel.setVX(-newY)
        self.cmdvel.setVY(-newX)
        self.cmdvel.sendVelocities()

    def closeEvent(self, event):
        self.algorithm.kill()
        self.camera.stop()
        self.navdata.stop()
        self.pose.stop()
        event.accept()