쉽고, 제한되지 않으며, 표준 규격을 준수

소프트웨어 개발이 나아갈 방향

USB3 및 GigE Vision과 같은 비전 프로토콜 및 표준화된 카메라 인터페이스로 GenICam을 사용하면, 머신 비전 어플리케이션 개발을 위한 유용한 구성 요소들을 사용할 수 있습니다.

그러나, 제조업체의 개발 도구가 더 이상 필요하지 않다고 생각하는 사람들은, 아직 IDS peak을 모릅니다.

오늘날 머신 비전 어플리케이션을 개발하는 사람은, EMVA(European Machine Vision Association)의 일반적인 인터페이스 표준 GenICam을 거의 피해갈 수 없습니다. 오늘날, 서로 다른 제조업체들이 카메라를 표준화된 용도로 사용하므로, 많은 통합 프로세스들과 비전 어플리케이션의 출시가 단순화될 뿐 아니라, 사용자가 카메라 하드웨어를 쉽게 교체할 수 있습니다. 또한 IDS Imaging Development Systems GmbH와 같은 산업용 카메라 제조업체의 경우, 카메라가 시장에서 성공하려면 USB3 Vision 및 GigE Vision과 같은 데이터 인터페이스가 반드시 필요하다는 것은 분명합니다. 그 결과, 카메라는 제조업체 별로 드라이버 소프트웨어를 설치할 필요 없이 대부분의 GenICam 호환 어플리케이션에서 자동으로 작동합니다. MVTec의 HALCON과 같은 이미지 처리 어플리케이션에는 이미 호환 가능한 Vision Transport Layer가 포함되어 있기 때문입니다. 사용 가능한 공간이 있거나 제조업체의 개발 패키지가 필요하신가요? GenICam이 이미 표준 규격을 준수하는 머신 비전 어플리케이션을 개발하기 위한 최적의 인터페이스가 아닙니까?

최적의 카메라 인터페이스?

기능을 카메라로 마이그레이션함으로써, 표준화는 근본적이고 필요한 혁신을 가져왔습니다. 그 결과 모든 비전 카메라와의 통신에 사용할 수 있는 매우 다재다능한 소프트웨어 기반이 되었습니다. 모든 모듈들과 기능들은 완전히 카메라 독립적이며, 보편적으로 설계되었습니다. 아주 작은 세부 사항과 파라미터도 개별적으로 처리하고 조정될 수 있어, 셀 수 없을 만큼 많은 조합이 가능합니다. 이는, 사용된 표준 언어의 구문을 실제로 매우 유연하게 만들지만, 결코 쉽고 사용자 친화적이지 않습니다. 단순한 프로그램 시퀀스의 경우에도, 올바른 조합으로 여러 줄의 코드와 파라미터 설정이 필요하고, 이는 프로세스를 오류가 발생하기 쉽고 혼란스럽게 만들 수 있습니다. 전송 레이어를 통한 퓨어 이미지 버퍼 경로(pure image buffer path)와 GenAPI를 통한 카메라 기능을 엄격하게 분리하여 서로 다르게 처리하는 것은, 구조적으로 이해할 수 있지만, 어플리케이션 개발을 더 간단하고 명확하게 만드는 것은 아닙니다.

제품의 프로그래밍 API는 사용자 인터페이스이므로, 얼마나 잘 작동할 수 있는 지에 따라 평가되는 도구입니다. 그리고 긍정적인 사용자 경험만이 제품의 성공에 기여합니다. 인터페이스를 통하여, 카메라 자체와 개발자를 위한 가능성을 나타냅니다. 긍정적인 사용자 경험을 설명하는 중요한 속성은 다음과 같습니다: 쉬움, 직관적임, 유연함, 투명함, 미래 보장성, 지원적임. GenICam 표준의 기술적으로 뛰어난 많은 솔루션들에도 불구하고, 카메라 제조업체는 사용자에게 충분한 지원을 제공할 수 없으며, 그러므로 카메라의 기능만으로는 더 나은 사용자 경험을 제공할 수 없습니다.

"카메라 제조업체가 사용자에게 완전한 소프트웨어 지원을 제공하는 데는 많은 이유들이 있습니다,"

— Maike Strecker, IDS의 제품 매니저, —

여러 세계들 중 최고

IDS는 고객 경험에 기반하여 GenICam과 자체 IDS Software Suite의 장단점을 확인했으며, 여러 측면들에서 IDS peak로 사용자를 지원하고자 합니다. 표준화된 소프트웨어 기반으로서의 GenICam으로 새로운 SDK는, 사용자가 최신 개발 인터페이스의 장점을 포기하지 않고도 사용할 카메라를 선택할 수 있는 자유를 제공합니다. 최적의 사용자 경험을 위하여, 플랫폼에 독립적인 IDS peak SDK는, 소스 코드 샘플에서 전송 레이어까지 필요한 모든 구성 요소를 제공하므로, 고객이 직접 자신만의 어플리케이션 개발을 시작할 수 있습니다. 좋은 부수적 효과로, IDS peak 사용자는, 유일한 연락 창구인 IDS에서 모든 어플리케이션 구성 요소들에 대한 모든 지원을 받을 수 있습니다.

IDS peak는 표준을 단순화합니다

IDS peak는, 어플리케이션 개발자에게 필요한 모든 라이브러리와 소프트웨어 인터페이스를 제공하므로 완전한 SDK(Software Development Kit)를 형성합니다. 추가로, 새로 개발된 객체 지향 프로그래밍 인터페이스는, 기능을 제한하거나 우회하지 않고 GenICam보다 훨씬 사용하기 쉽습니다.

