튜토리얼

pylon: 실시간 및 고성능을 위한 USB3 비젼시스템

Windows 및 Linux용 시스템 최적화

이 튜토리얼에서는 애플리케이션에서 최대 성능을 달성하기 위해 pylon에서 단일 카메라 구성을 설정하는 방법을 학습합니다. 본 내용은 카메라, 호스트 컨트롤러, 케이블을 고려한 USB3 Vision 시스템 최적화에 중점을 둡니다.

빠른 시작 - 안정적인 스트리밍을 위한 5단계

  1. 카메라를 pylon Viewer에서 열기: 연결 상태, 드라이버, 펌웨어가 정상적으로 동작하는지 확인합니다.

  2. 드라이버 및 시스템 구성 설정: 최신 호스트 컨트롤러 드라이버 적용 및 적절한 운영체제 설정(예: 실시간 우선순위)을 구성합니다.

  3. 대역폭 제어 최적화: 사용 가능한 USB 대역폭을 합리적으로 제한하고 균형 있게 분배하여 데이터 손실을 방지합니다.

  4. 스트리밍 파라미터 최적화: 최대 전송 크기, USB Request Blocks(URB) 수, 버퍼 크기를 조정하여 효율적인 데이터 전송과 최소한의 CPU 부하를 구현합니다.

  5. 모니터링 및 오류 분석 활용:연속 그랩을 시작하고 통계 카운터를 통해 프레임 손실, 재동기화, 메모리 문제 등을 확인하여 시스템 병목을 조기에 감지합니다.

전체 시스템 성능을 위한 요구 사항

  • USB 3.0 케이블: 산업용 품질, 고품질 부품으로 전송 오류를 줄이고 시스템 안정성을 높입니다.

  • 고품질 호스트 컨트롤러(USB 컨트롤러): 최신 드라이버를 사용하는 것이 중요합니다. 구형 또는 성능이 낮은 컨트롤러는 대역폭 병목, 재동기화 오류, 프레임 손실의 원인이 될 수 있습니다.

  • 충분한 PC 메모리(RAM): 특히 대용량 전송 크기를 사용하는 환경에서 중요합니다.

아래에서는 pylon에서 비전 시스템의 최대 성능을 달성하기 위해 설정할 수 있는 파라미터를 설명합니다. 카메라 설정은 Windows와 Linux에 동일하게 적용됩니다. Linux의 추가 시스템 파라미터는 별도로 안내됩니다.

USB 3.0 카메라를 위한 최적의 설정

카메라 설정은 데이터 전송의 안정성과 성능에 큰 영향을 미칩니다. 핵심 목표는 대역폭을 최적으로 조정하고 오류를 방지하는 것입니다.

pylon 뷰어에서 다음 두 가지 파라미터는 대역폭과 안정성에 특히 큰 영향을 미칩니다.

  • 장치 링크 처리량 제한 모드 :전체 대역폭 제어 기능을 활성화하거나 비활성화합니다. 권장 설정: 호스트 컨트롤러의 대역폭이 제한된 경우 활성화

  • 장치 링크 처리량 제한카메라가 데이터 전송에 사용할 수 있는 최대 대역폭을 설정합니다.
    이 값을 낮추면 시스템 병목을 방지할 수 있습니다.

pylon에서 모든 기능트리로 이동한 후 공통작업에서 프레임 속도 제어를 선택합니다. 카메라 파라미터는 장치 제어항목에서 확인할 수 있습니다.

Windows용 USB3 매개변수 설정

다음 5가지 USB3 파라미터는 pylon의 스트림 매개변수에서 설정합니다.
올바르게 설정하면 CPU 부하를 줄이면서 비전 시스템의 성능과 안정성을 향상시킬 수 있습니다.

  • 최대 전송 크기(MaxTransferSize)
    이미지 전송을 위한 스트림 패킷 크기를 설정합니다(GigE의 점보 프레임과 유사한 개념). 값이 클수록 성능이 향상되고 CPU 부하는 감소합니다. USB 호스트 컨트롤러에 따라 최대 4 MB까지 설정할 수 있습니다.

  • 최대 대기 중인 URB 수 (NumMaxQueuedUrbs)
    URB는 USB 요청블럭으로, 동시에 처리할 수 있는 USB 요청을 의미합니다.
    카메라와 호스트 컨트롤러가 서로 최적으로 동작하도록 설정하는 데 사용됩니다.
    더 높은 값을 설정하면 지터가 줄어들고 데이터 전송이 더욱 안정적으로 이루어집니다(제한: PC의 사용 가능한 RAM). 기본값 = 64

  • 최대 버퍼 수(MaxNumBuffer)
    이미지 버퍼의 개수입니다. 이미지 처리가 일시적으로 오래 걸리는 경우 값을 증가시키는 것이 좋습니다. 기본값 = 10

  • 큐에 등록된 버퍼 수(NumQueuedBuffers)
    버퍼 개수와 이미지 획득의 안정성을 보여주는 지표입니다. 값이 감소하는 경우 이미지 손실이 발생하고 있을 가능성이 있습니다.

  • 전송 루프 스레드 우선순위 (TransferLoopThreadPriority)
    USB 전송을 처리하는 스레드의 우선순위를 설정합니다. 최대 성능을 위해 pylon Viewer를 관리자 권한으로 실행하고 우선순위를 15에서 25까지(최대 31) 높이는 것을 권장합니다.

