본문 바로가기

유도항법제어19

칼만필터 알고리즘 칼만필터는 수학 알고리즘이다. 따라서 수학식 없이는 칼만필터를 사용할 수도 이해할 수도 없다. 그렇다고 칼만필터 유도과정을 자세히 이해할 필요까지는 없다. 결과만 잘 이해하고 있어도 칼만필터를 사용할 수 있다. 우선 칼만필터 알고리즘을 수학식으로 써 보겠다. 칼만필터는 다음과 같이 주어진 선형 동적 시스템 모델과 측정 모델, \[ \begin{align} & \mathbf{x}(k+1)= F(k) \mathbf{x}(k)+G(k) \mathbf{u}(k)+ \mathbf{w}(k) \\ \\ & \mathbf{z}(k)=H(k) \mathbf{x}(k)+ \mathbf{v}(k) \end{align} \] 을 이용하여, 시스템의 상태변수 \(\mathbf{x}(k)\)를 다음과 같이 시간 업데이트와 측정.. 2021. 3. 4.
칼만필터란 무엇인가 공대 출신이라면 칼만필터를 한번쯤은 들어 보았을 것이다. 조금 더 관심을 가진 사람이라면 칼만필터가 다음과 같은 일을 한다고 들었을 것이다. 칼만필터로 신호에 섞인 노이즈를 제거할 수 있다. 칼만필터로 센서가 측정하지 못하는 것도 추정할 수 있다. 칼만필터로 여러 센서를 융합하여 더 좋은 측정값을 만들 수 있다. 칼만필터로 기계 장치에 난 고장을 감지할 수 있다. 칼만필터로 적 항공기를 추적할 수 있다. 칼만필터로 선물 또는 주식의 가격을 예측할 수 있다. 이 정도라면, 칼만필터만 잘 다룰 줄 알면 뭔가 대단한 일을 할 수 있을 것 같다는 생각이 들 것이다. 그래서 칼만필터는 공대 출신에게 로망으로 알려져 있다. 실제로 칼만필터는 공학의 모든 분야에 걸친 막대한 영향력 때문에 추정 이론 분야의 가장 위대.. 2021. 3. 3.
주파수 응답 주파수 응답(frequency response)은 안정한 LTI(선형 시불변) 시스템에 싸인 또는 코사인 파형(sinusoids) 입력을 가했을 때 나오는 정정상태 응답(steady-state response)이다. 입력 \(u(t)\)가 시스템에 가해지는 시간이 \(t=-\infty\) 이라면 인과(causal) LTI 시스템의 출력은 다음과 같다. \[ y(t)= \int_{-\infty}^t h(t-\tau) u(\tau) \ d\tau \] 여기서 \(h(t)\)는 LTI 시스템의 임펄스 반응(impulse response)이다. 위 식에 의하면 시스템에 입력이 가해진 지 이미 무한대의 시간이 경과했으므로 시스템이 안정하다면, 시간 \(t\)에서의 반응은 이미 정정상태에 도달했다고 볼 수 있다. .. 2021. 2. 5.
정정상태 응답과 과도 응답 영어로 steady-state response를 정정상태 응답, transient response를 과도 응답이라고 번역한다. 정정상태는 시스템의 출력이 안정되어서 시간이 흘러도 같은 값을 유지하거나 같은 패턴의 출력이 나오는 상태를 말한다. 과도 응답이란 출력이 \(0\)부터 시작하여 정정상태 응답으로 가는 동안의 과도기 응답을 말한다. 영어를 한자로 번역하고 표기는 한글로만 하기 때문에 오해하기 쉬운 용어가 됐다. 정정 행렬이라는 용어도 있는데 이 때 '정정' 은 영어로 positive-definite이다. '양의 값으로 규정된' 이라는 뜻이다. 아무튼 둘 다 정정이라고 번역한다. ‘과도’는 일상 용어로는 과일 깍는 칼을 말한다. 응답은 response를 번역한 것인데 '반응' 이라고 하기도 한다. .. 2021. 2. 5.
포텐셜 필드 방법 포텐셜 필드(potential field)의 아이디어는 목표점으로 이끄는(attractive) 인공적인 포텐셜 필드와 장애물로부터 멀어지게 내보내는(repulsive) 인공적인 포텐셜 필드를 형상공간에 구축하여, 로봇이나 비행체가 장애물을 피하면서 목표점에 다가갈 수 있는 운행 방향을 찾아보자는 것이다. 인력(attractive) 포텐셜은 로봇이나 비행체를 목표점으로 끄는 목적을 지니고 있으며 보통 파라볼릭(parabolic) 형태와 원추(conical) 형태, 그리고 이 둘을 결합한 형태를 사용하고 있다. 파라볼릭 형태의 포텐셜 필드는 다음 식으로 주어진다. \[ U_{att1} (\mathbf{q})= \frac{1}{2} k_a \left\vert \mathbf{q}_{goal} - \mathbf{.. 2021. 1. 29.
RRT* (RRT Star) 알고리즘 RRT* 알고리즘은 RRT 알고리즘과 기본 뼈대는 동일하다. 다만 RRT와 두 가지 차이점이 있는데, 첫째는 부모(parent) 노드의 재선정이고 둘째는 트리의 재구성(rewire)이다. RRT에서는 \(\mathbf{q}_{new}\)와 가장 가까운 노드 \(\mathbf{q}_{near}\)가 부모(parent) 노드가 되었지만, RRT*에서는 \(\mathbf{q}_{new}\)를 중심으로 일정 반경에 있는 노드(그림에서 \(\mathbf{q}_1, \mathbf{q}_2, \mathbf{q}_3, \mathbf{q}_4, \mathbf{q}_5, \mathbf{q}_{near}\))를 뽑고, 그 노드들을 \(\mathbf{q}_{near}\)와의 비용(cost) 비교를 통해 가장 적은 비용을 가진.. 2021. 1. 29.
진동 모드 해석 복소수는 실수부와 허수부를 갖는 수체계다. 실수부를 \(x\)축에, 허수부를 \(y\)축에 표시하면 복소수를 복소 평면상에 표시할 수 있다. 복소수는 보통 실수부와 허수부로 표현하지만 다음과 같이 크기와 위상각으로도 표현할 수 있다. \[ \begin{align} z &=x+jy \\ \\ &= r \cos \theta +j r \sin \theta \end{align} \] 여기서 \(r\)은 복소수의 크기, \(\theta\)는 위상각이며 각각 다음과 같이 계산할 수 있다. \[ r= \sqrt{x^2+y^2 }, \ \ \ \theta =\tan^{-1} \left( \frac{y}{x} \right) \] 오일러 공식(Euler formula)에 의하면 다음 식이 성립하므로, \[ e^{j \th.. 2021. 1. 26.
운동 모드 해석 고유값(eigen value)과 고유벡터(eigen vector)의 개념은 여러 분야에서 사용되고 있다. 운동 모드를 해석할 때도 사용되는데 이에 대해서 알아보자. 다음과 같이 상태변수의 미분 방정식으로 표현되는 운동 방정식이 있다고 하자. \[ \dot{\mathbf{x}}= A \mathbf{x} \tag{1} \] 여기서 \(\mathbf{x}(t)\)는 상태변수로서 성분이 \(n\)개인 벡터다. \(A\)는 성분이 모두 실수 값인 \(n \times n\) 행렬이다. 위 식은 \(n\)개의 스칼라 미분 방정식이 서로 연결된 연립 미분 방정식으로서 외부 입력이 작용하지 않는 다양한 선형 운동 방정식을 표현할 수 있는 범용 식이다. 식 (1)을 상태공간 방정식(state-space equation)이.. 2021. 1. 26.
급속탐색 랜덤트리 (RRT, rapidly-exploring random tree) 경로계획(path planning)은 자율자동차, 로봇, 무인 항공기, 우주탐사 등과 같은 많은 분야에서 필수적인 요구사항이다. 경로계획법에는 여러 가지 방법이 제안되어 있는데, 최근 가장 인기를 모으는 방법으로는 RRT(rapidly exploring random tree)가 있다. RRT는 샘플링 기반 경로계획법의 하나이다. 샘플링 기반 경로계획법은 형상공간을 격자(grid)로 분할하지 않고, 랜덤(random)하게 샘플점을 여러 개 생성하여 점점이(point-wise) 공간을 탐색하여 경로를 찾아내는 방법이다. 즉 형상공간(configuration space) 내에서 샘플점을 무작위로 충분한 수만큼 발생시키고 그 샘플점이, 혹은 두 개의 샘플점을 잇는 선이 장애물과 충돌하는 지 여부를 확인하여 자유.. 2021. 1. 21.
오일러-라그랑지 방정식과 브라키스토크론 문제의 풀이 상단 지점 \((0,0)\)에 정지해 있던 물체가 경로 \(y(x)\)를 따라 마찰없이 중력의 영향으로만 미끄러져서 하단 지점 \((x_f,y_f)\)까지 도착하는데 걸리는 시간은 다음과 같이 계산된다. \[ t= \int_0^{x_f} \frac{ \sqrt{ 1+ \left( \frac{dy}{dx} \right)^2 } }{ \sqrt{2gy} } \ dx \] 여기서 시간 \(t\)를 최소로 만드는 경로 함수 \(y(x)\)를 계산하는 것이 브라키스토크론(Brachistochrone) 문제다. 시간 \(t\)는 함수 \(y(x)\)를 변수로 하는 functional이다. 이 값을 최소화하는 함수 \(y(x)\)를 찾는 문제이므로 변분법의 문제이다. 다음과 같은 functional \(F(y, y^.. 2021. 1. 13.