ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 로봇팔 좌표계 변환 Kinematics (Forward vs Inverse) + 관련 용어
    탐구생활 2021. 11. 24. 08:39

    아두이노와 서보모터로 로봇팔을 만들고 난 뒤에

    "x,y,z 좌표축에서 특정 좌표로 이동하게 하고 싶은데 어떻게 해야 하지?"

     

    라는 생각이 들었다.

     

    내가 조절할 수 있는 것은 오직 서보모터들의 각도뿐인데...

    (서보모터 간의 거리도 조절할 수 있지만, 이는 로봇팔을 움직이는 동안 변경할 수 없는 값이기 때문에)

     

    입력값으로 원하는 x,y,z를 넣으면, 출력값으로 서보모터들의 각도를 얻고 싶다.

    이런걸 바로 Inverse Kinematics 라고 한다.

     

    반대로 서보모터들의 각도를 이렇게 변경하면 x,y,z 좌표축에서 어디로 가는가에 해당하는게 Forward Kinematics 이다.

     

    Forward Kinematics는 상대적으로 쉽다.

    반대로 Inverse Kinematics는

    불가능할 수도 있고(로봇팔로 닿을 수 없는 좌표를 찍을 경우, 대표적으로는 로봇팔보다 먼 곳을 좌표로 찍을 경우),

    가능은 한데 그 경우의 수가 엄청 많을 수도 있다.(가장 간단한 예시로는 ㄱ자, ㄴ자 모양을 생각하면 된다.)

     

    관절이 많아질수록 경우의 수가 기하급수적으로 늘어난다.

    관절이 많을수록 더 부드럽고 자연스럽고 세밀하게 움직일 수 있지만, 수많은 경우의 수를 계산하기까지 그야말로 계산이 많이 들어가고 또 수많은 경우의 수 중 하나를 고르기 위해서 넣는 제약조건도 많아지게 된다.

    그러므로 최대한 단순하게, 관절을 적게 사용할 것을 권장한다. 필요한 만큼만 사용하자. 과유불급.

     

     

     


     

     

    용어

     

    용어를 알면 검색하기 수월해지고, 검색결과에서 원하는 결과인지 아닌지를 빠르게 분별할 수 있다.

    반대로 용어를 모르면 그만큼 원하는 정보를 얻기까지 소요되는 시간이 늘어나는 것이다.

    로봇공학전공이 아닌 필자가 관련 용어를 전혀 모른 상태로 검색하다보면서 알게된 용어를 정리한다.

     

     

    DOF : Degree of Freedom 자유도

    자유도를 풀어 말하면 "얼마나 자유롭게 움직일 수 있냐"

    그리고 이는 관절 개수에 따라 결정된다는 것을 알 수 있다.

     

    무릎을 구부리지 않고 다리를 움직이는 것과 무릎을 구부리면서 다리를 움직이는 것을 생각해보면 된다.

    이렇게 관절 개수가 많을수록 자유도가 높아진다.

     

    아두이노와 서보모터로 만든 로봇팔의 경우, 관절은 서보모터에 해당한다.

     

    검색을 하다보면 2DOF, 3DOF, 4DOF 처럼 앞의 숫자가 붙은 경우를 볼 수 있다.

    이는 자유도 값을 알려주는 것이다.

    "관절 2개로 이루어진"이란 표현을 아주 "2DOF"로 쉽게 부를 수 있고, "2DOF"를 보면 누구나 "관절 2개로 이루어진" 이라고 생각하기 때문에 커뮤니케이션이 수월하다는 장점이 있다.

    2DOF : 자유도 2 = 관절 2개 (서보모터 2개)

    3DOF : 자유도 3 = 관절 3개 (서보모터 3개)

    4DOF : 자유도 4 = 관절 4개 (서보모터 4개)

    5DOF : 자유도 5 = 관절 5개 (서보모터 5개)

    6DOF : 자유도 6 = 관절 6개 (서보모터 6개)

     

     

     

    Joint(조인트) : 관절

    서보모터로 만든 로봇팔의 경우는 서보모터가 조인트에 해당

     

    위의 자유도에서 설명했듯이 관절 개수만큼 자유도가 늘어나기 때문에 3 Joint 는 3DOF 와 같은 의미이다.

     

     

     

     

    '탐구생활' 카테고리의 다른 글

    Split Keyboard  (0) 2022.11.05
    Unofficial Windows Binaries for Python Extension Packages  (0) 2021.11.04
    타건감에 대한 고찰 시리즈  (0) 2021.11.03

    댓글

Designed by Tistory.