로봇 팔

로봇의 팔을 만들어보자

주의 : 손이 없음

주의 : 작업하다 그만둔문서입니다. 

로봇 팔을 만들어 보고 있습니다. 부제목과 같이 아직 손을 만들 생각은 전혀 없습니다.

(두둥! 그렇다면 팔이 왜 필요해)

…사실은… 손도 같이 만들어 보고 싶지만 팔에 비해서 어마어마하게 복잡하고 또 관절운동도 복잡해서 엄두를 못 내겠 더라구요. 그래서 팔만 만들어 보기로 했습니다.

1. 기본 도안

지난번 로봇을 만들다 포기했던 가장 큰 이유는 “내가 가지고 있는 부품에 딱 맞는 프레임(로봇의 껍질이나 골격등등)을 구하기가 너무나 어려웠기 때문입니다. 그래서 이번에는 직접 디자인을 해서 요즘 많은 관심을 받고 있는 3D 프린터로 직접 인쇄를 해보기로 했습니다. 3D프린터로 출력을 하려면 아래의 도구가 필요하겠지요.

  • 3D 프린터
  • 프린팅용 프로그램 (프린터에 같이 포함되어 있음)
  • 디자인 프로그램 (프린터에 같이 포함되어 있는 경우가 많음)

어차피 저는 3D프린터로 무언가 예쁘고 아름다운 조형물을 출력할 계획은 아니었기 때문에 가능한한 싼 물건을 사기로 했습니다. 제가 고른 것은 Anet A8 제품이고요.

……조립한 당일날 메인보드가 고장나서 모든걸 포기하곤 XYZ 프린팅의 제품을 구입했습니다. “과정에 불가한 3D프린터”에 너무 많은 노력을 하고 싶지 않았다고 할까요?

디자인 소프트웨어는 AutoDesk에서 무료로 공급하고 있는 TinkerCAD를 사용했습니다. 제품 고유의 프로그램을 쓸 수도 있지만 온라인으로 바로바로 작업이 가능해서 이것을 선택했습니다.

기본적인 형태 디자인은 아래와 같습니다.

 

upper
기본형태

한쪽 팔만 다시 보자면..

shoulder

  1. 몸통에 서보모터와 스테핑 모터를 고정시킵니다 (청색은 스테핑 모터)
  2. 커플러에 몸통 밖으로 나갈 축을 연결하고 몸통에 부착된 베어링으로 안정시킵니다
  3. 이 그림에서는 보이지 않지만 관절 역할을 할 유니버설 조인트를 이용해 팔과 잇습니다.
  4. 역시 그림에는 없지만 뼈대 역할을 할 막대와 유니버설 조인트로 전완부와 상완부를 연결합니다
  5. 마지막으로 와이어를 이용해 관절운동을 조절합니다

 

2. 좀 더 세부적인 문제들

여기까지 디자인 하면서 지인분과 많은 이야기를 나눴습니다. 전 기계공학적 머리가 0 상태인데다, 아무 생각이 없기 때문이죠. 지인분이 가장 문제로 삼은 것은 ‘동력전달’ 문제 입니다. 저는 금속 와이어를 사용해서 동력을 전달할 생각이었는데 지인분은 관절축(뼈대)에 모터를 직결하는게 어떤지 물어봤습니다. 사실 이런 방식으로 만들어 본 적이 한번 있지만 다시 한번 고민을 해봤습니다. 아래와 같은 문제가 있었습니다.

SE-A410_4
서보모터의 형태 (출처)
  • 내가 가지고 있는 모터는 대부분 서보모터이다
  • 어깨와 팔꿈치 관절, 그리고 조금 억지를 부리면 손목 관절까지도 구부림, 폄, 내회전, 외회전의 기능이 있다
  • 서보모터라도 이런 움직임을 구현하지 못하는 것은 아니지만 가장 큰 문제는 이런 움직임을 구현하기 위해서는 서보모터의 모터헤드에 움직이려는 관절의 축(뼈대)을 직접 연결해야 한다
  • 모터에 직결한 경우 아래쪽(원위부)의 전체 무게는 모터의 정지부하 또는 하중으로 작용한다
  • 와이어를 쓰던 축을 모터에 직결하던 정지부하가 안 걸리는 것은 아니지만, 모터에 축을 직결하면 손목에서 어깨 관절로 가면 갈 수록 모터는 더 많은 하중을 견뎌야 하고 이로인해 불필요한 전력 낭비가 발생한다
  • 또한 관절부에 모터를 위치시키면 아무리 토크가 높은 모터라고 하더라도 팔 자체의 기본 무게(프레임 + 각종 부품 + 원위부 관절에 달린 모터 무게)로 인해 실제 사용 가능한 토크는 줄어들게 된다
  • 대부분의 서보모터는 모터헤드가 모터의 가운데 위치하지 않기 때문에 설계가 극도로 어려워진다
  • 와이어를 이용하면 팔 전체에 모터의 무게를 제거할 수 있다
  • 모터를 몸통에 위치 시키면 무게 중심을 안정시킬 수 있다
  • 와이어를 안쪽과 바깥쪽에 각각 두 개씩 위치 시키면 비틀림을 구현할 수 있다
  • 와이어가 프레임에 직접적으로 닿는 것을 피하기 위해 추가적인 베어링과 축을 바꿀 부위가 필요하다
  • 와이어를 제어하는 모터의 제어 코딩이 더 복잡해지고, 몸통부에서의 설계가 복잡해진다
  • 모터 직결보다 좁은 범위에서의 관절운동만이 가능하다

