diff --git a/src/main/Potential Autos.chor b/src/main/Potential Autos.chor index 3221b480..426b507d 100644 --- a/src/main/Potential Autos.chor +++ b/src/main/Potential Autos.chor @@ -3,8 +3,8 @@ "robotConfiguration": { "mass": 59.27038160247355, "rotationalInertia": 6, - "motorMaxTorque": 0.7248618784530386, - "motorMaxVelocity": 4704, + "motorMaxTorque": 0.7759834368530021, + "motorMaxVelocity": 4640, "gearing": 6.75, "wheelbase": 0.6603996433841925, "trackWidth": 0.6603996433841925, @@ -13,156 +13,586 @@ "wheelRadius": 0.050799972568014815 }, "paths": { - "6Note": { + "3Spike": { "waypoints": [ { - "x": 1.2134901285171509, - "y": 3.7024037837982178, - "heading": -0.9272952180016122, + "x": 1.898240327835083, + "y": 6.697559356689453, + "heading": 0.8156915418947346, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 13 + "controlIntervalCount": 12 }, { - "x": 1.9061466455459595, - "y": 2.8476362228393555, - "heading": 0, + "x": 2.9706242084503174, + "y": 6.795048713684082, + "heading": -0.08673824690926328, "isInitialGuess": false, "translationConstrained": true, - "headingConstrained": false, - "controlIntervalCount": 15 + "headingConstrained": true, + "controlIntervalCount": 9 }, { - "x": 2.65, - "y": 3.0946526527404785, - "heading": 1.57, + "x": 2.444181203842163, + "y": 5.6446733474731445, + "heading": 0.03446907195457146, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 8 + "controlIntervalCount": 6 }, { - "x": 2.65, - "y": 3.9813501834869385, - "heading": 1.57, + "x": 3.087611436843872, + "y": 5.508187770843506, + "heading": 0, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 17 + "controlIntervalCount": 9 }, { - "x": 2.690741539001465, - "y": 4.745745658874512, - "heading": -0.3547054524853324, + "x": 3.107109308242798, + "y": 4.1628336906433105, + "heading": 0, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 14 + "controlIntervalCount": 8 }, { - "x": 2.705155611038208, - "y": 5.005199432373047, - "heading": 1.460139105621001, + "x": 2.249202251434326, + "y": 4.747770309448242, + "heading": -0.16514851217251245, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 6 + "controlIntervalCount": 40 + } + ], + "trajectory": [ + { + "x": 1.898240327835083, + "y": 6.697559356689453, + "heading": 0.8156915418947346, + "angularVelocity": -1.0203651299070483e-18, + "velocityX": 7.059276162786864e-17, + "velocityY": 8.05331973081768e-18, + "timestamp": 0 }, { - "x": 2.7339837551116943, - "y": 5.379965782165527, - "heading": 1.499489025796698, - "isInitialGuess": false, - "translationConstrained": true, - "headingConstrained": true, - "controlIntervalCount": 14 + "x": 1.928011425667035, + "y": 6.700257705488313, + "heading": 0.7906543885401096, + "angularVelocity": -0.4125180197131184, + "velocityX": 0.4905156008901217, + "velocityY": 0.04445862863220824, + "timestamp": 0.06069347800136739 + }, + { + "x": 1.987561656316453, + "y": 6.7056814751882055, + "heading": 0.7406973162292918, + "angularVelocity": -0.8231044579401747, + "velocityX": 0.981163588088925, + "velocityY": 0.08936330357883958, + "timestamp": 0.12138695600273477 + }, + { + "x": 2.0768993924383765, + "y": 6.713863123454453, + "heading": 0.665908700412107, + "angularVelocity": -1.2322348014971582, + "velocityX": 1.4719495251188295, + "velocityY": 0.13480275864341493, + "timestamp": 0.18208043400410218 + }, + { + "x": 2.196043819991789, + "y": 6.724832813976885, + "heading": 0.5664907713553188, + "angularVelocity": -1.638033151676551, + "velocityX": 1.9630515745156076, + "velocityY": 0.18073919774683922, + "timestamp": 0.24277391200546955 + }, + { + "x": 2.3450703903963706, + "y": 6.738620084887391, + "heading": 0.44354978680104007, + "angularVelocity": -2.0256045394451108, + "velocityX": 2.4553967792259948, + "velocityY": 0.22716231404953768, + "timestamp": 0.3034673900068369 + }, + { + "x": 2.524366013731002, + "y": 6.755404219318462, + "heading": 0.3052638198889322, + "angularVelocity": -2.2784320731956287, + "velocityX": 2.9541168052783493, + "velocityY": 0.27653934135544966, + "timestamp": 0.3641608680082043 + }, + { + "x": 2.673270314372625, + "y": 6.768792785441263, + "heading": 0.17727124299711214, + "angularVelocity": -2.1088357613800035, + "velocityX": 2.453382233891238, + "velocityY": 0.22059316031451623, + "timestamp": 0.42485434600957167 + }, + { + "x": 2.7922668700063817, + "y": 6.779362583190905, + "heading": 0.07259539139052823, + "angularVelocity": -1.7246639186540365, + "velocityX": 1.9606152020333387, + "velocityY": 0.17415047049050045, + "timestamp": 0.48554782401093904 + }, + { + "x": 2.8814664055883235, + "y": 6.787228518212843, + "heading": -0.006725211090079159, + "angularVelocity": -1.306904878293822, + "velocityX": 1.4696725005598144, + "velocityY": 0.12960099307146533, + "timestamp": 0.5462413020123065 + }, + { + "x": 2.9409112103177457, + "y": 6.792446959885125, + "heading": -0.059963007280896694, + "angularVelocity": -0.877158435204807, + "velocityX": 0.9794265658673137, + "velocityY": 0.08598027076589665, + "timestamp": 0.6069347800136738 + }, + { + "x": 2.9706242084503174, + "y": 6.795048713684082, + "heading": -0.0867382469092633, + "angularVelocity": -0.4411551374228896, + "velocityX": 0.48955833659593734, + "velocityY": 0.04286710672435541, + "timestamp": 0.6676282580150412 + }, + { + "x": 2.9706242084503174, + "y": 6.795048713684082, + "heading": -0.0867382469092633, + "angularVelocity": 4.1300797018606364e-18, + "velocityX": -6.787421352957282e-17, + "velocityY": -6.122691775796301e-18, + "timestamp": 0.7283217360164086 + }, + { + "x": 2.9443020593472835, + "y": 6.73752994711249, + "heading": -0.08067661919484623, + "angularVelocity": 0.06958187507135942, + "velocityX": -0.3021539059782267, + "velocityY": -0.6602621966248707, + "timestamp": 0.8154367743536277 + }, + { + "x": 2.8916577620939425, + "y": 6.622492415321145, + "heading": -0.06855357159018967, + "angularVelocity": 0.13916136451353756, + "velocityX": -0.6043078010200357, + "velocityY": -1.3205243777318816, + "timestamp": 0.9025518126908468 + }, + { + "x": 2.8126913183903137, + "y": 6.449936121363781, + "heading": -0.0503694568413589, + "angularVelocity": 0.2087368047574143, + "velocityX": -0.9064616765471906, + "velocityY": -1.9807865237848399, + "timestamp": 0.989666851028066 + }, + { + "x": 2.707402733848941, + "y": 6.219861077435211, + "heading": -0.026124774152275536, + "angularVelocity": 0.27830651460237066, + "velocityX": -1.208615487647548, + "velocityY": -2.641048529852652, + "timestamp": 1.0767818893652852 + }, + { + "x": 2.602114129325041, + "y": 5.98978600061254, + "heading": -0.00188700512612124, + "angularVelocity": 0.2782271521517419, + "velocityX": -1.2086157170284564, + "velocityY": -2.6410489074464856, + "timestamp": 1.1638969277025044 + }, + { + "x": 2.5231476684834186, + "y": 5.817229677874622, + "heading": 0.016291079692932007, + "angularVelocity": 0.20866758674531646, + "velocityX": -0.9064618732755036, + "velocityY": -1.9807868541589642, + "timestamp": 1.2510119660397236 + }, + { + "x": 2.4705033590732923, + "y": 5.7021921250404635, + "heading": 0.028409733760042313, + "angularVelocity": 0.13911093076948938, + "velocityX": -0.6043079405686759, + "velocityY": -1.3205246192838944, + "timestamp": 1.3381270043769429 + }, + { + "x": 2.444181203842163, + "y": 5.6446733474731445, + "heading": 0.03446907195457146, + "angularVelocity": 0.06955559350239472, + "velocityX": -0.30215397632309554, + "velocityY": -0.6602623228456396, + "timestamp": 1.425242042714162 + }, + { + "x": 2.444181203842163, + "y": 5.6446733474731445, + "heading": 0.03446907195457146, + "angularVelocity": -1.0356554389384789e-17, + "velocityX": 2.4614269190125946e-15, + "velocityY": -5.221227236415707e-16, + "timestamp": 1.5123570810513813 + }, + { + "x": 2.5156734582113587, + "y": 5.629508282219497, + "heading": 0.030639214226098638, + "angularVelocity": -0.04090586229477797, + "velocityX": 0.7635929373114598, + "velocityY": -0.1619747037455608, + "timestamp": 1.6059832146572177 + }, + { + "x": 2.6586579607167553, + "y": 5.599178152927087, + "heading": 0.022979469316454657, + "angularVelocity": -0.08181203916730466, + "velocityX": 1.5271858080496832, + "velocityY": -0.32394939451519356, + "timestamp": 1.699609348263054 + }, + { + "x": 2.8731346805000304, + "y": 5.5536829658728095, + "heading": 0.011489763977113574, + "angularVelocity": -0.12271899839111648, + "velocityX": 2.2907783491969966, + "velocityY": -0.485924018242721, + "timestamp": 1.7932354818688905 + }, + { + "x": 3.0161191826976204, + "y": 5.523352836293968, + "heading": 0.0038299237880790897, + "angularVelocity": -0.08181305682537549, + "velocityX": 1.5271858047620634, + "velocityY": -0.32394939757450636, + "timestamp": 1.8868616154747269 + }, + { + "x": 3.087611436843872, + "y": 5.508187770843506, + "heading": -9.681628847292082e-19, + "angularVelocity": -0.04090656786280392, + "velocityX": 0.7635929349302473, + "velocityY": -0.16197470584769585, + "timestamp": 1.9804877490805632 + }, + { + "x": 3.087611436843872, + "y": 5.508187770843506, + "heading": 7.657382594875245e-22, + "angularVelocity": 1.035618611822264e-17, + "velocityX": -2.4614264121936132e-15, + "velocityY": 5.221220564767035e-16, + "timestamp": 2.0741138826863996 + }, + { + "x": 3.08858633048636, + "y": 5.440920061829133, + "heading": 2.324556482364219e-16, + "angularVelocity": 2.5878970789813725e-15, + "velocityX": 0.010853393925855314, + "velocityY": -0.7488847117307628, + "timestamp": 2.1639377340224875 + }, + { + "x": 3.0905361177310438, + "y": 5.306384646580583, + "heading": 6.8687655980783295e-16, + "angularVelocity": 5.0590227964198126e-15, + "velocityX": 0.021706787403138753, + "velocityY": -1.4977693925098754, + "timestamp": 2.2537615853585753 + }, + { + "x": 3.0934607984973375, + "y": 5.104581530658249, + "heading": 1.3632643561200468e-15, + "angularVelocity": 7.530158039918729e-15, + "velocityX": 0.03256017998327358, + "velocityY": -2.2466540113856897, + "timestamp": 2.343585436694663 + }, + { + "x": 3.0973603725434855, + "y": 4.835510730743306, + "heading": 2.2709770866681227e-15, + "angularVelocity": 1.0105475517379967e-14, + "velocityX": 0.043413569871963154, + "velocityY": -2.9955384445516495, + "timestamp": 2.433409288030751 + }, + { + "x": 3.1012599465895736, + "y": 4.566439930828403, + "heading": 2.264075262752123e-15, + "angularVelocity": -7.683731903225901e-17, + "velocityX": 0.04341356987129279, + "velocityY": -2.995538444551191, + "timestamp": 2.523233139366839 + }, + { + "x": 3.1041846273558074, + "y": 4.3646368149061106, + "heading": 2.0256507625049035e-15, + "angularVelocity": -2.6543562395670722e-15, + "velocityX": 0.032560179982603216, + "velocityY": -2.246654011385231, + "timestamp": 2.6130569907029266 + }, + { + "x": 3.106134414600431, + "y": 4.230101399657602, + "heading": 1.5650617308478489e-15, + "angularVelocity": -5.127691863765037e-15, + "velocityX": 0.021706787402468397, + "velocityY": -1.497769392509417, + "timestamp": 2.7028808420390145 + }, + { + "x": 3.1071093082428582, + "y": 4.16283369064327, + "heading": 8.822473275380185e-16, + "angularVelocity": -7.601704816337083e-15, + "velocityX": 0.010853393925184958, + "velocityY": -0.7488847117303047, + "timestamp": 2.7927046933751023 + }, + { + "x": 3.107109308242798, + "y": 4.1628336906433105, + "heading": -3.209207761292708e-17, + "angularVelocity": -1.0179249626542184e-14, + "velocityX": -6.728159002851988e-13, + "velocityY": 4.5874167966636e-13, + "timestamp": 2.88252854471119 + }, + { + "x": 3.0534901012801763, + "y": 4.1993922875336205, + "heading": -0.010317012651529421, + "angularVelocity": -0.11688600366277159, + "velocityX": -0.6074757328604911, + "velocityY": 0.4141885286325489, + "timestamp": 2.9707941396348567 + }, + { + "x": 2.946251691134035, + "y": 4.272509454128145, + "heading": -0.030952692489374736, + "angularVelocity": -0.2337907522825489, + "velocityX": -1.2149514229058669, + "velocityY": 0.828376749261782, + "timestamp": 3.0590597345585233 + }, + { + "x": 2.7853940913065474, + "y": 4.3821851470513975, + "heading": -0.06191007575465608, + "angularVelocity": -0.3507298998219544, + "velocityX": -1.8224269599791396, + "velocityY": 1.2425644784709402, + "timestamp": 3.14732532948219 + }, + { + "x": 2.5709173398047853, + "y": 4.5284193116673395, + "heading": -0.10319240644132736, + "angularVelocity": -0.46770580000323475, + "velocityX": -2.429902066453476, + "velocityY": 1.6567515886842268, + "timestamp": 3.2355909244058565 + }, + { + "x": 2.410059790521505, + "y": 4.63809482563131, + "heading": -0.1341686316183575, + "angularVelocity": -0.3509433681815447, + "velocityX": -1.8224263873414401, + "velocityY": 1.2425624509620008, + "timestamp": 3.323856519329523 + }, + { + "x": 2.3028214309916533, + "y": 4.711211816793368, + "heading": -0.15482166754318777, + "angularVelocity": -0.2339873870755679, + "velocityX": -1.2149508494515129, + "velocityY": 0.8283747617097077, + "timestamp": 3.4121221142531897 + }, + { + "x": 2.2492022514342964, + "y": 4.747770309448263, + "heading": -0.16514851217251283, + "angularVelocity": -0.11699739449184227, + "velocityX": -0.6074754223741123, + "velocityY": 0.4141873477033858, + "timestamp": 3.5003877091768563 + }, + { + "x": 2.249202251434326, + "y": 4.747770309448242, + "heading": -0.16514851217251242, + "angularVelocity": 5.079807183482213e-15, + "velocityX": 3.3640849188303873e-13, + "velocityY": -2.2937202025389454e-13, + "timestamp": 3.588653304100523 + } + ], + "constraints": [ + { + "scope": [ + "first" + ], + "type": "StopPoint", + "uuid": "29727d0a-f23a-4415-8384-7399453c3931" }, { - "x": 2.777225971221924, - "y": 6.043013572692871, - "heading": 0.07130738082253721, - "isInitialGuess": false, - "translationConstrained": true, - "headingConstrained": true, - "controlIntervalCount": 13 + "scope": [ + "last" + ], + "type": "StopPoint", + "uuid": "ab28d958-ce39-4da7-bf5a-d5e8f21fb467" }, { - "x": 2.777225971221924, - "y": 6.547506809234619, - "heading": 1.53235378563829, - "isInitialGuess": false, - "translationConstrained": true, - "headingConstrained": true, - "controlIntervalCount": 19 + "scope": [ + 1 + ], + "type": "StopPoint", + "uuid": "1d541807-bbf4-449b-9120-d40cbe612c74" }, { - "x": 4.431106090545654, - "y": 7.380357265472412, - "heading": 0, - "isInitialGuess": false, - "translationConstrained": false, - "headingConstrained": false, - "controlIntervalCount": 8 + "scope": [ + 3 + ], + "type": "StopPoint", + "uuid": "2cbeb458-0b20-43e7-83b6-eded6ac4a4ef" }, { - "x": 5.288247108459473, - "y": 7.439470291137695, - "heading": 0, + "scope": [ + 2 + ], + "type": "StopPoint", + "uuid": "609fcb30-bb0e-48be-9adc-4a7ac23ac1d8" + }, + { + "scope": [ + 5 + ], + "type": "StopPoint", + "uuid": "20819604-d41f-4dc9-8839-e5e56d3e6a6f" + }, + { + "scope": [ + 4 + ], + "type": "StopPoint", + "uuid": "820e2daf-40d8-43fe-bcac-8805de8c0cf9" + } + ], + "usesControlIntervalGuessing": true, + "defaultControlIntervalCount": 40, + "usesDefaultFieldObstacles": true, + "circleObstacles": [] + }, + "3Centerline": { + "waypoints": [ + { + "x": 1.8608553409576416, + "y": 5.938887119293213, + "heading": 0.305879568562575, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 12 + "controlIntervalCount": 24 }, { - "x": 7.268537998199463, - "y": 7.7350358963012695, + "x": 8.029805183410645, + "y": 7.180410385131836, "heading": 0, "isInitialGuess": false, - "translationConstrained": false, - "headingConstrained": false, - "controlIntervalCount": 7 + "translationConstrained": true, + "headingConstrained": true, + "controlIntervalCount": 16 }, { - "x": 7.830112934112549, - "y": 7.469026565551758, - "heading": 0, + "x": 4.923573017120361, + "y": 6.213200092315674, + "heading": 0.23554532977562306, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 12 + "controlIntervalCount": 16 }, { - "x": 5.879378795623779, - "y": 6.833560466766357, + "x": 8.085606575012207, + "y": 5.673794269561768, "heading": 0, "isInitialGuess": false, - "translationConstrained": false, - "headingConstrained": false, - "controlIntervalCount": 7 + "translationConstrained": true, + "headingConstrained": true, + "controlIntervalCount": 16 }, { - "x": 5.376916885375977, - "y": 6.759668827056885, - "heading": 0.21109341192044445, + "x": 4.867772102355957, + "y": 6.045798301696777, + "heading": 0.33473735609186744, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 15 + "controlIntervalCount": 19 }, { - "x": 7.711886405944824, - "y": 5.976419448852539, - "heading": -0.2837940575825868, + "x": 8.011205673217773, + "y": 4.14857816696167, + "heading": -0.288054962130024, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 14 + "controlIntervalCount": 17 }, { - "x": 5.376916885375977, - "y": 6.227650165557861, - "heading": 0.06885690933268979, + "x": 5.07237434387207, + "y": 6.064398765563965, + "heading": 0.13552729798344068, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, @@ -171,1759 +601,985 @@ ], "trajectory": [ { - "x": 1.2134901285191984, - "y": 3.702403783800421, - "heading": -0.9272952180015092, - "angularVelocity": 2.9275724560072123e-13, - "velocityX": 2.454991007161089e-12, - "velocityY": -1.0608084392054969e-12, + "x": 1.8608553409576416, + "y": 5.938887119293213, + "heading": 0.305879568562575, + "angularVelocity": 5.829173690613896e-22, + "velocityX": -4.239164801235723e-21, + "velocityY": -8.56131924454696e-22, "timestamp": 0 }, { - "x": 1.2214199688965524, - "y": 3.6828844138661974, - "heading": -0.9068235786762225, - "angularVelocity": 0.11838487813596572, - "velocityX": 0.045857255063974624, - "velocityY": -0.1128780258036785, - "timestamp": 0.1729244447864887 - }, - { - "x": 1.2371939281344813, - "y": 3.6459016271317672, - "heading": -0.8661542466206761, - "angularVelocity": 0.23518555807832484, - "velocityX": 0.09121879355263159, - "velocityY": -0.2138667369457007, - "timestamp": 0.3458488895729774 - }, - { - "x": 1.2607987600293624, - "y": 3.5935252227252095, - "heading": -0.8055681239046617, - "angularVelocity": 0.3503618172041365, - "velocityX": 0.13650373094344487, - "velocityY": -0.30288606382088756, - "timestamp": 0.518773334359466 - }, - { - "x": 1.2923153971748729, - "y": 3.5278914158276553, - "heading": -0.7252939199511473, - "angularVelocity": 0.46421547893157705, - "velocityX": 0.18225669120552063, - "velocityY": -0.37955193086711103, - "timestamp": 0.6916977791459548 - }, - { - "x": 1.3319437170467292, - "y": 3.45130898950986, - "heading": -0.6254055185731093, - "angularVelocity": 0.5776418800095864, - "velocityX": 0.2291655174159904, - "velocityY": -0.44286639999442523, - "timestamp": 0.8646222239324435 - }, - { - "x": 1.380003817262134, - "y": 3.3664624405251735, - "heading": -0.5056820412512726, - "angularVelocity": 0.6923455933948506, - "velocityX": 0.2779254273134932, - "velocityY": -0.490656766910279, - "timestamp": 1.037546668718932 - }, - { - "x": 1.436809995729507, - "y": 3.2767232226728136, - "heading": -0.36592886657710183, - "angularVelocity": 0.808174777547772, - "velocityX": 0.3285028819178693, - "velocityY": -0.5189504466638519, - "timestamp": 1.2104711135054207 - }, - { - "x": 1.5024117560477557, - "y": 3.186433452722628, - "heading": -0.2093004084573229, - "angularVelocity": 0.9057623884898333, - "velocityX": 0.3793666095115132, - "velocityY": -0.5221342191413152, - "timestamp": 1.3833955582919093 - }, - { - "x": 1.575388792180146, - "y": 3.100609774230474, - "heading": -0.043535810037648476, - "angularVelocity": 0.9585955220739105, - "velocityX": 0.4220168884847946, - "velocityY": -0.49630738203272023, - "timestamp": 1.556320003078398 - }, - { - "x": 1.6534260730218766, - "y": 3.0220856356001904, - "heading": 0.1259077975683872, - "angularVelocity": 0.9798707627458886, - "velocityX": 0.4512796379646867, - "velocityY": -0.4540950743631267, - "timestamp": 1.7292444478648865 - }, - { - "x": 1.7350915783546517, - "y": 2.9526358276231015, - "heading": 0.29512622138663475, - "angularVelocity": 0.978568553623787, - "velocityX": 0.4722611972532152, - "velocityY": -0.401619378011739, - "timestamp": 1.9021688926513751 - }, - { - "x": 1.819540714989021, - "y": 2.893956167629996, - "heading": 0.4612947569724265, - "angularVelocity": 0.9609314391291418, - "velocityX": 0.48835858190283854, - "velocityY": -0.33933698641658866, - "timestamp": 2.0750933374378637 - }, - { - "x": 1.906146645544586, - "y": 2.847636222828339, - "heading": 0.6223817773774516, - "angularVelocity": 0.9315456852260934, - "velocityX": 0.5008310459701584, - "velocityY": -0.2678623304812785, - "timestamp": 2.2480177822243523 - }, - { - "x": 1.9665251142175801, - "y": 2.8219435002912077, - "heading": 0.7304227409187306, - "angularVelocity": 0.9070944374295804, - "velocityX": 0.5069278473953359, - "velocityY": -0.21571193983857168, - "timestamp": 2.367124414372505 - }, - { - "x": 2.027199417328043, - "y": 2.802535781230278, - "heading": 0.8348605982998051, - "angularVelocity": 0.8768433412411867, - "velocityX": 0.5094116252951654, - "velocityY": -0.16294406809191087, - "timestamp": 2.486231046520658 - }, - { - "x": 2.0877233838067433, - "y": 2.7894495205117447, - "heading": 0.9349982104943089, - "angularVelocity": 0.8407391786537501, - "velocityX": 0.5081494230967811, - "velocityY": -0.10987012719992924, - "timestamp": 2.605337678668811 - }, - { - "x": 2.147643915001536, - "y": 2.7826815563505396, - "heading": 1.0301447309723348, - "angularVelocity": 0.7988347804694407, - "velocityX": 0.5030830779492154, - "velocityY": -0.05682273215515476, - "timestamp": 2.724444310816964 - }, - { - "x": 2.20651048737849, - "y": 2.782188581989056, - "heading": 1.1196211525892386, - "angularVelocity": 0.7512295482688252, - "velocityX": 0.4942342101420168, - "velocityY": -0.004138933646610826, - "timestamp": 2.8435509429651167 - }, - { - "x": 2.263883758606366, - "y": 2.78789118528915, - "heading": 1.2027687081800864, - "angularVelocity": 0.6980934136595841, - "velocityX": 0.4816966952555762, - "velocityY": 0.047878133400203145, - "timestamp": 2.9626575751132695 - }, - { - "x": 2.3193412784170198, - "y": 2.799681571659277, - "heading": 1.2789478693283394, - "angularVelocity": 0.6395879020676446, - "velocityX": 0.4656123563275106, - "velocityY": 0.09899017450798987, - "timestamp": 3.0817642072614224 - }, - { - "x": 2.372480995706151, - "y": 2.817429968176388, - "heading": 1.3475588619550296, - "angularVelocity": 0.5760467844787401, - "velocityX": 0.4461524614429469, - "velocityY": 0.1490126631712517, - "timestamp": 3.2008708394095753 - }, - { - "x": 2.4229223212854074, - "y": 2.8409891725170064, - "heading": 1.4080386482590237, - "angularVelocity": 0.5077784927315084, - "velocityX": 0.4234972013791647, - "velocityY": 0.19779926497358047, - "timestamp": 3.319977471557728 - }, - { - "x": 2.470306439114864, - "y": 2.8701952854845723, - "heading": 1.45984182318626, - "angularVelocity": 0.434931068507544, - "velocityX": 0.397829379968852, - "velocityY": 0.2452097956790979, - "timestamp": 3.439084103705881 - }, - { - "x": 2.5142942062154736, - "y": 2.904872210821119, - "heading": 1.5024339139907708, - "angularVelocity": 0.3575962976843553, - "velocityX": 0.3693141690481337, - "velocityY": 0.2911418507417147, - "timestamp": 3.558190735854034 - }, - { - "x": 2.5545596425467716, - "y": 2.944842709921586, - "heading": 1.5353104282168073, - "angularVelocity": 0.2760258899137462, - "velocityX": 0.3380620825190745, - "velocityY": 0.33558583920682944, - "timestamp": 3.6772973680021868 - }, - { - "x": 2.5907808083346966, - "y": 2.9899393707705153, - "heading": 1.5580188767710943, - "angularVelocity": 0.19065645700034164, - "velocityX": 0.30410704180422304, - "velocityY": 0.3786242635368564, - "timestamp": 3.7964040001503396 - }, - { - "x": 2.6226553892163267, - "y": 3.0399773739572353, - "heading": 1.5699999995373906, - "angularVelocity": 0.1005915667162924, - "velocityX": 0.26761381867758166, - "velocityY": 0.42011097406612685, - "timestamp": 3.9155106322984925 - }, - { - "x": 2.6499999999952943, - "y": 3.0946526527631186, - "heading": 1.5699999995375231, - "angularVelocity": 1.6268742139378163e-13, - "velocityX": 0.22958092316607345, - "velocityY": 0.45904478970404045, - "timestamp": 4.034617264446646 - }, - { - "x": 2.677778603556993, - "y": 3.1876184634557494, - "heading": 1.5699999996915948, - "angularVelocity": 3.4878134565245447e-9, - "velocityX": 0.15720141808521537, - "velocityY": 0.526101218742126, - "timestamp": 4.211324345228364 - }, - { - "x": 2.694302289976671, - "y": 3.2907293636552515, - "heading": 1.569999999845665, - "angularVelocity": 3.487804657098119e-9, - "velocityX": 0.09350890981424996, - "velocityY": 0.5835131200339685, - "timestamp": 4.388031426010083 - }, - { - "x": 2.7009127461581475, - "y": 3.402378723740959, - "heading": 1.5699999999997312, - "angularVelocity": 3.487781847838159e-9, - "velocityX": 0.037409118885215344, - "velocityY": 0.6318329713426234, - "timestamp": 4.564738506791802 - }, - { - "x": 2.6987671383912533, - "y": 3.5209211039854664, - "heading": 1.570000000153807, - "angularVelocity": 3.4878366830559997e-9, - "velocityX": -0.012142172119808498, - "velocityY": 0.6708411430749418, - "timestamp": 4.74144558757352 - }, - { - "x": 2.6888828222740733, - "y": 3.644196175998938, - "heading": 1.5700000003078753, - "angularVelocity": 3.4877937223103217e-9, - "velocityX": -0.055936163456970826, - "velocityY": 0.6976238377085905, - "timestamp": 4.918152668355239 - }, - { - "x": 2.6722022855076024, - "y": 3.76625962058142, - "heading": 1.5700000004619454, - "angularVelocity": 3.4878037554984787e-9, - "velocityX": -0.0943965389284013, - "velocityY": 0.6907671381579374, - "timestamp": 5.094859749136957 - }, - { - "x": 2.657986617113385, - "y": 3.879155032674401, - "heading": 1.570000000616029, - "angularVelocity": 3.4878815132726272e-9, - "velocityX": -0.08044764465302807, - "velocityY": 0.6388844831997175, - "timestamp": 5.271566829918676 - }, - { - "x": 2.6500000000052806, - "y": 3.9813501834674954, - "heading": 1.5700000004617618, - "angularVelocity": 1.7432220039690896e-9, - "velocityX": -0.04519692738746778, - "velocityY": 0.5783308186700414, - "timestamp": 5.448273910700395 - }, - { - "x": 2.6452136818359064, - "y": 4.05360530425828, - "heading": 1.53966341048279, - "angularVelocity": -0.2382427016177502, - "velocityX": -0.03758844925284465, - "velocityY": 0.5674419970250193, - "timestamp": 5.575608724119742 - }, - { - "x": 2.6414058365018693, - "y": 4.124344962259836, - "heading": 1.4805030233227192, - "angularVelocity": -0.4646049696157924, - "velocityX": -0.029904196935062462, - "velocityY": 0.5555405950865885, - "timestamp": 5.702943537539089 - }, - { - "x": 2.638726148869199, - "y": 4.1926740124341215, - "heading": 1.3885239036867012, - "angularVelocity": -0.7223407103550541, - "velocityX": -0.02104442268552982, - "velocityY": 0.5366093399943983, - "timestamp": 5.830278350958436 - }, - { - "x": 2.6371495018803164, - "y": 4.258402426861184, - "heading": 1.2664490199394642, - "angularVelocity": -0.9586921313529179, - "velocityX": -0.012381900523162376, - "velocityY": 0.5161857363964165, - "timestamp": 5.957613164377784 - }, - { - "x": 2.6367566351923606, - "y": 4.321249747197685, - "heading": 1.117526343536387, - "angularVelocity": -1.1695362196212704, - "velocityX": -0.003085304648377667, - "velocityY": 0.4935596059814381, - "timestamp": 6.084947977797131 - }, - { - "x": 2.6379461563733613, - "y": 4.380543504144595, - "heading": 0.9470242990843019, - "angularVelocity": -1.3390057264463304, - "velocityX": 0.009341680772761525, - "velocityY": 0.46565236445510094, - "timestamp": 6.212282791216478 - }, - { - "x": 2.640763664026479, - "y": 4.4348680141998, - "heading": 0.7637352361799904, - "angularVelocity": -1.439426169991059, - "velocityX": 0.022126766227508896, - "velocityY": 0.4266273189098902, - "timestamp": 6.3396176046358255 - }, - { - "x": 2.6449181726826847, - "y": 4.483606188164319, - "heading": 0.5746573747577438, - "angularVelocity": -1.4848874101138032, - "velocityX": 0.032626652054096365, - "velocityY": 0.3827560794609454, - "timestamp": 6.466952418055173 - }, - { - "x": 2.6500836019606915, - "y": 4.5266472095485755, - "heading": 0.3868086488776482, - "angularVelocity": -1.4752346255840696, - "velocityX": 0.0405657269652761, - "velocityY": 0.33801456355338955, - "timestamp": 6.59428723147452 - }, - { - "x": 2.6558464279561003, - "y": 4.564412547861051, - "heading": 0.20759285673582817, - "angularVelocity": -1.4074375050153292, - "velocityX": 0.0452572697009629, - "velocityY": 0.2965829791062329, - "timestamp": 6.721622044893867 - }, - { - "x": 2.661778734291967, - "y": 4.59791659515814, - "heading": 0.04509455516787029, - "angularVelocity": -1.2761498384118317, - "velocityX": 0.046588251681661745, - "velocityY": 0.263117731793826, - "timestamp": 6.8489568583132145 - }, - { - "x": 2.6675521800942206, - "y": 4.628154547719805, - "heading": -0.09493357899778786, - "angularVelocity": -1.0996846065360344, - "velocityX": 0.04534067037561326, - "velocityY": 0.2374680712369913, - "timestamp": 6.976291671732562 - }, - { - "x": 2.6730273366267054, - "y": 4.655759180593734, - "heading": -0.20883881516584757, - "angularVelocity": -0.8945333420741611, - "velocityX": 0.04299811171875369, - "velocityY": 0.2167877904868582, - "timestamp": 7.103626485151909 - }, - { - "x": 2.678138048749673, - "y": 4.6811080520674, - "heading": -0.2939465026251688, - "angularVelocity": -0.6683772114260695, - "velocityX": 0.040136016118023574, - "velocityY": 0.19907259272871744, - "timestamp": 7.230961298571256 - }, - { - "x": 2.6828300625819463, - "y": 4.704445666215685, - "heading": -0.34796884329444056, - "angularVelocity": -0.4242542889593211, - "velocityX": 0.036847847868648385, - "velocityY": 0.18327756173208992, - "timestamp": 7.358296111990604 - }, - { - "x": 2.6870489868716323, - "y": 4.725946330962835, - "heading": -0.3688433898724138, - "angularVelocity": -0.16393432463684127, - "velocityX": 0.033132528155050814, - "velocityY": 0.16885142523195418, - "timestamp": 7.485630925409951 - }, - { - "x": 2.690741538999899, - "y": 4.745745658881827, - "heading": -0.3547054524849317, - "angularVelocity": 0.11102963078930123, - "velocityX": 0.02899876341795603, - "velocityY": 0.15549029656562582, - "timestamp": 7.612965738829298 - }, - { - "x": 2.6934607424234462, - "y": 4.761417510798841, - "heading": -0.3176562911177192, - "angularVelocity": 0.34403603709867575, - "velocityX": 0.025250341412210373, - "velocityY": 0.1455277699022493, - "timestamp": 7.720655507548441 - }, - { - "x": 2.6957976390226768, - "y": 4.776182991755986, - "heading": -0.2567351376272597, - "angularVelocity": 0.5657097616347546, - "velocityX": 0.021700265768873628, - "velocityY": 0.13711126973577806, - "timestamp": 7.8283452762675845 - }, - { - "x": 2.6977687917894335, - "y": 4.7902101666937575, - "heading": -0.17317582068144213, - "angularVelocity": 0.7759262355558584, - "velocityX": 0.018303992960618302, - "velocityY": 0.1302554093821528, - "timestamp": 7.936035044986728 - }, - { - "x": 2.699387576905781, - "y": 4.803677821280753, - "heading": -0.06825731088311157, - "angularVelocity": 0.9742662738687601, - "velocityX": 0.015031930485161661, - "velocityY": 0.125059740805471, - "timestamp": 8.043724813705872 - }, - { - "x": 2.700669750016591, - "y": 4.816787270497459, - "heading": 0.05667241036907346, - "angularVelocity": 1.1600890469331555, - "velocityX": 0.01190617387623651, - "velocityY": 0.12173346969049074, - "timestamp": 8.151414582425016 - }, - { - "x": 2.701638921088602, - "y": 4.829788325532351, - "heading": 0.20013160725212134, - "angularVelocity": 1.332152520098241, - "velocityX": 0.008999657843294685, - "velocityY": 0.12072692858580873, - "timestamp": 8.25910435114416 - }, - { - "x": 2.7023270420759418, - "y": 4.843037991339417, - "heading": 0.3603318680041595, - "angularVelocity": 1.4876089210741354, - "velocityX": 0.0063898455239930225, - "velocityY": 0.12303551163966073, - "timestamp": 8.366794119863304 - }, - { - "x": 2.7027342342087275, - "y": 4.8571699423090635, - "heading": 0.534542545009005, - "angularVelocity": 1.6177087106318269, - "velocityX": 0.003781158937186622, - "velocityY": 0.13122835275947514, - "timestamp": 8.474483888582448 - }, - { - "x": 2.70256595507304, - "y": 4.874565727425271, - "heading": 0.7112936152404646, - "angularVelocity": 1.6412986324126229, - "velocityX": -0.0015626288292674016, - "velocityY": 0.16153609867638755, - "timestamp": 8.582173657301592 - }, - { - "x": 2.7023906866424063, - "y": 4.895151112055553, - "heading": 0.8857476045173669, - "angularVelocity": 1.6199680921307593, - "velocityX": -0.0016275309601235012, - "velocityY": 0.1911545067457904, - "timestamp": 8.689863426020736 - }, - { - "x": 2.702514003300952, - "y": 4.918783664787565, - "heading": 1.0519954165670216, - "angularVelocity": 1.543766078541766, - "velocityX": 0.0011451102305272795, - "velocityY": 0.21945030624338774, - "timestamp": 8.79755319473988 - }, - { - "x": 2.703054335679489, - "y": 4.945063560715068, - "heading": 1.205028220918099, - "angularVelocity": 1.4210523997151632, - "velocityX": 0.005017490356734875, - "velocityY": 0.24403335836798773, - "timestamp": 8.905242963459024 - }, - { - "x": 2.7039518227222876, - "y": 4.973866114721659, - "heading": 1.3418780223624793, - "angularVelocity": 1.2707781155821471, - "velocityX": 0.008334004718619866, - "velocityY": 0.26745859282506784, - "timestamp": 9.012932732178168 - }, - { - "x": 2.705155611038573, - "y": 5.005199432371511, - "heading": 1.4601391056217587, - "angularVelocity": 1.0981645200204058, - "velocityX": 0.011178297889957256, - "velocityY": 0.2909590950064466, - "timestamp": 9.120622500897312 - }, - { - "x": 2.7075475883170625, - "y": 5.057800568431657, - "heading": 1.5846330579194456, - "angularVelocity": 0.7815302239817514, - "velocityX": 0.015016010847101066, - "velocityY": 0.33021184476934917, - "timestamp": 9.279917622780061 - }, - { - "x": 2.7106355946768605, - "y": 5.11553191139856, - "heading": 1.6606890009799455, - "angularVelocity": 0.4774530579023228, - "velocityX": 0.019385442083753358, - "velocityY": 0.36241751965678165, - "timestamp": 9.439212744662811 - }, - { - "x": 2.714603113036703, - "y": 5.177430582712724, - "heading": 1.689552850964268, - "angularVelocity": 0.1811973250635666, - "velocityX": 0.02490671599190395, - "velocityY": 0.38857857404297325, - "timestamp": 9.59850786654556 - }, - { - "x": 2.719666892119011, - "y": 5.242655325525797, - "heading": 1.6720167349941795, - "angularVelocity": -0.11008570608420444, - "velocityX": 0.03178866384838745, - "velocityY": 0.40945850720964916, - "timestamp": 9.75780298842831 - }, - { - "x": 2.7260456700000577, - "y": 5.310428510061647, - "heading": 1.6086050162662178, - "angularVelocity": -0.3980769653911309, - "velocityX": 0.04004377413266913, - "velocityY": 0.4254567480373902, - "timestamp": 9.91709811031106 - }, - { - "x": 2.733983755111467, - "y": 5.379965782164736, - "heading": 1.4994890257959146, - "angularVelocity": -0.6849926674968776, - "velocityX": 0.0498325687430904, - "velocityY": 0.4365310831844459, - "timestamp": 10.076393232193809 - }, - { - "x": 2.7403519987836336, - "y": 5.428782764015629, - "heading": 1.4030227598298415, - "angularVelocity": -0.86907069684122, - "velocityX": 0.05737191041991601, - "velocityY": 0.43979527998539214, - "timestamp": 10.187392563175258 - }, - { - "x": 2.7474416272846045, - "y": 5.477928317505554, - "heading": 1.2877775765276958, - "angularVelocity": -1.0382511519468594, - "velocityX": 0.06387091201629533, - "velocityY": 0.4427554026788899, - "timestamp": 10.298391894156708 - }, - { - "x": 2.755099437239571, - "y": 5.527335311414416, - "heading": 1.1556172324559857, - "angularVelocity": -1.1906409061595067, - "velocityX": 0.06898969470888307, - "velocityY": 0.44511073595952727, - "timestamp": 10.409391225138158 - }, - { - "x": 2.763073314371291, - "y": 5.576891966790131, - "heading": 1.008839937166576, - "angularVelocity": -1.3223259450318314, - "velocityX": 0.07183716391577571, - "velocityY": 0.4464590455826599, - "timestamp": 10.520390556119608 - }, - { - "x": 2.770756458926381, - "y": 5.626388669002003, - "heading": 0.8509533533965823, - "angularVelocity": -1.4224102282551414, - "velocityX": 0.06921793572996068, - "velocityY": 0.44591892372393505, - "timestamp": 10.631389887101058 - }, - { - "x": 2.7765929371018587, - "y": 5.6751833178331985, - "heading": 0.6976742957975531, - "angularVelocity": -1.380900733356889, - "velocityX": 0.0525812014042681, - "velocityY": 0.43959408035749586, - "timestamp": 10.742389218082508 - }, - { - "x": 2.7812148969457993, - "y": 5.723355185159096, - "heading": 0.5561189909540492, - "angularVelocity": -1.2752807026531834, - "velocityX": 0.041639528855491686, - "velocityY": 0.43398340233557375, - "timestamp": 10.853388549063958 - }, - { - "x": 2.7846341541044826, - "y": 5.770917360704941, - "heading": 0.4290947667682521, - "angularVelocity": -1.1443692771461944, - "velocityX": 0.030804304212884475, - "velocityY": 0.42849065047935536, - "timestamp": 10.964387880045408 - }, - { - "x": 2.7868036331209676, - "y": 5.817867178043778, - "heading": 0.31870033092567784, - "angularVelocity": -0.9945504612345583, - "velocityX": 0.019544973798314574, - "velocityY": 0.42297387661508384, - "timestamp": 11.075387211026857 - }, - { - "x": 2.7876739995139346, - "y": 5.8641980426984786, - "heading": 0.22669269944147122, - "angularVelocity": -0.828902576809249, - "velocityX": 0.007841185918062894, - "velocityY": 0.4173976926896044, - "timestamp": 11.186386542008307 - }, - { - "x": 2.787199598907597, - "y": 5.909896954976253, - "heading": 0.15461009075553808, - "angularVelocity": -0.649396785077588, - "velocityX": -0.00427390512415645, - "velocityY": 0.41170439370904605, - "timestamp": 11.297385872989757 - }, - { - "x": 2.785334928758619, - "y": 5.954945308815798, - "heading": 0.10384044901782247, - "angularVelocity": -0.45738691663173364, - "velocityX": -0.016798931460352096, - "velocityY": 0.40584347154427963, - "timestamp": 11.408385203971207 - }, - { - "x": 2.7820296460936547, - "y": 5.99932303663678, - "heading": 0.0756680850519561, - "angularVelocity": -0.2538066106695057, - "velocityX": -0.029777500831199538, - "velocityY": 0.39980175927762673, - "timestamp": 11.519384534952657 - }, - { - "x": 2.777225971223495, - "y": 6.043013572694398, - "heading": 0.07130738082260937, - "angularVelocity": -0.03928586070851831, - "velocityX": -0.04327661108101771, - "velocityY": 0.39361080516708935, - "timestamp": 11.630383865934107 - }, - { - "x": 2.7708025416380804, - "y": 6.086228577980418, - "heading": 0.0924405017308609, - "angularVelocity": 0.1894267867463071, - "velocityX": -0.0575764289833756, - "velocityY": 0.38735781825339893, - "timestamp": 11.741947395050046 - }, - { - "x": 2.7631104838036147, - "y": 6.128747951743283, - "heading": 0.13792413323079813, - "angularVelocity": 0.407692655411535, - "velocityX": -0.06894778181538898, - "velocityY": 0.3811225231531768, - "timestamp": 11.853510924165985 - }, - { - "x": 2.754514263518267, - "y": 6.170565147177378, - "heading": 0.20653308055445607, - "angularVelocity": 0.6149764874177278, - "velocityX": -0.0770522444451208, - "velocityY": 0.37482854574377555, - "timestamp": 11.965074453281924 - }, - { - "x": 2.745440052449635, - "y": 6.211648913048854, - "heading": 0.29697222751905, - "angularVelocity": 0.8106515419634385, - "velocityX": -0.08133671613909955, - "velocityY": 0.36825444781340366, - "timestamp": 12.076637982397862 - }, - { - "x": 2.7363923538047996, - "y": 6.2519737139034355, - "heading": 0.40783083793060415, - "angularVelocity": 0.9936814587406215, - "velocityX": -0.08109907192317244, - "velocityY": 0.36145146276694384, - "timestamp": 12.188201511513801 - }, - { - "x": 2.7280592025191917, - "y": 6.291485229850295, - "heading": 0.5371181653698212, - "angularVelocity": 1.1588673144286004, - "velocityX": -0.07469422463560056, - "velocityY": 0.35416158122392677, - "timestamp": 12.29976504062974 - }, - { - "x": 2.721516703521013, - "y": 6.329946640679988, - "heading": 0.6809409115442911, - "angularVelocity": 1.2891555796425005, - "velocityX": -0.05864370777231024, - "velocityY": 0.34474896102184066, - "timestamp": 12.41132856974568 - }, - { - "x": 2.7186115194936558, - "y": 6.367345324047673, - "heading": 0.8310949021421773, - "angularVelocity": 1.3459057057109145, - "velocityX": -0.02604062490013896, - "velocityY": 0.3352232005464074, - "timestamp": 12.522892098861618 - }, - { - "x": 2.7201626165622823, - "y": 6.403993224874882, - "heading": 0.9826164331350509, - "angularVelocity": 1.3581636572914138, - "velocityX": 0.013903263009787203, - "velocityY": 0.3284935592311268, - "timestamp": 12.634455627977557 - }, - { - "x": 2.7265981550401013, - "y": 6.440150870382165, - "heading": 1.131579259128451, - "angularVelocity": 1.3352286976688623, - "velocityX": 0.05768496704140498, - "velocityY": 0.32409915437288567, - "timestamp": 12.746019157093496 - }, - { - "x": 2.7381546633881, - "y": 6.476016938175864, - "heading": 1.2747563358948757, - "angularVelocity": 1.283368118388856, - "velocityX": 0.10358679458289283, - "velocityY": 0.3214855967802891, - "timestamp": 12.857582686209435 - }, - { - "x": 2.7549876221362974, - "y": 6.511747596731161, - "heading": 1.4092327359199672, - "angularVelocity": 1.2053795784590957, - "velocityX": 0.1508822722947548, - "velocityY": 0.3202718557414932, - "timestamp": 12.969146215325374 - }, - { - "x": 2.777225971219294, - "y": 6.547506809233031, - "heading": 1.532353785638737, - "angularVelocity": 1.1035958648685134, - "velocityX": 0.19933350348528897, - "velocityY": 0.3205277991599169, - "timestamp": 13.080709744441313 - }, - { - "x": 2.8283739264126173, - "y": 6.60500051454071, - "heading": 1.6910426580508369, - "angularVelocity": 0.8908309216248135, - "velocityX": 0.2871290177610515, - "velocityY": 0.32275212312664076, - "timestamp": 13.258845537171021 - }, - { - "x": 2.894537518108946, - "y": 6.662949818763498, - "heading": 1.8139189760032997, - "angularVelocity": 0.6897901655205115, - "velocityX": 0.37142222056386526, - "velocityY": 0.32530971645546014, - "timestamp": 13.43698132990073 - }, - { - "x": 2.975118854402208, - "y": 6.72132005713001, - "heading": 1.9033257225678124, - "angularVelocity": 0.5019022016528627, - "velocityX": 0.45235904059312243, - "velocityY": 0.3276727123322237, - "timestamp": 13.615117122630439 - }, - { - "x": 3.069506354210641, - "y": 6.779993578108028, - "heading": 1.9614530049830199, - "angularVelocity": 0.3263088317299888, - "velocityX": 0.5298626309923767, - "velocityY": 0.32937524839676924, - "timestamp": 13.793252915360148 - }, - { - "x": 3.177057501791681, - "y": 6.838789011583473, - "heading": 1.990113992675826, - "angularVelocity": 0.16089404186178405, - "velocityX": 0.6037593340125262, - "velocityY": 0.33005962796787114, - "timestamp": 13.971388708089856 - }, - { - "x": 3.2970934581179465, - "y": 6.897474588900029, - "heading": 1.9906701857847593, - "angularVelocity": 0.0031222984451791374, - "velocityX": 0.6738452418130287, - "velocityY": 0.32944292900353384, - "timestamp": 14.149524500819565 - }, - { - "x": 3.428875798780963, - "y": 6.955773952952954, - "heading": 1.9640246482498747, - "angularVelocity": -0.14957991949193578, - "velocityX": 0.7397858602409795, - "velocityY": 0.32727484555599373, - "timestamp": 14.327660293549274 - }, - { - "x": 3.5715750772701043, - "y": 7.013357345374212, - "heading": 1.9106160532989442, - "angularVelocity": -0.29981955974577057, - "velocityX": 0.8010702189812141, - "velocityY": 0.3232555992232119, - "timestamp": 14.505796086278982 - }, - { - "x": 3.7242209599931746, - "y": 7.069819180114435, - "heading": 1.830377783516494, - "angularVelocity": -0.4504331698484236, - "velocityX": 0.8569074209354516, - "velocityY": 0.31695951653343485, - "timestamp": 14.683931879008691 - }, - { - "x": 3.885616535722601, - "y": 7.1246504487670705, - "heading": 1.7226603342509128, - "angularVelocity": -0.6046929009336263, - "velocityX": 0.9060255283762794, - "velocityY": 0.307806015922469, - "timestamp": 14.8620676717384 - }, - { - "x": 4.05416552018741, - "y": 7.177233618565563, - "heading": 1.5860732407671714, - "angularVelocity": -0.7667582768795543, - "velocityX": 0.9461825828669139, - "velocityY": 0.29518587473863683, - "timestamp": 15.040203464468108 - }, - { - "x": 4.2273936305200035, - "y": 7.226946789532177, - "heading": 1.417957586567635, - "angularVelocity": -0.9437499989398298, - "velocityX": 0.972449768119705, - "velocityY": 0.27907457679060355, - "timestamp": 15.218339257197817 - }, - { - "x": 4.400615134292295, - "y": 7.271518848059685, - "heading": 1.2225365130610886, - "angularVelocity": -1.0970342934019721, - "velocityX": 0.9724126809054928, - "velocityY": 0.2502139398555887, - "timestamp": 15.396475049927526 - }, - { - "x": 4.569586786239567, - "y": 7.310085040153136, - "heading": 1.0159093047800025, - "angularVelocity": -1.1599421155910052, - "velocityX": 0.9485553091785852, - "velocityY": 0.2164988377864223, - "timestamp": 15.574610842657234 - }, - { - "x": 4.731916077731233, - "y": 7.343905863563497, - "heading": 0.8050006957827572, - "angularVelocity": -1.183976593168793, - "velocityX": 0.9112671238351473, - "velocityY": 0.18985978557591154, - "timestamp": 15.752746635386943 - }, - { - "x": 4.885947895624515, - "y": 7.373460799757093, - "heading": 0.5949879079305361, - "angularVelocity": -1.1789477265311938, - "velocityX": 0.8646876382009842, - "velocityY": 0.16591239605136865, - "timestamp": 15.930882428116652 - }, - { - "x": 5.030555674163505, - "y": 7.399083556924728, - "heading": 0.389293360584716, - "angularVelocity": -1.1547064416090447, - "velocityX": 0.8117839560724309, - "velocityY": 0.14383834251217997, - "timestamp": 16.10901822084636 - }, - { - "x": 5.164922112553356, - "y": 7.42103691269045, - "heading": 0.1902575355029938, - "angularVelocity": -1.117326406063954, - "velocityX": 0.754292196599486, - "velocityY": 0.12323944239401181, - "timestamp": 16.287154013576068 - }, - { - "x": 5.288247156990128, - "y": 7.439470298396178, - "heading": -7.485335201745413e-8, - "angularVelocity": -1.0680481863931495, - "velocityX": 0.692309179127921, - "velocityY": 0.10347940424527421, - "timestamp": 16.465289806305776 - }, - { - "x": 5.288247150924154, - "y": 7.439470297488981, - "heading": -6.549675275293239e-8, - "angularVelocity": -1.0680481909285577, - "velocityX": 0.6923091791495746, - "velocityY": 0.1034794048722287, - "timestamp": 16.465289797545616 - }, - { - "x": 5.288247144858181, - "y": 7.439470296581783, - "heading": -5.614015360341729e-8, - "angularVelocity": -1.0680481958850412, - "velocityX": 0.6923091791998811, - "velocityY": 0.10347940550159965, - "timestamp": 16.465289788785455 - }, - { - "x": 5.288247138792208, - "y": 7.439470295674586, - "heading": -4.678355456587365e-8, - "angularVelocity": -1.068048201182234, - "velocityX": 0.6923091792135615, - "velocityY": 0.10347940615791178, - "timestamp": 16.465289780025294 - }, - { - "x": 5.288247132726235, - "y": 7.439470294767388, - "heading": -3.742695563880682e-8, - "angularVelocity": -1.0680482066432966, - "velocityX": 0.6923091791656869, - "velocityY": 0.10347940690651845, - "timestamp": 16.465289771265134 - }, - { - "x": 5.288247126660261, - "y": 7.43947029386019, - "heading": -2.8070356820536066e-8, - "angularVelocity": -1.0680482122907076, - "velocityX": 0.6923091790890028, - "velocityY": 0.10347940774772568, - "timestamp": 16.465289762504973 - }, - { - "x": 5.2882471205942885, - "y": 7.4394702929529934, - "heading": -1.871375810835249e-8, - "angularVelocity": -1.0680482182439734, - "velocityX": 0.6923091790087366, - "velocityY": 0.10347940865836429, - "timestamp": 16.465289753744813 - }, - { - "x": 5.288247114528315, - "y": 7.439470292045796, - "heading": -9.357159497718974e-9, - "angularVelocity": -1.0680482247148153, - "velocityX": 0.692309178935693, - "velocityY": 0.10347940958549313, - "timestamp": 16.465289744984652 - }, - { - "x": 5.2882471084623415, - "y": 7.439470291138599, - "heading": -5.609846744710123e-13, - "angularVelocity": -1.0680482316377529, - "velocityX": 0.6923091788453621, - "velocityY": 0.10347941057644157, - "timestamp": 16.46528973622449 - }, - { - "x": 5.418318713107553, - "y": 7.45524667726722, - "heading": -0.14765149788980822, - "angularVelocity": -0.9184906932543151, - "velocityX": 0.8091320441513836, - "velocityY": 0.09813963317439353, - "timestamp": 16.626044220713585 - }, - { - "x": 5.563548987825593, - "y": 7.4700941218212495, - "heading": -0.27422768048539375, - "angularVelocity": -0.7873881901546119, - "velocityX": 0.9034290718221242, - "velocityY": 0.09236099763780091, - "timestamp": 16.786798705202678 - }, - { - "x": 5.720519992249432, - "y": 7.483950977822062, - "heading": -0.3825207221223279, - "angularVelocity": -0.6736548717787152, - "velocityX": 0.9764642331243513, - "velocityY": 0.08619887682187297, - "timestamp": 16.94755318969177 - }, - { - "x": 5.891579981174876, - "y": 7.497541590590127, - "heading": -0.47714146755787396, - "angularVelocity": -0.588604079901089, - "velocityX": 1.0641071038395116, - "velocityY": 0.08454266651145323, - "timestamp": 17.108307674180864 - }, - { - "x": 6.070777918835097, - "y": 7.508754325284448, - "heading": -0.5566348918765167, - "angularVelocity": -0.4945020636066715, - "velocityX": 1.1147305670618215, - "velocityY": 0.06975068056649593, - "timestamp": 17.269062158669957 - }, - { - "x": 6.2553343016634635, - "y": 7.518023579202175, - "heading": -0.6170518299221113, - "angularVelocity": -0.37583360883180356, - "velocityX": 1.148063666191382, - "velocityY": 0.057660935241979815, - "timestamp": 17.42981664315905 - }, - { - "x": 6.442537822955601, - "y": 7.525844356758643, - "heading": -0.6536325541269659, - "angularVelocity": -0.22755647733647813, - "velocityX": 1.1645306311553023, - "velocityY": 0.04865044719085291, - "timestamp": 17.590571127648143 - }, - { - "x": 6.629868252624434, - "y": 7.5325663261121605, - "heading": -0.6631454099336127, - "angularVelocity": -0.05917630132092225, - "velocityX": 1.165320085817266, - "velocityY": 0.04181512805856416, - "timestamp": 17.751325612137236 - }, - { - "x": 6.814379245318763, - "y": 7.537436085797625, - "heading": -0.6469315275958195, - "angularVelocity": 0.1008611509586783, - "velocityX": 1.1477813093220908, - "velocityY": 0.030293149836502442, - "timestamp": 17.91208009662633 - }, - { - "x": 6.991679035452718, - "y": 7.540305977691209, - "heading": -0.6170030764514597, - "angularVelocity": 0.1861749066087869, - "velocityX": 1.1029228247693241, - "velocityY": 0.01785263970713557, - "timestamp": 18.072834581115423 - }, - { - "x": 7.159447389396387, - "y": 7.541387264231915, - "heading": -0.5764605353737351, - "angularVelocity": 0.2522016179067287, - "velocityX": 1.0436309411262277, - "velocityY": 0.006726322705293858, - "timestamp": 18.233589065604516 - }, - { - "x": 7.315440984587148, - "y": 7.540720415566423, - "heading": -0.5273581032751606, - "angularVelocity": 0.3054498433093596, - "velocityX": 0.9703840964748058, - "velocityY": -0.004148243019810784, - "timestamp": 18.39434355009361 - }, - { - "x": 7.470574266382935, - "y": 7.537764395855196, - "heading": -0.4641850757014082, - "angularVelocity": 0.3546341172959247, - "velocityX": 0.8708709486472784, - "velocityY": -0.016594193461135685, - "timestamp": 18.572479337072245 - }, - { - "x": 7.604749650146638, - "y": 7.532550172079166, - "heading": -0.39417620645558443, - "angularVelocity": 0.3930084484061484, - "velocityX": 0.7532196985108242, - "velocityY": -0.029271062624336028, - "timestamp": 18.75061512405088 - }, - { - "x": 7.714483814910743, - "y": 7.524998903950903, - "heading": -0.31905072154824177, - "angularVelocity": 0.4217315688319769, - "velocityX": 0.6160141464196879, - "velocityY": -0.04239051712518056, - "timestamp": 18.928750911029518 - }, - { - "x": 7.796027577811261, - "y": 7.515004663660351, - "heading": -0.24044153160037793, - "angularVelocity": 0.4412880268554748, - "velocityX": 0.45776182474014415, - "velocityY": -0.05610461805755441, - "timestamp": 19.106886698008154 - }, - { - "x": 7.845367727625598, - "y": 7.50244123092944, - "heading": -0.1599630926416538, - "angularVelocity": 0.4517814209261708, - "velocityX": 0.2769805587610722, - "velocityY": -0.07052728115034504, - "timestamp": 19.28502248498679 - }, - { - "x": 7.858234920893501, - "y": 7.487166681771978, - "heading": -0.07925291889731063, - "angularVelocity": 0.4530823093638088, - "velocityX": 0.07223250018704967, - "velocityY": -0.08574666223336481, - "timestamp": 19.463158271965426 - }, - { - "x": 7.830112934107491, - "y": 7.469026565551425, - "heading": 1.9541743370744396e-13, - "angularVelocity": 0.44490172492554647, - "velocityX": -0.157868260300945, - "velocityY": -0.10183308210267149, - "timestamp": 19.641294058944062 - }, - { - "x": 7.754138306062181, - "y": 7.447719681174328, - "heading": 0.07588851944221475, - "angularVelocity": 0.42601499150875954, - "velocityX": -0.4264983789132844, - "velocityY": -0.11961034730517565, - "timestamp": 19.819429854525456 - }, - { - "x": 7.639951170097708, - "y": 7.423862681107234, - "heading": 0.14871254480285817, - "angularVelocity": 0.40881185683628485, - "velocityX": -0.641011738198812, - "velocityY": -0.13392591864598205, - "timestamp": 19.99756565010685 - }, - { - "x": 7.496026995727258, - "y": 7.397999014635099, - "heading": 0.21873314599039687, - "angularVelocity": 0.39307428896591823, - "velocityX": -0.8079463978438458, - "velocityY": -0.14519073152928566, - "timestamp": 20.175701445688244 - }, - { - "x": 7.329549618949632, - "y": 7.370590094001231, - "heading": 0.2861417733138313, - "angularVelocity": 0.37841146471109305, - "velocityX": -0.934553194268821, - "velocityY": -0.15386531687407357, - "timestamp": 20.353837241269638 - }, - { - "x": 7.146249960822764, - "y": 7.342003057760445, - "heading": 0.3510012841680181, - "angularVelocity": 0.36410150269067454, - "velocityX": -1.0289883486090268, - "velocityY": -0.16047889840086563, - "timestamp": 20.53197303685103 - }, - { - "x": 6.9503179785639695, - "y": 7.312500714944177, - "heading": 0.4131524690164208, - "angularVelocity": 0.34889778691337076, - "velocityX": -1.0999023616556318, - "velocityY": -0.16561715021879247, - "timestamp": 20.710108832432425 - }, - { - "x": 6.744669290890069, - "y": 7.282249603442564, - "heading": 0.4720173085707148, - "angularVelocity": 0.3304492472283394, - "velocityX": -1.1544489808985139, - "velocityY": -0.16982050913888352, - "timestamp": 20.88824462801382 - }, - { - "x": 6.528580504402744, - "y": 7.251108531405175, - "heading": 0.5274928016956117, - "angularVelocity": 0.31142249059958194, - "velocityX": -1.2130565099431412, - "velocityY": -0.17481647602398917, - "timestamp": 21.066380423595213 - }, - { - "x": 6.313399103045075, - "y": 7.214538894676935, - "heading": 0.5275460333478232, - "angularVelocity": 0.0002988262523701674, - "velocityX": -1.2079627267049402, - "velocityY": -0.20529078172505943, - "timestamp": 21.244516219176607 - }, - { - "x": 6.120539072312893, - "y": 7.178889186765798, - "heading": 0.517735292666819, - "angularVelocity": -0.05507450453172011, - "velocityX": -1.0826573631611538, - "velocityY": -0.20012658205312084, - "timestamp": 21.422652014758 - }, - { - "x": 5.958628600692053, - "y": 7.144959716647863, - "heading": 0.5008124167051957, - "angularVelocity": -0.09499986179866582, - "velocityX": -0.9089159822650381, - "velocityY": -0.1904696919958043, - "timestamp": 21.600787810339394 - }, - { - "x": 5.837986516704409, - "y": 7.113426483231326, - "heading": 0.4771314716153743, - "angularVelocity": -0.1329375997257422, - "velocityX": -0.6772478467367095, - "velocityY": -0.1770179503423335, - "timestamp": 21.778923605920788 - }, - { - "x": 5.7227454917181495, - "y": 7.076203538098732, - "heading": 0.44815466228660306, - "angularVelocity": -0.1674411973555948, - "velocityX": -0.6659151113565552, - "velocityY": -0.2150911244418225, - "timestamp": 21.951980235828838 - }, - { - "x": 5.614010909083641, - "y": 7.033635647002007, - "heading": 0.41542486169539805, - "angularVelocity": -0.18912768961795748, - "velocityX": -0.6283179251047766, - "velocityY": -0.2459766557929015, - "timestamp": 22.125036865736888 - }, - { - "x": 5.516875858601351, - "y": 6.9866420715294, - "heading": 0.38017449454674707, - "angularVelocity": -0.2036926708051821, - "velocityX": -0.5612905470916604, - "velocityY": -0.27155027514399244, - "timestamp": 22.298093495644938 - }, - { - "x": 5.437243043942288, - "y": 6.935553672024848, - "heading": 0.3424575004944832, - "angularVelocity": -0.21794596411047518, - "velocityX": -0.46015465976713954, - "velocityY": -0.29521203278234875, - "timestamp": 22.471150125552988 - }, - { - "x": 5.382029638407054, - "y": 6.880562557170266, - "heading": 0.301962621519522, - "angularVelocity": -0.23399784796292267, - "velocityX": -0.3190481957280769, - "velocityY": -0.31776369898542106, - "timestamp": 22.64420675546104 - }, - { - "x": 5.359043767990556, - "y": 6.821859309651465, - "heading": 0.2582986739644723, - "angularVelocity": -0.25231016909100673, - "velocityX": -0.13282282465859874, - "velocityY": -0.3392140916541047, - "timestamp": 22.81726338536909 - }, - { - "x": 5.3769168853790115, - "y": 6.759668827057295, - "heading": 0.21109341192044304, - "angularVelocity": -0.27277349656177, - "velocityX": 0.10327900992250337, - "velocityY": -0.3593649236555796, - "timestamp": 22.99032001527714 - }, - { - "x": 5.453420781420232, - "y": 6.691937084119905, - "heading": 0.15775875752405638, - "angularVelocity": -0.2994044744273571, - "velocityX": 0.42946952680603284, - "velocityY": -0.3802253361498929, - "timestamp": 23.16845581133829 - }, - { - "x": 5.578248031578353, - "y": 6.621478294299551, - "heading": 0.10071571878926534, - "angularVelocity": -0.3202222124699196, - "velocityX": 0.7007420906893269, - "velocityY": -0.39553414517797064, - "timestamp": 23.346591607399443 - }, - { - "x": 5.742096614685876, - "y": 6.549230090448469, - "heading": 0.041213467656511724, - "angularVelocity": -0.3340274804303152, - "velocityX": 0.9197959462996009, - "velocityY": -0.40557936949725093, - "timestamp": 23.524727403460595 - }, - { - "x": 5.9357354634248365, - "y": 6.476092053517804, - "heading": -0.019568941838124344, - "angularVelocity": -0.34121389882677833, - "velocityX": 1.087029406896217, - "velocityY": -0.4105746208687261, - "timestamp": 23.702863199521747 - }, - { - "x": 6.148385758343611, - "y": 6.4028961286174635, - "heading": -0.08035607310842466, - "angularVelocity": -0.3412404054344825, - "velocityX": 1.1937538643055912, - "velocityY": -0.4108995862656572, - "timestamp": 23.8809989955829 - }, - { - "x": 6.374102354529772, - "y": 6.330385344994096, - "heading": -0.14018516035925196, - "angularVelocity": -0.33586223866139814, - "velocityX": 1.2671040923692445, - "velocityY": -0.40705341221124436, - "timestamp": 24.059134791644052 - }, - { - "x": 6.612341331128408, - "y": 6.260950902900721, - "heading": -0.19394098279674674, - "angularVelocity": -0.3017687832884667, - "velocityX": 1.337400914733772, - "velocityY": -0.3897837696238762, - "timestamp": 24.237270587705204 - }, - { - "x": 6.84605152207567, - "y": 6.203473880999886, - "heading": -0.2289715660283947, - "angularVelocity": -0.19665100449335837, - "velocityX": 1.3119776940700294, - "velocityY": -0.32265846153343364, - "timestamp": 24.415406383766356 - }, - { - "x": 7.064382598864322, - "y": 6.152325234982081, - "heading": -0.25444586862734997, - "angularVelocity": -0.14300496117137484, - "velocityX": 1.2256440402022253, - "velocityY": -0.28713289046373164, - "timestamp": 24.59354217982751 - }, - { - "x": 7.261910978463682, - "y": 6.1066818733384185, - "heading": -0.2732102079076508, - "angularVelocity": -0.10533727468150804, - "velocityX": 1.1088640462354282, - "velocityY": -0.25622790395414907, - "timestamp": 24.77167797588866 - }, - { - "x": 7.432844706342166, - "y": 6.066712621400304, - "heading": -0.28619204413559407, - "angularVelocity": -0.07287606710718948, - "velocityX": 0.9595697869741047, - "velocityY": -0.22437518355201194, - "timestamp": 24.949813771949813 - }, - { - "x": 7.570743590476923, - "y": 6.032935227158681, - "heading": -0.29375630091954236, - "angularVelocity": -0.04246342931183577, - "velocityX": 0.7741222549554037, - "velocityY": -0.18961598392228185, - "timestamp": 25.127949568010965 - }, - { - "x": 7.668499056236834, - "y": 6.006054729182268, - "heading": -0.29595855831583523, - "angularVelocity": -0.012362800992221083, - "velocityX": 0.5487693541770304, - "velocityY": -0.15089891291403637, - "timestamp": 25.306085364072118 - }, - { - "x": 7.718349321522349, - "y": 5.98690425676214, - "heading": -0.2927031769525776, - "angularVelocity": 0.018274717576348395, - "velocityX": 0.27984417724094734, - "velocityY": -0.10750490829952818, - "timestamp": 25.48422116013327 - }, - { - "x": 7.71188640594573, - "y": 5.976419448852084, - "heading": -0.28379405758259746, - "angularVelocity": 0.050013077477811155, - "velocityX": -0.03628083585189105, - "velocityY": -0.05885851211368899, - "timestamp": 25.662356956194422 - }, - { - "x": 7.64073998767034, - "y": 5.975523422514508, - "heading": -0.2689680472353761, - "angularVelocity": 0.08322869775494246, - "velocityX": -0.39939428102041696, - "velocityY": -0.00503001842507848, - "timestamp": 25.84049275246608 - }, - { - "x": 7.515254770850456, - "y": 5.982745341832985, - "heading": -0.24839985111703908, - "angularVelocity": 0.11546357637731, - "velocityX": -0.7044357139148312, - "velocityY": 0.04054165119978489, - "timestamp": 26.018628548737738 - }, - { - "x": 7.345155681918835, - "y": 5.996704613871788, - "heading": -0.2223274199316461, - "angularVelocity": 0.14636267236058986, - "velocityX": -0.9548843774933711, - "velocityY": 0.07836309338792039, - "timestamp": 26.196764345009395 - }, - { - "x": 7.139560502547719, - "y": 6.016111344560358, - "heading": -0.19106664781409208, - "angularVelocity": 0.1754884350694437, - "velocityX": -1.1541485971641012, - "velocityY": 0.10894346389053551, - "timestamp": 26.374900141281053 - }, - { - "x": 6.907022872723975, - "y": 6.039765038954999, - "heading": -0.15513422497131063, - "angularVelocity": 0.20171365663076973, - "velocityX": -1.30539529219411, - "velocityY": 0.1327846221246523, - "timestamp": 26.55303593755271 - }, - { - "x": 6.655745454364941, - "y": 6.066534208413209, - "heading": -0.11537934692318932, - "angularVelocity": 0.22317175368561765, - "velocityX": -1.4105947463605994, - "velocityY": 0.15027394840704048, - "timestamp": 26.731171733824368 - }, - { - "x": 6.395528884740123, - "y": 6.09504146210893, - "heading": -0.07344943255486255, - "angularVelocity": 0.2353817438489003, - "velocityX": -1.4607764136777701, - "velocityY": 0.16003102291923085, - "timestamp": 26.909307530096026 - }, - { - "x": 6.148227884557905, - "y": 6.126415515383055, - "heading": -0.034920139114795905, - "angularVelocity": 0.21629169569780238, - "velocityX": -1.388272348167526, - "velocityY": 0.1761243609142077, - "timestamp": 27.087443326367683 - }, - { - "x": 5.921399691377473, - "y": 6.155778519380747, - "heading": -0.0014273926700099603, - "angularVelocity": 0.18801805782885908, - "velocityX": -1.2733442571814486, - "velocityY": 0.16483494397205203, - "timestamp": 27.26557912263934 - }, - { - "x": 5.722452569880608, - "y": 6.181830253435625, - "heading": 0.026178625185304717, - "angularVelocity": 0.15497175993321324, - "velocityX": -1.1168284289924366, - "velocityY": 0.14624648498673082, - "timestamp": 27.443714918911 - }, - { - "x": 5.559444959743296, - "y": 6.203351946244675, - "heading": 0.047322653488671644, - "angularVelocity": 0.11869612254198844, - "velocityX": -0.9150749795917061, - "velocityY": 0.12081621582892742, - "timestamp": 27.621850715182656 - }, - { - "x": 5.441124591962054, - "y": 6.21907395052926, - "heading": 0.06162804732685082, - "angularVelocity": 0.08030611554553489, - "velocityX": -0.6642144378512844, - "velocityY": 0.08825853429690561, - "timestamp": 27.799986511454314 - }, - { - "x": 5.376916885374797, - "y": 6.22765016555822, - "heading": 0.06885690933270866, - "angularVelocity": 0.0405806253272207, - "velocityX": -0.3604424710341068, - "velocityY": 0.048144254038901185, - "timestamp": 27.97812230772597 - }, - { - "x": 5.376916885375449, - "y": 6.227650165558026, - "heading": 0.06885690933269815, - "angularVelocity": -1.1945341778272885e-14, - "velocityX": 6.978979046403437e-13, - "velocityY": -1.7270403267086624e-13, - "timestamp": 28.15625810399763 + "x": 1.920785185674491, + "y": 5.950948447445072, + "heading": 0.29568066409022925, + "angularVelocity": -0.1087415369182898, + "velocityX": 0.638976807700777, + "velocityY": 0.12859884746103709, + "timestamp": 0.09379032852928489 + }, + { + "x": 2.040644873990048, + "y": 5.975071063417899, + "heading": 0.2752821629251994, + "angularVelocity": -0.21749045434530723, + "velocityX": 1.2779536034798316, + "velocityY": 0.2571972649109091, + "timestamp": 0.18758065705856977 + }, + { + "x": 2.2204344060834567, + "y": 6.01125490522267, + "heading": 0.24468324187657475, + "angularVelocity": -0.3262481486997939, + "velocityX": 1.9169304011689379, + "velocityY": 0.3857950214288154, + "timestamp": 0.28137098558785467 + }, + { + "x": 2.4601537876635544, + "y": 6.059499889251536, + "heading": 0.2038834521735011, + "angularVelocity": -0.4350106278850961, + "velocityX": 2.5559072597261285, + "velocityY": 0.514391886513143, + "timestamp": 0.37516131411713954 + }, + { + "x": 2.7598030292882076, + "y": 6.119805911541678, + "heading": 0.15288343864942966, + "angularVelocity": -0.5437662318044585, + "velocityX": 3.1948842308521352, + "velocityY": 0.6429876431375527, + "timestamp": 0.4689516426464244 + }, + { + "x": 3.096037782022018, + "y": 6.187474552253286, + "heading": 0.1528834334531576, + "angularVelocity": -5.540306902040579e-8, + "velocityX": 3.5849618825977916, + "velocityY": 0.7214884708552811, + "timestamp": 0.5627419711757093 + }, + { + "x": 3.432272534725669, + "y": 6.255143193114989, + "heading": 0.152883428256934, + "angularVelocity": -5.540255286722503e-8, + "velocityX": 3.584961882276224, + "velocityY": 0.7214884724556129, + "timestamp": 0.6565322997049943 + }, + { + "x": 3.768507287429323, + "y": 6.322811833976674, + "heading": 0.1528834230607103, + "angularVelocity": -5.540255361921963e-8, + "velocityX": 3.584961882276264, + "velocityY": 0.7214884724554109, + "timestamp": 0.7503226282342792 + }, + { + "x": 4.104742040132986, + "y": 6.390480474838318, + "heading": 0.15288341786448656, + "angularVelocity": -5.5402553936553215e-8, + "velocityX": 3.584961882276352, + "velocityY": 0.7214884724549767, + "timestamp": 0.8441129567635641 + }, + { + "x": 4.440976792836646, + "y": 6.458149115699975, + "heading": 0.15288341266826286, + "angularVelocity": -5.540255357687288e-8, + "velocityX": 3.584961882276326, + "velocityY": 0.7214884724551046, + "timestamp": 0.937903285292849 + }, + { + "x": 4.777211545540301, + "y": 6.525817756561653, + "heading": 0.1528834074720391, + "angularVelocity": -5.5402554130547034e-8, + "velocityX": 3.5849618822762768, + "velocityY": 0.7214884724553482, + "timestamp": 1.031693613822134 + }, + { + "x": 5.113446298243962, + "y": 6.593486397423306, + "heading": 0.15288340227581537, + "angularVelocity": -5.540255388249398e-8, + "velocityX": 3.584961882276334, + "velocityY": 0.7214884724550655, + "timestamp": 1.125483942351419 + }, + { + "x": 5.449681050947619, + "y": 6.661155038284979, + "heading": 0.15288339707959164, + "angularVelocity": -5.540255387272659e-8, + "velocityX": 3.584961882276292, + "velocityY": 0.7214884724552731, + "timestamp": 1.2192742708807038 + }, + { + "x": 5.785915803651279, + "y": 6.728823679146634, + "heading": 0.15288339188336802, + "angularVelocity": -5.5402552746810195e-8, + "velocityX": 3.584961882276327, + "velocityY": 0.7214884724551002, + "timestamp": 1.3130645994099888 + }, + { + "x": 6.122150556354927, + "y": 6.796492320008345, + "heading": 0.1528833866871443, + "angularVelocity": -5.540255396525083e-8, + "velocityX": 3.5849618822762097, + "velocityY": 0.7214884724556808, + "timestamp": 1.4068549279392737 + }, + { + "x": 6.458385309058613, + "y": 6.864160960869874, + "heading": 0.15288338149092062, + "angularVelocity": -5.540255313060849e-8, + "velocityX": 3.5849618822765965, + "velocityY": 0.7214884724537611, + "timestamp": 1.5006452564685586 + }, + { + "x": 6.794620061762232, + "y": 6.931829601731737, + "heading": 0.1528833762946969, + "angularVelocity": -5.540255368032922e-8, + "velocityX": 3.5849618822758833, + "velocityY": 0.7214884724573051, + "timestamp": 1.5944355849978435 + }, + { + "x": 7.130854814534018, + "y": 6.999498242254649, + "heading": 0.1528833710984248, + "angularVelocity": -5.5403069453392605e-8, + "velocityX": 3.5849618830026935, + "velocityY": 0.7214884688433891, + "timestamp": 1.6882259135271285 + }, + { + "x": 7.430504858402931, + "y": 7.059802356369048, + "heading": 0.10191849540154471, + "angularVelocity": -0.5433915894746751, + "velocityX": 3.1948927844447264, + "velocityY": 0.6429672980148516, + "timestamp": 1.7820162420564134 + }, + { + "x": 7.67022495954135, + "y": 7.108045593634433, + "heading": 0.06114961629640668, + "angularVelocity": -0.4346810566124464, + "velocityX": 2.555914931714623, + "velocityY": 0.5143732623808938, + "timestamp": 1.8758065705856983 + }, + { + "x": 7.8500150651920775, + "y": 7.144227995763732, + "heading": 0.030574531833697825, + "angularVelocity": -0.32599400111027615, + "velocityX": 1.916936516483045, + "velocityY": 0.3857796714935467, + "timestamp": 1.9695968991149833 + }, + { + "x": 7.969875144582322, + "y": 7.168349588803029, + "heading": 0.010191587226393475, + "angularVelocity": -0.21732458907999266, + "velocityX": 1.2779577731494982, + "velocityY": 0.25718635831161385, + "timestamp": 2.063387227644268 + }, + { + "x": 8.029805183410645, + "y": 7.180410385131836, + "heading": -1.5403204326632027e-19, + "angularVelocity": -0.10866351985547505, + "velocityX": 0.6389788773328549, + "velocityY": 0.1285931771210457, + "timestamp": 2.157177556173553 + }, + { + "x": 8.029805183410645, + "y": 7.180410385131836, + "heading": -1.5143595129762703e-19, + "angularVelocity": -2.854862345939135e-20, + "velocityX": 1.5619014793820894e-19, + "velocityY": 5.756387803346198e-20, + "timestamp": 2.250967884702838 + }, + { + "x": 7.977782055764913, + "y": 7.164211731514623, + "heading": 0.007845907070085154, + "angularVelocity": 0.08862253925843301, + "velocityX": -0.5876212439105888, + "velocityY": -0.1829700254287652, + "timestamp": 2.3394996186808683 + }, + { + "x": 7.873735810540943, + "y": 7.131814420329787, + "heading": 0.023538488906928237, + "angularVelocity": 0.17725374994617482, + "velocityX": -1.1752423741049713, + "velocityY": -0.36594009547893014, + "timestamp": 2.428031352658899 + }, + { + "x": 7.717666465286569, + "y": 7.0832184446557225, + "heading": 0.04707901098544824, + "angularVelocity": 0.2658992546600486, + "velocityX": -1.7628633060898011, + "velocityY": -0.548910243711303, + "timestamp": 2.5165630866369293 + }, + { + "x": 7.50957404571599, + "y": 7.018423792773334, + "heading": 0.07846909232757103, + "angularVelocity": 0.3545630468495328, + "velocityX": -2.3504839476228767, + "velocityY": -0.7318805243153491, + "timestamp": 2.60509482061496 + }, + { + "x": 7.249458590154704, + "y": 6.937430446851037, + "heading": 0.11771030908646642, + "angularVelocity": 0.4432446422955327, + "velocityX": -2.9381041562546777, + "velocityY": -0.9148510063340223, + "timestamp": 2.6936265545929903 + }, + { + "x": 6.9403504261875275, + "y": 6.841180717415368, + "heading": 0.11771031338168697, + "angularVelocity": 4.8516168957241446e-8, + "velocityX": -3.4914956488244515, + "velocityY": -1.0871777283787833, + "timestamp": 2.7821582885710208 + }, + { + "x": 6.631242265256751, + "y": 6.74493097822586, + "heading": 0.1177103176763249, + "angularVelocity": 4.850958782691505e-8, + "velocityX": -3.4914956145271363, + "velocityY": -1.0871778385521202, + "timestamp": 2.8706900225490513 + }, + { + "x": 6.3221341042798125, + "y": 6.6486812391846035, + "heading": 0.11771032197096283, + "angularVelocity": 4.850958799660226e-8, + "velocityX": -3.4914956150485508, + "velocityY": -1.087177836877585, + "timestamp": 2.9592217565270817 + }, + { + "x": 6.013025943341647, + "y": 6.552431500018828, + "heading": 0.11771032626560081, + "angularVelocity": 4.8509588352896574e-8, + "velocityX": -3.4914956146105998, + "velocityY": -1.0871778382840753, + "timestamp": 3.0477534905051122 + }, + { + "x": 5.703917779977134, + "y": 6.456181768647687, + "heading": 0.11771033056081937, + "angularVelocity": 4.851614628573155e-8, + "velocityX": -3.491495642017128, + "velocityY": -1.0871777502406696, + "timestamp": 3.1362852244831427 + }, + { + "x": 5.443802852291196, + "y": 6.375187913058336, + "heading": 0.15698715456634274, + "angularVelocity": 0.44364683984694225, + "velocityX": -2.9380981936995307, + "velocityY": -0.9148567632195014, + "timestamp": 3.224816958461173 + }, + { + "x": 5.235710915275229, + "y": 6.310392799606434, + "heading": 0.18840994792999097, + "angularVelocity": 0.35493254171940114, + "velocityX": -2.3504784969828454, + "velocityY": -0.7318857379206117, + "timestamp": 3.3133486924392037 + }, + { + "x": 5.079641966218732, + "y": 6.261796449920312, + "heading": 0.21197753584446782, + "angularVelocity": 0.2662049736914137, + "velocityX": -1.7628588308823359, + "velocityY": -0.548914468321395, + "timestamp": 3.401880426417234 + }, + { + "x": 4.975596000715217, + "y": 6.229398878335517, + "heading": 0.2276893987993674, + "angularVelocity": 0.17747153759349776, + "velocityX": -1.1752392145548016, + "velocityY": -0.3659430367966726, + "timestamp": 3.4904121603952647 + }, + { + "x": 4.923573017120361, + "y": 6.213200092315674, + "heading": 0.23554532977562304, + "angularVelocity": 0.08873576313556827, + "velocityX": -0.5876196168005193, + "velocityY": -0.18297152096741656, + "timestamp": 3.578943894373295 + }, + { + "x": 4.923573017120361, + "y": 6.213200092315674, + "heading": 0.23554532977562304, + "angularVelocity": -4.4557329542893123e-20, + "velocityX": 9.178744124267652e-20, + "velocityY": 4.4873769036430355e-20, + "timestamp": 3.6674756283513257 + }, + { + "x": 4.976262359083494, + "y": 6.204211295952416, + "heading": 0.22497404740616994, + "angularVelocity": -0.12050665436480094, + "velocityX": 0.600628769410924, + "velocityY": -0.10246720678209494, + "timestamp": 3.7551992683874307 + }, + { + "x": 5.081663106400117, + "y": 6.186229734618521, + "heading": 0.2051184155284092, + "angularVelocity": -0.2263430002401704, + "velocityX": 1.20150904902308, + "velocityY": -0.2049796534491144, + "timestamp": 3.8429229084235357 + }, + { + "x": 5.23980338600934, + "y": 6.1592505270678295, + "heading": 0.17793825550147288, + "angularVelocity": -0.30983848841372325, + "velocityX": 1.8027099598709833, + "velocityY": -0.3075477435681723, + "timestamp": 3.9306465484596407 + }, + { + "x": 5.450715913523779, + "y": 6.123268329544682, + "heading": 0.14677650230362854, + "angularVelocity": -0.35522640402312194, + "velocityX": 2.404283810243538, + "velocityY": -0.4101767494866671, + "timestamp": 4.018370188495745 + }, + { + "x": 5.71440675063786, + "y": 6.078282986612711, + "heading": 0.11861550472466739, + "angularVelocity": -0.321019483087692, + "velocityX": 3.0059267605123567, + "velocityY": -0.5128075272920207, + "timestamp": 4.10609382853185 + }, + { + "x": 6.03025451353813, + "y": 6.024436884344235, + "heading": 0.11767251558753837, + "angularVelocity": -0.010749544099411572, + "velocityX": 3.6004862859119227, + "velocityY": -0.6138151842116195, + "timestamp": 4.193817468567954 + }, + { + "x": 6.346475636674256, + "y": 5.970479408408474, + "heading": 0.11767250521570034, + "angularVelocity": -1.1823310146086215e-7, + "velocityX": 3.6047423819392157, + "velocityY": -0.6150847811781829, + "timestamp": 4.281541108604059 + }, + { + "x": 6.662696759700643, + "y": 5.916521931829571, + "heading": 0.11767249484386287, + "angularVelocity": -1.1823309505995875e-7, + "velocityX": 3.6047423806882386, + "velocityY": -0.6150847885096368, + "timestamp": 4.3692647486401635 + }, + { + "x": 6.978917882822774, + "y": 5.862564455811782, + "heading": 0.11767248447202486, + "angularVelocity": -1.182331011358331e-7, + "velocityX": 3.6047423817796624, + "velocityY": -0.6150847821132567, + "timestamp": 4.456988388676268 + }, + { + "x": 7.29476901407188, + "y": 5.808714720950228, + "heading": 0.11673860844372616, + "angularVelocity": -0.010645659800645866, + "velocityX": 3.6005246831881257, + "velocityY": -0.6138565937230951, + "timestamp": 4.544712028712373 + }, + { + "x": 7.558460925573039, + "y": 5.76372860364344, + "heading": 0.08862558626816161, + "angularVelocity": -0.3204725905581884, + "velocityX": 3.005939007918847, + "velocityY": -0.5128163547280221, + "timestamp": 4.632435668748477 + }, + { + "x": 7.769374450560142, + "y": 5.727745631951145, + "heading": 0.05752619060297154, + "angularVelocity": -0.3545155633349269, + "velocityX": 2.404295180869109, + "velocityY": -0.4101855745781148, + "timestamp": 4.720159308784582 + }, + { + "x": 7.927515620226354, + "y": 5.700765664089877, + "heading": 0.030393120465028865, + "angularVelocity": -0.3093016902487785, + "velocityX": 1.8027201060184643, + "velocityY": -0.3075564106797736, + "timestamp": 4.807882948820686 + }, + { + "x": 8.032916964145462, + "y": 5.682783456079591, + "heading": 0.010562795048926609, + "angularVelocity": -0.22605452085595826, + "velocityX": 1.2015158499547787, + "velocityY": -0.20498702519508957, + "timestamp": 4.895606588856791 + }, + { + "x": 8.085606575012207, + "y": 5.673794269561768, + "heading": 1.3549285413243613e-17, + "angularVelocity": -0.12040990369960944, + "velocityX": 0.6006318347603821, + "velocityY": -0.1024716543240064, + "timestamp": 4.983330228892895 + }, + { + "x": 8.085606575012207, + "y": 5.673794269561768, + "heading": 1.3789902561459072e-17, + "angularVelocity": 2.7952519766367576e-18, + "velocityX": -1.7194569329753236e-17, + "velocityY": 1.867684279393307e-18, + "timestamp": 5.071053868929 + }, + { + "x": 8.031831521176109, + "y": 5.680016482032018, + "heading": 0.01228794346008448, + "angularVelocity": 0.13914898483607424, + "velocityX": -0.6089500798164236, + "velocityY": 0.07046049255370945, + "timestamp": 5.1593616885984055 + }, + { + "x": 7.9242724093739, + "y": 5.6924629124746104, + "heading": 0.03642124685929677, + "angularVelocity": 0.27328614260390355, + "velocityX": -1.2180021226304998, + "velocityY": 0.1409436954642003, + "timestamp": 5.247669508267811 + }, + { + "x": 7.762915260533646, + "y": 5.711136820956851, + "heading": 0.07167786000455947, + "angularVelocity": 0.39924678558764254, + "velocityX": -1.8272124648114023, + "velocityY": 0.2114638154599267, + "timestamp": 5.335977327937217 + }, + { + "x": 7.5477357103225025, + "y": 5.736044315869435, + "heading": 0.11667225209980614, + "angularVelocity": 0.5095176425337026, + "velocityX": -2.4366987093181898, + "velocityY": 0.28205310702755476, + "timestamp": 5.424285147606622 + }, + { + "x": 7.278684003301139, + "y": 5.767200005582985, + "heading": 0.1676389581166344, + "angularVelocity": 0.5771482775549128, + "velocityX": -3.0467483856877364, + "velocityY": 0.3528078241562921, + "timestamp": 5.512592967276028 + }, + { + "x": 6.9578776989840305, + "y": 5.804154953260779, + "heading": 0.16763897467157093, + "angularVelocity": 1.8746852304717014e-7, + "velocityX": -3.6328187641604055, + "velocityY": 0.4184787691072228, + "timestamp": 5.6009007869454335 + }, + { + "x": 6.637087948695037, + "y": 5.84125338261765, + "heading": 0.16763898257122964, + "angularVelocity": 8.945593599492644e-8, + "velocityX": -3.632631305924235, + "velocityY": 0.42010355929694115, + "timestamp": 5.689208606614839 + }, + { + "x": 6.316298197633932, + "y": 5.878351805298053, + "heading": 0.16763899047088832, + "angularVelocity": 8.94559361551517e-8, + "velocityX": -3.632631314667653, + "velocityY": 0.4201034836924587, + "timestamp": 5.777516426284245 + }, + { + "x": 5.995508447484614, + "y": 5.915450235862703, + "heading": 0.16763899837054705, + "angularVelocity": 8.945593649758392e-8, + "velocityX": -3.632631304342544, + "velocityY": 0.4201035729738787, + "timestamp": 5.86582424595365 + }, + { + "x": 5.674700004894931, + "y": 5.952386616366171, + "heading": 0.16763901501362968, + "angularVelocity": 1.884666917047776e-7, + "velocityX": -3.6328429780135245, + "velocityY": 0.4182685139520664, + "timestamp": 5.954132065623056 + }, + { + "x": 5.405646774421004, + "y": 5.9835463265602655, + "heading": 0.21842500256096314, + "angularVelocity": 0.575101817001684, + "velocityX": -3.0467656373033782, + "velocityY": 0.35285335218042607, + "timestamp": 6.0424398852924615 + }, + { + "x": 5.190465936804369, + "y": 6.008455477656158, + "heading": 0.2632886887773245, + "angularVelocity": 0.5080375258308467, + "velocityX": -2.4367132879307802, + "velocityY": 0.28207186168953324, + "timestamp": 6.130747704961867 + }, + { + "x": 5.029107646558979, + "y": 6.027129895947731, + "heading": 0.29843729202517444, + "angularVelocity": 0.3980236787572713, + "velocityX": -1.8272253901122453, + "velocityY": 0.21146958855381004, + "timestamp": 6.219055524631273 + }, + { + "x": 4.921547644616536, + "y": 6.0395762783958595, + "heading": 0.3224912860382225, + "angularVelocity": 0.27238804109419384, + "velocityX": -1.218012202601224, + "velocityY": 0.1409431519736808, + "timestamp": 6.307363344300678 + }, + { + "x": 4.867772102355957, + "y": 6.045798301696777, + "heading": 0.3347373560918674, + "angularVelocity": 0.13867480931462675, + "velocityX": -0.608955610747675, + "velocityY": 0.0704583503953688, + "timestamp": 6.395671163970084 + }, + { + "x": 4.867772102355957, + "y": 6.045798301696777, + "heading": 0.33473735609186744, + "angularVelocity": 4.382681997898838e-18, + "velocityX": -1.543981625318142e-17, + "velocityY": 3.906065285900497e-18, + "timestamp": 6.483978983639489 + }, + { + "x": 4.903863667608455, + "y": 6.02320970068788, + "heading": 0.3176283286495271, + "angularVelocity": -0.21789742702603002, + "velocityX": 0.45965553754386096, + "velocityY": -0.28768426823466187, + "timestamp": 6.562497705387848 + }, + { + "x": 4.97607330221684, + "y": 5.978022456807334, + "heading": 0.28416125038798334, + "angularVelocity": -0.4262305538900727, + "velocityX": 0.9196486264741721, + "velocityY": -0.5754964277865501, + "timestamp": 6.641016427136207 + }, + { + "x": 5.084438498484905, + "y": 5.910221807895856, + "heading": 0.23546843743464, + "angularVelocity": -0.6201427107970054, + "velocityX": 1.3801192104904565, + "velocityY": -0.8634965954841877, + "timestamp": 6.719535148884566 + }, + { + "x": 5.22901600346336, + "y": 5.819784226720369, + "heading": 0.1734672887277426, + "angularVelocity": -0.7896352274506186, + "velocityX": 1.8413125145083822, + "velocityY": -1.151796401695455, + "timestamp": 6.798053870632924 + }, + { + "x": 5.409900027598653, + "y": 5.706672008533781, + "heading": 0.10216278395557017, + "angularVelocity": -0.9081210593403839, + "velocityX": 2.3037056654462664, + "velocityY": -1.4405764086315203, + "timestamp": 6.876572592381283 + }, + { + "x": 5.6271877913909565, + "y": 5.5708949038667654, + "heading": 0.034869610187120266, + "angularVelocity": -0.8570334853910997, + "velocityX": 2.767336998794774, + "velocityY": -1.7292322346021154, + "timestamp": 6.955091314129642 + }, + { + "x": 5.870534449133084, + "y": 5.418492861386192, + "heading": 0.03486959490632962, + "angularVelocity": -1.946133394861258e-7, + "velocityX": 3.0992182797119168, + "velocityY": -1.9409643851437186, + "timestamp": 7.0336100358780005 + }, + { + "x": 6.113881141917006, + "y": 5.266090874858927, + "heading": 0.03486957962493756, + "angularVelocity": -1.9462099894460953e-7, + "velocityX": 3.0992187259977815, + "velocityY": -1.9409636725326747, + "timestamp": 7.112128757626359 + }, + { + "x": 6.357227836710708, + "y": 5.11368889154076, + "heading": 0.034869564343545455, + "angularVelocity": -1.946209994358398e-7, + "velocityX": 3.0992187515939538, + "velocityY": -1.940963631662183, + "timestamp": 7.190647479374718 + }, + { + "x": 6.600574531479444, + "y": 4.961286908182731, + "heading": 0.03486954906215342, + "angularVelocity": -1.9462099865061453e-7, + "velocityX": 3.099218751276004, + "velocityY": -1.9409636321698667, + "timestamp": 7.269166201123077 + }, + { + "x": 6.843921226325159, + "y": 4.808884924947618, + "heading": 0.0348695337807613, + "angularVelocity": -1.9462099972826922e-7, + "velocityX": 3.0992187522563985, + "velocityY": -1.94096363060443, + "timestamp": 7.347684922871435 + }, + { + "x": 7.0872679867661, + "y": 4.656483046451265, + "heading": 0.03486951849933531, + "angularVelocity": -1.9462143091831554e-7, + "velocityX": 3.09921958766512, + "velocityY": -1.9409622966708406, + "timestamp": 7.426203644619794 + }, + { + "x": 7.326944519044576, + "y": 4.516245452265137, + "heading": 0.014066081529308494, + "angularVelocity": -0.2649487473407811, + "velocityX": 3.0524762367707154, + "velocityY": -1.7860402087997493, + "timestamp": 7.504722366368153 + }, + { + "x": 7.531642013688098, + "y": 4.397938693744427, + "heading": -0.04490743964327847, + "angularVelocity": -0.7510759199772535, + "velocityX": 2.6069896463616553, + "velocityY": -1.5067331190116233, + "timestamp": 7.5832410881165115 + }, + { + "x": 7.700074517764121, + "y": 4.302497700076849, + "heading": -0.10898814253347225, + "angularVelocity": -0.8161200470833309, + "velocityX": 2.1451253959001613, + "velocityY": -1.2155189430293092, + "timestamp": 7.66175980986487 + }, + { + "x": 7.832208824413671, + "y": 4.229887486816899, + "heading": -0.16889030145230455, + "angularVelocity": -0.7629028795299307, + "velocityX": 1.6828382289897996, + "velocityY": -0.9247503225110407, + "timestamp": 7.740278531613229 + }, + { + "x": 7.928084111700808, + "y": 4.180056487400386, + "heading": -0.2202565054701057, + "angularVelocity": -0.6541905277371027, + "velocityX": 1.2210500266981292, + "velocityY": -0.6346384442708259, + "timestamp": 7.818797253361588 + }, + { + "x": 7.987739128273294, + "y": 4.1529638156446245, + "heading": -0.26053803654554536, + "angularVelocity": -0.5130181716984267, + "velocityX": 0.7597553200582032, + "velocityY": -0.34504728493402975, + "timestamp": 7.897315975109946 + }, + { + "x": 8.011205673217773, + "y": 4.14857816696167, + "heading": -0.288054962130024, + "angularVelocity": -0.3504505036730943, + "velocityX": 0.2988656007376954, + "velocityY": -0.05585481507213175, + "timestamp": 7.975834696858305 + }, + { + "x": 7.99065265340485, + "y": 4.173303490266494, + "heading": -0.30126760937320984, + "angularVelocity": -0.14693899986760597, + "velocityX": -0.22857192203690077, + "velocityY": 0.27497247227940913, + "timestamp": 8.06575396441211 + }, + { + "x": 7.922647232931338, + "y": 4.22778256807063, + "heading": -0.29702135633462856, + "angularVelocity": 0.04722294958689644, + "velocityX": -0.7562941994920132, + "velocityY": 0.6058665654892884, + "timestamp": 8.155673231965915 + }, + { + "x": 7.807152216745808, + "y": 4.312023146342467, + "heading": -0.2765961187816114, + "angularVelocity": 0.22715084440382624, + "velocityX": -1.2844301263510791, + "velocityY": 0.9368468022877369, + "timestamp": 8.24559249951972 + }, + { + "x": 7.644109928873724, + "y": 4.426034622592684, + "heading": -0.2421410152647003, + "angularVelocity": 0.3831782047857269, + "velocityX": -1.813207472742426, + "velocityY": 1.2679315496202845, + "timestamp": 8.335511767073525 + }, + { + "x": 7.433422032287237, + "y": 4.569822041127431, + "heading": -0.19801570209656016, + "angularVelocity": 0.49072144790036093, + "velocityX": -2.343078433778598, + "velocityY": 1.5990723951205463, + "timestamp": 8.42543103462733 + }, + { + "x": 7.174950855403372, + "y": 4.743283480361943, + "heading": -0.1581400022906659, + "angularVelocity": 0.44346112786155, + "velocityX": -2.8744804524703853, + "velocityY": 1.9290797618065416, + "timestamp": 8.515350302181135 + }, + { + "x": 6.8965540900738835, + "y": 4.91826413098903, + "heading": -0.1581399896292387, + "angularVelocity": 1.4080883424863374e-7, + "velocityX": -3.0960746556671572, + "velocityY": 1.9459750439179786, + "timestamp": 8.60526956973494 + }, + { + "x": 6.618157289478816, + "y": 5.093244725508082, + "heading": -0.15813997696783524, + "angularVelocity": 1.4080856979053156e-7, + "velocityX": -3.096075047858723, + "velocityY": 1.9459744199356437, + "timestamp": 8.695188837288745 + }, + { + "x": 6.339760488657226, + "y": 5.268225319666733, + "heading": -0.15813996430643187, + "angularVelocity": 1.4080856886565356e-7, + "velocityX": -3.0960750503779084, + "velocityY": 1.9459744159275851, + "timestamp": 8.78510810484255 + }, + { + "x": 6.061363707929087, + "y": 5.443205945794379, + "heading": -0.1581399516450285, + "angularVelocity": 1.4080856880826848e-7, + "velocityX": -3.0960748269168854, + "velocityY": 1.945974771457558, + "timestamp": 8.875027372396355 + }, + { + "x": 5.782315347271137, + "y": 5.617145582087979, + "heading": -0.1581399318842445, + "angularVelocity": 2.1976139881035488e-7, + "velocityX": -3.1033211040223123, + "velocityY": 1.9343978329174265, + "timestamp": 8.96494663995016 + }, + { + "x": 5.545600487148874, + "y": 5.7664037944649005, + "heading": -0.0652854431922894, + "angularVelocity": 1.0326428497250173, + "velocityX": -2.63252656034616, + "velocityY": 1.6599135695540421, + "timestamp": 9.054865907503965 + }, + { + "x": 5.356283433091156, + "y": 5.885661177144069, + "heading": 0.01339587840576429, + "angularVelocity": 0.8750218250050805, + "velocityX": -2.105411434144947, + "velocityY": 1.326271731559752, + "timestamp": 9.14478517505777 + }, + { + "x": 5.2143192278784625, + "y": 5.975050723105011, + "heading": 0.07389681820108311, + "angularVelocity": 0.6728362167665074, + "velocityX": -1.5787962810945682, + "velocityY": 0.9941089200649296, + "timestamp": 9.234704442611575 + }, + { + "x": 5.119686824011737, + "y": 6.034621449602944, + "heading": 0.11484048218322652, + "angularVelocity": 0.45533805040886816, + "velocityX": -1.0524151991129291, + "velocityY": 0.6624912337312708, + "timestamp": 9.32462371016538 + }, + { + "x": 5.07237434387207, + "y": 6.064398765563965, + "heading": 0.13552729798344068, + "angularVelocity": 0.2300598788556157, + "velocityX": -0.5261662091648605, + "velocityY": 0.3311561222760583, + "timestamp": 9.414542977719185 + }, + { + "x": 5.07237434387207, + "y": 6.064398765563965, + "heading": 0.13552729798344068, + "angularVelocity": -1.77685785505055e-19, + "velocityX": 4.577974587806203e-18, + "velocityY": -2.482755140410445e-18, + "timestamp": 9.50446224527299 } ], "constraints": [ @@ -1932,58 +1588,49 @@ "first" ], "type": "StopPoint", - "uuid": "b1a6932a-81ed-4f77-9ef6-e63e2a832e36" + "uuid": "f1872a51-13bb-41ae-b1d9-079e99aa2623" }, { "scope": [ - 1 + "last" ], "type": "StopPoint", - "uuid": "ef354677-2b6b-4171-aaef-587377d39b69" + "uuid": "c2571435-ade8-4321-a8da-9f587cf8216c" }, { "scope": [ - 2, - 8 + 0 ], - "type": "MaxVelocity", - "uuid": "59c28855-22c6-46c7-8545-932700f028ae", - "velocity": 1.2 + "type": "StopPoint", + "uuid": "b949a0d8-cc76-43fe-b78e-94fb2623c65a" }, { "scope": [ - 2, - 3 + 1 ], - "type": "ZeroAngularVelocity", - "uuid": "4c477f6c-d3c3-4174-8fd3-c133f4de9207" + "type": "StopPoint", + "uuid": "9c3c7319-d47a-4aa9-baf6-e7a8a54be4c7" }, { "scope": [ - 9, - 10 + 2 ], - "type": "MaxVelocity", - "uuid": "9bb07e11-0347-46d1-a512-97901ece5ed2", - "velocity": 0.7 + "type": "StopPoint", + "uuid": "2a053d4d-a285-445b-b703-d679b1efee07" }, { "scope": [ - 11, - 12 + 3 ], - "type": "MaxVelocity", - "uuid": "b5f98f79-332e-476c-a061-2f84d5aaa010", - "velocity": 1.2 + "type": "StopPoint", + "uuid": "ec868a5d-2608-4185-bf6d-7300a0fe7929" }, { "scope": [ - 13, - 14 + 4 ], - "type": "MaxVelocity", - "uuid": "1581cd49-0881-4941-b34a-f384cb5fe29e", - "velocity": 0.7 + "type": "StopPoint", + "uuid": "84763776-b9aa-4b26-b952-ae025f78f55b" } ], "usesControlIntervalGuessing": true, @@ -1991,612 +1638,101 @@ "usesDefaultFieldObstacles": true, "circleObstacles": [] }, - "3Spike": { + "6Note": { "waypoints": [ { - "x": 1.3269914388656616, - "y": 4.39792537689209, - "heading": -0.8519661022091116, + "x": 2.20794415473938, + "y": 3.664973258972168, + "heading": -0.7354400074149414, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, "controlIntervalCount": 14 }, { - "x": 2.096055269241333, - "y": 3.8164384365081787, - "heading": 0.23255650839848893, + "x": 3.175154209136963, + "y": 4.036977291107178, + "heading": 0.4964219619537652, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 7 + "controlIntervalCount": 10 }, { - "x": 2.499344825744629, - "y": 4.060287952423096, + "x": 2.9901087284088135, + "y": 4.7824883460998535, "heading": 0, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 7 + "controlIntervalCount": 5 }, { - "x": 2.5, - "y": 4.45, - "heading": -0.3, + "x": 2.9455201625823975, + "y": 4.960843563079834, + "heading": 0.29423418735375584, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, "controlIntervalCount": 6 }, { - "x": 2.6400270462036133, - "y": 4.9, - "heading": -0.3, + "x": 2.8775510787963867, + "y": 5.338991165161133, + "heading": 0.18998808677928647, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 12 + "controlIntervalCount": 10 }, { - "x": 2.75, - "y": 4.9, - "heading": 1.57, + "x": 2.9705522060394287, + "y": 6.715405464172363, + "heading": 0.2551827989840428, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 7 + "controlIntervalCount": 20 }, { - "x": 2.75, - "y": 5.5, - "heading": 1.57, + "x": 7.862403869628906, + "y": 7.236210823059082, + "heading": 0.04995916288883634, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 40 - } - ], - "trajectory": [ - { - "x": 1.3269914388656616, - "y": 4.39792537689209, - "heading": -0.8519661022091116, - "angularVelocity": 0, - "velocityX": 0, - "velocityY": 0, - "timestamp": 0 - }, - { - "x": 1.333513997411188, - "y": 4.387203709271714, - "heading": -0.8332351514575969, - "angularVelocity": 0.40842901188133685, - "velocityX": 0.14222460872532702, - "velocityY": -0.2337863235028909, - "timestamp": 0.04586097022156875 - }, - { - "x": 1.3467826201629625, - "y": 4.365882340785122, - "heading": -0.7959323522941728, - "angularVelocity": 0.8133887918899778, - "velocityX": 0.2893227659089947, - "velocityY": -0.4649131578242103, - "timestamp": 0.0917219404431375 - }, - { - "x": 1.367096650503852, - "y": 4.334120690383467, - "heading": -0.7403859703551774, - "angularVelocity": 1.21119072864428, - "velocityX": 0.44294811563615344, - "velocityY": -0.6925638565474022, - "timestamp": 0.13758291066470624 - }, - { - "x": 1.394861349124937, - "y": 4.292141697873546, - "heading": -0.6671219475387827, - "angularVelocity": 1.5975244845984082, - "velocityX": 0.6054101883790317, - "velocityY": -0.9153533452761209, - "timestamp": 0.183443880886275 - }, - { - "x": 1.430646384004042, - "y": 4.240291060193454, - "heading": -0.5768914970162948, - "angularVelocity": 1.9674780120559225, - "velocityX": 0.7802938905613228, - "velocityY": -1.130604900628666, - "timestamp": 0.22930485110784377 - }, - { - "x": 1.4753118159731884, - "y": 4.179187224074356, - "heading": -0.4707408110774181, - "angularVelocity": 2.3146192814070323, - "velocityX": 0.9739312481474731, - "velocityY": -1.3323712041826856, - "timestamp": 0.27516582132941253 - }, - { - "x": 1.5302943233607504, - "y": 4.110166528705352, - "heading": -0.3504561598343917, - "angularVelocity": 2.6228108708100475, - "velocityX": 1.1988954250624084, - "velocityY": -1.5049985867185927, - "timestamp": 0.3210267915509813 - }, - { - "x": 1.5980403774204008, - "y": 4.0370266304131235, - "heading": -0.2213773500302043, - "angularVelocity": 2.8145677943699647, - "velocityX": 1.477204990045953, - "velocityY": -1.5948179451692148, - "timestamp": 0.36688776177255006 - }, - { - "x": 1.6779338120627578, - "y": 3.9699528764898666, - "heading": -0.09749875706374012, - "angularVelocity": 2.7011768911117184, - "velocityX": 1.742079032701809, - "velocityY": -1.4625454629329036, - "timestamp": 0.4127487319941188 - }, - { - "x": 1.762553862107012, - "y": 3.914807637304757, - "heading": 0.010619630767232302, - "angularVelocity": 2.3575250874244156, - "velocityX": 1.8451430407038498, - "velocityY": -1.2024437973877604, - "timestamp": 0.4586097022156876 - }, - { - "x": 1.8480147040992523, - "y": 3.872006113916856, - "heading": 0.09844406396935727, - "angularVelocity": 1.9150147233653705, - "velocityX": 1.8634765374424491, - "velocityY": -0.9332886587683153, - "timestamp": 0.5044706724372563 - }, - { - "x": 1.9326347476825954, - "y": 3.8414277812280493, - "heading": 0.16488095802435299, - "angularVelocity": 1.4486587120599115, - "velocityX": 1.8451428998234738, - "velocityY": -0.6667615739717827, - "timestamp": 0.5503316426588251 - }, - { - "x": 2.015500889838408, - "y": 3.8229408161865948, - "heading": 0.20962371332846336, - "angularVelocity": 0.9756172860701385, - "velocityX": 1.8068990201354285, - "velocityY": -0.40310889525751753, - "timestamp": 0.5961926128803938 - }, - { - "x": 2.096055269241333, - "y": 3.8164384365081783, - "heading": 0.23255650839848893, - "angularVelocity": 0.5000503687390396, - "velocityX": 1.7564909554625945, - "velocityY": -0.14178460784849248, - "timestamp": 0.6420535831019626 - }, - { - "x": 2.169861583576719, - "y": 3.8209387927505536, - "heading": 0.23468746359287693, - "angularVelocity": 0.049123667766486946, - "velocityX": 1.7014139358860232, - "velocityY": 0.10374408878397706, - "timestamp": 0.6854329823055731 - }, - { - "x": 2.240363784904268, - "y": 3.8361456579806616, - "heading": 0.21972330792773048, - "angularVelocity": -0.3449599565662249, - "velocityX": 1.6252461449876687, - "velocityY": 0.35055499866955947, - "timestamp": 0.7288123815091837 - }, - { - "x": 2.3064164966295926, - "y": 3.861977794130398, - "heading": 0.19077614253377356, - "angularVelocity": -0.6673021278622857, - "velocityX": 1.5226746552042265, - "velocityY": 0.5954931747322527, - "timestamp": 0.7721917807127943 - }, - { - "x": 2.366685094129252, - "y": 3.8980997052524633, - "heading": 0.1512071128503967, - "angularVelocity": -0.9121617728648345, - "velocityX": 1.3893368420520344, - "velocityY": 0.8326973583133246, - "timestamp": 0.8155711799164048 - }, - { - "x": 2.41978296792177, - "y": 3.943862475881486, - "heading": 0.10416005613005118, - "angularVelocity": -1.084548370518457, - "velocityX": 1.2240343289055675, - "velocityY": 1.0549424719836538, - "timestamp": 0.8589505791200154 - }, - { - "x": 2.4643919768040097, - "y": 3.9983256079338245, - "heading": 0.0526756800424131, - "angularVelocity": -1.18683930697115, - "velocityX": 1.0283454750688807, - "velocityY": 1.2555068316346145, - "timestamp": 0.9023299783236259 - }, - { - "x": 2.499344825744629, - "y": 4.060287952423096, - "heading": 3.33452988603619e-32, - "angularVelocity": -1.214301742519955, - "velocityX": 0.805747649398295, - "velocityY": 1.4283818039627032, - "timestamp": 0.9457093775272365 - }, - { - "x": 2.523403938669763, - "y": 4.12670444317368, - "heading": -0.049468562293879026, - "angularVelocity": -1.1662999834075207, - "velocityX": 0.5672318277350724, - "velocityY": 1.5658743344958055, - "timestamp": 0.9881243333684852 - }, - { - "x": 2.5364666185648104, - "y": 4.197030421591671, - "heading": -0.09653835267359968, - "angularVelocity": -1.109745122826349, - "velocityX": 0.3079734408763396, - "velocityY": 1.658046720152395, - "timestamp": 1.0305392892097338 - }, - { - "x": 2.537870729336966, - "y": 4.267128606265824, - "heading": -0.14073751847846447, - "angularVelocity": -1.0420655857875718, - "velocityX": 0.03310414320388964, - "velocityY": 1.65267612057683, - "timestamp": 1.0729542450509824 - }, - { - "x": 2.5301525844049313, - "y": 4.329958394850495, - "heading": -0.1822098664897901, - "angularVelocity": -0.9777765221906387, - "velocityX": -0.1819675343037494, - "velocityY": 1.4813121300852452, - "timestamp": 1.115369200892231 - }, - { - "x": 2.5191102993462846, - "y": 4.381587731788539, - "heading": -0.22206682765430108, - "angularVelocity": -0.9396912097159363, - "velocityX": -0.26033942131110027, - "velocityY": 1.217243680066123, - "timestamp": 1.1577841567334795 - }, - { - "x": 2.5084288948755984, - "y": 4.421531111089479, - "heading": -0.2611721666603998, - "angularVelocity": -0.9219705226727761, - "velocityX": -0.25183108785176694, - "velocityY": 0.94172865463871, - "timestamp": 1.200199112574728 - }, - { - "x": 2.5, - "y": 4.45, - "heading": -0.3, - "angularVelocity": -0.9154278855063672, - "velocityX": -0.1987245939179124, - "velocityY": 0.6711993056665078, - "timestamp": 1.2426140684159765 - }, - { - "x": 2.5193699694803637, - "y": 4.526734764577753, - "heading": -0.6391389887177107, - "angularVelocity": -2.999645914621537, - "velocityX": 0.17132518451448528, - "velocityY": 0.6787102949897058, - "timestamp": 1.3556737422476777 - }, - { - "x": 2.5387399844003316, - "y": 4.6034695176852845, - "heading": -1.2190938747349336, - "angularVelocity": -5.12963523033465, - "velocityX": 0.17132558642263376, - "velocityY": 0.6787101935368887, - "timestamp": 1.4687334160793788 - }, - { - "x": 2.558109999348224, - "y": 4.680204270785767, - "heading": -1.511597411804606, - "angularVelocity": -2.58716063081064, - "velocityX": 0.17132558666962455, - "velocityY": 0.6787101934745414, - "timestamp": 1.58179308991108 - }, - { - "x": 2.577480014296659, - "y": 4.756939023886113, - "heading": -1.4587662970367927, - "angularVelocity": 0.46728522184188176, - "velocityX": 0.1713255866744186, - "velocityY": 0.6787101934733313, - "timestamp": 1.694852763742781 - }, - { - "x": 2.5968501077533794, - "y": 4.833673757168711, - "heading": -1.0457294063544558, - "angularVelocity": 3.6532644813497406, - "velocityX": 0.17132628107130865, - "velocityY": 0.6787100181875982, - "timestamp": 1.8079124375744822 - }, - { - "x": 2.6400270462036133, - "y": 4.9, - "heading": -0.3, - "angularVelocity": 6.5958920725752055, - "velocityX": 0.3818951265904639, - "velocityY": 0.5866480999230684, - "timestamp": 1.9209721114061833 - }, - { - "x": 2.65028611673258, - "y": 4.911101822443869, - "heading": -0.12187108053489694, - "angularVelocity": 6.729487849665297, - "velocityX": 0.3875748569117997, - "velocityY": 0.41941297050192267, - "timestamp": 1.94744201869251 - }, - { - "x": 2.660785716281329, - "y": 4.917835219089741, - "heading": 0.060531873273454315, - "angularVelocity": 6.890955523012834, - "velocityX": 0.3966617425279967, - "velocityY": 0.25437930601858355, - "timestamp": 1.973911925978837 - }, - { - "x": 2.6714281364807704, - "y": 4.920121500261387, - "heading": 0.24615978486608456, - "angularVelocity": 7.012790395700312, - "velocityX": 0.4020573281319579, - "velocityY": 0.0863728439587885, - "timestamp": 2.0003818332651635 - }, - { - "x": 2.6820026092586784, - "y": 4.9178796942564835, - "heading": 0.4333660134100134, - "angularVelocity": 7.072417236634274, - "velocityX": 0.3994903595061169, - "velocityY": -0.08469262776982427, - "timestamp": 2.02685174055149 - }, - { - "x": 2.692177602021045, - "y": 4.9111165494503615, - "heading": 0.6193545789499477, - "angularVelocity": 7.02641545087723, - "velocityX": 0.3843985040183, - "velocityY": -0.25550315431651316, - "timestamp": 2.0533216478378167 - }, - { - "x": 2.701026406563282, - "y": 4.901195651201101, - "heading": 0.7946225445644793, - "angularVelocity": 6.621404590452321, - "velocityX": 0.3342967712927192, - "velocityY": -0.3747991310262394, - "timestamp": 2.0797915551241433 - }, - { - "x": 2.7092405777751063, - "y": 4.892429852217793, - "heading": 0.9506886625791671, - "angularVelocity": 5.89598279761655, - "velocityX": 0.3103211175986155, - "velocityY": -0.3311609250643644, - "timestamp": 2.10626146241047 - }, - { - "x": 2.717843250419752, - "y": 4.886627760240061, - "heading": 1.093906101120617, - "angularVelocity": 5.410575752769251, - "velocityX": 0.3249982159586029, - "velocityY": -0.21919578013514107, - "timestamp": 2.1327313696967964 - }, - { - "x": 2.7263555670649233, - "y": 4.884431942213397, - "heading": 1.2272956538012554, - "angularVelocity": 5.039290513478366, - "velocityX": 0.3215846792772284, - "velocityY": -0.08295525945410186, - "timestamp": 2.159201276983123 - }, - { - "x": 2.7346242420728504, - "y": 4.885911244753091, - "heading": 1.3510610914689725, - "angularVelocity": 4.675703482031048, - "velocityX": 0.3123802028652458, - "velocityY": 0.05588620026853448, - "timestamp": 2.1856711842694496 - }, - { - "x": 2.742537461432789, - "y": 4.891093691725606, - "heading": 1.4652638899797559, - "angularVelocity": 4.31443893155514, - "velocityX": 0.298951532936642, - "velocityY": 0.1957863666259237, - "timestamp": 2.212141091555776 - }, - { - "x": 2.75, - "y": 4.9, - "heading": 1.57, - "angularVelocity": 3.956799277281427, - "velocityX": 0.2819253761068593, - "velocityY": 0.33646919039249157, - "timestamp": 2.238610998842103 - }, - { - "x": 2.7674728869027185, - "y": 4.97015192039149, - "heading": 1.8148137759040575, - "angularVelocity": 2.798622019433345, - "velocityX": 0.19974368618937863, - "velocityY": 0.801951231658216, - "timestamp": 2.326087540584466 - }, - { - "x": 2.7760292561397533, - "y": 5.08021838751503, - "heading": 1.9563256399870756, - "angularVelocity": 1.6177121461865793, - "velocityX": 0.09781330019007135, - "velocityY": 1.2582398084243995, - "timestamp": 2.413564082326829 - }, - { - "x": 2.7742938765095486, - "y": 5.226701796198958, - "heading": 1.976040818465192, - "angularVelocity": 0.22537674770204888, - "velocityX": -0.019838228576937924, - "velocityY": 1.6745450353461948, - "timestamp": 2.501040624069192 - }, - { - "x": 2.762838623484245, - "y": 5.364431983374006, - "heading": 1.782825401942879, - "angularVelocity": -2.2087683471915627, - "velocityX": -0.13095228500277664, - "velocityY": 1.5744813916020168, - "timestamp": 2.588517165811555 - }, - { - "x": 2.7543895903343842, - "y": 5.455020359988401, - "heading": 1.6426814209537794, - "angularVelocity": -1.6020750043120497, - "velocityX": -0.09658627309188043, - "velocityY": 1.0355733641276863, - "timestamp": 2.675993707553918 - }, - { - "x": 2.75, - "y": 5.5, - "heading": 1.57, - "angularVelocity": -0.830867561818363, - "velocityX": -0.05018019970785374, - "velocityY": 0.5141908803856656, - "timestamp": 2.7634702492962813 - }, - { - "x": 2.75, - "y": 5.5, - "heading": 1.57, - "angularVelocity": -2.798206983013458e-30, - "velocityX": 7.872829382238201e-31, - "velocityY": 0, - "timestamp": 2.8509467910386443 - } - ], - "constraints": [ - { - "scope": [ - "first" - ], - "type": "StopPoint", - "uuid": "a03a1a0f-af50-4b3e-be17-249ea7f9b21c" + "controlIntervalCount": 12 }, { - "scope": [ - "last" - ], - "type": "StopPoint", - "uuid": "2948cc63-8cc5-47ed-9e06-66af134206c2" + "x": 6.09645414352417, + "y": 6.149875164031982, + "heading": 0, + "isInitialGuess": false, + "translationConstrained": true, + "headingConstrained": true, + "controlIntervalCount": 12 }, { - "scope": [ - 3, - 4 - ], - "type": "MaxVelocity", - "uuid": "4dd86342-9f10-4fdc-8160-e1af8ae08f40", - "velocity": 0.7 + "x": 8.122806549072266, + "y": 5.580793380737305, + "heading": 0, + "isInitialGuess": false, + "translationConstrained": true, + "headingConstrained": true, + "controlIntervalCount": 12 }, { - "scope": [ - 3, - 4 - ], - "type": "ZeroAngularVelocity", - "uuid": "bc7e19cf-6df0-4b6e-9ad8-7c982f4ad86c" - } - ], - "usesControlIntervalGuessing": true, - "defaultControlIntervalCount": 40, - "usesDefaultFieldObstacles": true, - "circleObstacles": [] - }, - "New Path": { - "waypoints": [ - { - "x": 1.4851783514022827, - "y": 7.326318264007568, + "x": 5.977550983428955, + "y": 6.595761775970459, "heading": 0, "isInitialGuess": false, "translationConstrained": true, "headingConstrained": true, - "controlIntervalCount": 30 + "controlIntervalCount": 11 }, { - "x": 10.1687593460083, - "y": 7.326318740844727, + "x": 7.865139007568359, + "y": 6.432270050048828, "heading": 0, "isInitialGuess": false, "translationConstrained": true, @@ -2606,283 +1742,1021 @@ ], "trajectory": [ { - "x": 1.4851783514022827, - "y": 7.326318264007568, - "heading": 0, + "x": 2.20794415473938, + "y": 3.664973258972168, + "heading": -0.7354400074149414, "angularVelocity": 0, "velocityX": 0, "velocityY": 0, "timestamp": 0 }, { - "x": 1.566665314770093, - "y": 7.326318268482221, - "heading": -9.745639154608945e-23, - "angularVelocity": -8.704126162754158e-22, - "velocityX": 0.7277847634744247, - "velocityY": 3.996448202047959e-8, - "timestamp": 0.11196574517278132 - }, - { - "x": 1.7296392389410207, - "y": 7.326318277431527, - "heading": -3.4658654410217392e-22, - "angularVelocity": -2.2250569735274297e-21, - "velocityX": 1.4555695040427974, - "velocityY": 7.992896278313055e-8, - "timestamp": 0.22393149034556264 - }, - { - "x": 1.9741001187856775, - "y": 7.326318290855485, - "heading": -8.24362198504553e-22, - "angularVelocity": -4.267159205128636e-21, - "velocityX": 2.1833541987990532, - "velocityY": 1.1989344103012352e-7, - "timestamp": 0.33589723551834394 - }, - { - "x": 2.3000479389158897, - "y": 7.326318308754096, - "heading": -1.7621745704477776e-21, - "angularVelocity": -8.375886381665278e-21, - "velocityX": 2.9111387561188593, - "velocityY": 1.5985791173013713e-7, - "timestamp": 0.4478629806911253 - }, - { - "x": 2.6359451684196418, - "y": 7.326318327199053, - "heading": 5.860691675515718e-19, - "angularVelocity": 5.250099783101951e-18, - "velocityX": 2.999999946281858, - "velocityY": 1.6473750198101658e-7, - "timestamp": 0.5598287258639066 - }, - { - "x": 2.9718423979233948, - "y": 7.326318345644011, - "heading": 4.8428473870582435e-18, - "angularVelocity": 3.801857621890219e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 0.671794471036688 - }, - { - "x": 3.307739627427147, - "y": 7.3263183640889675, - "heading": 1.0521971096433735e-17, - "angularVelocity": 5.072197480886782e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101613e-7, - "timestamp": 0.7837602162094693 - }, - { - "x": 3.6436368569308994, - "y": 7.326318382533925, - "heading": 1.4717398190746304e-17, - "angularVelocity": 3.747063076821502e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 0.8957259613822507 - }, - { - "x": 3.979534086434652, - "y": 7.326318400978883, - "heading": 1.7426356992707997e-17, - "angularVelocity": 2.4194532030809352e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 1.007691706555032 - }, - { - "x": 4.315431315938405, - "y": 7.326318419423839, - "heading": 1.8985412935500457e-17, - "angularVelocity": 1.3924401153114026e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 1.1196574517278133 - }, - { - "x": 4.651328545442158, - "y": 7.326318437868797, - "heading": 2.022868920510175e-17, - "angularVelocity": 1.1104077197839936e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 1.2316231969005946 - }, - { - "x": 4.98722577494591, - "y": 7.3263184563137544, - "heading": 2.188100699427991e-17, - "angularVelocity": 1.4757350915348522e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 1.343588942073376 - }, - { - "x": 5.323123004449662, - "y": 7.326318474758711, - "heading": 2.3719859301334404e-17, - "angularVelocity": 1.6423347194890602e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 1.4555546872461573 - }, - { - "x": 5.659020233953415, - "y": 7.326318493203669, - "heading": 2.5354180700870405e-17, - "angularVelocity": 1.4596619698171647e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 1.5675204324189387 - }, - { - "x": 5.994917463457167, - "y": 7.326318511648626, - "heading": 2.6401814540471825e-17, - "angularVelocity": 9.356735339113599e-18, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 1.67948617759172 - }, - { - "x": 6.330814692960919, - "y": 7.326318530093584, - "heading": 2.6961840683369917e-17, - "angularVelocity": 5.001763244165286e-18, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 1.7914519227645014 - }, - { - "x": 6.666711922464672, - "y": 7.3263185485385405, - "heading": 2.746703941908865e-17, - "angularVelocity": 4.512083019401423e-18, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 1.9034176679372827 - }, - { - "x": 7.002609151968424, - "y": 7.326318566983498, - "heading": 2.75257745202433e-17, - "angularVelocity": 5.245810017426919e-19, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 2.015383413110064 - }, - { - "x": 7.338506381472176, - "y": 7.326318585428456, - "heading": 2.6894889559197837e-17, - "angularVelocity": -5.634624707407713e-18, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 2.127349158282845 - }, - { - "x": 7.674403610975929, - "y": 7.326318603873412, - "heading": 2.614291653422174e-17, - "angularVelocity": -6.716098963685828e-18, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 2.2393149034556266 - }, - { - "x": 8.010300840479681, - "y": 7.32631862231837, - "heading": 2.4766232846828968e-17, - "angularVelocity": -1.2295579197538016e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 2.351280648628408 - }, - { - "x": 8.346198069983435, - "y": 7.326318640763327, - "heading": 2.2029876482173888e-17, - "angularVelocity": -2.4439227918755626e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 2.4632463938011893 - }, - { - "x": 8.68209529948719, - "y": 7.326318659208284, - "heading": 1.6814351481469152e-17, - "angularVelocity": -4.6581434349974976e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101613e-7, - "timestamp": 2.5752121389739706 - }, - { - "x": 9.017992528990941, - "y": 7.326318677653242, - "heading": 6.264884173064017e-18, - "angularVelocity": -9.42204897841851e-17, - "velocityX": 2.9999999462818616, - "velocityY": 1.6473750198101616e-7, - "timestamp": 2.687177884146752 - }, - { - "x": 9.353889758494695, - "y": 7.326318696098199, - "heading": -5.6652372475915536e-21, - "angularVelocity": -5.600417688760007e-17, - "velocityX": 2.999999946281858, - "velocityY": 1.6473750198101658e-7, - "timestamp": 2.7991436293195333 - }, - { - "x": 9.679837578624907, - "y": 7.32631871399681, - "heading": -2.7181194656762927e-21, - "angularVelocity": 2.6321601978014413e-20, - "velocityX": 2.9111387561188593, - "velocityY": 1.5985791173013718e-7, - "timestamp": 2.9111093744923147 - }, - { - "x": 9.924298458469563, - "y": 7.326318727420768, - "heading": -1.1801505322960497e-21, - "angularVelocity": 1.3736066636473078e-20, - "velocityX": 2.1833541987990532, - "velocityY": 1.1989344103012357e-7, - "timestamp": 3.023075119665096 - }, - { - "x": 10.08727238264049, - "y": 7.326318736370074, - "heading": -3.536469486075474e-22, - "angularVelocity": 7.381753952033097e-21, - "velocityX": 1.4555695040427974, - "velocityY": 7.992896278313059e-8, - "timestamp": 3.1350408648378774 - }, - { - "x": 10.1687593460083, - "y": 7.326318740844727, + "x": 2.2471188331781433, + "y": 3.6784892919371552, + "heading": -0.7354399814683132, + "angularVelocity": 3.3622066506767566e-7, + "velocityX": 0.5076319105372495, + "velocityY": 0.17514297271453227, + "timestamp": 0.07717142603841304 + }, + { + "x": 2.3200702936853683, + "y": 3.7036589776847935, + "heading": -0.7236015966081355, + "angularVelocity": 0.15340373332333, + "velocityX": 0.9453169942837708, + "velocityY": 0.32615291746856667, + "timestamp": 0.15434285207682608 + }, + { + "x": 2.393021754194593, + "y": 3.7288286634266474, + "heading": -0.6554112716508567, + "angularVelocity": 0.883621418675562, + "velocityX": 0.9453169943096871, + "velocityY": 0.3261529173936128, + "timestamp": 0.2315142781152391 + }, + { + "x": 2.4659732147038027, + "y": 3.7539983491685462, + "heading": -0.5475903529607853, + "angularVelocity": 1.3971611543941431, + "velocityX": 0.9453169943094869, + "velocityY": 0.3261529173941928, + "timestamp": 0.30868570415365215 + }, + { + "x": 2.538924675213058, + "y": 3.779168034910313, + "heading": -0.4137634894095547, + "angularVelocity": 1.7341504546594302, + "velocityX": 0.9453169943100757, + "velocityY": 0.32615291739248603, + "timestamp": 0.3858571301920652 + }, + { + "x": 2.6118761357224596, + "y": 3.804337720651655, + "heading": -0.2645452299064341, + "angularVelocity": 1.933594688646098, + "velocityX": 0.9453169943119766, + "velocityY": 0.3261529173869763, + "timestamp": 0.4630285562304782 + }, + { + "x": 2.684827596231993, + "y": 3.829507406392615, + "heading": -0.10835582804191357, + "angularVelocity": 2.023927895109458, + "velocityX": 0.9453169943136835, + "velocityY": 0.32615291738202923, + "timestamp": 0.5401999822688912 + }, + { + "x": 2.7577790567415006, + "y": 3.8546770921336493, + "heading": 0.04747751815628348, + "angularVelocity": 2.0193140673677465, + "velocityX": 0.9453169943133516, + "velocityY": 0.3261529173829912, + "timestamp": 0.6173714083073043 + }, + { + "x": 2.830730517250857, + "y": 3.879846777875123, + "heading": 0.19556311960827935, + "angularVelocity": 1.918917519786202, + "velocityX": 0.945316994311386, + "velocityY": 0.32615291738868823, + "timestamp": 0.6945428343457174 + }, + { + "x": 2.903681977760091, + "y": 3.905016463616951, + "heading": 0.32729474861452895, + "angularVelocity": 1.7070000616637375, + "velocityX": 0.9453169943098034, + "velocityY": 0.3261529173932753, + "timestamp": 0.7717142603841305 + }, + { + "x": 2.9766334382693023, + "y": 3.930186149358844, + "heading": 0.4317749140071391, + "angularVelocity": 1.3538711250535118, + "velocityX": 0.9453169943095098, + "velocityY": 0.3261529173941263, + "timestamp": 0.8488856864225436 + }, + { + "x": 3.049584898778474, + "y": 3.9553558351008515, + "heading": 0.49505305343016526, + "angularVelocity": 0.8199685125881792, + "velocityX": 0.9453169943090014, + "velocityY": 0.3261529173955999, + "timestamp": 0.9260571124609567 + }, + { + "x": 3.1225363031680886, + "y": 3.980525683498396, + "heading": 0.5001345013216448, + "angularVelocity": 0.06584623548293991, + "velocityX": 0.9453162671025689, + "velocityY": 0.3261550251127433, + "timestamp": 1.0032285384993698 + }, + { + "x": 3.175154209136963, + "y": 4.036977291107178, + "heading": 0.4964219619537652, + "angularVelocity": -0.04810769423946735, + "velocityX": 0.6818314584815773, + "velocityY": 0.7315091933208836, + "timestamp": 1.0803999645377829 + }, + { + "x": 3.190817987773919, + "y": 4.113035844022939, + "heading": 0.4926861160438778, + "angularVelocity": -0.04810841089874421, + "velocityX": 0.2017105408173478, + "velocityY": 0.9794451388776884, + "timestamp": 1.1580546997513483 + }, + { + "x": 3.168517113834866, + "y": 4.187419502094125, + "heading": 0.48074118507947583, + "angularVelocity": -0.1538210249709965, + "velocityX": -0.28717983362793426, + "velocityY": 0.957876655771434, + "timestamp": 1.2357094349649138 + }, + { + "x": 3.1462160636182532, + "y": 4.261803107315525, + "heading": 0.4134749167724562, + "angularVelocity": -0.8662223639295713, + "velocityX": -0.287182103644815, + "velocityY": 0.9578759751975264, + "timestamp": 1.3133641701784793 + }, + { + "x": 3.1239150134014713, + "y": 4.336186712536874, + "heading": 0.3115418578649691, + "angularVelocity": -1.312644472061511, + "velocityX": -0.2871821036469928, + "velocityY": 0.9578759751968734, + "timestamp": 1.3910189053920448 + }, + { + "x": 3.1016139631847954, + "y": 4.410570317758255, + "heading": 0.19368216783727144, + "angularVelocity": -1.5177398996154035, + "velocityX": -0.2871821036456218, + "velocityY": 0.9578759751972845, + "timestamp": 1.4686736406056102 + }, + { + "x": 3.0793129129682044, + "y": 4.484953922979661, + "heading": 0.07726837869911063, + "angularVelocity": -1.4991202895483509, + "velocityX": -0.28718210364453783, + "velocityY": 0.9578759751976095, + "timestamp": 1.5463283758191757 + }, + { + "x": 3.0570118627515384, + "y": 4.559337528201045, + "heading": -0.020189040323946267, + "angularVelocity": -1.2550093533257207, + "velocityX": -0.2871821036455004, + "velocityY": 0.9578759751973209, + "timestamp": 1.6239831110327412 + }, + { + "x": 3.0347108125347813, + "y": 4.6337211334224016, + "heading": -0.07962773247584773, + "angularVelocity": -0.765422636345789, + "velocityX": -0.28718210364667085, + "velocityY": 0.95787597519697, + "timestamp": 1.7016378462463067 + }, + { + "x": 3.0124097623180286, + "y": 4.708104738643759, + "heading": -0.08012314690355973, + "angularVelocity": -0.006379706612217704, + "velocityX": -0.2871821036466172, + "velocityY": 0.9578759751969861, + "timestamp": 1.7792925814598721 + }, + { + "x": 2.9901087284088135, + "y": 4.7824883460998535, + "heading": 0, + "angularVelocity": 1.0317870080067317, + "velocityX": -0.2871818936460597, + "velocityY": 0.9578760039748432, + "timestamp": 1.8569473166734376 + }, + { + "x": 2.981191001018429, + "y": 4.8181593864561965, + "heading": 0.050738184558630633, + "angularVelocity": 1.3799226553830732, + "velocityX": -0.24253477272728013, + "velocityY": 0.9701426481257134, + "timestamp": 1.8937161778561287 + }, + { + "x": 2.972273289175913, + "y": 4.853830430699488, + "heading": 0.1106008636938567, + "angularVelocity": 1.628080859991564, + "velocityX": -0.24253434987302874, + "velocityY": 0.9701427538387914, + "timestamp": 1.9304850390388197 + }, + { + "x": 2.963355577333478, + "y": 4.889501474942801, + "heading": 0.1746065344176323, + "angularVelocity": 1.7407574960169372, + "velocityX": -0.24253434987083392, + "velocityY": 0.9701427538393401, + "timestamp": 1.9672539002215108 + }, + { + "x": 2.954437865490993, + "y": 4.9251725191861, + "heading": 0.23753611441876185, + "angularVelocity": 1.7114911361669713, + "velocityX": -0.24253434987220052, + "velocityY": 0.9701427538389984, + "timestamp": 2.004022761404202 + }, + { + "x": 2.9455201625823975, + "y": 4.960843563079834, + "heading": 0.29423418735375584, + "angularVelocity": 1.5420132990598214, + "velocityX": -0.2425341068978591, + "velocityY": 0.9701427443318675, + "timestamp": 2.0407916225868927 + }, + { + "x": 2.9341919742056994, + "y": 5.0238681624588315, + "heading": 0.3430288217750536, + "angularVelocity": 0.762004365842858, + "velocityX": -0.17690734037688408, + "velocityY": 0.9842274760712535, + "timestamp": 2.1048262090125567 + }, + { + "x": 2.9228637942769513, + "y": 5.086892763356283, + "heading": 0.35143884659831104, + "angularVelocity": 0.1313356623770872, + "velocityX": -0.1769072084489637, + "velocityY": 0.9842274997842765, + "timestamp": 2.1688607954382206 + }, + { + "x": 2.9115356143482174, + "y": 5.149917364253737, + "heading": 0.33056040182371793, + "angularVelocity": -0.32604949824779894, + "velocityX": -0.17690720844873878, + "velocityY": 0.9842274997843169, + "timestamp": 2.2328953818638846 + }, + { + "x": 2.9002074344194813, + "y": 5.212941965151191, + "heading": 0.29058860737305475, + "angularVelocity": -0.6242219506963693, + "velocityX": -0.1769072084487773, + "velocityY": 0.98422749978431, + "timestamp": 2.2969299682895485 + }, + { + "x": 2.888879254490749, + "y": 5.275966566048645, + "heading": 0.2408226493649336, + "angularVelocity": -0.7771730995076082, + "velocityX": -0.17690720844871077, + "velocityY": 0.9842274997843219, + "timestamp": 2.3609645547152125 + }, + { + "x": 2.8775510787963867, + "y": 5.338991165161133, + "heading": 0.18998808677928647, + "angularVelocity": -0.7938610276597882, + "velocityX": -0.1769071423224252, + "velocityY": 0.9842274719092861, + "timestamp": 2.4249991411408764 + }, + { + "x": 2.879336047375825, + "y": 5.478935829486119, + "heading": 0.15080970804902258, + "angularVelocity": -0.2799334432597178, + "velocityX": 0.012753779424941127, + "velocityY": 0.999918654624096, + "timestamp": 2.5649551902432868 + }, + { + "x": 2.8811210197460353, + "y": 5.618880493762755, + "heading": 0.15294624001981122, + "angularVelocity": 0.015265735096775236, + "velocityX": 0.01275380651038498, + "velocityY": 0.9999186542786257, + "timestamp": 2.704911239345697 + }, + { + "x": 2.8829059921162457, + "y": 5.75882515803939, + "heading": 0.17635279292699202, + "angularVelocity": 0.16724216678947132, + "velocityX": 0.012753806510388455, + "velocityY": 0.9999186542786257, + "timestamp": 2.8448672884481074 + }, + { + "x": 2.8846909644864565, + "y": 5.898769822316026, + "heading": 0.209990869687123, + "angularVelocity": 0.24034743032447933, + "velocityX": 0.012753806510387863, + "velocityY": 0.9999186542786257, + "timestamp": 2.9848233375505178 + }, + { + "x": 2.886475936856667, + "y": 6.038714486592662, + "heading": 0.24721381499294584, + "angularVelocity": 0.26596167542987414, + "velocityX": 0.012753806510387369, + "velocityY": 0.9999186542786257, + "timestamp": 3.124779386652928 + }, + { + "x": 2.888260909226877, + "y": 6.178659150869297, + "heading": 0.28292073715992244, + "angularVelocity": 0.25512953813699535, + "velocityX": 0.012753806510387482, + "velocityY": 0.9999186542786257, + "timestamp": 3.2647354357553384 + }, + { + "x": 2.890045881597088, + "y": 6.318603815145933, + "heading": 0.311356671114116, + "angularVelocity": 0.203177598514417, + "velocityX": 0.01275380651038814, + "velocityY": 0.9999186542786257, + "timestamp": 3.4046914848577488 + }, + { + "x": 2.8918308539673, + "y": 6.458548479422569, + "heading": 0.32363800040319796, + "angularVelocity": 0.08775132884821014, + "velocityX": 0.012753806510403596, + "velocityY": 0.9999186542786255, + "timestamp": 3.544647533960159 + }, + { + "x": 2.893615842051929, + "y": 6.598493143498768, + "heading": 0.3039916671103851, + "angularVelocity": -0.14037502072123356, + "velocityX": 0.012753918791481205, + "velocityY": 0.9999186528464911, + "timestamp": 3.6846035830625694 + }, + { + "x": 2.9705522060394287, + "y": 6.715405464172363, + "heading": 0.2551827989840428, + "angularVelocity": -0.348744255352816, + "velocityX": 0.5497180327747238, + "velocityY": 0.8353502504778957, + "timestamp": 3.8245596321649797 + }, + { + "x": 3.067512358448162, + "y": 6.793764446329018, + "heading": 0.22544622618853677, + "angularVelocity": -0.34874429599630347, + "velocityX": 1.1371283545018185, + "velocityY": 0.9189777266914475, + "timestamp": 3.90982718531751 + }, + { + "x": 3.2146009111068476, + "y": 6.878954519586076, + "heading": 0.19634651748332468, + "angularVelocity": -0.34127528736702184, + "velocityX": 1.7250237308389438, + "velocityY": 0.999091332017781, + "timestamp": 3.9950947384700406 + }, + { + "x": 3.4118873367487743, + "y": 6.970423443263398, + "heading": 0.16905588214468348, + "angularVelocity": -0.32005885392094063, + "velocityX": 2.313733868837685, + "velocityY": 1.0727283743406777, + "timestamp": 4.080362291622571 + }, + { + "x": 3.6595052637221444, + "y": 7.066815632279669, + "heading": 0.1464467829149484, + "angularVelocity": -0.2651547792076474, + "velocityX": 2.904011172109284, + "velocityY": 1.1304673988221574, + "timestamp": 4.165629844775101 + }, + { + "x": 3.9571287842762186, + "y": 7.15979793947491, + "heading": 0.14644676578757745, + "angularVelocity": -2.0086621808526402e-7, + "velocityX": 3.490466297557207, + "velocityY": 1.090477019188179, + "timestamp": 4.2508973979276305 + }, + { + "x": 4.264875107150024, + "y": 7.209974468067706, + "heading": 0.14644676444758695, + "angularVelocity": -1.5715127861540166e-8, + "velocityX": 3.6091844024572333, + "velocityY": 0.5884598154592168, + "timestamp": 4.3361649510801605 + }, + { + "x": 4.572621681248356, + "y": 7.260149455807815, + "heading": 0.14644676310759733, + "angularVelocity": -1.57151175667415e-8, + "velocityX": 3.609187348765855, + "velocityY": 0.5884417446616913, + "timestamp": 4.4214325042326905 + }, + { + "x": 4.88036825534869, + "y": 7.310324443535645, + "heading": 0.14644676176760774, + "angularVelocity": -1.571511728249981e-8, + "velocityX": 3.6091873487893316, + "velocityY": 0.5884417445176963, + "timestamp": 4.5067000573852205 + }, + { + "x": 5.188114829449024, + "y": 7.3604994312634755, + "heading": 0.14644676042761817, + "angularVelocity": -1.571511667882576e-8, + "velocityX": 3.609187348789331, + "velocityY": 0.5884417445176952, + "timestamp": 4.5919676105377505 + }, + { + "x": 5.495861403549358, + "y": 7.410674418991307, + "heading": 0.14644675908762866, + "angularVelocity": -1.5715116325516118e-8, + "velocityX": 3.6091873487893316, + "velocityY": 0.5884417445176952, + "timestamp": 4.6772351636902805 + }, + { + "x": 5.803607977649693, + "y": 7.460849406719137, + "heading": 0.14644675774763907, + "angularVelocity": -1.571511716726206e-8, + "velocityX": 3.6091873487893316, + "velocityY": 0.5884417445176947, + "timestamp": 4.7625027168428105 + }, + { + "x": 6.111354551750398, + "y": 7.511024394444695, + "heading": 0.14644675640764948, + "angularVelocity": -1.571511704808039e-8, + "velocityX": 3.6091873487936774, + "velocityY": 0.588441744491041, + "timestamp": 4.84777026999534 + }, + { + "x": 6.419101172352554, + "y": 7.561199096954343, + "heading": 0.14644675506765978, + "angularVelocity": -1.571511840266027e-8, + "velocityX": 3.6091878941529654, + "velocityY": 0.5884383995386058, + "timestamp": 4.93303782314787 + }, + { + "x": 6.729953533870276, + "y": 7.585618195359195, + "heading": 0.14644675369982535, + "angularVelocity": -1.6041675590865194e-8, + "velocityX": 3.6456113729645336, + "velocityY": 0.28638207034239754, + "timestamp": 5.0183053763004 + }, + { + "x": 7.0406630536048125, + "y": 7.559445844562609, + "heading": 0.14644659261395782, + "angularVelocity": -0.0000018891813071650758, + "velocityX": 3.6439361544563957, + "velocityY": -0.306943847089974, + "timestamp": 5.10357292945293 + }, + { + "x": 7.303768657890303, + "y": 7.516650807168708, + "heading": 0.13291855766036426, + "angularVelocity": -0.15865395984089825, + "velocityX": 3.085647406990028, + "velocityY": -0.5018912330854348, + "timestamp": 5.18884048260546 + }, + { + "x": 7.517742289575736, + "y": 7.46187898590858, + "heading": 0.11459098071417309, + "angularVelocity": -0.21494198283613922, + "velocityX": 2.5094379253813877, + "velocityY": -0.6423524451575228, + "timestamp": 5.27410803575799 + }, + { + "x": 7.682254663626309, + "y": 7.3964939427656935, + "heading": 0.09395275194683736, + "angularVelocity": -0.24204082331783083, + "velocityX": 1.9293666578691, + "velocityY": -0.766822087950889, + "timestamp": 5.35937558891052 + }, + { + "x": 7.79716709924449, + "y": 7.321144775788464, + "heading": 0.07218032971430863, + "angularVelocity": -0.25534240666647107, + "velocityX": 1.3476689710166752, + "velocityY": -0.88367924481708, + "timestamp": 5.44464314206305 + }, + { + "x": 7.862403869628906, + "y": 7.236210823059082, + "heading": 0.04995916288883634, + "angularVelocity": -0.26060518924146586, + "velocityX": 0.765083176102371, + "velocityY": -0.9960876041258929, + "timestamp": 5.52991069521558 + }, + { + "x": 7.849595091966555, + "y": 7.089448693119536, + "heading": 0.016951434853172975, + "angularVelocity": -0.2606051434315723, + "velocityX": -0.10112884280544625, + "velocityY": -1.1587276131788378, + "timestamp": 5.656568702041625 + }, + { + "x": 7.725201262748097, + "y": 6.945847730654978, + "heading": -0.0160562821430182, + "angularVelocity": -0.2606050562718856, + "velocityX": -0.9821236914719388, + "velocityY": -1.133769321522416, + "timestamp": 5.783226708867669 + }, + { + "x": 7.545167611462926, + "y": 6.885160438976653, + "heading": -0.04514530953155864, + "angularVelocity": -0.2296659178323204, + "velocityX": -1.421415477763183, + "velocityY": -0.4791429551048147, + "timestamp": 5.909884715693714 + }, + { + "x": 7.365133889793344, + "y": 6.8244733560996425, + "heading": -0.05406183700742751, + "angularVelocity": -0.0703984509096719, + "velocityX": -1.4214160334675636, + "velocityY": -0.4791413065606847, + "timestamp": 6.0365427225197585 + }, + { + "x": 7.185100168123733, + "y": 6.76378627322272, + "heading": -0.05250329807242255, + "angularVelocity": 0.01230509601454327, + "velocityX": -1.421416033467796, + "velocityY": -0.4791413065599946, + "timestamp": 6.163200729345803 + }, + { + "x": 7.005066446454122, + "y": 6.703099190345796, + "heading": -0.04562573507290899, + "angularVelocity": 0.05430026235100232, + "velocityX": -1.421416033467796, + "velocityY": -0.47914130655999465, + "timestamp": 6.289858736171848 + }, + { + "x": 6.825032724784511, + "y": 6.642412107468873, + "heading": -0.036269834978042204, + "angularVelocity": 0.07386741927582839, + "velocityX": -1.421416033467796, + "velocityY": -0.47914130655999443, + "timestamp": 6.416516742997892 + }, + { + "x": 6.6449990031149, + "y": 6.58172502459195, + "heading": -0.026195987787784713, + "angularVelocity": 0.07953581019228782, + "velocityX": -1.421416033467796, + "velocityY": -0.4791413065599945, + "timestamp": 6.543174749823937 + }, + { + "x": 6.464965281445298, + "y": 6.5210379417150035, + "heading": -0.01685149454173795, + "angularVelocity": 0.07377735904902329, + "velocityX": -1.4214160334677322, + "velocityY": -0.47914130656018417, + "timestamp": 6.669832756649981 + }, + { + "x": 6.284931579179647, + "y": 6.460350801274506, + "heading": -0.010001719998819724, + "angularVelocity": 0.054080864799318604, + "velocityX": -1.4214158802681582, + "velocityY": -0.4791417610403343, + "timestamp": 6.796490763476026 + }, + { + "x": 6.142981170634808, + "y": 6.3340767179594515, + "heading": -0.005000858650557523, + "angularVelocity": 0.03948318368160243, + "velocityX": -1.1207377417501938, + "velocityY": -0.9969688176802427, + "timestamp": 6.92314877030207 + }, + { + "x": 6.09645414352417, + "y": 6.149875164031982, + "heading": 0, + "angularVelocity": 0.039483162382477774, + "velocityX": -0.3673437493334494, + "velocityY": -1.4543222220484673, + "timestamp": 7.049806777128115 + }, + { + "x": 6.165600746854775, + "y": 5.968104158414488, + "heading": 0.00511908966767943, + "angularVelocity": 0.03948315266730385, + "velocityX": 0.5333225383693347, + "velocityY": -1.4019860622035414, + "timestamp": 7.179459282611575 + }, + { + "x": 6.326507175654422, + "y": 5.858874551218305, + "heading": 0.010238176429586542, + "angularVelocity": 0.03948313025530103, + "velocityX": 1.2410591542336487, + "velocityY": -0.8424797252392536, + "timestamp": 7.309111788095034 + }, + { + "x": 6.5166850085952825, + "y": 5.8182005038026094, + "heading": 0.013042835442353568, + "angularVelocity": 0.021632123515804805, + "velocityX": 1.466827287537449, + "velocityY": -0.31371586121378253, + "timestamp": 7.438764293578494 + }, + { + "x": 6.706862852151511, + "y": 5.777526506020753, + "heading": 0.012869451393311492, + "angularVelocity": -0.0013372980985972803, + "velocityX": 1.46682736941299, + "velocityY": -0.31371547839172276, + "timestamp": 7.5684167990619535 + }, + { + "x": 6.897040695707745, + "y": 5.736852508238917, + "heading": 0.011189038201757389, + "angularVelocity": -0.012960900256479425, + "velocityX": 1.4668273694130223, + "velocityY": -0.31371547839157227, + "timestamp": 7.698069304545413 + }, + { + "x": 7.087218539263978, + "y": 5.69617851045708, + "heading": 0.00878429042310287, + "angularVelocity": -0.018547638317558075, + "velocityX": 1.4668273694130223, + "velocityY": -0.3137154783915722, + "timestamp": 7.827721810028873 + }, + { + "x": 7.277396382820212, + "y": 5.655504512675243, + "heading": 0.006107038226975533, + "angularVelocity": -0.020649444344774476, + "velocityX": 1.4668273694130223, + "velocityY": -0.3137154783915722, + "timestamp": 7.957374315512332 + }, + { + "x": 7.467574226376446, + "y": 5.614830514893406, + "heading": 0.0034846320252397466, + "angularVelocity": -0.020226421324935615, + "velocityX": 1.4668273694130223, + "velocityY": -0.31371547839157227, + "timestamp": 8.087026820995792 + }, + { + "x": 7.657752069932681, + "y": 5.574156517111579, + "heading": 0.001269475989498469, + "angularVelocity": -0.017085331498009396, + "velocityX": 1.466827369413038, + "velocityY": -0.3137154783914988, + "timestamp": 8.216679326479252 + }, + { + "x": 7.847929918666442, + "y": 5.533482543538116, + "heading": 4.380350364958381e-9, + "angularVelocity": -0.009791338812742587, + "velocityX": 1.4668274093469016, + "velocityY": -0.31371529167421114, + "timestamp": 8.346331831962711 + }, + { + "x": 8.042166177633085, + "y": 5.5431907443044945, + "heading": 1.962321228485874e-9, + "angularVelocity": -1.865007678883919e-8, + "velocityX": 1.4981296215002158, + "velocityY": 0.07487862061103963, + "timestamp": 8.475984337446171 + }, + { + "x": 8.122806549072266, + "y": 5.580793380737305, "heading": 0, - "angularVelocity": 3.1585280732860345e-21, - "velocityX": 0.7277847634744247, - "velocityY": 3.996448202047962e-8, - "timestamp": 3.2470066100106587 + "angularVelocity": -1.5135236051494907e-8, + "velocityX": 0.621973105248157, + "velocityY": 0.2900262998767247, + "timestamp": 8.60563684292963 + }, + { + "x": 8.11718410945889, + "y": 5.625307353924722, + "heading": -1.3275801458767835e-9, + "angularVelocity": -1.3277978561229321e-8, + "velocityX": -0.05623360725094295, + "velocityY": 0.4452126578849198, + "timestamp": 8.705620462913968 + }, + { + "x": 8.043750642119495, + "y": 5.685331009202492, + "heading": -2.46038264579736e-9, + "angularVelocity": -1.132988316080594e-8, + "velocityX": -0.7344549773005545, + "velocityY": 0.6003348878380743, + "timestamp": 8.805604082898306 + }, + { + "x": 7.902503945412699, + "y": 5.760854708948911, + "heading": -3.384756088443973e-9, + "angularVelocity": -9.245251518787126e-9, + "velocityX": -1.4126983673696807, + "velocityY": 0.7553607257902549, + "timestamp": 8.905587702882643 + }, + { + "x": 7.693440340935021, + "y": 5.8518623369658735, + "heading": -4.077873413911931e-9, + "angularVelocity": -6.932312274821422e-9, + "velocityX": -2.090978547497895, + "velocityY": 0.910225375367175, + "timestamp": 9.005571322866981 + }, + { + "x": 7.416552437959587, + "y": 5.958321458738986, + "heading": -4.493798325640354e-9, + "angularVelocity": -4.159935597905052e-9, + "velocityX": -2.769332646998966, + "velocityY": 1.0647656266808398, + "timestamp": 9.105554942851319 + }, + { + "x": 7.071817789543997, + "y": 6.0801331226760436, + "heading": -4.492422504241304e-9, + "angularVelocity": 1.3751436668540922e-11, + "velocityX": -3.447911252686312, + "velocityY": 1.2183162000152656, + "timestamp": 9.205538562835656 + }, + { + "x": 6.719237507782601, + "y": 6.176923161975723, + "heading": -4.492422414840064e-9, + "angularVelocity": 8.941669409693866e-16, + "velocityX": -3.5263804392355262, + "velocityY": 0.9680589613760336, + "timestamp": 9.305522182819994 + }, + { + "x": 6.434609797569398, + "y": 6.288588608635183, + "heading": -3.44266509070979e-9, + "angularVelocity": 1.0499298806305677e-8, + "velocityX": -2.846743398964724, + "velocityY": 1.1168374043775104, + "timestamp": 9.405505802804331 + }, + { + "x": 6.218300222393017, + "y": 6.387157705629217, + "heading": -2.434030100368673e-9, + "angularVelocity": 1.0088007894569008e-8, + "velocityX": -2.163450125018647, + "velocityY": 0.9858524524149839, + "timestamp": 9.505489422788669 + }, + { + "x": 6.070072189647912, + "y": 6.471451374683713, + "heading": -1.514234809843918e-9, + "angularVelocity": 9.199464869761595e-9, + "velocityX": -1.482523164732402, + "velocityY": 0.8430747860496444, + "timestamp": 9.605473042773006 + }, + { + "x": 5.9898377265253275, + "y": 6.541056287298709, + "heading": -7.000413265076412e-10, + "angularVelocity": 8.143273212076663e-9, + "velocityX": -0.8024760766578407, + "velocityY": 0.6961631575356222, + "timestamp": 9.705456662757344 + }, + { + "x": 5.977550983428955, + "y": 6.595761775970459, + "heading": 0, + "angularVelocity": 7.001564000000435e-9, + "velocityX": -0.12288755966089779, + "velocityY": 0.5471445088509955, + "timestamp": 9.805440282741682 + }, + { + "x": 6.0304601481193325, + "y": 6.634882466873651, + "heading": 5.703476949438232e-10, + "angularVelocity": 5.834627878284655e-9, + "velocityX": 0.5412584535856627, + "velocityY": 0.40020296696956553, + "timestamp": 9.903192408927895 + }, + { + "x": 6.148290994089988, + "y": 6.659639301678495, + "heading": 1.0266247362892406e-9, + "angularVelocity": 4.667690900343943e-9, + "velocityX": 1.205404429904499, + "velocityY": 0.25326134366988606, + "timestamp": 10.000944535114108 + }, + { + "x": 6.33104351533712, + "y": 6.670032267176693, + "heading": 1.3688309489429736e-9, + "angularVelocity": 3.5007521312183917e-9, + "velocityX": 1.869550344804717, + "velocityY": 0.10631958524989513, + "timestamp": 10.098696661300322 + }, + { + "x": 6.578717699898933, + "y": 6.66606133715871, + "heading": 1.5969659946550133e-9, + "angularVelocity": 2.333809901831043e-9, + "velocityX": 2.5336961373362707, + "velocityY": -0.040622441292512496, + "timestamp": 10.196448787486535 + }, + { + "x": 6.891313512118934, + "y": 6.647726434030782, + "heading": 1.7110289169133522e-9, + "angularVelocity": 1.1668578874288627e-9, + "velocityX": 3.1978415651034835, + "velocityY": -0.18756526161575324, + "timestamp": 10.294200913672748 + }, + { + "x": 7.215922010510692, + "y": 6.575907742022885, + "heading": 1.1406885772349463e-9, + "angularVelocity": -5.834552635062462e-9, + "velocityX": 3.3207308226516776, + "velocityY": -0.7347020963342302, + "timestamp": 10.391953039858961 + }, + { + "x": 7.475608809304632, + "y": 6.518452697971138, + "heading": 6.844139951960176e-10, + "angularVelocity": -4.667665741975464e-9, + "velocityX": 2.656584658945199, + "velocityY": -0.5877626023202006, + "timestamp": 10.489705166045175 + }, + { + "x": 7.670373908426623, + "y": 6.475361385107564, + "heading": 3.4220728009986415e-10, + "angularVelocity": -3.500757271088463e-9, + "velocityX": 1.9924384944803746, + "velocityY": -0.4408222568461895, + "timestamp": 10.587457292231388 + }, + { + "x": 7.80021730785198, + "y": 6.446633831176134, + "heading": 1.1406915587464051e-10, + "angularVelocity": -2.3338413945406575e-9, + "velocityX": 1.3282923297629874, + "velocityY": -0.293881627552551, + "timestamp": 10.685209418417601 + }, + { + "x": 7.865139007568359, + "y": 6.432270050048828, + "heading": 0, + "angularVelocity": -1.1669216564398507e-9, + "velocityX": 0.6641461649193595, + "velocityY": -0.1469408563491806, + "timestamp": 10.782961544603815 }, { - "x": 10.1687593460083, - "y": 7.326318740844727, + "x": 7.865139007568359, + "y": 6.432270050048828, "heading": 0, "angularVelocity": 0, - "velocityX": 4.0858250360262775e-40, - "velocityY": 0, - "timestamp": 3.35897235518344 + "velocityX": -1.888057920334398e-31, + "velocityY": -2.3966916927967252e-29, + "timestamp": 10.880713670790028 } ], "constraints": [ @@ -2891,22 +2765,31 @@ "first" ], "type": "StopPoint", - "uuid": "b98a06ab-cdf4-4ac8-9cf9-5f0472a6bff2" + "uuid": "f9d423b2-02f8-49f3-83bd-c7f0582d60d8" }, { "scope": [ "last" ], "type": "StopPoint", - "uuid": "01b32ae9-f6f6-4a82-86d8-8d628cef4f6a" + "uuid": "61305a31-9a56-43ca-a1fa-2ad8a0247d0b" }, { "scope": [ 0, - 1 + 5 + ], + "type": "MaxVelocity", + "uuid": "41012a84-80b1-4a0e-a7d3-76ed8eae9575", + "velocity": 1 + }, + { + "scope": [ + 6, + 8 ], "type": "MaxVelocity", - "uuid": "fe88f063-4a67-428e-9628-e902d396ad29", + "uuid": "59193b8c-5993-467e-8269-33ed1e815f66", "velocity": 1.5 } ], diff --git a/src/main/Test.chor b/src/main/Test.chor index f8e87cb5..17692653 100644 --- a/src/main/Test.chor +++ b/src/main/Test.chor @@ -3,8 +3,8 @@ "robotConfiguration": { "mass": 59.27038160247355, "rotationalInertia": 6, - "motorMaxTorque": 0.7759834368530021, - "motorMaxVelocity": 4640, + "motorMaxTorque": 0.7248618784530386, + "motorMaxVelocity": 4704, "gearing": 6.75, "wheelbase": 0.6603996433841925, "trackWidth": 0.6603996433841925, @@ -483,49 +483,49 @@ "first" ], "type": "StopPoint", - "uuid": "115e1b38-6d75-4aa8-8426-67e43b58195c" + "uuid": "29727d0a-f23a-4415-8384-7399453c3931" }, { "scope": [ "last" ], "type": "StopPoint", - "uuid": "9d06e358-6b8f-4b0e-aaa5-2018887d7c7d" + "uuid": "ab28d958-ce39-4da7-bf5a-d5e8f21fb467" }, { "scope": [ 1 ], "type": "StopPoint", - "uuid": "8a71d32e-0b3d-42cd-a985-4cae03ffa9f0" + "uuid": "1d541807-bbf4-449b-9120-d40cbe612c74" }, { "scope": [ 3 ], "type": "StopPoint", - "uuid": "7bd301ab-555d-4391-9547-86bd36bb53e7" + "uuid": "2cbeb458-0b20-43e7-83b6-eded6ac4a4ef" }, { "scope": [ 2 ], "type": "StopPoint", - "uuid": "3c075286-f878-408e-bc4c-4ab023481cfd" + "uuid": "609fcb30-bb0e-48be-9adc-4a7ac23ac1d8" }, { "scope": [ 5 ], "type": "StopPoint", - "uuid": "38910e11-e23a-4562-90df-c353509e0337" + "uuid": "20819604-d41f-4dc9-8839-e5e56d3e6a6f" }, { "scope": [ 4 ], "type": "StopPoint", - "uuid": "68bc3dc9-f4b4-43df-a29b-dbe7d1a55538" + "uuid": "820e2daf-40d8-43fe-bcac-8805de8c0cf9" } ], "usesControlIntervalGuessing": true, @@ -1588,49 +1588,49 @@ "first" ], "type": "StopPoint", - "uuid": "2ec21105-4b70-4b7c-b2f4-7deba5a7964c" + "uuid": "f1872a51-13bb-41ae-b1d9-079e99aa2623" }, { "scope": [ "last" ], "type": "StopPoint", - "uuid": "7871c372-e258-469f-8065-11d2e0383713" + "uuid": "c2571435-ade8-4321-a8da-9f587cf8216c" }, { "scope": [ 0 ], "type": "StopPoint", - "uuid": "ebd8def5-8ade-470c-b55f-e28f299064fa" + "uuid": "b949a0d8-cc76-43fe-b78e-94fb2623c65a" }, { "scope": [ 1 ], "type": "StopPoint", - "uuid": "e6642415-db27-4b66-a654-d83064b34cdc" + "uuid": "9c3c7319-d47a-4aa9-baf6-e7a8a54be4c7" }, { "scope": [ 2 ], "type": "StopPoint", - "uuid": "b6ba2f7c-8701-47cf-a560-b035a97d1a25" + "uuid": "2a053d4d-a285-445b-b703-d679b1efee07" }, { "scope": [ 3 ], "type": "StopPoint", - "uuid": "b8a8188a-b568-4775-ab73-460fa8627938" + "uuid": "ec868a5d-2608-4185-bf6d-7300a0fe7929" }, { "scope": [ 4 ], "type": "StopPoint", - "uuid": "10d9c9fe-2435-4082-abeb-22b01e5bbf48" + "uuid": "84763776-b9aa-4b26-b952-ae025f78f55b" } ], "usesControlIntervalGuessing": true, @@ -2765,14 +2765,14 @@ "first" ], "type": "StopPoint", - "uuid": "b1a6932a-81ed-4f77-9ef6-e63e2a832e36" + "uuid": "f9d423b2-02f8-49f3-83bd-c7f0582d60d8" }, { "scope": [ "last" ], "type": "StopPoint", - "uuid": "ef354677-2b6b-4171-aaef-587377d39b69" + "uuid": "61305a31-9a56-43ca-a1fa-2ad8a0247d0b" }, { "scope": [ @@ -2780,7 +2780,7 @@ 5 ], "type": "MaxVelocity", - "uuid": "a1406cd1-958e-4f06-b3b2-a0ee3d2846df", + "uuid": "41012a84-80b1-4a0e-a7d3-76ed8eae9575", "velocity": 1 }, { @@ -2789,7 +2789,7 @@ 8 ], "type": "MaxVelocity", - "uuid": "8014ce42-8982-4933-be8d-91d8f4c2a730", + "uuid": "59193b8c-5993-467e-8269-33ed1e815f66", "velocity": 1.5 } ], @@ -2797,6 +2797,1913 @@ "defaultControlIntervalCount": 40, "usesDefaultFieldObstacles": true, "circleObstacles": [] + }, + "3SpikeSmooth": { + "waypoints": [ + { + "x": 1.3947283029556274, + "y": 4.036000728607178, + "heading": -0.7399752971476772, + "isInitialGuess": false, + "translationConstrained": true, + "headingConstrained": true, + "controlIntervalCount": 40 + }, + { + "x": 2.385817050933838, + "y": 4.07972526550293, + "heading": 0, + "isInitialGuess": false, + "translationConstrained": true, + "headingConstrained": true, + "controlIntervalCount": 40 + }, + { + "x": 2.4295413494110107, + "y": 4.9104905128479, + "heading": 0, + "isInitialGuess": false, + "translationConstrained": true, + "headingConstrained": false, + "controlIntervalCount": 40 + }, + { + "x": 2.502415657043457, + "y": 5.289436340332031, + "heading": 0.43240713719999146, + "isInitialGuess": false, + "translationConstrained": true, + "headingConstrained": true, + "controlIntervalCount": 40 + }, + { + "x": 2.4441163539886475, + "y": 6.178501129150391, + "heading": 0, + "isInitialGuess": false, + "translationConstrained": true, + "headingConstrained": false, + "controlIntervalCount": 40 + }, + { + "x": 2.502415657043457, + "y": 6.805218696594238, + "heading": 0.31204168986541936, + "isInitialGuess": false, + "translationConstrained": true, + "headingConstrained": true, + "controlIntervalCount": 40 + } + ], + "trajectory": [ + { + "x": 1.3947283029556274, + "y": 4.036000728607178, + "heading": -0.7399752971476772, + "angularVelocity": 0, + "velocityX": -1.9736839928387714e-26, + "velocityY": -2.5002085258411367e-25, + "timestamp": 0 + }, + { + "x": 1.3965137923287945, + "y": 4.035766281104119, + "heading": -0.7395103229992017, + "angularVelocity": 0.02789165618911225, + "velocityX": 0.10710327851339349, + "velocityY": -0.014063425184257088, + "timestamp": 0.01667072565798061 + }, + { + "x": 1.4000850028355816, + "y": 4.035300777563999, + "heading": -0.7385718745908403, + "angularVelocity": 0.05629319488634393, + "velocityX": 0.2142204592682058, + "velocityY": -0.027923411954033122, + "timestamp": 0.03334145131596122 + }, + { + "x": 1.405442176084647, + "y": 4.034607924351493, + "heading": -0.737150665589664, + "angularVelocity": 0.08525177789702576, + "velocityX": 0.3213521330129352, + "velocityY": -0.041561070988704, + "timestamp": 0.05001217697394182 + }, + { + "x": 1.4125855632050561, + "y": 4.03369178862991, + "heading": -0.7352365100396948, + "angularVelocity": 0.1148213694616671, + "velocityX": 0.4284988708328606, + "velocityY": -0.05495475964151632, + "timestamp": 0.06668290263192243 + }, + { + "x": 1.4215154240749435, + "y": 4.032556853614934, + "heading": -0.7328181860857529, + "angularVelocity": 0.1450641083991559, + "velocityX": 0.535661197544358, + "velocityY": -0.06807952084752315, + "timestamp": 0.08335362828990305 + }, + { + "x": 1.4322320258818966, + "y": 4.031208085686074, + "heading": -0.7298832707801504, + "angularVelocity": 0.17605204271342625, + "velocityX": 0.6428395516078332, + "velocityY": -0.08090637183594776, + "timestamp": 0.10002435394788366 + }, + { + "x": 1.4447356406763339, + "y": 4.029651016706928, + "heading": -0.7264179379179497, + "angularVelocity": 0.20786934733952794, + "velocityX": 0.7500342247220311, + "velocityY": -0.09340139182247958, + "timestamp": 0.11669507960586427 + }, + { + "x": 1.4590265414008132, + "y": 4.027891846106032, + "heading": -0.7224067080127434, + "angularVelocity": 0.24061519501317888, + "velocityX": 0.8572452704023769, + "velocityY": -0.10552453666306391, + "timestamp": 0.13336580526384487 + }, + { + "x": 1.4751049955939626, + "y": 4.025937569002356, + "heading": -0.7178321354648247, + "angularVelocity": 0.27440752380978517, + "velocityX": 0.9644723644919582, + "velocityY": -0.11722807655587789, + "timestamp": 0.15003653092182548 + }, + { + "x": 1.4929712555049361, + "y": 4.023796139209624, + "heading": -0.7126744120469425, + "angularVelocity": 0.30938805686679904, + "velocityX": 1.0717145898457587, + "velocityY": -0.12845450382096318, + "timestamp": 0.1667072565798061 + }, + { + "x": 1.5126255425826702, + "y": 4.02147667979256, + "heading": -0.7069108570020446, + "angularVelocity": 0.34572910400806656, + "velocityX": 1.1789700989005891, + "velocityY": -0.13913368047985383, + "timestamp": 0.1833779822377867 + }, + { + "x": 1.5340680229819357, + "y": 4.018989759773801, + "heading": -0.700515250588407, + "angularVelocity": 0.38364295261352194, + "velocityX": 1.2862355748143688, + "velocityY": -0.14917887018123038, + "timestamp": 0.2000487078957673 + }, + { + "x": 1.557298768390669, + "y": 4.016347764999776, + "heading": -0.6934569468763288, + "angularVelocity": 0.42339510930043694, + "velocityX": 1.3935053509570767, + "velocityY": -0.15848109003941602, + "timestamp": 0.21671943355374793 + }, + { + "x": 1.58231769219986, + "y": 4.013565406605039, + "heading": -0.6856996678204564, + "angularVelocity": 0.46532341872944616, + "velocityX": 1.500769931824414, + "velocityY": -0.16690085673651547, + "timestamp": 0.23339015921172854 + }, + { + "x": 1.6091244428562481, + "y": 4.010660436777393, + "heading": -0.6771998247132961, + "angularVelocity": 0.5098664138289225, + "velocityX": 1.6080134246318782, + "velocityY": -0.17425575150389114, + "timestamp": 0.2500608848697091 + }, + { + "x": 1.6377182198354763, + "y": 4.007654688195709, + "heading": -0.6679041174871899, + "angularVelocity": 0.5576066343372481, + "velocityX": 1.7152088976726623, + "velocityY": -0.1803010044884222, + "timestamp": 0.26673161052768973 + }, + { + "x": 1.6680974428471689, + "y": 4.0045756407954025, + "heading": -0.6577459930432724, + "angularVelocity": 0.609339068515868, + "velocityX": 1.8223095763770476, + "velocityY": -0.184697862797134, + "timestamp": 0.28340233618567034 + }, + { + "x": 1.7002591256758581, + "y": 4.001458893208448, + "heading": -0.646640233813891, + "angularVelocity": 0.6661833118263206, + "velocityX": 1.9292311257784287, + "velocityY": -0.18695932324110354, + "timestamp": 0.30007306184365096 + }, + { + "x": 1.7341976100045315, + "y": 3.998352290141858, + "heading": -0.634474363895986, + "angularVelocity": 0.7297744661811345, + "velocityX": 2.0358132588203324, + "velocityY": -0.18635080021867706, + "timestamp": 0.31674378750163157 + }, + { + "x": 1.7699017730070103, + "y": 3.9953233535532826, + "heading": -0.6210944424065665, + "angularVelocity": 0.8025998246221651, + "velocityX": 2.141728184782787, + "velocityY": -0.18169194615261505, + "timestamp": 0.3334145131596122 + }, + { + "x": 1.8073480623300613, + "y": 3.992474214761161, + "heading": -0.6062805570438614, + "angularVelocity": 0.8886167085122353, + "velocityX": 2.2462303136231285, + "velocityY": -0.17090670499744268, + "timestamp": 0.3500852388175928 + }, + { + "x": 1.846478733460555, + "y": 3.9899781782398343, + "heading": -0.5896976312313205, + "angularVelocity": 0.994733291924952, + "velocityX": 2.347268615254386, + "velocityY": -0.1497257271540494, + "timestamp": 0.3667559644755734 + }, + { + "x": 1.887069476898773, + "y": 3.9882032776398537, + "heading": -0.5705498525435391, + "angularVelocity": 1.1485869949887297, + "velocityX": 2.4348516237975812, + "velocityY": -0.10646810681158243, + "timestamp": 0.383426690133554 + }, + { + "x": 1.928314014729344, + "y": 3.987394445737497, + "heading": -0.545902538126006, + "angularVelocity": 1.4784787970962696, + "velocityX": 2.4740697361801107, + "velocityY": -0.04851809806908708, + "timestamp": 0.4000974157915346 + }, + { + "x": 1.9689945481426163, + "y": 3.988011878138316, + "heading": -0.5182304327668553, + "angularVelocity": 1.659922064994421, + "velocityX": 2.440237710576056, + "velocityY": 0.03703692409593434, + "timestamp": 0.41676814144951524 + }, + { + "x": 2.008464265301094, + "y": 3.989733686435556, + "heading": -0.48793478590979306, + "angularVelocity": 1.8172962280474676, + "velocityX": 2.3676064238740886, + "velocityY": 0.10328334426255706, + "timestamp": 0.43343886710749585 + }, + { + "x": 2.046450127498034, + "y": 3.992372468149969, + "heading": -0.456060945803607, + "angularVelocity": 1.9119647674681397, + "velocityX": 2.2785968035384014, + "velocityY": 0.15828835340169592, + "timestamp": 0.45010959276547646 + }, + { + "x": 2.082836060380011, + "y": 3.9957884662242305, + "heading": -0.42314359826896397, + "angularVelocity": 1.9745599687728552, + "velocityX": 2.1826244177054512, + "velocityY": 0.2049099807857635, + "timestamp": 0.4667803184234571 + }, + { + "x": 2.1175660345240157, + "y": 3.999889697048315, + "heading": -0.3894802055974597, + "angularVelocity": 2.019311778152195, + "velocityX": 2.0832910850151682, + "velocityY": 0.2460139353394697, + "timestamp": 0.4834510440814377 + }, + { + "x": 2.1506087210688465, + "y": 4.004613239012644, + "heading": -0.3552584388050433, + "angularVelocity": 2.052806068224975, + "velocityX": 1.9820784783302445, + "velocityY": 0.2833435125284317, + "timestamp": 0.5001217697394182 + }, + { + "x": 2.1819446374777955, + "y": 4.009913824088383, + "heading": -0.3206075455070969, + "angularVelocity": 2.078547389528801, + "velocityX": 1.8796972040594733, + "velocityY": 0.31795766929925834, + "timestamp": 0.5167924953973988 + }, + { + "x": 2.2115607119914396, + "y": 4.015757471919254, + "heading": -0.2856220516525717, + "angularVelocity": 2.0986185348072697, + "velocityX": 1.7765318151862408, + "velocityY": 0.35053350110604775, + "timestamp": 0.5334632210553794 + }, + { + "x": 2.2394476674531307, + "y": 4.022117793552093, + "heading": -0.2503741456506159, + "angularVelocity": 2.1143594301236655, + "velocityX": 1.672809932442328, + "velocityY": 0.38152638123431215, + "timestamp": 0.5501339467133599 + }, + { + "x": 2.2655986305981686, + "y": 4.028973728953148, + "heading": -0.21492078420504862, + "angularVelocity": 2.126683755280625, + "velocityX": 1.5686757542266145, + "velocityY": 0.41125596699948785, + "timestamp": 0.5668046723713405 + }, + { + "x": 2.290008333811761, + "y": 4.036308093793211, + "heading": -0.17930806649391473, + "angularVelocity": 2.136242803209072, + "velocityX": 1.4642255960769803, + "velocityY": 0.4399547440546822, + "timestamp": 0.583475398029321 + }, + { + "x": 2.3126726283093095, + "y": 4.044106606711043, + "heading": -0.1435740767638591, + "angularVelocity": 2.1435173527043823, + "velocityX": 1.3595265714602063, + "velocityY": 0.46779684806939764, + "timestamp": 0.6001461236873016 + }, + { + "x": 2.3335881723286183, + "y": 4.052357215026316, + "heading": -0.10775081273489397, + "angularVelocity": 2.1488725064476024, + "velocityX": 1.254627089930923, + "velocityY": 0.4949159673395843, + "timestamp": 0.6168168493452821 + }, + { + "x": 2.3527522231846656, + "y": 4.061049613232466, + "heading": -0.07186554033790864, + "angularVelocity": 2.15259210266029, + "velocityX": 1.1495630873676586, + "velocityY": 0.5214169067672981, + "timestamp": 0.6334875750032627 + }, + { + "x": 2.370162493816034, + "y": 4.070174890287128, + "heading": -0.03594177344866619, + "angularVelocity": 2.15490120983696, + "velocityX": 1.0443618945305775, + "velocityY": 0.5473833138327225, + "timestamp": 0.6501583006612432 + }, + { + "x": 2.385817050933838, + "y": 4.07972526550293, + "heading": 0, + "angularVelocity": 2.155981340347962, + "velocityX": 0.9390447326034582, + "velocityY": 0.5728829933224723, + "timestamp": 0.6668290263192238 + }, + { + "x": 2.4027374023497785, + "y": 4.092944230633815, + "heading": 0.042084448959020006, + "angularVelocity": 2.155980841837863, + "velocityX": 0.8668274004360943, + "velocityY": 0.6772058628797323, + "timestamp": 0.6863488885287345 + }, + { + "x": 2.4180229898112815, + "y": 4.108023710374494, + "heading": 0.08416888641239854, + "angularVelocity": 2.155980252405349, + "velocityX": 0.783078655855235, + "velocityY": 0.7725197841474177, + "timestamp": 0.7058687507382453 + }, + { + "x": 2.4314704371429157, + "y": 4.124763070829296, + "heading": 0.1262533098238838, + "angularVelocity": 2.155979533040984, + "velocityX": 0.6889109762814792, + "velocityY": 0.857555257057426, + "timestamp": 0.725388612947756 + }, + { + "x": 2.4429008310797706, + "y": 4.142939599149703, + "heading": 0.16833771537387304, + "angularVelocity": 2.155978617998868, + "velocityX": 0.5855775934364029, + "velocityY": 0.9311811797294396, + "timestamp": 0.7449084751572668 + }, + { + "x": 2.4521620965260715, + "y": 4.162311462296461, + "heading": 0.2104220968786775, + "angularVelocity": 2.1559773861671823, + "velocityX": 0.4744534232310323, + "velocityY": 0.9924180272808729, + "timestamp": 0.7644283373667775 + }, + { + "x": 2.459131020381349, + "y": 4.182620924103431, + "heading": 0.25250644322318616, + "angularVelocity": 2.1559755849098043, + "velocityX": 0.3570170619279247, + "velocityY": 1.0404510845918988, + "timestamp": 0.7839481995762883 + }, + { + "x": 2.4637148940912503, + "y": 4.203597774488992, + "heading": 0.2945907308792764, + "angularVelocity": 2.155972578309768, + "velocityX": 0.2348312534536131, + "velocityY": 1.0746413145959612, + "timestamp": 0.803468061785799 + }, + { + "x": 2.4658527612080854, + "y": 4.224962925582265, + "heading": 0.33667489316911053, + "angularVelocity": 2.155966155812791, + "velocityX": 0.10952265409911857, + "velocityY": 1.0945339093050488, + "timestamp": 0.8229879239953097 + }, + { + "x": 2.465516354230784, + "y": 4.246432135870773, + "heading": 0.37875855206516623, + "angularVelocity": 2.155940367015044, + "velocityX": -0.017234085655447023, + "velocityY": 1.0998648483311497, + "timestamp": 0.8425077862048205 + }, + { + "x": 2.4641324028434424, + "y": 4.267859334453504, + "heading": 0.41738866683867715, + "angularVelocity": 1.9790157511813327, + "velocityX": -0.07089964941800488, + "velocityY": 1.0977125941130037, + "timestamp": 0.8620276484143312 + }, + { + "x": 2.4627483426947627, + "y": 4.289286526011222, + "heading": 0.4516705812046216, + "angularVelocity": 1.7562580103276142, + "velocityX": -0.07090522124714435, + "velocityY": 1.0977122342225474, + "timestamp": 0.881547510623842 + }, + { + "x": 2.461364283425481, + "y": 4.3107137176257435, + "heading": 0.48187227884840755, + "angularVelocity": 1.5472290387926326, + "velocityX": -0.0709051761957581, + "velocityY": 1.0977122371325796, + "timestamp": 0.9010673728333527 + }, + { + "x": 2.459980223938116, + "y": 4.332140909226178, + "heading": 0.5082619027820259, + "angularVelocity": 1.3519369988564973, + "velocityX": -0.07090518736808893, + "velocityY": 1.097712236410919, + "timestamp": 0.9205872350428634 + }, + { + "x": 2.458596164421083, + "y": 4.353568100824697, + "heading": 0.5310996097794228, + "angularVelocity": 1.169972756583791, + "velocityX": -0.07090518888801609, + "velocityY": 1.0977122363127414, + "timestamp": 0.9401070972523742 + }, + { + "x": 2.457212104901392, + "y": 4.374995292423044, + "heading": 0.5506368538705528, + "angularVelocity": 1.0008904715326725, + "velocityX": -0.07090518902413608, + "velocityY": 1.0977122363039493, + "timestamp": 0.9596269594618849 + }, + { + "x": 2.4558280453815247, + "y": 4.396422484021381, + "heading": 0.5671158979144517, + "angularVelocity": 0.8442192812134602, + "velocityX": -0.07090518903323675, + "velocityY": 1.0977122363033616, + "timestamp": 0.9791468216713957 + }, + { + "x": 2.4544439858616585, + "y": 4.417849675619716, + "heading": 0.5807694458354312, + "angularVelocity": 0.6994694826445506, + "velocityX": -0.07090518903314545, + "velocityY": 1.0977122363033676, + "timestamp": 0.9986666838809064 + }, + { + "x": 2.453059926341799, + "y": 4.439276867218052, + "heading": 0.5918204077610513, + "angularVelocity": 0.5661393408932792, + "velocityX": -0.07090518903279429, + "velocityY": 1.0977122363033904, + "timestamp": 1.0181865460904171 + }, + { + "x": 2.4516758668219425, + "y": 4.460704058816388, + "heading": 0.6004818033402386, + "angularVelocity": 0.44372216802674463, + "velocityX": -0.07090518903263007, + "velocityY": 1.097712236303401, + "timestamp": 1.0377064082999279 + }, + { + "x": 2.450291807302087, + "y": 4.482131250414725, + "heading": 0.6069568016017785, + "angularVelocity": 0.3317133180573927, + "velocityX": -0.07090518903258249, + "velocityY": 1.0977122363034042, + "timestamp": 1.0572262705094386 + }, + { + "x": 2.448907747782232, + "y": 4.503558442013062, + "heading": 0.6114388903232229, + "angularVelocity": 0.2296168217448057, + "velocityX": -0.07090518903259889, + "velocityY": 1.0977122363034033, + "timestamp": 1.0767461327189494 + }, + { + "x": 2.4475236882623745, + "y": 4.524985633611398, + "heading": 0.6141121641303712, + "angularVelocity": 0.13695146914745157, + "velocityX": -0.07090518903265917, + "velocityY": 1.0977122363033995, + "timestamp": 1.09626599492846 + }, + { + "x": 2.446139628742516, + "y": 4.5464128252097336, + "heading": 0.6151517183962362, + "angularVelocity": 0.05325622971654855, + "velocityX": -0.07090518903276548, + "velocityY": 1.0977122363033924, + "timestamp": 1.1157858571379708 + }, + { + "x": 2.4447555692226537, + "y": 4.567840016808069, + "heading": 0.6147241353069997, + "angularVelocity": -0.021905026001059886, + "velocityX": -0.07090518903293762, + "velocityY": 1.0977122363033813, + "timestamp": 1.1353057193474816 + }, + { + "x": 2.4433715097027866, + "y": 4.5892672084064055, + "heading": 0.6129880489987533, + "angularVelocity": -0.08893947557685251, + "velocityX": -0.07090518903321144, + "velocityY": 1.0977122363033636, + "timestamp": 1.1548255815569923 + }, + { + "x": 2.44198745018291, + "y": 4.61069440000474, + "heading": 0.610094778182876, + "angularVelocity": -0.14822188726658367, + "velocityX": -0.07090518903363588, + "velocityY": 1.0977122363033363, + "timestamp": 1.174345443766503 + }, + { + "x": 2.4406033906630227, + "y": 4.632121591603075, + "heading": 0.6061890167629467, + "angularVelocity": -0.20009164911145086, + "velocityX": -0.07090518903424677, + "velocityY": 1.0977122363032967, + "timestamp": 1.1938653059760138 + }, + { + "x": 2.439219331143121, + "y": 4.6535487832014075, + "heading": 0.6014095745223278, + "angularVelocity": -0.24485020382419453, + "velocityX": -0.07090518903494168, + "velocityY": 1.0977122363032519, + "timestamp": 1.2133851681855246 + }, + { + "x": 2.437835271623219, + "y": 4.67497597479974, + "heading": 0.5958901570275208, + "angularVelocity": -0.2827590397701503, + "velocityX": -0.0709051890349925, + "velocityY": 1.0977122363032488, + "timestamp": 1.2329050303950353 + }, + { + "x": 2.436451212103383, + "y": 4.6964031663980785, + "heading": 0.5897601497327822, + "angularVelocity": -0.31403947573726876, + "velocityX": -0.07090518903158605, + "velocityY": 1.0977122363034686, + "timestamp": 1.252424892604546 + }, + { + "x": 2.435067152583774, + "y": 4.717830357996431, + "heading": 0.5831452513723752, + "angularVelocity": -0.3388803819108931, + "velocityX": -0.07090518901995538, + "velocityY": 1.0977122363042198, + "timestamp": 1.2719447548140568 + }, + { + "x": 2.4336830930638005, + "y": 4.739257549594759, + "heading": 0.5761672486910776, + "angularVelocity": -0.3574821690030978, + "velocityX": -0.07090518903864408, + "velocityY": 1.0977122363030127, + "timestamp": 1.2914646170235675 + }, + { + "x": 2.43229903355078, + "y": 4.760684741193537, + "heading": 0.5689411457289169, + "angularVelocity": -0.3701923140953224, + "velocityX": -0.07090518868243216, + "velocityY": 1.0977122363260217, + "timestamp": 1.3109844792330783 + }, + { + "x": 2.4309149740242, + "y": 4.782111932791438, + "heading": 0.5615761529884952, + "angularVelocity": -0.37730761935567353, + "velocityX": -0.0709051893770866, + "velocityY": 1.0977122362811516, + "timestamp": 1.330504341442589 + }, + { + "x": 2.429530914504782, + "y": 4.803539124389802, + "heading": 0.5541527674507875, + "angularVelocity": -0.38029907475933716, + "velocityX": -0.07090518901019488, + "velocityY": 1.0977122363048504, + "timestamp": 1.3500242036520997 + }, + { + "x": 2.428146854983486, + "y": 4.824966315988045, + "heading": 0.5468043202935023, + "angularVelocity": -0.37645999128537433, + "velocityX": -0.07090518910636172, + "velocityY": 1.0977122362986387, + "timestamp": 1.3695440658616105 + }, + { + "x": 2.426762793510881, + "y": 4.846393507460247, + "heading": 0.5396719834957803, + "angularVelocity": -0.3653886856970733, + "velocityX": -0.07090528907169229, + "velocityY": 1.0977122298415267, + "timestamp": 1.3890639280711212 + }, + { + "x": 2.425379677726893, + "y": 4.867820759997008, + "heading": 0.5329585070685474, + "angularVelocity": -0.34393052344202446, + "velocityX": -0.07085684156697322, + "velocityY": 1.0977153581709458, + "timestamp": 1.408583790280632 + }, + { + "x": 2.4262280706702253, + "y": 4.8892758383838535, + "heading": 0.526282631394024, + "angularVelocity": -0.342004241775385, + "velocityX": 0.043463060047614376, + "velocityY": 1.0991408728485923, + "timestamp": 1.4281036524901427 + }, + { + "x": 2.4295413494110107, + "y": 4.9104905128479, + "heading": 0.5196067748897207, + "angularVelocity": -0.3420032596874994, + "velocityX": 0.1697388385851715, + "velocityY": 1.086825011178144, + "timestamp": 1.4476235146996534 + }, + { + "x": 2.430686491824439, + "y": 4.917674582945456, + "heading": 0.5174267771121811, + "angularVelocity": -0.34200324859101694, + "velocityX": 0.17965267190957165, + "velocityY": 1.127054044175531, + "timestamp": 1.4539977166597828 + }, + { + "x": 2.4318948791765242, + "y": 4.925115068110181, + "heading": 0.5152467794096849, + "angularVelocity": -0.3420032368180158, + "velocityX": 0.18957468866591923, + "velocityY": 1.1672810512227292, + "timestamp": 1.4603719186199122 + }, + { + "x": 2.4331665694895817, + "y": 4.932811953964416, + "heading": 0.5130667817869297, + "angularVelocity": -0.3420032243080915, + "velocityX": 0.19950580810141244, + "velocityY": 1.2075058026679406, + "timestamp": 1.4667461205800416 + }, + { + "x": 2.4345016276914273, + "y": 4.940765224402815, + "heading": 0.5108867842490598, + "angularVelocity": -0.3420032109910574, + "velocityX": 0.20944711356758514, + "velocityY": 1.2477280274686948, + "timestamp": 1.473120322540171 + }, + { + "x": 2.4359001269261498, + "y": 4.948974861261079, + "heading": 0.5087067868017452, + "angularVelocity": -0.3420031967845304, + "velocityX": 0.21939989405258908, + "velocityY": 1.2879474026105764, + "timestamp": 1.4794945245003004 + }, + { + "x": 2.4373621502190166, + "y": 4.957440843894199, + "heading": 0.5065267894512792, + "angularVelocity": -0.342003181590706, + "velocityX": 0.22936569973973245, + "velocityY": 1.3281635389142183, + "timestamp": 1.4858687264604298 + }, + { + "x": 2.438887792623795, + "y": 4.9661631486310975, + "heading": 0.5043467922047046, + "angularVelocity": -0.3420031652919713, + "velocityX": 0.23934641768825957, + "velocityY": 1.368375961642996, + "timestamp": 1.4922429284205592 + }, + { + "x": 2.440477164040828, + "y": 4.975141748056803, + "heading": 0.5021667950699791, + "angularVelocity": -0.3420031477448131, + "velocityX": 0.2493443770646295, + "velocityY": 1.4085840834455217, + "timestamp": 1.4986171303806886 + }, + { + "x": 2.4421303929899736, + "y": 4.984376610048128, + "heading": 0.4999867980561955, + "angularVelocity": -0.3420031287711538, + "velocityX": 0.25936249894286634, + "velocityY": 1.4487871656857378, + "timestamp": 1.504991332340818 + }, + { + "x": 2.443847631780241, + "y": 4.993867696447146, + "heading": 0.4978068011738828, + "angularVelocity": -0.34200310814568574, + "velocityX": 0.26940451542153754, + "velocityY": 1.4889842616199083, + "timestamp": 1.5113655343009473 + }, + { + "x": 2.445629063788311, + "y": 5.003614961184849, + "heading": 0.49562680443542906, + "angularVelocity": -0.34200308557675785, + "velocityX": 0.27947530047093716, + "velocityY": 1.5291741301376238, + "timestamp": 1.5177397362610767 + }, + { + "x": 2.447474914043388, + "y": 5.013618347537239, + "heading": 0.4934468078556951, + "angularVelocity": -0.34200306067641556, + "velocityX": 0.2895813886385401, + "velocityY": 1.5693550996596037, + "timestamp": 1.524113938221206 + }, + { + "x": 2.4493854652362237, + "y": 5.023877783947195, + "heading": 0.491266811452942, + "angularVelocity": -0.3420030329112512, + "velocityX": 0.2997318260052878, + "velocityY": 1.609524843129977, + "timestamp": 1.5304881401813355 + }, + { + "x": 2.4513610831370687, + "y": 5.03439317733466, + "heading": 0.4890868152503013, + "angularVelocity": -0.3420030015171282, + "velocityX": 0.30993964628082354, + "velocityY": 1.6496799839791223, + "timestamp": 1.5368623421414649 + }, + { + "x": 2.4534022595247573, + "y": 5.045164401675509, + "heading": 0.48690681927825835, + "angularVelocity": -0.34200296534039537, + "velocityX": 0.3202246179922972, + "velocityY": 1.689815353862637, + "timestamp": 1.5432365441015943 + }, + { + "x": 2.4555096908421015, + "y": 5.056191276772893, + "heading": 0.48472682357920166, + "angularVelocity": -0.34200292251366626, + "velocityX": 0.33061884931265884, + "velocityY": 1.7299224540353866, + "timestamp": 1.5496107460617237 + }, + { + "x": 2.4576844394966524, + "y": 5.067473523836222, + "heading": 0.48254682821675904, + "angularVelocity": -0.34200286970484095, + "velocityX": 0.34117975366231496, + "velocityY": 1.76998581687561, + "timestamp": 1.555984948021853 + }, + { + "x": 2.459928324969431, + "y": 5.079010654411427, + "heading": 0.4803668332984725, + "angularVelocity": -0.34200280002457983, + "velocityX": 0.35202610253242167, + "velocityY": 1.8099725498766472, + "timestamp": 1.5623591499819824 + }, + { + "x": 2.4622451798217404, + "y": 5.0908015938615145, + "heading": 0.4781868390488615, + "angularVelocity": -0.3420026951211711, + "velocityX": 0.3634737127567209, + "velocityY": 1.8497906912645452, + "timestamp": 1.5687333519421118 + }, + { + "x": 2.464648292085581, + "y": 5.102842125059693, + "heading": 0.47600684624657236, + "angularVelocity": -0.34200246806187357, + "velocityX": 0.37700598112075934, + "velocityY": 1.8889472397473026, + "timestamp": 1.5751075539022412 + }, + { + "x": 2.467081908977696, + "y": 5.114620412113108, + "heading": 0.4738268584974906, + "angularVelocity": -0.3420016753026414, + "velocityX": 0.3817916199294585, + "velocityY": 1.847805753110444, + "timestamp": 1.5814817558623706 + }, + { + "x": 2.469469531042407, + "y": 5.126138650743352, + "heading": 0.47164687162541796, + "angularVelocity": -0.34200153771536607, + "velocityX": 0.3745758417517406, + "velocityY": 1.8070087365118965, + "timestamp": 1.5878559578225 + }, + { + "x": 2.471803786059134, + "y": 5.137398245819723, + "heading": 0.46946688521483676, + "angularVelocity": -0.3420014653154861, + "velocityX": 0.3662034920336832, + "velocityY": 1.7664321191576753, + "timestamp": 1.5942301597826294 + }, + { + "x": 2.474081908499231, + "y": 5.1483997806229285, + "heading": 0.4672868991106301, + "angularVelocity": -0.3420014172507204, + "velocityX": 0.3573972795882915, + "velocityY": 1.7259470082718722, + "timestamp": 1.6006043617427588 + }, + { + "x": 2.476302450086002, + "y": 5.159143572972929, + "heading": 0.46510691323246106, + "angularVelocity": -0.3420013817893936, + "velocityX": 0.3483638580422004, + "velocityY": 1.6855117577388727, + "timestamp": 1.6069785637028882 + }, + { + "x": 2.4784645197680093, + "y": 5.169629822648962, + "heading": 0.4629269275316465, + "angularVelocity": -0.34200135396561737, + "velocityX": 0.33919064622226364, + "velocityY": 1.6451078490492252, + "timestamp": 1.6133527656630176 + }, + { + "x": 2.480567514034971, + "y": 5.1798586668014694, + "heading": 0.4607469419758173, + "angularVelocity": -0.34200133121995435, + "velocityX": 0.3299227542704249, + "velocityY": 1.6047254568474338, + "timestamp": 1.619726967623147 + }, + { + "x": 2.4826109970779546, + "y": 5.1898302053954035, + "heading": 0.45856695654209484, + "angularVelocity": -0.34200131206355555, + "velocityX": 0.3205864915741728, + "velocityY": 1.5643587473862877, + "timestamp": 1.6261011695832763 + }, + { + "x": 2.4845946394187486, + "y": 5.199544514521585, + "heading": 0.45638697121359445, + "angularVelocity": -0.3420012955560595, + "velocityX": 0.3111985395507594, + "velocityY": 1.5240039752340067, + "timestamp": 1.6324753715434057 + }, + { + "x": 2.4865181832275827, + "y": 5.209001654034133, + "heading": 0.45420698597745013, + "angularVelocity": -0.34200128106703276, + "velocityX": 0.30177013857831786, + "velocityY": 1.4836585931388526, + "timestamp": 1.638849573503535 + }, + { + "x": 2.4883814212446196, + "y": 5.218201672245073, + "heading": 0.45202700082361424, + "angularVelocity": -0.34200126815429005, + "velocityX": 0.29230922218837585, + "velocityY": 1.4433207903491592, + "timestamp": 1.6452237754636645 + }, + { + "x": 2.4901841832310767, + "y": 5.227144608968611, + "heading": 0.4498470157440873, + "angularVelocity": -0.34200125649652, + "velocityX": 0.282821598332397, + "velocityY": 1.4029892337075143, + "timestamp": 1.6515979774237939 + }, + { + "x": 2.491926326863529, + "y": 5.23583049758156, + "heading": 0.44766703073240094, + "angularVelocity": -0.3420012458535238, + "velocityX": 0.2733116464381753, + "velocityY": 1.3626629132994164, + "timestamp": 1.6579721793839233 + }, + { + "x": 2.4936077313880713, + "y": 5.244259366467562, + "heading": 0.44548704578325826, + "angularVelocity": -0.34200123604151916, + "velocityX": 0.2637827503834201, + "velocityY": 1.3223410457849154, + "timestamp": 1.6643463813440527 + }, + { + "x": 2.4952282930623912, + "y": 5.252431240059427, + "heading": 0.44330706089227623, + "angularVelocity": -0.34200122691714707, + "velocityX": 0.25423757898738514, + "velocityY": 1.282023011347965, + "timestamp": 1.670720583304182 + }, + { + "x": 2.4967879217975235, + "y": 5.260346139610259, + "heading": 0.44112707605579615, + "angularVelocity": -0.3420012183667458, + "velocityX": 0.24467827421978572, + "velocityY": 1.2417083111484322, + "timestamp": 1.6770947852643114 + }, + { + "x": 2.498286538628955, + "y": 5.268004083776178, + "heading": 0.43894709127074194, + "angularVelocity": -0.34200121029894176, + "velocityX": 0.23510658131087206, + "velocityY": 1.2013965377658162, + "timestamp": 1.6834689872244408 + }, + { + "x": 2.499724073775942, + "y": 5.275405089064876, + "heading": 0.4367671065345112, + "angularVelocity": -0.3420012026393997, + "velocityX": 0.22552394103267395, + "velocityY": 1.16108735414882, + "timestamp": 1.6898431891845702 + }, + { + "x": 2.50110046512743, + "y": 5.282549170186488, + "heading": 0.43458712184489096, + "angularVelocity": -0.3420011953270199, + "velocityX": 0.21593155662425978, + "velocityY": 1.1207804782934794, + "timestamp": 1.6962173911446996 + }, + { + "x": 2.502415657043457, + "y": 5.289436340332031, + "heading": 0.43240713719999146, + "angularVelocity": -0.34200118831113024, + "velocityX": 0.20633044328587646, + "velocityY": 1.0804756718758335, + "timestamp": 1.702591593104829 + }, + { + "x": 2.5039500670719033, + "y": 5.311668330173006, + "heading": 0.42547855071687624, + "angularVelocity": -0.34200071520177083, + "velocityX": 0.07573973831749738, + "velocityY": 1.0973892646791972, + "timestamp": 1.7228505755430017 + }, + { + "x": 2.502817272216882, + "y": 5.333924398215764, + "heading": 0.4185500277771998, + "angularVelocity": -0.34199757864548086, + "velocityX": -0.055915683745634874, + "velocityY": 1.0985777844805285, + "timestamp": 1.7431095579811744 + }, + { + "x": 2.501180027089419, + "y": 5.356149051587616, + "heading": 0.4126295978113165, + "angularVelocity": -0.29223728210197597, + "velocityX": -0.08081576320328872, + "velocityY": 1.097027130542174, + "timestamp": 1.763368540419347 + }, + { + "x": 2.4995427741087304, + "y": 5.3783737043809365, + "heading": 0.40703206068621234, + "angularVelocity": -0.2762990264781028, + "velocityX": -0.08081615084496348, + "velocityY": 1.0970271019853315, + "timestamp": 1.7836275228575198 + }, + { + "x": 2.497905521126773, + "y": 5.400598357174164, + "heading": 0.40174125162070407, + "angularVelocity": -0.26115867772011714, + "velocityX": -0.080816150907577, + "velocityY": 1.0970271019807187, + "timestamp": 1.8038865052956925 + }, + { + "x": 2.496268268134211, + "y": 5.422823009966609, + "heading": 0.3967292023899977, + "angularVelocity": -0.2473988634919003, + "velocityX": -0.0808161514310379, + "velocityY": 1.0970271019421565, + "timestamp": 1.8241454877338652 + }, + { + "x": 2.4946310151410938, + "y": 5.4450476627590145, + "heading": 0.39197130991231566, + "angularVelocity": -0.23485347757234862, + "velocityX": -0.08081615145842604, + "velocityY": 1.0970271019401387, + "timestamp": 1.844404470172038 + }, + { + "x": 2.4929937621480303, + "y": 5.467272315551423, + "heading": 0.38744599900582816, + "angularVelocity": -0.22337306033499107, + "velocityX": -0.08081615145581232, + "velocityY": 1.0970271019403313, + "timestamp": 1.8646634526102106 + }, + { + "x": 2.4913565091550103, + "y": 5.489496968343834, + "heading": 0.38313430437464335, + "angularVelocity": -0.2128287856679599, + "velocityX": -0.08081615145363683, + "velocityY": 1.0970271019404914, + "timestamp": 1.8849224350483833 + }, + { + "x": 2.489719256162009, + "y": 5.511721621136248, + "heading": 0.37901946786612345, + "angularVelocity": -0.2031117071687932, + "velocityX": -0.08081615145273108, + "velocityY": 1.0970271019405582, + "timestamp": 1.905181417486556 + }, + { + "x": 2.4880820031690125, + "y": 5.5339462739286605, + "heading": 0.3750865847796286, + "angularVelocity": -0.19413033692572682, + "velocityX": -0.08081615145247344, + "velocityY": 1.0970271019405773, + "timestamp": 1.9254403999247287 + }, + { + "x": 2.486444750176016, + "y": 5.556170926721075, + "heading": 0.37132231642821506, + "angularVelocity": -0.18580737521746254, + "velocityX": -0.08081615145246053, + "velocityY": 1.0970271019405782, + "timestamp": 1.9456993823629014 + }, + { + "x": 2.484807497183019, + "y": 5.578395579513488, + "heading": 0.36771467197527735, + "angularVelocity": -0.17807629104510383, + "velocityX": -0.0808161514525092, + "velocityY": 1.0970271019405746, + "timestamp": 1.965958364801074 + }, + { + "x": 2.483170244190021, + "y": 5.600620232305903, + "heading": 0.3642528528281405, + "angularVelocity": -0.17087823426975032, + "velocityX": -0.08081615145255612, + "velocityY": 1.097027101940571, + "timestamp": 1.9862173472392468 + }, + { + "x": 2.4815329911970223, + "y": 5.622844885098316, + "heading": 0.3609271459403392, + "angularVelocity": -0.16415962143956772, + "velocityX": -0.08081615145258811, + "velocityY": 1.0970271019405688, + "timestamp": 2.0064763296774193 + }, + { + "x": 2.479895738204023, + "y": 5.6450695378907305, + "heading": 0.35772884966735696, + "angularVelocity": -0.15787052892429068, + "velocityX": -0.08081615145260722, + "velocityY": 1.0970271019405675, + "timestamp": 2.026735312115592 + }, + { + "x": 2.478258485211024, + "y": 5.667294190683143, + "heading": 0.35465021813338726, + "angularVelocity": -0.15196377919598353, + "velocityX": -0.08081615145261745, + "velocityY": 1.0970271019405666, + "timestamp": 2.0469942945537647 + }, + { + "x": 2.4766212322180245, + "y": 5.689518843475557, + "heading": 0.3516844151848806, + "angularVelocity": -0.14639446761740868, + "velocityX": -0.08081615145262162, + "velocityY": 1.0970271019405664, + "timestamp": 2.0672532769919374 + }, + { + "x": 2.474983979225025, + "y": 5.711743496267971, + "heading": 0.3488254740032406, + "angularVelocity": -0.14111968310180528, + "velocityX": -0.08081615145262243, + "velocityY": 1.0970271019405664, + "timestamp": 2.08751225943011 + }, + { + "x": 2.473346726232026, + "y": 5.733968149060384, + "heading": 0.346068260905357, + "angularVelocity": -0.13609830139782436, + "velocityX": -0.08081615145262222, + "velocityY": 1.0970271019405664, + "timestamp": 2.107771241868283 + }, + { + "x": 2.4717094732390263, + "y": 5.756192801852799, + "heading": 0.34340844222101774, + "angularVelocity": -0.13129083321221147, + "velocityX": -0.08081615145262207, + "velocityY": 1.0970271019405664, + "timestamp": 2.1280302243064555 + }, + { + "x": 2.470072220246027, + "y": 5.778417454645212, + "heading": 0.34084245371118643, + "angularVelocity": -0.1266592987906645, + "velocityX": -0.08081615145262204, + "velocityY": 1.0970271019405664, + "timestamp": 2.148289206744628 + }, + { + "x": 2.468434967253028, + "y": 5.800642107437627, + "heading": 0.3383674730286024, + "angularVelocity": -0.12216707774624941, + "velocityX": -0.08081615145262197, + "velocityY": 1.0970271019405664, + "timestamp": 2.168548189182801 + }, + { + "x": 2.4667977142600286, + "y": 5.822866760230039, + "heading": 0.33598139613372807, + "angularVelocity": -0.11777871382021575, + "velocityX": -0.08081615145262176, + "velocityY": 1.0970271019405664, + "timestamp": 2.1888071716209736 + }, + { + "x": 2.465160461267029, + "y": 5.845091413022454, + "heading": 0.3336828183391503, + "angularVelocity": -0.11345968641775295, + "velocityX": -0.08081615145262147, + "velocityY": 1.0970271019405664, + "timestamp": 2.2090661540591463 + }, + { + "x": 2.46352320827403, + "y": 5.867316065814867, + "heading": 0.331471020338079, + "angularVelocity": -0.10917616458878997, + "velocityX": -0.08081615145262108, + "velocityY": 1.0970271019405664, + "timestamp": 2.229325136497319 + }, + { + "x": 2.4618859552810304, + "y": 5.8895407186072815, + "heading": 0.32934595940966455, + "angularVelocity": -0.10489475149602846, + "velocityX": -0.08081615145262068, + "velocityY": 1.0970271019405662, + "timestamp": 2.2495841189354917 + }, + { + "x": 2.460248702288031, + "y": 5.911765371399695, + "heading": 0.3273082659544049, + "angularVelocity": -0.10058222131730589, + "velocityX": -0.08081615145262047, + "velocityY": 1.0970271019405662, + "timestamp": 2.2698431013736644 + }, + { + "x": 2.4586114492950313, + "y": 5.933990024192109, + "heading": 0.3253592455643054, + "angularVelocity": -0.09620524604568194, + "velocityX": -0.08081615145262105, + "velocityY": 1.0970271019405662, + "timestamp": 2.290102083811837 + }, + { + "x": 2.456974196302032, + "y": 5.956214676984522, + "heading": 0.3235008869598311, + "angularVelocity": -0.09173010589972616, + "velocityX": -0.0808161514526233, + "velocityY": 1.0970271019405662, + "timestamp": 2.31036106625001 + }, + { + "x": 2.4553369433090326, + "y": 5.978439329776935, + "heading": 0.3217358763132212, + "angularVelocity": -0.08712237408746824, + "velocityX": -0.08081615145262841, + "velocityY": 1.0970271019405657, + "timestamp": 2.3306200486881825 + }, + { + "x": 2.4536996903160326, + "y": 6.000663982569349, + "heading": 0.3200676188117958, + "angularVelocity": -0.08234655943439834, + "velocityX": -0.08081615145263718, + "velocityY": 1.097027101940565, + "timestamp": 2.350879031126355 + }, + { + "x": 2.452062437323033, + "y": 6.0228886353617614, + "heading": 0.31850026903579604, + "angularVelocity": -0.07736567129090453, + "velocityX": -0.08081615145264842, + "velocityY": 1.0970271019405644, + "timestamp": 2.371138013564528 + }, + { + "x": 2.450425184330033, + "y": 6.045113288154175, + "heading": 0.31703877306093387, + "angularVelocity": -0.07214064079093804, + "velocityX": -0.08081615145264577, + "velocityY": 1.0970271019405646, + "timestamp": 2.3913969960027006 + }, + { + "x": 2.4487879313370393, + "y": 6.067337940946588, + "heading": 0.31568892716271424, + "angularVelocity": -0.06662950137496512, + "velocityX": -0.08081615145234498, + "velocityY": 1.0970271019405868, + "timestamp": 2.4116559784408733 + }, + { + "x": 2.4471506783441654, + "y": 6.089562593739011, + "heading": 0.31445746029620136, + "angularVelocity": -0.060786215214470356, + "velocityX": -0.08081615144643692, + "velocityY": 1.0970271019410218, + "timestamp": 2.431914960879046 + }, + { + "x": 2.4455134253514674, + "y": 6.111787246531447, + "heading": 0.31335214565883224, + "angularVelocity": -0.05455923764889827, + "velocityX": -0.0808161514377356, + "velocityY": 1.097027101941663, + "timestamp": 2.4521739433172187 + }, + { + "x": 2.4438761754310208, + "y": 6.1340118995502095, + "heading": 0.3123805776436278, + "angularVelocity": -0.047957394610983334, + "velocityX": -0.08081599978890032, + "velocityY": 1.0970271131133675, + "timestamp": 2.4724329257553914 + }, + { + "x": 2.4426626735271473, + "y": 6.156263713006035, + "heading": 0.3123467820423707, + "angularVelocity": -0.0016681786146094508, + "velocityX": -0.059899449914485516, + "velocityY": 1.0983677745777325, + "timestamp": 2.492691908193564 + }, + { + "x": 2.4441163539886475, + "y": 6.178501129150391, + "heading": 0.31231301850628623, + "angularVelocity": -0.001666595851373434, + "velocityX": 0.07175486063709009, + "velocityY": 1.0976571114675118, + "timestamp": 2.512950890631737 + }, + { + "x": 2.445120314919253, + "y": 6.193259169320273, + "heading": 0.3122921501978642, + "angularVelocity": -0.0016665908226668657, + "velocityX": 0.08017861531591786, + "velocityY": 1.1786108298894822, + "timestamp": 2.5254724454958355 + }, + { + "x": 2.4462297546765157, + "y": 6.209030875744221, + "heading": 0.31227128196159304, + "angularVelocity": -0.001666585060531769, + "velocityX": 0.08860239557336788, + "velocityY": 1.2595645345267146, + "timestamp": 2.537994000359934 + }, + { + "x": 2.447444673638935, + "y": 6.22581624821825, + "heading": 0.3122504138083226, + "angularVelocity": -0.0016665784319106992, + "velocityX": 0.0970262060586898, + "velocityY": 1.3405182228730212, + "timestamp": 2.550515555224033 + }, + { + "x": 2.4487650722606893, + "y": 6.243615286497575, + "heading": 0.31222954575106787, + "angularVelocity": -0.0016665707638681853, + "velocityX": 0.10545005281575058, + "velocityY": 1.4214718916703686, + "timestamp": 2.5630371100881315 + }, + { + "x": 2.4501909510968605, + "y": 6.262427990283018, + "heading": 0.3122086778057308, + "angularVelocity": -0.0016665618258727513, + "velocityX": 0.1138739439028499, + "velocityY": 1.5024255365747223, + "timestamp": 2.57555866495223 + }, + { + "x": 2.4517223108412662, + "y": 6.282254359200611, + "heading": 0.31218780999218143, + "angularVelocity": -0.0016665513010058741, + "velocityX": 0.12229789039991894, + "velocityY": 1.5833791516130427, + "timestamp": 2.588080219816329 + }, + { + "x": 2.4533591523859206, + "y": 6.3030943927695375, + "heading": 0.3121669423359579, + "angularVelocity": -0.0016665387366078144, + "velocityX": 0.1307219081351457, + "velocityY": 1.6643327282524174, + "timestamp": 2.6006017746804275 + }, + { + "x": 2.4551014769201203, + "y": 6.324948090348718, + "heading": 0.31214607487109886, + "angularVelocity": -0.0016665234537968112, + "velocityX": 0.13914602085045547, + "velocityY": 1.7452862536934581, + "timestamp": 2.613123329544526 + }, + { + "x": 2.456949286108817, + "y": 6.347815451040637, + "heading": 0.3121252076452424, + "angularVelocity": -0.0016665043665100416, + "velocityX": 0.1475702665324821, + "velocityY": 1.8262397074570682, + "timestamp": 2.625644884408625 + }, + { + "x": 2.4589025824493427, + "y": 6.371696473499027, + "heading": 0.31210434072982224, + "angularVelocity": -0.0016664795743487205, + "velocityX": 0.1559947116572947, + "velocityY": 1.9071930537045811, + "timestamp": 2.6381664392727235 + }, + { + "x": 2.4609613701037936, + "y": 6.396591155480096, + "heading": 0.31208347424386035, + "angularVelocity": -0.0016664452768294048, + "velocityX": 0.1644194891765353, + "velocityY": 1.9881462207577703, + "timestamp": 2.650687994136822 + }, + { + "x": 2.4631256573961786, + "y": 6.42249949249619, + "heading": 0.31206260842534267, + "angularVelocity": -0.0016663919732125923, + "velocityX": 0.17284493147017146, + "velocityY": 2.0690990294167224, + "timestamp": 2.663209549000921 + }, + { + "x": 2.465395469298453, + "y": 6.4494214710836495, + "heading": 0.31204174398811113, + "angularVelocity": -0.0016662816605493682, + "velocityX": 0.18127236808123234, + "velocityY": 2.1500507628368233, + "timestamp": 2.6757311038650196 + }, + { + "x": 2.4681376004947353, + "y": 6.47577679013902, + "heading": 0.3120417372263623, + "angularVelocity": -5.400087174004848e-7, + "velocityX": 0.21899286678404084, + "velocityY": 2.1047960370269934, + "timestamp": 2.6882526587291182 + }, + { + "x": 2.470774311450749, + "y": 6.501118456760936, + "heading": 0.3120417319404172, + "angularVelocity": -4.221476647395223e-7, + "velocityX": 0.21057376536947703, + "velocityY": 2.0238434361354614, + "timestamp": 2.700774213593217 + }, + { + "x": 2.4733055749620316, + "y": 6.5254464629164515, + "heading": 0.31204172741662234, + "angularVelocity": -3.6128059653857945e-7, + "velocityX": 0.20215249134431051, + "velocityY": 1.9428901937145648, + "timestamp": 2.7132957684573156 + }, + { + "x": 2.4757313819600233, + "y": 6.548760805927957, + "heading": 0.3120417234170857, + "angularVelocity": -3.194121424024608e-7, + "velocityX": 0.19373049308334386, + "velocityY": 1.86193673745348, + "timestamp": 2.7258173233214142 + }, + { + "x": 2.4780517279103704, + "y": 6.57106148445665, + "heading": 0.3120417198228596, + "angularVelocity": -2.8704311053324193e-7, + "velocityX": 0.1853081326984355, + "velocityY": 1.7809831742728512, + "timestamp": 2.738338878185513 + }, + { + "x": 2.480266610092436, + "y": 6.592348497699256, + "heading": 0.31204171656257523, + "angularVelocity": -2.603737685546178e-7, + "velocityX": 0.1768855550372324, + "velocityY": 1.7000295469406712, + "timestamp": 2.7508604330496116 + }, + { + "x": 2.482376026692451, + "y": 6.612621845120259, + "heading": 0.3120417135886529, + "angularVelocity": -2.3750423481094313e-7, + "velocityX": 0.1684628325243642, + "velocityY": 1.6190758768408642, + "timestamp": 2.7633819879137103 + }, + { + "x": 2.4843799764148624, + "y": 6.631881526337144, + "heading": 0.31204171086710725, + "angularVelocity": -2.173488571042306e-7, + "velocityX": 0.16004000654562925, + "velocityY": 1.5381221761927877, + "timestamp": 2.775903542777809 + }, + { + "x": 2.486278458288003, + "y": 6.650127541063028, + "heading": 0.3120417083724491, + "angularVelocity": -1.9922910030034145e-7, + "velocityX": 0.15161710296728076, + "velocityY": 1.4571684526335285, + "timestamp": 2.7884250976419076 + }, + { + "x": 2.488071471556129, + "y": 6.667359889074779, + "heading": 0.31204170608485365, + "angularVelocity": -1.8269260644926615e-7, + "velocityX": 0.14319413903355122, + "velocityY": 1.3762147112544725, + "timestamp": 2.8009466525060063 + }, + { + "x": 2.489759015614645, + "y": 6.6835785701938955, + "heading": 0.3120417039884608, + "angularVelocity": -1.674227243664847e-7, + "velocityX": 0.13477112681543785, + "velocityY": 1.2952609556195864, + "timestamp": 2.813468207370105 + }, + { + "x": 2.4913410899688806, + "y": 6.6987835842743255, + "heading": 0.3120417020702943, + "angularVelocity": -1.531891618909752e-7, + "velocityX": 0.12634807509186746, + "velocityY": 1.2143071883208436, + "timestamp": 2.8259897622342036 + }, + { + "x": 2.492817694206612, + "y": 6.712974931194359, + "heading": 0.31204170031954054, + "angularVelocity": -1.398191997292053e-7, + "velocityX": 0.11792499044704728, + "velocityY": 1.133353411302224, + "timestamp": 2.8385113170983023 + }, + { + "x": 2.4941888279790314, + "y": 6.726152610851015, + "heading": 0.31204169872704945, + "angularVelocity": -1.2717997669843785e-7, + "velocityX": 0.10950187794575982, + "velocityY": 1.0523996260590955, + "timestamp": 2.851032871962401 + }, + { + "x": 2.4954544909871625, + "y": 6.738316623156021, + "heading": 0.31204169728497827, + "angularVelocity": -1.1516710180906414e-7, + "velocityX": 0.10107874156748214, + "velocityY": 0.9714458337663897, + "timestamp": 2.8635544268264996 + }, + { + "x": 2.4966146829718916, + "y": 6.749466968032875, + "heading": 0.3120416959865298, + "angularVelocity": -1.0369706220656991e-7, + "velocityX": 0.0926555844957994, + "velocityY": 0.8904920353640515, + "timestamp": 2.8760759816905983 + }, + { + "x": 2.4976694037064946, + "y": 6.759603645414637, + "heading": 0.3120416948257566, + "angularVelocity": -9.270200362796257e-8, + "velocityX": 0.08423240931737695, + "velocityY": 0.8095382316157859, + "timestamp": 2.888597536554697 + }, + { + "x": 2.498618652990919, + "y": 6.768726655242244, + "heading": 0.31204169379741076, + "angularVelocity": -8.212604606332189e-8, + "velocityX": 0.07580921816241157, + "velocityY": 0.7285844231505263, + "timestamp": 2.9011190914187956 + }, + { + "x": 2.4994624306473434, + "y": 6.776835997463195, + "heading": 0.3120416928968277, + "angularVelocity": -7.192262285581183e-8, + "velocityX": 0.0673860128060685, + "velocityY": 0.6476306104923838, + "timestamp": 2.9136406462828943 + }, + { + "x": 2.5002007365166614, + "y": 6.783931672030513, + "heading": 0.31204169211983374, + "angularVelocity": -6.205251993623152e-8, + "velocityX": 0.05896279474322469, + "velocityY": 0.5666767940827149, + "timestamp": 2.926162201146993 + }, + { + "x": 2.5008335704556783, + "y": 6.790013678901921, + "heading": 0.31204169146267235, + "angularVelocity": -5.248240529483989e-8, + "velocityX": 0.050539565244526304, + "velocityY": 0.4857229742966727, + "timestamp": 2.9386837560110917 + }, + { + "x": 2.501360932334837, + "y": 6.79508201803917, + "heading": 0.3120416909219452, + "angularVelocity": -4.318370871290697e-8, + "velocityX": 0.042116325399099146, + "velocityY": 0.40476915145581677, + "timestamp": 2.9512053108751903 + }, + { + "x": 2.5017828220363594, + "y": 6.799136689407485, + "heading": 0.31204169049456254, + "angularVelocity": -3.413175581865135e-8, + "velocityX": 0.033693076147552306, + "velocityY": 0.32381532583785777, + "timestamp": 2.963726865739289 + }, + { + "x": 2.502099239452706, + "y": 6.802177692975116, + "heading": 0.31204169017770345, + "angularVelocity": -2.5305090671972932e-8, + "velocityX": 0.0252698183078071, + "velocityY": 0.24286149768428308, + "timestamp": 2.9762484206033877 + }, + { + "x": 2.502310184485302, + "y": 6.80420502871296, + "heading": 0.31204168996878207, + "angularVelocity": -1.6684939319236987e-8, + "velocityX": 0.016846552595544913, + "velocityY": 0.16190766720639427, + "timestamp": 2.9887699754674864 + }, + { + "x": 2.502415657043457, + "y": 6.805218696594238, + "heading": 0.31204168986541936, + "angularVelocity": -8.25478071143404e-9, + "velocityX": 0.008423279640565606, + "velocityY": 0.08095383459013655, + "timestamp": 3.001291530331585 + }, + { + "x": 2.502415657043457, + "y": 6.805218696594238, + "heading": 0.31204168986541936, + "angularVelocity": 0, + "velocityX": -3.483076736019266e-25, + "velocityY": 4.61317314918875e-27, + "timestamp": 3.0138130851956837 + } + ], + "constraints": [ + { + "scope": [ + "first" + ], + "type": "StopPoint", + "uuid": "5f44a2b4-111f-4edd-af18-90e91dba1747" + }, + { + "scope": [ + "last" + ], + "type": "StopPoint", + "uuid": "99440dff-41de-4fde-b91e-1ab503872d72" + }, + { + "scope": [ + 1, + 2 + ], + "type": "MaxVelocity", + "uuid": "31aa239d-2ada-43e1-851c-6b8119b19869", + "velocity": 1.1 + }, + { + "scope": [ + 3, + 4 + ], + "type": "MaxVelocity", + "uuid": "fbdb5549-34d4-45f3-b7a7-d54860e68803", + "velocity": 1.1 + } + ], + "usesControlIntervalGuessing": false, + "defaultControlIntervalCount": 40, + "usesDefaultFieldObstacles": true, + "circleObstacles": [] } } } \ No newline at end of file diff --git a/src/main/deploy/choreo/3Centerline.traj b/src/main/deploy/choreo/3Centerline.traj new file mode 100644 index 00000000..ad776094 --- /dev/null +++ b/src/main/deploy/choreo/3Centerline.traj @@ -0,0 +1,985 @@ +{ + "samples": [ + { + "x": 1.8608553409576416, + "y": 5.938887119293213, + "heading": 0.305879568562575, + "angularVelocity": 5.829173690613896e-22, + "velocityX": -4.239164801235723e-21, + "velocityY": -8.56131924454696e-22, + "timestamp": 0 + }, + { + "x": 1.920785185674491, + "y": 5.950948447445072, + "heading": 0.29568066409022925, + "angularVelocity": -0.1087415369182898, + "velocityX": 0.638976807700777, + "velocityY": 0.12859884746103709, + "timestamp": 0.09379032852928489 + }, + { + "x": 2.040644873990048, + "y": 5.975071063417899, + "heading": 0.2752821629251994, + "angularVelocity": -0.21749045434530723, + "velocityX": 1.2779536034798316, + "velocityY": 0.2571972649109091, + "timestamp": 0.18758065705856977 + }, + { + "x": 2.2204344060834567, + "y": 6.01125490522267, + "heading": 0.24468324187657475, + "angularVelocity": -0.3262481486997939, + "velocityX": 1.9169304011689379, + "velocityY": 0.3857950214288154, + "timestamp": 0.28137098558785467 + }, + { + "x": 2.4601537876635544, + "y": 6.059499889251536, + "heading": 0.2038834521735011, + "angularVelocity": -0.4350106278850961, + "velocityX": 2.5559072597261285, + "velocityY": 0.514391886513143, + "timestamp": 0.37516131411713954 + }, + { + "x": 2.7598030292882076, + "y": 6.119805911541678, + "heading": 0.15288343864942966, + "angularVelocity": -0.5437662318044585, + "velocityX": 3.1948842308521352, + "velocityY": 0.6429876431375527, + "timestamp": 0.4689516426464244 + }, + { + "x": 3.096037782022018, + "y": 6.187474552253286, + "heading": 0.1528834334531576, + "angularVelocity": -5.540306902040579e-8, + "velocityX": 3.5849618825977916, + "velocityY": 0.7214884708552811, + "timestamp": 0.5627419711757093 + }, + { + "x": 3.432272534725669, + "y": 6.255143193114989, + "heading": 0.152883428256934, + "angularVelocity": -5.540255286722503e-8, + "velocityX": 3.584961882276224, + "velocityY": 0.7214884724556129, + "timestamp": 0.6565322997049943 + }, + { + "x": 3.768507287429323, + "y": 6.322811833976674, + "heading": 0.1528834230607103, + "angularVelocity": -5.540255361921963e-8, + "velocityX": 3.584961882276264, + "velocityY": 0.7214884724554109, + "timestamp": 0.7503226282342792 + }, + { + "x": 4.104742040132986, + "y": 6.390480474838318, + "heading": 0.15288341786448656, + "angularVelocity": -5.5402553936553215e-8, + "velocityX": 3.584961882276352, + "velocityY": 0.7214884724549767, + "timestamp": 0.8441129567635641 + }, + { + "x": 4.440976792836646, + "y": 6.458149115699975, + "heading": 0.15288341266826286, + "angularVelocity": -5.540255357687288e-8, + "velocityX": 3.584961882276326, + "velocityY": 0.7214884724551046, + "timestamp": 0.937903285292849 + }, + { + "x": 4.777211545540301, + "y": 6.525817756561653, + "heading": 0.1528834074720391, + "angularVelocity": -5.5402554130547034e-8, + "velocityX": 3.5849618822762768, + "velocityY": 0.7214884724553482, + "timestamp": 1.031693613822134 + }, + { + "x": 5.113446298243962, + "y": 6.593486397423306, + "heading": 0.15288340227581537, + "angularVelocity": -5.540255388249398e-8, + "velocityX": 3.584961882276334, + "velocityY": 0.7214884724550655, + "timestamp": 1.125483942351419 + }, + { + "x": 5.449681050947619, + "y": 6.661155038284979, + "heading": 0.15288339707959164, + "angularVelocity": -5.540255387272659e-8, + "velocityX": 3.584961882276292, + "velocityY": 0.7214884724552731, + "timestamp": 1.2192742708807038 + }, + { + "x": 5.785915803651279, + "y": 6.728823679146634, + "heading": 0.15288339188336802, + "angularVelocity": -5.5402552746810195e-8, + "velocityX": 3.584961882276327, + "velocityY": 0.7214884724551002, + "timestamp": 1.3130645994099888 + }, + { + "x": 6.122150556354927, + "y": 6.796492320008345, + "heading": 0.1528833866871443, + "angularVelocity": -5.540255396525083e-8, + "velocityX": 3.5849618822762097, + "velocityY": 0.7214884724556808, + "timestamp": 1.4068549279392737 + }, + { + "x": 6.458385309058613, + "y": 6.864160960869874, + "heading": 0.15288338149092062, + "angularVelocity": -5.540255313060849e-8, + "velocityX": 3.5849618822765965, + "velocityY": 0.7214884724537611, + "timestamp": 1.5006452564685586 + }, + { + "x": 6.794620061762232, + "y": 6.931829601731737, + "heading": 0.1528833762946969, + "angularVelocity": -5.540255368032922e-8, + "velocityX": 3.5849618822758833, + "velocityY": 0.7214884724573051, + "timestamp": 1.5944355849978435 + }, + { + "x": 7.130854814534018, + "y": 6.999498242254649, + "heading": 0.1528833710984248, + "angularVelocity": -5.5403069453392605e-8, + "velocityX": 3.5849618830026935, + "velocityY": 0.7214884688433891, + "timestamp": 1.6882259135271285 + }, + { + "x": 7.430504858402931, + "y": 7.059802356369048, + "heading": 0.10191849540154471, + "angularVelocity": -0.5433915894746751, + "velocityX": 3.1948927844447264, + "velocityY": 0.6429672980148516, + "timestamp": 1.7820162420564134 + }, + { + "x": 7.67022495954135, + "y": 7.108045593634433, + "heading": 0.06114961629640668, + "angularVelocity": -0.4346810566124464, + "velocityX": 2.555914931714623, + "velocityY": 0.5143732623808938, + "timestamp": 1.8758065705856983 + }, + { + "x": 7.8500150651920775, + "y": 7.144227995763732, + "heading": 0.030574531833697825, + "angularVelocity": -0.32599400111027615, + "velocityX": 1.916936516483045, + "velocityY": 0.3857796714935467, + "timestamp": 1.9695968991149833 + }, + { + "x": 7.969875144582322, + "y": 7.168349588803029, + "heading": 0.010191587226393475, + "angularVelocity": -0.21732458907999266, + "velocityX": 1.2779577731494982, + "velocityY": 0.25718635831161385, + "timestamp": 2.063387227644268 + }, + { + "x": 8.029805183410645, + "y": 7.180410385131836, + "heading": -1.5403204326632027e-19, + "angularVelocity": -0.10866351985547505, + "velocityX": 0.6389788773328549, + "velocityY": 0.1285931771210457, + "timestamp": 2.157177556173553 + }, + { + "x": 8.029805183410645, + "y": 7.180410385131836, + "heading": -1.5143595129762703e-19, + "angularVelocity": -2.854862345939135e-20, + "velocityX": 1.5619014793820894e-19, + "velocityY": 5.756387803346198e-20, + "timestamp": 2.250967884702838 + }, + { + "x": 7.977782055764913, + "y": 7.164211731514623, + "heading": 0.007845907070085154, + "angularVelocity": 0.08862253925843301, + "velocityX": -0.5876212439105888, + "velocityY": -0.1829700254287652, + "timestamp": 2.3394996186808683 + }, + { + "x": 7.873735810540943, + "y": 7.131814420329787, + "heading": 0.023538488906928237, + "angularVelocity": 0.17725374994617482, + "velocityX": -1.1752423741049713, + "velocityY": -0.36594009547893014, + "timestamp": 2.428031352658899 + }, + { + "x": 7.717666465286569, + "y": 7.0832184446557225, + "heading": 0.04707901098544824, + "angularVelocity": 0.2658992546600486, + "velocityX": -1.7628633060898011, + "velocityY": -0.548910243711303, + "timestamp": 2.5165630866369293 + }, + { + "x": 7.50957404571599, + "y": 7.018423792773334, + "heading": 0.07846909232757103, + "angularVelocity": 0.3545630468495328, + "velocityX": -2.3504839476228767, + "velocityY": -0.7318805243153491, + "timestamp": 2.60509482061496 + }, + { + "x": 7.249458590154704, + "y": 6.937430446851037, + "heading": 0.11771030908646642, + "angularVelocity": 0.4432446422955327, + "velocityX": -2.9381041562546777, + "velocityY": -0.9148510063340223, + "timestamp": 2.6936265545929903 + }, + { + "x": 6.9403504261875275, + "y": 6.841180717415368, + "heading": 0.11771031338168697, + "angularVelocity": 4.8516168957241446e-8, + "velocityX": -3.4914956488244515, + "velocityY": -1.0871777283787833, + "timestamp": 2.7821582885710208 + }, + { + "x": 6.631242265256751, + "y": 6.74493097822586, + "heading": 0.1177103176763249, + "angularVelocity": 4.850958782691505e-8, + "velocityX": -3.4914956145271363, + "velocityY": -1.0871778385521202, + "timestamp": 2.8706900225490513 + }, + { + "x": 6.3221341042798125, + "y": 6.6486812391846035, + "heading": 0.11771032197096283, + "angularVelocity": 4.850958799660226e-8, + "velocityX": -3.4914956150485508, + "velocityY": -1.087177836877585, + "timestamp": 2.9592217565270817 + }, + { + "x": 6.013025943341647, + "y": 6.552431500018828, + "heading": 0.11771032626560081, + "angularVelocity": 4.8509588352896574e-8, + "velocityX": -3.4914956146105998, + "velocityY": -1.0871778382840753, + "timestamp": 3.0477534905051122 + }, + { + "x": 5.703917779977134, + "y": 6.456181768647687, + "heading": 0.11771033056081937, + "angularVelocity": 4.851614628573155e-8, + "velocityX": -3.491495642017128, + "velocityY": -1.0871777502406696, + "timestamp": 3.1362852244831427 + }, + { + "x": 5.443802852291196, + "y": 6.375187913058336, + "heading": 0.15698715456634274, + "angularVelocity": 0.44364683984694225, + "velocityX": -2.9380981936995307, + "velocityY": -0.9148567632195014, + "timestamp": 3.224816958461173 + }, + { + "x": 5.235710915275229, + "y": 6.310392799606434, + "heading": 0.18840994792999097, + "angularVelocity": 0.35493254171940114, + "velocityX": -2.3504784969828454, + "velocityY": -0.7318857379206117, + "timestamp": 3.3133486924392037 + }, + { + "x": 5.079641966218732, + "y": 6.261796449920312, + "heading": 0.21197753584446782, + "angularVelocity": 0.2662049736914137, + "velocityX": -1.7628588308823359, + "velocityY": -0.548914468321395, + "timestamp": 3.401880426417234 + }, + { + "x": 4.975596000715217, + "y": 6.229398878335517, + "heading": 0.2276893987993674, + "angularVelocity": 0.17747153759349776, + "velocityX": -1.1752392145548016, + "velocityY": -0.3659430367966726, + "timestamp": 3.4904121603952647 + }, + { + "x": 4.923573017120361, + "y": 6.213200092315674, + "heading": 0.23554532977562304, + "angularVelocity": 0.08873576313556827, + "velocityX": -0.5876196168005193, + "velocityY": -0.18297152096741656, + "timestamp": 3.578943894373295 + }, + { + "x": 4.923573017120361, + "y": 6.213200092315674, + "heading": 0.23554532977562304, + "angularVelocity": -4.4557329542893123e-20, + "velocityX": 9.178744124267652e-20, + "velocityY": 4.4873769036430355e-20, + "timestamp": 3.6674756283513257 + }, + { + "x": 4.976262359083494, + "y": 6.204211295952416, + "heading": 0.22497404740616994, + "angularVelocity": -0.12050665436480094, + "velocityX": 0.600628769410924, + "velocityY": -0.10246720678209494, + "timestamp": 3.7551992683874307 + }, + { + "x": 5.081663106400117, + "y": 6.186229734618521, + "heading": 0.2051184155284092, + "angularVelocity": -0.2263430002401704, + "velocityX": 1.20150904902308, + "velocityY": -0.2049796534491144, + "timestamp": 3.8429229084235357 + }, + { + "x": 5.23980338600934, + "y": 6.1592505270678295, + "heading": 0.17793825550147288, + "angularVelocity": -0.30983848841372325, + "velocityX": 1.8027099598709833, + "velocityY": -0.3075477435681723, + "timestamp": 3.9306465484596407 + }, + { + "x": 5.450715913523779, + "y": 6.123268329544682, + "heading": 0.14677650230362854, + "angularVelocity": -0.35522640402312194, + "velocityX": 2.404283810243538, + "velocityY": -0.4101767494866671, + "timestamp": 4.018370188495745 + }, + { + "x": 5.71440675063786, + "y": 6.078282986612711, + "heading": 0.11861550472466739, + "angularVelocity": -0.321019483087692, + "velocityX": 3.0059267605123567, + "velocityY": -0.5128075272920207, + "timestamp": 4.10609382853185 + }, + { + "x": 6.03025451353813, + "y": 6.024436884344235, + "heading": 0.11767251558753837, + "angularVelocity": -0.010749544099411572, + "velocityX": 3.6004862859119227, + "velocityY": -0.6138151842116195, + "timestamp": 4.193817468567954 + }, + { + "x": 6.346475636674256, + "y": 5.970479408408474, + "heading": 0.11767250521570034, + "angularVelocity": -1.1823310146086215e-7, + "velocityX": 3.6047423819392157, + "velocityY": -0.6150847811781829, + "timestamp": 4.281541108604059 + }, + { + "x": 6.662696759700643, + "y": 5.916521931829571, + "heading": 0.11767249484386287, + "angularVelocity": -1.1823309505995875e-7, + "velocityX": 3.6047423806882386, + "velocityY": -0.6150847885096368, + "timestamp": 4.3692647486401635 + }, + { + "x": 6.978917882822774, + "y": 5.862564455811782, + "heading": 0.11767248447202486, + "angularVelocity": -1.182331011358331e-7, + "velocityX": 3.6047423817796624, + "velocityY": -0.6150847821132567, + "timestamp": 4.456988388676268 + }, + { + "x": 7.29476901407188, + "y": 5.808714720950228, + "heading": 0.11673860844372616, + "angularVelocity": -0.010645659800645866, + "velocityX": 3.6005246831881257, + "velocityY": -0.6138565937230951, + "timestamp": 4.544712028712373 + }, + { + "x": 7.558460925573039, + "y": 5.76372860364344, + "heading": 0.08862558626816161, + "angularVelocity": -0.3204725905581884, + "velocityX": 3.005939007918847, + "velocityY": -0.5128163547280221, + "timestamp": 4.632435668748477 + }, + { + "x": 7.769374450560142, + "y": 5.727745631951145, + "heading": 0.05752619060297154, + "angularVelocity": -0.3545155633349269, + "velocityX": 2.404295180869109, + "velocityY": -0.4101855745781148, + "timestamp": 4.720159308784582 + }, + { + "x": 7.927515620226354, + "y": 5.700765664089877, + "heading": 0.030393120465028865, + "angularVelocity": -0.3093016902487785, + "velocityX": 1.8027201060184643, + "velocityY": -0.3075564106797736, + "timestamp": 4.807882948820686 + }, + { + "x": 8.032916964145462, + "y": 5.682783456079591, + "heading": 0.010562795048926609, + "angularVelocity": -0.22605452085595826, + "velocityX": 1.2015158499547787, + "velocityY": -0.20498702519508957, + "timestamp": 4.895606588856791 + }, + { + "x": 8.085606575012207, + "y": 5.673794269561768, + "heading": 1.3549285413243613e-17, + "angularVelocity": -0.12040990369960944, + "velocityX": 0.6006318347603821, + "velocityY": -0.1024716543240064, + "timestamp": 4.983330228892895 + }, + { + "x": 8.085606575012207, + "y": 5.673794269561768, + "heading": 1.3789902561459072e-17, + "angularVelocity": 2.7952519766367576e-18, + "velocityX": -1.7194569329753236e-17, + "velocityY": 1.867684279393307e-18, + "timestamp": 5.071053868929 + }, + { + "x": 8.031831521176109, + "y": 5.680016482032018, + "heading": 0.01228794346008448, + "angularVelocity": 0.13914898483607424, + "velocityX": -0.6089500798164236, + "velocityY": 0.07046049255370945, + "timestamp": 5.1593616885984055 + }, + { + "x": 7.9242724093739, + "y": 5.6924629124746104, + "heading": 0.03642124685929677, + "angularVelocity": 0.27328614260390355, + "velocityX": -1.2180021226304998, + "velocityY": 0.1409436954642003, + "timestamp": 5.247669508267811 + }, + { + "x": 7.762915260533646, + "y": 5.711136820956851, + "heading": 0.07167786000455947, + "angularVelocity": 0.39924678558764254, + "velocityX": -1.8272124648114023, + "velocityY": 0.2114638154599267, + "timestamp": 5.335977327937217 + }, + { + "x": 7.5477357103225025, + "y": 5.736044315869435, + "heading": 0.11667225209980614, + "angularVelocity": 0.5095176425337026, + "velocityX": -2.4366987093181898, + "velocityY": 0.28205310702755476, + "timestamp": 5.424285147606622 + }, + { + "x": 7.278684003301139, + "y": 5.767200005582985, + "heading": 0.1676389581166344, + "angularVelocity": 0.5771482775549128, + "velocityX": -3.0467483856877364, + "velocityY": 0.3528078241562921, + "timestamp": 5.512592967276028 + }, + { + "x": 6.9578776989840305, + "y": 5.804154953260779, + "heading": 0.16763897467157093, + "angularVelocity": 1.8746852304717014e-7, + "velocityX": -3.6328187641604055, + "velocityY": 0.4184787691072228, + "timestamp": 5.6009007869454335 + }, + { + "x": 6.637087948695037, + "y": 5.84125338261765, + "heading": 0.16763898257122964, + "angularVelocity": 8.945593599492644e-8, + "velocityX": -3.632631305924235, + "velocityY": 0.42010355929694115, + "timestamp": 5.689208606614839 + }, + { + "x": 6.316298197633932, + "y": 5.878351805298053, + "heading": 0.16763899047088832, + "angularVelocity": 8.94559361551517e-8, + "velocityX": -3.632631314667653, + "velocityY": 0.4201034836924587, + "timestamp": 5.777516426284245 + }, + { + "x": 5.995508447484614, + "y": 5.915450235862703, + "heading": 0.16763899837054705, + "angularVelocity": 8.945593649758392e-8, + "velocityX": -3.632631304342544, + "velocityY": 0.4201035729738787, + "timestamp": 5.86582424595365 + }, + { + "x": 5.674700004894931, + "y": 5.952386616366171, + "heading": 0.16763901501362968, + "angularVelocity": 1.884666917047776e-7, + "velocityX": -3.6328429780135245, + "velocityY": 0.4182685139520664, + "timestamp": 5.954132065623056 + }, + { + "x": 5.405646774421004, + "y": 5.9835463265602655, + "heading": 0.21842500256096314, + "angularVelocity": 0.575101817001684, + "velocityX": -3.0467656373033782, + "velocityY": 0.35285335218042607, + "timestamp": 6.0424398852924615 + }, + { + "x": 5.190465936804369, + "y": 6.008455477656158, + "heading": 0.2632886887773245, + "angularVelocity": 0.5080375258308467, + "velocityX": -2.4367132879307802, + "velocityY": 0.28207186168953324, + "timestamp": 6.130747704961867 + }, + { + "x": 5.029107646558979, + "y": 6.027129895947731, + "heading": 0.29843729202517444, + "angularVelocity": 0.3980236787572713, + "velocityX": -1.8272253901122453, + "velocityY": 0.21146958855381004, + "timestamp": 6.219055524631273 + }, + { + "x": 4.921547644616536, + "y": 6.0395762783958595, + "heading": 0.3224912860382225, + "angularVelocity": 0.27238804109419384, + "velocityX": -1.218012202601224, + "velocityY": 0.1409431519736808, + "timestamp": 6.307363344300678 + }, + { + "x": 4.867772102355957, + "y": 6.045798301696777, + "heading": 0.3347373560918674, + "angularVelocity": 0.13867480931462675, + "velocityX": -0.608955610747675, + "velocityY": 0.0704583503953688, + "timestamp": 6.395671163970084 + }, + { + "x": 4.867772102355957, + "y": 6.045798301696777, + "heading": 0.33473735609186744, + "angularVelocity": 4.382681997898838e-18, + "velocityX": -1.543981625318142e-17, + "velocityY": 3.906065285900497e-18, + "timestamp": 6.483978983639489 + }, + { + "x": 4.903863667608455, + "y": 6.02320970068788, + "heading": 0.3176283286495271, + "angularVelocity": -0.21789742702603002, + "velocityX": 0.45965553754386096, + "velocityY": -0.28768426823466187, + "timestamp": 6.562497705387848 + }, + { + "x": 4.97607330221684, + "y": 5.978022456807334, + "heading": 0.28416125038798334, + "angularVelocity": -0.4262305538900727, + "velocityX": 0.9196486264741721, + "velocityY": -0.5754964277865501, + "timestamp": 6.641016427136207 + }, + { + "x": 5.084438498484905, + "y": 5.910221807895856, + "heading": 0.23546843743464, + "angularVelocity": -0.6201427107970054, + "velocityX": 1.3801192104904565, + "velocityY": -0.8634965954841877, + "timestamp": 6.719535148884566 + }, + { + "x": 5.22901600346336, + "y": 5.819784226720369, + "heading": 0.1734672887277426, + "angularVelocity": -0.7896352274506186, + "velocityX": 1.8413125145083822, + "velocityY": -1.151796401695455, + "timestamp": 6.798053870632924 + }, + { + "x": 5.409900027598653, + "y": 5.706672008533781, + "heading": 0.10216278395557017, + "angularVelocity": -0.9081210593403839, + "velocityX": 2.3037056654462664, + "velocityY": -1.4405764086315203, + "timestamp": 6.876572592381283 + }, + { + "x": 5.6271877913909565, + "y": 5.5708949038667654, + "heading": 0.034869610187120266, + "angularVelocity": -0.8570334853910997, + "velocityX": 2.767336998794774, + "velocityY": -1.7292322346021154, + "timestamp": 6.955091314129642 + }, + { + "x": 5.870534449133084, + "y": 5.418492861386192, + "heading": 0.03486959490632962, + "angularVelocity": -1.946133394861258e-7, + "velocityX": 3.0992182797119168, + "velocityY": -1.9409643851437186, + "timestamp": 7.0336100358780005 + }, + { + "x": 6.113881141917006, + "y": 5.266090874858927, + "heading": 0.03486957962493756, + "angularVelocity": -1.9462099894460953e-7, + "velocityX": 3.0992187259977815, + "velocityY": -1.9409636725326747, + "timestamp": 7.112128757626359 + }, + { + "x": 6.357227836710708, + "y": 5.11368889154076, + "heading": 0.034869564343545455, + "angularVelocity": -1.946209994358398e-7, + "velocityX": 3.0992187515939538, + "velocityY": -1.940963631662183, + "timestamp": 7.190647479374718 + }, + { + "x": 6.600574531479444, + "y": 4.961286908182731, + "heading": 0.03486954906215342, + "angularVelocity": -1.9462099865061453e-7, + "velocityX": 3.099218751276004, + "velocityY": -1.9409636321698667, + "timestamp": 7.269166201123077 + }, + { + "x": 6.843921226325159, + "y": 4.808884924947618, + "heading": 0.0348695337807613, + "angularVelocity": -1.9462099972826922e-7, + "velocityX": 3.0992187522563985, + "velocityY": -1.94096363060443, + "timestamp": 7.347684922871435 + }, + { + "x": 7.0872679867661, + "y": 4.656483046451265, + "heading": 0.03486951849933531, + "angularVelocity": -1.9462143091831554e-7, + "velocityX": 3.09921958766512, + "velocityY": -1.9409622966708406, + "timestamp": 7.426203644619794 + }, + { + "x": 7.326944519044576, + "y": 4.516245452265137, + "heading": 0.014066081529308494, + "angularVelocity": -0.2649487473407811, + "velocityX": 3.0524762367707154, + "velocityY": -1.7860402087997493, + "timestamp": 7.504722366368153 + }, + { + "x": 7.531642013688098, + "y": 4.397938693744427, + "heading": -0.04490743964327847, + "angularVelocity": -0.7510759199772535, + "velocityX": 2.6069896463616553, + "velocityY": -1.5067331190116233, + "timestamp": 7.5832410881165115 + }, + { + "x": 7.700074517764121, + "y": 4.302497700076849, + "heading": -0.10898814253347225, + "angularVelocity": -0.8161200470833309, + "velocityX": 2.1451253959001613, + "velocityY": -1.2155189430293092, + "timestamp": 7.66175980986487 + }, + { + "x": 7.832208824413671, + "y": 4.229887486816899, + "heading": -0.16889030145230455, + "angularVelocity": -0.7629028795299307, + "velocityX": 1.6828382289897996, + "velocityY": -0.9247503225110407, + "timestamp": 7.740278531613229 + }, + { + "x": 7.928084111700808, + "y": 4.180056487400386, + "heading": -0.2202565054701057, + "angularVelocity": -0.6541905277371027, + "velocityX": 1.2210500266981292, + "velocityY": -0.6346384442708259, + "timestamp": 7.818797253361588 + }, + { + "x": 7.987739128273294, + "y": 4.1529638156446245, + "heading": -0.26053803654554536, + "angularVelocity": -0.5130181716984267, + "velocityX": 0.7597553200582032, + "velocityY": -0.34504728493402975, + "timestamp": 7.897315975109946 + }, + { + "x": 8.011205673217773, + "y": 4.14857816696167, + "heading": -0.288054962130024, + "angularVelocity": -0.3504505036730943, + "velocityX": 0.2988656007376954, + "velocityY": -0.05585481507213175, + "timestamp": 7.975834696858305 + }, + { + "x": 7.99065265340485, + "y": 4.173303490266494, + "heading": -0.30126760937320984, + "angularVelocity": -0.14693899986760597, + "velocityX": -0.22857192203690077, + "velocityY": 0.27497247227940913, + "timestamp": 8.06575396441211 + }, + { + "x": 7.922647232931338, + "y": 4.22778256807063, + "heading": -0.29702135633462856, + "angularVelocity": 0.04722294958689644, + "velocityX": -0.7562941994920132, + "velocityY": 0.6058665654892884, + "timestamp": 8.155673231965915 + }, + { + "x": 7.807152216745808, + "y": 4.312023146342467, + "heading": -0.2765961187816114, + "angularVelocity": 0.22715084440382624, + "velocityX": -1.2844301263510791, + "velocityY": 0.9368468022877369, + "timestamp": 8.24559249951972 + }, + { + "x": 7.644109928873724, + "y": 4.426034622592684, + "heading": -0.2421410152647003, + "angularVelocity": 0.3831782047857269, + "velocityX": -1.813207472742426, + "velocityY": 1.2679315496202845, + "timestamp": 8.335511767073525 + }, + { + "x": 7.433422032287237, + "y": 4.569822041127431, + "heading": -0.19801570209656016, + "angularVelocity": 0.49072144790036093, + "velocityX": -2.343078433778598, + "velocityY": 1.5990723951205463, + "timestamp": 8.42543103462733 + }, + { + "x": 7.174950855403372, + "y": 4.743283480361943, + "heading": -0.1581400022906659, + "angularVelocity": 0.44346112786155, + "velocityX": -2.8744804524703853, + "velocityY": 1.9290797618065416, + "timestamp": 8.515350302181135 + }, + { + "x": 6.8965540900738835, + "y": 4.91826413098903, + "heading": -0.1581399896292387, + "angularVelocity": 1.4080883424863374e-7, + "velocityX": -3.0960746556671572, + "velocityY": 1.9459750439179786, + "timestamp": 8.60526956973494 + }, + { + "x": 6.618157289478816, + "y": 5.093244725508082, + "heading": -0.15813997696783524, + "angularVelocity": 1.4080856979053156e-7, + "velocityX": -3.096075047858723, + "velocityY": 1.9459744199356437, + "timestamp": 8.695188837288745 + }, + { + "x": 6.339760488657226, + "y": 5.268225319666733, + "heading": -0.15813996430643187, + "angularVelocity": 1.4080856886565356e-7, + "velocityX": -3.0960750503779084, + "velocityY": 1.9459744159275851, + "timestamp": 8.78510810484255 + }, + { + "x": 6.061363707929087, + "y": 5.443205945794379, + "heading": -0.1581399516450285, + "angularVelocity": 1.4080856880826848e-7, + "velocityX": -3.0960748269168854, + "velocityY": 1.945974771457558, + "timestamp": 8.875027372396355 + }, + { + "x": 5.782315347271137, + "y": 5.617145582087979, + "heading": -0.1581399318842445, + "angularVelocity": 2.1976139881035488e-7, + "velocityX": -3.1033211040223123, + "velocityY": 1.9343978329174265, + "timestamp": 8.96494663995016 + }, + { + "x": 5.545600487148874, + "y": 5.7664037944649005, + "heading": -0.0652854431922894, + "angularVelocity": 1.0326428497250173, + "velocityX": -2.63252656034616, + "velocityY": 1.6599135695540421, + "timestamp": 9.054865907503965 + }, + { + "x": 5.356283433091156, + "y": 5.885661177144069, + "heading": 0.01339587840576429, + "angularVelocity": 0.8750218250050805, + "velocityX": -2.105411434144947, + "velocityY": 1.326271731559752, + "timestamp": 9.14478517505777 + }, + { + "x": 5.2143192278784625, + "y": 5.975050723105011, + "heading": 0.07389681820108311, + "angularVelocity": 0.6728362167665074, + "velocityX": -1.5787962810945682, + "velocityY": 0.9941089200649296, + "timestamp": 9.234704442611575 + }, + { + "x": 5.119686824011737, + "y": 6.034621449602944, + "heading": 0.11484048218322652, + "angularVelocity": 0.45533805040886816, + "velocityX": -1.0524151991129291, + "velocityY": 0.6624912337312708, + "timestamp": 9.32462371016538 + }, + { + "x": 5.07237434387207, + "y": 6.064398765563965, + "heading": 0.13552729798344068, + "angularVelocity": 0.2300598788556157, + "velocityX": -0.5261662091648605, + "velocityY": 0.3311561222760583, + "timestamp": 9.414542977719185 + }, + { + "x": 5.07237434387207, + "y": 6.064398765563965, + "heading": 0.13552729798344068, + "angularVelocity": -1.77685785505055e-19, + "velocityX": 4.577974587806203e-18, + "velocityY": -2.482755140410445e-18, + "timestamp": 9.50446224527299 + } + ] +} \ No newline at end of file diff --git a/src/main/deploy/choreo/3Spike.traj b/src/main/deploy/choreo/3Spike.traj new file mode 100644 index 00000000..d9dd37bc --- /dev/null +++ b/src/main/deploy/choreo/3Spike.traj @@ -0,0 +1,409 @@ +{ + "samples": [ + { + "x": 1.898240327835083, + "y": 6.697559356689453, + "heading": 0.8156915418947346, + "angularVelocity": -1.0203651299070483e-18, + "velocityX": 7.059276162786864e-17, + "velocityY": 8.05331973081768e-18, + "timestamp": 0 + }, + { + "x": 1.928011425667035, + "y": 6.700257705488313, + "heading": 0.7906543885401096, + "angularVelocity": -0.4125180197131184, + "velocityX": 0.4905156008901217, + "velocityY": 0.04445862863220824, + "timestamp": 0.06069347800136739 + }, + { + "x": 1.987561656316453, + "y": 6.7056814751882055, + "heading": 0.7406973162292918, + "angularVelocity": -0.8231044579401747, + "velocityX": 0.981163588088925, + "velocityY": 0.08936330357883958, + "timestamp": 0.12138695600273477 + }, + { + "x": 2.0768993924383765, + "y": 6.713863123454453, + "heading": 0.665908700412107, + "angularVelocity": -1.2322348014971582, + "velocityX": 1.4719495251188295, + "velocityY": 0.13480275864341493, + "timestamp": 0.18208043400410218 + }, + { + "x": 2.196043819991789, + "y": 6.724832813976885, + "heading": 0.5664907713553188, + "angularVelocity": -1.638033151676551, + "velocityX": 1.9630515745156076, + "velocityY": 0.18073919774683922, + "timestamp": 0.24277391200546955 + }, + { + "x": 2.3450703903963706, + "y": 6.738620084887391, + "heading": 0.44354978680104007, + "angularVelocity": -2.0256045394451108, + "velocityX": 2.4553967792259948, + "velocityY": 0.22716231404953768, + "timestamp": 0.3034673900068369 + }, + { + "x": 2.524366013731002, + "y": 6.755404219318462, + "heading": 0.3052638198889322, + "angularVelocity": -2.2784320731956287, + "velocityX": 2.9541168052783493, + "velocityY": 0.27653934135544966, + "timestamp": 0.3641608680082043 + }, + { + "x": 2.673270314372625, + "y": 6.768792785441263, + "heading": 0.17727124299711214, + "angularVelocity": -2.1088357613800035, + "velocityX": 2.453382233891238, + "velocityY": 0.22059316031451623, + "timestamp": 0.42485434600957167 + }, + { + "x": 2.7922668700063817, + "y": 6.779362583190905, + "heading": 0.07259539139052823, + "angularVelocity": -1.7246639186540365, + "velocityX": 1.9606152020333387, + "velocityY": 0.17415047049050045, + "timestamp": 0.48554782401093904 + }, + { + "x": 2.8814664055883235, + "y": 6.787228518212843, + "heading": -0.006725211090079159, + "angularVelocity": -1.306904878293822, + "velocityX": 1.4696725005598144, + "velocityY": 0.12960099307146533, + "timestamp": 0.5462413020123065 + }, + { + "x": 2.9409112103177457, + "y": 6.792446959885125, + "heading": -0.059963007280896694, + "angularVelocity": -0.877158435204807, + "velocityX": 0.9794265658673137, + "velocityY": 0.08598027076589665, + "timestamp": 0.6069347800136738 + }, + { + "x": 2.9706242084503174, + "y": 6.795048713684082, + "heading": -0.0867382469092633, + "angularVelocity": -0.4411551374228896, + "velocityX": 0.48955833659593734, + "velocityY": 0.04286710672435541, + "timestamp": 0.6676282580150412 + }, + { + "x": 2.9706242084503174, + "y": 6.795048713684082, + "heading": -0.0867382469092633, + "angularVelocity": 4.1300797018606364e-18, + "velocityX": -6.787421352957282e-17, + "velocityY": -6.122691775796301e-18, + "timestamp": 0.7283217360164086 + }, + { + "x": 2.9443020593472835, + "y": 6.73752994711249, + "heading": -0.08067661919484623, + "angularVelocity": 0.06958187507135942, + "velocityX": -0.3021539059782267, + "velocityY": -0.6602621966248707, + "timestamp": 0.8154367743536277 + }, + { + "x": 2.8916577620939425, + "y": 6.622492415321145, + "heading": -0.06855357159018967, + "angularVelocity": 0.13916136451353756, + "velocityX": -0.6043078010200357, + "velocityY": -1.3205243777318816, + "timestamp": 0.9025518126908468 + }, + { + "x": 2.8126913183903137, + "y": 6.449936121363781, + "heading": -0.0503694568413589, + "angularVelocity": 0.2087368047574143, + "velocityX": -0.9064616765471906, + "velocityY": -1.9807865237848399, + "timestamp": 0.989666851028066 + }, + { + "x": 2.707402733848941, + "y": 6.219861077435211, + "heading": -0.026124774152275536, + "angularVelocity": 0.27830651460237066, + "velocityX": -1.208615487647548, + "velocityY": -2.641048529852652, + "timestamp": 1.0767818893652852 + }, + { + "x": 2.602114129325041, + "y": 5.98978600061254, + "heading": -0.00188700512612124, + "angularVelocity": 0.2782271521517419, + "velocityX": -1.2086157170284564, + "velocityY": -2.6410489074464856, + "timestamp": 1.1638969277025044 + }, + { + "x": 2.5231476684834186, + "y": 5.817229677874622, + "heading": 0.016291079692932007, + "angularVelocity": 0.20866758674531646, + "velocityX": -0.9064618732755036, + "velocityY": -1.9807868541589642, + "timestamp": 1.2510119660397236 + }, + { + "x": 2.4705033590732923, + "y": 5.7021921250404635, + "heading": 0.028409733760042313, + "angularVelocity": 0.13911093076948938, + "velocityX": -0.6043079405686759, + "velocityY": -1.3205246192838944, + "timestamp": 1.3381270043769429 + }, + { + "x": 2.444181203842163, + "y": 5.6446733474731445, + "heading": 0.03446907195457146, + "angularVelocity": 0.06955559350239472, + "velocityX": -0.30215397632309554, + "velocityY": -0.6602623228456396, + "timestamp": 1.425242042714162 + }, + { + "x": 2.444181203842163, + "y": 5.6446733474731445, + "heading": 0.03446907195457146, + "angularVelocity": -1.0356554389384789e-17, + "velocityX": 2.4614269190125946e-15, + "velocityY": -5.221227236415707e-16, + "timestamp": 1.5123570810513813 + }, + { + "x": 2.5156734582113587, + "y": 5.629508282219497, + "heading": 0.030639214226098638, + "angularVelocity": -0.04090586229477797, + "velocityX": 0.7635929373114598, + "velocityY": -0.1619747037455608, + "timestamp": 1.6059832146572177 + }, + { + "x": 2.6586579607167553, + "y": 5.599178152927087, + "heading": 0.022979469316454657, + "angularVelocity": -0.08181203916730466, + "velocityX": 1.5271858080496832, + "velocityY": -0.32394939451519356, + "timestamp": 1.699609348263054 + }, + { + "x": 2.8731346805000304, + "y": 5.5536829658728095, + "heading": 0.011489763977113574, + "angularVelocity": -0.12271899839111648, + "velocityX": 2.2907783491969966, + "velocityY": -0.485924018242721, + "timestamp": 1.7932354818688905 + }, + { + "x": 3.0161191826976204, + "y": 5.523352836293968, + "heading": 0.0038299237880790897, + "angularVelocity": -0.08181305682537549, + "velocityX": 1.5271858047620634, + "velocityY": -0.32394939757450636, + "timestamp": 1.8868616154747269 + }, + { + "x": 3.087611436843872, + "y": 5.508187770843506, + "heading": -9.681628847292082e-19, + "angularVelocity": -0.04090656786280392, + "velocityX": 0.7635929349302473, + "velocityY": -0.16197470584769585, + "timestamp": 1.9804877490805632 + }, + { + "x": 3.087611436843872, + "y": 5.508187770843506, + "heading": 7.657382594875245e-22, + "angularVelocity": 1.035618611822264e-17, + "velocityX": -2.4614264121936132e-15, + "velocityY": 5.221220564767035e-16, + "timestamp": 2.0741138826863996 + }, + { + "x": 3.08858633048636, + "y": 5.440920061829133, + "heading": 2.324556482364219e-16, + "angularVelocity": 2.5878970789813725e-15, + "velocityX": 0.010853393925855314, + "velocityY": -0.7488847117307628, + "timestamp": 2.1639377340224875 + }, + { + "x": 3.0905361177310438, + "y": 5.306384646580583, + "heading": 6.8687655980783295e-16, + "angularVelocity": 5.0590227964198126e-15, + "velocityX": 0.021706787403138753, + "velocityY": -1.4977693925098754, + "timestamp": 2.2537615853585753 + }, + { + "x": 3.0934607984973375, + "y": 5.104581530658249, + "heading": 1.3632643561200468e-15, + "angularVelocity": 7.530158039918729e-15, + "velocityX": 0.03256017998327358, + "velocityY": -2.2466540113856897, + "timestamp": 2.343585436694663 + }, + { + "x": 3.0973603725434855, + "y": 4.835510730743306, + "heading": 2.2709770866681227e-15, + "angularVelocity": 1.0105475517379967e-14, + "velocityX": 0.043413569871963154, + "velocityY": -2.9955384445516495, + "timestamp": 2.433409288030751 + }, + { + "x": 3.1012599465895736, + "y": 4.566439930828403, + "heading": 2.264075262752123e-15, + "angularVelocity": -7.683731903225901e-17, + "velocityX": 0.04341356987129279, + "velocityY": -2.995538444551191, + "timestamp": 2.523233139366839 + }, + { + "x": 3.1041846273558074, + "y": 4.3646368149061106, + "heading": 2.0256507625049035e-15, + "angularVelocity": -2.6543562395670722e-15, + "velocityX": 0.032560179982603216, + "velocityY": -2.246654011385231, + "timestamp": 2.6130569907029266 + }, + { + "x": 3.106134414600431, + "y": 4.230101399657602, + "heading": 1.5650617308478489e-15, + "angularVelocity": -5.127691863765037e-15, + "velocityX": 0.021706787402468397, + "velocityY": -1.497769392509417, + "timestamp": 2.7028808420390145 + }, + { + "x": 3.1071093082428582, + "y": 4.16283369064327, + "heading": 8.822473275380185e-16, + "angularVelocity": -7.601704816337083e-15, + "velocityX": 0.010853393925184958, + "velocityY": -0.7488847117303047, + "timestamp": 2.7927046933751023 + }, + { + "x": 3.107109308242798, + "y": 4.1628336906433105, + "heading": -3.209207761292708e-17, + "angularVelocity": -1.0179249626542184e-14, + "velocityX": -6.728159002851988e-13, + "velocityY": 4.5874167966636e-13, + "timestamp": 2.88252854471119 + }, + { + "x": 3.0534901012801763, + "y": 4.1993922875336205, + "heading": -0.010317012651529421, + "angularVelocity": -0.11688600366277159, + "velocityX": -0.6074757328604911, + "velocityY": 0.4141885286325489, + "timestamp": 2.9707941396348567 + }, + { + "x": 2.946251691134035, + "y": 4.272509454128145, + "heading": -0.030952692489374736, + "angularVelocity": -0.2337907522825489, + "velocityX": -1.2149514229058669, + "velocityY": 0.828376749261782, + "timestamp": 3.0590597345585233 + }, + { + "x": 2.7853940913065474, + "y": 4.3821851470513975, + "heading": -0.06191007575465608, + "angularVelocity": -0.3507298998219544, + "velocityX": -1.8224269599791396, + "velocityY": 1.2425644784709402, + "timestamp": 3.14732532948219 + }, + { + "x": 2.5709173398047853, + "y": 4.5284193116673395, + "heading": -0.10319240644132736, + "angularVelocity": -0.46770580000323475, + "velocityX": -2.429902066453476, + "velocityY": 1.6567515886842268, + "timestamp": 3.2355909244058565 + }, + { + "x": 2.410059790521505, + "y": 4.63809482563131, + "heading": -0.1341686316183575, + "angularVelocity": -0.3509433681815447, + "velocityX": -1.8224263873414401, + "velocityY": 1.2425624509620008, + "timestamp": 3.323856519329523 + }, + { + "x": 2.3028214309916533, + "y": 4.711211816793368, + "heading": -0.15482166754318777, + "angularVelocity": -0.2339873870755679, + "velocityX": -1.2149508494515129, + "velocityY": 0.8283747617097077, + "timestamp": 3.4121221142531897 + }, + { + "x": 2.2492022514342964, + "y": 4.747770309448263, + "heading": -0.16514851217251283, + "angularVelocity": -0.11699739449184227, + "velocityX": -0.6074754223741123, + "velocityY": 0.4141873477033858, + "timestamp": 3.5003877091768563 + }, + { + "x": 2.249202251434326, + "y": 4.747770309448242, + "heading": -0.16514851217251242, + "angularVelocity": 5.079807183482213e-15, + "velocityX": 3.3640849188303873e-13, + "velocityY": -2.2937202025389454e-13, + "timestamp": 3.588653304100523 + } + ] +} \ No newline at end of file diff --git a/src/main/deploy/choreo/3SpikeSmooth.traj b/src/main/deploy/choreo/3SpikeSmooth.traj new file mode 100644 index 00000000..0865f3bb --- /dev/null +++ b/src/main/deploy/choreo/3SpikeSmooth.traj @@ -0,0 +1,1813 @@ +{ + "samples": [ + { + "x": 1.3947283029556274, + "y": 4.036000728607178, + "heading": -0.7399752971476772, + "angularVelocity": 0, + "velocityX": -1.9736839928387714e-26, + "velocityY": -2.5002085258411367e-25, + "timestamp": 0 + }, + { + "x": 1.3965137923287945, + "y": 4.035766281104119, + "heading": -0.7395103229992017, + "angularVelocity": 0.02789165618911225, + "velocityX": 0.10710327851339349, + "velocityY": -0.014063425184257088, + "timestamp": 0.01667072565798061 + }, + { + "x": 1.4000850028355816, + "y": 4.035300777563999, + "heading": -0.7385718745908403, + "angularVelocity": 0.05629319488634393, + "velocityX": 0.2142204592682058, + "velocityY": -0.027923411954033122, + "timestamp": 0.03334145131596122 + }, + { + "x": 1.405442176084647, + "y": 4.034607924351493, + "heading": -0.737150665589664, + "angularVelocity": 0.08525177789702576, + "velocityX": 0.3213521330129352, + "velocityY": -0.041561070988704, + "timestamp": 0.05001217697394182 + }, + { + "x": 1.4125855632050561, + "y": 4.03369178862991, + "heading": -0.7352365100396948, + "angularVelocity": 0.1148213694616671, + "velocityX": 0.4284988708328606, + "velocityY": -0.05495475964151632, + "timestamp": 0.06668290263192243 + }, + { + "x": 1.4215154240749435, + "y": 4.032556853614934, + "heading": -0.7328181860857529, + "angularVelocity": 0.1450641083991559, + "velocityX": 0.535661197544358, + "velocityY": -0.06807952084752315, + "timestamp": 0.08335362828990305 + }, + { + "x": 1.4322320258818966, + "y": 4.031208085686074, + "heading": -0.7298832707801504, + "angularVelocity": 0.17605204271342625, + "velocityX": 0.6428395516078332, + "velocityY": -0.08090637183594776, + "timestamp": 0.10002435394788366 + }, + { + "x": 1.4447356406763339, + "y": 4.029651016706928, + "heading": -0.7264179379179497, + "angularVelocity": 0.20786934733952794, + "velocityX": 0.7500342247220311, + "velocityY": -0.09340139182247958, + "timestamp": 0.11669507960586427 + }, + { + "x": 1.4590265414008132, + "y": 4.027891846106032, + "heading": -0.7224067080127434, + "angularVelocity": 0.24061519501317888, + "velocityX": 0.8572452704023769, + "velocityY": -0.10552453666306391, + "timestamp": 0.13336580526384487 + }, + { + "x": 1.4751049955939626, + "y": 4.025937569002356, + "heading": -0.7178321354648247, + "angularVelocity": 0.27440752380978517, + "velocityX": 0.9644723644919582, + "velocityY": -0.11722807655587789, + "timestamp": 0.15003653092182548 + }, + { + "x": 1.4929712555049361, + "y": 4.023796139209624, + "heading": -0.7126744120469425, + "angularVelocity": 0.30938805686679904, + "velocityX": 1.0717145898457587, + "velocityY": -0.12845450382096318, + "timestamp": 0.1667072565798061 + }, + { + "x": 1.5126255425826702, + "y": 4.02147667979256, + "heading": -0.7069108570020446, + "angularVelocity": 0.34572910400806656, + "velocityX": 1.1789700989005891, + "velocityY": -0.13913368047985383, + "timestamp": 0.1833779822377867 + }, + { + "x": 1.5340680229819357, + "y": 4.018989759773801, + "heading": -0.700515250588407, + "angularVelocity": 0.38364295261352194, + "velocityX": 1.2862355748143688, + "velocityY": -0.14917887018123038, + "timestamp": 0.2000487078957673 + }, + { + "x": 1.557298768390669, + "y": 4.016347764999776, + "heading": -0.6934569468763288, + "angularVelocity": 0.42339510930043694, + "velocityX": 1.3935053509570767, + "velocityY": -0.15848109003941602, + "timestamp": 0.21671943355374793 + }, + { + "x": 1.58231769219986, + "y": 4.013565406605039, + "heading": -0.6856996678204564, + "angularVelocity": 0.46532341872944616, + "velocityX": 1.500769931824414, + "velocityY": -0.16690085673651547, + "timestamp": 0.23339015921172854 + }, + { + "x": 1.6091244428562481, + "y": 4.010660436777393, + "heading": -0.6771998247132961, + "angularVelocity": 0.5098664138289225, + "velocityX": 1.6080134246318782, + "velocityY": -0.17425575150389114, + "timestamp": 0.2500608848697091 + }, + { + "x": 1.6377182198354763, + "y": 4.007654688195709, + "heading": -0.6679041174871899, + "angularVelocity": 0.5576066343372481, + "velocityX": 1.7152088976726623, + "velocityY": -0.1803010044884222, + "timestamp": 0.26673161052768973 + }, + { + "x": 1.6680974428471689, + "y": 4.0045756407954025, + "heading": -0.6577459930432724, + "angularVelocity": 0.609339068515868, + "velocityX": 1.8223095763770476, + "velocityY": -0.184697862797134, + "timestamp": 0.28340233618567034 + }, + { + "x": 1.7002591256758581, + "y": 4.001458893208448, + "heading": -0.646640233813891, + "angularVelocity": 0.6661833118263206, + "velocityX": 1.9292311257784287, + "velocityY": -0.18695932324110354, + "timestamp": 0.30007306184365096 + }, + { + "x": 1.7341976100045315, + "y": 3.998352290141858, + "heading": -0.634474363895986, + "angularVelocity": 0.7297744661811345, + "velocityX": 2.0358132588203324, + "velocityY": -0.18635080021867706, + "timestamp": 0.31674378750163157 + }, + { + "x": 1.7699017730070103, + "y": 3.9953233535532826, + "heading": -0.6210944424065665, + "angularVelocity": 0.8025998246221651, + "velocityX": 2.141728184782787, + "velocityY": -0.18169194615261505, + "timestamp": 0.3334145131596122 + }, + { + "x": 1.8073480623300613, + "y": 3.992474214761161, + "heading": -0.6062805570438614, + "angularVelocity": 0.8886167085122353, + "velocityX": 2.2462303136231285, + "velocityY": -0.17090670499744268, + "timestamp": 0.3500852388175928 + }, + { + "x": 1.846478733460555, + "y": 3.9899781782398343, + "heading": -0.5896976312313205, + "angularVelocity": 0.994733291924952, + "velocityX": 2.347268615254386, + "velocityY": -0.1497257271540494, + "timestamp": 0.3667559644755734 + }, + { + "x": 1.887069476898773, + "y": 3.9882032776398537, + "heading": -0.5705498525435391, + "angularVelocity": 1.1485869949887297, + "velocityX": 2.4348516237975812, + "velocityY": -0.10646810681158243, + "timestamp": 0.383426690133554 + }, + { + "x": 1.928314014729344, + "y": 3.987394445737497, + "heading": -0.545902538126006, + "angularVelocity": 1.4784787970962696, + "velocityX": 2.4740697361801107, + "velocityY": -0.04851809806908708, + "timestamp": 0.4000974157915346 + }, + { + "x": 1.9689945481426163, + "y": 3.988011878138316, + "heading": -0.5182304327668553, + "angularVelocity": 1.659922064994421, + "velocityX": 2.440237710576056, + "velocityY": 0.03703692409593434, + "timestamp": 0.41676814144951524 + }, + { + "x": 2.008464265301094, + "y": 3.989733686435556, + "heading": -0.48793478590979306, + "angularVelocity": 1.8172962280474676, + "velocityX": 2.3676064238740886, + "velocityY": 0.10328334426255706, + "timestamp": 0.43343886710749585 + }, + { + "x": 2.046450127498034, + "y": 3.992372468149969, + "heading": -0.456060945803607, + "angularVelocity": 1.9119647674681397, + "velocityX": 2.2785968035384014, + "velocityY": 0.15828835340169592, + "timestamp": 0.45010959276547646 + }, + { + "x": 2.082836060380011, + "y": 3.9957884662242305, + "heading": -0.42314359826896397, + "angularVelocity": 1.9745599687728552, + "velocityX": 2.1826244177054512, + "velocityY": 0.2049099807857635, + "timestamp": 0.4667803184234571 + }, + { + "x": 2.1175660345240157, + "y": 3.999889697048315, + "heading": -0.3894802055974597, + "angularVelocity": 2.019311778152195, + "velocityX": 2.0832910850151682, + "velocityY": 0.2460139353394697, + "timestamp": 0.4834510440814377 + }, + { + "x": 2.1506087210688465, + "y": 4.004613239012644, + "heading": -0.3552584388050433, + "angularVelocity": 2.052806068224975, + "velocityX": 1.9820784783302445, + "velocityY": 0.2833435125284317, + "timestamp": 0.5001217697394182 + }, + { + "x": 2.1819446374777955, + "y": 4.009913824088383, + "heading": -0.3206075455070969, + "angularVelocity": 2.078547389528801, + "velocityX": 1.8796972040594733, + "velocityY": 0.31795766929925834, + "timestamp": 0.5167924953973988 + }, + { + "x": 2.2115607119914396, + "y": 4.015757471919254, + "heading": -0.2856220516525717, + "angularVelocity": 2.0986185348072697, + "velocityX": 1.7765318151862408, + "velocityY": 0.35053350110604775, + "timestamp": 0.5334632210553794 + }, + { + "x": 2.2394476674531307, + "y": 4.022117793552093, + "heading": -0.2503741456506159, + "angularVelocity": 2.1143594301236655, + "velocityX": 1.672809932442328, + "velocityY": 0.38152638123431215, + "timestamp": 0.5501339467133599 + }, + { + "x": 2.2655986305981686, + "y": 4.028973728953148, + "heading": -0.21492078420504862, + "angularVelocity": 2.126683755280625, + "velocityX": 1.5686757542266145, + "velocityY": 0.41125596699948785, + "timestamp": 0.5668046723713405 + }, + { + "x": 2.290008333811761, + "y": 4.036308093793211, + "heading": -0.17930806649391473, + "angularVelocity": 2.136242803209072, + "velocityX": 1.4642255960769803, + "velocityY": 0.4399547440546822, + "timestamp": 0.583475398029321 + }, + { + "x": 2.3126726283093095, + "y": 4.044106606711043, + "heading": -0.1435740767638591, + "angularVelocity": 2.1435173527043823, + "velocityX": 1.3595265714602063, + "velocityY": 0.46779684806939764, + "timestamp": 0.6001461236873016 + }, + { + "x": 2.3335881723286183, + "y": 4.052357215026316, + "heading": -0.10775081273489397, + "angularVelocity": 2.1488725064476024, + "velocityX": 1.254627089930923, + "velocityY": 0.4949159673395843, + "timestamp": 0.6168168493452821 + }, + { + "x": 2.3527522231846656, + "y": 4.061049613232466, + "heading": -0.07186554033790864, + "angularVelocity": 2.15259210266029, + "velocityX": 1.1495630873676586, + "velocityY": 0.5214169067672981, + "timestamp": 0.6334875750032627 + }, + { + "x": 2.370162493816034, + "y": 4.070174890287128, + "heading": -0.03594177344866619, + "angularVelocity": 2.15490120983696, + "velocityX": 1.0443618945305775, + "velocityY": 0.5473833138327225, + "timestamp": 0.6501583006612432 + }, + { + "x": 2.385817050933838, + "y": 4.07972526550293, + "heading": 0, + "angularVelocity": 2.155981340347962, + "velocityX": 0.9390447326034582, + "velocityY": 0.5728829933224723, + "timestamp": 0.6668290263192238 + }, + { + "x": 2.4027374023497785, + "y": 4.092944230633815, + "heading": 0.042084448959020006, + "angularVelocity": 2.155980841837863, + "velocityX": 0.8668274004360943, + "velocityY": 0.6772058628797323, + "timestamp": 0.6863488885287345 + }, + { + "x": 2.4180229898112815, + "y": 4.108023710374494, + "heading": 0.08416888641239854, + "angularVelocity": 2.155980252405349, + "velocityX": 0.783078655855235, + "velocityY": 0.7725197841474177, + "timestamp": 0.7058687507382453 + }, + { + "x": 2.4314704371429157, + "y": 4.124763070829296, + "heading": 0.1262533098238838, + "angularVelocity": 2.155979533040984, + "velocityX": 0.6889109762814792, + "velocityY": 0.857555257057426, + "timestamp": 0.725388612947756 + }, + { + "x": 2.4429008310797706, + "y": 4.142939599149703, + "heading": 0.16833771537387304, + "angularVelocity": 2.155978617998868, + "velocityX": 0.5855775934364029, + "velocityY": 0.9311811797294396, + "timestamp": 0.7449084751572668 + }, + { + "x": 2.4521620965260715, + "y": 4.162311462296461, + "heading": 0.2104220968786775, + "angularVelocity": 2.1559773861671823, + "velocityX": 0.4744534232310323, + "velocityY": 0.9924180272808729, + "timestamp": 0.7644283373667775 + }, + { + "x": 2.459131020381349, + "y": 4.182620924103431, + "heading": 0.25250644322318616, + "angularVelocity": 2.1559755849098043, + "velocityX": 0.3570170619279247, + "velocityY": 1.0404510845918988, + "timestamp": 0.7839481995762883 + }, + { + "x": 2.4637148940912503, + "y": 4.203597774488992, + "heading": 0.2945907308792764, + "angularVelocity": 2.155972578309768, + "velocityX": 0.2348312534536131, + "velocityY": 1.0746413145959612, + "timestamp": 0.803468061785799 + }, + { + "x": 2.4658527612080854, + "y": 4.224962925582265, + "heading": 0.33667489316911053, + "angularVelocity": 2.155966155812791, + "velocityX": 0.10952265409911857, + "velocityY": 1.0945339093050488, + "timestamp": 0.8229879239953097 + }, + { + "x": 2.465516354230784, + "y": 4.246432135870773, + "heading": 0.37875855206516623, + "angularVelocity": 2.155940367015044, + "velocityX": -0.017234085655447023, + "velocityY": 1.0998648483311497, + "timestamp": 0.8425077862048205 + }, + { + "x": 2.4641324028434424, + "y": 4.267859334453504, + "heading": 0.41738866683867715, + "angularVelocity": 1.9790157511813327, + "velocityX": -0.07089964941800488, + "velocityY": 1.0977125941130037, + "timestamp": 0.8620276484143312 + }, + { + "x": 2.4627483426947627, + "y": 4.289286526011222, + "heading": 0.4516705812046216, + "angularVelocity": 1.7562580103276142, + "velocityX": -0.07090522124714435, + "velocityY": 1.0977122342225474, + "timestamp": 0.881547510623842 + }, + { + "x": 2.461364283425481, + "y": 4.3107137176257435, + "heading": 0.48187227884840755, + "angularVelocity": 1.5472290387926326, + "velocityX": -0.0709051761957581, + "velocityY": 1.0977122371325796, + "timestamp": 0.9010673728333527 + }, + { + "x": 2.459980223938116, + "y": 4.332140909226178, + "heading": 0.5082619027820259, + "angularVelocity": 1.3519369988564973, + "velocityX": -0.07090518736808893, + "velocityY": 1.097712236410919, + "timestamp": 0.9205872350428634 + }, + { + "x": 2.458596164421083, + "y": 4.353568100824697, + "heading": 0.5310996097794228, + "angularVelocity": 1.169972756583791, + "velocityX": -0.07090518888801609, + "velocityY": 1.0977122363127414, + "timestamp": 0.9401070972523742 + }, + { + "x": 2.457212104901392, + "y": 4.374995292423044, + "heading": 0.5506368538705528, + "angularVelocity": 1.0008904715326725, + "velocityX": -0.07090518902413608, + "velocityY": 1.0977122363039493, + "timestamp": 0.9596269594618849 + }, + { + "x": 2.4558280453815247, + "y": 4.396422484021381, + "heading": 0.5671158979144517, + "angularVelocity": 0.8442192812134602, + "velocityX": -0.07090518903323675, + "velocityY": 1.0977122363033616, + "timestamp": 0.9791468216713957 + }, + { + "x": 2.4544439858616585, + "y": 4.417849675619716, + "heading": 0.5807694458354312, + "angularVelocity": 0.6994694826445506, + "velocityX": -0.07090518903314545, + "velocityY": 1.0977122363033676, + "timestamp": 0.9986666838809064 + }, + { + "x": 2.453059926341799, + "y": 4.439276867218052, + "heading": 0.5918204077610513, + "angularVelocity": 0.5661393408932792, + "velocityX": -0.07090518903279429, + "velocityY": 1.0977122363033904, + "timestamp": 1.0181865460904171 + }, + { + "x": 2.4516758668219425, + "y": 4.460704058816388, + "heading": 0.6004818033402386, + "angularVelocity": 0.44372216802674463, + "velocityX": -0.07090518903263007, + "velocityY": 1.097712236303401, + "timestamp": 1.0377064082999279 + }, + { + "x": 2.450291807302087, + "y": 4.482131250414725, + "heading": 0.6069568016017785, + "angularVelocity": 0.3317133180573927, + "velocityX": -0.07090518903258249, + "velocityY": 1.0977122363034042, + "timestamp": 1.0572262705094386 + }, + { + "x": 2.448907747782232, + "y": 4.503558442013062, + "heading": 0.6114388903232229, + "angularVelocity": 0.2296168217448057, + "velocityX": -0.07090518903259889, + "velocityY": 1.0977122363034033, + "timestamp": 1.0767461327189494 + }, + { + "x": 2.4475236882623745, + "y": 4.524985633611398, + "heading": 0.6141121641303712, + "angularVelocity": 0.13695146914745157, + "velocityX": -0.07090518903265917, + "velocityY": 1.0977122363033995, + "timestamp": 1.09626599492846 + }, + { + "x": 2.446139628742516, + "y": 4.5464128252097336, + "heading": 0.6151517183962362, + "angularVelocity": 0.05325622971654855, + "velocityX": -0.07090518903276548, + "velocityY": 1.0977122363033924, + "timestamp": 1.1157858571379708 + }, + { + "x": 2.4447555692226537, + "y": 4.567840016808069, + "heading": 0.6147241353069997, + "angularVelocity": -0.021905026001059886, + "velocityX": -0.07090518903293762, + "velocityY": 1.0977122363033813, + "timestamp": 1.1353057193474816 + }, + { + "x": 2.4433715097027866, + "y": 4.5892672084064055, + "heading": 0.6129880489987533, + "angularVelocity": -0.08893947557685251, + "velocityX": -0.07090518903321144, + "velocityY": 1.0977122363033636, + "timestamp": 1.1548255815569923 + }, + { + "x": 2.44198745018291, + "y": 4.61069440000474, + "heading": 0.610094778182876, + "angularVelocity": -0.14822188726658367, + "velocityX": -0.07090518903363588, + "velocityY": 1.0977122363033363, + "timestamp": 1.174345443766503 + }, + { + "x": 2.4406033906630227, + "y": 4.632121591603075, + "heading": 0.6061890167629467, + "angularVelocity": -0.20009164911145086, + "velocityX": -0.07090518903424677, + "velocityY": 1.0977122363032967, + "timestamp": 1.1938653059760138 + }, + { + "x": 2.439219331143121, + "y": 4.6535487832014075, + "heading": 0.6014095745223278, + "angularVelocity": -0.24485020382419453, + "velocityX": -0.07090518903494168, + "velocityY": 1.0977122363032519, + "timestamp": 1.2133851681855246 + }, + { + "x": 2.437835271623219, + "y": 4.67497597479974, + "heading": 0.5958901570275208, + "angularVelocity": -0.2827590397701503, + "velocityX": -0.0709051890349925, + "velocityY": 1.0977122363032488, + "timestamp": 1.2329050303950353 + }, + { + "x": 2.436451212103383, + "y": 4.6964031663980785, + "heading": 0.5897601497327822, + "angularVelocity": -0.31403947573726876, + "velocityX": -0.07090518903158605, + "velocityY": 1.0977122363034686, + "timestamp": 1.252424892604546 + }, + { + "x": 2.435067152583774, + "y": 4.717830357996431, + "heading": 0.5831452513723752, + "angularVelocity": -0.3388803819108931, + "velocityX": -0.07090518901995538, + "velocityY": 1.0977122363042198, + "timestamp": 1.2719447548140568 + }, + { + "x": 2.4336830930638005, + "y": 4.739257549594759, + "heading": 0.5761672486910776, + "angularVelocity": -0.3574821690030978, + "velocityX": -0.07090518903864408, + "velocityY": 1.0977122363030127, + "timestamp": 1.2914646170235675 + }, + { + "x": 2.43229903355078, + "y": 4.760684741193537, + "heading": 0.5689411457289169, + "angularVelocity": -0.3701923140953224, + "velocityX": -0.07090518868243216, + "velocityY": 1.0977122363260217, + "timestamp": 1.3109844792330783 + }, + { + "x": 2.4309149740242, + "y": 4.782111932791438, + "heading": 0.5615761529884952, + "angularVelocity": -0.37730761935567353, + "velocityX": -0.0709051893770866, + "velocityY": 1.0977122362811516, + "timestamp": 1.330504341442589 + }, + { + "x": 2.429530914504782, + "y": 4.803539124389802, + "heading": 0.5541527674507875, + "angularVelocity": -0.38029907475933716, + "velocityX": -0.07090518901019488, + "velocityY": 1.0977122363048504, + "timestamp": 1.3500242036520997 + }, + { + "x": 2.428146854983486, + "y": 4.824966315988045, + "heading": 0.5468043202935023, + "angularVelocity": -0.37645999128537433, + "velocityX": -0.07090518910636172, + "velocityY": 1.0977122362986387, + "timestamp": 1.3695440658616105 + }, + { + "x": 2.426762793510881, + "y": 4.846393507460247, + "heading": 0.5396719834957803, + "angularVelocity": -0.3653886856970733, + "velocityX": -0.07090528907169229, + "velocityY": 1.0977122298415267, + "timestamp": 1.3890639280711212 + }, + { + "x": 2.425379677726893, + "y": 4.867820759997008, + "heading": 0.5329585070685474, + "angularVelocity": -0.34393052344202446, + "velocityX": -0.07085684156697322, + "velocityY": 1.0977153581709458, + "timestamp": 1.408583790280632 + }, + { + "x": 2.4262280706702253, + "y": 4.8892758383838535, + "heading": 0.526282631394024, + "angularVelocity": -0.342004241775385, + "velocityX": 0.043463060047614376, + "velocityY": 1.0991408728485923, + "timestamp": 1.4281036524901427 + }, + { + "x": 2.4295413494110107, + "y": 4.9104905128479, + "heading": 0.5196067748897207, + "angularVelocity": -0.3420032596874994, + "velocityX": 0.1697388385851715, + "velocityY": 1.086825011178144, + "timestamp": 1.4476235146996534 + }, + { + "x": 2.430686491824439, + "y": 4.917674582945456, + "heading": 0.5174267771121811, + "angularVelocity": -0.34200324859101694, + "velocityX": 0.17965267190957165, + "velocityY": 1.127054044175531, + "timestamp": 1.4539977166597828 + }, + { + "x": 2.4318948791765242, + "y": 4.925115068110181, + "heading": 0.5152467794096849, + "angularVelocity": -0.3420032368180158, + "velocityX": 0.18957468866591923, + "velocityY": 1.1672810512227292, + "timestamp": 1.4603719186199122 + }, + { + "x": 2.4331665694895817, + "y": 4.932811953964416, + "heading": 0.5130667817869297, + "angularVelocity": -0.3420032243080915, + "velocityX": 0.19950580810141244, + "velocityY": 1.2075058026679406, + "timestamp": 1.4667461205800416 + }, + { + "x": 2.4345016276914273, + "y": 4.940765224402815, + "heading": 0.5108867842490598, + "angularVelocity": -0.3420032109910574, + "velocityX": 0.20944711356758514, + "velocityY": 1.2477280274686948, + "timestamp": 1.473120322540171 + }, + { + "x": 2.4359001269261498, + "y": 4.948974861261079, + "heading": 0.5087067868017452, + "angularVelocity": -0.3420031967845304, + "velocityX": 0.21939989405258908, + "velocityY": 1.2879474026105764, + "timestamp": 1.4794945245003004 + }, + { + "x": 2.4373621502190166, + "y": 4.957440843894199, + "heading": 0.5065267894512792, + "angularVelocity": -0.342003181590706, + "velocityX": 0.22936569973973245, + "velocityY": 1.3281635389142183, + "timestamp": 1.4858687264604298 + }, + { + "x": 2.438887792623795, + "y": 4.9661631486310975, + "heading": 0.5043467922047046, + "angularVelocity": -0.3420031652919713, + "velocityX": 0.23934641768825957, + "velocityY": 1.368375961642996, + "timestamp": 1.4922429284205592 + }, + { + "x": 2.440477164040828, + "y": 4.975141748056803, + "heading": 0.5021667950699791, + "angularVelocity": -0.3420031477448131, + "velocityX": 0.2493443770646295, + "velocityY": 1.4085840834455217, + "timestamp": 1.4986171303806886 + }, + { + "x": 2.4421303929899736, + "y": 4.984376610048128, + "heading": 0.4999867980561955, + "angularVelocity": -0.3420031287711538, + "velocityX": 0.25936249894286634, + "velocityY": 1.4487871656857378, + "timestamp": 1.504991332340818 + }, + { + "x": 2.443847631780241, + "y": 4.993867696447146, + "heading": 0.4978068011738828, + "angularVelocity": -0.34200310814568574, + "velocityX": 0.26940451542153754, + "velocityY": 1.4889842616199083, + "timestamp": 1.5113655343009473 + }, + { + "x": 2.445629063788311, + "y": 5.003614961184849, + "heading": 0.49562680443542906, + "angularVelocity": -0.34200308557675785, + "velocityX": 0.27947530047093716, + "velocityY": 1.5291741301376238, + "timestamp": 1.5177397362610767 + }, + { + "x": 2.447474914043388, + "y": 5.013618347537239, + "heading": 0.4934468078556951, + "angularVelocity": -0.34200306067641556, + "velocityX": 0.2895813886385401, + "velocityY": 1.5693550996596037, + "timestamp": 1.524113938221206 + }, + { + "x": 2.4493854652362237, + "y": 5.023877783947195, + "heading": 0.491266811452942, + "angularVelocity": -0.3420030329112512, + "velocityX": 0.2997318260052878, + "velocityY": 1.609524843129977, + "timestamp": 1.5304881401813355 + }, + { + "x": 2.4513610831370687, + "y": 5.03439317733466, + "heading": 0.4890868152503013, + "angularVelocity": -0.3420030015171282, + "velocityX": 0.30993964628082354, + "velocityY": 1.6496799839791223, + "timestamp": 1.5368623421414649 + }, + { + "x": 2.4534022595247573, + "y": 5.045164401675509, + "heading": 0.48690681927825835, + "angularVelocity": -0.34200296534039537, + "velocityX": 0.3202246179922972, + "velocityY": 1.689815353862637, + "timestamp": 1.5432365441015943 + }, + { + "x": 2.4555096908421015, + "y": 5.056191276772893, + "heading": 0.48472682357920166, + "angularVelocity": -0.34200292251366626, + "velocityX": 0.33061884931265884, + "velocityY": 1.7299224540353866, + "timestamp": 1.5496107460617237 + }, + { + "x": 2.4576844394966524, + "y": 5.067473523836222, + "heading": 0.48254682821675904, + "angularVelocity": -0.34200286970484095, + "velocityX": 0.34117975366231496, + "velocityY": 1.76998581687561, + "timestamp": 1.555984948021853 + }, + { + "x": 2.459928324969431, + "y": 5.079010654411427, + "heading": 0.4803668332984725, + "angularVelocity": -0.34200280002457983, + "velocityX": 0.35202610253242167, + "velocityY": 1.8099725498766472, + "timestamp": 1.5623591499819824 + }, + { + "x": 2.4622451798217404, + "y": 5.0908015938615145, + "heading": 0.4781868390488615, + "angularVelocity": -0.3420026951211711, + "velocityX": 0.3634737127567209, + "velocityY": 1.8497906912645452, + "timestamp": 1.5687333519421118 + }, + { + "x": 2.464648292085581, + "y": 5.102842125059693, + "heading": 0.47600684624657236, + "angularVelocity": -0.34200246806187357, + "velocityX": 0.37700598112075934, + "velocityY": 1.8889472397473026, + "timestamp": 1.5751075539022412 + }, + { + "x": 2.467081908977696, + "y": 5.114620412113108, + "heading": 0.4738268584974906, + "angularVelocity": -0.3420016753026414, + "velocityX": 0.3817916199294585, + "velocityY": 1.847805753110444, + "timestamp": 1.5814817558623706 + }, + { + "x": 2.469469531042407, + "y": 5.126138650743352, + "heading": 0.47164687162541796, + "angularVelocity": -0.34200153771536607, + "velocityX": 0.3745758417517406, + "velocityY": 1.8070087365118965, + "timestamp": 1.5878559578225 + }, + { + "x": 2.471803786059134, + "y": 5.137398245819723, + "heading": 0.46946688521483676, + "angularVelocity": -0.3420014653154861, + "velocityX": 0.3662034920336832, + "velocityY": 1.7664321191576753, + "timestamp": 1.5942301597826294 + }, + { + "x": 2.474081908499231, + "y": 5.1483997806229285, + "heading": 0.4672868991106301, + "angularVelocity": -0.3420014172507204, + "velocityX": 0.3573972795882915, + "velocityY": 1.7259470082718722, + "timestamp": 1.6006043617427588 + }, + { + "x": 2.476302450086002, + "y": 5.159143572972929, + "heading": 0.46510691323246106, + "angularVelocity": -0.3420013817893936, + "velocityX": 0.3483638580422004, + "velocityY": 1.6855117577388727, + "timestamp": 1.6069785637028882 + }, + { + "x": 2.4784645197680093, + "y": 5.169629822648962, + "heading": 0.4629269275316465, + "angularVelocity": -0.34200135396561737, + "velocityX": 0.33919064622226364, + "velocityY": 1.6451078490492252, + "timestamp": 1.6133527656630176 + }, + { + "x": 2.480567514034971, + "y": 5.1798586668014694, + "heading": 0.4607469419758173, + "angularVelocity": -0.34200133121995435, + "velocityX": 0.3299227542704249, + "velocityY": 1.6047254568474338, + "timestamp": 1.619726967623147 + }, + { + "x": 2.4826109970779546, + "y": 5.1898302053954035, + "heading": 0.45856695654209484, + "angularVelocity": -0.34200131206355555, + "velocityX": 0.3205864915741728, + "velocityY": 1.5643587473862877, + "timestamp": 1.6261011695832763 + }, + { + "x": 2.4845946394187486, + "y": 5.199544514521585, + "heading": 0.45638697121359445, + "angularVelocity": -0.3420012955560595, + "velocityX": 0.3111985395507594, + "velocityY": 1.5240039752340067, + "timestamp": 1.6324753715434057 + }, + { + "x": 2.4865181832275827, + "y": 5.209001654034133, + "heading": 0.45420698597745013, + "angularVelocity": -0.34200128106703276, + "velocityX": 0.30177013857831786, + "velocityY": 1.4836585931388526, + "timestamp": 1.638849573503535 + }, + { + "x": 2.4883814212446196, + "y": 5.218201672245073, + "heading": 0.45202700082361424, + "angularVelocity": -0.34200126815429005, + "velocityX": 0.29230922218837585, + "velocityY": 1.4433207903491592, + "timestamp": 1.6452237754636645 + }, + { + "x": 2.4901841832310767, + "y": 5.227144608968611, + "heading": 0.4498470157440873, + "angularVelocity": -0.34200125649652, + "velocityX": 0.282821598332397, + "velocityY": 1.4029892337075143, + "timestamp": 1.6515979774237939 + }, + { + "x": 2.491926326863529, + "y": 5.23583049758156, + "heading": 0.44766703073240094, + "angularVelocity": -0.3420012458535238, + "velocityX": 0.2733116464381753, + "velocityY": 1.3626629132994164, + "timestamp": 1.6579721793839233 + }, + { + "x": 2.4936077313880713, + "y": 5.244259366467562, + "heading": 0.44548704578325826, + "angularVelocity": -0.34200123604151916, + "velocityX": 0.2637827503834201, + "velocityY": 1.3223410457849154, + "timestamp": 1.6643463813440527 + }, + { + "x": 2.4952282930623912, + "y": 5.252431240059427, + "heading": 0.44330706089227623, + "angularVelocity": -0.34200122691714707, + "velocityX": 0.25423757898738514, + "velocityY": 1.282023011347965, + "timestamp": 1.670720583304182 + }, + { + "x": 2.4967879217975235, + "y": 5.260346139610259, + "heading": 0.44112707605579615, + "angularVelocity": -0.3420012183667458, + "velocityX": 0.24467827421978572, + "velocityY": 1.2417083111484322, + "timestamp": 1.6770947852643114 + }, + { + "x": 2.498286538628955, + "y": 5.268004083776178, + "heading": 0.43894709127074194, + "angularVelocity": -0.34200121029894176, + "velocityX": 0.23510658131087206, + "velocityY": 1.2013965377658162, + "timestamp": 1.6834689872244408 + }, + { + "x": 2.499724073775942, + "y": 5.275405089064876, + "heading": 0.4367671065345112, + "angularVelocity": -0.3420012026393997, + "velocityX": 0.22552394103267395, + "velocityY": 1.16108735414882, + "timestamp": 1.6898431891845702 + }, + { + "x": 2.50110046512743, + "y": 5.282549170186488, + "heading": 0.43458712184489096, + "angularVelocity": -0.3420011953270199, + "velocityX": 0.21593155662425978, + "velocityY": 1.1207804782934794, + "timestamp": 1.6962173911446996 + }, + { + "x": 2.502415657043457, + "y": 5.289436340332031, + "heading": 0.43240713719999146, + "angularVelocity": -0.34200118831113024, + "velocityX": 0.20633044328587646, + "velocityY": 1.0804756718758335, + "timestamp": 1.702591593104829 + }, + { + "x": 2.5039500670719033, + "y": 5.311668330173006, + "heading": 0.42547855071687624, + "angularVelocity": -0.34200071520177083, + "velocityX": 0.07573973831749738, + "velocityY": 1.0973892646791972, + "timestamp": 1.7228505755430017 + }, + { + "x": 2.502817272216882, + "y": 5.333924398215764, + "heading": 0.4185500277771998, + "angularVelocity": -0.34199757864548086, + "velocityX": -0.055915683745634874, + "velocityY": 1.0985777844805285, + "timestamp": 1.7431095579811744 + }, + { + "x": 2.501180027089419, + "y": 5.356149051587616, + "heading": 0.4126295978113165, + "angularVelocity": -0.29223728210197597, + "velocityX": -0.08081576320328872, + "velocityY": 1.097027130542174, + "timestamp": 1.763368540419347 + }, + { + "x": 2.4995427741087304, + "y": 5.3783737043809365, + "heading": 0.40703206068621234, + "angularVelocity": -0.2762990264781028, + "velocityX": -0.08081615084496348, + "velocityY": 1.0970271019853315, + "timestamp": 1.7836275228575198 + }, + { + "x": 2.497905521126773, + "y": 5.400598357174164, + "heading": 0.40174125162070407, + "angularVelocity": -0.26115867772011714, + "velocityX": -0.080816150907577, + "velocityY": 1.0970271019807187, + "timestamp": 1.8038865052956925 + }, + { + "x": 2.496268268134211, + "y": 5.422823009966609, + "heading": 0.3967292023899977, + "angularVelocity": -0.2473988634919003, + "velocityX": -0.0808161514310379, + "velocityY": 1.0970271019421565, + "timestamp": 1.8241454877338652 + }, + { + "x": 2.4946310151410938, + "y": 5.4450476627590145, + "heading": 0.39197130991231566, + "angularVelocity": -0.23485347757234862, + "velocityX": -0.08081615145842604, + "velocityY": 1.0970271019401387, + "timestamp": 1.844404470172038 + }, + { + "x": 2.4929937621480303, + "y": 5.467272315551423, + "heading": 0.38744599900582816, + "angularVelocity": -0.22337306033499107, + "velocityX": -0.08081615145581232, + "velocityY": 1.0970271019403313, + "timestamp": 1.8646634526102106 + }, + { + "x": 2.4913565091550103, + "y": 5.489496968343834, + "heading": 0.38313430437464335, + "angularVelocity": -0.2128287856679599, + "velocityX": -0.08081615145363683, + "velocityY": 1.0970271019404914, + "timestamp": 1.8849224350483833 + }, + { + "x": 2.489719256162009, + "y": 5.511721621136248, + "heading": 0.37901946786612345, + "angularVelocity": -0.2031117071687932, + "velocityX": -0.08081615145273108, + "velocityY": 1.0970271019405582, + "timestamp": 1.905181417486556 + }, + { + "x": 2.4880820031690125, + "y": 5.5339462739286605, + "heading": 0.3750865847796286, + "angularVelocity": -0.19413033692572682, + "velocityX": -0.08081615145247344, + "velocityY": 1.0970271019405773, + "timestamp": 1.9254403999247287 + }, + { + "x": 2.486444750176016, + "y": 5.556170926721075, + "heading": 0.37132231642821506, + "angularVelocity": -0.18580737521746254, + "velocityX": -0.08081615145246053, + "velocityY": 1.0970271019405782, + "timestamp": 1.9456993823629014 + }, + { + "x": 2.484807497183019, + "y": 5.578395579513488, + "heading": 0.36771467197527735, + "angularVelocity": -0.17807629104510383, + "velocityX": -0.0808161514525092, + "velocityY": 1.0970271019405746, + "timestamp": 1.965958364801074 + }, + { + "x": 2.483170244190021, + "y": 5.600620232305903, + "heading": 0.3642528528281405, + "angularVelocity": -0.17087823426975032, + "velocityX": -0.08081615145255612, + "velocityY": 1.097027101940571, + "timestamp": 1.9862173472392468 + }, + { + "x": 2.4815329911970223, + "y": 5.622844885098316, + "heading": 0.3609271459403392, + "angularVelocity": -0.16415962143956772, + "velocityX": -0.08081615145258811, + "velocityY": 1.0970271019405688, + "timestamp": 2.0064763296774193 + }, + { + "x": 2.479895738204023, + "y": 5.6450695378907305, + "heading": 0.35772884966735696, + "angularVelocity": -0.15787052892429068, + "velocityX": -0.08081615145260722, + "velocityY": 1.0970271019405675, + "timestamp": 2.026735312115592 + }, + { + "x": 2.478258485211024, + "y": 5.667294190683143, + "heading": 0.35465021813338726, + "angularVelocity": -0.15196377919598353, + "velocityX": -0.08081615145261745, + "velocityY": 1.0970271019405666, + "timestamp": 2.0469942945537647 + }, + { + "x": 2.4766212322180245, + "y": 5.689518843475557, + "heading": 0.3516844151848806, + "angularVelocity": -0.14639446761740868, + "velocityX": -0.08081615145262162, + "velocityY": 1.0970271019405664, + "timestamp": 2.0672532769919374 + }, + { + "x": 2.474983979225025, + "y": 5.711743496267971, + "heading": 0.3488254740032406, + "angularVelocity": -0.14111968310180528, + "velocityX": -0.08081615145262243, + "velocityY": 1.0970271019405664, + "timestamp": 2.08751225943011 + }, + { + "x": 2.473346726232026, + "y": 5.733968149060384, + "heading": 0.346068260905357, + "angularVelocity": -0.13609830139782436, + "velocityX": -0.08081615145262222, + "velocityY": 1.0970271019405664, + "timestamp": 2.107771241868283 + }, + { + "x": 2.4717094732390263, + "y": 5.756192801852799, + "heading": 0.34340844222101774, + "angularVelocity": -0.13129083321221147, + "velocityX": -0.08081615145262207, + "velocityY": 1.0970271019405664, + "timestamp": 2.1280302243064555 + }, + { + "x": 2.470072220246027, + "y": 5.778417454645212, + "heading": 0.34084245371118643, + "angularVelocity": -0.1266592987906645, + "velocityX": -0.08081615145262204, + "velocityY": 1.0970271019405664, + "timestamp": 2.148289206744628 + }, + { + "x": 2.468434967253028, + "y": 5.800642107437627, + "heading": 0.3383674730286024, + "angularVelocity": -0.12216707774624941, + "velocityX": -0.08081615145262197, + "velocityY": 1.0970271019405664, + "timestamp": 2.168548189182801 + }, + { + "x": 2.4667977142600286, + "y": 5.822866760230039, + "heading": 0.33598139613372807, + "angularVelocity": -0.11777871382021575, + "velocityX": -0.08081615145262176, + "velocityY": 1.0970271019405664, + "timestamp": 2.1888071716209736 + }, + { + "x": 2.465160461267029, + "y": 5.845091413022454, + "heading": 0.3336828183391503, + "angularVelocity": -0.11345968641775295, + "velocityX": -0.08081615145262147, + "velocityY": 1.0970271019405664, + "timestamp": 2.2090661540591463 + }, + { + "x": 2.46352320827403, + "y": 5.867316065814867, + "heading": 0.331471020338079, + "angularVelocity": -0.10917616458878997, + "velocityX": -0.08081615145262108, + "velocityY": 1.0970271019405664, + "timestamp": 2.229325136497319 + }, + { + "x": 2.4618859552810304, + "y": 5.8895407186072815, + "heading": 0.32934595940966455, + "angularVelocity": -0.10489475149602846, + "velocityX": -0.08081615145262068, + "velocityY": 1.0970271019405662, + "timestamp": 2.2495841189354917 + }, + { + "x": 2.460248702288031, + "y": 5.911765371399695, + "heading": 0.3273082659544049, + "angularVelocity": -0.10058222131730589, + "velocityX": -0.08081615145262047, + "velocityY": 1.0970271019405662, + "timestamp": 2.2698431013736644 + }, + { + "x": 2.4586114492950313, + "y": 5.933990024192109, + "heading": 0.3253592455643054, + "angularVelocity": -0.09620524604568194, + "velocityX": -0.08081615145262105, + "velocityY": 1.0970271019405662, + "timestamp": 2.290102083811837 + }, + { + "x": 2.456974196302032, + "y": 5.956214676984522, + "heading": 0.3235008869598311, + "angularVelocity": -0.09173010589972616, + "velocityX": -0.0808161514526233, + "velocityY": 1.0970271019405662, + "timestamp": 2.31036106625001 + }, + { + "x": 2.4553369433090326, + "y": 5.978439329776935, + "heading": 0.3217358763132212, + "angularVelocity": -0.08712237408746824, + "velocityX": -0.08081615145262841, + "velocityY": 1.0970271019405657, + "timestamp": 2.3306200486881825 + }, + { + "x": 2.4536996903160326, + "y": 6.000663982569349, + "heading": 0.3200676188117958, + "angularVelocity": -0.08234655943439834, + "velocityX": -0.08081615145263718, + "velocityY": 1.097027101940565, + "timestamp": 2.350879031126355 + }, + { + "x": 2.452062437323033, + "y": 6.0228886353617614, + "heading": 0.31850026903579604, + "angularVelocity": -0.07736567129090453, + "velocityX": -0.08081615145264842, + "velocityY": 1.0970271019405644, + "timestamp": 2.371138013564528 + }, + { + "x": 2.450425184330033, + "y": 6.045113288154175, + "heading": 0.31703877306093387, + "angularVelocity": -0.07214064079093804, + "velocityX": -0.08081615145264577, + "velocityY": 1.0970271019405646, + "timestamp": 2.3913969960027006 + }, + { + "x": 2.4487879313370393, + "y": 6.067337940946588, + "heading": 0.31568892716271424, + "angularVelocity": -0.06662950137496512, + "velocityX": -0.08081615145234498, + "velocityY": 1.0970271019405868, + "timestamp": 2.4116559784408733 + }, + { + "x": 2.4471506783441654, + "y": 6.089562593739011, + "heading": 0.31445746029620136, + "angularVelocity": -0.060786215214470356, + "velocityX": -0.08081615144643692, + "velocityY": 1.0970271019410218, + "timestamp": 2.431914960879046 + }, + { + "x": 2.4455134253514674, + "y": 6.111787246531447, + "heading": 0.31335214565883224, + "angularVelocity": -0.05455923764889827, + "velocityX": -0.0808161514377356, + "velocityY": 1.097027101941663, + "timestamp": 2.4521739433172187 + }, + { + "x": 2.4438761754310208, + "y": 6.1340118995502095, + "heading": 0.3123805776436278, + "angularVelocity": -0.047957394610983334, + "velocityX": -0.08081599978890032, + "velocityY": 1.0970271131133675, + "timestamp": 2.4724329257553914 + }, + { + "x": 2.4426626735271473, + "y": 6.156263713006035, + "heading": 0.3123467820423707, + "angularVelocity": -0.0016681786146094508, + "velocityX": -0.059899449914485516, + "velocityY": 1.0983677745777325, + "timestamp": 2.492691908193564 + }, + { + "x": 2.4441163539886475, + "y": 6.178501129150391, + "heading": 0.31231301850628623, + "angularVelocity": -0.001666595851373434, + "velocityX": 0.07175486063709009, + "velocityY": 1.0976571114675118, + "timestamp": 2.512950890631737 + }, + { + "x": 2.445120314919253, + "y": 6.193259169320273, + "heading": 0.3122921501978642, + "angularVelocity": -0.0016665908226668657, + "velocityX": 0.08017861531591786, + "velocityY": 1.1786108298894822, + "timestamp": 2.5254724454958355 + }, + { + "x": 2.4462297546765157, + "y": 6.209030875744221, + "heading": 0.31227128196159304, + "angularVelocity": -0.001666585060531769, + "velocityX": 0.08860239557336788, + "velocityY": 1.2595645345267146, + "timestamp": 2.537994000359934 + }, + { + "x": 2.447444673638935, + "y": 6.22581624821825, + "heading": 0.3122504138083226, + "angularVelocity": -0.0016665784319106992, + "velocityX": 0.0970262060586898, + "velocityY": 1.3405182228730212, + "timestamp": 2.550515555224033 + }, + { + "x": 2.4487650722606893, + "y": 6.243615286497575, + "heading": 0.31222954575106787, + "angularVelocity": -0.0016665707638681853, + "velocityX": 0.10545005281575058, + "velocityY": 1.4214718916703686, + "timestamp": 2.5630371100881315 + }, + { + "x": 2.4501909510968605, + "y": 6.262427990283018, + "heading": 0.3122086778057308, + "angularVelocity": -0.0016665618258727513, + "velocityX": 0.1138739439028499, + "velocityY": 1.5024255365747223, + "timestamp": 2.57555866495223 + }, + { + "x": 2.4517223108412662, + "y": 6.282254359200611, + "heading": 0.31218780999218143, + "angularVelocity": -0.0016665513010058741, + "velocityX": 0.12229789039991894, + "velocityY": 1.5833791516130427, + "timestamp": 2.588080219816329 + }, + { + "x": 2.4533591523859206, + "y": 6.3030943927695375, + "heading": 0.3121669423359579, + "angularVelocity": -0.0016665387366078144, + "velocityX": 0.1307219081351457, + "velocityY": 1.6643327282524174, + "timestamp": 2.6006017746804275 + }, + { + "x": 2.4551014769201203, + "y": 6.324948090348718, + "heading": 0.31214607487109886, + "angularVelocity": -0.0016665234537968112, + "velocityX": 0.13914602085045547, + "velocityY": 1.7452862536934581, + "timestamp": 2.613123329544526 + }, + { + "x": 2.456949286108817, + "y": 6.347815451040637, + "heading": 0.3121252076452424, + "angularVelocity": -0.0016665043665100416, + "velocityX": 0.1475702665324821, + "velocityY": 1.8262397074570682, + "timestamp": 2.625644884408625 + }, + { + "x": 2.4589025824493427, + "y": 6.371696473499027, + "heading": 0.31210434072982224, + "angularVelocity": -0.0016664795743487205, + "velocityX": 0.1559947116572947, + "velocityY": 1.9071930537045811, + "timestamp": 2.6381664392727235 + }, + { + "x": 2.4609613701037936, + "y": 6.396591155480096, + "heading": 0.31208347424386035, + "angularVelocity": -0.0016664452768294048, + "velocityX": 0.1644194891765353, + "velocityY": 1.9881462207577703, + "timestamp": 2.650687994136822 + }, + { + "x": 2.4631256573961786, + "y": 6.42249949249619, + "heading": 0.31206260842534267, + "angularVelocity": -0.0016663919732125923, + "velocityX": 0.17284493147017146, + "velocityY": 2.0690990294167224, + "timestamp": 2.663209549000921 + }, + { + "x": 2.465395469298453, + "y": 6.4494214710836495, + "heading": 0.31204174398811113, + "angularVelocity": -0.0016662816605493682, + "velocityX": 0.18127236808123234, + "velocityY": 2.1500507628368233, + "timestamp": 2.6757311038650196 + }, + { + "x": 2.4681376004947353, + "y": 6.47577679013902, + "heading": 0.3120417372263623, + "angularVelocity": -5.400087174004848e-7, + "velocityX": 0.21899286678404084, + "velocityY": 2.1047960370269934, + "timestamp": 2.6882526587291182 + }, + { + "x": 2.470774311450749, + "y": 6.501118456760936, + "heading": 0.3120417319404172, + "angularVelocity": -4.221476647395223e-7, + "velocityX": 0.21057376536947703, + "velocityY": 2.0238434361354614, + "timestamp": 2.700774213593217 + }, + { + "x": 2.4733055749620316, + "y": 6.5254464629164515, + "heading": 0.31204172741662234, + "angularVelocity": -3.6128059653857945e-7, + "velocityX": 0.20215249134431051, + "velocityY": 1.9428901937145648, + "timestamp": 2.7132957684573156 + }, + { + "x": 2.4757313819600233, + "y": 6.548760805927957, + "heading": 0.3120417234170857, + "angularVelocity": -3.194121424024608e-7, + "velocityX": 0.19373049308334386, + "velocityY": 1.86193673745348, + "timestamp": 2.7258173233214142 + }, + { + "x": 2.4780517279103704, + "y": 6.57106148445665, + "heading": 0.3120417198228596, + "angularVelocity": -2.8704311053324193e-7, + "velocityX": 0.1853081326984355, + "velocityY": 1.7809831742728512, + "timestamp": 2.738338878185513 + }, + { + "x": 2.480266610092436, + "y": 6.592348497699256, + "heading": 0.31204171656257523, + "angularVelocity": -2.603737685546178e-7, + "velocityX": 0.1768855550372324, + "velocityY": 1.7000295469406712, + "timestamp": 2.7508604330496116 + }, + { + "x": 2.482376026692451, + "y": 6.612621845120259, + "heading": 0.3120417135886529, + "angularVelocity": -2.3750423481094313e-7, + "velocityX": 0.1684628325243642, + "velocityY": 1.6190758768408642, + "timestamp": 2.7633819879137103 + }, + { + "x": 2.4843799764148624, + "y": 6.631881526337144, + "heading": 0.31204171086710725, + "angularVelocity": -2.173488571042306e-7, + "velocityX": 0.16004000654562925, + "velocityY": 1.5381221761927877, + "timestamp": 2.775903542777809 + }, + { + "x": 2.486278458288003, + "y": 6.650127541063028, + "heading": 0.3120417083724491, + "angularVelocity": -1.9922910030034145e-7, + "velocityX": 0.15161710296728076, + "velocityY": 1.4571684526335285, + "timestamp": 2.7884250976419076 + }, + { + "x": 2.488071471556129, + "y": 6.667359889074779, + "heading": 0.31204170608485365, + "angularVelocity": -1.8269260644926615e-7, + "velocityX": 0.14319413903355122, + "velocityY": 1.3762147112544725, + "timestamp": 2.8009466525060063 + }, + { + "x": 2.489759015614645, + "y": 6.6835785701938955, + "heading": 0.3120417039884608, + "angularVelocity": -1.674227243664847e-7, + "velocityX": 0.13477112681543785, + "velocityY": 1.2952609556195864, + "timestamp": 2.813468207370105 + }, + { + "x": 2.4913410899688806, + "y": 6.6987835842743255, + "heading": 0.3120417020702943, + "angularVelocity": -1.531891618909752e-7, + "velocityX": 0.12634807509186746, + "velocityY": 1.2143071883208436, + "timestamp": 2.8259897622342036 + }, + { + "x": 2.492817694206612, + "y": 6.712974931194359, + "heading": 0.31204170031954054, + "angularVelocity": -1.398191997292053e-7, + "velocityX": 0.11792499044704728, + "velocityY": 1.133353411302224, + "timestamp": 2.8385113170983023 + }, + { + "x": 2.4941888279790314, + "y": 6.726152610851015, + "heading": 0.31204169872704945, + "angularVelocity": -1.2717997669843785e-7, + "velocityX": 0.10950187794575982, + "velocityY": 1.0523996260590955, + "timestamp": 2.851032871962401 + }, + { + "x": 2.4954544909871625, + "y": 6.738316623156021, + "heading": 0.31204169728497827, + "angularVelocity": -1.1516710180906414e-7, + "velocityX": 0.10107874156748214, + "velocityY": 0.9714458337663897, + "timestamp": 2.8635544268264996 + }, + { + "x": 2.4966146829718916, + "y": 6.749466968032875, + "heading": 0.3120416959865298, + "angularVelocity": -1.0369706220656991e-7, + "velocityX": 0.0926555844957994, + "velocityY": 0.8904920353640515, + "timestamp": 2.8760759816905983 + }, + { + "x": 2.4976694037064946, + "y": 6.759603645414637, + "heading": 0.3120416948257566, + "angularVelocity": -9.270200362796257e-8, + "velocityX": 0.08423240931737695, + "velocityY": 0.8095382316157859, + "timestamp": 2.888597536554697 + }, + { + "x": 2.498618652990919, + "y": 6.768726655242244, + "heading": 0.31204169379741076, + "angularVelocity": -8.212604606332189e-8, + "velocityX": 0.07580921816241157, + "velocityY": 0.7285844231505263, + "timestamp": 2.9011190914187956 + }, + { + "x": 2.4994624306473434, + "y": 6.776835997463195, + "heading": 0.3120416928968277, + "angularVelocity": -7.192262285581183e-8, + "velocityX": 0.0673860128060685, + "velocityY": 0.6476306104923838, + "timestamp": 2.9136406462828943 + }, + { + "x": 2.5002007365166614, + "y": 6.783931672030513, + "heading": 0.31204169211983374, + "angularVelocity": -6.205251993623152e-8, + "velocityX": 0.05896279474322469, + "velocityY": 0.5666767940827149, + "timestamp": 2.926162201146993 + }, + { + "x": 2.5008335704556783, + "y": 6.790013678901921, + "heading": 0.31204169146267235, + "angularVelocity": -5.248240529483989e-8, + "velocityX": 0.050539565244526304, + "velocityY": 0.4857229742966727, + "timestamp": 2.9386837560110917 + }, + { + "x": 2.501360932334837, + "y": 6.79508201803917, + "heading": 0.3120416909219452, + "angularVelocity": -4.318370871290697e-8, + "velocityX": 0.042116325399099146, + "velocityY": 0.40476915145581677, + "timestamp": 2.9512053108751903 + }, + { + "x": 2.5017828220363594, + "y": 6.799136689407485, + "heading": 0.31204169049456254, + "angularVelocity": -3.413175581865135e-8, + "velocityX": 0.033693076147552306, + "velocityY": 0.32381532583785777, + "timestamp": 2.963726865739289 + }, + { + "x": 2.502099239452706, + "y": 6.802177692975116, + "heading": 0.31204169017770345, + "angularVelocity": -2.5305090671972932e-8, + "velocityX": 0.0252698183078071, + "velocityY": 0.24286149768428308, + "timestamp": 2.9762484206033877 + }, + { + "x": 2.502310184485302, + "y": 6.80420502871296, + "heading": 0.31204168996878207, + "angularVelocity": -1.6684939319236987e-8, + "velocityX": 0.016846552595544913, + "velocityY": 0.16190766720639427, + "timestamp": 2.9887699754674864 + }, + { + "x": 2.502415657043457, + "y": 6.805218696594238, + "heading": 0.31204168986541936, + "angularVelocity": -8.25478071143404e-9, + "velocityX": 0.008423279640565606, + "velocityY": 0.08095383459013655, + "timestamp": 3.001291530331585 + }, + { + "x": 2.502415657043457, + "y": 6.805218696594238, + "heading": 0.31204168986541936, + "angularVelocity": 0, + "velocityX": -3.483076736019266e-25, + "velocityY": 4.61317314918875e-27, + "timestamp": 3.0138130851956837 + } + ] +} \ No newline at end of file diff --git a/src/main/deploy/choreo/6Note.traj b/src/main/deploy/choreo/6Note.traj index b2602225..051964f5 100644 --- a/src/main/deploy/choreo/6Note.traj +++ b/src/main/deploy/choreo/6Note.traj @@ -1,1084 +1,1021 @@ { "samples": [ { - "x": 1.9715728759765625, - "y": 4.410010814666748, - "heading": -0.3947904999889929, - "angularVelocity": -0.01568320764167329, - "velocityX": 0.4093651796313304, - "velocityY": -0.12297525698657673, + "x": 2.20794415473938, + "y": 3.664973258972168, + "heading": -0.7354400074149414, + "angularVelocity": 0, + "velocityX": 0, + "velocityY": 0, "timestamp": 0 }, { - "x": 2.0765282998590564, - "y": 4.378481703577121, - "heading": -0.3978389619343714, - "angularVelocity": -0.020862939053048198, - "velocityX": 0.7182896329301068, - "velocityY": -0.21577763962476096, - "timestamp": 0.1461185280572005 - }, - { - "x": 2.1814837237415508, - "y": 4.346952592487494, - "heading": -0.4012869606583766, - "angularVelocity": -0.023597272500962, - "velocityX": 0.7182896329301072, - "velocityY": -0.21577763962476115, - "timestamp": 0.292237056114401 - }, - { - "x": 2.2864391476240447, - "y": 4.315423481397867, - "heading": -0.4047633830781092, - "angularVelocity": -0.023791797426071102, - "velocityX": 0.7182896329301072, - "velocityY": -0.21577763962476115, - "timestamp": 0.4383555841716015 - }, - { - "x": 2.3913945715065386, - "y": 4.28389437030824, - "heading": -0.4079095483312409, - "angularVelocity": -0.021531596950525294, - "velocityX": 0.7182896329301072, - "velocityY": -0.21577763962476113, - "timestamp": 0.584474112228802 - }, - { - "x": 2.496349995389033, - "y": 4.252365259218614, - "heading": -0.41022232544113246, - "angularVelocity": -0.015828089296014626, - "velocityX": 0.7182896329301072, - "velocityY": -0.21577763962476113, - "timestamp": 0.7305926402860025 - }, - { - "x": 2.601305419271527, - "y": 4.220836148128987, - "heading": -0.4108340799079246, - "angularVelocity": -0.00418670017366069, - "velocityX": 0.7182896329301075, - "velocityY": -0.21577763962475974, - "timestamp": 0.876711168343203 - }, - { - "x": 2.706260844090673, - "y": 4.189307040157326, - "heading": -0.40813324803272155, - "angularVelocity": 0.018483842611292493, - "velocityX": 0.7182896393403263, - "velocityY": -0.21577761828615424, - "timestamp": 1.0228296964004033 - }, - { - "x": 2.815009593963623, - "y": 4.202850818634033, - "heading": -0.40024085919807206, - "angularVelocity": 0.05401360758000456, - "velocityX": 0.7442502420389758, - "velocityY": 0.09269035663571289, - "timestamp": 1.168948224457604 - }, - { - "x": 2.7898370208530165, - "y": 4.319442404394222, - "heading": -0.39165067326141045, - "angularVelocity": 0.054013614099941744, - "velocityX": -0.15828081719349674, - "velocityY": 0.7331078706543659, - "timestamp": 1.3279856464076905 - }, - { - "x": 2.72056978597034, - "y": 4.416547023130057, - "heading": -0.3764314558727499, - "angularVelocity": 0.09569582556133897, - "velocityX": -0.43554047867058293, - "velocityY": 0.6105771682234138, - "timestamp": 1.487023068357777 - }, - { - "x": 2.651302548797798, - "y": 4.513651640232473, - "heading": -0.35721171947321617, - "angularVelocity": 0.12085040214978962, - "velocityX": -0.43554049306886666, - "velocityY": 0.6105771579527456, - "timestamp": 1.6460604903078635 - }, - { - "x": 2.582035311625256, - "y": 4.610756257334889, - "heading": -0.33574469698979315, - "angularVelocity": 0.13498095115098396, - "velocityX": -0.4355404930688675, - "velocityY": 0.610577157952745, - "timestamp": 1.80509791225795 - }, - { - "x": 2.5127680744527137, - "y": 4.707860874437304, - "heading": -0.3126181929406801, - "angularVelocity": 0.14541548627700485, - "velocityX": -0.43554049306886744, - "velocityY": 0.6105771579527449, - "timestamp": 1.9641353342080365 - }, - { - "x": 2.443500837280171, - "y": 4.80496549153972, - "heading": -0.2875592097115087, - "angularVelocity": 0.1575665835241979, - "velocityX": -0.43554049306886755, - "velocityY": 0.6105771579527449, - "timestamp": 2.123172756158123 - }, - { - "x": 2.3742336001076287, - "y": 4.902070108642135, - "heading": -0.2592921680943937, - "angularVelocity": 0.1777383037935972, - "velocityX": -0.4355404930688675, - "velocityY": 0.6105771579527449, - "timestamp": 2.2822101781082096 - }, - { - "x": 2.3049663629350867, - "y": 4.999174725744552, - "heading": -0.22487685942692037, - "angularVelocity": 0.21639755125227364, - "velocityX": -0.43554049306886755, - "velocityY": 0.6105771579527449, - "timestamp": 2.441247600058296 - }, - { - "x": 2.2356991257625447, - "y": 5.096279342846967, - "heading": -0.17818264601127298, - "angularVelocity": 0.2936051958280752, - "velocityX": -0.4355404930688662, - "velocityY": 0.6105771579527458, - "timestamp": 2.6002850220083826 - }, - { - "x": 2.1664318922318735, - "y": 5.193383962547224, - "heading": -0.10671249460789548, - "angularVelocity": 0.44939203947740186, - "velocityX": -0.43554047016940806, - "velocityY": 0.6105771742875213, - "timestamp": 2.759322443958469 - }, - { - "x": 2.163935661315918, - "y": 5.312635898590088, + "x": 2.2471188331781433, + "y": 3.6784892919371552, + "heading": -0.7354399814683132, + "angularVelocity": 3.3622066506767566e-7, + "velocityX": 0.5076319105372495, + "velocityY": 0.17514297271453227, + "timestamp": 0.07717142603841304 + }, + { + "x": 2.3200702936853683, + "y": 3.7036589776847935, + "heading": -0.7236015966081355, + "angularVelocity": 0.15340373332333, + "velocityX": 0.9453169942837708, + "velocityY": 0.32615291746856667, + "timestamp": 0.15434285207682608 + }, + { + "x": 2.393021754194593, + "y": 3.7288286634266474, + "heading": -0.6554112716508567, + "angularVelocity": 0.883621418675562, + "velocityX": 0.9453169943096871, + "velocityY": 0.3261529173936128, + "timestamp": 0.2315142781152391 + }, + { + "x": 2.4659732147038027, + "y": 3.7539983491685462, + "heading": -0.5475903529607853, + "angularVelocity": 1.3971611543941431, + "velocityX": 0.9453169943094869, + "velocityY": 0.3261529173941928, + "timestamp": 0.30868570415365215 + }, + { + "x": 2.538924675213058, + "y": 3.779168034910313, + "heading": -0.4137634894095547, + "angularVelocity": 1.7341504546594302, + "velocityX": 0.9453169943100757, + "velocityY": 0.32615291739248603, + "timestamp": 0.3858571301920652 + }, + { + "x": 2.6118761357224596, + "y": 3.804337720651655, + "heading": -0.2645452299064341, + "angularVelocity": 1.933594688646098, + "velocityX": 0.9453169943119766, + "velocityY": 0.3261529173869763, + "timestamp": 0.4630285562304782 + }, + { + "x": 2.684827596231993, + "y": 3.829507406392615, + "heading": -0.10835582804191357, + "angularVelocity": 2.023927895109458, + "velocityX": 0.9453169943136835, + "velocityY": 0.32615291738202923, + "timestamp": 0.5401999822688912 + }, + { + "x": 2.7577790567415006, + "y": 3.8546770921336493, + "heading": 0.04747751815628348, + "angularVelocity": 2.0193140673677465, + "velocityX": 0.9453169943133516, + "velocityY": 0.3261529173829912, + "timestamp": 0.6173714083073043 + }, + { + "x": 2.830730517250857, + "y": 3.879846777875123, + "heading": 0.19556311960827935, + "angularVelocity": 1.918917519786202, + "velocityX": 0.945316994311386, + "velocityY": 0.32615291738868823, + "timestamp": 0.6945428343457174 + }, + { + "x": 2.903681977760091, + "y": 3.905016463616951, + "heading": 0.32729474861452895, + "angularVelocity": 1.7070000616637375, + "velocityX": 0.9453169943098034, + "velocityY": 0.3261529173932753, + "timestamp": 0.7717142603841305 + }, + { + "x": 2.9766334382693023, + "y": 3.930186149358844, + "heading": 0.4317749140071391, + "angularVelocity": 1.3538711250535118, + "velocityX": 0.9453169943095098, + "velocityY": 0.3261529173941263, + "timestamp": 0.8488856864225436 + }, + { + "x": 3.049584898778474, + "y": 3.9553558351008515, + "heading": 0.49505305343016526, + "angularVelocity": 0.8199685125881792, + "velocityX": 0.9453169943090014, + "velocityY": 0.3261529173955999, + "timestamp": 0.9260571124609567 + }, + { + "x": 3.1225363031680886, + "y": 3.980525683498396, + "heading": 0.5001345013216448, + "angularVelocity": 0.06584623548293991, + "velocityX": 0.9453162671025689, + "velocityY": 0.3261550251127433, + "timestamp": 1.0032285384993698 + }, + { + "x": 3.175154209136963, + "y": 4.036977291107178, + "heading": 0.4964219619537652, + "angularVelocity": -0.04810769423946735, + "velocityX": 0.6818314584815773, + "velocityY": 0.7315091933208836, + "timestamp": 1.0803999645377829 + }, + { + "x": 3.190817987773919, + "y": 4.113035844022939, + "heading": 0.4926861160438778, + "angularVelocity": -0.04810841089874421, + "velocityX": 0.2017105408173478, + "velocityY": 0.9794451388776884, + "timestamp": 1.1580546997513483 + }, + { + "x": 3.168517113834866, + "y": 4.187419502094125, + "heading": 0.48074118507947583, + "angularVelocity": -0.1538210249709965, + "velocityX": -0.28717983362793426, + "velocityY": 0.957876655771434, + "timestamp": 1.2357094349649138 + }, + { + "x": 3.1462160636182532, + "y": 4.261803107315525, + "heading": 0.4134749167724562, + "angularVelocity": -0.8662223639295713, + "velocityX": -0.287182103644815, + "velocityY": 0.9578759751975264, + "timestamp": 1.3133641701784793 + }, + { + "x": 3.1239150134014713, + "y": 4.336186712536874, + "heading": 0.3115418578649691, + "angularVelocity": -1.312644472061511, + "velocityX": -0.2871821036469928, + "velocityY": 0.9578759751968734, + "timestamp": 1.3910189053920448 + }, + { + "x": 3.1016139631847954, + "y": 4.410570317758255, + "heading": 0.19368216783727144, + "angularVelocity": -1.5177398996154035, + "velocityX": -0.2871821036456218, + "velocityY": 0.9578759751972845, + "timestamp": 1.4686736406056102 + }, + { + "x": 3.0793129129682044, + "y": 4.484953922979661, + "heading": 0.07726837869911063, + "angularVelocity": -1.4991202895483509, + "velocityX": -0.28718210364453783, + "velocityY": 0.9578759751976095, + "timestamp": 1.5463283758191757 + }, + { + "x": 3.0570118627515384, + "y": 4.559337528201045, + "heading": -0.020189040323946267, + "angularVelocity": -1.2550093533257207, + "velocityX": -0.2871821036455004, + "velocityY": 0.9578759751973209, + "timestamp": 1.6239831110327412 + }, + { + "x": 3.0347108125347813, + "y": 4.6337211334224016, + "heading": -0.07962773247584773, + "angularVelocity": -0.765422636345789, + "velocityX": -0.28718210364667085, + "velocityY": 0.95787597519697, + "timestamp": 1.7016378462463067 + }, + { + "x": 3.0124097623180286, + "y": 4.708104738643759, + "heading": -0.08012314690355973, + "angularVelocity": -0.006379706612217704, + "velocityX": -0.2871821036466172, + "velocityY": 0.9578759751969861, + "timestamp": 1.7792925814598721 + }, + { + "x": 2.9901087284088135, + "y": 4.7824883460998535, "heading": 0, - "angularVelocity": 0.6709898418837981, - "velocityX": -0.015695871357491616, - "velocityY": 0.7498356964079249, - "timestamp": 2.9183598659085557 - }, - { - "x": 2.209868267473852, - "y": 5.353103914021315, - "heading": 0.05894486498606743, - "angularVelocity": 0.6709898622817282, - "velocityX": 0.5228668025185544, - "velocityY": 0.4606614691107019, - "timestamp": 3.006207489694738 - }, - { - "x": 2.2750409407843635, - "y": 5.343436948900793, - "heading": 0.11788973650928031, - "angularVelocity": 0.6709899366963245, - "velocityX": 0.741883166574198, - "velocityY": -0.11004242008925351, - "timestamp": 3.09405511348092 - }, - { - "x": 2.3370455126819505, - "y": 5.321157795782933, - "heading": 0.18277274581221759, - "angularVelocity": 0.7385858206120648, - "velocityX": 0.70581956830732, - "velocityY": -0.2536113346911448, - "timestamp": 3.1819027372671025 - }, - { - "x": 2.3990500830758035, - "y": 5.29887863848007, - "heading": 0.25088198862713146, - "angularVelocity": 0.7753111567444241, - "velocityX": 0.7058195511897989, - "velocityY": -0.2536113823304989, - "timestamp": 3.2697503610532848 - }, - { - "x": 2.4610546534696565, - "y": 5.276599481177205, - "heading": 0.31920412332141224, - "angularVelocity": 0.777734578917858, - "velocityX": 0.7058195511897907, - "velocityY": -0.2536113823305217, - "timestamp": 3.357597984839467 - }, - { - "x": 2.523059223863509, - "y": 5.254320323874339, - "heading": 0.3847604624167481, - "angularVelocity": 0.7462505674017725, - "velocityX": 0.705819551189787, - "velocityY": -0.2536113823305318, - "timestamp": 3.4454456086256493 - }, - { - "x": 2.5850637942573638, - "y": 5.232041166571479, - "heading": 0.44412364641189084, - "angularVelocity": 0.6757517327916632, - "velocityX": 0.7058195511898119, - "velocityY": -0.2536113823304629, - "timestamp": 3.5332932324118316 - }, - { - "x": 2.647068372097847, - "y": 5.2097620299931595, - "heading": 0.49287161667839463, - "angularVelocity": 0.5549150695886161, - "velocityX": 0.7058196359573764, - "velocityY": -0.253611146415825, - "timestamp": 3.621140856198014 - }, - { - "x": 2.7114295959472656, - "y": 5.22385311126709, - "heading": 0.5358110925335864, - "angularVelocity": 0.48879496114436505, - "velocityX": 0.7326461556441327, - "velocityY": 0.16040367020316837, - "timestamp": 3.708988479984196 - }, - { - "x": 2.6700959524295658, - "y": 5.338187787057643, - "heading": 0.6150458366158223, - "angularVelocity": 0.48879487982357306, - "velocityX": -0.2549850264542473, - "velocityY": 0.7053244729951728, - "timestamp": 3.8710907182703975 - }, - { - "x": 2.5970884665403515, - "y": 5.435402988923029, - "heading": 0.6262056427407224, - "angularVelocity": 0.06884424448968357, - "velocityX": -0.45037925855357547, - "velocityY": 0.5997153579936823, - "timestamp": 4.033192956556599 - }, - { - "x": 2.5240809790830583, - "y": 5.5326181896108055, - "heading": 0.6010765347545911, - "angularVelocity": -0.15502011725318937, - "velocityX": -0.45037926822697066, - "velocityY": 0.5997153507290748, - "timestamp": 4.1952951948428 - }, - { - "x": 2.4510734916257646, - "y": 5.629833390298583, - "heading": 0.5584693285748559, - "angularVelocity": -0.262841566101695, - "velocityX": -0.45037926822697105, - "velocityY": 0.5997153507290746, - "timestamp": 4.357397433129002 - }, - { - "x": 2.3780660041684714, - "y": 5.72704859098636, - "heading": 0.5078214378008176, - "angularVelocity": -0.3124441174255496, - "velocityX": -0.4503792682269709, - "velocityY": 0.5997153507290747, - "timestamp": 4.519499671415203 - }, - { - "x": 2.3050585167111777, - "y": 5.824263791674137, - "heading": 0.4542280012347471, - "angularVelocity": -0.33061503118450475, - "velocityX": -0.4503792682269708, - "velocityY": 0.5997153507290748, - "timestamp": 4.6816019097014046 - }, - { - "x": 2.2320510292538844, - "y": 5.921478992361915, - "heading": 0.4011898006129985, - "angularVelocity": -0.3271898104707626, - "velocityX": -0.45037926822697066, - "velocityY": 0.5997153507290748, - "timestamp": 4.843704147987606 - }, - { - "x": 2.159043541796591, - "y": 6.018694193049692, - "heading": 0.35250827312943583, - "angularVelocity": -0.3003137279178866, - "velocityX": -0.45037926822697066, - "velocityY": 0.5997153507290748, - "timestamp": 5.005806386273807 - }, - { - "x": 2.0860360544903025, - "y": 6.115909393850871, - "heading": 0.3143418582597938, - "angularVelocity": -0.23544656306507575, - "velocityX": -0.4503792672954286, - "velocityY": 0.5997153514286521, - "timestamp": 5.167908624560009 - }, - { - "x": 2.0159642696380615, - "y": 6.215261459350586, - "heading": 0.29849919286961746, - "angularVelocity": -0.09773255173815161, - "velocityX": -0.4322690765597281, - "velocityY": 0.6128975549634414, - "timestamp": 5.33001086284621 - }, - { - "x": 2.1173160907005117, - "y": 6.276364453032688, - "heading": 0.2830775608299863, - "angularVelocity": -0.09773230444057415, - "velocityX": 0.6423021251075666, - "velocityY": 0.38723115461601565, - "timestamp": 5.487805484879381 - }, - { - "x": 2.220403851461462, - "y": 6.334490876159935, - "heading": 0.2880859980176151, - "angularVelocity": 0.03174022741140001, - "velocityX": 0.6533033853288084, - "velocityY": 0.3683675804554823, - "timestamp": 5.645600106912552 - }, - { - "x": 2.323491612312962, - "y": 6.392617299126589, - "heading": 0.3017888748210458, - "angularVelocity": 0.08683994819893322, - "velocityX": 0.6533033859026578, - "velocityY": 0.3683675794377548, - "timestamp": 5.803394728945722 - }, - { - "x": 2.4265793731644623, - "y": 6.450743722093243, - "heading": 0.31685554238709585, - "angularVelocity": 0.09548276976691142, - "velocityX": 0.6533033859026579, - "velocityY": 0.36836757943775467, - "timestamp": 5.961189350978893 - }, - { - "x": 2.5296671340159627, - "y": 6.508870145059897, - "heading": 0.3266504294733624, - "angularVelocity": 0.062073643322315325, - "velocityX": 0.653303385902658, - "velocityY": 0.3683675794377545, - "timestamp": 6.118983973012064 - }, - { - "x": 2.632754895173007, - "y": 6.566996567484666, - "heading": 0.32185293405159965, - "angularVelocity": -0.03040341527453512, - "velocityX": 0.6533033878389995, - "velocityY": 0.36836757600363446, - "timestamp": 6.276778595045235 - }, - { - "x": 2.7410237789154053, - "y": 6.614783763885498, - "heading": 0.28605185222622304, - "angularVelocity": -0.22688404309400856, - "velocityX": 0.6861379833315139, - "velocityY": 0.302844265445159, - "timestamp": 6.434573217078405 - }, - { - "x": 2.800500849610525, - "y": 6.636356835710851, - "heading": 0.27338665432296017, - "angularVelocity": -0.22688405443315526, - "velocityX": 1.06547083181698, - "velocityY": 0.38645949630623816, - "timestamp": 6.490395553006356 - }, - { - "x": 2.8811531653970204, - "y": 6.662597503589383, - "heading": 0.2607214603806495, - "angularVelocity": -0.22688398347675134, - "velocityX": 1.4448036694593585, - "velocityY": 0.470074701144724, - "timestamp": 6.546217888934306 - }, - { - "x": 2.982980725426041, - "y": 6.693505765493966, - "heading": 0.24805627677557154, - "angularVelocity": -0.2268837982958097, - "velocityX": 1.8241364918954581, - "velocityY": 0.5536898696693084, - "timestamp": 6.6020402248622565 - }, - { - "x": 3.105983528421396, - "y": 6.729081618397134, - "heading": 0.2353911129482857, - "angularVelocity": -0.2268834439969118, - "velocityX": 2.2034692914699114, - "velocityY": 0.637304983959939, - "timestamp": 6.657862560790207 - }, - { - "x": 3.250161572249572, - "y": 6.769325057282732, - "heading": 0.2227259843086762, - "angularVelocity": -0.22688281364571397, - "velocityX": 2.5828020528246363, - "velocityY": 0.7209200083912568, - "timestamp": 6.713684896718157 - }, - { - "x": 3.4155148526251193, - "y": 6.814236072201992, - "heading": 0.21006092052487477, - "angularVelocity": -0.22688165182030853, - "velocityX": 2.962134737409938, - "velocityY": 0.8045348546006188, - "timestamp": 6.769507232646108 - }, - { - "x": 3.6020433566023544, - "y": 6.863814633713859, - "heading": 0.19739600252286596, - "angularVelocity": -0.22687904028873818, - "velocityX": 3.341467190086564, - "velocityY": 0.8881491734036185, - "timestamp": 6.825329568574058 - }, - { - "x": 3.8013911878786284, - "y": 6.907756847833071, - "heading": 0.19739600252273984, - "angularVelocity": -2.2589957544703207e-12, - "velocityX": 3.5711123148549877, - "velocityY": 0.787179780078145, - "timestamp": 6.881151904502008 - }, - { - "x": 4.000739119305965, - "y": 6.951698607605863, - "heading": 0.19739600252269515, - "angularVelocity": -8.006365964346696e-13, - "velocityX": 3.5711141089587404, - "velocityY": 0.7871716409271757, - "timestamp": 6.936974240429959 - }, - { - "x": 4.200087070465088, - "y": 6.995640277862549, - "heading": 0.1973960025226504, - "angularVelocity": -8.014213509625486e-13, - "velocityX": 3.5711144624334947, - "velocityY": 0.7871700373377616, - "timestamp": 6.992796576357909 - }, - { - "x": 4.459103259093611, - "y": 7.04609691977527, - "heading": 0.19739600176831645, - "angularVelocity": -1.0453345456587292e-8, - "velocityX": 3.58937272435141, - "velocityY": 0.6992138028238066, - "timestamp": 7.064958541280437 - }, - { - "x": 4.718119464340755, - "y": 7.0965534763772125, - "heading": 0.1973960010139825, - "angularVelocity": -1.0453345658692563e-8, - "velocityX": 3.5893729546475206, - "velocityY": 0.6992126206112945, - "timestamp": 7.137120506202965 - }, - { - "x": 4.9771356695881135, - "y": 7.147010032978051, - "heading": 0.1973960002596485, - "angularVelocity": -1.0453345802895056e-8, - "velocityX": 3.5893729546504995, - "velocityY": 0.699212620596006, - "timestamp": 7.209282471125493 - }, - { - "x": 5.236151874835472, - "y": 7.19746658957889, - "heading": 0.19739599950531458, - "angularVelocity": -1.0453345085775928e-8, - "velocityX": 3.5893729546504995, - "velocityY": 0.699212620596006, - "timestamp": 7.281444436048021 - }, - { - "x": 5.495168080082831, - "y": 7.24792314617973, - "heading": 0.19739599875098066, - "angularVelocity": -1.0453345476402815e-8, - "velocityX": 3.5893729546504995, - "velocityY": 0.6992126205960058, - "timestamp": 7.353606400970549 - }, - { - "x": 5.754184285330189, - "y": 7.2983797027805695, - "heading": 0.19739599799664673, - "angularVelocity": -1.0453345172344232e-8, - "velocityX": 3.5893729546505, - "velocityY": 0.6992126205960059, - "timestamp": 7.425768365893077 - }, - { - "x": 6.013200490577547, - "y": 7.348836259381408, - "heading": 0.19739599724231277, - "angularVelocity": -1.0453345325416197e-8, - "velocityX": 3.5893729546504987, - "velocityY": 0.6992126205960063, - "timestamp": 7.497930330815605 - }, - { - "x": 6.272216695826248, - "y": 7.399292815975356, - "heading": 0.19739599648797881, - "angularVelocity": -1.045334541327179e-8, - "velocityX": 3.589372954669114, - "velocityY": 0.6992126205004956, - "timestamp": 7.570092295738133 - }, - { - "x": 6.531233004888007, - "y": 7.449748839647241, - "heading": 0.19739599573364475, - "angularVelocity": -1.0453347193298463e-8, - "velocityX": 3.5893743932809334, - "velocityY": 0.6992052354180823, - "timestamp": 7.642254260660661 - }, - { - "x": 6.793698462561724, - "y": 7.477082733215358, - "heading": 0.19739599379095335, - "angularVelocity": -2.692126535989639e-8, - "velocityX": 3.6371717144273656, - "velocityY": 0.3787853282191352, - "timestamp": 7.714416225583189 - }, - { - "x": 7.051830962813485, - "y": 7.468704670236675, - "heading": 0.18317443417952461, - "angularVelocity": -0.19707833103903258, - "velocityX": 3.5771268219883745, - "velocityY": -0.11610081554291109, - "timestamp": 7.786578190505717 - }, - { - "x": 7.275229498064188, - "y": 7.450120419279345, - "heading": 0.16391769381027996, - "angularVelocity": -0.26685443488018185, - "velocityX": 3.0957934071021733, - "velocityY": -0.25753526774500674, - "timestamp": 7.8587401554282454 - }, - { - "x": 7.4634296769594, - "y": 7.422953832658857, - "heading": 0.14256183783824106, - "angularVelocity": -0.29594338229240524, - "velocityX": 2.608024588815718, - "velocityY": -0.37646683609088766, - "timestamp": 7.9309021203507735 - }, - { - "x": 7.616298031789517, - "y": 7.387753589735441, - "heading": 0.12008640932104353, - "angularVelocity": -0.3114581004179519, - "velocityX": 2.1184062129437815, - "velocityY": -0.48779496180855997, - "timestamp": 8.003064085273301 - }, - { - "x": 7.733771919974401, - "y": 7.344795131945613, - "heading": 0.09698122116284558, - "angularVelocity": -0.3201851305324518, - "velocityX": 1.6279197540005708, - "velocityY": -0.5953060983850027, - "timestamp": 8.075226050195829 - }, - { - "x": 7.8158150747168245, - "y": 7.294244039758691, - "heading": 0.07354016374302286, - "angularVelocity": -0.32483951129918015, - "velocityX": 1.1369307200891816, - "velocityY": -0.7005226678790082, - "timestamp": 8.147388015118356 + "angularVelocity": 1.0317870080067317, + "velocityX": -0.2871818936460597, + "velocityY": 0.9578760039748432, + "timestamp": 1.8569473166734376 + }, + { + "x": 2.981191001018429, + "y": 4.8181593864561965, + "heading": 0.050738184558630633, + "angularVelocity": 1.3799226553830732, + "velocityX": -0.24253477272728013, + "velocityY": 0.9701426481257134, + "timestamp": 1.8937161778561287 + }, + { + "x": 2.972273289175913, + "y": 4.853830430699488, + "heading": 0.1106008636938567, + "angularVelocity": 1.628080859991564, + "velocityX": -0.24253434987302874, + "velocityY": 0.9701427538387914, + "timestamp": 1.9304850390388197 + }, + { + "x": 2.963355577333478, + "y": 4.889501474942801, + "heading": 0.1746065344176323, + "angularVelocity": 1.7407574960169372, + "velocityX": -0.24253434987083392, + "velocityY": 0.9701427538393401, + "timestamp": 1.9672539002215108 + }, + { + "x": 2.954437865490993, + "y": 4.9251725191861, + "heading": 0.23753611441876185, + "angularVelocity": 1.7114911361669713, + "velocityX": -0.24253434987220052, + "velocityY": 0.9701427538389984, + "timestamp": 2.004022761404202 + }, + { + "x": 2.9455201625823975, + "y": 4.960843563079834, + "heading": 0.29423418735375584, + "angularVelocity": 1.5420132990598214, + "velocityX": -0.2425341068978591, + "velocityY": 0.9701427443318675, + "timestamp": 2.0407916225868927 + }, + { + "x": 2.9341919742056994, + "y": 5.0238681624588315, + "heading": 0.3430288217750536, + "angularVelocity": 0.762004365842858, + "velocityX": -0.17690734037688408, + "velocityY": 0.9842274760712535, + "timestamp": 2.1048262090125567 + }, + { + "x": 2.9228637942769513, + "y": 5.086892763356283, + "heading": 0.35143884659831104, + "angularVelocity": 0.1313356623770872, + "velocityX": -0.1769072084489637, + "velocityY": 0.9842274997842765, + "timestamp": 2.1688607954382206 + }, + { + "x": 2.9115356143482174, + "y": 5.149917364253737, + "heading": 0.33056040182371793, + "angularVelocity": -0.32604949824779894, + "velocityX": -0.17690720844873878, + "velocityY": 0.9842274997843169, + "timestamp": 2.2328953818638846 + }, + { + "x": 2.9002074344194813, + "y": 5.212941965151191, + "heading": 0.29058860737305475, + "angularVelocity": -0.6242219506963693, + "velocityX": -0.1769072084487773, + "velocityY": 0.98422749978431, + "timestamp": 2.2969299682895485 + }, + { + "x": 2.888879254490749, + "y": 5.275966566048645, + "heading": 0.2408226493649336, + "angularVelocity": -0.7771730995076082, + "velocityX": -0.17690720844871077, + "velocityY": 0.9842274997843219, + "timestamp": 2.3609645547152125 + }, + { + "x": 2.8775510787963867, + "y": 5.338991165161133, + "heading": 0.18998808677928647, + "angularVelocity": -0.7938610276597882, + "velocityX": -0.1769071423224252, + "velocityY": 0.9842274719092861, + "timestamp": 2.4249991411408764 + }, + { + "x": 2.879336047375825, + "y": 5.478935829486119, + "heading": 0.15080970804902258, + "angularVelocity": -0.2799334432597178, + "velocityX": 0.012753779424941127, + "velocityY": 0.999918654624096, + "timestamp": 2.5649551902432868 + }, + { + "x": 2.8811210197460353, + "y": 5.618880493762755, + "heading": 0.15294624001981122, + "angularVelocity": 0.015265735096775236, + "velocityX": 0.01275380651038498, + "velocityY": 0.9999186542786257, + "timestamp": 2.704911239345697 + }, + { + "x": 2.8829059921162457, + "y": 5.75882515803939, + "heading": 0.17635279292699202, + "angularVelocity": 0.16724216678947132, + "velocityX": 0.012753806510388455, + "velocityY": 0.9999186542786257, + "timestamp": 2.8448672884481074 + }, + { + "x": 2.8846909644864565, + "y": 5.898769822316026, + "heading": 0.209990869687123, + "angularVelocity": 0.24034743032447933, + "velocityX": 0.012753806510387863, + "velocityY": 0.9999186542786257, + "timestamp": 2.9848233375505178 + }, + { + "x": 2.886475936856667, + "y": 6.038714486592662, + "heading": 0.24721381499294584, + "angularVelocity": 0.26596167542987414, + "velocityX": 0.012753806510387369, + "velocityY": 0.9999186542786257, + "timestamp": 3.124779386652928 + }, + { + "x": 2.888260909226877, + "y": 6.178659150869297, + "heading": 0.28292073715992244, + "angularVelocity": 0.25512953813699535, + "velocityX": 0.012753806510387482, + "velocityY": 0.9999186542786257, + "timestamp": 3.2647354357553384 + }, + { + "x": 2.890045881597088, + "y": 6.318603815145933, + "heading": 0.311356671114116, + "angularVelocity": 0.203177598514417, + "velocityX": 0.01275380651038814, + "velocityY": 0.9999186542786257, + "timestamp": 3.4046914848577488 + }, + { + "x": 2.8918308539673, + "y": 6.458548479422569, + "heading": 0.32363800040319796, + "angularVelocity": 0.08775132884821014, + "velocityX": 0.012753806510403596, + "velocityY": 0.9999186542786255, + "timestamp": 3.544647533960159 + }, + { + "x": 2.893615842051929, + "y": 6.598493143498768, + "heading": 0.3039916671103851, + "angularVelocity": -0.14037502072123356, + "velocityX": 0.012753918791481205, + "velocityY": 0.9999186528464911, + "timestamp": 3.6846035830625694 + }, + { + "x": 2.9705522060394287, + "y": 6.715405464172363, + "heading": 0.2551827989840428, + "angularVelocity": -0.348744255352816, + "velocityX": 0.5497180327747238, + "velocityY": 0.8353502504778957, + "timestamp": 3.8245596321649797 + }, + { + "x": 3.067512358448162, + "y": 6.793764446329018, + "heading": 0.22544622618853677, + "angularVelocity": -0.34874429599630347, + "velocityX": 1.1371283545018185, + "velocityY": 0.9189777266914475, + "timestamp": 3.90982718531751 + }, + { + "x": 3.2146009111068476, + "y": 6.878954519586076, + "heading": 0.19634651748332468, + "angularVelocity": -0.34127528736702184, + "velocityX": 1.7250237308389438, + "velocityY": 0.999091332017781, + "timestamp": 3.9950947384700406 + }, + { + "x": 3.4118873367487743, + "y": 6.970423443263398, + "heading": 0.16905588214468348, + "angularVelocity": -0.32005885392094063, + "velocityX": 2.313733868837685, + "velocityY": 1.0727283743406777, + "timestamp": 4.080362291622571 + }, + { + "x": 3.6595052637221444, + "y": 7.066815632279669, + "heading": 0.1464467829149484, + "angularVelocity": -0.2651547792076474, + "velocityX": 2.904011172109284, + "velocityY": 1.1304673988221574, + "timestamp": 4.165629844775101 + }, + { + "x": 3.9571287842762186, + "y": 7.15979793947491, + "heading": 0.14644676578757745, + "angularVelocity": -2.0086621808526402e-7, + "velocityX": 3.490466297557207, + "velocityY": 1.090477019188179, + "timestamp": 4.2508973979276305 + }, + { + "x": 4.264875107150024, + "y": 7.209974468067706, + "heading": 0.14644676444758695, + "angularVelocity": -1.5715127861540166e-8, + "velocityX": 3.6091844024572333, + "velocityY": 0.5884598154592168, + "timestamp": 4.3361649510801605 + }, + { + "x": 4.572621681248356, + "y": 7.260149455807815, + "heading": 0.14644676310759733, + "angularVelocity": -1.57151175667415e-8, + "velocityX": 3.609187348765855, + "velocityY": 0.5884417446616913, + "timestamp": 4.4214325042326905 + }, + { + "x": 4.88036825534869, + "y": 7.310324443535645, + "heading": 0.14644676176760774, + "angularVelocity": -1.571511728249981e-8, + "velocityX": 3.6091873487893316, + "velocityY": 0.5884417445176963, + "timestamp": 4.5067000573852205 + }, + { + "x": 5.188114829449024, + "y": 7.3604994312634755, + "heading": 0.14644676042761817, + "angularVelocity": -1.571511667882576e-8, + "velocityX": 3.609187348789331, + "velocityY": 0.5884417445176952, + "timestamp": 4.5919676105377505 + }, + { + "x": 5.495861403549358, + "y": 7.410674418991307, + "heading": 0.14644675908762866, + "angularVelocity": -1.5715116325516118e-8, + "velocityX": 3.6091873487893316, + "velocityY": 0.5884417445176952, + "timestamp": 4.6772351636902805 + }, + { + "x": 5.803607977649693, + "y": 7.460849406719137, + "heading": 0.14644675774763907, + "angularVelocity": -1.571511716726206e-8, + "velocityX": 3.6091873487893316, + "velocityY": 0.5884417445176947, + "timestamp": 4.7625027168428105 + }, + { + "x": 6.111354551750398, + "y": 7.511024394444695, + "heading": 0.14644675640764948, + "angularVelocity": -1.571511704808039e-8, + "velocityX": 3.6091873487936774, + "velocityY": 0.588441744491041, + "timestamp": 4.84777026999534 + }, + { + "x": 6.419101172352554, + "y": 7.561199096954343, + "heading": 0.14644675506765978, + "angularVelocity": -1.571511840266027e-8, + "velocityX": 3.6091878941529654, + "velocityY": 0.5884383995386058, + "timestamp": 4.93303782314787 + }, + { + "x": 6.729953533870276, + "y": 7.585618195359195, + "heading": 0.14644675369982535, + "angularVelocity": -1.6041675590865194e-8, + "velocityX": 3.6456113729645336, + "velocityY": 0.28638207034239754, + "timestamp": 5.0183053763004 + }, + { + "x": 7.0406630536048125, + "y": 7.559445844562609, + "heading": 0.14644659261395782, + "angularVelocity": -0.0000018891813071650758, + "velocityX": 3.6439361544563957, + "velocityY": -0.306943847089974, + "timestamp": 5.10357292945293 + }, + { + "x": 7.303768657890303, + "y": 7.516650807168708, + "heading": 0.13291855766036426, + "angularVelocity": -0.15865395984089825, + "velocityX": 3.085647406990028, + "velocityY": -0.5018912330854348, + "timestamp": 5.18884048260546 + }, + { + "x": 7.517742289575736, + "y": 7.46187898590858, + "heading": 0.11459098071417309, + "angularVelocity": -0.21494198283613922, + "velocityX": 2.5094379253813877, + "velocityY": -0.6423524451575228, + "timestamp": 5.27410803575799 + }, + { + "x": 7.682254663626309, + "y": 7.3964939427656935, + "heading": 0.09395275194683736, + "angularVelocity": -0.24204082331783083, + "velocityX": 1.9293666578691, + "velocityY": -0.766822087950889, + "timestamp": 5.35937558891052 + }, + { + "x": 7.79716709924449, + "y": 7.321144775788464, + "heading": 0.07218032971430863, + "angularVelocity": -0.25534240666647107, + "velocityX": 1.3476689710166752, + "velocityY": -0.88367924481708, + "timestamp": 5.44464314206305 }, { "x": 7.862403869628906, "y": 7.236210823059082, "heading": 0.04995916288883634, - "angularVelocity": -0.32677880763782685, - "velocityX": 0.6456142784096088, - "velocityY": -0.8042078228040274, - "timestamp": 8.219549980040883 - }, - { - "x": 7.8378517595461314, - "y": 7.114772097873316, - "heading": 0.009478899354782069, - "angularVelocity": -0.3267787525283834, - "velocityX": -0.19819801563372777, - "velocityY": -0.9803195844184036, - "timestamp": 8.34342664956376 - }, - { - "x": 7.70703891777762, - "y": 6.9828053911026595, - "heading": -0.03100135202951312, - "angularVelocity": -0.3267786544489053, - "velocityX": -1.0559925631868463, - "velocityY": -1.0653071904413913, - "timestamp": 8.467303319086637 - }, - { - "x": 7.528805530831406, - "y": 6.9302689798665895, - "heading": -0.06541043426834639, - "angularVelocity": -0.2777688677764314, - "velocityX": -1.4387970522026423, - "velocityY": -0.4241025484336714, - "timestamp": 8.591179988609515 - }, - { - "x": 7.350572094071441, - "y": 6.877732737627399, - "heading": -0.07525729950245956, - "angularVelocity": -0.07948926356891234, - "velocityX": -1.438797454326393, - "velocityY": -0.42410118419871773, - "timestamp": 8.715056658132392 - }, - { - "x": 7.172338657311454, - "y": 6.825196495388285, - "heading": -0.0721785884807279, - "angularVelocity": 0.02485303353261721, - "velocityX": -1.438797454326575, - "velocityY": -0.42410118419810144, - "timestamp": 8.838933327655269 - }, - { - "x": 6.994105220551467, - "y": 6.772660253149171, - "heading": -0.06247011615897091, - "angularVelocity": 0.07837208054391527, - "velocityX": -1.4387974543265751, - "velocityY": -0.4241011841981013, - "timestamp": 8.962809997178146 - }, - { - "x": 6.815871783791479, - "y": 6.720124010910057, - "heading": -0.049669774893029525, - "angularVelocity": 0.10333133199962498, - "velocityX": -1.4387974543265751, - "velocityY": -0.42410118419810094, - "timestamp": 9.086686666701024 - }, - { - "x": 6.6376383470314915, - "y": 6.667587768670942, - "heading": -0.036026228546661335, - "angularVelocity": 0.11013814302958105, - "velocityX": -1.4387974543265751, - "velocityY": -0.42410118419810083, - "timestamp": 9.2105633362239 - }, - { - "x": 6.459404910271514, - "y": 6.615051526431794, - "heading": -0.02343627838368421, - "angularVelocity": 0.10163294033641859, - "velocityX": -1.4387974543264972, - "velocityY": -0.42410118419836523, - "timestamp": 9.334440005746778 - }, - { - "x": 6.28117149497183, - "y": 6.562515211386927, - "heading": -0.014236368992557178, - "angularVelocity": 0.07426668336016842, - "velocityX": -1.4387972810873075, - "velocityY": -0.4241017719258342, - "timestamp": 9.458316675269655 - }, - { - "x": 6.139736722181587, - "y": 6.442002061085457, - "heading": -0.007118182707353252, - "angularVelocity": 0.0574618797270084, - "velocityX": -1.1417385802755518, - "velocityY": -0.9728478394321849, - "timestamp": 9.582193344792532 - }, - { - "x": 6.087989807128906, - "y": 6.263538360595703, + "angularVelocity": -0.26060518924146586, + "velocityX": 0.765083176102371, + "velocityY": -0.9960876041258929, + "timestamp": 5.52991069521558 + }, + { + "x": 7.849595091966555, + "y": 7.089448693119536, + "heading": 0.016951434853172975, + "angularVelocity": -0.2606051434315723, + "velocityX": -0.10112884280544625, + "velocityY": -1.1587276131788378, + "timestamp": 5.656568702041625 + }, + { + "x": 7.725201262748097, + "y": 6.945847730654978, + "heading": -0.0160562821430182, + "angularVelocity": -0.2606050562718856, + "velocityX": -0.9821236914719388, + "velocityY": -1.133769321522416, + "timestamp": 5.783226708867669 + }, + { + "x": 7.545167611462926, + "y": 6.885160438976653, + "heading": -0.04514530953155864, + "angularVelocity": -0.2296659178323204, + "velocityX": -1.421415477763183, + "velocityY": -0.4791429551048147, + "timestamp": 5.909884715693714 + }, + { + "x": 7.365133889793344, + "y": 6.8244733560996425, + "heading": -0.05406183700742751, + "angularVelocity": -0.0703984509096719, + "velocityX": -1.4214160334675636, + "velocityY": -0.4791413065606847, + "timestamp": 6.0365427225197585 + }, + { + "x": 7.185100168123733, + "y": 6.76378627322272, + "heading": -0.05250329807242255, + "angularVelocity": 0.01230509601454327, + "velocityX": -1.421416033467796, + "velocityY": -0.4791413065599946, + "timestamp": 6.163200729345803 + }, + { + "x": 7.005066446454122, + "y": 6.703099190345796, + "heading": -0.04562573507290899, + "angularVelocity": 0.05430026235100232, + "velocityX": -1.421416033467796, + "velocityY": -0.47914130655999465, + "timestamp": 6.289858736171848 + }, + { + "x": 6.825032724784511, + "y": 6.642412107468873, + "heading": -0.036269834978042204, + "angularVelocity": 0.07386741927582839, + "velocityX": -1.421416033467796, + "velocityY": -0.47914130655999443, + "timestamp": 6.416516742997892 + }, + { + "x": 6.6449990031149, + "y": 6.58172502459195, + "heading": -0.026195987787784713, + "angularVelocity": 0.07953581019228782, + "velocityX": -1.421416033467796, + "velocityY": -0.4791413065599945, + "timestamp": 6.543174749823937 + }, + { + "x": 6.464965281445298, + "y": 6.5210379417150035, + "heading": -0.01685149454173795, + "angularVelocity": 0.07377735904902329, + "velocityX": -1.4214160334677322, + "velocityY": -0.47914130656018417, + "timestamp": 6.669832756649981 + }, + { + "x": 6.284931579179647, + "y": 6.460350801274506, + "heading": -0.010001719998819724, + "angularVelocity": 0.054080864799318604, + "velocityX": -1.4214158802681582, + "velocityY": -0.4791417610403343, + "timestamp": 6.796490763476026 + }, + { + "x": 6.142981170634808, + "y": 6.3340767179594515, + "heading": -0.005000858650557523, + "angularVelocity": 0.03948318368160243, + "velocityX": -1.1207377417501938, + "velocityY": -0.9969688176802427, + "timestamp": 6.92314877030207 + }, + { + "x": 6.09645414352417, + "y": 6.149875164031982, "heading": 0, - "angularVelocity": 0.057461850844647444, - "velocityX": -0.417729304894023, - "velocityY": -1.4406562686623459, - "timestamp": 9.70607001431541 - }, - { - "x": 6.153555752214139, - "y": 6.077260157496782, - "heading": 0.007565055286994518, - "angularVelocity": 0.057461837002711756, - "velocityX": 0.49801878590693427, - "velocityY": -1.414912031362335, - "timestamp": 9.837723572254042 - }, - { - "x": 6.315226867500775, - "y": 5.963854106125609, - "heading": 0.015130106230465472, - "angularVelocity": 0.0574618040106405, - "velocityX": 1.2280041482952193, - "velocityY": -0.8613975432724621, - "timestamp": 9.969377130192674 - }, - { - "x": 6.506296002722076, - "y": 5.913943507110884, - "heading": 0.01887830003643591, - "angularVelocity": 0.02847012921697517, - "velocityX": 1.4513024806391686, - "velocityY": -0.37910558435464936, - "timestamp": 10.101030688131306 - }, - { - "x": 6.697365148183743, - "y": 5.86403294729863, - "heading": 0.018514809148401378, - "angularVelocity": -0.002760965169872213, - "velocityX": 1.4513025584218535, - "velocityY": -0.37910528658470105, - "timestamp": 10.232684246069939 - }, - { - "x": 6.888434293645415, - "y": 5.814122387486392, - "heading": 0.016088035415052847, - "angularVelocity": -0.01843302810364271, - "velocityX": 1.4513025584218828, - "velocityY": -0.37910528658458925, - "timestamp": 10.36433780400857 - }, - { - "x": 7.079503439107087, - "y": 5.764211827674154, - "heading": 0.012674761155772915, - "angularVelocity": -0.025926183180076275, - "velocityX": 1.4513025584218828, - "velocityY": -0.37910528658458925, - "timestamp": 10.495991361947203 - }, - { - "x": 7.270572584568757, - "y": 5.714301267861916, - "heading": 0.008887133945353622, - "angularVelocity": -0.028769653246691455, - "velocityX": 1.4513025584218828, - "velocityY": -0.37910528658458925, - "timestamp": 10.627644919885835 - }, - { - "x": 7.461641730030428, - "y": 5.664390708049678, - "heading": 0.005160973231966985, - "angularVelocity": -0.028302772609343885, - "velocityX": 1.4513025584218828, - "velocityY": -0.37910528658458914, - "timestamp": 10.759298477824467 - }, - { - "x": 7.652710875492102, - "y": 5.614480148237445, - "heading": 0.0019610508389477175, - "angularVelocity": -0.024305627916505923, - "velocityX": 1.4513025584218955, - "velocityY": -0.3791052865845407, - "timestamp": 10.8909520357631 - }, - { - "x": 7.843780025404326, - "y": 5.564569605462952, - "heading": 5.174767429761798e-9, - "angularVelocity": -0.014895500698250644, - "velocityX": 1.4513025922269138, - "velocityY": -0.37910515717110005, - "timestamp": 11.022605593701732 - }, - { - "x": 8.041043410048252, - "y": 5.555315914268114, - "heading": 2.268046859554282e-9, - "angularVelocity": -2.2078556860608046e-8, - "velocityX": 1.498352097220812, - "velocityY": -0.07028819683731155, - "timestamp": 11.154259151640364 + "angularVelocity": 0.039483162382477774, + "velocityX": -0.3673437493334494, + "velocityY": -1.4543222220484673, + "timestamp": 7.049806777128115 + }, + { + "x": 6.165600746854775, + "y": 5.968104158414488, + "heading": 0.00511908966767943, + "angularVelocity": 0.03948315266730385, + "velocityX": 0.5333225383693347, + "velocityY": -1.4019860622035414, + "timestamp": 7.179459282611575 + }, + { + "x": 6.326507175654422, + "y": 5.858874551218305, + "heading": 0.010238176429586542, + "angularVelocity": 0.03948313025530103, + "velocityX": 1.2410591542336487, + "velocityY": -0.8424797252392536, + "timestamp": 7.309111788095034 + }, + { + "x": 6.5166850085952825, + "y": 5.8182005038026094, + "heading": 0.013042835442353568, + "angularVelocity": 0.021632123515804805, + "velocityX": 1.466827287537449, + "velocityY": -0.31371586121378253, + "timestamp": 7.438764293578494 + }, + { + "x": 6.706862852151511, + "y": 5.777526506020753, + "heading": 0.012869451393311492, + "angularVelocity": -0.0013372980985972803, + "velocityX": 1.46682736941299, + "velocityY": -0.31371547839172276, + "timestamp": 7.5684167990619535 + }, + { + "x": 6.897040695707745, + "y": 5.736852508238917, + "heading": 0.011189038201757389, + "angularVelocity": -0.012960900256479425, + "velocityX": 1.4668273694130223, + "velocityY": -0.31371547839157227, + "timestamp": 7.698069304545413 + }, + { + "x": 7.087218539263978, + "y": 5.69617851045708, + "heading": 0.00878429042310287, + "angularVelocity": -0.018547638317558075, + "velocityX": 1.4668273694130223, + "velocityY": -0.3137154783915722, + "timestamp": 7.827721810028873 + }, + { + "x": 7.277396382820212, + "y": 5.655504512675243, + "heading": 0.006107038226975533, + "angularVelocity": -0.020649444344774476, + "velocityX": 1.4668273694130223, + "velocityY": -0.3137154783915722, + "timestamp": 7.957374315512332 + }, + { + "x": 7.467574226376446, + "y": 5.614830514893406, + "heading": 0.0034846320252397466, + "angularVelocity": -0.020226421324935615, + "velocityX": 1.4668273694130223, + "velocityY": -0.31371547839157227, + "timestamp": 8.087026820995792 + }, + { + "x": 7.657752069932681, + "y": 5.574156517111579, + "heading": 0.001269475989498469, + "angularVelocity": -0.017085331498009396, + "velocityX": 1.466827369413038, + "velocityY": -0.3137154783914988, + "timestamp": 8.216679326479252 + }, + { + "x": 7.847929918666442, + "y": 5.533482543538116, + "heading": 4.380350364958381e-9, + "angularVelocity": -0.009791338812742587, + "velocityX": 1.4668274093469016, + "velocityY": -0.31371529167421114, + "timestamp": 8.346331831962711 + }, + { + "x": 8.042166177633085, + "y": 5.5431907443044945, + "heading": 1.962321228485874e-9, + "angularVelocity": -1.865007678883919e-8, + "velocityX": 1.4981296215002158, + "velocityY": 0.07487862061103963, + "timestamp": 8.475984337446171 }, { "x": 8.122806549072266, "y": 5.580793380737305, "heading": 0, - "angularVelocity": -1.7227387470763906e-8, - "velocityX": 0.621047697488794, - "velocityY": 0.1935190120815911, - "timestamp": 11.285912709578996 - }, - { - "x": 8.117678592973517, - "y": 5.619031219858162, - "heading": -1.47747130255551e-9, - "angularVelocity": -1.4731272328598604e-8, - "velocityX": -0.05112878853049009, - "velocityY": 0.38125412008701415, - "timestamp": 11.386207597178199 - }, - { - "x": 8.045125773113615, - "y": 5.676065676656886, - "heading": -2.6998564870988965e-9, - "angularVelocity": -1.2187911205299848e-8, - "velocityX": -0.723394996461224, - "velocityY": 0.5686676376431915, - "timestamp": 11.486502484777402 - }, - { - "x": 7.905134445571193, - "y": 5.751847733088559, - "heading": -3.6599554809158465e-9, - "angularVelocity": -9.572761051949345e-9, - "velocityX": -1.3957972424462293, - "velocityY": 0.7555924159815185, - "timestamp": 11.586797372376605 - }, - { - "x": 7.697681473194979, - "y": 5.846293948010258, - "heading": -4.345515558711853e-9, - "angularVelocity": -6.835443901206628e-9, - "velocityX": -2.0684301796641407, - "velocityY": 0.9416852362318456, - "timestamp": 11.687092259975808 - }, - { - "x": 7.422719035099178, - "y": 5.9592305762947655, - "heading": -4.731038317159682e-9, - "angularVelocity": -3.843892423100064e-9, - "velocityX": -2.7415399197076047, - "velocityY": 1.1260457136741204, - "timestamp": 11.78738714757501 - }, - { - "x": 7.080090049424568, - "y": 6.090074141083109, - "heading": -4.731039869745265e-9, - "angularVelocity": -1.5482741107332042e-14, - "velocityX": -3.4162158598135037, - "velocityY": 1.3045885779464874, - "timestamp": 11.887682035174214 - }, - { - "x": 6.729993135378128, - "y": 6.199376306933031, - "heading": -4.731039726709697e-9, - "angularVelocity": 1.426147229313427e-15, - "velocityX": -3.490675571076891, - "velocityY": 1.0898079499995292, - "timestamp": 11.987976922773417 - }, - { - "x": 6.447212311876489, - "y": 6.32785835665444, - "heading": -3.4250221664508424e-9, - "angularVelocity": 1.3021775999310148e-8, - "velocityX": -2.8194938971533876, - "velocityY": 1.2810428606774253, - "timestamp": 12.08827181037262 - }, - { - "x": 6.23226767916893, - "y": 6.439087221380157, - "heading": -2.273069596117642e-9, - "angularVelocity": 1.1485655928182808e-8, - "velocityX": -2.143126512754217, - "velocityY": 1.109018289847465, - "timestamp": 12.188566697971822 - }, - { - "x": 6.084937655261683, - "y": 6.532213923481241, - "heading": -1.3110635384423321e-9, - "angularVelocity": 9.591775619875256e-9, - "velocityX": -1.4689684333263586, - "velocityY": 0.9285289044166743, - "timestamp": 12.288861585571025 - }, - { - "x": 6.005143804846008, - "y": 6.606947971553796, - "heading": -5.513023111068016e-10, - "angularVelocity": 7.575273730437578e-9, - "velocityX": -0.7955924008265023, - "velocityY": 0.7451431459916747, - "timestamp": 12.389156473170228 - }, - { - "x": 5.9928460121154785, - "y": 6.663142681121826, + "angularVelocity": -1.5135236051494907e-8, + "velocityX": 0.621973105248157, + "velocityY": 0.2900262998767247, + "timestamp": 8.60563684292963 + }, + { + "x": 8.11718410945889, + "y": 5.625307353924722, + "heading": -1.3275801458767835e-9, + "angularVelocity": -1.3277978561229321e-8, + "velocityX": -0.05623360725094295, + "velocityY": 0.4452126578849198, + "timestamp": 8.705620462913968 + }, + { + "x": 8.043750642119495, + "y": 5.685331009202492, + "heading": -2.46038264579736e-9, + "angularVelocity": -1.132988316080594e-8, + "velocityX": -0.7344549773005545, + "velocityY": 0.6003348878380743, + "timestamp": 8.805604082898306 + }, + { + "x": 7.902503945412699, + "y": 5.760854708948911, + "heading": -3.384756088443973e-9, + "angularVelocity": -9.245251518787126e-9, + "velocityX": -1.4126983673696807, + "velocityY": 0.7553607257902549, + "timestamp": 8.905587702882643 + }, + { + "x": 7.693440340935021, + "y": 5.8518623369658735, + "heading": -4.077873413911931e-9, + "angularVelocity": -6.932312274821422e-9, + "velocityX": -2.090978547497895, + "velocityY": 0.910225375367175, + "timestamp": 9.005571322866981 + }, + { + "x": 7.416552437959587, + "y": 5.958321458738986, + "heading": -4.493798325640354e-9, + "angularVelocity": -4.159935597905052e-9, + "velocityX": -2.769332646998966, + "velocityY": 1.0647656266808398, + "timestamp": 9.105554942851319 + }, + { + "x": 7.071817789543997, + "y": 6.0801331226760436, + "heading": -4.492422504241304e-9, + "angularVelocity": 1.3751436668540922e-11, + "velocityX": -3.447911252686312, + "velocityY": 1.2183162000152656, + "timestamp": 9.205538562835656 + }, + { + "x": 6.719237507782601, + "y": 6.176923161975723, + "heading": -4.492422414840064e-9, + "angularVelocity": 8.941669409693866e-16, + "velocityX": -3.5263804392355262, + "velocityY": 0.9680589613760336, + "timestamp": 9.305522182819994 + }, + { + "x": 6.434609797569398, + "y": 6.288588608635183, + "heading": -3.44266509070979e-9, + "angularVelocity": 1.0499298806305677e-8, + "velocityX": -2.846743398964724, + "velocityY": 1.1168374043775104, + "timestamp": 9.405505802804331 + }, + { + "x": 6.218300222393017, + "y": 6.387157705629217, + "heading": -2.434030100368673e-9, + "angularVelocity": 1.0088007894569008e-8, + "velocityX": -2.163450125018647, + "velocityY": 0.9858524524149839, + "timestamp": 9.505489422788669 + }, + { + "x": 6.070072189647912, + "y": 6.471451374683713, + "heading": -1.514234809843918e-9, + "angularVelocity": 9.199464869761595e-9, + "velocityX": -1.482523164732402, + "velocityY": 0.8430747860496444, + "timestamp": 9.605473042773006 + }, + { + "x": 5.9898377265253275, + "y": 6.541056287298709, + "heading": -7.000413265076412e-10, + "angularVelocity": 8.143273212076663e-9, + "velocityX": -0.8024760766578407, + "velocityY": 0.6961631575356222, + "timestamp": 9.705456662757344 + }, + { + "x": 5.977550983428955, + "y": 6.595761775970459, "heading": 0, - "angularVelocity": 5.496813688942587e-9, - "velocityX": -0.12261634690365263, - "velocityY": 0.5602948556320356, - "timestamp": 12.489451360769431 - }, - { - "x": 6.0175342866070505, - "y": 6.69343735118333, - "heading": 2.8265499571407175e-10, - "angularVelocity": 4.009669419943422e-9, - "velocityX": 0.350221367658852, - "velocityY": 0.42975222044564215, - "timestamp": 12.559944702328215 - }, - { - "x": 6.075541274690218, - "y": 6.714481970201596, - "heading": 4.623862060231973e-10, - "angularVelocity": 2.5496196754438192e-9, - "velocityX": 0.8228718741441071, - "velocityY": 0.2985334295825773, - "timestamp": 12.630438043886999 - }, - { - "x": 6.166848632254817, - "y": 6.726210719278961, - "heading": 5.418326761949811e-10, - "angularVelocity": 1.1270067322651695e-9, - "velocityX": 1.2952621559079895, - "velocityY": 0.16638094915099508, - "timestamp": 12.700931385445783 - }, - { - "x": 6.291429130284676, - "y": 6.728526814788698, - "heading": 5.248783587563937e-10, - "angularVelocity": -2.405094829987332e-10, - "velocityX": 1.767266174011102, - "velocityY": 0.032855521649718056, - "timestamp": 12.771424727004566 - }, - { - "x": 6.449238148954781, - "y": 6.72127394217691, - "heading": 4.178046938201078e-10, - "angularVelocity": -1.5189188427327328e-9, - "velocityX": 2.238637227013856, - "velocityY": -0.10288734299445856, - "timestamp": 12.84191806856335 - }, - { - "x": 6.640189269550915, - "y": 6.704156970126066, - "heading": 2.3250009704396348e-10, - "angularVelocity": -2.6286822682366698e-9, - "velocityX": 2.7087823668692628, - "velocityY": -0.24281686287447826, - "timestamp": 12.912411410122134 - }, - { - "x": 6.864044762980422, - "y": 6.676409819549143, - "heading": 6.234502901880742e-16, - "angularVelocity": -3.2981763892620756e-9, - "velocityX": 3.175555144351153, - "velocityY": -0.39361377916507545, - "timestamp": 12.982904751680918 - }, - { - "x": 7.117870699931695, - "y": 6.631415563144351, - "heading": 3.033132637109429e-16, - "angularVelocity": -4.541676953010036e-15, - "velocityX": 3.6007079723921436, - "velocityY": -0.6382766855684587, - "timestamp": 13.053398093239702 - }, - { - "x": 7.366960230922783, - "y": 6.565034082342846, - "heading": 1.8655329356741128e-16, - "angularVelocity": -1.656333722465733e-15, - "velocityX": 3.533518563357818, - "velocityY": -0.9416702249270805, - "timestamp": 13.123891434798486 - }, - { - "x": 7.616049619246604, - "y": 6.498652066199708, - "heading": 1.0844082439177768e-16, - "angularVelocity": -1.1080906812050049e-15, - "velocityX": 3.533516539517479, - "velocityY": -0.9416778191426649, - "timestamp": 13.19438477635727 + "angularVelocity": 7.001564000000435e-9, + "velocityX": -0.12288755966089779, + "velocityY": 0.5471445088509955, + "timestamp": 9.805440282741682 + }, + { + "x": 6.0304601481193325, + "y": 6.634882466873651, + "heading": 5.703476949438232e-10, + "angularVelocity": 5.834627878284655e-9, + "velocityX": 0.5412584535856627, + "velocityY": 0.40020296696956553, + "timestamp": 9.903192408927895 + }, + { + "x": 6.148290994089988, + "y": 6.659639301678495, + "heading": 1.0266247362892406e-9, + "angularVelocity": 4.667690900343943e-9, + "velocityX": 1.205404429904499, + "velocityY": 0.25326134366988606, + "timestamp": 10.000944535114108 + }, + { + "x": 6.33104351533712, + "y": 6.670032267176693, + "heading": 1.3688309489429736e-9, + "angularVelocity": 3.5007521312183917e-9, + "velocityX": 1.869550344804717, + "velocityY": 0.10631958524989513, + "timestamp": 10.098696661300322 + }, + { + "x": 6.578717699898933, + "y": 6.66606133715871, + "heading": 1.5969659946550133e-9, + "angularVelocity": 2.333809901831043e-9, + "velocityX": 2.5336961373362707, + "velocityY": -0.040622441292512496, + "timestamp": 10.196448787486535 + }, + { + "x": 6.891313512118934, + "y": 6.647726434030782, + "heading": 1.7110289169133522e-9, + "angularVelocity": 1.1668578874288627e-9, + "velocityX": 3.1978415651034835, + "velocityY": -0.18756526161575324, + "timestamp": 10.294200913672748 + }, + { + "x": 7.215922010510692, + "y": 6.575907742022885, + "heading": 1.1406885772349463e-9, + "angularVelocity": -5.834552635062462e-9, + "velocityX": 3.3207308226516776, + "velocityY": -0.7347020963342302, + "timestamp": 10.391953039858961 + }, + { + "x": 7.475608809304632, + "y": 6.518452697971138, + "heading": 6.844139951960176e-10, + "angularVelocity": -4.667665741975464e-9, + "velocityX": 2.656584658945199, + "velocityY": -0.5877626023202006, + "timestamp": 10.489705166045175 + }, + { + "x": 7.670373908426623, + "y": 6.475361385107564, + "heading": 3.4220728009986415e-10, + "angularVelocity": -3.500757271088463e-9, + "velocityX": 1.9924384944803746, + "velocityY": -0.4408222568461895, + "timestamp": 10.587457292231388 + }, + { + "x": 7.80021730785198, + "y": 6.446633831176134, + "heading": 1.1406915587464051e-10, + "angularVelocity": -2.3338413945406575e-9, + "velocityX": 1.3282923297629874, + "velocityY": -0.293881627552551, + "timestamp": 10.685209418417601 }, { "x": 7.865139007568359, "y": 6.432270050048828, "heading": 0, - "angularVelocity": -1.5383208439266009e-15, - "velocityX": 3.53351653948819, - "velocityY": -0.9416778192524613, - "timestamp": 13.264878117916053 + "angularVelocity": -1.1669216564398507e-9, + "velocityX": 0.6641461649193595, + "velocityY": -0.1469408563491806, + "timestamp": 10.782961544603815 + }, + { + "x": 7.865139007568359, + "y": 6.432270050048828, + "heading": 0, + "angularVelocity": 0, + "velocityX": -1.888057920334398e-31, + "velocityY": -2.3966916927967252e-29, + "timestamp": 10.880713670790028 } ] } \ No newline at end of file diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 45abac3b..25901601 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -22,10 +22,9 @@ import edu.wpi.first.wpilibj2.command.Commands; import edu.wpi.first.wpilibj2.command.button.CommandXboxController; import frc.robot.commands.DriveCommands; -import frc.robot.commands.DriveTrajectory; import frc.robot.commands.FeedForwardCharacterization; +import frc.robot.commands.TestAutos; import frc.robot.subsystems.drive.*; -import frc.robot.subsystems.kitbotshooter.*; import frc.robot.subsystems.shooter.Shooter; import frc.robot.subsystems.shooter.ShooterIO; import frc.robot.subsystems.shooter.ShooterIOSim; @@ -123,21 +122,23 @@ public RobotContainer() { .beforeStarting(() -> shooter.setCharacterizing(true)) .finallyDo(() -> shooter.setCharacterizing(false))); + autoChooser.addOption("Three Spike Smooth", TestAutos.threeSpikeSmooth(drive)); + // Testing autos paths Function> trajectoryCommandFactory = trajectoryFile -> { Optional trajectory = ChoreoTrajectoryReader.generate(trajectoryFile); return trajectory.map( traj -> - Commands.sequence( - Commands.runOnce( - () -> - robotState.resetPose( - AllianceFlipUtil.apply(traj.startPose()), - drive.getWheelPositions(), - drive.getGyroYaw()), - drive), - new DriveTrajectory(drive, traj))); + Commands.runOnce( + () -> { + robotState.resetPose( + AllianceFlipUtil.apply(traj.getStartPose()), + drive.getWheelPositions(), + drive.getGyroYaw()); + drive.getMotionPlanner().setTrajectory(traj); + }, + drive)); }; final File rootTrajectoryDir = new File(Filesystem.getDeployDirectory(), "choreo"); for (File trajectoryFile : Objects.requireNonNull(rootTrajectoryDir.listFiles())) { @@ -166,7 +167,7 @@ private void configureButtonBindings() { () -> -controller.getLeftY(), () -> -controller.getLeftX(), () -> -controller.getRightX())); - controller.x().onTrue(Commands.runOnce(drive::stopWithX, drive)); + controller.x().onTrue(Commands.runOnce(drive.getMotionPlanner()::requestEnableXMode, drive)); controller .b() .onTrue( diff --git a/src/main/java/frc/robot/commands/DriveCommands.java b/src/main/java/frc/robot/commands/DriveCommands.java index 3cfed30b..4893d918 100644 --- a/src/main/java/frc/robot/commands/DriveCommands.java +++ b/src/main/java/frc/robot/commands/DriveCommands.java @@ -60,12 +60,14 @@ public static Command joystickDrive( .getTranslation(); // Convert to field relative speeds & send command - drive.runVelocity( - ChassisSpeeds.fromFieldRelativeSpeeds( - linearVelocity.getX() * DriveConstants.drivetrainConfig.maxLinearVelocity(), - linearVelocity.getY() * DriveConstants.drivetrainConfig.maxLinearVelocity(), - omega * DriveConstants.drivetrainConfig.maxAngularVelocity(), - RobotState.getInstance().getEstimatedPose().getRotation())); + drive + .getMotionPlanner() + .acceptDriveInput( + ChassisSpeeds.fromFieldRelativeSpeeds( + linearVelocity.getX() * DriveConstants.drivetrainConfig.maxLinearVelocity(), + linearVelocity.getY() * DriveConstants.drivetrainConfig.maxLinearVelocity(), + omega * DriveConstants.drivetrainConfig.maxAngularVelocity(), + RobotState.getInstance().getEstimatedPose().getRotation())); }, drive); } diff --git a/src/main/java/frc/robot/commands/DriveTrajectory.java b/src/main/java/frc/robot/commands/DriveTrajectory.java deleted file mode 100644 index f6ec4304..00000000 --- a/src/main/java/frc/robot/commands/DriveTrajectory.java +++ /dev/null @@ -1,130 +0,0 @@ -package frc.robot.commands; - -import static frc.robot.util.trajectory.HolonomicDriveController.HolonomicDriveState; - -import edu.wpi.first.math.controller.PIDController; -import edu.wpi.first.math.geometry.Pose2d; -import edu.wpi.first.math.kinematics.ChassisSpeeds; -import edu.wpi.first.wpilibj.Timer; -import edu.wpi.first.wpilibj2.command.Command; -import frc.robot.RobotState; -import frc.robot.subsystems.drive.Drive; -import frc.robot.subsystems.drive.DriveConstants; -import frc.robot.util.AllianceFlipUtil; -import frc.robot.util.LoggedTunableNumber; -import frc.robot.util.trajectory.HolonomicDriveController; -import frc.robot.util.trajectory.Trajectory; -import java.util.Arrays; -import java.util.function.Supplier; -import org.littletonrobotics.junction.Logger; - -public class DriveTrajectory extends Command { - private static final LoggedTunableNumber driveKp = - new LoggedTunableNumber("DriveTrajectory/DriveKp"); - private static final LoggedTunableNumber driveKd = - new LoggedTunableNumber("DriveTrajectory/DriveKd"); - private static final LoggedTunableNumber turnKp = - new LoggedTunableNumber("DriveTrajectory/TurnKp"); - private static final LoggedTunableNumber turnKd = - new LoggedTunableNumber("DriveTrajectory/TurnKd"); - - // initialize tunable numbers to constants - static { - driveKp.initDefault(DriveConstants.trajectoryConstants.drivekp()); - driveKd.initDefault(DriveConstants.trajectoryConstants.drivekd()); - turnKp.initDefault(DriveConstants.trajectoryConstants.turnkp()); - turnKd.initDefault(DriveConstants.trajectoryConstants.turnkd()); - } - - public static final PIDController linearController = new PIDController(0.0, 0.0, 0.0); - public static final PIDController thetaController = new PIDController(0.0, 0.0, 0.0); - public static final HolonomicDriveController controller = - new HolonomicDriveController(linearController, thetaController); - - private final Drive drive; - private final Supplier trajectorySupplier; - private Trajectory trajectory; - private final Timer timer = new Timer(); - - public DriveTrajectory(Drive drive, Supplier trajectorySupplier) { - this.drive = drive; - this.trajectorySupplier = trajectorySupplier; - - addRequirements(drive); - } - - public DriveTrajectory(Drive drive, Trajectory trajectory) { - this(drive, () -> trajectory); - } - - @Override - public void initialize() { - // Log trajectory - trajectory = trajectorySupplier.get(); - Logger.recordOutput( - "Trajectory/TrajectoryPoses", - Arrays.stream(trajectory.getTrajectoryPoses()) - .map(AllianceFlipUtil::apply) - .toArray(Pose2d[]::new)); - - // Reset all controllers - timer.reset(); - timer.start(); - linearController.reset(); - thetaController.reset(); - - // Reset PID gains - linearController.setP(driveKp.get()); - linearController.setD(driveKd.get()); - thetaController.setP(turnKp.get()); - thetaController.setD(turnKd.get()); - } - - @Override - public void execute() { - if (driveKp.hasChanged(hashCode()) - || driveKd.hasChanged(hashCode()) - || turnKp.hasChanged(hashCode()) - || turnKd.hasChanged(hashCode())) { - linearController.setP(driveKp.get()); - linearController.setD(driveKd.get()); - thetaController.setP(turnKp.get()); - thetaController.setD(turnKd.get()); - } - - // sample and maybe flip trajectory state - HolonomicDriveState referenceState = trajectory.sample(timer.get()); - referenceState = AllianceFlipUtil.apply(referenceState); - - Pose2d referencePose = referenceState.pose(); - Logger.recordOutput("Trajectory/Setpoint", referencePose); - - ChassisSpeeds outputSpeeds = - controller.calculate(RobotState.getInstance().getEstimatedPose(), referenceState); - drive.runVelocity(outputSpeeds); - - Logger.recordOutput( - "Trajectory/TranslationErrorMeters", controller.getPoseError().getTranslation().getNorm()); - Logger.recordOutput( - "Trajectory/RotationErrorRadians", controller.getRotationError().getRadians()); - Logger.recordOutput( - "Drive/autoSpeeds", - new double[] { - outputSpeeds.vxMetersPerSecond, - outputSpeeds.vyMetersPerSecond, - outputSpeeds.omegaRadiansPerSecond - }); - } - - @Override - public boolean isFinished() { - return timer.hasElapsed(trajectory.getDuration()); - } - - @Override - public void end(boolean interrupted) { - drive.stop(); - Logger.recordOutput("Trajectory/TrajectoryPoses", new Pose2d[] {}); - Logger.recordOutput("Trajectory/Setpoint", new double[] {}); - } -} diff --git a/src/main/java/frc/robot/commands/TestAutos.java b/src/main/java/frc/robot/commands/TestAutos.java new file mode 100644 index 00000000..096688df --- /dev/null +++ b/src/main/java/frc/robot/commands/TestAutos.java @@ -0,0 +1,59 @@ +package frc.robot.commands; + +import static frc.robot.util.trajectory.ChoreoTrajectoryReader.generate; + +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.wpilibj.Filesystem; +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.Commands; +import frc.robot.FieldConstants; +import frc.robot.RobotState; +import frc.robot.subsystems.drive.Drive; +import frc.robot.subsystems.drive.DriveMotionPlanner; +import frc.robot.util.trajectory.Trajectory; +import java.io.File; + +public class TestAutos { + public static Command threeSpikeSmooth(Drive drive) { + File trajFile = new File(Filesystem.getDeployDirectory(), "/choreo/3SpikeSmooth.traj"); + Trajectory trajectory = generate(trajFile).orElseThrow(); + DriveMotionPlanner motionPlanner = drive.getMotionPlanner(); + + // Waiting inbetween shots is to fake intaking + // Would not be time based on real robot + return Commands.sequence( + reset(trajectory.getStartPose(), drive), + Commands.waitSeconds(1.5), // Shoot first 1.5 secs + Commands.runOnce(() -> motionPlanner.setTrajectory(trajectory)), + Commands.waitSeconds(0.7), // 2.2 secs + moveWhileShooting(motionPlanner), // 2.9 secs + Commands.waitSeconds(0.3), // 3.2 secs + moveWhileShooting(motionPlanner), // 3.9 secs + Commands.waitSeconds(0.61), // 4.51 secs + moveWhileShooting(motionPlanner)); // 5.21 secs + } + + private static Command moveWhileShooting(DriveMotionPlanner motionPlanner) { + return Commands.runOnce(() -> motionPlanner.setHeadingSupplier(TestAutos::getShootHeading)) + .andThen( + Commands.waitSeconds(0.7) + .andThen( + Commands.runOnce(motionPlanner::disableHeadingSupplier))); // Time to shoot ig + } + + private static Rotation2d getShootHeading() { + return FieldConstants.Speaker.centerSpeakerOpening + .getTranslation() + .minus(RobotState.getInstance().getEstimatedPose().getTranslation()) + .getAngle() + .plus(Rotation2d.fromRadians(Math.PI)); + } + + private static Command reset(Pose2d pose, Drive drive) { + return Commands.runOnce( + () -> + RobotState.getInstance() + .resetPose(pose, drive.getWheelPositions(), drive.getGyroYaw())); + } +} diff --git a/src/main/java/frc/robot/subsystems/drive/Drive.java b/src/main/java/frc/robot/subsystems/drive/Drive.java index 15eaae70..a2a4e12e 100644 --- a/src/main/java/frc/robot/subsystems/drive/Drive.java +++ b/src/main/java/frc/robot/subsystems/drive/Drive.java @@ -30,11 +30,13 @@ public class Drive extends SubsystemBase { public static final Lock odometryLock = new ReentrantLock(); + // TODO: DO THIS BETTER! public static final Queue timestampQueue = new ArrayBlockingQueue<>(100); private final GyroIO gyroIO; private final GyroIOInputsAutoLogged gyroInputs = new GyroIOInputsAutoLogged(); private final Module[] modules = new Module[4]; + private final DriveMotionPlanner motionPlanner = new DriveMotionPlanner(); private ChassisSpeeds robotVelocity = new ChassisSpeeds(); private ChassisSpeeds fieldVelocity = new ChassisSpeeds(); @@ -100,9 +102,13 @@ public void periodic() { Logger.recordOutput("SwerveStates/SetpointsOptimized", new SwerveModuleState[] {}); } - // update current velocities + // update current velocities use gyro when possible ChassisSpeeds robotRelativeVelocity = DriveConstants.kinematics.toChassisSpeeds(getModuleStates()); + robotRelativeVelocity.omegaRadiansPerSecond = + gyroInputs.connected + ? gyroInputs.yawVelocityRadPerSec + : robotRelativeVelocity.omegaRadiansPerSecond; robotVelocity = robotRelativeVelocity; Translation2d linearFieldVel = new Translation2d( @@ -112,9 +118,14 @@ public void periodic() { new ChassisSpeeds( linearFieldVel.getX(), linearFieldVel.getY(), - gyroInputs.connected - ? gyroInputs.yawVelocityRadPerSec - : robotRelativeVelocity.omegaRadiansPerSecond); + robotRelativeVelocity.omegaRadiansPerSecond); + + // Get motion planner velocity and run + ChassisSpeeds speeds = + motionPlanner.update( + Timer.getFPGATimestamp(), RobotState.getInstance().getEstimatedPose(), fieldVelocity); + if (motionPlanner.xModeEnabled()) stopWithX(); + else runVelocity(speeds); } /** @@ -122,7 +133,7 @@ public void periodic() { * * @param speeds Speeds in meters/sec */ - public void runVelocity(ChassisSpeeds speeds) { + private void runVelocity(ChassisSpeeds speeds) { // Calculate module setpoints ChassisSpeeds discreteSpeeds = ChassisSpeeds.discretize(speeds, 0.02); SwerveModuleState[] setpointStates = @@ -142,7 +153,7 @@ public void runVelocity(ChassisSpeeds speeds) { } /** Stops the drive. */ - public void stop() { + private void stop() { runVelocity(new ChassisSpeeds()); } @@ -150,7 +161,7 @@ public void stop() { * Stops the drive and turns the modules to an X arrangement to resist movement. The modules will * return to their normal orientations the next time a nonzero velocity is requested. */ - public void stopWithX() { + private void stopWithX() { Rotation2d[] headings = new Rotation2d[4]; for (int i = 0; i < 4; i++) { headings[i] = DriveConstants.moduleTranslations[i].getAngle(); @@ -166,6 +177,10 @@ public void runCharacterizationVolts(double volts) { } } + public DriveMotionPlanner getMotionPlanner() { + return motionPlanner; + } + /** Returns the average drive velocity in radians/sec. */ public double getCharacterizationVelocity() { double driveVelocityAverage = 0.0; diff --git a/src/main/java/frc/robot/subsystems/drive/DriveConstants.java b/src/main/java/frc/robot/subsystems/drive/DriveConstants.java index ce916a0e..4ced5587 100644 --- a/src/main/java/frc/robot/subsystems/drive/DriveConstants.java +++ b/src/main/java/frc/robot/subsystems/drive/DriveConstants.java @@ -12,17 +12,29 @@ /** All Constants Measured in Meters and Radians (m/s, m/s^2, rad/s, rad/s^2) */ public final class DriveConstants { + public static DrivetrainConfig drivetrainConfig = + switch (Constants.getRobot()) { + default -> + new DrivetrainConfig( + Units.inchesToMeters(2.0), + Units.inchesToMeters(26.0), + Units.inchesToMeters(26.0), + Units.feetToMeters(12.16), + Units.feetToMeters(21.32), + 7.93, + 29.89); + }; public static final double wheelRadius = Units.inchesToMeters(2.0); public static final Translation2d[] moduleTranslations = new Translation2d[] { new Translation2d( - getDrivetrainConfig().trackwidthX / 2.0, getDrivetrainConfig().trackwidthY / 2.0), + drivetrainConfig.trackwidthX() / 2.0, drivetrainConfig.trackwidthY() / 2.0), new Translation2d( - getDrivetrainConfig().trackwidthX / 2.0, -getDrivetrainConfig().trackwidthY / 2.0), + drivetrainConfig.trackwidthX() / 2.0, -drivetrainConfig.trackwidthY() / 2.0), new Translation2d( - -getDrivetrainConfig().trackwidthX / 2.0, getDrivetrainConfig().trackwidthY / 2.0), + -drivetrainConfig.trackwidthX() / 2.0, drivetrainConfig.trackwidthY() / 2.0), new Translation2d( - -getDrivetrainConfig().trackwidthX / 2.0, -getDrivetrainConfig().trackwidthY / 2.0) + -drivetrainConfig.trackwidthX() / 2.0, -drivetrainConfig.trackwidthY() / 2.0) }; public static final SwerveDriveKinematics kinematics = new SwerveDriveKinematics(moduleTranslations); @@ -32,85 +44,88 @@ public final class DriveConstants { case RAINBOWT -> 100.0; case COMPBOT -> 250.0; }; - public static final Matrix odometryStateStdDevs = switch (Constants.getRobot()) { default -> new Matrix<>(VecBuilder.fill(0.1, 0.1, 0.1)); }; - public static DrivetrainConfig drivetrainConfig = getDrivetrainConfig(); - public static ModuleConfig[] moduleConfigs = getModuleConfig(); - public static ModuleConstants moduleConstants = getModuleConstants(); - public static TrajectoryConstants trajectoryConstants = getTrajectoryConstants(); - - private static DrivetrainConfig getDrivetrainConfig() { - // Generated by choreo - return switch (Constants.getRobot()) { - default -> - new DrivetrainConfig( - Units.inchesToMeters(26.0), - Units.inchesToMeters(26.0), - Units.feetToMeters(12.16), - Units.feetToMeters(21.32), - 7.93, - 29.89); - }; - } + public static ModuleConfig[] moduleConfigs = + switch (Constants.getRobot()) { + case COMPBOT, RAINBOWT -> + new ModuleConfig[] { + new ModuleConfig(15, 11, 0, new Rotation2d(-0.036), true), + new ModuleConfig(12, 9, 1, new Rotation2d(1.0185), true), + new ModuleConfig(14, 10, 2, new Rotation2d(1.0705), true), + new ModuleConfig(13, 8, 3, new Rotation2d(0.7465), true) + }; + case SIMBOT -> { + ModuleConfig[] configs = new ModuleConfig[4]; + for (int i = 0; i < configs.length; i++) + configs[i] = new ModuleConfig(0, 0, 0, new Rotation2d(0), false); + yield configs; + } + }; - /** - * @return configs in order: fl, fr, bl, br - */ - private static ModuleConfig[] getModuleConfig() { - return switch (Constants.getRobot()) { - case COMPBOT, RAINBOWT -> - new ModuleConfig[] { - new ModuleConfig(15, 11, 0, new Rotation2d(-0.036), true), - new ModuleConfig(12, 9, 1, new Rotation2d(1.0185), true), - new ModuleConfig(14, 10, 2, new Rotation2d(1.0705), true), - new ModuleConfig(13, 8, 3, new Rotation2d(0.7465), true) - }; - case SIMBOT -> { - ModuleConfig[] configs = new ModuleConfig[4]; - for (int i = 0; i < configs.length; i++) - configs[i] = new ModuleConfig(0, 0, 0, new Rotation2d(0), false); - yield configs; - } - }; - } + public static ModuleConstants moduleConstants = + switch (Constants.getRobot()) { + case COMPBOT, RAINBOWT -> + new ModuleConstants( + 0.1, + 0.13, + 0.1, + 0.0, + 10.0, + 0.0, + Mk4iReductions.L2.reduction, + Mk4iReductions.TURN.reduction); + case SIMBOT -> + new ModuleConstants( + 0.014, + 0.134, + 0.1, + 0.0, + 10.0, + 0.0, + Mk4iReductions.L2.reduction, + Mk4iReductions.TURN.reduction); + }; - private static ModuleConstants getModuleConstants() { - return switch (Constants.getRobot()) { - case COMPBOT, RAINBOWT -> - new ModuleConstants( - 0.1, - 0.13, - 0.1, - 0.0, - 10.0, - 0.0, - Mk4iReductions.L2.reduction, - Mk4iReductions.TURN.reduction); - case SIMBOT -> - new ModuleConstants( - 0.014, - 0.134, - 0.1, - 0.0, - 10.0, - 0.0, - Mk4iReductions.L2.reduction, - Mk4iReductions.TURN.reduction); - }; - } + public static TrajectoryConstants trajectoryConstants = + switch (Constants.getRobot()) { + case COMPBOT, RAINBOWT -> + new TrajectoryConstants( + 6.0, + 0.0, + 10.0, + 0.0, + Units.inchesToMeters(4.0), + Units.degreesToRadians(5.0), + Units.inchesToMeters(12.0), + Units.degreesToRadians(30.0), + drivetrainConfig.maxLinearVelocity(), + drivetrainConfig.maxAngularVelocity()); + case SIMBOT -> + new TrajectoryConstants( + 5.0, + 0.0, + 4.0, + 0.0001, + Units.inchesToMeters(4.0), + Units.degreesToRadians(5.0), + Units.inchesToMeters(12.0), + Units.degreesToRadians(30.0), + drivetrainConfig.maxLinearVelocity(), + drivetrainConfig.maxAngularVelocity()); + }; - private static TrajectoryConstants getTrajectoryConstants() { - return switch (Constants.getRobot()) { - case COMPBOT, RAINBOWT -> new TrajectoryConstants(6.0, 0.0, 8.0, 0.0); - case SIMBOT -> new TrajectoryConstants(2.5, 0.0, 7.5, 0.0); - }; - } + public static HeadingControllerConstants headingControllerConstants = + switch (Constants.getRobot()) { + case COMPBOT, RAINBOWT -> new HeadingControllerConstants(8.0, 0.0); + case SIMBOT -> new HeadingControllerConstants(4.0, 0.0); + }; public record DrivetrainConfig( + double wheelRadius, double trackwidthX, double trackwidthY, double maxLinearVelocity, @@ -139,6 +154,20 @@ public record ModuleConstants( double driveReduction, double turnReduction) {} + public record TrajectoryConstants( + double linearKp, + double linearKd, + double thetaKp, + double thetaKd, + double linearTolerance, + double thetaTolerance, + double goalLinearTolerance, + double goalThetaTolerance, + double linearVelocityTolerance, + double angularVelocityTolerance) {} + + public record HeadingControllerConstants(double Kp, double Kd) {} + private enum Mk4iReductions { L2((50.0 / 14.0) * (17.0 / 27.0) * (45.0 / 15.0)), L3((50.0 / 14.0) * (16.0 / 28.0) * (45.0 / 15.0)), @@ -150,6 +179,4 @@ private enum Mk4iReductions { this.reduction = reduction; } } - - public record TrajectoryConstants(double drivekp, double drivekd, double turnkp, double turnkd) {} } diff --git a/src/main/java/frc/robot/subsystems/drive/DriveMotionPlanner.java b/src/main/java/frc/robot/subsystems/drive/DriveMotionPlanner.java new file mode 100644 index 00000000..3243140f --- /dev/null +++ b/src/main/java/frc/robot/subsystems/drive/DriveMotionPlanner.java @@ -0,0 +1,254 @@ +package frc.robot.subsystems.drive; + +import static frc.robot.subsystems.drive.DriveConstants.headingControllerConstants; +import static frc.robot.subsystems.drive.DriveConstants.trajectoryConstants; +import static frc.robot.util.trajectory.HolonomicDriveController.HolonomicDriveState; + +import edu.wpi.first.math.controller.PIDController; +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.math.kinematics.ChassisSpeeds; +import edu.wpi.first.wpilibj.DriverStation; +import frc.robot.Constants; +import frc.robot.util.AllianceFlipUtil; +import frc.robot.util.LoggedTunableNumber; +import frc.robot.util.trajectory.HolonomicDriveController; +import frc.robot.util.trajectory.Trajectory; +import java.util.Arrays; +import java.util.Optional; +import java.util.function.Supplier; +import org.littletonrobotics.junction.AutoLogOutput; +import org.littletonrobotics.junction.Logger; + +public class DriveMotionPlanner { + private static LoggedTunableNumber trajectoryLinearKp = + new LoggedTunableNumber("Trajectory/linearKp", trajectoryConstants.linearKp()); + private static LoggedTunableNumber trajectoryLinearKd = + new LoggedTunableNumber("Trajectory/linearKd", trajectoryConstants.linearKd()); + private static LoggedTunableNumber trajectoryThetaKp = + new LoggedTunableNumber("Trajectory/thetaKp", trajectoryConstants.thetaKp()); + private static LoggedTunableNumber trajectoryThetaKd = + new LoggedTunableNumber("Trajectory/thetaKd", trajectoryConstants.thetaKd()); + private static LoggedTunableNumber trajectoryLinearTolerance = + new LoggedTunableNumber( + "Trajectory/controllerLinearTolerance", trajectoryConstants.linearTolerance()); + private static LoggedTunableNumber trajectoryThetaTolerance = + new LoggedTunableNumber( + "Trajectory/controllerThetaTolerance", trajectoryConstants.thetaTolerance()); + private static LoggedTunableNumber trajectoryGoalLinearTolerance = + new LoggedTunableNumber( + "Trajectory/goalLinearTolerance", trajectoryConstants.goalLinearTolerance()); + private static LoggedTunableNumber trajectoryGoalThetaTolerance = + new LoggedTunableNumber( + "Trajectory/goalThetaTolerance", trajectoryConstants.goalThetaTolerance()); + private static LoggedTunableNumber trajectoryLinearVelocityTolerance = + new LoggedTunableNumber( + "Trajectory/goalLinearVelocityTolerance", trajectoryConstants.linearVelocityTolerance()); + private static LoggedTunableNumber trajectoryAngularVelocityTolerance = + new LoggedTunableNumber( + "Trajectory/goalAngularVelocityTolerance", + trajectoryConstants.angularVelocityTolerance()); + private static LoggedTunableNumber headingKp = + new LoggedTunableNumber("Drive/headingKp", headingControllerConstants.Kp()); + private static LoggedTunableNumber headingKd = + new LoggedTunableNumber("Drive/headingKd", headingControllerConstants.Kd()); + + private ChassisSpeeds driveInputSpeeds = new ChassisSpeeds(); + private Optional currentTrajectory = Optional.empty(); + private Optional trajectoryStartTime = Optional.empty(); + private Optional> headingSupplier = Optional.empty(); + + private final HolonomicDriveController trajectoryController; + private final PIDController headingController; + + private boolean xEnabled = false; + + public DriveMotionPlanner() { + trajectoryController = + new HolonomicDriveController( + trajectoryLinearKp.get(), + trajectoryLinearKd.get(), + trajectoryThetaKp.get(), + trajectoryThetaKd.get()); + configTrajectoryTolerances(); + headingController = new PIDController(headingKp.get(), 0, headingKd.get()); + headingController.enableContinuousInput(-Math.PI, Math.PI); + } + + public void setTrajectory(Trajectory trajectory) { + // trajectory already running + if (currentTrajectory.isEmpty()) { + currentTrajectory = Optional.of(trajectory); + trajectoryController.setGoalState(trajectory.getEndState()); + // Log poses + Logger.recordOutput( + "Trajectory/trajectoryPoses", + Arrays.stream(trajectory.getTrajectoryPoses()) + .map(AllianceFlipUtil::apply) + .toArray(Pose2d[]::new)); + } + } + + public void setHeadingSupplier(Supplier headingSupplier) { + this.headingSupplier = Optional.ofNullable(headingSupplier); + } + + public void disableHeadingSupplier() { + headingSupplier = Optional.empty(); + } + + public void acceptDriveInput(ChassisSpeeds driveInputSpeeds) { + this.driveInputSpeeds = driveInputSpeeds; + } + + public void requestEnableXMode() { + xEnabled = true; + } + + public void requestDisableXMode() { + xEnabled = false; + } + + public ChassisSpeeds update(double timestamp, Pose2d robot, ChassisSpeeds fieldVelocity) { + // If disabled reset everything and stop + if (DriverStation.isDisabled()) { + currentTrajectory = Optional.empty(); + trajectoryStartTime = Optional.empty(); + headingSupplier = Optional.empty(); + + // Stop logs + Logger.recordOutput("Trajectory/trajectoryPoses", new Pose2d[] {}); + Logger.recordOutput("Trajectory/setpointPose", new Pose2d()); + Logger.recordOutput("Drive/headingControl", new Rotation2d()); + Logger.recordOutput("Drive/speeds", new double[] {}); + return new ChassisSpeeds(); + } + + // Tunable numbers + if (Constants.tuningMode) { + // Update PID Controllers + LoggedTunableNumber.ifChanged( + hashCode(), + pid -> trajectoryController.setPID(pid[0], pid[1], pid[2], pid[3]), + trajectoryLinearKp, + trajectoryLinearKd, + trajectoryThetaKp, + trajectoryThetaKp); + LoggedTunableNumber.ifChanged( + hashCode(), pid -> headingController.setPID(pid[0], 0, pid[1]), headingKp, headingKd); + // Tolerances + LoggedTunableNumber.ifChanged( + hashCode(), + this::configTrajectoryTolerances, + trajectoryLinearTolerance, + trajectoryThetaTolerance, + trajectoryGoalLinearTolerance, + trajectoryGoalThetaTolerance, + trajectoryLinearVelocityTolerance, + trajectoryAngularVelocityTolerance); + } + + // Follow trajectory + ChassisSpeeds speeds = + currentTrajectory + .map( + trajectory -> { + // First update with trajectory + if (trajectoryStartTime.isEmpty()) { + trajectoryStartTime = Optional.of(timestamp); + trajectoryController.resetControllers(); + } + + double sampleTime = timestamp - trajectoryStartTime.get(); + // Reached end + if (sampleTime > trajectory.getDuration() && trajectoryController.atGoal()) { + currentTrajectory = Optional.empty(); + trajectoryStartTime = Optional.empty(); + // Use drive input speeds (none if in auto) + return driveInputSpeeds; + } + + HolonomicDriveState currentState = + new HolonomicDriveState( + robot, + fieldVelocity.vxMetersPerSecond, + fieldVelocity.vyMetersPerSecond, + fieldVelocity.omegaRadiansPerSecond); + // Sample and flip state + HolonomicDriveState setpointState = trajectory.sample(sampleTime); + setpointState = AllianceFlipUtil.apply(setpointState); + // calculate trajectory speeds + ChassisSpeeds trajectorySpeeds = + trajectoryController.calculate(currentState, setpointState); + + // Log trajectory data + Logger.recordOutput("Trajectory/setpointPose", setpointState.pose()); + Logger.recordOutput( + "Trajectory/translationError", + trajectoryController.getPoseError().getTranslation().getNorm()); + Logger.recordOutput( + "Trajectory/rotationError", + trajectoryController.getPoseError().getRotation().getRadians()); + return trajectorySpeeds; + }) + .orElse(driveInputSpeeds); // Otherwise use inputted speeds + + // Use heading controller if there + headingSupplier.ifPresent( + headingSupplier -> { + Rotation2d setpointHeading = headingSupplier.get(); + speeds.omegaRadiansPerSecond = + headingController.calculate( + robot.getRotation().getRadians(), setpointHeading.getRadians()); + Logger.recordOutput("Drive/headingControl", setpointHeading); + Logger.recordOutput( + "Drive/headingError", + setpointHeading.getRadians() - robot.getRotation().getRadians()); + }); + + Logger.recordOutput( + "Drive/speeds", + new double[] { + speeds.vxMetersPerSecond, speeds.vyMetersPerSecond, speeds.omegaRadiansPerSecond + }); + return speeds; + } + + public Optional getCurrentTrajectory() { + return currentTrajectory; + } + + @AutoLogOutput(key = "Drive/followingTrajectory") + public boolean followingTrajectory() { + return currentTrajectory.isPresent(); + } + + @AutoLogOutput(key = "Drive/headingControlled") + public boolean isHeadingControlled() { + return headingSupplier.isPresent(); + } + + @AutoLogOutput(key = "Drive/xModeEnabled") + public boolean xModeEnabled() { + return xEnabled; + } + + private void configTrajectoryTolerances() { + trajectoryController.setControllerTolerance( + new Pose2d( + new Translation2d( + trajectoryLinearTolerance.get(), Rotation2d.fromRadians(Math.PI / 4.0)), + Rotation2d.fromRadians(trajectoryThetaTolerance.get()))); + double velocityXTolerance = trajectoryLinearVelocityTolerance.get() / Math.sqrt(2.0); + trajectoryController.setGoalTolerance( + new HolonomicDriveState( + new Pose2d( + new Translation2d( + trajectoryGoalLinearTolerance.get(), Rotation2d.fromRadians(Math.PI / 4.0)), + Rotation2d.fromRadians(trajectoryGoalThetaTolerance.get())), + velocityXTolerance, + velocityXTolerance, // Same value + trajectoryAngularVelocityTolerance.get())); + } +} diff --git a/src/main/java/frc/robot/util/LoggedTunableNumber.java b/src/main/java/frc/robot/util/LoggedTunableNumber.java index 07d6832c..dc2166fa 100644 --- a/src/main/java/frc/robot/util/LoggedTunableNumber.java +++ b/src/main/java/frc/robot/util/LoggedTunableNumber.java @@ -1,6 +1,7 @@ package frc.robot.util; import frc.robot.Constants; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; import org.littletonrobotics.junction.networktables.LoggedDashboardNumber; @@ -85,4 +86,26 @@ public boolean hasChanged(int id) { return false; } + + /** + * Runs action if any of the tunableNumbers have changed + * + * @param id Unique identifier for the caller to avoid conflicts when shared between multiple * + * objects. Recommended approach is to pass the result of "hashCode()" + * @param action Callback to run when any of the tunable numbers have changed. Access tunable + * numbers in order inputted in method + * @param tunableNumbers All tunable numbers to check + */ + public static void ifChanged( + int id, VarArgsConsumer action, LoggedTunableNumber... tunableNumbers) { + if (Arrays.stream(tunableNumbers).anyMatch(tunableNumber -> tunableNumber.hasChanged(id))) { + action.accept( + Arrays.stream(tunableNumbers).map(LoggedTunableNumber::get).toArray(Double[]::new)); + } + } + + /** Runs action if any of the tunableNumbers have changed */ + public static void ifChanged(int id, Runnable action, LoggedTunableNumber... tunableNumbers) { + ifChanged(id, values -> action.run(), tunableNumbers); + } } diff --git a/src/main/java/frc/robot/util/VarArgsConsumer.java b/src/main/java/frc/robot/util/VarArgsConsumer.java new file mode 100644 index 00000000..231a7a86 --- /dev/null +++ b/src/main/java/frc/robot/util/VarArgsConsumer.java @@ -0,0 +1,6 @@ +package frc.robot.util; + +@FunctionalInterface +public interface VarArgsConsumer { + void accept(T... args); +} diff --git a/src/main/java/frc/robot/util/trajectory/ChoreoTrajectoryReader.java b/src/main/java/frc/robot/util/trajectory/ChoreoTrajectoryReader.java index 659e194c..808e619b 100644 --- a/src/main/java/frc/robot/util/trajectory/ChoreoTrajectoryReader.java +++ b/src/main/java/frc/robot/util/trajectory/ChoreoTrajectoryReader.java @@ -41,7 +41,7 @@ public double getDuration() { } @Override - public Pose2d startPose() { + public Pose2d getStartPose() { ChoreoTrajectoryState start = states.get(0); return new Pose2d(start.x(), start.y(), new Rotation2d(start.heading())); } @@ -53,6 +53,16 @@ public Pose2d[] getTrajectoryPoses() { .toArray(Pose2d[]::new); } + @Override + public HolonomicDriveState getStartState() { + return fromChoreoState(states.get(0)); + } + + @Override + public HolonomicDriveState getEndState() { + return fromChoreoState(states.get(states.size() - 1)); + } + @Override public HolonomicDriveState sample(double timeSeconds) { ChoreoTrajectoryState before = null; diff --git a/src/main/java/frc/robot/util/trajectory/HolonomicDriveController.java b/src/main/java/frc/robot/util/trajectory/HolonomicDriveController.java index 22176c3b..f2dce88d 100644 --- a/src/main/java/frc/robot/util/trajectory/HolonomicDriveController.java +++ b/src/main/java/frc/robot/util/trajectory/HolonomicDriveController.java @@ -2,55 +2,98 @@ import edu.wpi.first.math.controller.PIDController; import edu.wpi.first.math.geometry.Pose2d; -import edu.wpi.first.math.geometry.Rotation2d; import edu.wpi.first.math.geometry.Translation2d; import edu.wpi.first.math.kinematics.ChassisSpeeds; public class HolonomicDriveController { - private PIDController linearController, thetaController; + private final PIDController linearController; + private final PIDController thetaController; - private Pose2d m_poseError; - private Rotation2d m_rotationError; + private HolonomicDriveState currentState = null; + private HolonomicDriveState goalTolerance = null; + private HolonomicDriveState goalState = null; + private Pose2d poseError; + private Pose2d controllerTolerance = null; - public HolonomicDriveController(PIDController linearController, PIDController thetaController) { - this.linearController = linearController; - this.thetaController = thetaController; + public HolonomicDriveController( + double linearKp, double linearKd, double thetaKp, double thetaKd) { + linearController = new PIDController(linearKp, 0, linearKd); + thetaController = new PIDController(thetaKp, 0, thetaKd); this.thetaController.enableContinuousInput(-Math.PI, Math.PI); } - public ChassisSpeeds calculate(Pose2d currentPose, HolonomicDriveState state) { - Pose2d poseRef = state.pose(); + /** Set tolerance of controller with Pose2d */ + public void setControllerTolerance(Pose2d tolerance) { + controllerTolerance = tolerance; + } + + /** Set tolerance for goal state */ + public void setGoalTolerance(HolonomicDriveState tolerance) { + goalTolerance = tolerance; + } + + /** Set goal state */ + public void setGoalState(HolonomicDriveState goalState) { + this.goalState = goalState; + } + + /** Reset all controllers */ + public void resetControllers() { + linearController.reset(); + thetaController.reset(); + } + + /** Set PID values */ + public void setPID(double linearKp, double linearKd, double thetaKp, double thetaKd) { + linearController.setPID(linearKp, 0, linearKd); + thetaController.setPID(thetaKp, 0, thetaKd); + } - m_poseError = poseRef.relativeTo(currentPose); - m_rotationError = poseRef.getRotation().minus(currentPose.getRotation()); + /** Calculate chassis speeds & update currentState */ + public ChassisSpeeds calculate( + HolonomicDriveState currentState, HolonomicDriveState setpointState) { + this.currentState = currentState; + Pose2d poseRef = setpointState.pose(); + poseError = poseRef.relativeTo(currentState.pose()); // Calculate feedback velocities (based on position error). Translation2d currToStateTranslation = - poseRef.getTranslation().minus(currentPose.getTranslation()); + poseRef.getTranslation().minus(currentState.pose().getTranslation()); double linearFeedback = linearController.calculate( - 0, currentPose.getTranslation().getDistance(poseRef.getTranslation())); + 0, currentState.pose().getTranslation().getDistance(poseRef.getTranslation())); double xFeedback = linearFeedback * (currToStateTranslation.getAngle().getCos()); double yFeedback = linearFeedback * (currToStateTranslation.getAngle().getSin()); double thetaFeedback = thetaController.calculate( - currentPose.getRotation().getRadians(), poseRef.getRotation().getRadians()); + currentState.pose().getRotation().getRadians(), poseRef.getRotation().getRadians()); // Return next output. return ChassisSpeeds.fromFieldRelativeSpeeds( - state.velocityX() + xFeedback, - state.velocityY() + yFeedback, - state.angularVelocity() + thetaFeedback, - currentPose.getRotation()); + setpointState.velocityX() + xFeedback, + setpointState.velocityY() + yFeedback, + setpointState.angularVelocity() + thetaFeedback, + currentState.pose().getRotation()); } public Pose2d getPoseError() { - return m_poseError; + return poseError; } - public Rotation2d getRotationError() { - return m_rotationError; + /** Within tolerance of current goal */ + public boolean atGoal() { + boolean withinPoseTolerance = + (poseError.getTranslation().getNorm() < goalTolerance.pose.getTranslation().getNorm()) + && (poseError.getRotation().getRadians() + < goalTolerance.pose.getRotation().getRadians()); + boolean withinVelocityTolerance = + Math.abs(currentState.velocityX() - goalState.velocityX()) < goalTolerance.velocityX() + && Math.abs(currentState.velocityY() - goalState.velocityY()) + < goalTolerance.velocityY() + && Math.abs(currentState.angularVelocity() - goalState.angularVelocity()) + < goalTolerance.angularVelocity(); + return withinPoseTolerance && withinVelocityTolerance; } public record HolonomicDriveState( diff --git a/src/main/java/frc/robot/util/trajectory/Trajectory.java b/src/main/java/frc/robot/util/trajectory/Trajectory.java index ccaedf59..58071bfc 100644 --- a/src/main/java/frc/robot/util/trajectory/Trajectory.java +++ b/src/main/java/frc/robot/util/trajectory/Trajectory.java @@ -5,9 +5,13 @@ public interface Trajectory { double getDuration(); - Pose2d startPose(); + Pose2d getStartPose(); Pose2d[] getTrajectoryPoses(); + HolonomicDriveController.HolonomicDriveState getStartState(); + + HolonomicDriveController.HolonomicDriveState getEndState(); + HolonomicDriveController.HolonomicDriveState sample(double timeSeconds); }