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프린팅 시간이 오래 걸리는 만큼 포스팅을 자주할 수는 없을 것 같다.
그리고 로봇과 드론 관련 블로그를 분리시켜 좀 더 본격적으로 작업 내용을 포스팅할 예정이니 기대하시라~^^


블로그 이미지

마즈다

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