갑작스럽게 한 스타트업의 협업을 제안 받아서 기존에 진행 중이던 4족 보행로봇 프로젝트는 잠시 중단하고 델타로봇&페트병 그리퍼 프로젝트를 진행한다.
1차적인 목표는 '델타로봇을 이해하고 간단하게 설계하는 것'으로 잡았다. 가능하면 1차 목표 이후 시제품(prototype)까지 한번 만들어보는 것을 이번 프로젝트 기간 동안의 목표로 잡고 있다.
●4족보행 로봇은 시간이 나면 틈틈이 공부하든가, 아예 프로젝트가 끝나면 진행할 생각이다.
●이번 프로젝트 기록은 시간 순서대로 기록하는게 아닌 해당 부분(모델링, 계산, 코딩, 모터 등)별로 정리했다.
우선 델타 로봇이 무엇인지 공부할 필요가 있었고 또 이를 위해 직렬형 로봇(Serial robot)과 병렬형 로봇(Parallel robot)에 대해 알아야 했다.
+)Serial, Parallel robot이라는 말이 manipulator 한정으로만 사용되는지, 아니면 다른 로봇에도 사용되는지는 잘 모르겠다. 이 글의 경우 manipulator를 기준으로 작성했다.
직렬형 로봇(Serial robot) :
●한 link는 1개의 parent와 child link를 갖는 구조, open-loop kinematics, base에서 EE(End Effector)로 가는 방법이 1가지이다.
●대부분의 manipulator가 이 형태이며 사람의 팔도 따지면 serial 형태로 볼 수 있다.
●FK(Forward kinematic, 정기구학)이 쉽고, IK(Inverse kinematics, 역기구학) 이 어렵다.
●같은 개수의 모터를 사용했을 때, parallel에 비해 다양하고 복잡한 움직임을 만들 수 있다. (Flexibility, Dexterity)
병렬형 로봇(Parallel robot) :
●한 링크가 복수의 parent와 child를 가질 수 있는 구조, closed-loop kinematics, base에서 EE(End Effector)로 가는 방법이 여러 가지이다.
●대표적으로 Stewart platform과 delta robot이 있다.
●FK(Forward kinematic, 정기구학) 이 어렵고, IK(Inverse kinematics, 역기구학)이 쉽다.
●같은 개수의 모터를 사용했을 때, seriall에 비해 stiffness, accuracy, payload capacity가 좋다. (+어떤 물건을 한 손으로 드는 것과 여러 손으로 드는 것의 차이를 생각하면 쉽게 이해할 수 있을 것 같다.)
델타 로봇(Delta robot) :
●parallel manipulator의 한 종류이다.
●pick and place 동작이 있는 (산업) 현장에서 많이 쓰이고 있다.
●총 3개의 arm(1개 arm은 크게 2개의 link로 구성)이 120º 간격으로 base와 platform에 연결되어 있다.(삼각형 형태이기에 그리스문자 Δ를 따와서 delta robot이라고 부른다고 한다.)
●base-link1의 joint만 active joint이고 나머지는 passive joint이다. base-link1은 revolute(revolute type delta robot) 또는 prismatic joint(linear type delta robot)를 사용하고 link1-link2, link2-platform는 ball joint(+universal joint로 사용하기도 한다.)를 사용한다.
●높은 속도, 가속도와 안정성이 장점이다.
●4족 보행은 "다리 3개로 이루어진 델타로봇 구조 + 1개 다리에 의한 redundant DOF"의 형태로 보면 된다. 실제 제어 시 다리 하나는 들고 3개로 자세를 제어하는 방식이 있다. (아래 유튜브 강의에서 사족으로 언급하심)

위 로봇의 경우 revolute-universal-universal 형태의 delta robot이다.
(+저런 형태도 universal joint라 하는지는 모르겠는데 최소한 ball은 아니라서 universal로 분류했다.)
추가로 델타 로봇의 revolute type과 linear type의 비교를 chatGPT를 이용해서 정리해보았다.
대화 로그 :
>Comparison "revolute type delta robot" with "linear type delta robot".
>Summarize it in a chart.
>Add pros and cons of each methods.

일단 위 표에 따라 revolute type을 제작하는 것이 이번 프로젝트에 맞다고 판단했다.
간단하게 delta robot에 대해 알아봤고 이후 설계, 제어를 위해 IK분석을 직접 해보았다. 이 과정은 아래 유튜브 영상의 강의를 듣고 그대로 따라 해봤다.
[목원대학교 로봇학과 양정연 교수님의 강의]
https://www.youtube.com/watch?v=JNtn44W7JSE




