레이블이 드론인 게시물을 표시합니다. 모든 게시물 표시
레이블이 드론인 게시물을 표시합니다. 모든 게시물 표시

2022년 12월 18일 일요일

드론 자율비행제어 지원 플랫폼 픽스호크(PX4) 소개, 역사 및 사용방법

이 글은 드론 자율비행제어 시 자주 사용되는 오픈소스 플랫폼인 픽스호크(PX4)에 대한 소개, 개발역사 및 사용 방법에 대해 간략히 정리한다. 

픽스호크는 무선 통신 장치인 Telemetry가 연결된 그라운드 스테이션(ground station. 보통 노트북)에 설치된 오픈소스인 미션플래너와 데이터 통신을 할 수 있다. 미션플래너 지도 상에 사용자가 입력한 경로(waypoint)를 무선으로 픽스호크에 전송하고, 픽스호크는 드론이 자율비행할 수 있도록, 모터 등 액추에이터를 제어한다. 이때, 드론에 연결된 센서로 부터 얻은 데이터는 미션플래너에서 모니터링할 수 있다. ROS(Robot Operating System)와 PX4-ROS Bridge를 통해, 통신할 수 있어, 상호 데이터를 교환하거나, ROS에서 처리된 정보를 비행에 활용할 수 있다.
PX4 기반 자율비행시스템 개발 사례(Autonomous flight mission in ROS using MavROS + PX4 + Gazebo)

참고로, 미션 플래너 및 송수신기 관련 내용은 아래 링크를 참고하길 바란다.

Pixhawk PX4 소개
2008년. 픽스호크는 Lorenz Meier 가 2008년 개발한 오픈소스 자율비행 지원 도구이다. ETH Zurich 석사 연구 프로젝트로 진행, 주변 14명 팀원 모아 개발되었다. 이후 개발 역사는 다음과 같다.
  • 2009년. 9개월동안 개발. 실내 드론 비행 관련 유럽 초소형 항공기 대회 우승. 팀 이름이 픽스호크였음. 오픈소스로 릴리즈함. 개발된 통신 프로토콜 MAVLink는 산업계 표준이 됨. 
  • 2011년. 이전까지 개발된 소스코드 폐기후 재개발. 이 결과로 PX4가 개발됨. 드론 제조업체인 3D Robotics와 협업해 하드웨어 구축 및 판매 시작. ArduPilot과 협력해 호환성 추가. 하드웨어 설계 문서는 github에 공개함. QGroundControl 미션 플래너 개발. 
  • 기능 추가 후 전체 코드 자동 테스트 수행됨. 매월 평균 1,000회 테스트 비행 거침. 
  • 2014년. Dronecode 설립. 개방형 기술 표준 추진. 오픈소스 커뮤니티 9,600 명 이상 사용자 및 600명 이상 기여 개발자로 성장. 
  • 2019년. 개발 코드가 150만줄로 성장.
  • 2020년. Skynode 통해 LTE 클라우드 연결 지원. 무선 업데이트 지원. 
PX4와 주변 장치 연결 방법
장치 연결 레이아웃은 다음과 같디(참고 - Pixhawk Wiring Quick Start). 

픽스호크 연결 개요도
  • (필수) 3DR GPS+컴파스와 연결. 이는 현재 위치 데이터를 제공해 줌. GPS 6-wire 포트와 I2C 2-wire (MAG 센서. 고도)에 연결. 
  • (필수) 3DR 파워 모듈과 6-wire 포트에 연결. 파워 모듈은 LiPo 배터리와 직접 연결됨. 
  • (필수) 에러 및 상태 표시 부저 연결. 안전 스위치 연결
  • (필수) 통신 수신기 연결은 RC IN 핀과 연결함.
  • (옵션) 3DR Radio 키트와 픽스호크 6-wire 포트를 연결. 데이터 통신 담당.
  • I2C 인터페이스 splitter 로 4개 추가 병렬 연결 포트 사용 가능. 이 포트를 통해, 외부 상태 LED, 컴파스 센서, 디지털 air speed 센서 및 다른 센서들을 연결할 수 있음
픽스호크는 파워포트로 부터 전원이 공급된다. 적절 동작 전원 공급 여부는 자동 체크해 LED로 표시된다.
전원 연결 및 표시등

주의사항으로 서보모터 등을 픽스호크의 PWM 출력에 직접 연결하지 말라. RCIN 포트는 저전력 장치만을 위해 디자인되어 있다. 서버 및 릴레이는 PX4로 부터 많은 전류를 가져간다. 만약, PX4의 RCIN에 전원 인가되어 있는 중, 서버모터를 직접 포트에 연결할 경우, PX4가 고장날 수도 있다.

연결 장치 호환성은 다음과 같다.
  1. PPM-Sum receivers
  2. SBUS receivers
  3. IBUS receivers
  4. FPort receivers
  5. Spektrum DSM, DSM2, DSM-X 위성 수신기
  6. SRXL 버전1, 2 수신기
  7. Graupner SUM-D 
Single wire per channel (PWM) 지원을 위해, PPM 인코더는 수신기 출력을 PPM-SUM 으로 변환할 수 있음 (참고 - Radio Control Systems).
FRSky 송신기 제품 예 및 3DR GPS + Compass 모듈

모터 연결은 다음과 같다. 
이는 다음과 같이 모터 신호선과 각 채널을 연결한 것이다.
Pin 1 = Motor 1 - - Pin 5 = Motor 5, Pin 2 = Motor 2 - - Pin 6 = Motor 6
Pin 3 = Motor 3 - - Pin 7 = Motor 7, Pin 4 = Motor 4 - - Pin 8 = Motor 8

상세 내용은 Connect ESCs and Motors 문서를 참고하라.
다음은 다양한 장치를 연결한 예시이다(참고 - Advanced Pixhawk Quadcopter Wiring Chart).

픽스호크 연결 예시(참고)

픽스호크는 제공 전압 등 적절한 스펙 범위내에서 동작한다. 
다음과 같은 기타 장치 연결은 Optional Hardware 문서를 참고하라.
  • Airspeed Sensor
  • AIS (Automatic Identification System)
  • Barometer (external)
  • Button Inputs
  • Buzzer
  • Cameras & Gimbals
  • Companion Computers
  • Display (Onboard)
  • ESCs and Motors
  • DroneCAN Adapter Node
  • DroneCAN Peripherals
  • First Person View Video
  • Grippers
  • Joystick or Gamepad
  • LEDs (external)
  • PPM Encoder
  • Radio Control Systems
  • Received Signal Strength Indication (RSSI)
  • Relay Switch
  • Servos
  • Smart Batteries
  • Telemetry Radio
  • Video (High Definition)
  • Winch
모터 장비 연결 예시 (좌상 - 참고, 우상 - 참고, 좌하 - 참고, 좌우 - 참고)

CANbus 연결
CAN(Controller Area Network)는 신뢰성있는 유선 네트웍으로 ESC(Electronic speed controllers), 센서, 기타 장치들과 다른 장치들 간의 통신을 가능하게 한다. 서로 다른 신호 체계를 이용해 수평적 통신이 가능하도록 설계되어, 긴 케이블 길이를 가진 네트웍에서도 신뢰성있는 통신이 가능하다. 이를 통해, 통신 실패 가능성을 없앤다. CAN는 상태 피드백을 장치로 부터 전달받고, 펌웨어 업데이트를 지원한다. 

PX4는 두가지 종류의 CAN 통신 프로토콜을 지원한다. 이 두 프로토콜 모두 오래전에는 UAVCAN(참고)으로 불렸다. PX4는 다른 KDECAN과 같은 CAN 프로토콜은 지원하지 않는다.
  • DroneCAN(UAVCAN v0): PX4는 가장 기본적인 셋업으로 이를 권장한다. 많은 테스트로 신뢰성있게 동작한다(참고 - 소스코드).
  • Cyphal(UAVCAN v1): PX4는 현재 개발 진행 중인 이 프로토콜을 지원한다. 유연성있고 복잡한 vehicle 장치 제어를 지원한다. 
CAN네트워크 연결 예시는 다음과 같다. 4개의 CAN ESC와 GNSS가 연결되어 있고, 각 ESC는 모터를 제어하도록 연결되어 있다.
  
CAN 체인 연결 예시와 CAN 체인 termination resistor
PX4와 실제 CANbus 연결 사례(DroneCAN ESCs)

각 장치들은 체인으로 연결된다. 그래서 확장성이 높다. 체인의 말단은 120옴 termination resistor(참고)로 두 선이 연결되어 있어야 한다. 비행 컨트롤러와 몇몇 GNSS 모듈은 편리하게도 자체에 termination resistor가 내장되어 있다. 

앞의 다이어그램에는 전원 연결이 표시되어 있지는 않다. 각 장치 제조사에는 CAN 버스 자체로 부터 전원이 공급되거나 각 장치별 개별 전원이 공급되도록 가이드 문서를 줄 것이다. 
  • Connectors: 픽스호크는 4 핀 JST-GH 연결 포트와 호환된다. 두 컨넥터들은 입력과 출력으로 사용되어 체인을 연결할 때 사용된다. 픽스호크는 두개 CAN 인터페이스 연결을 지원한다.
  • Firmware: CAN 은 오픈소스 펌웨어로 실행된다. PX4는 DroneCAN 펌웨어 오픈소스로 동작된다(참고).
연결 시 PX4에서는 연결 방법에 대한 영상(Intro to UAVCAN and Practical Example)등을 제공하므로 참고한다.

DroneCAN 설정 및 연결 상세는 다음을 참고한다.
참고로, ArduPilot은 브러쉬 모터 ESC의 RC PWM (신호는 1ms에서 2ms 폭을 가짐) 입력을 지원한다. 대부분 hobby 등급 RC Car ESC는 이 유형이다. 브러쉬 모터는 duty cycle 동안 스피드를 제어하게 된다. 다음은 검증된 모터 드라이버들이다. 
  • Sabertooth Dual 32A Motor Driver supports “Normal” when the Sabertooth is in RC Mode
  • Pololu G2 High-Power Motor Driver supports “BrushedWithRelay”
  • Pololu DRV8838 Motor Driver supports “BrushedWithRelay”
  • RoboClaw 2x7A Motor Controller supports “Normal” when the Roboclaw is in RC Mode
  • L298N Motor Driver. See also these setup instructions
  • SkyRocket drones use “Brushed” motors
UAVCAN 사용 사례
CANbus는 유선 인터넷과 비슷한 방식으로 동작한다. CANBus는 4선 케이블과 연결되어, 데이지 체인 방식으로 처리된다. 캔버스와 연결되는 장치는 다른 캔버스 연결 장치와 통신 방법(프로토콜)이 펌웨어로 내장되어 있어야 한다. 캔버스는 보쉬 기업에 의해 자동차용으로 설계되었다. 
캔버스 네트웍 기반 자동차 장치 통신 및 캔버스 허브
캔버스 적용된 드론 개발 사례(참고 - CANbus for Ardupilot with UAVCAN and UC4H)

PX4기반 로버(rover) 개발 사례
로버는 PX4, ardupilot을 이용해 자동 가이드 기능을 실행할 수 있다. 사전 정의된 경로를 통해, 완전 자율 주행이 가능하다. 다음 로버 플랫폼은 2013, 2014년 Sparkfun 자율 주행 대회(2018년 대회까지 기록)에서 우승한 것이다 (비디오 데모).

PX4, ardupilot 기반 2013년 대회 출전 로버(좌), 자율 주행 트랙터 및 차(우)

다음은 PX4를 이용해 RC 카를 개발한 예이다(참고 - Motor and Servo Connections).
RC 카 개발 예

마무리
픽스호크를 사용하면, 미션플래너 지도 상에 사용자가 입력한 경로를 따라 드론과 같은 로보틱스 플랫폼이 자율비행/이동 할 수 있다. 또한, PX4 ROS Bridge를 이용하면, ROS와 연동해 좀 더 지능적인 자율비행을 지원할 수 있다. 픽스호크는 파트너 기업이 많아, 호환되는 센서나 장비 연결이 손쉽다. 다만, 오픈소스 특성상 목적에 맞는 기기 개발 시 부족한 스펙 및 기능은 직접 개발하거나 커스텀해서 사용해야 한다.
PX4 ROS Bridge 개요도

레퍼런스

2018년 6월 20일 수요일

드론 기반 벨로다인 라이다 스캔

SLAM기술은 LiDAR기술이 저렴해 지면서 점점 더 다양한 분야에 확산되고 있다. 이미 드론이나 무인자율주행차량에 장착된 지 오래이며, 일부는 농업, 광업과 같은 특수한 분야에까지 응용되고 있다. 

2016년 7월 12일 화요일

Ardupilot 드론 Mission Planner 에러 메시지 확인, 해결 방법 및 테스트

Arducopter(아두콥터) / Ardupilot 호환 DIY 드론을 운용하다보면, 원인을 알기 어려운 에러와 마주치는 경우가 있다. 이 글에서는 에러 메시지를 확인하는 방법과 드론 암(arm) 테스트하는 방법을 간단히 정리한다.

3DR과 같은 Ardupilot 호환 드론의 경우 에러가 발생했을 때, 드론의 LED 점멸이 다음과 같이 발생한다.


점멸 패턴에 따라 에러 유형을 알려준다. 자세한 내용은 해당 드론 메뉴얼을 살펴보아야 한다.

LED 점멸만 보고 원인을 정확히 알기 어려울 때는 노트북에 미션 플래너(Mission Planner) 프로그램을 설치하고, 드론 제어 컴퓨터의 USB와 노트북을 연결하여, 미션 플래너를 통해 확인해 보아야 한다.

노트북 Mission Planner와 드론 Ardupilot 컴퓨터 간 USB 연결 상태


참고로, 현재 시점에서 윈도우 10 운영체제 기반 실행 시 드론 제어 컴퓨터가 인식되지 않는 경우가 있다. 본인은 윈도우 7에서 테스트해 보았으며 정상 연결이 되었다. 아울러, 우분투나 맥 용으로 개발되지는 않았으며, 현재 프로젝트 진행 중이므로, 곧 릴리즈 될 것이라 생각한다.

다음은 미션 플래너로 확인한 Disarm 에러 메시지 중 하나이다.


이는 Pre-Arm Safety Check 에러로, 드론 운영의 안전을 위해, 드론 암이 회전하기 전 안전 체크를 통해, 문제 발생 전 원인을 알려주는 메시지이다.

메시지의 상세 내용은 다음 링크로 확인할 수 있다.

앞의 그림에 표시된 에러는 컴파스(Compass) 방향이 잘못 설치되었음을 알려주는 메시지이며, 관련 파라메터를 조정하거나, 잘못 설치된 컴파스 방향을 다시 설치하면 된다.


이제, 에러 메시지를 확인해 가며, 문제를 해결하였으면, 암 모터 테스트를 위해, 미션 플래너에서 INITIAL SETUP > Wizard > Optional Hardware> Motor Test 메뉴를 선택한다.




암 모터 테스트 하기 전에 모터 프로펠러와 걸릴 수 있는 물체는 멀리 치운다. 회전 시에 절대로 프로펠러를 손으로 잡으려 하면 안된다.

이제, 적당히, Throttle % 를 설정하고, 모터 각 버튼을 클릭하면, 다음과 같이 정상 암 모터가 정상 회전하는 것을 확인할 수 있다.




2016년 4월 2일 토요일

DIY 드론 기반 카메라 원격 영상 촬영 방법

1. 개요
요즘 드론을 이용한 영상 촬영 사례가 늘고 있다. 드론에서 영상을 촬영하기 위해서는 드론에 장착된 카메라를 원격으로 촬영할 수 있는 방법이 필요하다. 이 글은 직접 만드는 드론 장비에 카메라를 장착할 때, 원격으로 영상을 촬영할 수 있는 방법을 다룬다.

카메라로 영상을 촬영하고, 3차원 포인트 클라우드(3D point cloud) 생성 소프트웨어를 이용할 때는 카메라 센서 크기(camera sensor size) 및 초점 거리(Focal length)가 무엇인지 미리 알고 있는 게 좋다. 이 값들을 소프트웨어에 넣어야 할 경우가 있기 때문이다.

2. 본론
드론으로 포토메트리를 통해 3차원 포인트 클라우드를 획득하기 위해서는 GPS정보 등 메타 정보가 포함된 사진을 촬영해야 한다.


사진을 통해 이런 3차원 포인트 클라우드를 캡쳐할면, 리모트 컨트롤로 등을 통해 사진을 찍을 수 있는 방법이 필요하다. 다음 글은 APM을 통해 언제 어떻게 사진을 원격으로 찍는 지 설정하는 방법에 대한 메뉴얼이다.

DJI 팬덤과 같은 경우, 이런 기능을 지원하나, 아이리스(IRIS)와 같은 DIY 드론인 경우 사진을 찍는 것이 쉽지 않다.

고프로는 WiFi를 지원하지만, WiFi가 지원되지 않는 야외나, 원거리 촬영에는 문제가 있다.

이런 이유로 많은 경우, 포토 카메라 트리거를 이용하거나, 특정 인터벌(interval)을 설정하고 연속으로 사진을 찍는 방법을 사용하고 있다.

다음은 인터벌 설정 방식을 통해, 3DR IRIS와 GoPro Hero4로 사진을 촬영하는 방법이다.




GoPro를 이용해 트리거 설정을 할 수 있는 방법을 공개한 경우도 있다. 이때는 PicoSwitch 를 이용해 GoPro 버튼을 해킹하여 처리하고 있다.


카메라 트리거를 직접 제작하는 경우도 있다.


RC 수신기를 직접 이용하고 있는 경우도 있다.


캐논 카메라의 경우, 트리거 프로토콜을 지원한다. CHDK(Canon Hack Development Kit)는 캐논 카메라를 제어할 수 있는 스크립트를 지원한다. 아울러, 특정 외부 트리거가 있을 때 카메라가 어떻게 동작할 지를 미리 약속해 제어할 수 있다. 다음은 CHDK를 지원하는 카메라 종류이다.

다음 영상은 이를 이용한 원격 촬영 방법을 잘 보여준다.

CHDK기반 APM 드론 사진 촬영 방법

CHDK에 대한 자세한 내용은 다음 링크를 참고한다.

픽스호크(pixhawk)를 이용한 카메라 샷 트리거 처리 방법도 공개되어 있다.

3. 마무리
이외에 고프로와 같이 CHDK를 지원하지 않는 카메라의 경우, 촬영 인터벌 등을 미리 설정해 찍는 방법 등이 있다. 이와 관련된 상세한 내용은 다음을 참고한다.


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