דלג לתוכן הראשי

מעקב אחר AprilTags

מעקב אחר AprilTags מתבצע באמצעות הערכים הסטנדרטיים "tx", "ty" ו-"ta". לא נדרשים שינויי קוד לשדרוג רובוט מעקב צבע/רטרו-רפלקטיבי ל-AprilTags. ניתן להשתמש גם ב-"botpose" ו-"campose" למעקב תלת-ממדי במרחב השדה ובמרחב המטרה.

לשימוש מתקדם יותר עם תגיות מרובות, ניתן להשתמש בפלט JSON.

התחלה מהירה ל-AprilTags ב-FRC

  • לשונית Input - שנו את "Pipeline Type" ל-"Fiducial Markers"

  • לשונית Input - השתמשו ברזולוציה הגבוהה ביותר הזמינה למעקב תלת-ממדי, או השתמשו ב-640x480 למעקב דו-ממדי בלבד.

  • לשונית Standard - ודאו ש-"family" מוגדר ל-"AprilTag Classic 36h11"

  • לשונית Input - הגדירו את "Black Level" לאפס

  • לשונית Input - הגדירו את "Gain" ל-15

  • לשונית Input - הפחיתו חשיפה כדי להפחית אובדן מעקב בזמן תנועה עקב טשטוש תנועה. הפסיקו להפחית כאשר אמינות המעקב יורדת. ייתכן שתצטרכו להגדיל חשיפה באירועים עם תאורה חלשה.

  • לשונית Standard - אם תרצו להגדיל את קצב הפריימים, הגדילו את "Detector Downscale"

  • אם אתם רוצים להשתמש במעקב תלת-ממדי ומעקב דו-ממדי tx/ty בו-זמנית, הגדירו את מזהה התג בעדיפות דרך networktables כדי להגדיר את התג המועדף למעקב דו-ממדי.

  • לחצו על אייקון "גלגל השיניים", וודאו שמספר הקבוצה שלכם מוגדר ושכתובת IP סטטית מוגדרת.

  • לחצו על "Change Team Number" ו-"Change IP Settings" אם שיניתם את ההגדרות המתאימות. בצעו הפעלה מחדש לרובוט.

  • סיימתם! השתמשו ב-"tx" ו-"ty" מ-networktables. העתיקו את דוגמת הקוד בעמוד "getting started".

טיפים

למעקב אידיאלי, שקלו את הדברים הבאים:

  • התגיות שלכם צריכות להיות שטוחות ככל האפשר.
  • ה-Limelight שלכם צריך להיות מותקן מעל או מתחת לגובה התג ומוטה למעלה/למטה כך שהמטרה תהיה ממורכזת. המטרה צריכה להיראות טרפזואידית ככל האפשר מנקודת המבט של המצלמה. אתם לא רוצים שהמצלמה תהיה אי פעם "חזיתית" לחלוטין מול תג אם אתם רוצים להימנע מהיפוך תג.

יש יחסי גומלין בין המשתנים הבאים למעקב AprilTag:

  • הגדלת רזולוציית הלכידה תמיד תגדיל את הדיוק התלת-ממדי ותגדיל את היציבות התלת-ממדית. זה גם יפחית את קצב היפוך האמביגואיות מרוב הזוויות. זה בדרך כלל יגדיל טווח. זה יפחית את קצב הפריימים של הצינור.
  • הגדלת downscale של הגלאי תמיד תגדיל את קצב הפריימים של הצינור. זה יפחית טווח אפקטיבי, אבל במקרים מסוימים זה עשוי להיות זניח. זה לא ישפיע על דיוק תלת-ממדי, יציבות תלת-ממדית, או דיוק פענוח.
  • הפחתת חשיפה תמיד תשפר עמידות לטשטוש תנועה. זה למעשה ממש קל לצפייה. זה עשוי להפחית טווח.
  • הפחתת הבהירות והניגודיות של התמונה בדרך כלל תשפר את קצב הפריימים של הצינור ותפחית טווח.
  • הגדלת Sensor gain מאפשרת לכם להגדיל בהירות מבלי להגדיל חשיפה. זה עשוי להפחית יציבות תלת-ממדית, וזה עשוי להפחית יציבות מעקב.

לשונית Input

לשונית Input מארחת פקדים לשינוי תמונת המצלמה הגולמית לפני שהיא עוברת דרך צינור העיבוד. ראו את עמוד "Building a retroreflective/color pipeline" לפרטים נוספים.

למעקב אחר AprilTags:

  • שנו את "Pipeline Type" ל-"Fiducial Markers"
  • הגדירו את "Black Level" לאפס

בשלב זה, מדובר באיזון בין sensor gain לזמן חשיפה. אתם רוצים להיות מסוגלים לראות את התגיות עם החשיפה הקטנה ביותר האפשרית כדי למזער טשטוש תנועה. זה בדרך כלל דורש הגדרת sensor gain גבוהה. למעקב דו-ממדי פשוט, לעתים קרובות מומלץ למקסם את ה-sensor gain שלכם, ואז להגדיל את החשיפה מאפס עד שהמטרות נעקבות מספיק. ודאו שהמשפחה הנכונה נבחרה בלשונית "Standard" אם המעקב לא עובד.

לשונית Standard

Family

בוחר את סוג משפחת הסמנים/AprilTag. עבור FRC, עליכם לבחור "AprilTag Classic 36h11"

Marker Size

מגדיר את הגודל הצפוי של התגיות שהרובוט שלכם יפגוש במ"מ. עבור FRC, זה צריך להיות מוגדר ל-165.1 (152.4 לתגיות 2023)

Detector Downscale

הגדלת מספר זה תגרום לשיפורי ביצועים משמעותיים. זה לפעמים יגרום לטווח מופחת, אבל העלות בדרך כלל מינימלית.

ID Filters

מסנני ID מאפשרים לכם לציין בדיוק אילו תגיות חשובות לכם. עבור רוב קבוצות FRC, כל צינור צריך להיות מוגדר לעקוב אחר מזהה תג אחד בדיוק. זוהי רשימה מופרדת בפסיקים של מספרים (לדוגמה "0,1"). תכונה זו חשובה לביטול הרוב המכריע של זיהויים שגויים.

Cropping

חיתוך מסיר תוכן מהתמונה לשיפורי ביצועים עצומים. השתמשו במפתח NT "crop" לחיתוך דינמי במהלך משחקים

Multi-Target Sorting and Grouping

זה מאפשר את אותה פונקציונליות קיבוץ מדויקת שנראית בצינורות רטרו-רפלקטיביים סטנדרטיים. ברוב המשחקים, התכונה היחידה לשינוי היא מסנן "Area", שיאפשר לכם לסנן תגיות קטנות.