Ejemplo n.º 1
0
def startCamera(config):
    print("Starting camera '{}' on {}".format(config.name, config.path))
    inst = CameraServer.getInstance()
    camera = UsbCamera(config.name, config.path)
    server = inst.startAutomaticCapture(camera=camera, return_server=True)

    camera.setConfigJson(json.dumps(config.config))
    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    if config.streamConfig is not None:
        server.setConfigJson(json.dumps(config.streamConfig))

    cvSink = inst.getVideo()

    if config.name == "PS3 Eyecam":
        cvSrc = inst.putVideo(
            config.name + " Vision", 320,
            240)  #Change to get values from config file 160,120

    else:
        cvSrc = inst.putVideo(
            config.name + " Vision", 160,
            120)  #Change to get values from config file 160,120
    print(config.height)

    return camera, cvSink, cvSrc
Ejemplo n.º 2
0
def startCamera(config):
    """Start running the camera."""
    print("Starting camera '{}' on {}".format(config.name, config.path))
    inst = CameraServer.getInstance()
    camera = UsbCamera(config.name, config.path)
    server = inst.startAutomaticCapture(camera=camera, return_server=True)
    #server.setResolution(640, 360)

    camera.setConfigJson(json.dumps(config.config))
    if config.path == "/dev/video0":
        camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)
        #camera.setExposureManual(1)
        #camera.setWhiteBalanceManual(50)
        #os.system("v4l2-ctl -d /dev/video0 -c auto_exposure=1")
        #os.system("v4l2-ctl -d /dev/video0 -c exposure_time_absolute=100")
        #os.system("")
        camera.getProperty("auto_exposure").set(1)
        camera.getProperty("exposure_time_absolute").set(50)
        camera.getProperty("contrast").set(100)
        #camera.getProperty("white_balance_temperature_auto").set(0)
        #for prop in camera.enumerateProperties():
        #print(prop.getName())

    if config.streamConfig is not None:
        server.setConfigJson(json.dumps(config.streamConfig))

    return camera
Ejemplo n.º 3
0
def start_camera():
    inst = CameraServer.getInstance()
    camera = UsbCamera('Hatch Panels', '/dev/video0')

    # with open("cam.json", encoding='utf-8') as cam_config:
    #     camera.setConfigJson(json.dumps(cam_config.read()))
    camera.setResolution(VERTICAL_RES, HORIZONTAL_RES)
    camera.setFPS(FPS)
    camera.setBrightness(10)
    camera.setConfigJson("""
{
    "fps": """ + str(FPS) + """,
    "height": """ + str(HORIZONTAL_RES) + """,
    "pixel format": "mjpeg",
    "properties": [
        {
            "name": "brightness",
            "value": 0
        },
        {
            "name": "contrast",
            "value": 100
        },
        {
            "name": "saturation",
            "value": 40
        }
    ],
    "width": """ + str(VERTICAL_RES) + """
}
    """)

    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    return inst, camera
Ejemplo n.º 4
0
def startCamera(config):
    """Start running the camera."""
    print("Starting camera '{}' on {}".format(config.name, config.path))
    camera = UsbCamera(config.name, config.path)

    camera.setConfigJson(json.dumps(config.config))
    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    return camera
Ejemplo n.º 5
0
def startCamera(config):
    """Start running the camera."""
    print("Starting camera '{}' on {}".format(config.name, config.path))
    cs = CameraServer.getInstance()
    camera = UsbCamera(config.name, config.path)
    server = cs.startAutomaticCapture(camera=camera, return_server=True)

    camera.setConfigJson(json.dumps(config.config))

    return cs, camera
def startCamera(config):
    print("Starting camera '{}' on {}".format(config.name, config.path))
    inst = CameraServer.getInstance()
    camera = UsbCamera(config.name, config.path)
    server = inst.startAutomaticCapture(camera=camera, return_server=True)

    camera.setConfigJson(json.dumps(config.config))
    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    if config.streamConfig is not None:
        server.setConfigJson(json.dumps(config.streamConfig))
Ejemplo n.º 7
0
def startCamera(config):
    print("Starting camera '{}' on {}".format(config.name, config.path))
    inst = CameraServer.getInstance()
    camera = UsbCamera(config.name, config.path)

    # camera.setConfigJson(json.dumps(config.config))
    camera.setConfigJson(config_json)
    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    inst.addCamera(camera)

    return inst, camera
