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

יומן שינויים בתוכנה ומשוב

שלחו בעיות ובקשות לתכונות באימייל או ל-מאגר המשוב של Limelight

Limelight OS 2025.1 (גרסה סופית - 24/2/25 גרסת בדיקה - 18/2/25)

24/2/25 - תיקון בעיית קישוריות שהוצגה בגרסת הבדיקה 2025.1.

עדכוני IMU ל-LL4

  • שיפור מיזוג חיישני IMU
    • ביצועים משופרים משמעותית תחת רעידות ופגיעות ברמת FRC. שינויים משמעותיים בגישת המיזוג.
עדכוני IMU 2025.1

התמונה למעלה מציגה את התוצאה של אימון אלים למדי של כ-5 דקות עם רובוט FRC. באימון זה, מדדנו את הכיוונים של

  1. Limelight 4 שמריץ 2025.0 (llyawOLD)
  2. Limelight 4 שמריץ 2025.1 (llyaw)
  3. Pigeon 2.0

שני ה-LL4 מותקנים בכיוונים זהים. שימו לב לשיפור העצום בדיוק הכולל מה-LL4 שמריץ 2025.1

  • מצב IMU 3 - IMU_ASSIST_MT1 - ה-IMU הפנימי ישתמש בהערכות yaw מסוננות של MT1 לתיקון כיוון רציף

  • מצב IMU 4 - IMU_ASSIST_EXTERNALIMU - ה-IMU הפנימי ישתמש ב-IMU החיצוני לתיקון כיוון רציף

  • הוספת מפתח NT imuassistalpha_set (ברירת מחדל 0.001) - אלפא / עוצמה של פילטר משלים. ערכים גבוהים יותר יגרמו ל-IMU הפנימי להתכנס למקור הסיוע מהר יותר

  • ברירת המחדל מוגדרת לערך נמוך 0.001 כי כעת אנו סומכים על ה-IMU הפנימי יותר מבעבר. מצבי סיוע בנויים "למשוך" בעדינות רבה את ה-IMU הפנימי לכיוון מקור הסיוע הנבחר מבלי לפגוע בתגובתיות ה-IMU הפנימי במהלך תנועות מהירות.

עדכוני ביצועים תרמיים ל-LL4

  • הוספת 'throttle_set'. מעבד פריים אחד אחרי כל N פריימים שדולגו. דפוסי דוגמה:

    • throttle_set=1: [דלג, עבד, דלג, עבד]
    • throttle_set=2: [דלג, דלג, עבד, דלג, דלג, עבד]
  • הפלטים לא מאופסים במהלך פריימים שדולגו.

  • הגדירו זאת למספר גבוה כשהרובוט מושבת (50-200) לניהול הטמפרטורה של ה-LL4 שלכם.

  • לחלופין, תוכלו להגדיר צינור כ-viewfinder ולעבור לצינור זה כשהרובוט מושבת.

אפשרויות FPS חדשות ל-LL4 ו-LL3G

  • הוספת 1280x800 ב-60FPS, 55FPS, 45FPS, ו-30FPS.
  • שימוש בקצבי לכידה נמוכים יותר יאפשר לכם להגדיל את זמן החשיפה כדי להימנע מ-blooming/breathing של התמונה עקב תאורת AC.

עדכוני REST API

  • הוספת REST API למצב IMU - 'update-imumode'
  • הוספת REST API ל-Throttle - 'update-throttle'
  • הוספת REST API ל-IMU ASSIST ALPHA - 'update-imuassistalpha'

עדכוני FMap

  • קבצי FMap Json יכולים כעת להטמיע אופציונלית SVG מקודד base64
  • קבצי FMap Json יכולים כעת להטמיע אופציונלית PNG מקודד base64

רשתות עצביות של ReefScape הועלו

  • מודל B2 Hailo הוא המודל בעל הביצועים הטובים ביותר שלנו ל-FRC2025. הוא אומן על תמונות מונוכרום כדי להתאים טוב יותר ל-LL4.
מודל Coral

עדכוני LL3A

  • 3A נתמך במלואו עם עדכוני 2025

תיקוני באגים

  • Limelights ללא IMU פנימי מתעלמים מ-imumode_set
  • Limelight 3s ששודרגו ל-Limelight 3Gs ישתמשו כראוי במאוורר המובנה
  • תיקון חיתוך בצינורות Neural Detector מבוססי Hailo
  • תיקון חיתוך בצינורות AprilTag מבוססי Hailo

Limelight OS 2025.0 (15/1/24)

תמיכה ב-LL4

  • הוספת תמיכה בזיהוי אובייקטים Hailo ו-AprilTags מואצי Hailo
  • הוספת תמיכה ב-IMU הפנימי של LL4.
  • הוספת מפתח NT "imumode_set"
    • 0 - השתמש ב-IMU חיצוני, אל תזרע IMU פנימי
    • 1 - השתמש ב-IMU חיצוני, זרע IMU פנימי
    • 2 - השתמש ב-IMU פנימי

