2020/05/17 - [로봇] - 인생 프로젝트 시작 - MORS 프로젝트 #2 Restart
2020/05/30 - [로봇] - 인생 프로젝트 시작 - MORS 프로젝트 #3 Modeling
https://mazdah.tistory.com/865
2020/08/16 - [로봇] - 인생 프로젝트 시작 - MORS 프로젝트 #5 조립 완료… 그러나…
내가 아두이노를 처음 접한 것이 2016년 5월 이었다. 그리고 내 인생에는 새로운 세상이 열렸고, 나의 학문적
정체성이 그 실체를 드러냈다. 나는 문돌이의 탈을 쓴 공돌이였음을 커밍아웃 할 수밖에 없었다.
처음 아두이노를 접한 후 지금까지 꽤나 굵직한 개인 프로젝트를 많이 시도하였다. 하지만 안타깝게도 그나마 성공
했다고 할만한 프로젝트는 2018년 2월달에 만들었던 온도/습도/먼지 측정기 정도이고 그 외에는 모두 끝을 보지
못했다. 대략 다음과 같은 시도들이 있었다.
-
2016년 6월 ~ 2017년 1월 : 4족 보행 로봇 만들기
-
2017년 7월 ~ 2017년 10월 : 싱글콥터 만들기
-
2019년 1월 ~ 현재 : 미니 드론 만들기
싱글콥터 만들기를 진행할 때까지는 3D 프린터도 없어서 온갖 잡동사니를 사다가 자르고 붙이고 하면서 참 고생도
많이 했다. 물론 3D 프린터를 마련한 후에도 모자라는 모델링 실력에 사실상 직접 출력해서 쓴 것보다 출력 대행을
맡긴 것이 더 많긴 하지만…ㅠ.ㅠ
아무튼 이렇게 진행한 프로젝트들이 비록 그 끝은 보지 못했지만 아마도 이제 시작할 인생 프로젝트의 밑거름이
되려고 존재했던 것이 아닌 가 하는 생각이 든다. 바로 그런 실패를 통해 오늘부터 시작할 이 프로젝트의
아이디어가 탄생한 것이나 다름 없으니 말이다(매우 강한 아전인수인가…-.-)
물론 이제 시작할 이 프로젝트의 컨셉이나 아이디어가 전혀 새로운 것은 아니다. 하지만 몇몇 측면에서는 분명
조금은 새로운 시도라 할 수 있을 것 같다(진정한 판단은 이 글을 읽는 분들이 해주시길…^^).
프로젝트의 명칭 - MORS
이 프로젝트의 명칭은 MORS이다. MOdular Robot System의 약어이다. 뭔가 그럴듯한 명칭을 생각하고자
했지만 약어를 만들고 보니…Mors란 영어권에서는 “죽음”, “죽음의 신”, 라틴어로는 “죽음”, ”시체”, “끝”, “파멸”
등 굉장히 불길한 의미를 지니고 있었다. 그나마 독일어에서는 “신화”라는 의미가 있으며 라틴어 숙어인 Mors
sola는 “죽음이 갈라놓을 때까지”라는 조금은 애절한 의미가 있었다. 이 중 쓸만한 것은 역시 독일어의 “신화”가
아닐까. “신화가 될 프로젝트”라…나름 괜찮네…
하지만 역시 중요한 것은 풀네임이 의미하는 바이다. 바로 “모듈형 로봇 시스템”이라는 개념 말이다.
Concept
핵심 컨셉은 바로 모듈의 “사용자화”와 “공유”이다. 즉, 사용자가 모듈을 직접 만들고 이 것을 오픈소스화 하는
것이다.
사실 “모듈형”이라는 개념은 하나도 새로울 것이 없다. 이미 많은 로봇들이 모듈형으로 제작되고 있다. 특히나
교육용 로봇들의 다수가 모듈형으로 만들어지고 있다. 따라서 “모듈형”이란 개념은 어찌보면 오히려 상투적인
개념에 더 가깝게 느껴지기까지 한다.
하지만 이런 로봇들은 대체로 모듈들이 ready-made로 이미 생산 당시 각 모듈에 부여된 기능을 활용하는
정도로 확장성은 그리 높지 않다는 아쉬움이 있다. MORS는 바로 이점에 착안하여 모듈들을 사용자가 직접
만들어 활용할 수 있도록하고 또 이렇게 만들어진 모듈을 오픈소스화 하는 것이 주 목적이다.
물론 이렇게 할 경우 사용자의 기술적 이해도나 숙련도가 더 높아지는 장애가 발생을 한다. 아두이노에 대한
지식 뿐만 아니라 BASE에서 모듈을 제어하기 위한 프로그래밍도 필요하기 때문에 어느 정도의 프로그래밍
지식도 필요로 하게 될 것이다.
디자인
MORS의 핵심은 라즈베리파이가 장착된 BASE이다. 아래의 그림들은 BASE의 구성도이며 다양한 모듈을
다양한 형태로 연결 가능하도록 하기 위해 8각형의 형태로 만들었다.
이 BASE는 2개의 레이어로 구성이 되어있으며(물론 추후 확장될 수도 있다), 각각의 레이어는 다음과 같이
구성되어있다.
레이어 1
우선 앞서 말한대로 BASE에는 라즈베리파이가 1대 장착되어있고 모듈을 USB로 연결하게 될 경우 기본
4개의 USB 포트를 확장하기 위해 USB 확장 Hat 2개를 배치하였고 모듈을 I2C 방식으로 연결하거나
혹은 모듈에 라즈베리파이를 통해 전원을 공급할 경우를 위해 소형 bread board를 올렸다.
레이어2
두번째 레이어에는 전원과 관련된 부품들이 배치가 되는데 기본적으로 배터리가 장착이 되고 또 모듈쪽
부품들이 다양한 전압을 사용할 수 있도록 2개의 step-down converter를 두어 2종류의 전압(기본은
6V와 12V)을 사용할 수 있게 하고 다수의 모듈에 전원을 공급하기 위해 2개의 배전반을 배치하였다.
Connector
마지막으로 BASE와 모듈간의 통신 및 전원 공급을 위한 커넥터 구성이다. 우선 데이터 통신을 위해서는
USB와 I2C 2가지의 방법을 선택 가능하도록 하여 USB 커넥터를 위한 홀과 I2C를 위한 일반 점퍼선용
홀을 두었다. I2C로 연결을 하는 경우에는 모듈쪽 보드에 별도의 전원 인가가 필요하므로 전원 공급용 점퍼
선도 함께 사용한다. 또 모터 등 직접 별도의 전원을 인가해야 할 경우를 위해 2개의 전원 포트용 홀을 두었다.
Modules
모듈은 전적으로 사용자가 직접 만들게 되므로 고정된 형태가 없다. BASE는 기본적으로 8개의 모듈을
연결할 수 있도록 만들어져 있으나 이 것은 표면적인 형태일 뿐이고 사용하기에 따라서는 작은 모듈 8개를
BASE에 연결하는 형태가 아닌 커다란 모듈에 BASE를 장착하는 형태로 운용할 수도 있다. 모듈은
기본적으로 아두이노 프로 미니 보드를 베이스로 만들 수 있으며 라즈베리파이와 USB 연결이 가능한
보드라면 어떤 것이든 사용이 가능하다.
모듈 제어
라즈베리파이로 아두이노를 제어하는 방법은 일반적으로 2가지를 생각할 수 있다.
첫 번째는 USB로 연결하여 Firmata 라이브러리를 이용하는 방법이다. 이 방법은 라즈베리파이에서
아두이노의 포트를 직접 제어하는 방식으로 USB로 연결하므로 전원 문제가 자동으로 해결되고 또 모듈쪽에
별도의 프로그래밍이 필요 없다는 장점이 있다. 다만 라즈베리파이에서 몇개까지의 아두이노를 USB로
연결하여 제어할 수 있는지는 확인이 필요하다. 일단 8개까지 연결해보려고 계획 중이다.
두 번째는 I2C 방식으로의 연결이다. 이 방식은 BASE의 라즈베리파이에서는 사용자의 원격 조종기 신호만
받아들여 이 신호를 모듈쪽으로 전달만 하고 실제 기능은 각 모듈의 프로그램들이 전달된 신호에 따라 수행
하게 되는 방식이다. 일단 상당히 많은 수의 모듈을 연결할 수 있기는 하지만 모듈쪽에 별도의 전원을 인가
해주어야 하고 또 각각의 모듈에 프로그래밍을 해야 한다는 단점이 있다.
우선은 연결의 편의성과 라즈베리파이에서만 프로그래밍을 하면 된다는 점에서 USB 연결을 우선으로
생각하고 있다.
운용
이미 앞에서 상당부분 언급을 하였지만 MORS는 BASE에 사용자가 직접 만든 모듈을 연결하여 동작을
시키는 방식이다. 모듈은 바퀴가 달린 형태일 수도 있고 로봇 다리의 형태일 수도 있고 드론의 프로펠러가
될 수도 있으며 방수 처리가 된 모듈로 수상용 모듈이 될 수도 있다. 아주 가볍게는 선풍기 모듈 하나 붙여
책상 위에 올릴 수도 있을 것이다^^.
더불어 사용자가 원한다면 본인이 개발한 모듈을 공유할 수 있도록 할 것이다. 3D 프린팅된 모듈용 프레임이
있다면 Thingiverse와 같은 플랫폼을 이용하여, BASE나 모듈의 프로그램들은 GitHub와 같은 플랫폼을
통하여 서로 공유할 수 있도록 하는 것이다.
공유 프로그램의 경우 라즈베리파이에 소형 모니터를 연결한 후 아래 이미지와 같은 사용자 인터페이스를 통해
온라인으로 직접 업데이트 할 수 있도록 개발할 계획이나 이 부분은 시간이 꽤 걸릴 것 같다. 아울러 여력이
된다면 npm같은 플랫폼을 직접 만들어보고 싶기도 하다.
정리
앞서 말했듯이 이 프로젝트는 그동안 진행했던 개인 프로젝트들을 총 집대성한 프로젝트가 될 것이다.
규모 면에서는 상당히 부담이 되지만 그래도 앞서 했던 작업들의 연장선인 만큼 어느 정도 자신감은 있다.
하지만 어디 세상 일이란 것이 그렇게 단순하기만 하던가. 중간에 어떤 문제가 어떻게 닥쳐올 지는 아무도
모르는 일…-.-
당장에 BASE 프레임을 3D 출력해야 하는데 내가 가지고 있는 3D 프린터는 너무 사이즈가 작아 출력이
어렵고(분할하기도 쉽지 않은 형태라) 결국 출력 대행을 해야 하는데 이것 또한 비용이 만만치 않다…ㅠ.ㅠ
그래도 결국은 돈을 쓰고 말겠지만…
우선은 BASE를 빨리 만들고 첫 번째 모듈은 4족 보행 로봇용으로 만들려고 한다. 사실 바퀴가 달린 형태가
구현이 훨씬 쉽겠지만 애초에 4족보행 로봇을 재시도 하려다가 탄생한 프로젝트이다보니 일단은 로봇
쪽으로 시작을 해보려고 한다.
어쟀든 BASE 프레임을 출력 대행 맡기더라도 다음 주 월요일에나 배송이 가능하다니 다음 포스팅은
다음주 주말이나 될 것 같다. 부디 계획대로 잘 진행되길…
'로봇' 카테고리의 다른 글
인생 프로젝트 시작 - MORS(4족보행로봇) 프로젝트 #3 Modeling (0) | 2020.05.30 |
---|---|
인생 프로젝트 시작 - MORS(4족보행로봇) 프로젝트 #2 Restart (0) | 2020.05.17 |
[Scratch building] 도전! Scratch Building! (0) | 2018.10.09 |
Linear Actuator를 이용한 2족 보행 로봇 제작 ~ #2 3D프린터와의 전쟁 (0) | 2018.08.05 |
Linear Actuator를 이용한 2족 보행 로봇 제작 ~ #1 준비작업 (0) | 2018.06.19 |