{
  "version": "1.16.10",
  "date": "2026-10-04",
  "scope": "Synthetic finite scalar angles; no motion timing, true-angle or hardware evidence",
  "sources": [
    {
      "url": "https://github.com/ros/angles/blob/ros2/angles/include/angles/angles.h",
      "use": "Normalization and shortest difference; ROS radians and +pi boundary differ from declared degree [-180,180) convention"
    },
    {
      "url": "https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.circmean.html",
      "use": "Circular mean and undefined direction when resultant vector is zero; no library execution claimed"
    }
  ],
  "model": {
    "angularUnit": "degree",
    "range": "[-180,180)",
    "wrapRule": "x-360*floor((x+180)/360)",
    "differenceRule": "wrap(to-from)",
    "finiteInputsOnly": true,
    "antipodalConventionDeg": -180,
    "motionDirectionKnown": false,
    "trueAngleDeclared": false
  },
  "rows": [
    {
      "fromDeg": 179,
      "toDeg": -179,
      "rawDifferenceDeg": -358,
      "shortDifferenceDeg": 2,
      "antipodal": false
    },
    {
      "fromDeg": -179,
      "toDeg": 179,
      "rawDifferenceDeg": 358,
      "shortDifferenceDeg": -2,
      "antipodal": false
    },
    {
      "fromDeg": 170,
      "toDeg": -170,
      "rawDifferenceDeg": -340,
      "shortDifferenceDeg": 20,
      "antipodal": false
    },
    {
      "fromDeg": 0,
      "toDeg": 180,
      "rawDifferenceDeg": 180,
      "shortDifferenceDeg": -180,
      "antipodal": true
    },
    {
      "fromDeg": 350,
      "toDeg": 10,
      "rawDifferenceDeg": -340,
      "shortDifferenceDeg": 20,
      "antipodal": false
    }
  ],
  "wrapCases": [
    {
      "inputDeg": 181,
      "outputDeg": -179
    },
    {
      "inputDeg": -181,
      "outputDeg": 179
    },
    {
      "inputDeg": 180,
      "outputDeg": -180
    },
    {
      "inputDeg": -180,
      "outputDeg": -180
    },
    {
      "inputDeg": 540,
      "outputDeg": -180
    },
    {
      "inputDeg": -540,
      "outputDeg": -180
    },
    {
      "inputDeg": 721,
      "outputDeg": 1
    }
  ],
  "correction": {
    "predictionDeg": 179,
    "observationDeg": -179,
    "innovationDeg": 2,
    "beta": "1/10",
    "estimateDeg": "896/5",
    "directBlendDeg": "716/5",
    "endpoints": [
      {
        "beta": "0",
        "estimateDeg": "179"
      },
      {
        "beta": "1/2",
        "estimateDeg": "-180"
      },
      {
        "beta": "1",
        "estimateDeg": "-179"
      }
    ]
  },
  "hardwareStatus": "not-run",
  "figure": "Mathematical planar circle and seam expansion; not body FRD or measured motion"
}
