示例#1
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()
    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 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
示例#3
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)
示例#4
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()
示例#5
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()
示例#6
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('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)
示例#7
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
    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()
示例#9
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
示例#10
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()

    copyrightText = '''<h1>VeloView {0}</h1><br/>
                       Copyright (c) 2017, Velodyne Lidar<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(" ".join(mainWindow.windowTitle.split(" ")[1:]))
    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_()
示例#11
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()
示例#12
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())
示例#13
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)
示例#14
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()
示例#15
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()
示例#16
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)
示例#17
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()
示例#18
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
示例#19
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)
示例#20
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.hidePreviewModels()

        self.throttleControlEnabled = False
        self.steeringControlEnabled = False
示例#21
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()
示例#22
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()
示例#23
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)
示例#24
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)
示例#25
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)
示例#26
0
    def __init__(self, pfgrasper, _prevParent, imageView, imagePicker,
                 cameraview):

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

        self.widget = loader.load(uifile)

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

        # main states
        self.pfgrasper = pfgrasper

        # for image overlay function
        self._prevParent = _prevParent
        self.imageView = imageView
        self.imagePicker = imagePicker
        self.cameraview = cameraview

        #Connect signals
        self.ui.showLHandCameraButton.clicked.connect(
            self.showLHandCameraButtonClicked)
        self.ui.showRHandCameraButton.clicked.connect(
            self.showRHandCameraButtonClicked)
        self.ui.startStepButton.clicked.connect(self.startStepButtonClicked)
        self.ui.startAutoButton.clicked.connect(self.startAutoButtonClicked)
        self.ui.runOneIterButton.clicked.connect(self.runOneIterButtonClicked)
        self.ui.stopButton.clicked.connect(self.stopButtonClicked)
        self.ui.startGraspButton.clicked.connect(self.startGraspButtonClicked)
        self.ui.spawnDrillButton.clicked.connect(self.spawnDrillButtonClicked)
        self.ui.projectDrillButton.clicked.connect(
            self.projectDrillButtonClicked)
        self.ui.reachDrillButton.clicked.connect(self.reachDrillButtonClicked)
        self.ui.graspDrillButton.clicked.connect(self.graspDrillButtonClicked)
        self.ui.apply3DFitButton.clicked.connect(self.apply3DFitButtonClicked)
示例#27
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.useDevelopmentColors()

        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()
示例#28
0
def showDialog(mainWindow, grid, gridProperties):

    loader = QtUiTools.QUiLoader()
    uifile = QtCore.QFile(':/LidarViewPlugin/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.GridNbTicks)
    w('GridLineWidth').setValue(grid.LineWidth)

    r = grid.Color[0] * 255
    g = grid.Color[1] * 255
    b = grid.Color[2] * 255
    w('GridColorPicker').setStyleSheet("background-color: rgb(" + str(r) +
                                       "," + str(g) + "," + str(b) + ");")

    w('ShouldPropertiesPersist').checked = gridProperties.Persist

    def pickColor():
        colorPicker = QtGui.QColorDialog()
        qColor = colorPicker.getColor()

        if not qColor.isValid():
            return False

        r = qColor.red()
        g = qColor.green()
        b = qColor.blue()
        w('GridColorPicker').setStyleSheet("background-color: rgb(" + str(r) +
                                           "," + str(g) + "," + str(b) + ");")

    w('GridColorPicker').connect('clicked()', pickColor)

    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.GridNbTicks = int(
        math.ceil(w('GridWidth').value / w('GridResolution').value))
    grid.LineWidth = w('GridLineWidth').value
    color = w('GridColorPicker').palette.color(QtGui.QPalette.Background)
    grid.Color = [color.redF(), color.greenF(), color.blueF()]
    gridProperties.Persist = w('ShouldPropertiesPersist').checked

    return True