Journal Archive

Journal of Korea Robotics Society - Vol. 10 , No. 4

[ ARTICLE ]
The Journal of Korea Robotics Society - Vol. 10, No. 4, pp. 230-244
Abbreviation: J Korea Robot Soc
ISSN: 1975-6291 (Print) 2287-3961 (Online)
Print publication date Nov 2015
DOI: https://doi.org/10.7746/jkros.2015.10.4.230

역미분기구학의 해 공간
강철구

Solution Space of Inverse Differential Kinematics
Chul-Goo Kang
This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education (grant number 2013R1A1A2062374).
Corresponding author : Mechanical Engineering, Konkuk University, Gwangjin-gu, Seoul, Korea (cgkang@konkuk.ac.kr)


© Korea Robotics Society All rights reserved
This is an Open-Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract

Abstract Continuous-path motion control such as resolved motion rate control requires online solving of the inverse differential kinematics for a robot. However, the solution space of the inverse differential kinematics related to Jacobian J is not well-established. In this paper, the solution space of inverse differential kinematics is analyzed through categorization of mapping conditions between joint velocities and end-effector velocity of a robot. If end-effector velocity is within the column space of J, the solution or the minimum norm solution is obtained. If it is not within the column space of J, an approximate solution by least-squares is obtained. Moreover, this paper introduces an improved mapping diagram showing orthogonality and mapping clearly between subspaces, and concrete examples numerically showing the concept of several subspaces. Finally, a solver and graphics user interface (GUI) for inverse differential kinematics are developed using MATLAB, and the solution of inverse differential kinematics using the GUI is demonstrated for a vertically articulated robot.


Keywords: Differential kinematics, Robot manipulator, Jacobian, Range, Nullspace, Moore-Penrose pseudoinverse

1. 서 론

로봇 머니퓰레이터의 운동제어 및 힘제어를 효과적으로 수행하기 위하여 로봇 기구학(kinematics)의 해가 필요하다. 로봇 기구학은 관절변수(joint variable) q와 말단장치(end effector)의 위치(position) 및 방향(orientation) x의 관계를 구하는 것이다. 로봇 기구학은 다시, 주어진 관절변수 q로부터 말단장치의 위치 및 방향 x를 구하는 순기구학(forward kinematics)과, 주어진 말단장치의 위치 및 방향 x로부터 관절변수 q를 구하는 역기구학(inverse kinematics)으로 나누어 생각할 수 있다.

본 논문에서 벡터는 굵은 로마체 소문자로 표기하고, 행렬은 대문자로 표기한다. 본 논문에서 벡터는 모두 열벡터로 간주한다.

로봇 머니퓰레이터의 순기구학 문제는 함수형태로

x=fq(1) 
로 표시될 수 있고, 순기구학 문제를 푼다는 것은 함수 f를 구하는 것이다. 여기서 x = [x,y,z,α,β,γ]T, q = (q1, q2, ⋯, qn)T 이고, x,y,z 는 고정된 기준좌표계에 대한 말단장치의 위치인 Cartesian 좌표를, α,β,γ는 기준좌표계에 대한 말단장치의 방향을 나타내는 변수이다. α,β,γ는 말단장치의 방향을 표시하는 방법에 따라 여러가지 형태로 정의될 수 있다. 그리고 q1, q2, ⋯, qnn개의 작동기(즉 모터)의 회전각 또는 선형변위를 나타낸다. 로봇의 기하학적 형상에 따라 함수 f(q) = [f1(q), f2(q), ⋯, f6(q)]T는 일반적으로 매우 비선형적으로 표현된다. Denavit과 Hartenberg[1]는 두 좌표계 사이의 좌표변환을 4×4 동차변환(homogeneous transformation) 행렬로 표현하였고, Paul 등[2]은 이를 직렬 연결 머니퓰레이터에 적용하여 체계적으로 비선형함수 f를 구하는 방법을 제시하였다[3-6].

로봇의 역기구학은 함수형태로

q=f-1x(2) 
로 표시될 수 있고, 역기구학 문제를 푼다는 것은 역함수 f-1를 구하는 것이다. 일반적으로 비선형함수의 역함수 f-1를 구하는 것은 복잡하지만, 여러 가지 방법, 즉, 대수적인 방법[7,8], 기하학적인 방법[9], 역변환에 의한 방법[2], 스크루(screw)이론에 의한 방법[10,11], 사원수(quaternion)를 이용하는 방법[12,13], 수치해석적인 방법[14-17] 등에 의해 구할 수 있다. 수직다관절 형상의 로봇에 대해 여러 연구자들에 의해 구체적인 역기구학해가 구해졌다[18-25].

로봇 미분기구학(differential kinematics)은 로봇 기구학과 달리, 로봇의 관절속도q과 말단장치속도 x 의 관계를 구하는 것이다. 로봇 미분기구학은 주어진 관절속도q으로부터 말단장치속도 x을 구하는 순미분기구학(forward differential kinematics)과 주어진 말단장치속도 x으로부터 관절속도q을 구하는 역미분기구학(inverse differential kinematics)으로 나누어 생각할 수 있다. 다행히 관절속도와 말단장치속도 사이의 관계는 비선형이 아닌 선형변환(linear transformation), 즉 행렬(matrix)로 표현이 가능하다[p. 106, 26].

로봇의 순미분기구학은 함수형태로

x=Jqq(3) 
으로 표현되고, 여기서 J(q)는 자코비언(Jacobian)으로서 로봇의 형상 q에 따라 달라지는 6×n 행렬이다. 말단장치의 속도벡터 x=[vx, vy, vz, ωx, ωy, ωz]T은 기준좌표계에 대한 말단장치의 선속도 vx=x., vy=y., vz=z.와 각속도 ωx, ωy, ωz로 구성되어 있다. 각속도 ωx, ωy, ωz는 각속도의 표시방법에 따라 다르게 정의될 수 있다. 관절속도는 q=q1,q2,...,qnT 으로 표기된다.