Ejemplo n.º 8
0
    def startDriveCamera(self, config):
        """
        Start running a drive camera.
        """

        self.logger.logMessage("Starting camera '{}' on {}".format(
            config.name, config.path))
        camera = UsbCamera("Drive", config.path)

        camera.setConfigJson(json.dumps(config.config))
        camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

        return camera
Ejemplo n.º 9
0
def startCamera(config):
    print("Starting camera '{}' on {}".format(config.name, config.path))
    # makes a server port for the camera
    inst = CameraServer.getInstance()
    # makes a connection to the camera file
    camera = UsbCamera(config.name, config.path)
    # connects the server to the camera and makes the camera send images through the server
    server = inst.startAutomaticCapture(camera=camera, return_server=True)
    
    # configures the camera to the specified dictionary
    camera.setConfigJson(json.dumps(config.config))
    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    if config.streamConfig is not None:
        server.setConfigJson(json.dumps(config.streamConfig))

    return camera
Ejemplo n.º 10
0
def startCameras():
    global cs

    for config in cameraConfigs:
        print("Starting camera '{}' on {}".format(config.name, config.path))
        camera = UsbCamera(config.name, config.path)

        camera.setConfigJson(json.dumps(config.config))
        camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

        if config.name == "driver_cam" and config.streamConfig is not None:
            print("Starting automatic capture for camera '{}'".format(
                config.name))
            server = cs.startAutomaticCapture(camera=camera,
                                              return_server=True)
            server.setConfigJson(json.dumps(config.streamConfig))

        cameras.append(camera)
Ejemplo n.º 11
0
def startCamera(config):
    """Start running the camera."""
    print("Starting camera '{}' on {}".format(config.name, config.path))
    global inst
    inst = CameraServer.getInstance()
    camera = UsbCamera(config.name, config.path)
    server = inst.startAutomaticCapture(camera=camera, return_server=True)
    # if not isSinkMade:
    #     cvSink = inst.getVideo()
    #     isSinkMade = True

    camera.setConfigJson(json.dumps(config.config))
    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    if config.streamConfig is not None:
        server.setConfigJson(json.dumps(config.streamConfig))

    print("Started camera '{}' on {}".format(config.name, config.path))
    return camera
Ejemplo n.º 12
0
def startCamera(config):
    """Start running the camera."""
    print("Starting camera '{}' on {}".format(config.name, config.path))
    inst = CameraServer.getInstance()
    camera = UsbCamera(config.name, config.path)
    server = inst.startAutomaticCapture(camera=camera, return_server=True)

    camera.setConfigJson(json.dumps(config.config))
    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    if config.streamConfig is not None:
        server.setConfigJson(json.dumps(config.streamConfig))

    if config.name == "rPi Camera 1":
        camera.getProperty("contrast").set(0)
        camera.getProperty("brightness").set(50)
        camera.getProperty("saturation").set(50)

    return camera
def startCamera(config):
    """Start running the camera."""
    print("Starting camera '{}' on {}".format(config.name, config.path))
    cs = CameraServer.getInstance()
    camera = UsbCamera(config.name, config.path)
    #camera.setExposureManual(5)
    cv_sink = cs.getVideo(camera=camera)
    output_stream = cs.putVideo('output_' + config.name, config.width, config.height)
    img = np.zeros(shape=(config.height, config.width, 3), dtype=np.uint8)
    input_output.append((cv_sink, output_stream, img))
    #server = cs.startAutomaticCapture(return_server=True)

    camera.setConfigJson(json.dumps(config.config))
    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    #if config.streamConfig is not None:
        #server.setConfigJson(json.dumps(config.streamConfig))

    return camera
Ejemplo n.º 14
0
def start_camera():
    inst = CameraServer.getInstance()
    camera = UsbCamera('Hatch Panels', '/dev/video0')
    camera.setConfigJson(picamera_config_json)
    # with open("cam.json", encoding='utf-8') as cam_config:
    #     camera.setConfigJson(json.dumps(cam_config.read()))
    #     camera.setResolution(VERTICAL_RES, HORIZONTAL_RES)
    #     camera.setFPS(FPS)
    #     camera.setBrightness(10)
    #     camera.setConfigJson("""
    # {
    #     "fps": """ + str(FPS) + """,
    #     "height": """ + str(HORIZONTAL_RES) + """,
    #     "pixel format": "mjpeg",
    #     "properties": [
    #             {
    #                 "name": "brightness",
    #                 "value": 0
    #             },
    #             {
    #                 "name": "contrast",
    #                 "value": 100
    #             },
    #             {
    #                 "name": "saturation",
    #                 "value": 100
    #             },
    #             {
    #                 "name": "color_effects",
    #                 "value": 3
    #             }
    #     ],
    #     "width": """ + str(VERTICAL_RES) + """
    # }
    #     """)
    #

    # inst.startAutomaticCapture(camera=camera)

    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    return inst, camera
