תכנות FRC עם Limelight Lib (WPILib Java & C++)
- https://github.com/LimelightVision/limelightlib-wpijava
- https://github.com/LimelightVision/limelightlib-wpicpp
JavaDocs: https://limelightlib-wpijava-reference.limelightvision.io
שימוש
זוהי ספרייה בקובץ בודד. כל מה שעליך לעשות הוא להעתיק את הקובץ LimelightHelpers.java מהגרסה האחרונה (https://github.com/LimelightVision/limelightlib-wpijava/releases) לתיקיית "robot" בפרויקט Java שלך. אין צורך ליצור אובייקטים עבור ה-Limelights שלך - הספרייה פשוטה ופונקציונלית כדי למקסם את קלות השימוש והאמינות.
טיפים להצלחה
- התחל בפשטות! קבוצות FRC מצליחות רבות משתמשות בגישות בסיסיות באופן יעיל. לדוגמה, קבוצה 2056 בשנת 2024 השתמשה בצינור צבע סטנדרטי של 90FPS במקום רשתות נוירונים למעקב אחר חלקי משחק.
- חשוב על מה שאתה באמת צריך: האם אתה צריך מיקום מלא בשדה, או האם מירכוז מטרה פשוט יעבוד (לדוגמה,
driveSpeed = result.getTx() * 0.03
)?
מושגי מפתח
1. שימוש בסיסי
כל מתודה מקבלת פרמטר שם Limelight. השאר אותו ריק או null כדי להשתמש ב-"limelight":
// נתוני מיקוד בסיסיים
double tx = LimelightHelpers.getTX(""); // היסט אופקי מהצלב למטרה במעלות
double ty = LimelightHelpers.getTY(""); // היסט אנכי מהצלב למטרה במעלות
double ta = LimelightHelpers.getTA(""); // שטח המטרה (0% עד 100% מהתמונה)
boolean hasTarget = LimelightHelpers.getTV(""); // האם יש לך מטרה תקפה?
double txnc = LimelightHelpers.getTXNC(""); // היסט אופקי מהפיקסל/נקודה הראשית למטרה במעלות
double tync = LimelightHelpers.getTYNC(""); // היסט אנכי מהפיקסל/נקודה הראשית למטרה במעלות
2. ניהול צינורות (Pipelines)
צינורות הם כמו תוכניות שניתן להחליף באופן מיידי המשנות את אופן עיבוד התמונות של Limelight. ניתן להגדיר 10 צינורות שונים בממשק האינטרנט:
// עבור לצינור 0
LimelightHelpers.setPipelineIndex("", 0);