Esempio n. 1
0
    def __init__(self, jointController, footstepDriver):

        self.jointController = jointController
        self.footstepDriver = footstepDriver

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddNavigation.ui')
        assert uifile.open(uifile.ReadOnly)
        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())
        self.ui.captureButton.connect("clicked()", self.onCaptureButton)
        self.ui.visualizeButton.connect("clicked()", self.onVisualizeButton)
        self.ui.planButton.connect("clicked()", self.onPlanButton)
        self.ui.reversePlanButton.connect("clicked()",
                                          self.onReversePlanButton)
        self.ui.initAtZeroButton.connect("clicked()", self.onInitAtZeroButton)
        self.ui.restartNavButton.connect("clicked()", self.onRestartNavButton)
        self.ui.showMapButton.connect("clicked()", self.onShowMapButton)
        self.ui.hideMapButton.connect("clicked()", self.onHideMapButton)
        self.ui.disableLaserButton.connect("clicked()",
                                           self.onDisableLaserButton)
        self.ui.enableLaserButton.connect("clicked()",
                                          self.onEnableLaserButton)

        self.ui.startNewMapButton.connect("clicked()",
                                          self.onStartNewMapButton)
        self.ui.useNewMapButton.connect("clicked()", self.onUseNewMapButton)

        # Data Variables:
        self.goal = dict()
        self.init_frame = None
        self.octomap_cloud = None
Esempio n. 2
0
    def __init__(self, planPlayback, playbackRobotModel,
                 playbackJointController, robotStateModel,
                 robotStateJointController, manipPlanner):

        self.planPlayback = planPlayback
        self.playbackRobotModel = playbackRobotModel
        self.playbackJointController = playbackJointController
        self.robotStateModel = robotStateModel
        self.robotStateJointController = robotStateJointController
        self.manipPlanner = manipPlanner
        manipPlanner.connectPlanCommitted(self.onPlanCommitted)
        manipPlanner.connectUseSupports(self.updateButtonColor)

        self.autoPlay = True
        self.useOperationColors()

        self.planFramesObj = None
        self.plan = None
        self.poseInterpolator = None
        self.startTime = 0.0
        self.endTime = 1.0
        self.animationTimer = TimerCallback()
        self.animationTimer.targetFps = 60
        self.animationTimer.callback = self.updateAnimation
        self.animationClock = SimpleTimer()

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddPlaybackPanel.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        uifile.close()

        self.ui = WidgetDict(self.widget.children())

        self.ui.viewModeCombo.connect('currentIndexChanged(const QString&)',
                                      self.viewModeChanged)
        self.ui.playbackSpeedCombo.connect(
            'currentIndexChanged(const QString&)', self.playbackSpeedChanged)
        self.ui.interpolationCombo.connect(
            'currentIndexChanged(const QString&)', self.interpolationChanged)

        self.ui.samplesSpinBox.connect('valueChanged(int)',
                                       self.numberOfSamplesChanged)
        self.ui.playbackSlider.connect('valueChanged(int)',
                                       self.playbackSliderValueChanged)

        self.ui.animateButton.connect('clicked()', self.animateClicked)
        self.ui.hideButton.connect('clicked()', self.hideClicked)
        self.ui.executeButton.connect('clicked()', self.executeClicked)
        self.ui.executeButton.setShortcut(QtGui.QKeySequence('Ctrl+Return'))
        self.ui.stopButton.connect('clicked()', self.stopClicked)

        self.ui.executeButton.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.ui.executeButton.connect(
            'customContextMenuRequested(const QPoint&)',
            self.showExecuteContextMenu)

        self.setPlan(None)
        self.hideClicked()
Esempio n. 3
0
    def __init__(self, view):

        self.view = view

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddFrameVisualization.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())

        self.botFrameUpdater = BotFrameUpdater(self.ui.botFramesListWidget)

        robotModel = om.findObjectByName('robot state model')
        self.linkFrameUpdater = LinkFrameUpdater(robotModel,
                                                 self.ui.linkFramesListWidget)

        self.eventFilter = PythonQt.dd.ddPythonEventFilter()
        self.ui.scrollArea.installEventFilter(self.eventFilter)
        self.eventFilter.addFilteredEventType(QtCore.QEvent.Resize)
        self.eventFilter.connect('handleEvent(QObject*, QEvent*)',
                                 self.onEvent)

        PythonQt.dd.ddGroupBoxHider(self.ui.botFramesGroup)
        PythonQt.dd.ddGroupBoxHider(self.ui.linkFramesGroup)

        self.updateTimer = TimerCallback(targetFps=60)
        self.updateTimer.callback = self.updateFrames
        self.updateTimer.start()
