EKF چیست؟
EKF (Extended Kalman Filter) مغز برآورد وضعیت در ArduPilot است. این فیلتر دادههای همه حسگرها (GPS، شتابسنج، ژیروسکوپ، قطبنما، بارومتر) را بهصورت هوشمند ترکیب میکند تا بهترین تخمین از موقعیت، سرعت و جهت را بسازد. نسخه فعلی EKF3 است.
قدرت EKF در این است که اگر یک حسگر نویز یا خطا داشته باشد، با تکیه بر بقیه حسگرها همچنان تخمین قابلاعتماد میدهد. تنظیم منابع (Sources) تعیین میکند EKF از کدام حسگر برای هر کمیت استفاده کند.
🛠️ کارت پروژه
| فیلتر | EKF3 (پیشفرض مدرن) |
| گروه پارامتر | EK3_*, EK3_SRC* |
گام ۱: فعال بودن EKF3
AHRS_EKF_TYPE = 3 (استفاده از EKF3)
EK3_ENABLE = 1
EK2_ENABLE = 0 (EKF2 قدیمی را خاموش کنید)
گام ۲: تنظیم منابع موقعیت (EK3_SRC)
سه دسته منبع وجود دارد: موقعیت افقی (PosXY)، سرعت (VelXY)، ارتفاع (PosZ) و جهت (Yaw). برای یک پهپاد GPS معمولی:
EK3_SRC1_POSXY = 3 (GPS)
EK3_SRC1_VELXY = 3 (GPS)
EK3_SRC1_POSZ = 1 (Barometer)
EK3_SRC1_YAW = 1 (Compass)
پرچمهای سلامت EKF
در گوشه HUD مربع EKF رنگی دارد. سبز = سالم، زرد/قرمز = مشکل. با کلیک روی آن، واریانسها را میبینید:
| واریانس | معنی |
|---|---|
| velocity | اختلاف سرعت GPS و IMU |
| pos_horiz | اختلاف موقعیت افقی |
| compass | اختلاف قطبنما |