2015년 12월 17일 목요일

EmoSDK 예제 코드 살펴보기

insight 를 USB dongle 로 사용하기로 결정하고 helloworld 말고 해 볼 수 있는게 뭐가 있는지 보니 community-sdk/examples/C++ 에 있는 아래 예제들을 하나씩 해 보는 것이 좋아 보였다.

.
├── AverageBandPowers (뇌파 찍어보기)
├── EmoStateLogger (State 로깅하기)
├── FacialExpressionDemo (표정 알아내기)
├── GyroData (자이로 센서 값 얻기)
├── HeadsetInformationLogger (insight 상태 얻기)
├── MentalCommandDemo (생각으로 명령하기)
├── MotionDataLogger (동작 감지 인듯한데 아직 잘 모르겠음)
├── MultiDongleConnection (dongle 여러개 사용하기?)
└── SavingAndLoadingProfileCloud (Cloud 에 데이터 축척하기)

간단히 소스 코드를 훑어 보니 저런 기능들을 테스트 해 보는 example 인것 같다. 현재 commit (998a1ed123fe50ff083ea65d2811a074af12cb16 Wed Dec 9 10:26:49 2015 +0700) 수정 없이 사용 할 수 있는 것은 별로 없다.

그렇다고 무의미 한건 아니고,
1. Makefile 이 작성 되지 않음
2. ios 전용으로 만듦
3. 소소한 syntax 오류

정도만 수정 해 주면 동작을 확인할 수 있다.

난 C/C++ 이 익숙하기 때문에 이 코드를 보는 것이지만 'Android C# C++ Java ObjectiveC Python' 코드들이 제공되고 있으니 각자 알맞은 예제를 살펴 보는 것이 좋다.

그밖에 'community-sdk/premium_examples/C++' 도 제공되는데..

.
├── C++
│   ├── EEGLogger
│   ├── MultiDongleEEGLogger
│   ├── MultilChannelEEGLogger
│   └── qt-project
├── Java
│   └── src
└── Python

도대체 뭐가 Premium 이라는 건지.. 알 수 가 없다.

참고로 SDK 에 대한 용어가 혼존하는데 SDK License 문서에 보면 이런 내용이 있다.
1.1 “EMOTIV” means EMOTIV, Inc., a Delaware corporation, with its principal place of business at 490 Post Street, San Francisco, CA 94102, USA.
1.2 “SDK” means the Software Development Kit that comes bundled with your purchase of an EMOTIV headset, which is either the Basic SDK or the Enhanced SDK.
1.3 “Basic SDK” means the SDK that comes with your purchase of a standard EMOTIV headset. A standard EMOTIV headset gives you access to EMOTIV’s Detection Suites: Mental Commands, Performance Metrics & Emotional States, and Facial Expressions. A standard EMOTIV headset does not give you EEG access.
1.4 “Enhanced SDK” means the SDK that comes with your purchase of an EMOTIV headset with EEG access. An EMOTIV headset with EEG access gives you access to EMOTIV’s Detection Suites, and also includes EEG firmware providing real-time display of unencrypted raw EEG data stream. EEG apps will only work with EEG enabled devices.

"Basic SDK" 와 'Enhanced SDK" 2가지를 설명하고 있는데 Premium SDK 라는 용어도 커뮤니티에서 심심치 않게 보여서 헛갈릴 수 있다.

뭐 여하튼, 현재까지 찾아 보면서 이해한 바로는 emotiv 에서 제공하는 SDK 라는 것이 별도의 Library 로 분류가 되었다거나 제품 구매자에게 구분되어 제공되는 것이 아니라 API 문서 링크 와 그 binary 는 동일하게 제공하고 Basic 이냐 Enhanced 냐는 제품의 Firmware 로 구분되는 것을 보인다. (그렇다면 eeg 용으로 구매안한 사람들은 AverageBandPower 를 실행할 수 없어야 하는데.. 정말 그런지는...)

결과적으로 with / without EEG 의 차이는 사용자 입장에서 물리적으로 제공되는 제품 혹은
정보의 차이는 없다는 것. 이런 것이라면 어떤 용자가 with-EEG 펌웨어 한번 추출해서 공유하면
끝이라는 생각이 드는데.. 아직 비인기 / 비주류 제품을 위해 그런 자료가 공유되는건 시기상조인듯.

뭐 어차피 결재 끝난 제품이니 이제 더이상 EEG 300$ 의 아까움을 되새기지 않고 예제코드나 하나씩 살펴 봐야 겠다.

댓글 없음: