JSON Dump Specification

Limelight’s JSON results output is a collection of arrays containing targeting results. Separate arrays exist for retroreflective, fiducial, neural classifier, and neural detector results. JSON is human-readable and easy to parse in any language on any platform, so it is perfect for most use-cases. The same JSON dump may be retreived using the REST/HTTP, Websocket, and NetworkTables APIs. Parsing this JSON output is incredibly easy with our FRC libraries. A turnkey parsing solution for FRC is in its final stages and will launch soon.

Every JSON result contains the following entries:

pID Current pipeline index
tl Targeting latency (milliseconds consumed by tracking loop this frame)
ts Timestamp in milliseconds from boot.
v Validity indicator. 1 = valid targets, 0 = no valid targets
botpose Botpose (MegaTag): x,y,z, roll, pitch, yaw (meters, degrees)
botpose_wpired Botpose (MegaTag, WPI Red driverstation): x,y,z, roll, pitch, yaw (meters, degrees)
botpose_wpiblue Botpose (MegaTag, WPI Blue driverstation): x,y,z, roll, pitch, yaw (meters, degrees)
   

Retroreflective Results

The “Retro” array contains entries with the following structure:

pts Individual corner points as an array of {x,y} in pixels. Center-zero, positive right and down. Must be enabled.
t6c_ts Camera Pose in target space as computed by solvepnp (x,y,z,rx,ry,rz)
t6r_fs Robot Pose in field space as computed by solvepnp (x,y,z,rx,ry,rz)
t6r_ts Robot Pose in target space as computed by solvepnp (x,y,z,rx,ry,rz)
t6t_cs Target Pose in camera space as computed by solvepnp (x,y,z,rx,ry,rz)
t6t_rs Target Pose in robot space as computed by solvepnp (x,y,z,rx,ry,rz)
ta The size of the target as a percentage of the image (0-1)
tx X-coordinate of the center of the target in degrees. Positive-right, center-zero
txp X-coordinate of the center of the target in pixels. Positive-right, center-zero
ty Y-coordinate of the center of the target in degrees. Positive-down, center-zero
typ Y-coordinate of the center of the target in pixels. Positive-down, center-zero
   
{
    "Results": {
        "Classifier": [],
        "Detector": [],
        "Fiducial": [],
        "Retro": [
        {
            "pts": [],
            "t6c_ts": [],
            "t6r_fs": [],
            "t6r_ts": [],
            "t6t_cs": [],
            "t6t_rs": [],
            "ta": 0.028124958276748657,
            "tx": -6.858895301818848,
            "txp": 125.89512634277344,
            "ty": 8.712546348571777,
            "typ": 79.79258728027344
        }
        ],
        "pID": 0,
        "tl": 4.795886039733887,
        "ts": 4524421.206346,
        "v": 1
    }
}

AprilTag/Fiducial Results

The “Fiducial” array contains entries with the following structure:

fid Fiducial tag ID
fam Fiducial Family (16H5C, 25H9C, 36H11C, etc)
pts Return individual corner points. Must be enabled.
skew Currently unused
t6c_ts Camera Pose in target space as computed by this fiducial (x,y,z,rx,ry,rz)
t6r_fs Robot Pose in field space as computed by this fiducial (x,y,z,rx,ry,rz)
t6r_ts Robot Pose in target space as computed by this fiducial (x,y,z,rx,ry,rz)
t6t_cs Target Pose in camera space as computed by this fiducial (x,y,z,rx,ry,rz)
t6t_rs Target Pose in robot space as computed by this fiducial (x,y,z,rx,ry,rz)
ta The size of the target as a percentage of the image (0-1)
tx X-coordinate of the center of the target in degrees. Positive-right, center-zero
txp X-coordinate of the center of the target in pixels. Positive-right, center-zero
ty Y-coordinate of the center of the target in degrees. Positive-down, center-zero
typ Y-coordinate of the center of the target in pixels. Positive-down, center-zero
   
{
    "Results": {
        "Classifier": [],
        "Detector": [],
        "Fiducial": [
        {
            "fID": 2,
            "fam": "16H5C",
            "pts": [],
            "skew": [],
            "t6c_ts": [
            0.33247368976801916,
            -0.05672695778305914,
            -2.5042031405987144,
            -4.680849607956358,
            -5.171154989721864,
            4.528697946312339
            ],
            "t6r_fs": [
            4.738896418276903,
            -1.5926603672041666,
            0.5194469577830592,
            4.522658587661256,
            4.258580454853879,
            5.5236539893713275
            ],
            "t6r_ts": [
            0.33247368976801916,
            -0.05672695778305914,
            -2.5042031405987144,
            -4.680849607956358,
            -5.171154989721864,
            4.528697946312339
            ],
            "t6t_cs": [
            -0.09991902572799474,
            -0.1234042720218289,
            2.5218203039582496,
            4.278368708252767,
            5.508508005282244,
            -4.1112864453027775
            ],
            "t6t_rs": [
            -0.09991902572799474,
            -0.1234042720218289,
            2.5218203039582496,
            4.278368708252767,
            5.508508005282244,
            -4.1112864453027775
            ],
            "ta": 0.005711808800697327,
            "tx": -2.0525293350219727,
            "txp": 149.4874725341797,
            "ty": 2.7294836044311523,
            "typ": 107.14710235595703
        }
        ],
        "Retro": [],
        "pID": 0,
        "tl": 19.78130340576172,
        "ts": 3284447.910569,
        "v": 1
    }
}

Neural Detector Results

The “Detector” array contains entries with the following structure:

class Human-readable class name string
classID ClassID integer
conf Confidence of the predicition
pts Individual corner points as an array of {x,y} in pixels. Center-zero, positive right and down. Must be enabled.
ta The size of the target as a percentage of the image (0-1)
tx X-coordinate of the center of the target in degrees. Positive-right, center-zero
txp X-coordinate of the center of the target in pixels. Positive-right, center-zero
ty Y-coordinate of the center of the target in degrees. Positive-down, center-zero
typ Y-coordinate of the center of the target in pixels. Positive-down, center-zero
   
{
    "Results": {
        "Classifier": [],
        "Detector": [
        {
            "class": "person",
            "classID": 0,
            "conf": 0.83984375,
            "pts": [],
            "ta": 0.2608712911605835,
            "tx": -2.45949649810791,
            "txp": 147.5,
            "ty": -10.066887855529785,
            "typ": 165.5
        }
        ],
        "Fiducial": [],
        "Retro": [],
        "pID": 0,
        "tl": 63.50614547729492,
        "ts": 4932985.266867,
        "v": 1
    }
}

Neural Classifier Results

The “Classifier” array contains entries with the following structure:

class Human-readable class name string
classID ClassID integer
conf Confidence of the predicition
   
{
    "Results": {
        "Classifier": [
        {
            "class": "digital clock",
            "classID": 531,
            "conf": 0.16796875
        }
        ],
        "Detector": [],
        "Fiducial": [],
        "Retro": [],
        "pID": 0,
        "tl": 16.704740524291992,
        "ts": 4751332.7542280005,
        "v": 1
    }
}