Skip to content

Hydraulics and bucket calibrated against PWRI's ZX200 step tests; clay autopilot fixes - #4

Merged
dtt-github merged 9 commits into
mainfrom
claude/reverent-shamir-161ea1
Nov 6, 2026
Merged

dtt-github merged 9 commits into
mainfrom
claude/reverent-shamir-161ea1

Conversation

@dtt-github

Copy link
Copy Markdown
Owner

Calibrates the ZX200 model's swing, boom and arm hydraulics against PWRI's single-joint velocity step tests (1800 min⁻¹, eco mode, free air). The parameters were identified from PWRI's ZX200 measurements: Abe, Matsusaka, Endo, Yamauchi, Hashimoto, ISARC 2025, doi:10.22260/ISARC2025/0054. The recordings themselves are not in this repository.

Changes

  • Swing: 1.17 rad/s at full lever, 16 kN·m Coulomb friction, house inertia about the swing axis about 112 t·m², relief 34.3 MPa. The relief and inertia are provisional, because the pressure channels aren't verified yet.
  • Boom and arm: flow per direction: boom 375 / 270 L/min (raise / lower), arm 495 / 265 L/min (crowd / out).
  • Command response (optional, off by default): dead time per joint and direction plus a 0.15 s lag. Turn it on with command_response=True or ros_server.py --command-response.
  • Autopilot: the swing planner now includes friction in its braking estimate. The face planner, in clay only, also sets aside a strip whose pass carries less than half a bucket to the carrier. In every soil, set-aside strips are only used when no other strip has a cut worth taking.
  • RESULTS.md: new section "Calibration against PWRI's ZX200 step tests", with the measured fit and the benches.

Fit with the command response on: swing, boom and arm speeds are within 4 % of measured, and delays within 0.05 s. The bucket is not matched yet; that is being fixed separately.

Benches (1500 s haul), before → now:

Dry sand Loam Clay
t per pass 1.30 → 1.27 1.49 → 1.28 0.93 → 0.81
Loaded, t/h 161 → 149 168 → 163 141 → 119

Passes take about 1 s longer. Clay's shortfall is still being investigated.

🤖 Generated with Claude Code

dtt-github and others added 4 commits November 5, 2026 16:43
Swing speed, friction, relief and house inertia, boom and arm flows per
direction, and an optional command response (dead time and lag) were
identified from PWRI's ZX200 measurements (Abe et al., ISARC 2025,
doi:10.22260/ISARC2025/0054). Relief-based values are provisional.

In clay the face planner also sets aside a strip whose pass carries less
than half a bucket to the carrier, and set-aside strips are a fallback.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PWRI's constant-pilot bucket steps show how speed changes with angle, and the
model's four-bar follows that curve when PWRI's bucket angle is read as the
URDF angle + 0.622 rad (provisional, not confirmed by PWRI). With that reading
the bucket takes 332 / 315 L/min to curl / dump, within 1 % of the measured
speeds (Abe et al., ISARC 2025, doi:10.22260/ISARC2025/0054). Speed commands
now ease onto the 5 cm moment-arm floor instead of jumping at it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Faster curl trims every cycle; sand and loam fill better per pass, clay worse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…de at once

A curl that loses more than a quarter of the load tore out a slab and is
no longer learned from: one such curl in clay pulled the learned gain to
18 kg, and curling only an overfull bucket tore out more slabs. A poor
strip is now set aside when the bucket reaches the carrier, before the
next strip is planned, not one pass late.

bench_haul.py logs every pass and can stop after PASSES=N passes. The
25-pass check against main doesn't show a gain yet: loam dumped 19 % less
per pass, clay 5 % less (RESULTS.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dtt-github dtt-github changed the title Hydraulics calibrated against PWRI's ZX200 step tests Hydraulics and bucket calibrated against PWRI's ZX200 step tests; clay autopilot fixes Nov 5, 2026
@dtt-github

Copy link
Copy Markdown
Owner Author

Updated: this PR now also has the bucket calibration (45f2f91, provisional angle offset of +0.622 rad, see RESULTS.md), the haul re-run with it (cce0787), and 3371b1c (curl-tear guard, earlier set-aside of poor strips, bench_haul.py per-pass log and PASSES=N). In the 25-pass check the two autopilot changes don't show a gain yet (loam −19 %, clay −5 % dumped per pass, single runs); they are being validated in a follow-up.

dtt-github and others added 2 commits November 5, 2026 23:37
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e and early set-aside reverted

The pass count goes up only once the approach is reached, so 'swing back' and the
approach were planned with the previous pass's strip: the house swung toward the new
strip, back to the old one, then across again while penetrating, overshooting into
the pit wall. That was the failing clay strip at +20 deg. _lane_pass() now aims both
at the next pass's strip. Clay and loam dump about 11 % more per pass (25-pass runs,
3 each); clay over 1500 s loads 52-58 t instead of 43.5 t.

The curl-tear rule lowered clay and loam per-pass mass, and setting poor strips aside
early made no measurable difference, so both are reverted (A/B in RESULTS.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dtt-github and others added 3 commits November 6, 2026 10:09
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d JSON

The README still gave the spec swing (13.3 min^-1, 68.9 kN m) and the pre-calibration
cycle (15-18 s, about 1 t per pass). It now gives the PWRI-calibrated swing, marks the
swing torque and bucket offset as provisional, and the current pass times and payloads.

haul_bench_lane_fix_long_* had Warp's startup output above the result line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Autopilot: approach aims at the next pass's strip; tear rule and early set-aside reverted
@dtt-github
dtt-github merged commit aca519a into main Nov 6, 2026
2 checks passed
dtt-github added a commit that referenced this pull request Nov 6, 2026
227 s of the haul cycle (two carriers, dozer), 7.2 MB, 10.5 t delivered, recorded
after PRs #4 and #5: calibrated swing and joint speeds, and the next-strip approach.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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