Esempio n. 4
0
    def __init__(self, robotSystem):

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddJointCommandPanel.ui')
        assert uifile.open(uifile.ReadOnly)

        self.robotSystem = robotSystem

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())
        self.ui.streamingButton.connect('clicked()', self.onStreamingClicked)
        self.ui.resetButton.connect('clicked()', self.onResetClicked)
        self.ui.hidePreviewButton.connect('clicked()',
                                          self.onHidePreviewClicked)
        self.ui.previewSlider.connect('valueChanged(int)',
                                      self.onPreviewSliderChanged)
        self.ui.speedSpinBox.connect('valueChanged(double)',
                                     self.onSpeedChanged)
        self.ui.steeringButton.connect('clicked()',
                                       self.onSteeringButtonClicked)
        self.ui.throttleButton.connect('clicked()',
                                       self.onThrottleButtonClicked)
        self.hidePreviewModels()

        self.throttleControlEnabled = False
        self.steeringControlEnabled = False
        def __init__(self, prescribedVelocitiesBC):
            self.prescribedVelocitiesBC = prescribedVelocitiesBC

            uiFileName = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                                      "ui", "PrescribedVelocitiesBoundaryConditionEditorWidget.ui")

            self.ui = QtUiTools.QUiLoader().load(QtCore.QFile(str(uiFileName)))

            self.figure = PrescribedVelocitiesFigure()
            plotLayout = self.ui.findChild(PythonQt.QtCore.QObject, "plotLayout")
            plotFrame = self.ui.findChild(PythonQt.QtCore.QObject, "plotFrame")
            self.navigationToolbar = NavigationToolbar(self.figure, plotFrame)
            plotLayout.addWidget(self.navigationToolbar)
            plotLayout.addWidget(self.figure)

            loadWaveformButton = self.ui.findChild(PythonQt.QtCore.QObject, "loadWaveformButton")
            loadWaveformButton.connect('clicked(bool)', self.loadWaveform)

            self.numberOfSamplesSpinBox = self.ui.findChild(PythonQt.QtCore.QObject, "numberOfSamplesSpinBox")
            self.numberOfSamplesSpinBox.connect('valueChanged(int)', self._computeSmoothedWaveform)

            self.smoothnessSlider = self.ui.findChild(PythonQt.QtCore.QObject, "smoothnessSlider")
            self.smoothnessSlider.connect('valueChanged(int)', self._computeSmoothedWaveform)

            if self.prescribedVelocitiesBC.firstFilteredCoef < 0:
                # Support for converted old mitk scenes
                self.prescribedVelocitiesBC.firstFilteredCoef = int(
                    self._findLastNonZeroCoef()[0] * (self.prescribedVelocitiesBC.firstFilteredCoef / -100.0))

            self._updatePlot(self.prescribedVelocitiesBC.numberOfSamples, self.prescribedVelocitiesBC.firstFilteredCoef)
Esempio n. 6
0
    def __init__(self):
        #Loading
        filename = os.path.join(os.environ['SPARTAN_SOURCE_DIR'],
                                'apps/chris/ddGroundTruthAnnotationPanel.ui')
        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(filename)
        assert uifile.open(uifile.ReadOnly)
        self.widget = loader.load(uifile)
        uifile.close()

        #UI elements
        self.ui = WidgetDict(self.widget.children())
        self.view = app.getCurrentRenderView()
        self.ui.enabledCheck.connect('toggled(bool)', self.onEnabledCheckBox)
        self.ui.clearButton.connect('clicked()', self.onClear)
        self.ui.saveScene.connect('clicked()', self.saveCurrentScene)
        self.ui.align.connect('clicked()', self.vtkICP)

        self.eventFilter = MyEventFilter(view, self)
        self.annotation = vis.PolyDataItem('annotation',
                                           self.makeSphere((0, 0, 0)), view)
        self.annotation.setProperty('Color', [0, 1, 0])
        self.annotation.actor.SetPickable(False)
        self.annotation.actor.SetUserTransform(vtk.vtkTransform())
        self.setEnabled(False)

        #State
        self.pickPoints = []
        self.objects = []
        self.isModifyingBoundingBox = False
        #init folders
        self.getRootFolder()
        self.getModelObjectsFolder()
        self.getTransformedObjectsFolder()
Esempio n. 7
0
    def __init__(self, view, affordanceManager, jointController=None):

        self.view = view
        self.affordanceManager = affordanceManager
        self.jointController = jointController

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(":/ui/ddAffordancePanel.ui")
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())

        self.ui.affordanceListWidget.hide()

        self.ui.spawnBoxButton.connect("clicked()", self.onSpawnBox)
        self.ui.spawnSphereButton.connect("clicked()", self.onSpawnSphere)
        self.ui.spawnCylinderButton.connect("clicked()", self.onSpawnCylinder)
        self.ui.spawnCapsuleButton.connect("clicked()", self.onSpawnCapsule)
        self.ui.spawnRingButton.connect("clicked()", self.onSpawnRing)
        self.ui.spawnMeshButton.connect("clicked()", self.onSpawnMesh)

        self.eventFilter = PythonQt.dd.ddPythonEventFilter()
        self.ui.scrollArea.installEventFilter(self.eventFilter)
        self.eventFilter.addFilteredEventType(QtCore.QEvent.Resize)
        self.eventFilter.connect("handleEvent(QObject*, QEvent*)",
                                 self.onEvent)
Esempio n. 8
0
def showDialog(mainWindow):

    loader = QtUiTools.QUiLoader()
    uifile = QtCore.QFile(':/vvResources/vvAboutDialog.ui')
    if not uifile.open(uifile.ReadOnly):
        print("Canno't open the ui for the about dialog.")
        return

    dialog = loader.load(uifile, mainWindow)
    uifile.close()
    dialog.setModal(True)

    def w(name):
        for widget in dialog.children():
            if widget.objectName == name:
                return widget

    image = w('splashLabel')
    splash = image.pixmap.scaled(image.pixmap.width()/2.0, image.pixmap.height()/2.0)
    image.setPixmap(splash)
    image.adjustSize()

    appName = mainWindow.windowTitle.split(" ")[0]
    appVersionTag = mainWindow.windowTitle.split(" ")[1]
    appBitTag = mainWindow.windowTitle.split(" ")[2]
    dialog.windowTitle = "About " + appName + " ..."
    copyrightText = '''<h1>{0} {1} {2}</h1><br/>
                       Copyright (c) 2017, Velodyne Lidar,
                       Copyright (c) 2017, Kitware<br />
                       Provided by <a href="http://velodynelidar.com/">Velodyne Lidar</a>, coded by <a href="https://www.kitware.com/">Kitware</a>.<br />
                       <br />
                       Sample Data Repository: <a href="http://midas3.kitware.com/midas/community/29">http://midas3.kitware.com/midas/community/29</a>
                    '''.format(appName, appVersionTag, appBitTag)
    w('copyrightLabel').setText(copyrightText)
    
    textBoxContent = '''<h4>Want more ? Ask Kitware !</h4>
                        Kitware Inc. is a leading provider of open-source software systems for technical and scientific computing.
                        We are the developers of VeloView, providing real-time interactive visualization of live captured 3D LiDAR
                        data from Velodyne's sensors. We create customized solutions providing detection and tracking of people,
                        street signs, lane markings, vehicles, industrial machinery, and building facades from within VeloView or using
                        combinations of point cloud and video data. We also provide Lidar-based SLAM algorithms for other Velodyne's integrators.
                        We work with customers to create tailored solutions using proven open-source
                        technologies, avoiding vendor lock-in and leveraging our world-leading experience in visualization, computer vision, high-performance
                        computing, and test-driven high-quality software process.<br />
                        <br />
                        <br />
                        Have a look at <a href="https://www.kitware.com/our-expertise/">our expertise</a>, and for more information, please contact us: 
                        <a href="mailto:[email protected]?subject=Contact+about+VeloView">[email protected]</a>
                     '''
    w('detailsLabel').setText(textBoxContent)
    
    
    button = w('closeButton')
    closeIcon = QtGui.QApplication.style().standardIcon(QtGui.QStyle.SP_DialogCloseButton)
    button.setIcon(closeIcon)
    button.connect(button, QtCore.SIGNAL('clicked()'), dialog, QtCore.SLOT('close()'))
    dialog.adjustSize()
    dialog.setFixedSize(dialog.size)

    dialog.exec_()
Esempio n. 9
0
    def __init__(self, view):

        self.view = view
        self.trackerManager = cameracontrol.CameraTrackerManager()
        self.trackerManager.setView(view)

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddCameraControlPanel.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())

        self.ui.targetNameLabel.setText('None')

        self.ui.setTargetButton.connect('clicked()', self.onSetTarget)

        for modeName in list(self.trackerManager.trackers.keys()):
            self.ui.trackModeCombo.addItem(modeName)
        self.ui.trackModeCombo.connect('currentIndexChanged(const QString&)',
                                       self.onTrackModeChanged)

        self.ui.controlFrame.setEnabled(False)

        l = self.ui.propertiesFrame.layout()
        self.propertiesPanel = PythonQt.dd.ddPropertiesPanel()
        self.propertiesPanel.setBrowserModeToWidget()
        l.addWidget(self.propertiesPanel)
        self.panelConnector = None

        self.objectPicker = pointpicker.ObjectPicker(self.view)
        self.objectPicker.callbackFunc = self.onPickObject
        self.objectPicker.abortFunc = self.onAbortPick
        self.picking = False
        om.getDefaultObjectModel().connectObjectClicked(self.onTreeClicked)
Esempio n. 10
0
    def __init__(self, view, affordanceManager, ikServer, jointController, raycastDriver):

        self.view = view
        self.affordanceManager = affordanceManager
        self.ikServer = ikServer
        self.jointController = jointController
        self.raycastDriver = raycastDriver

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddAffordancePanel.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())

        self.ui.affordanceListWidget.hide()

        self.ui.spawnBoxButton.connect('clicked()', self.onSpawnBox)
        self.ui.spawnSphereButton.connect('clicked()', self.onSpawnSphere)
        self.ui.spawnCylinderButton.connect('clicked()', self.onSpawnCylinder)
        self.ui.spawnCapsuleButton.connect('clicked()', self.onSpawnCapsule)
        self.ui.spawnRingButton.connect('clicked()', self.onSpawnRing)
        self.ui.spawnMeshButton.connect('clicked()', self.onSpawnMesh)
        self.ui.getRaycastTerrainButton.connect('clicked()', self.onGetRaycastTerrain)

        self.eventFilter = PythonQt.dd.ddPythonEventFilter()
        self.ui.scrollArea.installEventFilter(self.eventFilter)
        self.eventFilter.addFilteredEventType(QtCore.QEvent.Resize)
        self.eventFilter.connect('handleEvent(QObject*, QEvent*)', self.onEvent)

        self.updateTimer = TimerCallback(targetFps=30)
        self.updateTimer.callback = self.updatePanel
        self.updateTimer.start()
