본문 바로가기
전공 관련 (Major)/로보틱스 (Robotics)

Jacobian Matrix, Hessian Matrix (자코비안, 헤시안 행렬)

by Jayce_choi 2022. 9. 20.
반응형

Jacobian Matrix (야코비언 또는 자코비안) 

Jacobian Matrix [1]

Jacobian (자코비안)은 일차 미분의 요소들로 구성된 행렬로서 다변수 벡터 함수 (vector-valued function of multiple variables)에 대한 일차 미분 행렬입니다. 

미분이란 목적 자체가 지역적인 변화 특성을 보기 위해서 사용되기 때문에 선형 근사나 또는 타깃 하는 함수의 maximum (or Minimum)을 찾는데 마찬가지로 사용됩니다. 이 과정을 통해서 비선형 변환을 선형 변환으로 근사 시키는 역할을 합니다. 마치 도형을 잘 개 쪼개어서 보는 느낌인 셈입니다.

 

로봇 영역에서의 자코비안 역할

자코비안 J는 로봇 manipulator의 각 조인트가 가진 각속도를 manipulator의 end effector의 선형 속도 및 각속도로 바꿔주는 역할을 합니다. 마찬가지로 end effector의 선형 힘 요소들을 manipulator의 각 조인트에 걸리는 토크로 변환하는 역할을 하기에 Duality라고 부르기도 합니다. 

아래 그림에서 u_dot에 해당하는 행렬은 왼쪽 행렬이며 오른쪽 행렬은 자코비안과 조인트 space의 각속도 행렬이 곱해져 있습니다. 3차원에서는 왼쪽 행렬의 요소가 6개 (선형 속도 + 각속도)가 되지만 오른쪽 같은 경우 각속도는 즉 조인트의 개수 (i.e. servo motor or linear actuators, revolute joints)에 따라서 n이 결정됩니다. 

예를 들어서 SCARA Robot을 생각해봅시다. 

SCARA로봇은 Revolute joint 2개, Prismatic joint 1개로 구성되어 있기 때문에 아래와 같이 오른쪽 행렬에서 theta 2개와 displacement를 의미하는 d로 총 3개의 요소들로 구성되어 있습니다. 

 

Hessian Matrix (헤시안 또는 헤세 행렬)

헤시안 행렬은 원소들이 이계도 함수로 구성된 행렬입니다. 

Hessian Matrix [2]

자코비안 행렬이 일차 미분 (first derivative)를 나타내었지만 Hessian은 이차 미분 (second derivative)를 나타냅니다. 

함수 f의 극점이 존재할 때, 해당 극점이 극대인지 극소인지 아니면 saddle point인지를 판단하기 위해서는 이차 미분 값을 파악해야 하며 이때 Hessian matrix가 사용됩니다. 이를 통해 함수의 critical point (또는 stationary point)를 파악할 수 있습니다. 최적화 문제에서는 아래와 같이 f의 함수를 p 지점에서 2차 Tayler expansion을 통해서 2차 항까지 근사화함으로써 지점의 최대, 최소를 파악할 수 있습니다. 

Critical point를 파악하기 위해서는 Hessian 행렬이 가진 고윳값 (eigen value)을 파악해야 합니다.

- eigenvalue가 모두 양수일 때: 해당 지점에서 함수는 극소값을 가짐 (아래로 볼록)
- eigenvalue가 모두 음수일 때: 해당 지점에서 함수는 극대 값을 가짐 (볼록)
- eigenvalue가 음과 양이 같이 있을 때: 함수는 해당 지점에서 변곡점을 가짐 (아래 볼록과 위 볼록이 교차함)

 

로봇 영역에서 Hessian Matrix

End effector의 속도 성분과 조인트 space의 각속도 식에서 미분을 한번 더해주면 End effector의 가속도 성분과 Joint space의 각가속도 간의 연결을 완성시켜주는 역할로 Hessian이 사용됩니다. 

이를 통해서 Inverse kinematics를 수행할 때 주어진 output acceleration (End effector의 가속도)으로 joint의 가속도를 찾아낼 때 반드시 Hessian matrix가 필요합니다. 

 

Reference

[1] http://en.wikipedia.org/wiki/Jacobian_matrix

[2] https://en.wikipedia.org/wiki/Hessian_matrix

반응형

댓글