6.109 영 공간을 이용한 부차 목표 최적화

6.109 영 공간을 이용한 부차 목표 최적화

1. 부차 목표 최적화의 필요성

여유 자유도 로봇에서 주 작업(primary task)인 말단 장치의 작업 공간 속도 추종은 역기구학 해를 유일하게 결정하지 않는다. 영 공간의 자유도를 활용하면 주 작업을 정확히 수행하면서 동시에 부차 목표(secondary objective)를 최적화할 수 있다. 이를 통해 관절 한계 회피, 특이점 회피, 장애물 회피, 에너지 최소화 등 다양한 부가적 성능 기준을 충족시킬 수 있다.

2. 기울기 투영법

부차 목표를 스칼라 목적 함수 w(\mathbf{q})로 정의하면, 이를 최적화하는 기울기 벡터를 영 공간에 투영하여 부차 목표 관절 속도를 생성할 수 있다.

정의 6.109.1 (기울기 투영법). 주 작업 \dot{\mathbf{x}} = J\dot{\mathbf{q}}를 만족하면서 부차 목표 w(\mathbf{q})를 최적화하는 관절 속도는 다음과 같다.

\dot{\mathbf{q}} = J^+ \dot{\mathbf{x}} + \alpha (I - J^+ J) \nabla w(\mathbf{q})

여기서 \nabla w(\mathbf{q}) = \left(\frac{\partial w}{\partial q_1}, \frac{\partial w}{\partial q_2}, \ldots, \frac{\partial w}{\partial q_n}\right)^\top은 목적 함수의 기울기 벡터이고, \alpha > 0은 스텝 크기(step size)를 결정하는 스칼라 이득이다.

정리 6.109.1. 기울기 투영법에서 영 공간에 투영된 성분 (I - J^+ J)\nabla w(\mathbf{q})\mathcal{N}(J) 내에서 w(\mathbf{q})를 가장 빠르게 증가시키는 방향이다.

증명. \mathcal{N}(J) 내의 단위 벡터 \mathbf{v}에 대하여, w의 방향 도함수는 \nabla w^\top \mathbf{v}이다. \mathbf{v} = N\mathbf{u} (\|\mathbf{u}\| = 1이 아닌 \|N\mathbf{u}\| = 1을 만족하는 \mathbf{u})로 표현하면, \nabla w^\top N\mathbf{u} = (N\nabla w)^\top \mathbf{u}이다. 이 내적은 \mathbf{u}N\nabla w와 같은 방향일 때 최대가 되므로, N\nabla w가 영 공간 내에서의 최급경사 방향이다. \square

부차 목표를 최소화하려면 \alpha < 0으로 설정하거나 -\nabla w를 사용한다.

대표적인 부차 목표 함수

관절 한계 회피

관절 i의 범위가 [q_{i,\min}, q_{i,\max}]일 때, 관절 한계로부터의 거리를 최대화하는 목적 함수는 다음과 같다.

w_{\text{limit}}(\mathbf{q}) = -\frac{1}{2n} \sum_{i=1}^{n} \left(\frac{q_i - \bar{q}_i}{q_{i,\max} - q_{i,\min}}\right)^2

여기서 \bar{q}_i = \frac{q_{i,\max} + q_{i,\min}}{2}는 관절 범위의 중점이다. 이 함수의 기울기는

\frac{\partial w_{\text{limit}}}{\partial q_i} = -\frac{1}{n} \frac{q_i - \bar{q}_i}{(q_{i,\max} - q_{i,\min})^2}

이 기울기를 영 공간에 투영하면, 관절 변위를 관절 범위의 중앙으로 이동시키는 내부 운동이 생성된다.

조작성 최대화

요시카와(Yoshikawa)의 조작성 지표는 다음과 같이 정의된다.

w_{\text{manip}}(\mathbf{q}) = \sqrt{\det(J J^\top)}

이 지표를 최대화하면 특이 형상으로부터 멀어지는 내부 운동이 생성된다. 기울기는 다음과 같이 계산된다.

\frac{\partial w_{\text{manip}}}{\partial q_i} = w_{\text{manip}} \cdot \text{tr}\left((JJ^\top)^{-1} \frac{\partial (JJ^\top)}{\partial q_i}\right) \cdot \frac{1}{2}

관절 속도 최소화

관절 속도의 크기를 최소화하는 것은 \mathbf{z} = \mathbf{0}을 선택하는 것에 해당하며, 이 경우 해는 최소 노름 해 \dot{\mathbf{q}} = J^+ \dot{\mathbf{x}}가 된다.

에너지 최소화

동역학적 에너지를 고려한 목적 함수는 관성 행렬 M(\mathbf{q})을 이용하여 정의된다.

w_{\text{energy}}(\mathbf{q}) = -\frac{1}{2} \dot{\mathbf{q}}^\top M(\mathbf{q}) \dot{\mathbf{q}}

이 경우, 가중 유사 역행렬 J_M^+ = M^{-1} J^\top (J M^{-1} J^\top)^{-1}을 사용하면 운동 에너지를 최소화하는 해를 직접 구할 수 있다.

3. 이산 시간 구현

연속 시간 기울기 투영법을 이산 시간으로 구현할 때, 관절 각도의 갱신은 다음과 같이 수행된다.

\mathbf{q}_{k+1} = \mathbf{q}_k + \Delta t \left[ J^+(\mathbf{q}_k) \dot{\mathbf{x}}_k + \alpha N(\mathbf{q}_k) \nabla w(\mathbf{q}_k) \right]

여기서 \Delta t는 제어 주기이다. 이산 시간 구현에서는 다음 사항에 주의해야 한다.

  • 스텝 크기 조정: \alpha \Delta t가 너무 크면 수렴이 불안정해질 수 있으므로, 적절한 상한을 설정해야 한다.
  • 작업 오차 누적: 이산화에 의한 작업 공간 추종 오차가 누적될 수 있으므로, 닫힌 루프 역기구학(CLIK, Closed-Loop Inverse Kinematics) 형태로 피드백을 포함시키는 것이 바람직하다.

\dot{\mathbf{q}} = J^+ (\dot{\mathbf{x}}_d + K_p \mathbf{e}) + \alpha N \nabla w

여기서 \mathbf{e} = \mathbf{x}_d - \mathbf{x}는 작업 공간 오차이고, K_p는 양의 정부호 이득 행렬이다.

4. 국소 최적성과 한계

기울기 투영법은 국소적(local) 최적화 기법이므로 다음과 같은 한계를 가진다.

한계 6.109.1. 기울기 투영법에 의한 부차 목표 최적화는 일반적으로 전역 최적해를 보장하지 않는다. 목적 함수 w(\mathbf{q})에 다수의 극값이 존재하면 국소 최적에 수렴할 수 있다.

한계 6.109.2. 영 공간 투영에 의한 부차 목표의 변화율은 다음과 같다.

\frac{dw}{dt}\bigg\vert_{\text{null}} = \nabla w^\top N \nabla w = \|N \nabla w\|^2 \geq 0

이 값은 기울기 벡터의 영 공간 성분의 크기에 비례한다. 기울기가 주로 행 공간 방향을 가리키는 경우, 영 공간으로의 투영 후 남는 성분이 작아져 부차 목표의 개선이 미미해질 수 있다.

한계 6.109.3 (알고리즘적 특이점). 주 작업의 자코비안이 랭크를 잃는 특이 형상 근방에서 영 공간의 차원이 증가하며, 유사 역행렬이 불안정해진다. 이로 인해 영 공간 투영도 불안정해질 수 있으므로, 감쇠 최소 제곱법 등의 정규화 기법을 함께 사용해야 한다.

다층 작업 우선순위와 부차 목표

두 개 이상의 부차 목표가 존재할 때, 작업 우선순위 프레임워크를 확장하여 계층적으로 최적화한다. k개의 작업이 우선순위 순서 1, 2, \ldots, k로 주어졌을 때, 각 수준의 해는 다음과 같이 재귀적으로 구성된다.

\dot{\mathbf{q}}_i = \dot{\mathbf{q}}_{i-1} + (J_i \bar{N}_{i-1})^+ (\dot{\mathbf{x}}_i - J_i \dot{\mathbf{q}}_{i-1})

부차 목표 함수를 작업으로 변환하려면, 목적 함수의 기울기를 가상 작업 자코비안으로 사용한다.

J_{\text{sub}} = \nabla w^\top, \quad \dot{x}_{\text{sub}} = \alpha \frac{\partial w}{\partial t}

이와 같이 스칼라 또는 벡터 부차 목표를 작업 우선순위 프레임워크에 통합할 수 있다.

수치 예제

3자유도 평면 로봇(n = 3)이 2차원 작업 공간 속도(m = 2)를 추종하면서 관절 한계 회피를 부차 목표로 수행하는 경우를 고려하자.

관절 범위가 q_i \in [-\pi, \pi] (i = 1, 2, 3)이고, 현재 관절 형상이 \mathbf{q} = (0.5, 1.2, -0.3)^\top이라 하자. 관절 범위의 중점은 \bar{q}_i = 0이므로,

\nabla w_{\text{limit}} = -\frac{1}{3(2\pi)^2} (0.5, 1.2, -0.3)^\top = (-0.0042, -0.0101, 0.0025)^\top

자코비안의 영 공간 투영 행렬 N을 통해 이 기울기를 투영하면,

\dot{\mathbf{q}}_{\text{null}} = \alpha N \nabla w_{\text{limit}}

이 벡터는 말단 장치의 위치를 변화시키지 않으면서 관절 변위를 범위의 중앙으로 이동시키는 방향의 관절 속도를 나타낸다.

전체 관절 속도는 다음과 같다.

\dot{\mathbf{q}} = J^+ \dot{\mathbf{x}}_d + \alpha N \nabla w_{\text{limit}}

이득 \alpha의 값이 클수록 부차 목표에 대한 반응이 빨라지지만, 너무 큰 값은 수치적 불안정을 초래할 수 있으므로 적절한 튜닝이 필요하다.

5. 부차 목표 함수의 비교

부차 목표목적 함수 w(\mathbf{q})최적화 방향주요 응용
관절 한계 회피-\frac{1}{2n}\sum\left(\frac{q_i - \bar{q}_i}{\Delta q_i}\right)^2최대화작업 영역 확보
조작성 최대화\sqrt{\det(JJ^\top)}최대화특이점 회피
관절 토크 최소화-\frac{1}{2}\boldsymbol{\tau}^\top \boldsymbol{\tau}최대화에너지 절약
장애물 거리 최대화\min_i d_i(\mathbf{q})최대화안전 확보
기준 형상 유지-\frac{1}{2}|\mathbf{q} - \mathbf{q}_{\text{ref}}|^2최대화형상 안정화

참고문헌

  • Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
  • Nakamura, Y. (1991). Advanced Robotics: Redundancy and Optimization. Addison-Wesley.
  • Yoshikawa, T. (1985). Manipulability of robotic mechanisms. The International Journal of Robotics Research, 4(2), 3–9.
  • Liegeois, A. (1977). Automatic supervisory control of the configuration and behavior of multibody mechanisms. IEEE Transactions on Systems, Man, and Cybernetics, 7(12), 868–871.

v 0.1