Esempio n. 11
0
        def __init__(self, materialData):
            self.materialData = materialData

            uiPath =  os.path.join(os.path.dirname(os.path.abspath(__file__)), "ui")
            uiFileName = os.path.join(uiPath, "SingleMaterialEditorWidget.ui")

            l = QtUiTools.QUiLoader()
            l.setWorkingDirectory(QtCore.QDir(uiPath))
            self.ui = l.load(QtCore.QFile(str(uiFileName)))

            findChild = lambda name: self.ui.findChild(PythonQt.QtCore.QObject, name)

            self.scriptTextEditor = findChild("scriptTextEdit")
            self.highlighter = PythonHighlighter.PythonHighlighter(self.scriptTextEditor)
            self.scriptTextEditor.setText(materialData.scriptData)
            self.scriptTextEditor.connect('textChanged()', self.saveScriptText)
            self.helpButton = findChild("helpButton")
            self.helpButton.connect('clicked(bool)', self.showHelpTooltip)

            self.inputVariableComboBox = findChild("inputVariableComboBox")
            self.inputVariableComboBox.setCurrentIndex(self.materialData.tableData.inputVariableType)
            self.inputVariableComboBox.connect('currentIndexChanged(int)', self.setInputVariableType)

            self.representationComboBox = findChild("representationComboBox")
            self.customMaterialFrame = findChild("customMaterialFrame")
            self.overrideCheckBox = findChild("overrideCheckBox")

            if materialData.representation == RepresentationType.Constant:
                self.customMaterialFrame.hide()
            else:
                self.overrideCheckBox.setChecked(True)
                self.representationComboBox.setCurrentIndex(materialData.representation)

            self.overrideCheckBox.connect('toggled(bool)', self.enableRepresentationOverride)
            self.representationComboBox.connect('currentIndexChanged(int)', self.setRepresentationByComboBoxIndex)

            self.materialNameLineEdit = findChild("materialNameLineEdit")
            self.materialNameLineEdit.setText(materialData.name)

            self.tableWidget = findChild("tableWidget")

            findChild("addRowBeforeButton").connect('clicked(bool)', self.addRowBefore)
            findChild("addRowAfterButton").connect('clicked(bool)', self.addRowAfter)
            findChild("removeRowsButton").connect('clicked(bool)', self.removeRows)
            findChild("loadTableButton").connect('clicked(bool)', self.loadTableFromFile)
            findChild("saveTableButton").connect('clicked(bool)', self.saveTableToFile)

            class DoubleValueDelegate(QtGui.QItemDelegate):
                def createEditor(self, parent, option, index):
                    le = QtGui.QLineEdit(parent)
                    le.setValidator(QtGui.QDoubleValidator(le))
                    return le

            self.doubleValueDelegate = DoubleValueDelegate()
            self.tableWidget.setItemDelegate(self.doubleValueDelegate)

            self.fillingTable = False
            self.fillTableFromData()
            self.tableWidget.model().connect('dataChanged(QModelIndex, QModelIndex)', self.fillDataFromTable)
            self.tableWidget.model().connect('rowsRemoved(QModelIndex, int, int)', self.fillDataFromTable)
Esempio n. 12
0
    def __init__(self):

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(":/ui/ddRobotPoseGui.ui")
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        uifile.close()

        self.ui = WidgetDict(self.widget.children())

        self.widget.setWindowTitle("Robot Pose Utility")
        self.messageBoxWarning = functools.partial(
            QtGui.QMessageBox.warning, self.widget
        )
        self.messageBoxQuestion = functools.partial(
            QtGui.QMessageBox.question, self.widget
        )
        self.messageBoxInput = functools.partial(
            QtGui.QInputDialog.getText, self.widget
        )

        assert directorConfigFile is not None
        self.configFile = os.path.join(
            os.path.dirname(directorConfigFile),
            getDirectorConfig()["postureDatabaseFile"],
        )
        if not self.checkConfigFile():
            return

        self.setup()
        self.restoreSettings()
Esempio n. 13
0
        def __init__(self, netlistBC):
            self.netlistBC = netlistBC

            uiPath = os.path.join(os.path.dirname(os.path.abspath(__file__)), "ui")
            uiFileName = os.path.join(uiPath, "NetlistBCEditorWidget.ui")

            l = QtUiTools.QUiLoader()
            l.setWorkingDirectory(QtCore.QDir(uiPath))
            self.ui = l.load(QtCore.QFile(str(uiFileName)))

            netlistEditorLaunchButton = self.ui.findChild(PythonQt.QtCore.QObject, "launchEditorButton")
            netlistEditorLaunchButton.connect('clicked(bool)', self.launchEditor)

            netlistLoadFileButton = self.ui.findChild(PythonQt.QtCore.QObject, "loadCircuitButton")
            netlistLoadFileButton.connect('clicked(bool)', self.loadCircuit)

            netlistLoadScriptButton = self.ui.findChild(PythonQt.QtCore.QObject, "loadAdjustmentScriptButton")
            netlistLoadScriptButton.connect('clicked(bool)', self.loadAdjustmentScript)

            netlistLoadAdditionalDatFileButton = self.ui.findChild(PythonQt.QtCore.QObject, "loadDataFileButton")
            netlistLoadAdditionalDatFileButton.connect('clicked(bool)', self.loadAdditionalDatFile)

            removeButton = self.ui.findChild(PythonQt.QtCore.QObject, "removeButton")
            removeButton.connect('clicked(bool)', self.removeSelected)

            self.fileContentsViewer = self.ui.findChild(PythonQt.QtCore.QObject, "scriptContestTextEdit")
            self.scriptListTable = self.ui.findChild(PythonQt.QtCore.QObject, "scriptListTable")
            self.scriptListTable.connect('currentCellChanged(int, int, int, int)', self.showContents)

            self.recreateSavedState()