머니퓰레이터 자코비언 J 는 수학적으로 함수 fq에 대해 편미분한

Jq=fq(4) 

를 의미하며, 구하는 방법으로는 단위 관절속도에 대한 말단장치의 선속도와 각속도로부터 운동좌표계 개념을 이용하여 구하는 방법[27], 4×4 동차행렬의 증분으로부터 구하는 방법[28], Newton-Euler 운동방정식으로부터 수치적으로 구하는 방법[29], 미분기하학(differential geometry)과 행렬지수함수로부터 구하는 방법[30] 등이 있다. 또한 해석적 자코비안(analytical Jacobian)이 제안되어 있고[31], 특이점(singularity)에서 감쇠 최소제곱(damped least-squares) 역행렬을 이용하거나[32,33], 유사역행렬(pseudoinverse)을 이용하는 방법이 제안되어 있다[34].

로봇의 운동제어[35,36]에서, 속도분해제어(resolved motion rate control)[26,37]와 같은 연속경로 운동제어(continuous-path motion control)는 로봇 머니퓰레이터의 역미분기구학(inverse differential kinematics)의 해를 실시간으로 요구한다. 하지만 자코비언 J와 관련한 역미분기구학의 해 공간(solution space)에 대해서 명확히 기술된바 없다. 자코비언 J의 차원(dimension)과 랭크(rank)에 따라, 또 특이점에 따라, 역미분기구학의 해 공간이 달라진다.

본 논문에서는 말단장치속도가 머니퓰레이터 자코비언 J의 열공간(column space)에 속하는지, 속하지 않는지에 대해 크게 두가지로 나누고, 각각을 다시 네가지와 두가지로 분류하여, 역미분기구학의 해 공간(solution space)을 해석한다. 말단장치속도가 J의 열공간에 속하면 유일해(unique solution) 또는 많은 해 중 최소(minimum) 노옴(norm) 해를 구한다. 말단장치속도가 J의 열공간에 속하지 않으면, 오차의 최소제곱(least squares)에 의한 근사해(approximate solution)를 구한다. 특히 본 논문에서 부분공간(subspace)들 사이의 직교성(orthogonality)과 사상(mapping)을 명확히 보여주는 개선된 사상선도(mapping diagram)를 처음으로 소개한다.

본 논문의 구성은 다음과 같다. 2절에서 해 공간을 기술하는데 필요한 수학적 예비지식을 정리하고, 3절에서 말단장치속도가 자코비언 J의 열공간에 속하는 경우에 대해, 4절에서 말단장치속도가 자코비언 J의 열공간에 속하지 않는 경우에 대해, 해 공간을 해석하고 역미분기구학의 해를 구한다. 5절에서 MATLAB을 이용하여 역미분기구학의 해를 검증할 수 있는 풀이 프로그램과 그래픽사용자인터페이스(graphics user interface, GUI)를 개발하고, 이를 이용하여 해를 검증하며, 6절에서 결론을 기술한다.


2. 수학적 예비지식

벡터공간(vector space) V는 유클리드공간 Rn과 같이 두 벡터의 덧셈과, 벡터와 스칼라의 곱셈이 정의되는 공간이다. 벡터공간의 부분공간(subspace) S는 벡터공간의 부분집합(subset)으로서, 벡터공간과 같이 두 벡터의 덧셈과 벡터와 스칼라의 곱셈이 정의되는 공간이다. 벡터공간과 부분공간은 기하학적으로 원점을, 즉 영(0) 벡터를 포함하여야 함을 주목하라.

부분공간 S⊂Rn에 대해 직교여공간(orthogonal complement) S는 Fig. 1과 같이 S에 속하는 모든 벡터에 수직한 벡터(내적이 0인 벡터)들로 구성된 공간이다. 즉


Fig. 1 

A subspace S and an orthogonal complement S in R3.



S=yRnyTx=0,xS(5) 

그리고 부분공간 S⊂Rn에 대해, 차원(dimension)에 대한 다음 식이 성립한다[39].

dimS+dimS=n(6) 

차원 dim은 그 공간에서 서로 일차독립인 열벡터 또는 행벡터의 최대 개수이다.

임의의 벡터 x에 대한 y (= Ax) 의 집합을 치역(range) 또는 열공간(column space)이라고 하고, R(A)로 표시한다. 그리고 Ax = 0 인 x의 집합을 영공간(nullspace) N(A)라고 한다.

m×n행렬 A의 랭크(rank)는 일차독립인 열벡터(column vector)의 개수 또는 행벡터(row vector)의 개수이다. 행렬 A의 일차독립인 열벡터의 개수와 행벡터의 개수는 항상 같음에 주목하라. 랭크가 m 또는 n과 같을 때, 즉 rank(A)=min(m,n)일 때 완전랭크(full rank)라고 한다. 기하학적으로 두 벡터의 방향이 다르면 두 벡터는 일차독립(linearly independent) 이라고 하고, 방향이 같으면 일차종속(linearly dependent)이라고 한다.

임의의 m×n 행렬 A에 대해 다음 식이 성립한다.

dimRA+dimNA=n(7) 

그리고 m×n행렬 A에 대한 4개의 부분공간 R(A), N(A), R(A)T, N(A)T에 대해 다음 식이 성립한다[39].

NARAT,NA=RAT(8) 
NATRA,NAT=RA(9) 

여기서 ⊥기호는 두 집합의 벡터들이 서로 수직함을 의미한다.

예제 1. 랭크가 1인 다음 행렬 A의 4개의 부분공간은 모두 직선으로서 Fig. 2와 같은 관계를 가진다. Fig. 2에서 y = Ax 인 함수관계를 볼 수 있다.

A=1428

Fig. 2 

