도전! Scratch Building!


얼마전 포스팅에서 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족 보행 로봇을 만들어 봐야겠다.

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^




Linear Actuator를 이용한 2족 보행 로봇 제작 ~ #2


지난 글이 7월 12이고 그 지난 글이 6월 19일이었다.
지난 글은 3D 프린터 A/S 관련 글이었으니 로봇 제작과 관련된 글은 달 수로 2달이 지났다.
출력 시간과 여러가지 여건상 글 작성이 늦어질 것을 예상하긴 했으나 생각 이상으로 글 작성 간격이
길어지고 있다...ㅠ.ㅠ


이래서는 맥이 끊어질 것 같아 지금 새로운 방법을 모색하고 있다.


Scratch Building


Scratch Building의 정의는 이렇다.


Scratch Building란 상업용 킷을 이용하지 않고 처음부터 일상의 각종 재료를 이용하여 축적 모형을 제작하는 방법이다. — Wikipedia : https://en.wikipedia.org/wiki/Scratch_building


메이커 코스프레를 하고 있다보니 관련 분야에 대한 지식들이 하나 둘씩 모인다.
현재 제작 중인 로봇에 참고하기 위해 주로 pinterest와 youtube를 통해 mech, war robot, robot 등으로 검색을
하다보면 대체로 컨셉 아트에 해당하는 2D 일러스트나 3D 모델링들이 검색된다. 그런데 가끔 조금 독특한 형태의 로봇
모형들이 검색되는 경우가 었다. 꽤나 사실적이면서도 건담류의 기성 상용 제품들과는 달리 매우 거칠고 투박한, 그리고
매우 유니크한 로봇들...


물론 Scratch Building이 로봇에만 국한되는 제작법은 아니지만 내가 하고자 하는 것이 로봇 제작이기에 로봇을 위주로
찾게 되었다.






제작 영상 : https://youtu.be/ftmtvu9dB2s


한편으로는 Kitbashing이라는 제작법도 있다.

Kitbashing이란 서로 다른 기존 상용 모델 제품을 조합하여 새로운 축적 모형을 제작하는 방법이다.
-- Wikipedia : https://en.wikipedia.org/wiki/Kitbashing

사실 건프라를 이용하여 기존 상용 제품과는 다른 모델들을 만들어 내는 것은 엄격하게 말해 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개를 모두 출력하였다. 다만 한쪽에서 수축이 발생하여 조금 변형이 생겼는데 어차피 외장을 입힐테니 가볍게
넘어가기로 했다.




이렇게 만들어진 모든 부품을 조립하니 아래 사진과 같은 모양이 되었다. 다시 봐도 좀 크다.




일단 동작 범위를 보면 아래 영상과 같다. 이러한 동작을 아두이노를 이용하여 제어를 해야 한다.


https://youtu.be/N7aqzBunBYk



욕심같아서는 아래 사진과 같은 Stewart platform으로 구현을 하고 싶지만 그러려면 다리 한쪽에 6개의
actuator가 필요하게 되어 일단 조금 심플하게 만들어봤다.





> Stewart platform이란? : https://en.wikipedia.org/wiki/Stewart_platform


3D 프린팅의 어려움...


이렇게 한동안 신나게 출력하고 조립하고 잘 진행되는 듯하더니...또 다시 전조 증상이 발생하기 시작했다.




위 사진은 허벅지 부위에 이전에 만들었던 linear actuator를 고정시킬 부품인데, 보시다시피 상단부에 구멍이 숭숭
뚫린 것이 압출 불량의 증상이 나타났다. 여기까지는 그리 심하지 않고 역시나 외장 부품으로 상당부분 가려질 것이라서
용서가 되었는데...




이 부품은 말하자면 허벅지 뼈대로 고관절과 무릎을 이어주는 부품인데 무릎쪽 연결 부위가 이렇게 심하게 골다공증
증상을 보이고 있다. 그리고 이 것을 시작으로 이후 출력해야 할 부품들이 제대로 출력되지 않고있다. 최초 발생했던
문제들처럼 일정정도 출력 후에 필라멘트가 압출되지 않고 노즐만 헛돌다가 출력이 끝난다. 밤에 출력 걸어 놓은 것을
아침에 확인해봤을 때 반동가리도 안되는 부분만 오롯이 놓여있는 모습이 보이면...ㅠ.ㅠ




이 무더운 날 가뜩이나 잠 설치는데 프린터의 소음까지 견뎌가며 기다린 결과가 이런 것이라면...ㅠ.ㅠ


그런데 아무래도 이번에는 프린터 자체의 문제도 있겠지만 모델링 문제도 한몫 한 것이 아닌가 싶다.




그림에서 보는 것과 같이 분할면이 복잡하다. 아무래도 tweek을 너무 많이 사용한 것이 문제가 아닌가 싶다.
tweek을 쓰다 보면 면의 두께가 매우 얇아지는 문제가 많이 나타나고 또한 경사각이 많이 생긴다 이런 형태들이 출력에
영향을 주었을 것 같다. 이 것보다 복잡한 구조물이 더 많은데...걱정이다...ㅠ.ㅠ


우선은 급한대로 출력 속도를 좀 늦춰봐야겠다. 아무래도 좁은 간격을 빠르게 움직이면서 충분한 압출이 이뤄지지 않은 
것 같다. 만약 그래도 안되면 조금 더 단순한 모양으로 출력을 한 뒤 디테일은 scratch building으로 처리해야겠다.
더이상은 A/S 보내는 것도 힘들다...ㅠ.ㅠ 다음 3D 프린터는 무조건 자작이다!


글 작성 후 몇가지 테스트 중에 3D 프린터 문제를 해결하였다. 아래 사진의 빨간 표시가 된 부분은
thingiverse에 올라와 있는 필라멘트 필터라는 도구다.
저 안에는 솜뭉치가 들어있고 약간의 올리브유를 적셔주었다. 


원래 이 필터의 목적은 필라멘트에 묻은 먼지등을 제거해주는 역할인데 내 프린터는 저 필터가 없었을 경우
장시간 출력을 하게 되면 필라멘트가 빨려들어가는 입구에서 열로 인해 꺾여버린다.
거의 90도로 꺾이다보니 익스트루더 모터가 잡아당겨도 꺾어진 각도 때문에 제대로 필라멘트를 끌어오지
못하는 문제가 발생을 한 것이다.


결국 필터를 저 위치에 끼워주니 필라멘트가 꺾이는 상황을 방지할 수 있게 되었고
이후로 다시 출력이 잘 되고 있다^^.




정리


일단 다리까지만 모델링한 상태가 아래 사진과 같다.




아직도 출력할 부품들은 많은데 프린터는 위태위태하고...마음은 급하고. 내 계획으로는 8월까지는 로봇 제작을 완료해야
하는데...하....여차하면 16년도에 SEW 프로토타입을 만들었을 때처럼 동력부를 제외한 나머지 부분은 full scratch
building으로 처리해야 할지도 모르겠다...이 더운날에...


오늘도 우리 집 방 한구석에는 자그마한 3D 프린터가 
한여름 불볕더위를 더하는 데 한 몫 하고 있다...ㅠ.ㅠ


facebook page : https://www.facebook.com/HJ.WOO/?modal=admin_todo_tour

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^



Linear Actuator를 이용한 2족 보행 로봇 제작 ~ #1


일단 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일 정도 마음을 비우고 기다려야겠지...-.-




드릴프레스는 thingiverse에 있는 다음 모델로 만들 생각이다.


https://www.thingiverse.com/thing:1846582




3D 모델링


만약 내가 이 프로젝트를 실패하게 된다면 그건 바로 이 3D 모델링 때문일 것이다.
나는 이제까지 3D 모델링이라고는 배워본 적도 툴을 다뤄본 적도 없다. 그저 최근에 3D 프린터를 구입하고 나서
123D Design이라는 말하자면 3D 모델링 프로그램계의 그림판이라고 할 수 있는 툴만 간간히 이용하여 이미
보아온 것과 같이 아주 단순한 형태의 모델만을 만들어봤을 뿐이다.


한마디로 내가 하고자 하는 작업은 이제 막 그림을 배우러 미술학원에 등록한 학생이 그림판을 이용하여 극사실주의
화풍의 그림을 그리고자 하는 것과 다름없다...ㅠ.ㅠ