Esempio n. 14
0
    def createUI(self):
        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddCameraPanel.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())
        self.widget.setWindowTitle("Camera Visualizer")
        self.ui.gridLayout_2.setSpacing(0)
        self.ui.gridLayout_2.setMargin(0)

        view = self.createCameraView('CAMERACHEST_LEFT')
        frame1Layout = QtGui.QVBoxLayout(self.ui.frame1)
        frame1Layout.setSpacing(0)
        frame1Layout.setMargin(0)
        frame1Layout.addWidget(view)

        view = self.createCameraView('MULTISENSE_CAMERA_LEFT')
        frame2Layout = QtGui.QVBoxLayout(self.ui.frame2)
        frame2Layout.setSpacing(0)
        frame2Layout.setMargin(0)
        frame2Layout.addWidget(view)

        view = self.createCameraView('CAMERACHEST_RIGHT')
        frame3Layout = QtGui.QVBoxLayout(self.ui.frame3)
        frame3Layout.setSpacing(0)
        frame3Layout.setMargin(0)
        frame3Layout.addWidget(view)
Esempio n. 15
0
    def __init__(self, lDriver, rDriver, robotStateModel, robotStateJointController, view):

        self.robotStateModel = robotStateModel
        self.robotStateJointController = robotStateJointController
        self.drivers = {}
        self.drivers['left'] = lDriver
        self.drivers['right'] = rDriver

        self.storedCommand = {'left': None, 'right': None}

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddHandControl.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)

        self.ui = WidgetDict(self.widget.children())
        self._updateBlocked = True

        self.widget.advanced.sendButton.setEnabled(True)

        # Store calibration for wrist f/t sensors
        self.wristftvis = WristForceTorqueVisualizer(robotStateModel, robotStateJointController, view)

        # connect the callbacks
        self.widget.basic.openButton.clicked.connect(self.openClicked)
        self.widget.basic.closeButton.clicked.connect(self.closeClicked)
        self.widget.basic.waitOpenButton.clicked.connect(self.waitOpenClicked)
        self.widget.basic.waitCloseButton.clicked.connect(self.waitCloseClicked)
        self.widget.advanced.sendButton.clicked.connect(self.sendClicked)
        self.widget.advanced.calibrateButton.clicked.connect(self.calibrateClicked)
        self.widget.advanced.setModeButton.clicked.connect(self.setModeClicked)
        self.widget.advanced.regraspButton.clicked.connect(self.regraspClicked)
        self.widget.advanced.dropButton.clicked.connect(self.dropClicked)
        self.widget.advanced.repeatRateSpinner.valueChanged.connect(self.rateSpinnerChanged)
        self.ui.fingerControlButton.clicked.connect(self.fingerControlButton)

        self.widget.sensors.rightTareButton.clicked.connect(self.wristftvis.tareRightFT)
        self.widget.sensors.leftTareButton.clicked.connect(self.wristftvis.tareLeftFT)
        self.widget.sensors.rightCalibButton.clicked.connect(self.wristftvis.calibRightFT)
        self.widget.sensors.leftCalibButton.clicked.connect(self.wristftvis.calibLeftFT)
        self.widget.sensors.rightCalibClearButton.clicked.connect(self.wristftvis.calibRightClearFT)
        self.widget.sensors.leftCalibClearButton.clicked.connect(self.wristftvis.calibLeftClearFT)
        self.widget.sensors.rightVisCheck.clicked.connect(self.updateWristFTVis)
        self.widget.sensors.leftVisCheck.clicked.connect(self.updateWristFTVis)
        self.widget.sensors.torqueVisCheck.clicked.connect(self.updateWristFTVis)

        PythonQt.dd.ddGroupBoxHider(self.ui.sensors)
        PythonQt.dd.ddGroupBoxHider(self.ui.fingerControl)

        # Bug fix... for some reason one slider is set as disabled
        self.ui.fingerASlider.setEnabled(True)

        # create a timer to repeat commands
        self.updateTimer = TimerCallback()
        self.updateTimer.callback = self.updatePanel
        self.updateTimer.targetFps = 3
        self.updateTimer.start()
Esempio n. 16
0
def loadUi(filename):

    loader = QtUiTools.QUiLoader()
    uifile = QtCore.QFile(filename)
    assert uifile.open(uifile.ReadOnly)

    widget = loader.load(uifile)
    ui = WidgetDict(widget.children())
    return widget, ui
