Limelight Lib (WPILib Java & C++)
- https://github.com/LimelightVision/limelightlib-wpijava
- https://github.com/LimelightVision/limelightlib-wpicpp
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()