🧪 새 튜토리얼이 계속 업데이트 중 — 로봇 팔부터 센서까지
본문으로 건너뛰기

Jetson CSI 카메라

스토어에서 구매

제품 개요

JUXI CSI 카메라 모듈은 NVIDIA Jetson Orin 개발자 키트용으로 설계되었으며, CSI(Camera Serial Interface)를 통해 저지연·고대역폭 영상 전송을 제공합니다. AI 비전 추론, 로봇 인지, 엣지 컴퓨팅 시나리오에 적합합니다.

특징:

  • CSI-2 인터페이스, Jetson Orin 개발 보드에 직접 연결
  • OpenCV / GStreamer 기반 즉시 사용 가능한 예제
  • 저지연 영상 전송
  • UVC 프로토콜 호환

제품 사양

항목사양
인터페이스CSI-2 (MIPI)
호환 플랫폼NVIDIA Jetson Orin 시리즈
영상 형식RAW / YUV
SDK 지원JetPack 5.0+
소프트웨어 프레임워크GStreamer / OpenCV

빠른 시작

하드웨어 연결

  1. Jetson Orin 전원 끄기
  2. CSI 플랫 케이블 한쪽을 카메라 모듈에 연결
  3. 케이블 반대쪽을 Jetson Orin 개발 보드의 CSI 커넥터에 삽입
  4. 케이블 방향 확인(금속 접점이 보드 방향)

⚠️ 주의: CSI 플랫 케이블은 반드시 전원을 끈 상태에서 연결하세요. 하드웨어가 손상될 수 있습니다.

장치 인식 확인

bash
# Check CSI camera devices
ls /dev/video*

# View detailed info with v4l2
v4l2-ctl --list-devices
v4l2-ctl --list-formats-ext -d /dev/video0

Python 코드 예제

의존성 설치:

bash
sudo apt install -y python3-opencv

GStreamer + OpenCV로 CSI 카메라 캡처:

python
import cv2

# GStreamer pipeline for the CSI camera
def gstreamer_pipeline(
    sensor_id=0,
    capture_width=1920,
    capture_height=1080,
    display_width=960,
    display_height=540,
    framerate=30,
    flip_method=0,
):
    return (
        "nvarguscamerasrc sensor-id=%d ! "
        "video/x-raw(memory:NVMM), "
        "width=(int)%d, height=(int)%d, "
        "format=(string)NV12, framerate=(fraction)%d/1 ! "
        "nvvidconv flip-method=%d ! "
        "video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! "
        "videoconvert ! "
        "video/x-raw, format=(string)BGR ! appsink"
        % (
            sensor_id,
            capture_width,
            capture_height,
            framerate,
            flip_method,
            display_width,
            display_height,
        )
    )

cap = cv2.VideoCapture(gstreamer_pipeline(), cv2.CAP_GSTREAMER)

if not cap.isOpened():
    print("Failed to open CSI camera")
    exit()

while True:
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow('CSI Camera', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

기본 캡처(UVC 모드로 동작하는 경우):

python
import cv2

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)

while True:
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow('Camera', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

자주 묻는 질문

Q: 카메라가 인식되지 않나요?

A: 먼저 플랫 케이블 연결과 방향을 확인하세요. ls /dev/video*로 디바이스 노드를 확인합니다. 그래도 인식되지 않으면 JetPack을 재설치해 보세요.

Q: GStreamer 파이프라인 오류가 발생하나요?

A: JetPack 버전이 5.0 이상인지 확인하세요. apt list --installed | grep nvarguscamerasrc로 관련 GStreamer 플러그인이 설치되었는지 확인합니다.

Q: 카메라를 전환하려면?

A: sensor-id 매개변수를 변경하세요: sensor_id=0은 첫 번째 카메라, sensor_id=1은 두 번째입니다.

기술 지원