Public: anyone can read this; the crew can change it.

Migrated from github.com/Trevato/SO-ARM100

workbenchthis machine

POST /settings/joint-zero sets one joint's offset so the model reads a known mechanical reference #445

shipped merged opened this has it
opened this

Part of #439 (calibrate the model to the arm). Today jointOffsetsDeg is {} and only PUT /settings can set it, by hand.

Done:

  • [ ] POST /settings/joint-zero {"joint": "shoulder_pan", "referenceDeg": 0} on src/server.ts reads that joint's Present_Position. It sets jointOffsetsDeg[joint] so the model angle equals referenceDeg, saves the settings the way table-here does, and returns the new settings plus the offset it applied.
  • [ ] The input is validated: a known joint name and a finite referenceDeg within the joint's limits. An offset past ±15° is refused with 409 and a sentence, because it means the arm is not at the reference.
  • [ ] The relay treats it as owner-only (ADMIN_ONLY in src/relay.ts).
  • [ ] Tests with the fake bus: the offset is applied and saved, then /status and the model agree with the reference within 0.5°. A bad joint is a 400, and an offset that is too large is a 409.
  • [ ] bun --cwd Software/so101 test passes.

Risk: offsets feed the safe-zone geometry (server.ts toQ). A test must prove that a zone block still fires at the same physical pose after zeroing.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs