Allocation_for_Omnidirectional_Aerial_Robots_Incorporating_Power_Dynamics.pdf

기존의 Palletrone의 경우 30도부근에서 터지는(singular?)문제를 발견하였으며, 추후 virtual Thrust 개념을 기반으로 한 C.A.에서 역시 Wrench allocation이 실패하는 양태를 보임

⇒ 이에 따라 위의 논문에서 제시하는 G.A.를 직 간접적으로 문제가 있음을 판단 ADA를 구현하여 확인

Geometric Allocation [Ryung.ver] (GA)

$$ w = A u $$

P2T2, P2T4에 대한 2개의 Config를 가지고 있지만 Fully-actuated에 개념에 맞게 P2T2로 진행중

기본적으로 현재의 Config는 아래와 같은 P2T2로 가정하여 진행 예정

$$ \phi_f = \phi_1 = \phi_4,\qquad\phi_b = \phi_2 = \phi_3 $$

$$ \theta_f = \theta_1 = \theta_4,\qquad\theta_b = \theta_2 = \theta_3 $$

렌치는 이하, 모든 경우 동일한 Wrench를 받도록 정의해놓고 쓰고 있음

$$ w =\begin{bmatrix}M_x\\M_y\\M_z\\F_x\\F_y\\F_z\end{bmatrix} $$

$$ A =\begin{bmatrix}0 & 0 & y_f & 0 & 0 & y_b & L_y e_{fz}+\zeta e_{fx} & L_y e_{bz}-\zeta e_{bx}\\0 & 0 & -x_f & 0 & 0 & -x_b & \zeta e_{fy} & -\zeta e_{by}\\-y_f & x_f & 0 & -y_b & x_b & 0 & -L_y e_{fx}+\zeta e_{fz} & -L_y e_{bx}-\zeta e_{bz}\\1 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\0 & 1 & 0 & 0 & 1 & 0 & 0 & 0\\0 & 0 & 1 & 0 & 0 & 1 & 0 & 0\end{bmatrix} $$

라는 정적인 매트릭스를 활용하여 계산되며 별도의 센서값은 읽지 않는 방식으로 구조화를 진행

$$ u =\begin{bmatrix}F_{fx}\\F_{fy}\\F_{fz}\\F_{bx}\\F_{by}\\F_{bz}\\\Delta f_{14}\\\Delta f_{23}\end{bmatrix} $$

위와 같은 가상힘을 생성함. 기존의 방식과 다르게 delta항으로 서술하는 이유는 H-shape의 방식으로 1,4번의 모터와 2,3번의 모터의 theta방향 tilting, P2T2인경우에는 roll방향 tilting까지 모두 커플링이 되어있으므로 모든 모터들의 가상힘으로 12X1의 vector형으로 서술하는 것이 불가함.

Note* 12X1의 가상힘 방식으로 문제를 GA로 풀고나서, 동일 방향 벡터쪽으로 내적한 방식도 풀림(엄밀X)

이렇게 얻은 가상 u를 현재의 엑추에이터 명령으로 만들기 위하여 아래와 같은 방식으로 연산을 진행

$$ s_f = \|F_f\|,\qquad s_b = \|F_b\| $$

$$ f_1 = \frac{1}{2}(s_f+\Delta f_{14}),\qquad f_4 = \frac{1}{2}(s_f-\Delta f_{14}) $$