hongtlee 님의 블로그

조작성 타원체(Manipulability) 본문

Study/Robotics

조작성 타원체(Manipulability)

hongtlee 2025. 3. 10. 16:39

1. Singularity

협동로봇을 다룰 때, Singularity에 대한 고려가 빠질 수 없다.

 

간단하게 생각하면,

연립방정식을 풀 때 얻어야 하는 미지수의 갯수보다 방정식의 갯수가 적어 해가 없거나 무한이 많아지는 경우가 생기는데,
이때가 singularity가 된다.

이는 jacobian에서 rank를 잃었을 때와 동치이다.

 

위와 같은 상황에 빠지게 되는 기구학적 상황이 있다.

  • shoulder singularity
  • elbow singularity
  • wrist singularity

특정 축끼리 평행하거나 일직선 상에 놓여 rank를 잃어버리기 때문이다.

 

이외에 로봇의 작업영역 바깥 경계에 발생하는 특이점이 있는데, 이는 로봇의 작업 공간에서 벗어나지 않으면 해결된다.


2. Manipulability

실제로 로봇을 조작해보면, singularity라 로봇은 정지되었지만 계산해보면 rank를 잃어버린 경우는 적다.

 

잘 생각해보면, 특이점은 특정 자세에서 특정 방향으로 움직일 수 없는 상태이다.

즉, 아무리 특이점에 가까운 자세라도 방향이 괜찮으면 움직일 수 있는 것이다. 따라서 이런 경우의 자코비안은 rank는 full rank이다.

 

그렇다 하더라도 특이점 근처임은 확실한데, 어느 방향으로 취약한지 알아야 전략적으로 로봇 자세를 선택할 수 있을 것이다.

이를 정량적으로 측정하는 방법이 있다.

(Yoshikawa, T. (1985). Manipulability of robotic mechanisms. The international journal of Robotics Research, 4(2), 3-9.)

 

https://hongtlee.tistory.com/16 의 트위스트에서 시작한다.
(혹은 자코비안 포스팅 참조 : https://hongtlee.tistory.com/19)

 

트위스트는 강체의 속도운동을 선속도(3×1)와 각속도 3×1)로 나타낸 6차원 벡터(6×1)이다.

또한, 자코비안의 각 열이 각 조인트의 트위스트에 해당한다.

 

우리는 보통 end effector의 선속도나 각속도에 관심이 있으므로 물체 자코비안을 다루는 것이 맞다.

 

자코비안, $J = \begin{bmatrix} \omega \\ v \end{bmatrix} \in \mathbb{R}^n$ .  
$n$개 관절로 이루어진 manipulator와 $q \in \mathbb{R}^m$ 으로 주어지는 작업공간이 있다.  
이때 $m \leq n$ 이고, 조작성 타원체는 $n$차원 관절 속도 공간의 단위 구 $\lVert \dot{\theta} \rVert = 1$에 해당하는 엔드 이펙터의 속도를 나타냄.

자코비안 $J$의 역이 존재한다고 가정하면, 관절 속도의 단위 구 조건은 다음과 같이 다시 표현할 수 있다.

\[
1 = \dot{\theta}^T \dot{\theta} 
= (J^{-1} \dot{q})^T (J^{-1} \dot{q}) 
= \dot{q}^T J^{-T} J^{-1} \dot{q} 
= \dot{q}^T (JJ^T)^{-1} \dot{q} = \dot{q}^T A^{-1} \dot{q}
\]

자코비안 $J$가 최대 랭크($m$)라면, 행렬 $A = JJ^T \in \mathbb{R}^{m \times m}$은 정방, 대칭, 양의 정부호 행렬이고 $A^{-1}$ 역시 마찬가지다.

양의 정부호 대칭 행렬 $A^{-1} \in \mathbb{R}^{m \times m}$에 대해 다음 식을 만족하는 $\dot{q} \in \mathbb{R}^m$ 벡터들은 $m$차원 공간에서 타원체를 형성한다.