Four subspaces (lines) for the matrix A in Example 1.



n×n 정사각행렬(square matrix) A의 전치행렬(transpose)이 역행렬과 같을 때, 즉 AT = A-1일 때, A를 직교행렬(orthogonal matrix)이라고 한다. 직교행렬 A의 모든 열벡터(또는 행벡터)는 서로 직교한다.

모든 m×n행렬 A는 다음과 같은 특이값분해(singular value decomposition)를 할 수 있다[39,40].

A=UVT(10) 

여기서 UV는 각각 m×m, n×n 직교행렬이고, Σ는 m×n행렬로서 대각원소 σi를 제외한 모든 원소가 0인 행렬이다.

(11) 

σiATA의 고유값(eigenvalue)의 양의 제곱근으로 주어지는 특이값(singular value)이다. rank(A)=r이면, r개의 양수 특이값이 존재하고, n-r개의 0이 존재한다.

직교행렬 VATA의 고유벡터(eigenvector)로부터, 즉 ATAvi = σi2vi 로부터, r개의 서로 직교하는 벡터 v1, v2, ⋯, vr 을 구하고, N(A)에서 이들과 직교하는 다른 n-r개의 벡터를 구하여 생성한다. 그러면

그리고 직교행렬 U

ui=Aviσi,i=1,...,r(12) 

로부터 r 개의 서로 직교하는 벡터 u1, u2, ⋯, ur 을 구하고, 나머지 m-r개의 직교하는 벡터는 N(AT)에서 구하여 생성한다.

식 (13)으로부터 Avi = σiui 이고, 이를 행렬형태로 쓰면 AV=UΣ이므로 식 (10)을 얻을 수 있다.

가장 일반적인 형태의 역행렬은 Moore-Penrose 유사역행렬(Moore-Penrose pseudoinverse)이다. 임의의 m×n행렬 A에 대해 다음 네가지 조건을 만족하는 A+를 Moore-Penrose 유사역행렬로 정의한다[41].

AA+A=A,A+AA+=A+AA+T=AA+,A+AT=A+A(13) 

Moore-Penrose 유사역행렬A+를 구하는 한가지 방법은 특이값분해를 이용하는 것이다. 특이값분해된 A에 대해 Moore-Penrose 유사역행렬 A+는 다음과 같이 주어진다.

(14) 

식 (14)의 A+는 식 (13)의 네 조건을 만족하는 것을 쉽게 확인할 수 있다.

임의의 행렬 A에 대해, A+의 치역과 AT의 치역은 같고, A+의 영공간과 AT의 영공간은 같다.

m×n행렬 A가 완전랭크이면, A+는 우 유사역행렬(right pseudoinverse) A+r, 또는 좌 유사역행렬(left pseudoinverse) A+l가 된다.

Ar+=ATAAT-1,Al+=ATA-1AT(15) 

우 유사역행렬은 m<n일 때 정의되고, 좌 유사역행렬은 m>n일 때 정의된다. 좌우 이름은 AA+r = I, Al+A = I 로부터 온다. A+rA ≠ I, AAl+ ≠ I 임에 주목하라. n×n 정사각행렬 A가 완전랭크이면 A+는 역행렬(inverse) A-1가 된다.

노옴(norm)은 크기(magnitude)를 일반화한 개념으로서, 기호를 사용한다. 절대값은 노옴의 일종이다. 노옴 중에서 1노옴, 2노옴, ∞노옴을 많이 사용하지만, 그 중에서도 2노옴(2-norm)을 연산의 편리성 때문에 가장 많이 사용한다.

행렬 A의 2노옴은 행렬 A의 최대 특이값으로 계산된다. 즉, A2 = σmax(A) 이다[39].


3. 말단장치속도가 R(J)에 속할 경우

로봇 머니퓰레이터의 관절변수와 말단장치의 위치/방향의 관계는 일반적으로 매우 비선형적임에 비해, 관절속도와 말단장치속도는 선형적인 관계를 가지고, 자코비안 J의 사상(mapping)으로 표현된다.

n개의 작동기(예를 들어 n개의 모터)로 구동되는 Fig. 3과 같은 직렬 머니퓰레이터에서 말단장치속도와 관절속도는 식 (3)과 같은 관계를 가진다. 이 로봇 머니퓰레이터에서 기준좌표계에 대한 말단장치속도 x=[vx, vy, vz, ωx, ωy, ωz]T이 주어졌을 때, 관절속도 q 을 구하기 위해서, 먼저 자코비언 J(q)를 구한다. 여기서 n은 관절 작동기의 수(예를 들어, 관절모터의 수)를 의미한다.


Fig. 3 

Joint velocity q and end-effector velocity x



주어진 x이 자코비언 J의 치역에 속하면, 역미분기구학의 해 q이 존재한다. 잘 알려져 있듯이 rank(J)=rankx이면, 주어진 x이 자코비언 J의 치역에 속한다.

주어진 x이 자코비언 J의 치역에 속할 경우를 본 논문에서 다시 네 가지로 나누어 고려한다. 네 가지는 J가 완전랭크를 가지면서 작동기 수 nn=6, n>6, n<6인 세 경우와 J의 랭크가 부족한 특이점 경우이다.

3.1. n=6이고 rank(J)=6인 경우

이 경우는 예를 들어 6개의 관절모터로 구동되는 로봇 머니퓰레이터에서 특이점을 만나지 않는 경우이다. 이 경우에 J는 6×6행렬로서 역행렬이 존재한다. 따라서 유일해(unique solution)가 존재하고 다음과 같이 표현된다.

q=Jq−1x(16) 

이 경우에 말단장치를 임의의 방향과 임의의 속도로 구동이 가능하다. 물론 작동기의 최대속도 이내에서 구동이 가능하다. 이 경우에 N(J)는 한 점, 즉 원점이다. 그리고 식 (8)로부터 qR(JT)이고, 이 경우 R(JT) = R6 이다.

이 3.1절의 경우를 사상선도로 표시하면 Fig. 4와 같다.


Fig. 4 

Mapping diagram for the case with n=6 and rank(J)=6



3.2. n>6이고 rank(J)=6인 경우(여유자유도)

이 경우는 예를 들어 7개의 모터를 사용하는 여유자유도(redundant DOF) 로봇에서 특이점을 만나지 않는 경 우에 해당한다. 이 경우에 Jn(n>6)행렬로서 완전랭크를 가진다. 그러면 JJT는 6×6행렬로서 역행렬 (JJT)-1이 존재한다. 따라서 이 경우에 식 (3)의 양변 앞쪽에 JT를 곱하여 역미분기구학 해를 구하면 다음과 같이 주어진다.

q=Jr+x+IJr+Jb,bRn(17) 

여기서 J+r = JT(JJT)-1 로서 우 유사역행렬이다. 식 (17)에서 b는 임의의 벡터이기 때문에, 이 여유자유도 로봇의 경우에 역미분기구학의 해는 무한개 존재한다. 무한개의 해 중에서 관절속도가 최소가 되는 최소노옴해(minimum norm solution)는

q=Jr+x(18) 

이다. J가 완전랭크임을 상기하면서 식 (17) 양변의 앞쪽에 J를 곱하면, (17)의 q이 해가 됨을 쉽게 확인할 수 있다. 그리고 (I - J+rJ)bJ의 영공간 N(J)에 속함을 주목하라.

이 3.2절의 경우를 사상선도로 표시하면 Fig. 5와 같다. Fig. 5의 정의역(domain)에서 +자형은 R(JT)N(J)가 직교여공간의 관계에 있음을 나타낸다. 그리고 q벡터는 R(JT)의 성분 q.RN(J)의 성분 q.N으로 분해될 수 있고, q.x.으로 사상됨을 보여주고 있다. q.Rx.으로 사상된다. x.q.R으로 사상된다.


Fig. 5 

5 Mapping diagram for the redundant case with n>6 and rank(J)=6



예제 2. 이해를 돕기 위하여 3개의 모터로 평면운동을 생성하는 여유자유도 로봇을 고려해 본다. 이 경우에 완전랭크를 가진 자코비언과 말단장치속도가 다음과 같이 주어져 있다고 하자.

J=121300,x=45RJ

그러면 우 유사역행렬 J+r

Jr+=JTJJT1=320110

이고, 따라서 최소노옴해와 다른 한 해는 다음과 같이 주어질 수 있다.

q.=Jr+x.=730,q.=732=730+000

여기서

730RJT,002NJ

다시 말해, [7 −3 0]T는 Fig. 5q.R 에 해당하고, [0 0 2]T는 Fig. 5q.N에 해당한다. 참고로, 이 행렬 J에 대해 dimR(J) + dimN(J) = 2 + 1 = 3 이므로 식 (7)이 성립한다.

3.3. n<6이고 J가 완전랭크인 경우

이 경우는 말단장치의 운동자유도보다 관절모터의 수가 작으면서 특이형상에 놓여있지 않은 경우이다. 예를 들어 관절모터 4개로 구동되는 Fig. 3과 같은 경우로서, J는 6×4행렬이고 랭크가 4인 경우이다. 이 경우 에 말단장치속도를 생성할 수 없는 방향이 존재한다.

식 (3)의 양변 앞쪽에 JT를 곱하면, 이 경우에 JTJ는 역행렬을 가지므로 역미분기구학의 해는 유일해로서 다음과 같이 주어진다.

q=JTJ−1JTx=Jl+x(19) 

여기서 J+l = (JTJ)-1JT 는 좌 유사역행렬이다.

이 3.3절의 경우를 사상선도로 표시하면 Fig. 6과 같다. Fig. 6 에서, 속도 x.q. 으로 사상됨을 보여주고 있다.


Fig. 6 

Mapping diagram for the case with n<6 and rank(J)=n (full rank)



예제 3. 두개의 모터로 삼차원 공간에서 구동하는 로봇을 고려해 본다. 이 경우에 3×2자코비언과 말단장치속도가 다음과 같이 주어져 있다고 하자.

J=110230,x=450RJ

그러면 좌 유사역행렬 J+l

Jl+=JTJ1JT=320110

이고, 따라서 유일해는 다음과 같이 주어진다.

q=Jl+x=21
3.4. J의 랭크가 부족한 경우(특이형상)

이 경우는 로봇 머니퓰레이터가 특이형상(singular configuration)에 놓인 경우이다. 이 경우는 6×n행렬 J의 랭크가 부족하여, 랭크가 min(6, n) 보다 작은 경우이다. 즉,

rankJ=r,r<min6,n(20) 

이 경우에 nn=6, n>6, 또는 n<6일 수 있다. 모든 m×n행렬은 특이값분해가 가능하므로, 6×n행렬 J를 다음과 같이 특이값분해 할 수 있다.

J=UVT(21) 

여기서 UV는 각각 6×6, n×n 직교행렬이고, Σ는 6×n행렬로서 식 (11)과 같이 대각원소 σi를 제외한 모든 원소가 0인 행렬이다. σiJ행렬의 특이값으로서, σi=eigJTJ,i=1,...r 로 계산된다. UV는 식 (12)로부터 구할 수 있다.

그러면 이 경우의 역미분기구학 해는 다음과 같이 주어진다.

q=J+x+I-J+Jb,bRn(22) 

여기서 J+는 Moore-Penrose 유사역행렬로서 다음과 같이 주어진다.

J+=V+UT(23) 

여기서 Σ+는 식 (14)의 두번째 식과 같다.

식 (22)에서 b는 임의의 벡터이기 때문에, 이 경우에 역미분기구학 해는 무한개 존재한다. 무한개의 해 중에서 관절속도가 최소가 되는 최소노옴해는 q=J+x이다.

식 (22)를 식 (3)에 대입했을 때, 식 (22)로부터

J(I-J+J)b=0 이 되고, 또 xR(J)이면

x=JJ+x(24) 

이므로 식 (22)의 q이 해가 되는 것을 확인할 수 있다. 식 (24)는 다음과 같이 증명될 수 있다. xR(J)이면 x=Jqq이 존재하고, 또 Moore-Penrose 유사역행렬의 성질로부터 JJ+J = J 이므로 다음 식이 성립한다.

x=Jq=JJ+Jq=JJ+x

식 (22)의 해에서 (I-J+J)bN(J)임을 주목하라.

이 3.4절의 경우를 사상선도로 표시하면 Fig. 7과 같다. Fig. 7에서 qqR 은 모두 x으로 사상되고, xqR으로 사상됨을 보여주고 있다.


Fig. 7 

Mapping diagram for a rank-deficient case (singularity) with rank(J) = r < min(6,n)



예제 4. 두개의 모터로 삼차원 공간에서 구동하는 예제3의 로봇을 고려해 본다. 이 경우에 3×2자코비언과 말단장치속도가 다음과 같이 주어져 있다고 하자.

J=121200,x=440RJ

이 자코비언 J의 특이값분해는 다음과 같다.

J=12120121200011000000000-15-252515T

그러면 Moore-Penrose 유사역행렬 J+는 다음과 같이 계산된다.

J+=0.10.20.10.200

따라서 최소노옴해와 다른 한 해는 다음과 같이 주어질 수 있다.

q=J+x=0.81.6,q=1.21.4=0.81.6+0.4−0.2

여기서

0.81.6RJT,0.40.2NJ.

벡터 [0.8 1.6]T는 Fig. 7qR에 해당하고, [0.4 −0.2]T는 Fig. 7qN 에 해당한다. 그리고 최소노옴해는 항상 J의 행공간에 속함을 주목하라.


4. 말단장치속도가 R(J)에 안속할 경우

주어진 말단장치속도 x이 자코비언 J의 치역R(J)에 속하지 않으면, 역미분기구학의 해 q이 존재하지 않는다. 이 경우에 순미분기구학 문제를 다음과 같이 표기할 수 있다.

Jq.x.(25) 

여기서 ≈기호는 양변의 값이 같지 않고 유사하다는 것을 의미한다.

주어진 x에 대해 식 (25)를 만족하는 근사해(approximate solution) q이 필요하다면, 오차 xJq을 2노옴 견지에서 최소화하는 다음과 같은 최소제곱문제(least squares problem)로 생각하여 근사해를 구할 수 있다.

minx-Jq2(26) 

Fig. 8에서 보듯이, xJ의 치역인 R(J) 밖에 있을 때, 최소제곱문제 (26)은 오차벡터 x-Jq을 최소화하는 직교사영(orthogonal projection) p를 구하는 것이다. 왜냐하면 벡터의 2노옴은 거리를 나타내고, x에서 거리가 최소인 점은 직교사영 p이기 때문이다. 따라서, xJq이기 때문에 x=Jq 대신에

p=Jq(27) 

을 만족하는 q을 구하면, 이 q이 식 (25)의 근사해가 된다.

오차벡터 xJqR(J)와 직교하기 때문에, 벡터 x-JqJ의 모든 열과 직교한다. 따라서 다음 식이 성립한다.

JTx-Jq=0(28) 

x-Jq0이지만 JTx-Jq=0임에 주목하라. 식 (28)을 다시 쓰면 다음과 같다.

JTJq=JTx(29) 

식 (29)를 식 (25)의 정규방정식(normal equation)이라고 한다. 식 (29)를 만족하는 q이 식 (25)의 근사해 q이 된다.

주어진 xJ의 치역에 속하지 않는 경우를 본 논문에서 두 가지로 나누어 고려한다. 한 경우는 작동기의 수가 부족하면서(n<6) J가 완전랭크를 가지는 경우이고, 다른 한 경우는 특이형상에 놓여 랭크부족인 (rank deficient) 경우이다. J가 완전랭크를 가지면서 n=6 또는 n>6인 경우에 R(J) = R6이므로 xJ의 치역 밖에 존재할 수가 없음을 유의하라.

4.1 n<6이고 J가 완전랭크인 경우

이 경우는 관절모터의 수가 운동자유도 수보다 작으면서 특이형상에 놓여있지 않지만, Fig. 8에서와 같이 xR(J) 밖에 존재하는 경우이다. 이 경우에, 주어진 x에 대해 식 (25)를 만족하는 근사해 q은 식 (29)를 풀어서 구할 수 있다. 이 경우에 J가 완전랭크이므로 역미분기구학의 근사해 q은 최소제곱에 의한 정규방정식 (29)로부터, 다음과 같이 좌 유사역행열을 이용하여 구해진다.

q=JTJ-1JTx=Jl+x(30) 

그리고 식 (30)을 p=Jq에 대입하면 P=Px인 직교사영행렬(orthogonal projection matrix) P를 다음과 같이 구할 수 있다.


Fig. 8 

Orthogonal projection p of xonto R(J)



P=JJTJ1JT(31) 

Fig. 9는 이 4.1절 경우의 사상선도를 보여주고 있다. 이 사상선도는 Fig. 6의 사상선도와 같으나, 단지 x의 위치가 R(J)내에 있지 않고 밖에 있는 것이 다르다.


Fig. 9 

Mapping diagram for the case with n<6, rank(J)=n (full rank) and xR(J)



Fig. 9에서, 속도 x은 정의역 R(J)의 성분벡터 xR과 영공간 N(JT)의 성분벡터 xN으로 분해가 가능하고, xxR은 모두 q으로 사상됨을 보여주고 있다.

