현재 Luxonis사의 OAK-D Pro W를 가지고 프로젝트를 진행하고 있는데, 파이썬 api를 사용하여 카메라를 구동하려고 하니 Fatal error. Please report to developers. Log: 'ImgPreproc' '582'dispatcherResponseServe:928 no request for this response: XLINK_WRITE_RESP 1 에러가 발생했다.
에러 내용
Fatal error. Please report to developers. Log: 'ImgPreproc' '582'
dispatcherResponseServe:928 no request for this response: XLINK_WRITE_RESP 1
이 문제를 찾아보려고 하니, 구글링에서도 나오지 않았고, 결국에는 하나씩 수정을 해가면서 문제점을 찾았다.
일단, 소스 코드는 Depthai에서 제공하는 샘플 코드로 설명을 하겠다.
import depthai as dai
import cv2
# 파이프라인 정의
pipeline = dai.Pipeline()
camRGb = dai.node.Camera
camRgb = pipeline.create(dai.node.Camera)
#Properties
camRgb.setBoardSocket(dai.CameraBoardSocket.CAM_A)
camRgb.setSize((1280, 800))
# Linking
videoOut = pipeline.create(dai.node.XLinkOut)
videoOut.setStreamName("video")
camRgb.video.link(videoOut.input)
with dai.Device(pipeline) as device:
video = device.getOutputQueue(name="video", maxSize=1, blocking=False)
while True:
if video.has():
cv2.imshow("video", video.get().getCvFrame())
if cv2.waitKey(1) == ord('q'):
break
위의 소스 코드는 camRgb 소켓을 열어 두고, videoOut과 연결하여 출력하는 방식이다.
이 소스를 그대로 돌리면 정상적으로 작동하는 것을 볼 수 있는데, 여기서 한 가지만 수정을 하면 문제가 발생하는 것을 확인할 수 있다.
camRgb.setBoardSocket(dai.CameraBoardSocket.CAM_A)
위의 코드에서 CameraBoardSockect에는 CAM_A부터 H까지 있다.
근데, 여기서 그냥 카메라의 경우에는 CAM_A만 소켓을 연결하여 사용할 수 있다. 해당 카메라의 공식 문서를 보면 아래와 같이 알려주고 있다.
RGB : Deprecated: Use CAM_A or address camera by name instead
LEFT : Deprecated: Use CAM_B or address camera by name instead
RIGHT : Deprecated: Use CAM_C or address camera by name instead
CENTER : Deprecated: Use CAM_A or address camera by name instead
OAK-D Pro W 카메라는 총 3개의 카메라가 있는데, 가운데는 RGB고, 양 옆은 Mono 카메라로 사용이 되어 depth 값을 가져온다. 위의 말처럼, RGB와 CENTER 카메라는 CAM_A만 사용할 수 있고, LEFT는 CAM_B, RIGHT는 CAM_C만 사용할 수 있다.
그래서, 위의 코드에서 CAM_A를 CAM_C로 변경을 하면 에러가 발생하므로, 해당 CAM을 변경하면 된다.
'AI > Depth Camera' 카테고리의 다른 글
[Depth Camera] Luxonis OAK-D Pro W 영상 출력 크기 변경하는 방법 (0) | 2024.07.18 |
---|---|
[Depth Camera] Luxonis OAK-D Pro W 뎁스AI카메라 FOV 테스트 결과(Depthai Viewer) (0) | 2024.07.01 |
최근댓글