카메라 하드웨어와의 통신은 표준화된 인터페이스와 Vision Transport Layer를 통해서만 이루어지며, IDS peak는 절대적으로 하드웨어 독립적이고 표준 규격을 준수합니다. 모든 USB3 Vision 및 GigE Vision 호환 산업용 카메라와의 교체 가능성 및 호환성이 유지됩니다. 제조사에 따른 제한이 없으며, 서로 다른 제조사의 또는 서로 다른 인터페이스가 장착된 다른 카메라를 혼용해도 문제없이 작동할 수 있습니다.

"우리의 이해하기 쉬운 프로그래밍 인터페이스는 GenTL 및 GenAPI를 통한 직접 액세스에 대한 사용자 친화적인 대안입니다. 또한 특수한 편의 클래스들은, 필요한 코드의 양을 줄여 프로그래밍에 드는 노력을 줄여줍니다,"

— Maike Strecker —

IDS peak는 GenTL 표준에서 정의한 모듈 계층 구조를 기반으로 합니다. 모듈은, 모듈의 명함과 같은 설명자를 통해 액세스할 수 있습니다. 이를 통해 사용 가능하고 오픈되기 전에 모듈로부터 특정 정보를 요청할 수 있습니다. 하위 레이어에 있는 모듈의 기능은, 대응하는 모듈이 오픈되고 사용 가능할 때 “부모-자식 관계”를 통해서만 표시되고 사용할 수 있게 됩니다. 이 개념은 클래스 작업 시 오류를 줄여 주고, 어플리케이션 개발 시간도 단축합니다.

이에 대한 예시는 카메라 기능에 액세스하는 것입니다. 이미 오픈된 카메라를 통해서만 "노드맵(nodemap)"에 액세스 할 수 있습니다. 이렇게 했을 때만, 이 카메라에 대한 자세한 쿼리와 특별 설정을 할 수 있습니다.

카메라의 노드맵을 통해 장치 이름 읽기

// get nodemap of an open camera device
auto remoteNodeMap = camera->RemoteDevice()->NodeMaps().at(0);
// get DeviceModelName from cameras nodemap
auto modelName = remoteNodeMap->FindNode<StringNode>("DeviceModelName")->Value();

표준에서 사용할 수 없는 편의 클래스 및 함수는, 장치 및 메모리를 다루는 것과 같은 반복되는 프로세스의 처리를 단순화합니다. 이러한 모듈 클래스를 사용하면, 필요한 어플리케이션 코드가 줄어들어 카메라 어플리케이션의 가독성과 안정성이 향상됩니다.

DeviceManager 모듈은 연결된 카메라를 찾고 나열하고 여는 것과, 사용 가능한 전송 레이어 및 인터페이스를 관리하는 쉬운 방법입니다. 간단한 업데이트 명령어로, 모듈이 전체 시스템을 스캔하고 완전한 장치 트리가 생성되거나 단 몇 줄의 코드로 특정 카메라가 오픈됩니다. IDS peak DeviceManager 모듈을 사용하여 연결된 카메라를 오픈하는 것은 4줄의 코드면 충분합니다.

IDS peak DeviceManager 모듈로 카메라 열기

// create a device manager object
auto deviceManager = std::make_shared<peak::DeviceManager>();
deviceManager->Update();
// get vector of device descriptors
auto devices() = deviceManager->Devices();
// select and open the first camera
auto device = deviceManager->Devices().at(0)->OpenDevice();

IDS peak는 이러한 모듈들로 지속적으로 확장되고 있습니다. 이미지 획득을 구성하기 위한 단순화 카메라 클래스와 획득 매니저가 이미 계획되어 있습니다. 사용되지 않는 메모리 리소스를 자동으로 해제하는 공유 포인터의 사용 또는 모듈 종속 스레드 보안과 같이 다른 잘 알려진 방법들은, IDS peak를 프로그래머에게 많은 지원과 피드백을 제공하는 최신 객체 지향 프로그래밍 인터페이스로 만들었습니다.

그러나, IDS peak는 GenICam 소프트웨어 기반 덕분에 완전히 카메라 독립적으로 유지되고 카메라 모델 또는 펌웨어 버전으로 연결되지 않는 단 하나의 호스트 소프트웨어입니다. 따라서 어플리케이션 개발자는 IDS peak의 편리함, 지원 및 단순화를 활용할 지 여부를 자유롭게 선택할 수 있습니다. 그러므로, 모든 비전 카메라의 카메라 기능은 다른 GenICam 호환 어플리케이션에서도 사용될 수 있습니다.

새로운 개념, 새로운 소프트웨어, 간단하게 알려짐

IDS는 또한, USB3 Vision 및 GigE Vision 산업용 카메라에 대하여 완전한 소프트웨어 지원을 IDS peak로 제공합니다. 기존 IDS Software Suite의 고객은 이제 Vision World에서 손쉬운 취급과 무제한 제조업체 지원의 혜택을 누릴 수 있습니다. GenICam 표준의 확장에 따라, IDS peak는 쉽고 직관적인 프로그래밍 API를 갖는 표준 규격을 준수하는 SDK일뿐만 아니라, 모든 비전 호환 카메라의 작동, 구성 및 프로그래밍을 위한 독립적인 소프트웨어입니다.

IDS peak로, 카메라 제조업체는 다시 한번 모든 제품을 하나의 소프트웨어 제품군으로 통합합니다. 이는 또 사용자 편의를 제고합니다.