Aerotenna הצליחה לבצע את טיסת הכטב”ם (UAV) הראשונה שלה התואמת ArduPilot, על ידי שדרוג כוח העיבוד והיכולות של כניסות ויציאות (I/O) בהתקן המערכת על שבב – Zynq – של Xilinx התעשייה של כלי טייס בלתי מאוישים (כטב”ם – drone, UAV) מתפתחת במהירות ומגיעה לשווקים מסחריים ולשוקי צריכה חדשים. קו האופק המציין את מה שאפשר לעשות עם כטב”מים ממשיך להתרחק וכבר מגיע אל יישומים יצירתיים חדשים, כגון יצירת מודלים תלת ממדיים (3D modeling), עזרים צבאיים ושירותי מסירת מוצרים. הבעיה היא שהיישומים הופכים להיות מורכבים יותר במידה ניכרת, ונדרש להם כוח מחשוב רב יותר לעיבוד ויותר ממשקי כניסות ויציאות (I/O), בזמן שפלטפורמות הכטב”ם הקיימות בשוק לא משתפרות באותו קצב. מגבלות קצה היכולת של רוב פלטפורמות הכטב”ם כבר הושגו, תוך כדי כך שהתוכנה והחומרה הנדרשות לטיסה ממשיכות להתפתח.
הצוות שלנו ב-Aerotenna הטיס בהצלחה כטב”ם עם מעגל אלקטרוני שבנינו, המתבסס על מערכת על שבב (SoC) ניתנת לתכנות במלואה – Xilinx® Zynq® – 7000 All Programable. טיסה זו מציינת את נקודת הפתיחה של תוכניותינו להוציא לשוק מוצרי חישה בגלי מיקרו, שנדרשת להם יכולת מחשוב מורכבת. פנינו לשימוש במערכת על השבב Zynq מפני שבעזרת פתרונות אחרים באותה רמה לא ניתן היה למצוא את כוח המחשוב שנדרש היה לעיבוד. בעזרת הפלטפורמה החדשה הזו (איור 1) אנחנו מתכננים לשפר את חוויית הטיסה הבלתי מאוישת על ידי פרישת המערכות שלנו למניעת התנגשות, המבוססות על גלי מיקרו.
המגבלות שקיימות היום בטכנולוגיית כטב”ם
הדחף העיקרי של תעשיית הכטב”ם הוא להצליח להפוך את הטיסה לנגישה ככל האפשר, תוך כדי הפשטה וחשיפה של כל היכולות שבהן אין עוד צורך. זה דבר טוב אם אתה מחפש לרכוש מוצר שעושה רק את מה שאתה רוצה בדרך הפשוטה ביותר. אבל מבחינת אנשי הפיתוח – כמונו – שמבקשים לחקור יישומים חדשים ומורכבים, היה צריך להרחיב את הפעילות ולבנות פלטפורמת כטב”ם משל עצמנו, שתהיה מסוגלת לספק את מהירויות כוח המחשוב שיניעו את הרעיונות שלנו. מגבלה רצינית אחרת שקיימת בפלטפורמות הכטב”ם הסטנדרטיות של היום היא היעדר חיבורי כניסות ויציאות אל המעבד. אי לכך, מערכת בקרת הטיסה מגיעה בקלות ליכולות המרביות של המעבד ושל הכניסות והיציאות, ואינה משאירה מקום רב לחיישנים חדשים וליישומים חדשים.
רוב חיבורי הכניסות והיציאות הקיימים בלוחות האלקטרוניים הסטנדרטיים של מעבדים כבר מנוצלים על ידי הרכיבים השונים הנדרשים לטיסה. פונקציות אלו כוללות חישני מדידה אינרציאליים לכימות הכיוונים השונים במרחב (אוריינטציה) של כלי הטייס, ברומטר (מד לחץ) ומד גובה לקביעת הגובה ומקלט בקרת רדיו (RC) לפענוח קלט מהמשתמש. כל הכניסות והיציאות שנותרו להוספת תכונות נוספות לא מציעות הרבה במובן של האפשרויות, ובדרך כלל, הן מוגבלות לדרישות המקובלות ביותר, כמו מצלמה או מערכת GPS לצורך ניווט. לעת עתה לא קיימת בשוק פלטפורמה יחידה שתימצא מתאימה לטווח רחב מאוד של חיישנים וממשקים חיצוניים.
אנחנו ב-Aerotenna, חשבנו שהדרך להתגבר על המגבלות האלו היא ליצור מהתחלה תכנון חדש של מעגל אלקטרוני. פעלנו רבות כדי ליצור פלטפורמת כטב”ם חדשה, מושלמת, שתצטיין בכל התחומים שבהם נכשלו פלטפורמות אחרות. למטרה זו, השתמשנו בהתקן מערכת על שבב Zynq ש-Xilinix סיפקה לנו. התכנון המעולה שלה עומד להציע את מהירות המעבד, שהיא משופרת במידה ניכרת, ואת יכולות הכניסות והיציאות הנדרשות עבור הדור הבא של כלי כטב”ם.
למה כדאי להשתמש מערכת על שבב Zynq?
בחרנו ב-All Prorammable Zynq SoC (מערכת על שבב Zynq שניתנת לתכנות במלואה) כבסיס אשר עליו נבנה את הפלטפורמה שלנו רבת היכולת. יחידת העיבוד המואצת (APU) בעלת הליבה הכפולה CortexTM-A9 של ®ARM שנמצאת בתוך שבב המערכת Zynq מאפשרת לנו לקבל מהירות עיבוד חסרת תחרות. אין בשוק דבר מתאים שאפשר לקבל, ושהוא מתאים עבור פתרונות הפלטפורמה לכלי כטב”ם, אשר משתווה למערכת על שבב Zynq הנמצאת במבנה שבב, עם יכולות של ריבוי מעבדים ומהירויות גישה כאלו לכניסות ויציאות. לכן, המערכת על השבב Zynq נמצאה מושלמת עבור פלטפורמת הדור הבא.
שיפור רב מאוד
המאמצים הראשוניים להעברת ArduPilot למערכת על שבב Zynq (שהונהגו על ידי ג’והן וויליאמס בקבוצת drones – discuss של Google) בשנת 2014 סללו את הדרך להעברת פלטפורמת APM לאותה פלטפורמה של Xilinx. דר’ וויליאמס הבחין בפוטנציאל שיש למערכת על שבב Zynq להציע כניסות ויציאות בהתאמה אישית ועיבוד תמונה בזמן אמת, וזו הייתה התחלתו של עולם חדש ומדהים עבור הכטב”מים. בהתפתלות מעניינת, הפך וויליאמס להיות המייסד של PetraLogix, שיצרה את כלי PetraLinux המקוריים. Xilinx רכשה את החברה בשנת 2012.
הצוות של Aerotenna המשיך במאמצי התכנון האלו הן בחומרה וגם בקושחה (firmware), ובאוקטובר 2015, השלים את טיסת ArduPilot הראשונה המופעלת במערכת על שבב Zynq. במעגל שלנו, המותאם אישית, פעלה תוכנת בקרת הטיסה ArduPilot במערכת ההפעלה PetaLinux. מבצע מרשים זה מציין שיפור רב משמעות בטכנולוגיה וביכולת של טכנולוגית הכטב”מים.
ליבת ARM הכפולה שבתוך המערכת על שבב Zynq מציבה את פתרון בקרת הטיסה שלנו במרחק רב, לפני כל פתרון כטב”ם מסוגו, מבחינת כוח העיבוד ויכולות היציאות והכניסות. קפיצה זו לפנים תפתח את הדלת ליישומי כטב”מים חדשים רבים שנדרש להם כוח מחשוב גדול יותר. רצינו לוודא שאנו מספקים דבר מה שיש לו ממשקי חומרה רבים מאוד, שנוצרו עבור התומכים וגם עבור אנשי הפיתוח. מעבר למערכת ההפעלה Linux, פלטפורמת הכטב”ם מתאימה לטווח רחב מאוד של יישומים בגמישות רבה יותר, בזכות יכולת התכנות והרב תכליתיות שלה. כאחת מבין מערכות ההפעלה החזקות ביותר הניתנות לתכנות על ידי המשתמש, Linux מאפשרת לצוות שלנו להתאים באופן אישי את המערכת, על מנת שתתאים בדיוק לצרכים שלנו.
השלמנו את בדיקת הטיסה במסגרת המטוס המסחרית מהמדף DJI F550 ואנחנו מתכננים לבדוק את בקר הטיסה שלנו, המבוסס על מערכת על שבב Zynq עם מסגרות מטוס נוספות. בקרוב נוציא את הפלטפורמה הזו כחלק מהפלטפורמה שלנו, Octagonal Pilot on Chip .
מאמץ שאפתני
היצירה ממש מההתחלה של פלטפורמת בקרת טיסה מותאמת אישית היא מאמץ שאפתני, אשר להשלמתו נדרש צוות מושלם של מהנדסים וכמות רבה של לימוד. כשמתחילים מאפס יש צורך לקבל החלטות רבות לגבי המערכת. על מנת להפעיל תוכנית בקרת טיסה יש צורך להשתמש במערכת הפעלה. מערכת הפעלה לזמן אמת (RTOS) מעבדת את הנתונים מיד, עם היקלטותם בה, והתוצאה היא השהייה זניחה בזמן האחזור. לכן מערכת הפעלה לזמן אמת היא פתרון מצוין לביצוע משימות בעלות רגישות מבחינת הזמן, כמו למשל בבקרת טיסה. החיסרון בכך הוא שקשה להתחבר בממשק למערכות מסוג זה עם ArduPilot בשל הצורך לממש מחדש חלק ממשימות עיבוד הנתונים בתוך מערכת ההפעלה עצמה.
לכן, בחרנו במקום זאת במערכת ההפעלה Linux, שאינה מערכת הפעלה לזמן אמת, אבל קלה יותר בהרבה למימוש בתכנון משותף של חומרה ותוכנה. בכך הגדלנו למקסימום את התכונה של רב תכליתיות של המערכת. Xilinx מספקת מערכת הפעלה משובצת רבת יכולת המכונה PetaLinux, שהיא תואמת למערכת על שבב Zynq ולהתקנים נוספים של Xilinix.
מפת הדרכים שאמורה להקים את המערכת הזו ולהביא אותה למצב פעיל נראתה מסובכת, והיינו צריכים להתגבר על אתגרים קשים רבים. התהליך החל בתכנון המערכת עם תוכנת פיתוח בהתקני FPGA ובכתיבה ויצירה של נכסי קניין רוחני (IP) עבור ממשקי דרייברים. הליבות היו תהליכים משובצים ברמת החומרה שעיבדו נתונים במהירויות גבוהות ביותר. לאחר מכן, היה צורך לפרוש את מערכת ההפעלה PetaLinux באמצעות תכנון המערכת בהתאמה אישית. לבסוף ביצענו הידור (קומפילציה) ושינינו את המערכת ArduPilot כדי שתוכל לפעול ב-PetaLinux ובפלטפורמה החדשה.
ניגשנו לפתור את הבעיה בשלבים, על מנת להשיג הוכחה למימוש העיקרון. הצוות שלנו החל לפעול על מנת לקלוט (ראשית) ולגלות (לאחר מכן) אות בקרה באותות רדיו, ולאחר מכן להפעיל מנוע יחיד. אחרי לבסוף הדגמנו את מימוש העיקרון הזה, התקדמנו להרחבת הממשק בין טייס OcPoC לבין החיישנים שעליהם מסתמכת ArduPilot כדי שתוכל לפעול. הכתיבה של הדרייברים שלנו מההתחלה הייתה מאמץ רב למדי. בין החיישנים שהיו בעלי חשיבות גדולה ביותר להשגת טיסה מוצלחת, נכללו מדי תאוצה, ג’ירוסקופים וברומטר. מאחר שכלי טייס בעלי רוטורים מרובים מטבעם אינם יציבים, מדידת ההתמדה (אינרציה) וגובה הטיסה של המסגרת הופכים להיות חיוניים ביותר. את הקונפיגורציה של כל אלה היה צורך להגדיר בתכנון חומרת התקני FPGA עם פרוטוקול תקשורת מתאים, ובסופו של דבר, היא נכללה במערכת ההפעלה PetaLinux שלנו.
בסיס קוד ArduPilot מורכב מיותר מ-700,000 שורות קוד, ולכן אחת המשימות הגדולות יותר הייתה להביא את המערכת למצב פעולה בפלטפורמה חדשה לחלוטין. אלמלא היה לנו ממשק שיכול להקל על כיול חישני ההתמדה (אינרציה), המנועים ובקר הרדיו (פעולה שבדרך כלל מבוצעת עבור פלטפורמות אחרות בתוך ממשק משתמש גרפי נחמד), היה עלינו לכייל באופן ידני את כל המערכת על ידי כוונון מאות הערכים השמורים של הפרמטרים. הכיול חיוני מפני שכל רכיב חומרה שונה במקצת, ולכן הוא יפיק ערכי מוצא שונים במקצת. לכן היה עלינו להגדיר את ערכי המקסימום והמינימום שהופקו על ידי כל רכיב. סיכומו של התהליך עבור הצוות של Aerotenna היה טיסה חלקה ויציבה.
OcPoC
פרויקט OcPoC (איור 2) הוא פלטפורמת בקרת טיסה לכטב”ם של Aerotenna. עם הפלטפורמה הזו אנו מתכננים לעמוד בכל הצרכים של קהילת משתמשי הכטב”מים, בהם נכללים יכולות עיבוד מורחבות במידה רבה, הרחבת כניסות ויציאות וגמישות תכנות רבה יותר בהרבה מזו הקיימת בפתרונות אחרים. על אף שהשימוש במערכת על שבב Zynq להפעלת המערכת יכול אולי להיראות מוגזם בהפעלת הגרסה הנוכחית של ArduPilot, אנחנו צופים שהתעשייה הזו תמשיך להתרחב, ותבקש לספק את הפוטנציאל שבמהרה ימומש.
ארכיטקטורה זו סוללת את הדרך עבור אנשי הפיתוח, שמעתה יכולים ליצור ולתכנן עם כל כוח העיבוד שנדרש להם. בעזרת הפלטפורמה החדשה, אנו מתכננים לצאת לשוק עם יישומים חדשים בטכנולוגית גלי מיקרו בתחומי ההדמיה, המיפוי וגילוי הקרבה שתואמים ל-OcPoC. המערכת שלנו תוכל גם לבצע לכידה של נתונים וניתוחם במערכת, בזכות יכולות עיבוד של שבב המערכת Zynq.
הפלטפורמה שלנו תספק הרכשה של נתוני IMU (יחידת מדידת התמדה – אינרציה) שתיצור “תיבה” מוכנה לטיסה ללא כל תוספת של חיישנים (איור 3). היא תספק גם ממשקי ניווט עבור כל סוג של בקרת ניווט אלחוטית. היכולת לכוון את הנתונים של כל חיישן חיצוני דרך המערכת על שבב Zynq, לצורך עיבוד נתונים ברמה גבוהה, בו בזמן עם ביצוע התוכנית ArduPilot, היא זו שמקדמת את הפלטפורמה שלנו צעד אחד לפנים. אפשרות זו לא קיימת בפלטפורמות מבוססות בקרי מיקרו.
כוח המחשוב הנוסף שיש למערכת על שבב Zynq יכול גם לטפל במערכות בקרת טיסה מורכבות יותר, כדי לתאם בצורה מדויקת יותר את הביצועים של הכטב”ם. אלו כוללים את הרחבת יכולות הכניסות והיציאות לטווח רחב יותר של אפשרויות אל ממשקים וחיישנים חיצוניים, כגון הזרמת וידיאו בזמן אמת, חישני קרבה בגלי מיקרו ותקשורת Bluetooth.
אנו מקווים שבזכות העובדה שיצרנו את המערכת שלנו ככזו שקל לבדוק אותה ולפתח בה רעיונות חדשים, חברות ואנשים רבים אחרים יתרמו וייצרו מוצרים חדשניים עבור תעשיית הכטב”מים, מבלי שיהיו מוגבלים על ידי מגבלות העיבוד, שאותם מעמידה החומרה הקיימת כיום.