עדכוני שדה 2025

  • רוחב השדה וגובה השדה הם כעת חלק מקבצי .fmap
  • עדכון .fmap ברירת המחדל להתאמה לשדה 2025
  • עדכון תמונת השדה ברירת המחדל
  • בונה המפות המקוון מאפשר כעת להגדיר רוחב שדה וגובה שדה
  • קישור ה-fmap של 2025 בדף ההורדות עודכן.

תיקוני באגים

  • תיקון כפתור "מחק את כל התמונות"

Limelight OS 2024.10.2 (28/10/24)

תיקון Python Snapscript (קרדיט - קבוצת FTC 23251 TRIPLE FAULT)

  • פלטי Python לא יקפאו יותר בעת שימוש ב-Control Hub עם Limelight3A
  • פלטי Python לא יקפאו יותר בעת מעבר בין צינורות python

מקרה קצה MT2

https://github.com/LimelightVision/limelight-feedback/issues/23

  • בעת בדיקת MT2 ללא רובוט, קל ליצור אי-אפשרות גיאומטרית.
  • מקרה קצה זה לא היה מאפס את botpose של mt2 - הוא היה מאפס את תנוחת המצלמה.
  • הרובוט ממוקם כעת ב-(0,0,0) בכל פעם שמקרה קצה זה מזוהה

כתובת IP סטטית

https://github.com/LimelightVision/limelight-feedback/issues/25

  • הוספת אזהרה למגדיר כתובת IP אם הכתובת מסתיימת ב-.1-.10 או .20-.255 מכיוון שכתובות אלה עלולות להפריע ל-FMS או למכשירים אחרים
  • ב-2024.10.1, ממשק המשתמש לפעמים הציע שכתובת IP סטטית הוגדרה כאשר סכמת הכתובות הייתה מוגדרת ל"אוטומטי"

STDDevs NetworkTables

https://github.com/LimelightVision/limelight-feedback/issues/24

  • "stddevs" ב-networktables מכיל את כל ה-stddevs עבור mt1 ו-mt2 (מערך double, 12 אלמנטים)

מקרה קצה העלאת מודל

  • אם מודל מסווג מועלה לצינור גלאי, "check model" יוצג על התמונה
  • אם מודל גלאי מועלה לצינור מסווג, "check model" יוצג על התמונה

Limelight OS 2024.10.1 (15/9/24)

עדכוני Limelight 3A

  • עדכון ערכי איזון צבע ברירת מחדל
  • עדכון תצורת גודל AprilTag ברירת מחדל ל-101.6 מ"מ
  • הפחתת קצב פריימים של זרם וידאו ברירת מחדל ל-30FPS
  • הגברה קלה של דחיסת זרם הווידאו להפחתת קצב הסיביות של הזרם

אזהרת גודל AprilTag

  • הוספת אזהרה למחזה שטח השדה אם גודל AprilTag המוגדר אינו תואם לגדלים במפת השדה שהועלתה.
באנר דוגמה

תיקון באג CameraPose_RobotSpace

  • דריסת תנוחת המצלמה המוגדרת בממשק המשתמש מ-NetworkTables/LimelightLib/REST עובדת שוב כראוי.

Limelight OS 2024.10 (4/9/24)

תמיכה ב-Limelight 3A ל-FTC

  • Limelight3A נתמך במלואו
  • 3A ניתן לשימוש גם ב-FTC וגם ב-FRC

עדכוני מפת AprilTag

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

תמיכה ב-Limelight USB על ControlHub ו-RoboRio.

  • קבוצות FTC יכולות להשתמש ב-Limelight יחיד התומך ב-USB על ה-Control Hub
  • קבוצות FRC יכולות להשתמש בעד 16 Limelights התומכים ב-USB על ה-RoboRio. Limelights USB מאכלסים אוטומטית networktables בדיוק כמו Limelights ethernet.
    • לשימוש במספר Limelights USB, תנו לכל LL אינדקס USB ייחודי ושם מארח ייחודי.

שדרוגי קישוריות USB

  • MacOS כבר לא משתמש בממשק Limelight USB Ethernet לגישה לאינטרנט
  • Windows כבר לא מנסה להשתמש בממשק Limelight USB Ethernet לגישה לאינטרנט

עדכוני REST API

  • תיקון בקשת POST של update-robotorientation.
  • MT2 נגיש כעת במלואו ללא NetworkTables.
  • ברגע שנעשה שימוש בנתיב update-robotorientation, עדכוני כיוון NetworkTables מושבתים עד לאתחול מחדש.

