Pular para o conteúdo principal

Limelight Lib (WPILib Java & C++)

Uso

Esta é uma biblioteca de arquivo único. Tudo o que você precisa fazer é copiar o arquivo LimelightHelpers.java da versão mais recente (https://github.com/LimelightVision/limelightlib-wpijava/releases) para a pasta "robot" do seu projeto Java. Você não precisa criar nenhum objeto para seus Limelights - a biblioteca foi projetada para ser usada de forma funcional.

Uso Básico

Cada método no Limelightlib aceita um parâmetro de string indicando o Limelight correto a ser usado. Se deixado em branco ou nulo, assume-se que o nome é "limelight"

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

Análise JSON

getLatestResults() analisa o último dump JSON do Limelight em um objeto LimelightResults. Leva até 2,5ms no RoboRIO 1.0. A latência de análise é registrada em results.targetingresults.latency_jsonParse e pode ser adicionada a latency_pipeline e latency_capture.

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

Cada instância LimelightResults contém um objeto Results. Cada objeto Results contém dados como botpose, um array para cada tipo de alvo, etc. Com getLatestResults(), você agora tem fácil acesso a 100% da saída do seu Limelight.

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

Tirando snapshots

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

Estimativa 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étodos 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()