انتقل إلى المحتوى الرئيسي

مكتبة Limelight (WPILib Java & C++)

الاستخدام

هذه مكتبة من ملف واحد. كل ما عليك فعله هو نسخ ملف LimelightHelpers.java من أحدث إصدار (https://github.com/LimelightVision/limelightlib-wpijava/releases) إلى مجلد "robot" في مشروع Java الخاص بك. لا تحتاج إلى إنشاء أي كائنات لـ Limelights الخاصة بك - تم تصميم المكتبة لاستخدامها بطريقة وظيفية.

الاستخدام الأساسي

تقبل كل طريقة في Limelightlib معلمة نصية تشير إلى Limelight الصحيح للاستخدام. إذا تُركت فارغة أو كانت قيمتها null، يُفترض أن الاسم هو "limelight"

LimelightHelpers.setLEDMode_PipelineControl("");
LimelightHelpers.setLEDMode_ForceBlink("")
LimelightHelpers.setCropWindow("",-1,1,-1,1);
double tx = LimelightHelpers.getTX("");

تحليل JSON

تقوم getLatestResults() بتحليل أحدث تفريغ JSON لـ Limelight إلى كائن LimelightResults. يستغرق ما يصل إلى 2.5 مللي ثانية على RoboRIO 1.0. يتم تسجيل زمن التحليل في results.targetingresults.latency_jsonParse ويمكن إضافته إلى latency_pipeline و latency_capture.

LimelightHelpers.LimelightResults llresults = LimelightHelpers.getLatestResults("");

يحتوي كل مثيل LimelightResults على كائن Results. يحتوي كل كائن Results على بيانات مثل botpose، ومصفوفة لكل نوع هدف، إلخ. مع getLatestResults()، لديك الآن وصول سهل إلى 100٪ من مخرجات Limelight الخاص بك.

double[] botposeRed = llresults.results.botpose_wpired;
double pipelineLatency = llresults.results.latency_pipeline;
LimelightHelpers.LimelightTarget_Fiducial = llresults.results.targets_Fiducials;

التقاط لقطات

LimelightHelpers.takeSnapshot("","snapshotname");

تقدير الوضعية

 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);
}

الفئات

LimelightHelpers.LimelightTarget_Retro
LimelightHelpers.LimelightTarget_Fiducial
LimelightHelpers.LimelightTarget_Barcode
LimelightHelpers.LimelightTarget_Classifier
LimelightHelpers.LimelightTarget_Detector
LimelightHelpers.Results
LimelightHelpers.LimelightResults
LimelightHelpers.PoseEstimate
(Pure Static) LimelightHelpers

طرق LimelightHelpers

getLimelightNTTable()
getLimelightNTTableEntry()
getLimelightNTDouble()
setLimelightNTDouble()
setLimelightNTDoubleArray()
getLimelightNTDouleArray()
getLimelightNTString()
getLimelightURLString()

getTX()
getTY()
getTA()
getLatency_Pipeline()
getLatency_Capture()
getCurrentPipelineIndex()
getJsonDump()

getBotpose()
getBotpose_wpiRed()
getBotpose_wpiBlue()
getBotPoseEstimate_wpiBlue()
getBotPoseEstimate_wpiRed()
getBotpose_TargetSpace()
getCameraPsoe_TargetSpace()
getTargetPose_CameraSpace()
getTargetPose_RobotSpace()

getTargetColor()
getFiducialID()
getNeuralClassID()

setPipelineIndex()
setPriorityID()

setLEDMode_PipelineControl()
setLEDMode_ForceOff()
setLEDMode_ForceBlink()
setLEDMode_ForceOn()

setStreamMode_Standard()
setStreamMode_PiPMain()
setStreamMode_PiPSecondary()

setCropWindow()

setPythonScriptData()
getPythonScriptData()