Enciclopedia Boulder v1.0

Inicio · Capítulos · 14. Señales para visión artificial

15.68 14.3.21 Ejemplo JSON

{
  "contactEpisodeId": "ce-athlete07-lefttoe-hold0042-00018",
  "contactPairId": "cp-athlete07-lefttoe-hold0042-face03",
  "athleteTrackId": "athlete07",
  "bodyRegionId": "LeftToe",
  "sceneObjectId": "hold-0042",
  "surfacePatchId": "hold-0042-face03",
  "geometricState": "Touching",
  "functionalState": "LoadBearing",
  "probabilityContact": 0.97,
  "probabilityLoadBearing": 0.84,
  "contactRoleHypotheses": [
    {
      "role": "OutsideEdge",
      "probability": 0.63,
      "evidence": [
        "E02-3DDistance",
        "E06-KinematicResponse"
      ]
    },
    {
      "role": "Smear",
      "probability": 0.25,
      "evidence": [
        "E04-TangentialMotion",
        "E09-SceneGeometry"
      ]
    }
  ],
  "forceEstimate": {
    "valueVectorN": null,
    "bodyWeightFraction": {
      "lower": 0.08,
      "upper": 0.22
    },
    "estimationMode": "DynamicsConstrained",
    "quality": "Usable",
    "dynamicsResidualN": 18.4
  },
  "startCandidateNs": 8123450000,
  "touchOnsetNs": 8150000000,
  "loadOnsetNs": 8190000000,
  "releaseNs": 9420000000,
  "qualityFlags": [
    "DEPTH_VALID",
    "HAND_OCCLUSION_NONE",
    "NO_DIRECT_FORCE_SENSOR"
  ]
}

El ejemplo no inventa Newtons. Publica un intervalo normalizado y declara DynamicsConstrained. Cuando exista sensor, valueVectorN y sensorId podrán contener medición directa.