1. 서 론
최근에 4차 산업혁명의 물결에 힘입어 서비스 형 소형 로봇팔의 수요와 관심도가 급증하였다. 급증한 수요와 관심 덕에 주로 산업현장에서 조립 작업 등으로
사용되어 왔던 로봇팔이 양팔형 소형화를 거쳐 실생활의 서비스 로봇으로 사용될 수 있게 되었다. 소형 협업 로봇팔은 주로 사람의 일을 대신하거나 사람과
같이 협업하여 업무 효율을 높이는 것에 의의가 있다. 따라서 소형 협업 로봇팔은 팔 끝에 도구를 장착하고 주로 사람과 같이 작업을 하는 경우가 많아
높은 안정성이 요구되고 높은 정밀도의 강건한 위치 제어에 대한 연구가 요구된다.
일반적으로 산업 로봇팔에 사용되었던 중력을 보상하는 PID 제어 방식은 중력모델 이외에 페이로드, 백래쉬, 히스테리시스 혹은 마찰력과 같은 비선형적
동적 모델을 보상할 수 없다는 단점이 있다. 이로 인해 로봇팔의 경로 추종 성능이 저하된다. 그러므로 이러한 불확실한 동적 모델을 보상할 수 있는
강건 제어 방식이 요구된다.
강건 제어 방식에는 모델을 기반으로 불확실성을 제거하는 방식과 모델을 사용하지 않는 방식이 있다. 대표적인 모델 기반 방식으로는 비선형 외란 관측기(Disturbance
observer: DOB)가 있다. 로봇의 동적 모델을 통해 외란을 추정하여 없애는 방식이지만 동적 모델의 정확성에 따라 성능이 좌우된다.
본 논문에서 제시하는 강건 제어 기법은 시간 지연 제어(time-delayed controller: TDC)이다(1-3). 시간 지연 제어방식은 무모델 비선형 외란 관측기의 하나로 구현이 간단하고, 모델을 요구하지 않을 뿐만 아니라 외란을 효과적으로 제거할 수 있는
장점을 갖고 있다. 그로 인해 강건한 로봇팔의 위치 제어에 많이 사용되어 왔다(4-7). 시간 지연 제어방식은 그 구조상 무모델 비선형 외란 관측기이고 그 성능을 로봇팔로 검증하였다(8).
시간 지연 제어기의 성능을 향상시키기 위해서 몇 가지 조건이 필요하다. 첫 번째로 빠른 샘플링 시간이고, 두 번째로 안정성을 보장하는 관성행렬의 상수
값이 필요하다. 마지막으로 각 조인트의 각가속도의 정확한 추정값이 필요하다. 첫 번째 조건은 고성능 하드웨어로 빠른 샘플링 시간을 해결할 수 있다.
근래에 하드웨어의 성능이 나날이 향상되고 있어 첫 번째 조건은 충족 되고 있다. 두 번째 조건은 동역학 모델에서 시뮬레이션을 통해 구한 값을 기준으로
실험적으로 적절한 값을 찾아 사용해야 한다. 매 실험마다 상수 관성 행렬의 값을 변경하면서 해당 시스템에 가장 적합한 상수값을 찾아야 한다(9-11).
본 논문에서는 세 번째 조건인 가속도 추정에 주목하였다. 세 번째 조건은 시스템에서 출력되는 각가속도를 추정하는 것으로 필터링하거나 수식적 관계를
이용하여 추정할 수밖에 없다. 각가속도의 정확한 추정을 위해 다섯 가지 방법을 제시하고, 원 경로를 추종하여 그에 따른 성능을 비교한다. 또한 각
방법을 구현하기 위한 알고리즘과 알고리즘의 실행 시간을 비교하여 구현 측면에서 특성을 비교 분석한다.
2. 본 론
본론에서는 실험에 사용한 시스템을 소개하고, 일반적인 동역학과 시간 지연 제어기의 제어기법에 관해 설명한다. 그리고 시간 지연 제어기를 적용하기 위해
다섯 가지의 각가속도 추정 방법에 대해 설명한다.
2.1 시스템 소개
다양한 방식의 성능을 비교 실험하기 위해 그림 1의 양팔형 로봇팔을 사용하였다. 그림 1은 자체 제작한 6축 로봇 팔과 이륜 밸런싱 시스템이 적용된 한국형 서비스 로봇(KOBOKER)이다(12). KOBOKER의 각 관절은 맥슨 모터로 구성되어 있고, 맥슨 모터 드라이버로 모터 제어를 한다. 본 논문에서는 한 쪽 팔의 3개 관절만 실험한다.
그림. 1. KOBOKER
Fig. 1. KOBOKER
그림. 2. 시스템 구성도
Fig. 2. System configuration
그림 2는 KOBOKER와 연산제어기회로 간의 시스템 구성도이다. 상위 제어기인 TMS320F28335에서 제어 신호가 발생되고, CAN Transceiver를
통해 모터 드라이버로 신호가 전송된다. 전송된 제어 신호는 모터 드라이버를 거쳐 모터로 입력된다.
모터가 동작하면, 엔코더 신호가 발생한다. 엔코더 신호는 모터 드라이버와 CAN Transceiver를 거쳐 상위 제어기인 TMS320F28335로
전송된다. 이 과정을 반복하여 로봇팔의 위치 제어를 위한 폐루프가 구성된다.
2.2 로봇 동역학
식 (1)은 일반적인 $n$관절 로봇 팔 동역학식이다.
여기서 $D(q(t))$는 $n\times n$ 크기의 행렬인 관성 행렬, $\ddot q(t)$는 $n\times 1$ 크기의 벡터인 각가속도,
$C(q(t),\:\dot q(t))$는 $n\times 1$ 크기의 벡터인 전향력과 원심력, $G(q(t))$는 $n\times 1$ 크기의 벡터인
중력, $\tau_{u}(t)$는 $n\times 1$ 크기의 벡터인 불확실성 토크, 그리고 $\tau(t)$는 $n\times 1$ 크기의 벡터인
토크이다.
식 (1)에서 $\bar{D}\ddot q(t)$를 더하고 뺀 뒤에 관성텀 $\bar{D}\ddot q(t)$을 제외한 모든 텀을 다음과 같이 정의한다.
여기서 $H(t)$는 $n\times 1$ 크기의 벡터이고, $H(t)$는 관성을 제외한 모든 동적요소를 포함한다.
결국 식 (1)의 동역학식은 다음과 같이 간단하게 표현된다.
식 (3)은 일반적인 로봇 동역학인 식 (1)을 상수 관성 행렬을 이용하여 다시 표현한 식이다. 이때 $\bar{D}$는 $n\times n$ 크기의 행렬이고, 그 값은 $\bar{D}=\alpha
I$이다. 시간 지연 제어기는 상수 관성 행렬인 $\bar{D}$를 이용해 $H(t)$을 제거한다. 이 과정을 통해 coupling된 로봇팔의 동역학
관계를 decoupling하여 각 관절에 대한 제어를 독립적으로 선형화할 수 있다.
2.3 시간지연제어방식
시간 지연 제어기는 강건 제어의 일종으로 한 샘플 이전의 시스템 정보를 이용하여 불확실성을 제거하는 제어기이다. 제어 방식이 간단하고, 무모델 외란
관측기로서 각 관절을 독립적으로 제어할 수 있다는 것이 장점이다.
시간 지연 제어기의 제어입력은 다음과 같다.
여기서 오차는 $e(t)=q_{d}(t)-q(t)$이다. $u(t)$는 $n\times 1$ 크기의 벡터인 제어 입력이고, $q_{d}(t)$는 $n\times
1$ 크기의 벡터인 원하는 조인트 각도이고, $K_{P}$와 $K_{D}$는 각각 비례 이득과 미분 이득이다.
식 (5)는 시간 지연 제어기의 제어법칙이다.
식 (5)에서 $\bar{D}$와 $\hat H(t)$는 각각 $D(q(t))$와 $H(t)$를 모델한 값이다. $\hat H(t)$를 구하기 위해 식 (3)의 관계를 정리하면 다음과 같다.
하지만 같은 샘플링 시간에 구현이 불가능하다. 따라서 시스템에 적용되는 제어기의 샘플링 타임 $T$가 매우 빠르다는 가정 하에, 식 (6)은 다음과 같이 지연된 형태로 표현할 수 있다.
식 (7)의 관계를 식 (5)에 대입하면 시간 지연 제어기의 제어법칙을 아래 식 (8)과 같이 표현할 수 있다.
따라서 시간 지연 제어기를 구현하기 위해서는 상수 관성 행렬인 $\bar{D}$, 이전 샘플링 타임의 각가속도 $\ddot q(t-T)$ 그리고 이전
샘플링 타임의 토크 $\tau(t-T)$가 필요하다. 그림 3은 시간 지연 제어기의 블록 다이어그램이다. 본 논문에서 시스템의 각가속도 $\ddot q(t-T)$를 위해 다섯 가지의 Estimation Scheme을
통해 추정한다.
그림. 3. 시간 지연 제어기의 블록 다이어그램
Fig. 3. Block diagram of time-delayed controller
2.4 각가속도 추정 방법
앞 절에서 시간 지연 제어기의 구현을 위해 이전 샘플링 타임의 각가속도가 필요하다는 것을 확인하였다. 따라서 시스템의 각가속도의 정확한 추정은 시간
지연 제어기의 성능에 있어 매우 중요한 요소 중 하나이다. 이 절에서 소개할 내용은 그림 4와 같이 시스템의 각가속도를 추정하는 다섯 가지 방법이다.
그림. 4. 각가속도를 추정하는 방법
Fig. 4. Estimation of angular acceleration
첫 번째 방법은 일차 필터인 finite dofference method(FDM)과 저역통과필터를 이용해 각속도와 각가속도를 구한다.
저역통과필터는 식 (9)의 각가속도 추정값을 고주파 성분은 제거하고, 차단 주파수를 기준으로 저주파 성분을 통과시켜 잡음을 제거하는 필터이다. 본 실험에서 사용한 저역통과필터의
차수는 2차이다. 식 (10)은 2차 저역통과필터의 s-domain에서의 식이다.
식 (10)을 이산영역에서 표현하면 식 (11)과 같다.
식 (11)에서 사용한 각 항의 계수는 다음과 같다. $A=1.911$, $B=-0.915$, $C=0.000945$, $D=0.00189$, $E=0.000945$.
그리고 입력 $x[k]=x_{k}$는 현재의 각가속도, $y[k]=y_{k}$은 필터링 된 각가속도 값이다. $k$는 현재, $k-1$는 한 샘플링
타임 이전 그리고 $k-2$는 두 샘플링 타임 이전을 지칭한다.
두 번째 방법은 칼만필터를 이용하여 각가속도를 추정하는 방법이다. 칼만필터는 동적 관계식을 시스템 행렬로 구성하고, 다음 상태를 예측한다. 각 조인트마다
사용된 칼만필터는 다음과 같이 모델링하고, 각각 독립적으로 적용하였다.
여기서 $x_{k}$는 $2\times 1$ 크기의 벡터인 상태 벡터, $A_{k}$는 $2\times 2$ 크기의 행렬인 상태 변환 행렬, $\omega_{k}$는
$2\times 1$ 크기의 벡터인 측정 벡터, $C_{k}$는 $1\times 2$ 크기의 측정 함수 행렬, $\upsilon_{k}$는 측정 잡음이다.
그림 5는 본 실험에 적용된 칼만필터 알고리즘이다.
그림. 5. 칼만필터 알고리즘
Fig. 5. Kalman filter algorightm
본 실험에 사용한 칼만필터의 $A_{k}$, $C_{k}$ 그리고 $2\times 2$ 크기의 공분산 행렬 $P_{k}$는 식 (14)와 같다.
그리고 시스템 잡음 행렬인 $Q$는 $2\times 2$ 크기의 행렬이고, $R$은 측정 잡음이다.
이와 같은 방법으로 칼만필터를 각 관절에 적용하여 각가속도를 추정하였다.
$\ddot q_{d}(t)$
세 번째 방법은 $\ddot q_{d}(t)$를 앞먹임 방법으로 하여 시스템의 각가속도를 추정한 것이다. $\ddot q_{d}(t)$는 이상적인
각가속도로 실제 각가속도 $\ddot q(t)$를 대체한다. 각가속도에 시간지연이 없이 사용할 수 있는 장점이 있지만 과도응답을 표현하기 어려운 문제가
있다.
$u(t)=\ddot q_{d}(t)+K_{D}\dot e(t)+K_{P}e(t)$
네 번째 방법은 제어 입력을 앞먹임 방법으로 하여 시스템의 각가속도를 추정한 것이다. Scheme 3와 $\ddot q_{d}(t)$를 사용하는 것은
같지만 오차텀이 추가되어 초기에 오차의 영향이 있을 것으로 판단된다.
$\ddot q(t)=J^{-1}(q(t)(\ddot X(t)-\dot J(q(t),\:\dot q(t))\dot q(t))$
다섯 번째 방법은 자코비안의 관계식을 이용한 방법이다. 자코비안은 시스템의 움직임을 해석하는 동기구학에서 쓰인다. 자코비안을 이해하기 위해 순기구학을
먼저 설명한다. 식 (16)은 순기구학 관계식이다.
식 (16)에서 $X$는 $n\times 1$ 크기의 카테시안 공간상의 위치 벡터이다. 식 (16)을 한번 미분하면, 식 (17), (18)과 같은 동기구학 관계가 형성되고, 자코비안 $J(q(t))$를 얻을 수 있다.
한 번 더 미분하여 정리하면
식 (18)의 관계를 통해 각가속도를 추정할 수 있다.
2.5 실험 환경
이번 절은 앞 절에서 소개한 각가속도의 다섯 가지 추정 방법을 실제 시스템에 적용하고, 로봇팔의 원 경로 추종에 대한 실험 결과를 소개한다. 실험은
그림 1의 KOBOKER의 오른쪽 팔의 첫 번째, 두 번째 그리고 네 번째 관절을 사용하였다. 각 관절의 $K_{P}$와 $K_{D}$는 각각 700과 70으로
하였다. 이때 원 경로의 주기 $T_{cir}$는 각각 5초와 10초로 하였다. 샘플링 시간은 $T =0.01s$이다. 원 경로 추종에 대한 RMSE
오차는 식 (19)와 같다.
그림. 6. 원 경로 추종을 구현한 모습
Fig. 6. The figure of the circular trajectory tracking result
그림 6은 이번 실험에 KOBOKER에 적용될 원 경로를 MATLAB 상에서 표현한 것이다. 자주색 선은 KOBOKER의 몸체를 대략적으로 표현한 것이다.
이번 실험에 적용된 원하는 원 경로는 식 (20)과 같다.
2.6 실험 결과
표 1은 원 경로 주기 $T_{cir}$가 5초일 때 상수 관성 행렬의 상수 값인 $\alpha$를 바꾸면서 실험한 RMSE 결과이다. 마찬가지로 표 2는 $T_{cir}$가 10초일 때 $\alpha$를 바꾸면서 실험한 RMSE 결과이다. 속도가 느릴 때의 성능이 더 좋았다.
표 1의 경우 제어 입력 $u$를 제외한 나머지 경우는 $\alpha$가 4.0일 때 가장 좋은 제어 성능을 보였다. 표 2의 경우 역시 제어 입력 $u$를 제외한 나머지 경우에서 $\alpha$가 7.0일 때 가장 좋은 제어 성능을 보였다.
표 1. $T_{cir}=5s$일 때 RMSE 값
Table 1. RMSE when $T_{cir}=5s$
$\alpha$
$\hat{\ddot q(t)}$
|
0.1
|
0.5
|
1.0
|
4.0
|
5.0
|
FDM&LPF
|
2.712
|
0.307
|
0.142
|
0.0355
|
unstable
|
KF
|
2.733
|
0.316
|
0.148
|
0.0353
|
unstable
|
$\ddot q_{d}$
|
2.740
|
0.316
|
0.148
|
0.0404
|
unstable
|
$u$
|
4.273
|
3.838
|
3.450
|
1.937
|
1.647
|
$J^{-1}(\ddot X -\dot J\dot q)$
|
2.728
|
0.308
|
0.142
|
0.0359
|
unstable
|
표 2. $T_{cir}=10s$일 때 RMSE 값
Table 2. RMSE when $T_{cir}=10s$
$\alpha$
$\hat{\ddot q(t)}$
|
0.1
|
0.5
|
1.0
|
7.0
|
10.0
|
FDM&LPF
|
0.707
|
0.110
|
0.0545
|
0.00986
|
unstable
|
KF
|
0.716
|
0.112
|
0.0559
|
0.0109
|
unstable
|
$\ddot q_{d}$
|
0.715
|
0.112
|
0.0561
|
0.0109
|
unstable
|
$u$
|
5.924
|
4.977
|
4.116
|
0.963
|
0.6819
|
$J^{-1}(\ddot X -\dot J\dot q)$
|
0.710
|
0.111
|
0.0546
|
0.00979
|
unstable
|
그림 7과 8은 $T_{c}=5s$, $\alpha =4.0$와 $T_{c}=10s$, $\alpha =7.0$일 경우 각 Scheme의 원 추종 결과를 나타낸
것이고, 그림 9와 10은 $T_{c}=5s$, $\alpha =4.0$와 $T_{c}=10s$, $\alpha =7.0$일 경우 각 Scheme의 시스템 출력 데이터를
나타낸 것이다. 각각 원 경로는 2 주기씩 추종하였다.
그림 7과 8은 좌측 상단부터 각 Scheme에 대한 원 추종 결과이고, 그림 9와 10은 상단부터 각 Scheme에 대한 시스템 출력 결과이다.
그림. 7. $T_{c}=5s$, $\alpha =4.0$일 때 각 Scheme의 원 경로 추종
Fig. 7. Circle Trajectory when $T_{c}=5s$, $\alpha =4.0$ in each scheme
그림. 8. $T_{c}=10s$, $\alpha =7.0$일 때 각 Scheme의 원 경로 추종
Fig. 8. Circle Trajectory when $T_{c}=10s$, $\alpha =7.0$ in each scheme
그림. 9. $T_{cir}=5s$, $\alpha =4.0$일 때 각 Scheme의 각도, 각속도, 각가속도
Fig. 9. Angle, angular velocity and angular acceleration in case $T_{cir}=5s$, $\alpha
=4.0$ in each scheme
그림. 10. $T_{c}=10s$, $\alpha =7.0$일 때 각 Scheme의 각도, 각속도, 각가속도
Fig. 10. Angle, angular velocity and angular acceleration in case $T_{c}=10s$, $\alpha
=7.0$ in each scheme
표 3은 각가속도의 추종 방법 별 시스템 전체 제어 알고리즘 실행 시간을 비교한 것이다. 표 3을 보면, 세 번째 방법인 $\ddot q_{d}$가 가장 적은 시간이 든다. FDM&LPF 방식에 비해 0.991배 적은 시간이다.
표 3. 각가속도 추정 방법 별 제어 알고리즘 실행 시간표
Table 3. Running time of control algorithms in case of method for angular acceleration
추정 방식
|
실행 시간(초)
|
정규화
|
FDM&LPF
|
0.00570
|
1.000
|
KF
|
0.00584
|
1.0247
|
$\ddot q_{d}$
|
0.00565
|
0.991
|
$u$
|
0.00582
|
1.0213
|
$J^{-1}(\ddot X -\dot J\dot q)$
|
0.00586
|
1.0280
|
서로 다른 주기일 때 성능이 다른 이유을 설명하기 위해 대표적으로 FDM&LPF의 토크를 비교하였다. 그림 11과 12는 각각 $T_{cir}=5s$, $\alpha =1.0$, FDM&LPF와 $T_{cir}=10s$, $\alpha =1.0$, FDM&LPF 경우의
모터에 인가되는 전류값이다.
$T_{cir}=5s$, $\alpha =1.0$, FDM&LPF일 경우 각 조인트에 인가되는 $I_{pp}$는 2045mA, 2525mA, 3566mA이고,
$T_{cir}=10s$, $\alpha =1.0$, FDM&LPF일 경우 각 조인트에 인가되는 $I_{pp}$는 2023mA, 2386mA, 2709mA이다.
이는 곧 각 조인트의 토크값으로 생각할 수 있다.
그림. 11. $T_{cir}=5s$, $\alpha =1.0$, FDM&LPF일 경우의 입력전류
Fig. 11. Torque data when $T_{cir}=5s$, $\alpha =1.0$, FDM&LPF
그림. 12. $T_{cir}=10s$, $\alpha =1.0$, FDM&LPF일 경우의 입력전류
Fig. 12. Torque data when $T_{cir}=10s$, $\alpha =1.0$, FDM&LPF