예제 5. 두개의 모터로 삼차원 공간에서 구동하는 예제3의 로봇을 고려해 본다. 3×2자코비언은 예제 3과 같으나 말단장치속도가 다음과 같이 R(J) 밖에 주어져 있다고 하자.

J=110230,x=456RJ

그러면 Jqx은 같을 수가 없다. 이 경우에 오차의최소제곱에 의한 근사해 q을 다음과 같이 구할 수 있다.

JTJq=25513qRJTJTx=923RJT

따라서 근사해 q은 식 (30)으로부터 다음과 같이 얻어진다.

q=Jl+x=21RJT

이 근사해의 오차는 x.Jq.2=6이다. 그리고 직교사영행렬 P와 직교사영 p는 식 (31)로부터 다음과 같이 주어진다.

P=100010000,p=450

주어진 말단장치속도 xxRxN으로 분해하면 다음과 같다.

x.R=450RJ,x.N=006NJT
4.2. J의 랭크가 부족한 경우(특이점)

이 경우는 로봇 머니퓰레이터가 특이형상에 놓여 있으면서 xR(J) 밖에 존재하는 경우이다. 이 경우는 rank(J)=r이고 r<min(6,n) 이다. nn=6, n>6, 또는 n<6일 수 있다.

이 경우에, 주어진 x에 대해 Jq과 같아지는 q은 존재하지 않지만, 오차의 최소제곱에 의한 근사해 q을 식 (29)의 정규방정식 JTJq=JTx으로부터 구할 수 있다. 역행렬 (JTJ)-1이 존재하지 않기 때문에 4.1절의 좌 유사역행렬을 포함한 해를 사용할 수 없다.

이 경우에 6×n행렬 J는 특이값분해에 의해 J = UΣVT로 표현될 수 있고, 식 (25)의 근사해는 다음과 같이 주어진다.

q=J+x+I-J+Jb,bRn(32) 

식 (32)는 3.4절의 해와 같으나, 식 (32)에서 xR(J) 이므로 q은 오차의 최소제곱에 의한 근사해이다. 식 (32)가 식 (29)의 해가 되는 것은, 식 (32)를 식 (29)에 대입해 보면 알 수 있다. 이 경우에 xR(J) 이므로 3.4절의 식 (24)와 달리 JJ+xx임을 유의하라.

식 (32)에서 b는 임의의 벡터이기 때문에, 역미분기구학의 근사해는 무한개 존재한다. 무한개의 해 중에서 관절속도가 최소가 되는 최소노옴 근사해는 q=J+x 이다.

그리고 식 (32)를 p=Jq에 대입하면 p=Px인 직교사영행렬(orthogonal projection matrix) P를 다음과 같이 구할 수 있다.

P=JJ+(33) 

이 4.2절의 경우를 사상선도로 표시하면 Fig. 10과 같다. Fig. 7의 사상선도와 다른 점은 xR(J)의 바깥에 있다는 것이다. xR(J)의 바깥에 있기 때문에, Fig. 10에서 qxR(J)상의 사영 xR=p 에 사상된다. 최소노옴해는 qR이고 이는 J의 행공간 R(JT)에 속한다. 그리고 최적의 근사해는 q=qR=J+x=J+xR 을 만족한다.


Fig. 10 

Mapping diagram for a rank-deficient case (singularity) with rank(J) = r < min(6,n) and x.RJ



예제 6. 두개의 모터로 삼차원 공간에서 구동하는 예제4의 로봇을 고려해 본다. 3×2자코비언은 예제 4와 같으나 말단장치속도가 다음과 같이 R(J) 밖에 주어져 있다고 하자.

J=110220,x=456RJ

그러면 Jqx은 같을 수가 없다. 이 경우에 오차의최소제곱에 의한 근사해 q을 다음과 같이 구할 수 있다.

JTJq=2448qRJTJTx=918RJT

주어진 J의 Moore-Penrose 유사역행렬은

J+=0.10.100.20.20

로 계산되고, 따라서 근사해 q은 식 (32)로부터 다음과 같이 얻어진다.

q=qR+qN=0.91.8+0.4-0.2=1.31.6

최소노옴해는 q.R=0.91.8T이다. 근사해 q의 오차는 q.N의 여부에 관계없이 x.-Jq.2= 6.04 이다.

그리고 직교사영행렬 P와 직교사영 p는 식 (33)으로부터 다음과 같이 주어진다.

P=0.50.500.50.50000,p=4.54.50RJ

5. 검 증

이론적으로 개발된 역미분기구학의 해를 검증하기 위하여, Fig. 11과 같은 Yaskawa Motoman-UP350 모델에 대해 MATLAB으로 순미분기구학 및 역미분기구학을 푸는 프로그램과 GUI (graphics user interface)를 개발하였다. Yaskawa Motoman-UP350은 평행사변형 링키지를 가진 수직다관절로봇(vertically articulated robot)으로서, 이 로봇의 말단장치는 6자유도 운동을 한다. 몸통회전운동인 Fig. 11의 S 운동은 -150° < θ1 < 150° , 아래팔(lower arm)의 L 운동은 -55° < θ2 < 61°, 위팔(upper arm)의 U 운동은 -30° < θ3 < 113° , 손목(wrist)의 롤(roll)운동인 R 운동은 -360° < θ4 < 360° , 손목의 피치/요(pitch/yaw)운동인 B운동은 -125° < θ5 < 125° , 손목의 비틂(twist)운동인 T 운동은 -360° < θ6 < 360° 의 범위를 가진다. 각 관절의 최대회전속도는 ω1 에 대해 95°/s, ω2 에 대해 95°/s, ω3 에 대해 95°/s, ω4 에 대해 100°/s, ω5 에 대해 100°/s, ω6 에 대해 160°/s 를 가진다. 이 로봇의 가반하중(payload)은 350 kg, 반복정밀도(repeatability)는 ±0.5 mm이다. 이 로봇은 다섯번째 관절각도 θ5 가 0일 때 특이점을 가진다.


