Add drop-test protocol, Edison synthesis, and first-data analysis#67
Conversation
|
@copilot send to edison scientific (high effort literature). Fetch this session. Commit all artifacts. Summarize in your comment reply and provide direct link to md file. |
|
@copilot consider comment from Jeff in #36 (comment); I had forgotten/didn't realize it was bungee assisted |
Done. Edison Scientific LITERATURE_HIGH task 📄 Report (direct link to .md): Headline recommendations (from §"Summary of Actionable Recommendations"):
Standards stack surfaced: ASTM D5276 / D7136 / D3332, ISO 6603 / 1683 / 5347, MIL-STD-810 method 516, SAE J211. Idempotent driver at |
Good catch — folded Jeff's bungee-assisted note into
The Edison literature report's recommendations still apply: bungee-assisted (and pneumatically-assisted) drop towers are standard in the cited drop-weight literature (Rajput 2018, Anas 2024) and the magnet-release-jerk / fixture-resonance gotchas there extend to the bungee preload too. |
|
@copilot have at it with #36 (comment) |
Plotted and analyzed all five runs. Raw data, a reproducible script, figures, and a writeup are committed:
Format: 4-channel accelerometer, 125 kHz (8 µs), 0.2 s window. CH1 is the impact channel; CH2/CH3 are low-level; CH4 carries a fixed ~1.4 kG spike at t≈4.2 ms in every run including the control — a trigger/magnet-release artifact, not impact (please confirm the channel map). Peak acceleration (raw peaks are ringing-dominated — PSD energy out to ~20 kHz, structural peak ~550 Hz — so the SAE J211 CFC-180 column is the meaningful structural number):
Headlines:
Caveats: channel map unconfirmed; CH4 artifact; only the 200 ms shock window (no ~10 s ringdown); n=1 for control/PETG; no Δv/SEA quoted yet (needs the input-vs-transmitted channel pair + clean baseline + full-event integration). Next-capture recommendations are in §6 of the analysis doc. |
|
@ctrhjk could you run tests using three of the T3 prisms (each with distinct parameters), doing the following:
Noting of course that we'll be using the lower sensitivity single-axis accelerometer per #71 and #74 @achris0520 will print these 6 structures for you per #35 (comment) In the meantime though, if you could grab a couple existing T3 prisms (noting the IDs) and run a vertex test and an acrylic test without cyclic testing, just a single drop. It's up to you whether you do the vertex or the acrylic test first. Please get videos if you can as well. |
|
Claude finished @sgbaird's task in 8m 31s —— View job Raw video frame-rate check —
|
raw committed drop5.mp4 |
GitHub-comment-served | |
|---|---|---|
| size | 52,020,222 B | 52,020,222 B |
| MD5 | 97901093…0329357 |
97901093…0329357 |
| fps / frames | 30 fps / 808 | 30 fps / 808 |
| resolution | 1080×1350 | 1080×1350 |
| duration | 26.93 s | 26.93 s |
Identical MD5. GitHub is serving the comment attachment unmodified — it is not transcoding or dropping the frame rate. So the 30 fps was already baked in before the file ever reached GitHub. That answers your question in comment 4857198251: it was already that way at upload, not a GitHub processing artifact. (Also: no need to zip a file to test this — the raw commit already gave us the clean comparison.)
2. But it's not camera-native — that's the real catch.
The file's encoder tag is https://clipchamp.com (Microsoft's editor) and it carries a 48 kHz stereo AAC audio track. A Sony RX100 IV 960 fps HFR clip is silent and tags Sony's encoder. So this clip was exported through Clipchamp, which re-containerized it to 30 fps — whereas @ctrhjk's stated camera setting was 24p / 960 fps.
3. What that does to my frame ÷ 960 in comment 4849969620 — it was ~25 % off.
The physical slow-motion factor is set by the camera-native record rate, not the export container:
- Native 24p / 960 fps → slow factor = 960 / 24 = 40×. For that native 24 fps file,
real_time = frame ÷ (24 × 40) = frame ÷ 960— so÷ 960would have been exactly right on the camera file. - This file is a 30 fps Clipchamp re-encode of that 40×-slow timeline (duration-preserving: 26.93 s → 646 native frames resampled up to 808). For a 30 fps container the correct mapping is
real_time = frame ÷ (30 × 40) = frame ÷ 1200.
So ÷ 960 overstated the absolute in-frame descent by 1200/960 = 25 % → the reported 94.6 ms becomes ≈ 75.7 ms. I can't nail this from the video alone (the structure enters the top of frame already falling, so there's no clean in-frame free-fall to fit, and there's no scale bar — my scale-free free-fall fit returned garbage/negative curvature, confirming the entry contamination). Treat any absolute video time as ± 25 % and use the accelerometer (Δv ≈ 2.6 m/s, free-fall) as the calibrated clock.
Crucially, nothing scientific changes. Every conclusion in the video passes is relative or dimensionless — descent-slope CV (0.32 %), rebound fraction (0.47), drift in %/drop, transmissibility — none of which ever used the absolute time base. Only the single absolute "descent ms" figure shifts.
What I changed
Updated docs/drop-test-burn-in-wax-analysis.md (0fd322f) with a time-base correction note, the frame/1200 mapping, and the 94.6 → 75.7 ms fix.
Recommendation for future clips
- Keep the camera-native file for anything you want absolutely timed — a pre-Clipchamp export of a 24p/960fps HFR clip is a true 24 fps timeline where
frame ÷ 960is exact. If it must pass through an editor, disable frame-rate conversion (export 24 fps, not 30). - Or don't lean on video for absolute time at all — the accelerometer already gives calibrated Δv/free-fall; let the video stay the relative/qualitative repeatability channel.
- For real spatial calibration, add a scale bar / fiducial in frame (and ideally an on-screen frame counter) so displacement and velocity become absolute too.
Note: this whole analysis is about the video time base only; it doesn't touch the accelerometer results (CFC-180 peaks, transmissibility, burn-in drift) which are all independently correct.
· branch copilot/get-video-drop-test-data
…s (frame/1200, not /960) Verified from the raw drop5.mp4 committed to this PR: it is 30 fps but a clipchamp.com re-encode (with audio) of a camera-native 24p/960fps HFR capture, and is byte-identical (MD5) to the GitHub-served comment version -> GitHub does not re-encode. Physical slow factor is 960/24 = 40x, so real time is frame/1200, making the absolute in-frame descent ~25% smaller (94.6 -> 75.7 ms). All relative results (CVs, rebound fraction, drift %/drop, transmissibility) are unaffected. Co-authored-by: Sterling G. Baird <sgbaird@users.noreply.github.com>
|
This drift calibration test was conducted to define the drift rate. The drops were automatically conducted 30 times, and the drop height was 13 in. All the settings were the same as the last time. Here are the 30 times of auto-drop results. While the auto drop was conducted, the tri-axis accelerometer fell off the key-seat housing. I guess it happened at the 26th drop, but not sure, so please figure out when it fell off by analyzing the dataset. Based on those data, do these tasks:
|
|
Claude finished @ctrhjk's task in 10m 59s —— View job Drift-calibration analysis — 30 auto-drops (
|
| burn-in k | slope (%/drop) | p |
|---|---|---|
| 0 | +0.082 | <0.001 |
| 3 | +0.058 | 0.009 |
| 4 | +0.049 | 0.033 |
| 5 | +0.033 | 0.135 (n.s.) |
| 6 | +0.011 | 0.560 |
An independent exponential-approach fit agrees: plateau 262.1 G, seating amplitude 8.1 G, τ = 4.9 drops. So the transition you asked me to locate is at drop ~5, not 3–4: the 3-drop burn-in that sufficed in the previous 8-drop run is marginal on this longer series (at k = 3 a significant trend remains, p = 0.009). SOP: ≥ 5 burn-in drops after every fresh wax application — with the auto-dropper they're nearly free.
2) Inherent drift rate: statistically zero — |drift| ≤ 0.08 %/drop (95 % bound)
OLS on the stabilized phase only (drops 6–24, n = 19):
| series | mean | CV | slope (%/drop) | 95 % CI (G/drop) | p |
|---|---|---|---|---|---|
| input CH5 | 215.2 G | 2.57 % | −0.010 % | [−0.52, +0.48] | 0.93 |
| output | 261.4 G | 0.53 % | +0.033 % | [−0.030, +0.205] | 0.135 |
| T = OUT/IN | 1.215 | 2.88 % | +0.039 % | [−0.0027, +0.0037] | 0.76 |
No significant drift in any series. The 95 % CI bounds the post-burn-in output drift to −0.012…+0.078 %/drop ⇒ ≤ ~1.6 % accumulated over a 20-drop campaign. That's the mount noise floor: in a to-failure run, any monotonic output change bigger than ~2 % is the specimen, not the mount.
3) Regression reliability
- Start-drop sensitivity: sweeping the fit start over drops 7–11 keeps the slope between −0.023 and +0.011 %/drop, all n.s. — the zero-drift verdict doesn't hinge on the exact cut. (Starting at drops 4–5 flips it significant — that's the seating tail, which is exactly why burn-in = 5.)
- Autocorrelation: Durbin-Watson = 0.61 on the output residuals (a gentle hump near drop ~15). Positive autocorrelation makes OLS over-eager to call trends, so the n.s. conclusion survives it a fortiori. Input (1.62) and T (1.44) are fine.
- Normality: Shapiro-Wilk p = 0.12 / 0.05 / 0.40 (input / output / T) — no material violation.
- What limits precision is now the input: auto-drop input CV is 2.57 % (202–234 G) vs ≤ 0.5 % in the manual runs, and T inherits nearly all of it (output CV is just 0.53 %). Worth checking the auto-dropper's release consistency. Also note T ≈ 1.22 here vs ≈ 1.00 in the prior wax runs — fresh wax + re-seat + auto-rig = a different configuration, so compare T only within a setup, never across re-mounts.
Bonus: the data saw the fall-off coming ~18 drops early
From drop 8 the impact steadily migrates between axes at near-constant resultant — CH2 decays 2,272→510 G (−8.6 %/drop, p ≈ 1e−9) while CH4 grows (+0.7 %/drop, p ≈ 1e−10). The sensor was slowly rotating in the seat (wax held magnitude coupling but not orientation), accelerating through drops 22–25 into the fall-off. Two takeaways: the rotation-invariant resultant (and T) stayed valid to drop 24 — good robustness news — and a live per-axis-ratio (e.g. CH2/CH4) health check would have flagged the loosening around drop ~12, in time to re-seat instead of losing drops 26–30. For 20+-drop auto campaigns, pair the key-seat with a positive retainer (clip / set-screw / the tighter #35 pocket) and keep wax as couplant only.
Caveats: n = 1 specimen (failed print prc1kn) — this calibrates the mount/DAQ/rig, not geometry. 200 ms window; Δv partial-pulse (~2.4–2.9 m/s); tri-axis orientation unverified (and demonstrably changing, per the migration); raw input peaks still run 85–90 % of the CH5 full scale. The movie-mode video that shut off wasn't uploaded, so no video cross-check this run.
- Download & commit the 30 TP4 CSV exports
- Detect when the tri-axis output sensor fell off (drop 26; drop 25 = letting-go anomaly)
- Identify the burn-in / stabilization phase (changepoint scan + exponential fit → 5 drops)
- OLS drift rate on the stabilized phase (statistically zero, ≤ 0.08 %/drop bound)
- Regression reliability checks (CI, DW, Shapiro, start-drop sensitivity)
- Figures + writeup + README
- Commit & push (
b11bbb3)
· branchcopilot/get-video-drop-test-data
Burn-in changepoint scan (burn-in = 5 drops, exp-fit tau = 4.9), stabilized-phase OLS drift (|drift| <= 0.08 %/drop at 95%, n.s.), fall-off detection (drop 26, pre-fall-off anomaly at 25), and per-axis migration early-warning finding. Co-authored-by: Jinkwan Han <ctrhjk@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@claude notice any damage/differences from the two drops that have occured so far? |
|
Claude finished @sgbaird's task in 7m 18s —— View job Damage check —
|
| session | n | input (G) | output (G) | T | pulse (ms) | ringdown mode (Hz) | centroid (Hz) |
|---|---|---|---|---|---|---|---|
| key-mounted (drops 1–5) | 5 | 219 | 234 | 1.07 | 1.52 | 519–549 | 665 |
| key-mounted-wax (6–10) | 5 | 229 | 228 | 1.00 | 1.52 | 519–549 | 688 |
| burn-in-wax (11–18) | 8 | 227 | 224 | 0.99 | 1.51 | 519–549 | 732 |
| drift-calibration (19–42 valid) | 24 | 217 | 261 | 1.20 | 1.51 | 519–549 | 760 |
Specimen — clean bill of health:
- Pulse width is flat across all 48 drops — 1.51 ± 0.02 ms, slope +0.003 %/drop (p = 0.79). No softening.
- The structural ringdown mode never moved — locked at 519–549 Hz (one 30.5 Hz Welch bin) from drop 1 to drop 42. A cut tendon or cracked strut (the
m6cyoq/T3_0103failure modes) sheds stiffness and this frequency falls; it didn't. - The spectral centroid actually creeps up across sessions (665 → 760 Hz) — the opposite of damage. It tracks the mount history (bare press-fit → wax → fresh wax → auto-rig), i.e. progressively better high-frequency coupling, not the structure.
- Photos: no new visible strut/tendon damage — the lumpy tendon sections are the pre-existing TPU print bubbles that made
prc1kna "failed print" to begin with. - Corollary: the T ≈ 1.20 level in the drift-cal run vs ≈ 0.99 in the prior wax runs is a re-mount/rig effect, not specimen change — if the specimen had changed, pulse width and ringdown frequency would have moved with it. Both are unchanged.
Sensor — survived both fall-offs:
- After fall-off Get started on this repo #1 its noise floor improved (CH2/3/4 RMS 0.34/0.24/0.22 → 0.18/0.18/0.15 G) and it read 228 G at a 228 G input — no sensitivity or zero shift. Drift-cal noise (≤ 0.46 G) is still ≈ 0.003 % of full scale, plausibly auto-rig ambient vibration. Perspective: it takes 5,600–6,500 G raw every measured drop; a tumble onto the plate is small next to that.
- No post-fall-off-Restructure MRG proposal to match grant format with Edison Scientific-informed revisions #2 data exist yet — worth a quick tap check on all three axes before the next campaign. Fun detail: the last valid drop (24) has the highest spectral centroid of the whole series (843 Hz) — extra HF rattle right before the drop-25 letting-go spike, a second early-warning signal alongside the per-axis migration.
Implication for BO: a fixed dummy is stable for at least ~50 drops at 13 in, so prc1kn can keep serving as the rig-calibration standard, and specimen wear-out won't silently masquerade as rig drift on these timescales. Caveat: prc1kn is n = 1 and a failed print — intact, pre-tensioned prints may fatigue differently (tendon creep, junction fatigue), so re-run this health check (one command) on the first intact specimen that gets a long campaign. Frequency resolution is 30.5 Hz, so mode shifts under ~6 % aren't resolvable.
- Gather context —
prc1kn: 4 instrumented sessions (~48 drops); sensor fell off twice - Inspect photos for visible physical damage (none new; TPU bubbles pre-existing)
- Compute mount-robust damage metrics across all 4 sessions (pulse width, rotation-invariant ringdown spectrum, noise floors)
- Check sensor health across both fall-offs (no degradation)
- Commit script + figures + writeup (
ceac957)
· branchcopilot/get-video-drop-test-data
|
@ctrhjk nice work. Thinking about how we'll keep it seated. Maybe a tighter fit + wax, we could do a set screw or pin that would keep it from going out, but that sounds a bit tedious. |
Answers whether prc1kn or the tri-axis sensor accumulated damage across the key-mounted, key-mounted-wax, burn-in-wax and drift-calibration sessions: no detectable specimen damage (pulse width flat, ringdown mode fixed at 519-549 Hz) and no sensor degradation across its two fall-offs. Co-authored-by: Sterling G. Baird <sgbaird@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sgbaird |
Do you mean deeper? |
|
Yes! |
|
Claude finished @ctrhjk's task in 8m 25s —— View job Drift-calibration #2 — 50 auto-drops (
|
| series | mean | CV | slope (%/drop) | 95 % CI (per drop) | p |
|---|---|---|---|---|---|
| input CH5 | 223.6 G | 1.74 % | +0.043 | [+0.010, +0.183] G | 0.029 |
| output | 241.0 G | 0.64 % | +0.032 | [+0.050, +0.105] G | <0.001 |
| T = OUT/IN | 1.078 | 1.95 % | −0.010 | [−0.0006, +0.0004] | 0.669 |
The key finding: input and output drift together, and T cancels it. The input peak (+0.043 %/drop) and input Δv (+0.072 %/drop, p = 0.009) both creep up — the auto-dropper's strike got slightly harder over 50 drops, a rig-level drift, not the mount. Because it's common-mode, transmissibility is drift-free from drop 1 (slope CI ±0.05 %/drop, centered on zero → |ΔT| ≤ ~1 % worst-case over a 20-drop campaign). That makes T the drift-immune BO objective; output-at-fixed-input needs the longer burn-in or detrending against the input.
3) Regression reliability
- Start-drop sensitivity: sweeping the start over drops 3–13 moves the output slope smoothly +0.038 → +0.012 %/drop — a decaying seating tail, not a changepoint artifact.
Tstays n.s. at every start. - Autocorrelation: Durbin-Watson 0.43 / 0.73 / 0.55 (output / input / T) — the residuals carry the smooth seating curvature, which makes OLS over-eager to call trends. That cuts favorably: the flat-
Tverdict survives a fortiori; the output's tiny p-values mean "trend present," with the exponential fit as the better shape description. - Normality: Shapiro-Wilk 0.23 / 0.07 / 0.18 — fine. And n = 45 gives ~2× tighter CIs than run Get started on this repo #1's n = 19 — that, not new physics, is why sub-0.05 %/drop slopes now reach significance.
4) Damage / limitations on the structure: no damage found
Using the mount-robust indicators from the health check (they can't be faked by seat/wax changes):
| indicator | result | verdict |
|---|---|---|
| ringdown dominant freq (rotation-invariant) | 549 Hz, locked all 50 drops (p = 0.38) | no stiffness loss |
| output pulse width | 1.49 ms, CV 0.40 %, −0.75 % total over 50 drops† | no softening |
| pre-impact noise RMS | 0.15–0.20 G, unchanged first-5 vs last-5 | sensor healthy |
†Quantized at the 8 µs sample step; the statistically-significant slope is a 1–2-sample shift pointing stiffer — the opposite of damage (a cracked strut/cut tendon lengthens the pulse and lowers the mode).
prc1kn has now taken ~98 recorded drops at ~215–260 G CFC-180 with its structural mode still pinned at 549 Hz — wear-out remains undetectable on BO-campaign timescales at 13 in (for this dummy; intact pre-tensioned prints may fatigue differently). Two non-damage observations worth flagging:
- The sensor is still slowly rotating in the seat — CH3 grows 1,023 → 1,285 G (+0.65 %/drop, p ≈ 1e-17) and CH4 2,945 → 3,376 G (p ≈ 1e-22) at near-constant resultant: the same loosening signature that preceded run Get started on this repo #1's fall-off. The cable tie removes the consequence, not the cause — your deeper-housing suggestion is the right fix (the sensor sitting only halfway in is exactly what this data shows). A transient HF excursion at drops 16–19 (spectral centroid 660–837 Hz, fully back to baseline by drop 20) coincides with the CH2/CH3 migration inflection → a seat micro-event, not structural.
- T level is re-mount-dependent (1.215 in run Get started on this repo #1 → 1.078 here at the same nominal setup) — compare T within a mount only, never across re-waxings.
SOP takeaways
- Adopt the cable tie-off — 50/50 vs run Get started on this repo #1's 25-drop ceiling, at zero cost.
- Prefer
T(per-drop OUT/IN ratio) as the objective — no burn-in needed, immune to the rig-level drift both single channels carry. If output-only peak-g is needed: burn in ≥ 12–15 drops per fresh wax application and re-verify with the changepoint scan each re-mount. - Live seat-health check during long campaigns: watch the per-axis ratio (e.g. CH2/CH4) — it's the early warning for loosening.
- Deepen the key-seat pocket so the walls, not the wax film, register the sensor.
Caveats: n = 1 specimen and it's a deliberately-failed print — this calibrates the mount/DAQ/rig, not geometry (T ≈ 1.08 is not a geometry result). 200 ms window; Δv partial-pulse (~2.6 m/s); tri-axis orientation unverified (and demonstrably drifting); ringdown frequency resolution 30.5 Hz, so mode shifts < ~6 % aren't resolvable.
- Gather context (prior drift-calibration script + channel map)
- Download & commit the 50 TP4 CSV exports
- Burn-in / stabilization detection (changepoint scan + exponential fit → ~12–15 drops)
- OLS drift rate on the stabilized phase + reliability checks (CI, Durbin-Watson, Shapiro, start-drop sensitivity)
- Damage / limitation check on
prc1kn(none found; sensor rotation + rig-level input drift flagged) - Figures + writeup + README
- Commit & push (
92c9995) - Summarize findings
· branchcopilot/get-video-drop-test-data
…l-off) Co-authored-by: Jinkwan Han <ctrhjk@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
We got a pretty good tensegrity structure, having housings on the top and at the bottom vertex. However, this one still has a little bit of bubbles on the top tendon, so this is close to an actual specimen but is still considered a failure specimen. Settings were the same, but this time I added a new tri-axis accelerometer to the bottom housing. For the channel setting, ch6 is sens X, ch7 is sens Y, and ch8 is sens Z. These axes have sensitivities of 9~10.5 mV/G. I also took cable tie-off to prevent the accelerometers from falling off. 30 drops were conducted, and the drop height was 13in. Here are the results of drops. I observed a problem that the single axis accelerometer fell off the bottom acrylic plate, and since it was a trigger, it detected the wrong surplus acceleration. Please figure out what dataset indicates those falling off, and do OLS regression analysis with the dataset above. Refer this comment: #67 (comment) Report back the analysis results to me, and suggest some recommendations on how to secure accelerometers in place. |
|
Claude finished @ctrhjk's task in 9m 5s —— View job 30-drop run on
|
| capture | TOP raw (G) | CH5 raw (G) | verdict |
|---|---|---|---|
| Signal 11 | 1 | 3,909 | the fall-off event — fired 6 s off-cadence, zero specimen response |
| Signal 12 | 105 | 3,960 | spurious (sensor bouncing/settling) |
| Signal 17 | 32 | 2,849 | spurious |
| Signal 27 | 8 | 2,297 | spurious |
| Signal 28 | 2 | 1,651 | spurious |
So 27 of the 30 conducted drops were captured (Signals 1–10, 13–16, 18–26, 29–32); 3 drops were lost because their impacts fell in the DAQ dead time consumed by the spurious triggers (the event-time gaps around 11–12, 17 and 27–28 each swallow one ~15 s cadence slot).
And CH5 is not trustworthy on any capture from Signal 11 onward, even the real ones:
- pre-fall-off (Signals 1–10): CFC-180 251 G, CV 2.4 % — normal;
- post-fall-off: 42–262 G, CV 34.7 %, with the raw level stepping between ~3.7–5.0 kG (Signals 13–16) and ~8.3–9.1 kG (18–26 — up to 96 % of the 9,442.9 G full scale, near clipping) as the loose sensor changed resting position;
- the trigger fired early on the sensor's rattle: the impact lands at the nominal ~3.9 ms on healthy captures but at 9.6 / 9.0 / 5.1 / 35.3 ms on Signals 13, 14, 15, 26 (that last one only just stayed inside the 200 ms window).
Meanwhile the TOP and BOT channels stayed flat throughout — the structural measurement itself was never disturbed. 👍
2) OLS drift analysis (27 real drops; CH5 excluded, BOT as input reference)
Burn-in: the changepoint scan is n.s. from k = 2 (exponential fit: plateau 264.1 G, amplitude 4.2 G, τ = 1.4 drops) — much faster seating than drift-cal #2 (τ = 12); this wax application settled almost immediately. Stabilized phase = drops 3–27 (n = 25):
| series | mean | CV | slope (%/drop) | p |
|---|---|---|---|---|
| TOP output (CH2–4) | 264.1 G | 0.97 % | +0.049 | 0.065 (n.s.) |
| BOT input (CH6–8 resultant) | 159.2 G | 6.86 % | +0.428 | 0.021 |
| T* = TOP/BOT | 1.665 | 6.10 % | −0.324 | 0.053 (n.s.) |
| CH5 (detached, for reference) | 210.5 G | 28.9 % | −0.399 | 0.629 |
- The TOP output is drift-free and tight (CV 0.97 %, no significant trend; the split-half wobble spans only ~2 % total). The wax + cable-tie key-seat SOP carries over to
RW5F61unchanged. - The bottom-vertex input works but is noisier than the base plate was (CV 6.9 % vs 0.5–2.6 %). The culprit is a level step in the last four captures (150–160 → 174–191 G) carried by the off-axis CH6/CH7 content while the drop-axis CH8 raw peak stays flat (~925–1,025 G) — the bottom sensor's orientation/coupling shifted late in the run (plausibly disturbed around the same events that freed CH5). That step is also what drives BOT's barely-significant +0.43 %/drop slope and the mirror-image T* slope.
- T* ≈ 1.67 is a different quantity from the old T ≈ 1.0–1.2 — the reference now sits on the compliant bottom vertex, not the rigid plate. Compare it only within this instrumentation layout.
- Reliability: DW 0.36–1.0 (positive autocorrelation → OLS over-eager, so the n.s. verdicts survive a fortiori); start-drop sweep keeps TOP ≤ ~0.1 %/drop everywhere.
Specimen check: no damage signature on RW5F61 over the 27 impacts — pulse width flat at 1.53 ms (CV 0.64 %, tiny trend pointing stiffer), rotation-invariant ringdown mode with no downward trend, noise floors healthy. The rising spectral centroid and the CH3/CH4 growth at constant resultant are the familiar slow in-seat rotation, not the structure.
3) Recommendations — keeping the sensors seated
- Base-plate single-axis: stop relying on bare wax for auto campaigns. It shear-fatigues under repeated ~7–9 kG raw hits. In ISO 5347 order of preference: (a) stud/screw mount — bolt a small tapped block to the plate (or drill/tap the acrylic) and screw the sensor down; (b) hard adhesive (CA/epoxy on a sacrificial base); (c) if wax stays: fresh thin film each session plus a cable tie-off for this sensor too — the two tied sensors have now survived ~80 drops with zero fall-offs; the one untied sensor is the one that fell.
- Move the trigger off the base-plate sensor. A trigger on a detachable sensor is a single point of failure (5 spurious captures + 3 lost drops here). CH4 is the robust choice — ~4,500–4,800 G raw on every real drop, 4.5× margin over the 1000 G level, and it lives in the proven key-seat. CH8 is marginal as a trigger (raw ~925–1,025 G straddles 1000 G); if used, lower the level to ~300–500 G.
- Live plausibility check during auto campaigns: flag any capture whose TOP-resultant max is < 500 G or lands > 6 ms into the record — one line of code, and it would have caught all five spurious captures in real time.
- Deepen the key-seat pockets (as you and Sterling already discussed) so the walls, not the wax film, register the sensor — the in-seat rotation is visible on both tri-axis units, and the bottom unit's late-run off-axis step is what currently costs T* its precision (CV 6 % vs the ~1 % it should reach). Worth re-checking the bottom sensor's seating before the next campaign.
Caveats: n = 1 specimen and RW5F61 is still a failed print (top-tendon bubbles) — this qualifies the three-sensor layout and mount SOP, not geometry (T* ≈ 1.67 is not a geometry result). 200 ms window; Δv partial-pulse; tri-axis orientations unverified (and the bottom one demonstrably shifted); the CH5 verdicts rest on level/timing forensics, not video of the detachment.
- Gather context (prior drift-calibration scripts, channel map incl. new CH6–8)
- Download & commit the 32 TP4 CSV exports
- Identify the spurious triggers / CH5 fall-off (Signal 11; spurious = 11, 12, 17, 27, 28)
- OLS regression (burn-in = 2 drops, stabilized OLS, reliability checks) on the valid channels
- Damage/limitation check on
RW5F61(none found) - Figures + writeup + README
- Commit & push (
40f2070) - Report results + mounting recommendations
· branchcopilot/get-video-drop-test-data
…drift, bottom-vertex tri-axis Co-authored-by: Jinkwan Han <ctrhjk@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
This test was conducted to assess 100 drops of the latest tensegrity structure. Channel setup: Ch2 through 4 are for the top tri-axis accelerometer, and ch6~8 are for the bottom tri-axis accelerometer. I secured ch5 sensor with tape so that it would not fall off the bottom acrylic plate. Here are the 100 drops results Analyze these drops, and report any problems if you observe. |
|
Claude finished @ctrhjk's task in 9m 46s —— View job 100-drop campaign — analysis + problems foundAnalyzed all 100 captures. Data, a reproducible script, figures, and a writeup are committed (
The good news first: 100/100 clean — every fix from the 30-drop run workedAll 100 captures are real drops — zero spurious triggers, zero lost drops, zero fall-offs, and the impact lands at 4.01 ± 0.01 ms in every single record. Moving the trigger to CH4, taping CH5, and the cable ties did exactly what they were supposed to (vs the 30-drop run's 5 spurious captures + 3 lost drops). Cadence was steady (median 20 s; 100 drops in ~31 min). ⚠ Problem 1 — the low-range bottom tri-axis is under-ranged: CH8 exceeds full scale on 85/100 drops
The drop-axis channel spends most of the campaign above its rated range. It's not hard flat-topping (≤ 4 samples pinned), but linearity above full scale is unspecified, so all BOT-derived numbers (BOT peak, T* = TOP/BOT, BOT Δv) from this run are saturation-biased — don't use them quantitatively. This was foreseeable in hindsight: the 30-drop run already measured 925–1,075 G raw per axis at the bottom vertex, exactly straddling a ~989 G range. Shock practice wants 2–3× headroom → the bottom-vertex station needs a ≥ 3 kG-range sensor at 13 in (the previous multi-kG tri-axis fits comfortably), or a lower drop height if you specifically want the low-range unit's resolution. ⚠ Problem 2 — the taped CH5 creeps upward (~+3 % over the campaign)Stabilized-phase OLS (drops 10–100, n = 91, CFC-180):
The tape held mechanically for 100 drops (a win vs bare wax), but CH5 rises steadily while TOP stays flat — in drift-cal #2 a genuinely harder strike moved both channels and cancelled in T; here it doesn't, which points at the tape interface progressively stiffening/seating under the ~7 kG raw hits, not a real input change. So T = TOP/CH5 carries a slow −0.043 %/drop drift (≈ −4 % total). For BO use: detrend it, burn the tape in (the drift is front-loaded), or upgrade CH5 to a stud/cement mount. Burn-in flipped sign this run — and that's informativeChangepoint scan → burn-in = 9 drops, but the exponential fit has negative amplitude (plateau 241.5 G, −13 G, τ = 7.7 drops): the output starts ~250 G and settles downward, opposite to the wax-seating rise on Specimen over 100 drops: no damage signature, one genuine watch item
Recommendations
Caveats: n = 1 specimen (ID unassigned); 200 ms window; Δv partial-pulse; tri-axis orientations unverified and slowly rotating in both seats; BOT quantities saturation-biased throughout; the tape-seating reading of the CH5 drift is inferred from the TOP/CH5 contrast, not an independent coupling measurement.
|
… tape drift, OLS, damage indicators Co-authored-by: Jinkwan Han <ctrhjk@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@claude |
|
Claude finished @ctrhjk's task in 4m 54s —— View job Trigger-channel correction applied — it's CH5, not CH4Thanks for the correction, @ctrhjk. I've fixed the 100-drop analysis everywhere it claimed the trigger moved to CH4 ( What doesn't changeAll numeric results stand. The script never used the trigger channel for anything quantitative — each impact is located from the argmax of the TOP tri-axis resultant, and I verified the regenerated metrics JSON is byte-identical after the fix. The OLS drift numbers, saturation audit, burn-in estimate, and damage indicators are all unaffected. Only the figure-01 label and the prose changed. What does change — the attribution of the 100/100 resultThe clean campaign wasn't "trigger relocation worked"; it was the tape working. The 30-drop run's 5 spurious captures were the detached CH5 firing the trigger on its own rattle. Taping CH5 removed the cause, so the same CH5 trigger that misfired 5 times in 30 drops ran 100/100 clean here — and its raw peaks (5.5–8.1 kG) clear the 1000 G level by 5.5–8× on every drop, so the ~+3 % tape-seating amplitude creep I flagged has no bearing on trigger reliability. One nuance worth keeping in mind: the trigger still lives on the one sensor with a fall-off history, so it remains a single point of failure guarded only by the tape. The updated recommendation (§6.2) is: keeping the taped CH5 trigger is now a validated option, but moving the trigger to CH4 is still a cheap defensive upgrade if you want belt-and-suspenders — CH4 saw 3.4–4.3 kG raw on every drop this campaign (>3.3× a 1000 G level) and sits in the proven key-seat.
|
Per @ctrhjk's correction the trigger channel was still CH5, not CH4 as listed in the posted channel table. Numeric results unchanged (impacts are located from the TOP resultant); the attribution of the clean 100/100 campaign shifts to the tape retention on CH5. Co-authored-by: Jinkwan Han <ctrhjk@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@claude |
|
Claude finished @ctrhjk's task in 3m 2s —— View job Specimen ID recorded: the 100-drop campaign was
|
…pecimen readings The 100-drop specimen is RW5F61 (confirmed by @ctrhjk), the same structure as the 30-drop run — cumulative 130 conducted / 127 captured drops. Resolves recommendation 5, re-frames the downward burn-in transient as re-setup settling (not fresh-print break-in), and reads the ~530 -> ~610 Hz mode contrast as a same-specimen, stiffer-direction, re-rig-driven shift. Co-authored-by: Jinkwan Han <ctrhjk@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @ctrhjk's task in 7m 35s —— View job CH4-trigger assessment — 50 auto-drops on
|
| trigger health metric | value |
|---|---|
| real drops captured | 50/50 — zero spurious triggers, zero lost drops, zero fall-offs |
| CH4 first crossing of 1000 G | 3.896 ± 0.002 ms — sample 487 in 49/50 records, sample 488 in the other (±1 sample / 8 µs jitter) |
| CH4 raw |peak| | 3,472 ± 87 G → 3.2–3.7× margin over the level, no trend toward it |
| CH4 headroom | max 26.8 % of its 13,624 G full scale — no saturation risk |
| pre-crossing quiet | ≤ 4 G before 3.5 ms in every record — nothing but the impact rising edge ever approaches the level |
| cadence | median 14 s, 50 drops in ~11 min — fastest campaign yet (100-drop ran ~20 s) |
The rattle-trigger failure mode that produced 5 spurious captures in the 30-drop run has no analogue now: the trigger lives on a sensor that is key-seated, waxed and cable-tied. The constant ~0.10 ms offset from the nominal 4.000 ms pre-trigger point is a fixed DAQ latency, identical in every record — harmless. Recommendation: lock in trigger = CH4, 1000 G as the SOP trigger; CH5 stays as a measurement channel only.
2. The measurement is unperturbed by the trigger change
Stabilized-phase (drops 11–50) vs the 100-drop CH5-trigger run: T = TOP/CH5 reproduces to 0.3 % — 0.957 (CV 2.12 %) → 0.960 (CV 1.20 %) — the tightest T of any RW5F61 campaign. Absolute levels shifted ~6 % down (TOP 241.7 → 226.7 G, CH5 252.6 → 236.3 G), the familiar re-setup level shift.
Drift: TOP (−0.078 %/drop) and CH5 (−0.065 %/drop) both decline slowly together (−1.7 % / −2.5 % total), with plate Δv falling in step — the auto-dropper's strike got slightly softer over the campaign, a rig-level drift. Because it's common-mode, T is flat (p = 0.43 stabilized; full-series +0.023 %/drop, p = 0.065 n.s.) — the mirror image of drift-cal #2 where a hardening strike also cancelled in T. Notably, the 100-drop run's CH5 tape-seating creep (which poisoned T at −0.043 %/drop) is gone this session — consistent with the tape now being burned in.
3. Carried-over issues (not trigger-related)
- Bottom tri-axis still under-ranged: CH8 exceeds its 989 G full scale on 40/50 drops (median 105 % FS) — BOT/T* remain saturation-biased; the ≥3 kG swap is still pending.
- Bottom seat still rotating: CH6 collapses 849 → 269 G raw at near-constant resultant — same in-seat rotation signature; deeper pockets remain the fix.
- Minor: TOP pre-impact noise RMS roughly doubled across the run (0.2 → 0.55 G, still ~0.004 % FS) — worth a glance at the top seat/cable before the next campaign.
4. Specimen at ~180 cumulative drops — no damage signature
Pulse width flat at 1.51 ms (CV 0.83 %) — the 100-drop run's +2.7 % widening watch item did not continue (it reads as per-campaign mount seating, not tendon relaxation). The ringdown alternates between two mode clusters (~520–700 Hz and ~1,340–1,740 Hz, ≈25 drops each) with no trend — two comparable structural modes trading dominance, not a stiffness change.
With trigger, mounts, retention, burn-in, and drift floor all now characterized, the instrumentation-qualification arc is done — the next campaign can be geometry discrimination (n ≥ 5 distinct intact prints, T = TOP/CH5 objective).
Caveats: n = 1 specimen and RW5F61 is a failed print — this qualifies the trigger/DAQ, not geometry (T ≈ 0.96 is not a geometry result). 200 ms window; Δv partial-pulse; tri-axis orientations unverified; BOT saturation-biased throughout; the "rig softening" reading of the common-mode decline is inferred from Δv + the T cancellation.
- Gather context (prior 100-drop analysis, channel map)
- Download & commit the 50 TP4 CSV exports
- Assess the CH4 trigger (capture validity, timing, margin, spurious triggers, comparison vs CH5-trigger campaigns)
- OLS drift + damage indicators for continuity with prior
RW5F61campaigns - Figures + writeup + README
- Commit & push (
713bbbc) - Report findings
· branchcopilot/get-video-drop-test-data
…t CH4 trigger as SOP Co-authored-by: Jinkwan Han <282969777+ctrhjk@users.noreply.github.com> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>




















Issue is operational (coordinating the first crush/drop tests on Jeff Hill's tower) and this repo is the LaTeX MRG proposal with no code or existing test-protocol surface. This PR consolidates the moving parts from the issue thread, adds a literature synthesis, and analyzes the recorded accelerometer data.
Added
docs/drop-test-protocol.md— single source of truth for the drop-test setup, covering:g_max, SEA, full ~10 s ringdown (not just the 200 ms shock), reusability, slow-mo framing from t=0edison-trajectories/drop-test/— Edison Scientific LITERATURE_HIGH synthesis (task653d7d39) on drop-tower troubleshooting for small 3D-printed lattice/tensegrity specimens: ~57 KB report, full JSON dump, submission record, and README. Idempotent driver atscripts/edison/submit_drop_test.py. Surfaces a standards stack (ASTM D5276/D7136/D3332, ISO 6603/1683/5347, MIL-STD-810 method 516, SAE J211) and recommendations (linear sleeve bearings, magnetic/elastic top-plate hold-down, ≥10 s ring-buffer DAQ, SAE J211 CFC filtering, n ≥ 5 + CV, ≥5000 fps DIC; closest analogues Pajunen 2019, Dwyer 2023).First drop-test data analysis of the five TP4 accelerometer exports posted by @me-madsen (
Signal 10–14, 4-channel, 125 kHz, 0.2 s window):data/drop-tests/raw/— committed raw export filesscripts/analysis/drop_test_analysis.py— loader, SAE J211 CFC-1000 / CFC-180 filtering, peak/pulse/PSD metrics, and figure generationdata/drop-tests/figures/— full-window CH1 overlay, per-run impact zoom (raw vs filtered), peak-g bar chart, PSD, and CH4 trigger-artifact plotdocs/drop-test-analysis.md+data/drop-tests/README.md— findings: the "audrey" tensegrity specimen reduces CFC-180 peak acceleration ~74–79 % vs the no-specimen control (~370–463 G vs ~1,792 G), while the PETG run's raw peak is within ~1 % of the control (≈ direct plate-on-plate hit), strong evidence of the bungee-driven lift-off; CH4 carries a fixed ~1.4 kG trigger/release artifact at t≈4.2 ms in every run. Caveats noted: unconfirmed channel map, 200 ms window only, n = 1 for control/PETG, no Δv/SEA quoted yet.Vertex vs. acrylic-plate T3-prism drop-test data and analysis posted by @ctrhjk (PR Add drop-test protocol, Edison synthesis, and first-data analysis #67), under
data/drop-tests/vertex-acrylic/:raw/— eight TP4 exports{n0jdwk, m6cyoq, T3_0103, T3_0000}_Signal{1,2}.csv(Signal1= vertex-mounted,Signal2= acrylic-plate), single drop per configuration at 13 ft, 200 ms / 125 kHzREADME.md— channel map (CH1 removed; CH2–CH4 tri-axis; CH5 single-axis; CH4 = 1000 G trigger) with full-scale/sensitivity per channel, per-specimen file index, and @ctrhjk's observations (clip-height/no-trigger issue, hot-glue z-axis mount limitation,m6cyoqstrut andT3_0103TPU-tendon damage after the acrylic test, and the invalidT3_0000acrylic run where the accelerometer fell off)scripts/analysis/drop_test_vertex_acrylic_analysis.py— locates the impact via the triggered CH4 channel (windowed ±1.5 ms peak search in the first 10 ms, not a global max), baseline-corrects, and reports raw / SAE J211 CFC-1000 / CFC-180 peaks for the single-axis CH5 (primary go-forward sensor) and tri-axis CH4, auto-flagging invalid / no-clean-impact runsdata/drop-tests/vertex-acrylic/figures/— vertex-vs-acrylic CH5 impact windows, CFC-180 peak-g bar chart, and vertex CH5 PSDdocs/drop-test-vertex-acrylic-analysis.md— findings + an explicit SOP / test-method section: vertex mounting is repeatable (4/4 clean, CFC-180 229–284 G, CV ≈ 9 %) while the acrylic configuration is not (3/4 runs registered no clean impact — clips too low so the plate seats on the specimen, plus the fell-offT3_0000); the vertex peaks do not yet discriminate geometry so fresh intact distinct-geometry samples (vertex-only, n ≥ 5) are needed before peak-g is a trustworthy BO objective; replace the hot-glue mount with a z-axis-aligned seat; and the single-axis sensor's raw peaks reach 70–90 % of its 9,442.9 G full scale (near saturation on the m6cyoq-acrylic run). Caveats: n = 1 per (specimen, mount), 200 ms window only, partial-pulse Δv, unconfirmed CH4/CH5 axis correspondence.Clip-height sweep & base-plate accelerometer-check diagnostic posted by @ctrhjk, under
data/drop-tests/clip-height/— drilling into why the acrylic-plate configuration repeatedly fails to trigger:raw/Accelerometer_check_Signal1.csv+README.md— the one triggered base-plate CSV (tri-axis on the bottom plate, 13 in drop) plus a setup README documenting both experiments: the clip-height sweep (extra bungees cured fly-off; tri-axis on the acrylic plate; clips at 0.5/1/1.5/2 in, two drops each; 0/8 drops triggered, video only) and the base-plate accelerometer check, with the shared channel mapscripts/analysis/drop_test_clip_height_analysis.py+data/drop-tests/clip-height/figures/— windowed CH4 impact location, SAE J211 CFC-1000 / CFC-180 peak/pulse/Δv metrics, and figures (base-plate impact window, full-window CH4, PSD)docs/drop-test-clip-height-analysis.md— findings: the base-plate hit triggers cleanly (CH4 raw 3072 G ≈ 3.1× the 1000 G trigger, CFC-180 280 G, Δv ≈ 3.3 m/s; CH4 dominates the off-axis channels ~23–55×), so the acrylic-plate "no trigger" failure (0/8 across the clip sweep) is a load-path problem — the plate seats on / is damped by the bungee-restrained specimen — not the sensor, DAQ, or trigger level.Input-output (transmissibility) drop-test data and analysis posted by @ctrhjk (PR Add drop-test protocol, Edison synthesis, and first-data analysis #67), under
data/drop-tests/input-output/— @ctrhjk's input-output instrumentation design: a single-axis accelerometer on the bottom plate = input (now the triggered channel CH5), a tri-axis accelerometer hot-glued to the top vertex = output (CH2–CH4), bungees removed, four distinct-geometry specimens (practice,n0jdwk,yqpmx1,h8Lbev) each dropped five times at 13 in:raw/— 20 TP4 exports{practice,n0jdwk,yqpmx1,h8Lbev}_Signal{1..5}.csv(Signalindex = drop number) +README.mdwith the channel map (trigger moved to the single-axis input CH5) and @ctrhjk's setup notesscripts/analysis/drop_test_input_output_analysis.py— locates the impact on the triggered CH5 (windowed ±1.5 ms peak), baseline-corrects, and reports raw / SAE J211 CFC-1000 / CFC-180 peaks for the input (CH5) and the tri-axis output resultant, the transmissibilityT = output/input, pulse width and Δv, with per-specimen mean ± 1σ / CV aggregatesdata/drop-tests/input-output/figures/— input-vs-output impact windows (5 drops overlaid), transmissibility bar chart, input repeatability, output PSDdocs/drop-test-input-output-analysis.md— findings: the input-output design works — 20/20 drops triggered cleanly, removing the bungees makes the input nearly constant (235–248 G CFC-180, ≤1.7 % CV), and transmissibility now discriminates geometry (yqpmx1≈ 0.96 is the only attenuator,h8Lbev≈ 1.09,practice/n0jdwk≈ 1.17–1.19), makingT(or output-peak-at-fixed-input) a usable BO objective; a mild within-run drift across the five cyclic drops is flagged as most likely hot-glue-mount-driven. Caveats: n = 1 specimen per geometry (5 repeat drops), 200 ms window, unverified tri-axis orientation, IDs not yet tied back to design parametersedison-trajectories/input-output/— Edison Scientific ANALYSIS (taskfe044079) that independently reproduced the transmissibility values exactly to two decimals, confirmed the within-run drift is statistically real and mount-driven (pooled +0.015/drop, p = 0.0001), endorsedTas a first-pass screening objective (recommending FRF / SRS-band metrics and output-peak-at-fixed-input as it matures), and gave a prioritized SOP (rigid z-aligned keyed sensor seat, keep bungees removed, extend capture past 200 ms, n ≥ 5 distinct prints per geometry with randomized order, anchor in SAE J211 / ISO 5347 / ASTM D3332). Idempotent driverscripts/edison/submit_input_output.py+ fetchscripts/edison/fetch_input_output.py; a cross-check section is folded into the analysis doc.