Journal Archive

Journal of Korea Robotics Society - Vol. 12 , No. 1

[ ARTICLE ]
The Journal of Korea Robotics Society - Vol. 12, No. 1, pp. 42-54
Abbreviation: J. Korea Robot. Soc
ISSN: 1975-6291 (Print) 2287-3961 (Online)
Print publication date Feb 2017
Received 21 Jul 2016 Revised 31 Oct 2016 Accepted 8 Nov 2016
DOI: https://doi.org/10.7746/jkros.2017.12.1.042

로봇 메니퓰레이터의 제어를 위한 특이점 회피 알고리즘의 비교 연구
김상현1 ; 박재흥

Singularity Avoidance Algorithms for Controlling Robot Manipulator: A Comparative Study
Sanghyun Kim1 ; Jaeheung Park
1Graduate School of Convergence Science and Technology, Seoul National University (ggory15@snu.ac.kr)
Corresponding author : Graduate School of Convergence Science and Technology, Seoul National University, Gwanggyo-ro, Yeongtong-gu, Suwon, Korea Advanced Institutes of Convergence Technology, Gwanggyo-ro, Yeongtong-gu, Suwon, Korea (park73@snu.ac.kr)


© Korea Robotics Society. All rights reserved.

Abstract

Using an inverse of the geometric Jacobian matrix is one of the most popular ways to control robot manipulators, because the Jacobian matrix contains the relationship between joint space velocities and operational space velocities. However, the control algorithm based on Jacobian matrix has algorithmic singularities: The robot manipulator becomes unstable when the Jacobian matrix loses rank. To solve this problem, various methods such as damped and filtered inverse have been proposed, but comparative studies to evaluate the performance of these algorithms are insufficient. Thus, this paper deals with a comparative analysis of six representative singularity avoidance algorithms: Damped Pseudo Inverse, Error Damped Pseudo Inverse, Scaled Jacobian Transpose, Selectively Damped Inverse, Filtered Inverse, and Task Transition Method. Especially, these algorithms are verified through computer simulations with a virtual model of a humanoid robot, THORMANG, in order to evaluate tracking error, computational time, and multiple task performance. With the experimental results, this paper contains a deep discussion about the effectiveness and limitations of each algorithm.


Keywords: Kinematic Singularity, Inverse Kinematics, Singularity Avoidance, Redundant Manipulator

1. 서 론

로봇의 말단장치(End-effector)를 직교 좌표계(Cartesian Coordinate)에서 움직일 수 있게끔 각 관절의 각도를 계 산하는 방법을 역기구학(Inverse Kinematics)이라 한다. 이러한 역기구학은 크게 해석적 방법(Analytic Approach) 과 수치적 방법(Numeric Approach)로 나뉜다.

해석적 방법은 삼각함수 등을 이용하여 로봇의 각도 와 말단 장치의 위치 및 방위와의 상관관계를 직접 유도 하는 방법이다[1]. 이 방법을 이용하면 정확한 관절 각도 를 계산할 수 있으나, 로봇의 구조가 복잡하거나 여유자 유도가 있는 경우(Redundant System), 위 방법을 적용하 기 쉽지 않다는 단점이 있다.

한편, 수치적 방법은 매 제어주기마다 로봇 관절의 각 속도와 말단 장치의 선속도 사이의 상관관계인 자코비 안 행렬(Jacobian Matrix)을 이용하는 자코비안 기반 역 기구학이 대표적이다[2,3,33]. 이 방법은 자코비안 행렬의 역행렬이 존재하기만 한다면, 로봇 형상의 복잡도와 상 관없이 제어 시스템을 구축하기가 쉽고, 여유자유도를 이용한 영공간 제어(Null-space Control)가 가능하다는 장점이 있다.

그러나, 자코비안 기반 역기구학은 특정 위치에서 자 코비안의 행렬의 랭크(Rank)가 작업의 차원(Dimension) 보다 작아져 자코비안 행렬의 역행렬이 존재하지 않을 경우, 로봇 동작의 불안정성을 유발하는 특이점(Singularity) 을 가지고 있다[4]. 그러므로, 자코비안 기반 역기구학에 서는 특이점을 예측하고 이를 회피하는 알고리즘을 구 축하는 연구가 이루어지고 있다[5-13].

예를 들어, Nakamura등은 자코비안의 역행렬을 도출 할 때 이용하는 의사역행렬(Pseudo Inverse)의 계산식에 조정항(Damping)을 넣는 Damped Pseudo Inverse를 제 안하였다[6,21]. 이 방법은 조정항의 영향으로 항상 자코비 안의 역행렬을 구할 수 있다는 장점이 있지만, 로봇 메니 퓰레이터의 정밀한 제어가 어렵다는 단점이 있다. 그러 므로 Damped Pseudo Inverse를 기반으로 하는 최근 연 구들은 조정항의 크기를 로봇 링크의 크기의 비율로 설 정하거나[8], 로봇 관절의 각속도의 크기를 제한하는 방 법[9]을 제안하였다.

한편, Pechev는 행렬의 역행렬을 구하지 않고 로봇의 역기구학을 구하는 Feedback Inverse Kinematics를 제안 하였다[22]. 이와 유사하게 Vargas등은 좌-의사역행렬과 우-의사역행렬의 투영 오차(Projection Error)를 고려한 Filtered Inverse를 제안하였다[10,11]. 또한 Han등은 로봇 이 특이점 근처에 진입할 때 발생하는 자코비안 행렬의 불연속적인 변화를 극복하기 위한 Task Transition 알고 리즘을 제안하였다[12].

하지만 이처럼 특이점 회피 알고리즘에 대한 많은 연 구에도 불구하고, 대부분의 학술 자료들은 다른 알고리 즘들과의 성능 비교 없이 자신의 알고리즘의 성능을 소 개하였다. 결과적으로, 특이점 회피 알고리즘 간 비교 연구가 부족하여 각 알고리즘들의 특징 및 장/단점을 파 악하기 힘들다.

그러므로 본 논문에서는 앞서 소개한 알고리즘들을 포함한 6가지의 대표적인 특이점 회피 알고리즘(Damped Pseudo Inverse, Error Damped Pseudo Inverse, Scaled Jacobian Transpose, Selectively Pseudo Inverse, Filtered Inverse, Task Transition Method)을 수학적으로 분석하 고 특징들을 서술한다. 나아가서, 로봇 시뮬레이터 상에 서 각 알고리즘을 휴머노이드 로봇 THORMANG의 7자 유도 로봇 팔에 적용하여, 특이점 회피 알고리즘간의 성 능을 비교/분석 하고자 한다. 특히, 성능 분석은 추종 능 력(Tracking), 계산 시간(Computation Time), 그리고 업 무의 확장성(Multiple Task Performance)으로 세분화하 고 이를 수치화하여 각 알고리즘의 장/단점을 파악해본다.

