NetworkTables API
Limelight OS में NetworkTables 4 Client की सुविधा है। यह FRC Robots पर चल रहे NetworkTables 4 Server से Settings UI में कॉन्फ़िगर किए गए Team Number / ID के आधार पर स्वचालित रूप से कनेक्ट होता है।
सभी डेटा एक ऐसी तालिका में प्रकाशित किया जाता है जो डिवाइस नाम से मेल खाती है (जैसे "limelight")। यदि आपके कैमरे को होस्टनेम / निकनेम असाइन किया गया है, तो तालिका का नाम पूरे लाइमलाइट नाम से मेल खाएगा (जैसे "limelight-top")।
LimelightLib WPIJava और LimelightLib WPICPP, NetworkTables के माध्यम से Limelight डिवाइसों के साथ इंटरैक्ट करते हैं।
बेसिक टारगेटिंग डेटा
निम्नलिखित कोड का उपयोग करें:
- Java
- LabView
- C++
- Python
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<variablename>").getDouble(0);
nt::NetworkTableInstance::GetDefault().GetTable("limelight")->GetNumber("<variablename>",0.0);
NetworkTables.getTable("limelight").getNumber('<variablename>');
इस डेटा को प्राप्त करने के लिए:
key | type | विवरण |
---|---|---|
tv | int | 1 अगर वैध लक्ष्य मौजूद है। 0 अगर कोई वैध लक्ष्य मौजूद नहीं है |
tx | double | क्रॉसहेयर से लक्ष्य तक क्षैतिज ऑफसेट (LL1: -27 डिग्री से 27 डिग्री / LL2: -29.8 से 29.8 डिग्री) |
ty | double | क्रॉसहेयर से लक्ष्य तक ऊर्ध्वाधर ऑफसेट (LL1: -20.5 डिग्री से 20.5 डिग्री / LL2: -24.85 से 24.85 डिग्री) |
txnc | double | प्रिंसिपल पिक्सेल से लक्ष्य तक क्षैतिज ऑफसेट (डिग्री) |
tync | double | प्रिंसिपल पिक्सेल से लक्ष्य तक ऊर्ध्वाधर ऑफसेट (डिग्री) |
ta | double | लक्ष्य क्षेत्र (छवि का 0% से छवि का 100%) |
tl | double | पाइपलाइन का लेटेंसी योगदान (ms)। कुल लेटेंसी प्राप्त करने के लिए "cl" में जोड़ें। |
cl | double | कैप्चर पाइपलाइन लेटेंसी (ms)। सेंसर की मध्य पंक्ति के एक्सपोज़र के अंत से ट्रैकिंग पाइपलाइन की शुरुआत तक का समय। |
t2d | double | मैच्ड-टाइमस्टैम्प आंकड़ों के लिए कई मान वाला एरे: [targetValid, targetCount, targetLatency, captureLatency, tx, ty, txnc, tync, ta, tid, targetClassIndexDetector , targetClassIndexClassifier, targetLongSidePixels, targetShortSidePixels, targetHorizontalExtentPixels, targetVerticalExtentPixels, targetSkewDegrees] |
getpipe | int | कैमरे का वास्तविक सक्रिय पाइपलाइन इंडेक्स (0 .. 9) |
getpipetype | string | पाइपलाइन प्रकार जैसे "pipe_color" |
json | string | टारगेटिंग परिणामों का पूर्ण JSON डंप। 'आउटपुट' टैब में प्रति-पाइपलाइन सक्षम किया जाना चाहिए |
tclass | string | प्राथमिक न्यूरल डिटेक्टर परिणाम या न्यूरल क्लासिफायर परिणाम का क्लास नाम |
tc | doubleArray | क्रॉसहेयर क्षेत्र (3x3 पिक्सेल क्षेत्र) के नीचे औसत HSV रंग को NumberArray के रूप में प्राप्त करें |
hb | double | हार्टबीट मान। प्रति फ्रेम एक बार बढ़ता है, 2 अरब पर रीसेट होता है |
hw | doubleArray | HW मेट्रिक्स [fps, cpu तापमान, ram उपयोग, तापमान] |
crosshairs | doubleArray | 2D क्रॉसहेयर्स [cx0, cy0, cx1, cy1] |
tcclass | string | क्लासिफायर पाइपलाइन के कंप्यूटेड क्लास का नाम |
tdclass | string | डिटेक्टर पाइपलाइन के प्राथमिक डिटेक्शन का नाम |
AprilTag और 3D डेटा
निम्नलिखित कोड का उपयोग करें:
- Java
- C++
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<variablename>").getDoubleArray(new double[6]);
nt::NetworkTableInstance::GetDefault().GetTable("limelight")->GetNumberArray("<variablename>",std::vector<double>(6));
इस डेटा को प्राप्त करने के लिए:
key | type | description |
---|---|---|
botpose | doubleArray | फील्ड-स्पेस में रोबोट ट्रांसफॉर्म। ट्रांसलेशन (X,Y,Z) मीटर में, रोटेशन (रोल, पिच, यॉ) डिग्री में, कुल लेटेंसी (cl+tl), टैग काउंट, टैग स्पैन, कैमरे से औसत टैग दूरी, औसत टैग क्षेत्र (इमेज का प्रतिशत) |
botpose_wpiblue | doubleArray | फील्ड-स्पेस में रोबोट ट्रांसफॉर्म (नीले ड्राइवरस्टेशन WPILIB मूल)। ट्रांसलेशन (X,Y,Z) मीटर में, रोटेशन (रोल, पिच, यॉ) डिग्री में, कुल लेटेंसी (cl+tl), टैग काउंट, टैग स्पैन, कैमरे से औसत टैग दूरी, औसत टैग क्षेत्र (इमेज का प्रतिशत) |
botpose_wpired | doubleArray | फील्ड-स्पेस में रोबोट ट्रांसफॉर्म (लाल ड्राइवरस्टेशन WPILIB मूल)। ट्रांसलेशन (X,Y,Z) मीटर में, रोटेशन (रोल, पिच, यॉ) डिग्री में, कुल लेटेंसी (cl+tl), टैग काउंट, टैग स्पैन, कैमरे से औसत टैग दूरी, औसत टैग क्षेत्र (इमेज का प्रतिशत) |
botpose_orb | doubleArray | फील्ड-स्पेस में रोबोट ट्रांसफॉर्म (मेगाटैग2)। ट्रांसलेशन (X,Y,Z) मीटर में, रोटेशन (रोल, पिच, यॉ) डिग्री में, कुल लेटेंसी (cl+tl), टैग काउंट, टैग स्पैन, कैमरे से औसत टैग दूरी, औसत टैग क्षेत्र (इमेज का प्रतिशत) |
botpose_orb_wpiblue | doubleArray | फील्ड-स्पेस में रोबोट ट्रांसफॉर्म (मेगाटैग2) (नीले ड्राइवरस्टेशन WPILIB मूल)। ट्रांसलेशन (X,Y,Z) मीटर में, रोटेशन (रोल, पिच, यॉ) डिग्री में, कुल लेटेंसी (cl+tl), टैग काउंट, टैग स्पैन, कैमरे से औसत टैग दूरी, औसत टैग क्षेत्र (इमेज का प्रतिशत) |
botpose_orb_wpired | doubleArray | फील्ड-स्पेस में रोबोट ट्रांसफॉर्म (मेगाटैग2) (लाल ड्राइवरस्टेशन WPILIB मूल)। ट्रांसलेशन (X,Y,Z) मीटर में, रोटेशन (रोल, पिच, यॉ) डिग्री में, कुल लेटेंसी (cl+tl), टैग काउंट, टैग स्पैन, कैमरे से औसत टैग दूरी, औसत टैग क्षेत्र (इमेज का प्रतिशत) |
camerapose_targetspace | doubleArray | प्राइमरी इन-व्यू AprilTag के कोऑर्डिनेट सिस्टम में कैमरे का 3D ट्रांसफॉर्म (एरे (6)) [tx, ty, tz, pitch, yaw, roll] (मीटर, डिग्री) |
targetpose_cameraspace | doubleArray | कैमरे के कोऑर्डिनेट सिस्टम में प्राइमरी इन-व्यू AprilTag का 3D ट्रांसफॉर्म (एरे (6)) [tx, ty, tz, pitch, yaw, roll] (मीटर, डिग्री) |
targetpose_robotspace | doubleArray | रोबोट के कोऑर्डिनेट सिस्टम में प्राइमरी इन-व्यू AprilTag का 3D ट्रांसफॉर्म (एरे (6)) [tx, ty, tz, pitch, yaw, roll] (मीटर, डिग्री) |
botpose_targetspace | doubleArray | प ्राइमरी इन-व्यू AprilTag के कोऑर्डिनेट सिस्टम में रोबोट का 3D ट्रांसफॉर्म (एरे (6)) [tx, ty, tz, pitch, yaw, roll] (मीटर, डिग्री) |
camerapose_robotspace | doubleArray | रोबोट के कोऑर्डिनेट सिस्टम में कैमरे का 3D ट्रांसफॉर्म (एरे (6)) |
tid | int | प्राइमरी इन-व्यू AprilTag का ID |
stddevs | doubleArray | मेगाटैग स्टैंडर्ड डेविएशन [MT1x, MT1y, MT1z, MT1roll, MT1pitch, MT1Yaw, MT2x, MT2y, MT2z, MT2roll, MT2pitch, MT2yaw] |
camerapose_robotspace_set | doubleArray | रोबोट के कोऑर्डिनेट सिस्टम में कैमरे का पोज सेट करें। |
priorityid | int | tx/ty टारगेटिंग के लिए आवश्यक ID सेट करें। अन्य टारगेट्स को अनदेखा करें। लोकलाइजेशन को प्रभावित नहीं करता |
robot_orientation_set | doubleArray | रोबोट ओरिएंटेशन और एंगुलर वेलोसिटी डिग्री और डिग्री प्रति सेकंड में सेट करें [yaw,yawrate,pitch,pitchrate,roll,rollrate] |
fiducial_id_filters_set | doubleArray | लोकलाइजेशन के लिए वैध फिड्यूशियल आईडी को ओवरराइड करें (एरे) |
fiducial_offset_set | doubleArray | 3D पॉइंट ऑफ इंटरेस्ट ऑफसेट सेट करें [x,y,z] |
कैमरा कंट्रोल्स
निम्नलिखित कोड का उपयोग करें:
- Java
- LabView
- C++
- Python
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<variablename>").setNumber(<value>);
nt::NetworkTableInstance::GetDefault().GetTable("limelight")->PutNumber("<variablename>",<value>);