#2 글에서 정한 치수를 기반으로 본격적인 로봇 기구 설계에 들어갔다.
본래 필요한 토크, 필요한 platform의 이동속도를 이용해서 모터의 토크 계산 및 모터 선정을 했어야 하지만 이미 사용할 모터가 정해져 있었기에 시간을 단축할 수 있었다.
그래도 이후에 모터에 대한 공부를 추가적으로 깊게 할 예정이다.
사용 모터 : AC 3상, 200V, 100W, rated torque 0.3N*m, rated speed 3000rpm
사용 감속기 : 헬리컬 유성 감속기, 감속비 30:1
●여러 모터가 있지만 굳이 대표님과 내가 이 모터를 고른 데에는 2가지 이유가 있었다.
1. 스텝모터가 아닌 서보모터를 이용한 델타 로봇을 만들고 싶다.
2. EtherCAT 통신으로 제어가 가능한 모터를 사용하고 싶다
●최초 설계 때 감속기를 사용하지 않아도 토크가 충분하다는 판단을 했었다. 하지만 이는 정적인 상태만의 계산이었고 이동을 시작할 때, 즉 가속할 때의 토크를 전혀 고려하지 않았었다. 추후 urdf를 완성해 gazebo에서 시뮬레이션을 돌린 결과 토크가 많이 부족함을 확인했고, 감속기를 달기로 설계를 변경했다.
감속비 30:1을 선정한 것은 엄밀한 '부하토크, 등속토크※' 계산을 통해 선정한 것이 아닌, 단순히 gazebo 시뮬레이션 상에서 모터의 limit effort, velocity를 바꿔가며 정상적으로 작동하는 토크를 찾아서 선정한 것이다.
모터의 정격토크, 정격속도가 0.3N*m, 3000rpm인데 감속비 30:1에 효율 95%급 감속기를 사용했으므로 0.30*30*0.90=9.0N*m의 토크를 100rpm으로 만들 수 있게 되었다.
●※아래 블로그에서 해당 부분을 고려하여 감속기와 모터를 선정하는 방법을 잘 정리해 두셨다. 나는 급하게 워낙 급하게 감속기를 선정하게 되어서 해당 부분을 당시에는 완전히 이해하지 못하고 넘어갔다.
https://answerofgod.tistory.com/850
모터 선정과 감속기 선정
모터를 이용하여 물체를 이동시 모터를 선정하는데 토크가 아주 중요합니다. 위 그림과 같이 천정레일을 이용한 보행보조기를 예로 들어보겠습니다. 천정레일에 보행보조기를 이용하여 보행이
answerofgod.tistory.com
●갑작스럽게 감속기 사용을 결정해서 빠르고 비교적 저렴하게 구할 수 있는 유성기어 감속기를 사용했지만 본래 로봇에는 하모닉 드라이브 감속기를 많이 사용한다고 한다. 그 이유는 아래와 같다.
1. 하모닉 드라이브는 백래쉬(Backlash)가 적어서 정밀제어에 유리하다.
2. 작은 크기로도 높은 감속비를 만들 수 있다.
3. 토크 전달력이 높다.
기구 설계 과정에서 크게 고려한 요소는 다음과 같았다.
ⓐ재료의 가공 과정이 최대한 적게 되도록 설계
ⓑ가능한 3d프린팅으로 출력이 가능한 부품이 많도록 설계
ⓒ3d프린팅으로 불가능한 부품은 가능한 기성품을 사용하도록 설계(CNC이용 최소화)
'테스트 모델이기에 간단하게 만들고 나중에 최적화를 하면 되는 점'도 있었지만 '내가 없어도 누구나 간단하게 수리가 가능'과 '짧은 인턴 기간 동안 로봇을 완성시키려는 점'이 위 ⓐⓑⓒ 요소에 영향을 주었다.
설계는 크게는 base > platform > bicep + forearm 순으로 진행했지만 각각의 설계가 유기적으로 서로 영향을 주었다.
아래는 1차적으로 완성한 prototype의 모델링과 각 부품들의 설계 시 내가 고려했던 부분들을 적은 것이다.
● 아래 치수의 단위는 당연히 [mm]이다.
● 3D 프린팅의 경우 PLA소재를 사용했다.
● 구체적인 부품이나 치수, 모델링 파일은 공개하지 않는다.
Base :
●델타 로봇에서 가장 큰 하중이 걸리기에 가장 튼튼해야 했다. 그래서 다른 부품과 달리 강철판을(구체적인 소재를 지정하지 않았지만 ss400 혹은 s45c가 아닐까 싶다) 사용했다.
+)레이저 가공은 stl파일이 아닌 dwg의 2d 캐드 파일과 사용할 철판의 두께정보를 업체에 전달해야 한다.
●모터, 외부 프레임과 볼트체결을 할 수 있도록 M5 볼트에 맞게 구멍을 뚫었다.
●본래 모터가 base 하단에 장착될 예정이었지만 감속기의 추가로 길어져서 불안정하게 모터가 매달려 있는 구조가 되었었다. 그래서 모터를 위쪽으로 올리고 추가로 모터와 감속기를 받쳐줄 부분을 추가했다.
●안정성을 위해서 몇T의 철판을 사용해야 하는지에 대한 감이 전혀 없었다. 그래서 조금이라도 참고를 하기 위해 inventor에서 Stress Analysis를 이용해 간단하게나마 정하중에 의한 displacement를 확인해 보았다. (이 때는 motor_holder를 장착해서 진행했다.)
무게, 9000N*mm의 토크를 기준으로 간단하게 시뮬레이션을 돌렸고 극단적인 상황에서도 끝부분이 약 0.6mm밖에 처지지 않는다는 것을 확인했고 base 소재로 5T의 강철판(Steel, Carbon 기준)을 사용하는 것이 적합하다는 결론을 냈다.
+)내가 Inventor의 Stress Analysis에 익숙지 않고 엄밀하게 환경을 세팅하지 않았기에 위 시뮬레이션 결과를 전적으로 신뢰할 수는 없다. 하지만 경험적으로 이 Base가 하중에 의해 파손될 확률이 0%에 가까움을 알기도 하고, 실제로 발생할 displacement가 페트병의 pick&place 목적의 델타 로봇의 작동에 큰 영향을 줄 것이 아님을 확신했기에 이 정도로만 하고 넘어갔다. 이 시뮬레이션은 결과보단 이러한 시도도 했음에 의의를 둔다.
Motor_holder :
●모터를 base에 장착시켜 주는 부품으로 이 부분 또한 큰 힘을 받을 것으로 예상되었다. 우선 3D프린팅으로 제작하는 것으로 결정했기에 파손 방지를 위해 두께를 키웠고, 프린팅 방향 또한 일부러 모터 장착 입구(정사각형 입구)가 위쪽(z축)을 보게 설정했다.
Bicep_connector :
●3D프린팅으로 출력하였으며 motor_shaft_holder가 장착될 slot 모양의 구멍의 치수가 중요하므로 해당 구멍이 위쪽(z축)을 보게 하여 출력하였다.
●motor_shaft_holder 부분도 같이 일체형으로 출력할까도 고려했지만 델타로봇에서 가장 큰 동력이 전달되는 부품이고 또한 축 정렬도 중요한 부품이기에 따로, 튼튼한 기성품을 사용하였다.
●원기둥 부분을 bicep용 carbon fiber tube에 끼워 장착하는 방식이며 기둥의 구멍 4개에 퀵서트를 넣어주고 이후 M5 볼트로 고정하도록 설계했다.
●해당 부품을 bicep tube에 끼워 넣는 방식이 아닌 반대로 bicep tube를 해당 부품에 끼우는 방식도 고려를 했지만 3d프린팅 출력물의 특성상 후자가 서포트 제거도 힘들고 강도도 약할 것이라는 판단으로 위와 같은 디자인이 나오게 되었다.
Ball joint :
+)이 부분의 고민을 오래 했기에 이렇게 따로 항목을 뺐다.
●시중에 나와있는 델타로봇 기준으로 bicep-forearm 부분의 joint는 크게 ①ball joint, ②revolute joint*2, ③spehre joint를 사용하고 있으며 대부분은 ①, ③을 채택하고 있는 것으로 보인다.
+)①과 ③를 정확하게 구분하는 용어를 잘 모르겠어서 검색결과를 기준으로 나누었다. 아래의 사진을 봤을 때 가장 큰 차이는 ①은 1개 joint 단독으로 고정이 된다는 점, ③은 단순히 접하고만 있어서 스프링 없이는 고정이 안된다는 점이다.
●joint는 델타로봇의 움직임에 상당히 큰 영향을 주기에 가능한 기성품을 쓰고자 했다. 따라서 ①을 처음에는 선택했지만 시중에 판매 중인 ①을 사용할 경우 문제가 발생했었다. 요동각도 θ가 40~50º 밖에 되지 않았기에(최소 80º가 필요) 같은 ws를 만들기 위한 bicep, forearm의 길이가 길어진다는 문제가 있었다. 따라서 큰 θ를 만들기 위해 ③의 방식을 채택했다.
●ball 부분은 쉽게 구할 수 있었지만 반대 부품(오목하게 파인 부품)은 따로 팔지는 않고 직접 제작해야 했다. 또한 스프링도 선정해야 했다. 스프링의 경우 관련 자료를 전혀 찾을 수 없어서 여러 종류의 인장스프링을 구매한 후 실험적으로 결정하기로 했다.
+)이전까지는 델타로봇 forearm에 있는 스프링이 damping을 주기 위함이라고만 알고 있었지만 이 joint에 대한 조사를 통해 ③형태에서 joint가 분리되는 것을 막아주는 역할도 있다는 것을 알았다.
Forearm_connector :
●퀵서트와 볼 스터드(조인트)를 제외한 부분은 3D 프린팅으로 출력한다. 출력 방향은 구멍이 위쪽을 보게하여(z축 방향) 출력한다. 사진에 보이는 평평한 면을 바닥에 두고 출력하지 않는 이유는 혹시 모를 부러짐과 구멍 내의 서포트 생성을 방지하기 위함이다.
+)infill 40%로 출력 결과 강도가 충분해서 평평한 면을 바닥에 두고 출력해도 강도 측면에서는 문제가 없을 것으로 예상된다.
●원기둥 부분을 bicep용 carbon fiber tube에 끼워 장착하는 방식이며 기둥의 구멍 4개에 퀵서트를 넣어주고 이후 M5 볼트로 고정하도록 설계했다.
●Bicep_connector와 같은 이유로 해당 부품을 bicep tube에 끼워 넣는 방식으로 설계하였다.
●위 사진과 같이 조립하며 이때 주의할 사항은 Bicep_connector와 Forearm_connector가 뒤틀리지 않고 알맞은 각도로 조립이 되어야 한다는 것이다. 이는 Bicep_tube에 볼트 체결용 구멍을 뚫을 때 주의해야 하는 부분이다.
●앞서 정한 bicep의 길이와 관련해서 주의할 부분은 길이를 잡을 때 위와 같이 잡아야 한다는 것이다. 너무도 당연한 이 사실을 나는 설계를 끝나고 인지해서 바꿀 수 없었다. 다행히 2mm밖에 차이가 나지 않아 기존 kinematics 계산에서 거의 바뀌지 않았다. 길이보다는 bicep의 각도가 약 10º정도 바뀌었는데 이 또한 현 설계에서는 큰 문제가 되지 않았다. 그래도 추후 새로운 델타 로봇을 설계할 때는 반드시 주의해야 한다.
Forearm_holder :
●3D 프린팅으로 출력하며 ball과 맞닿는 부분의 출력 품질이 중요하므로 해당 부분(구형으로 파인 부분)이 위쪽을 보게하여(z축 방향) 출력한다.
●원기둥 부분을 forearm용 carbon fiber tube에 끼워 장착하는 방식이며 장착 이후 M3 볼트로 고정하도록 설계하였다.
●본래 ball과 맞닿는 부분의 품질과 강도에 대해 확신이 없어서 CNC로 가공하는 것을 고려하고 있었는데 생각보다 3d 프린팅 품질이 좋아서 우선 3d 프린팅 제작하기로 결정했다.
●본래 최초 설계는 forearm의 길이가 460mm였지만 480mm로 바꾸면 ws에 큰 영향도 안 주고, 판매하는 carbon fiber pipe를 절단하지 않고 바로 사용할 수 있었기에 이렇게 변경했다. 물론 bicep-forearm length ratio도 정상 범주 안에 있다.
Platform :
●퀵서트와 볼 스터드(조인트)를 제외한 부분은 3D 프린팅으로 출력한다. 출력 방향은 위 사진과 같다.
+)위 사진 모델의 숫자는 시뮬레이션 상에서의 편의를 위해 넣어둔 것이다. 프린팅시 저 숫자는 사라진다.
●r=50에 맞게 설계하였다. 추후 설계 시 주의할 점은 중심에서 볼조인트의 중심까지의 거리가 아닌 위 사진과 같은 거리로 잡아햐 한다는 점이다.
●Forearm _connector와 마찬가지로 볼조인트가 흔들리면 안 되기에 퀵서트를 삽입하여 보강해 주었다.
●prototype이기에 현재 모델은 중앙에 큰 구멍만 있지만, 추후 장착할 end effetor에 따라 위 치수만 지키는 선에서 형태를 변경해도 큰 상관이 없는 부품이다.
Frame :
●Frame은 '회사에 이미 있는 컨베이어 벨트와 같은 프로파일 사용', '육면체 형태의 frame', '델타로봇 link의 구동 범위와 충돌하지 않음'을 고려해서 설계하였다.
W-delta prototype :
●모든 부품을 assemble하면 위와 같은 w_delta_prototype이 나오게 된다. 조립 시 지속적으로 내가 의도한 R, L, l, r 치수가 나오는지를 확인해야 하며, bicep_connector와 motor의 결합의 경우 bicep의 중심선이 base의 중심선을 지나도록 함에 주의해야 한다.
Base 중앙의 큰 구멍은 본래 공압 그리퍼의 호스가 지나가는 것을 위한 것으로 뚫어둔 것이지만, 추가로 그 지름을 bicep tube와 같은 40mm로 하여 조립시 참고하도록 한 것도 있다.
즉 제대로 장착되었다면 bicep을 base쪽으로 돌렸을 때 정면에서 bicep이 구멍을 완벽하게 가려야 한다.
●assemble 한 후 반드시 motor joint에 각도를 입력해서 platform을 움직여 봐야 한다. 즉 해당 설계가 계산했던 FK(Forward Kinematics)를 만족하는지를 확인해야 한다는 것이다. 나는 이 과정을 이전에 올렸던 온라인 델타 로봇 FK simulator를 이용해서 진행했다. 다행히 같은 결과가 나왔다.
https://www.geogebra.org/m/eAFWSVCM#material/Hf5jfb7T
delta simulator
delta simulator
www.geogebra.org
이 글만 보면 설계를 마치고 제작에 들어간 것처럼 보이지만 실제로는 '설계-부품제작-수정'을 동시에 계속 진행했었다. 즉 위에서 언급한 수정, 고려사항은 최종 결과만 적은 것이고 실제로는 수십 번의 수정이 있었다.
일단 이 글에서는 설계에 관한 내용을 작성했고 이후 다른 글에서 실물 제작에 관한 내용을 정리해서 올릴 것이다.
아직 실물을 작동시켜보지는 않았지만 모델링 단계까지는 내가 생각했던 것 이상으로 잘 나왔기에 매우 만족한다.
이번 과정으로 무언가 새로운 테크닉이나 지식을 크게 얻지는 않았지만 설계 경험치를 많이 얻어갈 수 있었다.
[사진 출처]
①https://www.directindustry.com/prod/igus/product-4740-1980806.html
③https://www.directindustry.com/prod/weiss-italia/product-211821-2512549.html
========================================================================
정확한 정보 전달보단 공부 겸 기록에 초점을 둔 글입니다.
틀린 내용이 있을 수 있습니다.
틀린 내용이나 다른 문제가 있으면 댓글에 남겨주시면 감사하겠습니다. : )
========================================================================
'인턴, 협업 > WIM' 카테고리의 다른 글
2023-2 델타 로봇(Delta robot) - #5 (URDF 제작 및 Gazebo 2) (0) | 2023.08.20 |
---|---|
2023-2 델타 로봇(Delta robot) - #4 (URDF 제작 및 Gazebo 1) (0) | 2023.08.17 |
2023-2 델타 로봇(Delta robot) - #2 (ws와 치수 결정을 위한 IK, FK analysis) (0) | 2023.07.20 |
2023-2 델타 로봇(Delta robot) - #1 (델타 로봇의 개념과 IK, FK) (0) | 2023.07.11 |
WIM 관련 글 공지 (0) | 2023.07.11 |