2017. 1. 23. 09:15ㆍ장비제어개발관한이야기
자동화 장비 개발을 하다 보면 사람으로 치자면 눈이라고 하는 부분, 카메라 제어를 해야 하는 프로젝트가 거의 대부분이라고 할 수 있습니다.
전문가 수준이 아니더라도, 어느 정도 제어하기에 지식이 있어야 되서 오늘 포스팅 내용은 장비제어 - 카메라편입니다. 저도 그렇게 카메라에 대해서 전문가는 아니지만, 딱 제어 할수 있을 정도만 알고 있습니다.
보통 제어파트에 있는 개발자가 그렇듯이 뭔지는 몰라도 제어 해야 하는 그런 부분이라고 생각됩니다.
보통 신규 카메라를 제어하기 위해서는 원론적으로 다음과 같은 단계를 거칩니다.
- 카메라 업체선정
- 카메라 데모
- 업체에서 소스 전달받음
- 자체 카메라 클래스와 인터페이스
- 테스트
기본적으로 소스를 받기 때문에 어려움이 없습니다.
물론, 기존에 많이 쓰는 기능 외에 다른 기능을 쓰기 위해서는 일단 그런 기능이 있다는 사실을 알아야 되지만 카메라 업체 선정만 잘한다면 큰 무리가 없습니다. 카메라 자체가 상당히 고가라서 지원이 상당히 좋습니다.
업체선정에 앞서 간략하게 필요한 지식을 정리하자면 크게 카메라 종류,프레임그레버의 종류 이 정도도 만 알아도 카메라를 제어 하는데 큰 어려움이 없을꺼라 생각되어 집니다.
카메라의 종류
- 에어리어 카메라
- 라인 스캔 카메라
위에 두 가지로 나뉩니다. 저 안에서도 여러가지로 나누어지지만, 크게 나누면 저 2종류로 나누어 집니다. 장비제어 측면에서도 저 두가지가 제어 방식에 차이가 있습니다.
에어리어 카메라는 말 그대로 우리가 일반적으로 알고 있는 카메라로서, 면으로 화면이 취득되어 집니다.
한마디로 폰카랑 같은 방식으로 보시면 됩니다.
라인 스캔 카메라가 조금 틀린 방식인데 한줄의 선으로 면을 만든다고 생각하시면 됩니다.
폰카에서 파노라마 기능이라고 보시면 이해하는데 편할 꺼라 생각합니다.
아래와 같이 한 라인의 영상을 취득한후 합쳐서 한 화면의 영상을 만들게 됩니다.
프레임그래버와 종류
보통 F/G라고 간단히 말하는 것으로 카메라와 PC간의 고속통신에 쓰이는 부분이라고 보시면 간단합니다.
카메라업체에서는 공통된 인터페이스로 구현을 하고 프레임 그레버는 거기에 맡춰서 PC와 데이터 전송부 부분을 각 업체의 노하우에 따라 영상을 전달해줍니다.
그래서, 이 공통된 인터페이스에 이름이 있습니다.
CameraLink, CoaxExpress 등이 대표적인데 최근에는 CoaxExpress를 많이 쓰는 추세입니다.
이게 편한것이 개발자 입장에서는 카메라 종류는 상관없이 인터페이스에 따라 개발하면 되는 부분이 있습니다.
한마디로, 개발자는 카메라의 메이커에 따라 종속적이 아니라, 프레임그레버의 라이브러리에 따라 종속적입니다.
앞으로 개발할때도 그 점을 유념해서 개발하는것이 좋을듯합니다.
다음 포스팅도 카메라에 대해서 작성할 예정인데 최종적인 내용은 카메라 제어을 위한 소스코드의 설명입니다.
그에 앞서 간략하게 설명한 비전문가의 카메라 설명이었습니다.
'장비제어개발관한이야기' 카테고리의 다른 글
파일관련 유틸 클래스 (0) | 2017.02.02 |
---|---|
장비제어 - 쓰레드의 생성 (0) | 2017.02.01 |
나는 이렇게 한다. 장비개발에서 소스관리!!! (0) | 2017.01.21 |
레이어 설명에 앞서서...동적라이브러리 링크 (0) | 2017.01.17 |
자동화설비(ImMahcine[SEQ])의 기본구조-초안 (0) | 2017.01.16 |