diff --git a/docs/re/captures/roll-about-forward-axis.csv b/docs/re/captures/roll-about-forward-axis.csv new file mode 100644 index 0000000..064c266 --- /dev/null +++ b/docs/re/captures/roll-about-forward-axis.csv @@ -0,0 +1,313 @@ +phase,t,droll_deg +slow,0.05,0.0 +slow,0.101,-0.0909 +slow,0.155,-1.4615 +slow,0.206,-7.3152 +slow,0.256,-2.7442 +slow,0.307,-8.4132 +slow,0.357,0.0 +slow,0.407,0.0 +slow,0.457,0.0 +slow,0.507,-38.7821 +slow,0.557,-13.0283 +slow,0.609,-19.4952 +slow,0.659,-12.9643 +slow,0.711,-3.2265 +slow,0.764,-0.0 +slow,0.814,-0.0 +slow,0.865,-38.9513 +slow,0.915,-13.0541 +slow,0.965,-13.0281 +slow,1.015,-25.9821 +slow,1.066,-12.9527 +slow,1.117,0.0 +slow,1.167,0.0 +slow,1.217,-25.9507 +slow,1.268,-9.7894 +slow,1.355,-26.0652 +slow,1.405,-19.4799 +slow,1.456,-9.7073 +slow,1.506,0.0 +slow,1.557,0.0 +slow,1.607,-29.1521 +slow,1.661,-9.7987 +slow,1.711,-19.5758 +slow,1.761,-6.5117 +slow,1.811,-16.2414 +slow,1.861,-3.2347 +slow,1.911,0.0 +slow,1.961,0.0 +slow,2.012,-29.2256 +slow,2.062,-13.0531 +slow,2.112,-19.532 +slow,2.162,-12.9885 +slow,2.212,-9.7139 +slow,2.263,-0.0 +slow,2.313,-0.0 +slow,2.363,-0.0 +slow,2.413,-42.2278 +slow,2.464,-19.6123 +slow,2.514,-13.0415 +slow,2.564,-13.0156 +slow,2.614,-3.2392 +slow,2.664,0.0 +slow,2.714,0.0 +slow,2.766,-35.7889 +slow,2.816,-13.0315 +slow,2.867,-6.5058 +slow,2.917,-25.9631 +slow,2.967,-3.2272 +slow,3.017,0.0 +slow,3.067,0.0 +slow,3.117,-25.9064 +slow,3.168,-9.7872 +slow,3.218,-22.8201 +slow,3.268,-9.762 +slow,3.318,-19.4592 +slow,3.368,-3.2268 +slow,3.456,0.0 +slow,3.511,-29.1619 +slow,3.561,-6.5294 +slow,3.612,-19.5509 +slow,3.662,-6.5035 +slow,3.713,-22.7155 +slow,3.763,-0.0 +slow,3.813,-0.0 +slow,3.863,-0.0 +slow,3.913,-35.7343 +slow,3.963,-13.0477 +slow,4.013,-22.7862 +slow,4.064,-6.4918 +slow,4.116,-9.7153 +slow,4.167,-0.0 +slow,4.217,-0.0 +slow,4.267,-32.469 +slow,4.317,-19.576 +slow,4.368,-6.5118 +slow,4.418,-19.4983 +slow,4.469,-3.2333 +slow,4.519,0.0 +slow,4.57,0.0 +slow,4.62,-29.208 +slow,4.671,-9.8048 +slow,4.721,-13.0645 +slow,4.773,-6.5222 +slow,4.823,-26.0281 +slow,4.873,-3.2352 +slow,4.923,0.0 +slow,4.974,0.0 +slow,5.024,-29.2291 +slow,5.074,-13.0522 +slow,5.125,-13.0262 +slow,5.175,-16.259 +slow,5.225,-12.9694 +slow,5.275,-0.0 +slow,5.325,-0.0 +slow,5.376,-0.0 +slow,5.426,-38.9864 +slow,5.476,-9.8137 +slow,5.527,-19.5613 +slow,5.577,-13.0078 +slow,5.632,-6.4941 +slow,5.682,-0.0 +slow,5.755,-0.0 +slow,5.805,-39.0388 +slow,5.855,-13.0591 +slow,5.905,-26.0433 +slow,5.956,-6.4938 +slow,6.006,-12.9688 +slow,6.056,0.0 +slow,6.106,0.0 +slow,6.156,-29.1717 +slow,6.206,-16.3415 +slow,6.257,-13.0519 +slow,6.309,-19.5302 +slow,6.359,-12.9873 +slow,6.412,-6.4839 +slow,6.463,0.0 +slow,6.513,0.0 +slow,6.563,-32.4511 +slow,6.613,-22.8937 +slow,6.665,-13.0382 +slow,6.716,-22.7698 +slow,6.766,-12.9684 +slow,6.817,-6.4745 +slow,6.867,-0.0 +slow,6.918,-0.0 +slow,6.968,-32.4432 +slow,7.018,-16.2949 +slow,7.069,-13.0149 +slow,7.119,-22.7295 +slow,7.17,-16.1918 +slow,7.221,-3.2315 +slow,7.271,0.0 +slow,7.321,0.0 +slow,7.371,-38.9877 +slow,7.421,-9.8138 +slow,7.474,-22.8806 +slow,7.555,-19.5384 +slow,7.605,-16.2268 +slow,7.655,0.0 +slow,7.705,0.0 +slow,7.756,0.0 +slow,7.806,-39.0224 +slow,7.856,-13.064 +slow,7.907,-19.5481 +slow,7.957,-6.5026 +slow,8.007,-9.7314 +fast,0.05,-0.0596 +fast,0.1,-0.3593 +fast,0.15,-2.5234 +fast,0.202,-4.9514 +fast,0.252,-3.1468 +fast,0.302,-0.0 +fast,0.352,-0.0 +fast,0.403,-0.0 +fast,0.469,-20.1363 +fast,0.519,-8.0449 +fast,0.569,-8.6891 +fast,0.619,-10.948 +fast,0.67,-2.1745 +fast,0.72,-0.0 +fast,0.77,-0.0 +fast,0.821,-23.8257 +fast,0.872,-4.363 +fast,0.922,-15.4009 +fast,0.972,-4.4215 +fast,1.023,-17.711 +fast,1.073,0.0 +fast,1.123,0.0 +fast,1.173,0.0 +fast,1.223,-26.3637 +fast,1.275,-4.4318 +fast,1.325,-15.5068 +fast,1.375,-4.4229 +fast,1.426,-11.048 +fast,1.476,0.0 +fast,1.527,0.0 +fast,1.577,0.0 +fast,1.627,-24.1538 +fast,1.677,-8.8455 +fast,1.727,-15.5045 +fast,1.778,-8.8441 +fast,1.83,-8.8553 +fast,1.88,-0.0 +fast,1.93,-0.0 +fast,1.98,-0.0 +fast,2.034,-28.7329 +fast,2.084,-11.0611 +fast,2.134,-13.2881 +fast,2.184,-8.8429 +fast,2.236,-2.2041 +fast,2.286,-0.0 +fast,2.336,-0.0 +fast,2.387,-21.9271 +fast,2.437,-6.6459 +fast,2.488,-11.0875 +fast,2.569,-13.2631 +fast,2.619,-8.8432 +fast,2.669,-0.0 +fast,2.719,-0.0 +fast,2.769,-17.7007 +fast,2.82,-11.1022 +fast,2.87,-4.4224 +fast,2.92,-13.265 +fast,2.97,-4.3887 +fast,3.02,0.0 +fast,3.07,0.0 +fast,3.12,0.0 +fast,3.176,-19.5844 +fast,3.226,-17.5675 +fast,3.277,-4.4215 +fast,3.327,-19.9265 +fast,3.377,-2.2046 +fast,3.427,0.0 +fast,3.478,0.0 +fast,3.528,-19.7653 +fast,3.578,-4.4075 +fast,3.628,-15.5094 +fast,3.678,-8.8442 +fast,3.729,-11.0476 +fast,3.78,0.0 +fast,3.83,0.0 +fast,3.88,0.0 +fast,3.93,-26.3791 +fast,3.981,-8.8468 +fast,4.031,-13.2966 +fast,4.081,-4.4213 +fast,4.133,-4.3888 +fast,4.183,0.0 +fast,4.233,0.0 +fast,4.283,-19.5663 +fast,4.333,-13.2564 +fast,4.383,-4.4215 +fast,4.433,-17.6873 +fast,4.488,-2.2041 +fast,4.569,-0.0 +fast,4.619,-0.0 +fast,4.67,-17.544 +fast,4.72,-8.8326 +fast,4.77,-4.4305 +fast,4.82,-17.6862 +fast,4.872,-2.2041 +fast,4.922,-0.0 +fast,4.972,-0.0 +fast,5.023,-19.7606 +fast,5.073,-0.0 +fast,5.124,-17.6727 +fast,5.174,-4.4215 +fast,5.224,-11.0475 +fast,5.274,0.0 +fast,5.325,0.0 +fast,5.375,0.0 +fast,5.425,-19.7606 +fast,5.475,-8.8292 +fast,5.529,-19.9262 +fast,5.579,-4.4214 +fast,5.629,-4.4216 +fast,5.68,0.0 +fast,5.73,0.0 +fast,5.78,-19.937 +fast,5.87,-15.529 +fast,5.92,-13.2634 +fast,5.971,-6.6258 +fast,6.021,0.0 +fast,6.071,0.0 +fast,6.121,0.0 +fast,6.174,-19.7607 +fast,6.224,-17.6728 +fast,6.274,-4.4215 +fast,6.324,-13.2651 +fast,6.375,-4.3887 +fast,6.425,0.0 +fast,6.475,0.0 +fast,6.526,-23.9369 +fast,6.576,-4.383 +fast,6.626,-13.2366 +fast,6.676,-8.8431 +fast,6.727,-8.8552 +fast,6.777,-0.0 +fast,6.827,-0.0 +fast,6.877,-0.0 +fast,6.93,-22.0832 +fast,6.98,-8.8599 +fast,7.03,-19.929 +fast,7.08,-4.4214 +fast,7.132,-8.8553 +fast,7.182,-0.0 +fast,7.232,-0.0 +fast,7.285,-19.8506 +fast,7.336,-8.8927 +fast,7.386,-4.424 +fast,7.436,-17.687 +fast,7.486,-8.7844 +fast,7.537,-0.0 +fast,7.589,-0.0 +fast,7.639,-15.4299 +fast,7.689,-0.0 +fast,7.739,-13.3118 +fast,7.79,-8.8378 +fast,7.84,-15.4965 +fast,7.89,0.0 +fast,7.969,0.0 +fast,8.019,0.0 diff --git a/docs/re/flight-speed-law.md b/docs/re/flight-speed-law.md index 7a02d35..ee90d1d 100644 --- a/docs/re/flight-speed-law.md +++ b/docs/re/flight-speed-law.md @@ -420,3 +420,41 @@ measurement specified above. **The clock ratio has now been measured three times in three flights: 1.260, 1.311, 1.383.** It is not a property of the machine but of the moment, so any rate probe must bracket its own phases. + + +## Roll, re-measured about the forward axis — the withdrawal is reversed ✅ + +The earlier roll result was withdrawn because the *measurement* was wrong, not the +input: watching a non-forward row of the rotation matrix sees **any** rotation that +moves that row, and pitch moves it as much as roll, which is why two different stick +axes produced the same rates. `tools/re-capture/roll_axis.py` measures rotation +**about** the forward axis instead — express the new up-vector in the old +`(up, right)` basis and take `atan2(u_new·w_old, u_new·u_old)`, so any component +along forward (what pitch produces) is dropped by construction. + +Run on stage 02 with the container-safe file pad, which matters here: the pad state +is written whole, so the stick is deflected on **exactly one axis** (`lx=32767`, +every other channel exactly 0) while the throttle trigger is held in the same write. +5-second settles, 8-second dwells, and each phase bracketed by HUD-clock screenshots +because the clock ratio is a property of the moment (1.260/1.311/1.383 previously). + +| phase | swept | wall | HUD clock | per **game** second | definition | +|---|---|---|---|---|---| +| min speed (`LT`) | 1 856.9° | 8.01 s | 01:20.64 → 01:30.63 (×1.247) | **185.9 °/s** | `AV_Roll_Min` **200** | +| max speed (`RT`) | 1 181.2° | 8.02 s | 01:37.11 → 01:46.88 (×1.218) | **120.9 °/s** | `AV_Roll_Max` **125** | + +**Roll DOES depend on speed**, and the withdrawn claim ("roll shows no speed +dependence, unlike pitch") is **reversed**. Roll behaves exactly like pitch: the rate +cap falls as speed rises, and `_Min`/`_Max` mean *at minimum / at maximum speed* — +the same rule the pitch work established, now confirmed on a second axis rather than +contradicted by it. + +Both measurements land **just under** their caps (93 % and 97 %), which is the right +side for a rate limit. 🟡 The shortfall is not explained: candidates are the craft not +being exactly at min/max speed after 5 s, and the swept-angle sum slightly +undercounting at 20 Hz. Neither is worth a claim without measuring it. + +Method note: the tell that the *old* result was broken was two conditions agreeing +too well (pitch ≈ roll). The tell that this one is sound is that they now **disagree +in the direction the definitions predict**, on two independently-bracketed phases. +Data: [`captures/roll-about-forward-axis.csv`](captures/roll-about-forward-axis.csv).