{
  "robot": "AR2010",
  "tcp_mm": 525.2,
  "urdf": "ar2010_kinematic.urdf",
  "total": 8,
  "ok": 8,
  "comparison_db": [
    {
      "name": "A_중앙",
      "target_xyz_mm": [
        800.0,
        0.0,
        500.0
      ],
      "robodk": {
        "joints_deg": [
          0.0,
          -36.3309,
          -47.442,
          -0.0,
          -78.8889,
          -180.0
        ],
        "fk_xyz_mm": [
          800.0,
          0.0,
          500.0
        ],
        "branch": "[0.0, 0.0, 0.0, 0.0]"
      },
      "klampt": {
        "joints_deg": [
          -0.0,
          -4.8517,
          -14.8609,
          0.0,
          -1.6961,
          0.0
        ],
        "fk_xyz_mm": [
          800.0,
          -0.0,
          500.0
        ]
      },
      "comparison": {
        "pos_err_mm": 0.0005,
        "orient_err_deg": null,
        "note": "orient_err 미구현 — robodk_ref_joints에 R_mat 추가 후 확장"
      },
      "ok": true
    },
    {
      "name": "B_우측",
      "target_xyz_mm": [
        800.0,
        300.0,
        500.0
      ],
      "robodk": {
        "joints_deg": [
          20.556,
          -31.2987,
          -44.3443,
          0.0,
          -76.9544,
          159.444
        ],
        "fk_xyz_mm": [
          800.0,
          300.0,
          500.0
        ],
        "branch": "[0.0, 0.0, 0.0, 0.0]"
      },
      "klampt": {
        "joints_deg": [
          4.5891,
          -4.627,
          -14.4785,
          -0.0106,
          -1.6498,
          0.0
        ],
        "fk_xyz_mm": [
          799.999,
          300.0,
          499.999
        ]
      },
      "comparison": {
        "pos_err_mm": 0.0015,
        "orient_err_deg": null,
        "note": "orient_err 미구현 — robodk_ref_joints에 R_mat 추가 후 확장"
      },
      "ok": true
    },
    {
      "name": "C_좌측",
      "target_xyz_mm": [
        800.0,
        -300.0,
        500.0
      ],
      "robodk": {
        "joints_deg": [
          -20.556,
          -31.2987,
          -44.3443,
          -0.0,
          -76.9544,
          -159.444
        ],
        "fk_xyz_mm": [
          800.0,
          -300.0,
          500.0
        ],
        "branch": "[0.0, 0.0, 0.0, 0.0]"
      },
      "klampt": {
        "joints_deg": [
          -4.3789,
          -4.8776,
          -14.904,
          0.0095,
          -1.7008,
          0.0
        ],
        "fk_xyz_mm": [
          799.995,
          -299.999,
          499.996
        ]
      },
      "comparison": {
        "pos_err_mm": 0.0065,
        "orient_err_deg": null,
        "note": "orient_err 미구현 — robodk_ref_joints에 R_mat 추가 후 확장"
      },
      "ok": true
    },
    {
      "name": "D_위쪽",
      "target_xyz_mm": [
        700.0,
        0.0,
        700.0
      ],
      "robodk": {
        "joints_deg": [
          0.0,
          -43.3894,
          -40.852,
          -0.0,
          -92.5375,
          -180.0
        ],
        "fk_xyz_mm": [
          700.0,
          0.0,
          700.0
        ],
        "branch": "[0.0, 0.0, 0.0, 0.0]"
      },
      "klampt": {
        "joints_deg": [
          0.1723,
          -7.8198,
          -12.9899,
          -0.0011,
          -1.5732,
          0.0
        ],
        "fk_xyz_mm": [
          699.998,
          -0.0,
          699.999
        ]
      },
      "comparison": {
        "pos_err_mm": 0.0025,
        "orient_err_deg": null,
        "note": "orient_err 미구현 — robodk_ref_joints에 R_mat 추가 후 확장"
      },
      "ok": true
    },
    {
      "name": "E_아래",
      "target_xyz_mm": [
        900.0,
        0.0,
        300.0
      ],
      "robodk": {
        "joints_deg": [
          0.0,
          -24.1058,
          -50.0606,
          -0.0,
          -64.0452,
          -180.0
        ],
        "fk_xyz_mm": [
          900.0,
          0.0,
          300.0
        ],
        "branch": "[0.0, 0.0, 0.0, 0.0]"
      },
      "klampt": {
        "joints_deg": [
          0.1912,
          -2.3981,
          -17.5339,
          -0.0011,
          -1.9187,
          0.0
        ],
        "fk_xyz_mm": [
          899.996,
          -0.0,
          299.998
        ]
      },
      "comparison": {
        "pos_err_mm": 0.0039,
        "orient_err_deg": null,
        "note": "orient_err 미구현 — robodk_ref_joints에 R_mat 추가 후 확장"
      },
      "ok": true
    },
    {
      "name": "F_전방",
      "target_xyz_mm": [
        1000.0,
        0.0,
        400.0
      ],
      "robodk": {
        "joints_deg": [
          0.0,
          -17.3798,
          -39.6678,
          -0.0,
          -67.7121,
          -180.0
        ],
        "fk_xyz_mm": [
          1000.0,
          0.0,
          400.0
        ],
        "branch": "[0.0, 0.0, 0.0, 0.0]"
      },
      "klampt": {
        "joints_deg": [
          0.1777,
          -1.9378,
          -14.1338,
          -0.0011,
          -1.5473,
          0.0
        ],
        "fk_xyz_mm": [
          1000.0,
          -0.0,
          400.0
        ]
      },
      "comparison": {
        "pos_err_mm": 0.0002,
        "orient_err_deg": null,
        "note": "orient_err 미구현 — robodk_ref_joints에 R_mat 추가 후 확장"
      },
      "ok": true
    },
    {
      "name": "G_대각1",
      "target_xyz_mm": [
        800.0,
        200.0,
        600.0
      ],
      "robodk": {
        "joints_deg": [
          15.3674,
          -33.4405,
          -40.588,
          11.0715,
          -86.0029,
          163.5538
        ],
        "fk_xyz_mm": [
          800.0,
          200.0,
          600.0
        ],
        "branch": "[0.0, 0.0, 0.0, 0.0]"
      },
      "klampt": {
        "joints_deg": [
          3.2662,
          -5.9773,
          -13.4478,
          -0.0074,
          -1.5766,
          0.0
        ],
        "fk_xyz_mm": [
          799.998,
          200.0,
          599.999
        ]
      },
      "comparison": {
        "pos_err_mm": 0.0019,
        "orient_err_deg": null,
        "note": "orient_err 미구현 — robodk_ref_joints에 R_mat 추가 후 확장"
      },
      "ok": true
    },
    {
      "name": "H_대각2",
      "target_xyz_mm": [
        750.0,
        -200.0,
        650.0
      ],
      "robodk": {
        "joints_deg": [
          -14.9314,
          -37.6371,
          -40.3712,
          -0.0,
          -87.2659,
          -173.6629
        ],
        "fk_xyz_mm": [
          750.0,
          -200.0,
          650.0
        ],
        "branch": "[0.0, 0.0, 0.0, 0.0]"
      },
      "klampt": {
        "joints_deg": [
          -2.8021,
          -7.1362,
          -13.368,
          0.0058,
          -1.5972,
          0.0
        ],
        "fk_xyz_mm": [
          749.998,
          -200.0,
          649.998
        ]
      },
      "comparison": {
        "pos_err_mm": 0.0027,
        "orient_err_deg": null,
        "note": "orient_err 미구현 — robodk_ref_joints에 R_mat 추가 후 확장"
      },
      "ok": true
    }
  ]
}