2015년 8월 16일 일요일

대용량 센서 데이터 취득 및 처리에 적합한 임베디드 개발 보드 비교 분석

이 글은 대용량 센서 데이터 취득에 적합한 임베디드 개발 보드를 조사하다, 정리한 글이다.
여기서 대용량 센서 데이터란 카메라 이미지 센서, RGB-D센서, 레이저 센서, 라이다 센서 등에서 획득한 동영상 이미지 및 3D포인트 클라우드 데이터 크기 이상을 말한다.

1. 아두이노
소규모 센서 데이터 처리에만 적합하다. 굳이 언급한 이유는 대용량 센서 데이터를 취득할 때, 보조가 되는 GPS(Global Positioning System), IMU(Inertial Measurement Unit)센서와 같은 것들은 아두이노 보드로도 충분하기 때문이다. 게다가, 개발 컨텐츠가 이 글에서 언급하는 다른 개발 보드에 비할바가 안될 만큼, 풍부하다. 가격도 매우 저렴하고, 소형이다. 개발 목적 별로 다양한 개발 보드를 구입할 수 있다.

  • 장점 - 가격이 너무 싸다. 2만원 이하로 괜찬은 개발 보드를 구매할 수 있다. 크기가 소형이다. 정말 많은 개발 컨텐츠가 널려 있다. 개발 방법이 매우 쉽다. 
  • 단점 - 성능이 매우 좋지 않다. 예를 들어, 카메라로 이미지를 취득하여, 처리한다는 것은 불가능한 일이다.
  • 결론 - 소량의 데이터 취득 및 처리에만 사용한다.




2. 라즈베리파이2
비디오 이미지를 취득하는 수준까지는 적당하다. 다만, HD이미지를 취득하기에는 성능이 약간 떨어지는 면이 있다. 이 경우에는 pi camera를 사용하는 것이 좋다. 포인트 클라우드를 스캔하여 처리하는 것은 시도해 본 결과, 성능이 뒷받침 해주지 못하며, 게다가, ROS와 같은 미들웨어를 설치하고, 그 위에 이런 스캔 센서를 붙여, 데이터를 처리한다는 것은 스펙상 쉽지가 않다.
  • 장점 - 가격이 매우 싸다. 5만원 이하의 가격으로 우분투 리눅스를 설치할 수 있다. 다양한 개발 컨텐츠가 널려 있다. 파이썬만 알아도 어느 정도 개발이 가능하다.
  • 단점 - 성능이 좋지 않다. 물론, 아두이노보다는 훨씬 낫지만, 이정도로는 대용량 센서 데이터를 처리하는 것은 쉽지 않다. 
  • 결론 - 라즈비안 정도 OS에 소량의 센서 데이터를 취득하여, 다양한 파이썬 툴로 데이터를 처리하는 정도가 적당해 보인다. 무리해, ROS를 설치할 수도 있으나, 최소한의 기능으로 만족해야 정신건강이 해롭지 않다. 욕심을 내면 무한 삽질에 빠질 수 있다.


3. 비글본 블랙
이보드는 라즈베리파이와 비슷한 크기의 고성능 소형 보드로, 데비안 리눅스 계열과 호환성이 좋다. 많은 개발 컨텐츠와 서적이 출판되어 있어, 다양한 프로젝트를 개발하는 데 문제가 없다. 게다가, 가격도 착해서, adafruit에서 판매하는 BeagleBone Black Rev C - 4GB 가 $55에 판매되고 있다. beagleboard.org 에서 개발 컨텐츠를 지원하고 있으며, ros wiki에서 ROS와 같은 다소 무거운 미들웨어도 실행된다고 보고되고 있다.
  • 장점 - 가격이 다소 저렴하다. 다양한 개발 컨텐츠를 지원한다. ROS와 같은 미들웨어도 실행이 잘 된다. 
  • 단점 - 라즈베리파이나 아두이노에 비해서는 개발 컨텐츠가 약한 면이 있다. 개발을 위해, 리눅스 커널과 같은 좀 더 전문적인 지식들이 필요하다. 
  • 결론 - 돈이 별로 없지만, 고성능을 원하고, 크기도 작아야 한다면, 적당한 선택이다.