Fig. 11 

Workspace and link dimensions of Yaskawa Motorman-UP350 (Courtesy of Yaskawa Electric).



개발된 순미분기구학 및 역미분기구학 풀이 GUI 화면 모습은 Fig. 12와 같다. GUI 화면 중앙에 로봇의 홈형상(home configuration)과 현재형상을 막대로 표시하고, 왼편에는 관절속도를, 오른편에는 말단장치속도를 표시하도록 하였다. GUI 화면 하단에는 각 관절각도를 넣어 로봇형상을 지정하도록 하였다.


Fig. 12 

GUI screen of the developed differential kinematics solver for a 6 DOF articulated robot.



GUI 화면 하단에 관절각도를 입력하고 왼편에 관절속도를 입력한 다음 아래쪽에 있는 ‘Calculate End-Effector Velocity’ 메뉴를 누르면, 순미분기구학이 계산되어 오른편 박스에 말단장치의 선속도와 각속도가 나타난다. 또한 아래쪽에 관절각도가 입력된 상태에서, 오른편에 말단장치의 선속도와 각속도를 입력한 다음 아래쪽의 ‘Calculate Motor Velocities’ 메뉴를 누르면, 역미분기구학이 계산되어 왼편 박스에 관절속도가 나타나게 된다.

Table 1은 주어진 관절각도에서 초기 관절속도가 ω1 = 10°/s, ω2 = 20°/s, ω3 = 30°/s, ω4 = 40°/s, ω5 = 50°/s, ω6 = 60°/s 일 때 순미분기구학을 풀어서 말단장치의 선속도와 각속도를 구하고, 다시 이 선속도와 각속도를 입력으로 하여 관절속도를 구한 결과를 정리한 표이다. 표에서 보듯이 역미분기구학을 계산한 결과는 초기 관절속도와 수치적 반올림오차(round-off error) 내에서 일치함을 볼 수 있다. 이는 순미분기구학 및 역미분기구학의 풀이가 옳다는 것을 말해준다.

[Table 1] 

Computation results of forward differential kinematics and inverse differential kinematics for Yaskawa Motoman-UP350 when joint variables are θ1 - 30°, θ2 - 20°, θ1 - 30°, θ4 - 0°, θ5 - -60°, and θ6 - 10°.


Original joint velocities (deg/s) Forward differential kinematics results (m/s, deg/s) Inverse differential kinematics results (deg/s)


6. 결 론

본 논문에서는 직렬 로봇 머니퓰레이터의 역미분기구학에 대한 해 공간을 해석하였다. 먼저 로봇의 말단장치속도 x이 머니퓰레이터 자코비언 J의 열공간에 속하는지, 속하지 않는지에 대해 크게 두 가지로 분류하고, 각각을 다시 J의 랭크와 작동기 수에 따라 네 가지와 두 가지로 분류하였다. 각 경우에 대해 관절속도 q을 구하는 역미분기구학의 치역과 영공간을 해석하고, 구체적인 해의 형태를 구하였다.

말단장치속도가 J의 열공간에 속하면 유일해 또는 많은 해 중 최소 노옴 해를 구하고, 말단장치속도가 J의 열공간에 속하지 않으면, 오차의 최소제곱에 의한 근사해를 구하였다. J가 완전랭크를 가지면, 관절작동기의 수에 따라 역행렬(n = 6인 경우), 우 유사역행렬(n > 6인 여유자유도 경우) 및 좌 유사역행렬(n < 6인 경우)을 이용하여 역미분기구학의 해를 구하였다. 특이형상에서 J의 랭크가 부족해지면, Moore-Penrose 유사역행렬을 이용하여 해 또는 근사해를 구할 수 있음을 보였다.

특히 행렬 J의 네가지 부분공간들 사이의 직교성과 사상을 명확히 보여주는 개선된 사상선도를 본 논문에서 처음으로 소개하였다.

마지막으로, MATLAB을 이용하여 역미분기구학의 해를 검증할 수 있는 풀이 프로그램과 그래픽사용자인터페이스를 개발하였다.


후 기

본 논문의 동기를 제공해주고 프로그램을 도와준 강병현군에게 감사를 드린다.