Esempio n. 17
0
    def __init__(self, planningUtils, robotStateModel,
                 robotStateJointController, teleopRobotModel,
                 teleopJointController, ikPlanner, manipPlanner,
                 affordanceManager, showPlanFunction, hidePlanFunction,
                 footDriver):
        self.planningUtils = planningUtils
        self.robotStateModel = robotStateModel
        self.robotStateJointController = robotStateJointController
        self.teleopRobotModel = teleopRobotModel
        self.teleopJointController = teleopJointController
        self.ikPlanner = ikPlanner
        self.manipPlanner = manipPlanner
        self.affordanceManager = affordanceManager
        self.showPlanFunction = showPlanFunction
        self.hidePlanFunction = hidePlanFunction
        self.footDriver = footDriver

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddMotionPlanningPanel.ui')
        assert uifile.open(uifile.ReadOnly)
        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())

        # Check motion planning mode
        self.ui.mpModeButton.connect('clicked()', self.onMotionPlanningMode)

        # End-pose planning
        self.ui.handCombo.connect('currentIndexChanged(const QString&)',
                                  self.onHandChanged)
        self.ui.baseComboBox.connect('currentIndexChanged(const QString&)',
                                     self.onBaseConstraintChanged)
        self.ui.backComboBox.connect('currentIndexChanged(const QString&)',
                                     self.onBackConstraintChanged)
        self.ui.feetComboBox.connect('currentIndexChanged(const QString&)',
                                     self.onFeetConstraintChanged)
        self.ui.otherHandComboBox.connect(
            'currentIndexChanged(const QString&)',
            self.onOtherHandConstraintChanged)

        self.ui.fpButton.connect('clicked()', self.onSearchFinalPose)

        if 'kneeJointLimits' in drcargs.getDirectorConfig():
            self.kneeJointLimits = drcargs.getDirectorConfig(
            )['kneeJointLimits']
        self.constraintSet = None
        self.palmOffsetDistance = 0.0

        # Foot step planning
        self.placer = None
        self.ui.walkingPlanButton.connect('clicked()', self.onWalkingPlan)
        self.ui.teleportRobotButton.connect('clicked()',
                                            self.onTeleportRobotToStanceFrame)
        # Motion Planning
        self.ui.motionPlanButton.connect('clicked()', self.onMotionPlan)

        self.deactivate()
Esempio n. 18
0
    def __init__(self, filename, windowTitle=None):

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/' + filename)
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())
        if windowTitle is not None:
            self.widget.setWindowTitle(windowTitle)
Esempio n. 19
0
    def loadUi(self):

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddVideoPlayer.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        uifile.close()

        self.ui = WidgetDict(self.widget.children())
Esempio n. 20
0
    def __init__(self, driver):

        self.driver = driver

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddAtlasDriverPanel.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        self.widget.setWindowTitle('Atlas Driver Panel')
        self.ui = WidgetDict(self.widget.children())

        # Main Panel
        self.ui.calibrateEncodersButton.connect('clicked()',
                                                self.onCalibrateEncoders)
        self.ui.prepButton.connect('clicked()', self.onPrep)
        self.ui.combinedStandButton.connect('clicked()', self.onCombinedStand)
        self.ui.stopButton.connect('clicked()', self.onStop)
        self.ui.freezeButton.connect('clicked()', self.onFreeze)

        self.ui.calibrateNullBiasButton.connect('clicked()',
                                                self.onCalibrateNullBias)
        self.ui.calibrateElectricArmsButton.connect(
            'clicked()', self.onCalibrateElectricArms)
        self.ui.initNavButton.connect('clicked()', self.onInitNav)
        self.ui.standButton.connect('clicked()', self.onStand)
        self.ui.mitStandButton.connect('clicked()', self.onMITStand)
        self.ui.userButton.connect('clicked()', self.onUser)
        self.ui.manipButton.connect('clicked()', self.onManip)
        self.ui.recoveryOnButton.connect('clicked()',
                                         self.driver.sendRecoveryEnable)
        self.ui.recoveryOffButton.connect('clicked()',
                                          self.driver.sendRecoveryDisable)
        self.ui.bracingOnButton.connect('clicked()',
                                        self.driver.sendBracingEnable)
        self.ui.bracingOffButton.connect('clicked()',
                                         self.driver.sendBracingDisable)
        for psi in [1000, 1500, 2000, 2400, 2650]:
            self.ui.__dict__['setPressure' + str(psi) + 'Button'].connect(
                'clicked()', partial(self.driver.sendDesiredPumpPsi, psi))
        self.ui.sendCustomPressureButton.connect('clicked()',
                                                 self.sendCustomPressure)
        self.setupElectricArmCheckBoxes()

        PythonQt.dd.ddGroupBoxHider(self.ui.calibrationGroupBox)
        PythonQt.dd.ddGroupBoxHider(self.ui.pumpStatusGroupBox)
        PythonQt.dd.ddGroupBoxHider(self.ui.electricArmStatusGroupBox)

        self.updateTimer = TimerCallback(targetFps=5)
        self.updateTimer.callback = self.updatePanel
        self.updateTimer.start()
        self.updatePanel()
Esempio n. 21
0
        def __init__(self, materials):
            self.materials = materials
            uiFileName = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                                      "ui", "MaterialEditorWidget.ui")

            self.ui = QtUiTools.QUiLoader().load(QtCore.QFile(str(uiFileName)))
            self.materialsWidget = self.ui

            self.singleMaterialEditors = [SingleMaterialEditor(m) for m in self.materials]
            for e in self.singleMaterialEditors:
                self.materialsWidget.layout().addWidget(e.ui)

            self.materialsWidget.layout().addStretch()
