## 0.1 정밀 캘리브레이션 및 GCS(QGroundControl) 기반 파라미터 최적화 실무
이론적으로 완벽한 거리 센서와 C++ EKF2 소스 코드 아키텍처를 구현했다 하더라도, 기체의 무게 중심(CG)을 비껴간 물리적 센서 부착 위치의 오프셋이나 센서 자체의 화이트 노이즈 통계치를 소프트웨어에 정교하게 주입하지 않으면 칼만 필터는 지속적인 발산(Divergence) 오류를 토해내며 이륙을 거부당하게 된다. 지상 관제 시스템(QGroundControl)의 파라미터 조정 창에서 반드시 잡고 넘어가야 할 로컬 센서 핵심 파라미터 계통을 해부한다.
거리 측정 센서(Range Finder) 공간 매핑 파라미터군 (EKF2_RNG_*)
- 초기 지연 오프셋 및 센서 위치 타점 (
EKF2_RNG_POS_X, Y, Z):
소형 드론은 IMU가 주로 비행 제어기(Pixhawk) 정중앙에 박혀 있으며 필터 연산 또한 이곳을 (0, 0, 0) 센터 좌표로 가정한다. 하지만 라이다나 초음파 렌즈는 보통 다리 끄트머리나 짐벌 전방부에 치우쳐 설치된다(X=10cm, Z=5cm). 이 물리적 장착 거리(Offset)를 파라미터 셋업에 오차 없이 입력해야, 기체가 피치(Pitch) 기동으로 쏠릴 때 발생하는 라이다의 가짜 호 반경(Arc) 스윙 값들을 EKF2 행렬 연산 과정에서 타점 오차(Lever Arm Effect)로서 완벽하게 상쇄 감산(Cancellation)해 낼 수 있다. - 노이즈 퀄리티 게이트 파라미터 (
EKF2_RNG_NOISE및EKF2_RNG_A_VMAX):
센서가 제조될 때 기재되는 측정값의 분산 분해능 오차값(예: 0.05m)을 입력해 두면 추정기의 데이터 흡수 가중치가 결정된다. 아울러 최대 속력 한도 파라미터를 설정해 두면 렌즈에 햇빛이나 잡광이 반사되어 갑자기 10m 이상 말도 안 되는 신호 스파이크 튀김 현상이 들어왔을 때, 필터가 이를 물리적으로 불가능한 속력의 아웃라이어(Outlier)로 단정시키고 가차 없이 차단(Gate Rejection)해 버린다.
옵티컬 플로우(Optical Flow) 신뢰 가중치 파라미터 (EKF2_OF_*)
- 품질 커트라인의 강제선 (
EKF2_OF_QMIN):
옵티컬 렌즈는 필연적으로 조명 환경이 나쁜 곳(밤의 잔디밭 등)에서 노이즈 쓰레기를 생성한다. 공장 출고값인 QMIN 보통 수치(예: 10 \sim 15\%)를 환경에 맞게 상향시켜 주면(조명 극빈 시 과감하게 40/50\% 커트), 불량 영상 처리에 의한 위치 롤어웨이(Roll-away/Drift) 대형 참사를 사전에 끊어낼 수 있다. - 시간 흐름 연계 지연 보상 (
EKF2_OF_DELAY):
가장 엔지니어적 노하우가 필요한 영역이다. 이미지 센서 다이오드에서 ISP(이미지 프로세서)를 지나 UART 버스를 거친 뒤 Pixhawk의 uORB 토픽으로 닿기까지는 물리적인 통신 지연(Delay Time, 예: 5 \sim 20 \ ms)이 발생한다.
가장 즉각적인 응답을 하는 자이로(IMU) 각속도가 이 구형 영상 지연 수치와 곧바로 결합되면 필터 내 회전 보상 수식이 박자(Beat)가 틀어져 에러율을 증폭시킨다. 따라서 Flight Review 분석을 통해 플로우 곡선과 IMU 곡선의 시차 피크(Peak) 간격을 눈으로 확인한 다음, 그 지연 밀리초(ms)만큼을 파라미터에 강제 입력해 주어 타임 싱크(Time Sync) 슬라이딩 배열을 일치시키는 튜닝이 플로우 개발의 화룡점정이다.