def __init__( self ):
 
     scriptPath = os.path.dirname( __file__ )
     self.cameraImagePixBuf = None
     self.servoConfigDict = getArmServoConfig()
     self.lastImageGray = None
     self.opticalFlowX = None
     self.opticalFlowY = None
     self.wavingGripper = False
     self.tryingToDetectGripper = False
     self.gripperWaveStartTime = None
     self.lastImage = None
     self.curTestPosIdx = 0
     self.locatingPositions = False
     
     self.wristAngle = 0.0
         
     # Connect to the robot via ROS
     #rospy.init_node( 'GripperDetector', anonymous=True )
     
     # TODO: Move arm to all dictionary
     servoConfigList = [ self.servoConfigDict[ servoName ] for servoName in self.servoConfigDict ]
     self.roboticArm = RoboticArm( gaffa_teleop.LynxmotionArmDescription.ARM_DH_PROXIMAL, servoConfigList )
     
     self.cameraImageTopic = rospy.Subscriber( "/camera/image", 
         sensor_msgs.msg.Image, self.cameraImageCallback )
         
     self.opticalFlowFilter = OpticalFlowFilter(
         self.OPTICAL_FLOW_BLOCK_WIDTH, self.OPTICAL_FLOW_BLOCK_HEIGHT,
         self.OPTICAL_FLOW_RANGE_WIDTH, self.OPTICAL_FLOW_RANGE_HEIGHT )
         
     self.dataBuffersSetup = False
     self.opticalFlowSampleIdx = None
     self.inputSignalDetectedArray = None
     self.gripperHistogram = None
     self.gripperTrackWindow = None
     self.imageIdx = 0
     
     # Setup the GUI        
     builder = gtk.Builder()
     builder.add_from_file( scriptPath + "/GUI/GripperDetector.glade" )
     
     self.window = builder.get_object( "winMain" )   
     self.dwgCameraImage = builder.get_object( "dwgCameraImage" )
     self.btnDetectGripper = builder.get_object( "btnDetectGripper" )
     self.checkShowOpticalFlow = builder.get_object( "checkShowOpticalFlow" )
     self.checkShowDetectedMotionBlocks = builder.get_object( "checkShowDetectedMotionBlocks" )
     self.checkShowCAMShiftTracking = builder.get_object( "checkShowCAMShiftTracking" )
     self.checkShowGripperProbability = builder.get_object( "checkShowGripperProbability" )
     self.adjNumWaves = builder.get_object( "adjNumWaves" )
     
     # Set default values
     self.adjNumWaves.set_value( 3 )
     
     builder.connect_signals( self )
            
     updateLoop = self.update()
     gobject.idle_add( updateLoop.next )
     
     self.window.show()
Exemple #2
0
    def __init__(self):

        scriptPath = os.path.dirname(__file__)
        self.cameraImagePixBuf = None
        self.servoConfigDict = getArmServoConfig()

        self.wristAngle = 0.0

        # Connect to the robot via ROS

        # TODO: Move arm to all dictionary
        servoConfigList = [
            self.servoConfigDict[servoName]
            for servoName in self.servoConfigDict
        ]
        self.roboticArm = RoboticArm(
            gaffa_teleop.LynxmotionArmDescription.ARM_DH_PROXIMAL,
            servoConfigList)

        self.cameraImageTopic = rospy.Subscriber("/camera/image",
                                                 sensor_msgs.msg.Image,
                                                 self.cameraImageCallback)

        self.jointScreenHomography = JointScreenHomography(
            self.CORNER_JOINT_ARRAYS, self.CORNER_SCREEN_POSITIONS,
            self.roboticArm)

        # Setup the GUI
        builder = gtk.Builder()
        builder.add_from_file(scriptPath + "/GUI/VideoTeleop.glade")

        self.window = builder.get_object("winMain")
        self.dwgCameraImage = builder.get_object("dwgCameraImage")
        builder.connect_signals(self)

        updateLoop = self.update()
        gobject.idle_add(updateLoop.next)

        self.window.show()