Repository navigation
Evaluate terminal Atomic Skills with the v1 standard - #773
Yuan-Xinyi wants to merge 1 commit into
Conversation
|
| return tuple( | ||
| { | ||
| stage_id: StageEvidence( | ||
| window=window, | ||
| source="simulation_state", | ||
| measurements={measurement: float(value.item())}, | ||
| method=method, | ||
| ) | ||
| } | ||
| for value in values |
There was a problem hiding this comment.
If one replay row ends with NaN or infinite joint positions, _single_stage_evidence_batch passes its nonfinite error into StageEvidence, which raises ValueError. Both migrated skills evaluate every row before applying execution_success, so that mask cannot protect healthy rows. The runner then records metric_evaluation_error and marks the entire batch failed, losing the healthy rows' measured results.
Return empty evidence for each nonfinite measurement and keep evaluating finite rows. Add a mixed finite/nonfinite batch test.
Prompt To Fix With AI
This is a comment left during a code review.
Path: scripts/benchmark/motion_generation/scenarios/atomic_task.py
Line: 605-614
Comment:
**One bad row fails everyone**
If one replay row ends with NaN or infinite joint positions, `_single_stage_evidence_batch` passes its nonfinite error into `StageEvidence`, which raises `ValueError`. Both migrated skills evaluate every row before applying `execution_success`, so that mask cannot protect healthy rows. The runner then records `metric_evaluation_error` and marks the entire batch failed, losing the healthy rows' measured results.
Return empty evidence for each nonfinite measurement and keep evaluating finite rows. Add a mixed finite/nonfinite batch test.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.|
Closing this PR because it implemented new v1 evaluator glue rather than migrating reusable components from #642. I will replace it with a focused component migration. |
Stack
xinyi/pr712-with-main(Add Atomic Skill benchmark domain aggregation foundation #712 plus currentmain)mainDescription
This PR reuses the parts of #642 that directly strengthen #712 without moving the full legacy benchmark suite.
It adds a batched-evidence bridge that applies the v1 criteria row by row, then migrates
MoveEndEffectorandMoveJointstoPhysicalStageEvaluator. Both skills are now scored from terminal settled simulation state rather than planner output:MoveEndEffector: measured TCP position error, using the v1 3 mm criterion.MoveJoints: measured joint L2 error, using the v1 0.00524 rad criterion.Each result records explicit
simulation_stateprovenance. A missing terminal joint observation becomesevidence_unavailablerather than success. Skills that need contact or intermediate-segment observations remain on the legacytask_result()path; this PR does not fabricate those measurements.Refs #642 and #712.
Type of change
Screenshots
N/A.
Checklist
black .command to format the code base.context.py affectedreports no affected project-context topic for these benchmark files.python docs/scripts/check_api_docs.py), if applicable.embodichainexports changed; the gate reports 2487/2487.Validation
tests/benchmark/motion_generation/test_atomic_task_benchmark.pycannot be collected in the available local environment because its installeddexsim.typeslacks the currentRTRenderModeexport. The failure occurs during package import before test execution; the changed test file passespy_compile.