REFERENCES
1. Denavit, J, Hartenberg, R S, “A kinematic notation for lower-pair mechanisms based on matrices”, ASME Journal of Applied Mechanics, (1955), 22, p215-221.
2. Paul, RP, Shimano, BE, Mayer, G, “Kinematic control equations for simple manipulators”, IEEE Transactions on Systems Man and Cybernetics, (1981), 11(6), p449-455.
3. Spong, MW, Hutchinson, S, Vidyasagar, M, Robot Modeling and Control, (2006), John Wiley & Sons.
4. Asada, H, Slotine, J-J E, Robot Analysis and Control, (1986), John Wiley & Sons.
5. Siciliano, B, Sciavicco, L, Villani, L, Oriolo, G, Robotics: Modelling, Planning and Control, Springer, (2010).
6. Craig, JJ, Introduction to Robotics: Mechanics and Control, (2005), 3rd ed, Pearson Prentice Hall.
7. Pieper, DL, “The kinematics of manipulators under computer control”, Ph.D. Thesis Stanford University, (1968).
8. Manocha, D, Canny, JF, “Efficient inverse kinematics for general 6R manipulators”, IEEE Transactions on Robotics and Automation, (1994), 10(5), p648-657.
9. Lee, CSG, Ziegler, M, “A geometric approach in solving the inverse kinematics of PUMA robots”, IEEE Transactions on Aerospace and Electronic Systems, (1984), AES-20(6), p695-706.
10. Kohli, D, Soni, AH, “Kinematic analysis of spatial mechanisms via successive screw displacements”, ASME Journal of Engineering for Industry, (1975), 97(2), p739-747.
11. Hunt, KH, Kinematic Geometry of Mechanisms, Oxford Science Publications, (1978).
12. Yang, AT, Freudenstein, R, “Application of dual number quaternion algebra to the analysis of spatial mechanisms”, ASME Journal of Applied Mechanics, (1964), 31(2), p300-308.
13. Angeles, J, Rotational Kinematics, Springer-Verlag, (1988).
14. Uicker, JJ, Denavit, and R.S. Hartenberg, “An iterative method for the displacement analysis of spatial mechanisms,”, ASME Journal of Applied Mechanics, (1964), 31(2), p309-314.
15. Tolani, D, Goswami, A, Badler, N I, “Real-time inverse kinematics techniques for anthropomorphic limbs”, Graphical Models, (2000), 62, p353-388.
16. Lee, J, Kim, J, Lee, J, Kim, D-H, Lim, H-K, Ryu, S-H, “Inverse kinematics solution and optimal motion planning for industrial robots with redundancy”, Journal of Korea Robotics Society, (2012), 7(1), p35-44.
17. Benati, M, Morasso, P, Tagliasc, V, “The inverse kinematic problem for anthropomorphic manipulator arms”, ASME Journal of Dynamic Systems Measurement and Control, (1982), 104(1), p110-113.
18. Elgazzar, S, “Efficient kinematic transformation for the PUMA 560 robot”, IEEE Journal of Robotics and Automation, (1985), 1, p142-151.
19. Paul, RP, Zhang, H, “Computationally efficient kinematics for manipulators with spherical wrists based on the homogenous transformation representation”, The International Journal of Robotics Research, (1986), 5, p32-44.
20. Cote, J, Gosselin, C, Laurendeau, D, “Generalized inverse kinematic functions for the PUMA manipulators”, IEEE Transactions on Robotics and Automation, (1995), 11(3), p404-408.
21. Goldenberg, AA, Benhabib, B, Fenton, RG, “A complete generalized solution to the inverse kinematics of robots”, IEEE Journal of Robotics and Automation, (1985), RA‐1(1), p14-20.
22. Hollerbach, JM, Sahar, G, “Wrist-partitioned, inverse kinematic accelerations and manipulator dynamics”, The International Journal of Robotics Research, (1983), 2(4), p61-76.
23. Kim, Y-L, Song, J-B, “Analytical inverse kinematics algorithm for a 7 DOF anthropomorphic robot arm using intuitive elbow direction”, Journal of Korea Robotics Society, (2011), 6(1), p27-33.
24. Kang, C-G, “Online trajectory planning for a PUMA robot”, International Journal of Precision Engineering and Manufacturing, (2007), 8, p16-21.
25. Ho, T, Kang, C-G, Lee, S, “Efficient closed-form solution of inverse kinematics for a specific six-DOF arm”, International Journal of Control Automation and Systems, (2012), 10(3), p567-573.
26. Nakamura, Y, Advanced Robotics: Redundancy and Optimization, Addison-Wesley Publishing, (1991).
27. Whitney, DE, “The mathematics of coordinated control of prosthetic arms and manipulators”, ASME Journal of Dynamic Systems Measurement and Control, (1972), 94(4), p303-309.
28. Paul, RP, obot Manipulators: Mathematics, Programming, and Control, MIT Press, (1981).
29. Orin, DE, Schrader, WW, “Efficient computation of the Jacobian for robot manipulators”, The International Journal of Robotics Research, (1984), 3(4), p66-75.
30. Murray, RM, Li, Z, Sastry, SS, A Mathematical Introduction to Robotic Manipulation, CRC Press, (1994).
31. Khatib, O, “A unified approach for motion and force control of robot manipulators: The operational space formulation”, IEEE Journal of Robotics and Automation, (1987), 3(1), p43-53.
32. Wampler, CW, “Manipulator inverse kinematic solutions based on vector formulations and damped least-squares methods”, IEEE Transactions on Systems Man and Cybernetics, (1986), 16(1), p93-101.
33. Nakamura, Y, Hanafusa, H, “Inverse kinematic solutions with singularity robustness for robot manipulator control”, ASME Journal of Dynamic Systems Measurement and Control, (1986), 108, p163-171.
34. Klein, CA, Huang, C-H, “Review of pseudoinverse control for use with kinematically redundant manipulators”, IEEE Transactions on Systems Man and Cybernetics, (1983), 13(2), p245-250.
35. Schilling, RJ, Fundamentals of Robotics: Analysis and Control, Prentice Hall, (1990).
36. Koivo, A, Fundamentals for Control of Robotic Manipulators, (1989), John Wiley & Sons.
37. Whitney, DE, “Resolved motion rate control of manipulators and human prostheses”, IEEE Transactions on Man-Machine Systems, (1969), 10(2), p47-53.
38. Fu, KS, Gonzalez, RC, Lee, CSG, Robotics: Control, Sensing, Vision, and Intelligence, McGraw-Hill, (1987).
39. Strang, G, Linear Algebra and Its Applications, (2006), 4th ed, Thomson Brooks/Cole.
40. Golub, GH, Van Loan, CF, Matrix Computations, (1996), 3rd ed, The Johns Hopkins University Press/Cole.
41. Campbell, SL, Meyer, CD Jr, Generalized Inverses of Linear Transformations, Pitman, (1979).

강 철 구

1981 서울대학교 기계설계학과(공학사)

1985 서울대학교 기계설계학과(공학석사)

1989 UC Berkeley 기계공학과 (Ph.D.)

1990 ~ 현재 건국대학교 기계공학부 교수

2015 한국로봇학회 회장

관심분야 : Intelligent motion and force control, Force sensors, Intelligent robots, and Train brake systems