싱글콥터 만들기를 진행할 때까지는 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 프레임을 출력 대행 맡기더라도 다음 주 월요일에나 배송이 가능하다니 다음 포스팅은 다음주 주말이나 될 것 같다. 부디 계획대로 잘 진행되길…
얼마전 포스팅에서 Scratch building을 언급한 바가 있다. (http://mazdah.tistory.com/823) 간단히 정리하면 버려지는 잡다한 물건들을 이용하여 축소 모형(Scale model)을 만드는 작업을 일컫는 말이다.
기존에 진행하던 2족 보행 로봇 작업이 생각보다 시간이 길어지다보니 슬금슬금 관심이 다른 곳으로 쏠리고 결국은 일을 내고 말았다. 뜬금없이 잠깐 쉬는 셈 치고 잡동사니 모아다가 로봇 하나 만들어보고 다시 2족 보행 로봇 작업 진행하자고 생각한 것이다.
그리고 마침 그 때 일하는 사무실이 이사를 했는데 이사간 자리의 전 주인이 놓고 간 TLR(이안리플렉스 카메라) 형태의 연필깎이와 오래된 공유기의 안테나가 눈에 띈 것이다.
아무 생각 없이 주섬주섬 싸들고 집에 돌아와 작업을 시작했다.
천 리 길도 한 걸음부터 그리고 과유불급
첫 날은 기대에 부풀었다. 머릿속에 떠오르는 대로 각종 필요한 재로들을 벌여놓고 작업 준비를 하였다. 사실 연필깎이의 색깔과 형태가 얼핏 일제시대의 일본 순사를 떠올리게 하여 만세 운동을 진압하는 일본 순사 로봇을 디오라마로 만들까 생각도 해보았으나 현재의 내 실력으로는 언감생심 꿈도 못꿀 일이고 왠지 그렇게 만들어 놓으면 디오라마의 설정보다 일본 순사 로봇이 더 주목받을 것 같아 찜찜하기도 하였다.
이것 저것 많이도 준비했으나...
결국 평소의 내 스타일대로 그냥 만들어 가면서 그때그때 다음 계획을 잡아가기로 했다…-.- 최초의 계획은 유튜브 동영상에 많이 보이는 것 처럼 styrene 재질의 재료를 이용하여 몸통과 다리 이외의 디테일한 부분들은 모두 손수 만들려고 하였다. 그러나…양쪽 팔을 만들고 나니 더이상 수작업으로 뭔가를 만들 엄두가 나지 않았다…ㅠ.ㅠ
이렇게 진행하다가는 결국 제풀에 지쳐 만들다 말게 될 것 같아 잘 쓰고 있는 3D 프린터의 도움을 받기로 했다. 하지만 3D 프린터로 만든다고 해서 일사천리로 진행된 것은 아니다. 누누히 이야기 하지만 3D 프린터의 최대 맹점은 출력하는데 걸리는 시간이다. 그런데다가 만일 어렵사리 출력한 부품을 부러뜨리기라도 하면…ㅠ.ㅠ 아래 부품은 하체의 다리를 연결할 부품인데 왼쪽 위에 보면 다리를 연결할 부위가 너무 힘을 주어 부러져버렸다. 결국 4시간 이상을 들여 다시 뽑아야 했다…ㅠ.ㅠ
진행하면서도 몇 차례 생각이 바뀌었는데 먼저 2족보행형으로 만들려고 했는데 생각해보니 몸통 구조도 그렇고 잘라내야 하는 부분이 많아 4족 보행으로 바꾸었다. 다음으로는 사이버펑크 스타일로 만들까 했었는데 몸통의 투박한 외형도 그렇고 그냥 대책없이 진행하다보니 결국은 디젤펑크쪽으로 진행이 되어버렸다. 그리고 가급적이면 공격성향을 띠는 로봇보다는 공병 업무를 수행하는 로봇을 만들까 했는데 팔 부분을 어떻게 만들까 고민하다보니 그냥 원통형으로 대포나 쭉쭉 뽑아내면 되는 공격형 로봇으로 진행하기로 했다…-.-
요게 사이버펑크
요게 디젤펑크
간략한 진행 경과
만드는 과정을 세세하게 기록하지 못했기에 여기서는 간략하게 만들어져가는 모습을 사진으로만 보여주도록 하겠다. 각 부품의 조립은 대부분 M2, M3 사이즈의 렌치볼트를 사용하였다.
최종 형태를 결정한 후 기존에 작업했던 부분을 떼어내고 3D 프린팅한 부품들을 붙이기 시작한 모습이다. 뒤쪽에는 연료 탱크와 배기구를 달아주었다. 마침 연통을 붙인 부분에 적절하게 나사 구멍이 있어 붙여주었다. 다리에는 리니어 액추에이터 형태를 만들어 주었는데 실제로는 shock absorber라고 봐야 한다. 내부에 스프링이 들어있어 실제 shock absorber처럼 작동한다.
Shock absorber 3D 프린팅
이후 중앙에는 기관포를, 상단에는 열 배출구를, 다리에는 장갑을 붙여주고 어깨 부위도 디자인하여 달아주었다.
발이 허전하여 별도로 발을 달아주었는데 평소에는 발의 앞부분과 뒷부분을 접어서 다니다가 포격시 이 부분을 내려 바닥에 고정시킨다는 설정으로 설계를 하였다. 원래 구멍이 뚫린 부분에 나사를 끼워줘야 하는데 귀차니즘에 패쓰~
발을 폈을 때
발을 접었을 때
드디어 주 무장 을 붙였다. 로봇의 우측은 2연장 포 2문을, 좌측은 3연장 로켓 런처 2문을 달아주었다.
이제 슬슬 마무리다. 최종 무장으로 연막탄 발사기를 좌우 8개씩 붙여주었다. 뭔가 좀 어수선하면서도 있어보이는 것이 개인적으로는 맘에 든다. 더불어 상단에는 소형 라이트 4개를 그리고 몸통 가운데는 원래 연필깎이가 투명 부품으로 이루어져 있어 서치라이트로 설정했는데 도색할 때 같이 칠해버렸다는…ㅠ.ㅠ 몇 군데 철사도 박고 연료통과 액추에이터에 호스도 연결하여 모양을 좀 내주었다. 그리고 thingiverse에서 찾은 기름통과 직접 모델링한 탄통도 소품으로 준비했다.
도색
사실 마지막 완성 단계까지 왔는데도 뭔가 흡족하지 않았다. 생각해보니 아무래도 원 재료의 색깔들이 로봇을 어수선하게 하는 듯했다. 그리고 결국은 도색을 결심하게 되었다.
도색을 하고자 마음 먹고는 바로 에어 브러시를 알아보았다. 하지만 이내 돼지 목에 진주라는 것을 깨닫고 포기를 하였다. (하지만 언제 다시 지름신이 찾아올지…) 그래도 뭔가 격식은 갖춰야겠기에 우선 캔 스프레이 타입의 서페이서를 하나 사고 도색은 예전에 사다 놓은 아크릴 물감으로 하기로 했다. 다만 예전에 사다 놓은 색이 중장비 설정으로 노랑과 검정 위주로 사놓은 터라 올리브색 계열과 녹을 표현해줄 붉은 색 계열을 더 샀다.
우선 서페이서를 칠해보았다. 냄새 죽인다. 죽을 뻔했다…-.- 대부분의 도색을 1층 현관 옆에 있는 자전거 보관소에서 했는데 바람이 많이 불어 힘들었다. 그리고 부분 부분 덜 칠해진 것을 미련하게도 양수기함에 공간이 있어서 거기서 했는데 진짜 죽을 뻔했다. 암튼 스프레이질은 무조건 환기 잘되는 곳에서 마스크 쓰고 해야겠다. 일단 서페이서만 칠해놔도 제법 그럴듯하다.
그리고 대망의 본도색…예전에 4족 보행로봇 막칠 한 번 해보고는 처음 해보는 도색이다보니 제대로 하고 있는지도 모르겠고…그냥 칠하다보니 그럭저럭 볼만한 것 같기는 하다. 하지만 도색까지 공부하기에는 할 것 이 너무 많은 관계로 도색은 이걸로 끝을 내야겠다.
정리
이렇게 해서 대망의 Scratch building 첫 작품이 완성되었다. 원래 아두이노와 LED를 이용하여 라이트 부분에 불이 들어오게 할 예정이었으나 생각보다 제작 일정이 너무 길어진 관계로 그 부분은 생략을 하였다. 봐서 시간 나는 때에 작업을 해봐야겠다.
사진을 찍은 날짜를 보니 8월 12일에 첫 사진을 찍었다. 애초에 시작할 때는 가뿐하게 한 달 정도 만들어보고 바로 4/4분기 목표로 들어가려고 했는데 예상보다 한참을 초과하여 2달이 다 되어서야 겨우 작업을 끝마쳤다. 쉽지는 않았지만 재미도 있었고 결과물도 영 못봐줄 수준은 아닌 듯하다^^;; 디테일을 좀 더 살리지 못한 것과 도색이 깔끔하지 못한 것이 못내 아쉽지만 모자라는 부분은 다음 도전에서 채워보도록 하자~
올해 말까지 당분간은 계획했던 공부좀 하고 틈틈이 2족보행 부품 출력해 놓았다가 내년에 다시 본격적으로 아두이노로 작동하는 2족 보행 로봇을 만들어 봐야겠다.
지난 글이 7월 12이고 그 지난 글이 6월 19일이었다. 지난 글은 3D 프린터 A/S 관련 글이었으니 로봇 제작과 관련된 글은 달 수로 2달이 지났다. 출력 시간과 여러가지 여건상 글 작성이 늦어질 것을 예상하긴 했으나 생각 이상으로 글 작성 간격이 길어지고 있다...ㅠ.ㅠ
메이커 코스프레를 하고 있다보니 관련 분야에 대한 지식들이 하나 둘씩 모인다. 현재 제작 중인 로봇에 참고하기 위해 주로 pinterest와 youtube를 통해 mech, war robot, robot 등으로 검색을 하다보면 대체로 컨셉 아트에 해당하는 2D 일러스트나 3D 모델링들이 검색된다. 그런데 가끔 조금 독특한 형태의 로봇 모형들이 검색되는 경우가 었다. 꽤나 사실적이면서도 건담류의 기성 상용 제품들과는 달리 매우 거칠고 투박한, 그리고 매우 유니크한 로봇들...
물론 Scratch Building이 로봇에만 국한되는 제작법은 아니지만 내가 하고자 하는 것이 로봇 제작이기에 로봇을 위주로 찾게 되었다.
사실 건프라를 이용하여 기존 상용 제품과는 다른 모델들을 만들어 내는 것은 엄격하게 말해 Kitbashing에 속하지만 넓은 범위에서 Scratch Building이라는 용어를 더 자주 사용하는 것 같다. 역으로 Scratch Building이라고 하지만 상용 밀리터리 모델 킷을 이용하여 모형을 만드는 경우도 많기는 하다.
중요한 것은 3D 프린터를 이용하면 수작업으로 표현하기 어려운 형태를 쉽게 만들어낼 수 있다는 장점이 있지만 출력 시간으로 소모되는 시간과 또 3D 프린터라고 해서 만능은 아니기에 이러한 Scratch Building 기술을 익혀놓는다면 좋은 시너지 효과가 생길 것으로 생각된다.
즉, 기본적인 형태는 단순한 모양의 입체로 3D 프린터로 출력하여 골격을 갖추고 디테일한 디자인은 scratch building 으로 보강을 하는 것이다. 왕년에 3T 두께의 하드보드를 커터로 수도 없이 잘랐던 내가 뭘 두려워하랴...-.-
로봇 제작 재개!
일단 이전 작성한 글에서 3D 프린터 A/S 후기를 올렸었다. 그런데...
A/S 받고 온지 3일만에 다시 문제가 생겼다. 이미 한 차례 방문으로 우리 집에서 그 곳이 얼마나 먼지를 학습했기에 마음은 급하지만 더이상 방문할 엄두는 내지 못하고 이번에는 택배로 A/S를 보냈다. 택배 배송기간, 수리기간 모두 합쳐 꼬박 1주일 간의 시간을 손가락 빨면서 기다렸다...ㅠ.ㅠ(물론 계속 모델링을 하긴 했다).
1주일의 기나긴 기다림 끝에 드디어 프린터가 돌아왔고. 약간 달리진 부분이 있어 문의했더니 모터쪽 결함으로 인해 수리 기간이 길어질 것 같아 새로 입고된 다른 제품을 대신 보내줬단다. 토요일에 프린터를 받아 주말 동안 테스트 출력을 해본 결과는 합격이었다.
그렇게 해서 그동안 모델링한 각 부위들을 차례차례 출력하였다. 우선 골반 부위에 SG90 서보모터 6개를 고정시킬 부품은 모두 출력이 되어 조립을 해보았다. 기존 포함된 서보 혼을 대체할 부품도 만들어 끼워주었다.
전체적으로 생각보다 크기가 상당히 컸다.
다음으로는 골반과 허벅지를 이어줄 연결부를 만들었다. 상당한 출력 시간이 필요한 부품이었는데 한 번 실패한 후 무사히 2개를 모두 출력하였다. 다만 한쪽에서 수축이 발생하여 조금 변형이 생겼는데 어차피 외장을 입힐테니 가볍게 넘어가기로 했다.
이렇게 만들어진 모든 부품을 조립하니 아래 사진과 같은 모양이 되었다. 다시 봐도 좀 크다.
일단 동작 범위를 보면 아래 영상과 같다. 이러한 동작을 아두이노를 이용하여 제어를 해야 한다.
이렇게 한동안 신나게 출력하고 조립하고 잘 진행되는 듯하더니...또 다시 전조 증상이 발생하기 시작했다.
위 사진은 허벅지 부위에 이전에 만들었던 linear actuator를 고정시킬 부품인데, 보시다시피 상단부에 구멍이 숭숭 뚫린 것이 압출 불량의 증상이 나타났다. 여기까지는 그리 심하지 않고 역시나 외장 부품으로 상당부분 가려질 것이라서 용서가 되었는데...
이 부품은 말하자면 허벅지 뼈대로 고관절과 무릎을 이어주는 부품인데 무릎쪽 연결 부위가 이렇게 심하게 골다공증 증상을 보이고 있다. 그리고 이 것을 시작으로 이후 출력해야 할 부품들이 제대로 출력되지 않고있다. 최초 발생했던 문제들처럼 일정정도 출력 후에 필라멘트가 압출되지 않고 노즐만 헛돌다가 출력이 끝난다. 밤에 출력 걸어 놓은 것을 아침에 확인해봤을 때 반동가리도 안되는 부분만 오롯이 놓여있는 모습이 보이면...ㅠ.ㅠ
이 무더운 날 가뜩이나 잠 설치는데 프린터의 소음까지 견뎌가며 기다린 결과가 이런 것이라면...ㅠ.ㅠ
그런데 아무래도 이번에는 프린터 자체의 문제도 있겠지만 모델링 문제도 한몫 한 것이 아닌가 싶다.
그림에서 보는 것과 같이 분할면이 복잡하다. 아무래도 tweek을 너무 많이 사용한 것이 문제가 아닌가 싶다. tweek을 쓰다 보면 면의 두께가 매우 얇아지는 문제가 많이 나타나고 또한 경사각이 많이 생긴다 이런 형태들이 출력에 영향을 주었을 것 같다. 이 것보다 복잡한 구조물이 더 많은데...걱정이다...ㅠ.ㅠ
우선은 급한대로 출력 속도를 좀 늦춰봐야겠다. 아무래도 좁은 간격을 빠르게 움직이면서 충분한 압출이 이뤄지지 않은 것 같다. 만약 그래도 안되면 조금 더 단순한 모양으로 출력을 한 뒤 디테일은 scratch building으로 처리해야겠다. 더이상은 A/S 보내는 것도 힘들다...ㅠ.ㅠ 다음 3D 프린터는 무조건 자작이다!
글 작성 후 몇가지 테스트 중에 3D 프린터 문제를 해결하였다. 아래 사진의 빨간 표시가 된 부분은 thingiverse에 올라와 있는 필라멘트 필터라는 도구다. 저 안에는 솜뭉치가 들어있고 약간의 올리브유를 적셔주었다.
원래 이 필터의 목적은 필라멘트에 묻은 먼지등을 제거해주는 역할인데 내 프린터는 저 필터가 없었을 경우 장시간 출력을 하게 되면 필라멘트가 빨려들어가는 입구에서 열로 인해 꺾여버린다. 거의 90도로 꺾이다보니 익스트루더 모터가 잡아당겨도 꺾어진 각도 때문에 제대로 필라멘트를 끌어오지 못하는 문제가 발생을 한 것이다.
결국 필터를 저 위치에 끼워주니 필라멘트가 꺾이는 상황을 방지할 수 있게 되었고 이후로 다시 출력이 잘 되고있다^^.
정리
일단 다리까지만 모델링한 상태가 아래 사진과 같다.
아직도 출력할 부품들은 많은데 프린터는 위태위태하고...마음은 급하고. 내 계획으로는 8월까지는 로봇 제작을 완료해야 하는데...하....여차하면 16년도에 SEW 프로토타입을 만들었을 때처럼 동력부를 제외한 나머지 부분은 full scratch building으로 처리해야 할지도 모르겠다...이 더운날에...
오늘도 우리 집 방 한구석에는 자그마한 3D 프린터가 한여름 불볕더위를 더하는 데 한 몫 하고 있다...ㅠ.ㅠ
일단 Linear Actuator는 LCP06-A03V-0136 모터를 이용하여 내가 만들 수 있는 최소한의 크기로 완성을 하였다. 처음 LCP06-A03V-0700 모터가 40RPM이라는 느린 속도로 인해 실사용이 어렵다고 판단하여 200RPM의 새 모터를 구입한 것인데 이 속도도 그리 빠르다고는 할 수 없지만 크기와 속도와 토크의 적정선에서 고를 수 있는 모터는 이 LCP06-A03V-0136 모터 뿐이라고 봐야 할 것이다.
N20 기어 모터의 경우 Linear Actuator의 크기가 너무 커져서 차후 더 큰 크기의 로봇을 만들 때 사용하기로 했다.
몇가지 준비
LCP06-A03V-0136는 속도가 빠른 대신 토크가 낮아졌기 때문에 다리 한쪽에 Linear Actuator를 2개씩 장착하여 구동시키로 하였다. 그래서 주말동안 처음 샘플로 출력한 것 외에 추가로 3개를 더 출력하였다.
부품 중 내부 실린더로 사용할 외경 3mm의 스테인레스 파이프는 아직 자르지 않았는데 톱질의 노가다를 좀 피하기 위해 저렴한 파이프 커터를 하나 주문해놨다. 아무리 명필은 붓을 가리지 않는다지만 그래도 최소한 필요한 공구는 좀 있어야 작업이 편해지지 않겠는가?
더불어 부품에 구멍을 뚫거나 구멍을 넓히기 위해서 당장 사용하지는 않겠지만 추후 드릴 프레스를 만들기 위해서 모터와 드릴척도 banggood에 주문을 한 상태다. 또 한 20일 정도 마음을 비우고 기다려야겠지...-.-
만약 내가 이 프로젝트를 실패하게 된다면 그건 바로 이 3D 모델링 때문일 것이다. 나는 이제까지 3D 모델링이라고는 배워본 적도 툴을 다뤄본 적도 없다. 그저 최근에 3D 프린터를 구입하고 나서 123D Design이라는 말하자면 3D 모델링 프로그램계의 그림판이라고 할 수 있는 툴만 간간히 이용하여 이미 보아온 것과 같이 아주 단순한 형태의 모델만을 만들어봤을 뿐이다.
한마디로 내가 하고자 하는 작업은 이제 막 그림을 배우러 미술학원에 등록한 학생이 그림판을 이용하여 극사실주의 화풍의 그림을 그리고자 하는 것과 다름없다...ㅠ.ㅠ
상황이 이렇다보니, 보통은 전체적인 형태를 스케치 하고 그것을 바탕으로 3D 모델링을 하고 물리 효과를 적용하여 움직임을 확인하는 등의 과정을 거치는데, 나는 스케치조차 능력이 안되다보니 123D Design에 바로 핵심 부품을 중심으로 그 주위에 하나하나 부품을 만들어 나가는 식으로 작업을 할 수밖에 없다.
더 심각한 것은 이 123D Design은 물리 효과는 전혀 줄 수가 없기 때문에 이놈이 만들어진 후 제대로 서있기나 할지, 혹은 동작 중에 서로 겹쳐지는 부분은 없는지, 축들이 서로 어긋나지는 않았는지를 확인할 방법이 없다. 그야말로 시행착오의 연속이고, 예약된 가시밭길인 것이다...ㅠ.ㅠ
따라서 아래 공개하는 습작은 그냥 습작일 뿐 실제 출력 과정에서 많은 변형이 예상된다. 우선 다리만 작업해보았다.
정리
시작이 반이라고 했다. 일단 뭐가 됐든 시작은 했으니 어떻게든 되겠지^^;
하지만 만드는 것도 만드는 것이지만 만든 후 아두이노를 통해 어떻게 제어를 해야 할지가 또 구만리다. 머릿속에서는 모든 것이 착착 진행되어 먼 미래로 날아가고 있는데 현실은...ㅠ.ㅠ
뭐 안되면 피규어라고 우기면 그만이지~ 긍정적으로 살자! 긍정에 대한 유명한 얘기가 있지 않은가?
지난 포스팅에서 앞으로 내가 만들고자 하는 로봇과 그러한 로봇을 만들기 위한 준비로써 Linear Actuator 시제품을 만드는 과정을 설명하였다.
하지만 시제품이다보니 여러모로 한계가 있었다. 우선 지난 작업의 한계들을 조금 살펴보고 가자.
모터 선정의 문제 : 지난 번 사용한 모터는 8520 coreless 모터로 주 용도는 소형 드론을 만드는데 사용하는 모터다. 따라서 RPM은 매우 높으나 torque는 낮아서 지난 포스팅의 동영상에서 보듯이 작은 마찰에도 내부 실린더가 잘 올라오지 않거나 움직이는 속도가 잘 조절이 안되는 모습이었다. 게다가 모터 축이 원통형이어서 웬만큼 단단히 접착하지 않으면 모터 축과 연결하는 부품이 헛돌기 일쑤다.
멈춤 제어 장치 부재 : 내부 실린더가 위나 아래의 끝부분에 도달하게 되면 모터를 정지시켜 더이상 작동하지 않도록 해야 모터에 부하가 걸리지 않을 것이다. 하지만 개인이 제작하는 수준이다보니 아직은 구현이 쉽지 않다. 일단 소프트웨어적으로 구현을 하기 위해 encoder를 함께 구매해놨지만 아직 사용은 안하고 있다. 당분간은 아두이노 스케치상에서 적절한 시간 조절을 통해 멈춤을 제어해야 할 것 같다.
구조 설계의 문제 : 이 부분은 아직도 딱부러지게 해결을 못했다. 가급적 조립과 분해가 쉽도록 하기 위해 머리를 굴리고 있으나 이번 제작한 것들은 조립이 까다롭게 되었다. 그리고 내부 실린더가 헛도는 것을 막기 위해 내부 실린더 하단부를 사각형으로 만들고 그에 따라 외부 실린더의 내부도 사각형 형태로 만들었었는데 아무래도 마찰이 큰 것 같아 이번에는 조금 바꿔보았다. 하지만 3D 프린팅의 관점에서보면 지난번 구조가 더 효율적이다.
이러한 문제점들을 일부 개선하여 새롭게 버전 2와 버전 3의 Linear Actuator를 만들었다. 여전히 몇가지 문제는 남아있지만 동작은 한결 자연스러워졌다(버전 2와 버전 3의 차이는 모터와 전체 크기의 차이다).
모터 선정
모터와 관련해서는 앞서 언급한대로 고 RPM, 저 torque 문제와 원통형의 모터축 문제를 해결해야 했다. 우선 torque 문제를 해결하기 위해 geared motor를 검색했다. 그냥 예전에 기어박스를 이용하여 속도를 줄이면 torque가 올라간다는 것을 주워 들은 것 같다...-.- 다행히 많은 검색 결과가 나왔다. 게다가 대부분의 geared 모터는 모터 축(엄밀히 말하면 기어박스의 축)이 D컷이 되어있었다(D컷은 원통형 축의 한쪽을 잘라내어 모터 축이 헛도는 것을 막는 방법으로 잘라내고 난 모양이 영문 D와 같다고 하여 D컷이라고 한다).
다음 기준으로는 가능한한 소형화를 해야 하기 때문에 모터의 크기가 중요 선정 기준이 되었다. 사실 지난 번 사용한 8520(지름 8.5mm, 높이 20mm) 모터정도가 딱 좋다 싶었는데 정작 Linear Actuator를 만들고 나니 생각보다 크기가 컸다. 어쨌든 8520 모터를 크기의 기준으로 삼았다.
이렇게 기준을 정하고 선정한 첫번째 모터가 바로 N20 모터를 베이스로 한 일군의 기어모터였다. N20 모터는 가로, 세로, 높이가 각각 10mm X 12mm X 15mm정도되는 크기의 사각형 형태의 모터로 주로 소형 서보모터를 만드는데 사용되거나 앞단에 금속 기어박스를 달아 판매를 한다. 메이저 제조사는 pololu라는 업체인 것 같은데 가격이 비싸고, 중국산 카피제품은 허용 전압과 기어비에 따라 3천 원 대 후반에서 만 원대에서 구매 가능하다.
나는 일단 banggood에서 12V, 100RPM의 스펙을 갖는 모터를 선택하여 주문하였으나...2달이 다되가는 지금까지 도착하지 않고 있다는 슬픈 전설이...ㅠ.ㅠ
결국 국내 업체를 통해 6V, 450RPM에 뒤쪽으로 encoder를 달 수 있는 제품을 포함하여 추가로 2종류의 변형 제품을 구매했다.
일단 이 제품은 생각보다 크기가 작고 스펙에 따라서는 꽤 높은 토크를 낸다는 점이 장점이다. 내가 처음 banggood 에서 주문한 제품의 경우 정격토크가 2.0kgf-cm정도다. 가격은 약 3,900원 정도. 하지만 미처 생각하지 못한 것이 있었으니...바로 모터의 형태다. 그 전에 사용한 8520 모터는 원통형의 모양이었지만 이 모터는 육면체 모양이다. 8.5mm와 12mm...별 차이가 없어보이지만 지름이 8.5mm인 것과 사각형의 한 변이 12mm인 것은 결과물에서 엄청난 차이를 만들게 된다(아래 버전별 비교사진 참고).
일단 N20모터를 기준으로 모델링을 하는 과정에서 크기가 상당히 커진다는 것을 확인하고 추가로 모터를 검색하였다. 그러다 발견한 것이 LCP 시리즈였다. 이 모터는 지름 6mm의 원통형 모터로유성기어가 장착된 모델인데 가장 높은 토크를 가진 모델이 LCP06-A03V-0700으로 기어박스 포함 전체 길이는 약 21mm 정도로 8520모터와 비슷 한 크기를 가졌다. 3V에서 작동하며 정격토크는 200gf-cm이고 40RPM의 속도를 낸다.
이 모터를 사용하여 만든 Linear Actuator가 가장 적당한 크기였다.
벗뜨! 그러나!
일단 이 모터의 가장 큰 단점은 가격이다. 국내 업체 중 가장 싼 곳이 개당 8,400원에 판매하고 있다. N20 베이스 모터와 비교하면 크기는 1/2, 가격은 X2 + 𝛼인 것이다. 게다가 40RPM...사실 이 방면으로는 젬병인 문돌이다보니 40RPM이 의미하는 바를 몰랐다. 1분에 40바퀴 돌아간다는 것 정도는 검색질로 알 수 있었으나 그게 어느 정도의 속도인지는 정말 몰랐다...ㅠ.ㅠ
회전 운동이 물체를 움직이는 거리와 회전 운동을 직선 운동으로 바꾼 후 물체를 움직이는 거리는 천지 차이다. 물론 회전 운동의 경우 회전 축으로부터의 거리가 영향을 크게 미치고 직선 운동의 경우 나사선의 간격이 영향을 미치므로 직접 비교는 힘들지만 아무튼 M2나 M3 사이즈의 작은 볼트의 나사선 간격을 놓고 보면 모터의 회전 속도가 웬만큼 빠르지 않다면 움직이는 거리가 매우 작다(아래 동영상 참고).
만일 이 모터를 사용한 Linear Actuator로 만들 수 있는 로봇이 있다면 그것은 단 하나! 바로 달팽이 로봇이다...-.-
결국 이 모터보다 한 등급 낮은 120gf-cm의 토크에 200RPM의 속도를 갖는 모터를 추가로 주문했다.
참고로 몇가지 모터들을 비교한 사진을 올린다. 첫 번째 사진의 오른쪽 모터는 직경 4mm 크기의 진동 모터다. 혹시나 어떻게 사용해볼 수 있을까 하고 덜컥 구입했지만…역시나 이 크기로는 무리다…
좌측부터 일반 DC 모터(학습용), N20 기어 모터, SG90 서보 모터, LCP06-A03V-0700 유성 기어 모터, 마이크로 서보 모터
3D 프린팅
지난 포스팅에서도 언급한 바와 같이 3D 프린터를 이용하는데 있어 가장 큰 문제는 바로 공차 설정이다. 0.5mm를 줘도 안들어가는 일이 비일비재하여 아예 넉넉하게 0.8 ~ 1.0mm 정도 준 후 볼트로 조여 최종 고정시키는 방식을 사용하기로 했다. 하지만 이 방법도 만능이 아닌 것이 FDM 방식의 3D 프린터는 녹은 필라멘트를 실처럼 얇게 뽑아 한층한층 쌓아가며 만드는 방식이다보니 이렇게 층이 쌓인 방향으로는 강도가 매우 약하다. 자칫 볼트를 심하게 조일 경우 이 층이 갈라져 깨져버린다. 이 문제를 막을 방법은 출력물의 두께를 두껍게 하는 것 뿐이지만 마냥 그럴 수도 없고...
또 다른 문제는 개인차가 있는 문제이겠지만 간혹 출력 중 노즐이 막히는 경우가 있다. 대략 5시간 가까이 출력해야 하는 부품이 3시간 출력후 노즐이 막혀 헛돌고 있으면...나무아미타불...ㅠ.ㅠ 한 몇번 이런 문제가 생기다보니 답답한 마음에 차라리 전문 출력 업체에 출력 의뢰를 하려고 했더니 이건 또 가격이 안드로메다인지라...ㅠ.ㅠ
최대한 출력 시간을 줄일 수 있도록 모델링을 하고 출력 중 환경(온도, 진동 등)이 일정하게 유지되도록 하는 외에는 달리 방법이 없다. 특히 출력 시간의 경우 동일한 모델을 180도 돌려 출력하는 것만으로도 시간을 줄일 수 있다. 가능한한 서포터가 적게 출력되도록 하는 것이 아무래도 출력 시간을 줄일 수 있지만 가급적이면 조립되는 면에는 서포터가 안생기도록 하는 것이 나중에 매끈한 면으로 서로 연결할 수 있어 유리하다. 결국 케바케로 출력 시간이 결정될 수밖에 없다.
그럼 버전 2와 버전 3의 3D 프린터 출력물 및 구성품을 알아보자.
버전 2
외부 실린더 하단 덮개 (O-ring으로 연결)
모터 하우징
외부 실린더
볼트와 모터 축 연결부 (볼트는 M2, 30mm 렌치 볼트)
너트와 외부 실린더 연결부 (너트는 M2 사이즈, 외부 실린더는 외경 3mm 스테인레스 파이프)
내부 실린더 덮개 (O-ring으로 연결)
LCP06-A03V-00700 유성 기어 모터
버전 2의 조립 과정은 다음과 같다.
버전 3는 구성품만 설명한다. 조립 과정은 비슷비슷...
버전 3
외부 실린더 상단 덮개 (버전 2의 경우 이 부분이 실린더와 일체형이다)
외부 실린더 하단부 (모터 삽입부)
외부 실린더 상단부
볼트와 모터 축 연결부 (볼트는 M6, 60mm 육각볼트)
너트와 내부 실린터 연결부 (너트는 M6, 내부 실린더는 외경 8mm 스테인레스 파이프)
외부 실린더 하단 덮개 (처음에는 짧게 만들었으나 외부 실린더의 연결부가 보기 안좋아서 가리기 위해 길게 만들었음)
N20 6V 450rpm 기어 모터
내부 실린더 덮개
버전 3의 경우 조립 과정에서 외부 실린더 상단과 하단 조립 후 외부 실린더 하단 덮개가 이 연결부를 덮게 되는데 꽤 여유있게 공차를 주었음에도, 출력물의 바닥과 천정이 살짝 퍼지는 현상과 함께 볼트를 체결하면서 볼트가 잘못 들어가 연결부에 변형이 생기는 문제가 발생하여 조립이 빡빡하게 되었다.
덕분에 다시 분해하면서 외부 실린더 하단부의 연결 부위가 박살이 나서 4시간 넘는 출력물을 새로 뽑아야 했다...ㅠ.ㅠ 새로 뽑은 부품으로 조립할 때는 줄로 연결부위를 조금 다듬어 주었더니 무리없이 조립이 되었다.
마지막으로 완성된 제품의 버전별 크기를 비교해보면 다음과 같다.
사진 왼쪽부터 버전 3 : 길이 약 15cm / 무게 약 56g 프로토타입 : 길이 약 10cm / 무게 약 24g (사진에서는 내부 실린더가 약간 돌출된 상태라 조금 길어보임) 버전 2 : 길이 약 8.5cm / 무게 약 7g
동작 테스트는 동영상으로 감상해보자. 타이머를 켜놓았으니 초당 얼마나 움직이는지 확인하면 되겠다. 다만 버전 3의 경우 원래 6V에서 작동하는 모터인데 버전 2와 동일한 3.7v의 리튬 폴리머 배터리로 작동을 시킨 만큼 이 동영상보다는 좀 더 속도가 나올 것이다.
다만 아직 얼마만큼의 무게를 움직일 수 있는지에 대해서는 테스트를 하지 않았다.
문제점
제법 개선을 했음에도 불구하고 여전히 문제가 있다. 앞서 말한 정지 제어가 안된다는 문제와 구조적으로 내부 실린더와 너트를 연결하는 부위를 원형으로 하는 대신 외부 실린더 안쪽에는 돌기를, 너트 연결부에는 홈을 파서 내부 실린더가 헛도는 것을 막도록 바꾸었는데 조립의 편의성 때문에 모터와 볼트 연결부 역시 동일한 구조로 만들었다. 이 구조는 만일 양 끝단이 당겨지는 힘을 받았을 때 모터 축과 볼트 연결부가 단단히 고정되어있지 않다면 내부 실린더가 빠져버리는 문제가 발생할 수 있다.
고쳐야 하겠지만...새로 설계하고 출력하는 시간이 어마무시 하므로, 괜찮겠지 하고 넘어가보자...ㅠ.ㅠ
속도 문제는 새로운 모터가 도착하는대로 다시 테스트를 해볼 것이다.
그나저나 본격적으로 로봇을 만들기 시작하게 되면 이 부품들을 몇세트 씩은 더 뽑아야 하는데...또 얼마나 많은 시간이 걸릴까...
정리
아직 많은 문제점이 있지만 그래도 제법 그럴듯한 모양으로 Linear Actuator가 만들어졌다(하지만 지금도 3D 프린터 출력 시간을 생각하면 치가 떨린다). 이제 본격적으로 로봇을 설계하고 만들어야 하겠지만 최소한 버전 3를 1개 더 만들어야 하고 버전 2를 6개 정도는 더 만들어야 한다. 나의 생활 패턴 상 3D 프린팅을 하는 데만도 2주는 잡아야 할 것 같다. 물론 그 전에 적절한 힘을 낼 수 있는지 먼저 테스트도 해야 하고...
어쨌든 본격적인 로봇 작업이 시작되면 지금보다는 좀 더 재밌는 글을 쓸 수 있지 않을까 기대해본다^^