אתגר אחד שפתרנו: מפעיל צינורות נדרש לבדוק קטעים ללא כיסוי סלולרי. DJI SDK לא מופעל ללא אינטרנט, ולכן פתרון MAVLink עם מצב לא מקוון חסך ללקוח שבועיים של השבתה. זמן השהיית הווידאו האופייני של DJI הוא 80–150 אלפיות שנייה, אך טיפול לא נכון בפריימים ב-thread הראשי יכול להקפיץ אותו ל-500 אלפיות שנייה — קריטי עבור FPV. לצורך ניפוי באגים, אנו משתמשים בסימולטורי SITL כדי לתפוס שגיאות לפני פריסה בשטח. תקציב פרויקט DJI SDK טיפוסי מתחיל ב-$10,000, והחיסכון בסימולציה יכול להגיע ל-$5,000 בבדיקות.
מדוע רישום אפליקציית DJI SDK הוא מכשול
DJI Mobile SDK דורש רישום מקוון של AppKey בשרתי DJI בהפעלה הראשונה. ללא אינטרנט, ה-SDK לא מאותחל — האפליקציה לא יכולה לשלוט ברחפן באזורים ללא קישוריות עד להשלמת ההפעלה. עבור בדיקות צינורות או טיסות בקניונים, זה קריטי. DJI מציעה OfflineActivation באמצעות רישיון Enterprise, אך זה דורש הסכם נפרד. לפי מדריך המפתחים של DJI, מצב זה דורש תצורה נוספת. אנו עוזרים ללקוחות להעריך את הצורך במצב לא מקוון וליישם אותו במידת הצורך.
טעות נפוצה במחזור החיים של ProductKey
רצף האתחול ב-DJI SDK 5.x:
-
SDKManager.getInstance().init()ב-Application.onCreate() -
SDKManager.getInstance().registerApp()— אסינכרוני, קריאה חוזרת ב-ISDKManagerCallback - רק לאחר
onRegisterSuccessאנו מתחילים להאזין ל-KeyedStoreאוFlightController
הטעות: מפתחים קוראים ל-FlightController.getState() לפני השלמת הרישום — מקבלים null, לא מטפלים בזה, והאפליקציה קורסת עם NPE בטיסה הראשונה. ב-SDK 4.x חלק מהמתודות עבדו בסימולטור של DJI אך נכשלו בחומרה אמיתית. אנו מיירטים מצבים כאלה ומבטיחים יציבות.
כיצד אנו שומרים על זמן השהיית וידאו מתחת ל-150 אלפיות שנייה
פענוח H.264/H.265 דרך VideoFeeder נותן זמן השהיה של 80–150 אלפיות שנייה על SurfaceView — מקובל. אך עיבוד פריימים עם מודל ML ב-thread הראשי דוחף אותו ל-500+ אלפיות שנייה. הצינור הנכון:
- פריימים מפוענחים דרך MediaCodec עם
BUFFER_FLAG_END_OF_STREAM. - הסקת ML על
Dispatchers.Default(thread נפרד). - שכבת תוצאה על הפריים הבא. אנו מיישמים זאת בכל פרויקט — המספרים מאומתים מטיסות אמיתיות.
MAVLink על ArduPilot/PX4: בחירות ארכיטקטוניות
עבור פלטפורמות מותאמות אישית אנו משתמשים ב-MAVLink — פרוטוקול בינארי עם מזהי הודעות ספציפיים לשליטה: SET_POSITION_TARGET_LOCAL_NED, COMMAND_LONG עם MAV_CMD_NAV_TAKEOFF ו-MAV_CMD_NAV_LAND. חיבור: נקודת גישה Wi-Fi של הרחפן → שקע UDP פורט 14550. באנדרואיד — DatagramSocket ב-CoroutineScope(Dispatchers.IO), heartbeat כל 1000 אלפיות שנייה. אם אין heartbeat במשך 3 שניות — הפעל מצב UI חירום וחסום את כל הפקודות.
חשוב: חבילות MAVLink עוברות דרך UDP ללא ערבויות מסירה. עבור פקודות עם אישור (COMMAND_LONG), הרחפן משיב עם COMMAND_ACK. אם ACK לא התקבל תוך 500 אלפיות שנייה — נסה שוב עד 3 פעמים, ואז מצב כישלון. הכל מיושם ידנית — לפרוטוקול אין מנגנון ניסיון חוזר מובנה.
כיצד לבחור בין DJI SDK ל-MAVLink
| קריטריון | DJI SDK | MAVLink (ArduPilot/PX4) |
|---|---|---|
| קלות התחלה | גבוהה (רכיבים מוכנים) | נמוכה (נדרשת הטמעת פרוטוקול) |
| זמן השהיית וידאו | 80–150 אלפיות שנייה | תלוי בהטמעה |
| מצב לא מקוון | דורש רישיון Enterprise | עובד ישירות מהקופסה |
| התאמה אישית | מוגבל על ידי SDK | חופש מלא |
| תמיכה ברחפנים | DJI, Autel, Parrot | כל רחפן עם ArduPilot/PX4 |
השוואה: DJI SDK נותן בערך חצי מזמן השהיית הווידאו בהשוואה להטמעת MAVLink טיפוסית, אך MAVLink נותן שליטה לא מקוונת מלאה.
UI: ג'ויסטיק, בטיחות, טלמטריה
ג'ויסטיק וירטואלי — MotionEvent על View, נרמול ל-[-1, 1], שליחת פקודות ב-20 הרץ (כל 50 אלפיות שנייה). מתחת ל-10 הרץ הרחפן נסחף; מעל 30 הרץ עומס הערוץ מיותר. אלמנטים חובה:
- כפתור חזרה לנקודת התחלה עם אישור (הקשה כפולה או החזקה של 2 שניות)
- מחוון רמת סוללה (אדום ב-<20%)
- עוצמת אות RSSI
- נעילת המראה כאשר GPS < 6 לוויינים (למצב GPS Hold)
פרט: הטמעת ג'ויסטיק דורשת נרמול קואורדינטות וסינון נגד רעידות כדי למנוע תנודת סמן.
תהליך עבודה וציר זמן
| שלב | משך |
|---|---|
| ניתוח פלטפורמה ודרישות | 5–10 ימים |
| עיצוב ארכיטקטורה | 3–5 ימים |
| פיתוח ליבה (שליטה, וידאו) | 2–4 שבועות |
| UI ותכנון מסלול | 2–4 שבועות |
| בדיקות (SITL + שטח) | 1–2 שבועות |
| פריסה בחנות | 5–7 ימים |
אפליקציית DJI SDK בסיסית — 4–8 שבועות. MAVLink מותאם אישית עם UI מורחב ומשימות אוטונומיות — 3–6 חודשים. אנו מספקים הערכה חינמית לאחר בחינת מקרה השימוש שלך.
מה כלול בפיתוח מפתח
- קוד מקור עם הערות
- תיעוד בנייה ותצורה
- מפתחות ופרופילי provisioning מוגדרים
- אינטגרציה עם App Store Connect / Google Play Console
- הכשרת מפעילים לאפליקציה
- 3 חודשים של תמיכה טכנית לאחר השחרור
לצוות שלנו ניסיון רב בפיתוח רחפנים ניידים, עם מסירה של 30+ פרויקטים לבדיקות, חקלאות וסיור. אם אתה צריך אפליקציית שליטה אמינה לרחפן, צור קשר להערכה חינמית וייעוץ לפרויקט שלך.