Esempio n. 22
0
    def __init__(self, view, imageWidget):

        self.view = view
        self.imageWidget = imageWidget

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(":/ui/ddScreenGrabber.ui")
        assert uifile.open(uifile.ReadOnly)

        self.frameCount = 0

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())

        self.ui.lockViewSizeCheck.connect("clicked()", self.onLockViewSize)
        self.ui.screenshotOutputBrowseButton.connect(
            "clicked()", self.onChooseScreenshotOutputDir
        )
        self.ui.movieOutputBrowseButton.connect(
            "clicked()", self.onChooseMovieOutputDir
        )

        self.ui.saveScreenshotButton.connect("clicked()", self.onSaveScreenshot)
        self.ui.recordMovieButton.connect("clicked()", self.onRecordMovie)

        self.ui.viewSizeCombo.connect(
            "currentIndexChanged(const QString&)", self.updateViewSize
        )

        self.ui.viewHeightSpin.connect("valueChanged(int)", self.onViewSizeChanged)
        self.ui.viewWidthSpin.connect("valueChanged(int)", self.onViewSizeChanged)

        self.ui.imageWidgetWidthSpin.connect(
            "valueChanged(int)", self.onimageWidgetWidthChanged
        )
        self.ui.showMainImageCheck.connect(
            "clicked()", self.onShowMainImageCheckChanged
        )

        self.updateViewSize()
        self.onLockViewSize()

        self.recordTimer = QtCore.QTimer()
        self.recordTimer.connect("timeout()", self.onRecordTimer)
        self.fpsCounter = FPSCounter()

        self.eventFilter = PythonQt.dd.ddPythonEventFilter()
        self.ui.scrollArea.installEventFilter(self.eventFilter)
        self.eventFilter.addFilteredEventType(QtCore.QEvent.Resize)
        self.eventFilter.connect("handleEvent(QObject*, QEvent*)", self.onEvent)
Esempio n. 23
0
    def __init__(self, windowTitle='Task Panel'):

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddTaskUserPanel.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())
        self.widget.setWindowTitle(windowTitle)

        self.manualButtons = {}
        self.imageViewLayout = QtGui.QHBoxLayout(self.ui.imageFrame)

        self._setupParams()
        self._setupPropertiesPanel()
        self._initTaskPanel()
Esempio n. 24
0
def showDialog(mainWindow, grid):

    loader = QtUiTools.QUiLoader()
    uifile = QtCore.QFile(':/VelodyneHDLPlugin/vvGridAdjustmentDialog.ui')
    if not uifile.open(uifile.ReadOnly):
        print 'error opening file'
        return

    dialog = loader.load(uifile, mainWindow)
    uifile.close()

    def w(name):
        for widget in dialog.children():
            if widget.objectName == name:
                return widget

    w('SensorUpX').setValue(grid.Normal[0])
    w('SensorUpY').setValue(grid.Normal[1])
    w('SensorUpZ').setValue(grid.Normal[2])

    w('SensorOriginX').setValue(-grid.Origin[0])
    w('SensorOriginY').setValue(-grid.Origin[1])
    w('SensorOriginZ').setValue(-grid.Origin[2])

    w('GridResolution').setValue(grid.Scale)
    w('GridWidth').setValue(grid.Scale * grid.GridSize)

    accepted = dialog.exec_()
    if not accepted:
        return False

    grid.Normal = [
        w('SensorUpX').value,
        w('SensorUpY').value,
        w('SensorUpZ').value
    ]
    grid.Origin = [
        -w('SensorOriginX').value, -w('SensorOriginY').value,
        -w('SensorOriginZ').value
    ]
    grid.Scale = w('GridResolution').value
    grid.GridSize = int(
        math.ceil(w('GridWidth').value / w('GridResolution').value))

    return True
Esempio n. 25
0
    def __init__(self, jointController, footstepDriver):

        self.jointController = jointController
        self.footstepDriver = footstepDriver

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddMapping.ui')
        assert uifile.open(uifile.ReadOnly)
        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())

        self.ui.startMappingButton.connect("clicked()", self.onStartMappingButton)
        self.ui.stopMappingButton.connect("clicked()", self.onStopMappingButton)

        self.ui.showMapButton.connect("clicked()", self.onShowMapButton)
        self.ui.hideMapButton.connect("clicked()", self.onHideMapButton)

        self.queue = PythonQt.dd.ddBotImageQueue(lcmUtils.getGlobalLCMThread())
        self.queue.init(lcmUtils.getGlobalLCMThread(), drcargs.args().config_file)
Esempio n. 26
0
    def __init__(self, multisenseDriver, neckDriver):

        self.multisenseDriver = multisenseDriver
        self.neckDriver = neckDriver
        self.neckPitchChanged = False
        self.multisenseChanged = False

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddMultisense.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)

        self.ui = WidgetDict(self.widget.children())

        self.updateTimer = TimerCallback(targetFps=2)
        self.updateTimer.callback = self.updatePanel
        self.updateTimer.start()

        self.widget.headCamGainSpinner.setEnabled(False)
        self.widget.headCamExposureSpinner.setEnabled(False)

        #connect the callbacks
        self.widget.neckPitchSpinner.valueChanged.connect(self.neckPitchChange)
        self.widget.spinRateSpinner.valueChanged.connect(self.spinRateChange)
        self.widget.scanDurationSpinner.valueChanged.connect(
            self.scanDurationChange)
        self.widget.headCamFpsSpinner.valueChanged.connect(
            self.headCamFpsChange)
        self.widget.headCamGainSpinner.valueChanged.connect(
            self.headCamGainChange)
        self.widget.headCamExposureSpinner.valueChanged.connect(
            self.headCamExposureChange)
        self.widget.headAutoGainCheck.clicked.connect(
            self.headCamAutoGainChange)
        self.widget.ledOnCheck.clicked.connect(self.ledOnCheckChange)
        self.widget.ledBrightnessSpinner.valueChanged.connect(
            self.ledBrightnessChange)

        self.widget.sendButton.clicked.connect(self.sendButtonClicked)

        self.updatePanel()
Esempio n. 27
0
    def __init__(self, driver, robotModel, jointController, irisDriver):

        self.driver = driver
        self.robotModel = robotModel
        self.jointController = jointController

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddFootsteps.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)

        self.placer = None

        self.irisDriver = irisDriver
        self.region_seed_frames = []

        self.ui = WidgetDict(self.widget.children())

        self.ui.walkingGoalButton.connect("clicked()", self.onNewWalkingGoal)
        self.ui.walkingPlanButton.connect("clicked()", self.onShowWalkingPlan)
        self.ui.stopButton.connect("clicked()", self.onStop)
        self.ui.simulateDrakeButton.connect("clicked()", self.onSimulateDrake)
        self.ui.haltSimulationDrakeButton.connect("clicked()",
                                                  self.onHaltSimulationDrake)
        self.ui.restoreDefaultsButton.connect("clicked()",
                                              lambda: self.applyDefaults())
        self.ui.showWalkingVolumesCheck.connect("clicked()",
                                                self.onShowWalkingVolumes)

        ### BDI frame logic
        self.ui.hideBDIButton.setVisible(False)
        self.ui.showBDIButton.setVisible(False)
        self.ui.hideBDIButton.connect("clicked()", self.onHideBDIButton)
        self.ui.showBDIButton.connect("clicked()", self.onShowBDIButton)

        self.ui.newRegionSeedButton.connect("clicked()", self.onNewRegionSeed)
        self.ui.autoIRISSegmentationButton.connect("clicked()",
                                                   self.onAutoIRISSegmentation)
        self._setupPropertiesPanel()
Esempio n. 28
0
    def __init__(self):

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddSensorDataRequest.ui')
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)

        self.ui = WidgetDict(self.widget.children())
        self._updateBlocked = True

        self.groups = {}
        self.registerType('camHead', data_request_t.CAMERA_IMAGE_HEAD_LEFT)
        self.registerType('camChestLeft', data_request_t.CAMERA_IMAGE_LCHEST)
        self.registerType('camChestRight', data_request_t.CAMERA_IMAGE_RCHEST)
        self.registerType('mapSceneHeight', data_request_t.HEIGHT_MAP_SCENE)
        self.registerType('mapSceneDepth', data_request_t.DEPTH_MAP_SCENE)
        self.registerType('mapWorkspaceDepth',
                          data_request_t.DEPTH_MAP_WORKSPACE_C)
        self.registerType('mapFusedStereoHeight', data_request_t.FUSED_HEIGHT)

        self.widget.applyAllButton.clicked.connect(self.applyAllButtonClicked)
Esempio n. 29
0
    def __init__(self, view):

        self.view = view

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(':/ui/ddScreenGrabber.ui')
        assert uifile.open(uifile.ReadOnly)

        self.frameCount = 0

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())

        self.ui.syncFrameRateToDrawMessageCheck.connect('clicked()', self.onSyncFrameRateToDrawMessages)
        self.ui.lockViewSizeCheck.connect('clicked()', self.onLockViewSize)
        self.ui.screenshotOutputBrowseButton.connect('clicked()', self.onChooseScreenshotOutputDir)
        self.ui.movieOutputBrowseButton.connect('clicked()', self.onChooseMovieOutputDir)

        self.ui.saveScreenshotButton.connect('clicked()', self.onSaveScreenshot)
        self.ui.recordMovieButton.connect('clicked()', self.onRecordMovie)

        self.ui.viewSizeCombo.connect('currentIndexChanged(const QString&)', self.updateViewSize)

        self.ui.viewHeightSpin.connect('valueChanged(int)', self.onViewSizeChanged)
        self.ui.viewWidthSpin.connect('valueChanged(int)', self.onViewSizeChanged)

        self.updateViewSize()
        self.onLockViewSize()

        self.recordTimer = QtCore.QTimer()
        self.recordTimer.connect('timeout()', self.onRecordTimer)
        self.fpsCounter = FPSCounter()

        self.eventFilter = PythonQt.dd.ddPythonEventFilter()
        self.ui.scrollArea.installEventFilter(self.eventFilter)
        self.eventFilter.addFilteredEventType(QtCore.QEvent.Resize)
        self.eventFilter.connect('handleEvent(QObject*, QEvent*)', self.onEvent)

        self.subscribers = lcmUtils.addSubscriber('DRAKE_VIEWER_DRAW', lcmrl.viewer_draw_t, self.onViewerDraw)
Esempio n. 30
0
    def __init__(self, view, robotSystem):

        self.view = view

        loader = QtUiTools.QUiLoader()
        uifile = QtCore.QFile(":/ui/ddFrameVisualization.ui")
        assert uifile.open(uifile.ReadOnly)

        self.widget = loader.load(uifile)
        self.ui = WidgetDict(self.widget.children())

        # self.botFrameUpdater = BotFrameUpdater(self.ui.botFramesListWidget)

        self.linkFrameUpdater = LinkFrameUpdater(robotSystem.robotStateModel,
                                                 self.ui.linkFramesListWidget)

        self.eventFilter = PythonQt.dd.ddPythonEventFilter()
        self.ui.scrollArea.installEventFilter(self.eventFilter)
        self.ui.allFramesCheckBox.connect("stateChanged(int)",
                                          self.toggleAllFrames)
        self.eventFilter.addFilteredEventType(QtCore.QEvent.Resize)
        self.eventFilter.connect("handleEvent(QObject*, QEvent*)",
                                 self.onEvent)