re(flight): settled turn rates match the definition exactly — withdraw the time-base claim
Re-measured with 5 s of settle per phase and the speed recorded at the moment the turn starts (flight_law3.py): pitch @ 130/s 74.9 deg/s vs AV_PitchMinus_Min 75 pitch @ 1821/s 41.1 vs AV_PitchMinus_Max 40 roll @ 110/s 129.5 vs AV_Roll_Min 200 roll @ 1722/s 149.3 vs AV_Roll_Max 125 Pitch lands on the definition's own numbers with NO scale factor, so the ~1.2x I attributed to the emulated time base two iterations ago was an artefact of differentiating during the AA_* acceleration ramp with too little settle. That explanation is withdrawn: AV_* can be used verbatim. What remains is only on the linear side — settled speeds still read high and vary between runs (RT full: 1342 in one flight, 1821 in another, vs MaximumVelocity 1200), consistent with a craft being shoved around in a firefight. The HUD reads exactly CruisingVelocity at neutral. A clean linear measurement needs a quiet map; no cause is claimed until then. Roll re-measured with proper settles confirms the axis difference: no speed dependence, both regimes near AV_Roll_Max, where pitch moved 75 -> 40. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NptfmpjdpNCKEez6d2xvA9
This commit is contained in:
397
docs/re/captures/turn-law-settled.csv
Normal file
397
docs/re/captures/turn-law-settled.csv
Normal file
@@ -0,0 +1,397 @@
|
||||
phase,t,ax,ay,az
|
||||
pitch_slow,0.0,-0.9999999999979217,-5.364418989006872e-07,-1.9669536293025197e-06
|
||||
pitch_slow,0.05,-0.9999999999976801,-5.364418029772711e-07,-2.0861625671338324e-06
|
||||
pitch_slow,0.101,-0.9999946097522772,-0.002899959954216824,0.0015397073276159146
|
||||
pitch_slow,0.151,-0.9996914710730174,-0.02193220056967232,0.011659384290695667
|
||||
pitch_slow,0.201,-0.9990433177471238,-0.03861357394968149,0.02052903240905178
|
||||
pitch_slow,0.251,-0.9955393575780669,-0.08330440446892036,0.04429180182752193
|
||||
pitch_slow,0.301,-0.9945412469804451,-0.09213126987556873,0.048985070845069034
|
||||
pitch_slow,0.352,-0.9945412469804451,-0.09213126987556873,0.048985070845069034
|
||||
pitch_slow,0.402,-0.9945412469804451,-0.09213126987556873,0.048985070845069034
|
||||
pitch_slow,0.452,-0.9665289434485363,-0.2265277037558541,0.120445011965445
|
||||
pitch_slow,0.503,-0.9524349663446977,-0.2690718666714829,0.14306629739354546
|
||||
pitch_slow,0.553,-0.9108739498774162,-0.3643795134075017,0.19374265829606738
|
||||
pitch_slow,0.604,-0.8927282973927168,-0.39785273467789245,0.21154051277148683
|
||||
pitch_slow,0.654,-0.8045973153675007,-0.5243130904039117,0.27878117464152785
|
||||
pitch_slow,0.707,-0.7919632518359564,-0.539100668887106,0.2866438147717345
|
||||
pitch_slow,0.757,-0.7919632518359564,-0.539100668887106,0.2866438147717345
|
||||
pitch_slow,0.807,-0.7919632518359564,-0.539100668887106,0.2866438147717345
|
||||
pitch_slow,0.858,-0.6306143663605143,-0.6852525159721327,0.36435492352044474
|
||||
pitch_slow,0.909,-0.5969978086641158,-0.7083385123283029,0.3766300152706506
|
||||
pitch_slow,0.989,-0.4901269140966694,-0.7696220973259926,0.40921563433673497
|
||||
pitch_slow,1.039,-0.2959745212014831,-0.8433875991219522,0.4484377776758578
|
||||
pitch_slow,1.089,-0.27580244899421963,-0.8487015247581735,0.45126348290321716
|
||||
pitch_slow,1.139,-0.27580244899421963,-0.8487015247581735,0.45126348290321716
|
||||
pitch_slow,1.189,-0.27580244899421963,-0.8487015247581735,0.45126348290321716
|
||||
pitch_slow,1.24,-0.06819632577165725,-0.8808914329655914,0.4683797011817154
|
||||
pitch_slow,1.291,-0.04700410626905134,-0.8819710505695748,0.46895381430482924
|
||||
pitch_slow,1.341,0.0804919641427089,-0.8800818771721879,0.46794971223575604
|
||||
pitch_slow,1.392,0.12273622707003892,-0.8762710913963212,0.465923591319126
|
||||
pitch_slow,1.443,0.24764949379728085,-0.8554426534039724,0.454848980387031
|
||||
pitch_slow,1.493,0.2680409389698348,-0.850637454777343,0.45229412506254507
|
||||
pitch_slow,1.543,0.2680409389698348,-0.850637454777343,0.45229412506254507
|
||||
pitch_slow,1.593,0.2680409389698348,-0.850637454777343,0.45229412506254507
|
||||
pitch_slow,1.646,0.44568378731971126,-0.790405284398606,0.42026830491379813
|
||||
pitch_slow,1.696,0.5199457201418952,-0.7542121380720035,0.40102431209464473
|
||||
pitch_slow,1.746,0.6404468011624063,-0.6781048415424452,0.36055751102637784
|
||||
pitch_slow,1.796,0.7030142148952,-0.6279298245105502,0.33387894384856803
|
||||
pitch_slow,1.848,0.7323232029501937,-0.6012483512095225,0.3196922685780814
|
||||
pitch_slow,1.898,0.7323232029501937,-0.6012483512095225,0.3196922685780814
|
||||
pitch_slow,1.948,0.7323232029501937,-0.6012483512095225,0.3196922685780814
|
||||
pitch_slow,1.998,0.7323232029501937,-0.6012483512095225,0.3196922685780814
|
||||
pitch_slow,2.048,0.8897380340111771,-0.4030392516581421,0.21430257221221208
|
||||
pitch_slow,2.099,0.933233802564986,-0.31721510699436495,0.1686690417493688
|
||||
pitch_slow,2.149,0.9603861359896795,-0.24605226051444695,0.1308310165616077
|
||||
pitch_slow,2.199,0.980573947813806,-0.17318882586052553,0.09208888893835017
|
||||
pitch_slow,2.249,0.9958260680318584,-0.08058666195316148,0.042851279367782436
|
||||
pitch_slow,2.299,0.9958260680318584,-0.08058666195316148,0.042851279367782436
|
||||
pitch_slow,2.349,0.9958260680318584,-0.08058666195316148,0.042851279367782436
|
||||
pitch_slow,2.399,0.9958260680318584,-0.08058666195316148,0.042851279367782436
|
||||
pitch_slow,2.449,0.9867075939747381,0.14348496871944313,-0.07629015496224935
|
||||
pitch_slow,2.502,0.9788907200689967,0.18046150766335733,-0.09595104175916487
|
||||
pitch_slow,2.552,0.9376915842954128,0.30679733050810604,-0.16312538347743036
|
||||
pitch_slow,2.602,0.8955218717201378,0.3929277552667634,-0.208921890695742
|
||||
pitch_slow,2.652,0.8074786582920991,0.5208483459556673,-0.2769390129939024
|
||||
pitch_slow,2.705,0.7948361291190185,0.5357942751067662,-0.2848859817714975
|
||||
pitch_slow,2.755,0.7948361291190185,0.5357942751067662,-0.2848859817714975
|
||||
pitch_slow,2.805,0.7948361291190185,0.5357942751067662,-0.2848859817714975
|
||||
pitch_slow,2.855,0.7948361291190185,0.5357942751067662,-0.2848859817714975
|
||||
pitch_slow,2.907,0.5994415250023212,0.706727700968031,-0.3757736217290043
|
||||
pitch_slow,2.957,0.49283526451379894,0.7682725100239381,-0.408498166939745
|
||||
pitch_slow,3.007,0.39786304462993477,0.810055404003031,-0.430714801421178
|
||||
pitch_slow,3.089,0.318739170854854,0.8368948941205249,-0.4449857044420142
|
||||
pitch_slow,3.139,0.17535239247571457,0.8692665281025396,-0.46219827084661375
|
||||
pitch_slow,3.189,0.17535239247571457,0.8692665281025396,-0.46219827084661375
|
||||
pitch_slow,3.24,0.17535239247571457,0.8692665281025396,-0.46219827084661375
|
||||
pitch_slow,3.29,0.17535239247571457,0.8692665281025396,-0.46219827084661375
|
||||
pitch_slow,3.341,-0.09908743529417109,0.8786016525498629,-0.4671625159443696
|
||||
pitch_slow,3.391,-0.14138414029685945,0.8740774161778089,-0.464757135932783
|
||||
pitch_slow,3.441,-0.26633940859742644,0.8510540435243772,-0.45251556263711057
|
||||
pitch_slow,3.491,-0.30709438990594357,0.8402818955853142,-0.44678783739023986
|
||||
pitch_slow,3.541,-0.46368621578966956,0.7822901813508235,-0.41595332123779405
|
||||
pitch_slow,3.591,-0.46368621578966956,0.7822901813508235,-0.41595332123779405
|
||||
pitch_slow,3.642,-0.46368621578966956,0.7822901813508235,-0.41595332123779405
|
||||
pitch_slow,3.695,-0.46368621578966956,0.7822901813508235,-0.41595332123779405
|
||||
pitch_slow,3.745,-0.6562113189584854,0.6662510666680376,-0.3542544580304771
|
||||
pitch_slow,3.796,-0.7469125955220236,0.5870904643133257,-0.31216399754442814
|
||||
pitch_slow,3.846,-0.8253836786665388,0.49848665361931915,-0.2650525215015027
|
||||
pitch_slow,3.899,-0.8702852029309188,0.43489315599579026,-0.23123928824382511
|
||||
pitch_slow,3.949,-0.9257474045462728,0.3338789511759494,-0.17752912137868407
|
||||
pitch_slow,3.999,-0.9257474045462728,0.3338789511759494,-0.17752912137868407
|
||||
pitch_mid,0.0,-0.9816648888232054,-0.16830355359423707,0.08948720522664506
|
||||
pitch_mid,0.05,-0.9810975290596479,-0.17086321869736415,0.09084821940704273
|
||||
pitch_mid,0.1,-0.9789055744250569,-0.18039841850141844,0.09591812634604903
|
||||
pitch_mid,0.151,-0.9720546521805088,-0.2072765936920349,0.11020964967577598
|
||||
pitch_mid,0.201,-0.9685934206365122,-0.21954537835213525,0.11673308161733022
|
||||
pitch_mid,0.251,-0.9621063375474502,-0.24075780571714026,0.12801200817618447
|
||||
pitch_mid,0.301,-0.9621063375474502,-0.24075780571714026,0.12801200817618447
|
||||
pitch_mid,0.352,-0.9621063375474502,-0.24075780571714026,0.12801200817618447
|
||||
pitch_mid,0.403,-0.9299022445524333,-0.3247544249367914,0.17267419917382107
|
||||
pitch_mid,0.453,-0.8941007235504668,-0.39544242183534284,0.21025980871181893
|
||||
pitch_mid,0.503,-0.878818394880348,-0.42130434615048,0.22401088530391827
|
||||
pitch_mid,0.553,-0.8210382535878776,-0.5040511900472064,0.26800855202280954
|
||||
pitch_mid,0.603,-0.7987442841989482,-0.531243736804092,0.2824670964306011
|
||||
pitch_mid,0.653,-0.7987442841989482,-0.531243736804092,0.2824670964306011
|
||||
pitch_mid,0.704,-0.7987442841989482,-0.531243736804092,0.2824670964306011
|
||||
pitch_mid,0.754,-0.7987442841989482,-0.531243736804092,0.2824670964306011
|
||||
pitch_mid,0.804,-0.6703148659769064,-0.6552147427406548,0.3483843012330774
|
||||
pitch_mid,0.855,-0.5483367797483034,-0.7383712411310113,0.3925999060696661
|
||||
pitch_mid,0.905,-0.5483367797483034,-0.7383712411310113,0.3925999060696661
|
||||
pitch_mid,0.955,-0.4487495579282873,-0.7890522755928274,0.4195477811178932
|
||||
pitch_mid,1.007,-0.3966576493503013,-0.8105158880387838,0.43096021214097596
|
||||
pitch_mid,1.058,-0.3966576493503013,-0.8105158880387838,0.43096021214097596
|
||||
pitch_mid,1.108,-0.3966576493503013,-0.8105158880387838,0.43096021214097596
|
||||
pitch_mid,1.158,-0.2145711905918272,-0.8623815090531974,0.45853826122924113
|
||||
pitch_mid,1.208,-0.19538810247600916,-0.8659288745293109,0.46042444946725575
|
||||
pitch_mid,1.258,-0.020561785443441487,-0.8827600285609496,0.46937399262682766
|
||||
pitch_mid,1.309,-0.020561785443441487,-0.8827600285609496,0.46937399262682766
|
||||
pitch_mid,1.359,0.15293449802923037,-0.8725598819330923,0.4639507428094662
|
||||
pitch_mid,1.409,0.17190451458064285,-0.869802646207114,0.4624848046345908
|
||||
pitch_mid,1.459,0.17190451458064285,-0.869802646207114,0.4624848046345908
|
||||
pitch_mid,1.509,0.17190451458064285,-0.869802646207114,0.4624848046345908
|
||||
pitch_mid,1.559,0.32147374512483523,-0.8360783992242294,0.4445531931569748
|
||||
pitch_mid,1.61,0.39499557938420454,-0.8111479471335701,0.43129746130476065
|
||||
pitch_mid,1.66,0.5495718115709906,-0.7376542883593693,0.3922205690572743
|
||||
pitch_mid,1.711,0.5815293845209076,-0.7182991118346882,0.38192926161297525
|
||||
pitch_mid,1.761,0.6124392459964019,-0.6979845517377493,0.37112765391279023
|
||||
pitch_mid,1.811,0.6124392459964019,-0.6979845517377493,0.37112765391279023
|
||||
pitch_mid,1.861,0.6124392459964019,-0.6979845517377493,0.37112765391279023
|
||||
pitch_mid,1.911,0.6124392459964019,-0.6979845517377493,0.37112765391279023
|
||||
pitch_mid,1.961,0.7785765031694168,-0.5540923970909359,0.294618811684698
|
||||
pitch_mid,2.013,0.8368345419742745,-0.4833737565967571,0.257017043777733
|
||||
pitch_mid,2.063,0.8954853668773045,-0.3929909578852798,0.20895948106996629
|
||||
pitch_mid,2.113,0.9122278787664543,-0.3617276762612271,0.19233664608677187
|
||||
pitch_mid,2.165,0.9346839297400513,-0.3138690827235641,0.1668896353760875
|
||||
pitch_mid,2.216,0.9346839297400513,-0.3138690827235641,0.1668896353760875
|
||||
pitch_mid,2.266,0.9346839297400513,-0.3138690827235641,0.1668896353760875
|
||||
pitch_mid,2.316,0.9858281374907293,-0.1481209242722237,0.078759603378267
|
||||
pitch_mid,2.366,0.9941186237329943,-0.09561938551914852,0.050843830109049304
|
||||
pitch_mid,2.416,0.9995934657948521,-0.025173307197407468,0.01338684970338031
|
||||
pitch_mid,2.466,0.9887113359982596,0.13229521133882916,-0.07034110551698297
|
||||
pitch_mid,2.516,0.9780864001457492,0.18382969276719566,-0.09774271280790084
|
||||
pitch_mid,2.566,0.958687336730862,0.25116550323250036,-0.133545798802701
|
||||
pitch_mid,2.618,0.958687336730862,0.25116550323250036,-0.133545798802701
|
||||
pitch_mid,2.7,0.958687336730862,0.25116550323250036,-0.133545798802701
|
||||
pitch_mid,2.75,0.958687336730862,0.25116550323250036,-0.133545798802701
|
||||
pitch_mid,2.8,0.8655891820395757,0.44214057059579587,-0.23508952288284238
|
||||
pitch_mid,2.85,0.774505313261317,0.5585239764741124,-0.29697219976545675
|
||||
pitch_mid,2.901,0.7486457582891431,0.5853679923169459,-0.3112456299556701
|
||||
pitch_mid,2.951,0.649419187957182,0.6714202776236611,-0.35700074104797064
|
||||
pitch_mid,3.001,0.5873275292440099,0.71461285445045,-0.3799668954610477
|
||||
pitch_mid,3.051,0.4708037762291508,0.7789694709287421,-0.4141863924000489
|
||||
pitch_mid,3.101,0.4708037762291508,0.7789694709287421,-0.4141863924000489
|
||||
pitch_mid,3.151,0.4708037762291508,0.7789694709287421,-0.4141863924000489
|
||||
pitch_mid,3.201,0.4708037762291508,0.7789694709287421,-0.4141863924000489
|
||||
pitch_mid,3.251,0.2519525835347419,0.8544627076303289,-0.4543273895763011
|
||||
pitch_mid,3.302,0.2128006333502304,0.8627235754094408,-0.4587198740827476
|
||||
pitch_mid,3.352,0.05407075118963116,0.8816552045589018,-0.468786149688736
|
||||
pitch_mid,3.402,0.01418978409318777,0.8828579500186226,-0.46942570244534326
|
||||
pitch_mid,3.453,-0.14418506374713955,0.8737205730756915,-0.46456757051748526
|
||||
pitch_mid,3.503,-0.16365548928393295,0.8710424080824322,-0.4631436107183107
|
||||
pitch_mid,3.553,-0.16365548928393295,0.8710424080824322,-0.4631436107183107
|
||||
pitch_mid,3.604,-0.16365548928393295,0.8710424080824322,-0.4631436107183107
|
||||
pitch_mid,3.654,-0.35427595284385854,0.8256794667561332,-0.4390238802319113
|
||||
pitch_mid,3.704,-0.3912019273537199,0.8125800850081012,-0.43205862736781675
|
||||
pitch_mid,3.754,-0.5482164422060858,0.7384403493165538,-0.3926379795640603
|
||||
pitch_mid,3.804,-0.5807364030212269,0.7187993267341519,-0.38219465994764656
|
||||
pitch_mid,3.856,-0.6427510623155457,0.6764032530991501,-0.35965220851417645
|
||||
pitch_mid,3.907,-0.6427510623155457,0.6764032530991501,-0.35965220851417645
|
||||
pitch_mid,3.957,-0.6427510623155457,0.6764032530991501,-0.35965220851417645
|
||||
pitch_fast,0.0,-0.9658675830256226,0.2287146756684362,-0.1216117148720633
|
||||
pitch_fast,0.052,-0.9658676051980126,0.2287146636567734,-0.12161156136414396
|
||||
pitch_fast,0.102,-0.9658676051980126,0.2287146636567734,-0.12161156136414396
|
||||
pitch_fast,0.152,-0.9658676051980126,0.2287146636567734,-0.12161156136414396
|
||||
pitch_fast,0.202,-0.9664701307517564,0.22672168832295678,-0.1205519075281309
|
||||
pitch_fast,0.252,-0.9672076235909816,0.22425644292630353,-0.11924118698473131
|
||||
pitch_fast,0.302,-0.9708059463052539,0.21178855073766029,-0.11261183061651185
|
||||
pitch_fast,0.352,-0.9767019499389217,0.18948015575759153,-0.10075004496071996
|
||||
pitch_fast,0.402,-0.9828596538946014,0.16277540934979576,-0.0865509494875172
|
||||
pitch_fast,0.453,-0.9840999852715604,0.15682439933205652,-0.08338661021203694
|
||||
pitch_fast,0.503,-0.9840999852715604,0.15682439933205652,-0.08338661021203694
|
||||
pitch_fast,0.553,-0.9840999852715604,0.15682439933205652,-0.08338661021203694
|
||||
pitch_fast,0.604,-0.9969658526909927,0.06872814001554328,-0.03654492219345491
|
||||
pitch_fast,0.654,-0.9997555993589555,0.01951919570264511,-0.010379910863662752
|
||||
pitch_fast,0.704,-0.999639503820263,-0.023706604137760323,0.01260394074223997
|
||||
pitch_fast,0.754,-0.9949411990718958,-0.08870043606639172,0.047161881122471744
|
||||
pitch_fast,0.804,-0.9868629348189862,-0.14264913437357063,0.07584703252552663
|
||||
pitch_fast,0.855,-0.9847624772088613,-0.15354912716138713,0.08164269121876744
|
||||
pitch_fast,0.905,-0.9847624772088613,-0.15354912716138713,0.08164269121876744
|
||||
pitch_fast,0.955,-0.9847624772088613,-0.15354912716138713,0.08164269121876744
|
||||
pitch_fast,1.005,-0.9556544968116132,-0.2600196152203893,0.13825441195268626
|
||||
pitch_fast,1.055,-0.9350970976005369,-0.3129094240539954,0.16637641178138443
|
||||
pitch_fast,1.106,-0.9163015999238947,-0.35361089987496885,0.18801784347908457
|
||||
pitch_fast,1.186,-0.8838134201281153,-0.41307791101375835,0.21963715039572226
|
||||
pitch_fast,1.236,-0.8324192085803622,-0.4892822509035454,0.26015599193023287
|
||||
pitch_fast,1.287,-0.8324192085803622,-0.4892822509035454,0.26015599193023287
|
||||
pitch_fast,1.338,-0.8324192085803622,-0.4892822509035454,0.26015599193023287
|
||||
pitch_fast,1.388,-0.8324192085803622,-0.4892822509035454,0.26015599193023287
|
||||
pitch_fast,1.438,-0.7493450951253482,-0.5846697798695479,0.3108748573282781
|
||||
pitch_fast,1.488,-0.7319942059929913,-0.6015615906409889,0.31985642882107823
|
||||
pitch_fast,1.54,-0.6685767864516847,-0.6565976821256674,0.34911969930833103
|
||||
pitch_fast,1.59,-0.6495652494628392,-0.6713099785415564,0.35694243149395194
|
||||
pitch_fast,1.64,-0.600269177220929,-0.7061793659967437,0.3754831792756447
|
||||
pitch_fast,1.692,-0.5902399761670327,-0.7127394615556399,0.378971279222736
|
||||
pitch_fast,1.742,-0.5902399761670327,-0.7127394615556399,0.378971279222736
|
||||
pitch_fast,1.792,-0.5902399761670327,-0.7127394615556399,0.378971279222736
|
||||
pitch_fast,1.842,-0.4744737419514673,-0.7772313800698689,0.413262688895646
|
||||
pitch_fast,1.894,-0.41659370360552633,-0.8026806747323841,0.426794353907588
|
||||
pitch_fast,1.944,-0.36930494798762,-0.8205298691575033,0.43628498623288875
|
||||
pitch_fast,1.994,-0.3214551905466611,-0.8360842723890491,0.4445555645071649
|
||||
pitch_fast,2.044,-0.2729415791863457,-0.8494219198880473,0.45164731413456627
|
||||
pitch_fast,2.094,-0.2729415791863457,-0.8494219198880473,0.45164731413456627
|
||||
pitch_fast,2.145,-0.2729415791863457,-0.8494219198880473,0.45164731413456627
|
||||
pitch_fast,2.195,-0.2729415791863457,-0.8494219198880473,0.45164731413456627
|
||||
pitch_fast,2.246,-0.15018401469533893,-0.8729324279310241,0.4641484008336534
|
||||
pitch_fast,2.296,-0.085167143910571,-0.8797387312536471,0.46776738057536615
|
||||
pitch_fast,2.347,-0.00785863441309952,-0.8829194777000005,0.46945866459478597
|
||||
pitch_fast,2.397,0.017787069774809663,-0.882807050745268,0.4693989042416567
|
||||
pitch_fast,2.447,0.06928193596374152,-0.880825046181548,0.46834522669542594
|
||||
pitch_fast,2.497,0.06928193596374152,-0.880825046181548,0.46834522669542594
|
||||
pitch_fast,2.55,0.06928193596374152,-0.880825046181548,0.46834522669542594
|
||||
pitch_fast,2.6,0.06928193596374152,-0.880825046181548,0.46834522669542594
|
||||
pitch_fast,2.651,0.21198297365514238,-0.8628802036656676,0.4588038502478148
|
||||
pitch_fast,2.702,0.2764694675691825,-0.8485316906739566,0.4511746928009255
|
||||
pitch_fast,2.786,0.37429753186942033,-0.8187640417930946,0.4353467600695977
|
||||
pitch_fast,2.836,0.40981689666516385,-0.8053954345525633,0.4282386077989958
|
||||
pitch_fast,2.886,0.40981689666516385,-0.8053954345525633,0.4282386077989958
|
||||
pitch_fast,2.936,0.40981689666516385,-0.8053954345525633,0.4282386077989958
|
||||
pitch_fast,2.986,0.40981689666516385,-0.8053954345525633,0.4282386077989958
|
||||
pitch_fast,3.036,0.5566205022404467,-0.733522684693819,0.39002318844546285
|
||||
pitch_fast,3.087,0.5998982910452404,-0.7064244402176132,0.37561489675495024
|
||||
pitch_fast,3.137,0.6701810944739728,-0.6553205823511672,0.34844258487819035
|
||||
pitch_fast,3.187,0.6891597392050487,-0.639791239336044,0.34018527882270017
|
||||
pitch_fast,3.243,0.725701824041233,-0.6074752934115958,0.3230025239494625
|
||||
pitch_fast,3.293,0.725701824041233,-0.6074752934115958,0.3230025239494625
|
||||
pitch_fast,3.343,0.725701824041233,-0.6074752934115958,0.3230025239494625
|
||||
pitch_fast,3.393,0.725701824041233,-0.6074752934115958,0.3230025239494625
|
||||
pitch_fast,3.445,0.8389337242743994,-0.4805288759274782,0.25550382712390113
|
||||
pitch_fast,3.495,0.8799044064239339,-0.4195323653889136,0.22307135617763135
|
||||
pitch_fast,3.545,0.9141904204223267,-0.35784452205993644,0.19027131481057563
|
||||
pitch_fast,3.596,0.9243948817285977,-0.33678800362072325,0.17907524466307298
|
||||
pitch_fast,3.646,0.9473286584095463,-0.2827747557609607,0.1503557463494435
|
||||
pitch_fast,3.696,0.9473286584095463,-0.2827747557609607,0.1503557463494435
|
||||
pitch_fast,3.746,0.9473286584095463,-0.2827747557609607,0.1503557463494435
|
||||
pitch_fast,3.796,0.9473286584095463,-0.2827747557609607,0.1503557463494435
|
||||
pitch_fast,3.846,0.9877392592272928,-0.13783858151526024,0.07329175415406497
|
||||
pitch_fast,3.899,0.9948580115516917,-0.08942388935224614,0.04754897332783676
|
||||
pitch_fast,3.949,0.999765524196005,-0.019118849051913748,0.010166918904840748
|
||||
pitch_fast,3.999,0.9990569989225466,0.03833614305138446,-0.020382665179474877
|
||||
roll_slow,0.0,0.49464193227975,-0.7673659362109184,0.4080182333838721
|
||||
roll_slow,0.051,0.4945496776180339,-0.7598559960158229,0.4219472498864052
|
||||
roll_slow,0.101,0.490520535370487,-0.7112149514342452,0.5035502926582757
|
||||
roll_slow,0.151,0.47881435208968187,-0.6485736215805378,0.5916832544722247
|
||||
roll_slow,0.201,0.45245216893643586,-0.5542244875816128,0.6986574641336151
|
||||
roll_slow,0.252,0.4323161301272065,-0.4947074292801451,0.7539014014092735
|
||||
roll_slow,0.302,0.4323161301272065,-0.4947074292801451,0.7539014014092735
|
||||
roll_slow,0.352,0.4323161301272065,-0.4947074292801451,0.7539014014092735
|
||||
roll_slow,0.402,0.24096377557112272,-0.08105081943187036,0.967143848417562
|
||||
roll_slow,0.452,0.10030562620891256,0.16679538851627507,0.9808761796070606
|
||||
roll_slow,0.502,-0.08212564081597067,0.4415128599898792,0.8934885413837849
|
||||
roll_slow,0.552,-0.20200007527010713,0.595981384950017,0.7771757577176032
|
||||
roll_slow,0.602,-0.38780473662709397,0.7847876353439257,0.4834416755523667
|
||||
roll_slow,0.652,-0.4102647584203325,0.8018482887633847,0.4344216267700514
|
||||
roll_slow,0.703,-0.4102647584203325,0.8018482887633847,0.4344216267700514
|
||||
roll_slow,0.77,-0.4102647584203325,0.8018482887633847,0.4344216267700514
|
||||
roll_slow,0.82,-0.5758197542243373,0.789110513896689,-0.21386025227406602
|
||||
roll_slow,0.87,-0.5718945362478904,0.6698446984239761,-0.4735448441310526
|
||||
roll_slow,0.921,-0.5101713830730059,0.453525450011233,-0.7307802857805381
|
||||
roll_slow,0.971,-0.476863939310634,0.36772720461622704,-0.7983592464362641
|
||||
roll_slow,1.021,-0.2648817218028197,-0.0631100664684199,-0.9622134861688052
|
||||
roll_slow,1.071,-0.2077269214538732,-0.16080378491037264,-0.9648790954631544
|
||||
roll_slow,1.121,-0.2077269214538732,-0.16080378491037264,-0.9648790954631544
|
||||
roll_slow,1.171,-0.2077269214538732,-0.16080378491037264,-0.9648790954631544
|
||||
roll_slow,1.222,-0.2077269214538732,-0.16080378491037264,-0.9648790954631544
|
||||
roll_slow,1.272,0.17893611908814816,-0.7049346351677062,-0.6863301140316116
|
||||
roll_slow,1.322,0.3333006981050639,-0.8462206472685584,-0.4157177657727163
|
||||
roll_slow,1.372,0.41270347148109937,-0.8873011969134804,-0.20584564747245515
|
||||
roll_slow,1.422,0.4865576824524262,-0.8645598977193693,0.12568931896544588
|
||||
roll_slow,1.472,0.4978190954600369,-0.8348605144988362,0.23491289774316146
|
||||
roll_slow,1.522,0.5014421756195666,-0.7708306670667784,0.3929068938302064
|
||||
roll_slow,1.573,0.5014421756195666,-0.7708306670667784,0.3929068938302064
|
||||
roll_slow,1.623,0.5014421756195666,-0.7708306670667784,0.3929068938302064
|
||||
roll_slow,1.673,0.4166169613758028,-0.46082806205764126,0.7836247856686206
|
||||
roll_slow,1.724,0.3173553910906107,-0.2302952385040919,0.9199182892344672
|
||||
roll_slow,1.774,0.16147651620343692,0.06606448650839164,0.9846627942281478
|
||||
roll_slow,1.825,-0.0783437241000817,0.4380676421854982,0.8955216366811963
|
||||
roll_slow,1.875,-0.13886219900504984,0.5188239454963641,0.8435277133959901
|
||||
roll_slow,1.926,-0.19803797831806363,0.5925181248079477,0.7808349575408157
|
||||
roll_slow,1.976,-0.19803797831806363,0.5925181248079477,0.7808349575408157
|
||||
roll_slow,2.026,-0.19803797831806363,0.5925181248079477,0.7808349575408157
|
||||
roll_slow,2.076,-0.19803797831806363,0.5925181248079477,0.7808349575408157
|
||||
roll_slow,2.126,-0.5222051882739432,0.8439920179771123,0.12238960303349734
|
||||
roll_slow,2.176,-0.5753348981855904,0.7898716215308815,-0.21235012698360206
|
||||
roll_slow,2.226,-0.5652936143706975,0.6403510022902671,-0.5199939647895575
|
||||
roll_slow,2.277,-0.5240535417867741,0.49631946930012355,-0.6921234497792873
|
||||
roll_slow,2.327,-0.4937895498524031,0.41409211552018416,-0.7646565244085605
|
||||
roll_slow,2.377,-0.4937895498524031,0.41409211552018416,-0.7646565244085605
|
||||
roll_slow,2.428,-0.4937895498524031,0.41409211552018416,-0.7646565244085605
|
||||
roll_slow,2.479,-0.3215006227186099,0.03693793982139597,-0.9461886377426528
|
||||
roll_slow,2.529,-0.08885249584475184,-0.3498540853722495,-0.9325810168186488
|
||||
roll_slow,2.579,-0.027265554342407936,-0.4388170553388613,-0.8981626698377816
|
||||
roll_slow,2.629,0.2091778463424695,-0.7300533910213715,-0.6505894825907677
|
||||
roll_slow,2.679,0.2360296376178349,-0.7571521572053442,-0.6091064118898168
|
||||
roll_slow,2.729,0.2360296376178349,-0.7571521572053442,-0.6091064118898168
|
||||
roll_slow,2.78,0.2360296376178349,-0.7571521572053442,-0.6091064118898168
|
||||
roll_slow,2.83,0.2360296376178349,-0.7571521572053442,-0.6091064118898168
|
||||
roll_slow,2.88,0.4820781498777898,-0.8684021265489136,0.1160965288702979
|
||||
roll_slow,2.93,0.49670236634390524,-0.7496290263282555,0.4374278022194253
|
||||
roll_slow,2.98,0.47126382569148145,-0.6219313535323155,0.6253893172161569
|
||||
roll_slow,3.03,0.3840408409877701,-0.3747603670690986,0.8438408023600428
|
||||
roll_slow,3.08,0.34339375730743976,-0.28183413723003453,0.8959074988714412
|
||||
roll_slow,3.131,0.29780950842709214,-0.1856293249325127,0.9364033588232761
|
||||
roll_slow,3.181,0.29780950842709214,-0.1856293249325127,0.9364033588232761
|
||||
roll_slow,3.231,0.29780950842709214,-0.1856293249325127,0.9364033588232761
|
||||
roll_slow,3.283,0.014967353835082657,0.29998979365854544,0.9538249850050473
|
||||
roll_slow,3.333,-0.16737993925757846,0.5523554967923565,0.8166317169308319
|
||||
roll_slow,3.383,-0.22576571916360996,0.6227711415790569,0.7491234512861391
|
||||
roll_slow,3.433,-0.44830963594391343,0.8253296124209226,0.3432921513535746
|
||||
roll_slow,3.483,-0.4849676037351503,0.8416531335127756,0.2375424723612857
|
||||
roll_slow,3.534,-0.4849676037351503,0.8416531335127756,0.2375424723612857
|
||||
roll_slow,3.584,-0.4849676037351503,0.8416531335127756,0.2375424723612857
|
||||
roll_slow,3.634,-0.4849676037351503,0.8416531335127756,0.2375424723612857
|
||||
roll_slow,3.684,-0.5802453680987208,0.7549564144331459,-0.305542345847884
|
||||
roll_slow,3.734,-0.5611914651497782,0.6147249024521652,-0.5542359008113974
|
||||
roll_slow,3.784,-0.482471837248575,0.3791959988327134,-0.7895766718509644
|
||||
roll_slow,3.834,-0.35219315832064674,0.09734608547423916,-0.9308510723391632
|
||||
roll_slow,3.884,-0.24419845097576873,-0.10001761109088095,-0.9645535723912427
|
||||
roll_slow,3.935,-0.15607902585337452,-0.24554580947801147,-0.9567374734672253
|
||||
roll_slow,3.985,-0.15607902585337452,-0.24554580947801147,-0.9567374734672253
|
||||
roll_fast,0.0,0.4274921031039902,-0.892995645067824,-0.14074544281655502
|
||||
roll_fast,0.055,0.4274921031039902,-0.892995645067824,-0.14074544281655502
|
||||
roll_fast,0.106,0.4274921031039902,-0.892995645067824,-0.14074544281655502
|
||||
roll_fast,0.156,0.4274921031039902,-0.892995645067824,-0.14074544281655502
|
||||
roll_fast,0.206,0.4290243150695981,-0.8931294880771208,-0.13512162893542323
|
||||
roll_fast,0.256,0.4364763111133057,-0.8933822372001555,-0.10656738756376555
|
||||
roll_fast,0.309,0.45598085615143524,-0.8897766198339296,-0.019468580336297992
|
||||
roll_fast,0.359,0.4710183775560644,-0.8794502007709485,0.0686223897018397
|
||||
roll_fast,0.409,0.48614999379346735,-0.8481296101097635,0.21055723210014018
|
||||
roll_fast,0.459,0.48614999379346735,-0.8481296101097635,0.21055723210014018
|
||||
roll_fast,0.509,0.48614999379346735,-0.8481296101097635,0.21055723210014018
|
||||
roll_fast,0.56,0.48614999379346735,-0.8481296101097635,0.21055723210014018
|
||||
roll_fast,0.611,0.4522165107922734,-0.6191590493907155,0.6419830986283418
|
||||
roll_fast,0.661,0.3948458905804791,-0.45576815372939883,0.7977293480484489
|
||||
roll_fast,0.711,0.31297543284889107,-0.26644512261413045,0.911621289279814
|
||||
roll_fast,0.761,0.24722211208448244,-0.13184762873360015,0.9599465766873772
|
||||
roll_fast,0.811,0.17443191144629244,0.005508304311644434,0.9846538309745223
|
||||
roll_fast,0.862,0.17443191144629244,0.005508304311644434,0.9846538309745223
|
||||
roll_fast,0.912,0.17443191144629244,0.005508304311644434,0.9846538309745223
|
||||
roll_fast,0.962,0.17443191144629244,0.005508304311644434,0.9846538309745223
|
||||
roll_fast,1.015,-0.07028931952835214,0.4009372621088909,0.9134050160869863
|
||||
roll_fast,1.065,-0.19181828427149575,0.5682368786979131,0.8001953483411366
|
||||
roll_fast,1.115,-0.3047168205187675,0.7027745223635194,0.6428496169475878
|
||||
roll_fast,1.165,-0.3877485638908776,0.7843408476187816,0.48421119974367904
|
||||
roll_fast,1.216,-0.4028277976127009,0.797062751252426,0.4499119203093136
|
||||
roll_fast,1.266,-0.4028277976127009,0.797062751252426,0.4499119203093136
|
||||
roll_fast,1.316,-0.4028277976127009,0.797062751252426,0.4499119203093136
|
||||
roll_fast,1.366,-0.5117094565052331,0.8509062608923823,0.11879380159445974
|
||||
roll_fast,1.416,-0.5463802858802032,0.8341169424957295,-0.07561421455680888
|
||||
roll_fast,1.467,-0.5614516425968921,0.7703677587767183,-0.30216811423872614
|
||||
roll_fast,1.517,-0.5361264604361383,0.617802887890881,-0.5752286589991021
|
||||
roll_fast,1.567,-0.5218812351566515,0.5690784589905927,-0.6354444774362747
|
||||
roll_fast,1.617,-0.49494010214581236,0.4890850190322566,-0.7182131573886056
|
||||
roll_fast,1.667,-0.49494010214581236,0.4890850190322566,-0.7182131573886056
|
||||
roll_fast,1.717,-0.49494010214581236,0.4890850190322566,-0.7182131573886056
|
||||
roll_fast,1.767,-0.3440174302857372,0.1396931047835701,-0.9285137824154925
|
||||
roll_fast,1.82,-0.23525805420746415,-0.06570749303078906,-0.9697093241225057
|
||||
roll_fast,1.87,-0.19625879783423691,-0.13411075867198055,-0.9713376285726225
|
||||
roll_fast,1.92,-0.0949890023289495,-0.30100858394679586,-0.9488787708800822
|
||||
roll_fast,1.971,-0.07453710913781955,-0.3329263212727339,-0.9400022787021216
|
||||
roll_fast,2.021,-0.07453710913781955,-0.3329263212727339,-0.9400022787021216
|
||||
roll_fast,2.071,-0.07453710913781955,-0.3329263212727339,-0.9400022787021216
|
||||
roll_fast,2.121,0.14448794249717334,-0.6431590637002322,-0.7519771627205005
|
||||
roll_fast,2.171,0.18283601243163217,-0.6892883761074453,-0.7010367516195289
|
||||
roll_fast,2.221,0.3204922974597805,-0.8299477804497861,-0.4565866500407401
|
||||
roll_fast,2.272,0.3498674652034662,-0.8530130176217724,-0.38724869084336405
|
||||
roll_fast,2.322,0.4124430332010092,-0.8877915231565959,-0.20424729074149947
|
||||
roll_fast,2.372,0.4124430332010092,-0.8877915231565959,-0.20424729074149947
|
||||
roll_fast,2.454,0.4124430332010092,-0.8877915231565959,-0.20424729074149947
|
||||
roll_fast,2.504,0.4745114350931557,-0.8744296665576758,0.10105273974349113
|
||||
roll_fast,2.554,0.48267297224869277,-0.8576071884180729,0.17758578837919575
|
||||
roll_fast,2.604,0.4790699338423226,-0.7195469224608153,0.5027367351462215
|
||||
roll_fast,2.654,0.46937636788590276,-0.6762101067234576,0.56782542813376
|
||||
roll_fast,2.704,0.41135253131562505,-0.49459186357414753,0.7656160809873834
|
||||
roll_fast,2.756,0.4003164340439995,-0.46567532370481146,0.7892358617844955
|
||||
roll_fast,2.806,0.4003164340439995,-0.46567532370481146,0.7892358617844955
|
||||
roll_fast,2.856,0.4003164340439995,-0.46567532370481146,0.7892358617844955
|
||||
roll_fast,2.909,0.23776990821948535,-0.11571873999513957,0.9644037764127819
|
||||
roll_fast,2.959,0.16427200734952954,0.021719340056452676,0.9861759365695698
|
||||
roll_fast,3.009,0.045283382036564734,0.22486689122887976,0.9733366820069969
|
||||
roll_fast,3.06,-0.036992167616838594,0.3533761993353274,0.9347496142167305
|
||||
roll_fast,3.11,-0.11945927877262154,0.4727802269146366,0.8730454385389513
|
||||
roll_fast,3.16,-0.11945927877262154,0.4727802269146366,0.8730454385389513
|
||||
roll_fast,3.21,-0.11945927877262154,0.4727802269146366,0.8730454385389513
|
||||
roll_fast,3.26,-0.11945927877262154,0.4727802269146366,0.8730454385389513
|
||||
roll_fast,3.31,-0.34832219782009477,0.7463942489988824,0.5670690183453625
|
||||
roll_fast,3.36,-0.41060542302987857,0.8020551652797916,0.43371730242919837
|
||||
roll_fast,3.412,-0.5060192508828523,0.8512722526760851,0.1388526901422534
|
||||
roll_fast,3.462,-0.5367672669096389,0.8435913083033272,-0.015316844630572738
|
||||
roll_fast,3.514,-0.5424930121603433,0.838335256896307,-0.05380825960575971
|
||||
roll_fast,3.564,-0.5424930121603433,0.838335256896307,-0.05380825960575971
|
||||
roll_fast,3.614,-0.5424930121603433,0.838335256896307,-0.05380825960575971
|
||||
roll_fast,3.664,-0.5596773753080179,0.7324962784354845,-0.3875699132369452
|
||||
roll_fast,3.715,-0.5187323267754228,0.5571689196924458,-0.6484439590950855
|
||||
roll_fast,3.765,-0.5007518821327692,0.5038887555605733,-0.7038065604696406
|
||||
roll_fast,3.815,-0.4301120965633418,0.32618176435100704,-0.8417891903527572
|
||||
roll_fast,3.865,-0.41609751831590275,0.29451533035891825,-0.8603043504684399
|
||||
roll_fast,3.915,-0.41609751831590275,0.29451533035891825,-0.8603043504684399
|
||||
roll_fast,3.965,-0.41609751831590275,0.29451533035891825,-0.8603043504684399
|
||||
|
@@ -83,7 +83,7 @@ Two claims of the field names are confirmed:
|
||||
* **Pitching up is about twice as fast as pitching down**, exactly as the pair
|
||||
150/75 (slow) and 70/40 (fast) says.
|
||||
|
||||
## The ~1.2× factor is a TIME BASE, not a unit scale
|
||||
## The ~1.2× factor — ⚠️ WITHDRAWN, see "Settled rates match exactly" below
|
||||
|
||||
The speed law measured 1.21 / 1.28 / 1.32 × its definition values; the pitch rates
|
||||
measure 1.16 / 1.35 / 1.17 / 1.94 × theirs. A **unit scale** would have to differ
|
||||
@@ -222,3 +222,42 @@ not perfectly separated pair of regimes.
|
||||
|
||||
Raw samples: [`captures/throttle-curve-lt.csv`](captures/throttle-curve-lt.csv) ·
|
||||
[`captures/turn-law-roll.csv`](captures/turn-law-roll.csv).
|
||||
|
||||
---
|
||||
|
||||
# ⚠️ Settled rates match the definition EXACTLY — the "time base" reading is withdrawn
|
||||
|
||||
The earlier turn measurements settled each phase for 1.5 s and then differentiated
|
||||
from the first second. Re-running with **5 s of settle** and the craft's speed
|
||||
recorded *at the moment the turn starts*
|
||||
([`tools/re-capture/flight_law3.py`](../../tools/re-capture/flight_law3.py)):
|
||||
|
||||
| phase | speed at turn | measured rate | definition |
|
||||
|---|---|---|---|
|
||||
| pitch, minimum speed | 130 /s | **74.9 °/s** | `AV_PitchMinus_Min` **75** |
|
||||
| pitch, half throttle | 388 /s | 73.7 °/s | (between, see below) |
|
||||
| pitch, maximum speed | 1 821 /s | **41.1 °/s** | `AV_PitchMinus_Max` **40** |
|
||||
| roll, minimum speed | 110 /s | 129.5 °/s | `AV_Roll_Min` 200 |
|
||||
| roll, maximum speed | 1 722 /s | 149.3 °/s | `AV_Roll_Max` 125 |
|
||||
|
||||
**Pitch lands on 75 and 40 — the definition's own numbers, with no scale factor.**
|
||||
So the ~1.2× I attributed to the emulated time base was an artefact of measuring
|
||||
during the `AA_*` acceleration ramp with too little settle, and that explanation is
|
||||
**withdrawn**: angular rates need no correction, and a reimplementation should use
|
||||
`AV_*` verbatim.
|
||||
|
||||
What remains unexplained is only on the **linear** side: settled speeds still read
|
||||
high and vary between runs (`RT` full measured 1 342 in one flight and 1 821 in
|
||||
another, against `MaximumVelocity` 1 200), which is what a craft being shoved around
|
||||
in a firefight looks like. The HUD, meanwhile, reads exactly `CruisingVelocity` at
|
||||
neutral throttle. A clean linear measurement wants a quiet corner of a map, not this
|
||||
one — until then, no cause is claimed.
|
||||
|
||||
**Roll, re-measured with proper settles, confirms the axis difference**: 129.5 at
|
||||
110 /s and 149.3 at 1 722 /s — no speed dependence, both near `AV_Roll_Max` **125**,
|
||||
where pitch moved 75 → 40 across the same range. The mid-throttle pitch point does
|
||||
not discriminate lerp-versus-switch, because at half throttle the craft only reached
|
||||
388 /s, where an interpolation would predict ~66 °/s against a measured 73.7 — inside
|
||||
this probe's noise.
|
||||
|
||||
Raw samples: [`captures/turn-law-settled.csv`](captures/turn-law-settled.csv).
|
||||
|
||||
82
tools/re-capture/flight_law3.py
Normal file
82
tools/re-capture/flight_law3.py
Normal file
@@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Is the `_Min`/`_Max` pair a LERP on speed, and is roll really speed-independent?
|
||||
|
||||
Pitch measured 87 deg/s at minimum speed and 54 at maximum, against
|
||||
`AV_PitchMinus_{Min,Max}` 75/40 — consistent with either a two-state switch or an
|
||||
interpolation. A THIRD point settles it: at half throttle the craft sits midway
|
||||
between cruise and maximum, so an interpolation must put the pitch rate between the
|
||||
two, while a switch cannot.
|
||||
|
||||
Roll measured ~144 and ~150 in the two regimes, but only 2 s apart — not enough
|
||||
settle for a 126 -> 1342 speed change. Here every phase settles 5 s.
|
||||
|
||||
Usage: flight_law3.py <out.csv> [dwell_s]
|
||||
"""
|
||||
import json, math, os, struct, subprocess, sys, time
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
import speed_law
|
||||
|
||||
SETTLE = 5.0
|
||||
|
||||
def pad(*a):
|
||||
subprocess.run(["vgamepad", *a], capture_output=True)
|
||||
|
||||
def row_at(fd, off, cfg, row):
|
||||
at = off + cfg["rot_delta"] + row * cfg["rot_stride"]
|
||||
v = struct.unpack(">3f", os.pread(fd, 12, at))
|
||||
n = math.sqrt(sum(c * c for c in v)) or 1.0
|
||||
return tuple(c / n for c in v)
|
||||
|
||||
def ang(a, b):
|
||||
return math.degrees(math.acos(max(-1.0, min(1.0, sum(a[i] * b[i] for i in range(3))))))
|
||||
|
||||
def main():
|
||||
out_csv = sys.argv[1]
|
||||
dwell = float(sys.argv[2]) if len(sys.argv) > 2 else 4.0
|
||||
cfg = json.load(open("/tmp/nav-live.json"))
|
||||
w, off, nm = speed_law.find_player()
|
||||
if not w:
|
||||
sys.exit("player entity not found after retries")
|
||||
print(f"# locked on {nm}")
|
||||
fwd, other = cfg.get("fwd_row", 0), (1 if cfg.get("fwd_row", 0) != 1 else 2)
|
||||
rows = []
|
||||
phases = [
|
||||
# label, throttle, stick, matrix row to watch
|
||||
("pitch_slow", ("LT", 1.0), ("LY", 1.0), fwd),
|
||||
("pitch_mid", ("RT", 0.5), ("LY", 1.0), fwd),
|
||||
("pitch_fast", ("RT", 1.0), ("LY", 1.0), fwd),
|
||||
("roll_slow", ("LT", 1.0), ("LX", 1.0), other),
|
||||
("roll_fast", ("RT", 1.0), ("LX", 1.0), other),
|
||||
]
|
||||
for label, (trig, tv), (axis, av), row in phases:
|
||||
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0")
|
||||
pad("axis", "LX", "0.0"); pad("axis", "LY", "0.0")
|
||||
pad("trig", trig, str(tv))
|
||||
time.sleep(SETTLE) # 5 s: a full 126 -> 1342 change needs ~2 s
|
||||
# speed at the moment of the turn, so the regime is recorded not assumed
|
||||
p0 = speed_law.pos_at(w.fd, off); time.sleep(0.6); p1 = speed_law.pos_at(w.fd, off)
|
||||
v_at_turn = math.dist(p0, p1) / 0.6
|
||||
pad("axis", axis, str(av))
|
||||
seq, t0 = [], time.time()
|
||||
while time.time() - t0 < dwell:
|
||||
seq.append((round(time.time() - t0, 3), *row_at(w.fd, off, cfg, row)))
|
||||
time.sleep(0.05)
|
||||
pad("axis", axis, "0.0")
|
||||
rows += [(label, *s) for s in seq]
|
||||
rates = []
|
||||
for t in range(int(dwell) - 1):
|
||||
a = [s for s in seq if s[0] >= t][0]
|
||||
b = [s for s in seq if s[0] <= t + 1][-1]
|
||||
rates.append(ang(a[1:], b[1:]) / (b[0] - a[0]))
|
||||
mean = sum(rates) / len(rates)
|
||||
print(f"# {label:<11} speed {v_at_turn:6.0f}/s rate {mean:6.1f} deg/s " +
|
||||
" ".join(f"{r:5.0f}" for r in rates))
|
||||
pad("trig", "RT", "0.0"); pad("trig", "LT", "0.0"); pad("reset")
|
||||
with open(out_csv, "w") as f:
|
||||
f.write("phase,t,ax,ay,az\n")
|
||||
for r in rows:
|
||||
f.write(",".join(str(x) for x in r) + "\n")
|
||||
print(f"# wrote {out_csv}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user