Limelight OS 2024.9.1 (7/7/24)

  • כלי בונה המפות מקבל/ממיר כעת פריסות apriltag של WPILib .json
  • הוספת AprilTag3 ל-Python Snapscripts (from apriltag import apriltag)
  • ראו דוגמה במאגר הדוגמאות ב-github
  • תיקון בעיית gateway של קישוריות USB ב-Windows.

צילום מסך מוזאיקה:

Limelight OS 2024.9 (5/7/24)

שדרוגי MegaTag

  • Limelight OS עבר ל-NetworkTables 4.0

  • MegaTag2 משתמש כעת ב-getAtomic() של NT4 לאחזור עדכוני IMU עם חותמת זמן מה-roboRIO.

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

  • flush() של NT4 נוסף ל-LimelightLib. הוספת Flush() לגרסאות ישנות יותר של Limelight OS תקרב אתכם מאוד לביצועי 2024.9, אבל NT4 מבטיח שהדיוק תמיד גבוה.

  • לרובוט המחזה של MT2 יש כעת פגושים ירוקים, ורובוט המחזה של MT1 משתמש בפגושים צהובים.

  • מדדים ניתנים כעת לכיווץ, והרובוטים הווירטואליים ניתנים להסתרה.

  • הסרטון הבא מדגים כיצד MegaTag 2 של 2024.9 (רובוט ירוק) עם flush() בצד הרובוט חזק יותר מ-MegaTag2 של 2024.5 ללא Flush() (רובוט אדום)

USB ID וכתובות IP USB חדשות

  • הגדירו את "USB ID" בדף ההגדרות לשימוש במספר Limelights USB על כל מערכת.
  • ממשק USB-Ethernet שמופיע במערכת שלכם ישתמש בכתובת IP שנקבעת על ידי ה-USB ID
  • מערכות Linux/Android/Mac ישתמשו כעת ברשת המשנה 172.29.0.0/24 כברירת מחדל
  • מערכות Windows ישתמשו כעת ברשת המשנה 172.28.0.0/24 כברירת מחדל.
  • אם ה-USBID מוגדר, רשת המשנה משתנה ל-172.29.(USBID).0/24 עבור Linux/Android/Mac ו-172.28.(USBID).0/24 עבור Windows.
  • כעת תוכלו, לדוגמה, לחבר ארבעה מכשירי Limelight לרכזת USB יחידה על ידי התאמת שמות המארח וה-USB IDs שלהם

מסווגים עצביים CPU

  • העלו מסווג CPU .tflite כדי לאפשר סיווג עצבי ללא Google Coral. תוכלו לצפות ל-15-18 FPS בגרסאות LL3.
  • 2024.9 מגיע עם מסווג CPU ברירת מחדל.
  • הגדירו את זמן הריצה של המסווג ל-"CPU" כדי לאפשר תכונה זו

גלאים עצביים CPU

  • העלו גלאי CPU .tflite כדי לאפשר זיהוי עצבי ללא Google Coral. תוכלו לצפות ל-10 FPS בגרסאות LL3.
  • 2024.9 מגיע עם גלאי CPU ברירת מחדל.
  • הגדירו את זמן הריצה של הגלאי ל-"CPU" כדי לאפשר תכונה זו

Limelight OS 2024.8 (3/7/24)

  • הוספת פלט python (PythonOut), tx, ty, txnc, tync, ta לאובייקט תוצאות json
  • שיפור נוסף בפיצוי השהיה של MT2

Limelight OS 2024.7 (21/5/24)

  • שדרוג ל-Linux 6.6

תיקוני באגים

  • תיקון המרת צינור ראייה
  • תיקון העלאות כיול, העלאות תמונות, והעלאות nn

Limelight OS 2024.6 (8/5/24)

LimelightLib Python

  • pip install limelightlib-python
  • ספריית Python שלנו מאפשרת לכם לתקשר עם Limelights USB ו-Ethernet על כל פלטפורמה.
  • היא מאפשרת תצורה מלאה של Limelight ללא אינטראקציה עם ממשק האינטרנט.
  • העלו צינורות, רשתות עצביות, מפות שדה, וכו'
  • בצעו שינויים בזמן אמת לכל פרמטר צינור עם אפשרות "שמור לדיסק" אופציונלית
  • שלחו נתוני קלט python מותאמים אישית, הגדירו כיוון רובוט, וכו'

שדרוגי MegaTag2

  • פיצוי השהיית ג'ירוסקופ של MegaTag2 שופר. חפשו שיפורים נוספים בקרוב!
  • הוספת מחוון "התאמת השהיית ג'ירוסקופ" לממשק המשתמש. לכוונון ידני של פיצוי השהיית MegaTag 2, תוכלו לסובב את הרובוט שלכם ולהתאים את המחוון עד שתוצאות הלוקליזציה מושלמות בזמן סיבוב.

מדדי סטיית תקן

  • מחזה השדה התלת-ממדי כולל כעת סטיות תקן של MegaTag1 ו-Megatag2 עבור x, y, ו-yaw.

סוג צינור "Focus" חדש

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

סוג צינור "Barcodes" חדש

  • זיהוי ופענוח קודי QR מרובים ב-50-60FPS ב-1280x800
  • זיהוי ופענוח DataMatrix מרובים ב-50-60FPS ב-1280x800
  • UPC, EAN, Code128, ו-PDF417 מרובים ב-30FPS ב-1280x800
  • מחרוזות נתוני ברקוד מפורסמות למערך nt "rawbarcodes".
  • צינור הברקודים יאכלס את כל המדדים הדו-ממדיים כגון tx, ty, ta, tcornxy, וכו'.

REST API חדש לחלוטין

  • https://docs.limelightvision.io/docs/docs-limelight/apis/rest-http-api
  • ה-REST / HTTP API שלנו נבנה מחדש מהיסוד.
  • ה-REST API מאפשר תצורה מלאה של Limelight ללא אינטראקציה עם ממשק האינטרנט.
  • העלו צינורות, רשתות עצביות, מפות שדה, וכו'
  • בצעו שינויים בזמן אמת לכל פרמטר צינור עם אפשרות "שמור לדיסק" אופציונלית
  • שלחו נתוני קלט python, הגדירו כיוון רובוט, וכו'

הסרת הגדרת כיוון מצלמה מממשק המשתמש (שינוי שובר)

  • זה הוחלף באפשרות "כיוון זרם". כיול וכיוון לעולם לא מושפעים מאפשרות זו.
  • האפשרות החדשה משפיעה רק על הזרם. הפוך, 90 מעלות עם כיוון השעון, 90 מעלות נגד כיוון השעון, מראה אופקית, ומראה אנכית
  • קבוצות יצטרכו כעת להפוך ידנית את tx ו-ty כנדרש בעת שימוש במצלמות מסובבות.

הסרת תמיכה ב-GRIP (שינוי שובר)

הסרת מצב "Driver" ללא עיבוד (שינוי שובר)

  • זה הוחלף בסוג צינור "Viewfinder"

הוספת סוג צינור "Viewfinder"

  • צינור ה-viewfinder משבית את כל העיבוד להשהיה מינימלית
  • זה מאפשר לקבוצות לעצב צינורות "Driver" משלהן למצבי צפייה בלבד

קבצי צינור משתמשים כעת בפורמט JSON (שינוי שובר)

  • צינורות עדיין משתמשים בסיומת קובץ .vpr
  • (שבור במקרים מסוימים ב-2024.6) ממשק המשתמש יהמיר אוטומטית צינורות ל-JSON כאשר תשתמשו בכפתור "העלה".
  • (פונקציונלי במלואו) תוכלו גם להשתמש ב-https://tools.limelightvision.io/pipeline-upgrade לשדרוג הצינורות שלכם

שיפור חוויית משתמש בכיול

  • הגדרות כיול נשמרות כעת במטמון. אינכם צריכים יותר להזין את הגדרות הכיול שלכם בכל פעם שאתם רוצים לכייל.
  • מילון הכיול ברירת המחדל עודכן לעבוד עם לוח הגס המומלץ 800x600 מ"מ מ-Calib.io.

מוזאיקת כיול

  • בעבר, היה קשה לקבוע את איכות תמונות הכיול
  • לשונית הכיול כוללת כעת כפתור "הורד מוזאיקת כיול". המוזאיקה תראה לכם בדיוק מה כל תמונה תורמת לכיול שלכם.

צילום מסך מוזאיקה:

אזור כיוון "Centroid"

  • מצב כיוון Centroid נוסף ללשונית "Output" לשיפור מעקב אובייקטים עם צינורות צבע

היסט תלת-ממדי דינמי (NT: fiducial_offset_set)

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

הוספת תמיכה ב-Modbus

  • Limelight OS כולל כעת שרת modbus פעיל תמיד לבדיקה, לוגיסטיקה ויישומים תעשייתיים
  • ראו את מפרט רגיסטר modbus כאן: https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
  • ניתן לשנות את יציאת שרת modbus ברירת המחדל בלשונית ההגדרות של ממשק המשתמש
  • באמצעות modbus וצינורות python snapscript, יישומי ראייה מותאמים אישית לחלוטין עם תקשורת דו-כיוונית נתמכים כעת.

שרת NT מותאם אישית

  • לשונית ההגדרות מכילה כעת ערך לשרת NT מותאם אישית.
  • זה מאפשר זרימת עבודה חדשה הכוללת שרת glass NT שרץ על מחשב, ו-Limelight 3G מתקשר דרך USB.

שינויים ב-Rawfiducial

  • ערך ה"שטח" של fiducials גולמיים הוא כעת ערך מכויל ומנורמל בטווח ~0-1

כל שינויי NetworkTables ו-JSON

  • הוספת NT getpipetype - קבל את מחרוזת סוג הצינור הנוכחי (לדוגמה pipe_color, pipe_fiducial)

  • הוספת NT tcclass - שם מחלקה שזוהה בצינור מסווג

  • הוספת NT tdclass - שם מחלקה שזוהה בצינור גלאי

  • הוספת NT t2d לכיוון דו-ממדי אטומי מובטח - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]

  • הסרת NT tlong, tshort, thor, tvert, ו-ts

  • הוספת מערך NT 'crosshairs' [cx0,cy0,cx1,cy1]

  • הסרת NT cx0, cy0, cx1, ו-cy1

  • הוספת NT rawbarcodes - מערך מחרוזות NT של נתוני ברקוד. עד 32 ערכים.

  • כל מערכי ה"raw" מאפשרים עד 32 מטרות (עלייה מ-8)

  • הוספת fiducial_offset_set מגדיר היסט תלת-ממדי דינמי

  • הוספת "pType" לאובייקט תוצאות json ברמה העליונה

  • הוספת "stdev_mt1" ו-"stdev_mt2" לאובייקט תוצאות json ברמה העליונה (x,y,z,roll,pitch,yaw) (מטרים, מעלות)

שינויים בפורמטי קבצים אחרים ו-JSON Dumps

  • פורמט קובץ הכיול פושט. כיולים ישנים מומרים אוטומטית לפורמט החדש בעת העלאה
  • שכבת קינון אחת הוסרה מ-Results ו-Status JSON dumps

תיקוני באגים

  • בעבר, אם Google Coral נותק בזמן שצינור Neural היה פעיל, הצינור היה חוזר לצמיתות למצב "color/retro"
    • כעת, "CHECK CORAL" או "CHECK MODEL" יודפסו על התמונה. סוג הצינור לעולם לא ישתנה
  • בעבר, תגיות שעברו בהצלחה דרך מסנן ה-fiducial ID לפעמים צוירו עם מתאר אדום במקום מתאר ירוק. בעיית הויזואליזציה הזו תוקנה.
  • צינורות Apriltag מאכלסים את מערך NT tcornxy
  • צינורות Apriltag מכבדים כעת במלואם את מחוון שטח מינימום-מקסימום. בעבר, צינורות AprilTag היו מסננים תוצאות דו-ממדיות בהתבסס על שטח תגית, אבל לא תוצאות תלת-ממדיות / לוקליזציה.

Limelight OS 2024.5.0 (9/4/24)

  • שדרוג ל-Linux 6.1

עדכון מערך המצלמה

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

הקטנת קנה מידה דינמית

  • קבוצות יכולות כעת להגדיר "fiducial_downscale_set" כדי לדרוס את הגדרת הקטנת קנה המידה של הצינור הנוכחי
  • 0:שליטת UI, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
  • השתמשו בשיטת ה-Helpers החדשה עם 0.0 (שליטת UI), 1.0, 1.5, 2.0, 3.0, 4.0
  • זוהי פעולה ללא תקורה.
  • על ידי שילוב הקטנת קנה מידה דינמית וחיתוך דינמי, קבוצות יכולות למקסם FPS ללא ניהול צינורות מרובים

שיפורי MegaTag2

  • MT2 עובד כעת ללא קשר לכיוון ה-Limelight, כולל מצבי "פורטרט" עם גלגולים של 90 מעלות ו-90- מעלות

מערך nt "rawdetections"

  • [classID, txnc, tync, ta, corner0x, corner0y, corner1x, corner2y, corner3x, corner3y, corner4x, corner4y]
  • הפינות הן במרחב פיקסלים ללא כיול מיושם

עדכון שחיקה/התרחבות

  • צינורות צבע תומכים כעת בעד 10 שלבי התרחבות ו-10 שלבי שחיקה
  • לצינורות צבע יש כעת אפשרות "morpho הפוך" להפוך את סדר שלבי ההתרחבות והשחיקה

LimelightLib 1.6 (9/4/24)

  • הוספת void SetFiducialDownscalingOverride(float downscale)

הגדירו ל-0 לשליטת צינור, או אחד מהבאים כדי לדרוס את הגדרת הקטנת קנה המידה של הצינור שלכם: 1, 1.5, 2, 3, 4

  • הוספת RawFiducial[] GetRawFiducials()
  • הוספת RawDetection[] GetRawDetections()

Limelight OS 2024.4.0 (3/4/24)

תודה לכל הקבוצות שתרמו רעיונות לעדכון זה.

Megatag 2

Megatag 2 הוא מאתר ללא עמימות. יש לו דיוק גבוה יותר ורמת דיוק גבוהה יותר מ-Megatag1, והוא נבנה עם הדרישות הבאות:

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

