Ch3. Inverse manipulator kinematics

gidori·2024년 5월 10일

로봇공학

목록 보기
3/4

1. Forward Kinematics와 Inverse Kinematics

  • Forward Kinematics : mainipulator의 joint angles이 주어졌을 때, 모든 frame의 position과 orientation을 구하는 것을 의미

  • Inverse Kinematics : End Effector의 position과 orientation이 주여졌을 대, joint angles을 구하는 것을 의미

2. Solvability

2-1. Existence of solutions

  1. Dextrous Workspace : End Effector 모든 orientation으로 도달할 수 있는 공간을 의미
  2. Reachable Workspace : End Effector 적어도 하나의 orientation으로 도달할 수 있는 공간을 의미

아래와 같은 manipulator가 존재한다고 할 때 L1,L2L_1, L_2 의 길이에 따라 Workspace가 달라질 수 있다.

  • L1=L2L_1 = L_2 : 고정된 Link의 중심만 Dextrous Workspace이고 L1+L2L_1 + L_2를 반지름으로 하는 원만큼이 Reachable Workspace이다.
  • L1L2L_1 \ne L_2 : Dextrous Workspace는 없으며, L1L_1, L2L_2의 길이에 따라 Reachable Workspace가 변경된다.

2-2. Multiple solutions

  • Fig 4.2와 같이 특정 x,y,ϕx, y, \phi를 가지는 joint angles의 조합은 다수 존재할 수 있다.
    <어떤 조합을 선택해야하는 지에 대한 문제>
  • Fig 4.3과 같이 특정 x,y,ϕx, y, \phi로 가기 위한 경로 중 obstacle에 의해 불가능한 경로가 존재할 수 있다.
    <어떤 경로를 따라가야하는 지에 대한 문제>

2-3. Method of solution

  • Closed-form solutions과 Numerical solutions이 존재할 수 있다.

  • Closed-form은 Numerical 보다 연산량이 적지만, 해가 존재하지 않을 수도 있으며 Algebraic 방식과 Geometric 방식으로 나뉠 수 있다.

3. Algebraic vs Geometric

3-1. Algebraic Method

  • 아래와 같은 시스템으로 구성된 manipulator의 3번 Link의 orientation과 position이 주어졌을 때, 각 joint의 angle을 Algebraic Method를 사용하여 구하는 것을 목표로 한다.

  • Forward Kinemetics = Inverse Kinematics를 풀자

30T=[c123s1230l1c1+l2c12s123c1230l1s1+l2s1200100001]=[cϕsϕ0xsϕcϕ0y00100001]{}^0_3T=\begin{bmatrix} c_{123} & -s_{123} & 0 & l_1c_1+l_2c_{12} \\ s_{123} & c_{123} & 0 & l_1s_1+l_2s_{12} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1\end{bmatrix} = \begin{bmatrix} c_{\phi} & -s_{\phi} & 0 & x \\ s_{\phi} & c_{\phi} & 0 & y \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1\end{bmatrix}
cϕ=c123,x=l1c1+l2c12c_{\phi} = c_{123}, x = l_1c_1+l_2c_{12}
sϕ=s123,y=l1s1+l2s12s_{\phi} = s_{123}, y = l_1s_1+l_2s_{12}
x2+y2=l12+l22+2l1l2c2x^2+y^2=l_1^2+l_2^2+2l_1l_2c_2
c2=x2+y2l12l222l1l2, s2=±1c22c_2 = \frac{x^2+y^2-l_1^2-l_2^2}{2l_1l_2}, \space s_2=\pm \sqrt{1-c_2^2}
  • c2c_2에서 바로 cos1cos^{-1}를 이용해 θ2\theta_2를 구할 수 있으나, 여러 해가 존재할 수 있으므로, Atan2(s2,c2)Atan2(s_2, c_2)를 이용해 θ2\theta_2를 구함.

  • θ1\theta_1을 구하기 위해 (r,γ,k1,k2r, \gamma, k_1, k_2) 를 아래와 같이 설정하고 식을 변환

[step 1]

x=l1c1+l2c12, where c12=c1c2s1s2x = l_1c_1+l_2c_{12}, \space where \space c_{12}=c_1c_2-s_1s_2
y=l1s1+l2s12, where s12=c1s2+s1c2y = l_1s_1+l_2s_{12}, \space where \space s_{12}=c_1s_2+s_1c_2

[step 2]

x=k1c1k2s1, where k1=l1+l2c2x = k_1c_1-k_2s_1, \space where \space k_1 = l_1+l_2c_2
y=k1s1+k2c1, where k2=l2s2y = k_1s_1+k_2c_1, \space where \space k_2 = l_2s_2

[step 3]

r=k12+k22,γ=Atan2(k2,k1),k1=rcosγ,k2=rsinγr = \sqrt{k_1^2+k_2^2}, \gamma=Atan2(k_2, k_1), k_1=r\cos\gamma, k_2=r\sin\gamma
γ+θ1=Atan2(yr,xr)=Atan2(y,x)\gamma+\theta_1 =Atan2(\frac{y}{r}, \frac{x}{r})=Atan2(y, x)
θ1=Atan2(y,x)Atan2(k2,k1)\theta_1 =Atan2(y, x)-Atan2(k_2, k_1)
  • θ1,θ2\theta_1, \theta_2를 이용하여 나머지 θ3\theta_3를 구한다.
    cϕ=c123,sϕ=s123c_{\phi}=c_{123}, s_{\phi}=s_{123}
θ1+θ2+θ3=Atan2(sϕ,cϕ)=ϕ\theta_1 + \theta_2 + \theta_3 = Atan2(s_{\phi}, c_{\phi})=\phi

3-2. Geometric solution

  • 삼각형의 특성을 기하학적인 특성(제 2 cos\cos법칙)을 이용한 Inverse Kinemetics

1.제 2 cos\cos 법칙을 이용해 θ2\theta_2을 구한다.

x2+y2=l12+l222l1l2cos(180+θ2)x^2+y^2=l_1^2+l_2^2-2l_1l_2\cos(180+\theta_2)
c2=x2+y2l12l222l1l2,(θ:180°0°)c_2=\frac{x^2+y^2-l_1^2-l_2^2}{2l_1l_2}, (\theta:-180\degree \sim 0\degree)
θ2=cos1(x2+y2l12l222l1l2)\theta_2 = \cos^{-1}(\frac{x^2+y^2-l_1^2-l_2^2}{2l_1l_2})

2.제 2 cos\cos 법칙을 이용해 θ1\theta_1을 구한다.

cosψ=x2+y2+l12l222l1x2+y2\cos\psi=\frac{x^2+y^2+l_1^2-l_2^2}{2l_1\sqrt{x^2+y^2}}
θ1=β±ψ\theta_1 = \beta\pm\psi
  1. θ1,θ2\theta_1, \theta_2를 이용하여 나머지 θ3\theta_3를 구한다.
θ1+θ2+θ3=ϕ\theta_1 + \theta_2 + \theta_3 =\phi

0개의 댓글