상황이 이렇다보니, 보통은 전체적인 형태를 스케치 하고 그것을 바탕으로 3D 모델링을 하고 물리 효과를 적용하여
움직임을 확인하는 등의 과정을 거치는데, 나는 스케치조차 능력이 안되다보니 123D Design에 바로 핵심 부품을 
중심으로 그 주위에 하나하나 부품을 만들어 나가는 식으로 작업을 할 수밖에 없다.


더 심각한 것은 이 123D Design은 물리 효과는 전혀 줄 수가 없기 때문에 이놈이 만들어진 후 제대로 서있기나 할지,
혹은 동작 중에 서로 겹쳐지는 부분은 없는지, 축들이 서로 어긋나지는 않았는지를 확인할 방법이 없다. 그야말로
시행착오의 연속이고, 예약된 가시밭길인 것이다...ㅠ.ㅠ


따라서 아래 공개하는 습작은 그냥 습작일 뿐 실제 출력 과정에서 많은 변형이 예상된다. 우선 다리만 작업해보았다.




정리


시작이 반이라고 했다. 일단 뭐가 됐든 시작은 했으니 어떻게든 되겠지^^;


하지만 만드는 것도 만드는 것이지만 만든 후 아두이노를 통해 어떻게 제어를 해야 할지가 또 구만리다.
머릿속에서는 모든 것이 착착 진행되어 먼 미래로 날아가고 있는데 현실은...ㅠ.ㅠ


뭐 안되면 피규어라고 우기면 그만이지~
긍정적으로 살자! 긍정에 대한 유명한 얘기가 있지 않은가?


시험을 못봤을 때 부정적인 학생과 긍정적인 학생의 차이

부정적인 학생 : “어떡하지...ㅠ.ㅠ 시험을 망쳤네...ㅠ.ㅠ 죽어버릴까...ㅠ.ㅠ?”

긍정적인 학생 : “ㅎㅎ시험을 망쳤네~ 뭐 어때~ 죽으면 되지~^^”


그래! 안되면 죽으면 그만이다~^^;

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^



Linear Actuator Ver. 2, Ver. 3 제작


지난 포스팅에서 앞으로 내가 만들고자 하는 로봇과 그러한 로봇을 만들기 위한 준비로써 Linear Actuator
시제품을 만드는 과정을 설명하였다.


하지만 시제품이다보니 여러모로 한계가 있었다. 우선 지난 작업의 한계들을 조금 살펴보고 가자.


  1. 모터 선정의 문제 : 지난 번 사용한 모터는 8520 coreless 모터로 주 용도는 소형 드론을 만드는데 사용하는 모터다. 따라서 RPM은 매우 높으나 torque는 낮아서 지난 포스팅의 동영상에서 보듯이 작은 마찰에도 내부 실린더가 잘 올라오지 않거나 움직이는 속도가 잘 조절이 안되는 모습이었다. 게다가 모터 축이 원통형이어서 웬만큼 단단히 접착하지 않으면 모터 축과 연결하는 부품이 헛돌기 일쑤다.
  2. 멈춤 제어 장치 부재 : 내부 실린더가 위나 아래의 끝부분에 도달하게 되면 모터를 정지시켜 더이상 작동하지 않도록 해야 모터에 부하가 걸리지 않을 것이다. 하지만 개인이 제작하는 수준이다보니 아직은 구현이 쉽지 않다. 일단 소프트웨어적으로 구현을 하기 위해 encoder를 함께 구매해놨지만 아직 사용은 안하고 있다. 당분간은 아두이노 스케치상에서 적절한 시간 조절을 통해 멈춤을 제어해야 할 것 같다.
  3. 구조 설계의 문제 : 이 부분은 아직도 딱부러지게 해결을 못했다. 가급적 조립과 분해가 쉽도록 하기 위해 머리를 굴리고 있으나 이번 제작한 것들은 조립이 까다롭게 되었다. 그리고 내부 실린더가 헛도는 것을 막기 위해 내부 실린더 하단부를 사각형으로 만들고 그에 따라 외부 실린더의 내부도 사각형 형태로 만들었었는데 아무래도 마찰이 큰 것 같아 이번에는 조금 바꿔보았다. 하지만 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 크기의 진동 모터다.
혹시나 어떻게 사용해볼 수 있을까 하고 덜컥 구입했지만…역시나 이 크기로는 무리다…



좌측부터 8520 coreless 모터, LCP06-A03V-0700 유성 기어 모터, 초소형 진동 모터




좌측부터 일반 DC 모터(학습용), N20 기어 모터, SG90 서보 모터, LCP06-A03V-0700 유성 기어 모터, 
마이크로 서보 모터


3D 프린팅


지난 포스팅에서도 언급한 바와 같이 3D 프린터를 이용하는데 있어 가장 큰 문제는 바로 공차 설정이다.
0.5mm를 줘도 안들어가는 일이 비일비재하여 아예 넉넉하게 0.8 ~ 1.0mm 정도 준 후 볼트로 조여 최종 고정시키는 
방식을 사용하기로 했다. 하지만 이 방법도 만능이 아닌 것이 FDM 방식의 3D 프린터는 녹은 필라멘트를 실처럼 얇게
뽑아 한층한층 쌓아가며 만드는 방식이다보니 이렇게 층이 쌓인 방향으로는 강도가 매우 약하다. 자칫 볼트를 심하게
조일 경우 이 층이 갈라져 깨져버린다. 이 문제를 막을 방법은 출력물의 두께를 두껍게 하는 것 뿐이지만 마냥 그럴 
수도 없고...


또 다른 문제는 개인차가 있는 문제이겠지만 간혹 출력 중 노즐이 막히는 경우가 있다. 대략 5시간 가까이 출력해야 
하는 부품이 3시간 출력후 노즐이 막혀 헛돌고 있으면...나무아미타불...ㅠ.ㅠ 한 몇번 이런 문제가 생기다보니 답답한
마음에 차라리 전문 출력 업체에 출력 의뢰를 하려고 했더니 이건 또 가격이 안드로메다인지라...ㅠ.ㅠ


최대한 출력 시간을 줄일 수 있도록 모델링을 하고 출력 중 환경(온도, 진동 등)이 일정하게 유지되도록 하는 외에는
달리 방법이 없다. 특히 출력 시간의 경우 동일한 모델을 180도 돌려 출력하는 것만으로도 시간을 줄일 수 있다.
가능한한 서포터가 적게 출력되도록 하는 것이 아무래도 출력 시간을 줄일 수 있지만 가급적이면 조립되는 면에는
서포터가 안생기도록 하는 것이 나중에 매끈한 면으로 서로 연결할 수 있어 유리하다. 결국 케바케로 출력 시간이
결정될 수밖에 없다.


그럼 버전 2와 버전 3의 3D 프린터 출력물 및 구성품을 알아보자.




버전 2

  1. 외부 실린더 하단 덮개 (O-ring으로 연결)
  2. 모터 하우징
  3. 외부 실린더
  4. 볼트와 모터 축 연결부 (볼트는 M2, 30mm 렌치 볼트)
  5. 너트와 외부 실린더 연결부 (너트는 M2 사이즈, 외부 실린더는 외경 3mm 스테인레스 파이프)
  6. 내부 실린더 덮개 (O-ring으로 연결)
  7. LCP06-A03V-00700 유성 기어 모터


버전 2의 조립 과정은 다음과 같다.




버전 3는 구성품만 설명한다. 조립 과정은 비슷비슷...




버전 3

  1. 외부 실린더 상단 덮개 (버전 2의 경우 이 부분이 실린더와 일체형이다)
  2. 외부 실린더 하단부 (모터 삽입부)
  3. 외부 실린더 상단부
  4. 볼트와 모터 축 연결부 (볼트는 M6, 60mm 육각볼트)
  5. 너트와 내부 실린터 연결부 (너트는 M6, 내부 실린더는 외경 8mm 스테인레스 파이프)
  6. 외부 실린더 하단 덮개 (처음에는 짧게 만들었으나 외부 실린더의 연결부가 보기 안좋아서 가리기 위해 길게 만들었음)
  7. N20 6V 450rpm 기어 모터
  8. 내부 실린더 덮개


버전 3의 경우 조립 과정에서 외부 실린더 상단과 하단 조립 후 외부 실린더 하단 덮개가 이 연결부를 덮게 되는데
꽤 여유있게 공차를 주었음에도, 출력물의 바닥과 천정이 살짝 퍼지는 현상과 함께 볼트를 체결하면서 볼트가 잘못 
들어가 연결부에 변형이 생기는 문제가 발생하여 조립이 빡빡하게 되었다.

 

덕분에 다시 분해하면서 외부 실린더 하단부의 연결 부위가 박살이 나서 4시간 넘는 출력물을 새로 뽑아야 했다...ㅠ.ㅠ 
새로 뽑은 부품으로 조립할 때는 줄로 연결부위를 조금 다듬어 주었더니 무리없이 조립이 되었다.


마지막으로 완성된 제품의 버전별 크기를 비교해보면 다음과 같다.




사진 왼쪽부터 
버전 3 : 길이 약 15cm / 무게 약 56g
프로토타입 : 길이 약 10cm / 무게 약 24g (사진에서는 내부 실린더가 약간 돌출된 상태라 조금 길어보임)
버전 2 : 길이 약 8.5cm / 무게 약 7g


3D 프린팅을 위한 모델링 파일은 아래 링크에서 받을 수 있다.


모델링 파일

Ver. 3 : https://www.thingiverse.com/thing:2956768

Ver. 2 : https://www.thingiverse.com/thing:2956757


동작 테스트


동작 테스트는 동영상으로 감상해보자.
타이머를 켜놓았으니 초당 얼마나 움직이는지 확인하면 되겠다. 다만 버전 3의 경우 원래 6V에서 작동하는 모터인데
버전 2와 동일한 3.7v의 리튬 폴리머 배터리로 작동을 시킨 만큼 이 동영상보다는 좀 더 속도가 나올 것이다.

다만 아직 얼마만큼의 무게를 움직일 수 있는지에 대해서는 테스트를 하지 않았다.




문제점


제법 개선을 했음에도 불구하고 여전히 문제가 있다. 앞서 말한 정지 제어가 안된다는 문제와 구조적으로 내부 
실린더와 너트를 연결하는 부위를 원형으로 하는 대신 외부 실린더 안쪽에는 돌기를, 너트 연결부에는 홈을 파서
내부 실린더가 헛도는 것을 막도록 바꾸었는데 조립의 편의성 때문에 모터와 볼트 연결부 역시 동일한 구조로 
만들었다. 이 구조는 만일 양 끝단이 당겨지는 힘을 받았을 때 모터 축과 볼트 연결부가 단단히 고정되어있지 않다면
내부 실린더가 빠져버리는 문제가 발생할 수 있다.


고쳐야 하겠지만...새로 설계하고 출력하는 시간이 어마무시 하므로, 괜찮겠지 하고 넘어가보자...ㅠ.ㅠ


속도 문제는 새로운 모터가 도착하는대로 다시 테스트를 해볼 것이다.


그나저나 본격적으로 로봇을 만들기 시작하게 되면 이 부품들을 몇세트 씩은 더 뽑아야 하는데...또 얼마나 많은
시간이 걸릴까...


정리


아직 많은 문제점이 있지만 그래도 제법 그럴듯한 모양으로 Linear Actuator가 만들어졌다(하지만 지금도 3D 
프린터 출력 시간을 생각하면 치가 떨린다). 이제 본격적으로 로봇을 설계하고 만들어야 하겠지만 최소한 버전 3를
1개 더 만들어야 하고 버전 2를 6개 정도는 더 만들어야 한다. 나의 생활 패턴 상 3D 프린팅을 하는 데만도 2주는
잡아야 할 것 같다. 물론 그 전에 적절한 힘을 낼 수 있는지 먼저 테스트도 해야 하고...


어쨌든 본격적인 로봇 작업이 시작되면 지금보다는 좀 더 재밌는 글을 쓸 수 있지 않을까 기대해본다^^

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

Linear Actuator 제작 - 새로운 로봇 제작 프로젝트를 시작하며.


2016년 6월 경, 아두이노를 접한 지 얼마 되지 않아 4족보행 로봇 제작을 시작하였다.
그 시작이 아래 링크의 포스팅이었다.


http://mazdah.tistory.com/695


당시 끝을 보지 못한 가장 큰 이유는 전원 공급 문제를 해결하지 못한 것이라고 해야 할 것이다.
비록 방전률이 높기는 했으나 아무래도 니켈수소 배터리로는 한계가 있었던듯하다. 지금이야 드론을 만들면서
(역시나 아직 완성은 못했지만…-.-) 조금은 익숙해졌지만 당시에는 관리의 어려움(폭발 위험성) 때문에 쉽게 LiPO
배터리를 선택하지 못했었다.


이렇게 진척이 되지 않다보니 소프트웨어적인 부분도 마무리를 하지 못하고 로봇 제작 프로젝트는 방구석으로 쳐박히고
말았다…ㅠ.ㅠ


내가 꿈꾸는 로봇은…


어차피 나는 로봇 제작을 위해 필요한 전문 지식을 쌓지도 못했고 또 로봇 제작을 위해 필요한 부품을 선별하거나 조달할
수 있을만큼 여유가 있지도 않다. 때문에 내가 만들고자 하는 로봇은 실용적인 로봇과는 거리가 멀다(물론 추후 SCARA
방식의 로봇 팔을 만들 계획은 가지고 있다). 물론 로봇을 만드는 모든 사람들이 실용적인 목적으로 로봇을 만들지는 
않지만 말이다…


어쨌든 처음 시작할 당시에는 보고 들은 것이 별로 없다보니 오로지 서보모터를 구동부로 하여 제작하는 4족보행 로봇
만이 내가 할 수 있는 전부라고 생각했다. 바로 다음과 같은 로봇들 말이다(세 번째 로봇은 내가 만든 로봇이다^^;).




사실 위에 예로 든 로봇들도 충분히 멋지고 내가 만만하게 만들 수 있는 수준도 아니다. 하지만 이제 머리 좀 굵었다고(?)
더 멋지고 리얼해보이는 그런 로봇을 만들고 싶어졌다. 바로 아래 그림과 같은…




흔히 battle mech, war robot, war mech 등으로 검색하면 볼 수 있는 이런 로봇들은 대부분 컨셉아트이거나 게임을
위한 3D 모델링, 혹은 그 모델링을 기초로 만들어진 피규어인 경우가 대부분이다. 나는 여기에 생명을 불어넣고 싶은
것이다. 단지 그림이나 영상 속의 존재가 아닌, 그저 바라만 보고 있어야 하는 인형이 아닌, 멋지고 리얼하면서도 걷고 
움직이는 로봇을 만들고 싶은 것이다. 한마디로 예쁜 쓰레기 또는 쓸고퀄 장난감이라고나 할까…-.-


Actuator란? Linear Actuator란?


actuator란 단어의 생김새로도 짐작할 수 있듯이 기계장치의 ‘움직임’을 담당하는 부분이라고 생각하면 될 것이다.
일반적으로 기계공학에서는 유압이나 공압으로 작동하는 피스톤/실린더 형태의 장치를 의미하지만 좀 더 범위를 넓혀
전기로 움직이는 모터류도 actuator에 포함 시킬 수 있다. 피스톤/실린더 장치의 대표적인 것이 바로 아래 그림과 
같이 흔히 볼 수 있는 건설 장비들이다.




이러한 장치들과 모터와의 가장 큰 차이점은 피스톤/실린더 장치가 앞,뒤로 움직이는 선형적인 움직을 통해 기계장치를
구동시키는 반변 모터는 축의 회전을 통해 장치를 구동시킨다는 점이다.


제일 처음에 예로 든 4족보행 로봇들이 바로 모터를 관절 부위에 장착하여 그 회전력으로 관절을 움직이도록 만든 것이다.
제작은 간단하지만 뭔가 로망이 없다…-.- 이런 로망…




그렇다! 이 로망의 정체가 바로 Linear Actuator다. 모터의 회전력을 직선 운동으로 바꾸어주는 actuator인 것이다.
유공압 actuator들은 기본적으로 선형 운동을 하기 때문에 Linear Actuator라고 하면 보통 모터의 회전운동을 직선
운동으로 변환시켜주는 장치를 말한다고 생각하면 된다.


Linear Actuator를 만들어보자


이미 시중에 상용제품으로 파는 linear actuator 혹은 linear motor라고 불리우는 제품들이 많이 있다.
이런 제품들은 외형 디자인을 바꿀 수 없다는 점, 크기가 대체로 크다는 점, 결정적으로 가격이 비싸다는 점
(기본적으로 5만원대부터 시작한다…ㅠ.ㅠ)으로 인해 사서 쓰는 것은 포기. 아래 그림은 내가 즐겨 이용하는
banggood이라는 홍콩쪽 온라인 쇼핑몰에서 linear actuator로 검색한 결과이다.