모든 기능 트리로 이동하여 .공통 작업에서 카메라가 이미지 데이터를 손실하고 있는지 확인을 선택합니다. USB3 파라미터는 스트림 파라미터 항목에서 확인할 수 있습니다.

Linux에서 USB3 Vision 설정 최적화

카메라 설정은 Windows와 동일합니다. 그러나 Linux에서는 몇 가지 추가 시스템 파라미터가 중요합니다.

  • 수신 스레드 우선순위
    이미지 전송을 위해 스레드는 실시간 우선순위를 가져야 합니다.

  • USB-FS 커널 공간 증가

    • USB 전송 시 커널 메모리에서 발생할 수 있는 병목을 방지

    • 특히 중요한 경우: 대용량 전송 크기

  • 파일 핸들 제한 / 파일 디스크립터 증가

    • 대용량 패킷 크기를 사용하는 환경에서 중요

    • 시스템 및 워크로드에 따른 사용자 지정

Linux에서 다양한 시스템 파라미터 설정

라이브 데모: 튜닝 옵션

라이브 데모에서는 pylon Viewer에서 다양한 파라미터를 설정하여 시스템이 최적의 성능과 안정성으로 동작하도록 구성하는 방법을 확인할 수 있습니다. 설정을 변경하려면 pylon Viewer를 관리자 권한으로 실행해야 합니다.

설정에는 Windows PC, USB3 카메라, pylon 소프트웨어가 포함됩니다.

문제 해결 및 동작 상태 모니터링

pylon은 초기 단계에서 문제를 나타내는 몇 가지 통계 매개 변수를 제공합니다:

  • 실패한 버퍼 수입: 손상되었거나 폐기된 이미지 수를 의미합니다. 이미 오류가 발생하고 있음을 나타냅니다(예: 대역폭 병목).

  • 프레임 수를 놓침: 카메라는 이미지를 캡처했지만 전송하지 못한 경우를 의미합니다. 예를 들어 카메라 내부 버퍼가 너무 빠르게 가득 찬 경우 발생합니다.
    → 원인 가능성: 프레임 속도가 너무 높음, 호스트 컨트롤러 대역폭이 부족함

  • 재동기화 횟수: 치명적인 오류가 발생하여 호스트 컨트롤러가 연결을 재설정한 횟수입니다. → 결과: 카메라 버퍼에 저장되어 있던 모든 이미지가 손실됩니다.
    원인: 호스트 컨트롤러 과부하, 케이블 불량, 전원 공급 품질 문제

정밀한 분석을 위해: 파일럿 뷰어 열기 → 모든 기능 → 스트림 매개변수 → 통계 값 관찰하기

pylon에서 모든 기능 트리로 이동한 후 공통 작업에서

파라미터(화면 오른쪽 기능 영역)를 마우스 오른쪽 버튼으로 클릭하면 상세 설명과 소스 코드 예제가 포함된 제품 문서에 접근할 수 있습니다. 이 문서는 인터넷 연결 없이도 pylon Viewer에서 언제든지 확인할 수 있습니다.

Basler 제품 문서

최적화된 USB3 Vision 시스템

USB3 Vision 시스템의 성능과 신뢰성은 항상 여러 요소가 최적으로 상호 작용하는지에 따라 결정됩니다.

  • 고품질 하드웨어:산업용 USB3 케이블현재 호스트 컨트롤러

  • 최적화된 카메라 설정: 대역폭 제어, 패킷 크기, 지연 시간

  • pylon에서의 올바른 USB3 파라미터 설정: 전송 크기, URB, 버퍼 관리, 스레드 우선순위

  • 통계 파라미터를 통한 시스템 모니터링: 실패한 버퍼 수, 누락된 프레임 수, 재동기화 횟수

  • Linux에서 추가 최적화 : 실시간 스레드, 커널 공간, 파일 핸들 제한

올바르게 구성된 단일 카메라 시스템은 안정적이고 이미지 손실이 없는 고성능 실시간 이미지 전송을 구현할 수 있습니다.

USB 3.0 시스템용 제품

유사한 솔루션을 구현하시겠습니까? ‍도움이 ‍될 ‍수 있는 ‍제품은 다음과 같습니다.

어떻게 도와드릴까요?

제품 선택에 대한 조언을 드리고 고객의 ‍어플리케이션에 적합한 솔루션을 찾아드립니다.