식 (2.62)에 기반한 리그레서의 경우, 1) 모든 관절의 가속도 정보를 측정할 수 있어야 하고, 2) 리그레서 행렬의 rank가 식별하고자 하는 동역학 파라미터 벡터의 차원을 유지할 수 있어야 합니다 (위에서 언급한 두 가지 조건).
우선 첫번째 조건을 완화하기 위해 다음과 같은 모멘텀 변환식을 도입합니다.
p는 선형 모멘텀과 각 모멘텀을 포함하는 generalized momentum입니다. 그리고 관성행렬 M(q)은 양의 범위에서의 한정이기 때문에 위의 변화는 언제나 구현 가능합니다. 따라서 시간에 대한 미분을 수행하면,
식 (2.68)에 로봇 동역학 모델 식 (2.48)을 도입하여 정리하면 다음과 같은 식을 얻을 수 있습니다.
이때 ˙M=C+CT라는 성질을 적용하면, ˙p=CT(q,˙q)˙q−g(q)−d+τ(2.70) 으로 정리 할 수 있습니다. 그리고 입력 토크를 제외한 항들에 대해서 리그레서를 새로 정의하고 이를 정리하면 다음과 같이 정리됩니다.
이렇게 얻어진 리그레서 양변에 시간에 대해 적분하면 다음과 같습니다.
또 다른 리그레서를 얻기 위해 식 (2.67)에서 다음과 같이 정의합니다.
이렇게 (2.74)를 식 (2.73)에 적용하면 다음과 같은 가속도 정보가 필요 없는 모멘텀 변환식에 기반한 새로운 리그레서를 얻을 수 있습니다.
최종적으로,
이렇게 식 (2.75)에 제시된 모멘텀 변환식 기반의 리그레서는 로봇 동역학 모델의 선형성 기반으로 얻어진 식 (2.65)의 적분 연산을 통해서 얻어진 것으로 생각될 수 있습니다.
식 (2.65) 또는 식 (2.75)를 통해 실제 동역학 파라미터를 식별하는 방법의 이론을 살펴봅시다.
이를 위해서 다음과 같이 동역학 파라미터 식별을 위한 데이터들이 샘플링 시간 δT마다 주어진다고 가정합니다.
즉, tau1이 입력으로 로봇에 인가 될 때, [˙q1,q1]의 정보를 얻고, 다음 번 샘플링에서 τ2이 입력으로 인가될 때, [˙q2,q2]의 정보를 얻고 ... 이와 같이 실시간으로 매 샘플링마다 얻고 있다고 가정합니다.
그러면 식 (2.65)를 이용하게 되면 위 데이터를 기반으로 수치 미분하여 가속도 정보를 추정하여 사용해야 하는데, 이는 일반적으로 수치 미분에 기인한 노이즈 정보들 때문에 좋은 결과를 기대하기 힘듭니다.
그렇기 때문에, 여기서는 식 (2.75)[각주:2]를 이용하여 실제 동역학 파라미터를 식별하는 방법을 사용합니다.
식 (2.78)의 입출력 데이터를 이용하여 다음과 같은 선형 대수 방정식을 매 샘플링마다 구성할 수 있습니다.
입출력 관계로부터 동역학 파라미터를 추정함에 있어서 생성될 수 있는 오차를 최소화할 수 있는 최적화 방법은, N번째에서 추정된 동역학 파라미터 벡터 ^θ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번째 샘플링에서의 파라미터 추정치 (θn)는 이전 샘플링에서의 추정치 (θn−1)를 현재의 데이터에 넣어 얻어진 예측 오차(estimation error)에 이득 (Kn)을 곱하고 이전 추정치에 더하여 얻어집니다.
지금까지 동역학 파라미터 식별을 위해 얻어진 가장 간단한 형태의 칼만필터 알고리즘을 정리하면 다음과 같습니다.
1) 초기치 설정 P(0)=E,θ(0)=0 2) 현재 (n)번째 샘플링 시간에 데이터 Y(n),u(n)를 얻는다 3) 식 (2.86)을 이용하여 P(n)을 찾는다 4) 식 (2.88)을 이용하여 K(n)를 찾는다 5) 현재 동역학 파라미터 추정치 θ(n)는 식 (2.89)를 이용하여 얻는다
위 사항은 결국 최적해 (2.83)을 recursive 방법으로 얻고 있는 것이며, 결과는 샘플링 횟수가 커짐에 따라서 서로 같아집니다.
물론, 초기에는 좀 다른 양상을 보일 수는 있으나, 이는 초기에 설정된 임의의 값에 영향을 받는 것이기 때문입니다.