이제는 3D 프린터도 생겼겠다, 뭔가 정체를 알 수 없는 자신감 충만! 그래서 한 번 만들어보기로 했다.


우선 외형을 3D 프린터를 이용해서 만들기로 했으니 thingiverse에서 혹시 비슷한 작업을 한 내용이 없나
검색을 해보았다. 비슷한 작업은 많았으나 아쉽게도 만족할만한 결과물은 없었다. 다만 영감을 준 모델이 하나 있어
그 것을 참고로 작업을 시작하였다.


원리는 매우 간단하다.


볼트를 고정시켜놓은 상태에서 원통의 한쪽 끝에 너트를 박아넣고 볼트에 끼워 돌리면 이 원통이 위,아래로 직선운동을
하게 되는 것이다. 이 때 이 돌리는 힘을 모터를 이용해서 주기만 하면 되는 것이다. 아래 이미지는 Wekipidia에서 가져온
것이다.



모델링하기


3D 프린터로 출력을 해야 하기 때문에 당연히 3D 모델링이 필요하다. 다행히 위에서 본 것 같은 화려한 로봇을
모델링하는 것이 아니고 단순히 원기둥 안에 구멍을 뚫는 정도의 작업이라 직접 하는 것이 가능했다. 그렇지 않았다면
그냥 꿈 속의 꿈으로 끝났을지도…물론 몇몇 부분은 조금 복잡하기도 하다^^;


모델링 툴은 초보자답게 오토데스크사의 무료 툴인 123D Design으로 진행하였다. 별다른 설계 없이 그냥 즉흥적으로
모델링을 하다보니 처음에 비해 형태가 많이 바뀌었다. 하지만 즉흥적이라 해도 몇가지 고려해야 할 사항이 있었으니
우선 모터를 사용하는 장치다보니 모터가 고장났을 경우 교체하기 쉽도록 분해 조립이 가능해야 한다. 분해 조립이 
원활하게 될 수 있으려면 적절한 공차를 계산해야 하는데…3D 프린터는 내가 생각한만큼 정밀한 기계가 아니었다…-.-


대략 0.1 ~ 0.3mm 정도의 공차를 두면 되겠거니 하고 출력을 해보면 헐겁거나 아예 들어가지 않는 일이 비일비재였다.
그래서 아예 엑셀 파일에 상황을 정리해가면서 시행착오를 거쳐 모델링을 할 수밖에 없었다(이마저도 나중에는 귀찮아서
하지 않았다…-.-). 




그 결과 실패한 부품들이 꽤나 쌓이게 되었다. 말하자면 사금파리 무덤이랄까…ㅠ.ㅠ




이러한 산고를 거쳐 완성된 형태가 바로 이 것이다!!!




출력하기


앞서 말한 바와 같이 3D 프린팅을 할 때 공차를 잡는 것이 쉽지 않다. 이 것은 필라멘트를 녹여 형상을 만든 후 
녹았던 필라멘트가 식으면서 생기는 수축에 의한 변형에 기인한다. 이런 수축에 의한 변형은 공차를 예측할 수
없게 만들뿐더러 또 한가지 문제로 면이나 선이 반듯하게 나오지 않는 문제가 있다. 파이프를 만든다고 할 경우 선이 
반듯하게 나오지 않다보니 2개의 부품을 결합할 때 처음에는 조금 들어가는 듯하다가 어느 시점부터 더이상 들어가지
않는 문제가 생긴다.


이렇게 모델링한 부품이 총 8개가 나왔는데 이 중 출력 시간이 긴 것은 대략 2시간, 짧은 것은 10분 정도 걸린다.
전체를 동시에 출력하면 7시간 30분 정도가 걸리는데 앞서 말한 문제들이 있다보니 만일 7시간 30분 걸려서 
전체를 출력했는데 제대로 조립이 안된다면? 생각만 해도 끔찍하다. 


사실 2시간 걸리는 부품도 4번 정도 출력한 후에야 크기를 맞출 수 있었다. 위에 사금파리 무덤 사진을 보면 알겠지만 나같은 초보에게 3D 프린팅은 시간과의 싸움이다…ㅠ.ㅠ


어쨌든 모델링을 완성하고 최종적으로 출력한 부품들은 아래와 같다(사진으로 찍어놓으니 출력 결과가 상당히 
지저분해 보이지만 육안으로 보면 봐줄만 하다^^;).






사진에 있는 숫자 순서대로 각각 아래 설명한 역할을 한다.


  1. Actuator의 가장 하단 덮개, 4개의 구멍은 고정부에 연결하기 위한 것이고 중앙에 갈라진 틈을 기준으로 상하부가 좌우로 회전한다. 하단부의 사각형 공간은 모터의 전선을 뺄 부분이다.
  2. 고정(외부) 실린더의 하단으로, 모터가 삽입된다. 아래쪽의 사각형 공간은 모터의 전선을 뺄 부분이다.
  3. 2번 부품과 4번 부품을 결합하기 위한 부품으로 위, 아래 각각 4개의 무두볼트로 결합하도록 하였다.
  4. 고정(외부) 실린더의 상단부로 5번의 내부 실린더가 이 안에서 움직인다. 3번 부품을 통해 4번 부품과 결합되며 너트와 연결된 내부 실린더가 통째로 돌아가는 것을 막기 위해 내부는 사각형 형태로 뚫려있다.
  5. 내부 실린더로 실제로 움직이는 부분이다. 전체를 원통형으로 할 경우 이 내부 실린더가 함께 돌아서 직선 운동이 발생하지 않을 수 있으므로 아래쪽은 사각형으로 만들서 외부 실린더의 사각형 형태와 맞물려 회전하지 않도록 만들었다.
  6. 고정(외부) 실린더의 상단부를 덮는 덮개로 내부 실린더가 빠져나가는 것을 막는다.
  7. 내부 실린더의 상단 덮개로 1번 부품이 연결되는 고정부의 반대편 고정부에 연결할 수 있고 구조는 1번 부품과 동일하나 크기만 작다.
  8. 흰색 부분만 3D 출력물이고 길게 나왔는 부분은 M3 규격의 육각볼트이다. 볼트의 반대편(지름이 작은 쪽)은 모터의 축과 연결된다. 이 사진 촬영 후 테스트 과정에서 모터 축과 이 부품 사이의 유격이 커 모터가 헛도는 문제가 생겨 모터 커플러와 동일한 방식으로 모터 축과 연결되는 부분의 옆쪽에 구멍을 내어 무두볼트로 고정시키도록 다시 만들었다.
  9. 전적으로 미관을 위한 부품으로 외경이 8mm인 스테인레스 파이프다. 5번 부품을 굵게 만들어도 되나 멋을 좀 내보려고 5번 부품에 끼워서 사용하도록 했다.
  10. 가장 중요한 모터이다. 8520사이즈의 코어리스 모터이며 주로 소형 드론 제작에 쓰이는 모터이다. 소형화를 위해 이 모터를 선택했지만 아마도 약한 토크 덕에 실사용은 어려울 것 같다.


이렇게 오랜 시간 시행착오를 거치면서 모든 부품을 출력할 수 있었다.


조립하기


조립은 아래 사진의 순서대로 진행을 하면 된다. 앞서도 누누히 말했지만 정밀한 출력이 어렵다보니 그토록 시행착오를
거쳤음에도 불구하고 지나치게 빡빡한 부분과 헐거워서 접착제를 써야 할 부분들이 존재했다. 아예 결합이 되지 않는 
경우가 아니라면 빡빡한 것은 괜찮은데 너무 헐거운 경우 접착제를 쓰게 되면 나중에 분해가 안되기에 조금 곤란하다.




이렇게 해서 3D 프린터를 이용한 나의 첫 작품이 완성되었다!


테스트


테스트는 아두이노와 L9110 모터 드라이버를 이용해서 했으며 스케치 코드는 단순하게 0.5초의 딜레이를 주어
정방향과 역박향 반복해서 모터를 회전시키도록 하였다. 따라서 제품은 0.5초 간격으로 위,아래 직진 운동을
반복해야 한다. 연결과 코드는 다음과 같다.




void setup () {
	pinMode(5, OUTPUT);              
	pinMode(6, OUTPUT);             
}

