지금까지 알아본 동역학/역동역학 산출 방식은 모두 파라미터들을 기반으로 계산됨을 알 수 있습니다.
하지만, 실제로는 모든 파라미터들을 정확하게 얻어내기 쉽지 않습니다.
로봇 동역학 모델 식(2.48)을 다시 보면서 얘기하자면,
$M(q)\ddot{q}+C(q, \dot{q})\dot{q}+g(q)+d=\tau$
본 식을 정확하게 구현함에 있어서 가장 어려운 부분은 로봇 링크들의 질량 $m$, 링크 별 무게중심까지의 거리 $r$, 링크 관성 $I$, 관절 구동기 관성 $I_m$, 관절의 마찰계수 $F_s, F_v$와 같은 동역학 파라미터를 정확하게 알기 어려운 것입니다.
그래서 동역학 모델 식 구조를 활용하여 동역학 파라미터들을 추정하는 문제는 오래도록 연구되고 있으며, 이에 대한 예제를 가지고 고찰해보고자 합니다.
아래와 같이 링크 관성을 갖는 1 링크 로봇 매니퓰레이터의 동역학 모델 식 (2.17)에 관절 구동기의 관성력 및 정지마찰력 및 운동마찰력을 추가하여 재배열 한다면,
* 참고: 2022.06.02 - [Robot Theory/Manipulator Theory] - 동역학 - 라그랑주 운동방정식 2
이와 같이 식 (2.62)의 우변 성분인 $\mathbf{\mathit{Y}}(q, \dot{q}, \ddot{q})$는 리그레서 (regressor)라 불리우며, 이를 이용하게 되면 비선형의 동역학 모델이 식 (2.62)와 같이 동역학 파라미터 벡터에 관한 선형성을 가지도록 표현할 수 있습니다.
즉, 비선형성의 동역학 파라미터를 regressor를 활용해서 선형화하게 되므로 역으로 identification 할 수 있음을 의미합니다.
따라서 4개의 입출력 데이터($q, \dot{q}, \ddot{q}, \tau$)값만 알고 있으면 이론적으로는 동역학 파라미터 벡터를 정확하게 찾을 수 있습니다.
예를 들어, 로봇에 임의의 관절 토크 $\tau_1$을 인가하고 같은 시간에 관절정보 $q_1, \dot{q}_1, \ddot{q}_1$을 측정하고, 다시 서로 다른 관절 토크 입력을 인가하면서 3번 더 반복하여 데이터를 얻으면, 다음과 같이 동역학 파라미터를 역으로 계산할 수 있습니다.
이때, 식 (2.63)이 유일 해를 가지기 위해서는
1) 가속도를 측정할 수 있어야 한다.
2) 리그레서로 구성된 행렬의 역행렬이 존재해야 한다.
라는 조건을 항상 기억해야 합니다.
2-링크 로봇 매니퓰레이터의 리그레서
지금까지 알아본 리그레서를 한번 2-링크 로봇 매니퓰레이터에 적용해봅시다.
식 (2.46), (2.47)과 같은 2-링크 동역학 모델 식에 리그레서와 동역학 파라미터 벡터를 아래와 같이 분리할 수 있습니다. 1
이때 리그레서 행렬은 $(2\times10)$의 크기를 가지기 때문에 적어도 서로 다른 5개의 데이터 set이 필요하다.
이를 이용하여 식 (2.66)과 같은 정방행렬을 만들고, 이의 역행렬이 존재한다면 동역학 파라미터 벡터 값들을 얻을 수 있습니다.
이와 같이 어떤 로봇이던지 동역학 모델만 주어진다면 항상 리그레서를 정의할 수 있고, 동역학 파라미터를 식별할 수 있는 방법론이 존재한다는 것을 알 수 있습니다.
모멘텀에 기반한 리그레서
식 (2.62)에 기반한 리그레서의 경우, 1) 모든 관절의 가속도 정보를 측정할 수 있어야 하고, 2) 리그레서 행렬의 rank가 식별하고자 하는 동역학 파라미터 벡터의 차원을 유지할 수 있어야 합니다 (위에서 언급한 두 가지 조건).
우선 첫번째 조건을 완화하기 위해 다음과 같은 모멘텀 변환식을 도입합니다.
$p$는 선형 모멘텀과 각 모멘텀을 포함하는 generalized momentum입니다. 그리고 관성행렬 $M(q)$은 양의 범위에서의 한정이기 때문에 위의 변화는 언제나 구현 가능합니다. 따라서 시간에 대한 미분을 수행하면,
식 (2.68)에 로봇 동역학 모델 식 (2.48)을 도입하여 정리하면 다음과 같은 식을 얻을 수 있습니다.
이때 $\dot{M}=C+C^T$라는 성질을 적용하면, $\dot{p}=C^T(q, \dot{q})\dot{q}-g(q)-d+\tau (2.70)$ 으로 정리 할 수 있습니다. 그리고 입력 토크를 제외한 항들에 대해서 리그레서를 새로 정의하고 이를 정리하면 다음과 같이 정리됩니다.
이렇게 얻어진 리그레서 양변에 시간에 대해 적분하면 다음과 같습니다.
또 다른 리그레서를 얻기 위해 식 (2.67)에서 다음과 같이 정의합니다.
이렇게 (2.74)를 식 (2.73)에 적용하면 다음과 같은 가속도 정보가 필요 없는 모멘텀 변환식에 기반한 새로운 리그레서를 얻을 수 있습니다.
최종적으로,
이렇게 식 (2.75)에 제시된 모멘텀 변환식 기반의 리그레서는 로봇 동역학 모델의 선형성 기반으로 얻어진 식 (2.65)의 적분 연산을 통해서 얻어진 것으로 생각될 수 있습니다.
식 (2.65) 또는 식 (2.75)를 통해 실제 동역학 파라미터를 식별하는 방법의 이론을 살펴봅시다.
이를 위해서 다음과 같이 동역학 파라미터 식별을 위한 데이터들이 샘플링 시간 $\delta T$마다 주어진다고 가정합니다.
즉, $tau_1$이 입력으로 로봇에 인가 될 때, $[\dot{q}_1, q_1]$의 정보를 얻고, 다음 번 샘플링에서 $\tau_2$이 입력으로 인가될 때, $[\dot{q}_2, q_2]$의 정보를 얻고 ... 이와 같이 실시간으로 매 샘플링마다 얻고 있다고 가정합니다.
그러면 식 (2.65)를 이용하게 되면 위 데이터를 기반으로 수치 미분하여 가속도 정보를 추정하여 사용해야 하는데, 이는 일반적으로 수치 미분에 기인한 노이즈 정보들 때문에 좋은 결과를 기대하기 힘듭니다.
그렇기 때문에, 여기서는 식 (2.75)를 이용하여 실제 동역학 파라미터를 식별하는 방법을 사용합니다. 2
식 (2.78)의 입출력 데이터를 이용하여 다음과 같은 선형 대수 방정식을 매 샘플링마다 구성할 수 있습니다.
입출력 관계로부터 동역학 파라미터를 추정함에 있어서 생성될 수 있는 오차를 최소화할 수 있는 최적화 방법은,
N번째에서 추정된 동역학 파라미터 벡터 $\hat{\theta_n}$를 결정함에 있어서 $i=1,2, ... ,n$까지 측정된 데이터들에 적용하여 전체 추정오차 (estimation error) 자승의 합을 최소화할 수 있도록 결정합니다.
이러한 최적 해를 구하기 위하여 n번째 샘플링에서의 추정 동역학 파라미터 벡터로 다음과 같이 미분하여 0이 되도록 만들면 최소의 자승오차 (squared error)를 가지는 해를 얻을 수 있습니다.
최종적으로 n번째 샘플링에서의 동역학 파라미터 벡터는 식 (2.83)과 같이 결정되어야 합니다.
최적화 해 식 (2.83)을 recursive의 방법으로 구현할 수도 있으며, 이는 가장 단순한 현태의 칼만 필터 유도과정이라고 할 수 있으며, 그 첫 단계로 다음의 역행렬을 정의합니다.
식 (2.85)와 같이 역행렬 정리가 항상 성립하므로, A와 D의 역행렬은 항상 존재해야 합니다. 결과적으로 식 (2.84)에 적용하면,
식 (2.85)를 식 (2.84)에 적용하면,
두번째 단계로 식 (2.87)과 같은 벡터를 정의하고, 세번째 단계로 식 (2.88)과 같은 새로운 행렬을 정의하고 정리합니다.
마지막 네번째 단계로 식 (2.83)을 식 (2.86) ~ (2.88)들을 사용하여 정리해보면,
결과적으로는 너무 복잡해졌는데, 식 (2.89)를 해석해보면,
n번째 샘플링에서의 파라미터 추정치 ($\theta_n$)는 이전 샘플링에서의 추정치 ($\theta_{n-1}$)를 현재의 데이터에 넣어 얻어진 예측 오차(estimation error)에 이득 ($K_n$)을 곱하고 이전 추정치에 더하여 얻어집니다.
지금까지 동역학 파라미터 식별을 위해 얻어진 가장 간단한 형태의 칼만필터 알고리즘을 정리하면 다음과 같습니다.
1) 초기치 설정 $P_{(0)}=E, \theta_{(0)}=0$
2) 현재 $(n)$번째 샘플링 시간에 데이터 $Y_{(n)}, u_{(n)}$를 얻는다
3) 식 (2.86)을 이용하여 $P_{(n)}$을 찾는다
4) 식 (2.88)을 이용하여 $K_{(n)}$를 찾는다
5) 현재 동역학 파라미터 추정치 $\theta_{(n)}$는 식 (2.89)를 이용하여 얻는다
위 사항은 결국 최적해 (2.83)을 recursive 방법으로 얻고 있는 것이며, 결과는 샘플링 횟수가 커짐에 따라서 서로 같아집니다.
물론, 초기에는 좀 다른 양상을 보일 수는 있으나, 이는 초기에 설정된 임의의 값에 영향을 받는 것이기 때문입니다.
1링크 로봇 동역학 모델에서의 동역학 파라미터 식별
지금까지 유도한 동역학 파라미터 식별 방법을 1링크 매니퓰레이터에 적용해 봅시다.
가장 간단한 1링크 로봇 동역학 모델 (식 2.90)을 활용하여 동역학 파라미터 식별을 수행하면 다음과 같습니다.
동역학 파라미터 벡터는 $\theta=[I+I_m, mr, F_s, F_v]^T$로 이용합니다.
그리고 모멘텀 변환 기반의 리그레서를 얻기 위해서 식 (2.90)의 동역학 모델에 다음과 같은 변환식을 도입하면,
따라서 최종적으로 다음과 같이 변환되며, 여기서 $W_1(q, \dot{q})\theta$는 다음과 같습니다.
모멘텀 기반 리그레서는 다음과 같이 얻어집니다.
결국 이러한 방법은 동역학 파라미터를 추정할 때 주로 쓰이는 방법임을 알아두셔야 합니다 (실제 제어할 때마다 수행하는 작업이 아니라는 뜻).
실제 로봇 팔의 inverse dynamics를 구할 때는 RNE(Recursive Newron Euler) 방법을 활용해서 구하는 경우가 많습니다.
참고논문
[1] 최영진, "모멘텀을 이용한 로봇 동역학 파라미터 식별", Journal of Korea Robotics Society, vol 7, no. 3, 2012.
이상입니다.
* 본 글은 "실험로보틱스 교재 I(매니퓰래이션 및 비젼), 한국로봇학회, 제어로봇시스템학회, 한국로봇산업진흥원 "의 내용을 공부하면서 정리한 내용을 포스팅 한 것 입니다.
- 참고: 2022.07.12 - [Robot Theory/Manipulator Theory] - 동역학 - 뉴턴 오일러 운동방정식 3 [본문으로]
- 모멘텀 변환식 기반의 리그레서 [본문으로]
'Robot Theory > Manipulator Theory' 카테고리의 다른 글
위치제어 (0) | 2022.10.28 |
---|---|
궤적 생성 방법 (0) | 2022.08.29 |
Dynamics and Inverse dynamics (0) | 2022.07.25 |
동역학 - 뉴턴 오일러 운동방정식 3 (0) | 2022.07.12 |
동역학 - 뉴턴 오일러 운동방정식 2 (0) | 2022.07.04 |