מדריך התחלה מהירה ל-Limelight 3A
מפרט טכני
- מידות: 2.839 אינץ' x 1.894 אינץ' (72.11 מ"מ x 48.11 מ"מ)
- עובי: 0.661 אינץ' (16.80 מ"מ)
- משקל: 0.20 ליברה
- הרכבה: 4x #10 חורים מלאים, 4x M3, 6x M4 חורי הברגה
- כניסת מתח: 4.1V-5.75V דרך USB
- צריכת חשמל מקסימלית: 4W
- חיישן: OV5647 צבע Rolling Shutter (640x480 @ 90FPS)
- ללא תאורת LED מובנית
- שדה ראייה: אופקי:54.5° אנכי:42°
- חיבוריות USB-C בלבד (ללא יציאת RJ45)
- נורית סטטוס: ירוקה (זיהוי מטרה)
- מותאם במיוחד לתאימות עם FTC
יכולות תוכנה (Limelight OS)
- ראיית מכונה בביצועים גבוהים בחיבור מיידי. לא נדרש ניסיון קודם.
- ממשק משתמש מבוסס דפדפן לתצורת צינורות ראייה
- תמיכה ב-FTC (אינטגרציה ישירה עם Java) ו-FRC (ממשק NetworkTables)
- חשיפה, רגישות חיישן, רזולוציה וקצב פריימים הניתנים להתאמה
- הגדרת 10 צינורות ראייה הניתנים להחלפה מיידית:
- צינורות Python מותאמים אישית עם OpenCV 4.10, numpy ועוד
- מעקב AprilTag דו-ממדי ותלת-ממדי ואיתור רובוט
- איתור תלת-ממדי מלא (GPS לרובוט) עם MegaTag1
- איתור תלת-ממדי מדויק יותר עם מיזוג IMU חיצוני עם MegaTag2
- 20fps @ 1280x960 (הקטנה פי 2), 50fps @ 640x480 (הקטנה פי 2)
- מציג תלת-ממד מלא בממשק האינטרנט
- צינורות זיהוי כתמי צבע ב-90FPS
- צינורות זיהוי אובייקטים מבוססי רשת נוירונית (הסקה ב-CPU בלבד)
- צינורות סיווג תמונות מבוססי רשת נוירונית (הסקה ב-CPU בלבד)
- צינורות מעקב ברקוד
- ממשק כיול Charuco Intrinsics מובנה
- הזרמת MJPEG בעלת השהייה נמוכה מובנית
1. הרכבת Limelight 3A
הרכבה באמצעות חורי הברגה (מומלץ)
- השתמש בלפחות 2 ברגי M3 או M4 כדי להרכיב את ה-LL3A על תעלת Rev או GoBilda באמצעות חורי ההברגה
- ניתן גם להשתמש בסרט VHB או אזיקונים לקיבוע ה-Limelight
הרכבה באמצעות חורים מלאים
- השתמש בברגי #10-32 או #10-24 באורך 1 1/4" עם אומי nylock
- לחלופין, השתמש בברגי M4 באורך 28 מ"מ עם אומי nylock