본 논문의 구성은 다음과 같다. 2장에서는 자코비안 행렬을 이용한 로봇의 제어 기법과 특이점 회피 알고리 즘을 기술하는데 필요한 배경 지식을 소개하고, 3장에서 는 본 논문에서 비교하는 6가지의 특이점 회피 알고리즘 에 대해 기술한다. 4장에서는 휴머노이드 로봇 THORMANG 의 7자유도 로봇 팔을 이용한 시뮬레이션 환경에서 각각 의 특이점 회피 알고리즘의 성능 평가 및 장/단점 분석을 담고 있으며, 5장에서 본 논문을 결론짓는다.


2. 배경 지식

먼저, 이 장에서는 본 논문에서 소개하는 특이점 회피 알고리즘을 적용하기 위해 필요한 역기구학 배경 지식 과 특이점 회피 알고리즘을 이해하기 위한 수학적 지식 을 을 소개한다. 본 논문에서 표기된 소문자(a), 굵은 소 문자(a), 그리고 굵은 대문자(A)는 각각 스칼라(Scalar), 벡터(Vector), 그리고 행렬(Matrix)를 의미한다.

2.1. 폐루프 역기구학

폐루프 역기구학(Closed-Loop Inverse Kinematics, CLIK) 은 로봇의 각 관절 속도(q˙)와 말단 장치의 위치 및 방위 속도(x˙)와의 선형 관계식인 자코비안 행렬을 이용한 제 어 기법 중 하나이다[14-16]. 이 절에서는 본 논문에서 특이 점 회피 알고리즘을 구현하기 위해 사용한 로봇 제어기 인 폐루프 역기구학에 대해 간단히 소개한다.

우선 n 자유도 로봇의 관절변수 벡터와 말단 장치의 위치 및 방위를 각각 q=[q1q2qn]Rnx=[x1x2xm]Rm 로 정의하자. 또한, 로봇 제어 시스템에 대한 가정 으로, (A1) 로봇의 제어시스템은 연속적이고, (A2) 로봇 의 기구적 물성치(Kinematic Property)를 이상적으로 알고 있다고 가정한다. 그렇다면, Jk=xkq 의 관계식인 자코 비안 행렬 J(q)Rm×n 을 이용하여 각 관절 속도에서 말단 장치의 위치 및 방위 속도를 계산하는 정기구학 (Forward Kinematics)을 표현할 수 있다.

x˙=J(q)q˙.(1) 

한편, 식 (1)과 상응하는 역기구학(Inverse Kinematics)은

q˙=J(q)x˙(2) 

로 표현할 수 있다. 식 (2)에서 J(q)Rn×m 의 역연산자(Inverse Operator)로, 일반적으로 관절의 수(n) 가 말단 장치의 제어 자유도(m)보다 큰 여유자유도 시스 템(Redundant System)의 경우, 식 (3)과 같이 우-의사역 행렬(Right Pseudo Inverse, PI)로 표현한다.

J(q)=JT(JJT)1.(3) 

수학적으로 우-의사역행렬은 각 관절 에너지의 합의 최소값을 도출하여 주며, 로봇이 특이점(Singular Point) 에 위치하지 않는 경우에 한해 항상 존재함이 증명되었 다[3,14].

결과적으로 식 (2)와 (3)을 통하여 말단 장치의 속도를 이용해 관절들의 각속도를 구할 수 있음을 알 수 있다. 하지만, 실제 로봇을 식 (2)와 (3)을 이용하여 제어하기에 는 무리가 있다. 이는 앞서 언급한 가정들(A1, A2)이 실 제 시스템에서는 적용되지 않기 때문에 말단 장치의 추종 오차(Tracking Error, e = xd - x)가 발생하기 때문이다.

이러한 추종 에러를 줄이기 위하여, 폐루프 역기구학 에서는 식 (2)에 추종 에러에 비례하는 피드백(Feedback) 을 추가한다. 이는 다음의 식 (4)와 같이 표현 가능하다.

q˙d=J(x˙d+Ke).(4) 

식 (4)에서 xd는 말단 장치의 목표 위치 및 방위를 의 미하고, K=kIRm는 피드백 게인 행렬(Feedback Gain) 로 대각양행렬(Diagonal Positive-definite Matrix)이다. k 의 크기는 추종 에러의 수렴 속도와 관계가 있다. 구체적 으로, k의 크기가 커지면 커질수록 추종 에러의 수렴속 도가 빨라짐을 알 수 있다. 하지만 너무 큰 k의 값은 말단 장치의 진동을 유발할 수 있다. 따라서 k의 값은 실험을 통해 말단 장치의 진동을 유발하지 않으면서 최 적의 추종 에러를 빠르게 줄일 수 있는 값으로 설정한다. 결과적으로, 식 (4)를 이용한 폐루프 역기구학의 블록 선도(Block Diagram)는 Fig. 1과 같다.


Fig. 1 

Block diagram of closed-loop inverse kinematics. F.K means forward kinematic eRn×nuation to obtain end-effector’s position and orientation



2.2. 특이값 분해

특이값 분해(Singular Value Decomposition, SVD)는 행렬을 다음과 같은 3개의 요소 행렬로 분해하여 행렬의 특이값을 찾는 방법으로,

J=USVTRm×n(5) 

URm×mVRn×n 는 직교행렬(Orthogonal Matrix) 이며, SRm×n은 대각선상의 원소들을 제외한 원소들 이 0인 행렬로 자코비안 행렬과 같이 행렬의 행이 열보 다 큰 경우 (m > n), 식 (6)과 같이 표현할 수 있다.

S=[σ100σn00],σ1σ2σn0.(6) 

식 (6)에서 σ를 특이값(Singular Value)라 부르고, 0이 아닌 특이값의 개수(r=max(i∣σi > 0))는 본행렬(J)의 랭크와 같다. 그러므로, 식 (5)는 다음과 같은 벡터 형태 로 표현이 가능하다.

J=(i=1)nσiuiυiT=i=1rσiuiυiT.(7) 

위의 식에서 uiυi는 각각 UVi번째 열을 의미 한다.

