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

Migrated from github.com/Trevato/SO-ARM100

workbenchthis machine

src/tuning-run.ts runs one P-coefficient experiment: sweep, write, sweep, then keep or put back - orchestration and test only #485

shipped merged opened this has it
opened this

Replaces part of #451, which was parked twice because a builder cannot run an experiment on the physical arm. Here the app runs the experiment, so a builder only builds and tests the runner.

Done:

  • [ ] Software/so101/src/tuning-run.ts exports runPExperiment({ joint, p }, deps). deps is injected and holds isIdle(), sweep(joint) (which returns p95 tracking error, overshoot and time to arrive), readParams(id) and writeParams(id, {P}).
  • [ ] It refuses unless isIdle(). It runs a sweep at the current P, writes the candidate, and sweeps again. It keeps the candidate only if p95 tracking error and overshoot are both no worse and one is better. Otherwise it writes the old P back. Any throw or STOP along the way also writes the old P back.
  • [ ] It returns plain data: { joint, from, to, before, after, kept, at }.
  • [ ] Tests with fakes cover keep, restore when worse, restore on a throw mid-run, refusal when someone drives, and a candidate outside #450's documented P range refused before anything is written.
  • [ ] Only the two new files change. bun --cwd Software/so101 test passes.
Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs