EmuFlight vs. Betaflight: 필터링으로 드러나는 비행의 차이

소개: 드론 필터링, 왜 신경 써야 할까?
FPV 드론을 처음 접하면 "자이로"라는 단어가 자주 눈에 띕니다. 자이로 센서는 드론의 회전 속도(롤, 피치, 요 축의 각속도)를 측정하는 작은 칩으로, 드론이 공중에서 어떻게 움직이는지 비행 컨트롤러(FC)에 실시간으로 알려줍니다. 예를 들어, 드론이 왼쪽으로 기울거나 위로 솟구칠 때, 자이로는 그 움직임을 초당 수천 번 감지해 데이터를 전달합니다. 이 데이터는 모터 속도를 조정하는 PID 제어 시스템의 핵심 재료가 되죠. 자이로가 없다면 드론은 방향을 잃고 엉뚱하게 날아갈 겁니다.
하지만 자이로 데이터에는 문제가 생길 수 있습니다. 모터 진동, 바람에 흔들리는 프롭, 센서 자체의 미세한 오류 같은 "노이즈"가 섞여 들어가죠. 이 노이즈는 드론을 덜컹거리게 하거나 반응을 느리게 만들 수 있습니다. 여기서 필터링이 중요해집니다. 필터는 자이로 데이터에서 노이즈를 걸러내 깨끗한 신호를 만들어 비행을 부드럽고 정확하게 유지합니다.
EmuFlight와 Betaflight는 드론을 제어하는 전체 소프트웨어(펌웨어)로, 모터 제어부터 PID 설정까지 모두 다룹니다. 그중에서도 자이로 데이터 필터링은 비행 품질을 결정짓는 큰 부분입니다. 이 글에서는 두 펌웨어의 필터링 방식을 비교해 어떤 상황에서 어떤 차이를 만드는지 알아보겠습니다. 자이로와 PID 튜닝에 익숙하지 않아도 괜찮습니다. 기본만 이해하면 충분히 따라올 수 있어요!

EmuFlight와 Betaflight: 두 펌웨어의 첫인상
EmuFlight는 2019년 Betaflight 3.5를 기반으로 시작된 오픈소스 프로젝트입니다. 소형 드론(whoop, toothpick)에서 부드러운 비행을 목표로 IMUF라는 칼만 필터 중심의 설계를 채택했죠. 반면 Betaflight는 드론 커뮤니티에서 가장 널리 쓰이는 펌웨어로, 최신 버전(4.5 기준)까지 다층 필터링 시스템을 발전시켜 왔습니다. LPF와 RPM 필터를 조합해 다양한 비행 스타일에 맞춘 유연성을 자랑합니다.
두 펌웨어의 필터링 철학은 다릅니다. EmuFlight는 단일 필터로 범용성을 추구하고, Betaflight는 상황별 최적화에 초점을 맞췄습니다. 이 차이가 실제 비행에서 어떤 결과를 만드는지, 이제부터 자세히 들여다보겠습니다.

EmuFlight 필터의 핵심: IMUF 칼만 필터 분석
구조와 동작 원리
EmuFlight의 필터 시스템은 IMUF라는 칼만 필터를 중심으로 돌아갑니다. 칼만 필터는 자이로 데이터의 예측값과 측정값을 조합해 노이즈를 제거하는 알고리즘입니다. 예측 단계에서는 이전 데이터를 바탕으로 다음 값을 추정하고, 업데이트 단계에서 실제 자이로 값을 반영해 최적의 값을 계산합니다. 이 과정은 q(프로세스 노이즈 공분산), r(측정 노이즈 공분산), imuf_w(윈도우 크기)라는 파라미터로 제어됩니다.
  • q: 시스템 변화의 불확실성을 정의합니다. imuf_roll_q, imuf_pitch_q, imuf_yaw_q로 축별 설정 가능하며, 값이 크면(예: 9000) 필터링이 약해지고 반응성이 높아집니다.
  • r: 센서 노이즈 수준을 나타내며, 코드에 고정된 값(예: 0.1)으로 설정됩니다.
  • imuf_w: 과거 데이터의 참조 범위를 조정합니다. 기본값 200에서 줄이면(100) 반응성이, 늘리면(300) 부드러움이 강조됩니다.