한편, 식 (5)와 (7)은 UV가 직교행렬이라는 성질을 이용하여, 쉽게 식 (8)과 같은 의사역행렬(Moore-Penrose Pseudo Inverse)을 구할 수 있다.

J=VSUT=i=1r1σiυiuiT.(8) 

식 (8)의 의사역행렬은 특이값(σ)의 역수형태를 포함 하고 있기 때문에, i번째 특이값(σi)이 0과 가까워지면 가까워질수록, 의사역행렬의 요소들의 값이 커짐을 알 수 있다(limσi01σi=). 즉, 로봇이 특이점에 가까이 위 치할 경우, 자코비안행렬의 특이값이 작아지게 되고, 이 는 J*의 크기의 발산을 야기하기 때문에, 식 (4)의 폐루 프 역기구학 제어를 방해하는 것이다.

2.3. 조작성과 조건수

로봇의 자세가 특이점 근처에 있는지 판단하는 방법 으로는 크게 조작성 지수(Manipulability Measure)과 조 건수(Condition Number)가 쓰이고 있다[5,23-24].

먼저, 조작성 지수는

w=det(JJT)=i=1nσi(9) 

와 같이 표현한다. 식 (9)에서 보듯이, 로봇이 특이점 자 세에 가까워질수록 조작성의 값은 작아지며, 로봇이 완벽 한 특이점 자세에 돌입한다면 조작성 지수는 0이 된다.

한편, 조건수(κ)는 자코비안 행렬의 가장 큰 특이값 (σmax )과 0이 아닌 가장 작은 특이값(σmax )의 비로 나타 낼 수 있으며 이를 식으로 표현하면 다음과 같다.

κ(J)=σmaxσmin.(10) 

그러므로, 조건수는 조작성과 반대로 특이점 근처에 서 큰 값으로 증가하여 발산하게 된다.


3. 특이점 회피 알고리즘

본 장에서는 2장에서 소개한 특이점에 관련된 기반 지식을 바탕으로 하여 6가지 특이점 회피 알고리즘을 설명하고 수학적/제어적 특징에 대해 논하고자 한다.

3.1. Damped Pseudo Inverse (DPI)

Damped Pseudo Inverse 방법은 Damped Least Squares 혹은 Singularity Robust Pseudo Inverse라고도 말하며, 식 (7)에서의 특이값에 조정항(λ)을 추가하여 의사역행 렬이 항상 존재하도록 하는 방법을 말한다[6,21].

JD=i=1nσi2+λ2σiuiυiT.(11) 

JD=JT(JJT+λ2I)1=i=1nσiσi2+λ2υiuiT.(12) 

식 (11)과 (12)의 형태에서 알 수 있듯이, JD 의 특이값 은 σn이 0에 가까워진다 하여도 발산하지 않고 0으로 수렴함을 알 수 있다(limσn0σnσn2+λ2=0). 또한 JD의 조건 수는 식 (13)과 같으며, 식 (10)과 달리 로봇이 특이점에 위치해 있어도 항상 수렴함을 알 수 있다.

κ(JD)=σmin(σmax2+λ2)σmax(σmin2+λ2).(13) 

이처럼, Damped Pseudo Inverse의 조정항(λ)은 제어 의 특이점을 극복하는 요소이지만, 로봇의 정밀한 움직 임 제어를 방해하는 요소이기도 하다. 그러므로, 일반적 인 로봇 제어에서의 조정항은 로봇의 움직임을 방해하 지 않으면서 특이점을 극복할 수 있게 작은 크기(σn ≫λ) 를 넣어주거나[5], 식 (14)와 같이 조작성 지수(w)를 이용 하여 조정항의 크기를 조절하는 방법(이하 DPI*)을 사용 한다[21].