\[
\dot{q}^T A^{-1} \dot{q} = 1
\]

 

한편, 자코비안 $J = \begin{bmatrix} \omega \\ v \end{bmatrix} \in \mathbb{R}^n$ 위 3행은 각속도(회전), 아래 3행은 선속도에 해당.

그런데 회전의 경우 $\frac{1}{s}$ 이고, 선속도는 $\frac{m}{s}$의 차원을 가짐( $\because$ rad은 무차원 ).

전체 자코비안 $6 \times 6$ 행렬에 대해 조작성 타원체를 계산할 경우 선속도와 각속도의 단위에 따른 스케일링이 달라 값이 달라질 수 있음.

\[
J(\theta) = \begin{bmatrix} J_\omega(\theta) \\ J_v(\theta) \end{bmatrix}
\]

→ **각속도 조작성 타원체**  

\[
A = J_\omega J_\omega^T
\]

행렬의 고유 벡터를 주축으로 하고 고윳값 제곱근을 반지름으로 한다.

→ **선속도 조작성 타원체**  

\[
A = J_v J_v^T
\]

즉, 자코비안의 6×6 행렬 전체에 대해 $A = JJ^T \in \mathbb{R}^{m \times m}$ 하는 것이 아니라, 선속도 & 각속도 각각에 대해 행렬 A를 생성할 수 있다.

 

정리하면 행렬 A(3×3 행렬)가 얻어지는데, 행렬 A에 고윳값 분해를 통해 3개씩의 eigenvalues와 eigenvectors을 구할 수 있다.

얻어진 eigenvector는 조작성 타원체의 축이고, 매칭되는 eigenvalue는 각 축의 길이이다.

 

Yoshikawa에 따르면 

  • condition number = 장축/단축
  • volume = det(A)

 

행렬의 고유 벡터를 주축으로 하고 고윳값 제곱근을 반지름으로 한다.

조건 수가 1에 가까울수록 어느 방향으로든 쉽게 움직일 수 있고, $\infty$에 가까울수록 특이점에 가까워진다.

50보다 터지면 특이점에 가깝다고 봐도 될 것 같다.


또한, 조작성 타원체의 부피가 클수록 특이점에서 유리해진다.


※ 아래 내용은 책에 적힌 내용이 아니라 필자가 생각한 내용으로 증명되지 않았으므로 틀릴 수 있습니다. 틀린 내용 지적해주시면 감사하겠습니다

3. 선속도 방향 판단

 

조작성 타원체를 통해 특정 방향(eigenvector)에 대해 운동이 유불리한지 판단할 수 있게 되었다.

 

선속도 조작성 타원체에 대해서 생각해보면, 단축과 장축의 ratio를 통해 특이점에 근접한지 계산 했었다.

그렇다면 타원체에 목표하는 선속도 벡터를 넣으면 해당 벡터에 대해 값을 구할 수 있을 것이다.

이 값이 해당 벡터 방향으로 가질 수 있는 속도 값으로 생각할 수 있다.

 

특정 지점으로 직선 이동해야 한다면(moveL), 현재 위치로부터 목표점까지의 거리와 방향을 알 수 있다.

 

자코비안으로 계산한 조작성 타원체로부터 목표 방향에 대한 축 길이(선속도)를 구하고,

목표 거리에 단위 시간에 대해 이동한다 가정하면 목표 거리가 속도가 되므로 무차원 수가 된다.

개인적으로 kappa로 명명했다.

 

kappa ≤ 1이면 이동할 수 있다고 보고있다(= 조작성 타원체 내부의 점으로 이동).

 

다음 포스팅은 moveL에 대해 생각해 보겠다.

'Study > Robotics' 카테고리의 다른 글

MoveL Test (check possibility)  (0) 2025.03.11
Inverse Kinematics  (0) 2025.03.06
Jacobian  (0) 2025.03.06
POE - Forward Kinematics  (1) 2025.03.06
Lie Theory(2)  (1) 2025.03.05