역미분기구학의 해 공간
†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 pseudoinverse1. 서 론
로봇 머니퓰레이터의 운동제어 및 힘제어를 효과적으로 수행하기 위하여 로봇 기구학(kinematics)의 해가 필요하다. 로봇 기구학은 관절변수(joint variable) q와 말단장치(end effector)의 위치(position) 및 방향(orientation) x의 관계를 구하는 것이다. 로봇 기구학은 다시, 주어진 관절변수 q로부터 말단장치의 위치 및 방향 x를 구하는 순기구학(forward kinematics)과, 주어진 말단장치의 위치 및 방향 x로부터 관절변수 q를 구하는 역기구학(inverse kinematics)으로 나누어 생각할 수 있다.
본 논문에서 벡터는 굵은 로마체 소문자로 표기하고, 행렬은 대문자로 표기한다. 본 논문에서 벡터는 모두 열벡터로 간주한다.
로봇 머니퓰레이터의 순기구학 문제는 함수형태로
(1) |
로봇의 역기구학은 함수형태로
(2) |
로봇 미분기구학(differential kinematics)은 로봇 기구학과 달리, 로봇의 관절속도
로봇의 순미분기구학은 함수형태로
(3) |
머니퓰레이터 자코비언 J 는 수학적으로 함수 f를 q에 대해 편미분한
(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인 벡터)들로 구성된 공간이다. 즉
(5) |
그리고 부분공간 S⊂Rn에 대해, 차원(dimension)에 대한 다음 식이 성립한다[39].
(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에 대해 다음 식이 성립한다.
(7) |
그리고 m×n행렬 A에 대한 4개의 부분공간 R(A), N(A), R(A)T, N(A)T에 대해 다음 식이 성립한다[39].
(8) |
(9) |
여기서 ⊥기호는 두 집합의 벡터들이 서로 수직함을 의미한다.
예제 1. 랭크가 1인 다음 행렬 A의 4개의 부분공간은 모두 직선으로서 Fig. 2와 같은 관계를 가진다. Fig. 2에서 y = Ax 인 함수관계를 볼 수 있다.
n×n 정사각행렬(square matrix) A의 전치행렬(transpose)이 역행렬과 같을 때, 즉 AT = A-1일 때, A를 직교행렬(orthogonal matrix)이라고 한다. 직교행렬 A의 모든 열벡터(또는 행벡터)는 서로 직교한다.
모든 m×n행렬 A는 다음과 같은 특이값분해(singular value decomposition)를 할 수 있다[39,40].
(10) |
여기서 U와 V는 각각 m×m, n×n 직교행렬이고, Σ는 m×n행렬로서 대각원소 σi를 제외한 모든 원소가 0인 행렬이다.
(11) |
σi는 ATA의 고유값(eigenvalue)의 양의 제곱근으로 주어지는 특이값(singular value)이다. rank(A)=r이면, r개의 양수 특이값이 존재하고, n-r개의 0이 존재한다.
직교행렬 V는 ATA의 고유벡터(eigenvector)로부터, 즉 ATAvi = σi2vi 로부터, r개의 서로 직교하는 벡터 v1, v2, ⋯, vr 을 구하고, N(A)에서 이들과 직교하는 다른 n-r개의 벡터를 구하여 생성한다. 그러면
그리고 직교행렬 U는
(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].
(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가 된다.
(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의 최대 특이값으로 계산된다. 즉,
3. 말단장치속도가 R(J)에 속할 경우
로봇 머니퓰레이터의 관절변수와 말단장치의 위치/방향의 관계는 일반적으로 매우 비선형적임에 비해, 관절속도와 말단장치속도는 선형적인 관계를 가지고, 자코비안 J의 사상(mapping)으로 표현된다.
n개의 작동기(예를 들어 n개의 모터)로 구동되는 Fig. 3과 같은 직렬 머니퓰레이터에서 말단장치속도와 관절속도는 식 (3)과 같은 관계를 가진다. 이 로봇 머니퓰레이터에서 기준좌표계에 대한 말단장치속도
주어진
주어진
3.1. n=6이고 rank(J)=6인 경우
이 경우는 예를 들어 6개의 관절모터로 구동되는 로봇 머니퓰레이터에서 특이점을 만나지 않는 경우이다. 이 경우에 J는 6×6행렬로서 역행렬이 존재한다. 따라서 유일해(unique solution)가 존재하고 다음과 같이 표현된다.
(16) |
이 경우에 말단장치를 임의의 방향과 임의의 속도로 구동이 가능하다. 물론 작동기의 최대속도 이내에서 구동이 가능하다. 이 경우에 N(J)는 한 점, 즉 원점이다. 그리고 식 (8)로부터
이 3.1절의 경우를 사상선도로 표시하면 Fig. 4와 같다.
3.2. n>6이고 rank(J)=6인 경우(여유자유도)
이 경우는 예를 들어 7개의 모터를 사용하는 여유자유도(redundant DOF) 로봇에서 특이점을 만나지 않는 경 우에 해당한다. 이 경우에 J는 6×n(n>6)행렬로서 완전랭크를 가진다. 그러면 JJT는 6×6행렬로서 역행렬 (JJT)-1이 존재한다. 따라서 이 경우에 식 (3)의 양변 앞쪽에 JT를 곱하여 역미분기구학 해를 구하면 다음과 같이 주어진다.
(17) |
여기서 J+r = JT(JJT)-1 로서 우 유사역행렬이다. 식 (17)에서 b는 임의의 벡터이기 때문에, 이 여유자유도 로봇의 경우에 역미분기구학의 해는 무한개 존재한다. 무한개의 해 중에서 관절속도가 최소가 되는 최소노옴해(minimum norm solution)는
(18) |
이다. J가 완전랭크임을 상기하면서 식 (17) 양변의 앞쪽에 J를 곱하면, (17)의
이 3.2절의 경우를 사상선도로 표시하면 Fig. 5와 같다. Fig. 5의 정의역(domain)에서 +자형은 R(JT)와 N(J)가 직교여공간의 관계에 있음을 나타낸다. 그리고
예제 2. 이해를 돕기 위하여 3개의 모터로 평면운동을 생성하는 여유자유도 로봇을 고려해 본다. 이 경우에 완전랭크를 가진 자코비언과 말단장치속도가 다음과 같이 주어져 있다고 하자.
그러면 우 유사역행렬 J+r는
이고, 따라서 최소노옴해와 다른 한 해는 다음과 같이 주어질 수 있다.
여기서
다시 말해, [7 −3 0]T는 Fig. 5의
3.3. n<6이고 J가 완전랭크인 경우
이 경우는 말단장치의 운동자유도보다 관절모터의 수가 작으면서 특이형상에 놓여있지 않은 경우이다. 예를 들어 관절모터 4개로 구동되는 Fig. 3과 같은 경우로서, J는 6×4행렬이고 랭크가 4인 경우이다. 이 경우 에 말단장치속도를 생성할 수 없는 방향이 존재한다.
식 (3)의 양변 앞쪽에 JT를 곱하면, 이 경우에 JTJ는 역행렬을 가지므로 역미분기구학의 해는 유일해로서 다음과 같이 주어진다.
(19) |
여기서 J+l = (JTJ)-1JT 는 좌 유사역행렬이다.
이 3.3절의 경우를 사상선도로 표시하면 Fig. 6과 같다. Fig. 6 에서, 속도
예제 3. 두개의 모터로 삼차원 공간에서 구동하는 로봇을 고려해 본다. 이 경우에 3×2자코비언과 말단장치속도가 다음과 같이 주어져 있다고 하자.
그러면 좌 유사역행렬 J+l는
이고, 따라서 유일해는 다음과 같이 주어진다.
3.4. J의 랭크가 부족한 경우(특이형상)
이 경우는 로봇 머니퓰레이터가 특이형상(singular configuration)에 놓인 경우이다. 이 경우는 6×n행렬 J의 랭크가 부족하여, 랭크가 min(6, n) 보다 작은 경우이다. 즉,
(20) |
이 경우에 n은 n=6, n>6, 또는 n<6일 수 있다. 모든 m×n행렬은 특이값분해가 가능하므로, 6×n행렬 J를 다음과 같이 특이값분해 할 수 있다.
(21) |
여기서 U와 V는 각각 6×6, n×n 직교행렬이고, Σ는 6×n행렬로서 식 (11)과 같이 대각원소 σi를 제외한 모든 원소가 0인 행렬이다. σi는 J행렬의 특이값으로서,
그러면 이 경우의 역미분기구학 해는 다음과 같이 주어진다.
(22) |
여기서 J+는 Moore-Penrose 유사역행렬로서 다음과 같이 주어진다.
(23) |
여기서 Σ+는 식 (14)의 두번째 식과 같다.
식 (22)에서 b는 임의의 벡터이기 때문에, 이 경우에 역미분기구학 해는 무한개 존재한다. 무한개의 해 중에서 관절속도가 최소가 되는 최소노옴해는
식 (22)를 식 (3)에 대입했을 때, 식 (22)로부터
J(I-J+J)b=0 이 되고, 또
(24) |
이므로 식 (22)의
식 (22)의 해에서 (I-J+J)b ∈ N(J)임을 주목하라.
이 3.4절의 경우를 사상선도로 표시하면 Fig. 7과 같다. Fig. 7에서
예제 4. 두개의 모터로 삼차원 공간에서 구동하는 예제3의 로봇을 고려해 본다. 이 경우에 3×2자코비언과 말단장치속도가 다음과 같이 주어져 있다고 하자.
이 자코비언 J의 특이값분해는 다음과 같다.
그러면 Moore-Penrose 유사역행렬 J+는 다음과 같이 계산된다.
따라서 최소노옴해와 다른 한 해는 다음과 같이 주어질 수 있다.
여기서
벡터 [0.8 1.6]T는 Fig. 7의
4. 말단장치속도가 R(J)에 안속할 경우
주어진 말단장치속도
(25) |
여기서 ≈기호는 양변의 값이 같지 않고 유사하다는 것을 의미한다.
주어진
(26) |
Fig. 8에서 보듯이,
(27) |
을 만족하는
오차벡터
(28) |
(29) |
식 (29)를 식 (25)의 정규방정식(normal equation)이라고 한다. 식 (29)를 만족하는
주어진
4.1 n<6이고 J가 완전랭크인 경우
이 경우는 관절모터의 수가 운동자유도 수보다 작으면서 특이형상에 놓여있지 않지만, Fig. 8에서와 같이
(30) |
그리고 식 (30)을 p=J
(31) |
Fig. 9는 이 4.1절 경우의 사상선도를 보여주고 있다. 이 사상선도는 Fig. 6의 사상선도와 같으나, 단지
Fig. 9에서, 속도
예제 5. 두개의 모터로 삼차원 공간에서 구동하는 예제3의 로봇을 고려해 본다. 3×2자코비언은 예제 3과 같으나 말단장치속도가 다음과 같이 R(J) 밖에 주어져 있다고 하자.
그러면 J
따라서 근사해
이 근사해의 오차는
주어진 말단장치속도
4.2. J의 랭크가 부족한 경우(특이점)
이 경우는 로봇 머니퓰레이터가 특이형상에 놓여 있으면서
이 경우에, 주어진
이 경우에 6×n행렬 J는 특이값분해에 의해 J = UΣVT로 표현될 수 있고, 식 (25)의 근사해는 다음과 같이 주어진다.
(32) |
식 (32)는 3.4절의 해와 같으나, 식 (32)에서
식 (32)에서 b는 임의의 벡터이기 때문에, 역미분기구학의 근사해는 무한개 존재한다. 무한개의 해 중에서 관절속도가 최소가 되는 최소노옴 근사해는
그리고 식 (32)를 p=J
(33) |
이 4.2절의 경우를 사상선도로 표시하면 Fig. 10과 같다. Fig. 7의 사상선도와 다른 점은
예제 6. 두개의 모터로 삼차원 공간에서 구동하는 예제4의 로봇을 고려해 본다. 3×2자코비언은 예제 4와 같으나 말단장치속도가 다음과 같이 R(J) 밖에 주어져 있다고 하자.
그러면 J
주어진 J의 Moore-Penrose 유사역행렬은
로 계산되고, 따라서 근사해
최소노옴해는
그리고 직교사영행렬 P와 직교사영 p는 식 (33)으로부터 다음과 같이 주어진다.
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일 때 특이점을 가진다.
개발된 순미분기구학 및 역미분기구학 풀이 GUI 화면 모습은 Fig. 12와 같다. GUI 화면 중앙에 로봇의 홈형상(home configuration)과 현재형상을 막대로 표시하고, 왼편에는 관절속도를, 오른편에는 말단장치속도를 표시하도록 하였다. GUI 화면 하단에는 각 관절각도를 넣어 로봇형상을 지정하도록 하였다.
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) 내에서 일치함을 볼 수 있다. 이는 순미분기구학 및 역미분기구학의 풀이가 옳다는 것을 말해준다.
6. 결 론
본 논문에서는 직렬 로봇 머니퓰레이터의 역미분기구학에 대한 해 공간을 해석하였다. 먼저 로봇의 말단장치속도
말단장치속도가 J의 열공간에 속하면 유일해 또는 많은 해 중 최소 노옴 해를 구하고, 말단장치속도가 J의 열공간에 속하지 않으면, 오차의 최소제곱에 의한 근사해를 구하였다. J가 완전랭크를 가지면, 관절작동기의 수에 따라 역행렬(n = 6인 경우), 우 유사역행렬(n > 6인 여유자유도 경우) 및 좌 유사역행렬(n < 6인 경우)을 이용하여 역미분기구학의 해를 구하였다. 특이형상에서 J의 랭크가 부족해지면, Moore-Penrose 유사역행렬을 이용하여 해 또는 근사해를 구할 수 있음을 보였다.
특히 행렬 J의 네가지 부분공간들 사이의 직교성과 사상을 명확히 보여주는 개선된 사상선도를 본 논문에서 처음으로 소개하였다.
마지막으로, MATLAB을 이용하여 역미분기구학의 해를 검증할 수 있는 풀이 프로그램과 그래픽사용자인터페이스를 개발하였다.
후 기
본 논문의 동기를 제공해주고 프로그램을 도와준 강병현군에게 감사를 드린다.
REFERENCES
- Denavit, J, Hartenberg, R S, “A kinematic notation for lower-pair mechanisms based on matrices”, ASME Journal of Applied Mechanics, (1955), 22, p215-221.
- Paul, RP, Shimano, BE, Mayer, G, “Kinematic control equations for simple manipulators”, IEEE Transactions on Systems Man and Cybernetics, (1981), 11(6), p449-455.
- Spong, MW, Hutchinson, S, Vidyasagar, M, Robot Modeling and Control, (2006), John Wiley & Sons.
- Asada, H, Slotine, J-J E, Robot Analysis and Control, (1986), John Wiley & Sons.
- Siciliano, B, Sciavicco, L, Villani, L, Oriolo, G, Robotics: Modelling, Planning and Control, Springer, (2010).
- Craig, JJ, Introduction to Robotics: Mechanics and Control, (2005), 3rd ed, Pearson Prentice Hall.
- Pieper, DL, “The kinematics of manipulators under computer control”, Ph.D. Thesis Stanford University, (1968).
- Manocha, D, Canny, JF, “Efficient inverse kinematics for general 6R manipulators”, IEEE Transactions on Robotics and Automation, (1994), 10(5), p648-657. [https://doi.org/10.1109/70.326569]
- 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.
- Kohli, D, Soni, AH, “Kinematic analysis of spatial mechanisms via successive screw displacements”, ASME Journal of Engineering for Industry, (1975), 97(2), p739-747. [https://doi.org/10.1115/1.3438640]
- Hunt, KH, Kinematic Geometry of Mechanisms, Oxford Science Publications, (1978).
- 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. [https://doi.org/10.1115/1.3629601]
- Angeles, J, Rotational Kinematics, Springer-Verlag, (1988).
- 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.
- Tolani, D, Goswami, A, Badler, N I, “Real-time inverse kinematics techniques for anthropomorphic limbs”, Graphical Models, (2000), 62, p353-388. [https://doi.org/10.1006/gmod.2000.0528]
- 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. [https://doi.org/10.7746/jkros.2012.7.1.035]
- 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. [https://doi.org/10.1115/1.3149621]
- Elgazzar, S, “Efficient kinematic transformation for the PUMA 560 robot”, IEEE Journal of Robotics and Automation, (1985), 1, p142-151. [https://doi.org/10.1109/jra.1985.1087013]
- 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. [https://doi.org/10.1177/027836498600500204]
- 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. [https://doi.org/10.1109/70.388782]
- 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. [https://doi.org/10.1109/jra.1985.1086995]
- Hollerbach, JM, Sahar, G, “Wrist-partitioned, inverse kinematic accelerations and manipulator dynamics”, The International Journal of Robotics Research, (1983), 2(4), p61-76. [https://doi.org/10.1177/027836498300200404]
- 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. [https://doi.org/10.7746/jkros.2011.6.1.027]
- Kang, C-G, “Online trajectory planning for a PUMA robot”, International Journal of Precision Engineering and Manufacturing, (2007), 8, p16-21.
- 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. [https://doi.org/10.1007/s12555-012-0313-9]
- Nakamura, Y, Advanced Robotics: Redundancy and Optimization, Addison-Wesley Publishing, (1991).
- 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. [https://doi.org/10.1115/1.3426611]
- Paul, RP, obot Manipulators: Mathematics, Programming, and Control, MIT Press, (1981).
- Orin, DE, Schrader, WW, “Efficient computation of the Jacobian for robot manipulators”, The International Journal of Robotics Research, (1984), 3(4), p66-75. [https://doi.org/10.1177/027836498400300404]
- Murray, RM, Li, Z, Sastry, SS, A Mathematical Introduction to Robotic Manipulation, CRC Press, (1994).
- 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. [https://doi.org/10.1109/jra.1987.1087068]
- 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. [https://doi.org/10.1109/tsmc.1986.289285]
- 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. [https://doi.org/10.1115/1.3143764]
- 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. [https://doi.org/10.1109/tsmc.1983.6313123]
- Schilling, RJ, Fundamentals of Robotics: Analysis and Control, Prentice Hall, (1990).
- Koivo, A, Fundamentals for Control of Robotic Manipulators, (1989), John Wiley & Sons.
- Whitney, DE, “Resolved motion rate control of manipulators and human prostheses”, IEEE Transactions on Man-Machine Systems, (1969), 10(2), p47-53. [https://doi.org/10.1109/tmms.1969.299896]
- Fu, KS, Gonzalez, RC, Lee, CSG, Robotics: Control, Sensing, Vision, and Intelligence, McGraw-Hill, (1987).
- Strang, G, Linear Algebra and Its Applications, (2006), 4th ed, Thomson Brooks/Cole.
- Golub, GH, Van Loan, CF, Matrix Computations, (1996), 3rd ed, The Johns Hopkins University Press/Cole.
- Campbell, SL, Meyer, CD Jr, Generalized Inverses of Linear Transformations, Pitman, (1979).