λ2={0ifww01(ww0)2λm2otherwise(14) 

식 (14)에서 w0λm은 각각 조작성 지수에 대한 임계 값(Threshold)과 조정항의 스케일링 게인(Scaling Gain) 이다.

한편, Sugihara는 조정항의 크기를 로봇 말단장치의 현재 위치와 목적 위치와의 추종 오차(e)로 크기를 정하는 Error Damped Pseudo Inverse(E-DPI)를 제안하였다[8,17].

JED=JT(JJT+ζI+W)1=i=1nσiσi2+ζ+wiυiuiT.(15) 

식 (15)에서 ζ는 12eTe 로 추종 오차의 내적에 비례하 며, WRn×nwi를 대각성분의 원소로 가지는 대각 행렬이다. 이 때, wii번째의 관절을 포함하는 로봇 링크의 길이를 적당한 비율로 나눈 값으로, 실험적으로 링크 길이의 1000분의 1배로 대입한다[17]. 그러므로, Error Damped Pseudo Inverse의 조정항은 각 관절마다 조정항 의 크기가 다르게 되므로, 제어 수렴 시간이 일반적인 Damped Pseudo Inverse보다 단축될 수 있다.

3.2. Jacobian Transpose (JT)

Jacobian Transpose 방법은 폐루프 역기구학 식인 식 (4)의 우-의사역행렬(J*) 대신 자코비안의 전치행렬(JT) 을 대입하여 제어하는 것을 말한다[7,25].M16

q˙d=JT(x˙d+Ke)(16) 

자코비안의 전치행렬로 대신했을 때 기대할 수 있는 장점으로는 크게 다음과 같다. 먼저, 자코비안 행렬과 같은 정기구학 정보만을 이용하므로 특이점이 존재하지 않는다. 또한, 제어 과정 중, 특이값 분해와 같은 연산 시간이 무거운 계산이 포함되지 않아 고속 제어에 유리 하다. 마지막으로, 르야프노프 이론(Lyapunov Theory) 을 통해 연속시스템에서의 안정성(Stability)가 검증되었 다[26]. 하지만, 자코비안 역행렬 대신 자코비안의 전치행 렬을 사용하기 때문에, 추종 오차가 다른 알고리즘보다 크게 발생하며, 제어 주기가 낮거나 외란(Disturbance)이 발생하는 경우에서는 말단 장치의 제어 오차로 인해 로 봇이 진동하는 현상(Chattering)이 발생할 수 있다는 단 점이 있다.

이를 극복하기 위해, Lee등은 식 (17)과 같이 자코비안 의 전치행렬에 게인 대각행렬(DRm×m)을 곱하여 행 렬의 크기를 낮춰주는 Scaled Jacobian Transpose(SJT) 를 제안하여, 고속 제어에 유리하면서 진동 현상을 최소 화하고자 하였다[27].

q˙d=DJT(x˙d+Ke).(17) 

이 때, D의 i번째 대각성분 는 Jacobian 행렬의 i번째 열의 크기의 역수로 설정하며 이를 식으로 표현하면 식 (18)과 같다.

di=(JiTJi)1.(18) 

3.3. Selectively Damped Pseudo Inverse (S-DPI)

식 (4)과 (8)에서 보듯이 특이점 근처에서 로봇의 자코 비안의 역행렬은 발산하므로 적은 추종 오차(e)가 많은 관절 각도 변화를 야기함을 알 수 있다. 이 점을 이용하 여 Selectively Damped Pseudo Inverse는 자코비안의 고 유 벡터(ui)를 이용한 고유 벡터에 따른 관절 각도의 변화 량을 계산한다[9]. 이는 식 (5)와 (7)에서 보듯이, i번째 고유 벡터는 i번째 특이값을 반영하는 움직임을 나타내 기 때문이다[30]. 이 때 계산된 관절 각도의 변화량이 로봇 관절의 허용 각속도보다 클 경우, 관절 각도의 변화량을 제한한다. 그러므로, 로봇이 특이점 근처에 있을 경우 특이점 방향으로의 움직임이 제한된다. 구체적인 알고 리즘의 전개과정은 다음과 같다.

먼저, 2.1절의 일반적인 의사역행렬을 사용할 때, 위치 오차에 따른 관절 각 변화율은 식 (19)과 같다.

q=Je=(i=1)r1σiυiuiTe.(19) 

또한, 자코비안 행렬이 0에 가까운 특이점을 포함하지 않는다면, 다음의 조건을 만족하게 된다.

e=JJe.(20) 

이 때, 만약 위치 오차가 자코비안 행렬의 고유 벡터라 면(e=ui,uiTui=1), i번째 고유벡터에 의한 j번째 관절각 의 순간 변화량(q˙j)은 다음과 같이 간단해진다.M21

q˙j=1σiυj,i.(21) 

이 때, υj,iυij번째 성분을 의미한다. 따라서, j번 째 관절각의 순간 변화량(q˙j)이 말단 장치의 위치에 주는 영향(mi)은M22M23

mi,1=1σij=1m|υj,i|Jl,j.(22) 

mi=lmi,l.(23) 

와 같다. Jl,j는 자코비안 행렬의 l번째 행의 j번째 성분을 의미하고, mi,l|q˙j| 에 의한 l번째 말단 장치의 위치 변 화를 의미한다. 따라서 식 (20)에 의해, 특이점 밖에서의 mii번째 고유벡터의 1-norm(ni=ui1)과 같다.

한편, mi의 크기는 각각의 조인트에 의한 말단장치의 움직임이 서로 상쇄(Cancellation) 될 때 커지게 된다. 즉, 로봇이 특이점에 가까워질 경우 q˙j 이 발산하여 mini 보다 커지게 된다. 그러므로, nimi 가 1보다 작을 때 로봇 이 특이점 영역을 판별하는 조건으로 설정하여 i번째 고 유벡터에 의한 허용 관절 속도(γi)를 식 (24)와 같이 정의 할 수 있다.

γi=min(1,nimi)γmax.(24) 

식 (24)에서 γmax는 관절의 최대 허용 각속도를 의미한 다. 최종적으로, 식 (24)의 조정항을 이용하여 실제 추종 오차(e)에 의한 관절각 변화(wi=1σiυiuiTe)를 제한하는 식은 식 (25)과 (26)이다.

q˙i={wiifwi1γiγiwiwi1otherwise(25) 

q˙={i=1rq˙iif(i=1)rq˙i1γmaxγmaxi=1rq˙ii=1rq˙i1   otherwise).(26) 

3.4. Filtered Inverse (FI)

Filtered Inverse는 자코비안 행렬의 역행렬을 특이값 분해 없이 최적화기법을 통하여 계산하는 방법으로, 우- 의사역행렬 오차와 좌-의사역행렬 투영 오차를 최소화 하는 역행렬을 얻는다[10,11].

Fig. 2에서 알 수 있듯이, 우-의사역행렬 오차(Sr)와 좌-의사역행렬 오차(Sl)의 합을 피드백하여 자코비안의 역행렬을 구하게 된다. 이처럼, Filtered Inverse 또한 Jacobian Transpose와 같이 연산과정 중 특이값 분해를 하지 않아, 계산 속도가 용이할 수 있으나, 반복 연산 (Iteration)의 수(k)에 따라 수렴 속도가 지연 될 수 있다 는 단점이 있다.


Fig. 2 

Pseudo code offiltered inverse



3.5. Task Transition Method (TT)

Task Transition 방법은 로봇에게 부여된 여러 업무를 연속적이고 안전하게 바꿀 수 있는 제어 프레임워크이 다. Lee는 역기구학 제어 기반 Task Transition 프레임워 크를 제시하여 관절 각도 제한 회피 등을 극복할 수 있음 을 보였고[28,29], Han은 Lee의 후속연구로 역동역학(Inverse Dynamics) 제어기반 Task Transition 프레임워크를 제시 하여 특이점 회피 알고리즘을 구현하였다[12,13]. 본 논문 에서는 위의 선행 연구들을 종합하여 역기구학 제어 기 반 Task Transition 프레임워크를 이용한 특이점 회피 알고리즘을 기술하겠다.

먼저 2개의 업무(x˙1d,x˙2d)를 수행할 때 1번 업무를 우선 적으로 수행한 뒤 나머지 여유자유도로 2번 업무를 수행 하는 역기구학 제어기는 다음과 같이 설계할 수 있다.

q˙=J1x˙1d+N1q˙2|127  

여기서 J1, J2, 그리고 N1=IJ1J1 은 각각 1번, 2번 업무의 자코비안 행렬, 그리고 1번 업무의 영공간(Nullspace) 이다. 또한 식 (27)에서 1번 업무에 영향을 주지 않는 2번 업무의 관절 각속도(q˙(2|1))는 식 (28)과 같다.

q˙(2|1)=(J2N1)(x˙2dJ2J1x˙1d).(28) 

하지만, 식 (27)과 (28)는 각 업무의 독립적인 제어는 보장하나, 두 업무의 우선 순위를 바꿀 때 불연속적인 관절각의 변화를 유발한다. 이러한 문제점을 해결하기 위하여, Lee는 활성화 지표(h)를 이용한 Task Transition 방법을 제안하였고, 이는 식 (29)에서 (31)과 같다.

q˙=J1x˙1i+(J2N1)(x˙2iJ2J1x˙1i).(29) 

x˙1i=h1x˙1d+(1h1)J1J2h2x˙2d.(30) 

x˙2i=h2x˙2d+(1h2)J2J1h1x˙1d.(31) 

식 (30)과 (31)에서 h1h2는 각각 1번 업무, 2번 업무 의 활성화 지표이고 0에서 1 사이의 값을 가진다. 만약 활성화 지표가 1이라면 해당 업무를 최우선적으로 수행 하고, 0이라면 해당 업무를 수행하지 않는다. 식 (30)과 (31)에서 보듯이 활성화 지표를 이용하여 각 업무를 동 일한 과정을 통해 배분할 수 있다.

이러한 Task Transition 방법을 이용하여 특이점 회피 알고리즘을 설계한다면 다음과 같다. 특이값 분해의 식 (5)에서 직교행렬 U는 특이값(σi)에 따른 방향벡터들로 이루어져 있으므로, 특이값의 크기에 따라 0이 아닌 특 이값을 위한 방향벡터들(Un)과 0인 특이값을 위한 방향 벡터들(Us)로 나눌 수 있다.M32

U=[Un  Us.](32) 

그러므로, 어떠한 업무 x˙d 는 다음과 같이 0인 특이값 에 영향을 받지 않는 업무(x˙1d)와 영향을 받는 업무(x˙2d)로 분할 가능하다.M33M34

x˙1d=UnTx˙d,(33) 

x˙2d=UsTx˙d.(34) 

또한 이 업무와 상응하는 자코비안 행렬은 각각M35

J1=UnTJ,(35) 

J2=UsTJ,(36) 

로 나눌 수 있다. 이 때, 1번 업무는 특이점에 영향을 받지 않는 업무이므로 활성화 지표(h1)는 항상 1로 지정 한다. 한편, 2번 업무는 특이점에 영향을 받는 업무이므 로 활성화 지표(h2)는 1로 시작하여, 제일 작은 특이값 (σmin)이 작아짐에 따라 0으로 감소하게 정한다. 예를 들 어 Fig. 3은 특이값이 0.001과 0.01 사이일 때 활성화 지표 (h2)가 변하는 그래프를 나타낸 그림이다. 결과적으로 Task Transition을 통한 특이점 회피 알고리즘은 특이점 에 영향을 받지 않은 1번 업무를 우선적으로 수행 한 뒤, 특이점에 영향을 받는 2번 업무를 차선적으로 수행 함을 알 수 있다.


Fig. 3 

Activation parameters w.r.t singular value




4. 실험 및 결과

3장에서 소개한 특이점 회피를 위한 알고리즘들의 성 능 비교를 위하여 시뮬레이션 환경에서 직접 구현해본 다. 다음 4.1절에서 시뮬레이션 환경과 사용한 로봇을 소개 한 뒤, 4.2절부터 추종 능력, 연산시간, 그리고 알고 리즘의 확장성 등의 항목으로 각 알고리즘의 성능을 분 석한다.

4.1. 실험 환경

Fig. 4와 같이 각 알고리즘의 구현을 위해 사용한 로봇 은 휴머노이드 로봇 THORMANG의 7자유도 팔을 사용 하였다[19]. 이 로봇을 가상현실에서 제어하기 위해 로봇 시뮬레이터 V-REP을 사용하였고, 물리엔진으로는 Bullet 엔진을 선택하였다[20]. 로봇의 제어주기는 200 Hz이고 시뮬레이션을 수행한 컴퓨터의 사양은 Intel i7 3.90GHz, RAM 32GB이다.


Fig. 4 

Experimental environment with THORMANG



한편, 각 알고리즘을 테스트하기 위해 THORMANG 의 오른 손목의 위치 목표 경로(pd)는 초기 로봇의 손목 위치(pi)를 기준으로 5초동안 식 (37)와 같이 움직이도록 정의하고, 방향 목표 경로(od)는 초기 THORMAGN의 방향(oi)과 동일하게 설정하였다.

xd=[pdod],(37) 

식 (37)의 경로는 말단장치의 목표가 기구적으로 닿을 수 없거나 자코비안 행렬의 랭크가 작업의 차원보다 작 아질 때 발생하는 기구적 특이점(Kinematic Singularity) 이 존재하는 경로이며, 조작성 지수(w)가 0.001 미만인 곳을 기구적 특이점의 근처라고 간주하였다. 이를 도식 화하면 Fig. 5와 같다.


Fig. 5 

Reference desired trajectory



마지막으로, 각 알고리즘의 특이점 회피를 위한 게인은 Table 1과 같다. Table 1의 DPI는 식 (12)를 이용한 Damped Pseudo Inverse이며, DPI*는 식 (14) 기반 Damped Pseudo Inverse이다. 각 알고리즘의 게인 값들은 특이점 회피 능력 과 추종 능력을 최대한 발휘 할 수 있는 값들로 설정하였다.

Table 1 

Experimental setting for each algorithm


Gain Setting
DPI = 0.001
DPI* w0 = 0.001, m2 = 0.001
E-DPI -
SJT -
S-DPI γmax = π/4
FI α = 1, k = 100
TT See Fig. 3

4.2. 실험 결과
4.2.1. 추종 능력

특이점 회피 알고리즘에서 최우선적으로 평가하여야 할 요소는 특이점 근처에서 주어진 경로를 얼마나 잘 추종하고, 수렴하는지에 대한 것이다. 앞 절에서 소개한 실험 환경을 토대로 목표 경로(Desired Trajectory)에 대 한 실제 경로(Measured Trajectory)를 Fig. 6에 나타내었 다. 또한, 독자들을 위해 각 알고리즘 별 경로를 추종하는 시뮬레이션 영상을 다음의 홈페이지에 올려두었다[31].


Fig. 6 

Tracking performance for each algorithm (k=100): desired trajectories (Blueline) and measured trajectories (Red line)



결과적으로, 2.1절에서 소개한 의사역행렬을 이용한 폐루프 역기구학의 경우, 특이점 근처에서 불안정해짐 을 확인할 수 있다. 또한, 특이점 극복 알고리즘 중 SJT와 FI를 제외한 나머지 특이점 극복 알고리즘(DPI, DPI*, E-DPI, S-DPI, TT)들은 목표 경로가 로봇의 작업 반경 이외에 있는 기구학적 특이점을 제외한 대부분의 경로 를 잘 추종함을 알 수 있다. 이 때, 사용한 역기구학 게인 는 100으로 설정하였다.

각 알고리즘의 성능을 세밀하기 분석하기 위하여 Table 2 에 실험에서 얻은 데이터를 바탕으로 각 알고리즘의 추 종 에러 및 관절 속도에 대한 실효값(Root Mean SRn×nuare, RMS)를 나타내었다. 먼저, 추종 에러의 경우 TT, E-DPI, DPI*, S-DPI 순으로 적은 에러를 보여주었다. 특히, DPI 는 위의 4개의 알고리즘들보다 상대적으로 높은 추종 에러를 보여주었는데, 이는 위의 4개의 알고리즘들은 특 이점 이외의 영역에서 높은 추종 능력을 보여준 반면에, DPI의 경우 특이점 이외의 영역에서 조정항의 영향으로 인하여 추종 오차를 발생시키기 때문이다.

Table 2 

Tracking performance for each algorithm (k=100)


Tracking Error (m) Joints Velocity (rad/s)
RMS Std RMS Std
DPI 0.0057 0.0037 0.9282 0.9001
DPI* 0.0049 0.0026 1.2194 1.3976
E-DPI 0.0049 0.0026 0.9342 0.8000
SJT 0.0266 0.0083 0.3736 0.0923
S-DPI 0.0052 0.0027 1.0059 1.4596
FI 0.0184 0.0311 0.9925 1.5263
TT 0.0047 0.0025 0.9262 0.7917

한편, Table 2의 관절 속도에 대한 실효값은, 로봇의 말단 장치가 목표 경로를 추종하기 위하여 관절들을 움 직일 때 로봇의 링크 길이 등의 기구학적 정보를 얼마나 효율적으로 썼는지를 보여준다. 그러므로, 이 값이 작으 면 작을수록, 로봇이 돌발 움직임(Jerk)이나 특이점 근처 에서 빨라지는 움직임 없이, 부드러운 움직임으로 목표 경로를 추종한 것이라 간주 할 수 있다. Table 2의 2번째 열에서 보듯이, 추종 에러가 작았던 4개의 알고리즘 중 TT, E-DPI, S-DPI가 DPI*보다 낮은 관절 속도로 움직였 음을 알 수 있다. 이는 DPI*와는 다르게 TT, E-DPI, S-DPI 는 특이점 회피를 위해 기구학적인 정보를 활용하고 있 기 때문이다. 예를 들어, DPI*의 조정항을 위한 식 (14) 에서 보듯이 DPI*는 현재의 관절 각도나 로봇의 형태 등과 상관없이 동일한 조정항을 사용한다. 그러나, TT, E-DPI, 그리고 S-DPI 등은 로봇 링크 길이를 이용하여 관절마다 다른 조정항을 사용하거나(E-DPI), 현재의 로 봇 자세를 바탕으로 한 자코비안 행렬을 이용하여 로봇 의 말단장치가 특이점 방향으로 움직이지 못하도록 제 한하기 때문에(S-DPI, TT), DPI보다 효율적인 움직임을 보여준다.

Fig. 6과 Table 2에서 보듯이 SJT와 FI가 상대적으로 다른 알고리즘보다 큰 추종오차를 도출한 이유는 다음 과 같다. 먼저, SJT의 경우, 3.2절에서 언급하였다시피, 자코비안 행렬의 역행렬이 아닌 전치행렬형태를 사용하 면서 말단 장치의 위치 및 방위 오차가 발생할 수 있기 때문이다. 이러한 추종 오차는 폐루프 역기구학 게인(k) 을 높이거나 로봇의 제어주기를 빠르게 한다면 해결할 수 있으나, 본 실험에서는 다른 알고리즘과의 동일한 평 가를 하기 위하여 게인이나 제어주기를 바꾸지 않았다. 또한, FI에서는 특이점 회피를 위한 자코비안 역행렬을 구할 때, 우-의사역행렬과 좌-의사역행렬의 투영 오차 합을 최소화하기 위하여 반복 연산을 수행하게 되는데, 특이점 근처에서 때때로 이러한 투영 오차합을 최소화 하는 역행렬을 도출하지 못하는 현상을 발생시켜 말단 장치의 추종오차를 증가시켰다.

한편, 로봇의 말단 장치의 추종 능력은 특이점 회피 알고리즘의 성능 뿐만 아니라 식 (4)의 역기구학 피드백 게인 k와도 관련이 있다. 따라서 피드백 게인을 다양한 값으로 설정하였을 때의 추종 오차를 Fig. 7에 나타내었 다. Fig. 7에서 알 수 있듯이, 각 알고리즘의 추종오차는 역기구학 게인이 커질수록 감소함을 알 수 있다. 또한, Table 2과 Fig. 6의 결과(k=100)와 마찬가지로 역기구학 게인이 동일할 시, IED, SJD, TT가 상대적으로 다른 알 고리즘보다 좋은 추종능력을 보임을 알 수 있다.


Fig. 7 

Tracking performance for each algorithm (k=25, 50, 75, 100, 150, 200)



4.2.2. 연산 시간

각 알고리즘이 매 프레임(Frame)마다 특이점 근처에 서 혹은 특이점 외 지역에서 소요한 연산 시간은 Table 3에 나타내었다. 매 프레임의 연산 시간은 Windows 라이브 러리에서 제공하는 QueryPerformanceCounter를 사용하 여 얻은 결과를 사용하였다[32].

Table 3 

Computation time for each algorithm


Mean Computation Time in Non-singularity Area (ms) Mean Computation Time in Singularity Area (ms)
DPI 0.7790 0.6839
DPI* 2.5644 3.1977
E-DPI 0.7200 0.6905
SJT 0.2634 0.2729
S-DPI 2.9805 2.8565
FI 2.6558 2.6282
TT 2.1170 3.7312

Table 3에서 보듯이, 특이점 내/외 지역에서 SJT가 다 른 알고리즘보다 월등한 연산 속도를 보였으며, DPI와 E-DPI 또한 빠른 연산 속도를 보였다. 이는 위의 알고리 즘들이 많은 연산량이 필요한 특이값 분해와 같은 과정 없이 특이점 회피를 수행하기 때문이다. 반대로, 특이점 회피를 위하여 특이값 분해를 사용하거나(DPI*, S-DPI, TT), 오차를 최소화하기 위하여 많은 반복과정을 거치는 알고리즘(FI)의 경우, 2 ms이상의 소요시간을 보였다.

한편, DPI*와 TT의 경우 특이점 내 지역에서의 계산 시간과 특이점 외 지역에서의 계산시간간 차이가 발생 하였는데, 이는 각 알고리즘들이 현재의 로봇의 위치가 특이점과 멀리 떨어져 있다고 판단할 경우, 2.2절의 폐루 프 역기구학의 의사역행렬만을 사용하여 추종을 하기 때문에 연산 시간을 단축할 수 있는 것이다.

4.2.3. 다중 작업 능력

앞 서의 실험에서 각 알고리즘들은 오직 목표 경로만 을 추종하는 해를 구하도록 정의되어 있다. 그러므로, 각 알고리즘들을 실제 로봇에 적용하기 위해서는 로봇 관절이 최대/최소 허용 각도를 고려하여 해를 도출하는 과정이 필수적으로 갖추어야 한다.

이렇게 특이점 회피뿐만 아니라 관절 각도 제한까지 고려하기 위해서 다중 작업을 고려한 제어기를 설계하 여야 한다. 구체적으로, 다중 작업의 우선순위를 두는 식 (27)과 같은 영공간 제어를 하거나, 식 (38)과 같이 자코비안에 가중치 대각 행렬(W )을 곱하여 관절 움직 임을 제한하는 가중치 기반 자코비안 역행렬(Weighted Pseudo Inverse)을 사용할 수 있다[15].

Jw=W1JT(JW1JT1).(38) 

한편, 영공간 제어를 통하여 관절 각도 제한을 극복하 고자 한다면, 식 (27)에서 2번째 업무인 q˙2|1 에 관절 제한 극복을 위한 각속도를 목표 각속도를 다음과 같은 관절 제한 함수를 이용하여 설정할 수 있다[15].

q˙2|1,i=(qi,maxqi,min)2(2qiqi,maxqi,min4(qi,maxqi)2(qiqi,min)2.(39) 

식 (36)에서 q˙2|1,iq˙2|1i번째 원소이며, qi, maxqi, min은 각각 i번째 관절의 최대 허용 각도와 최소 허용 각도이다. 그러므로, 식 (39)의 q˙2|1,ii번째 관절각 qi이 관절의 최대 허용 각도와 최소 허용 각도의 평균값일 때 0이 됨을 알 수 있다. 그러나, 식 (27)과 (39)를 이용해 도 완벽히 관절 제한을 극복할 수 없는데, 이는 로봇의 제어 시 항상 관절 제한 극복을 위한 업무보다 특이점 회피를 위한 업무가 우선적으로 수행되기 때문이다[5,15].

하지만, Task Transition의 경우, 특이점 회피를 위해 나눈 2개의 업무를 나타낸 식 (29)-(31)에서 관절 제한 극복을 위한 업무를 추가할 수 있다. 따라서, 3개의 업무 를 가진 임무를 수행할 수 있으며, 활성화 지표를 이용하 여 업무의 우선순위를 바꿀 수 있다. 그러므로, 각 관절 이 허용 관절 범위의 경계에 가까워질 때 관절 제한 극복 업무가 특이점 극복 업무보다 우선시 되며, 특이점 근처 에 접근 할 때 특이점 극복 업무가 관절 제한 업무보다 우선시 된다. 결과적으로, Task Transition 방법을 사용하 면, 특이점 회피를 하면서도 항상 허용 관절 범위 안에 들어오는 관절 해를 도출해낼 수 있다[13,29]. 따라서, 다중 작업 능력 측면에서, 다른 알고리즘보다 Task Transition 방법이 유리함을 알 수 있다.


5. 결 론

본 논문에서는 6가지 특이점 회피 알고리즘(Damped Pseudo Inverse, Error Damped Pseudo Inverse, Scaled Jacobian Transpose, Selectively Pseudo Inverse, Filtered Inverse, Task Transition Method)의 수학적인 특징들을 알아보고, 각 알고리즘들을 로봇 시뮬레이터에 적용하 였다. 그리하여, 추종 능력, 계산 속도, 그리고 다중 작업 에 대한 능력 등으로 나누어 각 알고리즘들의 장/단점에 대해 논의하였다.

본 연구를 요약한 각 알고리즘의 장/단점은 다음과 같다.

  • DPI*와 E-DPI는 상대적으로 간단한 연산과정을 통 하여 특이점 근처에서 높은 추종능력을 보였다. 특 히 E-DPI의 경우 로봇의 길이를 고려하여 관절마다 다른 조정항을 부여하기 때문에 목표 경로를 추종할 때 효율적인 움직임을 보여준다.
  • SJT의 경우, 특이값 분해 등 복잡한 연산과정이 없 기 때문에 빠른 연산 속도를 보여주지만 낮은 제어 주기에서는 추종 능력이 떨어진다.
  • S-DPI의 경우, 높은 추종 능력과 수렴성을 보여주었 다. 하지만, 복잡한 연산 과정으로 인해 계산 속도가 E-DPI보다 느리다.
  • FI의 경우, 추종 능력과 계산 속도 둘 다 두각을 나타 내지 못하였다. 이는 알고리즘의 연산과정에서 항상 최적의 해를 구할 수 있다는 보장이 되지 않기 때문 이다.
  • TT는 가장 우수한 추종 능력과 효율적인 움직임을 보여주었다. 하지만 복잡한 연산 과정이 많으므로 연산 속도에서 다른 알고리즘과 비교해 느림을 확인 할 수 있다. 한편, 관절 각도 제한과 같은 다중 작업 수행 능력에서 다른 알고리즘과 비교하여 월등한 성 능을 보여주었다.

본 연구의 후속 연구로는 다음과 같다. 먼저, Task Transition의 단점이었던 잦은 의사역행렬 계산 과정에서 유 발한 낮은 계산 속도를 극복하기 위한 연산 과정의 단순 화 및 병렬화를 구축할 것이다. 또한, 위의 알고리즘들에 자가 충돌(Self-Collision)이나 토크 제한(Torque Limit) 에 대한 업무를 추가하여 제어기를 설계하고 이를 실제 로봇에 구현해 볼 것이다.


Acknowledgments

This work was mainly supported by Industrial strategic technology development program (No. 10060121) funded by the Ministry of Trade, Industry & Energy (MI, Korea). And this work was partially supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIP) (No. NRF-2015R1A2A1A10055798) and the Technology Innovation Program (No. 10060081) funded by the Ministry of Trade, Industry & Energy (MI, Korea).


References
1. Kim, Y, Song, J, “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.
2. Lee, J, Kim, J, Lee, J, Kim, D, Lim, H, Ryu, S, “Inverse kinematics solution and optimal motion planning for industrial robots with redundancy”, Journal of Korea Robotics Society, (2012), 7(1), p35-44.
3. Kang, C, “Solution space of inverse differential kinematics”, Journal of Korea Robotics Society, (2015), 10(4), p230-244.
4. Kim, J, Chung, W, Choi, Y, “Task reconstruction method for real-time singularity avoidance for robotic manipulators: dynamic task priority based analysis”, Journal of control, automation, and systems engineering, (2004), 10(10), p855-868.
5. Colome, A, Torras, C, “Closed-loop inverse kinematics for redundant robots: Comparative assessment and two enhancements”, IEEE/ASME Trans. Mechatronics, (2015), 20(2), p944-955.
6. 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.
7. Buss, SR, “Introduction to inverse kinematics with jacobian transpose, pseudoinverse and damped least squares methods”, IEEE Journal of Robotics and Automation, (2004), 17, p1-19.
8. Chan, SK, Lawrence, PD, “General inverse kinematics with the error damped pseudoinverse”, in Proc. IEEE International Conference on Robotics and Automation, (1988), p834-839.
9. Buss, SR, Kim, J, “Selectively damped least squares for inverse kinematics”, Journal of Graphic, (2005), 10(3), p37-49.
10. Vargas, LV, Leite, AC, Costa, RR, “Kinematic control of robot manipulators using filtered inverse”, Mediterranean Conference on Control & Automation, (2013), p27-33.
11. Vargas, LV, Leite, AC, Costa, RR, “Overcoming kinematic singularities with the filtered inverse approach”, International Federation of Automatic Control, (2014), p8496-8502.
12. Han, H, Lee, J, Park, J, “A continuous task transition algorithm for operational space control framework”, International Conference on Ubiquitous Robots and Ambient Intelligence, (2012), p148-152.
13. Han, H, Park, J, “Robot control near singularity and joint limit using a continuous task transition algorithm”, International Journal of Advanced Robotic System, (2013), 10.
14. 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.
15. Dariush, B, Zhu, Y, Arumbakkam, A, Fujimura, K, “Constrained closed loop inverse kinematics”, in Proc. IEEE International Conference on Robotics and Automation, (2010), p2499-2506.
16. Dariush, B, Gienger, M, Jian, B, Goerick, C, Fujimura, K, “Whole body humanoid control from human motion descriptors”, in Proc. IEEE International Conference on Robotics and Automation, (2008), p2677-2684.
17. Sugihara, T, “Solvability-Unconcerned Inverse Kinematics by the Levenberg-Marquardt Method”, IEEE Trans. Robotics, (2011), 27(5), p984-991.
18. Xiang, J, Zhong, C, Wei, W, “General-weighted least-norm control for redundant manipulators”, IEEE Trans. Robotics, (2010), 26(4), p660-669.
19. Kim, S, Kim, M, Hwang, J, Chae, J, Park, B, Cho, H, Sim, J, Jung, J, Lee, H , , “Approach of team snu to the darpa robotics challenge finals”, in IEEE/RAS International Conference on Humanoid Robots, (2015), p777-784.
20. Rohmer, E, Singh, SP, Freese, M, “V-rep: A versatile and scalable robot simulation framework”, in IEEE/RAS International Conference on Intelligent Robots and Systems, (2013), p1321-1326.
21. Chiaverini, S, “Singularity-robust task-priority redundancy resolution for real-time kinematic control of robot manipulators”, IEEE Transactions on Robotics and Automation, (1997), 13(3), p398-410.
22. Pechev, AN, “Inverse kinematics without matrix inversion”, in Proc. IEEE International Conference on Robotics and Automation, (2008), p2005-2012.
23. Chiaverini, S, Siciliano, B, Egeland, O, “Review of the damped least squares inverse kinematics with experiments on an industrial robot manipulator”, IEEE Trans. Control System Technology, (1994), 2(2), p123-134.
24. Cline, AK, Moler, CB, Steward, GW, Wilkinson, JH, “An estimate for the condition number of a matrix”, SIAM Journal on Numerical Analysis, (1979), 16(2), p368-375.
25. Schreiber, G, Hirzinger, G, “Singularity consistent inverse kinematics by enhancing the jacobian transpose”, Advances in Robot Kinematics: Analysis and Control, (1998), Springer, p 475-482.
26. Sciavicco, L, Siciliano, B, “Modelling and Control of Robot Manipulators”, (1996), McGraw Hill Companies Inc.
27. Lee, A, Yim, J, Choi, Y, “Scaled Jacobian Transpose based Control for Robotic Manipulators”, Int. J. Control Autom. Syst, (2014), 12(5), p1102-1109.
28. Lee, J, Mansard, N, Park, J, “Intermediate desired value approach for continuous transition among multiple tasks of robots”, in Proc. IEEE International Conference on Robotics and Automation, (2011), p2677-2684.
29. Lee, J, Mansard, N, Park, J, “Intermediate desired value approach for task transition of robots in kinematic control”, IEEE Transactions on Robotics and Automation, (2012), 28(6), p1260-1277.
30. Oetomo, D, Ang, M, Singularity robust algorithm in serial manipulators, Robotics and Computer-Integrated Manufacturing, (2009), 25, p122-134.
31. DYROS Hompage, 'Experimental Result', Available: http://dyros.snu.ac.kr/singularity-video/ Accessed: Faburary 22, 2017], (2017).
32. Microsoft, 'QueryPerformanceCounter Function', Available: http://msdn. microsoft.com/ko-kr/library/windows/desktop/ms644904(v=vs.85).aspx [Accessed: Faburary 22, 2017], (2017).
33. Yee, G, Kim, Y, Kim, A, Kang, G, Choi, H, “Force and Pose Control for Anthropomorphic Robotic Hand with Redundancy”, Journal of Korea Robotics Society, (2015), 10(4), p179-185.

김 상 현

2012 서울대학교 기계항공공학부(공학사)

2012 ~ 현재 서울대학교 융합과학부 석사, 박 사 통합과정

관심분야: Robot Hand, Dual Arm Manipulator

박 재 흥

1995 서울대학교 항공우주공학과(공학사)

1999 서울대학교 항공우주공학과(공학석사)

2006 Stanford University Aero/Astro(공학 박사)

2009 ~ 현재 서울대학교 융합과학기술대학원 교수

관심분야: Robot-environment Interaction, Contact Force Control, Multi Contact Control, Whole-body Dynamic Control, Biomechanics