void loop() {
	analogWrite(5, 0);                   
	analogWrite(6, 150);             
	delay(500);
	analogWrite(5, 150);
	analogWrite(6, 0);
	delay(500);
}


우선 처음 두 동영상은 위 부품 설명의 8번 부품을 개선하기 전이며 사용한 배터리도 1.5V 알카라인 배터리를 직렬 
연결하여 진행한 테스트이다. 거의 실패작이라고 봐야 할 것이다...ㅠ.ㅠ





아래 여러가지 문제점을 설명하겠지만 우선 배터리의 힘이 약한 부분과 모터가 헛도는 문제를 개선하여 2차 테스트를
진행하였다. 배터리는 3.7V 1s 200mAh의 LiPo 배터리로 바꿨다. 역시 배터리를 바꾸니 모터 돌아가는 소리부터
다르다. 여전히 원하는 동작은 나오지 않지만 그래도 처음보다는 나아진 모습을 보여준다. 




또 다른 고려사항


이미 3D 프린터를 이용하여 외형을 만드는데만 해도 많은 시간을 소요했다. 하지만 결과는 투자한 시간만큼 훌륭하지
않았다...ㅠ.ㅠ 이에 몇가지 문제점을 짚어보고 앞으로의 해결 방향을 모색해봐야겠다.


  1. 모터의 선택 : 우선 최대한 크기를 줄이기 위해 현재 구할 수 있는 모터 중 가장 작은 크기라고 할 수 있는 8520 coreless 모터를 선택했다(물론 더 작은 모터들도 많지만 여기서 더 작아지면 3D 프린터로 출력이 어려울 것 같아 선택에서 제외했다). 이 모터의 문제점은 소형 드론용 모터이다보니 RPM이 엄청 빠른데 그만큼 힘이 없다는 것이다. 동영상에서 보이는 버벅대는 움직임은 내부실린더 회전을 막기 위해 사각형 구조로 만듦으로 해서 생긴 마찰 때문인데 이정도 마찰에도 힘겨워 한다면 관절을 움직일 수 있을지가 미지수이다. 이보다 작은 모터에 기어박스를 단 모터들을 알리바바에서 팔고있는데 개당 1만원 정도라서 사기가 부담스럽다...-.- 다행히 사이즈는 크게 차이나지 않으면서 기어박스가 달린 모터를 찾았다. 이 모터를 이용하여 다시 제작을 할 예정이다. 아래 이미지와 같이 아예 볼트 축이 달린 모터도 있었다(이미지는 애용하는 메카솔루션에서 가져왔다). 
  2. 마찰 : 다음으로는 위에도 잠깐 언급했지만 내부실린더 회전을 막기 위한 설계이다. 일단 직관적으로 사각형 구조로 만들어 회전을 막긴 했으나 이렇게 하니 마찰이 너무 심하다. 더군다나 3D 프린터 출력물에는 결이 있다보니 이같은 현상이 더 심해지는데 이를 보완할 수 있도록 새롭게 설계가 필요하다. 우선은 급한대로 모서리 부분을 모두 줄로 갈아서 마찰을 좀 줄이긴 했다.
  3. 크기 : 최종 결과물이 내가 예상했던 것보다 커졌다. 1번 부품이 많이 커졌는데 이 부분은 나중에 로봇을 설계하면서 재설계를 해야겠다. 추후 로봇을 만들게 되면 다리 부위에 제일 큰 actuator가 들어갈 것이고 그밖에 자잘한 관절부위에도 actuator가 들어가게 될 것인데 더 소형화 하지 않으면 로봇이 부담스러운 크기가 될 것 같다. 크기와 관련된 가장 큰 문제는 내가 가진 3D 프린터의 최대 출력 사이즈가 100X100X100mm라는 점이다. 크기가 커지면 3D 프린터로 한번에 출력할 수 없는 부품이 많아질 것이다...ㅠ.ㅠ

정리


애초에 관심도 없는 피규어나 출력하려고 3D 프린터를 산 것이 아닌 만큼 결과를 떠나 이번 작업은 매우 재미있었다.
물론 출력의 긴 시간을 기다리는 것은 지루하기 짝이 없었지만...-.-


우선은 linear actuator의 기본적인 동작 원리를 알았으니 그것만으로 성과라면 성과라 할 수 있을 것이다.
완전한 성공은 이루지 못했지만 처음 하는 작업으로써는 나쁘지 않은 성과다. 새로운 모터도 구입하고 했으니 이제
본격적으로 대들어볼 예정이다.


모델링한 STL 파일은 thingiverse에 공유할 예정이다(오늘 가입했더니 신참들은 24시간 지나야 모델이 등록
된단다...-.-). 이와 별개로 123D Design 원본 파일은 아래 첨부한다.


full_component3.123dx


앞으로 작업은 꾸준히 지속되겠지만 아무래도 3D프린팅 시간이 오래 걸리는 만큼 포스팅을 자주할 수는 없을 것 같다.
그리고 로봇과 드론 관련 블로그를 분리시켜 좀 더 본격적으로 작업 내용을 포스팅할 예정이니 기대하시라~^^


블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^



좌충우돌 로봇 만들기 Season II - 5 : Epilogue


이것저것 벌여놓은 일이 많다보니 한동안 로봇에 손을 못댔습니다.
그러던 중 다행히 12월 29, 30일 휴가를 얻어 여유가 생기면서 개선하기로 생각했던 부분에
대해 드디어 손을 좀 댔습니다.


원래 마지막 포스팅에서 문제로 지적한 모터 성능을 테스트 해보고 모터쪽으로 개선 방향을
맞춰보려고 했습니다. 하지만 그 동안의 문제점에 대해 최종적으로 내린 결론은 배터리나 
모터의 성능 문제가 아니라 확실히 로봇의 설계가 잘못되었다는 것이었습니다. 그래서 몇가지 
조정 작업을 거쳤습니다. 로봇 만들기 Season II는 이 조정작업에 대한 이야기로 마무리 
하려고 합니다.


그동안 페이스북이나 제 블로그를 통해 조언을 주신 많은 분들께 감사 인사 드립니다.
소프트웨어적으로도 아직 완성된 것이 아니라 조만간 다시 준비해서 Season III으로
찾아뵙겠습니다~^^



다시 한 번 다이어트…


지난 포스팅(Season II - 4 : 원래 약골이었네…-.-) 이후 실제로 서보모터 3개 정도를
추가로 구매해서 간단한 실험을 해보기는 하였다. 비슷한 성능의 다른 제품 3개를 가지고
테스트를 한 결과 현재 내가 가진 배터리와 모터로도 충분한 성능을 낼 수 있다는 것을
확인하였다. 기본적으로 포함된 서보 혼에 바로 연결할 경우 3Kg 무게의 가방을 쉽게
들어올릴 수 있었으며 약 10Cm정도의 팔을 추가로 연결한 상태에서도 그 절반정도의
성능을 보여주었다. 결국 SEW MK I 의 전체 무게가 2Kg 남짓이니 그 무게를 

견디지 못할 배터리나 모터는 아니라는 결론을 내릴 수 있다.


그래서 다시 한 번 로봇의 구조를 바꿔보기로 했다. 크게 바뀌는 것은 없고 가능한한
다리의 길이를 줄이고자 시도했다. 그리고 기존 대비 약 6Cm 정도 길이를 줄였다.
비교를 위해 상세하게 찍은 사진이 없어 쉽게 구분이 가진 않지만 아래 사진의 왼쪽이 
기존 형태이고 오른쪽이 개선된 형태이다.


내가 조립이 쉽도록 모듈화를 해서 만든 것도 아니고…하드보드를 목공풀로 붙여가며
만든 것이다보니 이미 만들어진 것을 뜯어고친다는 것이 이만저만 힘든일이 아니다…ㅠ.ㅠ
가장 어려웠던 것은 재조립 과정에서 모터 위치가 바뀌는 바람에 스케치에서 각도 조정을
일일이 다시 해줘야 했다는 것이다. 빨리 스케치 소스도 라이브러리화를 해야 하는데…
이 과정에서 모터 하나가 타버렸다…ㅠ.ㅠ 다행히 앞서 말한 모터 테스트를 위해 구입한
모터 중에 같은 모델이 있어 바로 교체가 가능했기에 망정이지 안그랬으면 또 주문하고
받을 때 까지 기다리다가 시간을 까먹을뻔 했다.
그래도 생각보다 깔끔하게 작업은 완료되었다. 하지만…


어째서인지 여전히 나아진 부분이 없다…기존과 마찬가지로 비리비리 하다…ㅠ.ㅠ


방향전환


답답한 심정으로 이것저것 테스트를 해보다가 이상한 점을 하나 발견을 했다.
처음 구동을 시작해서 가만히 서있을 대는 진동과 소음이 심하고 자꾸 가라앉는 모습이
보이는데 위로 일어서는 동작에서는 오히려 소음도 거의 없고 매우 안정적인 모습을
보여주었다. 여기서 다시 한 번 모터나 배터리가 힘이 없는 것은 아니라는 것이 증명
되었다. 그랬더라면 로봇을 위로 들어올리는 동작이 쉽지 않았을테니까


그리고 제자리에 서있는 동작이나 걷는 동작에서 다리 관절들이 자꾸 몸에서 바깥쪽으로
밀려나가는 모습이 보였다. 그래서 ‘힘’의 문제에서 ‘구조’의 문제로 그리고 ‘구조’의 
문제에서 ‘각도’의 문제로 최종 가닥을 잡았다.


우선 제작 자체에 문제가 있었다. 두꺼운 하드보드를 일일이 손으로 잘라 외형을 만들다 보니
정밀도가 매우 떨어진다. 아무래 자로 재서 똑같은 모양으로 도면을 그렸다고 하더라도
커터로 자르다보면 오차가 안생길 수 없다. 게다가 두께가 3mm나 되다보니 절단면이 수직이
되는 경우가 거의 없다. 이런 문제들을 무시하고 대충 모양을 만들다보니 얼핏 봐서는 동일해
보이는 다리들이 서로 모양과 위치가 어긋나는 것이다. 그 중에 가장 중요한 것이 ‘각도’이다.
스케치에서 동일한 값을 주어도 실제 형태를 보면 미묘하게 각도가 다르게 서있다. 또한 내가 
예상한 각도와 실제 서있는 형태를 맞추기가 왜 그리 어려운지…바로 이런 것들이 수작업의 한계다. 


아래 그림에서 보면 내가 수학이나 공학적 지식이 전무하다보니 논리적으로 설명할 수는 없지만
그래도 인생의 경험으로 A, B 중 어느쪽이 더 안정적으로 서있을 수 있는지는 쉽게 알 수 있다.
나는 B의 형태를 원하는데 정도의 차이는 있지만 자꾸 A의 형태가 되어버린다…ㅠ.ㅠ





세상은 넓고 방법은 많다.


일단 이렇게 문제를 규정하고 나니 사실 당장에 할 수 있는 것이 없어보였다. 그저 3D 프린터에
대한 생각만 간절해질 뿐…-.-


그러던 차에 또 한가지 생각이 떠올랐다. 문제가 뭐가 되었든 힘이 없으면 뭔가로 보완을 해주면
될 것이 아닌가? 우리가 다리를 다치면 목발을 집듯이…그래서 스프링을 이용해서 자세를 유지하면
어떨까 하고 생각해보았다. 하여간 이놈에 잔대가리란~ 부랴부랴 스프링을 주문하고 적당하게
잘라서(자르다가 손목 나가는 줄 알았다…ㅠ.ㅠ) 아래 사진과 같이 연결을 해주었다.


오~이래놓으니 성능상 이점 뿐만 아니라 외관상으로도 뭔가 있어보이네…^^;;


일단 이렇게 스프링을 장착하니 가만히 서있는 자세에서도 확실히 소음과 진동이 줄었다. 스프링의
탄성이 모터의 힘을 보완해주는 것이다. 그리고 아주 만족스럽진 않지만 움직임도 좀 더 안정적으로
보인다.


일단 그 동안의 문제는 해결을 한 것 같다. 하지만 역시 편법은 편법일뿐 근본적인 해결은 될 수 없다.
편법은 문제를 해결할 수는 있지만 그만큼의 비용과 수고를 지불해야 한다. 로봇 만들기 초반에도
잠시 언급했지만 내가 취미로 하고있으니 감수할 만한 내용이지 상업용으로 무언가를 만드는데 이렇다면
당장 일터에서 잘리겠지…-.-


그리고 다음을 위해…


아무튼 이렇게 해서 일단 SEW MK I은 마무리를 하게 되었다. 표면적으로는 어느 정도 문제를
해결한 것 같으나 역시나 근본적인 문제를 해결하지 못했다는 것이 못내 아쉽다.



얼마전 올해 2017년 계획을 포스팅을 했는데 아무래도 거기에 3D 프린터 구매를 추가해야 할 것 
같다. 그리고 좀 더 정밀한 설계를 바탕으로 SEW MK II를 제작해봐야겠다.


시간이 나는대로 SEW MK I의 나머지 동작에 대한 스케치를 마무리하고 한 번 정도는 더 포스팅을
할 지는 모르겠으나 일단 여기서 MK I 개발은 마무리 하려고 한다.


그리고 얼마전 로봇에 FPV 기능을 구현해보고자 계획을 세웠었는데 FPV쪽은 아두이노로 자작할
만한 내용이 거의 없는데다가 관련 모듈 값들이 비싸서 일단 보류 하기로 했다.


그럼 더 나은 MK II를 위하여!

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^

좌충우돌 로봇 만들기 Season II - Prologue


사실 SEW-MK I 제작기는 조금 더 시간을 두고 시작을 하려고 했는데 한동안 쓰던 글을 
중간에 멈추려니 몸이 근질근질해서 외장 작업 과정을 정리해보려고 합니다.



머리 속에서는 아주 자유롭게, 그리고 너무도 쉽게 떠오르던 아이디어들을 실제로 구현하려니
마음만 앞서고 쉽지가 않네요…ㅠ.ㅠ


제목대로 그야말로 좌충우돌, 시행착오의 연속입니다.
하지만 이렇게 정리해놓으면 다음에는 좀 더 쉽게 작업이 가능하겠죠.^^


그럼 본론 시작합니다~


어떻게 연결할 것인가.


우선 외장 재로는 그나마 가공이 쉬울 것 같은 하드보드(두께 3mm)로 정했다.
3D 프린터라도 있으면 참 좋으련만 (물론 모델링을 못하니 공개된 도면을 찾아야
하겠지만…) 이가 없으니 잇몸으로 때울 수밖에. 결과적으로 확인한 바…하드보드 작업…
결코 쉽지가 않았다…ㅠ.ㅠ


이제 각 관절을 이루는 모터를 어떻게 결합하고 어떤 식으로 그 외관을 감쌀 것인가를
본격적으로 고민해야 할 때가 되었다. 구글링을 통하여 수많은 4족 또는 6족 로봇을 
찾아본아도 대체로 기성품으로 나와있는 프레임을 사용했거나 아니면 대부분 3D 프린터를
이용하여 만든 로봇들 뿐이었다. 그나마도 제작 과정을 상세하게 적은 내용들은 거의
전무해서 크게 도움이 될만한 내용을 찾지 못했다.


결국 진작부터 알고 있던 zoobotics의 ZURI를 모방하는 것이 가장 좋을 것 같다는
결론에 이르렀다.


zoobotics 사이트 : http://zoobotics.de


zoobotics 사이트에도 역시 도면을 제공하고 있지는 않은 것 같았다.
그래서 결국 눈짐작으로 대충 그 형태를 잡아나갈 수 밖에 없었다.
처음에는 동일한 형태로 진행을 하려 했으나 그래도 자존심은 있어서 제 2관절과 3관절에
사용될 모터를 연결하는 부분만 동일하게 만들고 몸통과 다리는 나름 달리 제작해보고자
하였다.


우선 2개의 모터는 다음과 같이 연결을 하였다.
두 개의 모터를 지지대 너트2개와 나사 4개로 아래 사진과 같이 연결을 하였다.


그리고 ZURI의 사진을 보고 하드보드에 도면을 그렸다.
얼핏 보면 그럴싸하지만 자세히 보면 사각형의 변끼리의 평행도 안맞고 길이도 들쭉날쭉해서
역시 문돌이의 기운이 느껴진다.



이렇게 해서 4쌍의 모터를 아래와 같이 연결하였다.
이 작업만 대략 8시간 정도 걸린 것 같다(매일 퇴근 후 집사람의 압력에도 굴하지 않고 1~2시간씩 꾸준히 만들었다).



다리 만들기


