כיוון עם בקרה חזותית
- אתה יכול לכוון את הרובוט שלך במדויק ובמהירות באמצעות limelight ומערכת ההנעה בלבד.
- ניתן להשיג את כל זה בפחות משעה אחת.
באמצעות מעקב חזותי בקצב פריימים גבוה, כעת אפשר להשתמש במערכת הראייה ישירות כ"חיישן" בלולאת בקרת PID כדי להנחות את הרובוט או המגדל שלך. כדי לבדוק את הרעיון הזה, הוספנו limelight לרובוט ה-FRC משנת 2017 שלנו וגרמנו לו לכוון למטרות חזותיות באמצעות מערכת ההנעה ונתוני טבלת הרשת המדווחים על ידי ה-limelight בלבד.
בדוגמה זו, הנבדק שלנו היה רובוט FRC משנת 2017 המשתמש במערכת הנעה בעלת 6 גלגלים עם גלגלי colson. הנה תמונה שלנו מוסיפים limelight לרובוט כדי לבצע את הבדיקה הזו.
לאחר מכן הוספנו קוד לרובוט שירוץ בכל פעם שהנהג מחזיק לחצן בג'ויסטיק. רובוט זה השתמש בנהיגה בסגנון "טנק" כך שפונקציית OperatorControl יצרה ערך 'left_command' וערך 'right_command' כדי לשלוט בצדדים השמאלי והימני של מערכת ההנעה. לאחר קוד הבקרה הרגיל, הוספנו בלוק קוד כזה:
float Kp = -0.1f; // קבוע בקרה פרופורציונלית
std::shared_ptr<NetworkTable> table = NetworkTable::GetTable("limelight");
float tx = table->GetNumber("tx");
if (joystick->GetRawButton(9))
{
float heading_error = tx;
steering_adjust = Kp * tx;
left_command+=steering_adjust;
right_command-=steering_adjust;
}