+)A, B, C는 추후 계산할 때 Matlab의 도움을 받아 정리할 예정이다. 손으로 쓰기 너무 길다...
델타 로봇의 IK를 직접 계산한 이후에는 델타 로봇의 workspace에 대해 조사했다.
Serial manipulator는 어느 정도 직관적으로 (workspace <--> link length)가 가능했는데 델타로봇은 전혀 그림이 안 그려졌다.
Workspace를 계산하는 데에는 FK가 필요한데 앞에서도 말했듯이 델타 로봇의 FK는 너무 복잡해서 직접 하지는 못했다. 다만 접근 방식은 간단하게나마 이해해 봤다. (100% 제대로 이해했는지는 잘 모르겠다.)

3.의 3개 구의 intersection을 구하는 방법은 그거대로 또 복잡하고 어렵다고 한다.
FK는 이 정도만 이해하고 이번 단계에서는 workspace 파악은 다른 사람이 만들어둔 matlab 코드를 이용했다.
(+ChatGPT가 작성한 코드도 확인해 봤는데 구속이 제대로 걸리지 않아 cylinder 형태가 나왔다...)
https://kr.mathworks.com/matlabcentral/fileexchange/71119-delta-robot-kinematic
Delta-robot kinematic
3-DOF delta robot, build Workspace and Cube inside
kr.mathworks.com
MAIN.m을 실행시키면 되고 여기서 입력으로 수정해 줄 것은 R, r, l, L이다.
(+내가 IK, FK 분석할 때는 형태를 원이 아닌 삼각형으로 했다. 추후 코드 사용 시 base는 외접원을, platform은 내접원을 생각해서 치수를 사용하면 된다.)
R : Base circle radius [mm] (외접원)
r : Platform circle radius [mm] (내접원)
L : Upper leg length [mm] (Bicep)
l : Lower leg length [mm] (Forearm)
각 값을 넣고 실행시키면 아래와 같은 그래프가 나온다.

보라색 점들로 구성된 공간이 platform의 중심, 즉 P(x,y,z)가 갈 수 있는 영역을 의미하고 안쪽의 초록색 상자는 cuboid(*정육면체) workspace 중 가장 큰 경우를 나타낸 것으로 보인다.
+)cuboid의 사전적의미는 본래 '직'육면체이지만 delta robot의 workspace 관련해서는 '정'육면체로 사용하는 것 같다.
전반적으로 workspace는 신기하게 깨진 구 형태를 보인다. 위쪽의 3개의 봉우리 방향에 모터가 위치한다.
+)230719 추가 : 구라고 표현했지만 z축 평면으로 자른 단면을 확인하면 원이 아닌 둥근 육각형이 나온다. 때문에 전체 workspace에서 cylinder형태의 workspace를 잡으려고 하면 구라고 생각했을 때 보다 더 작은 영역이 계산될 것이다.
여기서 사용 환경, 목적에 따라 어떤 영역을 workspace로 잡을지가 달라질 것 같다.
초록색 cuboid는 EE(End effector)가 그리는 최대 정육면체 공간일 뿐이고, 만약 본인의 로봇이 platform을 z로 높이 들 필요가 없다면 더 넓은 xy면적을 workspace로 잡을 수 있을 것이고 반대의 경우도 가능할 것이다.
추가로 아래 사이트에서도 IK와 FK를 확인해볼 수 있다. 다만 아래 사이트는 workspace를 cuboid로만 잡는다.
https://www.marginallyclever.com/other/samples/fk-ik-test.html
Delta Robot Forward/Inverse Kinematics Calculations
www.marginallyclever.com
[참고문헌]
[Robert L. Williams II, "The Delta Parallel Robot: Kinematics Solutions," Mechanical Engineering : Ohio University, 2016, https://www.ohio.edu/mechanical-faculty/williams/html/PDF/DeltaKin.pdf]
[Yuliya Smirnova, "Delta-robot kinematic," https://www.mathworks.com/matlabcentral/fileexchange/71119-delta-robot-kinematic, MATLAB Central File Exchange, 2023.7.3. 검색]
[양정연, "g1 Robotics 20 Inverse Kinematics of Delta Robot," https://www.youtube.com/watch?v=JNtn44W7JSE, 2023.7.1 검색]
========================================================================
정확한 정보 전달보단 공부 겸 기록에 초점을 둔 글입니다.
틀린 내용이 있을 수 있습니다.
틀린 내용이나 다른 문제가 있으면 댓글에 남겨주시면 감사하겠습니다. : )
========================================================================
'인턴, 협업 > 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) - #3 (설계와 모델링) (0) | 2023.08.12 |
2023-2 델타 로봇(Delta robot) - #2 (ws와 치수 결정을 위한 IK, FK analysis) (0) | 2023.07.20 |
WIM 관련 글 공지 (0) | 2023.07.11 |