MMA 알고리즘으로 드론 제어

우리는 드론에 가해지는 입력을 눈으로 보고(=visual feedback) rpyt값을 조절한다

img


이 때 Altitude방향의 Thrust는 Horizontal 방향과 Vertical 방향의 두 힘으로 나눠짐
[가정]
altitude에는 오직 thrust만 영향을 미친다고 가정해보자
roll & pitch는 매우 작다고 가정

img


아래와 같이 z error만으로 제어가 가능하다
reference보다 밑에 있을 경우는 z_error > 0 이므로 드론이 상승하게 되고, 반대로 z_error < 0일 경우에는 하강하게 된다

img img

이 방법의 문제점은 무엇일까??
바람(외력)이 불어서 드론이 기울어지면 복구할 방법이 없다
아라서 한 쪽으로 계속 가다가 추락하게 된다

img


Roll, Pitch, Yaw, Thrust의 독립제어기 설계

Control diagram을 좀 더 자세하게 그려보자
각 성분마다 PID 제어기를 달아줬다

img


이 때 바람이 왼쪽으로 분다면 시계방향으로 roll 토크를 요구할 것이다
동시에 Thrust feedback으로 인해서 드론은 왼쪽 방향으로 이동하면서 복귀할 것이다


img


드론 이중 PID 제어

x,y position이라는 개념을 들고오자
드론이 현재 \((x,y)=(0,0)\) 이라는 Reference를 넣어보자
이 때 센서로부터 예측되는 \((\hat x, \hat y)\)를 이용해 error를 계산한다
이 error를 계산해 xy평면에서의 값(Translation)과 yaw의 값(Rotation)을 가지고 이중 PID제어기를 구성한다

img