2. חיווט Limelight 3A
כאשר אתה מוכן להשתמש ב-Limelight על הרובוט שלך:
עבור FTC
- חבר כבל USBC ל-USBA מה-Limelight 3A ליציאת USB 3.0 של ה-Control Hub
- התחבר ל-Control Hub על ידי חיבור ליציאת USB 3.0 (יציאה כחולה)
עבור FRC
- חבר את ה-Limelight 3A ליציאת USB של ה-roboRIO
- השתמש בכבל USB-C ל-USB-A
Limelight 3A אינו תומך ב-Google Coral. עדיין ניתן להשתמש בצינורות זיהוי וסיווג נוירוניים על ידי הגדרת מנוע הריצה של הרשת הנוירונית ל-"CPU".
3. גישה לממשק האינטרנט
לאחר חיבור ה-Limelight 3A למחשב שלך באמצעות USB:
- המתן עד שנורית הסטטוס הירוקה תהפוך לפעילה (כ-15-20 שניות)
- השתמש באחת מהשיטות הבאות לגישה לממשק האינטרנט:
- שיטה 1: פתח את יישום Limelight Hardware Manager, סרוק אחר Limelights, ולחץ לחיצה כפולה על ה-Limelight 3A שלך כאשר הוא מופיע
- שיטה 2: פתח דפדפן אינטרנט ונווט אל
http://limelight.local:5801
לאחר ההתחברות, תהיה לך גישה אל:
- לשונית הגדרות - הגדר מספר קבוצה, שם מארח ופרמטרי מערכת אחרים
- לשוניות צינורות ראייה - הגדר וכוונן את צינורות עיבוד הראייה שלך
- לשונית מצלמה וכוונת - התאם הגדרות מצלמה ופרמטרי כוונת
- לשונית הדמיה תלת-ממדית - צפה בזיהוי ואיתור AprilTag בזמן אמת
כל התצורה מתבצעת דרך ממשק אינטרנט זה. השינויים נשמרים אוטומטית ל-Limelight שלך.
4. עדכון LimelightOS
ה-Limelights מגיעים עם תמונה מותקנת מראש. סביר להניח שתוכל לדלג על שלב זה בינתיים.
הוראות עדכון (Windows)
שמור את הצינורות שלך לפני עדכון LimelightOS. הם יימחקו במהלך העדכון.
- הורד את מנהלי ההתקנים העדכניים ביותר של USB, תמונת Limelight OS וכלי Balena Flash מדף ההורדות
- הפעל מחדש את המחשב שלך לאחר התקנת מנהלי ההתקנים
- החזק את כפ תור התצורה הכחול על ה-Limelight שלך
- תוך כדי החזקה, חבר כבל USB->USB-C מהמחשב הנייד שלך ל-Limelight (ה-Limelight יידלק אוטומטית)
- לאחר שחיברת את ה-LL למחשב הנייד שלך, תוכל לשחרר את כפתור התצורה הכחול
- ה-Limelight שלך נמצא כעת במצב flash, ונוריות ה-LED שלו לא יהבהבו
- הפעל את "Balena Etcher" כמנהל מערכת
- ייתכן שייקח עד 20 שניות למחשב שלך לזהות את המצלמה
- בחר את קובץ ה-.zip העדכני ביותר בתיקיית ההורדות שלך
- בחר התקן "Compute Module" בתפריט "Drives"
- לחץ על "Flash"
- לאחר סיום ה-flashing, הסר את כבל ה-USB מה-Limelight שלך
הוראות עדכון (מתקדם) (macOS ו-Linux)
שמור את הצינורות שלך לפני עדכון LimelightOS. הם יימחקו במהלך העדכון.
אנו עובדים על פישוט משמעותי של תהליך העדכון ב-macOS ו-Linux
- הורד את תמונת Limelight OS וכלי Balena Flash מדף ההורדות
- בנה את מנהל התקן USB Boot בעצמך:
brew install libusb
brew install pkg-config
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make
cd mass-storage-gadget64
sudo ../rpiboot -d .
# כל עוד rpiboot פועל, המצלמה שלך תזוהה כראוי ב-macOS ו-Linux
# עליך להפעיל את rpiboot בכל פעם שאתה רוצה לבצע flash.
- החזק את כפתור התצורה הכחול על ה-Limelight שלך
- תוך כדי החזקה, חבר כבל USB->USB-C מהמחשב הנייד שלך ל-Limelight (ה-Limelight יידלק אוטומטית)
- לאחר שחיברת את ה-LL למחשב הנייד שלך, תוכל לשחרר את כפתור התצורה הכחול
- ה-Limelight שלך נמצא כעת במצב flash, ונוריות ה-LED שלו לא יהבהבו
- הפעל את "Balena Etcher"
- ייתכן שייקח עד 20 שניות למחשב שלך לזהות את המצלמה
- בחר את קובץ ה-.zip העדכני ביותר בתיקיית ההורדות שלך
- בחר התקן "Compute Module" בתפריט "Drives"
- לחץ על "Flash"
- לאחר סיום ה-flashing, הסר את כבל ה-USB מה-Limelight שלך
5. תהליך ההגדרה
עבור FTC
- חבר את ה-Limelight למחשב הנייד שלך באמצעות כבל USB
- גש לממשק האינטרנט כמתואר בסעיף 3
- עבור ללשונית הגדרות והגדר את מספר הקבוצה שלך, ואז לחץ על "Restart Vision Client"
- הגדר את הצינורות כרצונך (AprilTag, רשתות נוירוניות, Python מותאם אישית וכו')
- כאשר אתה מוכן לתחרות, חבר את ה-Limelight 3A ליציאת USB 3.0 של ה-Control Hub
- באפליקציית FTC DriverStation, לחץ על "Configure Robot"
- אם אין לך תצורה פעילה, ייתכן שתצטרך ליצור אחת חדשה
- לחץ על כפתור "scan"
- אתה אמור לראות "Ethernet Device" מופיע
- תוכל לערוך את שם ההתקן ל-"limelight" לבהירות
- כעת תוכל לאתחל אובייקט Limelight3A בקוד שלך באמצעות מפת החומרה
עבור FRC
- חבר את ה-Limelight 3A למחשב הנייד שלך, המתן לפעילות נורית הסטטוס
- גש לממשק האינטרנט כמתואר בסעיף 3
- בלשונית הגדרות, הגדר את מספר הקבוצה שלך ולחץ על "Restart Vision Client"
- הגדר את הצינורות כרצונך
- כשאתה מוכן, חבר את ה-Limelight 3A ליציאת USB של ה-roboRIO
- פתח את ל
7. תכנות FTC
דוגמה בסיסית ל-FTC: דוגמת FTC
רוב היישומים דורשים פחות מ-10 שורות קוד:
public class Teleop extends LinearOpMode {
private Limelight3A limelight;
@Override
public void runOpMode() throws InterruptedException
{
limelight = hardwareMap.get(Limelight3A.class, "limelight");
telemetry.setMsTransmissionInterval(11);
limelight.pipelineSwitch(0);
/*
* מתחיל לאסוף נתונים.
*/
limelight.start();
while (opModeIsActive()) {
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose();
telemetry.addData("tx", result.getTx());
telemetry.addData("ty", result.getTy());
telemetry.addData("Botpose", botpose.toString());
}
}
}
}
}
לדיוק מרבי באיתור תלת-ממדי, קרא ל-updateRobotOrientation()
והשתמש ב-getBotPose_MT2()
:
while (opModeIsActive()) {
YawPitchRollAngles orientation = imu.getRobotYawPitchRollAngles();
limelight.updateRobotOrientation(orientation.getYaw(AngleUnit.DEGREES));
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose_MT2();
// השתמש בנתוני botpose
}
}
}
למידע נוסף, ראה את דף תכנות FTC
8. פתרון בעיות
מחווני נורית סטטוס
- נורית ירוקה: מהבהבת לאט (אין מטרות), מהבהבת במהירות (זוהו מטרות)
שאלות נפוצות
-
למה ה-Limelight שלי מרגיש כל כך חם? כדי שה-Limelight יפעל קר ככל האפש ר, הוא בהכרח צריך להרגיש חם ככל האפשר/בטוח למגע. המארז שלו הוא גוף קירור מוליך מאוד שעוזר לשמור על המעבד בטמפרטורה קרירה באופן סביר.
-
למה התמונה נראית כל כך מגורענת? כדי למזער השהייה, מספר מסננים שבדרך כלל קיימים במצלמות מסחריות מדולגים. הזרם גם דחוס כדי למזער קצב סיביות. בגרסה 2024.10.1, שינינו את ערכי איזון הצבע כברירת מחדל כדי שהתמונות ייראו טבעיות ומלאות חיים יותר לעין האנושית.
-
מה Limelight מציע מעבר ל-OpenCV על ה-Control Hub? אלגוריתם איתור מרובה תגים מוכן לשימוש, ללא קוד, עם מיזוג חיישן IMU של הרובוט, רשתות נוירונים ועוד.