뭐 이러한 이유로 인해 와이어를 선택한 것도 있지만, 안 해본 것이니 해보자는 생각으로도 시작을 해봤습니다.

3. 실제 디자인

아래의 사이트에서 직접 도면을 보실 수 있습니다.

  1. 팔의 아래쪽
  2. 팔의 위쪽

기본적으로 어떻게 움직이는지에 대해 많은 고민을 했습니다. 이건 고민을 하며 그려본 기본 개념도입니다.

arm
골격의 움직임 기본 개념(왼쪽이 손목)

관절은 3D프린터로 정밀하게 만들기 어려울 것 같고, 또 두 부위를 연결하기 위한 부품도 복잡해서 유니버설 조인트(Universal joint)라는 것을 이용하기로 했습니다.

arm joint
관절의 기본 컨셉
IMG_0502
관절의 축과 와이어를 지지할 지지대

관절의 형태는 지금까지 한번도 구상해본 적이 없어서 제 나름대로 디자인을 해봤습니다. 처음 생각에서 조금 차이가 생겼다고 한다면 근육이 되는 와이어를 골격에 붙일 수가 없어서 프레임에 봉(rod)을 달아 연결하기로 했습니다.

이런 저런 것들을 고려한 다음 다음의 형태로 두 개의 플라스틱 판을 만들어 결합시키기로 했습니다.

forearm_upper.png
팔의 위쪽 프레임
lower.png
팔의 아래쪽 프레임

이 두 가지를 3D프린터로 제작해서 결합시키면 제일 위의 그림처럼 연결이 됩니다. 물론 프린트 후 어느정도의 손질이 필요하겠지만요. 아무튼 이런 형태로 조립을 했을 때 로봇의 몸제는 아래의 그림처럼 될 것 같습니다.

concept02
몸통

그림에 갈색은 서보모터구요, 파란색은 스테핑 모터, 그리고 녹색은 아두이노 보드 입니다. 앞 뒤의 회색 부분은 껍질입니다. 네에.. 아무 기능도 없는 껍질입니다. 킁;;

concept01
몸통의 후측면

앞에서 잘 보이지 않지만, 앞쪽 서보모터 네 개는 가운데 붉은색 패널에 구멍을 뚫어 등쪽까지 나오게 했습니다. 그리고 뒤쪽 서보모터 두개는 패널에 수평으로 배치해서 가급적 어깨와 가까운 부위에 모터 헤드가 위치하도록 해봤습니다.

여기까지 디자인을 하고 나서 ‘알리 익스프레스‘에서 이것 저것 부품을 주문했습니다. 알리 익스프레스는 가격이 싼 대신 시간이 오래 걸려서 아마 다음달에나 조립을 시작하지 않을까 싶습니다. 필요한 부품으로 아래의 것들을 우선 주문했습니다.

4.  Bill Of Material (BOM, 자재 명세서)

  • 볼 베어링
  • 커플러
  • 유니버설 조인트
  • 4mm 카본 막대
  • 5mm 스테인레스 막대

5. 제작

3D 프린터가 도착해서 우선 프레임을 제작해 봤습니다. 유니버설 조인트와 카본 막대가 가장 중요한데 아직 도착을 안해서요. ㅠㅠ 대략 두 시간 정도가 걸렸고 아래와 같은 형태가 되었습니다.

2017-08-31 09.37.38

멀리서 보면 아름답기 그지 없지요..?

2017-08-31 09.37.58  2017-08-31 09.37.43

잘 보면 솔기 같은 것도 있고 불규칙한 부분도 있고 그렇습니다. 약간의 사포질은 필요하겠군요.

ㅡㅡ; 나머지 부분도 한번 출력을 해봐야 겠습니다. 반대쪽도 출력해 봤는데 디자인의 사이즈와 실제 출력 사이즈가 달라서 맞물리지가 않았습니다. 또한 가운데 봉을 지지대 없이 설계했더니 엉망이 되어버렸습니다.

2017-08-31 14.49.16
사진을 확대해 보면 거미줄 같은 것이 잔뜩 있습니다
2017-08-31 14.55.47
끼워 보면 끼워지지 않습니다

그런데… 만들다가 크나큰 문제를 하나 발견했습니다. 유니버설 조인트를 이용해 팔의 내회전/외회전을 구현하려고 했는데 그게 축이 조인트와 고정되어 버리면 불가능하겠더군요. 그걸 왜 지금까지 몰랐는지. ㅠㅠ 결국 이 문제를 해결하기 위해서 고민하다가 아주 굵은(?!) 뼈대를 만들기로 했습니다.

arm_shaft_cover.png
플라스틱 샤프트

3D프린터로 샤프트를 만드는 겁니다. 가운데 4mm 카본 막대가 들어갈 수 있는 공간을 만들었고, 양쪽 끝 부분에 볼베어링이 들어갈 수 있는 공간도 확보했습니다. 카본 막대는 통으로 쓰는 것이 아니라 절반 정도로 잘라서 위/아래에 각각 따로 끼울 겁니다. 그리고 그 카본 막대를 볼 베어링에 끼우면 플라스틱 샤프트와 카본막대가 따로 움직일 수 있기 때문에 내회전/외회전이 가능할 것으로 생각합니다. 양쪽에 있는 작은 네모 구멍은 와이어를 90° 간격으로 고정하기 위한 구멍입니다.

설계대로 출력을 해 봤는데 원하는 사이즈가 나오지 않아서 다시 조정을 한 후 출력을 했습니다.

2017-09-01 11.24.20
출력한 결과물

생각보다 오차가 심각해서 조금 더 수정을 해야 할 것 같습니다. 베어링이 제대로 안 들어가네요. 그리고… 몇 번의 시행착오 끝에 추가로 조금 변경했습니다. 와이어를 고정할 위치와, 와이어가 지나갈 구멍을 만들어 주었지요. 아래는 그 이미지입니다.

rev_shaft
수정한 샤프트

몇 차례의 리비전 후에 이런 모습이 되었습니다. 처음보다는 많이 복잡해 졌지요? 저도 만들다 보니 이렇게 복잡하다는 것을 알게 되었습니다. ㅎ

일단 안쪽에 베어링을 넣을 공간을 총 네 개 만들었습니다. 카본 샤프트의 흔들림을 막기 위해 각각 두 개의 베어링을 끼울 수 있도록 했구요, 와이어를 고정한 후 그 와이어가 샤프트의 방향을 따라 위치할 수 있도록 중간에 작은 걸쇠를 만들었습니다. 물론 이 부분은 추후에 바뀔 가능성이 높습니다. 아무래도 스텐레스보다 플라스틱은 경도가 약하기 때문에 부러질 수 있다는 생각이 들었거든요.

2017-09-04 17.25.24

어라.. 사진이 돌아갔네요. 왜 그러지…? 아무튼 베어링 위치는 잘 맞습니다.

2017-09-04 17.25.37

베어링도 잘 들어가 있습니다. 삐딱한 것은 고정을 안해서 그런 것이구요. ㅎ 일단은 이대로 만들어 볼 생각입니다.
이제.. 나머지 재료만 오면 되겠군요. 기다려야 겠습니다. 기다리면서 시간도 남고 해서 어깨 관절을 위한 플라스틱 프레임을 만들어 보기로 했습니다. 초기 디자인과 사뭇 다른 부분도 있지만 기본적인 개념은 아래와 같습니다.

2017-09-02 01.10.15
기본 개념

까만 동그라미는 와이어의 방향(벡터)가 바뀌는 부위입니다. 위쪽 그림을 보시면 이해가 되실 거구요, 몸통의 스테핑 모터를 기준으로 몇 번의 각이 바뀌며 와이어가 몸통에 이어지도록 했습니다. 측면도를 보시면 조금 더 이해가 쉬울지도 모르겠습니다.

2017-09-02 01.14.43
기본 개념. 측면도 포함

잘 보시면 아주 복잡한 각도로 벡터가 바뀌게 됩니다. 어쩔 수 없어요. 제가 머리가 나쁘니 더 좋은 방법을 찾아내질 못했습니다. ㅠㅠ

2017-09-03 10.26.12
모터의 위치

모터가 아주… 어마어마하게 붙어 있습니다. 가운데 정사각형은 스테핑 모터이구요, 나머지는 전부 서보모터 입니다.

2017-09-03 10.26.17
Pullley(도르레)를 이용한 결선도

지금 생각은 중간에 몇 군데 도르레를 위치 시켜서 와이어의 방향을 바꾸면 어떨까 생각해 보고 있습니다. 아직, 어떻게 구현할 지는 제대로 정하지 못했어요. 아무튼 여기까지 해 놓고 3D 디자인을 해 보았습니다.

shoulder_final
어깨 구동축. Pulley 없음

Pulley를 넣지 않았는데도 어마어마하게 복잡한 형태가 되었습니다. 좌우에 튀어나와 있는 곳은 전부 서보모터를 고정하기 위한 곳이구요, 가운데 정사각형 공간에는 커플링과 모터의 축이 위치할 공간입니다. 실제 서보모터는 뒤쪽에 위치하구요. 여기까지는 되었는데! 아직 도르레(Pulley)를 넣을 공간을 만들지 못했습니다. ㅠㅠ

 

크리에이티브 커먼즈 라이선스
이 저작물은 크리에이티브 커먼즈 저작자표시-변경금지 4.0 국제 라이선스에 따라 이용할 수 있습니다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중