총 7 건
1. C# 샘플 코드 프로젝트 에러 • 제조사에서 제공하는 C# 기본 예제 코드를 실행하면, 아래 그림과 같이 참조 dll에 에러가 표시됩니다. • 프로젝트에 dll 참조가 실패한 모습으로, 다음 슬라이드부터 올바른 설정 방법을 설명합니다. 2. NuGet 패키지 관리자 설정 • 툴 바의 도구 메뉴에서 NuGet 패키지 관리자의 메뉴를 클릭합니다. • 아래 화면과 같이 옵션 창이 표시되면, 버튼을 클릭하여 패키지 소스를 추가합니다. • 새로운 패키지 소스가 추가되면, 하단의 버튼을 클릭합니다. • 패키지 소스 폴더 선택 창이 표시되면, 아래 기본 경로를 지정합니다. C:\Program Files\cxSupportPackage\cxSDK\.NET • 해당 경로에는 아래의 nupkg 파일이 존재합니다. • 패키지 소스 경로가 추가되면 아래 그림과 같이 표시됩니다. 3. NuGet 패키지 설치 • 툴 바의 도구 메뉴에서 NuGet 패키지 관리자의 메뉴를 클릭합니다. • NuGet- 솔루션 화면에서 다음의 순서대로 패키지를 설치합니다. ⓛ 패키지 소스를 Packge source 로 선택 ② Cx...Lib.NET 파일을 차례대로 선택. ③ 프로젝트 파일 선택 후 설치 버튼 클릭. • AT SDK의 NuGet 설치가 완료되면 아래 그림과 같이 표시 됩니다. • 이제 정상적으로 프로젝트 빌드 및 실행이 가능합니다.
2022.10.271. 설치 방법 • CLIP Studio v1.5.0.exe를 실행합니다. • 아래 그림과 같이 Welcome 페이지가 표시됩니다. • 버튼을 클릭합니다. • 라이선스 화면입니다. • CLIP Studio를 설치하기 위해 버튼을 클릭합니다. • 설치 구성 요소 선택 화면입니다. • Files와 Driver는 기본 선택이고, CLIP SDK는 선택 항목입니다. CLIP SDK를 설치하기 위해 체크하고 버튼을 클릭합니다. • 설치 경로 선택화면입니다. 버튼을 클릭하여 설치를 진행합니다. • 설치 과정 중 Microsoft Visual C++ 2013, 2015-2019 Redistributable (x64) 설치 화면이 표시 됩니다. • 이미 설치가 돼있다면, 왼쪽 그림처럼 표시됩니다. 이 때 버튼을 클릭합니다. • 설치가 안되어 있다면, 오른쪽 그림처럼 표시됩니다. 설치 후 버튼을 클릭합니다. • 다음은 Common Vision Blox (x64) 설치 화면입니다. • AT 제품을 사용하기 위한 드라이버를 제공합니다. • 설치 방법은 간단하게 버튼만 클릭하면 됩니다. • 다음은 cxSupportPackage 2.9.0 설치 화면입니다. • AT 제품의 SDK 및 유틸리티가 설치됩니다. • 설치 방법은 간단하게 버튼만 클릭하면 됩니다. • 모든 설치를 완료하면, 아래와 같이 CLIP Studio 프로그램이 실행됩니다.
2022.10.271. CLIP SDK 구성 요소 • CLIP SDK는 사용자 편의를 위해 Wrapping 된 클래스를 제공합니다. * 센서 제어 : cxSDK를 Wrapping 한 ClipSensor.dll * 랜더링 : VTK Library를 Wrapping 한 ClipRenderWindow.dll ※ VTK 9.0.0 사용 < CLIP Studio 프로그램 실행 화면 > • CLIP Studio v1.5.0.exe 를 설치한 기본 경로는 다음과 같습니다. C:\Program Files\Fainstec\CLIP Studio • 하위 경로인 SDK 폴더에는 아래의 파일이 존재합니다. * CLIP : dll, lib, h * Sample Code : MFC, CS * ThirdParty : VTK Library 2. CLIP SDK 주의 사항 • AT SDK의 PointCloud.h에는 OpenCV를 사용하고 있습니다. C:\Program Files\cxSupportPackage\cxSDK\cx3dLib\wrapper\cpp\include\AT\cx\c3d • ClipSensor.dll 은 OpenCV를 사용하지 않으므로, 오른쪽 그림과 같이 주석 처리합니다. • RenderWindow.dll에서 제공하는 RenderWindow2D, RenderWindow3D를 사용하기 위해서는 CLIP License가 필요합니다. • License가 없으면 왼쪽 그림처럼 예외 메시지가 발생합니다. • License가 있다면, 오른쪽 그림과 같이 RenderWindow가 동작합니다. 3. MFC 샘플 코드 • MFC 샘플 코드 - 프로젝트 설정 MFC에서 CLIP SDK를 사용하기 위한 설정입니다. (예제 코드 프로젝트에 기본으로 경로가 설정되어 있습니다.) • 프로젝트 속성 > 디버깅 > 환경에 아래의 경로를 설정합니다. path=$(CX_SDK_ROOT_64)\bin;$(CLIP_SDK_ROOT)\CLIP\bin;$(CLIP_SDK_ROOT)\ThirdParty\VTK\Debug\bin; • 프로젝트 속성 > C/C++ > 일반 > 추가 포함 디렉터리에 아래의 경로를 설정합니다. • 프로젝트 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리에 아래의 경로를 설정합니다. MFC 샘플 코드 - ExamAcquisition2D • 프로젝트 빌드 후 실행하면, 아래 그림과 같이 2D 라이브 영상을 취득할 수 있습니다. MFC 샘플 코드 - ExamAcquisition2D • 프로젝트 빌드 후 실행하면, 아래 그림과 같이 스캔 된 3D 데이터를 취득 할 수 있습니다. 4. C# 샘플 코드 C# 샘플 코드 - dll 참조 • C# 프로젝트의 참조에 ClipSensor_NetApi_d.dll 또는 ClipSensor_NetApi.dll 을 추가합니다. (RenderWindow 사용 시 ClipRenderWindow_NetApi.dll 도 추가해야 합니다.) • Debug 또는 Release 설정에 따른 Bin 폴더에 아래의 dll을 추가합니다. • AT Sensor dlls -> C:\Program Files\cxSupportPackage\cxSDK\bin • VTK dlls -> Debug: C:\Program Files\Fainstec\CLIP Studio\SDK\ThirdParty\VTK\Debug\bin -> Release : C:\Program Files\Fainstec\CLIP Studio\SDK\ThirdParty\VTK\Release\bin C# 샘플 코드 - ExamAcquisition2D • 프로젝트 빌드 후 실행하면, 아래 그림과 같이 2D 라이브 영상을 취득할 수 있습니다. C# 샘플 코드 - ExamAcquisition3D • 프로젝트 빌드 후 실행하면, 아래 그림과 같이 스캔 된 3D 데이터를 취득할 수 있습니다.
2022.10.271. 소개 SDK 소개 Spinnaker SDK는 머신 비전 개발자를 위해 구축된 FLIR의 차세대 API라이브러리 입니다. GigE, 10GigE, USB3 Vision 인터페이스만 연결이 가능합니다. Spinnaker SDK 주요 구성 AdapterConfigGUI 네트워크 어댐터 및 카메라 IP설정을 도와주는 툴입니다. SpinView 다수의 카메라 이미지 취득과 제어를 할 수 있는 툴입니다. 지원 환경 2. SDK 환경 설정 라이브러리 참조 방법 ‘프로젝트 속성 > C/C++ > 일반 > 추가 포함 디렉터리’에 라이브러리 include 경로를 추가합니다. 기본 경로: C:\Program Files\FLIR Systems\Spinnaker\include ‘프로젝트 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리’에 라이브러리 lib 경로를 추가합니다. 기본 경로: C:\Program Files\FLIR Systems\Spinnaker\lib64\vs2015 ‘프로젝트 속성 > 링커 > 입력 > 추가 종속성’에 lib 파일을 추가합니다. lib 파일: Spinnakerd_v140.lib(Debug 용) / Spinnaker_v140.lib(Release 용) C# ‘프로젝트 > 참조’에 SpinnakerNET_v140.dll 을 추가합니다. (Debug Mode는 SpinnakerNETd_v140.dll ) 만약, GUI를 사용한다면 SpinnakerNETGUI_v140.dll 을 추가합니다. 기본 경로: C:\Program Files\FLIR Systems\Spinnaker\bin64\vs2015 다음의 네임스페이스를 추가합니다. 3. 예제 코드 설명 공식 예제 코드 및 레퍼런스 메뉴얼 기본 설치 경로에 언어 별 예제 코드가 제공 됩니다. 언어 별 레퍼런스 메뉴얼은 아래 경로에 제공 됩니다. 주요 예제 코드 Acquisition 카메라를 연결/해제하고 이미지 데이터를 취득하는 예제 코드. AcquisitionUserBuffer 카메라를 연결/해제하고 이미지 데이터를 사용자 버퍼로 연결하는 예제 코드. AcquisitionMultipleCameraRecovery 동작 중 카메라 연결이 끊겼을 때 이벤트와 다시 연결하는 방법을 보여주는 예제 코드. ExceptionHandling SDK 예외 처리 방법을 보여주는 예제 코드. Exposure 카메라의 노출 시간을 설정하는 예제 코드. Trigger 카메라를 트리거 모드로 변경하고 이벤트에 따라 이미지 데이터를 취득하는 예제 코드. SpinSimpleGUI_MFC WPF GUI 모듈을 사용하는 예제 코드. 디버그 모드에서는 사용 불가. Spinnaker GUI Spinnaker SDK는 WPF GUI 모듈을 제공합니다. Image Drawing Window Camera Selection Window Property Grid Window 설정 방법 WOF 기반으로 제작된 객체이기 때문에 MFC 프로젝트에서 사용 시 별도의 설정이 필요합니다. MFC InitInstance() 함수에 아래 코드를 삽입 합니다. "프로젝트 속성 > 링커 > 입력 > 추가 종속성"에 아래의 lib 파일을 추가합니다. lib 파일: SpinnakerGUI_WPFd_v140.lib(Debug 용) / SpinnakerGUI_WPF_v140.lib(Release 용) ‘프로젝트 속성 > 링커 > 입력 > 지연 로드된 DLL’에 아래의 dll 파일을 추가합니다. 주의 사항 코드 사용 방법은 SpinSimpleGUI MFC 예제 코드를 참고 합니다. Debug 모드에서 실행하면 액세스 위반 에러 메세지가 발생 합니다. WPF GUI 모듈은 Release 모드로 빌드한 exe 파일을 실행했을 때에만 정상 동작 합니다. 화인스텍 예제 코드 사용자가 쉽게 SDK를 사용할 수 있도록 Wrapping Class를 제공한 예제 코드를 제공 합니다. 예제 코드 이름 : FTech_SpinnakerEx MFC Dialog 기반 솔루션 구성 예제 코드 이름 : FTech_SpinnakerEx LostAndRecovery 카메라 끊김 및 재연결 예제 코드. MultiCamera_Async 최대 4대의 카메라를 연결하는 예제 코드. 카메라의 이미지 획득과 버퍼 획득이 비순차적으로 수행되는 예제 코드. SingleCamera_Sync 1대의 카메라를 연결하는 예제 코드. 카메라의 이미지 획득과 버퍼 획득이 순차적으로 수행되는 예제 코드. LostAndRecovery 카메라를 연결하면 DeviceLostThread가 동작하고, Device Lost 상태를 체크합니다. 만약 Device Lost가 발생하면 카메라 핸들을 해제 (Close) 합니다. 그리고 Re-Open을 N회 시도 합니다. 동작 흐름 MultiCamera_Async 동작 설명 카메라가 이미지를 그랩(Grab)하는 것과 이미지 버퍼를 취득하는 동작이 비동기적(Asynchronous)으로 진행됩니다. 최대 4대의 카메라를 연결할 수 있도록 구현되어 있습니다. OnBnClickedBtnConnection() 함수에 카메라 연결이 구현되어 있습니다. SetEnableImageCallback(true)를 호출하여 카메라 객체의 이미지 콜백을 활성화합니다. 카메라 객체는 가장 마지막 버퍼를 보관하고 있습니다. 이미지 그랩 여부는 m_grabDone 핸들로 확인합니다. 카메라 연결 후 Main Dialog에서 DisplayThread를 구동합니다. "Bayer To color" 버튼의 체크 여부에 따라 Mono(Bayer8) 또는 RGB24 영상이 그려집니다. Color Conversion이 필요한 경우 체크합니다. SingleCamera Sync 동작 설명 카메라가 이미지를 그랩(Grab)하는 것과 이미지 버퍼를 취득하는 동작이 동기적(Synchronous)으로 진행됩니다. 1대의 카메라를 연결할 수 있도록 구현되어 있습니다. OnBnClickedBtnConnection() 함수에 카메라 연결이 구현되어 있습니다. SetEnableImageCallback(false)를 호출합니다. 이미지 콜백을 사용하지 않는 설정입니다. Start() 후 Grab() 함수를 호출하여 타임아웃 시간 내에 버퍼를 취득합니다. Acquisition Start인 Start() 함수를 호출합니다. Software Trigger Mode라면 트리거 이벤트인 TriggerSoftware를 호출합니다. Color Conversion이 필요한 경우 ColorConversion() 함수를 호출합니다.
2022.10.241. SDK 소개 Pleora에서 제공하는 eBUS SDK는 비전 시장에서 수십 년간의 전문 지식을 바탕으로 구축된 Vision SDK 입니다. JAI 카메라는 Pleora eBUS SDK를 사용하여 비전 애플리케이션을 개발 할 수 있습니다. eBUS SDK 주요 구성 eBUS Player Gige Vision과 USB3 Vision 카메라 호환이 가능한 프로그램 입니다. 카메라 제어 및 영상 취득이 가능합니다. eBUS Universal Pro Driver NIC 및 USB 3.0 컨트롤러의 기존 드라이버 성능을 향상 합니다. CPU 사용률을 최소화하면서 이미지 수집 처리량 및 성능을 높이고 대기 시간과 지터를 줄여주는 역할을 합니다. 2. SDK 환경 설정 c++ ‘프로젝트 속성 > C/C++ > 일반 > 추가 포함 디렉터리’에 라이브러리 include 경로를 추가합니다. 기본 경로: C:\Program Files\JAI\eBUS SDK\Includes 또는 $(PUREGEV_ROOT)\Includes ‘프로젝트 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리’에 라이브러리 lib 경로를 추가합니다. 기본 경로: C:\Program Files\JAI\eBUS SDK\Libraries 또는 $(PUREGEV_ROOT)\Libraries C# 플랫폼에 맞는 ‘프로젝트 > 참조’에 PvDotNet.dll과 PvGUIDotNet.dll을 추가합니다. 기본 경로: C:\Program Files (x86)\Common Files\Pleora\eBUS SDK\PvDotNet.dll 및 PvGUIDotNet.dll 다음의 네임스페이스를 추가합니다. 3. 예제 코드 설명 공식 예제 코드 기본 설치 경로에 C++ 및 C# 예제 코드가 제공 됩니다. C++/C# 폴더 별 예제 코드 문서가 제공 됩니다. 주요 예제 코드 PvStreamSample 카메라를 어떻게 연결/해제하고 영상을 취득하는지 보여주는 콘솔 버전의 예제 코드. 스트리밍을 위한 버퍼 리스트를 직접 생성하고 해제하여 버퍼를 관리하는 방식. PvPipelineSample 카메라를 어떻게 연결/해제하고 영상을 취득하는지 보여주는 콘솔 버전의 예제 코드. PvPipeline class를 사용하여 버퍼를 관리하는 방식. SimpleGUIApplication 카메라를 어떻게 연결/해제하고 영상을 취득하는지 보여주는 MFC Dialog 버전의 예제 코드. DeviceFinder 시스템에 존재하는 카메라를 탐색하는 예제 코드. ConnectionRecovery 카메라 구동 중 연결이 끊어졌을 때의 이벤트를 발생하고, 어떻게 다시 연결하는지 보여주는 예제 코드. GenICamParameters Communication, Stream 그리고 카메라 파라미터에 어떻게 접근하는지 보여주는 예제 코드. LostAndRecovery 동작 설명 카메라를 연결하면 DeviceLostThread가 동작하고 , Device Lost 상태를 체크 합니다. 만약 , Device Lost가 발생하면 카메라 핸들을 해체 (Close) 합니다. 그리고 Re_Open을 N회 시도 합니다. 동작 흐름 MultiCamera_Async 동작 설명 카메라가 이미지를 그랩(Grab)하는 것과 이미지 버퍼를 취득하는 동작이 비동기적(Asynchronous)으로 진행됩니다. 최대 4대의 카메라를 연결할 수 있도록 구현되어 있습니다. OnBnClickedBtnConnection() 함수에 카메라 연결이 구현되어 있습니다. SetBufferThread(true)를 호출하여 카메라 객체 내부의 버퍼 스레드를 구동합니다. 내부 버퍼 스레드가 구동하여, 카메라 객체는 가장 마지막 버퍼를 보관하고 있습니다. 이미지 그랩 여부는 m_grabDone 핸들로 확인합니다. 카메라 연결 후 Main Dialog에서 DisplayThread를 구동합니다. 버튼의 체크 여부에 따라 Mono(Bayer8) 또는 RGB24 영상이 그려집니다. Color Conversion이 필요한 경우 체크합니다. SingleCamera_Sync 동작 설명 카메라가 이미지를 그랩(Grab)하는 것과 이미지 버퍼를 취득하는 동작이 동기적(Synchronous)으로 진행됩니다. 1대의 카메라를 연결할 수 있도록 구현되어 있습니다. OnBnClickedBtnConnection() 함수에 카메라 연결이 구현되어 있습니다. SetBufferThread(false)를 호출합니다. 내부 버퍼 스레드를 사용하지 않는 설정입니다. Start() 후 Grab() 함수를 호출하여 타임아웃 시간 내에 버퍼를 취득합니다. Acquisition Start인 Start() 함수를 호출합니다. Software Trigger Mode라면 트리거 이벤트인 를 호출합니다. Color Conversion이 필요한 경우 ColorConversion() 함수를 호출합니다.
2022.10.211.증상 및 원인 증상 : eBus Player for JAI에 U3V 카메라는 인식이 되지만 , 아이콘이 나타나면서 카메라 연결 불가 원인 : U3V Driver가 Pleora가 아닌 다른 Driver로 인식되어 연결 불가 2. 조치 사항 장치 관리자에 인식된 JAI U3V 카메라의 Driver를 제거 합니다. 장치 관리자에서 카메라 모델명을 더블클릭하여 속성창을 활성화 합니다. 드라이버 탭에서 디바이스 제거를 클릭 합니다. 체크 한뒤 , 제거를 클릭 합니다. 제거가 완료되면 USB3.0 케이블을 재연결 합니다. 3. 동작 확인 장치 관리자에서 USB3 Vision Device로 인식되는지 확인 합니다. eBus Player For JAI 프로그램에서 Driver 정상 인식되는지 여부를 확인 합니다.
2022.10.201. 소개 GenICam 표준에 맞춰 개발한 Sentech SDK로, Sentech 카메라만 연결할 수 있습니다. GigE, CXP, USB3 Vision, USB 3.0 인터페이스만 연결 가능합니다. Sentech SDK 주요 구성 GigECameraIPConfig_VC141_x64 : 카메라의 IP 설정을 도와주는 툴입니다. StFWUpdater_VC141_x64 : 카메라의 펌웨어 업데이트 툴입니다. StGevDelay : 다수의 GigE 카메라를 사용할 때 Packet Delay를 계산하기 위한 툴입니다. StNICConfig_x64 : 네트워크 어댑터의 설정을 도와주는 툴입니다. StPowerCtrl_x64 : 윈도우 전원 옵션 제어를 도와주는 툴입니다. StViewer_VC141_x64 : 다수의 카메라 이미지 취득과 제어를 할 수 있는 툴입니다. 2. SDK 환경 설정 C++‘프로젝트 속성 > C/C++ > 일반 > 추가 포함 디렉터리’에 라이브러리 include 경로를 추가합니다. 기본 경로: C:\Program Files\OMRON_SENTECH\SentechSDK\v1_1\Development\Include 또는 $(STAPI_ROOT_PATH)Includes ‘프로젝트 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리’에 라이브러리 lib 경로를 추가합니다. 기본 경로: C:\Program Files\OMRON_SENTECH\SentechSDK\v1_1\Development\lib 또는 $(STAPI_ROOT_PATH) Iib라이브러리 참조 방법 C# 플랫폼에 맞는 ‘프로젝트 > 참조’에 GenApiDotNet.dll과 StApiDotNet.dll을 추가합니다. 기본 경로: C:\Program Files\Common Files\OMRON_SENTECH\StApi\v1_1.Net 버전에 따라 알맞은 dll을 선택합니다. 다음의 네임스페이스를 추가합니다. 3. 예제 코드 설명 기본 설치 경로에 언어 별 예제 코드가 제공됩니다. 언어 별 레퍼런스 매뉴얼은 아래 경로에 제공됩니다. AllocateStreamBuffersManually : 사용자 버퍼를 연동하여 이미지를 취득하는 예제 코드. EventDeviceLost : 카메라 구동 중 연결이 끊어졌을 때의 이벤트를 발생하고, 어떻게 다시 연결하는지 보여주는 예제 코드. FrameStartTrigger : Software Trigger를 발생하여 이미지를 취득하는 예제 코드. GigEConfigurations : 카메라 IP 주소와 Heartbeat Timeout을 설정하는 예제 코드. Grab : 카메라를 연결/해제하고 이미지 데이터를 직접 취득하는 예제 코드. GrabCallback : 카메라를 연결/해제하고 이미지 데이터를 콜백 함수에서 취득하는 예제 코드. OpenCV : 3'rd party library에 이미지 버퍼를 연동하는 예제 코드.주요 예제 코드 사용자가 쉽게 SDK를 사용할 수 있도록 Wrapping Class를 제공한 예제 코드를 제공합니다. 예제 코드 이름: FTech_SentechEx C# WinForm과 MFC Dialog 기반. 솔루션 구성 LostAndRecovery : 카메라 끊김 및 재연결 예제 코드. MultiCamera_Async : 최대 4대의 카메라를 연결하는 예제 코드. 카메라의 이미지 획득과 버퍼 획득이 비순차적으로 수행되는 예제 코드. SingleCamera_Sync : 1대의 카메라를 연결하는 예제 코드. 카메라의 이미지 획득과 버퍼 획득이 순차적으로 수행되는 예제 코드.화인스텍 예제 코드 동작 설명 카메라를 연결하면 DeviceLostThread가 동작하고, Device Lost 상태를 체크합니다. 만약, Device Lost가 발생하면 카메라 핸들을 해제(Close)합니다.그리고 Re-Open을 N회 시도합니다. 동작 설명 카메라가 이미지를 그랩(Grab)하는 것과 이미지 버퍼를 취득하는 동작이 비동기적(Asynchronous)으로 진행됩니다. 최대 4대의 카메라를 연결할 수 있도록 구현되어 있습니다. OnBnClickedBtnConnection() 함수에 카메라 연결이 구현되어 있습니다. SetEnableImageCallback(true)를 호출하여 카메라 객체의 이미지 콜백을 활성화합니다. 카메라 객체는 가장 마지막 버퍼를 보관하고 있습니다. 이미지 그랩 여부는 m_grabDone 핸들로 확인합니다. 카메라 연결 후 Main Dialog에서 DisplayThread를 구동합니다. 버튼의 체크 여부에 따라 Mono(Bayer8) 또는 RGB24 영상이 그려집니다. Color Conversion이 필요한 경우 체크합니다.MultiCamera_Async연결Grab Done?N처리Y영상 취득 시작 동작 설명 카메라가 이미지를 그랩 (Grab) 하는 것과 이미지 버퍼를 취득하는 동작이 동기적(Synchronous)으로 진행 됩니다. 1대의 카메라를 연결할 수 있도록 구현되어 있습니다. OnBnClickedBtmConnection() 함수에 카메라 연결이 구현되어 있습니다. SetEnableImageCallback(False)를 호출 하여 콜백을 하지 않는 설정을 합니다.
2022.10.19