4. 오드로이드
이 보드는 하드 커널이란 국내 기업에 의해 개발되었다. 오드로이드 보드는 여러가지 버전이 있는 데, 그 중에 많이 사용되고 있는 U3버전을 기준으로 이야기한다. 성능이 라즈베리파이2에 비해 훨등히 좋아(최소 쿼드 코아), 거의 저렴한 데스크탑 PC정도의 성능을 낸다. 다만, 가격이 비싸다. 오드로이드 U3 판매가가 $248 정도 한다. 소형 리눅스 컴퓨터로 시작한 만큼, 리눅스 호환성은 좋다. 다만, 아두이노나 라즈베리파이에 비해, 센서 및 액추에이터 응용한 사례와 개발 컨텐츠가 빈약한 면이 있다.
  • 장점 - 성능이 뛰어나다. 리눅스 호환성이 라즈베리파이에 비해 훨씬 좋다. ROS설치에도 무리가 없다. 
  • 단점 - 가격이 비싸다. 라즈베리파이나 아두이노에 비해, 개발 컨텐츠가 비약하다. 
  • 결론 - 돈이 있고, 아두이노 정도의 소형 크기를 원한다면, 적절한 선택이 될 수 있다. 다만, 개발 컨텐츠 부분은 구글링을 통한 삽질이 필요하다.



5. Nvidia Jetson TK1
GPU 개발 대기업 NVIDIA에서 개발한 고성능 연산처리 전용 보드이다. 무려 192 core가 장착되어 있어, 센서에서 얻은 대용량 데이터 처리에 전혀 무리가 없다. 그러므로, 대용량 수치해석이 가능하다. 쿼드코아를 사용하고 있고, 기본적으로 16G의 저장 공간을 제공한다. 확장성을 고려한 IO를 제공하고 있다. 다만, 가격이 오드로이드에 비해 더 비싸고($320), 보드 크기가, 라즈베리파이 보다 2배 더 크다. 이런 문제는 대기업에서 빵빵하게 서비스하고 있는 개발 컨텐츠와 우분트+ROS 지원 노력으로 상쇄하고 남는 면이 있다.
  • 장점 - 성능이 매우 뛰어나다 (타의 추종을 불허한다). 리눅스 호환성이 매우 좋다. ROS설치에 전혀 무리가 없다. 개발자 사이트 서비스를 받을 수 있다.
  • 단점 - 가격이 비싸다. 크기가 라즈베리파이에 비해 2배다. 
  • 결론 - 돈 많고, 성능이 매우 중요하고, 보드 크기에 큰 문제가 없다면, 적절한 선택이다.


정리해 보면 다음과 같다.

1. 보드 성능과 개발 수준이 높아질 수록, 리눅스 커널에 대한 지식과 구글링 삽질 기술이 중요해 지고, 할 수 있는 것들이 많아진다.
2. 돈이 많고, 성능이 무조건 좋아야 한다면, TK1을 선택한다.
3. 돈이 적고, 성능은 중간정도 필요하다면, 비글본을 선택한다.
4. 돈이 좀 많고, 성능도 괜찬아야 한다면, 오드로이드를 선택한다.
5. 돈이 없고, 무한 삽질에 대한 각오가 되어 있다면, 라즈베리파이2를 선택한다.
6. 돈이 주체할 수 없을 만큼 무한정 많다면, NI(National Instruments) 제품을 선택한다. 모든 제품에는 신뢰성 있는 동작 데이터를 제공한다. DIY하기가 매우 어렵고, 모든 서비스에는 무조건 돈이 든다.
7. 기타, 글쓴이가 모르는 더 좋은 대안이 있을 수 있다는 것을 고려한다.

한번 더 이야기하는 것이지만, 이 글은 대용량 센서 데이터를 취득하기 위한 목적에 괜찬은 임베디드 보드만 정리한 것이다. 만약, 그리 많지 않은 센서 데이터라면, 아두이노 보드를 선택하는 것이 훨씬 낫다. 제일 저렴한 우노 보드인 경우, 가격이 2만원 이하인데다, 수 많은 개발 컨텐츠를 지원하고 있다. 물론, 이 경우에도 보드보다 더 비싼 센서와 주변 엑사사리(WiFi 장치 등)는 별도로 고민해야 한다.

아울러, 그냥 간단한 소프트웨어만 개발해 볼 생각이라면, 노트북에 matlab 등을 설치해서, 연구하는 편이 훨씬 낫다. 이 글은 저렴한 비용으로 소프트웨어+하드웨어 개발까지 고려해, 센서 데이터를 처리하려 했을 때 시도하는 방법이다.

아래 사이트에 성능을 비교 결과가 있다. 참고하자.



Arduino YunBeaglebone BlackIntel GalileoRaspberry Pi Model ARaspberry Pi Model B
Memory Index1.1045.6610.6692.5092.570
Integer Index1.8406.0321.1983.3053.291
Floating Point Index0.0381.5910.6212.0642.002


댓글 없음:

댓글 쓰기