Skip to content

feat(checker): add PositionDeltaChecker matching Hub usage - #8

Open
keyneszeng wants to merge 1 commit into
AxisAIOrg:mainfrom
keyneszeng:feat/position-delta-checker
Open

feat(checker): add PositionDeltaChecker matching Hub usage#8
keyneszeng wants to merge 1 commit into
AxisAIOrg:mainfrom
keyneszeng:feat/position-delta-checker

Conversation

@keyneszeng

Copy link
Copy Markdown

Summary

Adds a checker that succeeds when a body's position has moved past a per-axis threshold relative to a captured baseline. Mirrors Hub production usage (e.g. 27rotate the rolling pin 30 deg27, 27move object 2cm left27).

Task config schema (matches Hub)

{
  "type": "PositionDeltaChecker",
  "sample_body": "akita_black_bowl_1_main",
  "axes": ["x", "y"],
  "min_delta_x": 0.018,
  "max_delta_x": -0.018,
  "capture_runtime_initial": true
}

Cross-repo coordination

Companion Python PR mirrors the algorithm. JS uses captureRuntimeInitial: true to capture the first-observed body position as baseline; Python offline validation passes the baseline explicitly via initialPosition (since it is stateless per call).

Verification

  • JS: manually instantiated, check() returns expected boolean for min/max delta, multi-axis OR semantics.
  • Python: 11/11 unit tests pass.

Checklist

  • getStatus() reports per-axis deltas vs baseline
  • reset() re-captures the runtime baseline
  • allow_reentry semantics consistent with composite pattern

Adds a checker that succeeds when a body's position has moved past a
per-axis threshold relative to a captured baseline. Mirrors Hub
production usage (e.g. 'rotate the rolling pin 30 deg', 'move object
2cm left').

Mirrors the Python implementation added in the companion PR to
AxisDataCleaning.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant