Artificial Intelligence


TensorFlow Android Demo


Chapter 1. 바젤(Bazel) 알아보기



빌드하기 위한 첫 번째 관문, 구글의 새로운 빌드 도구 바젤의 로고





1. 바젤은 무엇이며 왜 설치해야 하는가


텐서플로우 안드로이드 데모(이하 데모)를 개발하기 전에 가장 먼저 알고 넘어가야 하는 프로그램이 있는데,


바로 구글에서 개발한 바젤(Bazel) 이란 녀석입니다


바젤 공식 홈페이지에서 설명하기를, 바젤은 어떤 사이즈의 소프트웨어든 빠르고 안정적이게 빌드하는 빌드 도구입니다


이러한 빌드 도구는 대표적으로 안드로이드 스튜디오를 설치했을 때 기본형으로 나타나는 그래들(Gradle)이 있습니다


빌드 도구는 한 두가지가 아닌데, 그중에서도 이번 데모를 빌드하기 위해서는 특별하게 바젤이 필요합니다




이 점에 대해 저희 팀은 그래들과 같은 기존의 빌드 도구와 바젤의 차이에 대해 생각해 보았는데,


아마 바젤이 타 언어를 함께 활용하는 개발 환경에서 상당히 무거운 소스코드라도 


훌륭히 빌드해낼 수 있는 능력을 가지고 있기 때문이라고 생각했습니다


구글은 실제로 "코드 양이 아주 방대하거나 여러가지 언어를 컴파일해야 하는 프로젝트, 


다양한 플랫폼을 설치해야 하는 프로젝트 등에서 바젤이 유용하다"라고 이야기했습니다


텐서플로우의 경우 '여러가지 언어를 사용하며, 학습된 데이터 그래프가 상당히 무겁기 때문에' 바젤을 사용한다고 생각합니다




어찌되었든 텐서플로우 팀은 데모를 빌드하기 위한 방법으로 바젤을 활용하는 법 외에는 알려주지 않았으니, 


처음 텐서플로우로 어플을 빌드하려는 저희로써는 그저 따라가는 수 밖에 없었습니다







개발자라면 한 번쯤은 만나봐야 한다는 리눅스(Linux) 기반의 대표적 OS, 우분투(ubuntu)의 로고





2. 바젤을 설치하기 위한 환경에 대하여




가장 큰 문제는 바젤의 설치에 있습니다


바젤은 현재 Linux 와 Mac OS X 기반의 환경에서만 설치가 가능합니다


그러니 이제부터 바젤을 설치하기 위한 여정을 떠나셔야 합니다


만약 리눅스나 맥 기반의 머신을 가지고 있다면 문제도 아니겠지만, 여러분이 충실한 윈도우 사용자라면


오로지 텐서플로우 빌드를 한 번 스스로 해보기 위해서 파티션을 나누고 리눅스를 설치할 각오를 다지셔야 합니다




3. 바젤 설치 과정




그럼에도 바젤을 설치하기로 마음먹으셨다면 본격적으로 리눅스 기반을 만드셔야 합니다


대표적으로 윈도우 기반에서 우분투 OS를 설치한다고 했을 때, 최소 두 가지 방법이 있습니다


첫째, 현재의 윈도우 OS를 제거하거나, 남는 하드디스크의 파티션을 나누어 듀얼부트 형태로 우분투를 설치


둘째, 윈도우 내의 가상 머신을 이용해 우분투를 설치


저희 팀은 두 개의 머신에 각각의 방법으로 시도했으나, 아쉽게도 두 번째 방법을 실패하였습니다


그 과정에서 듀얼부트 형태로 우분투를 설치하는 것이 훨씬 안정적이고 빌드 속도 또한 빠르다고 생각했기에


첫 번째 듀얼부트 형태의 우분투 설치를 추천드립니다


자세한 우분투 듀얼부트 설치에 관해서는 관련 게시물을 보시기 바랍니다




우분투 환경이 구축된 후, 바젤을 설치하기 위해서는


가장 먼저 오라클 JDK를 설치해야만 합니다


이를 위해서는 우분투의 터미널을 실행시킨 다음,



$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer


위의 명령어를 차례로 입력해야 합니다


만약 시간이 지나 JDK의 버전이 변경되었다면, 


마지막 명령어의 oracle-java8-installer에서 적절한 java 버전으로 변경해야 할 것입니다


바젤의 공식 홈페이지에서는 ubuntu 15.10 버전에서는 Open JDK 환경만으로도 실행이 가능하나


ubuntu 14.04 LTS 버전에서는 Oracle JDK 환경을 만들어줘야 한다고 이야기합니다


저희는 ubuntu 16.04 LTS 버전에서 Oracle JDK를 설치 후 진행하였습니다




이제 바젤에 필요한 나머지 패키지들을 설치해야 합니다


$ sudo apt-get install pkg-config zip g++ zlib1g-dev unzip


위의 명령어를 터미널에 입력하여 패키지 설치를 완료합니다




마지막으로 바젤을 다운로드하고 설치하도록 합니다


https://github.com/bazelbuild/bazel/releases


우선 위의 깃허브 링크에 접속하여 아랫쪽에 다양하게 있는 바젤 설치파일 중에서


installer-linux가 적혀있는 파일을 다운로드합니다


$ chmod +x bazel-version-installer-os.sh
$ ./bazel-version-installer-os.sh --user


그 다음 위의 두 명령어를 차례로 입력하여 바젤을 설치하도록 합니다. 


$ export PATH="$PATH:$HOME/bin"


마지막으로 바젤의 패스를 추가해주기 위해 위의 명령어를 입력해 줍니다




이 과정이 모두 막힘없이 진행되었다면 성공적으로 바젤을 설치되었을 것입니다


현재 Mac OS X를 사용하고 계신 분의 경우에는


아래의 참고 링크의 바젤 공식 홈페이지에 나타난 설치법을 따라가시면 됩니다






참고 링크


바젤에 대해 설명한 블로터의 기사

http://www.bloter.net/archives/238481


텐서플로우에서 공식적으로 제안하는 바젤 설치법(ctrl + F로 bazel을 검색하자)

https://www.tensorflow.org/versions/master/get_started/os_setup.html#source


바젤 공식 홈페이지의 환경별 바젤 설치법

https://bazel.io/docs/install.html




'Projects > SnapLearn' 카테고리의 다른 글

Prologue : Tensorflow Android Demo Application  (0) 2016.08.25
Snap Learn 프로젝트 개요  (0) 2016.08.04

Artificial Intelligence


Tensorflow Android Demo


Prologue








구글이 말하길 텐서플로우라는 머신러닝 프로그램은 처리속도와 무게에 있어서 차별성을 가진다고 합니다


그렇다면 이러한 특징을 가장 잘 살릴 방법은 바로 모바일 환경에서의 텐서플로우 구축일 것입니다


구글의 텐서플로우팀은 자비롭게도 누구나 텐서플로우를 모바일 환경에서 다룰 수 있도록


아주 간단한 데모 어플리케이션을 공개했습니다


모든 소스코드와 학습된 데이터 그래프를 공개하고, 직접 빌드해 보라며 차근차근히 알려주었습니다




그렇기에 이 텐서플로우를 활용한 안드로이드 어플리케이션은 


텐서플로우를 실생활에 활용해 보려 하는 사람이라면 한번 쯤 만들어볼 만한 가치가 있다고 생각합니다


우리에게 가장 와닿는 방법으로 인공지능을 사용하는 방법이기 때문이죠




위에서 말했듯이 구글은 하나부터 열까지 빌드 방법을 차근차근 알려주기 때문에


기존에 개발을 지속해 오시던 분들은 금방 데모 어플리케이션을 제작 할 것입니다


다만 저와 LIME의 팀원들을 포함해, 이번에 새롭게 텐서플로우에 관심을 갖고


개발에 발을 디딘 사람이라면 이 간단한 데모 어플의 빌드조차 쉽지 않다고 할 수 있겠습니다




이에 우여곡절 끝에 어플리케이션 빌드에 성공한 텐서플로우 프로젝트 팀원들은 


빌드를 하기 위해 수많은 사이트를 전전하며 얻은 정보들과 과정을


저희와 같은 초보자들을 위해 공유하기로 결정했습니다


기본적인 안드로이드 어플 빌드 환경의 구축부터 최종적인 빌드 명령어까지 


팀원들이 겪은 문제점과 해결 방법에 대해 상세하게 챕터별로 이야기해 보도록 하겠습니다


구성은 다음과 같습니다




개발 환경 구축하기




Chapter 1. 바젤(Bazel) 이란 무엇인가


바젤은 어떤 프로그램인가


바젤을 사용해야 하는 이유는 무엇인가


바젤을 사용하기 위한 OS 환경을 구축하자 - 우분투를 기반으로




Chapter 2. 우분투 환경에서 안드로이드 개발 환경 만들기


안드로이드 스튜디오 설치하기


SDK와 NDK 설치하기




Chapter 3. 우분투에 텐서플로우 환경 만들기


파이선과 텐서플로우의 설치


CUDA 설치하기 


CUDNN 설치하기




빌드 소스코드 얻기




Chapter 3. 텐서플로우 소스코드 저장하기


소스코드는 어디에서 받아 어디에 저장하는가




Chapter 4. WORKSPACE 파일 설정하기


WORKSPACE 는 어떤 파일인가


어느 경로에 무엇을 수정해서 저장해야 하는가




Chapter 5. 학습된 모델 저장하기


어떤 모델을 사용하는가


학습 모델의 다운로드와 저장




빌드하기




Chapter 6. 빌드하기


빌드 명령어와 주의사항





https://www.tensorflow.org/mobile.html


텐서플로우 공식 홈페이지의 텐서플로우 모바일 적용에 관한 페이지


https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android/


깃허브에 공개되어 있는 텐서플로우 안드로이드 데모버전에 대한 소스코드와 빌드 방법에 대한 설명





사실 전부 만들어져 있는 어플리케이션의 빌드가 무슨 의미가 있냐고 하시는 분도 계실 것입니다


하지만 저희가 프로젝트를 진행하며 느낀 점은


간단한 APK 파일의 빌드라도 해 보고 텐서플로우 어플리케이션을 제작하는 것과


그렇지 않은 것 사이의 이해도가 상당히 차이난다는 점이었습니다


실제 APK 파일이 어떻게 구성된 것인지부터


빌드되기 위한 환경과 그 과정을 상세하게 따라가면서 전반적인 흐름을 익히기 좋기 때문입니다


완벽한 설명은 되지 못하더라도, 텐서플로우를 공부하려는 많은 분들에게 도움이 되었으면 좋겠습니다

'Projects > SnapLearn' 카테고리의 다른 글

A-01. 바젤(Bazel) 알아보기  (6) 2016.08.26
Snap Learn 프로젝트 개요  (0) 2016.08.04

1. Snap Learn 프로젝트에 대하여


최종 결과는 텐서플로우 안드로이드 데모 한글화에 그쳤다.



2014년 스티븐 호킹 박사는 인공지능에 대해 이렇게 말했습니다


인공지능 기술 개발은 인류의 멸망을 불러올 수 있다


이 말이 옳은 것이든 그른 것이든 인공지능이 우리의 삶을 변화시킬 가능성은 충분합니다


이에 인공지능이 정확하게 무엇인지 알아보고, 가능하다면 이러한 인공지능을 직접 구현해보고자 LIME의 멤버가 모였습니다


마침 2015년에 구글에서 내놓은 TensorFlow라는 혁신적인 오픈소스 머신러닝 프로그램이 등장했습니다


이에 4명의 LIME 멤버는 TensorFlow를 기반으로 머신러닝과 인공지능에 대해 학습해 나가고,


학습이 어느 정도 진행된 다음에는 직접 사물에 대한 인식, 구분 등이 가능한


혹은 자연어에 대한 분석과 표현이 가능한 인공지능을 Android Application으로 개발하기를 기획했습니다




기본적으로 윈도우 환경에서 작업을 시작하나, 상황에 따라 Ubuntu 등의 환경으로 변화될 수 있습니다


TensorFlow 에 대한 스터디는 Sung Kim 교수님의 딥러닝 강의를 기반으로 진행합니다


Android Application 의 개발은 Android Studio를 기반으로 진행합니다









'Projects > SnapLearn' 카테고리의 다른 글

A-01. 바젤(Bazel) 알아보기  (6) 2016.08.26
Prologue : Tensorflow Android Demo Application  (0) 2016.08.25

A-02 에서는 로봇 손 제작을 위해 필요한 모든 준비사항에 대해 이야기해보도록 하겠습니다

프로젝트를 진행하기 위해서는 크게

1. 출력물

2. 제어 장치

3. 제작 장비

가 필요합니다

그럼 각각의 준비 사항에 대해서 하나씩 알아보도록 하겠습니다




1. 출력물


로봇 손의 모든 뼈대가 되는 출력물은 3D 모델링 파일을 구해서 정리하는 것으로부터 시작됩니다

3D 모델링 파일은 대표적으로 .STL 의 확장자 명을 가진 파일이며,

이러한 모델링 파일을 3D 프린터에서 사용 가능하도록 프린터 전용 슬라이싱 프로그램으로 가공해 준 다음,

이를 바탕으로 3D 프린터로 출력을 시작하게 됩니다




로봇손의 손 부분 출력물. 왼쪽 끝의 손가락 커버, 오른쪽 위의 손등 커버는 없어도 작동에 큰 문제가 없습니다.




로봇 손의 출력물의 경우에는 크게 손 부분 / 손목 부분 / 팔목 부분으로 나누어 집니다

이 중에서 가장 유의해야 하는 부분은 바로 '손 부분'인데, 

이는 손가락 하나 하나의 출력물이 비슷하게 생겨

섞이지 않도록 각별한 주의가 필요하기 때문입니다.




중앙대학교 강의에 사용된 로봇손의 손목 및 팔목 부분 출력물. 1번이 손목, 2&3번이 팔목입니다.




손목 부분의 경우 손목 회전 기능의 추가 여부에 따라 출력물이 달라지며, 

기능이 추가될 경우 제작 방법 또한 더욱 복잡해 집니다.

그러므로 자신이 원하는 손의 방향과 기능을 잘 생각하고 모델링 파일을 정리한 다음, 

3D 프린터로 출력을 시작하는 것이 효율적입니다.

제작은 오른손을 기준으로 상세하게 설명하도록 하겠습니다




팔목 부분에 들어가는 서보모터 도르레, 서보모터 케이스, 전 후면 케이블홀더, 그리고 손 부분에 들어가는 볼트 출력물 1, 2, 3 입니다.





팔목 부분은 제어장치가 장착되는 부분으로, 크게 모터와 전자 제어장치인 Arduino UNO가 들어갑니다.

이를 위해서 모터를 장착할 수 있는 케이스가 함께 출력되어야 하며

케이블의 텐션을 조정하는 케이블 홀더, 서보모터 도르레 등이 필요합니다.




2. 제어 장치


InMoov에서 공개한 로봇 손은 기본적으로 잘 알려진 마이크로 컴퓨터, 아두이노를 기반으로 작동합니다

아두이노에서 간단하게 제어할 수 있는 서보모터와 함께 로봇 손을 제작할 수 있습니다.




손가락 작동을 위해 사용되는 서보모터 MG946R. 인터넷에서 개당 5000원 정도에 구매 가능합니다.




서보 모터의 경우 크게 2 종류로 나누어 지는데

손가락 각각을 움직이기 위한 모터가 5개, 만약 손목을 움직이고자 한다면 이를 위한 모터 1개가 필요합니다.

실제 손가락이 움직이기 위해서 모터와 손가락 끝을 연결해주는 작업이 필요한데

이 때 강도 높은 낚싯줄이 케이블로 사용됩니다.




서보모터의 전선이 아두이노와 브레드보드에 연결된 모습. 초록불이 들어왔으니 정상작동중 일겁니다.




낚싯줄 케이블을 각각의 손가락과 이에 대응하는 모터에 장착한 다음에는 서보모터와 아두이노를 연결해 작동시킵니다.

서보모터와 아두이노를 연결하기 위해서 필요한 것은 기본적으로 브레드보드와 전선이며,

손가락을 수동으로 제어하고자 한다면 '가변저항'을 추가 구매하시기 바랍니다.




3. 제작 장비


제작을 위해 필요한 몇 가지 장비와 도구가 있으며,

만약 필수적인 도구가 없다면 구매하는 것이 좋습니다




프로젝트 내내 ABS들을 열심히 갈아준 Made In Japan Tabata 줄. 교내 화방에서 개당 4500원에 구매했습니다




가장 먼저 3D 프린터로 출력된 출력물을 다듬을 수 있는 '줄' 이 필요합니다.

사포나 칼 등으로도 출력물을 다듬는 것은 가능하지만, 본격적으로 갈아내기 위해서는

역시 줄을 이용하는 편이 편리합니다. 

( 정정합니다. 3D 프린터 출력물을 전문적으로 다듬는 전동 도구가 가장 편리합니다.)




케이블용 낚싯줄, 록타이트 401 (잘 접착되지 않을 수 있음), 고급 핀셋 ( 다이소 핀셋과 다름 ), 줄




다음으로는 출력물을 부착하기 위한 접착제가 필요합니다. 자신이 사용한 필라멘트의 종류에 따라 다르겠지만

일반적으로 ABS 소재를 사용한다면 ABS 용 접착제를 사용하는 것이 적절합니다

보통 프라모델 등에 사용되는 접착제가 ABS 접착제로 사용이 가능하지만,

저희는 시간과 비용 문제 때문에 ( 접착제 또한 비용이 천차만별입니다) 

플라스틱 접착이 가능한 순간접착제를 사용했습니다.

( 후일 수업에 사용하는데, 접착에 시간이 오래 걸려 곤란했습니다. 

더 좋은 접착제가 있다면 알려주세요! )


그 외에는 낚싯줄이나 필라멘트를 자르기 위한 칼, 가위, 펜치( 가장 유용합니다 ) 등이 필요하며

낚싯줄을 적절하게 설치하기 위한 핀셋 (끝이 날카롭고 30도정도 꺾여있는 것이 좋습니다.)



손가락 관절부에 끼워진 1.75mm 파란색 필라멘트. 부드러운 관절이 무엇보다 중요합니다.




마지막으로 손가락 관절을 위한 부품을 준비해야 합니다.

손가락 관절을 연결하기 위해서 지름 약 3mm의 쇠핀이 필요하다고 개발자 Gael이 설명했지만

다양한 방법으로 대체될 수 있습니다.


1. 3mm 두께의 필라멘트 (국내에선 거의 쓰이지 않는 필라멘트 굵기라 구하기 힘듭니다.)

2. 1.75mm 두께의 필라멘트

 ( 흔히 접하는 필라멘트지만, 너무 얇아 손가락이 흐물흐물해집니다.)

3. 철물점의 3mm 쇠핀, 혹은 볼트와 너트 

( 한 고등학생이 볼트 너트로 제작한 것을 보았는데 견고해 보입니다. 

하지만 마찬가지로 발품을 팔며 구해야 합니다.)

4. 적절한 크기로 절단한 나무 이쑤시개 

( 가장 구하기 쉽고 가공하기 쉽습니다. 다만 멋이 없고 약간 뻑뻑합니다.)


손가락 관절부는 3D 프린터의 출력 자체가 완벽하지 않기 때문에

어떤 방식으로 제작하는게 정답인지 정해져 있지 않습니다.

관절부의 손질부터 적절한 관절 핀의 선택까지 상당히 많은 재량이 요구됩니다.




4. 마무리



고생하며 최초의 로봇손을 만들던 시절. 혼자보단 둘이 낫습니다.




위의 사항이 빠짐없이 준비되었고, 제작 환경과 도와줄 사람들이 충분하다면

이제 본격적으로 제작을 시작해야 합니다.


사실 준비 과정이 로봇손 제작의 50% 이상이기 때문에

여기까지 완료하신 분은 힘내시기 바랍니다!




- 참고 -


http://inmoov.fr/








'Projects > Fumby' 카테고리의 다른 글

A-04. 제작 도구의 준비  (0) 2016.09.04
A-03. 3D 프린팅 출력물 살펴보기  (3) 2016.09.04
A-01. 제작 과정 전반의 이해  (0) 2016.08.03
A-00. InMoov 로봇손 제작 배경  (0) 2016.08.03
Fumby 프로젝트 개요  (0) 2016.07.24


3D 프린팅 로봇 손 프로젝트도 엄연한 로봇 제작 프로젝트이기 때문에

전반적인 로봇 제작 과정에 대한 이해를 한 다음 제작에 들어가는 것이 그렇지 않는 것 보다 훨씬 수월합니다

그렇기에 이번 챕터에서는 전반적으로 어떻게 3D 프린팅을 활용하여 로봇손을 제작할 수 있는지에 대해

LIME 로봇손 제작팀이 진행한 방식을 기본으로 훑어보도록 하겠습니다




1. 환경




적절한 야외 작업공간을 찾지 못해 상점가 앞 벤치에서 줄질 작업을 하는 좋지 못한 예




가장 먼저 해야 할 일은 이 프로젝트를 진행하기에 적절한 환경을 갖추었는가 알아보는 것입니다

환경이라 함은 출력 가능한 3D 프린터의 유무 (프린터를 소유할 필요는 없고, 출력 가능하면 됩니다)

 작업물을 보관하고, 프로젝트를 진행할 수 있는 공간

그리고 간단한 야외 작업이 가능한 공간 등이 해당됩니다.  




2. 출력




아무것도 모르고 바닥 보조물 없이 단 한개의 파츠만 테스트로 출력하는 좋지 못한 예




기본적인 프로젝트 진행 환경이 마련되었다면, 가장 먼저 3D 프린팅 출력물을 만드는 것이 좋습니다

자신에게 어떤 출력물이 필요한지 알아보고 ( 자신이 만들고자 하는 손의 방향, 기능 등에 따라 달라집니다)

무엇이든 되는 대로 출력을 시작하는 것이 프로젝트 전반의 시간을 줄여줄 수 있습니다




3. 준비




개별 포장은 잘 했지만 부품명을 쓸데없이 영어로 적어서 팀원들이 고생할 예정이다.




출력을 진행하는 중에는 다양한 준비 과정이 필요합니다

우선, 출력물이 하나씩 출력되는 대로 구분지어 정리해 두어야 하며, 

출력물을 다듬고, 접착제나 줄, 제어 기기등의 구매 과정이 출력 도중에 이루어져야 합니다

또한 이 때 구체적인 제작 방법을 익혀두는 것이 제작시에 많은 도움이 될 것입니다




4. 제작




블러드 트레일




실제 제작은 마음을 가다듬고 한 치의 오차를 만들지 않겠다는 의지로 진행해야 합니다

3D 프린팅 재료의 특성상 다시 출력하는데 상당한 시간이 들어가기 때문에, 

실수 없이 한 번에 제작하는 것이 최선이라고 할 수 있겠습니다


제작은  1. 출력물의 기초적인 가공 및 접착

2. 기초적인 제어 장치인 낚싯줄 설치

3. 출력물 전반의 접착

4. 제어장치와의 연결 및 작동으로 이루어집니다




5. 테스트




그럴듯하게 완성된 로봇손의 모습




위의 과정을 모두 거치고 나면 간단하게 작동하는 로봇 손이 완성될 것입니다

하지만 처음 만들어보는 로봇이 한번에 완벽하게 작동할 수는 없습니다.

실제로 문제가 있는 STL 파일이 존재하며, 작동 시에도 예상치 못한 문제가 발생할 것입니다

여러 번의 테스트를 통해 문제의 원인을 차분히 생각하고, 신중하게 해결해야 합니다

문제의 본질을 보지 못하고 급하게 해결할 경우, 앞에서 말했듯이 출력 과정부터 다시 진행해야 할 가능성이 매우 높습니다




일련의 과정들이 로봇 손 제작의 기본이며, 앞으로의 글에서 상세하게 다룰 것입니다

3D 프린터를 활용한 로봇 손, 의수 제작에 관심이 있다면

앞으로 나올 상세한 과정을 살펴보며 직접 프로젝트를 진행해보실 수 있습니다





'Projects > Fumby' 카테고리의 다른 글

A-04. 제작 도구의 준비  (0) 2016.09.04
A-03. 3D 프린팅 출력물 살펴보기  (3) 2016.09.04
A-02. 로봇손 제작을 위한 모든 준비  (4) 2016.08.04
A-00. InMoov 로봇손 제작 배경  (0) 2016.08.03
Fumby 프로젝트 개요  (0) 2016.07.24

1. 로봇손 제작의 배경




LIME에서 처음 로봇손을 제작하게 된 배경은 간단했습니다.

3D 프린터를 활용해 사람들과 함께 만들어볼 만한 제품이 없을까 살펴보던 중

항상 3D Printing에서 가장 잠재성이 크다고 생각되는 로봇 분야가 떠올랐습니다.


혹시나 오픈소스로 공개된 3D 도면이 있나 Thingiverse를 통해 찾아봤더니

프랑스의 Gael Langevin이란 디자이너가 손부터 인간의 모든 부위를 로봇화 시키는 작업을 하고 있었습니다.

프로젝트 명은 InMoov, 현재는 상반신이 완성된 듯 했습니다

이 프로젝트를 기반으로 로봇 손을 제작하고 

좀 더 다양하게 활용할 방법을 찾아보면 재밌겠다는 생각에 시작하게 되었습니다.




InMoov 로봇을 제작하는 Gael Langevin의 모습



3D 프린팅과 로보틱스, IoT에 관심이 많은 3명의 LIME 멤버가 모여

1달 정도의 기한을 목표로 InMoov 전체 로봇 중 

로봇손 부분을 본격적으로 제작해 보기로 결정했습니다.

기본적으로 현재 보유하고 있는 FDM 방식의 3D 프린터를 이용해 부품을 제작하고, 

지난 Arduino Study에서 활용했던 Arduino UNO를 제어장치로 사용할 것입니다.




Arduino Uno를 활용한 스터디 중 3색 LED의 테스트



직접 모델링을 출력하고, Arduino 를 통해 제어해 보며 멤버들의 관련 지식이 늘어나는 것

주변 사람들에게 3D 프린터를 통해 전자 의수와 같이 의미있는 제품의 제작 가능성을 알리는 것

마지막으로 로봇손의 새로운 활용 방안을 모색하는 것이 

이번 프로젝트의 목표라고 할 수 있습니다.



2. 로봇손 제작 과정


A-01. 제작 과정 전반의 이해

A-02. 제작을 위한 모든 준비

A-03. 3D 프린팅 출력물

A-04. 제작 도구의 준비

A-05. 제어 장치의 준비

A-06. 조립을 위한 준비

A-07. 상세 조립 과정

A-08. 모터 및 제어부품 연결

A-09. 작동코드 분석

A-10. 활용방안의 모색



- 참고 -


Thingiverse

https://www.thingiverse.com/


사진 출처

http://www.robots-and-androids.com/


 

'Projects > Fumby' 카테고리의 다른 글

A-04. 제작 도구의 준비  (0) 2016.09.04
A-03. 3D 프린팅 출력물 살펴보기  (3) 2016.09.04
A-02. 로봇손 제작을 위한 모든 준비  (4) 2016.08.04
A-01. 제작 과정 전반의 이해  (0) 2016.08.03
Fumby 프로젝트 개요  (0) 2016.07.24

1. Fumby(펌비) 프로젝트에 대하여




Google Hack Fair 에 사용된 Fumby 의 소개 배너. 프로젝트 과정을 한눈에 알아볼 수 있습니다.




 Fumby 는 아기가 손가락을 더듬는 Fumble 이란 단어에서 따온 것으로

간단한 손 형태의 로봇을 제작하는 데 초점이 맞춰져 있습니다.


다만 로봇 제작에 있어 3D 프린터를 활용하며,

소프트웨어 부분에 인공지능을 접목시키는 것이 목표입니다.


이를 위해 Fumby 프로젝트는 크게 세 단계로 나뉘어 진행되었습니다


- 3D 프린터를 활용한 로봇손의 제작

- Tensorflow 를 활용한 인공지능 소프트웨어 제작

- Arduino를 활용한 Tensorflow와 로봇손의 연결


이 모든 과정은 OpenSource로 공개된 자료를 활용하여 진행되었으며

지금까지 LIME 멤버들이 함께 공부해 온 지식들을 총 동원해 제작되었습니다.




2. Fumby에 활용된 오픈소스


Fumby 는 다양한 오픈소스의 집합체라고 할 수 있겠습니다




InMoov 로봇. 촉각, 청각, 시각 등을 센서로 구현했다고 합니다.





3D 프린터를 활용한 로봇손의 제작에는 

Gael Langevin 디자이너의  InMoov Hand And ForArm이 활용되었습니다

STL 파일과 제작법 등을 공개 블로그를 통해 얻었습니다.

( STL 파일 출력에 도움을 준 국민대학교 FreeD / 서울여자대학교 창업보육센터 / 3D ONE 에 감사 말씀을 드립니다)




OpenSource 의 천국 GitHub




Tensorflow 를 활용한 인공지능 소프트웨어 제작에는

miyosuda 님의 TensorFlowAndroidMNIST가 활용되었습니다

소스코드와 빌드 방법을 Github를 통해 얻었습니다



요샌 초등학생도 한다는 그 아두이노




Arduino 를 활용한 Android 와 InMoov 의 연결에는

기본적인 Arduino의 블루투스 통신과 함께 

티스토리의 lionhead님의 블로그 예제글을 참고하였습니다




3. Fumby 프로젝트 시작과 결과


Fumby는 LIME의 설립과 동시에 로봇손 제작 프로젝트를 기반으로 시작되었으며

Google Hack Fair 에 전시됨으로써 끝을 맺었습니다

2016년 4월 28일 ~ 2016년 10월 15일의 기간동안

총 라임 멤버 5명이 참가했습니다.




4. Fumby 프로젝트 개요


A. InMoov 로봇손 제작

B. TensorFlow Android MNIST 빌드

C. Arduino 블루투스 통신


위의 순서로 Fumby의 제작법이 상세하게 게재될 예정입니다




- 참고 -


InMoov 로봇 오픈소스

http://inmoov.fr


Tensorflow MNIST in Android 오픈소스

https://github.com/miyosuda/TensorFlowAndroidMNIST


Android-Arduino 블루투스 연결 소스코드

http://hyoin1223.tistory.com/entry/아두이노-스마트폰-연결하는-Application-만들기


사진 출처

https://www.arduino.cc

https://twitter.com/inmoov

https://justwriteclick.com


* 예전에 알아본 사전적 의미에서의 의수는 인공적으로 만들어진 손, 에 불과했으나,

새로 알아본 의미에서는 인간의 손을 대체할 수 있는 물건, 으로 나타나기에

로봇 의수 -> 로봇손 으로 변경하여 작성하였습니다.




+ Recent posts