Ejemplo n.º 15
0
def startCamera(config):
    """Start running the camera."""
    global cvSink
    global outputStream

    print("Starting camera '{}' on {}".format(config.name, config.path))
    inst = CameraServer.getInstance()
    camera = UsbCamera(config.name, config.path)
    server = inst.startAutomaticCapture(camera=camera, return_server=True)

    camera.setConfigJson(json.dumps(config.config))
    camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    if config.streamConfig is not None:
        server.setConfigJson(json.dumps(config.streamConfig))

    # Get a CvSink. This will capture images from the camera
    cvSink = inst.getVideo()

    # (optional) Setup a CvSource. This will send images back to the Dashboard
    outputStream = inst.putVideo("image", width, height)

    return camera
Ejemplo n.º 16
0
def startCamera(config):
    print("Starting camera '{}' on {}".format(config.name, config.path))
    inst = CameraServer.getInstance()
    camera = None
    server = None

    #ADDED CODE: handle pixy camera capture by creating a cvsource, otherwise normal
    if config.pixy:
        #if the camera is a pixy, get a CvSource to put the generated images in
        global pixy_source
        pixy_source = inst.putVideo("Pixy", 51, 51)
    else:
        #if the camera is not a pixy, automatically capture it
        camera = UsbCamera(config.name, config.path)
        server = inst.startAutomaticCapture(camera=camera, return_server=True)

        camera.setConfigJson(json.dumps(config.config))
        camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

    if config.streamConfig is not None and config.pixy is False:
        server.setConfigJson(json.dumps(config.streamConfig))

    return camera
Ejemplo n.º 17
0
    def startVisionCamera(self, config):
        """
        Start running the vision camera.
        """

        self.logger.logMessage("Starting camera '{}' on {}".format(
            config.name, config.path))
        inst = CameraServer.getInstance()
        camera = UsbCamera(config.name, config.path)

        camera.setConfigJson(json.dumps(config.config))
        camera.setConnectionStrategy(VideoSource.ConnectionStrategy.kKeepOpen)

        # Start automatic capture stream
        if (Constants.ENABLE_RAW_STREAM):
            self.logger.logMessage("Starting Raw Output Stream...")

            camera_server = inst.startAutomaticCapture(camera=camera,
                                                       return_server=True)

            if config.stream_config is not None:
                camera_server.setConfigJson(json.dumps(config.stream_config))

        return camera
Ejemplo n.º 18
0
        smart_dashboard.getEntry('Vision/Threshhold/Lower/hue').addListener(
            set_threshhold_value('lower', 'hue'),
            ntcore.constants.NT_NOTIFY_UPDATE)
        smart_dashboard.getEntry(
            'Vision/Threshhold/Lower/saturation').addListener(
                set_threshhold_value('lower', 'saturation'),
                ntcore.constants.NT_NOTIFY_UPDATE)
        smart_dashboard.getEntry('Vision/Threshhold/Lower/value').addListener(
            set_threshhold_value('lower', 'value'),
            ntcore.constants.NT_NOTIFY_UPDATE)

    # Find primary and secondary cameras
    cameras = []
    for config in camera_configs:
        camera = UsbCamera(config.name, config.path)
        camera.setConfigJson(json.dumps(config.config))

        cvsink = CvSink('cvsink: ' + config.name)
        cvsink.setSource(camera)
        cvsink.setEnabled(False)  # disable frame fetching by default

        # Add 3 things to the list of cameras: the camera object itself,
        #  the cvsink object, and the camera configuration dictionary.
        #  The first two all the only ones actually needed. Two stream
        #  the camera you can use in server.setsource(cam), and the
        #  cvsink is used to enable fetching frames. config.config is
        #  only used to access configuration information like the name
        #  and resolution.
        cameras.append((camera, cvsink, config.config))

    vision_camera = None