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

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

שלחו בעיות ובקשות לתכונות חדשות באמצעות דוא"ל או למאגר המשוב של 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 שלכם.

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

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

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

עדכוני REST API

  • הוספת REST API למצב IMU - 'update-imumode'
  • הוספת REST API להגבלת קצב - 'update-throttle'
  • הוספת REST API לאלפא סיוע IMU - 'update-imuassistalpha'

עדכוני FMap

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

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

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

עדכוני LL3A

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

תיקוני באגים

  • Limelights ללא IMU פנימי מתעלמים מ-imumode_set
  • Limelight 3 שעברו שדרוג ל-Limelight 3G ישתמשו כראוי במאוורר המובנה
  • תיקון חיתוך בצינורות גילוי עצבי מבוססי 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 אלמנטים)

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

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

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 כבר לא משתמש בממשק ה-USB Ethernet של Limelight לגישה לאינטרנט
  • Windows כבר לא מנסה להשתמש בממשק ה-USB Ethernet של Limelight לגישה לאינטרנט

עדכוני REST API

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

Limelight OS 2024.9 (7/5/24)

שדרוגי MegaTag

  • Limelight OS עבר ל-NetworkTables 4.0

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

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

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

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

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

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

מזהה USB וכתובות IP חדשות ל-USB

  • הגדר את "USB ID" בדף ההגדרות כדי להשתמש במספר התקני Limelight דרך USB במערכת אחת.
  • ממשק ה-USB-Ethernet שמופיע במערכת שלך ישתמש בכתובת IP שנקבעת על ידי מזהה ה-USB
  • מערכות 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 שלהם

מסווגים נוירונים ל-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 (7/3/24)

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

Limelight OS 2024.7 (5/21/24)

  • שדרוג ל-Linux 6.6

תיקוני באגים

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

Limelight OS 2024.6 (5/8/24)

LimelightLib Python

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

שדרוגי MegaTag2

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

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

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

סוג צינור חדש: "פוקוס"

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

סוג צינור חדש: "ברקודים"

  • זיהוי ופענוח מרובה של קודי 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 (שינוי משמעותי)

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

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

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

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

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

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

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

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

פסיפס כיול

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

צילום מסך של פסיפס:

אזור מיקוד "מרכז מסה"

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

קיזוז תלת-ממדי דינמי (NT: fiducial_offset_set)

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

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

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

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

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

שינויים ב-Rawfiducial

  • ערך ה"שטח" של raw 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 רשומות.

  • כל המערכים ה"גולמיים" מאפשרים עד 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 נותק בזמן שצינור נוירוני היה פעיל, הצינור היה חוזר באופן קבוע למצב "color/retro"
    • כעת, "CHECK CORAL" או "CHECK MODEL" יודפס על התמונה. סוג הצינור לעולם לא ישתנה
  • בעבר, תגים שעברו בהצלחה דרך מסנן זיהוי fiducial צוירו לפעמים עם מתאר אדום במקום מתאר ירוק. בעיית הויזואליזציה הזו תוקנה.
  • צינורות Apriltag ממלאים את מערך ה-NT tcornxy
  • צינורות Apriltag כעת מכבדים באופן מלא את מחוון השטח המינימלי-מקסימלי. בעבר, צינורות AprilTag היו מסננים תוצאות דו-ממדיות על בסיס שטח התג, אך לא תוצאות תלת-ממדיות / מיקום.

Limelight OS 2024.5.0 (4/9/24)

  • שדרוג ל-Linux 6.1

עדכון מחסנית המצלמה

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

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

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

Limelight OS 2024.4.0 (4/3/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) // if our angular velocity is greater than 720 degrees per second, ignore vision updates
{
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) // if our angular velocity is greater than 720 degrees per second, ignore vision updates
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}

LimelightLib 1.5 (4/3/24)

הוסף

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (3/20/24)

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

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

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

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

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

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

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

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

[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (meters), averageDistance (meters), averageArea (percentage of image), (tags) ]

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

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 אופסו כאשר תג העדיפות לא נמצא
  • איפוס botpose אם התג הנראה היחיד סונן על ידי תכונות "מסנני ID" של ממשק המשתמש. בעבר, botposes היו מתאפסים למרכז המגרש במקום ל-(0,0,0) אם התג הנראה היחיד היה תג מסונן;
  • 2024.2 היה מפרסם NANs לרשומות networktables מסוימות במקרים נדירים. זה לא יקרה יותר.

LimelightLib 1.4 (3/21/24)

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

Limelight Hardware Manager 1.4 (3/18/24)

תיקון באג

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


Limelight OS 2024.2.2 (3/17/24)

תיקון באג

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


Limelight OS 2024.2 (3/8/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 תמונות בנסיבות מסוימות.

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

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

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

שונות

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


Limelight OS 2024.1.1 (2/24/24)

  • תיקון priorityID

Limelight OS 2024.1 (2/24/24)

מדדי חומרה (מפתח hw בטבלאות רשת, בקשת GET‏ /status)

שיפור כיול

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

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

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

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

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

  • יצוא JSON כולל כעת botpose_avgarea, botpose_avgdist, botpose_span, ו-botpose_tagcount לנוחות.

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

תכונה חדשה: מזהה עדיפות (מפתח NT priorityid)

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

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

  • בעוד שיש מסנן מזהה בממשק המשתמש, הוא

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

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

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

  • אם מזהה העדיפות שלך אינו -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 להדפסה.
  • ייתכן שספארי לא יציג תגים כראוי כרגע.

בונה מפות Limelight

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

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

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

אימון רשתות עצביות משלך

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

מפת AprilTag 2024 וגלאי הערות

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

Limelight OS 2024.0 (6/2/24)

תיקוני כיול ChArUco

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

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

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

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

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

תיקוני באגים

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