정적 필터링의 특징
IMUF는 고정된 파라미터로 작동합니다. 비행 중 qr이 실시간으로 바뀌지 않으니 필터링 강도는 일정하게 유지됩니다. 다만 칼만 게인(k)은 매 업데이트마다 계산되며, 급격한 움직임에서는 측정값을 더 반영하고, 안정적인 상태에서는 예측값에 의존합니다. 이는 동적 조정은 아니지만, 비행 상태에 따른 자연스러운 반응을 제공합니다.
튜닝 가능성
EmuFlight의 강점 중 하나는 축별 튜닝입니다. 예를 들어, 레이싱 드론에서 롤 축의 imuf_roll_q를 9000으로 높여 빠른 반응을 얻고, 요 축의 imuf_yaw_q를 3000으로 낮춰 안정성을 유지할 수 있습니다. 설정이 간단하면서도 세밀한 조정이 가능하죠.

Betaflight 필터의 강자: LPF와 RPM 필터의 조화
LPF: 기본적인 노이즈 제거
Betaflight는 저역통과 필터(LPF)를 기본으로 사용합니다. PT1(1차 LPF)와 바이쿼드 필터는 고정된 차단 주파수를 설정해 고주파 노이즈를 제거합니다. 예를 들어, 자이로 LPF를 100Hz로 설정하면 그 이상의 주파수 노이즈가 걸러집니다. 이는 계산이 간단하고 CPU 부하가 적어 안정적인 기반을 제공합니다.
하지만 LPF는 고정된 특성 때문에 한계가 있습니다. 차단 주파수가 너무 낮으면 신호 지연이 생기고, 너무 높으면 노이즈가 남을 수 있습니다. 이를 보완하기 위해 Betaflight는 동적 필터링을 추가로 도입했습니다.
RPM 필터: 동적 적응의 정점
RPM 필터는 Betaflight의 대표적인 동적 필터입니다. 모터 RPM 데이터를 bidirectional DShot으로 받아 실시간으로 노치 필터를 조정합니다. 모터가 10,000RPM으로 돌면 그 주파수(예: 166Hz)와 배수(2배, 3배 등)를 타겟팅해 노이즈를 제거합니다. 스로틀이 변하면서 노이즈 주파수가 바뀌어도 필터가 즉각 반응하죠.
설정은 복잡할 수 있습니다. rpm_filter_harmonics로 제거할 배수를 지정하고, rpm_filter_min_hz로 최저 주파수를 설정해야 합니다. BLHeli_32 같은 지원 하드웨어도 필요합니다.
다층 접근법
Betaflight는 LPF와 RPM 필터를 결합해 다층 필터링을 구현합니다. LPF가 기본 노이즈를 걸러내고, RPM 필터가 모터 특화 노이즈를 처리합니다. 이 조합은 다양한 비행 조건에서 유연성을 제공하지만, 설정 과정이 EmuFlight보다 번거롭습니다.

필터링 성능 비교: 어디서 차이가 날까?
노이즈 제거 범위
  • EmuFlight: IMUF 칼만 필터는 자이로 데이터 전체의 노이즈를 대상으로 합니다. 모터 진동뿐 아니라 센서 열 노이즈, 환경 요인까지 범용적으로 처리합니다.
  • Betaflight: LPF는 일반적인 고주파 노이즈를, RPM 필터는 모터 관련 노이즈를 특화해 제거합니다. 범용성은 떨어지지만 모터 노이즈 제거에서는 탁월합니다.
동적 적응성
  • EmuFlight: 고정된 q, r, imuf_w로 작동하며 동적 조정은 없습니다. 비행 상태 변화는 칼만 게인의 자연스러운 반응으로만 반영됩니다.
  • Betaflight: RPM 필터가 모터 RPM에 따라 실시간으로 적응하며, 일부 설정에서 LPF 차단 주파수를 스로틀에 연동할 수 있습니다. 동적 환경에 강합니다.
지연 시간과 반응성
  • EmuFlight: 칼만 필터의 예측 모델 덕분에 LPF보다 지연이 적고, 신호 손실을 최소화합니다. 높은 PID 루프 속도(8kHz)에서도 효과적입니다.
  • Betaflight: LPF는 차단 주파수가 낮을수록 지연이 늘어나고, RPM 필터는 지연 없이 특정 노이즈만 제거합니다. 반응성은 설정에 따라 달라집니다.
설정 복잡도
  • EmuFlight: imuf_qimuf_w 조정만으로 필터링을 완성하며, 설정이 단순합니다.
  • Betaflight: LPF, RPM 필터, 동적 설정 등 여러 단계를 거쳐야 하며, 하드웨어 호환성도 고려해야 합니다.

적용 사례: 어떤 드론에 적합할까?
레이싱 드론
  • EmuFlight: 높은 imuf_q(9000)로 반응성을 극대화하며, 단일 필터로 빠른 설정이 가능합니다. 지연이 적어 급격한 기동에 유리합니다.
  • Betaflight: RPM 필터가 모터 노이즈를 정밀하게 제거해 고속 비행에서 안정성을 높입니다. 다만 설정 시간이 길어질 수 있습니다.
프리스타일 드론
  • EmuFlight: 낮은 imuf_q(3000)와 큰 imuf_w(300)로 부드러운 자이로 데이터를 제공하며, 촬영용으로도 적합합니다.
  • Betaflight: LPF와 RPM 필터 조합으로 모터 노이즈를 줄이고, 동적 반응으로 다양한 트릭을 지원합니다.
초보용 드론
  • EmuFlight: 설정이 간단해 초보자가 튜닝에 쉽게 접근할 수 있습니다. 소형 드론에서 강점을 발휘합니다.
  • Betaflight: 범용성과 커뮤니티 지원이 뛰어나지만, 필터 설정이 복잡해 초보자에게는 부담스러울 수 있습니다.

결론: 당신의 드론에 맞는 선택은?
EmuFlight의 IMUF 칼만 필터는 예측 기반의 범용 노이즈 제거와 간단한 튜닝으로 안정적이고 일관된 비행을 제공합니다. 반면 Betaflight는 LPF와 RPM 필터의 다층 구조로 동적 환경에 적응하며, 특히 모터 노이즈가 심한 대형 드론에서 빛을 발합니다. 하드웨어 지원(BLHeli_32 등) 여부와 비행 스타일도 선택에 영향을 미칩니다.
솔직히 말해 Betaflight의 RPM 필터와 고정 필터를 병행하는 방식은 복잡하고 다단계적이라 더 정확해 보일 수 있습니다. 하지만 개인적으로는 가장 단순하고 심플한 것이 아름다움의 핵심이라고 생각합니다. EmuFlight는 단일 필터로 모든 걸 해결하며 설정 과정에서 문제를 덜 일으킵니다. 복잡한 튜닝과 하드웨어 의존성을 피하고 싶다면 EmuFlight가 매력적인 선택입니다. 그래도 두 펌웨어를 직접 날려보고 당신의 드론에 맞는 답을 찾아보세요. 단순함이든 정밀함이든, 비행의 재미는 직접 경험에서 나옵니다!

댓글

이 블로그의 인기 게시물

드론의 기초 - FPV의 구성과 이해

From BLHeli_32 to AM32: A Guide to Ease Your Transition Concerns

완전 초보도 따라하는 하이엔드 레이싱 드론 만들기 #08 - 베타플라이트(Betaflight) 완전정복 / 컴퓨터에 베타플라이트 컨피규레이터 설치하기