디자인 컨셉을 Steampunk로 잡았다.
컨셉을 잡고나서 과연 내가 이걸 할 수 있을까 하는 의구심이 들었고
아직도 그 의구심 속에서 작업을 진행하고 있다…ㅠ.ㅠ 


스팀펑크라 하면 녹슨 철, 철판을 이어붙인 리벳들, 얽히고 섥힌 파이프들이 떠오르는데
과연 그 효과를 어떻게 줄지가 고민이었다. 일단은 나사 못을 이용하여 최대한 근접한
효과를 내보자 하였는데…안타깝게도 내가 가진 나사의 대부분이 지름 5mm짜리였다.
이정도 두께는 웬만큼 구멍을 크게 뚫어놓지 않으면 하드보드지가 다 뭉그러져버린다.
아무래도 지름 2~3mm정도의 나사못을 새로 구해야 할 것 같다.


암튼 이런 저런 고민끝에 다리의 모양을 아래 그림과 같이 설계를 해보았다.
좀 더 다이나믹한 디자인을 해보고 싶었지만 역시 스킬의 한계가 있는만큼 우선은 가급적
단순하게 가고 나중에 외양을 덧붙여나가는 방식으로 진행하기로 하였다.



그리고 처음 설계와는 분위기가 좀 달라졌지만 샘플로 만든 첫번째 다리가 완성되었다.
한쪽 옆에 뭉개진 부분이 5mm나사를 끼우려다가 찢어진 것이다…ㅠ.ㅠ



그래도 만들어놓고 보니 나름 그럴싸하다…^^;;;
그리고 앞으로 이런 걸 3개나 더 만들어야 할 생각을 하니 앞이 캄캄하다…ㅠ.ㅠ


남은 작업 : 몸통 만들기와 다리 연결하기


그래도 일단 다리는 설계라도 마쳤으니 그리고 자르고 붙이면 되겠다. 힘은 들더라도…ㅠ.ㅠ
남은 것은 몸통을 어떻게 만들것이며 제 1관절 모터와 다리를 어떻게 연결할 것인가다.
앞에서도 말했듯이 ZURI의 연결형태가 참 마음에 들지만 자존심상 똑같이는 못하겠다.
일단은 정사각형 모양으로 연결하고 외부를 좀 꾸며볼 생각이다.


정말 문제는 몸통이다.
나름 멋들어지는 스팀펑크의 냄새를 풍겨보고 싶은데…
일단은 구글에서 스팀펑그와 관련된 로봇, 탱크 등의 이미지와 1차대전 당시의 탱크 사진 등을
열심히 검색해보고 있다.


문제는 시간이다.
다리 한짝 만드는데 날짜로 거의 1주일이 걸렸으니…ㅠ.ㅠ
암튼 블로그 글 한편정도 쓸 작업 분량이 되면 다음 글을 올리도록 하겠다.


그래도 이 작업 하느라 폭염을 그럭저럭 버틸 수 있는 것 같다.
이 글을 읽는 여러분들도 부티 여름 무더위에 건강 유의하시길~

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^


좌충우돌 로봇 만들기 5 - SEW-Prototype 개발 종료


문돌이의 좌충우돌 로봇 만들기를 처음 올린 것이 6월 20일 경이니…
약 한달여의 시간이 흘렀다.


그리고 이제 기본적인 움직임의 구현은 모두 마친 것 같다.
물론 아직도 갈길은 멀다.


이에 한 달여간의 결과는 간단하게 동영상으로 갈음하고 앞으로의 계획을 정리하면서
SEW-Prototype의 개발을 종료할까 한다.


일단 관절이 2개밖에 없는 관계로 부자연스러운 동작들이 있을 수 밖에 없다.
특히 Up/Down의 경우 사실상 Up은 없는 것이나 마찬가지다. (물론 각도를 조절하여
구현할 수는 있지만…)


그럼 동영상을 감상하시라~



SEW-MK I을 향하여


앞으로 다음과 같은 작업이 진행이 될 예정이다. 앞으로의 작업은 세부적인 튜닝이 될 것이기에
아마도 지금만큼 자주 결과물을 정리하지는 못할 것 같다.


  1. 제 3관절 추가 : 현재 각 다리의 관절이 2개씩이다보니 동작에 제약이 있다. 마지막
    관절을 붙일 것이다.
  2. 외장 추가 : 우선 동작 구현을 위주로 하다보니 외관이 너무 볼품이 없었다. 어느
    정도는 외관을 꾸며주어야 할 것 같다. 그래도 명색이 MK I 이니…
  3. 동작 다듬기 : 현재까지는 그저 생각나는대로 즉흥 구현을 하다보니 어설픈 부분이
    많이 보인다. 다른 패턴의 이동, 자연스러운 방향전환 및 회전 등을 구현해야 한다.
  4. 소스 리팩토링 : 역시 막코딩으로 일관하다보니 소스가 점점 길어지고 복잡해진다.
    라이브러리화 할 부분을 분리하고 소스를 좀더 간결하게 다듬어야 할 것이다. C 공부를
    제대로 해야 할 듯싶다.
  5. Analog 입력 처리 : Youtube 동영상을 보면 많은 사람들이 아날로그 조이스틱을
    이용하여 로봇을 제어하고 있다. 아무래도 아날로그 방식이다보니 동작이 좀 더 부드러운
    것 같다. 동작의 종류나 방향 뿐만 아니라 속도와 각도 역시 조이스틱으로부터 입력이
    되는 것 같은데…어떻게 구현을 해야할지 벌써부터 막막하다.

일단 이정도가 MK I에서 구현될 내용들이다. 앞으로 또 얼마만큼의 시간이 걸릴지 모르겠으나
칼을 뽑았으니 무 꼭지라도 썰어야지…-.- 그저 야금야금 만들어갈 생각이다.
마지막으로 이 허접한 로봇이 만들어져 가는 과정을 보아주신 분들께 감사드린다.


감사합니다~^^


추신 : 동영상의 배경음악은 우연히 아이들이 보고있던 '벼랑위의 포뇨' 배경음악이 삽입되었는데 그럴듯하네요^^;;

추신2 : 동영상 중간중간 비치는 무좀걸린 발톱은...죄송합니다...- -..._ _...- - 

블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^



좌충우돌 로봇 만들기 4


일단 2관절 4족 보행은 조만간 마무리가 될 것 같습니다.
아직 손봐야 할 곳들이 좀 있지만 일단 가볍게 처리하고 넘어가야 할 것 같네요.
지난 번 잠시 말씀드린대로 집에 우환이 좀 있어 작업 속도가 더딥니다.
일단 7월 안에 마무리를 짓고 8월부터는 관절을 1개씩 더붙여 3관절 작업을
시작하고 하드보드나 골판지를 이용하여 옷도 좀 예쁘게 입혀줘야겠네요^^


오늘도 크게 특별한 내용은 없습니다. 동영상이나 감상하고 가시죠~ 


전/후/좌/우 이동 구현


대각선으로 마주보는 다리 (제 1관절)을 엇갈려 움직이는 방식은
제 2관절의 움직임을 제어하는 것 만으로 전진과 후진, 왼쪽과 오른쪽
움직임을 구현할 수 있다는 점에서 편하다.


제 1관절은 정해진 각도에서만 움직이면 된다.
나의 경우 45도를 기준으로 잡았다.
아래 그림을 참고해서 보면 1관절은 서로 대각선에 위치한 것들이 동시에
같은 방향으로 움직이며 이때 제 2관절이 움직이느냐 안움직이느냐에 따라
전진과 후진이 결정된다.
(참고) F : Front, R : Rear, L : Left, R : Right



즉, 한단 왼쪽 그림에서는 FR과 RL이 전진을 하고 FL과 RR은 후진을 한다.
이 때 전진하는 다리의 제 2관절을 들어주면 앞으로 이동하고 후진하는 다리의
제 2관절을 들어주면 후진을 한다.


이렇게 좀 쉽게 가나 했는데 제 2관절을 연결할 때 앞 뒤가 서로 대칭이 되도록
모터를 연결하였더니 올리는 각도가 서로 반대가 되어 계산하는데 골치가 좀
아팠다...역시 문돌이의 한계랄까...다음에는 같은 방향으로 연결해서 동일한
각도로 움직이게 해야겠다.


