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()
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()