שימו לב להבדל בין MegaTag2 (רובוט אדום) ל-Megatag (רובוט כחול) במקרה זה של תג בודד עם עמימות גבוהה:

Megatag2 דורש מכם להגדיר את כיוון הרובוט שלכם עם קריאת שיטה חדשה. הנה דוגמה מלאה:

      LimelightHelpers.SetRobotOrientation("limelight", m_poseEstimator.getEstimatedPosition().getRotation().getDegrees(), 0, 0, 0, 0, 0);
LimelightHelpers.PoseEstimate mt2 = LimelightHelpers.getBotPoseEstimate_wpiBlue_MegaTag2("limelight");
if(Math.abs(m_gyro.getRate()) > 720) // אם המהירות הזוויתית שלנו גדולה מ-720 מעלות לשנייה, התעלם מעדכוני ראייה
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}
if(!doRejectUpdate)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.6,.6,9999999));
m_poseEstimator.addVisionMeasurement(
mt2.pose,
mt2.timestampSeconds);
}

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

סינון Apriltag דינמי

  • מכיוון ש-MegaTag2 לא נואש לצבור כמה שיותר AprilTags, אתם יכולים לסנן בבטחה תגים ממוקמים היטב ורלוונטיים:
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);

מעבר ל-MegaTag2

Megatag2 דורש את כיוון הרובוט שלכם כדי לעבוד כראוי. כיוון של 0 מעלות, 360 מעלות, 720 מעלות וכו' אומר שהרובוט שלכם פונה לקיר הברית האדומה. זוהי אותה מוסכמה המשמשת ב-PathPlanner, Chorero, Botpose, ו-Botpose_wpiblue.

לאחר שהוספתם SetRobotOrientation() לקוד שלכם, בדקו את הוויזואליזר התלת-ממדי המובנה. בטווח קרוב, Megatag2 ו-Megatag1 צריכים להתאים בקירוב אם לא בדיוק. בטווח רחוק, Megatag 2 (רובוט אדום) צריך להיות מדויק ויציב יותר מ-Megatag1 (רובוט כחול).

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

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

למאגר הדוגמאות יש דוגמת Megatag2 עם מסנן זה.

    if(Math.abs(m_gyro.getRate()) > 720) // אם המהירות הזוויתית שלנו גדולה מ-720 מעלות לשנייה, התעלם מעדכוני ראייה
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}

LimelightLib 1.5 (3/4/24)

הוספת

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (20/3/24)

תודה לכל הקבוצות שתרמו רעיונות לעדכון זה.

פותר תג בודד ברמת דיוק גבוהה יותר

פותר התלת-ממד של תג בודד של MegaTag שופר. הוא יציב הרבה יותר מבעבר בטווח רחוק.

JSON מושבת כברירת מחדל (שינוי שובר)

  • JSON הושבת כברירת מחדל כדי להפחית שימוש ברוחב פס לכל הקבוצות המשתמשות בלוחות מחוונים עם הרשמה אוטומטית כמו Shuffleboard.
  • זה אמור גם להפחית עומס NT ושימוש ב-CPU של RoboRIO.
  • הפעילו מחדש json לכל צינור בלשונית הפלט.
  • עדכון זה כולל שינויים שאמורים לאפשר לעוד יותר קבוצות לעבור מ-JSON להערכת תנוחה.

שטח לא מעוות (שינוי שובר)

הפינות מתבטלות מעיוות לפני חישוב השטח של כל מטרה.

הכללת מדדים לכל Fiducial ב-botpose, botpose_wpiblue, ו-botpose_wpired

[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (מטרים), averageDistance (מטרים), averageArea (אחוז מהתמונה), (תגים) ]

עבור כל תג המשמש את לוקליזציית megatag, המערכים לעיל כוללים כעת (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)

עמימות היא מדד חדש בטווח 0-1 המציין את העמימות של הפרספקטיבה הנוכחית של התג. עדכוני תג בודד עם עמימויות תג > .9 כנראה צריכים להידחות.

