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

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

שלחו דיווחי באגים ובקשות לתכונות חדשות באמצעות דוא"ל או למאגר המשוב של Limelight

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 ללא רובוט, קל ליצור מצב גיאומטרי בלתי אפשרי
  • במקרה קצה זה, מיקום המצלמה היה מתאפס במקום מיקום הרובוט
  • הרובוט ממוקם כעת בנקודה (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 מכיל את כל סטיות התקן עבור mt1 ו-mt2 (מערך double, 12 אלמנטים)

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

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

Limelight OS 2024.10.1 (15/9/24)

עדכוני Limelight 3A

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

אזהרת גודל AprilTag

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

תיקון באג CameraPose_RobotSpace

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

Limelight OS 2024.10 (9/4/24)

תמיכה ב-Limelight 3A עבור FTC

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

עדכוני מפת AprilTag

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

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

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

שיפורי קישוריות USB

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

עדכוני REST API

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

Limelight OS 2024.9.1 (7/7/24)

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

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

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

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

גלאים נוירונים ל-CPU

  • העלה גלאי .tflite ל-CPU כדי לאפשר זיהוי נוירוני ללא 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 (21/5/24)

  • שדרוג ל-Linux 6.6

תיקוני באגים

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

Limelight OS 2024.6 (5/8/24)

LimelightLib Python

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

שיפורים ב-MegaTag2

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

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

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

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

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

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

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

ממשק REST חדש לחלוטין

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

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

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

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

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

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

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

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

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

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

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

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

פסיפס כיול

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

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

אזור מעקב "צנטרואיד"

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

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

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

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

  • למערכת ההפעלה של Limelight יש כעת שרת 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 רשומות.

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

שיפורים ב-MegaTag2

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

מערך "rawdetections" nt

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

עדכון Erode/Dilate

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

LimelightLib 1.6 (4/9/24)

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

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

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

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) // אם המהירות הזוויתית שלנו גדולה מ-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 אינו נואש לצבור כמה שיותר תגי AprilTag, ניתן לסנן בבטחה עבור תגים ממוקמים היטב ורלוונטיים:
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 (4/3/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 (אחוז מהתמונה), (tags)]

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

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

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

  • 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 (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)

תיקון באג

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


Limelight OS 2024.2.2 (17/3/24)

תיקון באג

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


Limelight OS 2024.2 (8/3/24)

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

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

שינוי שעלול לשבור פונקציונליות ב-tx/ty

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

שדרוגי כיול

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

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

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

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

שונות

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


Limelight OS 2024.1.1 (24/2/24)

  • תיקון priorityID

Limelight OS 2024.1 (24/2/24)

מדדי חומרה (מפתח hw ב-networktables, בקשת GET/ status)

שיפור כיול

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

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

  • כל מערכי botpose ב-networktables (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, כנראה נתקלת בבעיית UX הבאה:

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

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

    • אינו דינמי
    • מסיר תגים ממיקום mega-tag.
  • משמעות הדבר הייתה שצוותים יצרו מספר צינורות: אחד למיקום תלת-ממדי, ואחד לכל תג 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 להדפסה.
  • ייתכן שדפדפן Safari לא יציג את התגים כראוי בשלב זה.

בונה מפות Limelight

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

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

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

אמן רשתות נוירונים משלך

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

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

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

Limelight OS 2024.0 (2/6/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"