Aller au contenu principal

Limelight Lib (WPILib Java & C++)

Utilisation

Il s'agit d'une bibliothèque à fichier unique. Tout ce que vous avez à faire est de copier le fichier LimelightHelpers.java de la dernière version (https://github.com/LimelightVision/limelightlib-wpijava/releases) dans le dossier "robot" de votre projet Java. Vous n'avez pas besoin de créer d'objets pour vos Limelights - la bibliothèque est conçue pour être utilisée de manière fonctionnelle.

Utilisation de base

Chaque méthode de Limelightlib accepte un paramètre de chaîne indiquant le Limelight correct à utiliser. S'il est laissé vide ou nul, le nom est supposé être "limelight"

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

Analyse JSON

getLatestResults() analyse le dernier dump JSON de Limelight dans un objet LimelightResults. Prend jusqu'à 2,5 ms sur RoboRIO 1.0. La latence d'analyse est enregistrée dans results.targetingresults.latency_jsonParse et peut être ajoutée à latency_pipeline et latency_capture.

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

Chaque instance de LimelightResults contient un objet Results. Chaque objet Results contient des données telles que botpose, un tableau pour chaque type de cible, etc. Avec getLatestResults(), vous avez maintenant un accès facile à 100% de la sortie de votre Limelight.

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

Prendre des instantanés

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

Estimation de pose

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

Classes

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

Méthodes 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()