מערכי nt "rawtargets" ו-"rawfiducials" (שינוי שובר)

  • rawtargets - (txnc,tync,ta) לכל מטרה
  • rawfiducials - (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity) לכל מטרה
  • רשומות NT של rawtargets הקודמות (tx0,ty0, וכו') הוסרו.

תיקוני באגים

  • איפוס כל מידע התלת-ממד של תג בודד אם ה-priorityID לא נמצא. בעבר, רק Tx, Ta, Ty, ו-Tv אופסו כאשר ה-priorityTag לא נמצא
  • איפוס botpose אם התג הנראה היחיד סונן על ידי תכונת "מסנני ID" של ה-UI. בעבר, botposes היו מתאפסים למרכז המגרש במקום ל-(0,0,0) אם התג הנראה היחיד היה תג מסונן;
  • 2024.2 היה מפרסם NANs לרשומות networktables מסוימות במקרים נדירים מסוימים. זה לא יקרה יותר.

LimelightLib 1.4 (21/3/24)

  • הוספת תמיכה ב-Raw Fiducials של 2024.3.4. PoseEstimates כוללים כעת מערך של rawFiducials המכילים id, txnc, tync, ta, distanceToCamera, distanceToRobot, ו-ambiguity

Limelight Hardware Manager 1.4 (18/3/24)

תיקון באג

Limelights USB שהתגלו מוצגים כראוי כרשומה בודדת במקום שתי רשומות חלקיות.


Limelight OS 2024.2.2 (17/3/24)

תיקון באג

TX ו-TY מכבדים כראוי את הצלב בכניסות NT.


Limelight OS 2024.2 (8/3/24)

כיוון אפס-צלב עם Json (tx_nocross, ty_nocross) ו-NT (txnc, tync)

אם אתם משתמשים בכיוון tx/ty עם כיול intrinsics מותאם אישית, סביר להניח שאתם עדיין רואים שונות ממצלמה למצלמה מכיוון שצלב ה-Limelight אינו מיושר עם הפיקסל הראשי של המצלמה. קבוצות הדורשות דיוק tx/ty גבוה יותר יכולות להגדיר את הצלב כך שיתאים לפיקסל הראשי, או להשתמש במדדים החדשים הללו.

שינוי פוטנציאלי שובר ב-tx/ty

באג הוצג מוקדם יותר בעונה זו ששבר כיול מותאם אישית במיוחד עבור tx, ty, ו-tx + ty ב-json. Limelight OS חזר לכיולי ברירת מחדל במספר מקרים.

שדרוגי כיול

הכיול כעת כמעט מיידי, לא משנה כמה תמונות נלכדו. תיקנו גם קריסה שנגרמה מיותר מכ-30 תמונות בנסיבות מסוימות.

אנחנו מקבלים באופן עקבי שגיאת הקרנה מחדש של כפיקסל אחד עם 15-20 תמונות של מטרות נייר, ושגיאה של .3 פיקסלים עם מטרות calib.io באיכות גבוהה שלנו.

תיקון UI של מסנני Fiducial

תיבת הטקסט של מסנן fiducial מקבלת כעת כל מספר של מסננים.

שונות

מחולל Apriltag מוגדר כברירת מחדל ל"ללא גבול" כדי למנוע קנה מידה עם תגים של 165.1 מ"מ.


Limelight OS 2024.1.1 (24/2/24)

  • תיקון priorityID

Limelight OS 2024.1 (24/2/24)

מדדי HW (מפתח hw ב-networktables, בקשת GET של /status)

שיפור כיול

  • תיקון קריסה שיכלה להתרחש אם תמונת כיול הכילה בדיוק זיהוי תקף אחד. שיפור משוב ממשק האינטרנט.

שיפור לוקליזציית רובוט (ספירת תגים ועוד)

  • כל מערכי botpose של networktables (botpose, botpose_wpiblue, ו-botpose_wpired) כוללים כעת ספירת תגים, טווח תגים (מטרים), מרחק ממוצע (מטרים), ושטח ממוצע (אחוז מהתמונה)

  • מדדים אלה מחושבים עם תגים הכלולים במפת השדה שהועלתה. AprilTags מותאמים אישית ו/או ניידים לא ישפיעו על מדדים אלה.

  • עם כיול מכשיר ושדרוג מערך botpose זה, אנחנו לא מאמינים ש-JSON נחוץ עבור הרוב המכריע של מקרי השימוש השנה.

  • dump של JSON כולל כעת botpose_avgarea, botpose_avgdist, botpose_span, ו-botpose_tagcount לנוחות.

[tx,ty,tz,rx,ry,rz,latency,tagcount,tagspan,avgdist,avgarea]

תכונה חדשה: Priority ID (מפתח NT priorityid)

  • אם הרובוט שלכם משתמש גם בתכונות מבוססות אודומטריה וגם בתכונות מבוססות tx/ty, כנראה נתקלתם בבעיית UX הבאה:

  • לפני עדכון זה, לא הייתה דרך קלה להחליף את מזהה התג המועדף לכיוון tx/ty.

  • בעוד שיש מסנן ID ב-UI, הוא

    • אינו דינמי
    • מסיר תגים מלוקליזציית megaTag.
  • זה אומר שקבוצות יצרו מספר צינורות: אחד ללוקליזציה תלת-ממדית, ואחד לכל תג tx/ty (צינור אחד לירי בצד הכחול עם תג 7, אחד ל-amping בצד הכחול עם תג 6, וכו').

  • תכונת ה-priority ID החדשה (מפתח NT priorityid) מאפשרת לכם לומר ל-Limelight שלכם "לאחר שכל זיהוי התגים, הסינון והמיון הושלמו, התמקד בתג שמתאים ל-priority ID."

  • זה לא משפיע על הלוקליזציה בשום צורה, וזה רק משנה מעט את סדר התגים בתוצאות JSON.

  • אם ה-priority id שלכם אינו -1, tx/ty/ta יחזירו 0 אלא אם התג שנבחר נראה.

שונות

  • תיקון "x" על פני המסך בעת שימוש במצב דו-מטרה בצינור apriltag תלת-ממדי
  • REST API הורחב עם העלאות תוויות רשת עצבית (/uploadlabels)
  • הכללת כינוי מכשיר ב-json של /status

LimelightLib 1.3

  • LimelightLib (Java ו-CPP) עודכנו כדי להפוך את הלוקליזציה לקלה מתמיד.
  LimelightHelpers.PoseEstimate limelightMeasurement = LimelightHelpers.getBotPoseEstimate_wpiBlue("limelight");
if(limelightMeasurement.tagCount >= 2)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.7,.7,9999999));
m_poseEstimator.addVisionMeasurement(
limelightMeasurement.pose,
limelightMeasurement.timestampSeconds);
}