그리고 마지막으로 좌/우로의 방향 전환인데...
뭔가 동작 처리를 잘못 한 것 같다. 정방향으로 움직이지를 않고 각도가 자꾸
틀어진다. '전'에서 '좌'로, 또는 '우'에서 '후'로 등 방향 전환을 할 때 '좌향 앞으로 갓!'이
아니라 '줄줄이 좌로 갓!'의 느낌으로 삐딱하게 돌아간다...이 부분도 손볼 부분 중
하나다.


어쨌든 이제 회전과 트위스트, 그리고 업/다운 정도만 구현하면 기본적인 동작은
다 구현하게 되는 것이다. 일단 예상으로는 그리 어려울 것 같진 않은데...


아래는 이번 주 작업의 최종 결과이다.
그런데 이놈 이거...배터리 먹는 하마다.
현재 듀라셀 AA 배터리 4개를 직렬로 연결하여 사용하는데 주말에만 잠깐씩
돌리는데도 매주 배터리를 갈아줘야 한다...ㅠ.ㅠ
아무래도 고용량 배터리를 사야 할 것 같다.

그럼 다음 시간에~


최종 소스 : https://github.com/mazdah/BluetoothController



블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^


좌충우돌 로봇 만들기 3


집안에 우환이 좀 있어 이번 3번 째 이야기는 하루 늦었습니다.
오늘은 자세한 내용보다는 조금은 일반적인 이야기를 좀 하고 현재까지 진행된
2관절 4족 보행 로봇은 전진 동작 동영상으로 마무리 하겠습니다.

딱히 도움이 될만한 내용은 없을 듯하니 동영상이나 잠시 감상하시길^^
(주의 : 동영상 보다가 답답해서 사망하셔도 책임은 못집니다…-.-)


3주간의 정리


3주 정도 주말 작업을 진행해오면서 참으로 재미있었다.
처음 접해보는 아두이노, 뜬금없는 4족 보행 로봇에 도전,
그리고 좌충우돌…


일단 3주동안 만들어낸 2과절 4족보행 로봇의 외관은 아래 사진과 같다.
지난 번 제 1관절 4개를 테스트할 때 사용했던 나무젓가락을 재활용하여 1관절용 모터와
2관절용 모터를 연결하는데 사용하였다. 아무래도 이놈은 완성되면 중국집 배달용으로
방향을 잡아야겠다(하지만 마지막 동영상에서 보다시피 속도가…ㅠ.ㅠ).


그래도 일단 제법 그럴싸한 이름을 하나 붙여줬다.
SEW-Prototype. SEW는 그 자체로 ‘꿰메다’, ‘깁다’ 라는 의미가 있다.
그렇다. 사진에서 보다시피 누덕누덕 기워서 만든 로봇이다.
하지만 이름을 풀어쓰면 Save the Earth from Waste
즉, 쓰레기로부터 지구를 구하자라는 거창한 의미가 있다.
(이런데서 문돌이의 재능이 발휘된다…-.-)
하지만 고작 나무젓가락과 폐 박스를 재활용한 정도…-.- 



그리고 오늘 간단한 코딩을 통해 드디어 앞으로 전진하는 모습을 볼 수 있었다.
나름 감격이 아닐 수 없다.


하지만…문돌이의 한계에 부딪치다.


물론 아두이노는 취미생활로 하는 것이지만 내 본업은 프로그래머다.
어찌되었건 내가 접하는 것들은 기술이요, 과학이다.
이말인 즉슨 대충 감으로 때려 잡아서 하면 안된다는 말이다.
하지만 아마도 인문계열 전공을 한 개발자들에게서 흔히 보이는 모습이 바로
이런 모습이 아닐까 한다. 


철저한 실험과 테스트를 통해 도출한 정확한 결과가 아닌
그간의 경험과 실무에서 습득된 직관을 통해 개발을 해나가는 것!
물론 국내에서 진행되는 대부분의 프로젝트에서는 이런 직관을 통한 개발도
큰 무리 없이 적응 가능하다.


하지만 자율주행 자동차와 같이 사람의 목숨을 위협할 수도 있는 분야의 개발이라면
결코 그렇게 해서는 안될 것이다.


물론 이런 성향은 문돌이와 공돌이의 차이보다는 개인 성향의 차이일 수도 있다…


어쨌든…
나의 문돌이적 성향이 여실히 드러나는 부분들을 한 번 신랄하게 까발려보자.


우선 로봇의 본체…



제 1관절용 서보모터와 제 2관절용 서보모터를 연결하고나니 두 모터의 축이
바깥으로 향하게 되어버렸다. 물리학을 잘 몰라 설명은 어렵지만 이렇게 되면
제 1관절의 축이 몸통과 연결되어야 하고 그 축에 받는 힘이 커져 내구도가 약한 경우
모터든 몸통이든 쉽게 파손될 우려가 있다. 


이런 생각을 하고 유튜브에서 동영상을 보다보니 역시나 대부분 구조가 모터 몸통이 
로봇 본체에 붙고 축은 바깥으로 향해 2과절의 모터 몸통 또는 축쪽으로 연결이 되는 
형태였다. 이렇게 되어야만 몸통과 제 2과절 사이에서 힘이 적절히 분배 될 것 같다. 


아래 그림에서 1번과 2번은 분명 1번쪽이 빨간 원 안에 있는 축에 힘이 많이 걸릴 것이다.



뿐만아니라 각 관절들의 각도라든지 부분 부분 형태에 의한 장애 등을 판단해야 한다.
보면 위의 사진에는 SEW-Prototype의 다리가 그냥 편면 사각형인데, 동영상을 보면
하단부를 비스듬하게 깎아냈다. 그냥 사각형인 상태에서는 다리를 들어올려도 사각형의
모서리가 바닥에 다아 마찰을 일으키면서 제대로 전진을 못하였다. 그래서 다리를
들었을 때 마찰이 생기지 않도록 잘라내버렸다.


다음은 소프트웨어…


개발자들이 시스템을 개발할 때 많이 간과하는 것 중 하나가 바로 성공 케이스,
정상적인 작동에 많이 집중한다는 것이다. 뭐 목적이 그것이니 그리 뭐라 할 것은 아니지만
정작 중요한 것은 예기치 못한 오작동에 대한 대응이다. 그런데 로봇을 만들다보니
이런 예기치 못한 오류(혹은 오류는 아니지만 제어가 안되는 상태)에 대한 처리에
감이 오질 않는다.


예를들어 한참 잘 돌아가다가 배터리가 소모되어 이상한 위치에서 모터가 정지되는 경우
전원이 공극되기 시작한 이후 그 다음 동작들을 어떻게 처리할까 같은 문제다.
물론 만고의 진리가 있다. 바로 리셋이다. 무조건 초기 상태로 돌려놓고 다시 시작하면
된다. 하지만 뭔가 뒤끝이 찜찜하다.


바로 이러한 이유로 소프트웨어를 개발할 때는 개발자가 설계한 수치보다는 시스템 자체가
리턴해주는 상태 값이 더 중요하다. 시스템 자체의 상태가 시스템의 다음 동작을
결정하는 근거가 되어야 할 것이다.


그런 측면에서 현재 SEW-Prototype이 앞으로 가고는 있지만 언제 이상한
동작(이상한 동작이라고 뭐 헤드스핀을 하거나 그러진 않겠지만…)을 보일지 모른다.
이후 작업은 아마도 이 부분을 개발하는데 거의 모든 시간을 투자하게 될 것 같다.


다시 시작!


앞서 말했듯이 지금까지의 작업은 그냥 아이들 레고놀이에 불과하다.
이제부터가 진짜 작업이 아닌가 싶다. 그리고 내가 해낼 수 있을까도 의문이다.
아직 전진, 그것도 하드코딩으로 된 프로그램을 통한 전진밖에는 못한다.
어떻게 해야 서보 모터 상태를 통한 동작 제어가 가능할지 고민을 좀 해봐야겠다.


마지막으로 인류 최초의 로봇이 이러지 않았을까 싶을 정도로 굼뜬 동작이지만
나름 육중한 맛을 풍기는 SEW-Prototype의 전진 모습이다.
배경음으로 들리는 나의 사적인 단편들은 보너스이니 그냥 들어주시길…-.-



블로그 이미지

마즈다

이미 마흔을 넘어섰지만 아직도 꿈을 좇고 있습니다. 그래서 그 꿈에 다가가기 위한 단편들을 하나 둘 씩 모아가고 있지요. 이 곳에 그 단편들이 모일 겁니다...^^