משאבים חדשים לקבוצות

משוב ומעקב בעיות של Limelight: https://github.com/LimelightVision/limelight-feedback/issues

מאגר דוגמאות: https://github.com/LimelightVision/limelight-examples

דוגמת כיוון וטווח עם Swerve: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-aiming-and-ranging

דוגמת לוקליזציית MegaTag: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-pose-estimation

תודה לתורמים האחרונים jasondaming, Gold876, JosephTLockwood, Andrew Gasser, ו-virtuald


עדכוני Limelight 2024 (6/2/24)

שדרוג תיעוד Limelight

  • התיעוד נכתב מחדש כדי לייעל את תהליך ההתקנה

מחולל AprilTag של Limelight

  • https://tools.limelightvision.io/ כולל כעת את מחולל ה-AprilTag המקוון הראשון אי פעם.
  • בחרו את גודל הנייר שלכם, גודל הסמן, ומזהי התגים כדי ליצור PDF להדפסה.
  • Safari עשוי לא להציג תגים כראוי כרגע.

בונה מפות Limelight

  • https://tools.limelightvision.io/map-builder
  • אתם יכולים כעת לבנות מפות AprilTag מותאמות אישית עם ממשק משתמש אינטואיטיבי.
  • המשפחה וגודל התג כברירת מחדל עודכנו כדי להתאים לשדה 2024.

מנהל חומרה חדש

  • כלי המאתר הוא כעת מנהל החומרה של Limelight
  • הוא נכתב מחדש מאפס. הוא כעת מזהה Limelights באופן אמין, מספק מידע אבחוני שימושי יותר, ואינו דורש הפעלות מחדש כדי לעבוד כראוי.
  • קבלו אותו עכשיו מדף ההורדות צילום מסך של מחברת:

אמנו את הרשתות העצביות שלכם

צילום מסך של מחברת:

מפת AprilTag 2024 וגלאי Note

  • המפה ומודל הגלאי נוספו לדף ההורדות ולתמונת Limelight OS האחרונה.

Limelight OS 2024.0 (6/2/24)

תיקוני כיול ChArUco

  • דיוק תת-הפיקסל של גלאי ה-ChArUco שלנו הוגבר. שגיאת הקרנה מחדש של 1-2 פיקסלים ניתנת להשגה כעת עם מטרות לוח קליפס ו-20 תמונות.
  • באמצעות אותה מצלמה ואותה מטרה, 2023.6 השיג RPE של 20 פיקסלים, ו-2024.0 השיג RPE של 1.14 פיקסלים.
  • שדות קלט אינם מקבלים יותר אותיות ותווים מיוחדים. זה מבטל את הפוטנציאל לקריסה.

שיפור דיוק Megatag מהקופסה

  • לפני עדכון זה, מחולל מפת Megatag הפנימי של Limelight התייחס למחוון גודל התג של ה-UI במקום לגדלי התגים שסופקו על ידי קובץ ה-.fmap.
  • Megatag כעת מכבד את גדלי התגים שהוגדרו בקבצי fmap ומתעלם ממחוון הגודל.
  • אם מחוון הגודל שלכם לא הוגדר ל-165.1 מ"מ, תבחינו בשיפור מיידי בדיוק הלוקליזציה

שדרוגי ביצועים ותיקוני באגים

  • צינורות AprilTag עם FPS גבוה יותר
  • הביצועים של הוויזואליזר במרחב השדה שופרו משמעותית.

תיקוני באגים

  • Apriltags בוויזואליזרים תלת-ממדיים לפעמים צוירו עם תמונות תג שגויות או פגומות. התגים מוצגים כעת תמיד בצורה נכונה.
  • "v" / tv / "valid" יחזירו כעת "1" רק אם יש זיהויים תקפים. בעבר, tv היה תמיד "1"