From d4c4c317606018cbba9a2469a16fdc02ce3ddcc3 Mon Sep 17 00:00:00 2001 From: Dhairya Trivedi <140292400+Dhairya-exe@users.noreply.github.com> Date: Wed, 2 Jul 2025 22:20:09 -0600 Subject: [PATCH 1/9] basic path following works --- .gitignore | 165 +- .vscode/launch.json | 21 + .vscode/settings.json | 60 + .wpilib/wpilib_preferences.json | 6 + Main.java | 15 + WPILib-License.md | 24 + build.gradle | 107 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 252 + gradlew.bat | 94 + settings.gradle | 30 + src/main/deploy/Paths/test.polarpath | 1 + src/main/deploy/example.txt | 3 + src/main/java/frc/robot/Constants.java | 4283 +++++++++++++++++ src/main/java/frc/robot/Main.java | 25 + src/main/java/frc/robot/OI.java | 258 + src/main/java/frc/robot/Robot.java | 134 + src/main/java/frc/robot/RobotContainer.java | 27 + .../java/frc/robot/commands/DriveToPoint.java | 69 + .../java/frc/robot/commands/FollowPath.java | 58 + src/main/java/frc/robot/subsystems/Drive.java | 123 + .../robot/subsystems/ExampleSubsystem.java | 47 + .../frc/robot/subsystems/Peripherals.java | 130 + src/main/java/frc/robot/tools/PathLoader.java | 44 + .../java/frc/robot/tools/SwerveModule.java | 116 + .../java/frc/robot/tools/TriggerButton.java | 10 + src/main/java/frc/robot/tools/math/PID.java | 100 + .../java/frc/robot/tools/math/Vector.java | 138 + vendordeps/AdvantageKit.json | 35 + vendordeps/Phoenix6-frc2025-latest.json | 479 ++ vendordeps/WPILibNewCommands.json | 38 + 32 files changed, 6898 insertions(+), 1 deletion(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .wpilib/wpilib_preferences.json create mode 100644 Main.java create mode 100644 WPILib-License.md create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle create mode 100644 src/main/deploy/Paths/test.polarpath create mode 100644 src/main/deploy/example.txt create mode 100644 src/main/java/frc/robot/Constants.java create mode 100644 src/main/java/frc/robot/Main.java create mode 100644 src/main/java/frc/robot/OI.java create mode 100644 src/main/java/frc/robot/Robot.java create mode 100644 src/main/java/frc/robot/RobotContainer.java create mode 100644 src/main/java/frc/robot/commands/DriveToPoint.java create mode 100644 src/main/java/frc/robot/commands/FollowPath.java create mode 100644 src/main/java/frc/robot/subsystems/Drive.java create mode 100644 src/main/java/frc/robot/subsystems/ExampleSubsystem.java create mode 100644 src/main/java/frc/robot/subsystems/Peripherals.java create mode 100644 src/main/java/frc/robot/tools/PathLoader.java create mode 100644 src/main/java/frc/robot/tools/SwerveModule.java create mode 100644 src/main/java/frc/robot/tools/TriggerButton.java create mode 100644 src/main/java/frc/robot/tools/math/PID.java create mode 100644 src/main/java/frc/robot/tools/math/Vector.java create mode 100644 vendordeps/AdvantageKit.json create mode 100644 vendordeps/Phoenix6-frc2025-latest.json create mode 100644 vendordeps/WPILibNewCommands.json diff --git a/.gitignore b/.gitignore index 524f096..a826516 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,41 @@ +# This gitignore has been specially created by the WPILib team. +# If you remove items from this file, intellisense might break. + +### C++ ### +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +### Java ### # Compiled class file *.class @@ -21,4 +59,129 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* -replay_pid* + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +### Gradle ### +.gradle +/build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + +# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 +# gradle/wrapper/gradle-wrapper.properties + +# # VS Code Specific Java Settings +# DO NOT REMOVE .classpath and .project +.classpath +.project +.settings/ +bin/ + +# IntelliJ +*.iml +*.ipr +*.iws +.idea/ +out/ + +# Fleet +.fleet + +# Simulation GUI and other tools window save file +networktables.json +simgui.json +*-window.json + +# Simulation data log directory +logs/ + +# Folder that has CTRE Phoenix Sim device config storage +ctre_sim/ + +# clangd +/.cache +compile_commands.json + +# Eclipse generated file for annotation processors +.factorypath \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..c9c9713 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,21 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "type": "wpilib", + "name": "WPILib Desktop Debug", + "request": "launch", + "desktop": true, + }, + { + "type": "wpilib", + "name": "WPILib roboRIO Debug", + "request": "launch", + "desktop": false, + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..612cdd0 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,60 @@ +{ + "java.configuration.updateBuildConfiguration": "automatic", + "java.server.launchMode": "Standard", + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "bin/": true, + "**/.classpath": true, + "**/.project": true, + "**/.settings": true, + "**/.factorypath": true, + "**/*~": true + }, + "java.test.config": [ + { + "name": "WPIlibUnitTests", + "workingDirectory": "${workspaceFolder}/build/jni/release", + "vmargs": [ "-Djava.library.path=${workspaceFolder}/build/jni/release" ], + "env": { + "LD_LIBRARY_PATH": "${workspaceFolder}/build/jni/release" , + "DYLD_LIBRARY_PATH": "${workspaceFolder}/build/jni/release" + } + }, + ], + "java.test.defaultConfig": "WPIlibUnitTests", + "java.import.gradle.annotationProcessing.enabled": false, + "java.completion.favoriteStaticMembers": [ + "org.junit.Assert.*", + "org.junit.Assume.*", + "org.junit.jupiter.api.Assertions.*", + "org.junit.jupiter.api.Assumptions.*", + "org.junit.jupiter.api.DynamicContainer.*", + "org.junit.jupiter.api.DynamicTest.*", + "org.mockito.Mockito.*", + "org.mockito.ArgumentMatchers.*", + "org.mockito.Answers.*", + "edu.wpi.first.units.Units.*" + ], + "java.completion.filteredTypes": [ + "java.awt.*", + "com.sun.*", + "sun.*", + "jdk.*", + "org.graalvm.*", + "io.micrometer.shaded.*", + "java.beans.*", + "java.util.Base64.*", + "java.util.Timer", + "java.sql.*", + "javax.swing.*", + "javax.management.*", + "javax.smartcardio.*", + "edu.wpi.first.math.proto.*", + "edu.wpi.first.math.**.proto.*", + "edu.wpi.first.math.**.struct.*", + ] +} diff --git a/.wpilib/wpilib_preferences.json b/.wpilib/wpilib_preferences.json new file mode 100644 index 0000000..96ea8d5 --- /dev/null +++ b/.wpilib/wpilib_preferences.json @@ -0,0 +1,6 @@ +{ + "enableCppIntellisense": false, + "currentLanguage": "java", + "projectYear": "2025", + "teamNumber": 4499 +} \ No newline at end of file diff --git a/Main.java b/Main.java new file mode 100644 index 0000000..d61e3f8 --- /dev/null +++ b/Main.java @@ -0,0 +1,15 @@ +import java.util.Vector; + +import frc.robot.subsystems.SwerveModule; + +public class Main { + SwerveModule swerve1 = new SwerveModule(); + + public static void main(String[] args) { + + } + + public void run() { + + } +} diff --git a/WPILib-License.md b/WPILib-License.md new file mode 100644 index 0000000..645e542 --- /dev/null +++ b/WPILib-License.md @@ -0,0 +1,24 @@ +Copyright (c) 2009-2024 FIRST and other WPILib contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of FIRST, WPILib, nor the names of other WPILib + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY FIRST AND OTHER WPILIB CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY NONINFRINGEMENT AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL FIRST OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..6eea189 --- /dev/null +++ b/build.gradle @@ -0,0 +1,107 @@ +plugins { + id "java" + id "edu.wpi.first.GradleRIO" version "2025.2.1" +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + + +def ROBOT_MAIN_CLASS = "frc.robot.Main" + +// Define my targets (RoboRIO) and artifacts (deployable files) +// This is added by GradleRIO's backing project DeployUtils. +deploy { + targets { + roborio(getTargetTypeClass('RoboRIO')) { + // Team number is loaded either from the .wpilib/wpilib_preferences.json + // or from command line. If not found an exception will be thrown. + // You can use getTeamOrDefault(team) instead of getTeamNumber if you + // want to store a team number in this file. + team = project.frc.getTeamNumber() + debug = project.frc.getDebugOrDefault(false) + + artifacts { + // First part is artifact name, 2nd is artifact type + // getTargetTypeClass is a shortcut to get the class type using a string + + frcJava(getArtifactTypeClass('FRCJavaArtifact')) { + } + + // Static files artifact + frcStaticFileDeploy(getArtifactTypeClass('FileTreeArtifact')) { + files = project.fileTree('src/main/deploy') + directory = '/home/lvuser/deploy' + deleteOldFiles = false // Change to true to delete files on roboRIO that no + // longer exist in deploy directory of this project + } + } + } + } +} + +def deployArtifact = deploy.targets.roborio.artifacts.frcJava + +// Set to true to use debug for JNI. +wpi.java.debugJni = false + +// Set this to true to enable desktop support. +def includeDesktopSupport = false + +// Defining my dependencies. In this case, WPILib (+ friends), and vendor libraries. +// Also defines JUnit 5. +dependencies { + annotationProcessor wpi.java.deps.wpilibAnnotations() + implementation wpi.java.deps.wpilib() + implementation wpi.java.vendor.java() + + implementation 'org.json:json:20230227' + + roborioDebug wpi.java.deps.wpilibJniDebug(wpi.platforms.roborio) + roborioDebug wpi.java.vendor.jniDebug(wpi.platforms.roborio) + + roborioRelease wpi.java.deps.wpilibJniRelease(wpi.platforms.roborio) + roborioRelease wpi.java.vendor.jniRelease(wpi.platforms.roborio) + + nativeDebug wpi.java.deps.wpilibJniDebug(wpi.platforms.desktop) + nativeDebug wpi.java.vendor.jniDebug(wpi.platforms.desktop) + simulationDebug wpi.sim.enableDebug() + + nativeRelease wpi.java.deps.wpilibJniRelease(wpi.platforms.desktop) + nativeRelease wpi.java.vendor.jniRelease(wpi.platforms.desktop) + simulationRelease wpi.sim.enableRelease() + + testImplementation 'org.junit.jupiter:junit-jupiter:5.10.1' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} + +test { + useJUnitPlatform() + systemProperty 'junit.jupiter.extensions.autodetection.enabled', 'true' +} + +// Simulation configuration (e.g. environment variables). +wpi.sim.addGui().defaultEnabled = true +wpi.sim.addDriverstation() + +// Setting up my Jar File. In this case, adding all libraries into the main jar ('fat jar') +// in order to make them all available at runtime. Also adding the manifest so WPILib +// knows where to look for our Robot Class. +jar { + from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } + from sourceSets.main.allSource + manifest edu.wpi.first.gradlerio.GradleRIOPlugin.javaManifest(ROBOT_MAIN_CLASS) + duplicatesStrategy = DuplicatesStrategy.INCLUDE +} + +// Configure jar and deploy tasks +deployArtifact.jarTask = jar +wpi.java.configureExecutableTasks(jar) +wpi.java.configureTestTasks(test) + +// Configure string concat to always inline compile +tasks.withType(JavaCompile) { + options.compilerArgs.add '-XDstringConcat=inline' +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 zcma&N1CXTcmMvW9vTb(Rwr$&4wr$(C?dmSu>@vG-+vuvg^_??!{yS%8zW-#zn-LkA z5&1^$^{lnmUON?}LBF8_K|(?T0Ra(xUH{($5eN!MR#ZihR#HxkUPe+_R8Cn`RRs(P z_^*#_XlXmGv7!4;*Y%p4nw?{bNp@UZHv1?Um8r6)Fei3p@ClJn0ECfg1hkeuUU@Or zDaPa;U3fE=3L}DooL;8f;P0ipPt0Z~9P0)lbStMS)ag54=uL9ia-Lm3nh|@(Y?B`; zx_#arJIpXH!U{fbCbI^17}6Ri*H<>OLR%c|^mh8+)*h~K8Z!9)DPf zR2h?lbDZQ`p9P;&DQ4F0sur@TMa!Y}S8irn(%d-gi0*WxxCSk*A?3lGh=gcYN?FGl z7D=Js!i~0=u3rox^eO3i@$0=n{K1lPNU zwmfjRVmLOCRfe=seV&P*1Iq=^i`502keY8Uy-WNPwVNNtJFx?IwAyRPZo2Wo1+S(xF37LJZ~%i)kpFQ3Fw=mXfd@>%+)RpYQLnr}B~~zoof(JVm^^&f zxKV^+3D3$A1G;qh4gPVjhrC8e(VYUHv#dy^)(RoUFM?o%W-EHxufuWf(l*@-l+7vt z=l`qmR56K~F|v<^Pd*p~1_y^P0P^aPC##d8+HqX4IR1gu+7w#~TBFphJxF)T$2WEa zxa?H&6=Qe7d(#tha?_1uQys2KtHQ{)Qco)qwGjrdNL7thd^G5i8Os)CHqc>iOidS} z%nFEDdm=GXBw=yXe1W-ShHHFb?Cc70+$W~z_+}nAoHFYI1MV1wZegw*0y^tC*s%3h zhD3tN8b=Gv&rj}!SUM6|ajSPp*58KR7MPpI{oAJCtY~JECm)*m_x>AZEu>DFgUcby z1Qaw8lU4jZpQ_$;*7RME+gq1KySGG#Wql>aL~k9tLrSO()LWn*q&YxHEuzmwd1?aAtI zBJ>P=&$=l1efe1CDU;`Fd+_;&wI07?V0aAIgc(!{a z0Jg6Y=inXc3^n!U0Atk`iCFIQooHqcWhO(qrieUOW8X(x?(RD}iYDLMjSwffH2~tB z)oDgNBLB^AJBM1M^c5HdRx6fBfka`(LD-qrlh5jqH~);#nw|iyp)()xVYak3;Ybik z0j`(+69aK*B>)e_p%=wu8XC&9e{AO4c~O1U`5X9}?0mrd*m$_EUek{R?DNSh(=br# z#Q61gBzEpmy`$pA*6!87 zSDD+=@fTY7<4A?GLqpA?Pb2z$pbCc4B4zL{BeZ?F-8`s$?>*lXXtn*NC61>|*w7J* z$?!iB{6R-0=KFmyp1nnEmLsA-H0a6l+1uaH^g%c(p{iT&YFrbQ$&PRb8Up#X3@Zsk zD^^&LK~111%cqlP%!_gFNa^dTYT?rhkGl}5=fL{a`UViaXWI$k-UcHJwmaH1s=S$4 z%4)PdWJX;hh5UoK?6aWoyLxX&NhNRqKam7tcOkLh{%j3K^4Mgx1@i|Pi&}<^5>hs5 zm8?uOS>%)NzT(%PjVPGa?X%`N2TQCKbeH2l;cTnHiHppPSJ<7y-yEIiC!P*ikl&!B z%+?>VttCOQM@ShFguHVjxX^?mHX^hSaO_;pnyh^v9EumqSZTi+#f&_Vaija0Q-e*| z7ulQj6Fs*bbmsWp{`auM04gGwsYYdNNZcg|ph0OgD>7O}Asn7^Z=eI>`$2*v78;sj-}oMoEj&@)9+ycEOo92xSyY344^ z11Hb8^kdOvbf^GNAK++bYioknrpdN>+u8R?JxG=!2Kd9r=YWCOJYXYuM0cOq^FhEd zBg2puKy__7VT3-r*dG4c62Wgxi52EMCQ`bKgf*#*ou(D4-ZN$+mg&7$u!! z-^+Z%;-3IDwqZ|K=ah85OLwkO zKxNBh+4QHh)u9D?MFtpbl)us}9+V!D%w9jfAMYEb>%$A;u)rrI zuBudh;5PN}_6J_}l55P3l_)&RMlH{m!)ai-i$g)&*M`eN$XQMw{v^r@-125^RRCF0 z^2>|DxhQw(mtNEI2Kj(;KblC7x=JlK$@78`O~>V!`|1Lm-^JR$-5pUANAnb(5}B}JGjBsliK4& zk6y(;$e&h)lh2)L=bvZKbvh@>vLlreBdH8No2>$#%_Wp1U0N7Ank!6$dFSi#xzh|( zRi{Uw%-4W!{IXZ)fWx@XX6;&(m_F%c6~X8hx=BN1&q}*( zoaNjWabE{oUPb!Bt$eyd#$5j9rItB-h*5JiNi(v^e|XKAj*8(k<5-2$&ZBR5fF|JA z9&m4fbzNQnAU}r8ab>fFV%J0z5awe#UZ|bz?Ur)U9bCIKWEzi2%A+5CLqh?}K4JHi z4vtM;+uPsVz{Lfr;78W78gC;z*yTch~4YkLr&m-7%-xc ztw6Mh2d>_iO*$Rd8(-Cr1_V8EO1f*^@wRoSozS) zy1UoC@pruAaC8Z_7~_w4Q6n*&B0AjOmMWa;sIav&gu z|J5&|{=a@vR!~k-OjKEgPFCzcJ>#A1uL&7xTDn;{XBdeM}V=l3B8fE1--DHjSaxoSjNKEM9|U9#m2<3>n{Iuo`r3UZp;>GkT2YBNAh|b z^jTq-hJp(ebZh#Lk8hVBP%qXwv-@vbvoREX$TqRGTgEi$%_F9tZES@z8Bx}$#5eeG zk^UsLBH{bc2VBW)*EdS({yw=?qmevwi?BL6*=12k9zM5gJv1>y#ML4!)iiPzVaH9% zgSImetD@dam~e>{LvVh!phhzpW+iFvWpGT#CVE5TQ40n%F|p(sP5mXxna+Ev7PDwA zamaV4m*^~*xV+&p;W749xhb_X=$|LD;FHuB&JL5?*Y2-oIT(wYY2;73<^#46S~Gx| z^cez%V7x$81}UWqS13Gz80379Rj;6~WdiXWOSsdmzY39L;Hg3MH43o*y8ibNBBH`(av4|u;YPq%{R;IuYow<+GEsf@R?=@tT@!}?#>zIIn0CoyV!hq3mw zHj>OOjfJM3F{RG#6ujzo?y32m^tgSXf@v=J$ELdJ+=5j|=F-~hP$G&}tDZsZE?5rX ztGj`!S>)CFmdkccxM9eGIcGnS2AfK#gXwj%esuIBNJQP1WV~b~+D7PJTmWGTSDrR` zEAu4B8l>NPuhsk5a`rReSya2nfV1EK01+G!x8aBdTs3Io$u5!6n6KX%uv@DxAp3F@{4UYg4SWJtQ-W~0MDb|j-$lwVn znAm*Pl!?Ps&3wO=R115RWKb*JKoexo*)uhhHBncEDMSVa_PyA>k{Zm2(wMQ(5NM3# z)jkza|GoWEQo4^s*wE(gHz?Xsg4`}HUAcs42cM1-qq_=+=!Gk^y710j=66(cSWqUe zklbm8+zB_syQv5A2rj!Vbw8;|$@C!vfNmNV!yJIWDQ>{+2x zKjuFX`~~HKG~^6h5FntRpnnHt=D&rq0>IJ9#F0eM)Y-)GpRjiN7gkA8wvnG#K=q{q z9dBn8_~wm4J<3J_vl|9H{7q6u2A!cW{bp#r*-f{gOV^e=8S{nc1DxMHFwuM$;aVI^ zz6A*}m8N-&x8;aunp1w7_vtB*pa+OYBw=TMc6QK=mbA-|Cf* zvyh8D4LRJImooUaSb7t*fVfih<97Gf@VE0|z>NcBwBQze);Rh!k3K_sfunToZY;f2 z^HmC4KjHRVg+eKYj;PRN^|E0>Gj_zagfRbrki68I^#~6-HaHg3BUW%+clM1xQEdPYt_g<2K+z!$>*$9nQ>; zf9Bei{?zY^-e{q_*|W#2rJG`2fy@{%6u0i_VEWTq$*(ZN37|8lFFFt)nCG({r!q#9 z5VK_kkSJ3?zOH)OezMT{!YkCuSSn!K#-Rhl$uUM(bq*jY? zi1xbMVthJ`E>d>(f3)~fozjg^@eheMF6<)I`oeJYx4*+M&%c9VArn(OM-wp%M<-`x z7sLP1&3^%Nld9Dhm@$3f2}87!quhI@nwd@3~fZl_3LYW-B?Ia>ui`ELg z&Qfe!7m6ze=mZ`Ia9$z|ARSw|IdMpooY4YiPN8K z4B(ts3p%2i(Td=tgEHX z0UQ_>URBtG+-?0E;E7Ld^dyZ;jjw0}XZ(}-QzC6+NN=40oDb2^v!L1g9xRvE#@IBR zO!b-2N7wVfLV;mhEaXQ9XAU+>=XVA6f&T4Z-@AX!leJ8obP^P^wP0aICND?~w&NykJ#54x3_@r7IDMdRNy4Hh;h*!u(Ol(#0bJdwEo$5437-UBjQ+j=Ic>Q2z` zJNDf0yO6@mr6y1#n3)s(W|$iE_i8r@Gd@!DWDqZ7J&~gAm1#~maIGJ1sls^gxL9LLG_NhU!pTGty!TbhzQnu)I*S^54U6Yu%ZeCg`R>Q zhBv$n5j0v%O_j{QYWG!R9W?5_b&67KB$t}&e2LdMvd(PxN6Ir!H4>PNlerpBL>Zvyy!yw z-SOo8caEpDt(}|gKPBd$qND5#a5nju^O>V&;f890?yEOfkSG^HQVmEbM3Ugzu+UtH zC(INPDdraBN?P%kE;*Ae%Wto&sgw(crfZ#Qy(<4nk;S|hD3j{IQRI6Yq|f^basLY; z-HB&Je%Gg}Jt@={_C{L$!RM;$$|iD6vu#3w?v?*;&()uB|I-XqEKqZPS!reW9JkLewLb!70T7n`i!gNtb1%vN- zySZj{8-1>6E%H&=V}LM#xmt`J3XQoaD|@XygXjdZ1+P77-=;=eYpoEQ01B@L*a(uW zrZeZz?HJsw_4g0vhUgkg@VF8<-X$B8pOqCuWAl28uB|@r`19DTUQQsb^pfqB6QtiT z*`_UZ`fT}vtUY#%sq2{rchyfu*pCg;uec2$-$N_xgjZcoumE5vSI{+s@iLWoz^Mf; zuI8kDP{!XY6OP~q5}%1&L}CtfH^N<3o4L@J@zg1-mt{9L`s^z$Vgb|mr{@WiwAqKg zp#t-lhrU>F8o0s1q_9y`gQNf~Vb!F%70f}$>i7o4ho$`uciNf=xgJ>&!gSt0g;M>*x4-`U)ysFW&Vs^Vk6m%?iuWU+o&m(2Jm26Y(3%TL; zA7T)BP{WS!&xmxNw%J=$MPfn(9*^*TV;$JwRy8Zl*yUZi8jWYF>==j~&S|Xinsb%c z2?B+kpet*muEW7@AzjBA^wAJBY8i|#C{WtO_or&Nj2{=6JTTX05}|H>N2B|Wf!*3_ z7hW*j6p3TvpghEc6-wufFiY!%-GvOx*bZrhZu+7?iSrZL5q9}igiF^*R3%DE4aCHZ zqu>xS8LkW+Auv%z-<1Xs92u23R$nk@Pk}MU5!gT|c7vGlEA%G^2th&Q*zfg%-D^=f z&J_}jskj|Q;73NP4<4k*Y%pXPU2Thoqr+5uH1yEYM|VtBPW6lXaetokD0u z9qVek6Q&wk)tFbQ8(^HGf3Wp16gKmr>G;#G(HRBx?F`9AIRboK+;OfHaLJ(P>IP0w zyTbTkx_THEOs%Q&aPrxbZrJlio+hCC_HK<4%f3ZoSAyG7Dn`=X=&h@m*|UYO-4Hq0 z-Bq&+Ie!S##4A6OGoC~>ZW`Y5J)*ouaFl_e9GA*VSL!O_@xGiBw!AF}1{tB)z(w%c zS1Hmrb9OC8>0a_$BzeiN?rkPLc9%&;1CZW*4}CDDNr2gcl_3z+WC15&H1Zc2{o~i) z)LLW=WQ{?ricmC`G1GfJ0Yp4Dy~Ba;j6ZV4r{8xRs`13{dD!xXmr^Aga|C=iSmor% z8hi|pTXH)5Yf&v~exp3o+sY4B^^b*eYkkCYl*T{*=-0HniSA_1F53eCb{x~1k3*`W zr~};p1A`k{1DV9=UPnLDgz{aJH=-LQo<5%+Em!DNN252xwIf*wF_zS^!(XSm(9eoj z=*dXG&n0>)_)N5oc6v!>-bd(2ragD8O=M|wGW z!xJQS<)u70m&6OmrF0WSsr@I%T*c#Qo#Ha4d3COcX+9}hM5!7JIGF>7<~C(Ear^Sn zm^ZFkV6~Ula6+8S?oOROOA6$C&q&dp`>oR-2Ym3(HT@O7Sd5c~+kjrmM)YmgPH*tL zX+znN>`tv;5eOfX?h{AuX^LK~V#gPCu=)Tigtq9&?7Xh$qN|%A$?V*v=&-2F$zTUv z`C#WyIrChS5|Kgm_GeudCFf;)!WH7FI60j^0o#65o6`w*S7R@)88n$1nrgU(oU0M9 zx+EuMkC>(4j1;m6NoGqEkpJYJ?vc|B zOlwT3t&UgL!pX_P*6g36`ZXQ; z9~Cv}ANFnJGp(;ZhS(@FT;3e)0)Kp;h^x;$*xZn*k0U6-&FwI=uOGaODdrsp-!K$Ac32^c{+FhI-HkYd5v=`PGsg%6I`4d9Jy)uW0y%) zm&j^9WBAp*P8#kGJUhB!L?a%h$hJgQrx!6KCB_TRo%9{t0J7KW8!o1B!NC)VGLM5! zpZy5Jc{`r{1e(jd%jsG7k%I+m#CGS*BPA65ZVW~fLYw0dA-H_}O zrkGFL&P1PG9p2(%QiEWm6x;U-U&I#;Em$nx-_I^wtgw3xUPVVu zqSuKnx&dIT-XT+T10p;yjo1Y)z(x1fb8Dzfn8e yu?e%!_ptzGB|8GrCfu%p?(_ zQccdaaVK$5bz;*rnyK{_SQYM>;aES6Qs^lj9lEs6_J+%nIiuQC*fN;z8md>r_~Mfl zU%p5Dt_YT>gQqfr@`cR!$NWr~+`CZb%dn;WtzrAOI>P_JtsB76PYe*<%H(y>qx-`Kq!X_; z<{RpAqYhE=L1r*M)gNF3B8r(<%8mo*SR2hu zccLRZwGARt)Hlo1euqTyM>^!HK*!Q2P;4UYrysje@;(<|$&%vQekbn|0Ruu_Io(w4#%p6ld2Yp7tlA`Y$cciThP zKzNGIMPXX%&Ud0uQh!uQZz|FB`4KGD?3!ND?wQt6!n*f4EmCoJUh&b?;B{|lxs#F- z31~HQ`SF4x$&v00@(P+j1pAaj5!s`)b2RDBp*PB=2IB>oBF!*6vwr7Dp%zpAx*dPr zb@Zjq^XjN?O4QcZ*O+8>)|HlrR>oD*?WQl5ri3R#2?*W6iJ>>kH%KnnME&TT@ZzrHS$Q%LC?n|e>V+D+8D zYc4)QddFz7I8#}y#Wj6>4P%34dZH~OUDb?uP%-E zwjXM(?Sg~1!|wI(RVuxbu)-rH+O=igSho_pDCw(c6b=P zKk4ATlB?bj9+HHlh<_!&z0rx13K3ZrAR8W)!@Y}o`?a*JJsD+twZIv`W)@Y?Amu_u zz``@-e2X}27$i(2=9rvIu5uTUOVhzwu%mNazS|lZb&PT;XE2|B&W1>=B58#*!~D&) zfVmJGg8UdP*fx(>Cj^?yS^zH#o-$Q-*$SnK(ZVFkw+er=>N^7!)FtP3y~Xxnu^nzY zikgB>Nj0%;WOltWIob|}%lo?_C7<``a5hEkx&1ku$|)i>Rh6@3h*`slY=9U}(Ql_< zaNG*J8vb&@zpdhAvv`?{=zDedJ23TD&Zg__snRAH4eh~^oawdYi6A3w8<Ozh@Kw)#bdktM^GVb zrG08?0bG?|NG+w^&JvD*7LAbjED{_Zkc`3H!My>0u5Q}m!+6VokMLXxl`Mkd=g&Xx z-a>m*#G3SLlhbKB!)tnzfWOBV;u;ftU}S!NdD5+YtOjLg?X}dl>7m^gOpihrf1;PY zvll&>dIuUGs{Qnd- zwIR3oIrct8Va^Tm0t#(bJD7c$Z7DO9*7NnRZorrSm`b`cxz>OIC;jSE3DO8`hX955ui`s%||YQtt2 z5DNA&pG-V+4oI2s*x^>-$6J?p=I>C|9wZF8z;VjR??Icg?1w2v5Me+FgAeGGa8(3S z4vg*$>zC-WIVZtJ7}o9{D-7d>zCe|z#<9>CFve-OPAYsneTb^JH!Enaza#j}^mXy1 z+ULn^10+rWLF6j2>Ya@@Kq?26>AqK{A_| zQKb*~F1>sE*=d?A?W7N2j?L09_7n+HGi{VY;MoTGr_)G9)ot$p!-UY5zZ2Xtbm=t z@dpPSGwgH=QtIcEulQNI>S-#ifbnO5EWkI;$A|pxJd885oM+ zGZ0_0gDvG8q2xebj+fbCHYfAXuZStH2j~|d^sBAzo46(K8n59+T6rzBwK)^rfPT+B zyIFw)9YC-V^rhtK`!3jrhmW-sTmM+tPH+;nwjL#-SjQPUZ53L@A>y*rt(#M(qsiB2 zx6B)dI}6Wlsw%bJ8h|(lhkJVogQZA&n{?Vgs6gNSXzuZpEyu*xySy8ro07QZ7Vk1!3tJphN_5V7qOiyK8p z#@jcDD8nmtYi1^l8ml;AF<#IPK?!pqf9D4moYk>d99Im}Jtwj6c#+A;f)CQ*f-hZ< z=p_T86jog%!p)D&5g9taSwYi&eP z#JuEK%+NULWus;0w32-SYFku#i}d~+{Pkho&^{;RxzP&0!RCm3-9K6`>KZpnzS6?L z^H^V*s!8<>x8bomvD%rh>Zp3>Db%kyin;qtl+jAv8Oo~1g~mqGAC&Qi_wy|xEt2iz zWAJEfTV%cl2Cs<1L&DLRVVH05EDq`pH7Oh7sR`NNkL%wi}8n>IXcO40hp+J+sC!W?!krJf!GJNE8uj zg-y~Ns-<~D?yqbzVRB}G>0A^f0!^N7l=$m0OdZuqAOQqLc zX?AEGr1Ht+inZ-Qiwnl@Z0qukd__a!C*CKuGdy5#nD7VUBM^6OCpxCa2A(X;e0&V4 zM&WR8+wErQ7UIc6LY~Q9x%Sn*Tn>>P`^t&idaOEnOd(Ufw#>NoR^1QdhJ8s`h^|R_ zXX`c5*O~Xdvh%q;7L!_!ohf$NfEBmCde|#uVZvEo>OfEq%+Ns7&_f$OR9xsihRpBb z+cjk8LyDm@U{YN>+r46?nn{7Gh(;WhFw6GAxtcKD+YWV?uge>;+q#Xx4!GpRkVZYu zzsF}1)7$?%s9g9CH=Zs+B%M_)+~*j3L0&Q9u7!|+T`^O{xE6qvAP?XWv9_MrZKdo& z%IyU)$Q95AB4!#hT!_dA>4e@zjOBD*Y=XjtMm)V|+IXzjuM;(l+8aA5#Kaz_$rR6! zj>#&^DidYD$nUY(D$mH`9eb|dtV0b{S>H6FBfq>t5`;OxA4Nn{J(+XihF(stSche7$es&~N$epi&PDM_N`As;*9D^L==2Q7Z2zD+CiU(|+-kL*VG+&9!Yb3LgPy?A zm7Z&^qRG_JIxK7-FBzZI3Q<;{`DIxtc48k> zc|0dmX;Z=W$+)qE)~`yn6MdoJ4co;%!`ddy+FV538Y)j(vg}5*k(WK)KWZ3WaOG!8 z!syGn=s{H$odtpqFrT#JGM*utN7B((abXnpDM6w56nhw}OY}0TiTG1#f*VFZr+^-g zbP10`$LPq_;PvrA1XXlyx2uM^mrjTzX}w{yuLo-cOClE8MMk47T25G8M!9Z5ypOSV zAJUBGEg5L2fY)ZGJb^E34R2zJ?}Vf>{~gB!8=5Z) z9y$>5c)=;o0HeHHSuE4U)#vG&KF|I%-cF6f$~pdYJWk_dD}iOA>iA$O$+4%@>JU08 zS`ep)$XLPJ+n0_i@PkF#ri6T8?ZeAot$6JIYHm&P6EB=BiaNY|aA$W0I+nz*zkz_z zkEru!tj!QUffq%)8y0y`T&`fuus-1p>=^hnBiBqD^hXrPs`PY9tU3m0np~rISY09> z`P3s=-kt_cYcxWd{de@}TwSqg*xVhp;E9zCsnXo6z z?f&Sv^U7n4`xr=mXle94HzOdN!2kB~4=%)u&N!+2;z6UYKUDqi-s6AZ!haB;@&B`? z_TRX0%@suz^TRdCb?!vNJYPY8L_}&07uySH9%W^Tc&1pia6y1q#?*Drf}GjGbPjBS zbOPcUY#*$3sL2x4v_i*Y=N7E$mR}J%|GUI(>WEr+28+V z%v5{#e!UF*6~G&%;l*q*$V?&r$Pp^sE^i-0$+RH3ERUUdQ0>rAq2(2QAbG}$y{de( z>{qD~GGuOk559Y@%$?N^1ApVL_a704>8OD%8Y%8B;FCt%AoPu8*D1 zLB5X>b}Syz81pn;xnB}%0FnwazlWfUV)Z-~rZg6~b z6!9J$EcE&sEbzcy?CI~=boWA&eeIa%z(7SE^qgVLz??1Vbc1*aRvc%Mri)AJaAG!p z$X!_9Ds;Zz)f+;%s&dRcJt2==P{^j3bf0M=nJd&xwUGlUFn?H=2W(*2I2Gdu zv!gYCwM10aeus)`RIZSrCK=&oKaO_Ry~D1B5!y0R=%!i2*KfXGYX&gNv_u+n9wiR5 z*e$Zjju&ODRW3phN925%S(jL+bCHv6rZtc?!*`1TyYXT6%Ju=|X;6D@lq$8T zW{Y|e39ioPez(pBH%k)HzFITXHvnD6hw^lIoUMA;qAJ^CU?top1fo@s7xT13Fvn1H z6JWa-6+FJF#x>~+A;D~;VDs26>^oH0EI`IYT2iagy23?nyJ==i{g4%HrAf1-*v zK1)~@&(KkwR7TL}L(A@C_S0G;-GMDy=MJn2$FP5s<%wC)4jC5PXoxrQBFZ_k0P{{s@sz+gX`-!=T8rcB(=7vW}^K6oLWMmp(rwDh}b zwaGGd>yEy6fHv%jM$yJXo5oMAQ>c9j`**}F?MCry;T@47@r?&sKHgVe$MCqk#Z_3S z1GZI~nOEN*P~+UaFGnj{{Jo@16`(qVNtbU>O0Hf57-P>x8Jikp=`s8xWs^dAJ9lCQ z)GFm+=OV%AMVqVATtN@|vp61VVAHRn87}%PC^RAzJ%JngmZTasWBAWsoAqBU+8L8u z4A&Pe?fmTm0?mK-BL9t+{y7o(7jm+RpOhL9KnY#E&qu^}B6=K_dB}*VlSEiC9fn)+V=J;OnN)Ta5v66ic1rG+dGAJ1 z1%Zb_+!$=tQ~lxQrzv3x#CPb?CekEkA}0MYSgx$Jdd}q8+R=ma$|&1a#)TQ=l$1tQ z=tL9&_^vJ)Pk}EDO-va`UCT1m#Uty1{v^A3P~83_#v^ozH}6*9mIjIr;t3Uv%@VeW zGL6(CwCUp)Jq%G0bIG%?{_*Y#5IHf*5M@wPo6A{$Um++Co$wLC=J1aoG93&T7Ho}P z=mGEPP7GbvoG!uD$k(H3A$Z))+i{Hy?QHdk>3xSBXR0j!11O^mEe9RHmw!pvzv?Ua~2_l2Yh~_!s1qS`|0~0)YsbHSz8!mG)WiJE| z2f($6TQtt6L_f~ApQYQKSb=`053LgrQq7G@98#igV>y#i==-nEjQ!XNu9 z~;mE+gtj4IDDNQJ~JVk5Ux6&LCSFL!y=>79kE9=V}J7tD==Ga+IW zX)r7>VZ9dY=V&}DR))xUoV!u(Z|%3ciQi_2jl}3=$Agc(`RPb z8kEBpvY>1FGQ9W$n>Cq=DIpski};nE)`p3IUw1Oz0|wxll^)4dq3;CCY@RyJgFgc# zKouFh!`?Xuo{IMz^xi-h=StCis_M7yq$u) z?XHvw*HP0VgR+KR6wI)jEMX|ssqYvSf*_3W8zVTQzD?3>H!#>InzpSO)@SC8q*ii- z%%h}_#0{4JG;Jm`4zg};BPTGkYamx$Xo#O~lBirRY)q=5M45n{GCfV7h9qwyu1NxOMoP4)jjZMxmT|IQQh0U7C$EbnMN<3)Kk?fFHYq$d|ICu>KbY_hO zTZM+uKHe(cIZfEqyzyYSUBZa8;Fcut-GN!HSA9ius`ltNebF46ZX_BbZNU}}ZOm{M2&nANL9@0qvih15(|`S~z}m&h!u4x~(%MAO$jHRWNfuxWF#B)E&g3ghSQ9|> z(MFaLQj)NE0lowyjvg8z0#m6FIuKE9lDO~Glg}nSb7`~^&#(Lw{}GVOS>U)m8bF}x zVjbXljBm34Cs-yM6TVusr+3kYFjr28STT3g056y3cH5Tmge~ASxBj z%|yb>$eF;WgrcOZf569sDZOVwoo%8>XO>XQOX1OyN9I-SQgrm;U;+#3OI(zrWyow3 zk==|{lt2xrQ%FIXOTejR>;wv(Pb8u8}BUpx?yd(Abh6? zsoO3VYWkeLnF43&@*#MQ9-i-d0t*xN-UEyNKeyNMHw|A(k(_6QKO=nKMCxD(W(Yop zsRQ)QeL4X3Lxp^L%wzi2-WVSsf61dqliPUM7srDB?Wm6Lzn0&{*}|IsKQW;02(Y&| zaTKv|`U(pSzuvR6Rduu$wzK_W-Y-7>7s?G$)U}&uK;<>vU}^^ns@Z!p+9?St1s)dG zK%y6xkPyyS1$~&6v{kl?Md6gwM|>mt6Upm>oa8RLD^8T{0?HC!Z>;(Bob7el(DV6x zi`I)$&E&ngwFS@bi4^xFLAn`=fzTC;aimE^!cMI2n@Vo%Ae-ne`RF((&5y6xsjjAZ zVguVoQ?Z9uk$2ON;ersE%PU*xGO@T*;j1BO5#TuZKEf(mB7|g7pcEA=nYJ{s3vlbg zd4-DUlD{*6o%Gc^N!Nptgay>j6E5;3psI+C3Q!1ZIbeCubW%w4pq9)MSDyB{HLm|k zxv-{$$A*pS@csolri$Ge<4VZ}e~78JOL-EVyrbxKra^d{?|NnPp86!q>t<&IP07?Z z^>~IK^k#OEKgRH+LjllZXk7iA>2cfH6+(e&9ku5poo~6y{GC5>(bRK7hwjiurqAiZ zg*DmtgY}v83IjE&AbiWgMyFbaRUPZ{lYiz$U^&Zt2YjG<%m((&_JUbZcfJ22(>bi5 z!J?<7AySj0JZ&<-qXX;mcV!f~>G=sB0KnjWca4}vrtunD^1TrpfeS^4dvFr!65knK zZh`d;*VOkPs4*-9kL>$GP0`(M!j~B;#x?Ba~&s6CopvO86oM?-? zOw#dIRc;6A6T?B`Qp%^<U5 z19x(ywSH$_N+Io!6;e?`tWaM$`=Db!gzx|lQ${DG!zb1Zl&|{kX0y6xvO1o z220r<-oaS^^R2pEyY;=Qllqpmue|5yI~D|iI!IGt@iod{Opz@*ml^w2bNs)p`M(Io z|E;;m*Xpjd9l)4G#KaWfV(t8YUn@A;nK^#xgv=LtnArX|vWQVuw3}B${h+frU2>9^ z!l6)!Uo4`5k`<<;E(ido7M6lKTgWezNLq>U*=uz&s=cc$1%>VrAeOoUtA|T6gO4>UNqsdK=NF*8|~*sl&wI=x9-EGiq*aqV!(VVXA57 zw9*o6Ir8Lj1npUXvlevtn(_+^X5rzdR>#(}4YcB9O50q97%rW2me5_L=%ffYPUSRc z!vv?Kv>dH994Qi>U(a<0KF6NH5b16enCp+mw^Hb3Xs1^tThFpz!3QuN#}KBbww`(h z7GO)1olDqy6?T$()R7y%NYx*B0k_2IBiZ14&8|JPFxeMF{vW>HF-Vi3+ZOI=+qP}n zw(+!WcTd~4ZJX1!ZM&y!+uyt=&i!+~d(V%GjH;-NsEEv6nS1TERt|RHh!0>W4+4pp z1-*EzAM~i`+1f(VEHI8So`S`akPfPTfq*`l{Fz`hS%k#JS0cjT2mS0#QLGf=J?1`he3W*;m4)ce8*WFq1sdP=~$5RlH1EdWm|~dCvKOi4*I_96{^95p#B<(n!d?B z=o`0{t+&OMwKcxiBECznJcfH!fL(z3OvmxP#oWd48|mMjpE||zdiTBdWelj8&Qosv zZFp@&UgXuvJw5y=q6*28AtxZzo-UUpkRW%ne+Ylf!V-0+uQXBW=5S1o#6LXNtY5!I z%Rkz#(S8Pjz*P7bqB6L|M#Er{|QLae-Y{KA>`^} z@lPjeX>90X|34S-7}ZVXe{wEei1<{*e8T-Nbj8JmD4iwcE+Hg_zhkPVm#=@b$;)h6 z<<6y`nPa`f3I6`!28d@kdM{uJOgM%`EvlQ5B2bL)Sl=|y@YB3KeOzz=9cUW3clPAU z^sYc}xf9{4Oj?L5MOlYxR{+>w=vJjvbyO5}ptT(o6dR|ygO$)nVCvNGnq(6;bHlBd zl?w-|plD8spjDF03g5ip;W3Z z><0{BCq!Dw;h5~#1BuQilq*TwEu)qy50@+BE4bX28+7erX{BD4H)N+7U`AVEuREE8 z;X?~fyhF-x_sRfHIj~6f(+^@H)D=ngP;mwJjxhQUbUdzk8f94Ab%59-eRIq?ZKrwD z(BFI=)xrUlgu(b|hAysqK<}8bslmNNeD=#JW*}^~Nrswn^xw*nL@Tx!49bfJecV&KC2G4q5a!NSv)06A_5N3Y?veAz;Gv+@U3R% z)~UA8-0LvVE{}8LVDOHzp~2twReqf}ODIyXMM6=W>kL|OHcx9P%+aJGYi_Om)b!xe zF40Vntn0+VP>o<$AtP&JANjXBn7$}C@{+@3I@cqlwR2MdwGhVPxlTIcRVu@Ho-wO` z_~Or~IMG)A_`6-p)KPS@cT9mu9RGA>dVh5wY$NM9-^c@N=hcNaw4ITjm;iWSP^ZX| z)_XpaI61<+La+U&&%2a z0za$)-wZP@mwSELo#3!PGTt$uy0C(nTT@9NX*r3Ctw6J~7A(m#8fE)0RBd`TdKfAT zCf@$MAxjP`O(u9s@c0Fd@|}UQ6qp)O5Q5DPCeE6mSIh|Rj{$cAVIWsA=xPKVKxdhg zLzPZ`3CS+KIO;T}0Ip!fAUaNU>++ZJZRk@I(h<)RsJUhZ&Ru9*!4Ptn;gX^~4E8W^TSR&~3BAZc#HquXn)OW|TJ`CTahk+{qe`5+ixON^zA9IFd8)kc%*!AiLu z>`SFoZ5bW-%7}xZ>gpJcx_hpF$2l+533{gW{a7ce^B9sIdmLrI0)4yivZ^(Vh@-1q zFT!NQK$Iz^xu%|EOK=n>ug;(7J4OnS$;yWmq>A;hsD_0oAbLYhW^1Vdt9>;(JIYjf zdb+&f&D4@4AS?!*XpH>8egQvSVX`36jMd>$+RgI|pEg))^djhGSo&#lhS~9%NuWfX zDDH;3T*GzRT@5=7ibO>N-6_XPBYxno@mD_3I#rDD?iADxX`! zh*v8^i*JEMzyN#bGEBz7;UYXki*Xr(9xXax(_1qVW=Ml)kSuvK$coq2A(5ZGhs_pF z$*w}FbN6+QDseuB9=fdp_MTs)nQf!2SlROQ!gBJBCXD&@-VurqHj0wm@LWX-TDmS= z71M__vAok|@!qgi#H&H%Vg-((ZfxPAL8AI{x|VV!9)ZE}_l>iWk8UPTGHs*?u7RfP z5MC&=c6X;XlUzrz5q?(!eO@~* zoh2I*%J7dF!!_!vXoSIn5o|wj1#_>K*&CIn{qSaRc&iFVxt*^20ngCL;QonIS>I5^ zMw8HXm>W0PGd*}Ko)f|~dDd%;Wu_RWI_d;&2g6R3S63Uzjd7dn%Svu-OKpx*o|N>F zZg=-~qLb~VRLpv`k zWSdfHh@?dp=s_X`{yxOlxE$4iuyS;Z-x!*E6eqmEm*j2bE@=ZI0YZ5%Yj29!5+J$4h{s($nakA`xgbO8w zi=*r}PWz#lTL_DSAu1?f%-2OjD}NHXp4pXOsCW;DS@BC3h-q4_l`<))8WgzkdXg3! zs1WMt32kS2E#L0p_|x+x**TFV=gn`m9BWlzF{b%6j-odf4{7a4y4Uaef@YaeuPhU8 zHBvRqN^;$Jizy+ z=zW{E5<>2gp$pH{M@S*!sJVQU)b*J5*bX4h>5VJve#Q6ga}cQ&iL#=(u+KroWrxa%8&~p{WEUF0il=db;-$=A;&9M{Rq`ouZ5m%BHT6%st%saGsD6)fQgLN}x@d3q>FC;=f%O3Cyg=Ke@Gh`XW za@RajqOE9UB6eE=zhG%|dYS)IW)&y&Id2n7r)6p_)vlRP7NJL(x4UbhlcFXWT8?K=%s7;z?Vjts?y2+r|uk8Wt(DM*73^W%pAkZa1Jd zNoE)8FvQA>Z`eR5Z@Ig6kS5?0h;`Y&OL2D&xnnAUzQz{YSdh0k zB3exx%A2TyI)M*EM6htrxSlep!Kk(P(VP`$p0G~f$smld6W1r_Z+o?=IB@^weq>5VYsYZZR@` z&XJFxd5{|KPZmVOSxc@^%71C@;z}}WhbF9p!%yLj3j%YOlPL5s>7I3vj25 z@xmf=*z%Wb4;Va6SDk9cv|r*lhZ`(y_*M@>q;wrn)oQx%B(2A$9(74>;$zmQ!4fN; z>XurIk-7@wZys<+7XL@0Fhe-f%*=(weaQEdR9Eh6>Kl-EcI({qoZqyzziGwpg-GM#251sK_ z=3|kitS!j%;fpc@oWn65SEL73^N&t>Ix37xgs= zYG%eQDJc|rqHFia0!_sm7`@lvcv)gfy(+KXA@E{3t1DaZ$DijWAcA)E0@X?2ziJ{v z&KOYZ|DdkM{}t+@{@*6ge}m%xfjIxi%qh`=^2Rwz@w0cCvZ&Tc#UmCDbVwABrON^x zEBK43FO@weA8s7zggCOWhMvGGE`baZ62cC)VHyy!5Zbt%ieH+XN|OLbAFPZWyC6)p z4P3%8sq9HdS3=ih^0OOlqTPbKuzQ?lBEI{w^ReUO{V?@`ARsL|S*%yOS=Z%sF)>-y z(LAQdhgAcuF6LQjRYfdbD1g4o%tV4EiK&ElLB&^VZHbrV1K>tHTO{#XTo>)2UMm`2 z^t4s;vnMQgf-njU-RVBRw0P0-m#d-u`(kq7NL&2T)TjI_@iKuPAK-@oH(J8?%(e!0Ir$yG32@CGUPn5w4)+9@8c&pGx z+K3GKESI4*`tYlmMHt@br;jBWTei&(a=iYslc^c#RU3Q&sYp zSG){)V<(g7+8W!Wxeb5zJb4XE{I|&Y4UrFWr%LHkdQ;~XU zgy^dH-Z3lmY+0G~?DrC_S4@=>0oM8Isw%g(id10gWkoz2Q%7W$bFk@mIzTCcIB(K8 zc<5h&ZzCdT=9n-D>&a8vl+=ZF*`uTvQviG_bLde*k>{^)&0o*b05x$MO3gVLUx`xZ z43j+>!u?XV)Yp@MmG%Y`+COH2?nQcMrQ%k~6#O%PeD_WvFO~Kct za4XoCM_X!c5vhRkIdV=xUB3xI2NNStK*8_Zl!cFjOvp-AY=D;5{uXj}GV{LK1~IE2 z|KffUiBaStRr;10R~K2VVtf{TzM7FaPm;Y(zQjILn+tIPSrJh&EMf6evaBKIvi42-WYU9Vhj~3< zZSM-B;E`g_o8_XTM9IzEL=9Lb^SPhe(f(-`Yh=X6O7+6ALXnTcUFpI>ekl6v)ZQeNCg2 z^H|{SKXHU*%nBQ@I3It0m^h+6tvI@FS=MYS$ZpBaG7j#V@P2ZuYySbp@hA# ze(kc;P4i_-_UDP?%<6>%tTRih6VBgScKU^BV6Aoeg6Uh(W^#J^V$Xo^4#Ekp ztqQVK^g9gKMTHvV7nb64UU7p~!B?>Y0oFH5T7#BSW#YfSB@5PtE~#SCCg3p^o=NkMk$<8- z6PT*yIKGrvne7+y3}_!AC8NNeI?iTY(&nakN>>U-zT0wzZf-RuyZk^X9H-DT_*wk= z;&0}6LsGtfVa1q)CEUPlx#(ED@-?H<1_FrHU#z5^P3lEB|qsxEyn%FOpjx z3S?~gvoXy~L(Q{Jh6*i~=f%9kM1>RGjBzQh_SaIDfSU_9!<>*Pm>l)cJD@wlyxpBV z4Fmhc2q=R_wHCEK69<*wG%}mgD1=FHi4h!98B-*vMu4ZGW~%IrYSLGU{^TuseqVgV zLP<%wirIL`VLyJv9XG_p8w@Q4HzNt-o;U@Au{7%Ji;53!7V8Rv0^Lu^Vf*sL>R(;c zQG_ZuFl)Mh-xEIkGu}?_(HwkB2jS;HdPLSxVU&Jxy9*XRG~^HY(f0g8Q}iqnVmgjI zfd=``2&8GsycjR?M%(zMjn;tn9agcq;&rR!Hp z$B*gzHsQ~aXw8c|a(L^LW(|`yGc!qOnV(ZjU_Q-4z1&0;jG&vAKuNG=F|H?@m5^N@ zq{E!1n;)kNTJ>|Hb2ODt-7U~-MOIFo%9I)_@7fnX+eMMNh>)V$IXesJpBn|uo8f~#aOFytCT zf9&%MCLf8mp4kwHTcojWmM3LU=#|{3L>E}SKwOd?%{HogCZ_Z1BSA}P#O(%H$;z7XyJ^sjGX;j5 zrzp>|Ud;*&VAU3x#f{CKwY7Vc{%TKKqmB@oTHA9;>?!nvMA;8+Jh=cambHz#J18x~ zs!dF>$*AnsQ{{82r5Aw&^7eRCdvcgyxH?*DV5(I$qXh^zS>us*I66_MbL8y4d3ULj z{S(ipo+T3Ag!+5`NU2sc+@*m{_X|&p#O-SAqF&g_n7ObB82~$p%fXA5GLHMC+#qqL zdt`sJC&6C2)=juQ_!NeD>U8lDVpAOkW*khf7MCcs$A(wiIl#B9HM%~GtQ^}yBPjT@ z+E=|A!Z?A(rwzZ;T}o6pOVqHzTr*i;Wrc%&36kc@jXq~+w8kVrs;%=IFdACoLAcCAmhFNpbP8;s`zG|HC2Gv?I~w4ITy=g$`0qMQdkijLSOtX6xW%Z9Nw<;M- zMN`c7=$QxN00DiSjbVt9Mi6-pjv*j(_8PyV-il8Q-&TwBwH1gz1uoxs6~uU}PrgWB zIAE_I-a1EqlIaGQNbcp@iI8W1sm9fBBNOk(k&iLBe%MCo#?xI$%ZmGA?=)M9D=0t7 zc)Q0LnI)kCy{`jCGy9lYX%mUsDWwsY`;jE(;Us@gmWPqjmXL+Hu#^;k%eT>{nMtzj zsV`Iy6leTA8-PndszF;N^X@CJrTw5IIm!GPeu)H2#FQitR{1p;MasQVAG3*+=9FYK zw*k!HT(YQorfQj+1*mCV458(T5=fH`um$gS38hw(OqVMyunQ;rW5aPbF##A3fGH6h z@W)i9Uff?qz`YbK4c}JzQpuxuE3pcQO)%xBRZp{zJ^-*|oryTxJ-rR+MXJ)!f=+pp z10H|DdGd2exhi+hftcYbM0_}C0ZI-2vh+$fU1acsB-YXid7O|=9L!3e@$H*6?G*Zp z%qFB(sgl=FcC=E4CYGp4CN>=M8#5r!RU!u+FJVlH6=gI5xHVD&k;Ta*M28BsxfMV~ zLz+@6TxnfLhF@5=yQo^1&S}cmTN@m!7*c6z;}~*!hNBjuE>NLVl2EwN!F+)0$R1S! zR|lF%n!9fkZ@gPW|x|B={V6x3`=jS*$Pu0+5OWf?wnIy>Y1MbbGSncpKO0qE(qO=ts z!~@&!N`10S593pVQu4FzpOh!tvg}p%zCU(aV5=~K#bKi zHdJ1>tQSrhW%KOky;iW+O_n;`l9~omqM%sdxdLtI`TrJzN6BQz+7xOl*rM>xVI2~# z)7FJ^Dc{DC<%~VS?@WXzuOG$YPLC;>#vUJ^MmtbSL`_yXtNKa$Hk+l-c!aC7gn(Cg ze?YPYZ(2Jw{SF6MiO5(%_pTo7j@&DHNW`|lD`~{iH+_eSTS&OC*2WTT*a`?|9w1dh zh1nh@$a}T#WE5$7Od~NvSEU)T(W$p$s5fe^GpG+7fdJ9=enRT9$wEk+ZaB>G3$KQO zgq?-rZZnIv!p#>Ty~}c*Lb_jxJg$eGM*XwHUwuQ|o^}b3^T6Bxx{!?va8aC@-xK*H ztJBFvFfsSWu89%@b^l3-B~O!CXs)I6Y}y#0C0U0R0WG zybjroj$io0j}3%P7zADXOwHwafT#uu*zfM!oD$6aJx7+WL%t-@6^rD_a_M?S^>c;z zMK580bZXo1f*L$CuMeM4Mp!;P@}b~$cd(s5*q~FP+NHSq;nw3fbWyH)i2)-;gQl{S zZO!T}A}fC}vUdskGSq&{`oxt~0i?0xhr6I47_tBc`fqaSrMOzR4>0H^;A zF)hX1nfHs)%Zb-(YGX;=#2R6C{BG;k=?FfP?9{_uFLri~-~AJ;jw({4MU7e*d)?P@ zXX*GkNY9ItFjhwgAIWq7Y!ksbMzfqpG)IrqKx9q{zu%Mdl+{Dis#p9q`02pr1LG8R z@As?eG!>IoROgS!@J*to<27coFc1zpkh?w=)h9CbYe%^Q!Ui46Y*HO0mr% zEff-*$ndMNw}H2a5@BsGj5oFfd!T(F&0$<{GO!Qdd?McKkorh=5{EIjDTHU`So>8V zBA-fqVLb2;u7UhDV1xMI?y>fe3~4urv3%PX)lDw+HYa;HFkaLqi4c~VtCm&Ca+9C~ zge+67hp#R9`+Euq59WhHX&7~RlXn=--m8$iZ~~1C8cv^2(qO#X0?vl91gzUKBeR1J z^p4!!&7)3#@@X&2aF2-)1Ffcc^F8r|RtdL2X%HgN&XU-KH2SLCbpw?J5xJ*!F-ypZ zMG%AJ!Pr&}`LW?E!K~=(NJxuSVTRCGJ$2a*Ao=uUDSys!OFYu!Vs2IT;xQ6EubLIl z+?+nMGeQQhh~??0!s4iQ#gm3!BpMpnY?04kK375e((Uc7B3RMj;wE?BCoQGu=UlZt!EZ1Q*auI)dj3Jj{Ujgt zW5hd~-HWBLI_3HuO) zNrb^XzPsTIb=*a69wAAA3J6AAZZ1VsYbIG}a`=d6?PjM)3EPaDpW2YP$|GrBX{q*! z$KBHNif)OKMBCFP5>!1d=DK>8u+Upm-{hj5o|Wn$vh1&K!lVfDB&47lw$tJ?d5|=B z^(_9=(1T3Fte)z^>|3**n}mIX;mMN5v2F#l(q*CvU{Ga`@VMp#%rQkDBy7kYbmb-q z<5!4iuB#Q_lLZ8}h|hPODI^U6`gzLJre9u3k3c#%86IKI*^H-@I48Bi*@avYm4v!n0+v zWu{M{&F8#p9cx+gF0yTB_<2QUrjMPo9*7^-uP#~gGW~y3nfPAoV%amgr>PSyVAd@l)}8#X zR5zV6t*uKJZL}?NYvPVK6J0v4iVpwiN|>+t3aYiZSp;m0!(1`bHO}TEtWR1tY%BPB z(W!0DmXbZAsT$iC13p4f>u*ZAy@JoLAkJhzFf1#4;#1deO8#8d&89}en&z!W&A3++^1(;>0SB1*54d@y&9Pn;^IAf3GiXbfT`_>{R+Xv; zQvgL>+0#8-laO!j#-WB~(I>l0NCMt_;@Gp_f0#^c)t?&#Xh1-7RR0@zPyBz!U#0Av zT?}n({(p?p7!4S2ZBw)#KdCG)uPnZe+U|0{BW!m)9 zi_9$F?m<`2!`JNFv+w8MK_K)qJ^aO@7-Ig>cM4-r0bi=>?B_2mFNJ}aE3<+QCzRr*NA!QjHw# z`1OsvcoD0?%jq{*7b!l|L1+Tw0TTAM4XMq7*ntc-Ived>Sj_ZtS|uVdpfg1_I9knY z2{GM_j5sDC7(W&}#s{jqbybqJWyn?{PW*&cQIU|*v8YGOKKlGl@?c#TCnmnAkAzV- zmK={|1G90zz=YUvC}+fMqts0d4vgA%t6Jhjv?d;(Z}(Ep8fTZfHA9``fdUHkA+z3+ zhh{ohP%Bj?T~{i0sYCQ}uC#5BwN`skI7`|c%kqkyWIQ;!ysvA8H`b-t()n6>GJj6xlYDu~8qX{AFo$Cm3d|XFL=4uvc?Keb zzb0ZmMoXca6Mob>JqkNuoP>B2Z>D`Q(TvrG6m`j}-1rGP!g|qoL=$FVQYxJQjFn33lODt3Wb1j8VR zlR++vIT6^DtYxAv_hxupbLLN3e0%A%a+hWTKDV3!Fjr^cWJ{scsAdfhpI)`Bms^M6 zQG$waKgFr=c|p9Piug=fcJvZ1ThMnNhQvBAg-8~b1?6wL*WyqXhtj^g(Ke}mEfZVM zJuLNTUVh#WsE*a6uqiz`b#9ZYg3+2%=C(6AvZGc=u&<6??!slB1a9K)=VL zY9EL^mfyKnD zSJyYBc_>G;5RRnrNgzJz#Rkn3S1`mZgO`(r5;Hw6MveN(URf_XS-r58Cn80K)ArH4 z#Rrd~LG1W&@ttw85cjp8xV&>$b%nSXH_*W}7Ch2pg$$c0BdEo-HWRTZcxngIBJad> z;C>b{jIXjb_9Jis?NZJsdm^EG}e*pR&DAy0EaSGi3XWTa(>C%tz1n$u?5Fb z1qtl?;_yjYo)(gB^iQq?=jusF%kywm?CJP~zEHi0NbZ);$(H$w(Hy@{i>$wcVRD_X|w-~(0Z9BJyh zhNh;+eQ9BEIs;tPz%jSVnfCP!3L&9YtEP;svoj_bNzeGSQIAjd zBss@A;)R^WAu-37RQrM%{DfBNRx>v!G31Z}8-El9IOJlb_MSoMu2}GDYycNaf>uny z+8xykD-7ONCM!APry_Lw6-yT>5!tR}W;W`C)1>pxSs5o1z#j7%m=&=7O4hz+Lsqm` z*>{+xsabZPr&X=}G@obTb{nPTkccJX8w3CG7X+1+t{JcMabv~UNv+G?txRqXib~c^Mo}`q{$`;EBNJ;#F*{gvS12kV?AZ%O0SFB$^ zn+}!HbmEj}w{Vq(G)OGAzH}R~kS^;(-s&=ectz8vN!_)Yl$$U@HNTI-pV`LSj7Opu zTZ5zZ)-S_{GcEQPIQXLQ#oMS`HPu{`SQiAZ)m1at*Hy%3xma|>o`h%E%8BEbi9p0r zVjcsh<{NBKQ4eKlXU|}@XJ#@uQw*$4BxKn6#W~I4T<^f99~(=}a`&3(ur8R9t+|AQ zWkQx7l}wa48-jO@ft2h+7qn%SJtL%~890FG0s5g*kNbL3I&@brh&f6)TlM`K^(bhr zJWM6N6x3flOw$@|C@kPi7yP&SP?bzP-E|HSXQXG>7gk|R9BTj`e=4de9C6+H7H7n# z#GJeVs1mtHhLDmVO?LkYRQc`DVOJ_vdl8VUihO-j#t=0T3%Fc1f9F73ufJz*adn*p zc%&vi(4NqHu^R>sAT_0EDjVR8bc%wTz#$;%NU-kbDyL_dg0%TFafZwZ?5KZpcuaO54Z9hX zD$u>q!-9`U6-D`E#`W~fIfiIF5_m6{fvM)b1NG3xf4Auw;Go~Fu7cth#DlUn{@~yu z=B;RT*dp?bO}o%4x7k9v{r=Y@^YQ^UUm(Qmliw8brO^=NP+UOohLYiaEB3^DB56&V zK?4jV61B|1Uj_5fBKW;8LdwOFZKWp)g{B%7g1~DgO&N& z#lisxf?R~Z@?3E$Mms$$JK8oe@X`5m98V*aV6Ua}8Xs2#A!{x?IP|N(%nxsH?^c{& z@vY&R1QmQs83BW28qAmJfS7MYi=h(YK??@EhjL-t*5W!p z^gYX!Q6-vBqcv~ruw@oMaU&qp0Fb(dbVzm5xJN%0o_^@fWq$oa3X?9s%+b)x4w-q5Koe(@j6Ez7V@~NRFvd zfBH~)U5!ix3isg`6be__wBJp=1@yfsCMw1C@y+9WYD9_C%{Q~7^0AF2KFryfLlUP# zwrtJEcH)jm48!6tUcxiurAMaiD04C&tPe6DI0#aoqz#Bt0_7_*X*TsF7u*zv(iEfA z;$@?XVu~oX#1YXtceQL{dSneL&*nDug^OW$DSLF0M1Im|sSX8R26&)<0Fbh^*l6!5wfSu8MpMoh=2l z^^0Sr$UpZp*9oqa23fcCfm7`ya2<4wzJ`Axt7e4jJrRFVf?nY~2&tRL* zd;6_njcz01c>$IvN=?K}9ie%Z(BO@JG2J}fT#BJQ+f5LFSgup7i!xWRKw6)iITjZU z%l6hPZia>R!`aZjwCp}I zg)%20;}f+&@t;(%5;RHL>K_&7MH^S+7<|(SZH!u zznW|jz$uA`P9@ZWtJgv$EFp>)K&Gt+4C6#*khZQXS*S~6N%JDT$r`aJDs9|uXWdbg zBwho$phWx}x!qy8&}6y5Vr$G{yGSE*r$^r{}pw zVTZKvikRZ`J_IJrjc=X1uw?estdwm&bEahku&D04HD+0Bm~q#YGS6gp!KLf$A{%Qd z&&yX@Hp>~(wU{|(#U&Bf92+1i&Q*-S+=y=3pSZy$#8Uc$#7oiJUuO{cE6=tsPhwPe| zxQpK>`Dbka`V)$}e6_OXKLB%i76~4N*zA?X+PrhH<&)}prET;kel24kW%+9))G^JI zsq7L{P}^#QsZViX%KgxBvEugr>ZmFqe^oAg?{EI=&_O#e)F3V#rc z8$4}0Zr19qd3tE4#$3_f=Bbx9oV6VO!d3(R===i-7p=Vj`520w0D3W6lQfY48}!D* z&)lZMG;~er2qBoI2gsX+Ts-hnpS~NYRDtPd^FPzn!^&yxRy#CSz(b&E*tL|jIkq|l zf%>)7Dtu>jCf`-7R#*GhGn4FkYf;B$+9IxmqH|lf6$4irg{0ept__%)V*R_OK=T06 zyT_m-o@Kp6U{l5h>W1hGq*X#8*y@<;vsOFqEjTQXFEotR+{3}ODDnj;o0@!bB5x=N z394FojuGOtVKBlVRLtHp%EJv_G5q=AgF)SKyRN5=cGBjDWv4LDn$IL`*=~J7u&Dy5 zrMc83y+w^F&{?X(KOOAl-sWZDb{9X9#jrQtmrEXD?;h-}SYT7yM(X_6qksM=K_a;Z z3u0qT0TtaNvDER_8x*rxXw&C^|h{P1qxK|@pS7vdlZ#P z7PdB7MmC2}%sdzAxt>;WM1s0??`1983O4nFK|hVAbHcZ3x{PzytQLkCVk7hA!Lo` zEJH?4qw|}WH{dc4z%aB=0XqsFW?^p=X}4xnCJXK%c#ItOSjdSO`UXJyuc8bh^Cf}8 z@Ht|vXd^6{Fgai8*tmyRGmD_s_nv~r^Fy7j`Bu`6=G)5H$i7Q7lvQnmea&TGvJp9a|qOrUymZ$6G|Ly z#zOCg++$3iB$!6!>215A4!iryregKuUT344X)jQb3|9qY>c0LO{6Vby05n~VFzd?q zgGZv&FGlkiH*`fTurp>B8v&nSxNz)=5IF$=@rgND4d`!AaaX;_lK~)-U8la_Wa8i?NJC@BURO*sUW)E9oyv3RG^YGfN%BmxzjlT)bp*$<| zX3tt?EAy<&K+bhIuMs-g#=d1}N_?isY)6Ay$mDOKRh z4v1asEGWoAp=srraLW^h&_Uw|6O+r;wns=uwYm=JN4Q!quD8SQRSeEcGh|Eb5Jg8m zOT}u;N|x@aq)=&;wufCc^#)5U^VcZw;d_wwaoh9$p@Xrc{DD6GZUqZ ziC6OT^zSq@-lhbgR8B+e;7_Giv;DK5gn^$bs<6~SUadiosfewWDJu`XsBfOd1|p=q zE>m=zF}!lObA%ePey~gqU8S6h-^J2Y?>7)L2+%8kV}Gp=h`Xm_}rlm)SyUS=`=S7msKu zC|T!gPiI1rWGb1z$Md?0YJQ;%>uPLOXf1Z>N~`~JHJ!^@D5kSXQ4ugnFZ>^`zH8CAiZmp z6Ms|#2gcGsQ{{u7+Nb9sA?U>(0e$5V1|WVwY`Kn)rsnnZ4=1u=7u!4WexZD^IQ1Jk zfF#NLe>W$3m&C^ULjdw+5|)-BSHwpegdyt9NYC{3@QtMfd8GrIWDu`gd0nv-3LpGCh@wgBaG z176tikL!_NXM+Bv#7q^cyn9$XSeZR6#!B4JE@GVH zoobHZN_*RF#@_SVYKkQ_igme-Y5U}cV(hkR#k1c{bQNMji zU7aE`?dHyx=1`kOYZo_8U7?3-7vHOp`Qe%Z*i+FX!s?6huNp0iCEW-Z7E&jRWmUW_ z67j>)Ew!yq)hhG4o?^z}HWH-e=es#xJUhDRc4B51M4~E-l5VZ!&zQq`gWe`?}#b~7w1LH4Xa-UCT5LXkXQWheBa2YJYbyQ zl1pXR%b(KCXMO0OsXgl0P0Og<{(@&z1aokU-Pq`eQq*JYgt8xdFQ6S z6Z3IFSua8W&M#`~*L#r>Jfd6*BzJ?JFdBR#bDv$_0N!_5vnmo@!>vULcDm`MFU823 zpG9pqjqz^FE5zMDoGqhs5OMmC{Y3iVcl>F}5Rs24Y5B^mYQ;1T&ks@pIApHOdrzXF z-SdX}Hf{X;TaSxG_T$0~#RhqKISGKNK47}0*x&nRIPtmdwxc&QT3$8&!3fWu1eZ_P zJveQj^hJL#Sn!*4k`3}(d(aasl&7G0j0-*_2xtAnoX1@9+h zO#c>YQg60Z;o{Bi=3i7S`Ic+ZE>K{(u|#)9y}q*j8uKQ1^>+(BI}m%1v3$=4ojGBc zm+o1*!T&b}-lVvZqIUBc8V}QyFEgm#oyIuC{8WqUNV{Toz`oxhYpP!_p2oHHh5P@iB*NVo~2=GQm+8Yrkm2Xjc_VyHg1c0>+o~@>*Qzo zHVBJS>$$}$_4EniTI;b1WShX<5-p#TPB&!;lP!lBVBbLOOxh6FuYloD%m;n{r|;MU3!q4AVkua~fieeWu2 zQAQ$ue(IklX6+V;F1vCu-&V?I3d42FgWgsb_e^29ol}HYft?{SLf>DrmOp9o!t>I^ zY7fBCk+E8n_|apgM|-;^=#B?6RnFKlN`oR)`e$+;D=yO-(U^jV;rft^G_zl`n7qnM zL z*-Y4Phq+ZI1$j$F-f;`CD#|`-T~OM5Q>x}a>B~Gb3-+9i>Lfr|Ca6S^8g*{*?_5!x zH_N!SoRP=gX1?)q%>QTY!r77e2j9W(I!uAz{T`NdNmPBBUzi2{`XMB^zJGGwFWeA9 z{fk33#*9SO0)DjROug+(M)I-pKA!CX;IY(#gE!UxXVsa)X!UftIN98{pt#4MJHOhY zM$_l}-TJlxY?LS6Nuz1T<44m<4i^8k@D$zuCPrkmz@sdv+{ciyFJG2Zwy&%c7;atIeTdh!a(R^QXnu1Oq1b42*OQFWnyQ zWeQrdvP|w_idy53Wa<{QH^lFmEd+VlJkyiC>6B#s)F;w-{c;aKIm;Kp50HnA-o3lY z9B~F$gJ@yYE#g#X&3ADx&tO+P_@mnQTz9gv30_sTsaGXkfNYXY{$(>*PEN3QL>I!k zp)KibPhrfX3%Z$H6SY`rXGYS~143wZrG2;=FLj50+VM6soI~up_>fU(2Wl@{BRsMi zO%sL3x?2l1cXTF)k&moNsHfQrQ+wu(gBt{sk#CU=UhrvJIncy@tJX5klLjgMn>~h= zg|FR&;@eh|C7`>s_9c~0-{IAPV){l|Ts`i=)AW;d9&KPc3fMeoTS%8@V~D8*h;&(^>yjT84MM}=%#LS7shLAuuj(0VAYoozhWjq z4LEr?wUe2^WGwdTIgWBkDUJa>YP@5d9^Rs$kCXmMRxuF*YMVrn?0NFyPl}>`&dqZb z<5eqR=ZG3>n2{6v6BvJ`YBZeeTtB88TAY(x0a58EWyuf>+^|x8Qa6wA|1Nb_p|nA zWWa}|z8a)--Wj`LqyFk_a3gN2>5{Rl_wbW?#by7&i*^hRknK%jwIH6=dQ8*-_{*x0j^DUfMX0`|K@6C<|1cgZ~D(e5vBFFm;HTZF(!vT8=T$K+|F)x3kqzBV4-=p1V(lzi(s7jdu0>LD#N=$Lk#3HkG!a zIF<7>%B7sRNzJ66KrFV76J<2bdYhxll0y2^_rdG=I%AgW4~)1Nvz=$1UkE^J%BxLo z+lUci`UcU062os*=`-j4IfSQA{w@y|3}Vk?i;&SSdh8n+$iHA#%ERL{;EpXl6u&8@ zzg}?hkEOUOJt?ZL=pWZFJ19mI1@P=$U5*Im1e_8Z${JsM>Ov?nh8Z zP5QvI!{Jy@&BP48%P2{Jr_VgzW;P@7)M9n|lDT|Ep#}7C$&ud&6>C^5ZiwKIg2McPU(4jhM!BD@@L(Gd*Nu$ji(ljZ<{FIeW_1Mmf;76{LU z-ywN~=uNN)Xi6$<12A9y)K%X|(W0p|&>>4OXB?IiYr||WKDOJPxiSe01NSV-h24^L z_>m$;|C+q!Mj**-qQ$L-*++en(g|hw;M!^%_h-iDjFHLo-n3JpB;p?+o2;`*jpvJU zLY^lt)Un4joij^^)O(CKs@7E%*!w>!HA4Q?0}oBJ7Nr8NQ7QmY^4~jvf0-`%waOLn zdNjAPaC0_7c|RVhw)+71NWjRi!y>C+Bl;Z`NiL^zn2*0kmj5gyhCLCxts*cWCdRI| zjsd=sT5BVJc^$GxP~YF$-U{-?kW6r@^vHXB%{CqYzU@1>dzf#3SYedJG-Rm6^RB7s zGM5PR(yKPKR)>?~vpUIeTP7A1sc8-knnJk*9)3t^e%izbdm>Y=W{$wm(cy1RB-19i za#828DMBY+ps#7Y8^6t)=Ea@%Nkt)O6JCx|ybC;Ap}Z@Zw~*}3P>MZLPb4Enxz9Wf zssobT^(R@KuShj8>@!1M7tm|2%-pYYDxz-5`rCbaTCG5{;Uxm z*g=+H1X8{NUvFGzz~wXa%Eo};I;~`37*WrRU&K0dPSB$yk(Z*@K&+mFal^?c zurbqB-+|Kb5|sznT;?Pj!+kgFY1#Dr;_%A(GIQC{3ct|{*Bji%FNa6c-thbpBkA;U zURV!Dr&X{0J}iht#-Qp2=xzuh(fM>zRoiGrYl5ttw2#r34gC41CCOC31m~^UPTK@s z6;A@)7O7_%C)>bnAXerYuAHdE93>j2N}H${zEc6&SbZ|-fiG*-qtGuy-qDelH(|u$ zorf8_T6Zqe#Ub!+e3oSyrskt_HyW_^5lrWt#30l)tHk|j$@YyEkXUOV;6B51L;M@=NIWZXU;GrAa(LGxO%|im%7F<-6N;en0Cr zLH>l*y?pMwt`1*cH~LdBPFY_l;~`N!Clyfr;7w<^X;&(ZiVdF1S5e(+Q%60zgh)s4 zn2yj$+mE=miVERP(g8}G4<85^-5f@qxh2ec?n+$A_`?qN=iyT1?U@t?V6DM~BIlBB z>u~eXm-aE>R0sQy!-I4xtCNi!!qh?R1!kKf6BoH2GG{L4%PAz0{Sh6xpuyI%*~u)s z%rLuFl)uQUCBQAtMyN;%)zFMx4loh7uTfKeB2Xif`lN?2gq6NhWhfz0u5WP9J>=V2 zo{mLtSy&BA!mSzs&CrKWq^y40JF5a&GSXIi2= z{EYb59J4}VwikL4P=>+mc6{($FNE@e=VUwG+KV21;<@lrN`mnz5jYGASyvz7BOG_6(p^eTxD-4O#lROgon;R35=|nj#eHIfJBYPWG>H>`dHKCDZ3`R{-?HO0mE~(5_WYcFmp8sU?wr*UkAQiNDGc6T zA%}GOLXlOWqL?WwfHO8MB#8M8*~Y*gz;1rWWoVSXP&IbKxbQ8+s%4Jnt?kDsq7btI zCDr0PZ)b;B%!lu&CT#RJzm{l{2fq|BcY85`w~3LSK<><@(2EdzFLt9Y_`;WXL6x`0 zDoQ?=?I@Hbr;*VVll1Gmd8*%tiXggMK81a+T(5Gx6;eNb8=uYn z5BG-0g>pP21NPn>$ntBh>`*})Fl|38oC^9Qz>~MAazH%3Q~Qb!ALMf$srexgPZ2@&c~+hxRi1;}+)-06)!#Mq<6GhP z-Q?qmgo${aFBApb5p}$1OJKTClfi8%PpnczyVKkoHw7Ml9e7ikrF0d~UB}i3vizos zXW4DN$SiEV9{faLt5bHy2a>33K%7Td-n5C*N;f&ZqAg#2hIqEb(y<&f4u5BWJ>2^4 z414GosL=Aom#m&=x_v<0-fp1r%oVJ{T-(xnomNJ(Dryv zh?vj+%=II_nV+@NR+(!fZZVM&(W6{6%9cm+o+Z6}KqzLw{(>E86uA1`_K$HqINlb1 zKelh3-jr2I9V?ych`{hta9wQ2c9=MM`2cC{m6^MhlL2{DLv7C^j z$xXBCnDl_;l|bPGMX@*tV)B!c|4oZyftUlP*?$YU9C_eAsuVHJ58?)zpbr30P*C`T z7y#ao`uE-SOG(Pi+`$=e^mle~)pRrdwL5)N;o{gpW21of(QE#U6w%*C~`v-z0QqBML!!5EeYA5IQB0 z^l01c;L6E(iytN!LhL}wfwP7W9PNAkb+)Cst?qg#$n;z41O4&v+8-zPs+XNb-q zIeeBCh#ivnFLUCwfS;p{LC0O7tm+Sf9Jn)~b%uwP{%69;QC)Ok0t%*a5M+=;y8j=v z#!*pp$9@!x;UMIs4~hP#pnfVc!%-D<+wsG@R2+J&%73lK|2G!EQC)O05TCV=&3g)C!lT=czLpZ@Sa%TYuoE?v8T8`V;e$#Zf2_Nj6nvBgh1)2 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..34bd9ce --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=permwrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=permwrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..f5feea6 --- /dev/null +++ b/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..9d21a21 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..c493958 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,30 @@ +import org.gradle.internal.os.OperatingSystem + +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + String frcYear = '2025' + File frcHome + if (OperatingSystem.current().isWindows()) { + String publicFolder = System.getenv('PUBLIC') + if (publicFolder == null) { + publicFolder = "C:\\Users\\Public" + } + def homeRoot = new File(publicFolder, "wpilib") + frcHome = new File(homeRoot, frcYear) + } else { + def userFolder = System.getProperty("user.home") + def homeRoot = new File(userFolder, "wpilib") + frcHome = new File(homeRoot, frcYear) + } + def frcHomeMaven = new File(frcHome, 'maven') + maven { + name = 'frcHome' + url = frcHomeMaven + } + } +} + +Properties props = System.getProperties(); +props.setProperty("org.gradle.internal.native.headers.unresolved.dependencies.ignore", "true"); diff --git a/src/main/deploy/Paths/test.polarpath b/src/main/deploy/Paths/test.polarpath new file mode 100644 index 0000000..f8c0325 --- /dev/null +++ b/src/main/deploy/Paths/test.polarpath @@ -0,0 +1 @@ +{"meta_data":{"path_name":"test","sample_rate":0.01,"robot_name":"Cardigan","field_name":"reefscape-updated"},"commands":[],"key_points":[{"index":0,"delta_time":0.0,"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":1,"delta_time":1.0,"time":1.0,"x":1.0,"y":1.0,"angle":0.0,"x_velocity":1.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.25,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":2,"delta_time":2.0,"time":2.0,"x":2.0,"y":0.0,"angle":0.0,"x_velocity":1.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":-0.25,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":3,"delta_time":3.0,"time":3.0,"x":3.0,"y":1.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0}],"sampled_points":[{"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"time":0.01,"x":0.000006042812500000001,"y":0.000009850600000000002,"angle":0.0,"x_velocity":0.00180465625,"y_velocity":0.0029403,"angular_velocity":0.0,"x_acceleration":0.3576625,"y_acceleration":0.58212,"angular_acceleration":0.0},{"time":0.02,"x":0.000047690000000000006,"y":0.00007761920000000002,"angle":0.0,"x_velocity":0.0070885,"y_velocity":0.0115248,"angular_velocity":0.0,"x_acceleration":0.6959,"y_acceleration":1.12896,"angular_acceleration":0.0},{"time":0.03,"x":0.0001587684375,"y":0.0002579958,"angle":0.0,"x_velocity":0.01565915625,"y_velocity":0.025404300000000005,"angular_velocity":0.0,"x_acceleration":1.0150875000000001,"y_acceleration":1.6412399999999998,"angular_acceleration":0.0},{"time":0.04,"x":0.0003712,"y":0.0006022144000000002,"angle":0.0,"x_velocity":0.027328,"y_velocity":0.0442368,"angular_velocity":0.0,"x_acceleration":1.3155999999999999,"y_acceleration":2.1196800000000002,"angular_acceleration":0.0},{"time":0.05,"x":0.0007150390625000002,"y":0.001158125,"angle":0.0,"x_velocity":0.041910156250000004,"y_velocity":0.0676875,"angular_velocity":0.0,"x_acceleration":1.5978125000000003,"y_acceleration":2.5650000000000004,"angular_acceleration":0.0},{"time":0.060000000000000005,"x":0.0012185100000000006,"y":0.0019702656000000008,"angle":0.0,"x_velocity":0.05922450000000001,"y_velocity":0.09542880000000002,"angular_velocity":0.0,"x_acceleration":1.8621,"y_acceleration":2.9779200000000006,"angular_acceleration":0.0},{"time":0.07,"x":0.0019080446875000007,"y":0.003079934200000001,"angle":0.0,"x_velocity":0.07909365624999999,"y_velocity":0.1271403,"angular_velocity":0.0,"x_acceleration":2.1088375000000004,"y_acceleration":3.35916,"angular_acceleration":0.0},{"time":0.08,"x":0.0028083200000000004,"y":0.004525260800000001,"angle":0.0,"x_velocity":0.10134400000000002,"y_velocity":0.1625088,"angular_velocity":0.0,"x_acceleration":2.3384,"y_acceleration":3.70944,"angular_acceleration":0.0},{"time":0.09,"x":0.0039422953125,"y":0.0063412794,"angle":0.0,"x_velocity":0.12580565624999998,"y_velocity":0.2012283,"angular_velocity":0.0,"x_acceleration":2.5511625,"y_acceleration":4.02948,"angular_acceleration":0.0},{"time":0.09999999999999999,"x":0.005331249999999999,"y":0.008559999999999998,"angle":0.0,"x_velocity":0.15231249999999996,"y_velocity":0.24299999999999994,"angular_velocity":0.0,"x_acceleration":2.7475,"y_acceleration":4.32,"angular_acceleration":0.0},{"time":0.10999999999999999,"x":0.0069948209374999975,"y":0.011210480599999996,"angle":0.0,"x_velocity":0.18070215624999994,"y_velocity":0.28753229999999996,"angular_velocity":0.0,"x_acceleration":2.9277875,"y_acceleration":4.581720000000001,"angular_acceleration":0.0},{"time":0.11999999999999998,"x":0.008951039999999997,"y":0.014318899199999994,"angle":0.0,"x_velocity":0.21081599999999998,"y_velocity":0.3345407999999999,"angular_velocity":0.0,"x_acceleration":3.0924,"y_acceleration":4.815359999999998,"angular_acceleration":0.0},{"time":0.12999999999999998,"x":0.011216371562499996,"y":0.01790862579999999,"angle":0.0,"x_velocity":0.24249915624999993,"y_velocity":0.3837482999999998,"angular_velocity":0.0,"x_acceleration":3.2417124999999993,"y_acceleration":5.021639999999999,"angular_acceleration":0.0},{"time":0.13999999999999999,"x":0.013805749999999997,"y":0.022000294399999995,"angle":0.0,"x_velocity":0.2756005,"y_velocity":0.4348847999999999,"angular_velocity":0.0,"x_acceleration":3.3761,"y_acceleration":5.201279999999999,"angular_acceleration":0.0},{"time":0.15,"x":0.016732617187499996,"y":0.026611875000000004,"angle":0.0,"x_velocity":0.30997265625000003,"y_velocity":0.48768750000000005,"angular_velocity":0.0,"x_acceleration":3.4959374999999993,"y_acceleration":5.3549999999999995,"angular_acceleration":0.0},{"time":0.16,"x":0.020008960000000003,"y":0.03175874560000001,"angle":0.0,"x_velocity":0.345472,"y_velocity":0.5419008000000001,"angular_velocity":0.0,"x_acceleration":3.6016,"y_acceleration":5.4835199999999995,"angular_acceleration":0.0},{"time":0.17,"x":0.02364534781250001,"y":0.0374537642,"angle":0.0,"x_velocity":0.38195865625,"y_velocity":0.5972763,"angular_velocity":0.0,"x_acceleration":3.6934625000000003,"y_acceleration":5.587559999999999,"angular_acceleration":0.0},{"time":0.18000000000000002,"x":0.027650970000000004,"y":0.0437073408,"angle":0.0,"x_velocity":0.41929649999999996,"y_velocity":0.6535728,"angular_velocity":0.0,"x_acceleration":3.7719,"y_acceleration":5.66784,"angular_acceleration":0.0},{"time":0.19000000000000003,"x":0.03203367343750002,"y":0.050527509400000024,"angle":0.0,"x_velocity":0.4573531562500001,"y_velocity":0.7105563000000001,"angular_velocity":0.0,"x_acceleration":3.8372875,"y_acceleration":5.72508,"angular_acceleration":0.0},{"time":0.20000000000000004,"x":0.03680000000000001,"y":0.05792000000000003,"angle":0.0,"x_velocity":0.4960000000000002,"y_velocity":0.7680000000000005,"angular_velocity":0.0,"x_acceleration":3.8899999999999997,"y_acceleration":5.76,"angular_acceleration":0.0},{"time":0.21000000000000005,"x":0.041955224062500025,"y":0.06588831060000006,"angle":0.0,"x_velocity":0.5351121562500002,"y_velocity":0.8256843000000003,"angular_velocity":0.0,"x_acceleration":3.9304125,"y_acceleration":5.773319999999999,"angular_acceleration":0.0},{"time":0.22000000000000006,"x":0.04750339000000004,"y":0.07443377920000004,"angle":0.0,"x_velocity":0.5745685000000003,"y_velocity":0.8833968000000004,"angular_velocity":0.0,"x_acceleration":3.958899999999999,"y_acceleration":5.765759999999998,"angular_acceleration":0.0},{"time":0.23000000000000007,"x":0.05344734968750004,"y":0.08355565580000007,"angle":0.0,"x_velocity":0.6142516562500002,"y_velocity":0.9409323000000003,"angular_velocity":0.0,"x_acceleration":3.9758374999999995,"y_acceleration":5.73804,"angular_acceleration":0.0},{"time":0.24000000000000007,"x":0.05978880000000003,"y":0.09325117440000005,"angle":0.0,"x_velocity":0.6540480000000004,"y_velocity":0.9980928000000002,"angular_velocity":0.0,"x_acceleration":3.9815999999999994,"y_acceleration":5.69088,"angular_acceleration":0.0},{"time":0.25000000000000006,"x":0.06652832031250004,"y":0.10351562500000006,"angle":0.0,"x_velocity":0.6938476562500002,"y_velocity":1.0546875000000004,"angular_velocity":0.0,"x_acceleration":3.9765625000000018,"y_acceleration":5.625,"angular_acceleration":0.0},{"time":0.26000000000000006,"x":0.07366541000000004,"y":0.11434242560000006,"angle":0.0,"x_velocity":0.7335445000000002,"y_velocity":1.1105328000000005,"angular_velocity":0.0,"x_acceleration":3.961100000000001,"y_acceleration":5.541119999999999,"angular_acceleration":0.0},{"time":0.2700000000000001,"x":0.08119852593750004,"y":0.12572319420000005,"angle":0.0,"x_velocity":0.7730361562500003,"y_velocity":1.1654523000000006,"angular_velocity":0.0,"x_acceleration":3.9355874999999996,"y_acceleration":5.439960000000001,"angular_acceleration":0.0},{"time":0.2800000000000001,"x":0.08912512000000006,"y":0.13764782080000004,"angle":0.0,"x_velocity":0.8122240000000004,"y_velocity":1.2192768000000005,"angular_velocity":0.0,"x_acceleration":3.900400000000001,"y_acceleration":5.322239999999999,"angular_acceleration":0.0},{"time":0.2900000000000001,"x":0.09744167656250005,"y":0.1501045394000001,"angle":0.0,"x_velocity":0.8510131562500004,"y_velocity":1.2718443000000004,"angular_velocity":0.0,"x_acceleration":3.8559125000000014,"y_acceleration":5.18868,"angular_acceleration":0.0},{"time":0.3000000000000001,"x":0.10614375000000009,"y":0.16308000000000017,"angle":0.0,"x_velocity":0.8893125000000004,"y_velocity":1.3230000000000006,"angular_velocity":0.0,"x_acceleration":3.8025,"y_acceleration":5.040000000000001,"angular_acceleration":0.0},{"time":0.3100000000000001,"x":0.1152260021875001,"y":0.1765593406000002,"angle":0.0,"x_velocity":0.9270346562500005,"y_velocity":1.3725963000000005,"angular_velocity":0.0,"x_acceleration":3.7405375000000007,"y_acceleration":4.87692,"angular_acceleration":0.0},{"time":0.3200000000000001,"x":0.12468224000000011,"y":0.1905262592000001,"angle":0.0,"x_velocity":0.9640960000000005,"y_velocity":1.4204928000000012,"angular_velocity":0.0,"x_acceleration":3.670399999999999,"y_acceleration":4.700159999999997,"angular_acceleration":0.0},{"time":0.3300000000000001,"x":0.13450545281250012,"y":0.20496308580000017,"angle":0.0,"x_velocity":1.00041665625,"y_velocity":1.4665563000000001,"angular_velocity":0.0,"x_acceleration":3.5924625,"y_acceleration":4.510440000000002,"angular_acceleration":0.0},{"time":0.34000000000000014,"x":0.14468785000000012,"y":0.2198508544000002,"angle":0.0,"x_velocity":1.0359205000000005,"y_velocity":1.5106608000000001,"angular_velocity":0.0,"x_acceleration":3.5071000000000008,"y_acceleration":4.308479999999998,"angular_acceleration":0.0},{"time":0.35000000000000014,"x":0.15522089843750017,"y":0.2351693750000002,"angle":0.0,"x_velocity":1.0705351562500005,"y_velocity":1.5526874999999998,"angular_velocity":0.0,"x_acceleration":3.4146875000000008,"y_acceleration":4.095000000000002,"angular_acceleration":0.0},{"time":0.36000000000000015,"x":0.16609536000000014,"y":0.25089730560000023,"angle":0.0,"x_velocity":1.1041920000000005,"y_velocity":1.5925248000000003,"angular_velocity":0.0,"x_acceleration":3.3155999999999994,"y_acceleration":3.8707199999999986,"angular_acceleration":0.0},{"time":0.37000000000000016,"x":0.17730132906250023,"y":0.26701222420000026,"angle":0.0,"x_velocity":1.1368261562500006,"y_velocity":1.6300683000000005,"angular_velocity":0.0,"x_acceleration":3.2102124999999986,"y_acceleration":3.6363599999999945,"angular_acceleration":0.0},{"time":0.38000000000000017,"x":0.18882827000000024,"y":0.28349070080000033,"angle":0.0,"x_velocity":1.1683765000000008,"y_velocity":1.6652208000000004,"angular_velocity":0.0,"x_acceleration":3.0988999999999973,"y_acceleration":3.3926399999999948,"angular_acceleration":0.0},{"time":0.3900000000000002,"x":0.20066505468750026,"y":0.3003083694000004,"angle":0.0,"x_velocity":1.1987856562500008,"y_velocity":1.6978923000000012,"angular_velocity":0.0,"x_acceleration":2.982037499999996,"y_acceleration":3.1402799999999953,"angular_acceleration":0.0},{"time":0.4000000000000002,"x":0.21280000000000016,"y":0.3174400000000002,"angle":0.0,"x_velocity":1.2280000000000006,"y_velocity":1.7280000000000006,"angular_velocity":0.0,"x_acceleration":2.8599999999999994,"y_acceleration":2.879999999999998,"angular_acceleration":0.0},{"time":0.4100000000000002,"x":0.22522090531250033,"y":0.33485957060000043,"angle":0.0,"x_velocity":1.2559696562500005,"y_velocity":1.7554683000000004,"angular_velocity":0.0,"x_acceleration":2.733162499999997,"y_acceleration":2.6125199999999946,"angular_acceleration":0.0},{"time":0.4200000000000002,"x":0.23791509000000025,"y":0.3525403392000004,"angle":0.0,"x_velocity":1.2826485000000005,"y_velocity":1.7802288000000004,"angular_velocity":0.0,"x_acceleration":2.601899999999997,"y_acceleration":2.338559999999992,"angular_acceleration":0.0},{"time":0.4300000000000002,"x":0.2508694309375003,"y":0.37045491580000034,"angle":0.0,"x_velocity":1.3079941562500008,"y_velocity":1.8022203000000003,"angular_velocity":0.0,"x_acceleration":2.4665874999999993,"y_acceleration":2.0588399999999965,"angular_acceleration":0.0},{"time":0.4400000000000002,"x":0.26407040000000026,"y":0.38857533440000036,"angle":0.0,"x_velocity":1.3319680000000007,"y_velocity":1.8213888000000003,"angular_velocity":0.0,"x_acceleration":2.3275999999999994,"y_acceleration":1.7740799999999943,"angular_acceleration":0.0},{"time":0.45000000000000023,"x":0.27750410156250027,"y":0.4068731250000004,"angle":0.0,"x_velocity":1.3545351562500003,"y_velocity":1.8376875000000006,"angular_velocity":0.0,"x_acceleration":2.1853124999999958,"y_acceleration":1.4849999999999923,"angular_acceleration":0.0},{"time":0.46000000000000024,"x":0.2911563100000004,"y":0.4253193856000005,"angle":0.0,"x_velocity":1.3756645000000005,"y_velocity":1.8510768,"angular_velocity":0.0,"x_acceleration":2.0400999999999936,"y_acceleration":1.1923199999999916,"angular_acceleration":0.0},{"time":0.47000000000000025,"x":0.30501250718750034,"y":0.44388485420000057,"angle":0.0,"x_velocity":1.3953286562500002,"y_velocity":1.8615243000000012,"angular_velocity":0.0,"x_acceleration":1.8923374999999982,"y_acceleration":0.8967599999999951,"angular_acceleration":0.0},{"time":0.48000000000000026,"x":0.31905792000000033,"y":0.46253998080000047,"angle":0.0,"x_velocity":1.4135040000000005,"y_velocity":1.8690048000000001,"angular_velocity":0.0,"x_acceleration":1.7423999999999982,"y_acceleration":0.5990399999999951,"angular_acceleration":0.0},{"time":0.49000000000000027,"x":0.33327755781250035,"y":0.4812549994000004,"angle":0.0,"x_velocity":1.4301706562500012,"y_velocity":1.8735003000000008,"angular_velocity":0.0,"x_acceleration":1.5906624999999943,"y_acceleration":0.29987999999999104,"angular_acceleration":0.0},{"time":0.5000000000000002,"x":0.34765625000000033,"y":0.5000000000000006,"angle":0.0,"x_velocity":1.4453125000000009,"y_velocity":1.8750000000000007,"angular_velocity":0.0,"x_acceleration":1.4374999999999964,"y_acceleration":-7.105427357601002e-15,"angular_acceleration":0.0},{"time":0.5100000000000002,"x":0.3621786834375003,"y":0.5187450006000005,"angle":0.0,"x_velocity":1.4589171562499998,"y_velocity":1.8735002999999981,"angular_velocity":0.0,"x_acceleration":1.2832874999999966,"y_acceleration":-0.2998800000000017,"angular_acceleration":0.0},{"time":0.5200000000000002,"x":0.37682944000000035,"y":0.5374600192000004,"angle":0.0,"x_velocity":1.470976,"y_velocity":1.8690048000000012,"angular_velocity":0.0,"x_acceleration":1.1283999999999974,"y_acceleration":-0.5990400000000093,"angular_acceleration":0.0},{"time":0.5300000000000002,"x":0.39159303406250046,"y":0.5561151458000002,"angle":0.0,"x_velocity":1.4814841562500003,"y_velocity":1.8615243000000006,"angular_velocity":0.0,"x_acceleration":0.9732124999999954,"y_acceleration":-0.8967600000000111,"angular_acceleration":0.0},{"time":0.5400000000000003,"x":0.4064539500000005,"y":0.5746806144000007,"angle":0.0,"x_velocity":1.4904405,"y_velocity":1.8510767999999977,"angular_velocity":0.0,"x_acceleration":0.8180999999999958,"y_acceleration":-1.192320000000013,"angular_acceleration":0.0},{"time":0.5500000000000003,"x":0.42139667968750016,"y":0.593126875,"angle":0.0,"x_velocity":1.497847656250001,"y_velocity":1.8376875000000013,"angular_velocity":0.0,"x_acceleration":0.6634374999999917,"y_acceleration":-1.4850000000000136,"angular_acceleration":0.0},{"time":0.5600000000000003,"x":0.43640576000000053,"y":0.6114246656000005,"angle":0.0,"x_velocity":1.5037119999999993,"y_velocity":1.8213887999999994,"angular_velocity":0.0,"x_acceleration":0.5095999999999954,"y_acceleration":-1.774080000000012,"angular_acceleration":0.0},{"time":0.5700000000000003,"x":0.45146581031250044,"y":0.6295450842000007,"angle":0.0,"x_velocity":1.5080436562500001,"y_velocity":1.8022202999999992,"angular_velocity":0.0,"x_acceleration":0.3569624999999981,"y_acceleration":-2.058840000000007,"angular_acceleration":0.0},{"time":0.5800000000000003,"x":0.46656157000000054,"y":0.6474596608000006,"angle":0.0,"x_velocity":1.5108565000000007,"y_velocity":1.7802288000000015,"angular_velocity":0.0,"x_acceleration":0.20589999999999264,"y_acceleration":-2.3385600000000153,"angular_acceleration":0.0},{"time":0.5900000000000003,"x":0.4816779359375005,"y":0.6651404294000003,"angle":0.0,"x_velocity":1.5121681562499998,"y_velocity":1.7554683000000004,"angular_velocity":0.0,"x_acceleration":0.056787499999995106,"y_acceleration":-2.6125200000000106,"angular_acceleration":0.0},{"time":0.6000000000000003,"x":0.49680000000000046,"y":0.6825600000000005,"angle":0.0,"x_velocity":1.512000000000001,"y_velocity":1.7279999999999989,"angular_velocity":0.0,"x_acceleration":-0.09000000000000519,"y_acceleration":-2.8800000000000097,"angular_acceleration":0.0},{"time":0.6100000000000003,"x":0.5119130865625006,"y":0.6996916306000006,"angle":0.0,"x_velocity":1.5103771562500001,"y_velocity":1.6978922999999977,"angular_velocity":0.0,"x_acceleration":-0.23408750000000644,"y_acceleration":-3.140279999999997,"angular_acceleration":0.0},{"time":0.6200000000000003,"x":0.5270027900000005,"y":0.7165092992000004,"angle":0.0,"x_velocity":1.5073285000000007,"y_velocity":1.665220800000002,"angular_velocity":0.0,"x_acceleration":-0.3751000000000069,"y_acceleration":-3.392640000000018,"angular_acceleration":0.0},{"time":0.6300000000000003,"x":0.5420550121875006,"y":0.7329877758000005,"angle":0.0,"x_velocity":1.5028866562499994,"y_velocity":1.6300682999999978,"angular_velocity":0.0,"x_acceleration":-0.5126624999999994,"y_acceleration":-3.6363600000000105,"angular_acceleration":0.0},{"time":0.6400000000000003,"x":0.5570560000000006,"y":0.7491026944000003,"angle":0.0,"x_velocity":1.4970879999999998,"y_velocity":1.5925248000000005,"angular_velocity":0.0,"x_acceleration":-0.646400000000007,"y_acceleration":-3.8707200000000235,"angular_acceleration":0.0},{"time":0.6500000000000004,"x":0.5719923828125004,"y":0.7648306250000002,"angle":0.0,"x_velocity":1.4899726562499995,"y_velocity":1.5526874999999993,"angular_velocity":0.0,"x_acceleration":-0.7759375000000013,"y_acceleration":-4.095000000000006,"angular_acceleration":0.0},{"time":0.6600000000000004,"x":0.5868512100000005,"y":0.7801491456000005,"angle":0.0,"x_velocity":1.4815845000000003,"y_velocity":1.510660800000001,"angular_velocity":0.0,"x_acceleration":-0.9009000000000107,"y_acceleration":-4.30848000000001,"angular_acceleration":0.0},{"time":0.6700000000000004,"x":0.6016199884375006,"y":0.7950369142000008,"angle":0.0,"x_velocity":1.4719711562500013,"y_velocity":1.4665563000000006,"angular_velocity":0.0,"x_acceleration":-1.020912500000005,"y_acceleration":-4.51044000000001,"angular_acceleration":0.0},{"time":0.6800000000000004,"x":0.6162867200000005,"y":0.8094737408000001,"angle":0.0,"x_velocity":1.4611839999999998,"y_velocity":1.420492799999999,"angular_velocity":0.0,"x_acceleration":-1.1356000000000037,"y_acceleration":-4.700160000000018,"angular_acceleration":0.0},{"time":0.6900000000000004,"x":0.6308399390625005,"y":0.8234406594000006,"angle":0.0,"x_velocity":1.4492781562499988,"y_velocity":1.3725962999999979,"angular_velocity":0.0,"x_acceleration":-1.2445874999999944,"y_acceleration":-4.8769200000000055,"angular_acceleration":0.0},{"time":0.7000000000000004,"x":0.6452687500000004,"y":0.8369200000000006,"angle":0.0,"x_velocity":1.4363124999999983,"y_velocity":1.3229999999999968,"angular_velocity":0.0,"x_acceleration":-1.3474999999999966,"y_acceleration":-5.039999999999992,"angular_acceleration":0.0},{"time":0.7100000000000004,"x":0.6595628646875005,"y":0.8498954606000002,"angle":0.0,"x_velocity":1.4223496562499975,"y_velocity":1.271844299999998,"angular_velocity":0.0,"x_acceleration":-1.4439625000000014,"y_acceleration":-5.188679999999991,"angular_acceleration":0.0},{"time":0.7200000000000004,"x":0.6737126400000006,"y":0.8623521792000011,"angle":0.0,"x_velocity":1.407455999999998,"y_velocity":1.219276799999994,"angular_velocity":0.0,"x_acceleration":-1.533600000000007,"y_acceleration":-5.322240000000008,"angular_acceleration":0.0},{"time":0.7300000000000004,"x":0.6877091153125003,"y":0.8742768058000001,"angle":0.0,"x_velocity":1.3917016562499995,"y_velocity":1.1654522999999983,"angular_velocity":0.0,"x_acceleration":-1.616037500000001,"y_acceleration":-5.439960000000006,"angular_acceleration":0.0},{"time":0.7400000000000004,"x":0.7015440500000003,"y":0.8856575743999995,"angle":0.0,"x_velocity":1.3751605000000016,"y_velocity":1.1105327999999979,"angular_velocity":0.0,"x_acceleration":-1.6909000000000063,"y_acceleration":-5.541120000000014,"angular_acceleration":0.0},{"time":0.7500000000000004,"x":0.7152099609375009,"y":0.8964843750000007,"angle":0.0,"x_velocity":1.35791015625,"y_velocity":1.0546875,"angular_velocity":0.0,"x_acceleration":-1.7578124999999964,"y_acceleration":-5.624999999999986,"angular_acceleration":0.0},{"time":0.7600000000000005,"x":0.72870016,"y":0.9067488255999998,"angle":0.0,"x_velocity":1.340032,"y_velocity":0.9980927999999984,"angular_velocity":0.0,"x_acceleration":-1.8164000000000016,"y_acceleration":-5.69088,"angular_acceleration":0.0},{"time":0.7700000000000005,"x":0.7420087915625009,"y":0.9164443441999999,"angle":0.0,"x_velocity":1.3216111562500004,"y_velocity":0.9409323,"angular_velocity":0.0,"x_acceleration":-1.8662875000000092,"y_acceleration":-5.738040000000019,"angular_acceleration":0.0},{"time":0.7800000000000005,"x":0.7551308700000007,"y":0.9255662208000004,"angle":0.0,"x_velocity":1.302736499999999,"y_velocity":0.8833967999999963,"angular_velocity":0.0,"x_acceleration":-1.9070999999999962,"y_acceleration":-5.765759999999993,"angular_acceleration":0.0},{"time":0.7900000000000005,"x":0.7680623171875006,"y":0.9341116894000012,"angle":0.0,"x_velocity":1.2835006562500002,"y_velocity":0.8256842999999989,"angular_velocity":0.0,"x_acceleration":-1.9384625,"y_acceleration":-5.773319999999998,"angular_acceleration":0.0},{"time":0.8000000000000005,"x":0.7808000000000002,"y":0.9420799999999998,"angle":0.0,"x_velocity":1.2640000000000002,"y_velocity":0.7679999999999971,"angular_velocity":0.0,"x_acceleration":-1.960000000000008,"y_acceleration":-5.760000000000005,"angular_acceleration":0.0},{"time":0.8100000000000005,"x":0.7933417678125005,"y":0.9494724905999998,"angle":0.0,"x_velocity":1.2443346562499995,"y_velocity":0.7105562999999986,"angular_velocity":0.0,"x_acceleration":-1.971337499999997,"y_acceleration":-5.725079999999991,"angular_acceleration":0.0},{"time":0.8200000000000005,"x":0.8056864900000005,"y":0.9562926591999998,"angle":0.0,"x_velocity":1.2246085000000013,"y_velocity":0.6535727999999956,"angular_velocity":0.0,"x_acceleration":-1.9721000000000046,"y_acceleration":-5.667839999999998,"angular_acceleration":0.0},{"time":0.8300000000000005,"x":0.8178340934375008,"y":0.9625462357999996,"angle":0.0,"x_velocity":1.2049291562500004,"y_velocity":0.5972762999999972,"angular_velocity":0.0,"x_acceleration":-1.9619124999999968,"y_acceleration":-5.587559999999996,"angular_acceleration":0.0},{"time":0.8400000000000005,"x":0.8297856000000008,"y":0.9682412544000005,"angle":0.0,"x_velocity":1.185407999999999,"y_velocity":0.541900799999997,"angular_velocity":0.0,"x_acceleration":-1.9403999999999968,"y_acceleration":-5.483520000000013,"angular_acceleration":0.0},{"time":0.8500000000000005,"x":0.8415431640625006,"y":0.973388125,"angle":0.0,"x_velocity":1.1661601562499992,"y_velocity":0.48768749999999805,"angular_velocity":0.0,"x_acceleration":-1.9071874999999991,"y_acceleration":-5.35499999999999,"angular_acceleration":0.0},{"time":0.8600000000000005,"x":0.8531101100000005,"y":0.9779997055999994,"angle":0.0,"x_velocity":1.1473045000000006,"y_velocity":0.43488479999999896,"angular_velocity":0.0,"x_acceleration":-1.8618999999999915,"y_acceleration":-5.201279999999983,"angular_acceleration":0.0},{"time":0.8700000000000006,"x":0.8644909696874996,"y":0.9820913741999995,"angle":0.0,"x_velocity":1.1289636562500025,"y_velocity":0.38374830000000415,"angular_velocity":0.0,"x_acceleration":-1.8041624999999968,"y_acceleration":-5.021639999999977,"angular_acceleration":0.0},{"time":0.8800000000000006,"x":0.8756915200000002,"y":0.9856811007999995,"angle":0.0,"x_velocity":1.1112639999999985,"y_velocity":0.3345407999999992,"angular_velocity":0.0,"x_acceleration":-1.7336000000000027,"y_acceleration":-4.8153600000000125,"angular_acceleration":0.0},{"time":0.8900000000000006,"x":0.8867188203125012,"y":0.9887895194,"angle":0.0,"x_velocity":1.0943356562499975,"y_velocity":0.2875323000000023,"angular_velocity":0.0,"x_acceleration":-1.6498374999999896,"y_acceleration":-4.58171999999999,"angular_acceleration":0.0},{"time":0.9000000000000006,"x":0.8975812500000002,"y":0.9914400000000008,"angle":0.0,"x_velocity":1.0783124999999991,"y_velocity":0.242999999999995,"angular_velocity":0.0,"x_acceleration":-1.5524999999999949,"y_acceleration":-4.319999999999965,"angular_acceleration":0.0},{"time":0.9100000000000006,"x":0.9082885459375005,"y":0.9936587206,"angle":0.0,"x_velocity":1.0633321562500004,"y_velocity":0.2012282999999968,"angular_velocity":0.0,"x_acceleration":-1.441212499999999,"y_acceleration":-4.029479999999992,"angular_acceleration":0.0},{"time":0.9200000000000006,"x":0.9188518400000008,"y":0.9954747392000005,"angle":0.0,"x_velocity":1.0495359999999998,"y_velocity":0.16250879999999768,"angular_velocity":0.0,"x_acceleration":-1.3156000000000034,"y_acceleration":-3.7094399999999865,"angular_acceleration":0.0},{"time":0.9300000000000006,"x":0.9292836965624995,"y":0.9969200657999986,"angle":0.0,"x_velocity":1.0370691562499985,"y_velocity":0.1271402999999971,"angular_velocity":0.0,"x_acceleration":-1.175287499999989,"y_acceleration":-3.3591599999999744,"angular_acceleration":0.0},{"time":0.9400000000000006,"x":0.939598150000001,"y":0.9980297343999993,"angle":0.0,"x_velocity":1.0260804999999973,"y_velocity":0.09542879999999698,"angular_velocity":0.0,"x_acceleration":-1.0198999999999927,"y_acceleration":-2.9779199999999832,"angular_acceleration":0.0},{"time":0.9500000000000006,"x":0.9498107421875011,"y":0.998841875000001,"angle":0.0,"x_velocity":1.0167226562500016,"y_velocity":0.06768749999999457,"angular_velocity":0.0,"x_acceleration":-0.8490625000000023,"y_acceleration":-2.5649999999999977,"angular_acceleration":0.0},{"time":0.9600000000000006,"x":0.9599385600000012,"y":0.9993977856000011,"angle":0.0,"x_velocity":1.0091520000000003,"y_velocity":0.04423680000000019,"angular_velocity":0.0,"x_acceleration":-0.662399999999991,"y_acceleration":-2.119679999999974,"angular_acceleration":0.0},{"time":0.9700000000000006,"x":0.9700002728125003,"y":0.9997420041999998,"angle":0.0,"x_velocity":1.0035286562500012,"y_velocity":0.02540430000000171,"angular_velocity":0.0,"x_acceleration":-0.45953749999998195,"y_acceleration":-1.6412399999999536,"angular_acceleration":0.0},{"time":0.9800000000000006,"x":0.9800161700000007,"y":0.9999223808000002,"angle":0.0,"x_velocity":1.0000165000000028,"y_velocity":0.01152479999999656,"angular_velocity":0.0,"x_acceleration":-0.240099999999984,"y_acceleration":-1.1289599999999496,"angular_acceleration":0.0},{"time":0.9900000000000007,"x":0.9900081984375007,"y":0.9999901494000012,"angle":0.0,"x_velocity":0.9987831562500045,"y_velocity":0.002940300000005891,"angular_velocity":0.0,"x_acceleration":-0.0037124999999988972,"y_acceleration":-0.5821199999999749,"angular_acceleration":0.0},{"time":1.0000000000000007,"x":1.0000000000000007,"y":1.0,"angle":0.0,"x_velocity":1.0000000000000002,"y_velocity":-1.3312027775604557e-29,"angular_velocity":0.0,"x_acceleration":0.249999999999998,"y_acceleration":-3.9968028886505553e-14,"angular_acceleration":0.0},{"time":1.0100000000000007,"x":1.0100120062250006,"y":0.9999901494,"angle":0.0,"x_velocity":1.0023524875,"y_velocity":-0.0029403000000003928,"angular_velocity":0.0,"x_acceleration":0.22074499999999808,"y_acceleration":-0.582120000000038,"angular_acceleration":0.0},{"time":1.0200000000000007,"x":1.0200460992000009,"y":0.9999223808,"angle":0.0,"x_velocity":1.0044198000000002,"y_velocity":-0.011524800000000772,"angular_velocity":0.0,"x_acceleration":0.19295999999999813,"y_acceleration":-1.1289600000000362,"angular_acceleration":0.0},{"time":1.0300000000000007,"x":1.0300995001750004,"y":0.9997420042,"angle":0.0,"x_velocity":1.0062164875000004,"y_velocity":-0.025404300000001143,"angular_velocity":0.0,"x_acceleration":0.16661499999999824,"y_acceleration":-1.6412400000000342,"angular_acceleration":0.0},{"time":1.0400000000000007,"x":1.0401695744000008,"y":0.9993977855999999,"angle":0.0,"x_velocity":1.0077568,"y_velocity":-0.04423680000000149,"angular_velocity":0.0,"x_acceleration":0.1416799999999983,"y_acceleration":-2.1196800000000326,"angular_acceleration":0.0},{"time":1.0500000000000007,"x":1.0502538281250005,"y":0.9988418749999999,"angle":0.0,"x_velocity":1.0090546875,"y_velocity":-0.06768750000000182,"angular_velocity":0.0,"x_acceleration":0.11812499999999837,"y_acceleration":-2.5650000000000306,"angular_acceleration":0.0},{"time":1.0600000000000007,"x":1.0603499056000008,"y":0.9980297344,"angle":0.0,"x_velocity":1.0101238000000001,"y_velocity":-0.09542880000000215,"angular_velocity":0.0,"x_acceleration":0.09591999999999845,"y_acceleration":-2.9779200000000285,"angular_acceleration":0.0},{"time":1.0700000000000007,"x":1.0704555860750007,"y":0.9969200657999998,"angle":0.0,"x_velocity":1.0109774875,"y_velocity":-0.12714030000000245,"angular_velocity":0.0,"x_acceleration":0.07503499999999853,"y_acceleration":-3.359160000000027,"angular_acceleration":0.0},{"time":1.0800000000000007,"x":1.0805687808000006,"y":0.9954747391999998,"angle":0.0,"x_velocity":1.0116288,"y_velocity":-0.16250880000000276,"angular_velocity":0.0,"x_acceleration":0.05543999999999861,"y_acceleration":-3.7094400000000243,"angular_acceleration":0.0},{"time":1.0900000000000007,"x":1.0906875300250007,"y":0.9936587205999999,"angle":0.0,"x_velocity":1.0120904875,"y_velocity":-0.20122830000000302,"angular_velocity":0.0,"x_acceleration":0.03710499999999868,"y_acceleration":-4.029480000000023,"angular_acceleration":0.0},{"time":1.1000000000000008,"x":1.100810000000001,"y":0.9914399999999999,"angle":0.0,"x_velocity":1.012375,"y_velocity":-0.24300000000000327,"angular_velocity":0.0,"x_acceleration":0.01999999999999876,"y_acceleration":-4.320000000000021,"angular_acceleration":0.0},{"time":1.1100000000000008,"x":1.1109344799750007,"y":0.9887895193999998,"angle":0.0,"x_velocity":1.0124944875000002,"y_velocity":-0.2875323000000035,"angular_velocity":0.0,"x_acceleration":0.0040949999999988305,"y_acceleration":-4.581720000000019,"angular_acceleration":0.0},{"time":1.1200000000000008,"x":1.1210593792000008,"y":0.9856811007999998,"angle":0.0,"x_velocity":1.0124608000000002,"y_velocity":-0.33454080000000375,"angular_velocity":0.0,"x_acceleration":-0.010640000000001084,"y_acceleration":-4.815360000000017,"angular_acceleration":0.0},{"time":1.1300000000000008,"x":1.1311832239250006,"y":0.9820913741999998,"angle":0.0,"x_velocity":1.0122854875,"y_velocity":-0.38374830000000393,"angular_velocity":0.0,"x_acceleration":-0.024235000000001013,"y_acceleration":-5.021640000000016,"angular_acceleration":0.0},{"time":1.1400000000000008,"x":1.141304654400001,"y":0.9779997055999997,"angle":0.0,"x_velocity":1.0119798,"y_velocity":-0.4348848000000041,"angular_velocity":0.0,"x_acceleration":-0.036720000000000946,"y_acceleration":-5.201280000000015,"angular_acceleration":0.0},{"time":1.1500000000000008,"x":1.1514224218750009,"y":0.9733881249999997,"angle":0.0,"x_velocity":1.0115546874999999,"y_velocity":-0.48768750000000427,"angular_velocity":0.0,"x_acceleration":-0.048125000000000875,"y_acceleration":-5.355000000000012,"angular_acceleration":0.0},{"time":1.1600000000000008,"x":1.1615353856000008,"y":0.9682412543999995,"angle":0.0,"x_velocity":1.0110208,"y_velocity":-0.5419008000000043,"angular_velocity":0.0,"x_acceleration":-0.058480000000000816,"y_acceleration":-5.483520000000009,"angular_acceleration":0.0},{"time":1.1700000000000008,"x":1.1716425098250007,"y":0.9625462357999996,"angle":0.0,"x_velocity":1.0103884875,"y_velocity":-0.5972763000000045,"angular_velocity":0.0,"x_acceleration":-0.06781500000000072,"y_acceleration":-5.587560000000008,"angular_acceleration":0.0},{"time":1.1800000000000008,"x":1.181742860800001,"y":0.9562926591999994,"angle":0.0,"x_velocity":1.0096678,"y_velocity":-0.6535728000000047,"angular_velocity":0.0,"x_acceleration":-0.07616000000000064,"y_acceleration":-5.667840000000006,"angular_acceleration":0.0},{"time":1.1900000000000008,"x":1.191835603775001,"y":0.9494724905999994,"angle":0.0,"x_velocity":1.0088684875,"y_velocity":-0.7105563000000048,"angular_velocity":0.0,"x_acceleration":-0.08354500000000058,"y_acceleration":-5.725080000000004,"angular_acceleration":0.0},{"time":1.2000000000000008,"x":1.201920000000001,"y":0.9420799999999993,"angle":0.0,"x_velocity":1.008,"y_velocity":-0.7680000000000048,"angular_velocity":0.0,"x_acceleration":-0.0900000000000005,"y_acceleration":-5.760000000000001,"angular_acceleration":0.0},{"time":1.2100000000000009,"x":1.211995403725001,"y":0.9341116893999992,"angle":0.0,"x_velocity":1.0070714875,"y_velocity":-0.8256843000000049,"angular_velocity":0.0,"x_acceleration":-0.09555500000000042,"y_acceleration":-5.77332,"angular_acceleration":0.0},{"time":1.2200000000000009,"x":1.2220612592000009,"y":0.9255662207999993,"angle":0.0,"x_velocity":1.0060918,"y_velocity":-0.8833968000000049,"angular_velocity":0.0,"x_acceleration":-0.1002400000000004,"y_acceleration":-5.76576,"angular_acceleration":0.0},{"time":1.2300000000000009,"x":1.2321170976750009,"y":0.9164443441999992,"angle":0.0,"x_velocity":1.0050694874999997,"y_velocity":-0.940932300000005,"angular_velocity":0.0,"x_acceleration":-0.10408500000000032,"y_acceleration":-5.738039999999997,"angular_acceleration":0.0},{"time":1.2400000000000009,"x":1.2421625344000011,"y":0.9067488255999993,"angle":0.0,"x_velocity":1.0040128000000001,"y_velocity":-0.9980928000000049,"angular_velocity":0.0,"x_acceleration":-0.10712000000000024,"y_acceleration":-5.6908799999999955,"angular_acceleration":0.0},{"time":1.2500000000000009,"x":1.2521972656250009,"y":0.896484374999999,"angle":0.0,"x_velocity":1.0029296875,"y_velocity":-1.0546875000000049,"angular_velocity":0.0,"x_acceleration":-0.10937500000000017,"y_acceleration":-5.624999999999993,"angular_acceleration":0.0},{"time":1.260000000000001,"x":1.262221065600001,"y":0.885657574399999,"angle":0.0,"x_velocity":1.0018277999999998,"y_velocity":-1.110532800000005,"angular_velocity":0.0,"x_acceleration":-0.11088000000000015,"y_acceleration":-5.541119999999992,"angular_acceleration":0.0},{"time":1.270000000000001,"x":1.272233783575001,"y":0.8742768057999989,"angle":0.0,"x_velocity":1.0007144875,"y_velocity":-1.1654523000000052,"angular_velocity":0.0,"x_acceleration":-0.11166499999999999,"y_acceleration":-5.439959999999988,"angular_acceleration":0.0},{"time":1.280000000000001,"x":1.282235340800001,"y":0.862352179199999,"angle":0.0,"x_velocity":0.9995967999999998,"y_velocity":-1.219276800000005,"angular_velocity":0.0,"x_acceleration":-0.11175999999999997,"y_acceleration":-5.322239999999989,"angular_acceleration":0.0},{"time":1.290000000000001,"x":1.2922257275250009,"y":0.8498954605999988,"angle":0.0,"x_velocity":0.9984814874999998,"y_velocity":-1.2718443000000053,"angular_velocity":0.0,"x_acceleration":-0.1111949999999998,"y_acceleration":-5.1886799999999855,"angular_acceleration":0.0},{"time":1.300000000000001,"x":1.3022050000000007,"y":0.8369199999999988,"angle":0.0,"x_velocity":0.9973749999999997,"y_velocity":-1.3230000000000048,"angular_velocity":0.0,"x_acceleration":-0.10999999999999979,"y_acceleration":-5.039999999999985,"angular_acceleration":0.0},{"time":1.310000000000001,"x":1.3121732774750008,"y":0.8234406593999987,"angle":0.0,"x_velocity":0.9962834874999997,"y_velocity":-1.372596300000005,"angular_velocity":0.0,"x_acceleration":-0.10820499999999975,"y_acceleration":-4.876919999999982,"angular_acceleration":0.0},{"time":1.320000000000001,"x":1.322130739200001,"y":0.8094737407999987,"angle":0.0,"x_velocity":0.9952127999999999,"y_velocity":-1.4204928000000043,"angular_velocity":0.0,"x_acceleration":-0.10583999999999985,"y_acceleration":-4.700159999999983,"angular_acceleration":0.0},{"time":1.330000000000001,"x":1.332077621425001,"y":0.7950369141999984,"angle":0.0,"x_velocity":0.9941684874999998,"y_velocity":-1.4665563000000041,"angular_velocity":0.0,"x_acceleration":-0.10293499999999972,"y_acceleration":-4.510439999999981,"angular_acceleration":0.0},{"time":1.340000000000001,"x":1.342014214400001,"y":0.7801491455999985,"angle":0.0,"x_velocity":0.9931557999999998,"y_velocity":-1.5106608000000041,"angular_velocity":0.0,"x_acceleration":-0.09951999999999961,"y_acceleration":-4.308479999999979,"angular_acceleration":0.0},{"time":1.350000000000001,"x":1.3519408593750009,"y":0.7648306249999985,"angle":0.0,"x_velocity":0.9921796875000001,"y_velocity":-1.5526875000000038,"angular_velocity":0.0,"x_acceleration":-0.09562499999999965,"y_acceleration":-4.094999999999978,"angular_acceleration":0.0},{"time":1.360000000000001,"x":1.3618579456000008,"y":0.7491026943999984,"angle":0.0,"x_velocity":0.9912448,"y_velocity":-1.5925248000000036,"angular_velocity":0.0,"x_acceleration":-0.09127999999999958,"y_acceleration":-3.8707199999999773,"angular_acceleration":0.0},{"time":1.370000000000001,"x":1.371765907325001,"y":0.7329877757999983,"angle":0.0,"x_velocity":0.9903554874999998,"y_velocity":-1.6300683000000036,"angular_velocity":0.0,"x_acceleration":-0.08651499999999945,"y_acceleration":-3.636359999999975,"angular_acceleration":0.0},{"time":1.380000000000001,"x":1.381665220800001,"y":0.7165092991999984,"angle":0.0,"x_velocity":0.9895157999999998,"y_velocity":-1.6652208000000033,"angular_velocity":0.0,"x_acceleration":-0.08135999999999965,"y_acceleration":-3.392639999999977,"angular_acceleration":0.0},{"time":1.390000000000001,"x":1.391556401275001,"y":0.6996916305999983,"angle":0.0,"x_velocity":0.9887294874999998,"y_velocity":-1.6978923000000032,"angular_velocity":0.0,"x_acceleration":-0.07584499999999944,"y_acceleration":-3.1402799999999758,"angular_acceleration":0.0},{"time":1.400000000000001,"x":1.401440000000001,"y":0.6825599999999982,"angle":0.0,"x_velocity":0.9879999999999999,"y_velocity":-1.7280000000000024,"angular_velocity":0.0,"x_acceleration":-0.06999999999999956,"y_acceleration":-2.8799999999999724,"angular_acceleration":0.0},{"time":1.410000000000001,"x":1.4113166012250011,"y":0.6651404293999984,"angle":0.0,"x_velocity":0.9873304875000001,"y_velocity":-1.7554683000000026,"angular_velocity":0.0,"x_acceleration":-0.06385499999999938,"y_acceleration":-2.6125199999999715,"angular_acceleration":0.0},{"time":1.420000000000001,"x":1.421186819200001,"y":0.6474596607999983,"angle":0.0,"x_velocity":0.9867237999999998,"y_velocity":-1.7802288000000026,"angular_velocity":0.0,"x_acceleration":-0.057439999999999436,"y_acceleration":-2.338559999999976,"angular_acceleration":0.0},{"time":1.430000000000001,"x":1.4310512951750012,"y":0.6295450841999981,"angle":0.0,"x_velocity":0.9861824874999999,"y_velocity":-1.8022203000000019,"angular_velocity":0.0,"x_acceleration":-0.050784999999999414,"y_acceleration":-2.05883999999997,"angular_acceleration":0.0},{"time":1.440000000000001,"x":1.440910694400001,"y":0.6114246655999981,"angle":0.0,"x_velocity":0.9857087999999999,"y_velocity":-1.8213888000000018,"angular_velocity":0.0,"x_acceleration":-0.04391999999999918,"y_acceleration":-1.774079999999966,"angular_acceleration":0.0},{"time":1.450000000000001,"x":1.4507657031250007,"y":0.593126874999998,"angle":0.0,"x_velocity":0.9853046875,"y_velocity":-1.8376875,"angular_velocity":0.0,"x_acceleration":-0.03687499999999955,"y_acceleration":-1.4849999999999763,"angular_acceleration":0.0},{"time":1.460000000000001,"x":1.460617025600001,"y":0.574680614399998,"angle":0.0,"x_velocity":0.9849717999999998,"y_velocity":-1.8510768000000009,"angular_velocity":0.0,"x_acceleration":-0.029679999999999374,"y_acceleration":-1.1923199999999703,"angular_acceleration":0.0},{"time":1.470000000000001,"x":1.470465381075001,"y":0.556115145799998,"angle":0.0,"x_velocity":0.9847114874999997,"y_velocity":-1.8615243000000008,"angular_velocity":0.0,"x_acceleration":-0.02236499999999908,"y_acceleration":-0.8967599999999667,"angular_acceleration":0.0},{"time":1.480000000000001,"x":1.4803115008000012,"y":0.537460019199998,"angle":0.0,"x_velocity":0.9845248000000001,"y_velocity":-1.8690047999999995,"angular_velocity":0.0,"x_acceleration":-0.014959999999999307,"y_acceleration":-0.5990399999999703,"angular_acceleration":0.0},{"time":1.490000000000001,"x":1.490156125025001,"y":0.5187450005999978,"angle":0.0,"x_velocity":0.9844124875,"y_velocity":-1.8735003000000008,"angular_velocity":0.0,"x_acceleration":-0.00749499999999903,"y_acceleration":-0.2998799999999662,"angular_acceleration":0.0},{"time":1.500000000000001,"x":1.5000000000000013,"y":0.4999999999999978,"angle":0.0,"x_velocity":0.984375,"y_velocity":-1.8750000000000007,"angular_velocity":0.0,"x_acceleration":8.881784197001252e-16,"y_acceleration":3.019806626980426e-14,"angular_acceleration":0.0},{"time":1.5100000000000011,"x":1.509843874975001,"y":0.4812549993999979,"angle":0.0,"x_velocity":0.9844124875000001,"y_velocity":-1.8735003000000008,"angular_velocity":0.0,"x_acceleration":0.00749500000000114,"y_acceleration":0.2998800000000408,"angular_acceleration":0.0},{"time":1.5200000000000011,"x":1.5196884992000013,"y":0.46253998079999786,"angle":0.0,"x_velocity":0.9845248000000001,"y_velocity":-1.8690047999999986,"angular_velocity":0.0,"x_acceleration":0.014960000000000861,"y_acceleration":0.5990400000000378,"angular_acceleration":0.0},{"time":1.5300000000000011,"x":1.529534618925001,"y":0.4438848541999979,"angle":0.0,"x_velocity":0.9847114875000001,"y_velocity":-1.8615242999999984,"angular_velocity":0.0,"x_acceleration":0.022365000000000634,"y_acceleration":0.8967600000000289,"angular_acceleration":0.0},{"time":1.5400000000000011,"x":1.539382974400001,"y":0.4253193855999977,"angle":0.0,"x_velocity":0.9849718000000001,"y_velocity":-1.8510767999999986,"angular_velocity":0.0,"x_acceleration":0.02968000000000104,"y_acceleration":1.1923200000000342,"angular_acceleration":0.0},{"time":1.5500000000000012,"x":1.5492342968750012,"y":0.40687312499999795,"angle":0.0,"x_velocity":0.9853046874999999,"y_velocity":-1.8376874999999995,"angular_velocity":0.0,"x_acceleration":0.03687500000000088,"y_acceleration":1.4850000000000279,"angular_acceleration":0.0},{"time":1.5600000000000012,"x":1.559089305600001,"y":0.38857533439999775,"angle":0.0,"x_velocity":0.9857088000000002,"y_velocity":-1.8213887999999985,"angular_velocity":0.0,"x_acceleration":0.04392000000000107,"y_acceleration":1.7740800000000299,"angular_acceleration":0.0},{"time":1.5700000000000012,"x":1.5689487048250013,"y":0.3704549157999977,"angle":0.0,"x_velocity":0.9861824875,"y_velocity":-1.8022202999999979,"angular_velocity":0.0,"x_acceleration":0.05078500000000086,"y_acceleration":2.0588400000000355,"angular_acceleration":0.0},{"time":1.5800000000000012,"x":1.5788131808000012,"y":0.35254033919999794,"angle":0.0,"x_velocity":0.9867238000000002,"y_velocity":-1.780228799999997,"angular_velocity":0.0,"x_acceleration":0.057440000000000824,"y_acceleration":2.3385600000000366,"angular_acceleration":0.0},{"time":1.5900000000000012,"x":1.5886833987750013,"y":0.3348595705999976,"angle":0.0,"x_velocity":0.9873304875000002,"y_velocity":-1.7554682999999955,"angular_velocity":0.0,"x_acceleration":0.06385500000000066,"y_acceleration":2.6125200000000355,"angular_acceleration":0.0},{"time":1.6000000000000012,"x":1.5985600000000013,"y":0.31743999999999806,"angle":0.0,"x_velocity":0.9880000000000002,"y_velocity":-1.7279999999999958,"angular_velocity":0.0,"x_acceleration":0.07000000000000073,"y_acceleration":2.880000000000024,"angular_acceleration":0.0},{"time":1.6100000000000012,"x":1.6084435987250014,"y":0.30030836939999794,"angle":0.0,"x_velocity":0.9887294875000001,"y_velocity":-1.697892299999996,"angular_velocity":0.0,"x_acceleration":0.07584500000000083,"y_acceleration":3.1402800000000326,"angular_acceleration":0.0},{"time":1.6200000000000012,"x":1.6183347792000011,"y":0.28349070079999794,"angle":0.0,"x_velocity":0.9895158,"y_velocity":-1.6652207999999948,"angular_velocity":0.0,"x_acceleration":0.08136000000000054,"y_acceleration":3.3926400000000214,"angular_acceleration":0.0},{"time":1.6300000000000012,"x":1.6282340926750014,"y":0.2670122241999979,"angle":0.0,"x_velocity":0.9903554875000001,"y_velocity":-1.6300682999999943,"angular_velocity":0.0,"x_acceleration":0.08651500000000056,"y_acceleration":3.6363600000000247,"angular_acceleration":0.0},{"time":1.6400000000000012,"x":1.6381420544000012,"y":0.25089730559999834,"angle":0.0,"x_velocity":0.9912447999999999,"y_velocity":-1.5925247999999979,"angular_velocity":0.0,"x_acceleration":0.09128000000000092,"y_acceleration":3.8707200000000377,"angular_acceleration":0.0},{"time":1.6500000000000012,"x":1.6480591406250011,"y":0.23516937499999813,"angle":0.0,"x_velocity":0.9921796875000001,"y_velocity":-1.5526874999999931,"angular_velocity":0.0,"x_acceleration":0.09562500000000007,"y_acceleration":4.09500000000002,"angular_acceleration":0.0},{"time":1.6600000000000013,"x":1.657985785600001,"y":0.21985085439999796,"angle":0.0,"x_velocity":0.9931558000000001,"y_velocity":-1.510660799999993,"angular_velocity":0.0,"x_acceleration":0.09951999999999983,"y_acceleration":4.30848000000001,"angular_acceleration":0.0},{"time":1.6700000000000013,"x":1.6679223785750013,"y":0.20496308579999822,"angle":0.0,"x_velocity":0.9941684875000003,"y_velocity":-1.4665562999999935,"angular_velocity":0.0,"x_acceleration":0.10293500000000066,"y_acceleration":4.510440000000024,"angular_acceleration":0.0},{"time":1.6800000000000013,"x":1.6778692608000012,"y":0.1905262591999981,"angle":0.0,"x_velocity":0.9952128000000002,"y_velocity":-1.4204927999999946,"angular_velocity":0.0,"x_acceleration":0.10584000000000082,"y_acceleration":4.700160000000032,"angular_acceleration":0.0},{"time":1.6900000000000013,"x":1.6878267225250014,"y":0.17655934059999812,"angle":0.0,"x_velocity":0.9962834875,"y_velocity":-1.3725962999999943,"angular_velocity":0.0,"x_acceleration":0.10820500000000033,"y_acceleration":4.876920000000027,"angular_acceleration":0.0},{"time":1.7000000000000013,"x":1.6977950000000013,"y":0.16307999999999767,"angle":0.0,"x_velocity":0.9973750000000001,"y_velocity":-1.3229999999999933,"angular_velocity":0.0,"x_acceleration":0.11000000000000032,"y_acceleration":5.040000000000013,"angular_acceleration":0.0},{"time":1.7100000000000013,"x":1.7077742724750011,"y":0.15010453939999824,"angle":0.0,"x_velocity":0.9984814875,"y_velocity":-1.2718442999999935,"angular_velocity":0.0,"x_acceleration":0.11119499999999993,"y_acceleration":5.188680000000012,"angular_acceleration":0.0},{"time":1.7200000000000013,"x":1.7177646592000013,"y":0.1376478207999987,"angle":0.0,"x_velocity":0.9995968000000003,"y_velocity":-1.2192767999999905,"angular_velocity":0.0,"x_acceleration":0.11175999999999986,"y_acceleration":5.322240000000008,"angular_acceleration":0.0},{"time":1.7300000000000013,"x":1.7277662164250012,"y":0.12572319419999878,"angle":0.0,"x_velocity":1.0007144875,"y_velocity":-1.165452299999993,"angular_velocity":0.0,"x_acceleration":0.11166500000000013,"y_acceleration":5.4399600000000135,"angular_acceleration":0.0},{"time":1.7400000000000013,"x":1.7377789344000014,"y":0.11434242559999874,"angle":0.0,"x_velocity":1.0018278,"y_velocity":-1.1105327999999943,"angular_velocity":0.0,"x_acceleration":0.11088000000000031,"y_acceleration":5.541120000000028,"angular_acceleration":0.0},{"time":1.7500000000000013,"x":1.7478027343750013,"y":0.103515624999998,"angle":0.0,"x_velocity":1.0029296875000002,"y_velocity":-1.054687499999993,"angular_velocity":0.0,"x_acceleration":0.10937499999999956,"y_acceleration":5.625,"angular_acceleration":0.0},{"time":1.7600000000000013,"x":1.7578374656000013,"y":0.0932511743999993,"angle":0.0,"x_velocity":1.0040128000000001,"y_velocity":-0.9980927999999913,"angular_velocity":0.0,"x_acceleration":0.10711999999999966,"y_acceleration":5.690880000000007,"angular_acceleration":0.0},{"time":1.7700000000000014,"x":1.7678829023250011,"y":0.08355565579999835,"angle":0.0,"x_velocity":1.0050694875000001,"y_velocity":-0.9409322999999912,"angular_velocity":0.0,"x_acceleration":0.10408499999999954,"y_acceleration":5.738040000000005,"angular_acceleration":0.0},{"time":1.7800000000000014,"x":1.7779387408000011,"y":0.07443377919999783,"angle":0.0,"x_velocity":1.0060918000000003,"y_velocity":-0.8833967999999892,"angular_velocity":0.0,"x_acceleration":0.10023999999999855,"y_acceleration":5.765759999999993,"angular_acceleration":0.0},{"time":1.7900000000000014,"x":1.7880045962750013,"y":0.06588831059999833,"angle":0.0,"x_velocity":1.0070714875,"y_velocity":-0.8256842999999883,"angular_velocity":0.0,"x_acceleration":0.09555499999999961,"y_acceleration":5.7733200000000195,"angular_acceleration":0.0},{"time":1.8000000000000014,"x":1.7980800000000015,"y":0.05791999999999842,"angle":0.0,"x_velocity":1.0080000000000005,"y_velocity":-0.7679999999999865,"angular_velocity":0.0,"x_acceleration":0.08999999999999941,"y_acceleration":5.760000000000005,"angular_acceleration":0.0},{"time":1.8100000000000014,"x":1.8081643962250014,"y":0.050527509399998394,"angle":0.0,"x_velocity":1.0088684875,"y_velocity":-0.7105562999999933,"angular_velocity":0.0,"x_acceleration":0.08354499999999909,"y_acceleration":5.7250800000000055,"angular_acceleration":0.0},{"time":1.8200000000000014,"x":1.8182571392000013,"y":0.04370734079999883,"angle":0.0,"x_velocity":1.0096678,"y_velocity":-0.6535727999999921,"angular_velocity":0.0,"x_acceleration":0.07615999999999845,"y_acceleration":5.667839999999998,"angular_acceleration":0.0},{"time":1.8300000000000014,"x":1.8283574901750015,"y":0.037453764199999906,"angle":0.0,"x_velocity":1.0103884874999998,"y_velocity":-0.5972762999999972,"angular_velocity":0.0,"x_acceleration":0.06781499999999996,"y_acceleration":5.587559999999996,"angular_acceleration":0.0},{"time":1.8400000000000014,"x":1.8384646144000014,"y":0.03175874559999947,"angle":0.0,"x_velocity":1.0110208000000003,"y_velocity":-0.5419007999999899,"angular_velocity":0.0,"x_acceleration":0.05847999999999853,"y_acceleration":5.483519999999984,"angular_acceleration":0.0},{"time":1.8500000000000014,"x":1.8485775781250013,"y":0.026611874999999063,"angle":0.0,"x_velocity":1.0115546875,"y_velocity":-0.4876874999999945,"angular_velocity":0.0,"x_acceleration":0.04812499999999842,"y_acceleration":5.35499999999999,"angular_acceleration":0.0},{"time":1.8600000000000014,"x":1.8586953456000015,"y":0.022000294399998843,"angle":0.0,"x_velocity":1.0119798,"y_velocity":-0.43488479999999186,"angular_velocity":0.0,"x_acceleration":0.03671999999999809,"y_acceleration":5.201279999999969,"angular_acceleration":0.0},{"time":1.8700000000000014,"x":1.8688167760750014,"y":0.01790862580000052,"angle":0.0,"x_velocity":1.0122854875,"y_velocity":-0.3837482999999864,"angular_velocity":0.0,"x_acceleration":0.024234999999997342,"y_acceleration":5.021639999999962,"angular_acceleration":0.0},{"time":1.8800000000000014,"x":1.8789406208000012,"y":0.014318899199999624,"angle":0.0,"x_velocity":1.0124608000000002,"y_velocity":-0.33454079999998854,"angular_velocity":0.0,"x_acceleration":0.010639999999997762,"y_acceleration":4.81535999999997,"angular_acceleration":0.0},{"time":1.8900000000000015,"x":1.8890655200250015,"y":0.011210480599999073,"angle":0.0,"x_velocity":1.0124944875,"y_velocity":-0.2875322999999952,"angular_velocity":0.0,"x_acceleration":-0.00409500000000218,"y_acceleration":4.581719999999962,"angular_acceleration":0.0},{"time":1.9000000000000015,"x":1.8991900000000017,"y":0.008559999999999235,"angle":0.0,"x_velocity":1.012375,"y_velocity":-0.2429999999999879,"angular_velocity":0.0,"x_acceleration":-0.02000000000000357,"y_acceleration":4.3199999999999505,"angular_acceleration":0.0},{"time":1.9100000000000015,"x":1.9093124699750015,"y":0.006341279400000843,"angle":0.0,"x_velocity":1.0120904874999999,"y_velocity":-0.20122830000000036,"angular_velocity":0.0,"x_acceleration":-0.037105000000002164,"y_acceleration":4.029479999999992,"angular_acceleration":0.0},{"time":1.9200000000000015,"x":1.9194312192000018,"y":0.004525260800000819,"angle":0.0,"x_velocity":1.0116288,"y_velocity":-0.16250880000000123,"angular_velocity":0.0,"x_acceleration":-0.0554400000000026,"y_acceleration":3.709439999999958,"angular_acceleration":0.0},{"time":1.9300000000000015,"x":1.9295444139250015,"y":0.003079934199998746,"angle":0.0,"x_velocity":1.0109774874999997,"y_velocity":-0.12714029999999,"angular_velocity":0.0,"x_acceleration":-0.0750350000000024,"y_acceleration":3.359159999999946,"angular_acceleration":0.0},{"time":1.9400000000000015,"x":1.9396500944000015,"y":0.0019702655999989105,"angle":0.0,"x_velocity":1.0101237999999997,"y_velocity":-0.09542879999998632,"angular_velocity":0.0,"x_acceleration":-0.095920000000004,"y_acceleration":2.9779199999999264,"angular_acceleration":0.0},{"time":1.9500000000000015,"x":1.9497461718750018,"y":0.0011581249999998988,"angle":0.0,"x_velocity":1.0090546875,"y_velocity":-0.06768749999999457,"angular_velocity":0.0,"x_acceleration":-0.11812500000000359,"y_acceleration":2.5649999999999125,"angular_acceleration":0.0},{"time":1.9600000000000015,"x":1.9598304256000016,"y":0.0006022144000006335,"angle":0.0,"x_velocity":1.0077567999999997,"y_velocity":-0.04423679999999308,"angular_velocity":0.0,"x_acceleration":-0.14168000000000358,"y_acceleration":2.1196799999999456,"angular_acceleration":0.0},{"time":1.9700000000000015,"x":1.9699004998250016,"y":0.0002579957999992999,"angle":0.0,"x_velocity":1.0062164874999997,"y_velocity":-0.025404300000005264,"angular_velocity":0.0,"x_acceleration":-0.16661500000000373,"y_acceleration":1.6412399999999394,"angular_acceleration":0.0},{"time":1.9800000000000015,"x":1.9799539008000013,"y":0.00007761920000071143,"angle":0.0,"x_velocity":1.0044197999999998,"y_velocity":-0.01152479999999656,"angular_velocity":0.0,"x_acceleration":-0.19296000000000468,"y_acceleration":1.1289599999999211,"angular_acceleration":0.0},{"time":1.9900000000000015,"x":1.9899879937750018,"y":0.00000985059999969451,"angle":0.0,"x_velocity":1.0023524874999996,"y_velocity":-0.0029403000000023383,"angular_velocity":0.0,"x_acceleration":-0.2207450000000044,"y_acceleration":0.5821199999999322,"angular_acceleration":0.0},{"time":2.0000000000000013,"x":2.0000000000000013,"y":2.3646911585481243e-44,"angle":0.0,"x_velocity":0.9999999999999997,"y_velocity":5.324811110241815e-29,"angular_velocity":0.0,"x_acceleration":-0.24999999999996503,"y_acceleration":7.993605777301096e-14,"angular_acceleration":0.0},{"time":2.010000000000001,"x":2.009991801562501,"y":0.000009850600000003292,"angle":0.0,"x_velocity":0.99878315625,"y_velocity":0.0029403000000006512,"angular_velocity":0.0,"x_acceleration":0.003712500000027416,"y_acceleration":0.5821200000000631,"angular_acceleration":0.0},{"time":2.020000000000001,"x":2.019983830000001,"y":0.00007761920000001044,"angle":0.0,"x_velocity":1.0000165,"y_velocity":0.011524800000001023,"angular_velocity":0.0,"x_acceleration":0.24010000000002063,"y_acceleration":1.128960000000048,"angular_acceleration":0.0},{"time":2.0300000000000007,"x":2.0299997271875005,"y":0.0002579958000000176,"angle":0.0,"x_velocity":1.0035286562500003,"y_velocity":0.025404300000001143,"angular_velocity":0.0,"x_acceleration":0.45953750000001464,"y_acceleration":1.6412400000000342,"angular_acceleration":0.0},{"time":2.0400000000000005,"x":2.0400614400000006,"y":0.0006022144000000213,"angle":0.0,"x_velocity":1.0091520000000003,"y_velocity":0.04423680000000102,"angular_velocity":0.0,"x_acceleration":0.6624000000000094,"y_acceleration":2.119680000000022,"angular_acceleration":0.0},{"time":2.0500000000000003,"x":2.0501892578125003,"y":0.0011581250000000179,"angle":0.0,"x_velocity":1.01672265625,"y_velocity":0.06768750000000068,"angular_velocity":0.0,"x_acceleration":0.8490625000000048,"y_acceleration":2.5650000000000115,"angular_acceleration":0.0},{"time":2.06,"x":2.0604018500000003,"y":0.0019702656000000047,"angle":0.0,"x_velocity":1.0260805000000002,"y_velocity":0.09542880000000015,"angular_velocity":0.0,"x_acceleration":1.019900000000001,"y_acceleration":2.9779200000000023,"angular_acceleration":0.0},{"time":2.07,"x":2.0707163034374996,"y":0.003079934199999979,"angle":0.0,"x_velocity":1.0370691562499998,"y_velocity":0.12714029999999948,"angular_velocity":0.0,"x_acceleration":1.1752874999999978,"y_acceleration":3.359159999999994,"angular_acceleration":0.0},{"time":2.0799999999999996,"x":2.0811481599999997,"y":0.004525260799999939,"angle":0.0,"x_velocity":1.0495359999999996,"y_velocity":0.16250879999999862,"angular_velocity":0.0,"x_acceleration":1.3155999999999952,"y_acceleration":3.7094399999999874,"angular_acceleration":0.0},{"time":2.0899999999999994,"x":2.0917114540624993,"y":0.006341279399999881,"angle":0.0,"x_velocity":1.063332156249999,"y_velocity":0.20122829999999764,"angular_velocity":0.0,"x_acceleration":1.4412124999999931,"y_acceleration":4.029479999999982,"angular_acceleration":0.0},{"time":2.099999999999999,"x":2.102418749999999,"y":0.008559999999999807,"angle":0.0,"x_velocity":1.078312499999999,"y_velocity":0.24299999999999655,"angular_velocity":0.0,"x_acceleration":1.5524999999999918,"y_acceleration":4.319999999999978,"angular_acceleration":0.0},{"time":2.109999999999999,"x":2.1132811796874993,"y":0.01121048059999971,"angle":0.0,"x_velocity":1.0943356562499982,"y_velocity":0.28753229999999536,"angular_velocity":0.0,"x_acceleration":1.649837499999991,"y_acceleration":4.581719999999975,"angular_acceleration":0.0},{"time":2.1199999999999988,"x":2.124308479999999,"y":0.01431889919999959,"angle":0.0,"x_velocity":1.111263999999998,"y_velocity":0.33454079999999414,"angular_velocity":0.0,"x_acceleration":1.7335999999999907,"y_acceleration":4.8153599999999726,"angular_acceleration":0.0},{"time":2.1299999999999986,"x":2.1355090303124986,"y":0.017908625799999453,"angle":0.0,"x_velocity":1.1289636562499976,"y_velocity":0.3837482999999928,"angular_velocity":0.0,"x_acceleration":1.8041624999999908,"y_acceleration":5.021639999999972,"angular_acceleration":0.0},{"time":2.1399999999999983,"x":2.146889889999998,"y":0.022000294399999277,"angle":0.0,"x_velocity":1.1473044999999968,"y_velocity":0.43488479999999147,"angular_velocity":0.0,"x_acceleration":1.8618999999999915,"y_acceleration":5.201279999999972,"angular_acceleration":0.0},{"time":2.149999999999998,"x":2.1584568359374976,"y":0.02661187499999909,"angle":0.0,"x_velocity":1.1661601562499966,"y_velocity":0.48768749999999006,"angular_velocity":0.0,"x_acceleration":1.9071874999999925,"y_acceleration":5.354999999999974,"angular_acceleration":0.0},{"time":2.159999999999998,"x":2.170214399999997,"y":0.03175874559999887,"angle":0.0,"x_velocity":1.1854079999999958,"y_velocity":0.5419007999999885,"angular_velocity":0.0,"x_acceleration":1.9403999999999937,"y_acceleration":5.4835199999999755,"angular_acceleration":0.0},{"time":2.1699999999999977,"x":2.1821659065624974,"y":0.03745376419999863,"angle":0.0,"x_velocity":1.2049291562499957,"y_velocity":0.5972762999999873,"angular_velocity":0.0,"x_acceleration":1.9619124999999962,"y_acceleration":5.5875599999999785,"angular_acceleration":0.0},{"time":2.1799999999999975,"x":2.194313509999997,"y":0.043707340799998357,"angle":0.0,"x_velocity":1.2246084999999949,"y_velocity":0.6535727999999857,"angular_velocity":0.0,"x_acceleration":1.9720999999999986,"y_acceleration":5.667839999999983,"angular_acceleration":0.0},{"time":2.1899999999999973,"x":2.2066582321874972,"y":0.050527509399998075,"angle":0.0,"x_velocity":1.2443346562499944,"y_velocity":0.7105562999999845,"angular_velocity":0.0,"x_acceleration":1.9713375000000017,"y_acceleration":5.725079999999988,"angular_acceleration":0.0},{"time":2.199999999999997,"x":2.2191999999999963,"y":0.057919999999997744,"angle":0.0,"x_velocity":1.2639999999999945,"y_velocity":0.7679999999999831,"angular_velocity":0.0,"x_acceleration":1.9600000000000046,"y_acceleration":5.759999999999993,"angular_acceleration":0.0},{"time":2.209999999999997,"x":2.2319376828124957,"y":0.06588831059999739,"angle":0.0,"x_velocity":1.2835006562499942,"y_velocity":0.8256842999999818,"angular_velocity":0.0,"x_acceleration":1.9384625000000084,"y_acceleration":5.77332,"angular_acceleration":0.0},{"time":2.2199999999999966,"x":2.2448691299999957,"y":0.07443377919999702,"angle":0.0,"x_velocity":1.3027364999999933,"y_velocity":0.8833967999999806,"angular_velocity":0.0,"x_acceleration":1.9071000000000122,"y_acceleration":5.765760000000006,"angular_acceleration":0.0},{"time":2.2299999999999964,"x":2.257991208437496,"y":0.08355565579999664,"angle":0.0,"x_velocity":1.3216111562499933,"y_velocity":0.9409322999999794,"angular_velocity":0.0,"x_acceleration":1.8662875000000163,"y_acceleration":5.738040000000014,"angular_acceleration":0.0},{"time":2.239999999999996,"x":2.271299839999995,"y":0.09325117439999621,"angle":0.0,"x_velocity":1.3400319999999932,"y_velocity":0.9980927999999784,"angular_velocity":0.0,"x_acceleration":1.8164000000000202,"y_acceleration":5.690880000000023,"angular_acceleration":0.0},{"time":2.249999999999996,"x":2.2847900390624947,"y":0.10351562499999578,"angle":0.0,"x_velocity":1.357910156249993,"y_velocity":1.0546874999999776,"angular_velocity":0.0,"x_acceleration":1.757812500000025,"y_acceleration":5.625000000000029,"angular_acceleration":0.0},{"time":2.259999999999996,"x":2.2984559499999944,"y":0.11434242559999533,"angle":0.0,"x_velocity":1.375160499999993,"y_velocity":1.1105327999999766,"angular_velocity":0.0,"x_acceleration":1.6909000000000298,"y_acceleration":5.54112000000004,"angular_acceleration":0.0},{"time":2.2699999999999956,"x":2.312290884687494,"y":0.12572319419999484,"angle":0.0,"x_velocity":1.391701656249993,"y_velocity":1.165452299999976,"angular_velocity":0.0,"x_acceleration":1.616037500000035,"y_acceleration":5.439960000000049,"angular_acceleration":0.0},{"time":2.2799999999999954,"x":2.326287359999993,"y":0.13764782079999435,"angle":0.0,"x_velocity":1.4074559999999932,"y_velocity":1.2192767999999754,"angular_velocity":0.0,"x_acceleration":1.5336000000000403,"y_acceleration":5.3222400000000585,"angular_acceleration":0.0},{"time":2.289999999999995,"x":2.3404371353124933,"y":0.1501045393999938,"angle":0.0,"x_velocity":1.422349656249993,"y_velocity":1.271844299999975,"angular_velocity":0.0,"x_acceleration":1.4439625000000442,"y_acceleration":5.1886800000000655,"angular_acceleration":0.0},{"time":2.299999999999995,"x":2.354731249999993,"y":0.16307999999999329,"angle":0.0,"x_velocity":1.436312499999993,"y_velocity":1.3229999999999744,"angular_velocity":0.0,"x_acceleration":1.3475000000000505,"y_acceleration":5.040000000000078,"angular_acceleration":0.0},{"time":2.3099999999999947,"x":2.369160060937492,"y":0.1765593405999928,"angle":0.0,"x_velocity":1.4492781562499935,"y_velocity":1.3725962999999741,"angular_velocity":0.0,"x_acceleration":1.244587500000056,"y_acceleration":4.876920000000087,"angular_acceleration":0.0},{"time":2.3199999999999945,"x":2.3837132799999923,"y":0.19052625919999228,"angle":0.0,"x_velocity":1.4611839999999936,"y_velocity":1.4204927999999741,"angular_velocity":0.0,"x_acceleration":1.1356000000000623,"y_acceleration":4.700160000000098,"angular_acceleration":0.0},{"time":2.3299999999999943,"x":2.398380011562492,"y":0.20496308579999165,"angle":0.0,"x_velocity":1.4719711562499942,"y_velocity":1.4665562999999742,"angular_velocity":0.0,"x_acceleration":1.0209125000000672,"y_acceleration":4.510440000000111,"angular_acceleration":0.0},{"time":2.339999999999994,"x":2.4131487899999913,"y":0.2198508543999911,"angle":0.0,"x_velocity":1.4815844999999945,"y_velocity":1.5106607999999748,"angular_velocity":0.0,"x_acceleration":0.9009000000000724,"y_acceleration":4.308480000000118,"angular_acceleration":0.0},{"time":2.349999999999994,"x":2.428007617187491,"y":0.23516937499999047,"angle":0.0,"x_velocity":1.489972656249995,"y_velocity":1.5526874999999747,"angular_velocity":0.0,"x_acceleration":0.7759375000000772,"y_acceleration":4.095000000000134,"angular_acceleration":0.0},{"time":2.3599999999999937,"x":2.4429439999999905,"y":0.25089730559998996,"angle":0.0,"x_velocity":1.4970879999999958,"y_velocity":1.5925247999999754,"angular_velocity":0.0,"x_acceleration":0.6464000000000838,"y_acceleration":3.8707200000001434,"angular_acceleration":0.0},{"time":2.3699999999999934,"x":2.4579449878124904,"y":0.26701222419998927,"angle":0.0,"x_velocity":1.5028866562499965,"y_velocity":1.6300682999999756,"angular_velocity":0.0,"x_acceleration":0.5126625000000908,"y_acceleration":3.636360000000156,"angular_acceleration":0.0},{"time":2.3799999999999932,"x":2.4729972099999897,"y":0.2834907007999887,"angle":0.0,"x_velocity":1.5073284999999976,"y_velocity":1.6652207999999773,"angular_velocity":0.0,"x_acceleration":0.3751000000000926,"y_acceleration":3.3926400000001635,"angular_acceleration":0.0},{"time":2.389999999999993,"x":2.4880869134374897,"y":0.3003083693999881,"angle":0.0,"x_velocity":1.510377156249998,"y_velocity":1.6978922999999777,"angular_velocity":0.0,"x_acceleration":0.23408750000010103,"y_acceleration":3.140280000000181,"angular_acceleration":0.0},{"time":2.399999999999993,"x":2.503199999999989,"y":0.3174399999999876,"angle":0.0,"x_velocity":1.5119999999999993,"y_velocity":1.7279999999999793,"angular_velocity":0.0,"x_acceleration":0.09000000000010377,"y_acceleration":2.8800000000001855,"angular_acceleration":0.0},{"time":2.4099999999999926,"x":2.518322064062489,"y":0.3348595705999869,"angle":0.0,"x_velocity":1.51216815625,"y_velocity":1.7554682999999809,"angular_velocity":0.0,"x_acceleration":-0.05678749999989119,"y_acceleration":2.612520000000199,"angular_acceleration":0.0},{"time":2.4199999999999924,"x":2.5334384299999884,"y":0.3525403391999864,"angle":0.0,"x_velocity":1.5108565000000014,"y_velocity":1.7802287999999824,"angular_velocity":0.0,"x_acceleration":-0.20589999999988606,"y_acceleration":2.338560000000207,"angular_acceleration":0.0},{"time":2.429999999999992,"x":2.548534189687489,"y":0.3704549157999859,"angle":0.0,"x_velocity":1.5080436562500028,"y_velocity":1.8022202999999837,"angular_velocity":0.0,"x_acceleration":-0.35696249999988083,"y_acceleration":2.0588400000002185,"angular_acceleration":0.0},{"time":2.439999999999992,"x":2.563594239999988,"y":0.38857533439998526,"angle":0.0,"x_velocity":1.5037120000000042,"y_velocity":1.821388799999986,"angular_velocity":0.0,"x_acceleration":-0.5095999999998755,"y_acceleration":1.774080000000227,"angular_acceleration":0.0},{"time":2.4499999999999917,"x":2.5786033203124874,"y":0.40687312499998496,"angle":0.0,"x_velocity":1.4978476562500052,"y_velocity":1.837687499999988,"angular_velocity":0.0,"x_acceleration":-0.6634374999998727,"y_acceleration":1.485000000000234,"angular_acceleration":0.0},{"time":2.4599999999999915,"x":2.593546049999987,"y":0.42531938559998433,"angle":0.0,"x_velocity":1.490440500000007,"y_velocity":1.8510767999999898,"angular_velocity":0.0,"x_acceleration":-0.818099999999867,"y_acceleration":1.192320000000251,"angular_acceleration":0.0},{"time":2.4699999999999913,"x":2.6084069659374873,"y":0.4438848541999838,"angle":0.0,"x_velocity":1.4814841562500076,"y_velocity":1.8615242999999912,"angular_velocity":0.0,"x_acceleration":-0.973212499999863,"y_acceleration":0.8967600000002633,"angular_acceleration":0.0},{"time":2.479999999999991,"x":2.623170559999987,"y":0.4625399807999834,"angle":0.0,"x_velocity":1.4709760000000098,"y_velocity":1.8690047999999941,"angular_velocity":0.0,"x_acceleration":-1.1283999999998606,"y_acceleration":0.5990400000002669,"angular_acceleration":0.0},{"time":2.489999999999991,"x":2.6378213165624866,"y":0.48125499939998295,"angle":0.0,"x_velocity":1.4589171562500116,"y_velocity":1.873500299999997,"angular_velocity":0.0,"x_acceleration":-1.283287499999858,"y_acceleration":0.2998800000002717,"angular_acceleration":0.0},{"time":2.4999999999999907,"x":2.6523437499999867,"y":0.4999999999999825,"angle":0.0,"x_velocity":1.4453125000000138,"y_velocity":1.8749999999999996,"angular_velocity":0.0,"x_acceleration":-1.437499999999858,"y_acceleration":2.7711166694643907e-13,"angular_acceleration":0.0},{"time":2.5099999999999905,"x":2.666722442187486,"y":0.5187450005999821,"angle":0.0,"x_velocity":1.4301706562500156,"y_velocity":1.8735003000000043,"angular_velocity":0.0,"x_acceleration":-1.5906624999998584,"y_acceleration":-0.2998799999997246,"angular_acceleration":0.0},{"time":2.5199999999999902,"x":2.680942079999986,"y":0.5374600191999819,"angle":0.0,"x_velocity":1.4135040000000174,"y_velocity":1.869004800000007,"angular_velocity":0.0,"x_acceleration":-1.7423999999998525,"y_acceleration":-0.5990399999997145,"angular_acceleration":0.0},{"time":2.52999999999999,"x":2.694987492812486,"y":0.5561151457999813,"angle":0.0,"x_velocity":1.3953286562500193,"y_velocity":1.86152430000001,"angular_velocity":0.0,"x_acceleration":-1.8923374999998508,"y_acceleration":-0.896759999999702,"angular_acceleration":0.0},{"time":2.53999999999999,"x":2.708843689999986,"y":0.5746806143999814,"angle":0.0,"x_velocity":1.3756645000000212,"y_velocity":1.851076800000012,"angular_velocity":0.0,"x_acceleration":-2.0400999999998515,"y_acceleration":-1.192319999999711,"angular_acceleration":0.0},{"time":2.5499999999999896,"x":2.722495898437486,"y":0.5931268749999807,"angle":0.0,"x_velocity":1.354535156250023,"y_velocity":1.8376875000000155,"angular_velocity":0.0,"x_acceleration":-2.1853124999998492,"y_acceleration":-1.484999999999701,"angular_acceleration":0.0},{"time":2.5599999999999894,"x":2.7359295999999858,"y":0.6114246655999804,"angle":0.0,"x_velocity":1.3319680000000262,"y_velocity":1.821388800000019,"angular_velocity":0.0,"x_acceleration":-2.3275999999998493,"y_acceleration":-1.7740799999996995,"angular_acceleration":0.0},{"time":2.569999999999989,"x":2.7491305690624857,"y":0.6295450841999806,"angle":0.0,"x_velocity":1.307994156250026,"y_velocity":1.802220300000021,"angular_velocity":0.0,"x_acceleration":-2.4665874999998483,"y_acceleration":-2.058839999999691,"angular_acceleration":0.0},{"time":2.579999999999989,"x":2.7620849099999862,"y":0.6474596607999803,"angle":0.0,"x_velocity":1.2826485000000292,"y_velocity":1.7802288000000255,"angular_velocity":0.0,"x_acceleration":-2.601899999999855,"y_acceleration":-2.3385599999997027,"angular_acceleration":0.0},{"time":2.5899999999999888,"x":2.774779094687486,"y":0.6651404293999803,"angle":0.0,"x_velocity":1.2559696562500302,"y_velocity":1.7554683000000302,"angular_velocity":0.0,"x_acceleration":-2.7331624999998585,"y_acceleration":-2.612519999999698,"angular_acceleration":0.0},{"time":2.5999999999999885,"x":2.787199999999986,"y":0.6825599999999805,"angle":0.0,"x_velocity":1.2280000000000326,"y_velocity":1.728000000000034,"angular_velocity":0.0,"x_acceleration":-2.8599999999998538,"y_acceleration":-2.8799999999996935,"angular_acceleration":0.0},{"time":2.6099999999999883,"x":2.799334945312486,"y":0.6996916305999802,"angle":0.0,"x_velocity":1.1987856562500339,"y_velocity":1.6978923000000359,"angular_velocity":0.0,"x_acceleration":-2.9820374999998567,"y_acceleration":-3.1402799999997058,"angular_acceleration":0.0},{"time":2.619999999999988,"x":2.8111717299999865,"y":0.7165092991999804,"angle":0.0,"x_velocity":1.1683765000000372,"y_velocity":1.6652208000000392,"angular_velocity":0.0,"x_acceleration":-3.0988999999998654,"y_acceleration":-3.3926399999997088,"angular_acceleration":0.0},{"time":2.629999999999988,"x":2.822698670937486,"y":0.7329877757999804,"angle":0.0,"x_velocity":1.1368261562500392,"y_velocity":1.6300683000000458,"angular_velocity":0.0,"x_acceleration":-3.2102124999998676,"y_acceleration":-3.636359999999719,"angular_acceleration":0.0},{"time":2.6399999999999877,"x":2.833904639999987,"y":0.7491026943999806,"angle":0.0,"x_velocity":1.1041920000000411,"y_velocity":1.5925248000000476,"angular_velocity":0.0,"x_acceleration":-3.3155999999998755,"y_acceleration":-3.8707199999997215,"angular_acceleration":0.0},{"time":2.6499999999999875,"x":2.844779101562487,"y":0.7648306249999806,"angle":0.0,"x_velocity":1.0705351562500423,"y_velocity":1.5526875000000526,"angular_velocity":0.0,"x_acceleration":-3.4146874999998857,"y_acceleration":-4.094999999999729,"angular_acceleration":0.0},{"time":2.6599999999999873,"x":2.8553121499999863,"y":0.7801491455999805,"angle":0.0,"x_velocity":1.0359205000000458,"y_velocity":1.5106608000000552,"angular_velocity":0.0,"x_acceleration":-3.5070999999998875,"y_acceleration":-4.30847999999974,"angular_acceleration":0.0},{"time":2.669999999999987,"x":2.865494547187487,"y":0.7950369141999811,"angle":0.0,"x_velocity":1.0004166562500467,"y_velocity":1.4665563000000548,"angular_velocity":0.0,"x_acceleration":-3.5924624999998898,"y_acceleration":-4.510439999999733,"angular_acceleration":0.0},{"time":2.679999999999987,"x":2.8753177599999873,"y":0.8094737407999814,"angle":0.0,"x_velocity":0.9640960000000485,"y_velocity":1.420492800000062,"angular_velocity":0.0,"x_acceleration":-3.6703999999998977,"y_acceleration":-4.700159999999755,"angular_acceleration":0.0},{"time":2.6899999999999866,"x":2.884773997812488,"y":0.8234406593999817,"angle":0.0,"x_velocity":0.9270346562500507,"y_velocity":1.3725963000000654,"angular_velocity":0.0,"x_acceleration":-3.7405374999999097,"y_acceleration":-4.876919999999778,"angular_acceleration":0.0},{"time":2.6999999999999864,"x":2.8938562499999883,"y":0.8369199999999815,"angle":0.0,"x_velocity":0.8893125000000532,"y_velocity":1.3230000000000732,"angular_velocity":0.0,"x_acceleration":-3.802499999999924,"y_acceleration":-5.0399999999998,"angular_acceleration":0.0},{"time":2.709999999999986,"x":2.9025583234374883,"y":0.8498954605999827,"angle":0.0,"x_velocity":0.8510131562500538,"y_velocity":1.2718443000000708,"angular_velocity":0.0,"x_acceleration":-3.8559124999999312,"y_acceleration":-5.188679999999806,"angular_acceleration":0.0},{"time":2.719999999999986,"x":2.910874879999988,"y":0.8623521791999815,"angle":0.0,"x_velocity":0.8122240000000565,"y_velocity":1.2192768000000758,"angular_velocity":0.0,"x_acceleration":-3.9003999999999444,"y_acceleration":-5.32223999999983,"angular_acceleration":0.0},{"time":2.7299999999999858,"x":2.918801474062489,"y":0.8742768057999839,"angle":0.0,"x_velocity":0.773036156250055,"y_velocity":1.1654523000000783,"angular_velocity":0.0,"x_acceleration":-3.9355874999999614,"y_acceleration":-5.439959999999857,"angular_acceleration":0.0},{"time":2.7399999999999856,"x":2.926334589999989,"y":0.8856575743999837,"angle":0.0,"x_velocity":0.7335445000000558,"y_velocity":1.110532800000076,"angular_velocity":0.0,"x_acceleration":-3.9610999999999663,"y_acceleration":-5.541119999999857,"angular_acceleration":0.0},{"time":2.7499999999999853,"x":2.93347167968749,"y":0.8964843749999845,"angle":0.0,"x_velocity":0.6938476562500586,"y_velocity":1.05468750000008,"angular_velocity":0.0,"x_acceleration":-3.9765624999999787,"y_acceleration":-5.624999999999893,"angular_acceleration":0.0},{"time":2.759999999999985,"x":2.94021119999999,"y":0.9067488255999852,"angle":0.0,"x_velocity":0.654048000000059,"y_velocity":0.9980928000000873,"angular_velocity":0.0,"x_acceleration":-3.9816000000000003,"y_acceleration":-5.690879999999915,"angular_acceleration":0.0},{"time":2.769999999999985,"x":2.9465526503124906,"y":0.9164443441999843,"angle":0.0,"x_velocity":0.6142516562500626,"y_velocity":0.9409323000000871,"angular_velocity":0.0,"x_acceleration":-3.975837500000022,"y_acceleration":-5.7380399999999625,"angular_acceleration":0.0},{"time":2.7799999999999847,"x":2.952496609999991,"y":0.9255662207999862,"angle":0.0,"x_velocity":0.5745685000000611,"y_velocity":0.8833968000000905,"angular_velocity":0.0,"x_acceleration":-3.958900000000032,"y_acceleration":-5.765759999999993,"angular_acceleration":0.0},{"time":2.7899999999999845,"x":2.958044775937492,"y":0.9341116893999866,"angle":0.0,"x_velocity":0.5351121562500625,"y_velocity":0.8256843000000931,"angular_velocity":0.0,"x_acceleration":-3.930412500000049,"y_acceleration":-5.773320000000005,"angular_acceleration":0.0},{"time":2.7999999999999843,"x":2.9631999999999916,"y":0.9420799999999883,"angle":0.0,"x_velocity":0.4960000000000626,"y_velocity":0.7680000000000913,"angular_velocity":0.0,"x_acceleration":-3.890000000000068,"y_acceleration":-5.7600000000000335,"angular_acceleration":0.0},{"time":2.809999999999984,"x":2.967966326562493,"y":0.9494724905999883,"angle":0.0,"x_velocity":0.4573531562500621,"y_velocity":0.7105563000000927,"angular_velocity":0.0,"x_acceleration":-3.8372875000000874,"y_acceleration":-5.7250800000000766,"angular_acceleration":0.0},{"time":2.819999999999984,"x":2.972349029999992,"y":0.9562926591999878,"angle":0.0,"x_velocity":0.419296500000061,"y_velocity":0.6535728000000987,"angular_velocity":0.0,"x_acceleration":-3.771900000000123,"y_acceleration":-5.667840000000112,"angular_acceleration":0.0},{"time":2.8299999999999836,"x":2.976354652187494,"y":0.9625462357999903,"angle":0.0,"x_velocity":0.38195865625006054,"y_velocity":0.5972763000000967,"angular_velocity":0.0,"x_acceleration":-3.6934625000001517,"y_acceleration":-5.587560000000167,"angular_acceleration":0.0},{"time":2.8399999999999834,"x":2.979991039999994,"y":0.9682412543999908,"angle":0.0,"x_velocity":0.3454720000000595,"y_velocity":0.5419008000000911,"angular_velocity":0.0,"x_acceleration":-3.6016000000001682,"y_acceleration":-5.483520000000212,"angular_acceleration":0.0},{"time":2.849999999999983,"x":2.9832673828124943,"y":0.9733881249999912,"angle":0.0,"x_velocity":0.3099726562500571,"y_velocity":0.4876875000000922,"angular_velocity":0.0,"x_acceleration":-3.4959375000001884,"y_acceleration":-5.355000000000246,"angular_acceleration":0.0},{"time":2.859999999999983,"x":2.9861942499999943,"y":0.9779997055999909,"angle":0.0,"x_velocity":0.2756005000000581,"y_velocity":0.4348848000000949,"angular_velocity":0.0,"x_acceleration":-3.376100000000207,"y_acceleration":-5.2012800000002954,"angular_acceleration":0.0},{"time":2.869999999999983,"x":2.9887836284374947,"y":0.9820913741999924,"angle":0.0,"x_velocity":0.24249915625005514,"y_velocity":0.38374830000008586,"angular_velocity":0.0,"x_acceleration":-3.24171250000024,"y_acceleration":-5.021640000000318,"angular_acceleration":0.0},{"time":2.8799999999999826,"x":2.9910489599999974,"y":0.9856811007999946,"angle":0.0,"x_velocity":0.21081600000005452,"y_velocity":0.33454080000008446,"angular_velocity":0.0,"x_acceleration":-3.092400000000282,"y_acceleration":-4.815360000000382,"angular_acceleration":0.0},{"time":2.8899999999999824,"x":2.9930051790624965,"y":0.9887895193999947,"angle":0.0,"x_velocity":0.18070215625005304,"y_velocity":0.28753230000008045,"angular_velocity":0.0,"x_acceleration":-2.9277875000003064,"y_acceleration":-4.581720000000431,"angular_acceleration":0.0},{"time":2.899999999999982,"x":2.994668749999997,"y":0.9914399999999963,"angle":0.0,"x_velocity":0.15231250000005048,"y_velocity":0.24300000000008026,"angular_velocity":0.0,"x_acceleration":-2.7475000000003433,"y_acceleration":-4.320000000000505,"angular_acceleration":0.0},{"time":2.909999999999982,"x":2.996057704687497,"y":0.9936587205999974,"angle":0.0,"x_velocity":0.12580565625004425,"y_velocity":0.20122830000006786,"angular_velocity":0.0,"x_acceleration":-2.551162500000366,"y_acceleration":-4.029480000000547,"angular_acceleration":0.0},{"time":2.9199999999999817,"x":2.997191679999999,"y":0.9954747391999987,"angle":0.0,"x_velocity":0.10134400000004362,"y_velocity":0.16250880000006163,"angular_velocity":0.0,"x_acceleration":-2.338400000000412,"y_acceleration":-3.7094400000005976,"angular_acceleration":0.0},{"time":2.9299999999999815,"x":2.9980919553124985,"y":0.9969200657999968,"angle":0.0,"x_velocity":0.07909365625003595,"y_velocity":0.1271403000000575,"angular_velocity":0.0,"x_acceleration":-2.1088375000004334,"y_acceleration":-3.3591600000006707,"angular_acceleration":0.0},{"time":2.9399999999999813,"x":2.9987814899999994,"y":0.9980297343999984,"angle":0.0,"x_velocity":0.059224500000032876,"y_velocity":0.09542880000005027,"angular_velocity":0.0,"x_acceleration":-1.8621000000004742,"y_acceleration":-2.9779200000007506,"angular_acceleration":0.0},{"time":2.949999999999981,"x":2.999284960937499,"y":0.9988418749999992,"angle":0.0,"x_velocity":0.04191015625002947,"y_velocity":0.06768750000005141,"angular_velocity":0.0,"x_acceleration":-1.597812500000515,"y_acceleration":-2.5650000000008077,"angular_acceleration":0.0},{"time":2.959999999999981,"x":2.9996288000000004,"y":0.9993977855999985,"angle":0.0,"x_velocity":0.027328000000022,"y_velocity":0.04423680000003216,"angular_velocity":0.0,"x_acceleration":-1.3156000000005506,"y_acceleration":-2.1196800000008693,"angular_acceleration":0.0},{"time":2.9699999999999807,"x":2.999841231562498,"y":0.9997420041999989,"angle":0.0,"x_velocity":0.015659156250023898,"y_velocity":0.025404300000033686,"angular_velocity":0.0,"x_acceleration":-1.0150875000005968,"y_acceleration":-1.641240000000991,"angular_acceleration":0.0},{"time":2.9799999999999804,"x":2.99995231,"y":0.9999223808000002,"angle":0.0,"x_velocity":0.007088500000012488,"y_velocity":0.011524800000021429,"angular_velocity":0.0,"x_acceleration":-0.695900000000627,"y_acceleration":-1.1289600000010154,"angular_acceleration":0.0},{"time":2.9899999999999802,"x":2.9999939571875007,"y":0.9999901494000003,"angle":0.0,"x_velocity":0.0018046562500018126,"y_velocity":0.002940300000005891,"angular_velocity":0.0,"x_acceleration":-0.35766250000067856,"y_acceleration":-0.5821200000011117,"angular_acceleration":0.0},{"time":2.99999999999998,"x":3.0000000000000004,"y":0.9999999999999991,"angle":0.0,"x_velocity":1.7763568394002505e-15,"y_velocity":-3.552713678800501e-15,"angular_velocity":0.0,"x_acceleration":-7.389644451905042e-13,"y_acceleration":-1.2079226507921703e-12,"angular_acceleration":0.0}]} \ No newline at end of file diff --git a/src/main/deploy/example.txt b/src/main/deploy/example.txt new file mode 100644 index 0000000..bb82515 --- /dev/null +++ b/src/main/deploy/example.txt @@ -0,0 +1,3 @@ +Files placed in this directory will be deployed to the RoboRIO into the +'deploy' directory in the home folder. Use the 'Filesystem.getDeployDirectory' wpilib function +to get a proper path relative to the deploy directory. \ No newline at end of file diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java new file mode 100644 index 0000000..92279e4 --- /dev/null +++ b/src/main/java/frc/robot/Constants.java @@ -0,0 +1,4283 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot; + +import java.util.ArrayList; +import java.util.List; + +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Pose3d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Transform2d; +import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; + +public final class Constants { + public static double x = 0; + public static double y = 0; + public static double angle = 0; + + public static final class Autonomous { + // lookahead distance is a function: + // LOOKAHEAD = AUTONOMOUS_LOOKAHEAD_DISTANCE * velocity + MIN_LOOKAHEAD_DISTANCE + // their constants + public static final double AUTONOMOUS_LOOKAHEAD_DISTANCE = 0.04; // Lookahead at 1m/s scaled by wanted + // velocity + public static final double FULL_SEND_LOOKAHEAD = 0.60; + public static final double MIN_LOOKAHEAD_DISTANCE = 0.05; // Lookahead distance at 0m/s + // Path follower will end if within this radius of the final point + public static final double AUTONOMOUS_END_ACCURACY = 0.40; + public static final double ACCURATE_FOLLOWER_AUTONOMOUS_END_ACCURACY = 0.05; + // When calculating the point distance, will divide x and y by this constant + public static final double AUTONOMOUS_LOOKAHEAD_LINEAR_RADIUS = 1.0; + // When calculating the point distance, will divide theta by this constant + public static final double AUTONOMOUS_LOOKAHEAD_ANGULAR_RADIUS = Math.PI; + // Feed Forward Multiplier + public static final double FEED_FORWARD_MULTIPLIER = 0.5; + public static final double ACCURATE_FOLLOWER_FEED_FORWARD_MULTIPLIER = 1; + public static final String[] paths = new String[] { + "2AlgaeCenter.polarauto", + "2+1PieceFeeder.polarauto", + "3PieceFeederSmart.polarauto", + "4PieceFeederGroundSmart.polarauto", + "TushPush.polarauto", + }; + + public static int getSelectedPathIndex() { + if (OI.autoChooserConnected()) { + if (OI.autoChooser.getRawButton(1)) { + return 0; + } + if (OI.autoChooser.getRawButton(2)) { + return 1; + } + if (OI.autoChooser.getRawButton(3)) { + return 2; + } + if (OI.autoChooser.getRawButton(4)) { + return 3; + } + if (OI.autoChooser.getRawButton(5)) { + return 4; + } + } else { + return (int) Math.round(SmartDashboard.getNumber("ROBOT AUTO OVERIDE", -1)); + } + return -1; + } + + } + + public static void periodic() { + int index = Autonomous.getSelectedPathIndex(); + if (index == -1 || index > Constants.Autonomous.paths.length) { + } else { + } + } + + public static void init() { + + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint1); + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint2); + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint3); + // /////// + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint4); + // // Only have these 4 now + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint5); + // // The rest are 0, 0 + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint6); + // /////// + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint7); + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint8); + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint9); + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint10); + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint11); + // Constants.Physical.redCoralScoringPositions.add(Constants.Physical.redSetpoint12); + + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint1); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint2); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint3); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint4); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint5); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint6); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint7); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint8); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint9); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint10); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint11); + // Constants.Physical.blueCoralScoringPositions.add(Constants.Physical.blueSetpoint12); + + // for (int i = 0; i < Constants.Vision.redSideReefTags.length; i++) { + // Vector tagVector = new Vector(Constants.Vision.redSideReefTags[i][0], + // Constants.Vision.redSideReefTags[i][1]); + // Vector offsetXVector = new Vector( + // Constants.Physical.CORAL_PLACEMENT_X * + // Math.cos(Constants.Vision.redSideReefTags[i][3]), + // Constants.Physical.CORAL_PLACEMENT_X * + // Math.sin(Constants.Vision.redSideReefTags[i][3])); + // Vector offsetYVector = new Vector( + // Constants.Physical.CORAL_PLACEMENT_Y * + // Math.sin(Constants.Vision.redSideReefTags[i][3]), + // Constants.Physical.CORAL_PLACEMENT_Y * + // Math.cos(Constants.Vision.redSideReefTags[i][3])); + // Vector leftVector = tagVector.add(offsetXVector.add(offsetYVector)); + // Vector rightVector = tagVector.add(offsetXVector.subtract(offsetYVector)); + // Constants.Physical.redCoralScoringPositions + // .add(new Pose2d(new Translation2d(leftVector.getI(), leftVector.getJ()), + // new Rotation2d(Constants.Vision.redSideReefTags[i][3] + Math.PI))); + // Constants.Physical.redCoralScoringPositions + // .add(new Pose2d(new Translation2d(rightVector.getI(), rightVector.getJ()), + // new Rotation2d(Constants.Vision.redSideReefTags[i][3] + Math.PI))); + // } + // for (int i = 0; i < Constants.Vision.blueSideReefTags.length; i++) { + // Vector tagVector = new Vector(Constants.Vision.blueSideReefTags[i][0], + // Constants.Vision.blueSideReefTags[i][1]); + // Vector offsetXVector = new Vector( + // Constants.Physical.CORAL_PLACEMENT_X * + // Math.cos(Constants.Vision.blueSideReefTags[i][3]), + // Constants.Physical.CORAL_PLACEMENT_X * + // Math.sin(Constants.Vision.blueSideReefTags[i][3])); + // Vector offsetYVector = new Vector( + // Constants.Physical.CORAL_PLACEMENT_Y * + // Math.sin(Constants.Vision.blueSideReefTags[i][3]), + // Constants.Physical.CORAL_PLACEMENT_Y * + // Math.cos(Constants.Vision.blueSideReefTags[i][3])); + // Vector leftVector = tagVector.add(offsetXVector.add(offsetYVector)); + // Vector rightVector = tagVector.add(offsetXVector.subtract(offsetYVector)); + // Constants.Physical.blueCoralScoringPositions + // .add(new Pose2d(new Translation2d(leftVector.getI(), leftVector.getJ()), + // new Rotation2d(Constants.Vision.blueSideReefTags[i][3] + Math.PI))); + // Constants.Physical.blueCoralScoringPositions + // .add(new Pose2d(new Translation2d(rightVector.getI(), rightVector.getJ()), + // new Rotation2d(Constants.Vision.blueSideReefTags[i][3] + Math.PI))); + // } + + // Logger.recordOutput("red side scoring", + // Constants.Physical.redCoralScoringPositions.toString()); + // Logger.recordOutput("blue side scoring", + // Constants.Physical.blueCoralScoringPositions.toString()); + System.out.println("blue algae front positions: " + + Constants.Reef.algaeBlueFrontPlacingPositions.toString()); + System.out.println("red algae front positions: " + + Constants.Reef.algaeRedFrontPlacingPositions.toString()); + System.out.println("blue algae back positions: " + + Constants.Reef.algaeBlueBackPlacingPositions.toString()); + System.out.println( + "red algae back positions: " + Constants.Reef.algaeRedBackPlacingPositions.toString()); + + System.out.println("blue positions: " + Constants.Reef.blueFrontPlacingPositions.toString()); + System.out.println("red positions: " + Constants.Reef.redFrontPlacingPositions.toString()); + System.out.println("blue back positions: " + Constants.Reef.blueBackPlacingPositions.toString()); + System.out.println("red back positions: " + Constants.Reef.redBackPlacingPositions.toString()); + + System.out.println("l4 blue positions: " + Constants.Reef.l4BlueFrontPlacingPositions.toString()); + System.out.println("l4 red positions: " + Constants.Reef.l4RedFrontPlacingPositions.toString()); + System.out.println("l4 blue back positions: " + Constants.Reef.l4BlueBackPlacingPositions.toString()); + System.out.println("l4 red back positions: " + Constants.Reef.l4RedBackPlacingPositions.toString()); + + System.out.println("l3 blue positions: " + Constants.Reef.l3BlueFrontPlacingPositions.toString()); + System.out.println("l3 red positions: " + Constants.Reef.l3RedFrontPlacingPositions.toString()); + System.out.println("l3 blue back positions: " + Constants.Reef.l3BlueBackPlacingPositions.toString()); + System.out.println("l3 red back positions: " + Constants.Reef.l3RedBackPlacingPositions.toString()); + + System.out.println("L1 Blue Corners: " + Constants.Reef.l1BlueCornerPoints.toString()); + System.out.println("L1 Red Corners: " + Constants.Reef.l1RedCornerPoints.toString()); + + System.out.println("L1 Blue Drive: " + Constants.Reef.l1BlueDrivePoints.toString()); + System.out.println("L1 Red Drive: " + Constants.Reef.l1RedDrivePoints.toString()); + + for (int i = 0; i < Constants.Reef.l1BlueDrivePoints.size(); i++) { + } + + } + + public static class Reef { + public static final double PERFECT_BRANCH_OFFSET_L23 = inchesToMeters(1.625); + public static final double PERFECT_BRANCH_OFFSET_L4 = inchesToMeters(1.125); + + // positive is from face of reef towards center of reef + // negative means futher from reef + // public static final double A_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(1.5); + // public static final double B_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(1.875); + // public static final double C_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(1.125); + // public static final double D_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(1.25); + // public static final double E_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(1.125); + // public static final double F_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(1.125); + // public static final double G_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(1.125); + // public static final double H_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(1.125); + // public static final double I_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(-0.5940); + // public static final double J_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(0.375); + // public static final double K_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(0.7157); + // public static final double L_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + // inchesToMeters(1.75); + + // public static final double A_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.0); + // public static final double B_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(2.5); + // public static final double C_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.75); + // public static final double D_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(2.0); + // public static final double E_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.625); + // public static final double F_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.625); + // public static final double G_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.625); + // public static final double H_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.625); + // public static final double I_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.125); + // public static final double J_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.5); + // public static final double K_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(3.0); + // public static final double L_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(3.0); + + // public static final double A_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.5); + // public static final double B_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(2.5); + // public static final double C_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.875); + // public static final double D_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(2.25); + // public static final double E_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.625); + // public static final double F_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.625); + // public static final double G_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.625); + // public static final double H_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.625); + // public static final double I_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.25); + // public static final double J_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(1.75); + // public static final double K_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(2.0); + // public static final double L_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + // inchesToMeters(2.0); + + // // right when facing the reef side is positive + // // negative makes robot go more to the left + // public static final double A_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + // public static final double B_BRANCH_OFFSET_SIDE = inchesToMeters(1.5); + // public static final double C_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + // public static final double D_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + // public static final double E_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + // public static final double F_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + // public static final double G_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + // public static final double H_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + // public static final double I_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + // public static final double J_BRANCH_OFFSET_SIDE = inchesToMeters(-2.0); + // public static final double K_BRANCH_OFFSET_SIDE = inchesToMeters(-1.0); + // public static final double L_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + + // public static final double A_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + // public static final double B_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + // public static final double C_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + // public static final double D_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + // public static final double E_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + // public static final double F_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + // public static final double G_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + // public static final double H_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + // public static final double I_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(1.5); + // public static final double J_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(-2.0); + // public static final double K_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + // public static final double L_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + + // public static final double A_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + // public static final double B_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + // public static final double C_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + // public static final double D_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + // public static final double E_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + // public static final double F_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + // public static final double G_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + // public static final double H_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + // public static final double I_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(1.5); + // public static final double J_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(-2.0); + // public static final double K_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + // public static final double L_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double A_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double B_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double C_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double D_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double E_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double F_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double G_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double H_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double I_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double J_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double K_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + public static final double L_BRANCH_OFFSET = PERFECT_BRANCH_OFFSET_L4 - + inchesToMeters(1.125); + + public static final double A_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double B_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double C_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double D_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double E_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double F_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double G_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double H_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double I_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double J_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double K_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double L_BRANCH_OFFSET_L3 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + + public static final double A_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double B_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double C_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double D_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double E_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double F_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double G_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double H_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double I_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double J_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double K_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + public static final double L_BRANCH_OFFSET_L2 = PERFECT_BRANCH_OFFSET_L23 - + inchesToMeters(1.625); + + // right when facing the reef side is positive + // negative makes robot go more to the left + public static final double A_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double B_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double C_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double D_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double E_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double F_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double G_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double H_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double I_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double J_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double K_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + public static final double L_BRANCH_OFFSET_SIDE = inchesToMeters(0.0); + + public static final double A_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double B_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double C_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double D_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double E_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double F_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double G_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double H_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double I_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double J_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double K_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + public static final double L_BRANCH_OFFSET_SIDE_L3 = inchesToMeters(0.0); + + public static final double A_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double B_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double C_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double D_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double E_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double F_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double G_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double H_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double I_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double J_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double K_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final double L_BRANCH_OFFSET_SIDE_L2 = inchesToMeters(0.0); + public static final Translation2d centerBlue = new Translation2d(inchesToMeters(176.746), + inchesToMeters(158.501)); + public static final Translation2d centerRed = new Translation2d( + Constants.Physical.FIELD_LENGTH - inchesToMeters(176.746), + inchesToMeters(158.501)); + public static final double faceToZoneLine = inchesToMeters(12); // Side of the reef to the inside of the + // reef + // zone line + + public static final Pose2d[] centerFaces = new Pose2d[6]; // Starting facing the driver station in + // clockwise + // order + // public static final List> + // blueBranchPositions = new + // ArrayList<>(); // Starting at the right + // // branch facing the driver + // // station in clockwise + // public static final List> + // redBranchPositions = new + // ArrayList<>(); // Starting at the right + + public static final double RED_LEFT_FEEDER_X = 16.28; + public static final double RED_LEFT_FEEDER_Y = 0.92; + public static final double RED_LEFT_FEEDER_THETA = Math.toRadians(126.0); + + public static final double RED_LEFT_FEEDER_X_TELEOP = 16.544; + public static final double RED_LEFT_FEEDER_Y_TELEOP = 0.890; + public static final double RED_LEFT_FEEDER_THETA_TELEOP = Math.toRadians(126.0); + + public static final double RED_LEFT_FEEDER_LEFT_X = 16.853; + public static final double RED_LEFT_FEEDER_LEFT_Y = 1.309; + public static final double RED_LEFT_FEEDER_LEFT_THETA = Math.toRadians(126.0); + public static final double RED_LEFT_FEEDER_RIGHT_X = 15.932; + public static final double RED_LEFT_FEEDER_RIGHT_Y = 0.664; + public static final double RED_LEFT_FEEDER_RIGHT_THETA = Math.toRadians(126.0); + + public static final Pose2d RED_LEFT_FEEDER_LEFT = new Pose2d(RED_LEFT_FEEDER_LEFT_X, + RED_LEFT_FEEDER_LEFT_Y, + new Rotation2d(RED_LEFT_FEEDER_LEFT_THETA)); + public static final Pose2d RED_RIGHT_FEEDER_LEFT = new Pose2d( + RED_LEFT_FEEDER_LEFT_X, Physical.FIELD_WIDTH - RED_LEFT_FEEDER_LEFT_Y, + new Rotation2d(Math.toRadians(234.0))); + public static final Pose2d BLUE_RIGHT_FEEDER_LEFT = new Pose2d( + Physical.FIELD_LENGTH - RED_LEFT_FEEDER_LEFT_X, RED_LEFT_FEEDER_LEFT_Y, + new Rotation2d(Math.toRadians(54.0))); + public static final Pose2d BLUE_LEFT_FEEDER_LEFT = new Pose2d( + Physical.FIELD_LENGTH - RED_LEFT_FEEDER_LEFT_X, + Physical.FIELD_WIDTH - RED_LEFT_FEEDER_LEFT_Y, + new Rotation2d(Math.toRadians(-54.0))); + public static final Pose2d RED_LEFT_FEEDER_RIGHT = new Pose2d(RED_LEFT_FEEDER_RIGHT_X, + RED_LEFT_FEEDER_RIGHT_Y, + new Rotation2d(RED_LEFT_FEEDER_RIGHT_THETA)); + public static final Pose2d RED_RIGHT_FEEDER_RIGHT = new Pose2d( + RED_LEFT_FEEDER_RIGHT_X, Physical.FIELD_WIDTH - RED_LEFT_FEEDER_RIGHT_Y, + new Rotation2d(Math.toRadians(234.0))); + public static final Pose2d BLUE_RIGHT_FEEDER_RIGHT = new Pose2d( + Physical.FIELD_LENGTH - RED_LEFT_FEEDER_RIGHT_X, RED_LEFT_FEEDER_RIGHT_Y, + new Rotation2d(Math.toRadians(54.0))); + public static final Pose2d BLUE_LEFT_FEEDER_RIGHT = new Pose2d( + Physical.FIELD_LENGTH - RED_LEFT_FEEDER_RIGHT_X, + Physical.FIELD_WIDTH - RED_LEFT_FEEDER_RIGHT_Y, + new Rotation2d(Math.toRadians(-54.0))); + + public static final Pose2d RED_LEFT_FEEDER = new Pose2d(RED_LEFT_FEEDER_X, RED_LEFT_FEEDER_Y, + new Rotation2d(RED_LEFT_FEEDER_THETA)); + public static final Pose2d RED_RIGHT_FEEDER = new Pose2d( + RED_LEFT_FEEDER_X, Physical.FIELD_WIDTH - RED_LEFT_FEEDER_Y, + new Rotation2d(Math.toRadians(234.0))); + + public static final Pose2d BLUE_RIGHT_FEEDER = new Pose2d( + Physical.FIELD_LENGTH - RED_LEFT_FEEDER_X, RED_LEFT_FEEDER_Y, + new Rotation2d(Math.toRadians(54.0))); + public static final Pose2d BLUE_LEFT_FEEDER = new Pose2d( + Physical.FIELD_LENGTH - RED_LEFT_FEEDER_X, Physical.FIELD_WIDTH - RED_LEFT_FEEDER_Y, + new Rotation2d(Math.toRadians(-54.0))); + + public static final Pose2d RED_LEFT_FEEDER_TELEOP = new Pose2d(RED_LEFT_FEEDER_X_TELEOP, + RED_LEFT_FEEDER_Y_TELEOP, + new Rotation2d(RED_LEFT_FEEDER_THETA_TELEOP)); + public static final Pose2d RED_RIGHT_FEEDER_TELEOP = new Pose2d( + RED_LEFT_FEEDER_X_TELEOP, Physical.FIELD_WIDTH - RED_LEFT_FEEDER_Y_TELEOP, + new Rotation2d(Math.toRadians(234.0))); + + public static final Pose2d BLUE_RIGHT_FEEDER_TELEOP = new Pose2d( + Physical.FIELD_LENGTH - RED_LEFT_FEEDER_X_TELEOP, RED_LEFT_FEEDER_Y_TELEOP, + new Rotation2d(Math.toRadians(54.0))); + public static final Pose2d BLUE_LEFT_FEEDER_TELEOP = new Pose2d( + Physical.FIELD_LENGTH - RED_LEFT_FEEDER_X_TELEOP, + Physical.FIELD_WIDTH - RED_LEFT_FEEDER_Y_TELEOP, + new Rotation2d(Math.toRadians(-54.0))); + + public static final double PROCESSOR_Y_OFFSET_M = inchesToMeters(50.0); + public static final double PROCESSOR_MORE_Y_OFFSET_M = inchesToMeters(20.0); + public static final double NET_X_OFFSET_M = inchesToMeters(50.0); + public static final double NET_X_OFFSET_MORE = inchesToMeters(34.0); + + public static final Translation2d processorBlueFrontPlacingTranslation = new Translation2d( + inchesToMeters(238.79), + PROCESSOR_Y_OFFSET_M); + public static final Rotation2d processorBlueFrontPlacingRotation = new Rotation2d( + degreesToRadians(270)); + + public static final Translation2d processorRedFrontPlacingTranslation = new Translation2d( + inchesToMeters(452.40), + inchesToMeters(316.21) - PROCESSOR_Y_OFFSET_M); + public static final Rotation2d processorRedFrontPlacingRotation = new Rotation2d(degreesToRadians(90)); + + public static final Translation2d processorBlueBackPlacingTranslation = new Translation2d( + inchesToMeters(238.79), + PROCESSOR_Y_OFFSET_M); + public static final Rotation2d processorBlueBackPlacingRotation = new Rotation2d(degreesToRadians(90)); + + public static final Translation2d processorRedBackPlacingTranslation = new Translation2d( + inchesToMeters(452.40), + inchesToMeters(316.21) - PROCESSOR_Y_OFFSET_M); + public static final Rotation2d processorRedBackPlacingRotation = new Rotation2d(degreesToRadians(270)); + + public static final Translation2d processorMoreBlueFrontPlacingTranslation = new Translation2d( + inchesToMeters(238.79), + PROCESSOR_MORE_Y_OFFSET_M); + public static final Rotation2d processorMoreBlueFrontPlacingRotation = new Rotation2d( + degreesToRadians(270)); + + public static final Translation2d processorMoreRedFrontPlacingTranslation = new Translation2d( + inchesToMeters(452.40), + inchesToMeters(316.21) - PROCESSOR_MORE_Y_OFFSET_M); + public static final Rotation2d processorMoreRedFrontPlacingRotation = new Rotation2d( + degreesToRadians(90)); + + public static final Translation2d processorMoreBlueBackPlacingTranslation = new Translation2d( + inchesToMeters(238.79), + PROCESSOR_MORE_Y_OFFSET_M); + public static final Rotation2d processorMoreBlueBackPlacingRotation = new Rotation2d( + degreesToRadians(90)); + + public static final Translation2d processorMoreRedBackPlacingTranslation = new Translation2d( + inchesToMeters(452.40), + inchesToMeters(316.21) - PROCESSOR_MORE_Y_OFFSET_M); + public static final Rotation2d processorMoreRedBackPlacingRotation = new Rotation2d( + degreesToRadians(270)); + + public static final Pose2d processorBlueFrontPlacingPosition = new Pose2d( + processorBlueFrontPlacingTranslation, + processorBlueFrontPlacingRotation); + public static final Pose2d processorRedFrontPlacingPosition = new Pose2d( + processorRedFrontPlacingTranslation, + processorRedFrontPlacingRotation); + public static final Pose2d processorBlueBackPlacingPosition = new Pose2d( + processorBlueBackPlacingTranslation, + processorBlueBackPlacingRotation); + public static final Pose2d processorRedBackPlacingPosition = new Pose2d( + processorRedBackPlacingTranslation, + processorRedBackPlacingRotation); + + public static final Pose2d processorMoreBlueFrontPlacingPosition = new Pose2d( + processorMoreBlueFrontPlacingTranslation, + processorMoreBlueFrontPlacingRotation); + public static final Pose2d processorMoreRedFrontPlacingPosition = new Pose2d( + processorMoreRedFrontPlacingTranslation, + processorMoreRedFrontPlacingRotation); + public static final Pose2d processorMoreBlueBackPlacingPosition = new Pose2d( + processorMoreBlueBackPlacingTranslation, + processorMoreBlueBackPlacingRotation); + public static final Pose2d processorMoreRedBackPlacingPosition = new Pose2d( + processorMoreRedBackPlacingTranslation, + processorMoreRedBackPlacingRotation); + + public static final double netBlueXM = (Constants.Physical.FIELD_LENGTH / 2) - NET_X_OFFSET_M; + public static final double netRedXM = (Constants.Physical.FIELD_LENGTH / 2) + NET_X_OFFSET_M; + public static final double netBlueXMore = (Constants.Physical.FIELD_LENGTH / 2) - NET_X_OFFSET_MORE; + public static final double netRedXMore = (Constants.Physical.FIELD_LENGTH / 2) + NET_X_OFFSET_MORE; + + public static final double netBlueFrontThetaR = degreesToRadians(0.0); + public static final double netRedFrontThetaR = degreesToRadians(180.0); + public static final double netBlueBackThetaR = degreesToRadians(180.0); + public static final double netRedBackThetaR = degreesToRadians(0.0); + + public static final List blueL1FrontPlacingPositions = new ArrayList<>(); + public static final List redL1FrontPlacingPositions = new ArrayList<>(); + public static final List blueL1BackPlacingPositions = new ArrayList<>(); + public static final List redL1BackPlacingPositions = new ArrayList<>(); + + public static final List blueL1FrontPlacingPositionsMore = new ArrayList<>(); + public static final List redL1FrontPlacingPositionsMore = new ArrayList<>(); + public static final List blueL1BackPlacingPositionsMore = new ArrayList<>(); + public static final List redL1BackPlacingPositionsMore = new ArrayList<>(); + + public static final List blueFrontPlacingPositions = new ArrayList<>(); + public static final List redFrontPlacingPositions = new ArrayList<>(); + public static final List blueBackPlacingPositions = new ArrayList<>(); + public static final List redBackPlacingPositions = new ArrayList<>(); + + public static final List blueFrontPlacingPositionsMore = new ArrayList<>(); + public static final List redFrontPlacingPositionsMore = new ArrayList<>(); + public static final List blueBackPlacingPositionsMore = new ArrayList<>(); + public static final List redBackPlacingPositionsMore = new ArrayList<>(); + + public static final List algaeBlueFrontPlacingPositionsMoreMore = new ArrayList<>(); + public static final List algaeRedFrontPlacingPositionsMoreMore = new ArrayList<>(); + public static final List algaeBlueBackPlacingPositionsMoreMore = new ArrayList<>(); + public static final List algaeRedBackPlacingPositionsMoreMore = new ArrayList<>(); + + public static final List l4BlueFrontPlacingPositions = new ArrayList<>(); + public static final List l4RedFrontPlacingPositions = new ArrayList<>(); + public static final List l4BlueBackPlacingPositions = new ArrayList<>(); + public static final List l4RedBackPlacingPositions = new ArrayList<>(); + + public static final List l3BlueFrontPlacingPositions = new ArrayList<>(); + public static final List l3RedFrontPlacingPositions = new ArrayList<>(); + public static final List l3BlueBackPlacingPositions = new ArrayList<>(); + public static final List l3RedBackPlacingPositions = new ArrayList<>(); + + public static final List algaeBlueFrontPlacingPositions = new ArrayList<>(); + public static final List algaeRedFrontPlacingPositions = new ArrayList<>(); + public static final List algaeBlueBackPlacingPositions = new ArrayList<>(); + public static final List algaeRedBackPlacingPositions = new ArrayList<>(); + + public static final List algaeBlueFrontPlacingPositionsMore = new ArrayList<>(); + public static final List algaeRedFrontPlacingPositionsMore = new ArrayList<>(); + public static final List algaeBlueBackPlacingPositionsMore = new ArrayList<>(); + public static final List algaeRedBackPlacingPositionsMore = new ArrayList<>(); + + public static final List l1BlueCornerPoints = new ArrayList<>(); + public static final List l1RedCornerPoints = new ArrayList<>(); + public static final List l1BlueDrivePoints = new ArrayList<>(); + public static final List l1RedDrivePoints = new ArrayList<>(); + + static { + calculateReefPoints(); + } + + // Angle to face red side: + // 180=AB + // 120=CD + // 60=EF + // 0=GH + // -60=IJ + // -120=KL + + public static void calculateReefPoints() { + System.out.println("recalculating points"); + blueL1FrontPlacingPositions.clear(); + redL1FrontPlacingPositions.clear(); + blueL1BackPlacingPositions.clear(); + redL1BackPlacingPositions.clear(); + blueL1FrontPlacingPositionsMore.clear(); + redL1FrontPlacingPositionsMore.clear(); + blueL1BackPlacingPositionsMore.clear(); + redL1BackPlacingPositionsMore.clear(); + blueFrontPlacingPositions.clear(); + redFrontPlacingPositions.clear(); + blueBackPlacingPositions.clear(); + redBackPlacingPositions.clear(); + blueFrontPlacingPositionsMore.clear(); + redFrontPlacingPositionsMore.clear(); + blueBackPlacingPositionsMore.clear(); + redBackPlacingPositionsMore.clear(); + l4BlueFrontPlacingPositions.clear(); + l4RedFrontPlacingPositions.clear(); + l4BlueBackPlacingPositions.clear(); + l4RedBackPlacingPositions.clear(); + l3BlueFrontPlacingPositions.clear(); + l3RedFrontPlacingPositions.clear(); + l3BlueBackPlacingPositions.clear(); + l3RedBackPlacingPositions.clear(); + algaeBlueFrontPlacingPositions.clear(); + algaeRedFrontPlacingPositions.clear(); + algaeBlueBackPlacingPositions.clear(); + algaeRedBackPlacingPositions.clear(); + algaeBlueFrontPlacingPositionsMore.clear(); + algaeRedFrontPlacingPositionsMore.clear(); + algaeBlueBackPlacingPositionsMore.clear(); + algaeRedBackPlacingPositionsMore.clear(); + algaeBlueFrontPlacingPositionsMoreMore.clear(); + algaeRedFrontPlacingPositionsMoreMore.clear(); + algaeBlueBackPlacingPositionsMoreMore.clear(); + algaeRedBackPlacingPositionsMoreMore.clear(); + l1BlueCornerPoints.clear(); + l1RedCornerPoints.clear(); + l1BlueDrivePoints.clear(); + l1RedDrivePoints.clear(); + centerFaces[0] = new Pose2d( + inchesToMeters(144.003), + inchesToMeters(158.500), + Rotation2d.fromDegrees(180)); + centerFaces[1] = new Pose2d( + inchesToMeters(160.373), + inchesToMeters(186.857), + Rotation2d.fromDegrees(120)); + centerFaces[2] = new Pose2d( + inchesToMeters(193.116), + inchesToMeters(186.858), + Rotation2d.fromDegrees(60)); + centerFaces[3] = new Pose2d( + inchesToMeters(209.489), + inchesToMeters(158.502), + Rotation2d.fromDegrees(0)); + centerFaces[4] = new Pose2d( + inchesToMeters(193.118), + inchesToMeters(130.145), + Rotation2d.fromDegrees(-60)); + centerFaces[5] = new Pose2d( + inchesToMeters(160.375), + inchesToMeters(130.144), + Rotation2d.fromDegrees(-120)); + + for (int face = 0; face < 6; face++) { + Pose2d l1FrontRight = new Pose2d(); + Pose2d l1FrontLeft = new Pose2d(); + Pose2d l1BackRight = new Pose2d(); + Pose2d l1BackLeft = new Pose2d(); + Pose2d l1FrontRightMore = new Pose2d(); + Pose2d l1FrontLeftMore = new Pose2d(); + Pose2d l1BackRightMore = new Pose2d(); + Pose2d l1BackLeftMore = new Pose2d(); + Pose2d l2FrontRight = new Pose2d(); + Pose2d l2FrontLeft = new Pose2d(); + Pose2d frontRightMore = new Pose2d(); + Pose2d frontLeftMore = new Pose2d(); + Pose2d backRightMore = new Pose2d(); + Pose2d backLeftMore = new Pose2d(); + Pose2d l2BackRight = new Pose2d(); + Pose2d l2BackLeft = new Pose2d(); + Pose2d l3FrontRight = new Pose2d(); + Pose2d l3FrontLeft = new Pose2d(); + Pose2d l3BackRight = new Pose2d(); + Pose2d l3BackLeft = new Pose2d(); + Pose2d l4FrontRight = new Pose2d(); + Pose2d l4FrontLeft = new Pose2d(); + Pose2d l4BackRight = new Pose2d(); + Pose2d l4BackLeft = new Pose2d(); + Pose2d algaeFront = new Pose2d(); + Pose2d algaeBack = new Pose2d(); + Pose2d algaeFrontMore = new Pose2d(); + Pose2d algaeBackMore = new Pose2d(); + Pose2d algaeFrontMoreMore = new Pose2d(); + Pose2d algaeBackMoreMore = new Pose2d(); + Pose2d l1Corner = new Pose2d(); + Pose2d l1Drive = new Pose2d(); + Pose2d poseDirection = new Pose2d(centerBlue, + Rotation2d.fromDegrees(180 - (60 * face))); + double adjustX = inchesToMeters(30.738); + double adjustY = inchesToMeters(6.469); + double adjustXL1 = inchesToMeters(30.738); + double adjustYL1 = inchesToMeters(6.469); + double adjustXMore = inchesToMeters(70.738); + double adjustYMore = inchesToMeters(6.469); + double adjustAlgaeX = inchesToMeters(35.738); + double adjustAlgaeY = inchesToMeters(0.0); + double adjustAlgaeMoreX = inchesToMeters(16.738); + double adjustAlgaeMoreY = inchesToMeters(0.0); + double adjustAlgaeMoreMoreX = inchesToMeters(56.738); + double adjustAlgaeMoreMoreY = inchesToMeters(0.0); + double adjustL1CornerX = inchesToMeters(9.0); + double adjustL1CornerY = inchesToMeters(18.0); + double adjustL1DriveX = inchesToMeters(38.0); + double adjustL1DriveY = inchesToMeters(25.0); + + l1FrontRightMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXL1, + adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_FRONT_MORE, + Physical.L1_INTAKE_Y_OFFSET_FRONT_MORE, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXL1, + adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_FRONT_MORE, + Physical.L1_INTAKE_Y_OFFSET_FRONT_MORE, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l1BackRightMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXL1, + adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_BACK_MORE, + Physical.L1_INTAKE_Y_OFFSET_BACK_MORE, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXL1, + adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_BACK_MORE, + Physical.L1_INTAKE_Y_OFFSET_BACK_MORE, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + + l1FrontLeftMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXL1, + -adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_FRONT_MORE, + Physical.L1_INTAKE_Y_OFFSET_FRONT_MORE, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXL1, + -adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_FRONT_MORE, + Physical.L1_INTAKE_Y_OFFSET_FRONT_MORE, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l1BackLeftMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXL1, + -adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_BACK_MORE, + Physical.L1_INTAKE_Y_OFFSET_BACK_MORE, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXL1, + -adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_BACK_MORE, + Physical.L1_INTAKE_Y_OFFSET_BACK_MORE, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + + l1FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXL1, + adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_FRONT, + Physical.L1_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXL1, + adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_FRONT, + Physical.L1_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l1BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXL1, + adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_BACK, + Physical.L1_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXL1, + adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_BACK, + Physical.L1_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + + l1FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXL1, + -adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_FRONT, + Physical.L1_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXL1, + -adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_FRONT, + Physical.L1_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l1BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXL1, + -adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_BACK, + Physical.L1_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXL1, + -adjustYL1, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L1_INTAKE_X_OFFSET_BACK, + Physical.L1_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + + algaeFront = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustAlgaeX, + adjustAlgaeY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT_ALGAE, + Physical.INTAKE_Y_OFFSET_FRONT_ALGAE, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustAlgaeX, + adjustAlgaeY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT_ALGAE, + Physical.INTAKE_Y_OFFSET_FRONT_ALGAE, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() - Math.PI)); + + algaeBack = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustAlgaeX, + adjustAlgaeY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_BACK_ALGAE, + Physical.INTAKE_Y_OFFSET_BACK_ALGAE, + new Rotation2d(Math.PI))) // TODO + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustAlgaeX, + adjustAlgaeY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_BACK_ALGAE, + Physical.INTAKE_Y_OFFSET_BACK_ALGAE, + new Rotation2d(Math.PI))) // TODO + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + algaeFrontMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy( + new Transform2d(adjustAlgaeMoreX, + adjustAlgaeMoreY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT_ALGAE, + Physical.INTAKE_Y_OFFSET_FRONT_ALGAE, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy( + new Transform2d(adjustAlgaeMoreX, + adjustAlgaeMoreY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT_ALGAE, + Physical.INTAKE_Y_OFFSET_FRONT_ALGAE, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() - Math.PI)); + + algaeBackMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy( + new Transform2d(adjustAlgaeMoreX, + adjustAlgaeMoreY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_BACK_ALGAE, + Physical.INTAKE_Y_OFFSET_BACK_ALGAE, + new Rotation2d(Math.PI))) // TODO: + // why + // is + // this + // pi + // and + // not + // 0 + .getX(), + poseDirection + .transformBy( + new Transform2d(adjustAlgaeMoreX, + adjustAlgaeMoreY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_BACK_ALGAE, + Physical.INTAKE_Y_OFFSET_BACK_ALGAE, + new Rotation2d(Math.PI))) // TODO + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + algaeFrontMoreMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy( + new Transform2d(adjustAlgaeMoreMoreX, + adjustAlgaeMoreMoreY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT_ALGAE, + Physical.INTAKE_Y_OFFSET_FRONT_ALGAE, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy( + new Transform2d(adjustAlgaeMoreMoreX, + adjustAlgaeMoreMoreY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT_ALGAE, + Physical.INTAKE_Y_OFFSET_FRONT_ALGAE, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() - Math.PI)); + + l1Corner = new Pose2d( + new Translation2d( + poseDirection + .transformBy( + new Transform2d(adjustL1CornerX, + adjustL1CornerY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy( + new Transform2d(adjustL1CornerX, + adjustL1CornerY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() - Math.PI)); + + l1Drive = new Pose2d( + new Translation2d( + poseDirection + .transformBy( + new Transform2d(adjustL1DriveX, + adjustL1DriveY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy( + new Transform2d(adjustL1DriveX, + adjustL1DriveY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() - Math.PI)); + + algaeBackMoreMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy( + new Transform2d(adjustAlgaeMoreMoreX, + adjustAlgaeMoreMoreY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_BACK_ALGAE, + Physical.INTAKE_Y_OFFSET_BACK_ALGAE, + new Rotation2d(Math.PI))) // TODO: + // why + // is + // this + // pi + // and + // not + // 0 + .getX(), + poseDirection + .transformBy( + new Transform2d(adjustAlgaeMoreMoreX, + adjustAlgaeMoreMoreY, + new Rotation2d())) + .transformBy( + new Transform2d(Physical.INTAKE_X_OFFSET_BACK_ALGAE, + Physical.INTAKE_Y_OFFSET_BACK_ALGAE, + new Rotation2d(Math.PI))) // TODO + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + + frontRightMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXMore, + adjustYMore, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXMore, + adjustYMore, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() - Math.PI)); + backRightMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXMore, + adjustYMore, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXMore, + adjustYMore, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + + // l2FrontRight = new Pose2d( + // new Translation2d( + // poseDirection + // .transformBy(new Transform2d(adjustX, + // adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.L2_INTAKE_X_OFFSET_FRONT, + // Physical.L2_INTAKE_Y_OFFSET_FRONT, + // new Rotation2d(Math.PI))) + // .getX(), + // poseDirection + // .transformBy(new Transform2d(adjustX, + // adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.L2_INTAKE_X_OFFSET_FRONT, + // Physical.L2_INTAKE_Y_OFFSET_FRONT, + // new Rotation2d(Math.PI))) + // .getY()), + // new Rotation2d( + // poseDirection.getRotation().getRadians() - Math.PI)); + // l2BackRight = new Pose2d( + // new Translation2d( + // poseDirection + // .transformBy(new Transform2d(adjustX, + // adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.L2_INTAKE_X_OFFSET_BACK, + // Physical.L2_INTAKE_Y_OFFSET_BACK, + // new Rotation2d())) + // .getX(), + // poseDirection + // .transformBy(new Transform2d(adjustX, + // adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.L2_INTAKE_X_OFFSET_BACK, + // Physical.L2_INTAKE_Y_OFFSET_BACK, + // new Rotation2d())) + // .getY()), + // new Rotation2d( + // poseDirection.getRotation().getRadians())); + + // Angle to face red side: + // 180=AB + // 120=KL + // 60=IJ + // 0=GH + // -60=EF + // -120=CD + if (poseDirection.getRotation().getDegrees() > 179.0 + && poseDirection.getRotation().getDegrees() < 181.0) { + l4FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET, + adjustY + B_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET, + adjustY + B_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET, + adjustY + B_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET, + adjustY + B_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET_L3, + adjustY + B_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET_L3, + adjustY + B_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET_L3, + adjustY + B_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET_L3, + adjustY + B_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET_L2, + adjustY + B_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET_L2, + adjustY + B_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET_L2, + adjustY + B_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + B_BRANCH_OFFSET_L2, + adjustY + B_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("b branch: " + l4FrontRight); + } else if (poseDirection.getRotation().getDegrees() > 119.0 + && poseDirection.getRotation().getDegrees() < 121.0) { + l4FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET, + adjustY + L_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET, + adjustY + L_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET, + adjustY + L_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET, + adjustY + L_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET_L3, + adjustY + L_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET_L3, + adjustY + L_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET_L3, + adjustY + L_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET_L3, + adjustY + L_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET_L2, + adjustY + L_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET_L2, + adjustY + L_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET_L2, + adjustY + L_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + L_BRANCH_OFFSET_L2, + adjustY + L_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("d branch: " + l4FrontRight); + } else if (poseDirection.getRotation().getDegrees() > 59.0 + && poseDirection.getRotation().getDegrees() < 61.0) { + l4FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET, + adjustY + J_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET, + adjustY + J_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET, + adjustY + J_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET, + adjustY + J_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET_L3, + adjustY + J_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET_L3, + adjustY + J_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET_L3, + adjustY + J_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET_L3, + adjustY + J_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET_L2, + adjustY + J_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET_L2, + adjustY + J_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET_L2, + adjustY + J_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + J_BRANCH_OFFSET_L2, + adjustY + J_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("f branch: " + l4FrontRight); + } else if (poseDirection.getRotation().getDegrees() > -1.0 + && poseDirection.getRotation().getDegrees() < 1.0) { + l4FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET, + adjustY + H_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET, + adjustY + H_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET, + adjustY + H_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET, + adjustY + H_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET_L3, + adjustY + H_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET_L3, + adjustY + H_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET_L3, + adjustY + H_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET_L3, + adjustY + H_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET_L2, + adjustY + H_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET_L2, + adjustY + H_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET_L2, + adjustY + H_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + H_BRANCH_OFFSET_L2, + adjustY + H_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("h branch: " + l4FrontRight); + } else if (poseDirection.getRotation().getDegrees() > -61.0 + && poseDirection.getRotation().getDegrees() < -59.0) { + l4FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET, + adjustY + F_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET, + adjustY + F_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET, + adjustY + F_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET, + adjustY + F_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET_L3, + adjustY + F_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET_L3, + adjustY + F_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET_L3, + adjustY + F_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET_L3, + adjustY + F_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET_L2, + adjustY + F_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET_L2, + adjustY + F_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET_L2, + adjustY + F_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + F_BRANCH_OFFSET_L2, + adjustY + F_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("j branch: " + l4FrontRight); + } else { + l4FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET, + adjustY + D_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET, + adjustY + D_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET, + adjustY + D_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET, + adjustY + D_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET_L3, + adjustY + D_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET_L3, + adjustY + D_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET_L3, + adjustY + D_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET_L3, + adjustY + D_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET_L2, + adjustY + D_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET_L2, + adjustY + D_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackRight = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET_L2, + adjustY + D_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + D_BRANCH_OFFSET_L2, + adjustY + D_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("l branch: " + l4FrontRight); + } + // l3FrontRight = new Pose2d( + // new Translation2d( + // poseDirection + // .transformBy(new Transform2d(adjustX, + // adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.INTAKE_X_OFFSET_FRONT, + // Physical.INTAKE_Y_OFFSET_FRONT, + // new Rotation2d(Math.PI))) + // .getX(), + // poseDirection + // .transformBy(new Transform2d(adjustX, + // adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.INTAKE_X_OFFSET_FRONT, + // Physical.INTAKE_Y_OFFSET_FRONT, + // new Rotation2d(Math.PI))) + // .getY()), + // new Rotation2d( + // poseDirection.getRotation().getRadians() - Math.PI)); + // l3BackRight = new Pose2d( + // new Translation2d( + // poseDirection + // .transformBy(new Transform2d(adjustX, + // adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.INTAKE_X_OFFSET_BACK, + // Physical.INTAKE_Y_OFFSET_BACK, + // new Rotation2d())) + // .getX(), + // poseDirection + // .transformBy(new Transform2d(adjustX, + // adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.INTAKE_X_OFFSET_BACK, + // Physical.INTAKE_Y_OFFSET_BACK, + // new Rotation2d())) + // .getY()), + // new Rotation2d( + // poseDirection.getRotation().getRadians())); + // l2FrontLeft = new Pose2d( + // new Translation2d( + // poseDirection + // .transformBy(new Transform2d(adjustX, + // -adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.L2_INTAKE_X_OFFSET_FRONT, + // Physical.L2_INTAKE_Y_OFFSET_FRONT, + // new Rotation2d(Math.PI))) + // .getX(), + // poseDirection + // .transformBy(new Transform2d(adjustX, + // -adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.L2_INTAKE_X_OFFSET_FRONT, + // Physical.L2_INTAKE_Y_OFFSET_FRONT, + // new Rotation2d(Math.PI))) + // .getY()), + // new Rotation2d( + // poseDirection.getRotation().getRadians() - Math.PI)); + // l2BackLeft = new Pose2d( + // new Translation2d( + // poseDirection + // .transformBy(new Transform2d(adjustX, + // -adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.L2_INTAKE_X_OFFSET_BACK, + // Physical.L2_INTAKE_Y_OFFSET_BACK, + // new Rotation2d())) + // .getX(), + // poseDirection + // .transformBy(new Transform2d(adjustX, + // -adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.L2_INTAKE_X_OFFSET_BACK, + // Physical.L2_INTAKE_Y_OFFSET_BACK, + // new Rotation2d())) + // .getY()), + // new Rotation2d( + // poseDirection.getRotation().getRadians())); + frontLeftMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXMore, + -adjustYMore, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXMore, + -adjustYMore, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() - Math.PI)); + backLeftMore = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustXMore, + -adjustYMore, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustXMore, + -adjustYMore, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + if (poseDirection.getRotation().getDegrees() > 179.0 + && poseDirection.getRotation().getDegrees() < 181.0) { + l4FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET, + -adjustY + A_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET, + -adjustY + A_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET, + -adjustY + A_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET, + -adjustY + A_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET_L3, + -adjustY + A_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET_L3, + -adjustY + A_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET_L3, + -adjustY + A_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET_L3, + -adjustY + A_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET_L2, + -adjustY + A_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET_L2, + -adjustY + A_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET_L2, + -adjustY + A_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + A_BRANCH_OFFSET_L2, + -adjustY + A_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("b branch: " + l4FrontRight); + } else if (poseDirection.getRotation().getDegrees() > 119.0 + && poseDirection.getRotation().getDegrees() < 121.0) { + l4FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET, + -adjustY + K_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET, + -adjustY + K_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET, + -adjustY + K_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET, + -adjustY + K_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET_L3, + -adjustY + K_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET_L3, + -adjustY + K_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET_L3, + -adjustY + K_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET_L3, + -adjustY + K_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET_L2, + -adjustY + K_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET_L2, + -adjustY + K_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET_L2, + -adjustY + K_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + K_BRANCH_OFFSET_L2, + -adjustY + K_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("d branch: " + l4FrontRight); + } else if (poseDirection.getRotation().getDegrees() > 59.0 + && poseDirection.getRotation().getDegrees() < 61.0) { + l4FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET, + -adjustY + I_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET, + -adjustY + I_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET, + -adjustY + I_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET, + -adjustY + I_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET_L3, + -adjustY + I_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET_L3, + -adjustY + I_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET_L3, + -adjustY + I_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET_L3, + -adjustY + I_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET_L2, + -adjustY + I_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET_L2, + -adjustY + I_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET_L2, + -adjustY + I_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + I_BRANCH_OFFSET_L2, + -adjustY + I_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("f branch: " + l4FrontRight); + } else if (poseDirection.getRotation().getDegrees() > -1.0 + && poseDirection.getRotation().getDegrees() < 1.0) { + l4FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET, + -adjustY + G_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET, + -adjustY + G_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET, + -adjustY + G_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET, + -adjustY + G_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET_L3, + -adjustY + G_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET_L3, + -adjustY + G_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET_L3, + -adjustY + G_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET_L3, + -adjustY + G_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET_L2, + -adjustY + G_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET_L2, + -adjustY + G_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET_L2, + -adjustY + G_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + G_BRANCH_OFFSET_L2, + -adjustY + G_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("h branch: " + l4FrontRight); + } else if (poseDirection.getRotation().getDegrees() > -61.0 + && poseDirection.getRotation().getDegrees() < -59.0) { + l4FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET, + -adjustY + E_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET, + -adjustY + E_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET, + -adjustY + E_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET, + -adjustY + E_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET_L3, + -adjustY + E_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET_L3, + -adjustY + E_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET_L3, + -adjustY + E_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET_L3, + -adjustY + E_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET_L2, + -adjustY + E_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET_L2, + -adjustY + E_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET_L2, + -adjustY + E_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + E_BRANCH_OFFSET_L2, + -adjustY + E_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("j branch: " + l4FrontRight); + } else { + l4FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET, + -adjustY + C_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET, + -adjustY + C_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_FRONT, + Physical.L4_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l4BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET, + -adjustY + C_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET, + -adjustY + C_BRANCH_OFFSET_SIDE, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L4_INTAKE_X_OFFSET_BACK, + Physical.L4_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l3FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET_L3, + -adjustY + C_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET_L3, + -adjustY + C_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_FRONT, + Physical.INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l3BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET_L3, + -adjustY + C_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET_L3, + -adjustY + C_BRANCH_OFFSET_SIDE_L3, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.INTAKE_X_OFFSET_BACK, + Physical.INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + l2FrontLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET_L2, + -adjustY + C_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET_L2, + -adjustY + C_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_FRONT, + Physical.L2_INTAKE_Y_OFFSET_FRONT, + new Rotation2d(Math.PI))) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians() + - Math.PI)); + l2BackLeft = new Pose2d( + new Translation2d( + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET_L2, + -adjustY + C_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getX(), + poseDirection + .transformBy(new Transform2d( + adjustX + C_BRANCH_OFFSET_L2, + -adjustY + C_BRANCH_OFFSET_SIDE_L2, + new Rotation2d())) + .transformBy(new Transform2d( + Physical.L2_INTAKE_X_OFFSET_BACK, + Physical.L2_INTAKE_Y_OFFSET_BACK, + new Rotation2d())) + .getY()), + new Rotation2d( + poseDirection.getRotation().getRadians())); + System.out.println("l branch: " + l4FrontRight); + } + // l3FrontLeft = new Pose2d( + // new Translation2d( + // poseDirection + // .transformBy(new Transform2d(adjustX, + // -adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.INTAKE_X_OFFSET_FRONT, + // Physical.INTAKE_Y_OFFSET_FRONT, + // new Rotation2d(Math.PI))) + // .getX(), + // poseDirection + // .transformBy(new Transform2d(adjustX, + // -adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.INTAKE_X_OFFSET_FRONT, + // Physical.INTAKE_Y_OFFSET_FRONT, + // new Rotation2d(Math.PI))) + // .getY()), + // new Rotation2d( + // poseDirection.getRotation().getRadians() - Math.PI)); + // l3BackLeft = new Pose2d( + // new Translation2d( + // poseDirection + // .transformBy(new Transform2d(adjustX, + // -adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.INTAKE_X_OFFSET_BACK, + // Physical.INTAKE_Y_OFFSET_BACK, + // new Rotation2d())) + // .getX(), + // poseDirection + // .transformBy(new Transform2d(adjustX, + // -adjustY, + // new Rotation2d())) + // .transformBy(new Transform2d( + // Physical.INTAKE_X_OFFSET_BACK, + // Physical.INTAKE_Y_OFFSET_BACK, + // new Rotation2d())) + // .getY()), + // new Rotation2d( + // poseDirection.getRotation().getRadians())); + blueFrontPlacingPositions.add(l2FrontRight); + blueFrontPlacingPositions.add(l2FrontLeft); + blueBackPlacingPositions.add(l2BackRight); + blueBackPlacingPositions.add(l2BackLeft); + blueFrontPlacingPositionsMore.add(frontRightMore); + blueFrontPlacingPositionsMore.add(frontLeftMore); + blueBackPlacingPositionsMore.add(backRightMore); + blueBackPlacingPositionsMore.add(backLeftMore); + l4BlueFrontPlacingPositions.add(l4FrontRight); + l4BlueFrontPlacingPositions.add(l4FrontLeft); + l4BlueBackPlacingPositions.add(l4BackRight); + l4BlueBackPlacingPositions.add(l4BackLeft); + l3BlueFrontPlacingPositions.add(l3FrontRight); + l3BlueFrontPlacingPositions.add(l3FrontLeft); + l3BlueBackPlacingPositions.add(l3BackRight); + l3BlueBackPlacingPositions.add(l3BackLeft); + algaeBlueFrontPlacingPositions.add(algaeFront); + algaeBlueBackPlacingPositions.add(algaeBack); + algaeBlueFrontPlacingPositionsMore.add(algaeFrontMore); + algaeBlueBackPlacingPositionsMore.add(algaeBackMore); + algaeBlueFrontPlacingPositionsMoreMore.add(algaeFrontMoreMore); + algaeBlueBackPlacingPositionsMoreMore.add(algaeBackMoreMore); + l1BlueCornerPoints.add(l1Corner); + l1BlueDrivePoints.add(l1Drive); + blueL1FrontPlacingPositions.add(l1FrontLeft); + blueL1FrontPlacingPositions.add(l1FrontRight); + blueL1BackPlacingPositions.add(l1BackLeft); + blueL1BackPlacingPositions.add(l1BackRight); + blueL1FrontPlacingPositionsMore.add(l1FrontLeftMore); + blueL1FrontPlacingPositionsMore.add(l1FrontRightMore); + blueL1BackPlacingPositionsMore.add(l1BackLeftMore); + blueL1BackPlacingPositionsMore.add(l1BackRightMore); + } + + for (Pose2d bluePose : blueL1FrontPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + redL1FrontPlacingPositions.add(redPose); + } + + for (Pose2d bluePose : blueL1BackPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + redL1BackPlacingPositions.add(redPose); + } + + for (Pose2d bluePose : blueL1FrontPlacingPositionsMore) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + redL1FrontPlacingPositionsMore.add(redPose); + } + + for (Pose2d bluePose : blueL1BackPlacingPositionsMore) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + redL1BackPlacingPositionsMore.add(redPose); + } + + for (Pose2d bluePose : algaeBlueFrontPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + algaeRedFrontPlacingPositions.add(redPose); + } + + for (Pose2d bluePose : l1BlueCornerPoints) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + l1RedCornerPoints.add(redPose); + } + + for (Pose2d bluePose : l1BlueDrivePoints) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + l1RedDrivePoints.add(redPose); + } + + for (Pose2d bluePose : algaeBlueBackPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + algaeRedBackPlacingPositions.add(redPose); + } + + for (Pose2d bluePose : algaeBlueFrontPlacingPositionsMore) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + algaeRedFrontPlacingPositionsMore.add(redPose); + } + + for (Pose2d bluePose : algaeBlueBackPlacingPositionsMore) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + algaeRedBackPlacingPositionsMore.add(redPose); + } + + for (Pose2d bluePose : algaeBlueFrontPlacingPositionsMoreMore) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + algaeRedFrontPlacingPositionsMoreMore.add(redPose); + } + + for (Pose2d bluePose : algaeBlueBackPlacingPositionsMoreMore) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + algaeRedBackPlacingPositionsMoreMore.add(redPose); + } + + for (Pose2d bluePose : blueFrontPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + redFrontPlacingPositions.add(redPose); + } + + for (Pose2d bluePose : blueBackPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() - Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + redBackPlacingPositions.add(redPose); + } + + for (Pose2d bluePose : blueFrontPlacingPositionsMore) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + redFrontPlacingPositionsMore.add(redPose); + } + + for (Pose2d bluePose : blueBackPlacingPositionsMore) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() - Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + redBackPlacingPositionsMore.add(redPose); + } + + for (Pose2d bluePose : l4BlueFrontPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + l4RedFrontPlacingPositions.add(redPose); + } + + for (Pose2d bluePose : l4BlueBackPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() - Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + l4RedBackPlacingPositions.add(redPose); + } + + for (Pose2d bluePose : l3BlueFrontPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() + Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + l3RedFrontPlacingPositions.add(redPose); + } + + for (Pose2d bluePose : l3BlueBackPlacingPositions) { + Pose2d redPose = new Pose2d(); + Translation2d mirroredTranslation = new Translation2d( + Constants.Physical.FIELD_LENGTH - bluePose.getX(), + Constants.Physical.FIELD_WIDTH - bluePose.getY()); + Rotation2d mirroredRotation = new Rotation2d( + bluePose.getRotation().getRadians() - Math.PI); + redPose = new Pose2d(mirroredTranslation, mirroredRotation); + l3RedBackPlacingPositions.add(redPose); + } + } + } + + // Physical constants (e.g. field and robot dimensions) + public static final class Physical { + public static final double FIELD_WIDTH = 8.052; + public static final double FIELD_LENGTH = 17.548; + public static final double WHEEL_DIAMETER = inchesToMeters(4); + public static final double WHEEL_CIRCUMFERENCE = Math.PI * WHEEL_DIAMETER; + public static final double WHEEL_ROTATION_PER_METER = 1 / WHEEL_CIRCUMFERENCE; + public static final double WHEEL_TO_FRAME_DISTANCE = inchesToMeters(2.5); + public static final double TOP_SPEED = feetToMeters(30.0); + + public static final double ROBOT_LENGTH = inchesToMeters(26); + public static final double ROBOT_WIDTH = inchesToMeters(26); + public static final double MODULE_OFFSET = inchesToMeters(2.5); + public static final double ROBOT_RADIUS = Math.hypot(ROBOT_LENGTH / 2 - WHEEL_TO_FRAME_DISTANCE, + ROBOT_WIDTH / 2 - WHEEL_TO_FRAME_DISTANCE); + public static double INTAKE_X_OFFSET_FRONT = inchesToMeters(23.8); + public static double INTAKE_Y_OFFSET_FRONT = inchesToMeters(0.7); + public static double INTAKE_X_OFFSET_BACK = inchesToMeters(23.8); + public static double INTAKE_Y_OFFSET_BACK = inchesToMeters(-0.7); + + public static double INTAKE_X_OFFSET_FRONT_ALGAE = inchesToMeters(23.0 + 5.0); + public static double INTAKE_Y_OFFSET_FRONT_ALGAE = inchesToMeters(3.8); + public static double INTAKE_X_OFFSET_BACK_ALGAE = inchesToMeters(23.0 + 5.0); + public static double INTAKE_Y_OFFSET_BACK_ALGAE = inchesToMeters(-3.8); + + public static double L1_INTAKE_X_OFFSET_FRONT = inchesToMeters(35.3); + public static double L1_INTAKE_Y_OFFSET_FRONT = inchesToMeters(5.0); + public static double L1_INTAKE_X_OFFSET_BACK = inchesToMeters(35.3); + public static double L1_INTAKE_Y_OFFSET_BACK = inchesToMeters(-7.0); + + public static double L1_INTAKE_X_OFFSET_FRONT_MORE = inchesToMeters(24.5); + public static double L1_INTAKE_Y_OFFSET_FRONT_MORE = inchesToMeters(5.0); + public static double L1_INTAKE_X_OFFSET_BACK_MORE = inchesToMeters(24.5); + public static double L1_INTAKE_Y_OFFSET_BACK_MORE = inchesToMeters(-9.0); + + public static double L2_INTAKE_X_OFFSET_FRONT = inchesToMeters(23.45); + public static double L2_INTAKE_Y_OFFSET_FRONT = inchesToMeters(0.7); + public static double L2_INTAKE_X_OFFSET_BACK = inchesToMeters(23.45); + public static double L2_INTAKE_Y_OFFSET_BACK = inchesToMeters(-0.7); + + public static double L4_INTAKE_X_OFFSET_FRONT = inchesToMeters(27.1); + public static double L4_INTAKE_Y_OFFSET_FRONT = inchesToMeters(0.7); + public static double L4_INTAKE_X_OFFSET_BACK = inchesToMeters(27.1); + public static double L4_INTAKE_Y_OFFSET_BACK = inchesToMeters(-0.7); + + public static final double GRAVITY_ACCEL_MS2 = 9.806; + } + + // Subsystem setpoint constants + public static final class SetPoints { + public static class IntakeSetpoints { + public static final double INTAKE_ACCELERATION = 500.0; + public static final double INTAKE_CRUISE_VELOCITY = 400.0; + public static final double INTAKE_MOTION_PROFILE_SCALAR = 1.0; + public static final double INTAKE_DOWN = 0.36163; // rotations + public static final double INTAKE_UP = -0.014; // rotations + public static final double INTAKE_ROLLER_MAX_SPEED = 1.0; // percent + public static final double INTAKE_ROLLER_HOLDING_SPEED = 0.1; // percent + public static final double INTAKE_ROLLER_TORQUE = 80.0; // amps + public static final double INTAKE_HOLDING_TORQUE = 60.0; // amps + } + + public static final double ELEVATOR_BOTTOM_POSITION_M = 0.0; + public static final double ELEVATOR_MID_POSITION_M = inchesToMeters(26.0); // L2 after placement + public static final double ELEVATOR_TOP_POSITION_M = inchesToMeters(43.0); + public static final double ELEVATOR_L1_POSITION_M = inchesToMeters(6.6); + public static final double ELEVATOR_L2_POSITION_M = inchesToMeters(15); + public static final double ELEVATOR_AUTO_L2_POSITION_M = inchesToMeters(20); + public static final double ELEVATOR_AUTO_L2_POSITION_SCORE_M = inchesToMeters(16); + public static final double ELEVATOR_AUTO_L3_POSITION_M = inchesToMeters(35.75); + // public static final double ELEVATOR_AUTO_L3_POSITION_M = inchesToMeters(25); + public static final double ELEVATOR_AUTO_SCORE_L3_POSITION_M = inchesToMeters(20); + public static final double ELEVATOR_AUTO_L4_POSITION_M = inchesToMeters(64.0); + public static final double ELEVATOR_L3_POSITION_M = inchesToMeters(28); + public static final double ELEVATOR_L4_POSITION_M = inchesToMeters(64.0); + public static final double ELEVATOR_ALGAE_POSITION_M = inchesToMeters(8.0); + public static final double ELEVATOR_GROUND_CORAL_POSITION_M = inchesToMeters(5.4); + public static final double ELEVATOR_GROUND_ALGAE_POSITION_M = inchesToMeters(0.0); + public static final double ELEVATOR_FEEDER_POSITION_M = inchesToMeters(0.0); + public static final double ELEVATOR_OVER_POSITION_M = inchesToMeters(20); + public static final double ELEVATOR_NET_POSITION_M = inchesToMeters(65); + public static final double ELEVATOR_L2_ALGAE_POSITION_M = inchesToMeters(15.7); + public static final double ELEVATOR_L3_ALGAE_POSITION_M = inchesToMeters(33.0); + public static final double ELEVATOR_PROCESSOR_POSITION_M = inchesToMeters(6.5); + public static final double ELEVATOR_LOLLIPOP_POSITION_M = inchesToMeters(0.0); + public static final double ELEVATOR_PRE_HANDOFF_POSITION_M = inchesToMeters(39.0); + public static final double ELEVATOR_HANDOFF_POSITION_M = inchesToMeters(35.0); + + public enum ElevatorPosition { + kDOWN(ELEVATOR_BOTTOM_POSITION_M, Ratios.elevatorMetersToRotations(ELEVATOR_BOTTOM_POSITION_M)), + kMID(ELEVATOR_MID_POSITION_M, Ratios.elevatorMetersToRotations(ELEVATOR_MID_POSITION_M)), + kUP(ELEVATOR_TOP_POSITION_M, Ratios.elevatorMetersToRotations(ELEVATOR_TOP_POSITION_M)), + kL1(ELEVATOR_L1_POSITION_M, Ratios.elevatorMetersToRotations(ELEVATOR_L1_POSITION_M)), + kL2(ELEVATOR_L2_POSITION_M, Ratios.elevatorMetersToRotations(ELEVATOR_L2_POSITION_M)), + kAUTOL2(ELEVATOR_AUTO_L2_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_AUTO_L2_POSITION_M)), + kAUTOL2SCORE(ELEVATOR_AUTO_L2_POSITION_SCORE_M, + Ratios.elevatorMetersToRotations(ELEVATOR_AUTO_L2_POSITION_SCORE_M)), + kAUTOL3(ELEVATOR_AUTO_L3_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_AUTO_L3_POSITION_M)), + kAUTOL3SCORE(ELEVATOR_AUTO_SCORE_L3_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_AUTO_SCORE_L3_POSITION_M)), + kAUTOL4(ELEVATOR_AUTO_L4_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_AUTO_L4_POSITION_M)), + kL3(ELEVATOR_L3_POSITION_M, Ratios.elevatorMetersToRotations(ELEVATOR_L3_POSITION_M)), + kL4(ELEVATOR_L4_POSITION_M, Ratios.elevatorMetersToRotations(ELEVATOR_L4_POSITION_M)), + kALGAE(ELEVATOR_ALGAE_POSITION_M, Ratios.elevatorMetersToRotations(ELEVATOR_ALGAE_POSITION_M)), + kFEEDER(ELEVATOR_FEEDER_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_FEEDER_POSITION_M)), + kGROUNDCORAL(ELEVATOR_GROUND_CORAL_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_GROUND_CORAL_POSITION_M)), + kGROUNDALGAE(ELEVATOR_GROUND_ALGAE_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_GROUND_ALGAE_POSITION_M)), + kNET(ELEVATOR_NET_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_NET_POSITION_M)), + kPROCESSOR(ELEVATOR_PROCESSOR_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_PROCESSOR_POSITION_M)), + kL2ALGAE(ELEVATOR_L2_ALGAE_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_L2_ALGAE_POSITION_M)), + kL3ALGAE(ELEVATOR_L3_ALGAE_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_L3_ALGAE_POSITION_M)), + kOVER(ELEVATOR_OVER_POSITION_M, Ratios.elevatorMetersToRotations(ELEVATOR_OVER_POSITION_M)), + kLOLLIPOP(ELEVATOR_LOLLIPOP_POSITION_M, Ratios.elevatorMetersToRotations( + ELEVATOR_LOLLIPOP_POSITION_M)), + kHANDOFF(ELEVATOR_HANDOFF_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_HANDOFF_POSITION_M)), + kPREHANDOFF(ELEVATOR_PRE_HANDOFF_POSITION_M, + Ratios.elevatorMetersToRotations(ELEVATOR_PRE_HANDOFF_POSITION_M)); + + public final double meters; + public final double rotations; + + private ElevatorPosition(double meters, double rotations) { + this.meters = meters; + this.rotations = rotations; + } + } + + public static final double PIVOT_L1_POSITION_D = 67.0; + public static final double PIVOT_L23_POSITION_D = 52.5; + // public static final double PIVOT_AUTO_L23_POSITION_D = 45.0; + public static final double PIVOT_AUTO_L2_POSITION_D = 65.0; + public static final double PIVOT_AUTO_L3_POSITION_D = 50.0; + // public static final double PIVOT_AUTO_L3_POSITION_D = 30.0; + public static final double PIVOT_AUTO_L4_POSITION_D = 0.0; + public static final double PIVOT_AUTO_L4_SCORE_POSITION_D = 100.0; + public static final double PIVOT_AUTO_L4_SCORE_SLOW_POSITION_D = 70.0; + public static final double PIVOT_AUTO_L3_SCORE_POSITION_D = 100.0; + public static final double PIVOT_AUTO_L2_SCORE_POSITION_D = 100.0; + public static final double PIVOT_L4_POSITION_D = 60.0; + public static final double PIVOT_UPRIGHT_POSITION_D = 45.0; + public static final double PIVOT_GROUND_ALGAE_POSITION_D = 82.5; + public static final double PIVOT_GROUND_CORAL_POSITION_FRONT_D = 111.0; + public static final double PIVOT_GROUND_CORAL_POSITION_BACK_D = -111.0; + public static final double PIVOT_GROUND_CORAL_PREP_BACK_D = -90; + // public static final double PIVOT_DEFAULT_POSITION_D = 30.0; + public static final double PIVOT_DEFAULT_POSITION_D = 0.0; + public static final double PIVOT_DEFAULT_CLIMB_POSITION_D = 45.0; + public static final double PIVOT_PREP_POSITION_D = 30.0; + public static final double PIVOT_FEEDER_POSITION_D = 21.0; + public static final double PIVOT_NET_POSITION_D = 15.0; + public static final double PIVOT_PROCESSOR_POSITION_D = 76.0; + public static final double PIVOT_REEF_ALGAE_POSITION_D = 80.0; + public static final double PIVOT_CLIMB_POSITION_D = 45.0; + public static final double PIVOT_LOLLIPOP_POSITION_D = -98.0; + public static final double PIVOT_HANDOFF_POSITION_D = 145.0; + + public enum PivotPosition { + kL1(PIVOT_L1_POSITION_D, Constants.degreesToRotations(PIVOT_L1_POSITION_D)), + kL23(PIVOT_L23_POSITION_D, Constants.degreesToRotations(PIVOT_L23_POSITION_D)), + kAUTOL2(PIVOT_AUTO_L2_POSITION_D, Constants.degreesToRotations(PIVOT_AUTO_L2_POSITION_D)), + kAUTOL3(PIVOT_AUTO_L3_POSITION_D, Constants.degreesToRotations(PIVOT_AUTO_L3_POSITION_D)), + kAUTOL4(PIVOT_AUTO_L4_POSITION_D, Constants.degreesToRotations(PIVOT_AUTO_L4_POSITION_D)), + kL4(PIVOT_L4_POSITION_D, Constants.degreesToRotations(PIVOT_L4_POSITION_D)), + kUP(PIVOT_UPRIGHT_POSITION_D, Constants.degreesToRotations(PIVOT_UPRIGHT_POSITION_D)), + kGROUNDALGAE(PIVOT_GROUND_ALGAE_POSITION_D, + Constants.degreesToRotations(PIVOT_GROUND_ALGAE_POSITION_D)), + kGROUNDCORALFRONT(PIVOT_GROUND_CORAL_POSITION_FRONT_D, + Constants.degreesToRotations(PIVOT_GROUND_CORAL_POSITION_FRONT_D)), + kGROUNDCORALBACK(PIVOT_GROUND_CORAL_POSITION_BACK_D, + Constants.degreesToRotations(PIVOT_GROUND_CORAL_POSITION_BACK_D)), + kGROUNDCORALPREPBACK(PIVOT_GROUND_CORAL_PREP_BACK_D, + Constants.degreesToRotations(PIVOT_GROUND_CORAL_PREP_BACK_D)), + kNET(PIVOT_NET_POSITION_D, + Constants.degreesToRotations(PIVOT_NET_POSITION_D)), + kPROCESSOR(PIVOT_PROCESSOR_POSITION_D, + Constants.degreesToRotations(PIVOT_PROCESSOR_POSITION_D)), + kAUTOL2SCORE(PIVOT_AUTO_L2_SCORE_POSITION_D, + Constants.degreesToRotations(PIVOT_AUTO_L2_SCORE_POSITION_D)), + kAUTOL3SCORE(PIVOT_AUTO_L3_SCORE_POSITION_D, + Constants.degreesToRotations(PIVOT_AUTO_L3_SCORE_POSITION_D)), + kAUTOL4SCORE(PIVOT_AUTO_L4_SCORE_POSITION_D, + Constants.degreesToRotations(PIVOT_AUTO_L4_SCORE_POSITION_D)), + kAUTOL4SCORESLOW(PIVOT_AUTO_L4_SCORE_SLOW_POSITION_D, + Constants.degreesToRotations(PIVOT_AUTO_L4_SCORE_SLOW_POSITION_D)), + kDEFAULT(PIVOT_DEFAULT_POSITION_D, Constants.degreesToRotations(PIVOT_DEFAULT_POSITION_D)), + kDEFAULTCLIMB(PIVOT_DEFAULT_CLIMB_POSITION_D, + Constants.degreesToRotations(PIVOT_DEFAULT_CLIMB_POSITION_D)), + kFEEDER(PIVOT_FEEDER_POSITION_D, Constants.degreesToRotations(PIVOT_FEEDER_POSITION_D)), + kREEFALGAE(PIVOT_REEF_ALGAE_POSITION_D, + Constants.degreesToRotations(PIVOT_REEF_ALGAE_POSITION_D)), + kPREP(PIVOT_PREP_POSITION_D, Constants.degreesToRotations(PIVOT_PREP_POSITION_D)), + kCLIMB(PIVOT_CLIMB_POSITION_D, Constants.degreesToRotations(PIVOT_CLIMB_POSITION_D)), + kLOLLIPOP(PIVOT_LOLLIPOP_POSITION_D, Constants.degreesToRotations(PIVOT_LOLLIPOP_POSITION_D)), + kHANDOFF(PIVOT_HANDOFF_POSITION_D, Constants.degreesToRotations(PIVOT_HANDOFF_POSITION_D)); + + public final double degrees; + public final double rotations; + + private PivotPosition(double degrees, double rotations) { + this.degrees = degrees; + this.rotations = rotations; + } + } + } + + // Vision constants (e.g. camera offsets) + public static final class Vision { + // Poses of all 16 AprilTags, {x, y, z, yaw, pitch}, in meters and radians + public static final double[][] TAG_POSES = { + { inchesToMeters(657.37), inchesToMeters(25.8), inchesToMeters(58.5), + Math.toRadians(126), + Math.toRadians(0) }, + { inchesToMeters(657.37), inchesToMeters(291.2), inchesToMeters(58.5), + Math.toRadians(234), + Math.toRadians(0) }, + { inchesToMeters(455.15), inchesToMeters(317.15), inchesToMeters(51.25), + Math.toRadians(270), + Math.toRadians(0) }, + { inchesToMeters(365.2), inchesToMeters(241.64), inchesToMeters(73.54), + Math.toRadians(0), + Math.toRadians(30) }, + { inchesToMeters(365.2), inchesToMeters(75.39), inchesToMeters(73.54), + Math.toRadians(0), + Math.toRadians(30) }, + { inchesToMeters(530.49), inchesToMeters(130.17), inchesToMeters(12.13), + Math.toRadians(300), + Math.toRadians(0) }, + { inchesToMeters(546.87), inchesToMeters(158.5), inchesToMeters(12.13), + Math.toRadians(0), + Math.toRadians(0) }, + { inchesToMeters(530.49), inchesToMeters(186.83), inchesToMeters(12.13), + Math.toRadians(60), + Math.toRadians(0) }, + { inchesToMeters(497.77), inchesToMeters(186.83), inchesToMeters(12.13), + Math.toRadians(120), + Math.toRadians(0) }, + { inchesToMeters(481.39), inchesToMeters(158.5), inchesToMeters(12.13), + Math.toRadians(180), + Math.toRadians(0) }, + { inchesToMeters(497.77), inchesToMeters(130.17), inchesToMeters(12.13), + Math.toRadians(240), + Math.toRadians(0) }, + { inchesToMeters(33.51), inchesToMeters(25.8), inchesToMeters(58.5), Math.toRadians(54), + Math.toRadians(0) }, + { inchesToMeters(33.51), inchesToMeters(291.2), inchesToMeters(58.5), + Math.toRadians(306), + Math.toRadians(0) }, + { inchesToMeters(325.68), inchesToMeters(241.64), inchesToMeters(73.54), + Math.toRadians(180), + Math.toRadians(30) }, + { inchesToMeters(325.68), inchesToMeters(75.39), inchesToMeters(73.54), + Math.toRadians(180), + Math.toRadians(30) }, + { inchesToMeters(235.73), inchesToMeters(-0.15), inchesToMeters(51.25), + Math.toRadians(90), + Math.toRadians(0) }, + { inchesToMeters(160.39), inchesToMeters(130.17), inchesToMeters(12.13), + Math.toRadians(240), + Math.toRadians(0) }, + { inchesToMeters(144), inchesToMeters(158.5), inchesToMeters(12.13), + Math.toRadians(180), + Math.toRadians(0) }, + { inchesToMeters(160.39), inchesToMeters(186.83), inchesToMeters(12.13), + Math.toRadians(120), + Math.toRadians(0) }, + { inchesToMeters(193.1), inchesToMeters(186.83), inchesToMeters(12.13), + Math.toRadians(60), + Math.toRadians(0) }, + { inchesToMeters(209.49), inchesToMeters(158.5), inchesToMeters(12.13), + Math.toRadians(0), + Math.toRadians(0) }, + { inchesToMeters(193.1), inchesToMeters(130.17), inchesToMeters(12.13), + Math.toRadians(300), + Math.toRadians(0) } + }; + + public static final double[][] redSideReefTags = { + TAG_POSES[6 - 1], TAG_POSES[7 - 1], TAG_POSES[8 - 1], TAG_POSES[9 - 1], + TAG_POSES[10 - 1], + TAG_POSES[11 - 1] }; + + public static final double[][] blueSideReefTags = { + TAG_POSES[6 + 11 - 1], TAG_POSES[7 + 11 - 1], TAG_POSES[8 + 11 - 1], + TAG_POSES[9 + 11 - 1], + TAG_POSES[10 + 11 - 1], TAG_POSES[11 + + 11 - 1] }; + + // Poses of cameras relative to robot, {x, y, z, rx, ry, rz}, in meters and + // radians + public static final double[] FRONT_CAMERA_POSE = { Constants.inchesToMeters(1.75), + Constants.inchesToMeters(11.625), + Constants.inchesToMeters(33.5), 0, -33.5, 0 }; + + // Standard deviation adjustments + public static final double STANDARD_DEVIATION_SCALAR = 1; + public static final double ODOMETRY_JUMP_STANDARD_DEVIATION_SCALAR = 1; + public static final double ODOMETRY_JUMP_STANDARD_DEVIATION_DEGREE = 3; + public static final double TAG_STANDARD_DEVIATION_DISTANCE = 2; // meters + public static final double TAG_STANDARD_DEVIATION_FLATNESS = 5; + // public static final double XY_STD_DEV_SCALAR = 0.1; + + // Standard deviation regressions + /** + * Calculates the standard deviation scalar based on the distance from the tag. + * + * @param dist The distance from the tag. + * @return The standard deviation scalar. + */ + public static double getTagDistStdDevScalar(double dist) { + // double a = TAG_STANDARD_DEVIATION_FLATNESS; + // double b = 1 - a * Math.pow(TAG_STANDARD_DEVIATION_DISTANCE, 2); + // Logger.recordOutput("std devs", + // -0.000277778 * Math.pow(dist, 3) + 0.00988095 * Math.pow(dist, 2) + + // 0.00444444 * dist + 0.0371429); + // return Math.max(1, a * Math.pow(dist, 2) + b); + return -0.00045928 * Math.pow(dist, 4) + 0.0069476 * Math.pow(dist, 3) + - 0.0216241 * Math.pow(dist, 2) + + 0.063534 * dist + 0.0317614; + } + + /** + * Calculates the standard deviation scalar based on the number of detected + * tags. + * + * @param numTags The number of detected tags. + * @return The standard deviation scalar. + */ + public static double getNumTagStdDevScalar(int numTags) { + if (numTags == 0) { + return 99999; + } else if (numTags == 1) { + return 1; + } else if (numTags == 2) { + return 0.6; + } else { + return 0.75; + } + } + + /** + * Calculates the standard deviation of the x-coordinate based on the given + * offsets. + * + * @param xOffset The x-coordinate offset. + * @param yOffset The y-coordinate offset. + * @return The standard deviation of the x-coordinate. + */ + public static double getTagStdDevX(double xOffset, double yOffset) { + return Math.max(0, + 0.005533021491867763 * (xOffset * xOffset + yOffset * yOffset) + - 0.010807566510145635) + * STANDARD_DEVIATION_SCALAR; + } + + /** + * Calculates the standard deviation of the y-coordinate based on the given + * offsets. + * + * @param xOffset The x-coordinate offset. + * @param yOffset The y-coordinate offset. + * @return The standard deviation of the y-coordinate. + */ + public static double getTagStdDevY(double xOffset, double yOffset) { + return Math.max(0, 0.0055 * (xOffset * xOffset + yOffset * yOffset) - 0.01941597810542626) + * STANDARD_DEVIATION_SCALAR; + } + + /** + * Calculates the standard deviation in the x-coordinate for triangulation + * measurements. + * + * @param xOffset The x-coordinate offset. + * @param yOffset The y-coordinate offset. + * @return The standard deviation in the x-coordinate. + */ + public static double getTriStdDevX(double xOffset, double yOffset) { + return Math.max(0, + 0.004544133588821881 * (xOffset * xOffset + yOffset * yOffset) + - 0.01955724864971872) + * STANDARD_DEVIATION_SCALAR; + } + + /** + * Calculates the standard deviation in the y-coordinate for triangulation + * measurements. + * + * @param xOffset The x-coordinate offset. + * @param yOffset The y-coordinate offset. + * @return The standard deviation in the y-coordinate. + */ + public static double getTriStdDevY(double xOffset, double yOffset) { + return Math.max(0, + 0.002615358015002413 * (xOffset * xOffset + yOffset * yOffset) + - 0.008955462032388808) + * STANDARD_DEVIATION_SCALAR; + } + + public static double distBetweenPose(Pose3d pose1, Pose3d pose2) { + return (Math.sqrt(Math.pow(pose1.getX() - pose2.getX(), 2) + + Math.pow(pose1.getY() - pose2.getY(), 2))); + } + + public static final double DISTANCE_OFFSET = 7.0; + public static final double CAMERA_ANGLE_OFFSET = 0.0; + // pitch, distance + public static final double[][] CORAL_LOOKUP_TABLE = { + { -17.72 + CAMERA_ANGLE_OFFSET, 24.5 + DISTANCE_OFFSET }, + { -12.22 + CAMERA_ANGLE_OFFSET, 28.5 + DISTANCE_OFFSET }, + { -8.02 + CAMERA_ANGLE_OFFSET, 33.0 + DISTANCE_OFFSET }, + { -5.69 + CAMERA_ANGLE_OFFSET, 38.25 + DISTANCE_OFFSET }, + { -2.73 + CAMERA_ANGLE_OFFSET, 43.75 + DISTANCE_OFFSET }, + { -0.05 + CAMERA_ANGLE_OFFSET, 50.0 + DISTANCE_OFFSET }, + { 2.09 + CAMERA_ANGLE_OFFSET, 56.0 + DISTANCE_OFFSET }, + { 3.55 + CAMERA_ANGLE_OFFSET, 61.5 + DISTANCE_OFFSET }, + { 5.87 + CAMERA_ANGLE_OFFSET, 71.75 + DISTANCE_OFFSET } + }; + + /** + * Interpolates a value from a lookup table based on the given xValue. + * + * @param xIndex The index of the x-values in the lookup table. + * @param yIndex The index of the y-values in the lookup table. + * @param xValue The x-value for which to interpolate a y-value. + * @return The interpolated y-value corresponding to the given x-value. + */ + public static double getInterpolatedValue(int xIndex, int yIndex, double xValue) { + int lastIndex = CORAL_LOOKUP_TABLE.length - 1; + if (xValue < CORAL_LOOKUP_TABLE[0][xIndex]) { + // If the xValue is closer than the first setpoint + double returnValue = CORAL_LOOKUP_TABLE[0][yIndex]; + return returnValue; + } else if (xValue > CORAL_LOOKUP_TABLE[lastIndex][xIndex]) { + // If the xValue is farther than the last setpoint + double returnValue = CORAL_LOOKUP_TABLE[lastIndex][yIndex]; + return returnValue; + } else { + for (int i = 0; i < CORAL_LOOKUP_TABLE.length; i++) { + if (xValue > CORAL_LOOKUP_TABLE[i][xIndex] + && xValue < CORAL_LOOKUP_TABLE[i + 1][xIndex]) { + // If the xValue is in the table of setpoints + // Calculate where xValue is between setpoints + double leftDif = xValue - CORAL_LOOKUP_TABLE[i][xIndex]; + double percent = leftDif / (CORAL_LOOKUP_TABLE[i + 1][xIndex] + - CORAL_LOOKUP_TABLE[i][xIndex]); + + double value1 = CORAL_LOOKUP_TABLE[i][yIndex]; + double value2 = CORAL_LOOKUP_TABLE[i + 1][yIndex]; + + // Interpolate in-between values for value xValue and shooter rpm + double newValue = value1 + (percent * (value2 - value1)); + + double returnValue = newValue; + return returnValue; + } + } + // Should never run + double returnValue = CORAL_LOOKUP_TABLE[0][yIndex]; + return returnValue; + } + } + + /** + * Calculates shooter values (flywheel velocity and note velocity) based on the + * given angle. + * + * @param angle The angle of the shooter. + * @return An array containing the calculated flywheel velocity and note + * velocity. + */ + public static double getCoralDistanceFromPitch(double angle) { + return getInterpolatedValue(0, 1, angle); + // return new double[] {25, getInterpolatedValue(1, 3, angle)}; + } + } + + // Gear ratios and conversions + public static final class Ratios { + + // twist + public static final double TWIST_GEAR_RATIO_ROTOR = 28.8; + public static final double TWIST_GEAR_RATIO_ENCODER = 5.0 / 4.0; + + // pivot + public static final double PIVOT_GEAR_RATIO = 95.238; + + // drive + public static final double DRIVE_GEAR_RATIO = 6.12; + public static final double STEER_GEAR_RATIO = 21.43; + + // elevator + public static final double ELEVATOR_FIRST_STAGE = Constants.inchesToMeters(23.25); + public static final double ELEVATOR_MOTOR_ROTATIONS_FOR_FIRST_STAGE = 20.425781; + public static final double ELEVATOR_MOTOR_ROTATIONS_PER_METER = ELEVATOR_MOTOR_ROTATIONS_FOR_FIRST_STAGE + * (1 / ELEVATOR_FIRST_STAGE); + + public static double elevatorRotationsToMeters(double rotations) { + return rotations / ELEVATOR_MOTOR_ROTATIONS_PER_METER; + } + + public static double elevatorMetersToRotations(double meters) { + return meters * ELEVATOR_MOTOR_ROTATIONS_PER_METER; + } + + // intake + public static final double INTAKE_PIVOT_GEAR_RATIO = 30.0; + } + + // Can info such as IDs + public static final class CANInfo { + public static final String CANBUS_NAME = "Canivore"; + + // drive + public static final int FRONT_RIGHT_DRIVE_MOTOR_ID = 1; + public static final int FRONT_RIGHT_ANGLE_MOTOR_ID = 2; + public static final int FRONT_LEFT_DRIVE_MOTOR_ID = 3; + public static final int FRONT_LEFT_ANGLE_MOTOR_ID = 4; + public static final int BACK_LEFT_DRIVE_MOTOR_ID = 5; + public static final int BACK_LEFT_ANGLE_MOTOR_ID = 6; + public static final int BACK_RIGHT_DRIVE_MOTOR_ID = 7; + public static final int BACK_RIGHT_ANGLE_MOTOR_ID = 8; + public static final int FRONT_RIGHT_MODULE_CANCODER_ID = 1; + public static final int FRONT_LEFT_MODULE_CANCODER_ID = 2; + public static final int BACK_LEFT_MODULE_CANCODER_ID = 3; + public static final int BACK_RIGHT_MODULE_CANCODER_ID = 4; + + // Lights + public static final int CANDLE_ID_0 = 0; + public static final int CANDLE_ID_1 = 1; + public static final int CANDLE_ID_2 = 2; + + // Elevator + public static final int MASTER_ELEVATOR_MOTOR_ID = 9; + public static final int FOLLOWER_ELEVATOR_MOTOR_ID = 10; + + // Pivot + public static final int PIVOT_MOTOR_ID = 11; + public static final int PIVOT_CANCODER_ID = 5; + + // Twist + public static final int TWIST_MOTOR_ID = 12; + public static final int TWIST_CANCODER_ID = 6; + + // Manipulator + public static final int MANIPULATOR_MOTOR_ID = 13; + + // Climber + public static final int CLIMBER_PIVOT_MOTOR_ID = 15; + + // Intake + public static final int INTAKE_ROLLER_MOTOR_ID = 16; + public static final int INTAKE_PIVOT_MOTOR_ID = 17; + public static final int INTAKE_BEAM_BREAK_PORT = 0; + } + + // Misc. controller values + public static final class OperatorConstants { + public static final double RIGHT_TRIGGER_DEADZONE = 0.1; + public static final double LEFT_TRIGGER_DEADZONE = 0.1; + public static final double LEFT_STICK_DEADZONE = 0.05; + public static final double RIGHT_STICK_DEADZONE = 0.1; + } + + /** + * Converts inches to meters. + * + * @param inches The length in inches to be converted. + * @return The equivalent length in meters. + */ + public static double inchesToMeters(double inches) { + return inches / 39.37; + } + + public static double metersToInches(double meters) { + return meters * 39.37; + } + + /** + * Converts feet to meters. + * + * @param inches The length in feet to be converted. + * @return The equivalent length in meters. + */ + public static double feetToMeters(double feet) { + return feet / 3.281; + } + + /** + * Calculates the Euclidean distance between two points in a 2D plane. + * + * @param x1 The x-coordinate of the first point. + * @param y1 The y-coordinate of the first point. + * @param x2 The x-coordinate of the second point. + * @param y2 The y-coordinate of the second point. + * @return The Euclidean distance between the two points. + */ + public static double getDistance(double x1, double y1, double x2, double y2) { + return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)); + } + + public static double getAngleToPoint(double x1, double y1, double x2, double y2) { + // System.out.println("x1: " + x1 + ", y1: " + y1 + ", x2: " + x2 + ", y2: " + + // y2); + double deltaX = x2 - x1; + double deltaY = y2 - y1; + + double angleInRadians = Math.atan2(deltaY, deltaX); + + double angleInDegrees = Math.toDegrees(angleInRadians); + + double standardizeAngleDegrees = standardizeAngleDegrees(angleInDegrees); + + // if (y1 > y2) { + // System.out.println("running"); + return 180 + standardizeAngleDegrees; + // } + // System.out.println("2"); + // double temp = 180 - standardizeAngleDegrees; + // double j = 180 - temp; + // return 180 + j; + // } + } + + /** + * Converts a quantity in rotations to radians. + * + * @param rotations The quantity in rotations to be converted. + * @return The equivalent quantity in radians. + */ + public static double rotationsToRadians(double rotations) { + return rotations * 2 * Math.PI; + } + + /** + * Converts a quantity in degrees to rotations. + * + * @param rotations The quantity in degrees to be converted. + * @return The equivalent quantity in rotations. + */ + public static double degreesToRotations(double degrees) { + return degrees / 360; + } + + /** + * Converts a quantity in rotations to degrees. + * + * @param rotations The quantity in rotations to be converted. + * @return The equivalent quantity in degrees. + */ + public static double rotationsToDegrees(double rotations) { + return rotations * 360; + } + + /** + * Converts a quantity in degrees to radians. + * + * @param rotations The quantity in degrees to be converted. + * @return The equivalent quantity in radians. + */ + public static double degreesToRadians(double degrees) { + return degrees * Math.PI / 180; + } + + /** + * Standardizes an angle to be within the range [0, 360) degrees. + * + * @param angleDegrees The input angle in degrees. + * @return The standardized angle within the range [0, 360) degrees. + */ + public static double standardizeAngleDegrees(double angleDegrees) { + // System.out.println("initial angle degrees" + angleDegrees); + if (angleDegrees >= 0 && angleDegrees < 360) { + // System.out.println("standardized angle degrees" + angleDegrees); + return angleDegrees; + } else if (angleDegrees < 0) { + while (angleDegrees < 0) { + angleDegrees += 360; + } + // System.out.println("standardized angle degrees" + angleDegrees); + return angleDegrees; + } else if (angleDegrees >= 360) { + while (angleDegrees >= 360) { + angleDegrees -= 360; + } + // System.out.println("standardized angle degrees" + angleDegrees); + return angleDegrees; + } else { + // System.out.println("Weird ErroR"); + // System.out.println("standardized angle degrees" + angleDegrees); + return angleDegrees; + } + } + + /** + * Calculates the x-component of a unit vector given an angle in radians. + * + * @param angle The angle in radians. + * @return The x-component of the unit vector. + */ + public static double angleToUnitVectorI(double angle) { + return (Math.cos(angle)); + } + + /** + * Calculates the y-component of a unit vector given an angle in radians. + * + * @param angle The angle in radians. + * @return The y-component of the unit vector. + */ + public static double angleToUnitVectorJ(double angle) { + return (Math.sin(angle)); + } + + /** + * Converts revolutions per minute (RPM) to revolutions per second (RPS). + * + * @param RPM The value in revolutions per minute (RPM) to be converted. + * @return The equivalent value in revolutions per second (RPS). + */ + public static double RPMToRPS(double RPM) { + return RPM / 60; + } + + /** + * Converts revolutions per second (RPS) to revolutions per minute (RPM). + * + * @param RPM The value in revolutions per second (RPS) to be converted. + * @return The equivalent value in revolutions per minute (RPM). + */ + public static double RPSToRPM(double RPS) { + return RPS * 60; + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/Main.java b/src/main/java/frc/robot/Main.java new file mode 100644 index 0000000..8776e5d --- /dev/null +++ b/src/main/java/frc/robot/Main.java @@ -0,0 +1,25 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot; + +import edu.wpi.first.wpilibj.RobotBase; + +/** + * Do NOT add any static variables to this class, or any initialization at all. Unless you know what + * you are doing, do not modify this file except to change the parameter class to the startRobot + * call. + */ +public final class Main { + private Main() {} + + /** + * Main initialization function. Do not perform any initialization here. + * + *

If you change your main robot class, change the parameter type. + */ + public static void main(String... args) { + RobotBase.startRobot(Robot::new); + } +} diff --git a/src/main/java/frc/robot/OI.java b/src/main/java/frc/robot/OI.java new file mode 100644 index 0000000..b1f849f --- /dev/null +++ b/src/main/java/frc/robot/OI.java @@ -0,0 +1,258 @@ +// Copyrights (c) 2018-2019 FIRST, 2020 Highlanders FRC. All Rights Reserved. + +package frc.robot; + +import java.util.function.BooleanSupplier; + +import edu.wpi.first.wpilibj.DriverStation; +import edu.wpi.first.wpilibj.Joystick; +import edu.wpi.first.wpilibj.XboxController; +import edu.wpi.first.wpilibj2.command.button.JoystickButton; +import frc.robot.tools.TriggerButton; + +public class OI { + public static XboxController driverController = new XboxController(0); + public static XboxController operatorController = new XboxController(1); + + public static BooleanSupplier driveRTSupplier = () -> getDriverRTPercent() > Constants.OperatorConstants.RIGHT_TRIGGER_DEADZONE; + public static BooleanSupplier driverLTSupplier = () -> getDriverLTPercent() > Constants.OperatorConstants.LEFT_TRIGGER_DEADZONE; + + public static BooleanSupplier povUp = () -> getPOV() == 0; + public static BooleanSupplier povRight = () -> getPOV() == 90; + public static BooleanSupplier povDown = () -> getPOV() == 180; + public static BooleanSupplier povLeft = () -> getPOV() == 270; + + public static TriggerButton driverPOVUp = new TriggerButton(povUp); + public static TriggerButton driverPOVRight = new TriggerButton(povRight); + public static TriggerButton driverPOVDown = new TriggerButton(povDown); + public static TriggerButton driverPOVLeft = new TriggerButton(povLeft); + + public static BooleanSupplier operatorPovUp = () -> getOperatorPOV() == 0; + public static BooleanSupplier operatorPovRight = () -> getOperatorPOV() == 90; + public static BooleanSupplier operatorPovDown = () -> getOperatorPOV() == 180; + public static BooleanSupplier operatorPovLeft = () -> getOperatorPOV() == 270; + + public static TriggerButton operatorPOVUp = new TriggerButton(operatorPovUp); + public static TriggerButton operatorPOVRight = new TriggerButton(operatorPovRight); + public static TriggerButton operatorPOVDown = new TriggerButton(operatorPovDown); + public static TriggerButton operatorPOVLeft = new TriggerButton(operatorPovLeft); + + public static TriggerButton driverRT = new TriggerButton(driveRTSupplier); + public static TriggerButton driverLT = new TriggerButton(driverLTSupplier); + + public static JoystickButton driverA = new JoystickButton(driverController, 1); + public static JoystickButton driverB = new JoystickButton(driverController, 2); + + public static JoystickButton driverY = new JoystickButton(driverController, 4); + public static JoystickButton driverX = new JoystickButton(driverController, 3); + + public static JoystickButton driverRB = new JoystickButton(driverController, 6); + public static JoystickButton driverLB = new JoystickButton(driverController, 5); + + public static JoystickButton driverLJ = new JoystickButton(driverController, 9); + public static JoystickButton driverRJ = new JoystickButton(driverController, 10); + + public static JoystickButton operatorX = new JoystickButton(operatorController, 3); + public static JoystickButton operatorB = new JoystickButton(operatorController, 2); + + public static JoystickButton operatorY = new JoystickButton(operatorController, 4); + public static JoystickButton operatorA = new JoystickButton(operatorController, 1); + + public static BooleanSupplier operatorRTSupplier = () -> getOperatorRTPercent() > Constants.OperatorConstants.RIGHT_TRIGGER_DEADZONE; + public static BooleanSupplier operatorLTSupplier = () -> getOperatorLTPercent() > Constants.OperatorConstants.LEFT_TRIGGER_DEADZONE; + + public static TriggerButton operatorRT = new TriggerButton(operatorRTSupplier); + public static TriggerButton operatorLT = new TriggerButton(operatorLTSupplier); + + public static JoystickButton operatorRB = new JoystickButton(operatorController, 6); + public static JoystickButton operatorLB = new JoystickButton(operatorController, 5); + + public static JoystickButton operatorLJ = new JoystickButton(operatorController, 9); + public static JoystickButton operatorRJ = new JoystickButton(operatorController, 10); + + public static JoystickButton driverViewButton = new JoystickButton(driverController, 7); + + public static JoystickButton operatorViewButton = new JoystickButton(operatorController, 7); + public static JoystickButton driverMenuButton = new JoystickButton(driverController, 8); + + public static JoystickButton operatorMenuButton = new JoystickButton(operatorController, 8); + + public static Joystick autoChooser = new Joystick(2); + + public static JoystickButton autoChooserIsBlue = new JoystickButton(autoChooser, 8); + + public static void printAutoChooserInputs() { + System.out.println("Driver Controller Connected: " + driverController.isConnected()); + System.out.println("Operator Controller Connected: " + operatorController.isConnected()); + System.out.println("Auto Chooser Connected: " + autoChooser.isConnected()); + System.out.println("Auto Chooser Num Buttons: " + autoChooser.getButtonCount()); + System.out.println("Is Blue: " + autoChooserIsBlue.getAsBoolean()); + for (int i = 1; i <= 16; i++) { + System.out.println("Auto Chooser Button " + i + " : " + autoChooser.getRawButton(i)); + } + } + + public static double getDriverLeftX() { + double leftX = -driverController.getLeftX(), leftY = driverController.getLeftY(); + if (Math.hypot(leftX, leftY) < Constants.OperatorConstants.LEFT_STICK_DEADZONE) { + leftX = 0; + } + return leftX; + } + + public static double getDriverLeftY() { + double leftX = -driverController.getLeftX(), leftY = driverController.getLeftY(); + if (Math.hypot(leftX, leftY) < Constants.OperatorConstants.LEFT_STICK_DEADZONE) { + leftY = 0; + } + return leftY; + } + + public static double getDriverRightX() { + double rightX = driverController.getRightX(), rightY = driverController.getRightY(); + if (Math.hypot(rightX, rightY) < Constants.OperatorConstants.LEFT_STICK_DEADZONE) { + rightX = 0; + } + return rightX; + } + + public static double getDriverRightY() { + double rightX = driverController.getRightX(), rightY = driverController.getRightY(); + if (Math.hypot(rightX, rightY) < Constants.OperatorConstants.LEFT_STICK_DEADZONE) { + rightY = 0; + } + return rightY; + } + + public static double getOperatorLeftX() { + double leftX = -operatorController.getLeftX(), leftY = operatorController.getLeftY(); + if (Math.hypot(leftX, leftY) < Constants.OperatorConstants.LEFT_STICK_DEADZONE) { + leftX = 0; + } + return leftX; + } + + public static double getOperatorLeftY() { + double leftX = -operatorController.getLeftX(), leftY = operatorController.getLeftY(); + if (Math.hypot(leftX, leftY) < Constants.OperatorConstants.LEFT_STICK_DEADZONE) { + leftY = 0; + } + return leftY; + } + + public static double getOperatorRightX() { + double rightX = operatorController.getRightX(), rightY = operatorController.getRightY(); + if (Math.hypot(rightX, rightY) < Constants.OperatorConstants.LEFT_STICK_DEADZONE) { + rightX = 0; + } + return rightX; + } + + public static double getOperatorRightY() { + double rightX = operatorController.getRightX(), rightY = operatorController.getRightY(); + if (Math.hypot(rightX, rightY) < Constants.OperatorConstants.LEFT_STICK_DEADZONE) { + rightY = 0; + } + return rightY; + } + + public static double getDriverRTPercent() { + return driverController.getRightTriggerAxis(); + } + + public static double getDriverLTPercent() { + return driverController.getLeftTriggerAxis(); + } + + public static boolean getDriverA() { + return driverController.getAButton(); + } + + public static boolean getDriverRB() { + return driverController.getRightBumper(); + } + + public static boolean getDriverLB() { + return driverController.getLeftBumper(); + } + + public static double getOperatorRTPercent() { + return operatorController.getRightTriggerAxis(); + } + + public static double getOperatorLTPercent() { + return operatorController.getLeftTriggerAxis(); + } + + public static boolean getOperatorLB() { + return operatorController.getLeftBumper(); + } + + public static int getPOV() { + return driverController.getPOV(); + } + + public static int getOperatorPOV() { + return operatorController.getPOV(); + } + + public static boolean getPOVUp() { + if (getPOV() == 0) { + return true; + } else { + return false; + } + } + + public static boolean isRedSide() { + if (autoChooserConnected()) { + return !autoChooser.getRawButton(8); + } else { + return DriverStation.getAlliance().get() == DriverStation.Alliance.Red; + } + } + + public static boolean isProcessorSide() { + return autoChooser.getRawButton(6); + } + + public static boolean isRecalculateMode() { + return autoChooser.getRawButton(7); + } + + public static boolean autoChooserConnected() { + return autoChooser.isConnected(); + } + + public static boolean isBlueSide() { + if (autoChooserConnected()) { + return autoChooser.getRawButton(8); + } else { + return DriverStation.getAlliance().get() == DriverStation.Alliance.Blue; + } + } + + public static boolean is4PieceFarBottom231Auto() { + return autoChooser.getRawButton(2); + } + + public static boolean is5PieceAuto() { + return autoChooser.getRawButton(1); + } + + public static boolean is3PieceFarBottomAuto() { + return autoChooser.getRawButton(3); + } + + public static boolean is1PieceAuto() { + return autoChooser.getRawButton(5); + } + + public static boolean is4PieceAmpSideAuto() { + return autoChooser.getRawButton(4); + } + + public static boolean getDriverRightJoystickPressed() { + return driverController.getRightStickButton(); + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java new file mode 100644 index 0000000..7c19346 --- /dev/null +++ b/src/main/java/frc/robot/Robot.java @@ -0,0 +1,134 @@ +package frc.robot; + +import java.io.IOException; + +import org.littletonrobotics.junction.LogFileUtil; +import org.littletonrobotics.junction.LoggedRobot; +import org.littletonrobotics.junction.Logger; +import org.littletonrobotics.junction.networktables.NT4Publisher; +import org.littletonrobotics.junction.wpilog.WPILOGReader; +import org.littletonrobotics.junction.wpilog.WPILOGWriter; + +import com.ctre.phoenix6.hardware.TalonFX; +import edu.wpi.first.wpilibj.TimedRobot; +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.CommandScheduler; +import edu.wpi.first.wpilibj2.command.ParallelCommandGroup; +import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; +import frc.robot.commands.DriveToPoint; +import frc.robot.commands.FollowPath; +import frc.robot.subsystems.Drive; +import frc.robot.subsystems.Peripherals; +import frc.robot.tools.PathLoader; +import frc.robot.tools.math.Vector; + +public class Robot extends LoggedRobot { + private final RobotContainer m_robotContainer; + private final Drive drive; + private final Peripherals peripherals; + private final TalonFX testMotor; + private double setAngle = 0; + private Command m_autonomousCommand; + PathLoader path = new PathLoader(); + + public Robot() { + + Logger.recordMetadata("ChassisBot", "Chassis"); + + if (isReal()) { + Logger.addDataReceiver(new NT4Publisher()); + } else { + setUseTiming(false); + String logPath = LogFileUtil.findReplayLog(); + Logger.addDataReceiver(new WPILOGWriter(LogFileUtil.addPathSuffix(logPath, "_sim"))); // Save outputs to a new log + } + + Logger.start(); + m_robotContainer = new RobotContainer(); + drive = m_robotContainer.drive; + peripherals = m_robotContainer.peripherals; + testMotor = new TalonFX(4); + } + + @Override + public void robotPeriodic() { + CommandScheduler.getInstance().run(); + } + + @Override + public void disabledInit() { + } + + @Override + public void disabledPeriodic() { + } + + @Override + public void autonomousInit() { + try { + new ParallelCommandGroup(new FollowPath(PathLoader.loadPath("test.polarpath"), drive), new DriveToPoint(drive)) + .schedule(); + ; + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void autonomousPeriodic() { + } + + @Override + public void teleopInit() { + if (m_autonomousCommand != null) { + m_autonomousCommand.cancel(); + } + } + + @Override + public void teleopPeriodic() { + if (OI.getDriverA()) { + peripherals.zeroPigeon(); + } + + double leftX = -OI.getDriverLeftY(); + double leftY = OI.getDriverLeftX(); + double rightX = -OI.getDriverRightX() * 0.65; + + Vector driveVector = new Vector(leftX, leftY); + if (driveVector.magnitude() > 1.0) { + driveVector = driveVector.scaled(1.0 / driveVector.magnitude()); + } + + double angleDeg = peripherals.getPigeonAngle(); + double angleRad = Math.toRadians(angleDeg); + double cosA = Math.cos(angleRad); + double sinA = Math.sin(angleRad); + + double fieldX = driveVector.getI() * cosA - driveVector.getJ() * sinA; + double fieldY = driveVector.getI() * sinA + driveVector.getJ() * cosA; + + Vector fieldCentricVector = new Vector(fieldX, fieldY); + + drive.drive(fieldCentricVector, rightX); + + // System.out.println(angleDeg); + } + + @Override + public void testInit() { + CommandScheduler.getInstance().cancelAll(); + } + + @Override + public void testPeriodic() { + } + + @Override + public void simulationInit() { + } + + @Override + public void simulationPeriodic() { + } +} diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java new file mode 100644 index 0000000..563ad76 --- /dev/null +++ b/src/main/java/frc/robot/RobotContainer.java @@ -0,0 +1,27 @@ +package frc.robot; + +import frc.robot.subsystems.Drive; +import frc.robot.subsystems.ExampleSubsystem; +import frc.robot.subsystems.Peripherals; +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.button.CommandXboxController; +import edu.wpi.first.wpilibj2.command.button.Trigger; + +public class RobotContainer { + private final ExampleSubsystem exampleSubsystem = new ExampleSubsystem(); + public final Drive drive = new Drive(); + public final Peripherals peripherals = new Peripherals(); + private Command autonomousCommand; + + public RobotContainer() { + configureBindings(); + } + + private void configureBindings() { + // add trigger-to-command mappings here + } + + public Command getAutonomousCommand() { + return autonomousCommand; + } +} diff --git a/src/main/java/frc/robot/commands/DriveToPoint.java b/src/main/java/frc/robot/commands/DriveToPoint.java new file mode 100644 index 0000000..864ab42 --- /dev/null +++ b/src/main/java/frc/robot/commands/DriveToPoint.java @@ -0,0 +1,69 @@ +package frc.robot.commands; + +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.Constants; +import frc.robot.subsystems.Drive; +import frc.robot.tools.math.Vector; +import frc.robot.tools.math.PID; + +public class DriveToPoint extends Command { + private final Drive driveSubsystem; + + private final PID xPID = new PID(4, 0.0, 1.2); + private final PID yPID = new PID(4, 0.0, 1.2); + private final PID yawPID = new PID(2.9, 0.0, 2.0); + + public DriveToPoint(Drive drive) { + System.out.println("started"); + driveSubsystem = drive; + + yawPID.setMinInput(-180); + yawPID.setMaxInput(180); + yawPID.setContinuous(true); + + xPID.setMinOutput(-3.0); + xPID.setMaxOutput(3.0); + + yPID.setMinOutput(-3.0); + yPID.setMaxOutput(3.0); + // + addRequirements(driveSubsystem); + } + + @Override + public void initialize() { + + } + + @Override + public void execute() { + xPID.setSetPoint(Constants.x); + yPID.setSetPoint(Constants.y); + yawPID.setSetPoint(Constants.angle); + + double currentX = driveSubsystem.getX(); + double currentY = driveSubsystem.getY(); + double currentTheta = driveSubsystem.getAngle(); + + double xOut = xPID.updatePID(currentX); + double yOut = -yPID.updatePID(currentY); + double turnOut = -yawPID.updatePID(currentTheta) / 8; + + Vector relativeVector = new Vector(xOut, yOut); + driveSubsystem.autoDrive(relativeVector, turnOut); + } + + @Override + public void end(boolean interrupted) { + driveSubsystem.stop(); + } + + @Override + public boolean isFinished() { + // boolean posClose = Math.abs(xPID.getError()) < 0.03 && + // Math.abs(yPID.getError()) < 0.03; + // boolean angleClose = Math.abs(yawPID.getError()) < 1.0; + // return posClose && angleClose; + return false; + } +} diff --git a/src/main/java/frc/robot/commands/FollowPath.java b/src/main/java/frc/robot/commands/FollowPath.java new file mode 100644 index 0000000..fb24c35 --- /dev/null +++ b/src/main/java/frc/robot/commands/FollowPath.java @@ -0,0 +1,58 @@ +package frc.robot.commands; + +import edu.wpi.first.wpilibj.Timer; +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.Constants; +import frc.robot.subsystems.Drive; +import frc.robot.tools.PathLoader; + +import java.io.Console; +import java.util.List; + +public class FollowPath extends Command { + private final Drive drive; + private final List points; + private final Timer timer = new Timer(); + private int currentIndex = 0; + + public FollowPath(List inputPoints, Drive driveSubsystem) { + this.points = inputPoints; + this.drive = driveSubsystem; + } + + @Override + public void initialize() { + currentIndex = 0; + timer.reset(); + timer.start(); + } + + @Override + public void execute() { + double now = timer.get(); + + while (currentIndex < points.size() && now >= points.get(currentIndex).time) { + PathLoader.PosePoint point = points.get(currentIndex); + + org.littletonrobotics.junction.Logger.recordOutput("Points X", point.x); + org.littletonrobotics.junction.Logger.recordOutput("Points Y", point.y); + org.littletonrobotics.junction.Logger.recordOutput("Points Theta", point.theta); + + Constants.x = point.x; + Constants.y = point.y; + Constants.angle = point.theta; + + currentIndex++; + } + } + + @Override + public void end(boolean interrupted) { + timer.stop(); + } + + @Override + public boolean isFinished() { + return currentIndex >= points.size(); + } +} diff --git a/src/main/java/frc/robot/subsystems/Drive.java b/src/main/java/frc/robot/subsystems/Drive.java new file mode 100644 index 0000000..0869501 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Drive.java @@ -0,0 +1,123 @@ +package frc.robot.subsystems; + +import org.littletonrobotics.junction.Logger; +import com.ctre.phoenix6.hardware.CANcoder; +import com.ctre.phoenix6.hardware.TalonFX; +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.SwerveDriveKinematics; +import edu.wpi.first.math.kinematics.SwerveDriveOdometry; +import edu.wpi.first.math.kinematics.SwerveModulePosition; +import edu.wpi.first.wpilibj2.command.SubsystemBase; +import frc.robot.tools.math.Vector; +import frc.robot.tools.SwerveModule; +import frc.robot.tools.math.PID; + +public class Drive extends SubsystemBase { + private final Peripherals peripherals = new Peripherals(); + public final TalonFX driveMotor1, driveMotor2, driveMotor3, driveMotor4; + public final TalonFX turnMotor1, turnMotor2, turnMotor3, turnMotor4; + public final CANcoder encoder1, encoder2, encoder3, encoder4; + private final SwerveModule swerve1, swerve2, swerve3, swerve4; + private final SwerveDriveOdometry odometry; + public static Pose2d m_pose = new Pose2d(); + private final PID xPID = new PID(0.01, 0.0, 0.0); + private final PID yPID = new PID(0.01, 0.0, 0.0); + + public Drive() { + driveMotor1 = new TalonFX(1, "Canivore"); + driveMotor2 = new TalonFX(4, "Canivore"); + driveMotor3 = new TalonFX(6, "Canivore"); + driveMotor4 = new TalonFX(8, "Canivore"); + turnMotor1 = new TalonFX(2, "Canivore"); + turnMotor2 = new TalonFX(3, "Canivore"); + turnMotor3 = new TalonFX(5, "Canivore"); + turnMotor4 = new TalonFX(7, "Canivore"); + encoder1 = new CANcoder(1, "Canivore"); + encoder2 = new CANcoder(2, "Canivore"); + encoder3 = new CANcoder(3, "Canivore"); + encoder4 = new CANcoder(4, "Canivore"); + + swerve1 = new SwerveModule(driveMotor1, turnMotor1, encoder1, 1); + swerve2 = new SwerveModule(driveMotor2, turnMotor2, encoder2, 2); + swerve3 = new SwerveModule(driveMotor3, turnMotor3, encoder3, 3); + swerve4 = new SwerveModule(driveMotor4, turnMotor4, encoder4, 4); + + var kinematics = new SwerveDriveKinematics( + new Translation2d(0.6096, 0.6096), + new Translation2d(0.6096, -0.6096), + new Translation2d(-0.6096, 0.6096), + new Translation2d(-0.6096, -0.6096)); + odometry = new SwerveDriveOdometry( + kinematics, + peripherals.getRotation2d(), + new SwerveModulePosition[] { + swerve2.getPosition(), + swerve1.getPosition(), + swerve3.getPosition(), + swerve4.getPosition() + }, + new Pose2d()); + + } + + public double getX() { + return m_pose.getX() * 0.82; + } + + public double getY() { + return m_pose.getY() * 0.78; + } + + public double getAngle() { + return m_pose.getRotation().getDegrees(); + } + + public void stop() { + swerve1.stop(); + swerve2.stop(); + swerve3.stop(); + swerve4.stop(); + } + + @Override + public void periodic() { + m_pose = odometry.update( + peripherals.getRotation2d(), + new SwerveModulePosition[] { + swerve2.getPosition(), + swerve1.getPosition(), + swerve3.getPosition(), + swerve4.getPosition() + }); + Logger.recordOutput("Robot X", m_pose.getX()); + Logger.recordOutput("Robot Y", m_pose.getY()); + Logger.recordOutput("Robot Angle", m_pose.getRotation().getDegrees()); + Logger.recordOutput("Robot Pose", m_pose); + } + + public void drive(Vector driveVector, double turn) { + swerve1.drive(driveVector, turn); + swerve2.drive(driveVector, turn); + swerve3.drive(driveVector, turn); + swerve4.drive(driveVector, turn); + } + + public void autoDrive(Vector fieldVector, double targetYawDegrees) { + double vx = fieldVector.getI(); + double vy = -fieldVector.getJ(); + + double headingRad = Math.toRadians(m_pose.getRotation().getDegrees()); + double cosA = Math.cos(-headingRad); + double sinA = Math.sin(-headingRad); + + double rx = vx * cosA - vy * sinA; + double ry = vx * sinA + vy * cosA; + + Vector robotVector = new Vector(rx, ry); + + drive(robotVector, targetYawDegrees); + } + +} diff --git a/src/main/java/frc/robot/subsystems/ExampleSubsystem.java b/src/main/java/frc/robot/subsystems/ExampleSubsystem.java new file mode 100644 index 0000000..6b375da --- /dev/null +++ b/src/main/java/frc/robot/subsystems/ExampleSubsystem.java @@ -0,0 +1,47 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.subsystems; + +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.SubsystemBase; + +public class ExampleSubsystem extends SubsystemBase { + /** Creates a new ExampleSubsystem. */ + public ExampleSubsystem() {} + + /** + * Example command factory method. + * + * @return a command + */ + public Command exampleMethodCommand() { + // Inline construction of command goes here. + // Subsystem::RunOnce implicitly requires `this` subsystem. + return runOnce( + () -> { + /* one-time action goes here */ + }); + } + + /** + * An example method querying a boolean state of the subsystem (for example, a digital sensor). + * + * @return value of some boolean subsystem state, such as a digital sensor. + */ + public boolean exampleCondition() { + // Query some boolean state, such as a digital sensor. + return false; + } + + @Override + public void periodic() { + // This method will be called once per scheduler run + } + + @Override + public void simulationPeriodic() { + // This method will be called once per scheduler run during simulation + } +} diff --git a/src/main/java/frc/robot/subsystems/Peripherals.java b/src/main/java/frc/robot/subsystems/Peripherals.java new file mode 100644 index 0000000..de2449c --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Peripherals.java @@ -0,0 +1,130 @@ +package frc.robot.subsystems; + +import java.util.ArrayList; +import java.util.List; +import org.littletonrobotics.junction.Logger; + +import com.ctre.phoenix6.configs.Pigeon2Configuration; +import com.ctre.phoenix6.hardware.Pigeon2; + +import edu.wpi.first.apriltag.AprilTagFieldLayout; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Rotation3d; +import edu.wpi.first.math.geometry.Transform3d; +import edu.wpi.first.math.geometry.Translation3d; +import edu.wpi.first.wpilibj.Filesystem; +import frc.robot.Constants; +import frc.robot.tools.math.Vector; + +public class Peripherals { + private Pigeon2 pigeon = new Pigeon2(0, "Canivore"); + private Pigeon2Configuration pigeonConfig = new Pigeon2Configuration(); + + public Peripherals() { + } + + /** + * Initializes the Peripherals subsystem. + * + * This method sets up the IMU configuration, mount pose, and zeroes the IMU. + * It also applies the default command to the Peripherals subsystem. + */ + public void init() { + // Set the mount pose configuration for the IMU + pigeonConfig.MountPose.MountPosePitch = 0.3561480641365051; + pigeonConfig.MountPose.MountPoseRoll = -0.10366992652416229; + pigeonConfig.MountPose.MountPoseYaw = -0.24523599445819855; + + // Apply the IMU configuration + pigeon.getConfigurator().apply(pigeonConfig); + + // Zero the IMU angle + zeroPigeon(); + + setPigeonPitchOffset(getPigeonPitch()); + + } + + /** + * Sets the IMU angle to 0 + */ + public void zeroPigeon() { + setPigeonAngle(0.0); + } + + /** + * Sets the angle of the IMU + * + * @param degrees - Angle to be set to the IMU + */ + public void setPigeonAngle(double degrees) { + pigeon.setYaw(degrees); + } + + /** + * Retrieves the yaw of the robot + * + * @return Yaw in degrees + */ + public double getPigeonAngle() { + return -pigeon.getYaw().getValueAsDouble(); + } + + /** + * Retrieves the absolute angular velocity of the IMU's Z-axis in device + * coordinates. + * + * @return The absolute angular velocity of the IMU's Z-axis in device + * coordinates. + * The value is in degrees per second. + */ + public double getPigeonAngularVelocity() { + return Math.abs(pigeon.getAngularVelocityZDevice().getValueAsDouble()); + } + + /** + * Retrieves the absolute angular velocity of the IMU's Z-axis in world + * coordinates. + * + * @return The absolute angular velocity of the IMU's Z-axis in world + * coordinates. + * The value is in radians per second. + */ + public double getPigeonAngularVelocityW() { + return pigeon.getAngularVelocityZWorld().getValueAsDouble(); + } + + /** + * Retrieves the acceleration vector of the robot + * + * @return Current acceleration vector of the robot + */ + public Vector getPigeonLinAccel() { + Vector accelVector = new Vector(); + accelVector.setI(pigeon.getAccelerationX().getValueAsDouble() / Constants.Physical.GRAVITY_ACCEL_MS2); + accelVector.setJ(pigeon.getAccelerationY().getValueAsDouble() / Constants.Physical.GRAVITY_ACCEL_MS2); + return accelVector; + } + + public double getPigeonPitch() { + return pigeon.getPitch().getValueAsDouble(); + } + + public double getPigeonPitchAdjusted() { + return getPigeonPitch() - pigeonPitchOffset; + } + + double pigeonPitchOffset = 0.0; + + public void setPigeonPitchOffset(double newOffset) { + pigeonPitchOffset = newOffset; + } + + public Rotation2d getRotation2d() { + return pigeon.getRotation2d(); + } + + public void periodic() { + + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/tools/PathLoader.java b/src/main/java/frc/robot/tools/PathLoader.java new file mode 100644 index 0000000..170f57d --- /dev/null +++ b/src/main/java/frc/robot/tools/PathLoader.java @@ -0,0 +1,44 @@ +package frc.robot.tools; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; + +import org.json.JSONArray; +import org.json.JSONObject; + +import edu.wpi.first.wpilibj.Filesystem; + +public class PathLoader { + + public static class PosePoint { + public final double x, y, theta, time; + + public PosePoint(double x, double y, double theta, double time) { + this.x = x; + this.y = y; + this.theta = theta; + this.time = time; + } + } + + public static List loadPath(String relativePath) throws IOException { + File file = new File(Filesystem.getDeployDirectory() + "/" + "Paths/" + relativePath); + String content = Files.readString(file.toPath()); + System.out.println(content); + JSONObject root = new JSONObject(content); + JSONArray arr = root.getJSONArray("sampled_points"); + List points = new ArrayList<>(); + for (int i = 0; i < arr.length(); i++) { + JSONObject p = arr.getJSONObject(i); + points.add(new PosePoint( + p.getDouble("x"), + p.getDouble("y"), + p.getDouble("angle"), + p.getDouble("time"))); + } + return points; + } +} diff --git a/src/main/java/frc/robot/tools/SwerveModule.java b/src/main/java/frc/robot/tools/SwerveModule.java new file mode 100644 index 0000000..bdcb878 --- /dev/null +++ b/src/main/java/frc/robot/tools/SwerveModule.java @@ -0,0 +1,116 @@ +package frc.robot.tools; + +import frc.robot.Constants; +import frc.robot.tools.math.PID; +import frc.robot.tools.math.Vector; + +import com.ctre.phoenix6.hardware.CANcoder; +import com.ctre.phoenix6.hardware.TalonFX; + +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.kinematics.SwerveModulePosition; + +public class SwerveModule { + private final TalonFX motorDrive; + private final TalonFX motorTurn; + private final CANcoder motorEncoder; + private final Vector turnVector; + private final double wheelCircumference = Constants.Physical.WHEEL_CIRCUMFERENCE; + private final PID turnPID = new PID(0.01, 0.0, 0.0); + + public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int index) { + this.motorDrive = driveMotor; + this.motorTurn = turnMotor; + this.motorEncoder = encoder; + this.turnVector = new Vector(0, 0); + + double c = 1.0 / Math.sqrt(2); + switch (index) { + case 1: + turnVector.setI(c); + turnVector.setJ(c); + break; + case 2: + turnVector.setI(-c); + turnVector.setJ(c); + break; + case 3: + turnVector.setI(-c); + turnVector.setJ(-c); + break; + case 4: + turnVector.setI(c); + turnVector.setJ(-c); + break; + } + + turnPID.setContinuous(true); + turnPID.setMinInput(0); + turnPID.setMaxInput(360); + } + + public void drive(Vector driveVector, double turnInput) { + double vx = driveVector.getI() + turnInput * turnVector.getI(); + double vy = driveVector.getJ() + turnInput * turnVector.getJ(); + + double speed = Math.hypot(vx, vy); + double desiredAngle = Math.toDegrees(Math.atan2(vy, vx)); + if (desiredAngle < 0) + desiredAngle += 360; + + double currentAngle = getAngle(); + + double delta = desiredAngle - currentAngle; + if (delta > 180) + delta -= 360; + else if (delta < -180) + delta += 360; + + if (Math.abs(delta) > 90) { + desiredAngle = (desiredAngle + 180) % 360; + speed = -speed; + } + + setSpeed(speed); + setDirection(desiredAngle); + } + + private void setSpeed(double velocity) { + motorDrive.set(velocity); + } + + private void setDirection(double angle) { + + turnPID.setSetPoint(angle); + double output = turnPID.updatePID(getAngle()); + motorTurn.set(-output); + } + + public double getEncoder() { + return motorEncoder.getAbsolutePosition().getValueAsDouble(); + } + + public double getAngle() { + double rotations = getEncoder(); + double angle = (rotations * 360) % 360; + return angle < 0 ? angle + 360 : angle; + } + + public void stop() { + motorDrive.set(0); + motorTurn.stopMotor(); + turnPID.setSetPoint(getAngle()); + } + + public void periodic() { + + } + + public SwerveModulePosition getPosition() { + double motorRotations = motorDrive.getRotorPosition().getValueAsDouble(); + double wheelRotations = motorRotations / Constants.Ratios.DRIVE_GEAR_RATIO; + double distanceMeters = wheelRotations * wheelCircumference; + Rotation2d angle = Rotation2d.fromDegrees(getAngle()); + return new SwerveModulePosition(distanceMeters, angle); + } +} diff --git a/src/main/java/frc/robot/tools/TriggerButton.java b/src/main/java/frc/robot/tools/TriggerButton.java new file mode 100644 index 0000000..083b805 --- /dev/null +++ b/src/main/java/frc/robot/tools/TriggerButton.java @@ -0,0 +1,10 @@ +package frc.robot.tools; + +import java.util.function.BooleanSupplier; +import edu.wpi.first.wpilibj2.command.button.Trigger; + +public class TriggerButton extends Trigger { + public TriggerButton(BooleanSupplier bs) { + super(bs); + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/tools/math/PID.java b/src/main/java/frc/robot/tools/math/PID.java new file mode 100644 index 0000000..0ed1a29 --- /dev/null +++ b/src/main/java/frc/robot/tools/math/PID.java @@ -0,0 +1,100 @@ +package frc.robot.tools.math; + +public class PID { + private double error; + private double totalError; + private double prevError; + + private double PValue; + private double IValue; + private double DValue; + + private double maxInput; + private double minInput; + private double maxOutput = 1.0; + private double minOutput = -1.0; + + private boolean continuous = false; + private double setPoint; + private double result; + + public PID(double kp, double ki, double kd) { + PValue = kp; + IValue = ki; + DValue = kd; + totalError = 0.0; // Initialize total error + } + + public double updatePID(double value) { + error = setPoint - value; + + if (continuous) { + if (Math.abs(error) > (maxInput - minInput) / 2) { + error = error > 0 ? error - (maxInput - minInput) : error + (maxInput - minInput); + } + } + + if (Math.abs(error) < 0.1) { + totalError += error; + totalError = clamp(totalError); + } + + result = PValue * error + IValue * totalError + DValue * (error - prevError); + prevError = error; + result = clamp(result); + return result; + } + + public void setPID(double p, double i, double d) { + PValue = p; + IValue = i; + DValue = d; + } + + public void setSetPoint(double target) { + setPoint = target; + totalError = 0; + } + + public double getSetPoint() { + return setPoint; + } + + public double getResult() { + return result; + } + + public void setMaxOutput(double output) { + maxOutput = output; + } + + public void setMinOutput(double output) { + minOutput = output; + } + + public void setMinInput(double input) { + minInput = input; + } + + public void setMaxInput(double input) { + maxInput = input; + } + + public void setContinuous(boolean value) { + continuous = value; + } + + public double clamp(double input) { + if (input > maxOutput) { + return maxOutput; + } + if (input < minOutput) { + return minOutput; + } + return input; + } + + public double getError() { + return error; + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/tools/math/Vector.java b/src/main/java/frc/robot/tools/math/Vector.java new file mode 100644 index 0000000..0da0d96 --- /dev/null +++ b/src/main/java/frc/robot/tools/math/Vector.java @@ -0,0 +1,138 @@ +// Copyrights (c) 2018-2019 FIRST, 2020 Highlanders FRC. All Rights Reserved. + +package frc.robot.tools.math; + +import edu.wpi.first.math.geometry.Translation2d; + +public class Vector { + + private double i; + private double j; + + public Vector() { + i = 0; + j = 0; + } + + public Vector(double i, double j) { + this.i = i; + this.j = j; + } + + /** + * Returns the i-component of the vector. + * + * @return The i-component of the vector. + */ + public double getI() { + return i; + } + + /** + * Returns the j-component of the vector. + * + * @return The j-component of the vector. + */ + public double getJ() { + return j; + } + + /** + * Multiplies the vector by a scalar value. + * + *

+ * This method modifies the current vector by multiplying each component (i and + * j) by the given scalar value. + * + * @param s The scalar value to multiply the vector by. + */ + public void scalarMultiple(double s) { + this.i = this.i * s; + this.j = this.j * s; + } + + /** + * Calculates the dot product of this vector with another vector. + * + *

+ * The dot product of two vectors is a scalar value that represents the product + * of their magnitudes and the cosine of the angle + * between them. It is calculated as the sum of the product of corresponding + * components of the two vectors. + * + * @param u The other vector with which to calculate the dot product. + * @return The dot product of this vector with the given vector {@code u}. + */ + public double dot(Vector u) { + return i * u.getI() + j * u.getJ(); + } + + /** + * Calculates the magnitude (or length) of the vector. + * + *

+ * The magnitude of a vector is a non-negative scalar value that represents the + * length of the vector. + * It is calculated as the square root of the sum of the squares of its + * components (i and j). + * + * @return The magnitude (or length) of the vector. + */ + public double magnitude() { + return Math.sqrt(this.dot(this)); + } + + /** + * Sets the i-component of the vector. + * + *

+ * This method modifies the current vector by setting the i-component to the + * given value. + * + * @param i The new value for the i-component of the vector. + */ + public void setI(double i) { + this.i = i; + } + + /** + * Sets the j-component of the vector. + * + *

+ * This method modifies the current vector by setting the j-component to the + * given value. + * + * @param j The new value for the j-component of the vector. + */ + public void setJ(double j) { + this.j = j; + } + + public Vector add(Vector other) { + return new Vector(this.i + other.getI(), this.j + other.getJ()); + } + + public Vector subtract(Vector other) { + return new Vector(this.i - other.getI(), this.j - other.getJ()); + } + + public Vector scaled(double scalar) { + return new Vector(this.i * scalar, this.j * scalar); + } + + public Vector projectOther(Vector other) { + double dotProduct = dot(other); + double magnitudeSquared = dot(this); + return scaled(dotProduct / magnitudeSquared); + } + + public Translation2d getClosestPointOnLine(Translation2d pointOnLine, Translation2d pointOffLine) { + Vector toPoint = new Vector(pointOffLine.getX() - pointOnLine.getX(), pointOffLine.getY() - pointOnLine.getY()); + Vector projVector = projectOther(toPoint); // Project onto the line direction + return new Translation2d(pointOnLine.getX() + projVector.i, pointOnLine.getY() + projVector.j); + } + + public Vector perpendicular() { + return new Vector(-j, i); + } +} \ No newline at end of file diff --git a/vendordeps/AdvantageKit.json b/vendordeps/AdvantageKit.json new file mode 100644 index 0000000..bef4a15 --- /dev/null +++ b/vendordeps/AdvantageKit.json @@ -0,0 +1,35 @@ +{ + "fileName": "AdvantageKit.json", + "name": "AdvantageKit", + "version": "4.1.2", + "uuid": "d820cc26-74e3-11ec-90d6-0242ac120003", + "frcYear": "2025", + "mavenUrls": [ + "https://frcmaven.wpi.edu/artifactory/littletonrobotics-mvn-release/" + ], + "jsonUrl": "https://github.com/Mechanical-Advantage/AdvantageKit/releases/latest/download/AdvantageKit.json", + "javaDependencies": [ + { + "groupId": "org.littletonrobotics.akit", + "artifactId": "akit-java", + "version": "4.1.2" + } + ], + "jniDependencies": [ + { + "groupId": "org.littletonrobotics.akit", + "artifactId": "akit-wpilibio", + "version": "4.1.2", + "skipInvalidPlatforms": false, + "isJar": false, + "validPlatforms": [ + "linuxathena", + "linuxx86-64", + "linuxarm64", + "osxuniversal", + "windowsx86-64" + ] + } + ], + "cppDependencies": [] +} \ No newline at end of file diff --git a/vendordeps/Phoenix6-frc2025-latest.json b/vendordeps/Phoenix6-frc2025-latest.json new file mode 100644 index 0000000..6f40c84 --- /dev/null +++ b/vendordeps/Phoenix6-frc2025-latest.json @@ -0,0 +1,479 @@ +{ + "fileName": "Phoenix6-frc2025-latest.json", + "name": "CTRE-Phoenix (v6)", + "version": "25.4.0", + "frcYear": "2025", + "uuid": "e995de00-2c64-4df5-8831-c1441420ff19", + "mavenUrls": [ + "https://maven.ctr-electronics.com/release/" + ], + "jsonUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6-frc2025-latest.json", + "conflictsWith": [ + { + "uuid": "e7900d8d-826f-4dca-a1ff-182f658e98af", + "errorMessage": "Users can not have both the replay and regular Phoenix 6 vendordeps in their robot program.", + "offlineFileName": "Phoenix6-replay-frc2025-latest.json" + } + ], + "javaDependencies": [ + { + "groupId": "com.ctre.phoenix6", + "artifactId": "wpiapi-java", + "version": "25.4.0" + } + ], + "jniDependencies": [ + { + "groupId": "com.ctre.phoenix6", + "artifactId": "api-cpp", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix6", + "artifactId": "tools", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "api-cpp-sim", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "tools-sim", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simTalonSRX", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simVictorSPX", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simPigeonIMU", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simCANCoder", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProTalonFX", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProTalonFXS", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANcoder", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProPigeon2", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANrange", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANdi", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANdle", + "version": "25.4.0", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + } + ], + "cppDependencies": [ + { + "groupId": "com.ctre.phoenix6", + "artifactId": "wpiapi-cpp", + "version": "25.4.0", + "libName": "CTRE_Phoenix6_WPI", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix6", + "artifactId": "tools", + "version": "25.4.0", + "libName": "CTRE_PhoenixTools", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "wpiapi-cpp-sim", + "version": "25.4.0", + "libName": "CTRE_Phoenix6_WPISim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "tools-sim", + "version": "25.4.0", + "libName": "CTRE_PhoenixTools_Sim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simTalonSRX", + "version": "25.4.0", + "libName": "CTRE_SimTalonSRX", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simVictorSPX", + "version": "25.4.0", + "libName": "CTRE_SimVictorSPX", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simPigeonIMU", + "version": "25.4.0", + "libName": "CTRE_SimPigeonIMU", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simCANCoder", + "version": "25.4.0", + "libName": "CTRE_SimCANCoder", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProTalonFX", + "version": "25.4.0", + "libName": "CTRE_SimProTalonFX", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProTalonFXS", + "version": "25.4.0", + "libName": "CTRE_SimProTalonFXS", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANcoder", + "version": "25.4.0", + "libName": "CTRE_SimProCANcoder", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProPigeon2", + "version": "25.4.0", + "libName": "CTRE_SimProPigeon2", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANrange", + "version": "25.4.0", + "libName": "CTRE_SimProCANrange", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANdi", + "version": "25.4.0", + "libName": "CTRE_SimProCANdi", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix6.sim", + "artifactId": "simProCANdle", + "version": "25.4.0", + "libName": "CTRE_SimProCANdle", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxarm64", + "osxuniversal" + ], + "simMode": "swsim" + } + ] +} \ No newline at end of file diff --git a/vendordeps/WPILibNewCommands.json b/vendordeps/WPILibNewCommands.json new file mode 100644 index 0000000..3718e0a --- /dev/null +++ b/vendordeps/WPILibNewCommands.json @@ -0,0 +1,38 @@ +{ + "fileName": "WPILibNewCommands.json", + "name": "WPILib-New-Commands", + "version": "1.0.0", + "uuid": "111e20f7-815e-48f8-9dd6-e675ce75b266", + "frcYear": "2025", + "mavenUrls": [], + "jsonUrl": "", + "javaDependencies": [ + { + "groupId": "edu.wpi.first.wpilibNewCommands", + "artifactId": "wpilibNewCommands-java", + "version": "wpilib" + } + ], + "jniDependencies": [], + "cppDependencies": [ + { + "groupId": "edu.wpi.first.wpilibNewCommands", + "artifactId": "wpilibNewCommands-cpp", + "version": "wpilib", + "libName": "wpilibNewCommands", + "headerClassifier": "headers", + "sourcesClassifier": "sources", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "linuxathena", + "linuxarm32", + "linuxarm64", + "windowsx86-64", + "windowsx86", + "linuxx86-64", + "osxuniversal" + ] + } + ] +} From 8b0fbe9e4b568f254362c6adb347daa45de86703 Mon Sep 17 00:00:00 2001 From: Dhairya Trivedi <140292400+Dhairya-exe@users.noreply.github.com> Date: Sat, 19 Jul 2025 10:15:31 -0600 Subject: [PATCH 2/9] fixing issues with the swerve and path following --- src/main/deploy/Paths/straight.polarauto | 1 + src/main/deploy/Paths/test.polarpath | 2 +- src/main/java/frc/robot/Constants.java | 10 + src/main/java/frc/robot/Robot.java | 204 ++++++++++-------- .../java/frc/robot/commands/DriveToPoint.java | 22 +- .../java/frc/robot/commands/FollowPath.java | 9 +- src/main/java/frc/robot/subsystems/Drive.java | 36 +++- .../java/frc/robot/tools/SwerveModule.java | 149 +++++++++++-- 8 files changed, 302 insertions(+), 131 deletions(-) create mode 100644 src/main/deploy/Paths/straight.polarauto diff --git a/src/main/deploy/Paths/straight.polarauto b/src/main/deploy/Paths/straight.polarauto new file mode 100644 index 0000000..15fbb9e --- /dev/null +++ b/src/main/deploy/Paths/straight.polarauto @@ -0,0 +1 @@ +{"meta_data":{"path_name":"straight","sample_rate":0.01,"robot_name":"Cardigan","field_name":"reefscape-updated"},"commands":[],"key_points":[{"index":0,"delta_time":0.0,"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":1,"delta_time":1.0,"time":1.0,"x":1.0,"y":0.0,"angle":0.0,"x_velocity":0.5,"y_velocity":0.5,"angular_velocity":0.0,"x_acceleration":-0.125,"y_acceleration":0.125,"angular_acceleration":0.0},{"index":2,"delta_time":2.0,"time":2.0,"x":1.0,"y":1.0,"angle":0.0,"x_velocity":-0.5,"y_velocity":0.5,"angular_velocity":0.0,"x_acceleration":-0.25,"y_acceleration":-0.25,"angular_acceleration":0.0},{"index":3,"delta_time":3.0,"time":3.0,"x":0.0,"y":1.0,"angle":0.0,"x_velocity":-0.5,"y_velocity":-0.5,"angular_velocity":0.0,"x_acceleration":0.125,"y_acceleration":-0.125,"angular_acceleration":0.0},{"index":4,"delta_time":4.0,"time":4.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0}],"sampled_points":[{"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"time":0.01,"x":0.000007824193750000002,"y":-0.0000019038937500000005,"angle":0.0,"x_velocity":0.002335971875,"y_velocity":-0.0005678218750000001,"angular_velocity":0.0,"x_acceleration":0.46268875000000004,"y_acceleration":-0.11222874999999999,"angular_acceleration":0.0},{"time":0.02,"x":0.00006169420000000001,"y":-0.000014964600000000004,"angle":0.0,"x_velocity":0.00916455,"y_velocity":-0.0022181500000000003,"angular_velocity":0.0,"x_acceleration":0.89861,"y_acceleration":-0.21653,"angular_acceleration":0.0},{"time":0.03,"x":0.00020520658124999997,"y":-0.000049613681249999996,"angle":0.0,"x_velocity":0.020220721875000004,"y_velocity":-0.004872571875,"angular_velocity":0.0,"x_acceleration":1.3082962500000002,"y_acceleration":-0.31307625,"angular_acceleration":0.0},{"time":0.04,"x":0.0004793344000000001,"y":-0.00011550720000000003,"angle":0.0,"x_velocity":0.03524480000000001,"y_velocity":-0.0084544,"angular_velocity":0.0,"x_acceleration":1.69228,"y_acceleration":-0.40203999999999995,"angular_acceleration":0.0},{"time":0.05,"x":0.0009224804687500002,"y":-0.00022154296875000003,"angle":0.0,"x_velocity":0.05398242187500001,"y_velocity":-0.012888671875000002,"angular_velocity":0.0,"x_acceleration":2.0510937500000006,"y_acceleration":-0.48359375000000004,"angular_acceleration":0.0},{"time":0.060000000000000005,"x":0.0015705306000000005,"y":-0.00037587780000000016,"angle":0.0,"x_velocity":0.07618455000000002,"y_velocity":-0.018102150000000004,"angular_velocity":0.0,"x_acceleration":2.3852700000000002,"y_acceleration":-0.5579100000000001,"angular_acceleration":0.0},{"time":0.07,"x":0.00245690685625,"y":-0.0005859447562500001,"angle":0.0,"x_velocity":0.10160747187500001,"y_velocity":-0.024023321875000003,"angular_velocity":0.0,"x_acceleration":2.6953412500000002,"y_acceleration":-0.6251612500000001,"angular_acceleration":0.0},{"time":0.08,"x":0.0036126208000000007,"y":-0.0008584704000000003,"angle":0.0,"x_velocity":0.13001279999999998,"y_velocity":-0.030582400000000003,"angular_velocity":0.0,"x_acceleration":2.98184,"y_acceleration":-0.6855199999999998,"angular_acceleration":0.0},{"time":0.09,"x":0.00506632674375,"y":-0.00119949204375,"angle":0.0,"x_velocity":0.161167471875,"y_velocity":-0.037711321875,"angular_velocity":0.0,"x_acceleration":3.24529875,"y_acceleration":-0.7391587500000002,"angular_acceleration":0.0},{"time":0.09999999999999999,"x":0.006844374999999999,"y":-0.0016143749999999997,"angle":0.0,"x_velocity":0.19484374999999998,"y_velocity":-0.04534374999999999,"angular_velocity":0.0,"x_acceleration":3.4862500000000005,"y_acceleration":-0.7862499999999999,"angular_acceleration":0.0},{"time":0.10999999999999999,"x":0.008970865131249997,"y":-0.0021078298312499993,"angle":0.0,"x_velocity":0.23081922187499998,"y_velocity":-0.053415071874999984,"angular_velocity":0.0,"x_acceleration":3.70522625,"y_acceleration":-0.8269662499999999,"angular_acceleration":0.0},{"time":0.11999999999999998,"x":0.011467699199999995,"y":-0.0026839295999999987,"angle":0.0,"x_velocity":0.26887679999999997,"y_velocity":-0.06186239999999999,"angular_velocity":0.0,"x_acceleration":3.90276,"y_acceleration":-0.8614799999999999,"angular_acceleration":0.0},{"time":0.12999999999999998,"x":0.014354635018749992,"y":-0.003346127118749998,"angle":0.0,"x_velocity":0.3088047218749999,"y_velocity":-0.07062457187499999,"angular_velocity":0.0,"x_acceleration":4.079383749999999,"y_acceleration":-0.8899637499999997,"angular_acceleration":0.0},{"time":0.13999999999999999,"x":0.01764933939999999,"y":-0.004097272199999998,"angle":0.0,"x_velocity":0.35039655,"y_velocity":-0.07964215000000001,"angular_velocity":0.0,"x_acceleration":4.235629999999999,"y_acceleration":-0.9125899999999999,"angular_acceleration":0.0},{"time":0.15,"x":0.02136744140625,"y":-0.004939628906249999,"angle":0.0,"x_velocity":0.393451171875,"y_velocity":-0.08885742187500001,"angular_velocity":0.0,"x_acceleration":4.372031249999999,"y_acceleration":-0.9295312499999998,"angular_acceleration":0.0},{"time":0.16,"x":0.02552258560000001,"y":-0.0058748928000000025,"angle":0.0,"x_velocity":0.4377728,"y_velocity":-0.09821440000000001,"angular_velocity":0.0,"x_acceleration":4.489120000000001,"y_acceleration":-0.9409599999999998,"angular_acceleration":0.0},{"time":0.17,"x":0.03012648529375001,"y":-0.006904208193750002,"angle":0.0,"x_velocity":0.483170971875,"y_velocity":-0.107658821875,"angular_velocity":0.0,"x_acceleration":4.587428749999999,"y_acceleration":-0.9470487499999999,"angular_acceleration":0.0},{"time":0.18000000000000002,"x":0.03518897580000001,"y":-0.0080281854,"angle":0.0,"x_velocity":0.52946055,"y_velocity":-0.11713815000000001,"angular_velocity":0.0,"x_acceleration":4.66749,"y_acceleration":-0.9479700000000002,"angular_acceleration":0.0},{"time":0.19000000000000003,"x":0.040718067681250025,"y":-0.009246917981250003,"angle":0.0,"x_velocity":0.5764617218750001,"y_velocity":-0.12660157187500004,"angular_velocity":0.0,"x_acceleration":4.729836250000001,"y_acceleration":-0.9438962499999999,"angular_acceleration":0.0},{"time":0.20000000000000004,"x":0.04672000000000002,"y":-0.010560000000000003,"angle":0.0,"x_velocity":0.6240000000000002,"y_velocity":-0.13600000000000004,"angular_velocity":0.0,"x_acceleration":4.775,"y_acceleration":-0.9349999999999995,"angular_acceleration":0.0},{"time":0.21000000000000005,"x":0.05319929356875004,"y":-0.011966543268750008,"angle":0.0,"x_velocity":0.671906221875,"y_velocity":-0.14528607187500003,"angular_velocity":0.0,"x_acceleration":4.8035137500000005,"y_acceleration":-0.92145375,"angular_acceleration":0.0},{"time":0.22000000000000006,"x":0.06015880420000005,"y":-0.01346519460000001,"angle":0.0,"x_velocity":0.7200165500000004,"y_velocity":-0.15441415000000008,"angular_velocity":0.0,"x_acceleration":4.81591,"y_acceleration":-0.9034299999999997,"angular_acceleration":0.0},{"time":0.23000000000000007,"x":0.06759977595625005,"y":-0.01505415305625001,"angle":0.0,"x_velocity":0.7681724718750003,"y_velocity":-0.16334032187500003,"angular_velocity":0.0,"x_acceleration":4.81272125,"y_acceleration":-0.8811012499999997,"angular_acceleration":0.0},{"time":0.24000000000000007,"x":0.07552189440000005,"y":-0.01673118720000001,"angle":0.0,"x_velocity":0.8162208000000004,"y_velocity":-0.17202240000000002,"angular_velocity":0.0,"x_acceleration":4.79448,"y_acceleration":-0.8546400000000002,"angular_acceleration":0.0},{"time":0.25000000000000006,"x":0.08392333984375004,"y":-0.018493652343750007,"angle":0.0,"x_velocity":0.8640136718750003,"y_velocity":-0.18041992187500006,"angular_velocity":0.0,"x_acceleration":4.761718750000001,"y_acceleration":-0.8242187499999999,"angular_acceleration":0.0},{"time":0.26000000000000006,"x":0.09280084060000006,"y":-0.020338507800000006,"angle":0.0,"x_velocity":0.9114085500000003,"y_velocity":-0.18849415000000008,"angular_velocity":0.0,"x_acceleration":4.71497,"y_acceleration":-0.7900099999999999,"angular_acceleration":0.0},{"time":0.2700000000000001,"x":0.10214972623125003,"y":-0.02226233413125001,"angle":0.0,"x_velocity":0.9582682218750006,"y_velocity":-0.19620807187500006,"angular_velocity":0.0,"x_acceleration":4.654766249999999,"y_acceleration":-0.7521862500000001,"angular_acceleration":0.0},{"time":0.2800000000000001,"x":0.11196398080000004,"y":-0.024261350400000013,"angle":0.0,"x_velocity":1.0044608000000006,"y_velocity":-0.2035264000000001,"angular_velocity":0.0,"x_acceleration":4.58164,"y_acceleration":-0.7109200000000001,"angular_acceleration":0.0},{"time":0.2900000000000001,"x":0.12223629611875007,"y":-0.026331431418750016,"angle":0.0,"x_velocity":1.0498597218750005,"y_velocity":-0.21041557187500004,"angular_velocity":0.0,"x_acceleration":4.496123750000001,"y_acceleration":-0.66638375,"angular_acceleration":0.0},{"time":0.3000000000000001,"x":0.13295812500000012,"y":-0.028468125000000025,"angle":0.0,"x_velocity":1.0943437500000002,"y_velocity":-0.21684375000000009,"angular_velocity":0.0,"x_acceleration":4.398749999999998,"y_acceleration":-0.6187499999999998,"angular_acceleration":0.0},{"time":0.3100000000000001,"x":0.14411973450625012,"y":-0.030666669206250028,"angle":0.0,"x_velocity":1.1377969718750007,"y_velocity":-0.22278082187500015,"angular_velocity":0.0,"x_acceleration":4.290051249999998,"y_acceleration":-0.5681912499999997,"angular_acceleration":0.0},{"time":0.3200000000000001,"x":0.15571025920000012,"y":-0.03292200960000001,"angle":0.0,"x_velocity":1.1801088000000006,"y_velocity":-0.2281984000000002,"angular_velocity":0.0,"x_acceleration":4.170559999999998,"y_acceleration":-0.5148799999999991,"angular_acceleration":0.0},{"time":0.3300000000000001,"x":0.16771775439375017,"y":-0.03522881649375002,"angle":0.0,"x_velocity":1.221173971875,"y_velocity":-0.233069821875,"angular_velocity":0.0,"x_acceleration":4.040808750000002,"y_acceleration":-0.45898875000000006,"angular_acceleration":0.0},{"time":0.34000000000000014,"x":0.18012924940000014,"y":-0.03758150220000003,"angle":0.0,"x_velocity":1.2608925500000003,"y_velocity":-0.23737015000000006,"angular_velocity":0.0,"x_acceleration":3.9013299999999975,"y_acceleration":-0.40068999999999977,"angular_acceleration":0.0},{"time":0.35000000000000014,"x":0.19293080078125016,"y":-0.03997423828125003,"angle":0.0,"x_velocity":1.2991699218750004,"y_velocity":-0.241076171875,"angular_velocity":0.0,"x_acceleration":3.752656249999999,"y_acceleration":-0.3401562500000006,"angular_acceleration":0.0},{"time":0.36000000000000015,"x":0.20610754560000016,"y":-0.042400972800000034,"angle":0.0,"x_velocity":1.3359168000000003,"y_velocity":-0.24416640000000012,"angular_velocity":0.0,"x_acceleration":3.5953199999999974,"y_acceleration":-0.27755999999999936,"angular_acceleration":0.0},{"time":0.37000000000000016,"x":0.21964375466875025,"y":-0.04485544756875005,"angle":0.0,"x_velocity":1.3710492218750008,"y_velocity":-0.246621071875,"angular_velocity":0.0,"x_acceleration":3.429853749999996,"y_acceleration":-0.21307374999999862,"angular_acceleration":0.0},{"time":0.38000000000000017,"x":0.23352288580000027,"y":-0.04733121540000006,"angle":0.0,"x_velocity":1.4044885500000008,"y_velocity":-0.24842214999999995,"angular_velocity":0.0,"x_acceleration":3.256789999999997,"y_acceleration":-0.14686999999999872,"angular_acceleration":0.0},{"time":0.3900000000000002,"x":0.24772763705625028,"y":-0.049821657356250056,"angle":0.0,"x_velocity":1.4361614718750009,"y_velocity":-0.24955332187500004,"angular_velocity":0.0,"x_acceleration":3.076661249999998,"y_acceleration":-0.07912124999999848,"angular_acceleration":0.0},{"time":0.4000000000000002,"x":0.2622400000000002,"y":-0.052320000000000026,"angle":0.0,"x_velocity":1.4660000000000004,"y_velocity":-0.2500000000000001,"angular_velocity":0.0,"x_acceleration":2.8900000000000006,"y_acceleration":-0.009999999999998677,"angular_acceleration":0.0},{"time":0.4100000000000002,"x":0.2770413129437504,"y":-0.054819332643750066,"angle":0.0,"x_velocity":1.4939414718750008,"y_velocity":-0.24974932187499993,"angular_velocity":0.0,"x_acceleration":2.6973387499999957,"y_acceleration":0.06032125000000166,"angular_acceleration":0.0},{"time":0.4200000000000002,"x":0.2921123142000004,"y":-0.057312624600000056,"angle":0.0,"x_velocity":1.5199285500000006,"y_velocity":-0.24879015000000018,"angular_velocity":0.0,"x_acceleration":2.4992099999999953,"y_acceleration":0.1316700000000015,"angular_acceleration":0.0},{"time":0.4300000000000002,"x":0.30743319533125035,"y":-0.059792742431250066,"angle":0.0,"x_velocity":1.5439092218750008,"y_velocity":-0.2471130718749998,"angular_velocity":0.0,"x_acceleration":2.2961462499999987,"y_acceleration":0.20387375000000096,"angular_acceleration":0.0},{"time":0.4400000000000002,"x":0.32298365440000026,"y":-0.06225246720000004,"angle":0.0,"x_velocity":1.5658368000000007,"y_velocity":-0.24471039999999994,"angular_velocity":0.0,"x_acceleration":2.0886799999999974,"y_acceleration":0.27676000000000034,"angular_acceleration":0.0},{"time":0.45000000000000023,"x":0.33874294921875037,"y":-0.06468451171875003,"angle":0.0,"x_velocity":1.5856699218750003,"y_velocity":-0.2415761718749999,"angular_velocity":0.0,"x_acceleration":1.877343749999996,"y_acceleration":0.35015625000000217,"angular_acceleration":0.0},{"time":0.46000000000000024,"x":0.3546899506000004,"y":-0.06708153780000006,"angle":0.0,"x_velocity":1.603372550000001,"y_velocity":-0.23770614999999978,"angular_velocity":0.0,"x_acceleration":1.6626699999999968,"y_acceleration":0.4238900000000023,"angular_acceleration":0.0},{"time":0.47000000000000025,"x":0.3708031956062504,"y":-0.06943617350625005,"angle":0.0,"x_velocity":1.6189139718750007,"y_velocity":-0.2330978218749999,"angular_velocity":0.0,"x_acceleration":1.445191249999997,"y_acceleration":0.49778875000000156,"angular_acceleration":0.0},{"time":0.48000000000000026,"x":0.38706094080000036,"y":-0.07174103040000007,"angle":0.0,"x_velocity":1.6322688000000005,"y_velocity":-0.2277503999999998,"angular_velocity":0.0,"x_acceleration":1.2254399999999972,"y_acceleration":0.5716800000000011,"angular_acceleration":0.0},{"time":0.49000000000000027,"x":0.40344121549375034,"y":-0.07398872079375005,"angle":0.0,"x_velocity":1.6434169718750011,"y_velocity":-0.22166482187500003,"angular_velocity":0.0,"x_acceleration":1.0039487499999904,"y_acceleration":0.6453912500000021,"angular_acceleration":0.0},{"time":0.5000000000000002,"x":0.41992187500000044,"y":-0.07617187500000004,"angle":0.0,"x_velocity":1.6523437499999998,"y_velocity":-0.2148437499999999,"angular_velocity":0.0,"x_acceleration":0.7812499999999982,"y_acceleration":0.7187500000000009,"angular_acceleration":0.0},{"time":0.5100000000000002,"x":0.43648065388125046,"y":-0.07828315858125005,"angle":0.0,"x_velocity":1.6590397218749997,"y_velocity":-0.20729157187499958,"angular_velocity":0.0,"x_acceleration":0.5578762499999979,"y_acceleration":0.7915837500000014,"angular_acceleration":0.0},{"time":0.5200000000000002,"x":0.4530952192000004,"y":-0.08031528960000006,"angle":0.0,"x_velocity":1.6635008,"y_velocity":-0.19901439999999992,"angular_velocity":0.0,"x_acceleration":0.33435999999998955,"y_acceleration":0.8637200000000025,"angular_acceleration":0.0},{"time":0.5300000000000002,"x":0.4697432237687505,"y":-0.08226105586875002,"angle":0.0,"x_velocity":1.6657282218749998,"y_velocity":-0.19002007187499992,"angular_velocity":0.0,"x_acceleration":0.11123374999999491,"y_acceleration":0.9349862500000024,"angular_acceleration":0.0},{"time":0.5400000000000003,"x":0.48640235940000054,"y":-0.08411333220000008,"angle":0.0,"x_velocity":1.6657285499999996,"y_velocity":-0.18031814999999962,"angular_velocity":0.0,"x_acceleration":-0.11097000000000534,"y_acceleration":1.0052100000000008,"angular_acceleration":0.0},{"time":0.5500000000000003,"x":0.5030504101562503,"y":-0.08586509765625,"angle":0.0,"x_velocity":1.6635136718750014,"y_velocity":-0.16991992187499994,"angular_velocity":0.0,"x_acceleration":-0.33171875000001094,"y_acceleration":1.0742187500000018,"angular_acceleration":0.0},{"time":0.5600000000000003,"x":0.5196653056000005,"y":-0.08750945280000005,"angle":0.0,"x_velocity":1.6591007999999996,"y_velocity":-0.15883839999999982,"angular_velocity":0.0,"x_acceleration":-0.550480000000011,"y_acceleration":1.1418400000000029,"angular_acceleration":0.0},{"time":0.5700000000000003,"x":0.5362251740437505,"y":-0.08903963694375008,"angle":0.0,"x_velocity":1.6525124718749997,"y_velocity":-0.14708832187499954,"angular_velocity":0.0,"x_acceleration":-0.7667212500000034,"y_acceleration":1.2079012500000017,"angular_acceleration":0.0},{"time":0.5800000000000003,"x":0.5527083958000004,"y":-0.09044904540000007,"angle":0.0,"x_velocity":1.6437765500000006,"y_velocity":-0.13468614999999984,"angular_velocity":0.0,"x_acceleration":-0.9799100000000145,"y_acceleration":1.272230000000004,"angular_acceleration":0.0},{"time":0.5900000000000003,"x":0.5690936564312505,"y":-0.09173124673124998,"angle":0.0,"x_velocity":1.6329262218750014,"y_velocity":-0.12165007187499977,"angular_velocity":0.0,"x_acceleration":-1.1895137500000104,"y_acceleration":1.3346537500000037,"angular_acceleration":0.0},{"time":0.6000000000000003,"x":0.5853600000000004,"y":-0.09288000000000005,"angle":0.0,"x_velocity":1.6199999999999992,"y_velocity":-0.1080000000000001,"angular_velocity":0.0,"x_acceleration":-1.3950000000000067,"y_acceleration":1.3950000000000031,"angular_acceleration":0.0},{"time":0.6100000000000003,"x":0.6014868823187505,"y":-0.09388927201875008,"angle":0.0,"x_velocity":1.6050417218750002,"y_velocity":-0.09375757187499945,"angular_velocity":0.0,"x_acceleration":-1.5958362500000085,"y_acceleration":1.4530962500000015,"angular_acceleration":0.0},{"time":0.6200000000000003,"x":0.6174542242000005,"y":-0.09475325460000003,"angle":0.0,"x_velocity":1.5881005500000005,"y_velocity":-0.07894615000000016,"angular_velocity":0.0,"x_acceleration":-1.7914900000000138,"y_acceleration":1.5087700000000055,"angular_acceleration":0.0},{"time":0.6300000000000003,"x":0.6332424647062505,"y":-0.09546638180624994,"angle":0.0,"x_velocity":1.5692309718749988,"y_velocity":-0.0635908218749992,"angular_velocity":0.0,"x_acceleration":-1.9814287500000027,"y_acceleration":1.5618487500000011,"angular_acceleration":0.0},{"time":0.6400000000000003,"x":0.6488326144000007,"y":-0.0960233472,"angle":0.0,"x_velocity":1.5484927999999996,"y_velocity":-0.04771839999999994,"angular_velocity":0.0,"x_acceleration":-2.1651200000000124,"y_acceleration":1.6121600000000038,"angular_acceleration":0.0},{"time":0.6500000000000004,"x":0.6642063085937505,"y":-0.09641912109375003,"angle":0.0,"x_velocity":1.5259511718749983,"y_velocity":-0.0313574218749999,"angular_velocity":0.0,"x_acceleration":-2.3420312500000087,"y_acceleration":1.6595312500000032,"angular_acceleration":0.0},{"time":0.6600000000000004,"x":0.6793458606000006,"y":-0.09664896780000001,"angle":0.0,"x_velocity":1.501676549999999,"y_velocity":-0.014538149999999472,"angular_velocity":0.0,"x_acceleration":-2.5116300000000074,"y_acceleration":1.703790000000005,"angular_acceleration":0.0},{"time":0.6700000000000004,"x":0.6942343149812505,"y":-0.0967084628812501,"angle":0.0,"x_velocity":1.4757447218749995,"y_velocity":0.002707428125000133,"angular_velocity":0.0,"x_acceleration":-2.6733837500000064,"y_acceleration":1.7447637500000024,"angular_acceleration":0.0},{"time":0.6800000000000004,"x":0.7088555008000001,"y":-0.09659351040000005,"angle":0.0,"x_velocity":1.4482367999999974,"y_velocity":0.020345600000001296,"angular_velocity":0.0,"x_acceleration":-2.8267600000000073,"y_acceleration":1.7822800000000019,"angular_acceleration":0.0},{"time":0.6900000000000004,"x":0.7231940848687501,"y":-0.09630036016874996,"angle":0.0,"x_velocity":1.4192392218749985,"y_velocity":0.03834092812500112,"angular_velocity":0.0,"x_acceleration":-2.9712262500000044,"y_acceleration":1.8161662500000002,"angular_acceleration":0.0},{"time":0.7000000000000004,"x":0.7372356250000003,"y":-0.09582562500000003,"angle":0.0,"x_velocity":1.3888437499999968,"y_velocity":0.05665625000000074,"angular_velocity":0.0,"x_acceleration":-3.106250000000003,"y_acceleration":1.846249999999996,"angular_acceleration":0.0},{"time":0.7100000000000004,"x":0.7509666232562502,"y":-0.09516629795624987,"angle":0.0,"x_velocity":1.357147471874999,"y_velocity":0.07525267812500047,"angular_velocity":0.0,"x_acceleration":-3.231298750000004,"y_acceleration":1.8723587499999983,"angular_acceleration":0.0},{"time":0.7200000000000004,"x":0.7643745792000006,"y":-0.09431976960000005,"angle":0.0,"x_velocity":1.3242527999999973,"y_velocity":0.09408960000000133,"angular_velocity":0.0,"x_acceleration":-3.3458400000000097,"y_acceleration":1.8943200000000004,"angular_acceleration":0.0},{"time":0.7300000000000004,"x":0.7774480431437502,"y":-0.09328384524374983,"angle":0.0,"x_velocity":1.2902674718749987,"y_velocity":0.11312467812500016,"angular_velocity":0.0,"x_acceleration":-3.4493412500000034,"y_acceleration":1.9119612499999992,"angular_acceleration":0.0},{"time":0.7400000000000004,"x":0.7901766694,"y":-0.09205676219999998,"angle":0.0,"x_velocity":1.2553045500000017,"y_velocity":0.13231385000000007,"angular_velocity":0.0,"x_acceleration":-3.5412700000000186,"y_acceleration":1.9251100000000019,"angular_acceleration":0.0},{"time":0.7500000000000004,"x":0.8025512695312504,"y":-0.09063720703124989,"angle":0.0,"x_velocity":1.2194824218749982,"y_velocity":0.1516113281250009,"angular_velocity":0.0,"x_acceleration":-3.621093749999993,"y_acceleration":1.93359375,"angular_acceleration":0.0},{"time":0.7600000000000005,"x":0.8145638655999998,"y":-0.08902433279999977,"angle":0.0,"x_velocity":1.1829247999999994,"y_velocity":0.17096960000000117,"angular_velocity":0.0,"x_acceleration":-3.688279999999992,"y_acceleration":1.9372399999999992,"angular_acceleration":0.0},{"time":0.7700000000000005,"x":0.8262077434187507,"y":-0.08721777631875,"angle":0.0,"x_velocity":1.145760721874999,"y_velocity":0.19033942812500015,"angular_velocity":0.0,"x_acceleration":-3.7422962500000096,"y_acceleration":1.9358762500000033,"angular_acceleration":0.0},{"time":0.7800000000000005,"x":0.8374775058000006,"y":-0.0852176753999998,"angle":0.0,"x_velocity":1.1081245499999977,"y_velocity":0.20966985000000093,"angular_velocity":0.0,"x_acceleration":-3.782609999999991,"y_acceleration":1.9293299999999967,"angular_acceleration":0.0},{"time":0.7900000000000005,"x":0.8483691258062505,"y":-0.08302468610624991,"angle":0.0,"x_velocity":1.0701559718749962,"y_velocity":0.22890817812500108,"angular_velocity":0.0,"x_acceleration":-3.8086887499999946,"y_acceleration":1.9174287499999974,"angular_acceleration":0.0},{"time":0.8000000000000005,"x":0.8588799999999999,"y":-0.08063999999999982,"angle":0.0,"x_velocity":1.0319999999999983,"y_velocity":0.24800000000000066,"angular_velocity":0.0,"x_acceleration":-3.8200000000000074,"y_acceleration":1.900000000000004,"angular_acceleration":0.0},{"time":0.8100000000000005,"x":0.8690090016937504,"y":-0.07806536139374998,"angle":0.0,"x_velocity":0.9938069718749993,"y_velocity":0.26688917812500046,"angular_velocity":0.0,"x_acceleration":-3.8160112500000025,"y_acceleration":1.8768712500000007,"angular_acceleration":0.0},{"time":0.8200000000000005,"x":0.878756534200001,"y":-0.0753030845999999,"angle":0.0,"x_velocity":0.9557325499999987,"y_velocity":0.28551785000000107,"angular_velocity":0.0,"x_acceleration":-3.796190000000003,"y_acceleration":1.8478700000000003,"angular_acceleration":0.0},{"time":0.8300000000000005,"x":0.8881245840812502,"y":-0.07235607118124976,"angle":0.0,"x_velocity":0.9179377218749991,"y_velocity":0.3038264281249998,"angular_velocity":0.0,"x_acceleration":-3.7600037500000028,"y_acceleration":1.8128237499999997,"angular_acceleration":0.0},{"time":0.8400000000000005,"x":0.8971167744000004,"y":-0.06922782719999987,"angle":0.0,"x_velocity":0.8805887999999982,"y_velocity":0.32175360000000053,"angular_velocity":0.0,"x_acceleration":-3.7069199999999967,"y_acceleration":1.771560000000001,"angular_acceleration":0.0},{"time":0.8500000000000005,"x":0.90573841796875,"y":-0.0659224804687496,"angle":0.0,"x_velocity":0.8438574218749988,"y_velocity":0.33923632812500015,"angular_velocity":0.0,"x_acceleration":-3.636406249999986,"y_acceleration":1.7239062499999953,"angular_acceleration":0.0},{"time":0.8600000000000005,"x":0.9139965706000002,"y":-0.062444797799999785,"angle":0.0,"x_velocity":0.8079205500000004,"y_velocity":0.35620984999999994,"angular_velocity":0.0,"x_acceleration":-3.5479299999999725,"y_acceleration":1.6696899999999921,"angular_acceleration":0.0},{"time":0.8700000000000006,"x":0.9219000843562499,"y":-0.0588002022562496,"angle":0.0,"x_velocity":0.7729604718750043,"y_velocity":0.37260767812500006,"angular_velocity":0.0,"x_acceleration":-3.44095875,"y_acceleration":1.608738749999997,"angular_acceleration":0.0},{"time":0.8800000000000006,"x":0.9294596608000001,"y":-0.05499479039999966,"angle":0.0,"x_velocity":0.7391648000000011,"y_velocity":0.38836159999999964,"angular_velocity":0.0,"x_acceleration":-3.314959999999992,"y_acceleration":1.5408800000000014,"angular_acceleration":0.0},{"time":0.8900000000000006,"x":0.9366879042437501,"y":-0.051035349543749886,"angle":0.0,"x_velocity":0.7067264718749957,"y_velocity":0.40340167812500116,"angular_velocity":0.0,"x_acceleration":-3.1694012499999857,"y_acceleration":1.4659412499999966,"angular_acceleration":0.0},{"time":0.9000000000000006,"x":0.9435993750000007,"y":-0.046929374999999496,"angle":0.0,"x_velocity":0.6758437500000003,"y_velocity":0.4176562500000012,"angular_velocity":0.0,"x_acceleration":-3.0037499999999966,"y_acceleration":1.3837499999999956,"angular_acceleration":0.0},{"time":0.9100000000000006,"x":0.9502106426312498,"y":-0.04268508733124987,"angle":0.0,"x_velocity":0.6467202218750003,"y_velocity":0.43105192812499915,"angular_velocity":0.0,"x_acceleration":-2.8174737499999907,"y_acceleration":1.2941337499999932,"angular_acceleration":0.0},{"time":0.9200000000000006,"x":0.9565403392000009,"y":-0.03831144959999955,"angle":0.0,"x_velocity":0.6195647999999974,"y_velocity":0.4435136000000002,"angular_velocity":0.0,"x_acceleration":-2.6100399999999837,"y_acceleration":1.196919999999995,"angular_acceleration":0.0},{"time":0.9300000000000006,"x":0.9626092125187493,"y":-0.033818184618749525,"angle":0.0,"x_velocity":0.5945917218749983,"y_velocity":0.4549644281249998,"angular_velocity":0.0,"x_acceleration":-2.3809162499999985,"y_acceleration":1.0919362499999892,"angular_acceleration":0.0},{"time":0.9400000000000006,"x":0.9684401794000013,"y":-0.02921579219999959,"angle":0.0,"x_velocity":0.5720205499999977,"y_velocity":0.46532585000000104,"angular_velocity":0.0,"x_acceleration":-2.129569999999987,"y_acceleration":0.9790099999999882,"angular_acceleration":0.0},{"time":0.9500000000000006,"x":0.9740583789062511,"y":-0.024515566406249967,"angle":0.0,"x_velocity":0.5520761718750009,"y_velocity":0.47451757812499995,"angular_velocity":0.0,"x_acceleration":-1.8554687499999858,"y_acceleration":0.8579687499999906,"angular_acceleration":0.0},{"time":0.9600000000000006,"x":0.9794912256000008,"y":-0.01972961279999974,"angle":0.0,"x_velocity":0.5349888000000007,"y_velocity":0.4824576000000018,"angular_velocity":0.0,"x_acceleration":-1.5580799999999897,"y_acceleration":0.7286399999999951,"angular_acceleration":0.0},{"time":0.9700000000000006,"x":0.9847684627937499,"y":-0.014870865693749513,"angle":0.0,"x_velocity":0.5209939718750007,"y_velocity":0.48906217812499975,"angular_velocity":0.0,"x_acceleration":-1.236871249999993,"y_acceleration":0.590851249999993,"angular_acceleration":0.0},{"time":0.9800000000000006,"x":0.989922215800001,"y":-0.00995310539999994,"angle":0.0,"x_velocity":0.5103325500000011,"y_velocity":0.49424585000000043,"angular_velocity":0.0,"x_acceleration":-0.8913099999999758,"y_acceleration":0.4444299999999899,"angular_acceleration":0.0},{"time":0.9900000000000007,"x":0.9949870451812508,"y":-0.004990975481249826,"angle":0.0,"x_velocity":0.503250721875002,"y_velocity":0.4979214281249993,"angular_velocity":0.0,"x_acceleration":-0.5208637499999895,"y_acceleration":0.28920374999999154,"angular_acceleration":0.0},{"time":1.0000000000000007,"x":1.0000000000000004,"y":3.33066907387547e-16,"angle":0.0,"x_velocity":0.4999999999999999,"y_velocity":0.5000000000000001,"angular_velocity":0.0,"x_acceleration":-0.12500000000000375,"y_acceleration":0.12500000000001874,"angular_acceleration":0.0},{"time":1.0100000000000007,"x":1.0049928181187504,"y":0.0050108671562503395,"angle":0.0,"x_velocity":0.4984709968749999,"y_velocity":0.5026281406250003,"angular_velocity":0.0,"x_acceleration":-0.1805762500000037,"y_acceleration":0.3978312500000179,"angular_acceleration":0.0},{"time":1.0200000000000007,"x":1.0099675898000002,"y":0.01006137900000035,"angle":0.0,"x_velocity":0.4963929499999999,"y_velocity":0.5079012500000004,"angular_velocity":0.0,"x_acceleration":-0.23481000000000368,"y_acceleration":0.6540500000000169,"angular_acceleration":0.0},{"time":1.0300000000000007,"x":1.0149188916062502,"y":0.015177160218750357,"angle":0.0,"x_velocity":0.4937792468749998,"y_velocity":0.5156548906250007,"angular_velocity":0.0,"x_acceleration":-0.2877087500000036,"y_acceleration":0.8939937500000161,"angular_acceleration":0.0},{"time":1.0400000000000007,"x":1.0198414336000003,"y":0.02038220800000037,"angle":0.0,"x_velocity":0.4906431999999997,"y_velocity":0.5257280000000008,"angular_velocity":0.0,"x_acceleration":-0.33928000000000363,"y_acceleration":1.1180000000000152,"angular_acceleration":0.0},{"time":1.0500000000000007,"x":1.0247300585937502,"y":0.025698925781250385,"angle":0.0,"x_velocity":0.4869980468749997,"y_velocity":0.537962890625001,"angular_velocity":0.0,"x_acceleration":-0.38953125000000355,"y_acceleration":1.3264062500000142,"angular_acceleration":0.0},{"time":1.0600000000000007,"x":1.0295797414000003,"y":0.0311481570000004,"angle":0.0,"x_velocity":0.4828569499999998,"y_velocity":0.5522052500000011,"angular_velocity":0.0,"x_acceleration":-0.4384700000000034,"y_acceleration":1.5195500000000133,"angular_acceleration":0.0},{"time":1.0700000000000007,"x":1.0343855880812505,"y":0.03674921884375042,"angle":0.0,"x_velocity":0.47823299687499965,"y_velocity":0.5683041406250011,"angular_velocity":0.0,"x_acceleration":-0.4861037500000034,"y_acceleration":1.6977687500000123,"angular_acceleration":0.0},{"time":1.0800000000000007,"x":1.0391428352000005,"y":0.04251993600000043,"angle":0.0,"x_velocity":0.4731391999999996,"y_velocity":0.5861120000000014,"angular_velocity":0.0,"x_acceleration":-0.5324400000000034,"y_acceleration":1.8614000000000117,"angular_acceleration":0.0},{"time":1.0900000000000007,"x":1.0438468490687505,"y":0.048476674406250454,"angle":0.0,"x_velocity":0.4675884968749996,"y_velocity":0.6054846406250015,"angular_velocity":0.0,"x_acceleration":-0.5774862500000033,"y_acceleration":2.0107812500000106,"angular_acceleration":0.0},{"time":1.1000000000000008,"x":1.0484931250000002,"y":0.05463437500000048,"angle":0.0,"x_velocity":0.4615937499999996,"y_velocity":0.6262812500000016,"angular_velocity":0.0,"x_acceleration":-0.6212500000000032,"y_acceleration":2.14625000000001,"angular_acceleration":0.0},{"time":1.1100000000000008,"x":1.0530772865562505,"y":0.0610065874687505,"angle":0.0,"x_velocity":0.4551677468749995,"y_velocity":0.6483643906250018,"angular_velocity":0.0,"x_acceleration":-0.6637387500000033,"y_acceleration":2.2681437500000086,"angular_acceleration":0.0},{"time":1.1200000000000008,"x":1.0575950848000009,"y":0.06760550400000054,"angle":0.0,"x_velocity":0.4483231999999994,"y_velocity":0.6716000000000018,"angular_velocity":0.0,"x_acceleration":-0.7049600000000031,"y_acceleration":2.376800000000008,"angular_acceleration":0.0},{"time":1.1300000000000008,"x":1.0620423975437503,"y":0.07444199303125054,"angle":0.0,"x_velocity":0.44107274687499937,"y_velocity":0.695857390625002,"angular_velocity":0.0,"x_acceleration":-0.7449212500000031,"y_acceleration":2.4725562500000073,"angular_acceleration":0.0},{"time":1.1400000000000008,"x":1.0664152286000004,"y":0.08152563300000057,"angle":0.0,"x_velocity":0.4334289499999994,"y_velocity":0.721009250000002,"angular_velocity":0.0,"x_acceleration":-0.7836300000000029,"y_acceleration":2.555750000000006,"angular_acceleration":0.0},{"time":1.1500000000000008,"x":1.0707097070312503,"y":0.0888647460937506,"angle":0.0,"x_velocity":0.42540429687499937,"y_velocity":0.7469316406250021,"angular_velocity":0.0,"x_acceleration":-0.821093750000003,"y_acceleration":2.6267187500000055,"angular_acceleration":0.0},{"time":1.1600000000000008,"x":1.0749220864000004,"y":0.09646643200000064,"angle":0.0,"x_velocity":0.41701119999999925,"y_velocity":0.7735040000000021,"angular_velocity":0.0,"x_acceleration":-0.857320000000003,"y_acceleration":2.685800000000005,"angular_acceleration":0.0},{"time":1.1700000000000008,"x":1.0790487440187504,"y":0.10433660165625065,"angle":0.0,"x_velocity":0.4082619968749993,"y_velocity":0.8006091406250022,"angular_velocity":0.0,"x_acceleration":-0.8923162500000029,"y_acceleration":2.7333312500000035,"angular_acceleration":0.0},{"time":1.1800000000000008,"x":1.0830861802000002,"y":0.11248001100000067,"angle":0.0,"x_velocity":0.39916894999999925,"y_velocity":0.8281332500000024,"angular_velocity":0.0,"x_acceleration":-0.9260900000000027,"y_acceleration":2.769650000000002,"angular_acceleration":0.0},{"time":1.1900000000000008,"x":1.0870310175062503,"y":0.1209002947187507,"angle":0.0,"x_velocity":0.3897442468749992,"y_velocity":0.8559658906250025,"angular_velocity":0.0,"x_acceleration":-0.9586487500000028,"y_acceleration":2.7950937500000013,"angular_acceleration":0.0},{"time":1.2000000000000008,"x":1.0908800000000007,"y":0.12960000000000071,"angle":0.0,"x_velocity":0.37999999999999917,"y_velocity":0.8840000000000023,"angular_velocity":0.0,"x_acceleration":-0.9900000000000025,"y_acceleration":2.810000000000001,"angular_acceleration":0.0},{"time":1.2100000000000009,"x":1.0946299924937504,"y":0.1385806202812508,"angle":0.0,"x_velocity":0.3699482468749991,"y_velocity":0.9121318906250024,"angular_velocity":0.0,"x_acceleration":-1.0201512500000023,"y_acceleration":2.81470625,"angular_acceleration":0.0},{"time":1.2200000000000009,"x":1.0982779798,"y":0.14784262900000084,"angle":0.0,"x_velocity":0.35960094999999914,"y_velocity":0.9402612500000024,"angular_velocity":0.0,"x_acceleration":-1.0491100000000024,"y_acceleration":2.8095499999999993,"angular_acceleration":0.0},{"time":1.2300000000000009,"x":1.1018210659812502,"y":0.15738551334375087,"angle":0.0,"x_velocity":0.348969996874999,"y_velocity":0.9682911406250022,"angular_velocity":0.0,"x_acceleration":-1.0768837500000024,"y_acceleration":2.794868749999999,"angular_acceleration":0.0},{"time":1.2400000000000009,"x":1.1052564736000003,"y":0.16720780800000087,"angle":0.0,"x_velocity":0.33806719999999907,"y_velocity":0.9961280000000025,"angular_velocity":0.0,"x_acceleration":-1.1034800000000022,"y_acceleration":2.770999999999998,"angular_acceleration":0.0},{"time":1.2500000000000009,"x":1.1085815429687502,"y":0.17730712890625092,"angle":0.0,"x_velocity":0.32690429687499906,"y_velocity":1.0236816406250022,"angular_velocity":0.0,"x_acceleration":-1.128906250000002,"y_acceleration":2.738281249999997,"angular_acceleration":0.0},{"time":1.260000000000001,"x":1.1117937314000004,"y":0.18768020700000093,"angle":0.0,"x_velocity":0.315492949999999,"y_velocity":1.0508652500000022,"angular_velocity":0.0,"x_acceleration":-1.1531700000000022,"y_acceleration":2.697049999999995,"angular_acceleration":0.0},{"time":1.270000000000001,"x":1.1148906124562503,"y":0.198322921968751,"angle":0.0,"x_velocity":0.3038447468749989,"y_velocity":1.0775953906250024,"angular_velocity":0.0,"x_acceleration":-1.176278750000002,"y_acceleration":2.647643749999995,"angular_acceleration":0.0},{"time":1.280000000000001,"x":1.1178698752000003,"y":0.20923033600000102,"angle":0.0,"x_velocity":0.29197119999999893,"y_velocity":1.1037920000000023,"angular_velocity":0.0,"x_acceleration":-1.198240000000002,"y_acceleration":2.5903999999999945,"angular_acceleration":0.0},{"time":1.290000000000001,"x":1.1207293234437503,"y":0.22039672753125106,"angle":0.0,"x_velocity":0.2798837468749989,"y_velocity":1.1293783906250026,"angular_velocity":0.0,"x_acceleration":-1.2190612500000018,"y_acceleration":2.5256562499999937,"angular_acceleration":0.0},{"time":1.300000000000001,"x":1.123466875,"y":0.2318156250000011,"angle":0.0,"x_velocity":0.26759374999999885,"y_velocity":1.1542812500000024,"angular_velocity":0.0,"x_acceleration":-1.2387500000000018,"y_acceleration":2.453749999999993,"angular_acceleration":0.0},{"time":1.310000000000001,"x":1.1260805609312503,"y":0.24347984059375113,"angle":0.0,"x_velocity":0.25511249687499876,"y_velocity":1.1784306406250022,"angular_velocity":0.0,"x_acceleration":-1.2573137500000018,"y_acceleration":2.3750187499999926,"angular_acceleration":0.0},{"time":1.320000000000001,"x":1.1285685248000004,"y":0.2553815040000011,"angle":0.0,"x_velocity":0.24245119999999876,"y_velocity":1.201760000000002,"angular_velocity":0.0,"x_acceleration":-1.2747600000000017,"y_acceleration":2.2897999999999916,"angular_acceleration":0.0},{"time":1.330000000000001,"x":1.13092902191875,"y":0.26751209615625116,"angle":0.0,"x_velocity":0.22962099687499876,"y_velocity":1.224206140625002,"angular_velocity":0.0,"x_acceleration":-1.2910962500000018,"y_acceleration":2.1984312499999916,"angular_acceleration":0.0},{"time":1.340000000000001,"x":1.1331604186,"y":0.2798624830000012,"angle":0.0,"x_velocity":0.21663294999999874,"y_velocity":1.2457092500000022,"angular_velocity":0.0,"x_acceleration":-1.3063300000000013,"y_acceleration":2.1012499999999883,"angular_acceleration":0.0},{"time":1.350000000000001,"x":1.13526119140625,"y":0.29242294921875117,"angle":0.0,"x_velocity":0.20349804687499873,"y_velocity":1.2662128906250023,"angular_velocity":0.0,"x_acceleration":-1.3204687500000012,"y_acceleration":1.9985937499999888,"angular_acceleration":0.0},{"time":1.360000000000001,"x":1.1372299264000005,"y":0.3051832320000013,"angle":0.0,"x_velocity":0.19022719999999865,"y_velocity":1.285664000000002,"angular_velocity":0.0,"x_acceleration":-1.3335200000000014,"y_acceleration":1.890799999999989,"angular_acceleration":0.0},{"time":1.370000000000001,"x":1.13906531839375,"y":0.3181325547812513,"angle":0.0,"x_velocity":0.17683124687499863,"y_velocity":1.304012890625002,"angular_velocity":0.0,"x_acceleration":-1.3454912500000011,"y_acceleration":1.778206249999989,"angular_acceleration":0.0},{"time":1.380000000000001,"x":1.1407661701999998,"y":0.3312596610000013,"angle":0.0,"x_velocity":0.16332094999999866,"y_velocity":1.3212132500000018,"angular_velocity":0.0,"x_acceleration":-1.356390000000001,"y_acceleration":1.661149999999989,"angular_acceleration":0.0},{"time":1.390000000000001,"x":1.1423313918812503,"y":0.34455284784375134,"angle":0.0,"x_velocity":0.14970699687499864,"y_velocity":1.3372221406250018,"angular_velocity":0.0,"x_acceleration":-1.3662237500000012,"y_acceleration":1.5399687499999883,"angular_acceleration":0.0},{"time":1.400000000000001,"x":1.1437600000000003,"y":0.35800000000000143,"angle":0.0,"x_velocity":0.13599999999999857,"y_velocity":1.3520000000000016,"angular_velocity":0.0,"x_acceleration":-1.3750000000000009,"y_acceleration":1.414999999999988,"angular_acceleration":0.0},{"time":1.410000000000001,"x":1.14505111686875,"y":0.3715886234062514,"angle":0.0,"x_velocity":0.12221049687499855,"y_velocity":1.3655106406250015,"angular_velocity":0.0,"x_acceleration":-1.3827262500000006,"y_acceleration":1.286581249999986,"angular_acceleration":0.0},{"time":1.420000000000001,"x":1.1462039698000002,"y":0.3853058790000014,"angle":0.0,"x_velocity":0.10834894999999867,"y_velocity":1.3777212500000011,"angular_velocity":0.0,"x_acceleration":-1.389410000000001,"y_acceleration":1.1550499999999868,"angular_acceleration":0.0},{"time":1.430000000000001,"x":1.14721789035625,"y":0.3991386164687514,"angle":0.0,"x_velocity":0.09442574687499856,"y_velocity":1.3886023906250013,"angular_velocity":0.0,"x_acceleration":-1.395058750000001,"y_acceleration":1.0207437499999878,"angular_acceleration":0.0},{"time":1.440000000000001,"x":1.1480923136000003,"y":0.41307340800000153,"angle":0.0,"x_velocity":0.08045119999999847,"y_velocity":1.3981280000000011,"angular_velocity":0.0,"x_acceleration":-1.3996800000000003,"y_acceleration":0.8839999999999844,"angular_acceleration":0.0},{"time":1.450000000000001,"x":1.14882677734375,"y":0.4270965820312515,"angle":0.0,"x_velocity":0.06643554687499861,"y_velocity":1.4062753906250007,"angular_velocity":0.0,"x_acceleration":-1.4032812500000007,"y_acceleration":0.7451562499999866,"angular_acceleration":0.0},{"time":1.460000000000001,"x":1.1494209214,"y":0.4411942570000015,"angle":0.0,"x_velocity":0.052388949999998505,"y_velocity":1.4130252500000002,"angular_velocity":0.0,"x_acceleration":-1.4058700000000004,"y_acceleration":0.6045499999999873,"angular_acceleration":0.0},{"time":1.470000000000001,"x":1.14987448683125,"y":0.4553523750937515,"angle":0.0,"x_velocity":0.03832149687499844,"y_velocity":1.418361640625,"angular_velocity":0.0,"x_acceleration":-1.4074537500000002,"y_acceleration":0.4625187499999823,"angular_acceleration":0.0},{"time":1.480000000000001,"x":1.1501873152000004,"y":0.46955673600000153,"angle":0.0,"x_velocity":0.024243199999998497,"y_velocity":1.422272,"angular_velocity":0.0,"x_acceleration":-1.40804,"y_acceleration":0.3193999999999848,"angular_acceleration":0.0},{"time":1.490000000000001,"x":1.15035934781875,"y":0.48379303065625157,"angle":0.0,"x_velocity":0.01016399687499846,"y_velocity":1.4247471406250003,"angular_velocity":0.0,"x_acceleration":-1.40763625,"y_acceleration":0.17553124999998282,"angular_acceleration":0.0},{"time":1.500000000000001,"x":1.1503906249999998,"y":0.49804687500000144,"angle":0.0,"x_velocity":-0.003906250000001506,"y_velocity":1.4257812500000002,"angular_velocity":0.0,"x_acceleration":-1.4062499999999998,"y_acceleration":0.031249999999986677,"angular_acceleration":0.0},{"time":1.5100000000000011,"x":1.15028128530625,"y":0.5123038437187516,"angle":0.0,"x_velocity":-0.017957753125001624,"y_velocity":1.4253718906250006,"angular_velocity":0.0,"x_acceleration":-1.4038887499999992,"y_acceleration":-0.11310625000001906,"angular_acceleration":0.0},{"time":1.5200000000000011,"x":1.1500315648,"y":0.5265495040000017,"angle":0.0,"x_velocity":-0.03198080000000167,"y_velocity":1.4235199999999992,"angular_velocity":0.0,"x_acceleration":-1.4005599999999996,"y_acceleration":-0.25720000000001786,"angular_acceleration":0.0},{"time":1.5300000000000011,"x":1.1496417962937497,"y":0.5407694492812516,"angle":0.0,"x_velocity":-0.04596575312500148,"y_velocity":1.4202298906249995,"angular_velocity":0.0,"x_acceleration":-1.3962712499999996,"y_acceleration":-0.4006937500000127,"angular_acceleration":0.0},{"time":1.5400000000000011,"x":1.1491124085999997,"y":0.5549493330000017,"angle":0.0,"x_velocity":-0.059903050000001616,"y_velocity":1.4155092499999988,"angular_velocity":0.0,"x_acceleration":-1.3910299999999989,"y_acceleration":-0.5432500000000182,"angular_acceleration":0.0},{"time":1.5500000000000012,"x":1.14844392578125,"y":0.5690749023437516,"angle":0.0,"x_velocity":-0.07378320312500151,"y_velocity":1.4093691406249984,"angular_velocity":0.0,"x_acceleration":-1.3848437499999995,"y_acceleration":-0.6845312500000151,"angular_acceleration":0.0},{"time":1.5600000000000012,"x":1.1476369664000001,"y":0.5831320320000017,"angle":0.0,"x_velocity":-0.08759680000000161,"y_velocity":1.4018239999999993,"angular_velocity":0.0,"x_acceleration":-1.3777199999999992,"y_acceleration":-0.8242000000000171,"angular_acceleration":0.0},{"time":1.5700000000000012,"x":1.1466922427687498,"y":0.5971067579062518,"angle":0.0,"x_velocity":-0.10133450312500165,"y_velocity":1.392891640624999,"angular_velocity":0.0,"x_acceleration":-1.3696662499999988,"y_acceleration":-0.9619187500000184,"angular_acceleration":0.0},{"time":1.5800000000000012,"x":1.1456105601999997,"y":0.6109853110000015,"angle":0.0,"x_velocity":-0.11498705000000156,"y_velocity":1.3825932499999982,"angular_velocity":0.0,"x_acceleration":-1.3606899999999993,"y_acceleration":-1.0973500000000165,"angular_acceleration":0.0},{"time":1.5900000000000012,"x":1.1443928162562498,"y":0.6247541509687519,"angle":0.0,"x_velocity":-0.1285452531250017,"y_velocity":1.3709533906249989,"angular_velocity":0.0,"x_acceleration":-1.3507987499999992,"y_acceleration":-1.2301562500000163,"angular_acceleration":0.0},{"time":1.6000000000000012,"x":1.1430399999999998,"y":0.6384000000000016,"angle":0.0,"x_velocity":-0.14200000000000151,"y_velocity":1.3579999999999985,"angular_velocity":0.0,"x_acceleration":-1.3399999999999987,"y_acceleration":-1.3600000000000172,"angular_acceleration":0.0},{"time":1.6100000000000012,"x":1.1415531912437498,"y":0.6519098765312518,"angle":0.0,"x_velocity":-0.15534225312500155,"y_velocity":1.3437643906249983,"angular_velocity":0.0,"x_acceleration":-1.3283012499999982,"y_acceleration":-1.4865437500000152,"angular_acceleration":0.0},{"time":1.6200000000000012,"x":1.1399335597999996,"y":0.6652711290000015,"angle":0.0,"x_velocity":-0.1685630500000015,"y_velocity":1.3282812499999972,"angular_velocity":0.0,"x_acceleration":-1.3157099999999984,"y_acceleration":-1.609450000000015,"angular_acceleration":0.0},{"time":1.6300000000000012,"x":1.13818236473125,"y":0.6784714695937516,"angle":0.0,"x_velocity":-0.1816535031250016,"y_velocity":1.311588640624997,"angular_velocity":0.0,"x_acceleration":-1.3022337499999983,"y_acceleration":-1.7283812500000124,"angular_acceleration":0.0},{"time":1.6400000000000012,"x":1.1363009536,"y":0.6914990080000014,"angle":0.0,"x_velocity":-0.19460480000000183,"y_velocity":1.293727999999998,"angular_velocity":0.0,"x_acceleration":-1.2878799999999977,"y_acceleration":-1.843000000000016,"angular_acceleration":0.0},{"time":1.6500000000000012,"x":1.1342907617187497,"y":0.7043422851562515,"angle":0.0,"x_velocity":-0.20740820312500144,"y_velocity":1.274744140624997,"angular_velocity":0.0,"x_acceleration":-1.2726562499999983,"y_acceleration":-1.952968750000009,"angular_acceleration":0.0},{"time":1.6600000000000013,"x":1.1321533113999998,"y":0.7169903070000014,"angle":0.0,"x_velocity":-0.22005505000000133,"y_velocity":1.254685249999997,"angular_velocity":0.0,"x_acceleration":-1.2565699999999982,"y_acceleration":-2.0579500000000124,"angular_acceleration":0.0},{"time":1.6700000000000013,"x":1.1298902112062497,"y":0.7294325782187517,"angle":0.0,"x_velocity":-0.2325367531250016,"y_velocity":1.2336028906249958,"angular_velocity":0.0,"x_acceleration":-1.2396287499999974,"y_acceleration":-2.1576062500000077,"angular_acceleration":0.0},{"time":1.6800000000000013,"x":1.1275031551999999,"y":0.7416591360000014,"angle":0.0,"x_velocity":-0.24484480000000158,"y_velocity":1.2115519999999975,"angular_velocity":0.0,"x_acceleration":-1.2218399999999972,"y_acceleration":-2.2516000000000176,"angular_acceleration":0.0},{"time":1.6900000000000013,"x":1.1249939221937497,"y":0.7536605837812514,"angle":0.0,"x_velocity":-0.2569707531250016,"y_velocity":1.1885908906249973,"angular_velocity":0.0,"x_acceleration":-1.2032112499999972,"y_acceleration":-2.3395937500000095,"angular_acceleration":0.0},{"time":1.7000000000000013,"x":1.1223643749999996,"y":0.7654281250000016,"angle":0.0,"x_velocity":-0.26890625000000157,"y_velocity":1.1647812499999972,"angular_velocity":0.0,"x_acceleration":-1.183749999999997,"y_acceleration":-2.421250000000004,"angular_acceleration":0.0},{"time":1.7100000000000013,"x":1.11961645968125,"y":0.7769535968437519,"angle":0.0,"x_velocity":-0.28064300312500134,"y_velocity":1.1401881406249963,"angular_velocity":0.0,"x_acceleration":-1.1634637499999976,"y_acceleration":-2.4962312500000152,"angular_acceleration":0.0},{"time":1.7200000000000013,"x":1.1167522047999996,"y":0.7882295040000012,"angle":0.0,"x_velocity":-0.29217280000000145,"y_velocity":1.1148799999999954,"angular_velocity":0.0,"x_acceleration":-1.142359999999997,"y_acceleration":-2.564200000000003,"angular_acceleration":0.0},{"time":1.7300000000000013,"x":1.1137737206687497,"y":0.7992490524062511,"angle":0.0,"x_velocity":-0.30348750312500167,"y_velocity":1.0889286406249972,"angular_velocity":0.0,"x_acceleration":-1.1204462499999968,"y_acceleration":-2.6248187500000064,"angular_acceleration":0.0},{"time":1.7400000000000013,"x":1.1106831985999994,"y":0.8100061830000015,"angle":0.0,"x_velocity":-0.31457905000000147,"y_velocity":1.0624092499999964,"angular_velocity":0.0,"x_acceleration":-1.0977299999999968,"y_acceleration":-2.677750000000014,"angular_acceleration":0.0},{"time":1.7500000000000013,"x":1.1074829101562493,"y":0.8204956054687514,"angle":0.0,"x_velocity":-0.3254394531250014,"y_velocity":1.0354003906249964,"angular_velocity":0.0,"x_acceleration":-1.0742187499999967,"y_acceleration":-2.72265625,"angular_acceleration":0.0},{"time":1.7600000000000013,"x":1.1041752063999999,"y":0.830712832000001,"angle":0.0,"x_velocity":-0.3360608000000013,"y_velocity":1.007983999999996,"angular_velocity":0.0,"x_acceleration":-1.049919999999997,"y_acceleration":-2.7592000000000034,"angular_acceleration":0.0},{"time":1.7700000000000014,"x":1.1007625171437494,"y":0.840654211031251,"angle":0.0,"x_velocity":-0.3464352531250015,"y_velocity":0.9802453906249955,"angular_velocity":0.0,"x_acceleration":-1.0248412499999962,"y_acceleration":-2.7870437500000023,"angular_acceleration":0.0},{"time":1.7800000000000014,"x":1.0972473501999993,"y":0.8503169610000019,"angle":0.0,"x_velocity":-0.3565550500000012,"y_velocity":0.9522732499999949,"angular_velocity":0.0,"x_acceleration":-0.9989899999999972,"y_acceleration":-2.805849999999996,"angular_acceleration":0.0},{"time":1.7900000000000014,"x":1.0936322906312494,"y":0.8596992040937517,"angle":0.0,"x_velocity":-0.3664125031250014,"y_velocity":0.9241596406249961,"angular_velocity":0.0,"x_acceleration":-0.9723737499999958,"y_acceleration":-2.8152812500000053,"angular_acceleration":0.0},{"time":1.8000000000000014,"x":1.0899199999999996,"y":0.8688000000000012,"angle":0.0,"x_velocity":-0.37600000000000156,"y_velocity":0.8959999999999937,"angular_velocity":0.0,"x_acceleration":-0.944999999999996,"y_acceleration":-2.8150000000000013,"angular_acceleration":0.0},{"time":1.8100000000000014,"x":1.0861132156187496,"y":0.8776193796562513,"angle":0.0,"x_velocity":-0.3853100031250015,"y_velocity":0.8678931406249975,"angular_velocity":0.0,"x_acceleration":-0.9168762499999956,"y_acceleration":-2.8046687499999976,"angular_acceleration":0.0},{"time":1.8200000000000014,"x":1.0822147497999992,"y":0.8861583790000014,"angle":0.0,"x_velocity":-0.39433505000000146,"y_velocity":0.8399412499999963,"angular_velocity":0.0,"x_acceleration":-0.8880099999999959,"y_acceleration":-2.7839499999999973,"angular_acceleration":0.0},{"time":1.8300000000000014,"x":1.0782274891062493,"y":0.8944190727187507,"angle":0.0,"x_velocity":-0.4030677531250014,"y_velocity":0.8122498906249973,"angular_velocity":0.0,"x_acceleration":-0.8584087499999955,"y_acceleration":-2.7525062500000033,"angular_acceleration":0.0},{"time":1.8400000000000014,"x":1.0741543935999995,"y":0.9024046080000012,"angle":0.0,"x_velocity":-0.4115008000000011,"y_velocity":0.7849279999999972,"angular_velocity":0.0,"x_acceleration":-0.828079999999995,"y_acceleration":-2.710000000000001,"angular_acceleration":0.0},{"time":1.8500000000000014,"x":1.0699984960937494,"y":0.9101192382812515,"angle":0.0,"x_velocity":-0.41962695312500126,"y_velocity":0.7580878906249993,"angular_velocity":0.0,"x_acceleration":-0.7970312499999958,"y_acceleration":-2.6560937499999895,"angular_acceleration":0.0},{"time":1.8600000000000014,"x":1.0657629013999994,"y":0.9175683570000011,"angle":0.0,"x_velocity":-0.42743905000000093,"y_velocity":0.7318452499999957,"angular_velocity":0.0,"x_acceleration":-0.7652699999999952,"y_acceleration":-2.59044999999999,"angular_acceleration":0.0},{"time":1.8700000000000014,"x":1.0614507855812494,"y":0.924758531343751,"angle":0.0,"x_velocity":-0.4349300031250009,"y_velocity":0.7063191406249967,"angular_velocity":0.0,"x_acceleration":-0.7328037499999952,"y_acceleration":-2.5127312499999803,"angular_acceleration":0.0},{"time":1.8800000000000014,"x":1.0570653951999993,"y":0.931697536000001,"angle":0.0,"x_velocity":-0.44209280000000123,"y_velocity":0.6816319999999951,"angular_velocity":0.0,"x_acceleration":-0.6996399999999956,"y_acceleration":-2.4225999999999814,"angular_acceleration":0.0},{"time":1.8900000000000015,"x":1.0526100465687493,"y":0.9383943869062517,"angle":0.0,"x_velocity":-0.44892050312500076,"y_velocity":0.6579096406249967,"angular_velocity":0.0,"x_acceleration":-0.6657862499999956,"y_acceleration":-2.3197187499999856,"angular_acceleration":0.0},{"time":1.9000000000000015,"x":1.0480881249999991,"y":0.9448593750000014,"angle":0.0,"x_velocity":-0.4554062500000009,"y_velocity":0.6352812499999985,"angular_velocity":0.0,"x_acceleration":-0.6312499999999962,"y_acceleration":-2.203749999999978,"angular_acceleration":0.0},{"time":1.9100000000000015,"x":1.0435030840562494,"y":0.9511040999687506,"angle":0.0,"x_velocity":-0.46154325312500133,"y_velocity":0.6138793906249962,"angular_velocity":0.0,"x_acceleration":-0.5960387499999945,"y_acceleration":-2.074356249999987,"angular_acceleration":0.0},{"time":1.9200000000000015,"x":1.0388584447999996,"y":0.9571415040000002,"angle":0.0,"x_velocity":-0.467324800000001,"y_velocity":0.5938399999999984,"angular_velocity":0.0,"x_acceleration":-0.5601599999999942,"y_acceleration":-1.9311999999999756,"angular_acceleration":0.0},{"time":1.9300000000000015,"x":1.0341577950437493,"y":0.9629859055312504,"angle":0.0,"x_velocity":-0.47274425312500096,"y_velocity":0.5753023906249979,"angular_velocity":0.0,"x_acceleration":-0.5236212499999935,"y_acceleration":-1.7739437499999866,"angular_acceleration":0.0},{"time":1.9400000000000015,"x":1.0294047885999993,"y":0.9686530330000016,"angle":0.0,"x_velocity":-0.47779505000000044,"y_velocity":0.5584092499999933,"angular_velocity":0.0,"x_acceleration":-0.48642999999999503,"y_acceleration":-1.6022499999999766,"angular_acceleration":0.0},{"time":1.9500000000000015,"x":1.0246031445312491,"y":0.9741600585937507,"angle":0.0,"x_velocity":-0.4824707031250006,"y_velocity":0.5433066406249942,"angular_velocity":0.0,"x_acceleration":-0.4485937499999946,"y_acceleration":-1.4157812499999665,"angular_acceleration":0.0},{"time":1.9600000000000015,"x":1.0197566463999994,"y":0.9795256320000005,"angle":0.0,"x_velocity":-0.48676480000000055,"y_velocity":0.5301439999999964,"angular_velocity":0.0,"x_acceleration":-0.41011999999999427,"y_acceleration":-1.2141999999999626,"angular_acceleration":0.0},{"time":1.9700000000000015,"x":1.0148691415187494,"y":0.9847699141562507,"angle":0.0,"x_velocity":-0.49067100312500056,"y_velocity":0.5190741406250012,"angular_velocity":0.0,"x_acceleration":-0.37101624999999383,"y_acceleration":-0.9971687499999717,"angular_acceleration":0.0},{"time":1.9800000000000015,"x":1.009944540199999,"y":0.989914611000001,"angle":0.0,"x_velocity":-0.49418305000000046,"y_velocity":0.5102532499999999,"angular_velocity":0.0,"x_acceleration":-0.33128999999999387,"y_acceleration":-0.7643499999999648,"angular_acceleration":0.0},{"time":1.9900000000000015,"x":1.0049868150062493,"y":0.99498300721875,"angle":0.0,"x_velocity":-0.4972947531250007,"y_velocity":0.5038408906250034,"angular_velocity":0.0,"x_acceleration":-0.29094874999999343,"y_acceleration":-0.5154062499999625,"angular_acceleration":0.0},{"time":2.0000000000000013,"x":0.9999999999999993,"y":1.0000000000000007,"angle":0.0,"x_velocity":-0.5000000000000003,"y_velocity":0.49999999999999967,"angular_velocity":0.0,"x_acceleration":-0.25000000000003647,"y_acceleration":-0.2500000000000055,"angular_acceleration":0.0},{"time":2.010000000000001,"x":0.9949830072187494,"y":1.0049868150062504,"angle":0.0,"x_velocity":-0.5038408906250005,"y_velocity":0.49729475312499966,"angular_velocity":0.0,"x_acceleration":-0.5154062500000287,"y_acceleration":-0.29094875000000453,"angular_acceleration":0.0},{"time":2.020000000000001,"x":0.9899146109999996,"y":1.0099445402000002,"angle":0.0,"x_velocity":-0.5102532500000007,"y_velocity":0.4941830499999997,"angular_velocity":0.0,"x_acceleration":-0.7643500000000217,"y_acceleration":-0.33129000000000364,"angular_acceleration":0.0},{"time":2.0300000000000007,"x":0.9847699141562497,"y":1.0148691415187505,"angle":0.0,"x_velocity":-0.5190741406250007,"y_velocity":0.4906710031249998,"angular_velocity":0.0,"x_acceleration":-0.9971687500000156,"y_acceleration":-0.3710162500000027,"angular_acceleration":0.0},{"time":2.0400000000000005,"x":0.9795256319999999,"y":1.0197566464000005,"angle":0.0,"x_velocity":-0.5301440000000006,"y_velocity":0.48676479999999983,"angular_velocity":0.0,"x_acceleration":-1.21420000000001,"y_acceleration":-0.4101200000000018,"angular_acceleration":0.0},{"time":2.0500000000000003,"x":0.9741600585937498,"y":1.0246031445312502,"angle":0.0,"x_velocity":-0.5433066406250004,"y_velocity":0.4824707031249999,"angular_velocity":0.0,"x_acceleration":-1.415781250000005,"y_acceleration":-0.448593750000001,"angular_acceleration":0.0},{"time":2.06,"x":0.968653033,"y":1.0294047886,"angle":0.0,"x_velocity":-0.5584092500000001,"y_velocity":0.47779504999999994,"angular_velocity":0.0,"x_acceleration":-1.602250000000001,"y_acceleration":-0.4864300000000002,"angular_acceleration":0.0},{"time":2.07,"x":0.9629859055312501,"y":1.03415779504375,"angle":0.0,"x_velocity":-0.5753023906249997,"y_velocity":0.47274425312500007,"angular_velocity":0.0,"x_acceleration":-1.773943749999997,"y_acceleration":-0.5236212499999995,"angular_acceleration":0.0},{"time":2.0799999999999996,"x":0.9571415040000001,"y":1.0388584448,"angle":0.0,"x_velocity":-0.5938399999999993,"y_velocity":0.4673248000000002,"angular_velocity":0.0,"x_acceleration":-1.9311999999999943,"y_acceleration":-0.5601599999999988,"angular_acceleration":0.0},{"time":2.0899999999999994,"x":0.9511040999687504,"y":1.0435030840562496,"angle":0.0,"x_velocity":-0.6138793906249987,"y_velocity":0.46154325312500033,"angular_velocity":0.0,"x_acceleration":-2.074356249999992,"y_acceleration":-0.596038749999998,"angular_acceleration":0.0},{"time":2.099999999999999,"x":0.9448593750000004,"y":1.0480881249999996,"angle":0.0,"x_velocity":-0.6352812499999981,"y_velocity":0.4554062500000005,"angular_velocity":0.0,"x_acceleration":-2.20374999999999,"y_acceleration":-0.6312499999999973,"angular_acceleration":0.0},{"time":2.109999999999999,"x":0.9383943869062507,"y":1.0526100465687493,"angle":0.0,"x_velocity":-0.6579096406249977,"y_velocity":0.44892050312500065,"angular_velocity":0.0,"x_acceleration":-2.319718749999989,"y_acceleration":-0.6657862499999966,"angular_acceleration":0.0},{"time":2.1199999999999988,"x":0.9316975360000008,"y":1.0570653951999993,"angle":0.0,"x_velocity":-0.681631999999997,"y_velocity":0.44209280000000084,"angular_velocity":0.0,"x_acceleration":-2.422599999999988,"y_acceleration":-0.6996399999999959,"angular_acceleration":0.0},{"time":2.1299999999999986,"x":0.9247585313437511,"y":1.0614507855812494,"angle":0.0,"x_velocity":-0.7063191406249963,"y_velocity":0.4349300031250011,"angular_velocity":0.0,"x_acceleration":-2.512731249999988,"y_acceleration":-0.7328037499999953,"angular_acceleration":0.0},{"time":2.1399999999999983,"x":0.9175683570000012,"y":1.0657629013999994,"angle":0.0,"x_velocity":-0.7318452499999958,"y_velocity":0.42743905000000126,"angular_velocity":0.0,"x_acceleration":-2.5904499999999886,"y_acceleration":-0.7652699999999947,"angular_acceleration":0.0},{"time":2.149999999999998,"x":0.9101192382812514,"y":1.0699984960937492,"angle":0.0,"x_velocity":-0.758087890624995,"y_velocity":0.4196269531250014,"angular_velocity":0.0,"x_acceleration":-2.6560937499999886,"y_acceleration":-0.7970312499999942,"angular_acceleration":0.0},{"time":2.159999999999998,"x":0.9024046080000017,"y":1.074154393599999,"angle":0.0,"x_velocity":-0.7849279999999944,"y_velocity":0.4115008000000017,"angular_velocity":0.0,"x_acceleration":-2.7099999999999898,"y_acceleration":-0.8280799999999937,"angular_acceleration":0.0},{"time":2.1699999999999977,"x":0.8944190727187519,"y":1.0782274891062493,"angle":0.0,"x_velocity":-0.8122498906249936,"y_velocity":0.4030677531250019,"angular_velocity":0.0,"x_acceleration":-2.7525062499999917,"y_acceleration":-0.8584087499999932,"angular_acceleration":0.0},{"time":2.1799999999999975,"x":0.8861583790000022,"y":1.082214749799999,"angle":0.0,"x_velocity":-0.8399412499999931,"y_velocity":0.39433505000000224,"angular_velocity":0.0,"x_acceleration":-2.783949999999994,"y_acceleration":-0.8880099999999927,"angular_acceleration":0.0},{"time":2.1899999999999973,"x":0.8776193796562523,"y":1.086113215618749,"angle":0.0,"x_velocity":-0.8678931406249923,"y_velocity":0.38531000312500246,"angular_velocity":0.0,"x_acceleration":-2.804668749999996,"y_acceleration":-0.9168762499999923,"angular_acceleration":0.0},{"time":2.199999999999997,"x":0.8688000000000026,"y":1.0899199999999987,"angle":0.0,"x_velocity":-0.8959999999999917,"y_velocity":0.3760000000000028,"angular_velocity":0.0,"x_acceleration":-2.814999999999998,"y_acceleration":-0.944999999999992,"angular_acceleration":0.0},{"time":2.209999999999997,"x":0.8596992040937529,"y":1.0936322906312488,"angle":0.0,"x_velocity":-0.924159640624991,"y_velocity":0.366412503125003,"angular_velocity":0.0,"x_acceleration":-2.8152812500000017,"y_acceleration":-0.9723737499999915,"angular_acceleration":0.0},{"time":2.2199999999999966,"x":0.8503169610000032,"y":1.0972473501999989,"angle":0.0,"x_velocity":-0.9522732499999906,"y_velocity":0.3565550500000033,"angular_velocity":0.0,"x_acceleration":-2.8058500000000057,"y_acceleration":-0.9989899999999913,"angular_acceleration":0.0},{"time":2.2299999999999964,"x":0.8406542110312535,"y":1.100762517143749,"angle":0.0,"x_velocity":-0.9802453906249899,"y_velocity":0.3464352531250036,"angular_velocity":0.0,"x_acceleration":-2.7870437500000085,"y_acceleration":-1.0248412499999908,"angular_acceleration":0.0},{"time":2.239999999999996,"x":0.8307128320000038,"y":1.1041752063999988,"angle":0.0,"x_velocity":-1.0079839999999896,"y_velocity":0.336060800000004,"angular_velocity":0.0,"x_acceleration":-2.7592000000000123,"y_acceleration":-1.0499199999999909,"angular_acceleration":0.0},{"time":2.249999999999996,"x":0.8204956054687541,"y":1.1074829101562487,"angle":0.0,"x_velocity":-1.0354003906249891,"y_velocity":0.3254394531250043,"angular_velocity":0.0,"x_acceleration":-2.7226562500000164,"y_acceleration":-1.0742187499999905,"angular_acceleration":0.0},{"time":2.259999999999996,"x":0.8100061830000045,"y":1.1106831985999988,"angle":0.0,"x_velocity":-1.0624092499999886,"y_velocity":0.31457905000000463,"angular_velocity":0.0,"x_acceleration":-2.677750000000021,"y_acceleration":-1.0977299999999903,"angular_acceleration":0.0},{"time":2.2699999999999956,"x":0.7992490524062549,"y":1.1137737206687488,"angle":0.0,"x_velocity":-1.0889286406249883,"y_velocity":0.30348750312500494,"angular_velocity":0.0,"x_acceleration":-2.624818750000025,"y_acceleration":-1.1204462499999903,"angular_acceleration":0.0},{"time":2.2799999999999954,"x":0.7882295040000051,"y":1.1167522047999987,"angle":0.0,"x_velocity":-1.1148799999999879,"y_velocity":0.29217280000000534,"angular_velocity":0.0,"x_acceleration":-2.5642000000000307,"y_acceleration":-1.1423599999999903,"angular_acceleration":0.0},{"time":2.289999999999995,"x":0.7769535968437555,"y":1.1196164596812486,"angle":0.0,"x_velocity":-1.140188140624988,"y_velocity":0.2806430031250056,"angular_velocity":0.0,"x_acceleration":-2.496231250000034,"y_acceleration":-1.16346374999999,"angular_acceleration":0.0},{"time":2.299999999999995,"x":0.7654281250000059,"y":1.1223643749999987,"angle":0.0,"x_velocity":-1.1647812499999879,"y_velocity":0.268906250000006,"angular_velocity":0.0,"x_acceleration":-2.421250000000041,"y_acceleration":-1.1837499999999899,"angular_acceleration":0.0},{"time":2.3099999999999947,"x":0.7536605837812562,"y":1.1249939221937486,"angle":0.0,"x_velocity":-1.1885908906249876,"y_velocity":0.25697075312500633,"angular_velocity":0.0,"x_acceleration":-2.339593750000046,"y_acceleration":-1.20321124999999,"angular_acceleration":0.0},{"time":2.3199999999999945,"x":0.7416591360000067,"y":1.1275031551999988,"angle":0.0,"x_velocity":-1.2115519999999873,"y_velocity":0.2448448000000067,"angular_velocity":0.0,"x_acceleration":-2.2516000000000496,"y_acceleration":-1.22183999999999,"angular_acceleration":0.0},{"time":2.3299999999999943,"x":0.729432578218757,"y":1.1298902112062486,"angle":0.0,"x_velocity":-1.2336028906249876,"y_velocity":0.23253675312500707,"angular_velocity":0.0,"x_acceleration":-2.157606250000054,"y_acceleration":-1.2396287499999903,"angular_acceleration":0.0},{"time":2.339999999999994,"x":0.7169903070000073,"y":1.1321533113999986,"angle":0.0,"x_velocity":-1.2546852499999879,"y_velocity":0.2200550500000074,"angular_velocity":0.0,"x_acceleration":-2.05795000000006,"y_acceleration":-1.2565699999999902,"angular_acceleration":0.0},{"time":2.349999999999994,"x":0.7043422851562579,"y":1.1342907617187488,"angle":0.0,"x_velocity":-1.274744140624988,"y_velocity":0.2074082031250078,"angular_velocity":0.0,"x_acceleration":-1.9529687500000668,"y_acceleration":-1.2726562499999905,"angular_acceleration":0.0},{"time":2.3599999999999937,"x":0.6914990080000082,"y":1.1363009535999988,"angle":0.0,"x_velocity":-1.2937279999999884,"y_velocity":0.19460480000000815,"angular_velocity":0.0,"x_acceleration":-1.8430000000000715,"y_acceleration":-1.2878799999999908,"angular_acceleration":0.0},{"time":2.3699999999999934,"x":0.6784714695937586,"y":1.1381823647312488,"angle":0.0,"x_velocity":-1.3115886406249886,"y_velocity":0.18165350312500855,"angular_velocity":0.0,"x_acceleration":-1.7283812500000768,"y_acceleration":-1.302233749999991,"angular_acceleration":0.0},{"time":2.3799999999999932,"x":0.665271129000009,"y":1.1399335597999987,"angle":0.0,"x_velocity":-1.3282812499999892,"y_velocity":0.16856305000000887,"angular_velocity":0.0,"x_acceleration":-1.609450000000082,"y_acceleration":-1.3157099999999913,"angular_acceleration":0.0},{"time":2.389999999999993,"x":0.6519098765312593,"y":1.1415531912437489,"angle":0.0,"x_velocity":-1.3437643906249896,"y_velocity":0.1553422531250093,"angular_velocity":0.0,"x_acceleration":-1.4865437500000898,"y_acceleration":-1.3283012499999916,"angular_acceleration":0.0},{"time":2.399999999999993,"x":0.6384000000000098,"y":1.143039999999999,"angle":0.0,"x_velocity":-1.3579999999999905,"y_velocity":0.14200000000000965,"angular_velocity":0.0,"x_acceleration":-1.3600000000000918,"y_acceleration":-1.3399999999999919,"angular_acceleration":0.0},{"time":2.4099999999999926,"x":0.6247541509687602,"y":1.1443928162562491,"angle":0.0,"x_velocity":-1.3709533906249907,"y_velocity":0.12854525312501003,"angular_velocity":0.0,"x_acceleration":-1.2301562500000975,"y_acceleration":-1.3507987499999925,"angular_acceleration":0.0},{"time":2.4199999999999924,"x":0.6109853110000105,"y":1.145610560199999,"angle":0.0,"x_velocity":-1.3825932499999918,"y_velocity":0.11498705000001036,"angular_velocity":0.0,"x_acceleration":-1.0973500000001009,"y_acceleration":-1.3606899999999928,"angular_acceleration":0.0},{"time":2.429999999999992,"x":0.5971067579062609,"y":1.1466922427687491,"angle":0.0,"x_velocity":-1.3928916406249925,"y_velocity":0.10133450312501076,"angular_velocity":0.0,"x_acceleration":-0.9619187500001081,"y_acceleration":-1.3696662499999934,"angular_acceleration":0.0},{"time":2.439999999999992,"x":0.5831320320000113,"y":1.1476369663999995,"angle":0.0,"x_velocity":-1.4018239999999937,"y_velocity":0.08759680000001109,"angular_velocity":0.0,"x_acceleration":-0.8242000000001104,"y_acceleration":-1.3777199999999938,"angular_acceleration":0.0},{"time":2.4499999999999917,"x":0.5690749023437617,"y":1.1484439257812495,"angle":0.0,"x_velocity":-1.4093691406249946,"y_velocity":0.07378320312501142,"angular_velocity":0.0,"x_acceleration":-0.6845312500001164,"y_acceleration":-1.3848437499999946,"angular_acceleration":0.0},{"time":2.4599999999999915,"x":0.554949333000012,"y":1.1491124085999995,"angle":0.0,"x_velocity":-1.4155092499999955,"y_velocity":0.059903050000011795,"angular_velocity":0.0,"x_acceleration":-0.5432500000001195,"y_acceleration":-1.3910299999999953,"angular_acceleration":0.0},{"time":2.4699999999999913,"x":0.5407694492812625,"y":1.1496417962937495,"angle":0.0,"x_velocity":-1.4202298906249964,"y_velocity":0.045965753125012165,"angular_velocity":0.0,"x_acceleration":-0.4006937500001264,"y_acceleration":-1.396271249999996,"angular_acceleration":0.0},{"time":2.479999999999991,"x":0.5265495040000127,"y":1.1500315648000001,"angle":0.0,"x_velocity":-1.4235199999999972,"y_velocity":0.031980800000012535,"angular_velocity":0.0,"x_acceleration":-0.25720000000013243,"y_acceleration":-1.4005599999999965,"angular_acceleration":0.0},{"time":2.489999999999991,"x":0.5123038437187629,"y":1.1502812853062498,"angle":0.0,"x_velocity":-1.4253718906249988,"y_velocity":0.01795775312501279,"angular_velocity":0.0,"x_acceleration":-0.11310625000013186,"y_acceleration":-1.4038887499999975,"angular_acceleration":0.0},{"time":2.4999999999999907,"x":0.4980468750000132,"y":1.150390625,"angle":0.0,"x_velocity":-1.4257812500000004,"y_velocity":0.003906250000013087,"angular_velocity":0.0,"x_acceleration":0.03124999999986766,"y_acceleration":-1.406249999999998,"angular_acceleration":0.0},{"time":2.5099999999999905,"x":0.4837930306562635,"y":1.1503593478187502,"angle":0.0,"x_velocity":-1.4247471406250016,"y_velocity":-0.01016399687498663,"angular_velocity":0.0,"x_acceleration":0.1755312499998647,"y_acceleration":-1.407636249999999,"angular_acceleration":0.0},{"time":2.5199999999999902,"x":0.46955673600001374,"y":1.1501873152000002,"angle":0.0,"x_velocity":-1.422272000000003,"y_velocity":-0.024243199999986274,"angular_velocity":0.0,"x_acceleration":0.31939999999986224,"y_acceleration":-1.4080399999999997,"angular_acceleration":0.0},{"time":2.52999999999999,"x":0.45535237509376425,"y":1.1498744868312503,"angle":0.0,"x_velocity":-1.418361640625005,"y_velocity":-0.038321496874985914,"angular_velocity":0.0,"x_acceleration":0.4625187499998553,"y_acceleration":-1.4074537500000013,"angular_acceleration":0.0},{"time":2.53999999999999,"x":0.4411942570000143,"y":1.1494209214000006,"angle":0.0,"x_velocity":-1.413025250000007,"y_velocity":-0.05238894999998579,"angular_velocity":0.0,"x_acceleration":0.6045499999998594,"y_acceleration":-1.4058700000000017,"angular_acceleration":0.0},{"time":2.5499999999999896,"x":0.42709658203126466,"y":1.1488267773437508,"angle":0.0,"x_velocity":-1.4062753906250078,"y_velocity":-0.06643554687498535,"angular_velocity":0.0,"x_acceleration":0.7451562499998516,"y_acceleration":-1.4032812500000034,"angular_acceleration":0.0},{"time":2.5599999999999894,"x":0.4130734080000148,"y":1.1480923136000007,"angle":0.0,"x_velocity":-1.3981280000000096,"y_velocity":-0.08045119999998518,"angular_velocity":0.0,"x_acceleration":0.8839999999998547,"y_acceleration":-1.3996800000000043,"angular_acceleration":0.0},{"time":2.569999999999989,"x":0.399138616468765,"y":1.147217890356251,"angle":0.0,"x_velocity":-1.3886023906250116,"y_velocity":-0.09442574687498483,"angular_velocity":0.0,"x_acceleration":1.020743749999852,"y_acceleration":-1.3950587500000056,"angular_acceleration":0.0},{"time":2.579999999999989,"x":0.3853058790000151,"y":1.1462039698000013,"angle":0.0,"x_velocity":-1.377721250000012,"y_velocity":-0.10834894999998476,"angular_velocity":0.0,"x_acceleration":1.1550499999998536,"y_acceleration":-1.3894100000000065,"angular_acceleration":0.0},{"time":2.5899999999999888,"x":0.3715886234062654,"y":1.1450511168687514,"angle":0.0,"x_velocity":-1.365510640625014,"y_velocity":-0.12221049687498446,"angular_velocity":0.0,"x_acceleration":1.2865812499998537,"y_acceleration":-1.3827262500000082,"angular_acceleration":0.0},{"time":2.5999999999999885,"x":0.3580000000000154,"y":1.1437600000000017,"angle":0.0,"x_velocity":-1.352000000000016,"y_velocity":-0.1359999999999842,"angular_velocity":0.0,"x_acceleration":1.41499999999985,"y_acceleration":-1.3750000000000093,"angular_acceleration":0.0},{"time":2.6099999999999883,"x":0.3445528478437657,"y":1.1423313918812519,"angle":0.0,"x_velocity":-1.337222140625018,"y_velocity":-0.14970699687498407,"angular_velocity":0.0,"x_acceleration":1.539968749999856,"y_acceleration":-1.366223750000011,"angular_acceleration":0.0},{"time":2.619999999999988,"x":0.33125966100001564,"y":1.1407661702000018,"angle":0.0,"x_velocity":-1.321213250000019,"y_velocity":-0.16332094999998387,"angular_velocity":0.0,"x_acceleration":1.6611499999998625,"y_acceleration":-1.3563900000000122,"angular_acceleration":0.0},{"time":2.629999999999988,"x":0.31813255478126595,"y":1.139065318393752,"angle":0.0,"x_velocity":-1.3040128906250228,"y_velocity":-0.17683124687498383,"angular_velocity":0.0,"x_acceleration":1.7782062499998652,"y_acceleration":-1.3454912500000138,"angular_acceleration":0.0},{"time":2.6399999999999877,"x":0.30518323200001574,"y":1.137229926400002,"angle":0.0,"x_velocity":-1.2856640000000228,"y_velocity":-0.19022719999998364,"angular_velocity":0.0,"x_acceleration":1.8907999999998655,"y_acceleration":-1.3335200000000151,"angular_acceleration":0.0},{"time":2.6499999999999875,"x":0.29242294921876577,"y":1.1352611914062527,"angle":0.0,"x_velocity":-1.2662128906250252,"y_velocity":-0.20349804687498346,"angular_velocity":0.0,"x_acceleration":1.9985937499998645,"y_acceleration":-1.320468750000017,"angular_acceleration":0.0},{"time":2.6599999999999873,"x":0.27986248300001604,"y":1.1331604186000026,"angle":0.0,"x_velocity":-1.2457092500000266,"y_velocity":-0.21663294999998334,"angular_velocity":0.0,"x_acceleration":2.101249999999876,"y_acceleration":-1.3063300000000186,"angular_acceleration":0.0},{"time":2.669999999999987,"x":0.2675120961562658,"y":1.130929021918753,"angle":0.0,"x_velocity":-1.2242061406250277,"y_velocity":-0.22962099687498314,"angular_velocity":0.0,"x_acceleration":2.1984312499998673,"y_acceleration":-1.2910962500000207,"angular_acceleration":0.0},{"time":2.679999999999987,"x":0.25538150400001586,"y":1.1285685248000032,"angle":0.0,"x_velocity":-1.2017600000000304,"y_velocity":-0.24245119999998316,"angular_velocity":0.0,"x_acceleration":2.289799999999879,"y_acceleration":-1.274760000000022,"angular_acceleration":0.0},{"time":2.6899999999999866,"x":0.2434798405937657,"y":1.1260805609312534,"angle":0.0,"x_velocity":-1.178430640625031,"y_velocity":-0.25511249687498316,"angular_velocity":0.0,"x_acceleration":2.3750187499998887,"y_acceleration":-1.2573137500000242,"angular_acceleration":0.0},{"time":2.6999999999999864,"x":0.231815625000016,"y":1.1234668750000036,"angle":0.0,"x_velocity":-1.1542812500000346,"y_velocity":-0.26759374999998325,"angular_velocity":0.0,"x_acceleration":2.4537499999999035,"y_acceleration":-1.2387500000000258,"angular_acceleration":0.0},{"time":2.709999999999986,"x":0.2203967275312656,"y":1.120729323443754,"angle":0.0,"x_velocity":-1.129378390625035,"y_velocity":-0.2798837468749832,"angular_velocity":0.0,"x_acceleration":2.5256562499999085,"y_acceleration":-1.2190612500000277,"angular_acceleration":0.0},{"time":2.719999999999986,"x":0.20923033600001573,"y":1.117869875200004,"angle":0.0,"x_velocity":-1.1037920000000367,"y_velocity":-0.29197119999998306,"angular_velocity":0.0,"x_acceleration":2.5903999999999137,"y_acceleration":-1.19824000000003,"angular_acceleration":0.0},{"time":2.7299999999999858,"x":0.19832292196876522,"y":1.1148906124562543,"angle":0.0,"x_velocity":-1.0775953906250377,"y_velocity":-0.30384474687498336,"angular_velocity":0.0,"x_acceleration":2.6476437499999292,"y_acceleration":-1.1762787500000318,"angular_acceleration":0.0},{"time":2.7399999999999856,"x":0.18768020700001498,"y":1.1117937314000046,"angle":0.0,"x_velocity":-1.0508652500000375,"y_velocity":-0.31549294999998334,"angular_velocity":0.0,"x_acceleration":2.6970499999999333,"y_acceleration":-1.153170000000034,"angular_acceleration":0.0},{"time":2.7499999999999853,"x":0.17730712890626543,"y":1.1085815429687547,"angle":0.0,"x_velocity":-1.0236816406250382,"y_velocity":-0.32690429687498346,"angular_velocity":0.0,"x_acceleration":2.738281249999943,"y_acceleration":-1.1289062500000364,"angular_acceleration":0.0},{"time":2.759999999999985,"x":0.16720780800001478,"y":1.1052564736000052,"angle":0.0,"x_velocity":-0.9961280000000423,"y_velocity":-0.3380671999999836,"angular_velocity":0.0,"x_acceleration":2.770999999999958,"y_acceleration":-1.1034800000000384,"angular_acceleration":0.0},{"time":2.769999999999985,"x":0.15738551334376483,"y":1.101821065981255,"angle":0.0,"x_velocity":-0.968291140625043,"y_velocity":-0.3489699968749839,"angular_velocity":0.0,"x_acceleration":2.7948687499999814,"y_acceleration":-1.076883750000041,"angular_acceleration":0.0},{"time":2.7799999999999847,"x":0.14784262900001433,"y":1.0982779798000053,"angle":0.0,"x_velocity":-0.9402612500000442,"y_velocity":-0.35960094999998415,"angular_velocity":0.0,"x_acceleration":2.8095499999999944,"y_acceleration":-1.0491100000000428,"angular_acceleration":0.0},{"time":2.7899999999999845,"x":0.13858062028126483,"y":1.094629992493756,"angle":0.0,"x_velocity":-0.9121318906250462,"y_velocity":-0.36994824687498423,"angular_velocity":0.0,"x_acceleration":2.814706249999997,"y_acceleration":-1.020151250000046,"angular_acceleration":0.0},{"time":2.7999999999999843,"x":0.12960000000001426,"y":1.0908800000000063,"angle":0.0,"x_velocity":-0.8840000000000439,"y_velocity":-0.3799999999999843,"angular_velocity":0.0,"x_acceleration":2.8100000000000165,"y_acceleration":-0.9900000000000483,"angular_acceleration":0.0},{"time":2.809999999999984,"x":0.12090029471876396,"y":1.0870310175062563,"angle":0.0,"x_velocity":-0.8559658906250434,"y_velocity":-0.38974424687498477,"angular_velocity":0.0,"x_acceleration":2.795093750000028,"y_acceleration":-0.9586487500000511,"angular_acceleration":0.0},{"time":2.819999999999984,"x":0.11248001100001415,"y":1.0830861802000067,"angle":0.0,"x_velocity":-0.8281332500000467,"y_velocity":-0.3991689499999852,"angular_velocity":0.0,"x_acceleration":2.769650000000052,"y_acceleration":-0.9260900000000537,"angular_acceleration":0.0},{"time":2.8299999999999836,"x":0.10433660165626257,"y":1.0790487440187564,"angle":0.0,"x_velocity":-0.8006091406250437,"y_velocity":-0.40826199687498554,"angular_velocity":0.0,"x_acceleration":2.733331250000063,"y_acceleration":-0.8923162500000561,"angular_acceleration":0.0},{"time":2.8399999999999834,"x":0.09646643200001281,"y":1.074922086400007,"angle":0.0,"x_velocity":-0.7735040000000435,"y_velocity":-0.41701119999998587,"angular_velocity":0.0,"x_acceleration":2.6858000000000857,"y_acceleration":-0.8573200000000588,"angular_acceleration":0.0},{"time":2.849999999999983,"x":0.08886474609376327,"y":1.0707097070312572,"angle":0.0,"x_velocity":-0.7469316406250446,"y_velocity":-0.42540429687498615,"angular_velocity":0.0,"x_acceleration":2.6267187500001015,"y_acceleration":-0.821093750000062,"angular_acceleration":0.0},{"time":2.859999999999983,"x":0.08152563300001248,"y":1.0664152286000075,"angle":0.0,"x_velocity":-0.7210092500000469,"y_velocity":-0.4334289499999866,"angular_velocity":0.0,"x_acceleration":2.555750000000124,"y_acceleration":-0.783630000000065,"angular_acceleration":0.0},{"time":2.869999999999983,"x":0.07444199303126209,"y":1.0620423975437576,"angle":0.0,"x_velocity":-0.6958573906250418,"y_velocity":-0.4410727468749873,"angular_velocity":0.0,"x_acceleration":2.472556250000153,"y_acceleration":-0.7449212500000679,"angular_acceleration":0.0},{"time":2.8799999999999826,"x":0.06760550400001142,"y":1.0575950848000077,"angle":0.0,"x_velocity":-0.6716000000000388,"y_velocity":-0.4483231999999875,"angular_velocity":0.0,"x_acceleration":2.3768000000001805,"y_acceleration":-0.7049600000000705,"angular_acceleration":0.0},{"time":2.8899999999999824,"x":0.061006587468761087,"y":1.053077286556258,"angle":0.0,"x_velocity":-0.6483643906250407,"y_velocity":-0.45516774687498823,"angular_velocity":0.0,"x_acceleration":2.2681437500002133,"y_acceleration":-0.6637387500000738,"angular_acceleration":0.0},{"time":2.899999999999982,"x":0.05463437500001134,"y":1.0484931250000082,"angle":0.0,"x_velocity":-0.6262812500000408,"y_velocity":-0.461593749999989,"angular_velocity":0.0,"x_acceleration":2.1462500000002365,"y_acceleration":-0.6212500000000767,"angular_acceleration":0.0},{"time":2.909999999999982,"x":0.04847667440626058,"y":1.0438468490687585,"angle":0.0,"x_velocity":-0.6054846406250327,"y_velocity":-0.4675884968749896,"angular_velocity":0.0,"x_acceleration":2.0107812500002495,"y_acceleration":-0.5774862500000805,"angular_acceleration":0.0},{"time":2.9199999999999817,"x":0.04251993600000992,"y":1.0391428352000085,"angle":0.0,"x_velocity":-0.5861120000000319,"y_velocity":-0.4731391999999902,"angular_velocity":0.0,"x_acceleration":1.8614000000002875,"y_acceleration":-0.5324400000000831,"angular_acceleration":0.0},{"time":2.9299999999999815,"x":0.036749218843760145,"y":1.034385588081259,"angle":0.0,"x_velocity":-0.5683041406250275,"y_velocity":-0.47823299687499093,"angular_velocity":0.0,"x_acceleration":1.6977687500003071,"y_acceleration":-0.4861037500000869,"angular_acceleration":0.0},{"time":2.9399999999999813,"x":0.031148157000009835,"y":1.0295797414000092,"angle":0.0,"x_velocity":-0.5522052500000267,"y_velocity":-0.48285694999999196,"angular_velocity":0.0,"x_acceleration":1.5195500000003506,"y_acceleration":-0.4384700000000905,"angular_acceleration":0.0},{"time":2.949999999999981,"x":0.025698925781260762,"y":1.024730058593759,"angle":0.0,"x_velocity":-0.5379628906250247,"y_velocity":-0.4869980468749926,"angular_velocity":0.0,"x_acceleration":1.3264062500003675,"y_acceleration":-0.3895312500000938,"angular_acceleration":0.0},{"time":2.959999999999981,"x":0.020382208000009783,"y":1.0198414336000095,"angle":0.0,"x_velocity":-0.5257280000000168,"y_velocity":-0.4906431999999933,"angular_velocity":0.0,"x_acceleration":1.1180000000004071,"y_acceleration":-0.3392800000000975,"angular_acceleration":0.0},{"time":2.9699999999999807,"x":0.015177160218760921,"y":1.0149188916062597,"angle":0.0,"x_velocity":-0.5156548906250205,"y_velocity":-0.49377924687499436,"angular_velocity":0.0,"x_acceleration":0.8939937500004547,"y_acceleration":-0.28770875000010077,"angular_acceleration":0.0},{"time":2.9799999999999804,"x":0.010061379000009474,"y":1.0099675898000098,"angle":0.0,"x_velocity":-0.507901250000014,"y_velocity":-0.4963929499999954,"angular_velocity":0.0,"x_acceleration":0.6540500000004741,"y_acceleration":-0.2348100000001052,"angular_acceleration":0.0},{"time":2.9899999999999802,"x":0.005010867156259202,"y":1.0049928181187597,"angle":0.0,"x_velocity":-0.5026281406250028,"y_velocity":-0.49847099687499635,"angular_velocity":0.0,"x_acceleration":0.39783125000051456,"y_acceleration":-0.18057625000010868,"angular_acceleration":0.0},{"time":2.99999999999998,"x":1.021405182655144e-14,"y":1.00000000000001,"angle":0.0,"x_velocity":-0.5,"y_velocity":-0.49999999999999745,"angular_velocity":0.0,"x_acceleration":0.12500000000056843,"y_acceleration":-0.12500000000011235,"angular_acceleration":0.0},{"time":3.00999999999998,"x":-0.004990975481239944,"y":0.99498704518126,"angle":0.0,"x_velocity":-0.49792142812500584,"y_velocity":-0.5032507218749896,"angular_velocity":0.0,"x_acceleration":0.28920374999967746,"y_acceleration":-0.5208637499992262,"angular_acceleration":0.0},{"time":3.0199999999999796,"x":-0.009953105399989913,"y":0.9899222158000105,"angle":0.0,"x_velocity":-0.49424585000000903,"y_velocity":-0.5103325499999818,"angular_velocity":0.0,"x_acceleration":0.44442999999969224,"y_acceleration":-0.8913099999992695,"angular_acceleration":0.0},{"time":3.0299999999999794,"x":-0.014870865693739913,"y":0.9847684627937607,"angle":0.0,"x_velocity":-0.4890621781250122,"y_velocity":-0.5209939718749745,"angular_velocity":0.0,"x_acceleration":0.590851249999707,"y_acceleration":-1.2368712499993124,"angular_acceleration":0.0},{"time":3.039999999999979,"x":-0.01972961279998995,"y":0.9794912256000112,"angle":0.0,"x_velocity":-0.4824576000000152,"y_velocity":-0.5349887999999676,"angular_velocity":0.0,"x_acceleration":0.7286399999997217,"y_acceleration":-1.5580799999993555,"angular_acceleration":0.0},{"time":3.049999999999979,"x":-0.02451556640624001,"y":0.9740583789062616,"angle":0.0,"x_velocity":-0.47451757812501805,"y_velocity":-0.5520761718749609,"angular_velocity":0.0,"x_acceleration":0.8579687499997365,"y_acceleration":-1.8554687499993985,"angular_acceleration":0.0},{"time":3.0599999999999787,"x":-0.029215792199990105,"y":0.9684401794000123,"angle":0.0,"x_velocity":-0.46532585000002086,"y_velocity":-0.5720205499999548,"angular_velocity":0.0,"x_acceleration":0.9790099999997512,"y_acceleration":-2.1295699999994415,"angular_acceleration":0.0},{"time":3.0699999999999785,"x":-0.03381818461874023,"y":0.9626092125187627,"angle":0.0,"x_velocity":-0.4549644281250234,"y_velocity":-0.5945917218749489,"angular_velocity":0.0,"x_acceleration":1.0919362499997658,"y_acceleration":-2.3809162499994843,"angular_acceleration":0.0},{"time":3.0799999999999783,"x":-0.038311449599990374,"y":0.9565403392000135,"angle":0.0,"x_velocity":-0.44351360000002593,"y_velocity":-0.6195647999999435,"angular_velocity":0.0,"x_acceleration":1.1969199999997808,"y_acceleration":-2.6100399999995267,"angular_acceleration":0.0},{"time":3.089999999999978,"x":-0.04268508733124055,"y":0.9502106426312642,"angle":0.0,"x_velocity":-0.43105192812502835,"y_velocity":-0.6467202218749384,"angular_velocity":0.0,"x_acceleration":1.2941337499997951,"y_acceleration":-2.817473749999569,"angular_acceleration":0.0},{"time":3.099999999999978,"x":-0.04692937499999076,"y":0.9435993750000149,"angle":0.0,"x_velocity":-0.4176562500000306,"y_velocity":-0.6758437499999337,"angular_velocity":0.0,"x_acceleration":1.38374999999981,"y_acceleration":-3.003749999999611,"angular_acceleration":0.0},{"time":3.1099999999999777,"x":-0.05103534954374099,"y":0.9366879042437658,"angle":0.0,"x_velocity":-0.40340167812503275,"y_velocity":-0.7067264718749292,"angular_velocity":0.0,"x_acceleration":1.4659412499998246,"y_acceleration":-3.169401249999653,"angular_acceleration":0.0},{"time":3.1199999999999775,"x":-0.05499479039999124,"y":0.9294596608000167,"angle":0.0,"x_velocity":-0.3883616000000347,"y_velocity":-0.7391647999999252,"angular_velocity":0.0,"x_acceleration":1.5408799999998393,"y_acceleration":-3.3149599999996937,"angular_acceleration":0.0},{"time":3.1299999999999772,"x":-0.05880020225624152,"y":0.9219000843562676,"angle":0.0,"x_velocity":-0.37260767812503665,"y_velocity":-0.7729604718749218,"angular_velocity":0.0,"x_acceleration":1.6087387499998536,"y_acceleration":-3.440958749999735,"angular_acceleration":0.0},{"time":3.139999999999977,"x":-0.06244479779999181,"y":0.9139965706000186,"angle":0.0,"x_velocity":-0.3562098500000383,"y_velocity":-0.8079205499999186,"angular_velocity":0.0,"x_acceleration":1.6696899999998678,"y_acceleration":-3.5479299999997758,"angular_acceleration":0.0},{"time":3.149999999999977,"x":-0.06592248046874213,"y":0.9057384179687695,"angle":0.0,"x_velocity":-0.33923632812504,"y_velocity":-0.8438574218749157,"angular_velocity":0.0,"x_acceleration":1.723906249999882,"y_acceleration":-3.6364062499998164,"angular_acceleration":0.0},{"time":3.1599999999999766,"x":-0.06922782719999247,"y":0.8971167744000207,"angle":0.0,"x_velocity":-0.32175360000004144,"y_velocity":-0.8805887999999135,"angular_velocity":0.0,"x_acceleration":1.7715599999998963,"y_acceleration":-3.7069199999998554,"angular_acceleration":0.0},{"time":3.1699999999999764,"x":-0.07235607118124283,"y":0.8881245840812717,"angle":0.0,"x_velocity":-0.3038264281250428,"y_velocity":-0.9179377218749114,"angular_velocity":0.0,"x_acceleration":1.8128237499999098,"y_acceleration":-3.7600037499998944,"angular_acceleration":0.0},{"time":3.179999999999976,"x":-0.0753030845999932,"y":0.8787565342000228,"angle":0.0,"x_velocity":-0.28551785000004404,"y_velocity":-0.9557325499999096,"angular_velocity":0.0,"x_acceleration":1.847869999999924,"y_acceleration":-3.796189999999934,"angular_acceleration":0.0},{"time":3.189999999999976,"x":-0.0780653613937436,"y":0.8690090016937739,"angle":0.0,"x_velocity":-0.2668891781250451,"y_velocity":-0.9938069718749082,"angular_velocity":0.0,"x_acceleration":1.8768712499999372,"y_acceleration":-3.8160112499999714,"angular_acceleration":0.0},{"time":3.1999999999999758,"x":-0.08063999999999398,"y":0.8588800000000252,"angle":0.0,"x_velocity":-0.24800000000004604,"y_velocity":-1.0319999999999074,"angular_velocity":0.0,"x_acceleration":1.8999999999999508,"y_acceleration":-3.820000000000009,"angular_acceleration":0.0},{"time":3.2099999999999755,"x":-0.0830246861062444,"y":0.8483691258062762,"angle":0.0,"x_velocity":-0.2289081781250469,"y_velocity":-1.070155971874907,"angular_velocity":0.0,"x_acceleration":1.9174287499999645,"y_acceleration":-3.8086887500000466,"angular_acceleration":0.0},{"time":3.2199999999999753,"x":-0.08521767539999482,"y":0.8374775058000273,"angle":0.0,"x_velocity":-0.20966985000004762,"y_velocity":-1.1081245499999068,"angular_velocity":0.0,"x_acceleration":1.9293299999999776,"y_acceleration":-3.782610000000081,"angular_acceleration":0.0},{"time":3.229999999999975,"x":-0.08721777631874525,"y":0.8262077434187785,"angle":0.0,"x_velocity":-0.1903394281250482,"y_velocity":-1.1457607218749069,"angular_velocity":0.0,"x_acceleration":1.9358762499999909,"y_acceleration":-3.742296250000118,"angular_acceleration":0.0},{"time":3.239999999999975,"x":-0.08902433279999572,"y":0.8145638656000298,"angle":0.0,"x_velocity":-0.17096960000004857,"y_velocity":-1.1829247999999075,"angular_velocity":0.0,"x_acceleration":1.9372400000000023,"y_acceleration":-3.6882800000001517,"angular_acceleration":0.0},{"time":3.2499999999999747,"x":-0.09063720703124616,"y":0.8025512695312809,"angle":0.0,"x_velocity":-0.15161132812504896,"y_velocity":-1.2194824218749085,"angular_velocity":0.0,"x_acceleration":1.9335937500000155,"y_acceleration":-3.6210937500001865,"angular_acceleration":0.0},{"time":3.2599999999999745,"x":-0.09205676219999662,"y":0.7901766694000322,"angle":0.0,"x_velocity":-0.13231385000004908,"y_velocity":-1.2553045499999096,"angular_velocity":0.0,"x_acceleration":1.9251100000000279,"y_acceleration":-3.54127000000022,"angular_acceleration":0.0},{"time":3.2699999999999743,"x":-0.0932838452437471,"y":0.7774480431437831,"angle":0.0,"x_velocity":-0.11312467812504923,"y_velocity":-1.2902674718749114,"angular_velocity":0.0,"x_acceleration":1.9119612500000396,"y_acceleration":-3.44934125000025,"angular_acceleration":0.0},{"time":3.279999999999974,"x":-0.09431976959999755,"y":0.7643745792000344,"angle":0.0,"x_velocity":-0.09408960000004925,"y_velocity":-1.324252799999913,"angular_velocity":0.0,"x_acceleration":1.8943200000000513,"y_acceleration":-3.345840000000285,"angular_acceleration":0.0},{"time":3.289999999999974,"x":-0.09516629795624804,"y":0.7509666232562855,"angle":0.0,"x_velocity":-0.07525267812504904,"y_velocity":-1.3571474718749155,"angular_velocity":0.0,"x_acceleration":1.8723587500000631,"y_acceleration":-3.2312987500003145,"angular_acceleration":0.0},{"time":3.2999999999999736,"x":-0.0958256249999985,"y":0.7372356250000367,"angle":0.0,"x_velocity":-0.05665625000004874,"y_velocity":-1.388843749999918,"angular_velocity":0.0,"x_acceleration":1.8462500000000746,"y_acceleration":-3.1062500000003443,"angular_acceleration":0.0},{"time":3.3099999999999734,"x":-0.09630036016874899,"y":0.7231940848687877,"angle":0.0,"x_velocity":-0.038340928125048315,"y_velocity":-1.4192392218749208,"angular_velocity":0.0,"x_acceleration":1.816166250000086,"y_acceleration":-2.9712262500003717,"angular_acceleration":0.0},{"time":3.319999999999973,"x":-0.09659351039999947,"y":0.7088555008000388,"angle":0.0,"x_velocity":-0.020345600000047745,"y_velocity":-1.4482367999999246,"angular_velocity":0.0,"x_acceleration":1.7822800000000956,"y_acceleration":-2.8267600000004,"angular_acceleration":0.0},{"time":3.329999999999973,"x":-0.09670846288124994,"y":0.6942343149812898,"angle":0.0,"x_velocity":-0.0027074281250471927,"y_velocity":-1.4757447218749278,"angular_velocity":0.0,"x_acceleration":1.7447637500001065,"y_acceleration":-2.673383750000427,"angular_acceleration":0.0},{"time":3.3399999999999728,"x":-0.09664896780000039,"y":0.6793458606000409,"angle":0.0,"x_velocity":0.014538149999953467,"y_velocity":-1.5016765499999316,"angular_velocity":0.0,"x_acceleration":1.703790000000117,"y_acceleration":-2.5116300000004523,"angular_acceleration":0.0},{"time":3.3499999999999726,"x":-0.09641912109375084,"y":0.6642063085937919,"angle":0.0,"x_velocity":0.031357421874954605,"y_velocity":-1.5259511718749357,"angular_velocity":0.0,"x_acceleration":1.6595312500001265,"y_acceleration":-2.342031250000475,"angular_acceleration":0.0},{"time":3.3599999999999723,"x":-0.09602334720000133,"y":0.6488326144000428,"angle":0.0,"x_velocity":0.047718399999955516,"y_velocity":-1.5484927999999407,"angular_velocity":0.0,"x_acceleration":1.6121600000001346,"y_acceleration":-2.165120000000499,"angular_acceleration":0.0},{"time":3.369999999999972,"x":-0.09546638180625178,"y":0.6332424647062938,"angle":0.0,"x_velocity":0.06359082187495646,"y_velocity":-1.5692309718749446,"angular_velocity":0.0,"x_acceleration":1.5618487500001443,"y_acceleration":-1.9814287500005223,"angular_acceleration":0.0},{"time":3.379999999999972,"x":-0.0947532546000022,"y":0.6174542242000446,"angle":0.0,"x_velocity":0.07894614999995772,"y_velocity":-1.5881005499999503,"angular_velocity":0.0,"x_acceleration":1.5087700000001525,"y_acceleration":-1.7914900000005414,"angular_acceleration":0.0},{"time":3.3899999999999717,"x":-0.09388927201875269,"y":0.6014868823187954,"angle":0.0,"x_velocity":0.09375757187495887,"y_velocity":-1.6050417218749546,"angular_velocity":0.0,"x_acceleration":1.4530962500001618,"y_acceleration":-1.5958362500005645,"angular_acceleration":0.0},{"time":3.3999999999999715,"x":-0.09288000000000309,"y":0.5853600000000462,"angle":0.0,"x_velocity":0.10799999999996024,"y_velocity":-1.6199999999999601,"angular_velocity":0.0,"x_acceleration":1.3950000000001683,"y_acceleration":-1.3950000000005796,"angular_acceleration":0.0},{"time":3.4099999999999713,"x":-0.09173124673125355,"y":0.569093656431297,"angle":0.0,"x_velocity":0.12165007187496196,"y_velocity":-1.6329262218749665,"angular_velocity":0.0,"x_acceleration":1.334653750000176,"y_acceleration":-1.1895137500005974,"angular_acceleration":0.0},{"time":3.419999999999971,"x":-0.09044904540000392,"y":0.5527083958000475,"angle":0.0,"x_velocity":0.13468614999996323,"y_velocity":-1.6437765499999717,"angular_velocity":0.0,"x_acceleration":1.2722300000001838,"y_acceleration":-0.9799100000006105,"angular_acceleration":0.0},{"time":3.429999999999971,"x":-0.08903963694375427,"y":0.5362251740437983,"angle":0.0,"x_velocity":0.14708832187496465,"y_velocity":-1.6525124718749775,"angular_velocity":0.0,"x_acceleration":1.2079012500001927,"y_acceleration":-0.7667212500006313,"angular_acceleration":0.0},{"time":3.4399999999999706,"x":-0.08750945280000468,"y":0.5196653056000489,"angle":0.0,"x_velocity":0.15883839999996663,"y_velocity":-1.659100799999984,"angular_velocity":0.0,"x_acceleration":1.141840000000196,"y_acceleration":-0.5504800000006362,"angular_acceleration":0.0},{"time":3.4499999999999704,"x":-0.08586509765625505,"y":0.5030504101562993,"angle":0.0,"x_velocity":0.16991992187496824,"y_velocity":-1.6635136718749899,"angular_velocity":0.0,"x_acceleration":1.0742187500002034,"y_acceleration":-0.3317187500006522,"angular_acceleration":0.0},{"time":3.45999999999997,"x":-0.08411333220000536,"y":0.48640235940004967,"angle":0.0,"x_velocity":0.18031814999997015,"y_velocity":-1.6657285499999965,"angular_velocity":0.0,"x_acceleration":1.0052100000002082,"y_acceleration":-0.11097000000066437,"angular_acceleration":0.0},{"time":3.46999999999997,"x":-0.08226105586875573,"y":0.46974322376879996,"angle":0.0,"x_velocity":0.190020071874972,"y_velocity":-1.6657282218750031,"angular_velocity":0.0,"x_acceleration":0.9349862500002133,"y_acceleration":0.11123374999933056,"angular_acceleration":0.0},{"time":3.47999999999997,"x":-0.08031528960000603,"y":0.4530952192000503,"angle":0.0,"x_velocity":0.19901439999997406,"y_velocity":-1.6635008000000107,"angular_velocity":0.0,"x_acceleration":0.8637200000002152,"y_acceleration":0.33435999999932875,"angular_acceleration":0.0},{"time":3.4899999999999696,"x":-0.07828315858125634,"y":0.4364806538813005,"angle":0.0,"x_velocity":0.20729157187497582,"y_velocity":-1.6590397218750164,"angular_velocity":0.0,"x_acceleration":0.7915837500002221,"y_acceleration":0.5578762499993175,"angular_acceleration":0.0},{"time":3.4999999999999694,"x":-0.07617187500000658,"y":0.4199218750000506,"angle":0.0,"x_velocity":0.21484374999997802,"y_velocity":-1.6523437500000242,"angular_velocity":0.0,"x_acceleration":0.7187500000002238,"y_acceleration":0.7812499999993143,"angular_acceleration":0.0},{"time":3.509999999999969,"x":-0.07398872079375682,"y":0.4034412154938005,"angle":0.0,"x_velocity":0.22166482187498027,"y_velocity":-1.6434169718750313,"angular_velocity":0.0,"x_acceleration":0.645391250000225,"y_acceleration":1.0039487499993154,"angular_acceleration":0.0},{"time":3.519999999999969,"x":-0.07174103040000712,"y":0.3870609408000507,"angle":0.0,"x_velocity":0.22775039999998248,"y_velocity":-1.6322688000000383,"angular_velocity":0.0,"x_acceleration":0.5716800000002298,"y_acceleration":1.2254399999993115,"angular_acceleration":0.0},{"time":3.5299999999999687,"x":-0.06943617350625722,"y":0.3708031956063005,"angle":0.0,"x_velocity":0.2330978218749844,"y_velocity":-1.6189139718750445,"angular_velocity":0.0,"x_acceleration":0.4977887500002316,"y_acceleration":1.445191249999315,"angular_acceleration":0.0},{"time":3.5399999999999685,"x":-0.06708153780000747,"y":0.3546899506000505,"angle":0.0,"x_velocity":0.2377061499999864,"y_velocity":-1.603372550000053,"angular_velocity":0.0,"x_acceleration":0.4238900000002328,"y_acceleration":1.6626699999993235,"angular_acceleration":0.0},{"time":3.5499999999999683,"x":-0.0646845117187577,"y":0.33874294921880027,"angle":0.0,"x_velocity":0.24157617187498903,"y_velocity":-1.5856699218750592,"angular_velocity":0.0,"x_acceleration":0.350156250000234,"y_acceleration":1.8773437499993229,"angular_acceleration":0.0},{"time":3.559999999999968,"x":-0.06225246720000781,"y":0.3229836544000501,"angle":0.0,"x_velocity":0.24471039999999133,"y_velocity":-1.565836800000067,"angular_velocity":0.0,"x_acceleration":0.27676000000023304,"y_acceleration":2.088679999999327,"angular_acceleration":0.0},{"time":3.569999999999968,"x":-0.059792742431257956,"y":0.30743319533129937,"angle":0.0,"x_velocity":0.24711307187499365,"y_velocity":-1.543909221875074,"angular_velocity":0.0,"x_acceleration":0.20387375000023233,"y_acceleration":2.296146249999346,"angular_acceleration":0.0},{"time":3.5799999999999677,"x":-0.057312624600008064,"y":0.29211231420004913,"angle":0.0,"x_velocity":0.2487901499999955,"y_velocity":-1.5199285500000803,"angular_velocity":0.0,"x_acceleration":0.13167000000023332,"y_acceleration":2.499209999999348,"angular_acceleration":0.0},{"time":3.5899999999999674,"x":-0.054819332643758156,"y":0.2770413129437989,"angle":0.0,"x_velocity":0.24974932187499843,"y_velocity":-1.4939414718750883,"angular_velocity":0.0,"x_acceleration":0.0603212500002277,"y_acceleration":2.6973387499993677,"angular_acceleration":0.0},{"time":3.5999999999999672,"x":-0.05232000000000818,"y":0.262240000000048,"angle":0.0,"x_velocity":0.24999999999999978,"y_velocity":-1.4660000000000943,"angular_velocity":0.0,"x_acceleration":-0.009999999999770637,"y_acceleration":2.8899999999993717,"angular_acceleration":0.0},{"time":3.609999999999967,"x":-0.04982165735625829,"y":0.24772763705629752,"angle":0.0,"x_velocity":0.24955332187500312,"y_velocity":-1.436161471875102,"angular_velocity":0.0,"x_acceleration":-0.0791212499997771,"y_acceleration":3.0766612499993933,"angular_acceleration":0.0},{"time":3.619999999999967,"x":-0.047331215400008286,"y":0.2335228858000466,"angle":0.0,"x_velocity":0.24842215000000478,"y_velocity":-1.4044885500001083,"angular_velocity":0.0,"x_acceleration":-0.14686999999977957,"y_acceleration":3.2567899999994125,"angular_acceleration":0.0},{"time":3.6299999999999666,"x":-0.0448554475687582,"y":0.21964375466879577,"angle":0.0,"x_velocity":0.24662107187500726,"y_velocity":-1.3710492218751131,"angular_velocity":0.0,"x_acceleration":-0.2130737499997819,"y_acceleration":3.429853749999438,"angular_acceleration":0.0},{"time":3.6399999999999664,"x":-0.04240097280000829,"y":0.20610754560004518,"angle":0.0,"x_velocity":0.24416640000000878,"y_velocity":-1.3359168000001218,"angular_velocity":0.0,"x_acceleration":-0.277559999999788,"y_acceleration":3.5953199999994574,"angular_acceleration":0.0},{"time":3.649999999999966,"x":-0.039974238281258234,"y":0.1929308007812942,"angle":0.0,"x_velocity":0.24107617187501185,"y_velocity":-1.2991699218751274,"angular_velocity":0.0,"x_acceleration":-0.3401562499997919,"y_acceleration":3.7526562499994895,"angular_acceleration":0.0},{"time":3.659999999999966,"x":-0.03758150220000803,"y":0.1801292494000426,"angle":0.0,"x_velocity":0.23737015000001294,"y_velocity":-1.2608925500001327,"angular_velocity":0.0,"x_acceleration":-0.4006899999997948,"y_acceleration":3.9013299999995006,"angular_acceleration":0.0},{"time":3.6699999999999657,"x":-0.035228816493758086,"y":0.16771775439379188,"angle":0.0,"x_velocity":0.23306982187501624,"y_velocity":-1.2211739718751398,"angular_velocity":0.0,"x_acceleration":-0.458988749999806,"y_acceleration":4.040808749999535,"angular_acceleration":0.0},{"time":3.6799999999999655,"x":-0.03292200960000774,"y":0.15571025920004067,"angle":0.0,"x_velocity":0.22819840000001812,"y_velocity":-1.180108800000145,"angular_velocity":0.0,"x_acceleration":-0.5148799999998115,"y_acceleration":4.1705599999995755,"angular_acceleration":0.0},{"time":3.6899999999999653,"x":-0.030666669206257824,"y":0.1441197345062898,"angle":0.0,"x_velocity":0.22278082187502024,"y_velocity":-1.13779697187515,"angular_velocity":0.0,"x_acceleration":-0.5681912499998187,"y_acceleration":4.290051249999603,"angular_acceleration":0.0},{"time":3.699999999999965,"x":-0.028468125000007588,"y":0.13295812500003845,"angle":0.0,"x_velocity":0.21684375000002154,"y_velocity":-1.094343750000152,"angular_velocity":0.0,"x_acceleration":-0.6187499999998316,"y_acceleration":4.398749999999641,"angular_acceleration":0.0},{"time":3.709999999999965,"x":-0.026331431418757212,"y":0.12223629611878684,"angle":0.0,"x_velocity":0.21041557187502402,"y_velocity":-1.0498597218751584,"angular_velocity":0.0,"x_acceleration":-0.6663837499998415,"y_acceleration":4.49612374999969,"angular_acceleration":0.0},{"time":3.7199999999999647,"x":-0.024261350400007042,"y":0.11196398080003478,"angle":0.0,"x_velocity":0.2035264000000241,"y_velocity":-1.0044608000001611,"angular_velocity":0.0,"x_acceleration":-0.710919999999847,"y_acceleration":4.581639999999723,"angular_acceleration":0.0},{"time":3.7299999999999645,"x":-0.022262334131257,"y":0.10214972623128382,"angle":0.0,"x_velocity":0.19620807187502587,"y_velocity":-0.9582682218751639,"angular_velocity":0.0,"x_acceleration":-0.7521862499998573,"y_acceleration":4.654766249999753,"angular_acceleration":0.0},{"time":3.7399999999999642,"x":-0.020338507800006678,"y":0.09280084060003191,"angle":0.0,"x_velocity":0.1884941500000279,"y_velocity":-0.9114085500001687,"angular_velocity":0.0,"x_acceleration":-0.7900099999998691,"y_acceleration":4.714969999999809,"angular_acceleration":0.0},{"time":3.749999999999964,"x":-0.018493652343756495,"y":0.08392333984378131,"angle":0.0,"x_velocity":0.1804199218750293,"y_velocity":-0.8640136718751714,"angular_velocity":0.0,"x_acceleration":-0.8242187499998828,"y_acceleration":4.761718749999851,"angular_acceleration":0.0},{"time":3.759999999999964,"x":-0.016731187200006103,"y":0.07552189440002932,"angle":0.0,"x_velocity":0.17202240000003055,"y_velocity":-0.8162208000001714,"angular_velocity":0.0,"x_acceleration":-0.854639999999895,"y_acceleration":4.794479999999908,"angular_acceleration":0.0},{"time":3.7699999999999636,"x":-0.015054153056255959,"y":0.06759977595627809,"angle":0.0,"x_velocity":0.16334032187503222,"y_velocity":-0.768172471875177,"angular_velocity":0.0,"x_acceleration":-0.8811012499999116,"y_acceleration":4.812721249999953,"angular_acceleration":0.0},{"time":3.7799999999999634,"x":-0.013465194600005725,"y":0.060158804200026283,"angle":0.0,"x_velocity":0.15441415000003378,"y_velocity":-0.7200165500001763,"angular_velocity":0.0,"x_acceleration":-0.9034299999999273,"y_acceleration":4.815910000000017,"angular_acceleration":0.0},{"time":3.789999999999963,"x":-0.011966543268755292,"y":0.05319929356877462,"angle":0.0,"x_velocity":0.1452860718750335,"y_velocity":-0.6719062218751795,"angular_velocity":0.0,"x_acceleration":-0.9214537499999427,"y_acceleration":4.8035137500000715,"angular_acceleration":0.0},{"time":3.799999999999963,"x":-0.010560000000005176,"y":0.046720000000023854,"angle":0.0,"x_velocity":0.1360000000000361,"y_velocity":-0.62400000000018,"angular_velocity":0.0,"x_acceleration":-0.9349999999999614,"y_acceleration":4.775000000000141,"angular_acceleration":0.0},{"time":3.8099999999999627,"x":-0.009246917981254987,"y":0.04071806768127151,"angle":0.0,"x_velocity":0.12660157187503573,"y_velocity":-0.5764617218751766,"angular_velocity":0.0,"x_acceleration":-0.9438962499999768,"y_acceleration":4.72983625000019,"angular_acceleration":0.0},{"time":3.8199999999999625,"x":-0.008028185400004273,"y":0.03518897580001967,"angle":0.0,"x_velocity":0.11713815000003658,"y_velocity":-0.5294605500001754,"angular_velocity":0.0,"x_acceleration":-0.9479699999999944,"y_acceleration":4.667490000000271,"angular_acceleration":0.0},{"time":3.8299999999999623,"x":-0.006904208193754258,"y":0.030126485293767935,"angle":0.0,"x_velocity":0.10765882187503673,"y_velocity":-0.4831709718751718,"angular_velocity":0.0,"x_acceleration":-0.9470487500000146,"y_acceleration":4.587428750000335,"angular_acceleration":0.0},{"time":3.839999999999962,"x":-0.005874892800003639,"y":0.02552258560001608,"angle":0.0,"x_velocity":0.09821440000003445,"y_velocity":-0.4377728000001664,"angular_velocity":0.0,"x_acceleration":-0.9409600000000289,"y_acceleration":4.489120000000398,"angular_acceleration":0.0},{"time":3.849999999999962,"x":-0.004939628906253213,"y":0.02136744140626523,"angle":0.0,"x_velocity":0.08885742187503443,"y_velocity":-0.39345117187516543,"angular_velocity":0.0,"x_acceleration":-0.9295312500000463,"y_acceleration":4.372031250000475,"angular_acceleration":0.0},{"time":3.8599999999999617,"x":-0.004097272200002999,"y":0.01764933940001301,"angle":0.0,"x_velocity":0.07964215000003572,"y_velocity":-0.3503965500001609,"angular_velocity":0.0,"x_acceleration":-0.9125900000000762,"y_acceleration":4.235630000000548,"angular_acceleration":0.0},{"time":3.8699999999999615,"x":-0.0033461271187525954,"y":0.014354635018761552,"angle":0.0,"x_velocity":0.07062457187503579,"y_velocity":-0.30880472187516084,"angular_velocity":0.0,"x_acceleration":-0.8899637500000992,"y_acceleration":4.079383750000645,"angular_acceleration":0.0},{"time":3.8799999999999613,"x":-0.0026839296000024104,"y":0.011467699200010895,"angle":0.0,"x_velocity":0.061862400000032736,"y_velocity":-0.26887680000015024,"angular_velocity":0.0,"x_acceleration":-0.861480000000121,"y_acceleration":3.9027600000007325,"angular_acceleration":0.0},{"time":3.889999999999961,"x":-0.0021078298312523502,"y":0.008970865131259664,"angle":0.0,"x_velocity":0.05341507187503325,"y_velocity":-0.2308192218751497,"angular_velocity":0.0,"x_acceleration":-0.8269662500001473,"y_acceleration":3.7052262500008197,"angular_acceleration":0.0},{"time":3.899999999999961,"x":-0.0016143750000019441,"y":0.006844375000008007,"angle":0.0,"x_velocity":0.04534375000003177,"y_velocity":-0.1948437500001372,"angular_velocity":0.0,"x_acceleration":-0.7862500000001731,"y_acceleration":3.4862500000008936,"angular_acceleration":0.0},{"time":3.9099999999999606,"x":-0.0011994920437515821,"y":0.005066326743757621,"angle":0.0,"x_velocity":0.03771132187502868,"y_velocity":-0.16116747187513347,"angular_velocity":0.0,"x_acceleration":-0.7391587500002039,"y_acceleration":3.245298750000984,"angular_acceleration":0.0},{"time":3.9199999999999604,"x":-0.0008584704000007548,"y":0.0036126208000051285,"angle":0.0,"x_velocity":0.03058240000002499,"y_velocity":-0.1300128000001184,"angular_velocity":0.0,"x_acceleration":-0.6855200000002206,"y_acceleration":2.9818400000010854,"angular_acceleration":0.0},{"time":3.92999999999996,"x":-0.0005859447562510667,"y":0.002456906856253216,"angle":0.0,"x_velocity":0.024023321875024095,"y_velocity":-0.10160747187510921,"angular_velocity":0.0,"x_acceleration":-0.6251612500002572,"y_acceleration":2.695341250001192,"angular_acceleration":0.0},{"time":3.93999999999996,"x":-0.00037587780000070126,"y":0.0015705306000040054,"angle":0.0,"x_velocity":0.018102150000021133,"y_velocity":-0.0761845500000966,"angular_velocity":0.0,"x_acceleration":-0.5579100000002839,"y_acceleration":2.3852700000012845,"angular_acceleration":0.0},{"time":3.9499999999999598,"x":-0.00022154296875043222,"y":0.000922480468751985,"angle":0.0,"x_velocity":0.012888671875018964,"y_velocity":-0.05398242187508373,"angular_velocity":0.0,"x_acceleration":-0.48359375000031335,"y_acceleration":2.0510937500013853,"angular_acceleration":0.0},{"time":3.9599999999999596,"x":-0.00011550720000053083,"y":0.00047933440000225147,"angle":0.0,"x_velocity":0.008454400000015738,"y_velocity":-0.03524480000006491,"angular_velocity":0.0,"x_acceleration":-0.4020400000003441,"y_acceleration":1.6922800000015172,"angular_acceleration":0.0},{"time":3.9699999999999593,"x":-0.000049613681249782715,"y":0.00020520658125011693,"angle":0.0,"x_velocity":0.0048725718750119995,"y_velocity":-0.020220721875055858,"angular_velocity":0.0,"x_acceleration":-0.31307625000038186,"y_acceleration":1.308296250001618,"angular_acceleration":0.0},{"time":3.979999999999959,"x":-0.000014964600000277883,"y":0.00006169419999935144,"angle":0.0,"x_velocity":0.0022181500000080234,"y_velocity":-0.009164550000029692,"angular_velocity":0.0,"x_acceleration":-0.21653000000040734,"y_acceleration":0.8986100000017245,"angular_acceleration":0.0},{"time":3.989999999999959,"x":-0.0000019038937502102726,"y":0.000007824193749783603,"angle":0.0,"x_velocity":0.0005678218750047037,"y_velocity":-0.002335971875019993,"angular_velocity":0.0,"x_acceleration":-0.11222875000045462,"y_acceleration":0.4626887500018597,"angular_acceleration":0.0},{"time":3.9999999999999587,"x":-2.220446049250313e-16,"y":-8.881784197001252e-16,"angle":0.0,"x_velocity":8.881784197001252e-16,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":-4.796163466380676e-13,"y_acceleration":1.9753088054130785e-12,"angular_acceleration":0.0}]} \ No newline at end of file diff --git a/src/main/deploy/Paths/test.polarpath b/src/main/deploy/Paths/test.polarpath index f8c0325..2585b2f 100644 --- a/src/main/deploy/Paths/test.polarpath +++ b/src/main/deploy/Paths/test.polarpath @@ -1 +1 @@ -{"meta_data":{"path_name":"test","sample_rate":0.01,"robot_name":"Cardigan","field_name":"reefscape-updated"},"commands":[],"key_points":[{"index":0,"delta_time":0.0,"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":1,"delta_time":1.0,"time":1.0,"x":1.0,"y":1.0,"angle":0.0,"x_velocity":1.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.25,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":2,"delta_time":2.0,"time":2.0,"x":2.0,"y":0.0,"angle":0.0,"x_velocity":1.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":-0.25,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":3,"delta_time":3.0,"time":3.0,"x":3.0,"y":1.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0}],"sampled_points":[{"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"time":0.01,"x":0.000006042812500000001,"y":0.000009850600000000002,"angle":0.0,"x_velocity":0.00180465625,"y_velocity":0.0029403,"angular_velocity":0.0,"x_acceleration":0.3576625,"y_acceleration":0.58212,"angular_acceleration":0.0},{"time":0.02,"x":0.000047690000000000006,"y":0.00007761920000000002,"angle":0.0,"x_velocity":0.0070885,"y_velocity":0.0115248,"angular_velocity":0.0,"x_acceleration":0.6959,"y_acceleration":1.12896,"angular_acceleration":0.0},{"time":0.03,"x":0.0001587684375,"y":0.0002579958,"angle":0.0,"x_velocity":0.01565915625,"y_velocity":0.025404300000000005,"angular_velocity":0.0,"x_acceleration":1.0150875000000001,"y_acceleration":1.6412399999999998,"angular_acceleration":0.0},{"time":0.04,"x":0.0003712,"y":0.0006022144000000002,"angle":0.0,"x_velocity":0.027328,"y_velocity":0.0442368,"angular_velocity":0.0,"x_acceleration":1.3155999999999999,"y_acceleration":2.1196800000000002,"angular_acceleration":0.0},{"time":0.05,"x":0.0007150390625000002,"y":0.001158125,"angle":0.0,"x_velocity":0.041910156250000004,"y_velocity":0.0676875,"angular_velocity":0.0,"x_acceleration":1.5978125000000003,"y_acceleration":2.5650000000000004,"angular_acceleration":0.0},{"time":0.060000000000000005,"x":0.0012185100000000006,"y":0.0019702656000000008,"angle":0.0,"x_velocity":0.05922450000000001,"y_velocity":0.09542880000000002,"angular_velocity":0.0,"x_acceleration":1.8621,"y_acceleration":2.9779200000000006,"angular_acceleration":0.0},{"time":0.07,"x":0.0019080446875000007,"y":0.003079934200000001,"angle":0.0,"x_velocity":0.07909365624999999,"y_velocity":0.1271403,"angular_velocity":0.0,"x_acceleration":2.1088375000000004,"y_acceleration":3.35916,"angular_acceleration":0.0},{"time":0.08,"x":0.0028083200000000004,"y":0.004525260800000001,"angle":0.0,"x_velocity":0.10134400000000002,"y_velocity":0.1625088,"angular_velocity":0.0,"x_acceleration":2.3384,"y_acceleration":3.70944,"angular_acceleration":0.0},{"time":0.09,"x":0.0039422953125,"y":0.0063412794,"angle":0.0,"x_velocity":0.12580565624999998,"y_velocity":0.2012283,"angular_velocity":0.0,"x_acceleration":2.5511625,"y_acceleration":4.02948,"angular_acceleration":0.0},{"time":0.09999999999999999,"x":0.005331249999999999,"y":0.008559999999999998,"angle":0.0,"x_velocity":0.15231249999999996,"y_velocity":0.24299999999999994,"angular_velocity":0.0,"x_acceleration":2.7475,"y_acceleration":4.32,"angular_acceleration":0.0},{"time":0.10999999999999999,"x":0.0069948209374999975,"y":0.011210480599999996,"angle":0.0,"x_velocity":0.18070215624999994,"y_velocity":0.28753229999999996,"angular_velocity":0.0,"x_acceleration":2.9277875,"y_acceleration":4.581720000000001,"angular_acceleration":0.0},{"time":0.11999999999999998,"x":0.008951039999999997,"y":0.014318899199999994,"angle":0.0,"x_velocity":0.21081599999999998,"y_velocity":0.3345407999999999,"angular_velocity":0.0,"x_acceleration":3.0924,"y_acceleration":4.815359999999998,"angular_acceleration":0.0},{"time":0.12999999999999998,"x":0.011216371562499996,"y":0.01790862579999999,"angle":0.0,"x_velocity":0.24249915624999993,"y_velocity":0.3837482999999998,"angular_velocity":0.0,"x_acceleration":3.2417124999999993,"y_acceleration":5.021639999999999,"angular_acceleration":0.0},{"time":0.13999999999999999,"x":0.013805749999999997,"y":0.022000294399999995,"angle":0.0,"x_velocity":0.2756005,"y_velocity":0.4348847999999999,"angular_velocity":0.0,"x_acceleration":3.3761,"y_acceleration":5.201279999999999,"angular_acceleration":0.0},{"time":0.15,"x":0.016732617187499996,"y":0.026611875000000004,"angle":0.0,"x_velocity":0.30997265625000003,"y_velocity":0.48768750000000005,"angular_velocity":0.0,"x_acceleration":3.4959374999999993,"y_acceleration":5.3549999999999995,"angular_acceleration":0.0},{"time":0.16,"x":0.020008960000000003,"y":0.03175874560000001,"angle":0.0,"x_velocity":0.345472,"y_velocity":0.5419008000000001,"angular_velocity":0.0,"x_acceleration":3.6016,"y_acceleration":5.4835199999999995,"angular_acceleration":0.0},{"time":0.17,"x":0.02364534781250001,"y":0.0374537642,"angle":0.0,"x_velocity":0.38195865625,"y_velocity":0.5972763,"angular_velocity":0.0,"x_acceleration":3.6934625000000003,"y_acceleration":5.587559999999999,"angular_acceleration":0.0},{"time":0.18000000000000002,"x":0.027650970000000004,"y":0.0437073408,"angle":0.0,"x_velocity":0.41929649999999996,"y_velocity":0.6535728,"angular_velocity":0.0,"x_acceleration":3.7719,"y_acceleration":5.66784,"angular_acceleration":0.0},{"time":0.19000000000000003,"x":0.03203367343750002,"y":0.050527509400000024,"angle":0.0,"x_velocity":0.4573531562500001,"y_velocity":0.7105563000000001,"angular_velocity":0.0,"x_acceleration":3.8372875,"y_acceleration":5.72508,"angular_acceleration":0.0},{"time":0.20000000000000004,"x":0.03680000000000001,"y":0.05792000000000003,"angle":0.0,"x_velocity":0.4960000000000002,"y_velocity":0.7680000000000005,"angular_velocity":0.0,"x_acceleration":3.8899999999999997,"y_acceleration":5.76,"angular_acceleration":0.0},{"time":0.21000000000000005,"x":0.041955224062500025,"y":0.06588831060000006,"angle":0.0,"x_velocity":0.5351121562500002,"y_velocity":0.8256843000000003,"angular_velocity":0.0,"x_acceleration":3.9304125,"y_acceleration":5.773319999999999,"angular_acceleration":0.0},{"time":0.22000000000000006,"x":0.04750339000000004,"y":0.07443377920000004,"angle":0.0,"x_velocity":0.5745685000000003,"y_velocity":0.8833968000000004,"angular_velocity":0.0,"x_acceleration":3.958899999999999,"y_acceleration":5.765759999999998,"angular_acceleration":0.0},{"time":0.23000000000000007,"x":0.05344734968750004,"y":0.08355565580000007,"angle":0.0,"x_velocity":0.6142516562500002,"y_velocity":0.9409323000000003,"angular_velocity":0.0,"x_acceleration":3.9758374999999995,"y_acceleration":5.73804,"angular_acceleration":0.0},{"time":0.24000000000000007,"x":0.05978880000000003,"y":0.09325117440000005,"angle":0.0,"x_velocity":0.6540480000000004,"y_velocity":0.9980928000000002,"angular_velocity":0.0,"x_acceleration":3.9815999999999994,"y_acceleration":5.69088,"angular_acceleration":0.0},{"time":0.25000000000000006,"x":0.06652832031250004,"y":0.10351562500000006,"angle":0.0,"x_velocity":0.6938476562500002,"y_velocity":1.0546875000000004,"angular_velocity":0.0,"x_acceleration":3.9765625000000018,"y_acceleration":5.625,"angular_acceleration":0.0},{"time":0.26000000000000006,"x":0.07366541000000004,"y":0.11434242560000006,"angle":0.0,"x_velocity":0.7335445000000002,"y_velocity":1.1105328000000005,"angular_velocity":0.0,"x_acceleration":3.961100000000001,"y_acceleration":5.541119999999999,"angular_acceleration":0.0},{"time":0.2700000000000001,"x":0.08119852593750004,"y":0.12572319420000005,"angle":0.0,"x_velocity":0.7730361562500003,"y_velocity":1.1654523000000006,"angular_velocity":0.0,"x_acceleration":3.9355874999999996,"y_acceleration":5.439960000000001,"angular_acceleration":0.0},{"time":0.2800000000000001,"x":0.08912512000000006,"y":0.13764782080000004,"angle":0.0,"x_velocity":0.8122240000000004,"y_velocity":1.2192768000000005,"angular_velocity":0.0,"x_acceleration":3.900400000000001,"y_acceleration":5.322239999999999,"angular_acceleration":0.0},{"time":0.2900000000000001,"x":0.09744167656250005,"y":0.1501045394000001,"angle":0.0,"x_velocity":0.8510131562500004,"y_velocity":1.2718443000000004,"angular_velocity":0.0,"x_acceleration":3.8559125000000014,"y_acceleration":5.18868,"angular_acceleration":0.0},{"time":0.3000000000000001,"x":0.10614375000000009,"y":0.16308000000000017,"angle":0.0,"x_velocity":0.8893125000000004,"y_velocity":1.3230000000000006,"angular_velocity":0.0,"x_acceleration":3.8025,"y_acceleration":5.040000000000001,"angular_acceleration":0.0},{"time":0.3100000000000001,"x":0.1152260021875001,"y":0.1765593406000002,"angle":0.0,"x_velocity":0.9270346562500005,"y_velocity":1.3725963000000005,"angular_velocity":0.0,"x_acceleration":3.7405375000000007,"y_acceleration":4.87692,"angular_acceleration":0.0},{"time":0.3200000000000001,"x":0.12468224000000011,"y":0.1905262592000001,"angle":0.0,"x_velocity":0.9640960000000005,"y_velocity":1.4204928000000012,"angular_velocity":0.0,"x_acceleration":3.670399999999999,"y_acceleration":4.700159999999997,"angular_acceleration":0.0},{"time":0.3300000000000001,"x":0.13450545281250012,"y":0.20496308580000017,"angle":0.0,"x_velocity":1.00041665625,"y_velocity":1.4665563000000001,"angular_velocity":0.0,"x_acceleration":3.5924625,"y_acceleration":4.510440000000002,"angular_acceleration":0.0},{"time":0.34000000000000014,"x":0.14468785000000012,"y":0.2198508544000002,"angle":0.0,"x_velocity":1.0359205000000005,"y_velocity":1.5106608000000001,"angular_velocity":0.0,"x_acceleration":3.5071000000000008,"y_acceleration":4.308479999999998,"angular_acceleration":0.0},{"time":0.35000000000000014,"x":0.15522089843750017,"y":0.2351693750000002,"angle":0.0,"x_velocity":1.0705351562500005,"y_velocity":1.5526874999999998,"angular_velocity":0.0,"x_acceleration":3.4146875000000008,"y_acceleration":4.095000000000002,"angular_acceleration":0.0},{"time":0.36000000000000015,"x":0.16609536000000014,"y":0.25089730560000023,"angle":0.0,"x_velocity":1.1041920000000005,"y_velocity":1.5925248000000003,"angular_velocity":0.0,"x_acceleration":3.3155999999999994,"y_acceleration":3.8707199999999986,"angular_acceleration":0.0},{"time":0.37000000000000016,"x":0.17730132906250023,"y":0.26701222420000026,"angle":0.0,"x_velocity":1.1368261562500006,"y_velocity":1.6300683000000005,"angular_velocity":0.0,"x_acceleration":3.2102124999999986,"y_acceleration":3.6363599999999945,"angular_acceleration":0.0},{"time":0.38000000000000017,"x":0.18882827000000024,"y":0.28349070080000033,"angle":0.0,"x_velocity":1.1683765000000008,"y_velocity":1.6652208000000004,"angular_velocity":0.0,"x_acceleration":3.0988999999999973,"y_acceleration":3.3926399999999948,"angular_acceleration":0.0},{"time":0.3900000000000002,"x":0.20066505468750026,"y":0.3003083694000004,"angle":0.0,"x_velocity":1.1987856562500008,"y_velocity":1.6978923000000012,"angular_velocity":0.0,"x_acceleration":2.982037499999996,"y_acceleration":3.1402799999999953,"angular_acceleration":0.0},{"time":0.4000000000000002,"x":0.21280000000000016,"y":0.3174400000000002,"angle":0.0,"x_velocity":1.2280000000000006,"y_velocity":1.7280000000000006,"angular_velocity":0.0,"x_acceleration":2.8599999999999994,"y_acceleration":2.879999999999998,"angular_acceleration":0.0},{"time":0.4100000000000002,"x":0.22522090531250033,"y":0.33485957060000043,"angle":0.0,"x_velocity":1.2559696562500005,"y_velocity":1.7554683000000004,"angular_velocity":0.0,"x_acceleration":2.733162499999997,"y_acceleration":2.6125199999999946,"angular_acceleration":0.0},{"time":0.4200000000000002,"x":0.23791509000000025,"y":0.3525403392000004,"angle":0.0,"x_velocity":1.2826485000000005,"y_velocity":1.7802288000000004,"angular_velocity":0.0,"x_acceleration":2.601899999999997,"y_acceleration":2.338559999999992,"angular_acceleration":0.0},{"time":0.4300000000000002,"x":0.2508694309375003,"y":0.37045491580000034,"angle":0.0,"x_velocity":1.3079941562500008,"y_velocity":1.8022203000000003,"angular_velocity":0.0,"x_acceleration":2.4665874999999993,"y_acceleration":2.0588399999999965,"angular_acceleration":0.0},{"time":0.4400000000000002,"x":0.26407040000000026,"y":0.38857533440000036,"angle":0.0,"x_velocity":1.3319680000000007,"y_velocity":1.8213888000000003,"angular_velocity":0.0,"x_acceleration":2.3275999999999994,"y_acceleration":1.7740799999999943,"angular_acceleration":0.0},{"time":0.45000000000000023,"x":0.27750410156250027,"y":0.4068731250000004,"angle":0.0,"x_velocity":1.3545351562500003,"y_velocity":1.8376875000000006,"angular_velocity":0.0,"x_acceleration":2.1853124999999958,"y_acceleration":1.4849999999999923,"angular_acceleration":0.0},{"time":0.46000000000000024,"x":0.2911563100000004,"y":0.4253193856000005,"angle":0.0,"x_velocity":1.3756645000000005,"y_velocity":1.8510768,"angular_velocity":0.0,"x_acceleration":2.0400999999999936,"y_acceleration":1.1923199999999916,"angular_acceleration":0.0},{"time":0.47000000000000025,"x":0.30501250718750034,"y":0.44388485420000057,"angle":0.0,"x_velocity":1.3953286562500002,"y_velocity":1.8615243000000012,"angular_velocity":0.0,"x_acceleration":1.8923374999999982,"y_acceleration":0.8967599999999951,"angular_acceleration":0.0},{"time":0.48000000000000026,"x":0.31905792000000033,"y":0.46253998080000047,"angle":0.0,"x_velocity":1.4135040000000005,"y_velocity":1.8690048000000001,"angular_velocity":0.0,"x_acceleration":1.7423999999999982,"y_acceleration":0.5990399999999951,"angular_acceleration":0.0},{"time":0.49000000000000027,"x":0.33327755781250035,"y":0.4812549994000004,"angle":0.0,"x_velocity":1.4301706562500012,"y_velocity":1.8735003000000008,"angular_velocity":0.0,"x_acceleration":1.5906624999999943,"y_acceleration":0.29987999999999104,"angular_acceleration":0.0},{"time":0.5000000000000002,"x":0.34765625000000033,"y":0.5000000000000006,"angle":0.0,"x_velocity":1.4453125000000009,"y_velocity":1.8750000000000007,"angular_velocity":0.0,"x_acceleration":1.4374999999999964,"y_acceleration":-7.105427357601002e-15,"angular_acceleration":0.0},{"time":0.5100000000000002,"x":0.3621786834375003,"y":0.5187450006000005,"angle":0.0,"x_velocity":1.4589171562499998,"y_velocity":1.8735002999999981,"angular_velocity":0.0,"x_acceleration":1.2832874999999966,"y_acceleration":-0.2998800000000017,"angular_acceleration":0.0},{"time":0.5200000000000002,"x":0.37682944000000035,"y":0.5374600192000004,"angle":0.0,"x_velocity":1.470976,"y_velocity":1.8690048000000012,"angular_velocity":0.0,"x_acceleration":1.1283999999999974,"y_acceleration":-0.5990400000000093,"angular_acceleration":0.0},{"time":0.5300000000000002,"x":0.39159303406250046,"y":0.5561151458000002,"angle":0.0,"x_velocity":1.4814841562500003,"y_velocity":1.8615243000000006,"angular_velocity":0.0,"x_acceleration":0.9732124999999954,"y_acceleration":-0.8967600000000111,"angular_acceleration":0.0},{"time":0.5400000000000003,"x":0.4064539500000005,"y":0.5746806144000007,"angle":0.0,"x_velocity":1.4904405,"y_velocity":1.8510767999999977,"angular_velocity":0.0,"x_acceleration":0.8180999999999958,"y_acceleration":-1.192320000000013,"angular_acceleration":0.0},{"time":0.5500000000000003,"x":0.42139667968750016,"y":0.593126875,"angle":0.0,"x_velocity":1.497847656250001,"y_velocity":1.8376875000000013,"angular_velocity":0.0,"x_acceleration":0.6634374999999917,"y_acceleration":-1.4850000000000136,"angular_acceleration":0.0},{"time":0.5600000000000003,"x":0.43640576000000053,"y":0.6114246656000005,"angle":0.0,"x_velocity":1.5037119999999993,"y_velocity":1.8213887999999994,"angular_velocity":0.0,"x_acceleration":0.5095999999999954,"y_acceleration":-1.774080000000012,"angular_acceleration":0.0},{"time":0.5700000000000003,"x":0.45146581031250044,"y":0.6295450842000007,"angle":0.0,"x_velocity":1.5080436562500001,"y_velocity":1.8022202999999992,"angular_velocity":0.0,"x_acceleration":0.3569624999999981,"y_acceleration":-2.058840000000007,"angular_acceleration":0.0},{"time":0.5800000000000003,"x":0.46656157000000054,"y":0.6474596608000006,"angle":0.0,"x_velocity":1.5108565000000007,"y_velocity":1.7802288000000015,"angular_velocity":0.0,"x_acceleration":0.20589999999999264,"y_acceleration":-2.3385600000000153,"angular_acceleration":0.0},{"time":0.5900000000000003,"x":0.4816779359375005,"y":0.6651404294000003,"angle":0.0,"x_velocity":1.5121681562499998,"y_velocity":1.7554683000000004,"angular_velocity":0.0,"x_acceleration":0.056787499999995106,"y_acceleration":-2.6125200000000106,"angular_acceleration":0.0},{"time":0.6000000000000003,"x":0.49680000000000046,"y":0.6825600000000005,"angle":0.0,"x_velocity":1.512000000000001,"y_velocity":1.7279999999999989,"angular_velocity":0.0,"x_acceleration":-0.09000000000000519,"y_acceleration":-2.8800000000000097,"angular_acceleration":0.0},{"time":0.6100000000000003,"x":0.5119130865625006,"y":0.6996916306000006,"angle":0.0,"x_velocity":1.5103771562500001,"y_velocity":1.6978922999999977,"angular_velocity":0.0,"x_acceleration":-0.23408750000000644,"y_acceleration":-3.140279999999997,"angular_acceleration":0.0},{"time":0.6200000000000003,"x":0.5270027900000005,"y":0.7165092992000004,"angle":0.0,"x_velocity":1.5073285000000007,"y_velocity":1.665220800000002,"angular_velocity":0.0,"x_acceleration":-0.3751000000000069,"y_acceleration":-3.392640000000018,"angular_acceleration":0.0},{"time":0.6300000000000003,"x":0.5420550121875006,"y":0.7329877758000005,"angle":0.0,"x_velocity":1.5028866562499994,"y_velocity":1.6300682999999978,"angular_velocity":0.0,"x_acceleration":-0.5126624999999994,"y_acceleration":-3.6363600000000105,"angular_acceleration":0.0},{"time":0.6400000000000003,"x":0.5570560000000006,"y":0.7491026944000003,"angle":0.0,"x_velocity":1.4970879999999998,"y_velocity":1.5925248000000005,"angular_velocity":0.0,"x_acceleration":-0.646400000000007,"y_acceleration":-3.8707200000000235,"angular_acceleration":0.0},{"time":0.6500000000000004,"x":0.5719923828125004,"y":0.7648306250000002,"angle":0.0,"x_velocity":1.4899726562499995,"y_velocity":1.5526874999999993,"angular_velocity":0.0,"x_acceleration":-0.7759375000000013,"y_acceleration":-4.095000000000006,"angular_acceleration":0.0},{"time":0.6600000000000004,"x":0.5868512100000005,"y":0.7801491456000005,"angle":0.0,"x_velocity":1.4815845000000003,"y_velocity":1.510660800000001,"angular_velocity":0.0,"x_acceleration":-0.9009000000000107,"y_acceleration":-4.30848000000001,"angular_acceleration":0.0},{"time":0.6700000000000004,"x":0.6016199884375006,"y":0.7950369142000008,"angle":0.0,"x_velocity":1.4719711562500013,"y_velocity":1.4665563000000006,"angular_velocity":0.0,"x_acceleration":-1.020912500000005,"y_acceleration":-4.51044000000001,"angular_acceleration":0.0},{"time":0.6800000000000004,"x":0.6162867200000005,"y":0.8094737408000001,"angle":0.0,"x_velocity":1.4611839999999998,"y_velocity":1.420492799999999,"angular_velocity":0.0,"x_acceleration":-1.1356000000000037,"y_acceleration":-4.700160000000018,"angular_acceleration":0.0},{"time":0.6900000000000004,"x":0.6308399390625005,"y":0.8234406594000006,"angle":0.0,"x_velocity":1.4492781562499988,"y_velocity":1.3725962999999979,"angular_velocity":0.0,"x_acceleration":-1.2445874999999944,"y_acceleration":-4.8769200000000055,"angular_acceleration":0.0},{"time":0.7000000000000004,"x":0.6452687500000004,"y":0.8369200000000006,"angle":0.0,"x_velocity":1.4363124999999983,"y_velocity":1.3229999999999968,"angular_velocity":0.0,"x_acceleration":-1.3474999999999966,"y_acceleration":-5.039999999999992,"angular_acceleration":0.0},{"time":0.7100000000000004,"x":0.6595628646875005,"y":0.8498954606000002,"angle":0.0,"x_velocity":1.4223496562499975,"y_velocity":1.271844299999998,"angular_velocity":0.0,"x_acceleration":-1.4439625000000014,"y_acceleration":-5.188679999999991,"angular_acceleration":0.0},{"time":0.7200000000000004,"x":0.6737126400000006,"y":0.8623521792000011,"angle":0.0,"x_velocity":1.407455999999998,"y_velocity":1.219276799999994,"angular_velocity":0.0,"x_acceleration":-1.533600000000007,"y_acceleration":-5.322240000000008,"angular_acceleration":0.0},{"time":0.7300000000000004,"x":0.6877091153125003,"y":0.8742768058000001,"angle":0.0,"x_velocity":1.3917016562499995,"y_velocity":1.1654522999999983,"angular_velocity":0.0,"x_acceleration":-1.616037500000001,"y_acceleration":-5.439960000000006,"angular_acceleration":0.0},{"time":0.7400000000000004,"x":0.7015440500000003,"y":0.8856575743999995,"angle":0.0,"x_velocity":1.3751605000000016,"y_velocity":1.1105327999999979,"angular_velocity":0.0,"x_acceleration":-1.6909000000000063,"y_acceleration":-5.541120000000014,"angular_acceleration":0.0},{"time":0.7500000000000004,"x":0.7152099609375009,"y":0.8964843750000007,"angle":0.0,"x_velocity":1.35791015625,"y_velocity":1.0546875,"angular_velocity":0.0,"x_acceleration":-1.7578124999999964,"y_acceleration":-5.624999999999986,"angular_acceleration":0.0},{"time":0.7600000000000005,"x":0.72870016,"y":0.9067488255999998,"angle":0.0,"x_velocity":1.340032,"y_velocity":0.9980927999999984,"angular_velocity":0.0,"x_acceleration":-1.8164000000000016,"y_acceleration":-5.69088,"angular_acceleration":0.0},{"time":0.7700000000000005,"x":0.7420087915625009,"y":0.9164443441999999,"angle":0.0,"x_velocity":1.3216111562500004,"y_velocity":0.9409323,"angular_velocity":0.0,"x_acceleration":-1.8662875000000092,"y_acceleration":-5.738040000000019,"angular_acceleration":0.0},{"time":0.7800000000000005,"x":0.7551308700000007,"y":0.9255662208000004,"angle":0.0,"x_velocity":1.302736499999999,"y_velocity":0.8833967999999963,"angular_velocity":0.0,"x_acceleration":-1.9070999999999962,"y_acceleration":-5.765759999999993,"angular_acceleration":0.0},{"time":0.7900000000000005,"x":0.7680623171875006,"y":0.9341116894000012,"angle":0.0,"x_velocity":1.2835006562500002,"y_velocity":0.8256842999999989,"angular_velocity":0.0,"x_acceleration":-1.9384625,"y_acceleration":-5.773319999999998,"angular_acceleration":0.0},{"time":0.8000000000000005,"x":0.7808000000000002,"y":0.9420799999999998,"angle":0.0,"x_velocity":1.2640000000000002,"y_velocity":0.7679999999999971,"angular_velocity":0.0,"x_acceleration":-1.960000000000008,"y_acceleration":-5.760000000000005,"angular_acceleration":0.0},{"time":0.8100000000000005,"x":0.7933417678125005,"y":0.9494724905999998,"angle":0.0,"x_velocity":1.2443346562499995,"y_velocity":0.7105562999999986,"angular_velocity":0.0,"x_acceleration":-1.971337499999997,"y_acceleration":-5.725079999999991,"angular_acceleration":0.0},{"time":0.8200000000000005,"x":0.8056864900000005,"y":0.9562926591999998,"angle":0.0,"x_velocity":1.2246085000000013,"y_velocity":0.6535727999999956,"angular_velocity":0.0,"x_acceleration":-1.9721000000000046,"y_acceleration":-5.667839999999998,"angular_acceleration":0.0},{"time":0.8300000000000005,"x":0.8178340934375008,"y":0.9625462357999996,"angle":0.0,"x_velocity":1.2049291562500004,"y_velocity":0.5972762999999972,"angular_velocity":0.0,"x_acceleration":-1.9619124999999968,"y_acceleration":-5.587559999999996,"angular_acceleration":0.0},{"time":0.8400000000000005,"x":0.8297856000000008,"y":0.9682412544000005,"angle":0.0,"x_velocity":1.185407999999999,"y_velocity":0.541900799999997,"angular_velocity":0.0,"x_acceleration":-1.9403999999999968,"y_acceleration":-5.483520000000013,"angular_acceleration":0.0},{"time":0.8500000000000005,"x":0.8415431640625006,"y":0.973388125,"angle":0.0,"x_velocity":1.1661601562499992,"y_velocity":0.48768749999999805,"angular_velocity":0.0,"x_acceleration":-1.9071874999999991,"y_acceleration":-5.35499999999999,"angular_acceleration":0.0},{"time":0.8600000000000005,"x":0.8531101100000005,"y":0.9779997055999994,"angle":0.0,"x_velocity":1.1473045000000006,"y_velocity":0.43488479999999896,"angular_velocity":0.0,"x_acceleration":-1.8618999999999915,"y_acceleration":-5.201279999999983,"angular_acceleration":0.0},{"time":0.8700000000000006,"x":0.8644909696874996,"y":0.9820913741999995,"angle":0.0,"x_velocity":1.1289636562500025,"y_velocity":0.38374830000000415,"angular_velocity":0.0,"x_acceleration":-1.8041624999999968,"y_acceleration":-5.021639999999977,"angular_acceleration":0.0},{"time":0.8800000000000006,"x":0.8756915200000002,"y":0.9856811007999995,"angle":0.0,"x_velocity":1.1112639999999985,"y_velocity":0.3345407999999992,"angular_velocity":0.0,"x_acceleration":-1.7336000000000027,"y_acceleration":-4.8153600000000125,"angular_acceleration":0.0},{"time":0.8900000000000006,"x":0.8867188203125012,"y":0.9887895194,"angle":0.0,"x_velocity":1.0943356562499975,"y_velocity":0.2875323000000023,"angular_velocity":0.0,"x_acceleration":-1.6498374999999896,"y_acceleration":-4.58171999999999,"angular_acceleration":0.0},{"time":0.9000000000000006,"x":0.8975812500000002,"y":0.9914400000000008,"angle":0.0,"x_velocity":1.0783124999999991,"y_velocity":0.242999999999995,"angular_velocity":0.0,"x_acceleration":-1.5524999999999949,"y_acceleration":-4.319999999999965,"angular_acceleration":0.0},{"time":0.9100000000000006,"x":0.9082885459375005,"y":0.9936587206,"angle":0.0,"x_velocity":1.0633321562500004,"y_velocity":0.2012282999999968,"angular_velocity":0.0,"x_acceleration":-1.441212499999999,"y_acceleration":-4.029479999999992,"angular_acceleration":0.0},{"time":0.9200000000000006,"x":0.9188518400000008,"y":0.9954747392000005,"angle":0.0,"x_velocity":1.0495359999999998,"y_velocity":0.16250879999999768,"angular_velocity":0.0,"x_acceleration":-1.3156000000000034,"y_acceleration":-3.7094399999999865,"angular_acceleration":0.0},{"time":0.9300000000000006,"x":0.9292836965624995,"y":0.9969200657999986,"angle":0.0,"x_velocity":1.0370691562499985,"y_velocity":0.1271402999999971,"angular_velocity":0.0,"x_acceleration":-1.175287499999989,"y_acceleration":-3.3591599999999744,"angular_acceleration":0.0},{"time":0.9400000000000006,"x":0.939598150000001,"y":0.9980297343999993,"angle":0.0,"x_velocity":1.0260804999999973,"y_velocity":0.09542879999999698,"angular_velocity":0.0,"x_acceleration":-1.0198999999999927,"y_acceleration":-2.9779199999999832,"angular_acceleration":0.0},{"time":0.9500000000000006,"x":0.9498107421875011,"y":0.998841875000001,"angle":0.0,"x_velocity":1.0167226562500016,"y_velocity":0.06768749999999457,"angular_velocity":0.0,"x_acceleration":-0.8490625000000023,"y_acceleration":-2.5649999999999977,"angular_acceleration":0.0},{"time":0.9600000000000006,"x":0.9599385600000012,"y":0.9993977856000011,"angle":0.0,"x_velocity":1.0091520000000003,"y_velocity":0.04423680000000019,"angular_velocity":0.0,"x_acceleration":-0.662399999999991,"y_acceleration":-2.119679999999974,"angular_acceleration":0.0},{"time":0.9700000000000006,"x":0.9700002728125003,"y":0.9997420041999998,"angle":0.0,"x_velocity":1.0035286562500012,"y_velocity":0.02540430000000171,"angular_velocity":0.0,"x_acceleration":-0.45953749999998195,"y_acceleration":-1.6412399999999536,"angular_acceleration":0.0},{"time":0.9800000000000006,"x":0.9800161700000007,"y":0.9999223808000002,"angle":0.0,"x_velocity":1.0000165000000028,"y_velocity":0.01152479999999656,"angular_velocity":0.0,"x_acceleration":-0.240099999999984,"y_acceleration":-1.1289599999999496,"angular_acceleration":0.0},{"time":0.9900000000000007,"x":0.9900081984375007,"y":0.9999901494000012,"angle":0.0,"x_velocity":0.9987831562500045,"y_velocity":0.002940300000005891,"angular_velocity":0.0,"x_acceleration":-0.0037124999999988972,"y_acceleration":-0.5821199999999749,"angular_acceleration":0.0},{"time":1.0000000000000007,"x":1.0000000000000007,"y":1.0,"angle":0.0,"x_velocity":1.0000000000000002,"y_velocity":-1.3312027775604557e-29,"angular_velocity":0.0,"x_acceleration":0.249999999999998,"y_acceleration":-3.9968028886505553e-14,"angular_acceleration":0.0},{"time":1.0100000000000007,"x":1.0100120062250006,"y":0.9999901494,"angle":0.0,"x_velocity":1.0023524875,"y_velocity":-0.0029403000000003928,"angular_velocity":0.0,"x_acceleration":0.22074499999999808,"y_acceleration":-0.582120000000038,"angular_acceleration":0.0},{"time":1.0200000000000007,"x":1.0200460992000009,"y":0.9999223808,"angle":0.0,"x_velocity":1.0044198000000002,"y_velocity":-0.011524800000000772,"angular_velocity":0.0,"x_acceleration":0.19295999999999813,"y_acceleration":-1.1289600000000362,"angular_acceleration":0.0},{"time":1.0300000000000007,"x":1.0300995001750004,"y":0.9997420042,"angle":0.0,"x_velocity":1.0062164875000004,"y_velocity":-0.025404300000001143,"angular_velocity":0.0,"x_acceleration":0.16661499999999824,"y_acceleration":-1.6412400000000342,"angular_acceleration":0.0},{"time":1.0400000000000007,"x":1.0401695744000008,"y":0.9993977855999999,"angle":0.0,"x_velocity":1.0077568,"y_velocity":-0.04423680000000149,"angular_velocity":0.0,"x_acceleration":0.1416799999999983,"y_acceleration":-2.1196800000000326,"angular_acceleration":0.0},{"time":1.0500000000000007,"x":1.0502538281250005,"y":0.9988418749999999,"angle":0.0,"x_velocity":1.0090546875,"y_velocity":-0.06768750000000182,"angular_velocity":0.0,"x_acceleration":0.11812499999999837,"y_acceleration":-2.5650000000000306,"angular_acceleration":0.0},{"time":1.0600000000000007,"x":1.0603499056000008,"y":0.9980297344,"angle":0.0,"x_velocity":1.0101238000000001,"y_velocity":-0.09542880000000215,"angular_velocity":0.0,"x_acceleration":0.09591999999999845,"y_acceleration":-2.9779200000000285,"angular_acceleration":0.0},{"time":1.0700000000000007,"x":1.0704555860750007,"y":0.9969200657999998,"angle":0.0,"x_velocity":1.0109774875,"y_velocity":-0.12714030000000245,"angular_velocity":0.0,"x_acceleration":0.07503499999999853,"y_acceleration":-3.359160000000027,"angular_acceleration":0.0},{"time":1.0800000000000007,"x":1.0805687808000006,"y":0.9954747391999998,"angle":0.0,"x_velocity":1.0116288,"y_velocity":-0.16250880000000276,"angular_velocity":0.0,"x_acceleration":0.05543999999999861,"y_acceleration":-3.7094400000000243,"angular_acceleration":0.0},{"time":1.0900000000000007,"x":1.0906875300250007,"y":0.9936587205999999,"angle":0.0,"x_velocity":1.0120904875,"y_velocity":-0.20122830000000302,"angular_velocity":0.0,"x_acceleration":0.03710499999999868,"y_acceleration":-4.029480000000023,"angular_acceleration":0.0},{"time":1.1000000000000008,"x":1.100810000000001,"y":0.9914399999999999,"angle":0.0,"x_velocity":1.012375,"y_velocity":-0.24300000000000327,"angular_velocity":0.0,"x_acceleration":0.01999999999999876,"y_acceleration":-4.320000000000021,"angular_acceleration":0.0},{"time":1.1100000000000008,"x":1.1109344799750007,"y":0.9887895193999998,"angle":0.0,"x_velocity":1.0124944875000002,"y_velocity":-0.2875323000000035,"angular_velocity":0.0,"x_acceleration":0.0040949999999988305,"y_acceleration":-4.581720000000019,"angular_acceleration":0.0},{"time":1.1200000000000008,"x":1.1210593792000008,"y":0.9856811007999998,"angle":0.0,"x_velocity":1.0124608000000002,"y_velocity":-0.33454080000000375,"angular_velocity":0.0,"x_acceleration":-0.010640000000001084,"y_acceleration":-4.815360000000017,"angular_acceleration":0.0},{"time":1.1300000000000008,"x":1.1311832239250006,"y":0.9820913741999998,"angle":0.0,"x_velocity":1.0122854875,"y_velocity":-0.38374830000000393,"angular_velocity":0.0,"x_acceleration":-0.024235000000001013,"y_acceleration":-5.021640000000016,"angular_acceleration":0.0},{"time":1.1400000000000008,"x":1.141304654400001,"y":0.9779997055999997,"angle":0.0,"x_velocity":1.0119798,"y_velocity":-0.4348848000000041,"angular_velocity":0.0,"x_acceleration":-0.036720000000000946,"y_acceleration":-5.201280000000015,"angular_acceleration":0.0},{"time":1.1500000000000008,"x":1.1514224218750009,"y":0.9733881249999997,"angle":0.0,"x_velocity":1.0115546874999999,"y_velocity":-0.48768750000000427,"angular_velocity":0.0,"x_acceleration":-0.048125000000000875,"y_acceleration":-5.355000000000012,"angular_acceleration":0.0},{"time":1.1600000000000008,"x":1.1615353856000008,"y":0.9682412543999995,"angle":0.0,"x_velocity":1.0110208,"y_velocity":-0.5419008000000043,"angular_velocity":0.0,"x_acceleration":-0.058480000000000816,"y_acceleration":-5.483520000000009,"angular_acceleration":0.0},{"time":1.1700000000000008,"x":1.1716425098250007,"y":0.9625462357999996,"angle":0.0,"x_velocity":1.0103884875,"y_velocity":-0.5972763000000045,"angular_velocity":0.0,"x_acceleration":-0.06781500000000072,"y_acceleration":-5.587560000000008,"angular_acceleration":0.0},{"time":1.1800000000000008,"x":1.181742860800001,"y":0.9562926591999994,"angle":0.0,"x_velocity":1.0096678,"y_velocity":-0.6535728000000047,"angular_velocity":0.0,"x_acceleration":-0.07616000000000064,"y_acceleration":-5.667840000000006,"angular_acceleration":0.0},{"time":1.1900000000000008,"x":1.191835603775001,"y":0.9494724905999994,"angle":0.0,"x_velocity":1.0088684875,"y_velocity":-0.7105563000000048,"angular_velocity":0.0,"x_acceleration":-0.08354500000000058,"y_acceleration":-5.725080000000004,"angular_acceleration":0.0},{"time":1.2000000000000008,"x":1.201920000000001,"y":0.9420799999999993,"angle":0.0,"x_velocity":1.008,"y_velocity":-0.7680000000000048,"angular_velocity":0.0,"x_acceleration":-0.0900000000000005,"y_acceleration":-5.760000000000001,"angular_acceleration":0.0},{"time":1.2100000000000009,"x":1.211995403725001,"y":0.9341116893999992,"angle":0.0,"x_velocity":1.0070714875,"y_velocity":-0.8256843000000049,"angular_velocity":0.0,"x_acceleration":-0.09555500000000042,"y_acceleration":-5.77332,"angular_acceleration":0.0},{"time":1.2200000000000009,"x":1.2220612592000009,"y":0.9255662207999993,"angle":0.0,"x_velocity":1.0060918,"y_velocity":-0.8833968000000049,"angular_velocity":0.0,"x_acceleration":-0.1002400000000004,"y_acceleration":-5.76576,"angular_acceleration":0.0},{"time":1.2300000000000009,"x":1.2321170976750009,"y":0.9164443441999992,"angle":0.0,"x_velocity":1.0050694874999997,"y_velocity":-0.940932300000005,"angular_velocity":0.0,"x_acceleration":-0.10408500000000032,"y_acceleration":-5.738039999999997,"angular_acceleration":0.0},{"time":1.2400000000000009,"x":1.2421625344000011,"y":0.9067488255999993,"angle":0.0,"x_velocity":1.0040128000000001,"y_velocity":-0.9980928000000049,"angular_velocity":0.0,"x_acceleration":-0.10712000000000024,"y_acceleration":-5.6908799999999955,"angular_acceleration":0.0},{"time":1.2500000000000009,"x":1.2521972656250009,"y":0.896484374999999,"angle":0.0,"x_velocity":1.0029296875,"y_velocity":-1.0546875000000049,"angular_velocity":0.0,"x_acceleration":-0.10937500000000017,"y_acceleration":-5.624999999999993,"angular_acceleration":0.0},{"time":1.260000000000001,"x":1.262221065600001,"y":0.885657574399999,"angle":0.0,"x_velocity":1.0018277999999998,"y_velocity":-1.110532800000005,"angular_velocity":0.0,"x_acceleration":-0.11088000000000015,"y_acceleration":-5.541119999999992,"angular_acceleration":0.0},{"time":1.270000000000001,"x":1.272233783575001,"y":0.8742768057999989,"angle":0.0,"x_velocity":1.0007144875,"y_velocity":-1.1654523000000052,"angular_velocity":0.0,"x_acceleration":-0.11166499999999999,"y_acceleration":-5.439959999999988,"angular_acceleration":0.0},{"time":1.280000000000001,"x":1.282235340800001,"y":0.862352179199999,"angle":0.0,"x_velocity":0.9995967999999998,"y_velocity":-1.219276800000005,"angular_velocity":0.0,"x_acceleration":-0.11175999999999997,"y_acceleration":-5.322239999999989,"angular_acceleration":0.0},{"time":1.290000000000001,"x":1.2922257275250009,"y":0.8498954605999988,"angle":0.0,"x_velocity":0.9984814874999998,"y_velocity":-1.2718443000000053,"angular_velocity":0.0,"x_acceleration":-0.1111949999999998,"y_acceleration":-5.1886799999999855,"angular_acceleration":0.0},{"time":1.300000000000001,"x":1.3022050000000007,"y":0.8369199999999988,"angle":0.0,"x_velocity":0.9973749999999997,"y_velocity":-1.3230000000000048,"angular_velocity":0.0,"x_acceleration":-0.10999999999999979,"y_acceleration":-5.039999999999985,"angular_acceleration":0.0},{"time":1.310000000000001,"x":1.3121732774750008,"y":0.8234406593999987,"angle":0.0,"x_velocity":0.9962834874999997,"y_velocity":-1.372596300000005,"angular_velocity":0.0,"x_acceleration":-0.10820499999999975,"y_acceleration":-4.876919999999982,"angular_acceleration":0.0},{"time":1.320000000000001,"x":1.322130739200001,"y":0.8094737407999987,"angle":0.0,"x_velocity":0.9952127999999999,"y_velocity":-1.4204928000000043,"angular_velocity":0.0,"x_acceleration":-0.10583999999999985,"y_acceleration":-4.700159999999983,"angular_acceleration":0.0},{"time":1.330000000000001,"x":1.332077621425001,"y":0.7950369141999984,"angle":0.0,"x_velocity":0.9941684874999998,"y_velocity":-1.4665563000000041,"angular_velocity":0.0,"x_acceleration":-0.10293499999999972,"y_acceleration":-4.510439999999981,"angular_acceleration":0.0},{"time":1.340000000000001,"x":1.342014214400001,"y":0.7801491455999985,"angle":0.0,"x_velocity":0.9931557999999998,"y_velocity":-1.5106608000000041,"angular_velocity":0.0,"x_acceleration":-0.09951999999999961,"y_acceleration":-4.308479999999979,"angular_acceleration":0.0},{"time":1.350000000000001,"x":1.3519408593750009,"y":0.7648306249999985,"angle":0.0,"x_velocity":0.9921796875000001,"y_velocity":-1.5526875000000038,"angular_velocity":0.0,"x_acceleration":-0.09562499999999965,"y_acceleration":-4.094999999999978,"angular_acceleration":0.0},{"time":1.360000000000001,"x":1.3618579456000008,"y":0.7491026943999984,"angle":0.0,"x_velocity":0.9912448,"y_velocity":-1.5925248000000036,"angular_velocity":0.0,"x_acceleration":-0.09127999999999958,"y_acceleration":-3.8707199999999773,"angular_acceleration":0.0},{"time":1.370000000000001,"x":1.371765907325001,"y":0.7329877757999983,"angle":0.0,"x_velocity":0.9903554874999998,"y_velocity":-1.6300683000000036,"angular_velocity":0.0,"x_acceleration":-0.08651499999999945,"y_acceleration":-3.636359999999975,"angular_acceleration":0.0},{"time":1.380000000000001,"x":1.381665220800001,"y":0.7165092991999984,"angle":0.0,"x_velocity":0.9895157999999998,"y_velocity":-1.6652208000000033,"angular_velocity":0.0,"x_acceleration":-0.08135999999999965,"y_acceleration":-3.392639999999977,"angular_acceleration":0.0},{"time":1.390000000000001,"x":1.391556401275001,"y":0.6996916305999983,"angle":0.0,"x_velocity":0.9887294874999998,"y_velocity":-1.6978923000000032,"angular_velocity":0.0,"x_acceleration":-0.07584499999999944,"y_acceleration":-3.1402799999999758,"angular_acceleration":0.0},{"time":1.400000000000001,"x":1.401440000000001,"y":0.6825599999999982,"angle":0.0,"x_velocity":0.9879999999999999,"y_velocity":-1.7280000000000024,"angular_velocity":0.0,"x_acceleration":-0.06999999999999956,"y_acceleration":-2.8799999999999724,"angular_acceleration":0.0},{"time":1.410000000000001,"x":1.4113166012250011,"y":0.6651404293999984,"angle":0.0,"x_velocity":0.9873304875000001,"y_velocity":-1.7554683000000026,"angular_velocity":0.0,"x_acceleration":-0.06385499999999938,"y_acceleration":-2.6125199999999715,"angular_acceleration":0.0},{"time":1.420000000000001,"x":1.421186819200001,"y":0.6474596607999983,"angle":0.0,"x_velocity":0.9867237999999998,"y_velocity":-1.7802288000000026,"angular_velocity":0.0,"x_acceleration":-0.057439999999999436,"y_acceleration":-2.338559999999976,"angular_acceleration":0.0},{"time":1.430000000000001,"x":1.4310512951750012,"y":0.6295450841999981,"angle":0.0,"x_velocity":0.9861824874999999,"y_velocity":-1.8022203000000019,"angular_velocity":0.0,"x_acceleration":-0.050784999999999414,"y_acceleration":-2.05883999999997,"angular_acceleration":0.0},{"time":1.440000000000001,"x":1.440910694400001,"y":0.6114246655999981,"angle":0.0,"x_velocity":0.9857087999999999,"y_velocity":-1.8213888000000018,"angular_velocity":0.0,"x_acceleration":-0.04391999999999918,"y_acceleration":-1.774079999999966,"angular_acceleration":0.0},{"time":1.450000000000001,"x":1.4507657031250007,"y":0.593126874999998,"angle":0.0,"x_velocity":0.9853046875,"y_velocity":-1.8376875,"angular_velocity":0.0,"x_acceleration":-0.03687499999999955,"y_acceleration":-1.4849999999999763,"angular_acceleration":0.0},{"time":1.460000000000001,"x":1.460617025600001,"y":0.574680614399998,"angle":0.0,"x_velocity":0.9849717999999998,"y_velocity":-1.8510768000000009,"angular_velocity":0.0,"x_acceleration":-0.029679999999999374,"y_acceleration":-1.1923199999999703,"angular_acceleration":0.0},{"time":1.470000000000001,"x":1.470465381075001,"y":0.556115145799998,"angle":0.0,"x_velocity":0.9847114874999997,"y_velocity":-1.8615243000000008,"angular_velocity":0.0,"x_acceleration":-0.02236499999999908,"y_acceleration":-0.8967599999999667,"angular_acceleration":0.0},{"time":1.480000000000001,"x":1.4803115008000012,"y":0.537460019199998,"angle":0.0,"x_velocity":0.9845248000000001,"y_velocity":-1.8690047999999995,"angular_velocity":0.0,"x_acceleration":-0.014959999999999307,"y_acceleration":-0.5990399999999703,"angular_acceleration":0.0},{"time":1.490000000000001,"x":1.490156125025001,"y":0.5187450005999978,"angle":0.0,"x_velocity":0.9844124875,"y_velocity":-1.8735003000000008,"angular_velocity":0.0,"x_acceleration":-0.00749499999999903,"y_acceleration":-0.2998799999999662,"angular_acceleration":0.0},{"time":1.500000000000001,"x":1.5000000000000013,"y":0.4999999999999978,"angle":0.0,"x_velocity":0.984375,"y_velocity":-1.8750000000000007,"angular_velocity":0.0,"x_acceleration":8.881784197001252e-16,"y_acceleration":3.019806626980426e-14,"angular_acceleration":0.0},{"time":1.5100000000000011,"x":1.509843874975001,"y":0.4812549993999979,"angle":0.0,"x_velocity":0.9844124875000001,"y_velocity":-1.8735003000000008,"angular_velocity":0.0,"x_acceleration":0.00749500000000114,"y_acceleration":0.2998800000000408,"angular_acceleration":0.0},{"time":1.5200000000000011,"x":1.5196884992000013,"y":0.46253998079999786,"angle":0.0,"x_velocity":0.9845248000000001,"y_velocity":-1.8690047999999986,"angular_velocity":0.0,"x_acceleration":0.014960000000000861,"y_acceleration":0.5990400000000378,"angular_acceleration":0.0},{"time":1.5300000000000011,"x":1.529534618925001,"y":0.4438848541999979,"angle":0.0,"x_velocity":0.9847114875000001,"y_velocity":-1.8615242999999984,"angular_velocity":0.0,"x_acceleration":0.022365000000000634,"y_acceleration":0.8967600000000289,"angular_acceleration":0.0},{"time":1.5400000000000011,"x":1.539382974400001,"y":0.4253193855999977,"angle":0.0,"x_velocity":0.9849718000000001,"y_velocity":-1.8510767999999986,"angular_velocity":0.0,"x_acceleration":0.02968000000000104,"y_acceleration":1.1923200000000342,"angular_acceleration":0.0},{"time":1.5500000000000012,"x":1.5492342968750012,"y":0.40687312499999795,"angle":0.0,"x_velocity":0.9853046874999999,"y_velocity":-1.8376874999999995,"angular_velocity":0.0,"x_acceleration":0.03687500000000088,"y_acceleration":1.4850000000000279,"angular_acceleration":0.0},{"time":1.5600000000000012,"x":1.559089305600001,"y":0.38857533439999775,"angle":0.0,"x_velocity":0.9857088000000002,"y_velocity":-1.8213887999999985,"angular_velocity":0.0,"x_acceleration":0.04392000000000107,"y_acceleration":1.7740800000000299,"angular_acceleration":0.0},{"time":1.5700000000000012,"x":1.5689487048250013,"y":0.3704549157999977,"angle":0.0,"x_velocity":0.9861824875,"y_velocity":-1.8022202999999979,"angular_velocity":0.0,"x_acceleration":0.05078500000000086,"y_acceleration":2.0588400000000355,"angular_acceleration":0.0},{"time":1.5800000000000012,"x":1.5788131808000012,"y":0.35254033919999794,"angle":0.0,"x_velocity":0.9867238000000002,"y_velocity":-1.780228799999997,"angular_velocity":0.0,"x_acceleration":0.057440000000000824,"y_acceleration":2.3385600000000366,"angular_acceleration":0.0},{"time":1.5900000000000012,"x":1.5886833987750013,"y":0.3348595705999976,"angle":0.0,"x_velocity":0.9873304875000002,"y_velocity":-1.7554682999999955,"angular_velocity":0.0,"x_acceleration":0.06385500000000066,"y_acceleration":2.6125200000000355,"angular_acceleration":0.0},{"time":1.6000000000000012,"x":1.5985600000000013,"y":0.31743999999999806,"angle":0.0,"x_velocity":0.9880000000000002,"y_velocity":-1.7279999999999958,"angular_velocity":0.0,"x_acceleration":0.07000000000000073,"y_acceleration":2.880000000000024,"angular_acceleration":0.0},{"time":1.6100000000000012,"x":1.6084435987250014,"y":0.30030836939999794,"angle":0.0,"x_velocity":0.9887294875000001,"y_velocity":-1.697892299999996,"angular_velocity":0.0,"x_acceleration":0.07584500000000083,"y_acceleration":3.1402800000000326,"angular_acceleration":0.0},{"time":1.6200000000000012,"x":1.6183347792000011,"y":0.28349070079999794,"angle":0.0,"x_velocity":0.9895158,"y_velocity":-1.6652207999999948,"angular_velocity":0.0,"x_acceleration":0.08136000000000054,"y_acceleration":3.3926400000000214,"angular_acceleration":0.0},{"time":1.6300000000000012,"x":1.6282340926750014,"y":0.2670122241999979,"angle":0.0,"x_velocity":0.9903554875000001,"y_velocity":-1.6300682999999943,"angular_velocity":0.0,"x_acceleration":0.08651500000000056,"y_acceleration":3.6363600000000247,"angular_acceleration":0.0},{"time":1.6400000000000012,"x":1.6381420544000012,"y":0.25089730559999834,"angle":0.0,"x_velocity":0.9912447999999999,"y_velocity":-1.5925247999999979,"angular_velocity":0.0,"x_acceleration":0.09128000000000092,"y_acceleration":3.8707200000000377,"angular_acceleration":0.0},{"time":1.6500000000000012,"x":1.6480591406250011,"y":0.23516937499999813,"angle":0.0,"x_velocity":0.9921796875000001,"y_velocity":-1.5526874999999931,"angular_velocity":0.0,"x_acceleration":0.09562500000000007,"y_acceleration":4.09500000000002,"angular_acceleration":0.0},{"time":1.6600000000000013,"x":1.657985785600001,"y":0.21985085439999796,"angle":0.0,"x_velocity":0.9931558000000001,"y_velocity":-1.510660799999993,"angular_velocity":0.0,"x_acceleration":0.09951999999999983,"y_acceleration":4.30848000000001,"angular_acceleration":0.0},{"time":1.6700000000000013,"x":1.6679223785750013,"y":0.20496308579999822,"angle":0.0,"x_velocity":0.9941684875000003,"y_velocity":-1.4665562999999935,"angular_velocity":0.0,"x_acceleration":0.10293500000000066,"y_acceleration":4.510440000000024,"angular_acceleration":0.0},{"time":1.6800000000000013,"x":1.6778692608000012,"y":0.1905262591999981,"angle":0.0,"x_velocity":0.9952128000000002,"y_velocity":-1.4204927999999946,"angular_velocity":0.0,"x_acceleration":0.10584000000000082,"y_acceleration":4.700160000000032,"angular_acceleration":0.0},{"time":1.6900000000000013,"x":1.6878267225250014,"y":0.17655934059999812,"angle":0.0,"x_velocity":0.9962834875,"y_velocity":-1.3725962999999943,"angular_velocity":0.0,"x_acceleration":0.10820500000000033,"y_acceleration":4.876920000000027,"angular_acceleration":0.0},{"time":1.7000000000000013,"x":1.6977950000000013,"y":0.16307999999999767,"angle":0.0,"x_velocity":0.9973750000000001,"y_velocity":-1.3229999999999933,"angular_velocity":0.0,"x_acceleration":0.11000000000000032,"y_acceleration":5.040000000000013,"angular_acceleration":0.0},{"time":1.7100000000000013,"x":1.7077742724750011,"y":0.15010453939999824,"angle":0.0,"x_velocity":0.9984814875,"y_velocity":-1.2718442999999935,"angular_velocity":0.0,"x_acceleration":0.11119499999999993,"y_acceleration":5.188680000000012,"angular_acceleration":0.0},{"time":1.7200000000000013,"x":1.7177646592000013,"y":0.1376478207999987,"angle":0.0,"x_velocity":0.9995968000000003,"y_velocity":-1.2192767999999905,"angular_velocity":0.0,"x_acceleration":0.11175999999999986,"y_acceleration":5.322240000000008,"angular_acceleration":0.0},{"time":1.7300000000000013,"x":1.7277662164250012,"y":0.12572319419999878,"angle":0.0,"x_velocity":1.0007144875,"y_velocity":-1.165452299999993,"angular_velocity":0.0,"x_acceleration":0.11166500000000013,"y_acceleration":5.4399600000000135,"angular_acceleration":0.0},{"time":1.7400000000000013,"x":1.7377789344000014,"y":0.11434242559999874,"angle":0.0,"x_velocity":1.0018278,"y_velocity":-1.1105327999999943,"angular_velocity":0.0,"x_acceleration":0.11088000000000031,"y_acceleration":5.541120000000028,"angular_acceleration":0.0},{"time":1.7500000000000013,"x":1.7478027343750013,"y":0.103515624999998,"angle":0.0,"x_velocity":1.0029296875000002,"y_velocity":-1.054687499999993,"angular_velocity":0.0,"x_acceleration":0.10937499999999956,"y_acceleration":5.625,"angular_acceleration":0.0},{"time":1.7600000000000013,"x":1.7578374656000013,"y":0.0932511743999993,"angle":0.0,"x_velocity":1.0040128000000001,"y_velocity":-0.9980927999999913,"angular_velocity":0.0,"x_acceleration":0.10711999999999966,"y_acceleration":5.690880000000007,"angular_acceleration":0.0},{"time":1.7700000000000014,"x":1.7678829023250011,"y":0.08355565579999835,"angle":0.0,"x_velocity":1.0050694875000001,"y_velocity":-0.9409322999999912,"angular_velocity":0.0,"x_acceleration":0.10408499999999954,"y_acceleration":5.738040000000005,"angular_acceleration":0.0},{"time":1.7800000000000014,"x":1.7779387408000011,"y":0.07443377919999783,"angle":0.0,"x_velocity":1.0060918000000003,"y_velocity":-0.8833967999999892,"angular_velocity":0.0,"x_acceleration":0.10023999999999855,"y_acceleration":5.765759999999993,"angular_acceleration":0.0},{"time":1.7900000000000014,"x":1.7880045962750013,"y":0.06588831059999833,"angle":0.0,"x_velocity":1.0070714875,"y_velocity":-0.8256842999999883,"angular_velocity":0.0,"x_acceleration":0.09555499999999961,"y_acceleration":5.7733200000000195,"angular_acceleration":0.0},{"time":1.8000000000000014,"x":1.7980800000000015,"y":0.05791999999999842,"angle":0.0,"x_velocity":1.0080000000000005,"y_velocity":-0.7679999999999865,"angular_velocity":0.0,"x_acceleration":0.08999999999999941,"y_acceleration":5.760000000000005,"angular_acceleration":0.0},{"time":1.8100000000000014,"x":1.8081643962250014,"y":0.050527509399998394,"angle":0.0,"x_velocity":1.0088684875,"y_velocity":-0.7105562999999933,"angular_velocity":0.0,"x_acceleration":0.08354499999999909,"y_acceleration":5.7250800000000055,"angular_acceleration":0.0},{"time":1.8200000000000014,"x":1.8182571392000013,"y":0.04370734079999883,"angle":0.0,"x_velocity":1.0096678,"y_velocity":-0.6535727999999921,"angular_velocity":0.0,"x_acceleration":0.07615999999999845,"y_acceleration":5.667839999999998,"angular_acceleration":0.0},{"time":1.8300000000000014,"x":1.8283574901750015,"y":0.037453764199999906,"angle":0.0,"x_velocity":1.0103884874999998,"y_velocity":-0.5972762999999972,"angular_velocity":0.0,"x_acceleration":0.06781499999999996,"y_acceleration":5.587559999999996,"angular_acceleration":0.0},{"time":1.8400000000000014,"x":1.8384646144000014,"y":0.03175874559999947,"angle":0.0,"x_velocity":1.0110208000000003,"y_velocity":-0.5419007999999899,"angular_velocity":0.0,"x_acceleration":0.05847999999999853,"y_acceleration":5.483519999999984,"angular_acceleration":0.0},{"time":1.8500000000000014,"x":1.8485775781250013,"y":0.026611874999999063,"angle":0.0,"x_velocity":1.0115546875,"y_velocity":-0.4876874999999945,"angular_velocity":0.0,"x_acceleration":0.04812499999999842,"y_acceleration":5.35499999999999,"angular_acceleration":0.0},{"time":1.8600000000000014,"x":1.8586953456000015,"y":0.022000294399998843,"angle":0.0,"x_velocity":1.0119798,"y_velocity":-0.43488479999999186,"angular_velocity":0.0,"x_acceleration":0.03671999999999809,"y_acceleration":5.201279999999969,"angular_acceleration":0.0},{"time":1.8700000000000014,"x":1.8688167760750014,"y":0.01790862580000052,"angle":0.0,"x_velocity":1.0122854875,"y_velocity":-0.3837482999999864,"angular_velocity":0.0,"x_acceleration":0.024234999999997342,"y_acceleration":5.021639999999962,"angular_acceleration":0.0},{"time":1.8800000000000014,"x":1.8789406208000012,"y":0.014318899199999624,"angle":0.0,"x_velocity":1.0124608000000002,"y_velocity":-0.33454079999998854,"angular_velocity":0.0,"x_acceleration":0.010639999999997762,"y_acceleration":4.81535999999997,"angular_acceleration":0.0},{"time":1.8900000000000015,"x":1.8890655200250015,"y":0.011210480599999073,"angle":0.0,"x_velocity":1.0124944875,"y_velocity":-0.2875322999999952,"angular_velocity":0.0,"x_acceleration":-0.00409500000000218,"y_acceleration":4.581719999999962,"angular_acceleration":0.0},{"time":1.9000000000000015,"x":1.8991900000000017,"y":0.008559999999999235,"angle":0.0,"x_velocity":1.012375,"y_velocity":-0.2429999999999879,"angular_velocity":0.0,"x_acceleration":-0.02000000000000357,"y_acceleration":4.3199999999999505,"angular_acceleration":0.0},{"time":1.9100000000000015,"x":1.9093124699750015,"y":0.006341279400000843,"angle":0.0,"x_velocity":1.0120904874999999,"y_velocity":-0.20122830000000036,"angular_velocity":0.0,"x_acceleration":-0.037105000000002164,"y_acceleration":4.029479999999992,"angular_acceleration":0.0},{"time":1.9200000000000015,"x":1.9194312192000018,"y":0.004525260800000819,"angle":0.0,"x_velocity":1.0116288,"y_velocity":-0.16250880000000123,"angular_velocity":0.0,"x_acceleration":-0.0554400000000026,"y_acceleration":3.709439999999958,"angular_acceleration":0.0},{"time":1.9300000000000015,"x":1.9295444139250015,"y":0.003079934199998746,"angle":0.0,"x_velocity":1.0109774874999997,"y_velocity":-0.12714029999999,"angular_velocity":0.0,"x_acceleration":-0.0750350000000024,"y_acceleration":3.359159999999946,"angular_acceleration":0.0},{"time":1.9400000000000015,"x":1.9396500944000015,"y":0.0019702655999989105,"angle":0.0,"x_velocity":1.0101237999999997,"y_velocity":-0.09542879999998632,"angular_velocity":0.0,"x_acceleration":-0.095920000000004,"y_acceleration":2.9779199999999264,"angular_acceleration":0.0},{"time":1.9500000000000015,"x":1.9497461718750018,"y":0.0011581249999998988,"angle":0.0,"x_velocity":1.0090546875,"y_velocity":-0.06768749999999457,"angular_velocity":0.0,"x_acceleration":-0.11812500000000359,"y_acceleration":2.5649999999999125,"angular_acceleration":0.0},{"time":1.9600000000000015,"x":1.9598304256000016,"y":0.0006022144000006335,"angle":0.0,"x_velocity":1.0077567999999997,"y_velocity":-0.04423679999999308,"angular_velocity":0.0,"x_acceleration":-0.14168000000000358,"y_acceleration":2.1196799999999456,"angular_acceleration":0.0},{"time":1.9700000000000015,"x":1.9699004998250016,"y":0.0002579957999992999,"angle":0.0,"x_velocity":1.0062164874999997,"y_velocity":-0.025404300000005264,"angular_velocity":0.0,"x_acceleration":-0.16661500000000373,"y_acceleration":1.6412399999999394,"angular_acceleration":0.0},{"time":1.9800000000000015,"x":1.9799539008000013,"y":0.00007761920000071143,"angle":0.0,"x_velocity":1.0044197999999998,"y_velocity":-0.01152479999999656,"angular_velocity":0.0,"x_acceleration":-0.19296000000000468,"y_acceleration":1.1289599999999211,"angular_acceleration":0.0},{"time":1.9900000000000015,"x":1.9899879937750018,"y":0.00000985059999969451,"angle":0.0,"x_velocity":1.0023524874999996,"y_velocity":-0.0029403000000023383,"angular_velocity":0.0,"x_acceleration":-0.2207450000000044,"y_acceleration":0.5821199999999322,"angular_acceleration":0.0},{"time":2.0000000000000013,"x":2.0000000000000013,"y":2.3646911585481243e-44,"angle":0.0,"x_velocity":0.9999999999999997,"y_velocity":5.324811110241815e-29,"angular_velocity":0.0,"x_acceleration":-0.24999999999996503,"y_acceleration":7.993605777301096e-14,"angular_acceleration":0.0},{"time":2.010000000000001,"x":2.009991801562501,"y":0.000009850600000003292,"angle":0.0,"x_velocity":0.99878315625,"y_velocity":0.0029403000000006512,"angular_velocity":0.0,"x_acceleration":0.003712500000027416,"y_acceleration":0.5821200000000631,"angular_acceleration":0.0},{"time":2.020000000000001,"x":2.019983830000001,"y":0.00007761920000001044,"angle":0.0,"x_velocity":1.0000165,"y_velocity":0.011524800000001023,"angular_velocity":0.0,"x_acceleration":0.24010000000002063,"y_acceleration":1.128960000000048,"angular_acceleration":0.0},{"time":2.0300000000000007,"x":2.0299997271875005,"y":0.0002579958000000176,"angle":0.0,"x_velocity":1.0035286562500003,"y_velocity":0.025404300000001143,"angular_velocity":0.0,"x_acceleration":0.45953750000001464,"y_acceleration":1.6412400000000342,"angular_acceleration":0.0},{"time":2.0400000000000005,"x":2.0400614400000006,"y":0.0006022144000000213,"angle":0.0,"x_velocity":1.0091520000000003,"y_velocity":0.04423680000000102,"angular_velocity":0.0,"x_acceleration":0.6624000000000094,"y_acceleration":2.119680000000022,"angular_acceleration":0.0},{"time":2.0500000000000003,"x":2.0501892578125003,"y":0.0011581250000000179,"angle":0.0,"x_velocity":1.01672265625,"y_velocity":0.06768750000000068,"angular_velocity":0.0,"x_acceleration":0.8490625000000048,"y_acceleration":2.5650000000000115,"angular_acceleration":0.0},{"time":2.06,"x":2.0604018500000003,"y":0.0019702656000000047,"angle":0.0,"x_velocity":1.0260805000000002,"y_velocity":0.09542880000000015,"angular_velocity":0.0,"x_acceleration":1.019900000000001,"y_acceleration":2.9779200000000023,"angular_acceleration":0.0},{"time":2.07,"x":2.0707163034374996,"y":0.003079934199999979,"angle":0.0,"x_velocity":1.0370691562499998,"y_velocity":0.12714029999999948,"angular_velocity":0.0,"x_acceleration":1.1752874999999978,"y_acceleration":3.359159999999994,"angular_acceleration":0.0},{"time":2.0799999999999996,"x":2.0811481599999997,"y":0.004525260799999939,"angle":0.0,"x_velocity":1.0495359999999996,"y_velocity":0.16250879999999862,"angular_velocity":0.0,"x_acceleration":1.3155999999999952,"y_acceleration":3.7094399999999874,"angular_acceleration":0.0},{"time":2.0899999999999994,"x":2.0917114540624993,"y":0.006341279399999881,"angle":0.0,"x_velocity":1.063332156249999,"y_velocity":0.20122829999999764,"angular_velocity":0.0,"x_acceleration":1.4412124999999931,"y_acceleration":4.029479999999982,"angular_acceleration":0.0},{"time":2.099999999999999,"x":2.102418749999999,"y":0.008559999999999807,"angle":0.0,"x_velocity":1.078312499999999,"y_velocity":0.24299999999999655,"angular_velocity":0.0,"x_acceleration":1.5524999999999918,"y_acceleration":4.319999999999978,"angular_acceleration":0.0},{"time":2.109999999999999,"x":2.1132811796874993,"y":0.01121048059999971,"angle":0.0,"x_velocity":1.0943356562499982,"y_velocity":0.28753229999999536,"angular_velocity":0.0,"x_acceleration":1.649837499999991,"y_acceleration":4.581719999999975,"angular_acceleration":0.0},{"time":2.1199999999999988,"x":2.124308479999999,"y":0.01431889919999959,"angle":0.0,"x_velocity":1.111263999999998,"y_velocity":0.33454079999999414,"angular_velocity":0.0,"x_acceleration":1.7335999999999907,"y_acceleration":4.8153599999999726,"angular_acceleration":0.0},{"time":2.1299999999999986,"x":2.1355090303124986,"y":0.017908625799999453,"angle":0.0,"x_velocity":1.1289636562499976,"y_velocity":0.3837482999999928,"angular_velocity":0.0,"x_acceleration":1.8041624999999908,"y_acceleration":5.021639999999972,"angular_acceleration":0.0},{"time":2.1399999999999983,"x":2.146889889999998,"y":0.022000294399999277,"angle":0.0,"x_velocity":1.1473044999999968,"y_velocity":0.43488479999999147,"angular_velocity":0.0,"x_acceleration":1.8618999999999915,"y_acceleration":5.201279999999972,"angular_acceleration":0.0},{"time":2.149999999999998,"x":2.1584568359374976,"y":0.02661187499999909,"angle":0.0,"x_velocity":1.1661601562499966,"y_velocity":0.48768749999999006,"angular_velocity":0.0,"x_acceleration":1.9071874999999925,"y_acceleration":5.354999999999974,"angular_acceleration":0.0},{"time":2.159999999999998,"x":2.170214399999997,"y":0.03175874559999887,"angle":0.0,"x_velocity":1.1854079999999958,"y_velocity":0.5419007999999885,"angular_velocity":0.0,"x_acceleration":1.9403999999999937,"y_acceleration":5.4835199999999755,"angular_acceleration":0.0},{"time":2.1699999999999977,"x":2.1821659065624974,"y":0.03745376419999863,"angle":0.0,"x_velocity":1.2049291562499957,"y_velocity":0.5972762999999873,"angular_velocity":0.0,"x_acceleration":1.9619124999999962,"y_acceleration":5.5875599999999785,"angular_acceleration":0.0},{"time":2.1799999999999975,"x":2.194313509999997,"y":0.043707340799998357,"angle":0.0,"x_velocity":1.2246084999999949,"y_velocity":0.6535727999999857,"angular_velocity":0.0,"x_acceleration":1.9720999999999986,"y_acceleration":5.667839999999983,"angular_acceleration":0.0},{"time":2.1899999999999973,"x":2.2066582321874972,"y":0.050527509399998075,"angle":0.0,"x_velocity":1.2443346562499944,"y_velocity":0.7105562999999845,"angular_velocity":0.0,"x_acceleration":1.9713375000000017,"y_acceleration":5.725079999999988,"angular_acceleration":0.0},{"time":2.199999999999997,"x":2.2191999999999963,"y":0.057919999999997744,"angle":0.0,"x_velocity":1.2639999999999945,"y_velocity":0.7679999999999831,"angular_velocity":0.0,"x_acceleration":1.9600000000000046,"y_acceleration":5.759999999999993,"angular_acceleration":0.0},{"time":2.209999999999997,"x":2.2319376828124957,"y":0.06588831059999739,"angle":0.0,"x_velocity":1.2835006562499942,"y_velocity":0.8256842999999818,"angular_velocity":0.0,"x_acceleration":1.9384625000000084,"y_acceleration":5.77332,"angular_acceleration":0.0},{"time":2.2199999999999966,"x":2.2448691299999957,"y":0.07443377919999702,"angle":0.0,"x_velocity":1.3027364999999933,"y_velocity":0.8833967999999806,"angular_velocity":0.0,"x_acceleration":1.9071000000000122,"y_acceleration":5.765760000000006,"angular_acceleration":0.0},{"time":2.2299999999999964,"x":2.257991208437496,"y":0.08355565579999664,"angle":0.0,"x_velocity":1.3216111562499933,"y_velocity":0.9409322999999794,"angular_velocity":0.0,"x_acceleration":1.8662875000000163,"y_acceleration":5.738040000000014,"angular_acceleration":0.0},{"time":2.239999999999996,"x":2.271299839999995,"y":0.09325117439999621,"angle":0.0,"x_velocity":1.3400319999999932,"y_velocity":0.9980927999999784,"angular_velocity":0.0,"x_acceleration":1.8164000000000202,"y_acceleration":5.690880000000023,"angular_acceleration":0.0},{"time":2.249999999999996,"x":2.2847900390624947,"y":0.10351562499999578,"angle":0.0,"x_velocity":1.357910156249993,"y_velocity":1.0546874999999776,"angular_velocity":0.0,"x_acceleration":1.757812500000025,"y_acceleration":5.625000000000029,"angular_acceleration":0.0},{"time":2.259999999999996,"x":2.2984559499999944,"y":0.11434242559999533,"angle":0.0,"x_velocity":1.375160499999993,"y_velocity":1.1105327999999766,"angular_velocity":0.0,"x_acceleration":1.6909000000000298,"y_acceleration":5.54112000000004,"angular_acceleration":0.0},{"time":2.2699999999999956,"x":2.312290884687494,"y":0.12572319419999484,"angle":0.0,"x_velocity":1.391701656249993,"y_velocity":1.165452299999976,"angular_velocity":0.0,"x_acceleration":1.616037500000035,"y_acceleration":5.439960000000049,"angular_acceleration":0.0},{"time":2.2799999999999954,"x":2.326287359999993,"y":0.13764782079999435,"angle":0.0,"x_velocity":1.4074559999999932,"y_velocity":1.2192767999999754,"angular_velocity":0.0,"x_acceleration":1.5336000000000403,"y_acceleration":5.3222400000000585,"angular_acceleration":0.0},{"time":2.289999999999995,"x":2.3404371353124933,"y":0.1501045393999938,"angle":0.0,"x_velocity":1.422349656249993,"y_velocity":1.271844299999975,"angular_velocity":0.0,"x_acceleration":1.4439625000000442,"y_acceleration":5.1886800000000655,"angular_acceleration":0.0},{"time":2.299999999999995,"x":2.354731249999993,"y":0.16307999999999329,"angle":0.0,"x_velocity":1.436312499999993,"y_velocity":1.3229999999999744,"angular_velocity":0.0,"x_acceleration":1.3475000000000505,"y_acceleration":5.040000000000078,"angular_acceleration":0.0},{"time":2.3099999999999947,"x":2.369160060937492,"y":0.1765593405999928,"angle":0.0,"x_velocity":1.4492781562499935,"y_velocity":1.3725962999999741,"angular_velocity":0.0,"x_acceleration":1.244587500000056,"y_acceleration":4.876920000000087,"angular_acceleration":0.0},{"time":2.3199999999999945,"x":2.3837132799999923,"y":0.19052625919999228,"angle":0.0,"x_velocity":1.4611839999999936,"y_velocity":1.4204927999999741,"angular_velocity":0.0,"x_acceleration":1.1356000000000623,"y_acceleration":4.700160000000098,"angular_acceleration":0.0},{"time":2.3299999999999943,"x":2.398380011562492,"y":0.20496308579999165,"angle":0.0,"x_velocity":1.4719711562499942,"y_velocity":1.4665562999999742,"angular_velocity":0.0,"x_acceleration":1.0209125000000672,"y_acceleration":4.510440000000111,"angular_acceleration":0.0},{"time":2.339999999999994,"x":2.4131487899999913,"y":0.2198508543999911,"angle":0.0,"x_velocity":1.4815844999999945,"y_velocity":1.5106607999999748,"angular_velocity":0.0,"x_acceleration":0.9009000000000724,"y_acceleration":4.308480000000118,"angular_acceleration":0.0},{"time":2.349999999999994,"x":2.428007617187491,"y":0.23516937499999047,"angle":0.0,"x_velocity":1.489972656249995,"y_velocity":1.5526874999999747,"angular_velocity":0.0,"x_acceleration":0.7759375000000772,"y_acceleration":4.095000000000134,"angular_acceleration":0.0},{"time":2.3599999999999937,"x":2.4429439999999905,"y":0.25089730559998996,"angle":0.0,"x_velocity":1.4970879999999958,"y_velocity":1.5925247999999754,"angular_velocity":0.0,"x_acceleration":0.6464000000000838,"y_acceleration":3.8707200000001434,"angular_acceleration":0.0},{"time":2.3699999999999934,"x":2.4579449878124904,"y":0.26701222419998927,"angle":0.0,"x_velocity":1.5028866562499965,"y_velocity":1.6300682999999756,"angular_velocity":0.0,"x_acceleration":0.5126625000000908,"y_acceleration":3.636360000000156,"angular_acceleration":0.0},{"time":2.3799999999999932,"x":2.4729972099999897,"y":0.2834907007999887,"angle":0.0,"x_velocity":1.5073284999999976,"y_velocity":1.6652207999999773,"angular_velocity":0.0,"x_acceleration":0.3751000000000926,"y_acceleration":3.3926400000001635,"angular_acceleration":0.0},{"time":2.389999999999993,"x":2.4880869134374897,"y":0.3003083693999881,"angle":0.0,"x_velocity":1.510377156249998,"y_velocity":1.6978922999999777,"angular_velocity":0.0,"x_acceleration":0.23408750000010103,"y_acceleration":3.140280000000181,"angular_acceleration":0.0},{"time":2.399999999999993,"x":2.503199999999989,"y":0.3174399999999876,"angle":0.0,"x_velocity":1.5119999999999993,"y_velocity":1.7279999999999793,"angular_velocity":0.0,"x_acceleration":0.09000000000010377,"y_acceleration":2.8800000000001855,"angular_acceleration":0.0},{"time":2.4099999999999926,"x":2.518322064062489,"y":0.3348595705999869,"angle":0.0,"x_velocity":1.51216815625,"y_velocity":1.7554682999999809,"angular_velocity":0.0,"x_acceleration":-0.05678749999989119,"y_acceleration":2.612520000000199,"angular_acceleration":0.0},{"time":2.4199999999999924,"x":2.5334384299999884,"y":0.3525403391999864,"angle":0.0,"x_velocity":1.5108565000000014,"y_velocity":1.7802287999999824,"angular_velocity":0.0,"x_acceleration":-0.20589999999988606,"y_acceleration":2.338560000000207,"angular_acceleration":0.0},{"time":2.429999999999992,"x":2.548534189687489,"y":0.3704549157999859,"angle":0.0,"x_velocity":1.5080436562500028,"y_velocity":1.8022202999999837,"angular_velocity":0.0,"x_acceleration":-0.35696249999988083,"y_acceleration":2.0588400000002185,"angular_acceleration":0.0},{"time":2.439999999999992,"x":2.563594239999988,"y":0.38857533439998526,"angle":0.0,"x_velocity":1.5037120000000042,"y_velocity":1.821388799999986,"angular_velocity":0.0,"x_acceleration":-0.5095999999998755,"y_acceleration":1.774080000000227,"angular_acceleration":0.0},{"time":2.4499999999999917,"x":2.5786033203124874,"y":0.40687312499998496,"angle":0.0,"x_velocity":1.4978476562500052,"y_velocity":1.837687499999988,"angular_velocity":0.0,"x_acceleration":-0.6634374999998727,"y_acceleration":1.485000000000234,"angular_acceleration":0.0},{"time":2.4599999999999915,"x":2.593546049999987,"y":0.42531938559998433,"angle":0.0,"x_velocity":1.490440500000007,"y_velocity":1.8510767999999898,"angular_velocity":0.0,"x_acceleration":-0.818099999999867,"y_acceleration":1.192320000000251,"angular_acceleration":0.0},{"time":2.4699999999999913,"x":2.6084069659374873,"y":0.4438848541999838,"angle":0.0,"x_velocity":1.4814841562500076,"y_velocity":1.8615242999999912,"angular_velocity":0.0,"x_acceleration":-0.973212499999863,"y_acceleration":0.8967600000002633,"angular_acceleration":0.0},{"time":2.479999999999991,"x":2.623170559999987,"y":0.4625399807999834,"angle":0.0,"x_velocity":1.4709760000000098,"y_velocity":1.8690047999999941,"angular_velocity":0.0,"x_acceleration":-1.1283999999998606,"y_acceleration":0.5990400000002669,"angular_acceleration":0.0},{"time":2.489999999999991,"x":2.6378213165624866,"y":0.48125499939998295,"angle":0.0,"x_velocity":1.4589171562500116,"y_velocity":1.873500299999997,"angular_velocity":0.0,"x_acceleration":-1.283287499999858,"y_acceleration":0.2998800000002717,"angular_acceleration":0.0},{"time":2.4999999999999907,"x":2.6523437499999867,"y":0.4999999999999825,"angle":0.0,"x_velocity":1.4453125000000138,"y_velocity":1.8749999999999996,"angular_velocity":0.0,"x_acceleration":-1.437499999999858,"y_acceleration":2.7711166694643907e-13,"angular_acceleration":0.0},{"time":2.5099999999999905,"x":2.666722442187486,"y":0.5187450005999821,"angle":0.0,"x_velocity":1.4301706562500156,"y_velocity":1.8735003000000043,"angular_velocity":0.0,"x_acceleration":-1.5906624999998584,"y_acceleration":-0.2998799999997246,"angular_acceleration":0.0},{"time":2.5199999999999902,"x":2.680942079999986,"y":0.5374600191999819,"angle":0.0,"x_velocity":1.4135040000000174,"y_velocity":1.869004800000007,"angular_velocity":0.0,"x_acceleration":-1.7423999999998525,"y_acceleration":-0.5990399999997145,"angular_acceleration":0.0},{"time":2.52999999999999,"x":2.694987492812486,"y":0.5561151457999813,"angle":0.0,"x_velocity":1.3953286562500193,"y_velocity":1.86152430000001,"angular_velocity":0.0,"x_acceleration":-1.8923374999998508,"y_acceleration":-0.896759999999702,"angular_acceleration":0.0},{"time":2.53999999999999,"x":2.708843689999986,"y":0.5746806143999814,"angle":0.0,"x_velocity":1.3756645000000212,"y_velocity":1.851076800000012,"angular_velocity":0.0,"x_acceleration":-2.0400999999998515,"y_acceleration":-1.192319999999711,"angular_acceleration":0.0},{"time":2.5499999999999896,"x":2.722495898437486,"y":0.5931268749999807,"angle":0.0,"x_velocity":1.354535156250023,"y_velocity":1.8376875000000155,"angular_velocity":0.0,"x_acceleration":-2.1853124999998492,"y_acceleration":-1.484999999999701,"angular_acceleration":0.0},{"time":2.5599999999999894,"x":2.7359295999999858,"y":0.6114246655999804,"angle":0.0,"x_velocity":1.3319680000000262,"y_velocity":1.821388800000019,"angular_velocity":0.0,"x_acceleration":-2.3275999999998493,"y_acceleration":-1.7740799999996995,"angular_acceleration":0.0},{"time":2.569999999999989,"x":2.7491305690624857,"y":0.6295450841999806,"angle":0.0,"x_velocity":1.307994156250026,"y_velocity":1.802220300000021,"angular_velocity":0.0,"x_acceleration":-2.4665874999998483,"y_acceleration":-2.058839999999691,"angular_acceleration":0.0},{"time":2.579999999999989,"x":2.7620849099999862,"y":0.6474596607999803,"angle":0.0,"x_velocity":1.2826485000000292,"y_velocity":1.7802288000000255,"angular_velocity":0.0,"x_acceleration":-2.601899999999855,"y_acceleration":-2.3385599999997027,"angular_acceleration":0.0},{"time":2.5899999999999888,"x":2.774779094687486,"y":0.6651404293999803,"angle":0.0,"x_velocity":1.2559696562500302,"y_velocity":1.7554683000000302,"angular_velocity":0.0,"x_acceleration":-2.7331624999998585,"y_acceleration":-2.612519999999698,"angular_acceleration":0.0},{"time":2.5999999999999885,"x":2.787199999999986,"y":0.6825599999999805,"angle":0.0,"x_velocity":1.2280000000000326,"y_velocity":1.728000000000034,"angular_velocity":0.0,"x_acceleration":-2.8599999999998538,"y_acceleration":-2.8799999999996935,"angular_acceleration":0.0},{"time":2.6099999999999883,"x":2.799334945312486,"y":0.6996916305999802,"angle":0.0,"x_velocity":1.1987856562500339,"y_velocity":1.6978923000000359,"angular_velocity":0.0,"x_acceleration":-2.9820374999998567,"y_acceleration":-3.1402799999997058,"angular_acceleration":0.0},{"time":2.619999999999988,"x":2.8111717299999865,"y":0.7165092991999804,"angle":0.0,"x_velocity":1.1683765000000372,"y_velocity":1.6652208000000392,"angular_velocity":0.0,"x_acceleration":-3.0988999999998654,"y_acceleration":-3.3926399999997088,"angular_acceleration":0.0},{"time":2.629999999999988,"x":2.822698670937486,"y":0.7329877757999804,"angle":0.0,"x_velocity":1.1368261562500392,"y_velocity":1.6300683000000458,"angular_velocity":0.0,"x_acceleration":-3.2102124999998676,"y_acceleration":-3.636359999999719,"angular_acceleration":0.0},{"time":2.6399999999999877,"x":2.833904639999987,"y":0.7491026943999806,"angle":0.0,"x_velocity":1.1041920000000411,"y_velocity":1.5925248000000476,"angular_velocity":0.0,"x_acceleration":-3.3155999999998755,"y_acceleration":-3.8707199999997215,"angular_acceleration":0.0},{"time":2.6499999999999875,"x":2.844779101562487,"y":0.7648306249999806,"angle":0.0,"x_velocity":1.0705351562500423,"y_velocity":1.5526875000000526,"angular_velocity":0.0,"x_acceleration":-3.4146874999998857,"y_acceleration":-4.094999999999729,"angular_acceleration":0.0},{"time":2.6599999999999873,"x":2.8553121499999863,"y":0.7801491455999805,"angle":0.0,"x_velocity":1.0359205000000458,"y_velocity":1.5106608000000552,"angular_velocity":0.0,"x_acceleration":-3.5070999999998875,"y_acceleration":-4.30847999999974,"angular_acceleration":0.0},{"time":2.669999999999987,"x":2.865494547187487,"y":0.7950369141999811,"angle":0.0,"x_velocity":1.0004166562500467,"y_velocity":1.4665563000000548,"angular_velocity":0.0,"x_acceleration":-3.5924624999998898,"y_acceleration":-4.510439999999733,"angular_acceleration":0.0},{"time":2.679999999999987,"x":2.8753177599999873,"y":0.8094737407999814,"angle":0.0,"x_velocity":0.9640960000000485,"y_velocity":1.420492800000062,"angular_velocity":0.0,"x_acceleration":-3.6703999999998977,"y_acceleration":-4.700159999999755,"angular_acceleration":0.0},{"time":2.6899999999999866,"x":2.884773997812488,"y":0.8234406593999817,"angle":0.0,"x_velocity":0.9270346562500507,"y_velocity":1.3725963000000654,"angular_velocity":0.0,"x_acceleration":-3.7405374999999097,"y_acceleration":-4.876919999999778,"angular_acceleration":0.0},{"time":2.6999999999999864,"x":2.8938562499999883,"y":0.8369199999999815,"angle":0.0,"x_velocity":0.8893125000000532,"y_velocity":1.3230000000000732,"angular_velocity":0.0,"x_acceleration":-3.802499999999924,"y_acceleration":-5.0399999999998,"angular_acceleration":0.0},{"time":2.709999999999986,"x":2.9025583234374883,"y":0.8498954605999827,"angle":0.0,"x_velocity":0.8510131562500538,"y_velocity":1.2718443000000708,"angular_velocity":0.0,"x_acceleration":-3.8559124999999312,"y_acceleration":-5.188679999999806,"angular_acceleration":0.0},{"time":2.719999999999986,"x":2.910874879999988,"y":0.8623521791999815,"angle":0.0,"x_velocity":0.8122240000000565,"y_velocity":1.2192768000000758,"angular_velocity":0.0,"x_acceleration":-3.9003999999999444,"y_acceleration":-5.32223999999983,"angular_acceleration":0.0},{"time":2.7299999999999858,"x":2.918801474062489,"y":0.8742768057999839,"angle":0.0,"x_velocity":0.773036156250055,"y_velocity":1.1654523000000783,"angular_velocity":0.0,"x_acceleration":-3.9355874999999614,"y_acceleration":-5.439959999999857,"angular_acceleration":0.0},{"time":2.7399999999999856,"x":2.926334589999989,"y":0.8856575743999837,"angle":0.0,"x_velocity":0.7335445000000558,"y_velocity":1.110532800000076,"angular_velocity":0.0,"x_acceleration":-3.9610999999999663,"y_acceleration":-5.541119999999857,"angular_acceleration":0.0},{"time":2.7499999999999853,"x":2.93347167968749,"y":0.8964843749999845,"angle":0.0,"x_velocity":0.6938476562500586,"y_velocity":1.05468750000008,"angular_velocity":0.0,"x_acceleration":-3.9765624999999787,"y_acceleration":-5.624999999999893,"angular_acceleration":0.0},{"time":2.759999999999985,"x":2.94021119999999,"y":0.9067488255999852,"angle":0.0,"x_velocity":0.654048000000059,"y_velocity":0.9980928000000873,"angular_velocity":0.0,"x_acceleration":-3.9816000000000003,"y_acceleration":-5.690879999999915,"angular_acceleration":0.0},{"time":2.769999999999985,"x":2.9465526503124906,"y":0.9164443441999843,"angle":0.0,"x_velocity":0.6142516562500626,"y_velocity":0.9409323000000871,"angular_velocity":0.0,"x_acceleration":-3.975837500000022,"y_acceleration":-5.7380399999999625,"angular_acceleration":0.0},{"time":2.7799999999999847,"x":2.952496609999991,"y":0.9255662207999862,"angle":0.0,"x_velocity":0.5745685000000611,"y_velocity":0.8833968000000905,"angular_velocity":0.0,"x_acceleration":-3.958900000000032,"y_acceleration":-5.765759999999993,"angular_acceleration":0.0},{"time":2.7899999999999845,"x":2.958044775937492,"y":0.9341116893999866,"angle":0.0,"x_velocity":0.5351121562500625,"y_velocity":0.8256843000000931,"angular_velocity":0.0,"x_acceleration":-3.930412500000049,"y_acceleration":-5.773320000000005,"angular_acceleration":0.0},{"time":2.7999999999999843,"x":2.9631999999999916,"y":0.9420799999999883,"angle":0.0,"x_velocity":0.4960000000000626,"y_velocity":0.7680000000000913,"angular_velocity":0.0,"x_acceleration":-3.890000000000068,"y_acceleration":-5.7600000000000335,"angular_acceleration":0.0},{"time":2.809999999999984,"x":2.967966326562493,"y":0.9494724905999883,"angle":0.0,"x_velocity":0.4573531562500621,"y_velocity":0.7105563000000927,"angular_velocity":0.0,"x_acceleration":-3.8372875000000874,"y_acceleration":-5.7250800000000766,"angular_acceleration":0.0},{"time":2.819999999999984,"x":2.972349029999992,"y":0.9562926591999878,"angle":0.0,"x_velocity":0.419296500000061,"y_velocity":0.6535728000000987,"angular_velocity":0.0,"x_acceleration":-3.771900000000123,"y_acceleration":-5.667840000000112,"angular_acceleration":0.0},{"time":2.8299999999999836,"x":2.976354652187494,"y":0.9625462357999903,"angle":0.0,"x_velocity":0.38195865625006054,"y_velocity":0.5972763000000967,"angular_velocity":0.0,"x_acceleration":-3.6934625000001517,"y_acceleration":-5.587560000000167,"angular_acceleration":0.0},{"time":2.8399999999999834,"x":2.979991039999994,"y":0.9682412543999908,"angle":0.0,"x_velocity":0.3454720000000595,"y_velocity":0.5419008000000911,"angular_velocity":0.0,"x_acceleration":-3.6016000000001682,"y_acceleration":-5.483520000000212,"angular_acceleration":0.0},{"time":2.849999999999983,"x":2.9832673828124943,"y":0.9733881249999912,"angle":0.0,"x_velocity":0.3099726562500571,"y_velocity":0.4876875000000922,"angular_velocity":0.0,"x_acceleration":-3.4959375000001884,"y_acceleration":-5.355000000000246,"angular_acceleration":0.0},{"time":2.859999999999983,"x":2.9861942499999943,"y":0.9779997055999909,"angle":0.0,"x_velocity":0.2756005000000581,"y_velocity":0.4348848000000949,"angular_velocity":0.0,"x_acceleration":-3.376100000000207,"y_acceleration":-5.2012800000002954,"angular_acceleration":0.0},{"time":2.869999999999983,"x":2.9887836284374947,"y":0.9820913741999924,"angle":0.0,"x_velocity":0.24249915625005514,"y_velocity":0.38374830000008586,"angular_velocity":0.0,"x_acceleration":-3.24171250000024,"y_acceleration":-5.021640000000318,"angular_acceleration":0.0},{"time":2.8799999999999826,"x":2.9910489599999974,"y":0.9856811007999946,"angle":0.0,"x_velocity":0.21081600000005452,"y_velocity":0.33454080000008446,"angular_velocity":0.0,"x_acceleration":-3.092400000000282,"y_acceleration":-4.815360000000382,"angular_acceleration":0.0},{"time":2.8899999999999824,"x":2.9930051790624965,"y":0.9887895193999947,"angle":0.0,"x_velocity":0.18070215625005304,"y_velocity":0.28753230000008045,"angular_velocity":0.0,"x_acceleration":-2.9277875000003064,"y_acceleration":-4.581720000000431,"angular_acceleration":0.0},{"time":2.899999999999982,"x":2.994668749999997,"y":0.9914399999999963,"angle":0.0,"x_velocity":0.15231250000005048,"y_velocity":0.24300000000008026,"angular_velocity":0.0,"x_acceleration":-2.7475000000003433,"y_acceleration":-4.320000000000505,"angular_acceleration":0.0},{"time":2.909999999999982,"x":2.996057704687497,"y":0.9936587205999974,"angle":0.0,"x_velocity":0.12580565625004425,"y_velocity":0.20122830000006786,"angular_velocity":0.0,"x_acceleration":-2.551162500000366,"y_acceleration":-4.029480000000547,"angular_acceleration":0.0},{"time":2.9199999999999817,"x":2.997191679999999,"y":0.9954747391999987,"angle":0.0,"x_velocity":0.10134400000004362,"y_velocity":0.16250880000006163,"angular_velocity":0.0,"x_acceleration":-2.338400000000412,"y_acceleration":-3.7094400000005976,"angular_acceleration":0.0},{"time":2.9299999999999815,"x":2.9980919553124985,"y":0.9969200657999968,"angle":0.0,"x_velocity":0.07909365625003595,"y_velocity":0.1271403000000575,"angular_velocity":0.0,"x_acceleration":-2.1088375000004334,"y_acceleration":-3.3591600000006707,"angular_acceleration":0.0},{"time":2.9399999999999813,"x":2.9987814899999994,"y":0.9980297343999984,"angle":0.0,"x_velocity":0.059224500000032876,"y_velocity":0.09542880000005027,"angular_velocity":0.0,"x_acceleration":-1.8621000000004742,"y_acceleration":-2.9779200000007506,"angular_acceleration":0.0},{"time":2.949999999999981,"x":2.999284960937499,"y":0.9988418749999992,"angle":0.0,"x_velocity":0.04191015625002947,"y_velocity":0.06768750000005141,"angular_velocity":0.0,"x_acceleration":-1.597812500000515,"y_acceleration":-2.5650000000008077,"angular_acceleration":0.0},{"time":2.959999999999981,"x":2.9996288000000004,"y":0.9993977855999985,"angle":0.0,"x_velocity":0.027328000000022,"y_velocity":0.04423680000003216,"angular_velocity":0.0,"x_acceleration":-1.3156000000005506,"y_acceleration":-2.1196800000008693,"angular_acceleration":0.0},{"time":2.9699999999999807,"x":2.999841231562498,"y":0.9997420041999989,"angle":0.0,"x_velocity":0.015659156250023898,"y_velocity":0.025404300000033686,"angular_velocity":0.0,"x_acceleration":-1.0150875000005968,"y_acceleration":-1.641240000000991,"angular_acceleration":0.0},{"time":2.9799999999999804,"x":2.99995231,"y":0.9999223808000002,"angle":0.0,"x_velocity":0.007088500000012488,"y_velocity":0.011524800000021429,"angular_velocity":0.0,"x_acceleration":-0.695900000000627,"y_acceleration":-1.1289600000010154,"angular_acceleration":0.0},{"time":2.9899999999999802,"x":2.9999939571875007,"y":0.9999901494000003,"angle":0.0,"x_velocity":0.0018046562500018126,"y_velocity":0.002940300000005891,"angular_velocity":0.0,"x_acceleration":-0.35766250000067856,"y_acceleration":-0.5821200000011117,"angular_acceleration":0.0},{"time":2.99999999999998,"x":3.0000000000000004,"y":0.9999999999999991,"angle":0.0,"x_velocity":1.7763568394002505e-15,"y_velocity":-3.552713678800501e-15,"angular_velocity":0.0,"x_acceleration":-7.389644451905042e-13,"y_acceleration":-1.2079226507921703e-12,"angular_acceleration":0.0}]} \ No newline at end of file +{"meta_data":{"path_name":"test","sample_rate":0.01,"robot_name":"Cardigan","field_name":"reefscape-updated"},"commands":[],"key_points":[{"index":0,"delta_time":0.0,"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":1,"delta_time":2.0,"time":2.0,"x":1.0,"y":1.0,"angle":0.0,"x_velocity":1.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.25,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":2,"delta_time":3.0,"time":3.0,"x":2.0,"y":0.0,"angle":0.0,"x_velocity":1.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":-0.25,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":3,"delta_time":4.0,"time":4.0,"x":3.0,"y":1.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0}],"sampled_points":[{"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"time":0.01,"x":7.604785156250002e-7,"y":0.0000012406437500000003,"angle":0.0,"x_velocity":0.00045525976562500004,"y_velocity":0.00074251875,"angular_velocity":0.0,"x_acceleration":0.1812828125,"y_acceleration":0.29551499999999997,"angular_acceleration":0.0},{"time":0.02,"x":0.000006042812500000001,"y":0.000009850600000000002,"angle":0.0,"x_velocity":0.00180465625,"y_velocity":0.0029403,"angular_velocity":0.0,"x_acceleration":0.3576625,"y_acceleration":0.58212,"angular_acceleration":0.0},{"time":0.03,"x":0.000020256591796875,"y":0.000032995181250000006,"angle":0.0,"x_velocity":0.004023791015625,"y_velocity":0.0065490187500000015,"angular_velocity":0.0,"x_acceleration":0.5291859375,"y_acceleration":0.8599049999999999,"angular_acceleration":0.0},{"time":0.04,"x":0.000047690000000000006,"y":0.00007761920000000002,"angle":0.0,"x_velocity":0.0070885,"y_velocity":0.0115248,"angular_velocity":0.0,"x_acceleration":0.6959,"y_acceleration":1.12896,"angular_acceleration":0.0},{"time":0.05,"x":0.00009251098632812502,"y":0.00015044921875000003,"angle":0.0,"x_velocity":0.010974853515625,"y_velocity":0.017824218750000002,"angular_velocity":0.0,"x_acceleration":0.8578515625000002,"y_acceleration":1.3893750000000002,"angular_acceleration":0.0},{"time":0.060000000000000005,"x":0.00015876843750000006,"y":0.0002579958000000001,"angle":0.0,"x_velocity":0.015659156250000004,"y_velocity":0.025404300000000008,"angular_velocity":0.0,"x_acceleration":1.0150875000000001,"y_acceleration":1.6412400000000003,"angular_acceleration":0.0},{"time":0.07,"x":0.0002503933496093751,"y":0.0004065557562500001,"angle":0.0,"x_velocity":0.021117947265625003,"y_velocity":0.03422251875000001,"angular_velocity":0.0,"x_acceleration":1.1676546875,"y_acceleration":1.8846450000000001,"angular_acceleration":0.0},{"time":0.08,"x":0.0003712,"y":0.0006022144000000002,"angle":0.0,"x_velocity":0.027328,"y_velocity":0.0442368,"angular_velocity":0.0,"x_acceleration":1.3155999999999999,"y_acceleration":2.1196800000000002,"angular_acceleration":0.0},{"time":0.09,"x":0.0005248871191406249,"y":0.0008508477937499999,"angle":0.0,"x_velocity":0.034266322265624996,"y_velocity":0.05540551875,"angular_velocity":0.0,"x_acceleration":1.4589703125000002,"y_acceleration":2.346435,"angular_acceleration":0.0},{"time":0.09999999999999999,"x":0.0007150390624999999,"y":0.0011581249999999999,"angle":0.0,"x_velocity":0.04191015625,"y_velocity":0.06768749999999998,"angular_velocity":0.0,"x_acceleration":1.5978124999999999,"y_acceleration":2.565,"angular_acceleration":0.0},{"time":0.10999999999999999,"x":0.0009451269824218746,"y":0.0015295103312499996,"angle":0.0,"x_velocity":0.05023697851562499,"y_velocity":0.08104201874999999,"angular_velocity":0.0,"x_acceleration":1.7321734374999997,"y_acceleration":2.775465,"angular_acceleration":0.0},{"time":0.11999999999999998,"x":0.0012185099999999997,"y":0.001970265599999999,"angle":0.0,"x_velocity":0.05922449999999999,"y_velocity":0.09542879999999997,"angular_velocity":0.0,"x_acceleration":1.8620999999999999,"y_acceleration":2.9779199999999997,"angular_acceleration":0.0},{"time":0.12999999999999998,"x":0.0015384363769531243,"y":0.002485452368749999,"angle":0.0,"x_velocity":0.06885066601562499,"y_velocity":0.11080801874999996,"angular_velocity":0.0,"x_acceleration":1.9876390624999996,"y_acceleration":3.172454999999999,"angular_acceleration":0.0},{"time":0.13999999999999999,"x":0.0019080446874999994,"y":0.003079934199999999,"angle":0.0,"x_velocity":0.07909365624999999,"y_velocity":0.12714029999999998,"angular_velocity":0.0,"x_acceleration":2.1088374999999995,"y_acceleration":3.3591599999999997,"angular_acceleration":0.0},{"time":0.15,"x":0.0023303649902343747,"y":0.0037583789062500005,"angle":0.0,"x_velocity":0.089931884765625,"y_velocity":0.14438671875000003,"angular_velocity":0.0,"x_acceleration":2.2257421875,"y_acceleration":3.538125,"angular_acceleration":0.0},{"time":0.16,"x":0.0028083200000000004,"y":0.004525260800000001,"angle":0.0,"x_velocity":0.10134400000000002,"y_velocity":0.1625088,"angular_velocity":0.0,"x_acceleration":2.3384,"y_acceleration":3.70944,"angular_acceleration":0.0},{"time":0.17,"x":0.0033447262597656262,"y":0.005384862943750002,"angle":0.0,"x_velocity":0.113308884765625,"y_velocity":0.18146851875000003,"angular_velocity":0.0,"x_acceleration":2.4468578125000002,"y_acceleration":3.873194999999999,"angular_acceleration":0.0},{"time":0.18000000000000002,"x":0.003942295312500001,"y":0.006341279400000001,"angle":0.0,"x_velocity":0.12580565625,"y_velocity":0.20122830000000003,"angular_velocity":0.0,"x_acceleration":2.5511625,"y_acceleration":4.02948,"angular_acceleration":0.0},{"time":0.19000000000000003,"x":0.0046036348730468775,"y":0.007398417481250004,"angle":0.0,"x_velocity":0.13881366601562506,"y_velocity":0.22175101875000008,"angular_velocity":0.0,"x_acceleration":2.6513609375000002,"y_acceleration":4.1783850000000005,"angular_acceleration":0.0},{"time":0.20000000000000004,"x":0.005331250000000003,"y":0.008560000000000003,"angle":0.0,"x_velocity":0.15231250000000005,"y_velocity":0.24300000000000013,"angular_velocity":0.0,"x_acceleration":2.7475000000000005,"y_acceleration":4.32,"angular_acceleration":0.0},{"time":0.21000000000000005,"x":0.006127544267578129,"y":0.009829567518750006,"angle":0.0,"x_velocity":0.16628197851562507,"y_velocity":0.2649390187500001,"angular_velocity":0.0,"x_acceleration":2.8396265625000003,"y_acceleration":4.454415,"angular_acceleration":0.0},{"time":0.22000000000000006,"x":0.006994820937500006,"y":0.011210480600000006,"angle":0.0,"x_velocity":0.18070215625000008,"y_velocity":0.2875323000000002,"angular_velocity":0.0,"x_acceleration":2.9277875,"y_acceleration":4.581720000000001,"angular_acceleration":0.0},{"time":0.23000000000000007,"x":0.007935284130859383,"y":0.012705922056250011,"angle":0.0,"x_velocity":0.19555332226562508,"y_velocity":0.31074451875000014,"angular_velocity":0.0,"x_acceleration":3.0120296875000006,"y_acceleration":4.702005000000001,"angular_acceleration":0.0},{"time":0.24000000000000007,"x":0.008951040000000006,"y":0.014318899200000009,"angle":0.0,"x_velocity":0.21081600000000011,"y_velocity":0.33454080000000014,"angular_velocity":0.0,"x_acceleration":3.0924,"y_acceleration":4.815360000000001,"angular_acceleration":0.0},{"time":0.25000000000000006,"x":0.010044097900390632,"y":0.01605224609375001,"angle":0.0,"x_velocity":0.22647094726562506,"y_velocity":0.3588867187500001,"angular_velocity":0.0,"x_acceleration":3.168945312500001,"y_acceleration":4.921875,"angular_acceleration":0.0},{"time":0.26000000000000006,"x":0.011216371562500006,"y":0.01790862580000001,"angle":0.0,"x_velocity":0.2424991562500001,"y_velocity":0.3837483000000002,"angular_velocity":0.0,"x_acceleration":3.241712500000001,"y_acceleration":5.021640000000001,"angular_acceleration":0.0},{"time":0.2700000000000001,"x":0.012469680263671883,"y":0.01989053263125001,"angle":0.0,"x_velocity":0.25888185351562515,"y_velocity":0.4090920187500002,"angular_velocity":0.0,"x_acceleration":3.3107484375000005,"y_acceleration":5.114745000000002,"angular_acceleration":0.0},{"time":0.2800000000000001,"x":0.01380575000000001,"y":0.022000294400000012,"angle":0.0,"x_velocity":0.27560050000000014,"y_velocity":0.4348848000000002,"angular_velocity":0.0,"x_acceleration":3.376100000000001,"y_acceleration":5.201280000000001,"angular_acceleration":0.0},{"time":0.2900000000000001,"x":0.015226214658203136,"y":0.024240074668750018,"angle":0.0,"x_velocity":0.2926367910156251,"y_velocity":0.4610940187500002,"angular_velocity":0.0,"x_acceleration":3.437814062500001,"y_acceleration":5.281335000000001,"angular_acceleration":0.0},{"time":0.3000000000000001,"x":0.016732617187500017,"y":0.026611875000000028,"angle":0.0,"x_velocity":0.3099726562500002,"y_velocity":0.4876875000000003,"angular_velocity":0.0,"x_acceleration":3.495937500000001,"y_acceleration":5.355000000000001,"angular_acceleration":0.0},{"time":0.3100000000000001,"x":0.018326410771484395,"y":0.029117537206250033,"angle":0.0,"x_velocity":0.32759025976562517,"y_velocity":0.5146335187500003,"angular_velocity":0.0,"x_acceleration":3.5505171875000014,"y_acceleration":5.422365000000002,"angular_acceleration":0.0},{"time":0.3200000000000001,"x":0.02000896000000002,"y":0.03175874560000002,"angle":0.0,"x_velocity":0.3454720000000002,"y_velocity":0.5419008000000005,"angular_velocity":0.0,"x_acceleration":3.601600000000001,"y_acceleration":5.483520000000001,"angular_acceleration":0.0},{"time":0.3300000000000001,"x":0.021781542041015647,"y":0.03453702924375004,"angle":0.0,"x_velocity":0.36360050976562514,"y_velocity":0.5694585187500002,"angular_velocity":0.0,"x_acceleration":3.649232812500001,"y_acceleration":5.5385550000000014,"angular_acceleration":0.0},{"time":0.34000000000000014,"x":0.023645347812500023,"y":0.037453764200000045,"angle":0.0,"x_velocity":0.3819586562500002,"y_velocity":0.5972763000000003,"angular_velocity":0.0,"x_acceleration":3.693462500000001,"y_acceleration":5.587560000000001,"angular_acceleration":0.0},{"time":0.35000000000000014,"x":0.025601483154296903,"y":0.040510175781250046,"angle":0.0,"x_velocity":0.40052954101562527,"y_velocity":0.6253242187500002,"angular_velocity":0.0,"x_acceleration":3.7343359375000014,"y_acceleration":5.630625000000002,"angular_acceleration":0.0},{"time":0.36000000000000015,"x":0.02765097000000003,"y":0.04370734080000005,"angle":0.0,"x_velocity":0.4192965000000003,"y_velocity":0.6535728000000004,"angular_velocity":0.0,"x_acceleration":3.771900000000001,"y_acceleration":5.667840000000001,"angular_acceleration":0.0},{"time":0.37000000000000016,"x":0.029794747548828167,"y":0.047046189818750056,"angle":0.0,"x_velocity":0.43824310351562534,"y_velocity":0.6819930187500004,"angular_velocity":0.0,"x_acceleration":3.806201562500001,"y_acceleration":5.699295,"angular_acceleration":0.0},{"time":0.38000000000000017,"x":0.03203367343750004,"y":0.050527509400000066,"angle":0.0,"x_velocity":0.45735315625000045,"y_velocity":0.7105563000000005,"angular_velocity":0.0,"x_acceleration":3.8372875000000004,"y_acceleration":5.72508,"angular_acceleration":0.0},{"time":0.3900000000000002,"x":0.03436852491210942,"y":0.05415194435625007,"angle":0.0,"x_velocity":0.47661069726562544,"y_velocity":0.7392345187500008,"angular_velocity":0.0,"x_acceleration":3.8652046875,"y_acceleration":5.745285000000001,"angular_acceleration":0.0},{"time":0.4000000000000002,"x":0.03680000000000004,"y":0.057920000000000055,"angle":0.0,"x_velocity":0.49600000000000033,"y_velocity":0.7680000000000005,"angular_velocity":0.0,"x_acceleration":3.8900000000000015,"y_acceleration":5.760000000000002,"angular_acceleration":0.0},{"time":0.4100000000000002,"x":0.03932871868164069,"y":0.06183204439375009,"angle":0.0,"x_velocity":0.5155055722656254,"y_velocity":0.7968255187500006,"angular_velocity":0.0,"x_acceleration":3.9117203125000004,"y_acceleration":5.769315,"angular_acceleration":0.0},{"time":0.4200000000000002,"x":0.04195522406250005,"y":0.06588831060000008,"angle":0.0,"x_velocity":0.5351121562500004,"y_velocity":0.8256843000000006,"angular_velocity":0.0,"x_acceleration":3.9304125,"y_acceleration":5.77332,"angular_acceleration":0.0},{"time":0.4300000000000002,"x":0.04467998354492193,"y":0.07008889893125009,"angle":0.0,"x_velocity":0.5548047285156255,"y_velocity":0.8545500187500006,"angular_velocity":0.0,"x_acceleration":3.946123437500001,"y_acceleration":5.772105000000002,"angular_acceleration":0.0},{"time":0.4400000000000002,"x":0.047503390000000055,"y":0.07443377920000009,"angle":0.0,"x_velocity":0.5745685000000005,"y_velocity":0.8833968000000005,"angular_velocity":0.0,"x_acceleration":3.958900000000001,"y_acceleration":5.76576,"angular_acceleration":0.0},{"time":0.45000000000000023,"x":0.05042576293945319,"y":0.0789227929687501,"angle":0.0,"x_velocity":0.5943889160156255,"y_velocity":0.9121992187500008,"angular_velocity":0.0,"x_acceleration":3.9687890625,"y_acceleration":5.754375,"angular_acceleration":0.0},{"time":0.46000000000000024,"x":0.05344734968750009,"y":0.08355565580000011,"angle":0.0,"x_velocity":0.6142516562500004,"y_velocity":0.9409323000000007,"angular_velocity":0.0,"x_acceleration":3.975837499999999,"y_acceleration":5.73804,"angular_acceleration":0.0},{"time":0.47000000000000025,"x":0.05656832655273446,"y":0.08833195950625014,"angle":0.0,"x_velocity":0.6341426347656254,"y_velocity":0.9695715187500009,"angular_velocity":0.0,"x_acceleration":3.9800921875000013,"y_acceleration":5.716845,"angular_acceleration":0.0},{"time":0.48000000000000026,"x":0.059788800000000086,"y":0.09325117440000014,"angle":0.0,"x_velocity":0.6540480000000005,"y_velocity":0.9980928000000007,"angular_velocity":0.0,"x_acceleration":3.981600000000001,"y_acceleration":5.690880000000001,"angular_acceleration":0.0},{"time":0.49000000000000027,"x":0.06310880782226572,"y":0.09831265154375013,"angle":0.0,"x_velocity":0.6739541347656257,"y_velocity":1.0264725187500008,"angular_velocity":0.0,"x_acceleration":3.9804078124999998,"y_acceleration":5.660234999999999,"angular_acceleration":0.0},{"time":0.5000000000000002,"x":0.06652832031250008,"y":0.10351562500000012,"angle":0.0,"x_velocity":0.6938476562500006,"y_velocity":1.0546875000000007,"angular_velocity":0.0,"x_acceleration":3.9765624999999996,"y_acceleration":5.624999999999999,"angular_acceleration":0.0},{"time":0.5100000000000002,"x":0.07004724143554697,"y":0.10885921408125014,"angle":0.0,"x_velocity":0.7137154160156254,"y_velocity":1.0827150187500003,"angular_velocity":0.0,"x_acceleration":3.9701109374999994,"y_acceleration":5.585265000000001,"angular_acceleration":0.0},{"time":0.5200000000000002,"x":0.07366541000000008,"y":0.11434242560000013,"angle":0.0,"x_velocity":0.7335445000000005,"y_velocity":1.110532800000001,"angular_velocity":0.0,"x_acceleration":3.9611,"y_acceleration":5.541119999999998,"angular_acceleration":0.0},{"time":0.5300000000000002,"x":0.07738260083007821,"y":0.11996415611875012,"angle":0.0,"x_velocity":0.7533222285156255,"y_velocity":1.1381190187500008,"angular_velocity":0.0,"x_acceleration":3.9495765625,"y_acceleration":5.492654999999998,"angular_acceleration":0.0},{"time":0.5400000000000003,"x":0.08119852593750011,"y":0.12572319420000017,"angle":0.0,"x_velocity":0.7730361562500006,"y_velocity":1.1654523000000006,"angular_velocity":0.0,"x_acceleration":3.9355874999999996,"y_acceleration":5.439959999999996,"angular_acceleration":0.0},{"time":0.5500000000000003,"x":0.08511283569335945,"y":0.13161822265625012,"angle":0.0,"x_velocity":0.7926740722656256,"y_velocity":1.192511718750001,"angular_velocity":0.0,"x_acceleration":3.919179687499999,"y_acceleration":5.383124999999997,"angular_acceleration":0.0},{"time":0.5600000000000003,"x":0.08912512000000011,"y":0.13764782080000018,"angle":0.0,"x_velocity":0.8122240000000005,"y_velocity":1.2192768000000007,"angular_velocity":0.0,"x_acceleration":3.900399999999999,"y_acceleration":5.322239999999997,"angular_acceleration":0.0},{"time":0.5700000000000003,"x":0.09323490946289074,"y":0.14381046669375017,"angle":0.0,"x_velocity":0.8316741972656255,"y_velocity":1.2457275187500005,"angular_velocity":0.0,"x_acceleration":3.8792953125000005,"y_acceleration":5.257394999999999,"angular_acceleration":0.0},{"time":0.5800000000000003,"x":0.09744167656250015,"y":0.1501045394000002,"angle":0.0,"x_velocity":0.8510131562500007,"y_velocity":1.2718443000000015,"angular_velocity":0.0,"x_acceleration":3.8559124999999987,"y_acceleration":5.188679999999996,"angular_acceleration":0.0},{"time":0.5900000000000003,"x":0.10174483682617201,"y":0.15652832123125016,"angle":0.0,"x_velocity":0.8702296035156256,"y_velocity":1.297608018750001,"angular_velocity":0.0,"x_acceleration":3.8302984374999993,"y_acceleration":5.116184999999998,"angular_acceleration":0.0},{"time":0.6000000000000003,"x":0.10614375000000013,"y":0.1630800000000002,"angle":0.0,"x_velocity":0.8893125000000007,"y_velocity":1.3230000000000008,"angular_velocity":0.0,"x_acceleration":3.8024999999999993,"y_acceleration":5.039999999999998,"angular_acceleration":0.0},{"time":0.6100000000000003,"x":0.11063772122070328,"y":0.16975767126875022,"angle":0.0,"x_velocity":0.9082510410156257,"y_velocity":1.3480020187500006,"angular_velocity":0.0,"x_acceleration":3.772564062499998,"y_acceleration":4.960215000000001,"angular_acceleration":0.0},{"time":0.6200000000000003,"x":0.11522600218750015,"y":0.1765593406000002,"angle":0.0,"x_velocity":0.9270346562500007,"y_velocity":1.3725963000000014,"angular_velocity":0.0,"x_acceleration":3.740537499999998,"y_acceleration":4.876919999999995,"angular_acceleration":0.0},{"time":0.6300000000000003,"x":0.11990779233398455,"y":0.18348292580625022,"angle":0.0,"x_velocity":0.9456530097656255,"y_velocity":1.3967655187500005,"angular_velocity":0.0,"x_acceleration":3.7064671875000004,"y_acceleration":4.790204999999996,"angular_acceleration":0.0},{"time":0.6400000000000003,"x":0.12468224000000017,"y":0.19052625920000021,"angle":0.0,"x_velocity":0.9640960000000007,"y_velocity":1.4204928000000012,"angular_velocity":0.0,"x_acceleration":3.6703999999999986,"y_acceleration":4.700159999999993,"angular_acceleration":0.0},{"time":0.6500000000000004,"x":0.1295484436035158,"y":0.19768708984375022,"angle":0.0,"x_velocity":0.9823537597656256,"y_velocity":1.4437617187500011,"angular_velocity":0.0,"x_acceleration":3.6323828124999995,"y_acceleration":4.606874999999997,"angular_acceleration":0.0},{"time":0.6600000000000004,"x":0.13450545281250018,"y":0.20496308580000025,"angle":0.0,"x_velocity":1.000416656250001,"y_velocity":1.4665563000000013,"angular_velocity":0.0,"x_acceleration":3.5924624999999972,"y_acceleration":4.5104399999999965,"angular_acceleration":0.0},{"time":0.6700000000000004,"x":0.13955226971679707,"y":0.2123518363812503,"angle":0.0,"x_velocity":1.0182752910156259,"y_velocity":1.4888610187500013,"angular_velocity":0.0,"x_acceleration":3.550685937499998,"y_acceleration":4.410944999999996,"angular_acceleration":0.0},{"time":0.6800000000000004,"x":0.1446878500000002,"y":0.21985085440000027,"angle":0.0,"x_velocity":1.0359205000000007,"y_velocity":1.510660800000001,"angular_velocity":0.0,"x_acceleration":3.507099999999998,"y_acceleration":4.308479999999992,"angular_acceleration":0.0},{"time":0.6900000000000004,"x":0.1499111041113283,"y":0.2274575784187503,"angle":0.0,"x_velocity":1.0533433535156254,"y_velocity":1.5319410187500007,"angular_velocity":0.0,"x_acceleration":3.461751562500001,"y_acceleration":4.203134999999995,"angular_acceleration":0.0},{"time":0.7000000000000004,"x":0.15522089843750017,"y":0.23516937500000032,"angle":0.0,"x_velocity":1.0705351562500005,"y_velocity":1.5526875000000007,"angular_velocity":0.0,"x_acceleration":3.4146875000000003,"y_acceleration":4.095000000000001,"angular_acceleration":0.0},{"time":0.7100000000000004,"x":0.16061605647460958,"y":0.24298354095625027,"angle":0.0,"x_velocity":1.0874874472656253,"y_velocity":1.5728865187500005,"angular_velocity":0.0,"x_acceleration":3.365954687499999,"y_acceleration":3.984164999999999,"angular_acceleration":0.0},{"time":0.7200000000000004,"x":0.16609536000000025,"y":0.2508973056000004,"angle":0.0,"x_velocity":1.1041920000000007,"y_velocity":1.5925248000000005,"angular_velocity":0.0,"x_acceleration":3.315599999999996,"y_acceleration":3.8707199999999915,"angular_acceleration":0.0},{"time":0.7300000000000004,"x":0.17165755024414084,"y":0.2589078329937503,"angle":0.0,"x_velocity":1.1206408222656257,"y_velocity":1.6115895187500007,"angular_velocity":0.0,"x_acceleration":3.263670312499998,"y_acceleration":3.754754999999995,"angular_acceleration":0.0},{"time":0.7400000000000004,"x":0.17730132906250023,"y":0.26701222420000026,"angle":0.0,"x_velocity":1.136826156250001,"y_velocity":1.6300683000000007,"angular_velocity":0.0,"x_acceleration":3.2102124999999977,"y_acceleration":3.6363599999999954,"angular_acceleration":0.0},{"time":0.7500000000000004,"x":0.1830253601074222,"y":0.27520751953125044,"angle":0.0,"x_velocity":1.1527404785156257,"y_velocity":1.6479492187500009,"angular_velocity":0.0,"x_acceleration":3.155273437499999,"y_acceleration":3.5156249999999982,"angular_acceleration":0.0},{"time":0.7600000000000005,"x":0.18882827000000021,"y":0.28349070080000033,"angle":0.0,"x_velocity":1.1683765000000006,"y_velocity":1.6652208000000004,"angular_velocity":0.0,"x_acceleration":3.098899999999997,"y_acceleration":3.392639999999994,"angular_acceleration":0.0},{"time":0.7700000000000005,"x":0.19470864950195343,"y":0.2918586935687504,"angle":0.0,"x_velocity":1.1837271660156259,"y_velocity":1.6818720187500014,"angular_velocity":0.0,"x_acceleration":3.0411390624999957,"y_acceleration":3.2674949999999905,"angular_acceleration":0.0},{"time":0.7800000000000005,"x":0.2006650546875003,"y":0.3003083694000004,"angle":0.0,"x_velocity":1.1987856562500008,"y_velocity":1.6978923000000004,"angular_velocity":0.0,"x_acceleration":2.9820374999999992,"y_acceleration":3.140279999999997,"angular_acceleration":0.0},{"time":0.7900000000000005,"x":0.20669600811523464,"y":0.30883654810625044,"angle":0.0,"x_velocity":1.213545384765626,"y_velocity":1.7132715187500012,"angular_velocity":0.0,"x_acceleration":2.9216421874999963,"y_acceleration":3.0110849999999925,"angular_acceleration":0.0},{"time":0.8000000000000005,"x":0.21280000000000027,"y":0.3174400000000004,"angle":0.0,"x_velocity":1.2280000000000009,"y_velocity":1.7280000000000009,"angular_velocity":0.0,"x_acceleration":2.859999999999996,"y_acceleration":2.879999999999992,"angular_acceleration":0.0},{"time":0.8100000000000005,"x":0.2189754893847659,"y":0.3261154481437504,"angle":0.0,"x_velocity":1.2421433847656258,"y_velocity":1.742068518750001,"angular_velocity":0.0,"x_acceleration":2.7971578124999983,"y_acceleration":2.7471149999999938,"angular_acceleration":0.0},{"time":0.8200000000000005,"x":0.22522090531250027,"y":0.3348595706000004,"angle":0.0,"x_velocity":1.2559696562500011,"y_velocity":1.7554683000000006,"angular_velocity":0.0,"x_acceleration":2.733162499999998,"y_acceleration":2.612519999999993,"angular_acceleration":0.0},{"time":0.8300000000000005,"x":0.2315346479980472,"y":0.3436690026812504,"angle":0.0,"x_velocity":1.2694731660156258,"y_velocity":1.7681910187500007,"angular_velocity":0.0,"x_acceleration":2.6680609374999973,"y_acceleration":2.476304999999993,"angular_acceleration":0.0},{"time":0.8400000000000005,"x":0.23791509000000033,"y":0.3525403392000005,"angle":0.0,"x_velocity":1.2826485000000007,"y_velocity":1.7802288000000008,"angular_velocity":0.0,"x_acceleration":2.601899999999995,"y_acceleration":2.3385599999999886,"angular_acceleration":0.0},{"time":0.8500000000000005,"x":0.24436057739257847,"y":0.3614701367187505,"angle":0.0,"x_velocity":1.2954904785156254,"y_velocity":1.7915742187500006,"angular_velocity":0.0,"x_acceleration":2.534726562499996,"y_acceleration":2.1993749999999928,"angular_acceleration":0.0},{"time":0.8600000000000005,"x":0.25086943093750036,"y":0.37045491580000045,"angle":0.0,"x_velocity":1.3079941562500006,"y_velocity":1.8022203,"angular_velocity":0.0,"x_acceleration":2.4665874999999993,"y_acceleration":2.0588399999999965,"angular_acceleration":0.0},{"time":0.8700000000000006,"x":0.2574399472558596,"y":0.37949116325625043,"angle":0.0,"x_velocity":1.3201548222656259,"y_velocity":1.8121605187500014,"angular_velocity":0.0,"x_acceleration":2.397529687499996,"y_acceleration":1.9170449999999946,"angular_acceleration":0.0},{"time":0.8800000000000006,"x":0.26407040000000037,"y":0.38857533440000047,"angle":0.0,"x_velocity":1.3319680000000007,"y_velocity":1.821388800000001,"angular_velocity":0.0,"x_acceleration":2.327599999999994,"y_acceleration":1.7740799999999837,"angular_acceleration":0.0},{"time":0.8900000000000006,"x":0.27075904102539106,"y":0.3977038552937505,"angle":0.0,"x_velocity":1.3434294472656254,"y_velocity":1.8298995187500013,"angular_velocity":0.0,"x_acceleration":2.2568453124999976,"y_acceleration":1.6300349999999888,"angular_acceleration":0.0},{"time":0.9000000000000006,"x":0.2775041015625004,"y":0.4068731250000006,"angle":0.0,"x_velocity":1.3545351562500008,"y_velocity":1.8376875000000004,"angular_velocity":0.0,"x_acceleration":2.1853124999999958,"y_acceleration":1.4849999999999977,"angular_acceleration":0.0},{"time":0.9100000000000006,"x":0.2843037933886723,"y":0.4160795178312505,"angle":0.0,"x_velocity":1.3652813535156256,"y_velocity":1.8447480187500003,"angular_velocity":0.0,"x_acceleration":2.1130484374999954,"y_acceleration":1.3390649999999908,"angular_acceleration":0.0},{"time":0.9200000000000006,"x":0.2911563100000004,"y":0.4253193856000006,"angle":0.0,"x_velocity":1.3756645000000005,"y_velocity":1.8510768,"angular_velocity":0.0,"x_acceleration":2.040099999999992,"y_acceleration":1.192319999999988,"angular_acceleration":0.0},{"time":0.9300000000000006,"x":0.29805982778320345,"y":0.4345890598687504,"angle":0.0,"x_velocity":1.3856812910156253,"y_velocity":1.8566700187499998,"angular_velocity":0.0,"x_acceleration":1.9665140624999973,"y_acceleration":1.0448549999999948,"angular_acceleration":0.0},{"time":0.9400000000000006,"x":0.30501250718750045,"y":0.4438848542000005,"angle":0.0,"x_velocity":1.3953286562500002,"y_velocity":1.8615243000000001,"angular_velocity":0.0,"x_acceleration":1.8923374999999956,"y_acceleration":0.8967599999999933,"angular_acceleration":0.0},{"time":0.9500000000000006,"x":0.3120124938964848,"y":0.45320306640625063,"angle":0.0,"x_velocity":1.4046037597656262,"y_velocity":1.8656367187499998,"angular_velocity":0.0,"x_acceleration":1.8176171874999927,"y_acceleration":0.7481249999999875,"angular_acceleration":0.0},{"time":0.9600000000000006,"x":0.31905792000000044,"y":0.4625399808000007,"angle":0.0,"x_velocity":1.4135040000000005,"y_velocity":1.8690048000000008,"angular_velocity":0.0,"x_acceleration":1.7423999999999937,"y_acceleration":0.599039999999988,"angular_acceleration":0.0},{"time":0.9700000000000006,"x":0.3261469051660161,"y":0.4718918704437506,"angle":0.0,"x_velocity":1.4220270097656258,"y_velocity":1.8716265187500005,"angular_velocity":0.0,"x_acceleration":1.6667328124999958,"y_acceleration":0.44959499999999153,"angular_acceleration":0.0},{"time":0.9800000000000006,"x":0.33327755781250046,"y":0.4812549994000006,"angle":0.0,"x_velocity":1.430170656250001,"y_velocity":1.8735002999999997,"angular_velocity":0.0,"x_acceleration":1.590662499999997,"y_acceleration":0.2998799999999946,"angular_acceleration":0.0},{"time":0.9900000000000007,"x":0.34044797627929735,"y":0.49062562498125073,"angle":0.0,"x_velocity":1.4379330410156261,"y_velocity":1.874625018750001,"angular_velocity":0.0,"x_acceleration":1.5142359374999907,"y_acceleration":0.14998499999999026,"angular_acceleration":0.0},{"time":1.0000000000000007,"x":0.34765625000000056,"y":0.5000000000000007,"angle":0.0,"x_velocity":1.4453125000000009,"y_velocity":1.8749999999999996,"angular_velocity":0.0,"x_acceleration":1.4374999999999938,"y_acceleration":-1.0658141036401503e-14,"angular_acceleration":0.0},{"time":1.0100000000000007,"x":0.35490046067382874,"y":0.5093743750187508,"angle":0.0,"x_velocity":1.4523076035156253,"y_velocity":1.8746250187499998,"angular_velocity":0.0,"x_acceleration":1.3605015624999979,"y_acceleration":-0.14998500000001158,"angular_acceleration":0.0},{"time":1.0200000000000007,"x":0.3621786834375006,"y":0.5187450006000007,"angle":0.0,"x_velocity":1.45891715625,"y_velocity":1.873500299999999,"angular_velocity":0.0,"x_acceleration":1.2832874999999984,"y_acceleration":-0.29988000000000525,"angular_acceleration":0.0},{"time":1.0300000000000007,"x":0.36948898803710994,"y":0.5281081295562505,"angle":0.0,"x_velocity":1.465140197265626,"y_velocity":1.8716265187500007,"angular_velocity":0.0,"x_acceleration":1.2059046874999915,"y_acceleration":-0.4495950000000164,"angular_acceleration":0.0},{"time":1.0400000000000007,"x":0.3768294400000006,"y":0.5374600192000006,"angle":0.0,"x_velocity":1.470976,"y_velocity":1.8690047999999995,"angular_velocity":0.0,"x_acceleration":1.1283999999999956,"y_acceleration":-0.5990400000000093,"angular_acceleration":0.0},{"time":1.0500000000000007,"x":0.38419810180664105,"y":0.5467969335937506,"angle":0.0,"x_velocity":1.4764240722656254,"y_velocity":1.8656367187500003,"angular_velocity":0.0,"x_acceleration":1.0508203124999937,"y_acceleration":-0.7481250000000124,"angular_acceleration":0.0},{"time":1.0600000000000007,"x":0.39159303406250046,"y":0.5561151458000004,"angle":0.0,"x_velocity":1.4814841562500003,"y_velocity":1.8615242999999988,"angular_velocity":0.0,"x_acceleration":0.9732124999999954,"y_acceleration":-0.8967600000000076,"angular_acceleration":0.0},{"time":1.0700000000000007,"x":0.39901229666992244,"y":0.5654109401312509,"angle":0.0,"x_velocity":1.4861562285156251,"y_velocity":1.8566700187500005,"angular_velocity":0.0,"x_acceleration":0.8956234374999941,"y_acceleration":-1.0448550000000054,"angular_acceleration":0.0},{"time":1.0800000000000007,"x":0.40645395000000056,"y":0.5746806144000007,"angle":0.0,"x_velocity":1.4904405000000003,"y_velocity":1.8510767999999995,"angular_velocity":0.0,"x_acceleration":0.8180999999999923,"y_acceleration":-1.19232000000002,"angular_acceleration":0.0},{"time":1.0900000000000007,"x":0.4139160560644536,"y":0.5839204821687507,"angle":0.0,"x_velocity":1.4943374160156262,"y_velocity":1.8447480187500003,"angular_velocity":0.0,"x_acceleration":0.7406890624999924,"y_acceleration":-1.3390650000000122,"angular_acceleration":0.0},{"time":1.1000000000000008,"x":0.42139667968750066,"y":0.593126875000001,"angle":0.0,"x_velocity":1.4978476562500003,"y_velocity":1.8376874999999995,"angular_velocity":0.0,"x_acceleration":0.6634374999999952,"y_acceleration":-1.48500000000001,"angular_acceleration":0.0},{"time":1.1100000000000008,"x":0.428893889677735,"y":0.6022961447062508,"angle":0.0,"x_velocity":1.5009721347656249,"y_velocity":1.8298995187499987,"angular_velocity":0.0,"x_acceleration":0.5863921874999924,"y_acceleration":-1.6300350000000066,"angular_acceleration":0.0},{"time":1.1200000000000008,"x":0.4364057600000005,"y":0.6114246656000006,"angle":0.0,"x_velocity":1.5037120000000006,"y_velocity":1.8213887999999998,"angular_velocity":0.0,"x_acceleration":0.5095999999999901,"y_acceleration":-1.774080000000012,"angular_acceleration":0.0},{"time":1.1300000000000008,"x":0.4439303709472662,"y":0.6205088367437506,"angle":0.0,"x_velocity":1.506068634765625,"y_velocity":1.812160518749999,"angular_velocity":0.0,"x_acceleration":0.43310781249999586,"y_acceleration":-1.9170450000000088,"angular_acceleration":0.0},{"time":1.1400000000000008,"x":0.45146581031250055,"y":0.6295450842000008,"angle":0.0,"x_velocity":1.508043656250001,"y_velocity":1.8022202999999992,"angular_velocity":0.0,"x_acceleration":0.3569624999999945,"y_acceleration":-2.058840000000014,"angular_acceleration":0.0},{"time":1.1500000000000008,"x":0.4590101745605475,"y":0.6385298632812506,"angle":0.0,"x_velocity":1.5096389160156256,"y_velocity":1.7915742187499992,"angular_velocity":0.0,"x_acceleration":0.2812109374999938,"y_acceleration":-2.199375000000014,"angular_acceleration":0.0},{"time":1.1600000000000008,"x":0.46656157000000076,"y":0.6474596608000007,"angle":0.0,"x_velocity":1.5108564999999996,"y_velocity":1.7802287999999988,"angular_velocity":0.0,"x_acceleration":0.20589999999999264,"y_acceleration":-2.338560000000008,"angular_acceleration":0.0},{"time":1.1700000000000008,"x":0.47411811395507886,"y":0.6563309973187511,"angle":0.0,"x_velocity":1.5116987285156254,"y_velocity":1.7681910187499996,"angular_velocity":0.0,"x_acceleration":0.1310765624999899,"y_acceleration":-2.4763050000000177,"angular_acceleration":0.0},{"time":1.1800000000000008,"x":0.48167793593750063,"y":0.6651404294000006,"angle":0.0,"x_velocity":1.5121681562499996,"y_velocity":1.7554682999999995,"angular_velocity":0.0,"x_acceleration":0.05678749999999866,"y_acceleration":-2.6125200000000035,"angular_acceleration":0.0},{"time":1.1900000000000008,"x":0.48923917881836,"y":0.6738845518562506,"angle":0.0,"x_velocity":1.512267572265625,"y_velocity":1.74206851875,"angular_velocity":0.0,"x_acceleration":-0.016920312500005252,"y_acceleration":-2.747115000000008,"angular_acceleration":0.0},{"time":1.2000000000000008,"x":0.4968000000000007,"y":0.6825600000000009,"angle":0.0,"x_velocity":1.5119999999999996,"y_velocity":1.7279999999999998,"angular_velocity":0.0,"x_acceleration":-0.08999999999999986,"y_acceleration":-2.880000000000006,"angular_acceleration":0.0},{"time":1.2100000000000009,"x":0.5043585725878912,"y":0.6911634518937506,"angle":0.0,"x_velocity":1.5113686972656244,"y_velocity":1.7132715187499992,"angular_velocity":0.0,"x_acceleration":-0.16240468750000403,"y_acceleration":-3.0110850000000084,"angular_acceleration":0.0},{"time":1.2200000000000009,"x":0.5119130865625008,"y":0.6996916306000011,"angle":0.0,"x_velocity":1.5103771562500001,"y_velocity":1.6978922999999977,"angular_velocity":0.0,"x_acceleration":-0.23408750000000467,"y_acceleration":-3.140280000000004,"angular_acceleration":0.0},{"time":1.2300000000000009,"x":0.5194617499511727,"y":0.7081413064312505,"angle":0.0,"x_velocity":1.509029103515625,"y_velocity":1.6818720187499974,"angular_velocity":0.0,"x_acceleration":-0.30500156250001,"y_acceleration":-3.2674950000000145,"angular_acceleration":0.0},{"time":1.2400000000000009,"x":0.5270027900000003,"y":0.7165092992000004,"angle":0.0,"x_velocity":1.5073285000000007,"y_velocity":1.6652208000000002,"angular_velocity":0.0,"x_acceleration":-0.3751000000000033,"y_acceleration":-3.392640000000007,"angular_acceleration":0.0},{"time":1.2500000000000009,"x":0.534534454345704,"y":0.7247924804687507,"angle":0.0,"x_velocity":1.505279541015625,"y_velocity":1.6479492187499991,"angular_velocity":0.0,"x_acceleration":-0.44433593750000533,"y_acceleration":-3.5156250000000213,"angular_acceleration":0.0},{"time":1.260000000000001,"x":0.542055012187501,"y":0.7329877758000011,"angle":0.0,"x_velocity":1.5028866562499994,"y_velocity":1.630068299999996,"angular_velocity":0.0,"x_acceleration":-0.5126625000000065,"y_acceleration":-3.6363600000000105,"angular_acceleration":0.0},{"time":1.270000000000001,"x":0.549562755458985,"y":0.7410921670062507,"angle":0.0,"x_velocity":1.5001545097656255,"y_velocity":1.611589518749998,"angular_velocity":0.0,"x_acceleration":-0.5800328125000043,"y_acceleration":-3.754755000000003,"angular_acceleration":0.0},{"time":1.280000000000001,"x":0.5570560000000007,"y":0.7491026944000008,"angle":0.0,"x_velocity":1.4970879999999993,"y_velocity":1.5925247999999979,"angular_velocity":0.0,"x_acceleration":-0.6464000000000034,"y_acceleration":-3.8707199999999986,"angular_acceleration":0.0},{"time":1.290000000000001,"x":0.5645330867285165,"y":0.7570164590437511,"angle":0.0,"x_velocity":1.493692259765624,"y_velocity":1.5728865187499963,"angular_velocity":0.0,"x_acceleration":-0.7117171875000032,"y_acceleration":-3.9841650000000115,"angular_acceleration":0.0},{"time":1.300000000000001,"x":0.5719923828125004,"y":0.7648306250000003,"angle":0.0,"x_velocity":1.4899726562500004,"y_velocity":1.5526874999999993,"angular_velocity":0.0,"x_acceleration":-0.7759375000000048,"y_acceleration":-4.095000000000013,"angular_acceleration":0.0},{"time":1.310000000000001,"x":0.5794322828417976,"y":0.7725424215812507,"angle":0.0,"x_velocity":1.4859347910156249,"y_velocity":1.531941018749995,"angular_velocity":0.0,"x_acceleration":-0.8390140625000022,"y_acceleration":-4.203135000000003,"angular_acceleration":0.0},{"time":1.320000000000001,"x":0.5868512100000008,"y":0.7801491456000007,"angle":0.0,"x_velocity":1.481584499999999,"y_velocity":1.5106607999999984,"angular_velocity":0.0,"x_acceleration":-0.9009000000000071,"y_acceleration":-4.308480000000017,"angular_acceleration":0.0},{"time":1.330000000000001,"x":0.5942476172363287,"y":0.7876481636187507,"angle":0.0,"x_velocity":1.476927853515626,"y_velocity":1.488861018749997,"angular_velocity":0.0,"x_acceleration":-0.9615484375000101,"y_acceleration":-4.410945000000019,"angular_acceleration":0.0},{"time":1.340000000000001,"x":0.6016199884375005,"y":0.7950369142000001,"angle":0.0,"x_velocity":1.4719711562500013,"y_velocity":1.4665563000000015,"angular_velocity":0.0,"x_acceleration":-1.020912500000005,"y_acceleration":-4.510440000000017,"angular_acceleration":0.0},{"time":1.350000000000001,"x":0.60896683959961,"y":0.8023129101562512,"angle":0.0,"x_velocity":1.4667209472656264,"y_velocity":1.4437617187499985,"angular_velocity":0.0,"x_acceleration":-1.0789453125000072,"y_acceleration":-4.6068750000000165,"angular_acceleration":0.0},{"time":1.360000000000001,"x":0.6162867200000005,"y":0.8094737408000006,"angle":0.0,"x_velocity":1.4611840000000007,"y_velocity":1.4204928000000008,"angular_velocity":0.0,"x_acceleration":-1.1356000000000073,"y_acceleration":-4.700160000000011,"angular_acceleration":0.0},{"time":1.370000000000001,"x":0.6235782133691412,"y":0.8165170741937506,"angle":0.0,"x_velocity":1.4553673222656243,"y_velocity":1.396765518749996,"angular_velocity":0.0,"x_acceleration":-1.1908296875000062,"y_acceleration":-4.790205000000007,"angular_acceleration":0.0},{"time":1.380000000000001,"x":0.6308399390625009,"y":0.823440659400001,"angle":0.0,"x_velocity":1.4492781562499992,"y_velocity":1.372596299999996,"angular_velocity":0.0,"x_acceleration":-1.2445875000000015,"y_acceleration":-4.876919999999998,"angular_acceleration":0.0},{"time":1.390000000000001,"x":0.6380705532324225,"y":0.8302423287312507,"angle":0.0,"x_velocity":1.4429239785156258,"y_velocity":1.3480020187499981,"angular_velocity":0.0,"x_acceleration":-1.296826562499998,"y_acceleration":-4.960215000000012,"angular_acceleration":0.0},{"time":1.400000000000001,"x":0.6452687500000007,"y":0.836920000000001,"angle":0.0,"x_velocity":1.4363124999999997,"y_velocity":1.3229999999999986,"angular_velocity":0.0,"x_acceleration":-1.3475000000000037,"y_acceleration":-5.040000000000006,"angular_acceleration":0.0},{"time":1.410000000000001,"x":0.6524332626269536,"y":0.8434716787687506,"angle":0.0,"x_velocity":1.4294516660156238,"y_velocity":1.2976080187499992,"angular_velocity":0.0,"x_acceleration":-1.3965609375000057,"y_acceleration":-5.116185000000009,"angular_acceleration":0.0},{"time":1.420000000000001,"x":0.6595628646875009,"y":0.8498954606000007,"angle":0.0,"x_velocity":1.422349656249998,"y_velocity":1.2718442999999962,"angular_velocity":0.0,"x_acceleration":-1.443962500000012,"y_acceleration":-5.188680000000005,"angular_acceleration":0.0},{"time":1.430000000000001,"x":0.666656371240235,"y":0.8561895333062504,"angle":0.0,"x_velocity":1.4150148847656236,"y_velocity":1.2457275187499999,"angular_velocity":0.0,"x_acceleration":-1.4896578125000062,"y_acceleration":-5.25739500000001,"angular_acceleration":0.0},{"time":1.440000000000001,"x":0.6737126400000008,"y":0.8623521792000004,"angle":0.0,"x_velocity":1.4074560000000016,"y_velocity":1.2192768000000012,"angular_velocity":0.0,"x_acceleration":-1.533600000000007,"y_acceleration":-5.322240000000015,"angular_acceleration":0.0},{"time":1.450000000000001,"x":0.6807305725097662,"y":0.8683817773437505,"angle":0.0,"x_velocity":1.3996818847656272,"y_velocity":1.1925117187500014,"angular_velocity":0.0,"x_acceleration":-1.575742187500012,"y_acceleration":-5.383125000000028,"angular_acceleration":0.0},{"time":1.460000000000001,"x":0.6877091153125009,"y":0.8742768058000008,"angle":0.0,"x_velocity":1.3917016562499995,"y_velocity":1.1654522999999966,"angular_velocity":0.0,"x_acceleration":-1.616037500000001,"y_acceleration":-5.4399600000000135,"angular_acceleration":0.0},{"time":1.470000000000001,"x":0.6946472611230475,"y":0.8800358438812506,"angle":0.0,"x_velocity":1.3835246660156253,"y_velocity":1.1381190187500003,"angular_velocity":0.0,"x_acceleration":-1.6544390625000105,"y_acceleration":-5.492655000000013,"angular_acceleration":0.0},{"time":1.480000000000001,"x":0.7015440500000009,"y":0.8856575744000013,"angle":0.0,"x_velocity":1.375160499999998,"y_velocity":1.1105327999999943,"angular_velocity":0.0,"x_acceleration":-1.6909000000000063,"y_acceleration":-5.5411200000000065,"angular_acceleration":0.0},{"time":1.490000000000001,"x":0.7083985705175784,"y":0.8911407859187503,"angle":0.0,"x_velocity":1.366618978515624,"y_velocity":1.0827150187499992,"angular_velocity":0.0,"x_acceleration":-1.7253734375,"y_acceleration":-5.585265000000007,"angular_acceleration":0.0},{"time":1.500000000000001,"x":0.715209960937501,"y":0.8964843750000009,"angle":0.0,"x_velocity":1.3579101562499964,"y_velocity":1.0546874999999964,"angular_velocity":0.0,"x_acceleration":-1.7578125000000036,"y_acceleration":-5.625000000000007,"angular_acceleration":0.0},{"time":1.5100000000000011,"x":0.7219774103808603,"y":0.9016873484562511,"angle":0.0,"x_velocity":1.349044322265624,"y_velocity":1.026472518749996,"angular_velocity":0.0,"x_acceleration":-1.7881703125000108,"y_acceleration":-5.660235000000014,"angular_acceleration":0.0},{"time":1.5200000000000011,"x":0.7287001600000007,"y":0.9067488256000003,"angle":0.0,"x_velocity":1.3400320000000008,"y_velocity":0.9980928000000002,"angular_velocity":0.0,"x_acceleration":-1.8164000000000122,"y_acceleration":-5.690880000000014,"angular_acceleration":0.0},{"time":1.5300000000000011,"x":0.7353775041503914,"y":0.9116680404937512,"angle":0.0,"x_velocity":1.3308839472656233,"y_velocity":0.9695715187499996,"angular_velocity":0.0,"x_acceleration":-1.8424546875000054,"y_acceleration":-5.716844999999999,"angular_acceleration":0.0},{"time":1.5400000000000011,"x":0.7420087915625008,"y":0.9164443442000003,"angle":0.0,"x_velocity":1.3216111562499995,"y_velocity":0.9409322999999983,"angular_velocity":0.0,"x_acceleration":-1.8662874999999985,"y_acceleration":-5.738039999999991,"angular_acceleration":0.0},{"time":1.5500000000000012,"x":0.7485934265136726,"y":0.9210772070312501,"angle":0.0,"x_velocity":1.312224853515624,"y_velocity":0.912199218749997,"angular_velocity":0.0,"x_acceleration":-1.8878515624999963,"y_acceleration":-5.754374999999989,"angular_acceleration":0.0},{"time":1.5600000000000012,"x":0.7551308700000007,"y":0.9255662207999997,"angle":0.0,"x_velocity":1.3027365,"y_velocity":0.8833967999999963,"angular_velocity":0.0,"x_acceleration":-1.907100000000007,"y_acceleration":-5.765760000000007,"angular_acceleration":0.0},{"time":1.5700000000000012,"x":0.7616206409082037,"y":0.9299111010687513,"angle":0.0,"x_velocity":1.2931577910156236,"y_velocity":0.8545500187499986,"angular_velocity":0.0,"x_acceleration":-1.9239859374999924,"y_acceleration":-5.772104999999989,"angular_acceleration":0.0},{"time":1.5800000000000012,"x":0.7680623171875013,"y":0.9341116894000017,"angle":0.0,"x_velocity":1.2835006562499967,"y_velocity":0.8256842999999954,"angular_velocity":0.0,"x_acceleration":-1.9384624999999964,"y_acceleration":-5.773320000000005,"angular_acceleration":0.0},{"time":1.5900000000000012,"x":0.7744555370214848,"y":0.9381679556062508,"angle":0.0,"x_velocity":1.2737772597656258,"y_velocity":0.7968255187499995,"angular_velocity":0.0,"x_acceleration":-1.9504828124999989,"y_acceleration":-5.769314999999999,"angular_acceleration":0.0},{"time":1.6000000000000012,"x":0.7808000000000013,"y":0.9420800000000011,"angle":0.0,"x_velocity":1.2639999999999993,"y_velocity":0.7679999999999954,"angular_velocity":0.0,"x_acceleration":-1.9600000000000009,"y_acceleration":-5.760000000000005,"angular_acceleration":0.0},{"time":1.6100000000000012,"x":0.7870954682910161,"y":0.9458480556437503,"angle":0.0,"x_velocity":1.2541815097656261,"y_velocity":0.7392345187500009,"angular_velocity":0.0,"x_acceleration":-1.9669671874999963,"y_acceleration":-5.7452849999999955,"angular_acceleration":0.0},{"time":1.6200000000000012,"x":0.7933417678125017,"y":0.949472490600002,"angle":0.0,"x_velocity":1.2443346562499968,"y_velocity":0.7105562999999933,"angular_velocity":0.0,"x_acceleration":-1.971337499999997,"y_acceleration":-5.725079999999991,"angular_acceleration":0.0},{"time":1.6300000000000012,"x":0.7995387894042976,"y":0.95295381018125,"angle":0.0,"x_velocity":1.2344725410156254,"y_velocity":0.6819930187499921,"angular_velocity":0.0,"x_acceleration":-1.9730640624999936,"y_acceleration":-5.699294999999978,"angular_acceleration":0.0},{"time":1.6400000000000012,"x":0.8056864900000005,"y":0.9562926591999998,"angle":0.0,"x_velocity":1.224608500000003,"y_velocity":0.6535728000000027,"angular_velocity":0.0,"x_acceleration":-1.9721000000000046,"y_acceleration":-5.667840000000012,"angular_acceleration":0.0},{"time":1.6500000000000012,"x":0.8117848937988292,"y":0.9594898242187497,"angle":0.0,"x_velocity":1.2147561035156214,"y_velocity":0.6253242187499968,"angular_velocity":0.0,"x_acceleration":-1.9683984375000065,"y_acceleration":-5.630625000000009,"angular_acceleration":0.0},{"time":1.6600000000000013,"x":0.8178340934375006,"y":0.9625462358000005,"angle":0.0,"x_velocity":1.2049291562500004,"y_velocity":0.5972762999999937,"angular_velocity":0.0,"x_acceleration":-1.9619124999999897,"y_acceleration":-5.587559999999982,"angular_acceleration":0.0},{"time":1.6700000000000013,"x":0.8238342511621102,"y":0.9654629707562505,"angle":0.0,"x_velocity":1.1951416972656235,"y_velocity":0.5694585187499897,"angular_velocity":0.0,"x_acceleration":-1.9525953125000086,"y_acceleration":-5.538554999999988,"angular_acceleration":0.0},{"time":1.6800000000000013,"x":0.8297856000000008,"y":0.9682412544000005,"angle":0.0,"x_velocity":1.185407999999998,"y_velocity":0.5419007999999952,"angular_velocity":0.0,"x_acceleration":-1.9403999999999968,"y_acceleration":-5.483519999999984,"angular_acceleration":0.0},{"time":1.6900000000000013,"x":0.8356884449316426,"y":0.9708824627937518,"angle":0.0,"x_velocity":1.1757425722656194,"y_velocity":0.514633518749994,"angular_velocity":0.0,"x_acceleration":-1.9252796875000016,"y_acceleration":-5.422364999999971,"angular_acceleration":0.0},{"time":1.7000000000000013,"x":0.841543164062502,"y":0.9733881250000009,"angle":0.0,"x_velocity":1.1661601562499957,"y_velocity":0.4876874999999927,"angular_velocity":0.0,"x_acceleration":-1.9071874999999991,"y_acceleration":-5.35499999999999,"angular_acceleration":0.0},{"time":1.7100000000000013,"x":0.847350209794923,"y":0.9757599253312508,"angle":0.0,"x_velocity":1.1566757285156228,"y_velocity":0.4610940187499928,"angular_velocity":0.0,"x_acceleration":-1.8860765625000013,"y_acceleration":-5.281335000000013,"angular_acceleration":0.0},{"time":1.7200000000000013,"x":0.8531101100000014,"y":0.9779997056000007,"angle":0.0,"x_velocity":1.1473044999999988,"y_velocity":0.4348847999999954,"angular_velocity":0.0,"x_acceleration":-1.8618999999999986,"y_acceleration":-5.201279999999983,"angular_acceleration":0.0},{"time":1.7300000000000013,"x":0.8588234691894541,"y":0.9801094673687514,"angle":0.0,"x_velocity":1.1380619160156247,"y_velocity":0.4090920187500018,"angular_velocity":0.0,"x_acceleration":-1.8346109375000026,"y_acceleration":-5.114745000000013,"angular_acceleration":0.0},{"time":1.7400000000000013,"x":0.8644909696875014,"y":0.9820913742000004,"angle":0.0,"x_velocity":1.1289636562499954,"y_velocity":0.3837482999999935,"angular_velocity":0.0,"x_acceleration":-1.8041624999999897,"y_acceleration":-5.021639999999962,"angular_acceleration":0.0},{"time":1.7500000000000013,"x":0.8701133728027362,"y":0.9839477539062513,"angle":0.0,"x_velocity":1.120025634765625,"y_velocity":0.35888671874999645,"angular_velocity":0.0,"x_acceleration":-1.770507812499993,"y_acceleration":-4.921875,"angular_acceleration":0.0},{"time":1.7600000000000013,"x":0.8756915200000011,"y":0.9856811008000008,"angle":0.0,"x_velocity":1.1112639999999967,"y_velocity":0.33454079999999564,"angular_velocity":0.0,"x_acceleration":-1.7335999999999885,"y_acceleration":-4.815359999999998,"angular_acceleration":0.0},{"time":1.7700000000000014,"x":0.8812263340722666,"y":0.9872940779437505,"angle":0.0,"x_velocity":1.1026951347656198,"y_velocity":0.310744518749992,"angular_velocity":0.0,"x_acceleration":-1.6933921874999882,"y_acceleration":-4.702004999999971,"angular_acceleration":0.0},{"time":1.7800000000000014,"x":0.8867188203125012,"y":0.9887895194,"angle":0.0,"x_velocity":1.0943356562499993,"y_velocity":0.28753229999999874,"angular_velocity":0.0,"x_acceleration":-1.6498374999999896,"y_acceleration":-4.581720000000004,"angular_acceleration":0.0},{"time":1.7900000000000014,"x":0.8921700676855475,"y":0.9901704324812508,"angle":0.0,"x_velocity":1.0862024160156256,"y_velocity":0.2649390187499989,"angular_velocity":0.0,"x_acceleration":-1.6028890624999903,"y_acceleration":-4.454414999999997,"angular_acceleration":0.0},{"time":1.8000000000000014,"x":0.8975812500000016,"y":0.9914400000000017,"angle":0.0,"x_velocity":1.0783124999999956,"y_velocity":0.2429999999999879,"angular_velocity":0.0,"x_acceleration":-1.5524999999999878,"y_acceleration":-4.3199999999999505,"angular_acceleration":0.0},{"time":1.8100000000000014,"x":0.9029536270800791,"y":0.9926015825187502,"angle":0.0,"x_velocity":1.070683228515625,"y_velocity":0.2217510187499947,"angular_velocity":0.0,"x_acceleration":-1.4986234374999867,"y_acceleration":-4.178384999999977,"angular_acceleration":0.0},{"time":1.8200000000000014,"x":0.9082885459375007,"y":0.9936587206,"angle":0.0,"x_velocity":1.0633321562499987,"y_velocity":0.20122829999999325,"angular_velocity":0.0,"x_acceleration":-1.4412124999999918,"y_acceleration":-4.02947999999995,"angular_acceleration":0.0},{"time":1.8300000000000014,"x":0.9135874419433594,"y":0.9946151370562495,"angle":0.0,"x_velocity":1.056277072265626,"y_velocity":0.1814685187499947,"angular_velocity":0.0,"x_acceleration":-1.3802203124999934,"y_acceleration":-3.8731949999999813,"angular_acceleration":0.0},{"time":1.8400000000000014,"x":0.9188518400000003,"y":0.9954747391999996,"angle":0.0,"x_velocity":1.0495359999999998,"y_velocity":0.16250880000000478,"angular_velocity":0.0,"x_acceleration":-1.3155999999999963,"y_acceleration":-3.7094399999999865,"angular_acceleration":0.0},{"time":1.8500000000000014,"x":0.9240833557128916,"y":0.9962416210937501,"angle":0.0,"x_velocity":1.0431271972656262,"y_velocity":0.14438671874999542,"angular_velocity":0.0,"x_acceleration":-1.247304687499991,"y_acceleration":-3.5381249999999653,"angular_acceleration":0.0},{"time":1.8600000000000014,"x":0.9292836965625009,"y":0.9969200657999995,"angle":0.0,"x_velocity":1.0370691562499967,"y_velocity":0.12714029999999354,"angular_velocity":0.0,"x_acceleration":-1.1752874999999818,"y_acceleration":-3.3591599999999744,"angular_acceleration":0.0},{"time":1.8700000000000014,"x":0.9344546630761723,"y":0.9975145476312504,"angle":0.0,"x_velocity":1.0313806035156237,"y_velocity":0.1108080187499958,"angular_velocity":0.0,"x_acceleration":-1.0995015624999809,"y_acceleration":-3.1724549999999567,"angular_acceleration":0.0},{"time":1.8800000000000014,"x":0.9395981500000015,"y":0.9980297344000011,"angle":0.0,"x_velocity":1.0260804999999973,"y_velocity":0.09542879999998988,"angular_velocity":0.0,"x_acceleration":-1.0198999999999927,"y_acceleration":-2.9779199999999832,"angular_acceleration":0.0},{"time":1.8900000000000015,"x":0.9447161474707038,"y":0.9984704896687511,"angle":0.0,"x_velocity":1.021188041015625,"y_velocity":0.08104201875000072,"angular_velocity":0.0,"x_acceleration":-0.9364359374999722,"y_acceleration":-2.7754649999999543,"angular_acceleration":0.0},{"time":1.9000000000000015,"x":0.9498107421875015,"y":0.9988418750000001,"angle":0.0,"x_velocity":1.016722656249998,"y_velocity":0.06768749999999102,"angular_velocity":0.0,"x_acceleration":-0.849062499999981,"y_acceleration":-2.564999999999955,"angular_acceleration":0.0},{"time":1.9100000000000015,"x":0.9548841185839851,"y":0.9991491522062503,"angle":0.0,"x_velocity":1.0127040097656241,"y_velocity":0.055405518749992666,"angular_velocity":0.0,"x_acceleration":-0.7577328124999738,"y_acceleration":-2.3464349999999428,"angular_acceleration":0.0},{"time":1.9200000000000015,"x":0.9599385600000008,"y":0.9993977856000011,"angle":0.0,"x_velocity":1.0091519999999967,"y_velocity":0.044236799999996634,"angular_velocity":0.0,"x_acceleration":-0.6623999999999839,"y_acceleration":-2.11967999999996,"angular_acceleration":0.0},{"time":1.9300000000000015,"x":0.9649764498535167,"y":0.9995934442437511,"angle":0.0,"x_velocity":1.0060867597656262,"y_velocity":0.03422251874999915,"angular_velocity":0.0,"x_acceleration":-0.5630171874999874,"y_acceleration":-1.8846449999999493,"angular_acceleration":0.0},{"time":1.9400000000000015,"x":0.9700002728125012,"y":0.9997420041999998,"angle":0.0,"x_velocity":1.0035286562499977,"y_velocity":0.025404299999994606,"angular_velocity":0.0,"x_acceleration":-0.45953749999998195,"y_acceleration":-1.6412399999999678,"angular_acceleration":0.0},{"time":1.9500000000000015,"x":0.9750126159667984,"y":0.999849550781251,"angle":0.0,"x_velocity":1.0014982910156238,"y_velocity":0.01782421875000395,"angular_velocity":0.0,"x_acceleration":-0.35191406249997925,"y_acceleration":-1.3893749999999443,"angular_acceleration":0.0},{"time":1.9600000000000015,"x":0.9800161700000003,"y":0.9999223807999993,"angle":0.0,"x_velocity":1.000016500000001,"y_velocity":0.011524800000003665,"angular_velocity":0.0,"x_acceleration":-0.2400999999999769,"y_acceleration":-1.1289599999999496,"angular_acceleration":0.0},{"time":1.9700000000000015,"x":0.9850137303613291,"y":0.9999670048187506,"angle":0.0,"x_velocity":0.9991043535156265,"y_velocity":0.006549018750000357,"angular_velocity":0.0,"x_acceleration":-0.12404843749998662,"y_acceleration":-0.8599049999999693,"angular_acceleration":0.0},{"time":1.9800000000000015,"x":0.9900081984375007,"y":0.9999901494000012,"angle":0.0,"x_velocity":0.9987831562499991,"y_velocity":0.0029402999999987856,"angular_velocity":0.0,"x_acceleration":-0.0037124999999846864,"y_acceleration":-0.5821199999999322,"angular_acceleration":0.0},{"time":1.9900000000000015,"x":0.9950025827246103,"y":0.9999987593562496,"angle":0.0,"x_velocity":0.9990744472656257,"y_velocity":0.0007425187500054165,"angular_velocity":0.0,"x_acceleration":0.12095468750001714,"y_acceleration":-0.2955149999999662,"angular_acceleration":0.0},{"time":2.0000000000000013,"x":1.0000000000000013,"y":1.0,"angle":0.0,"x_velocity":1.0000000000000004,"y_velocity":-5.324811110241815e-29,"angular_velocity":0.0,"x_acceleration":0.249999999999996,"y_acceleration":-7.993605777301096e-14,"angular_acceleration":0.0},{"time":2.010000000000001,"x":1.010012006225001,"y":0.9999901494,"angle":0.0,"x_velocity":1.0023524875000003,"y_velocity":-0.0029403000000006512,"angular_velocity":0.0,"x_acceleration":0.2207449999999968,"y_acceleration":-0.5821200000000631,"angular_acceleration":0.0},{"time":2.020000000000001,"x":1.020046099200001,"y":0.9999223808,"angle":0.0,"x_velocity":1.0044198000000002,"y_velocity":-0.011524800000001023,"angular_velocity":0.0,"x_acceleration":0.19295999999999755,"y_acceleration":-1.128960000000048,"angular_acceleration":0.0},{"time":2.0300000000000007,"x":1.0300995001750004,"y":0.9997420042,"angle":0.0,"x_velocity":1.0062164875000004,"y_velocity":-0.025404300000001143,"angular_velocity":0.0,"x_acceleration":0.16661499999999824,"y_acceleration":-1.6412400000000342,"angular_acceleration":0.0},{"time":2.0400000000000005,"x":1.0401695744000006,"y":0.9993977856,"angle":0.0,"x_velocity":1.0077568000000001,"y_velocity":-0.04423680000000102,"angular_velocity":0.0,"x_acceleration":0.14167999999999883,"y_acceleration":-2.119680000000022,"angular_acceleration":0.0},{"time":2.0500000000000003,"x":1.050253828125,"y":0.998841875,"angle":0.0,"x_velocity":1.0090546875,"y_velocity":-0.06768750000000068,"angular_velocity":0.0,"x_acceleration":0.11812499999999938,"y_acceleration":-2.5650000000000115,"angular_acceleration":0.0},{"time":2.06,"x":1.0603499056,"y":0.9980297344,"angle":0.0,"x_velocity":1.0101238000000001,"y_velocity":-0.09542880000000015,"angular_velocity":0.0,"x_acceleration":0.0959199999999999,"y_acceleration":-2.9779200000000023,"angular_acceleration":0.0},{"time":2.07,"x":1.0704555860749998,"y":0.9969200658,"angle":0.0,"x_velocity":1.0109774875000002,"y_velocity":-0.12714029999999948,"angular_velocity":0.0,"x_acceleration":0.07503500000000032,"y_acceleration":-3.359159999999994,"angular_acceleration":0.0},{"time":2.0799999999999996,"x":1.0805687807999995,"y":0.9954747392000001,"angle":0.0,"x_velocity":1.0116288000000002,"y_velocity":-0.16250879999999862,"angular_velocity":0.0,"x_acceleration":0.05544000000000071,"y_acceleration":-3.7094399999999874,"angular_acceleration":0.0},{"time":2.0899999999999994,"x":1.0906875300249994,"y":0.9936587206,"angle":0.0,"x_velocity":1.0120904875,"y_velocity":-0.20122829999999764,"angular_velocity":0.0,"x_acceleration":0.03710500000000104,"y_acceleration":-4.029479999999982,"angular_acceleration":0.0},{"time":2.099999999999999,"x":1.1008099999999994,"y":0.9914400000000002,"angle":0.0,"x_velocity":1.0123750000000002,"y_velocity":-0.24299999999999655,"angular_velocity":0.0,"x_acceleration":0.020000000000001322,"y_acceleration":-4.319999999999978,"angular_acceleration":0.0},{"time":2.109999999999999,"x":1.110934479974999,"y":0.9887895194000004,"angle":0.0,"x_velocity":1.0124944875000002,"y_velocity":-0.28753229999999536,"angular_velocity":0.0,"x_acceleration":0.004095000000001553,"y_acceleration":-4.581719999999975,"angular_acceleration":0.0},{"time":2.1199999999999988,"x":1.1210593791999988,"y":0.9856811008000004,"angle":0.0,"x_velocity":1.0124608000000002,"y_velocity":-0.33454079999999414,"angular_velocity":0.0,"x_acceleration":-0.010639999999998252,"y_acceleration":-4.8153599999999726,"angular_acceleration":0.0},{"time":2.1299999999999986,"x":1.1311832239249986,"y":0.9820913742000006,"angle":0.0,"x_velocity":1.0122854875,"y_velocity":-0.3837482999999928,"angular_velocity":0.0,"x_acceleration":-0.024234999999998123,"y_acceleration":-5.021639999999972,"angular_acceleration":0.0},{"time":2.1399999999999983,"x":1.1413046543999983,"y":0.9779997056000007,"angle":0.0,"x_velocity":1.0119798000000004,"y_velocity":-0.43488479999999147,"angular_velocity":0.0,"x_acceleration":-0.036719999999998004,"y_acceleration":-5.201279999999972,"angular_acceleration":0.0},{"time":2.149999999999998,"x":1.1514224218749982,"y":0.9733881250000009,"angle":0.0,"x_velocity":1.0115546875000003,"y_velocity":-0.48768749999999006,"angular_velocity":0.0,"x_acceleration":-0.048124999999997954,"y_acceleration":-5.354999999999974,"angular_acceleration":0.0},{"time":2.159999999999998,"x":1.161535385599998,"y":0.9682412544000011,"angle":0.0,"x_velocity":1.0110208,"y_velocity":-0.5419007999999885,"angular_velocity":0.0,"x_acceleration":-0.05847999999999796,"y_acceleration":-5.4835199999999755,"angular_acceleration":0.0},{"time":2.1699999999999977,"x":1.1716425098249976,"y":0.9625462358000013,"angle":0.0,"x_velocity":1.0103884875000002,"y_velocity":-0.5972762999999873,"angular_velocity":0.0,"x_acceleration":-0.06781499999999796,"y_acceleration":-5.5875599999999785,"angular_acceleration":0.0},{"time":2.1799999999999975,"x":1.1817428607999976,"y":0.9562926592000016,"angle":0.0,"x_velocity":1.0096678000000003,"y_velocity":-0.6535727999999857,"angular_velocity":0.0,"x_acceleration":-0.07615999999999803,"y_acceleration":-5.667839999999983,"angular_acceleration":0.0},{"time":2.1899999999999973,"x":1.1918356037749975,"y":0.9494724906000019,"angle":0.0,"x_velocity":1.0088684875000005,"y_velocity":-0.7105562999999845,"angular_velocity":0.0,"x_acceleration":-0.08354499999999809,"y_acceleration":-5.725079999999988,"angular_acceleration":0.0},{"time":2.199999999999997,"x":1.201919999999997,"y":0.9420800000000022,"angle":0.0,"x_velocity":1.0080000000000005,"y_velocity":-0.7679999999999831,"angular_velocity":0.0,"x_acceleration":-0.08999999999999822,"y_acceleration":-5.759999999999993,"angular_acceleration":0.0},{"time":2.209999999999997,"x":1.2119954037249967,"y":0.9341116894000026,"angle":0.0,"x_velocity":1.0070714875000004,"y_velocity":-0.8256842999999818,"angular_velocity":0.0,"x_acceleration":-0.09555499999999838,"y_acceleration":-5.77332,"angular_acceleration":0.0},{"time":2.2199999999999966,"x":1.2220612591999969,"y":0.9255662208000031,"angle":0.0,"x_velocity":1.0060918000000005,"y_velocity":-0.8833967999999806,"angular_velocity":0.0,"x_acceleration":-0.10023999999999861,"y_acceleration":-5.765760000000006,"angular_acceleration":0.0},{"time":2.2299999999999964,"x":1.2321170976749962,"y":0.9164443442000033,"angle":0.0,"x_velocity":1.0050694875000006,"y_velocity":-0.9409322999999794,"angular_velocity":0.0,"x_acceleration":-0.10408499999999879,"y_acceleration":-5.738040000000014,"angular_acceleration":0.0},{"time":2.239999999999996,"x":1.2421625343999965,"y":0.9067488256000038,"angle":0.0,"x_velocity":1.0040128000000004,"y_velocity":-0.9980927999999784,"angular_velocity":0.0,"x_acceleration":-0.10711999999999904,"y_acceleration":-5.690880000000023,"angular_acceleration":0.0},{"time":2.249999999999996,"x":1.252197265624996,"y":0.8964843750000042,"angle":0.0,"x_velocity":1.0029296875000004,"y_velocity":-1.0546874999999776,"angular_velocity":0.0,"x_acceleration":-0.10937499999999925,"y_acceleration":-5.625000000000029,"angular_acceleration":0.0},{"time":2.259999999999996,"x":1.2622210655999957,"y":0.8856575744000047,"angle":0.0,"x_velocity":1.0018278000000005,"y_velocity":-1.1105327999999766,"angular_velocity":0.0,"x_acceleration":-0.11087999999999953,"y_acceleration":-5.54112000000004,"angular_acceleration":0.0},{"time":2.2699999999999956,"x":1.2722337835749955,"y":0.8742768058000052,"angle":0.0,"x_velocity":1.0007144875000005,"y_velocity":-1.165452299999976,"angular_velocity":0.0,"x_acceleration":-0.1116649999999998,"y_acceleration":-5.439960000000049,"angular_acceleration":0.0},{"time":2.2799999999999954,"x":1.2822353407999951,"y":0.8623521792000057,"angle":0.0,"x_velocity":0.9995968000000007,"y_velocity":-1.2192767999999754,"angular_velocity":0.0,"x_acceleration":-0.11176000000000011,"y_acceleration":-5.3222400000000585,"angular_acceleration":0.0},{"time":2.289999999999995,"x":1.2922257275249953,"y":0.8498954606000062,"angle":0.0,"x_velocity":0.9984814875000008,"y_velocity":-1.271844299999975,"angular_velocity":0.0,"x_acceleration":-0.11119500000000039,"y_acceleration":-5.1886800000000655,"angular_acceleration":0.0},{"time":2.299999999999995,"x":1.302204999999995,"y":0.8369200000000068,"angle":0.0,"x_velocity":0.9973750000000008,"y_velocity":-1.3229999999999744,"angular_velocity":0.0,"x_acceleration":-0.11000000000000079,"y_acceleration":-5.040000000000078,"angular_acceleration":0.0},{"time":2.3099999999999947,"x":1.3121732774749946,"y":0.8234406594000072,"angle":0.0,"x_velocity":0.9962834875000006,"y_velocity":-1.3725962999999741,"angular_velocity":0.0,"x_acceleration":-0.1082050000000011,"y_acceleration":-4.876920000000087,"angular_acceleration":0.0},{"time":2.3199999999999945,"x":1.3221307391999946,"y":0.8094737408000077,"angle":0.0,"x_velocity":0.9952128000000008,"y_velocity":-1.4204927999999741,"angular_velocity":0.0,"x_acceleration":-0.10584000000000143,"y_acceleration":-4.700160000000098,"angular_acceleration":0.0},{"time":2.3299999999999943,"x":1.332077621424994,"y":0.7950369142000084,"angle":0.0,"x_velocity":0.9941684875000008,"y_velocity":-1.4665562999999742,"angular_velocity":0.0,"x_acceleration":-0.1029350000000018,"y_acceleration":-4.510440000000111,"angular_acceleration":0.0},{"time":2.339999999999994,"x":1.3420142143999942,"y":0.7801491456000089,"angle":0.0,"x_velocity":0.9931558000000007,"y_velocity":-1.5106607999999748,"angular_velocity":0.0,"x_acceleration":-0.0995200000000021,"y_acceleration":-4.308480000000118,"angular_acceleration":0.0},{"time":2.349999999999994,"x":1.351940859374994,"y":0.7648306250000094,"angle":0.0,"x_velocity":0.9921796875000007,"y_velocity":-1.5526874999999747,"angular_velocity":0.0,"x_acceleration":-0.0956250000000026,"y_acceleration":-4.095000000000134,"angular_acceleration":0.0},{"time":2.3599999999999937,"x":1.3618579455999937,"y":0.74910269440001,"angle":0.0,"x_velocity":0.9912448000000006,"y_velocity":-1.5925247999999754,"angular_velocity":0.0,"x_acceleration":-0.09128000000000289,"y_acceleration":-3.8707200000001434,"angular_acceleration":0.0},{"time":2.3699999999999934,"x":1.3717659073249935,"y":0.7329877758000107,"angle":0.0,"x_velocity":0.9903554875000008,"y_velocity":-1.6300682999999756,"angular_velocity":0.0,"x_acceleration":-0.08651500000000345,"y_acceleration":-3.636360000000156,"angular_acceleration":0.0},{"time":2.3799999999999932,"x":1.3816652207999935,"y":0.7165092992000113,"angle":0.0,"x_velocity":0.9895158000000007,"y_velocity":-1.6652207999999773,"angular_velocity":0.0,"x_acceleration":-0.08136000000000349,"y_acceleration":-3.3926400000001635,"angular_acceleration":0.0},{"time":2.389999999999993,"x":1.391556401274993,"y":0.6996916306000118,"angle":0.0,"x_velocity":0.9887294875000006,"y_velocity":-1.6978922999999777,"angular_velocity":0.0,"x_acceleration":-0.07584500000000405,"y_acceleration":-3.140280000000181,"angular_acceleration":0.0},{"time":2.399999999999993,"x":1.4014399999999931,"y":0.6825600000000124,"angle":0.0,"x_velocity":0.9880000000000005,"y_velocity":-1.7279999999999793,"angular_velocity":0.0,"x_acceleration":-0.07000000000000428,"y_acceleration":-2.8800000000001855,"angular_acceleration":0.0},{"time":2.4099999999999926,"x":1.4113166012249925,"y":0.6651404294000131,"angle":0.0,"x_velocity":0.9873304875000005,"y_velocity":-1.7554682999999809,"angular_velocity":0.0,"x_acceleration":-0.06385500000000455,"y_acceleration":-2.612520000000199,"angular_acceleration":0.0},{"time":2.4199999999999924,"x":1.4211868191999926,"y":0.6474596608000137,"angle":0.0,"x_velocity":0.9867238000000006,"y_velocity":-1.7802287999999824,"angular_velocity":0.0,"x_acceleration":-0.05744000000000493,"y_acceleration":-2.338560000000207,"angular_acceleration":0.0},{"time":2.429999999999992,"x":1.4310512951749925,"y":0.6295450842000141,"angle":0.0,"x_velocity":0.9861824875000006,"y_velocity":-1.8022202999999837,"angular_velocity":0.0,"x_acceleration":-0.05078500000000524,"y_acceleration":-2.0588400000002185,"angular_acceleration":0.0},{"time":2.439999999999992,"x":1.440910694399992,"y":0.6114246656000147,"angle":0.0,"x_velocity":0.9857088000000005,"y_velocity":-1.821388799999986,"angular_velocity":0.0,"x_acceleration":-0.043920000000005566,"y_acceleration":-1.774080000000227,"angular_acceleration":0.0},{"time":2.4499999999999917,"x":1.450765703124992,"y":0.593126875000015,"angle":0.0,"x_velocity":0.9853046875000004,"y_velocity":-1.837687499999988,"angular_velocity":0.0,"x_acceleration":-0.036875000000005875,"y_acceleration":-1.485000000000234,"angular_acceleration":0.0},{"time":2.4599999999999915,"x":1.4606170255999915,"y":0.5746806144000156,"angle":0.0,"x_velocity":0.9849718000000003,"y_velocity":-1.8510767999999898,"angular_velocity":0.0,"x_acceleration":-0.029680000000006146,"y_acceleration":-1.192320000000251,"angular_acceleration":0.0},{"time":2.4699999999999913,"x":1.4704653810749913,"y":0.5561151458000162,"angle":0.0,"x_velocity":0.9847114875000003,"y_velocity":-1.8615242999999912,"angular_velocity":0.0,"x_acceleration":-0.02236500000000674,"y_acceleration":-0.8967600000002633,"angular_acceleration":0.0},{"time":2.479999999999991,"x":1.4803115007999912,"y":0.5374600192000166,"angle":0.0,"x_velocity":0.9845248000000003,"y_velocity":-1.8690047999999941,"angular_velocity":0.0,"x_acceleration":-0.014960000000006746,"y_acceleration":-0.5990400000002669,"angular_acceleration":0.0},{"time":2.489999999999991,"x":1.490156125024991,"y":0.518745000600017,"angle":0.0,"x_velocity":0.9844124875000002,"y_velocity":-1.873500299999997,"angular_velocity":0.0,"x_acceleration":-0.007495000000006802,"y_acceleration":-0.2998800000002717,"angular_acceleration":0.0},{"time":2.4999999999999907,"x":1.499999999999991,"y":0.5000000000000175,"angle":0.0,"x_velocity":0.984375,"y_velocity":-1.8749999999999996,"angular_velocity":0.0,"x_acceleration":-6.994405055138486e-15,"y_acceleration":-2.7711166694643907e-13,"angular_acceleration":0.0},{"time":2.5099999999999905,"x":1.5098438749749905,"y":0.4812549994000179,"angle":0.0,"x_velocity":0.9844124875,"y_velocity":-1.8735003000000043,"angular_velocity":0.0,"x_acceleration":0.007494999999993257,"y_acceleration":0.2998799999997246,"angular_acceleration":0.0},{"time":2.5199999999999902,"x":1.5196884991999904,"y":0.4625399808000182,"angle":0.0,"x_velocity":0.9845248,"y_velocity":-1.869004800000007,"angular_velocity":0.0,"x_acceleration":0.014959999999992868,"y_acceleration":0.5990399999997145,"angular_acceleration":0.0},{"time":2.52999999999999,"x":1.5295346189249903,"y":0.4438848542000186,"angle":0.0,"x_velocity":0.9847114874999999,"y_velocity":-1.86152430000001,"angular_velocity":0.0,"x_acceleration":0.022364999999992752,"y_acceleration":0.896759999999702,"angular_acceleration":0.0},{"time":2.53999999999999,"x":1.5393829743999898,"y":0.4253193856000186,"angle":0.0,"x_velocity":0.9849717999999997,"y_velocity":-1.851076800000012,"angular_velocity":0.0,"x_acceleration":0.0296799999999926,"y_acceleration":1.192319999999711,"angular_acceleration":0.0},{"time":2.5499999999999896,"x":1.5492342968749897,"y":0.4068731250000192,"angle":0.0,"x_velocity":0.9853046874999997,"y_velocity":-1.8376875000000155,"angular_velocity":0.0,"x_acceleration":0.03687499999999244,"y_acceleration":1.484999999999701,"angular_acceleration":0.0},{"time":2.5599999999999894,"x":1.5590893055999897,"y":0.38857533440001957,"angle":0.0,"x_velocity":0.9857087999999996,"y_velocity":-1.821388800000019,"angular_velocity":0.0,"x_acceleration":0.04391999999999241,"y_acceleration":1.7740799999996995,"angular_acceleration":0.0},{"time":2.569999999999989,"x":1.5689487048249895,"y":0.37045491580001944,"angle":0.0,"x_velocity":0.9861824874999996,"y_velocity":-1.802220300000021,"angular_velocity":0.0,"x_acceleration":0.05078499999999231,"y_acceleration":2.058839999999691,"angular_acceleration":0.0},{"time":2.579999999999989,"x":1.578813180799989,"y":0.3525403392000197,"angle":0.0,"x_velocity":0.9867237999999994,"y_velocity":-1.7802288000000255,"angular_velocity":0.0,"x_acceleration":0.05743999999999294,"y_acceleration":2.3385599999997027,"angular_acceleration":0.0},{"time":2.5899999999999888,"x":1.5886833987749889,"y":0.33485957060001975,"angle":0.0,"x_velocity":0.9873304874999995,"y_velocity":-1.7554683000000302,"angular_velocity":0.0,"x_acceleration":0.06385499999999333,"y_acceleration":2.612519999999698,"angular_acceleration":0.0},{"time":2.5999999999999885,"x":1.5985599999999887,"y":0.3174400000000195,"angle":0.0,"x_velocity":0.9879999999999993,"y_velocity":-1.728000000000034,"angular_velocity":0.0,"x_acceleration":0.06999999999999318,"y_acceleration":2.8799999999996935,"angular_acceleration":0.0},{"time":2.6099999999999883,"x":1.6084435987249885,"y":0.3003083694000198,"angle":0.0,"x_velocity":0.9887294874999993,"y_velocity":-1.6978923000000359,"angular_velocity":0.0,"x_acceleration":0.07584499999999328,"y_acceleration":3.1402799999997058,"angular_acceleration":0.0},{"time":2.619999999999988,"x":1.6183347791999882,"y":0.2834907008000196,"angle":0.0,"x_velocity":0.9895157999999991,"y_velocity":-1.6652208000000392,"angular_velocity":0.0,"x_acceleration":0.08135999999999366,"y_acceleration":3.3926399999997088,"angular_acceleration":0.0},{"time":2.629999999999988,"x":1.6282340926749879,"y":0.2670122242000196,"angle":0.0,"x_velocity":0.990355487499999,"y_velocity":-1.6300683000000458,"angular_velocity":0.0,"x_acceleration":0.08651499999999412,"y_acceleration":3.636359999999719,"angular_acceleration":0.0},{"time":2.6399999999999877,"x":1.6381420543999878,"y":0.25089730560001944,"angle":0.0,"x_velocity":0.991244799999999,"y_velocity":-1.5925248000000476,"angular_velocity":0.0,"x_acceleration":0.09127999999999448,"y_acceleration":3.8707199999997215,"angular_acceleration":0.0},{"time":2.6499999999999875,"x":1.6480591406249878,"y":0.23516937500001944,"angle":0.0,"x_velocity":0.9921796874999991,"y_velocity":-1.5526875000000526,"angular_velocity":0.0,"x_acceleration":0.09562499999999496,"y_acceleration":4.094999999999729,"angular_acceleration":0.0},{"time":2.6599999999999873,"x":1.6579857855999873,"y":0.2198508544000195,"angle":0.0,"x_velocity":0.9931557999999987,"y_velocity":-1.5106608000000552,"angular_velocity":0.0,"x_acceleration":0.09951999999999539,"y_acceleration":4.30847999999974,"angular_acceleration":0.0},{"time":2.669999999999987,"x":1.667922378574987,"y":0.20496308580001887,"angle":0.0,"x_velocity":0.9941684874999989,"y_velocity":-1.4665563000000548,"angular_velocity":0.0,"x_acceleration":0.10293499999999556,"y_acceleration":4.510439999999733,"angular_acceleration":0.0},{"time":2.679999999999987,"x":1.6778692607999868,"y":0.19052625920001864,"angle":0.0,"x_velocity":0.9952127999999987,"y_velocity":-1.420492800000062,"angular_velocity":0.0,"x_acceleration":0.1058399999999966,"y_acceleration":4.700159999999755,"angular_acceleration":0.0},{"time":2.6899999999999866,"x":1.6878267225249868,"y":0.17655934060001832,"angle":0.0,"x_velocity":0.9962834874999988,"y_velocity":-1.3725963000000654,"angular_velocity":0.0,"x_acceleration":0.10820499999999744,"y_acceleration":4.876919999999778,"angular_acceleration":0.0},{"time":2.6999999999999864,"x":1.6977949999999866,"y":0.16308000000001854,"angle":0.0,"x_velocity":0.9973749999999986,"y_velocity":-1.3230000000000732,"angular_velocity":0.0,"x_acceleration":0.1099999999999981,"y_acceleration":5.0399999999998,"angular_acceleration":0.0},{"time":2.709999999999986,"x":1.707774272474986,"y":0.15010453940001733,"angle":0.0,"x_velocity":0.9984814874999985,"y_velocity":-1.2718443000000708,"angular_velocity":0.0,"x_acceleration":0.11119499999999882,"y_acceleration":5.188679999999806,"angular_acceleration":0.0},{"time":2.719999999999986,"x":1.717764659199986,"y":0.13764782080001847,"angle":0.0,"x_velocity":0.9995967999999984,"y_velocity":-1.2192768000000758,"angular_velocity":0.0,"x_acceleration":0.11175999999999942,"y_acceleration":5.32223999999983,"angular_acceleration":0.0},{"time":2.7299999999999858,"x":1.7277662164249858,"y":0.1257231942000161,"angle":0.0,"x_velocity":1.0007144874999985,"y_velocity":-1.1654523000000783,"angular_velocity":0.0,"x_acceleration":0.11166500000000079,"y_acceleration":5.439959999999857,"angular_acceleration":0.0},{"time":2.7399999999999856,"x":1.7377789343999854,"y":0.11434242560001628,"angle":0.0,"x_velocity":1.0018277999999987,"y_velocity":-1.110532800000076,"angular_velocity":0.0,"x_acceleration":0.1108800000000012,"y_acceleration":5.541119999999857,"angular_acceleration":0.0},{"time":2.7499999999999853,"x":1.7478027343749853,"y":0.10351562500001554,"angle":0.0,"x_velocity":1.0029296874999984,"y_velocity":-1.05468750000008,"angular_velocity":0.0,"x_acceleration":0.10937500000000222,"y_acceleration":5.624999999999893,"angular_acceleration":0.0},{"time":2.759999999999985,"x":1.757837465599985,"y":0.09325117440001485,"angle":0.0,"x_velocity":1.0040127999999986,"y_velocity":-0.9980928000000873,"angular_velocity":0.0,"x_acceleration":0.10712000000000366,"y_acceleration":5.690879999999915,"angular_acceleration":0.0},{"time":2.769999999999985,"x":1.767882902324985,"y":0.08355565580001567,"angle":0.0,"x_velocity":1.0050694874999984,"y_velocity":-0.9409323000000871,"angular_velocity":0.0,"x_acceleration":0.10408500000000531,"y_acceleration":5.7380399999999625,"angular_acceleration":0.0},{"time":2.7799999999999847,"x":1.7779387407999847,"y":0.07443377920001382,"angle":0.0,"x_velocity":1.0060917999999985,"y_velocity":-0.8833968000000905,"angular_velocity":0.0,"x_acceleration":0.10024000000000655,"y_acceleration":5.765759999999993,"angular_acceleration":0.0},{"time":2.7899999999999845,"x":1.7880045962749844,"y":0.06588831060001343,"angle":0.0,"x_velocity":1.0070714874999986,"y_velocity":-0.8256843000000931,"angular_velocity":0.0,"x_acceleration":0.0955550000000076,"y_acceleration":5.773320000000005,"angular_acceleration":0.0},{"time":2.7999999999999843,"x":1.7980799999999844,"y":0.05792000000001174,"angle":0.0,"x_velocity":1.0079999999999987,"y_velocity":-0.7680000000000913,"angular_velocity":0.0,"x_acceleration":0.09000000000000874,"y_acceleration":5.7600000000000335,"angular_acceleration":0.0},{"time":2.809999999999984,"x":1.8081643962249838,"y":0.050527509400011716,"angle":0.0,"x_velocity":1.0088684874999987,"y_velocity":-0.7105563000000927,"angular_velocity":0.0,"x_acceleration":0.08354500000001108,"y_acceleration":5.7250800000000766,"angular_acceleration":0.0},{"time":2.819999999999984,"x":1.8182571391999838,"y":0.04370734080001215,"angle":0.0,"x_velocity":1.0096677999999986,"y_velocity":-0.6535728000000987,"angular_velocity":0.0,"x_acceleration":0.0761600000000131,"y_acceleration":5.667840000000112,"angular_acceleration":0.0},{"time":2.8299999999999836,"x":1.8283574901749835,"y":0.037453764200009676,"angle":0.0,"x_velocity":1.0103884874999989,"y_velocity":-0.5972763000000967,"angular_velocity":0.0,"x_acceleration":0.06781500000001506,"y_acceleration":5.587560000000167,"angular_acceleration":0.0},{"time":2.8399999999999834,"x":1.8384646143999834,"y":0.03175874560000924,"angle":0.0,"x_velocity":1.0110207999999992,"y_velocity":-0.5419008000000911,"angular_velocity":0.0,"x_acceleration":0.0584800000000163,"y_acceleration":5.483520000000212,"angular_acceleration":0.0},{"time":2.849999999999983,"x":1.8485775781249831,"y":0.026611875000008833,"angle":0.0,"x_velocity":1.0115546874999994,"y_velocity":-0.4876875000000922,"angular_velocity":0.0,"x_acceleration":0.0481250000000184,"y_acceleration":5.355000000000246,"angular_acceleration":0.0},{"time":2.859999999999983,"x":1.8586953455999828,"y":0.022000294400009057,"angle":0.0,"x_velocity":1.0119797999999993,"y_velocity":-0.4348848000000949,"angular_velocity":0.0,"x_acceleration":0.03672000000002029,"y_acceleration":5.2012800000002954,"angular_acceleration":0.0},{"time":2.869999999999983,"x":1.8688167760749825,"y":0.017908625800007627,"angle":0.0,"x_velocity":1.0122854874999998,"y_velocity":-0.38374830000008586,"angular_velocity":0.0,"x_acceleration":0.024235000000021767,"y_acceleration":5.021640000000318,"angular_acceleration":0.0},{"time":2.8799999999999826,"x":1.8789406207999824,"y":0.014318899200005397,"angle":0.0,"x_velocity":1.0124608,"y_velocity":-0.33454080000008446,"angular_velocity":0.0,"x_acceleration":0.010640000000024408,"y_acceleration":4.815360000000382,"angular_acceleration":0.0},{"time":2.8899999999999824,"x":1.8890655200249824,"y":0.01121048060000529,"angle":0.0,"x_velocity":1.0124944875000002,"y_velocity":-0.28753230000008045,"angular_velocity":0.0,"x_acceleration":-0.004094999999972426,"y_acceleration":4.581720000000431,"angular_acceleration":0.0},{"time":2.899999999999982,"x":1.899189999999982,"y":0.008560000000003676,"angle":0.0,"x_velocity":1.0123750000000002,"y_velocity":-0.24300000000008026,"angular_velocity":0.0,"x_acceleration":-0.01999999999996982,"y_acceleration":4.320000000000505,"angular_acceleration":0.0},{"time":2.909999999999982,"x":1.9093124699749817,"y":0.00634127940000262,"angle":0.0,"x_velocity":1.012090487500001,"y_velocity":-0.20122830000006786,"angular_velocity":0.0,"x_acceleration":-0.03710499999996841,"y_acceleration":4.029480000000547,"angular_acceleration":0.0},{"time":2.9199999999999817,"x":1.9194312191999814,"y":0.004525260800001263,"angle":0.0,"x_velocity":1.0116288000000013,"y_velocity":-0.16250880000006163,"angular_velocity":0.0,"x_acceleration":-0.05543999999996485,"y_acceleration":3.7094400000005976,"angular_acceleration":0.0},{"time":2.9299999999999815,"x":1.9295444139249815,"y":0.003079934200003187,"angle":0.0,"x_velocity":1.0109774875000015,"y_velocity":-0.1271403000000575,"angular_velocity":0.0,"x_acceleration":-0.07503499999996288,"y_acceleration":3.3591600000006707,"angular_acceleration":0.0},{"time":2.9399999999999813,"x":1.9396500943999813,"y":0.001970265600001575,"angle":0.0,"x_velocity":1.010123800000002,"y_velocity":-0.09542880000005027,"angular_velocity":0.0,"x_acceleration":-0.0959199999999596,"y_acceleration":2.9779200000007506,"angular_acceleration":0.0},{"time":2.949999999999981,"x":1.9497461718749807,"y":0.001158125000000787,"angle":0.0,"x_velocity":1.0090546875000026,"y_velocity":-0.06768750000005141,"angular_velocity":0.0,"x_acceleration":-0.11812499999995651,"y_acceleration":2.5650000000008077,"angular_acceleration":0.0},{"time":2.959999999999981,"x":1.9598304255999803,"y":0.0006022144000015217,"angle":0.0,"x_velocity":1.0077568000000032,"y_velocity":-0.04423680000003216,"angular_velocity":0.0,"x_acceleration":-0.14167999999995384,"y_acceleration":2.1196800000008693,"angular_acceleration":0.0},{"time":2.9699999999999807,"x":1.9699004998249807,"y":0.00025799580000107625,"angle":0.0,"x_velocity":1.006216487500003,"y_velocity":-0.025404300000033686,"angular_velocity":0.0,"x_acceleration":-0.16661499999994955,"y_acceleration":1.641240000000991,"angular_acceleration":0.0},{"time":2.9799999999999804,"x":1.9799539007999802,"y":0.00007761919999982325,"angle":0.0,"x_velocity":1.004419800000004,"y_velocity":-0.011524800000021429,"angular_velocity":0.0,"x_acceleration":-0.19295999999994784,"y_acceleration":1.1289600000010154,"angular_acceleration":0.0},{"time":2.9899999999999802,"x":1.98998799377498,"y":0.00000985059999969451,"angle":0.0,"x_velocity":1.0023524875000047,"y_velocity":-0.002940300000005891,"angular_velocity":0.0,"x_acceleration":-0.22074499999994313,"y_acceleration":0.5821200000011117,"angular_acceleration":0.0},{"time":2.99999999999998,"x":1.99999999999998,"y":8.881784197001252e-16,"angle":0.0,"x_velocity":1.0000000000000049,"y_velocity":3.552713678800501e-15,"angular_velocity":0.0,"x_acceleration":-0.2499999999999396,"y_acceleration":1.2079226507921703e-12,"angular_acceleration":0.0},{"time":3.00999999999998,"x":2.00999180156248,"y":0.000009850599999940616,"angle":0.0,"x_velocity":0.99878315625,"y_velocity":0.002940299999988243,"angular_velocity":0.0,"x_acceleration":0.0037124999995051945,"y_acceleration":0.5821199999988601,"angular_acceleration":0.0},{"time":3.0199999999999796,"x":2.0199838299999797,"y":0.00007761919999976477,"angle":0.0,"x_velocity":1.000016499999995,"y_velocity":0.011524799999976956,"angular_velocity":0.0,"x_acceleration":0.24009999999953496,"y_acceleration":1.1289599999989193,"angular_acceleration":0.0},{"time":3.0299999999999794,"x":2.0299997271874792,"y":0.0002579957999994761,"angle":0.0,"x_velocity":1.0035286562499905,"y_velocity":0.025404299999966153,"angular_velocity":0.0,"x_acceleration":0.45953749999956467,"y_acceleration":1.6412399999989786,"angular_acceleration":0.0},{"time":3.039999999999979,"x":2.040061439999979,"y":0.0006022143999990782,"angle":0.0,"x_velocity":1.009151999999986,"y_velocity":0.044236799999955834,"angular_velocity":0.0,"x_acceleration":0.6623999999995944,"y_acceleration":2.119679999999038,"angular_acceleration":0.0},{"time":3.049999999999979,"x":2.050189257812479,"y":0.001158124999998575,"angle":0.0,"x_velocity":1.016722656249982,"y_velocity":0.06768749999994601,"angular_velocity":0.0,"x_acceleration":0.849062499999624,"y_acceleration":2.564999999999097,"angular_acceleration":0.0},{"time":3.0599999999999787,"x":2.0604018499999777,"y":0.0019702655999979707,"angle":0.0,"x_velocity":1.0260804999999784,"y_velocity":0.09542879999993668,"angular_velocity":0.0,"x_acceleration":1.0198999999996534,"y_acceleration":2.9779199999991564,"angular_acceleration":0.0},{"time":3.0699999999999785,"x":2.070716303437478,"y":0.0030799341999972695,"angle":0.0,"x_velocity":1.037069156249975,"y_velocity":0.12714029999992787,"angular_velocity":0.0,"x_acceleration":1.1752874999996827,"y_acceleration":3.359159999999215,"angular_acceleration":0.0},{"time":3.0799999999999783,"x":2.0811481599999775,"y":0.004525260799996475,"angle":0.0,"x_velocity":1.0495359999999714,"y_velocity":0.16250879999991955,"angular_velocity":0.0,"x_acceleration":1.3155999999997119,"y_acceleration":3.7094399999992733,"angular_acceleration":0.0},{"time":3.089999999999978,"x":2.0917114540624766,"y":0.006341279399995593,"angle":0.0,"x_velocity":1.0633321562499685,"y_velocity":0.20122829999991176,"angular_velocity":0.0,"x_acceleration":1.4412124999997407,"y_acceleration":4.029479999999332,"angular_acceleration":0.0},{"time":3.099999999999978,"x":2.1024187499999765,"y":0.008559999999994626,"angle":0.0,"x_velocity":1.0783124999999658,"y_velocity":0.24299999999990446,"angular_velocity":0.0,"x_acceleration":1.5524999999997695,"y_acceleration":4.319999999999389,"angular_acceleration":0.0},{"time":3.1099999999999777,"x":2.1132811796874753,"y":0.01121048059999358,"angle":0.0,"x_velocity":1.094335656249963,"y_velocity":0.28753229999989766,"angular_velocity":0.0,"x_acceleration":1.6498374999997982,"y_acceleration":4.5817199999994465,"angular_acceleration":0.0},{"time":3.1199999999999775,"x":2.124308479999975,"y":0.014318899199992458,"angle":0.0,"x_velocity":1.1112639999999607,"y_velocity":0.33454079999989145,"angular_velocity":0.0,"x_acceleration":1.7335999999998262,"y_acceleration":4.8153599999995045,"angular_acceleration":0.0},{"time":3.1299999999999772,"x":2.1355090303124746,"y":0.017908625799991265,"angle":0.0,"x_velocity":1.128963656249959,"y_velocity":0.3837482999998857,"angular_velocity":0.0,"x_acceleration":1.8041624999998542,"y_acceleration":5.021639999999561,"angular_acceleration":0.0},{"time":3.139999999999977,"x":2.1468898899999735,"y":0.022000294399990017,"angle":0.0,"x_velocity":1.147304499999957,"y_velocity":0.4348847999998806,"angular_velocity":0.0,"x_acceleration":1.8618999999998818,"y_acceleration":5.201279999999618,"angular_acceleration":0.0},{"time":3.149999999999977,"x":2.158456835937473,"y":0.026611874999988697,"angle":0.0,"x_velocity":1.1661601562499557,"y_velocity":0.4876874999998758,"angular_velocity":0.0,"x_acceleration":1.9071874999999094,"y_acceleration":5.354999999999673,"angular_acceleration":0.0},{"time":3.1599999999999766,"x":2.1702143999999723,"y":0.03175874559998733,"angle":0.0,"x_velocity":1.1854079999999545,"y_velocity":0.5419007999998717,"angular_velocity":0.0,"x_acceleration":1.940399999999936,"y_acceleration":5.483519999999729,"angular_acceleration":0.0},{"time":3.1699999999999764,"x":2.1821659065624717,"y":0.037453764199985896,"angle":0.0,"x_velocity":1.2049291562499536,"y_velocity":0.5972762999998681,"angular_velocity":0.0,"x_acceleration":1.9619124999999629,"y_acceleration":5.587559999999783,"angular_acceleration":0.0},{"time":3.179999999999976,"x":2.1943135099999704,"y":0.04370734079998443,"angle":0.0,"x_velocity":1.224608499999953,"y_velocity":0.653572799999865,"angular_velocity":0.0,"x_acceleration":1.9720999999999886,"y_acceleration":5.667839999999837,"angular_acceleration":0.0},{"time":3.189999999999976,"x":2.20665823218747,"y":0.050527509399982934,"angle":0.0,"x_velocity":1.2443346562499527,"y_velocity":0.7105562999998625,"angular_velocity":0.0,"x_acceleration":1.9713375000000146,"y_acceleration":5.725079999999888,"angular_acceleration":0.0},{"time":3.1999999999999758,"x":2.219199999999969,"y":0.057919999999981375,"angle":0.0,"x_velocity":1.2639999999999527,"y_velocity":0.7679999999998605,"angular_velocity":0.0,"x_acceleration":1.9600000000000397,"y_acceleration":5.759999999999941,"angular_acceleration":0.0},{"time":3.2099999999999755,"x":2.231937682812469,"y":0.0658883105999798,"angle":0.0,"x_velocity":1.2835006562499525,"y_velocity":0.8256842999998588,"angular_velocity":0.0,"x_acceleration":1.9384625000000653,"y_acceleration":5.773319999999995,"angular_acceleration":0.0},{"time":3.2199999999999753,"x":2.2448691299999677,"y":0.0744337791999782,"angle":0.0,"x_velocity":1.302736499999953,"y_velocity":0.8833967999998579,"angular_velocity":0.0,"x_acceleration":1.9071000000000886,"y_acceleration":5.765760000000044,"angular_acceleration":0.0},{"time":3.229999999999975,"x":2.2579912084374674,"y":0.08355565579997658,"angle":0.0,"x_velocity":1.3216111562499533,"y_velocity":0.9409322999998571,"angular_velocity":0.0,"x_acceleration":1.8662875000001131,"y_acceleration":5.738040000000095,"angular_acceleration":0.0},{"time":3.239999999999975,"x":2.2712998399999664,"y":0.09325117439997495,"angle":0.0,"x_velocity":1.3400319999999546,"y_velocity":0.9980927999998573,"angular_velocity":0.0,"x_acceleration":1.8164000000001357,"y_acceleration":5.690880000000142,"angular_acceleration":0.0},{"time":3.2499999999999747,"x":2.284790039062466,"y":0.1035156249999733,"angle":0.0,"x_velocity":1.3579101562499554,"y_velocity":1.0546874999998577,"angular_velocity":0.0,"x_acceleration":1.757812500000159,"y_acceleration":5.625000000000189,"angular_acceleration":0.0},{"time":3.2599999999999745,"x":2.2984559499999646,"y":0.11434242559997165,"angle":0.0,"x_velocity":1.3751604999999567,"y_velocity":1.1105327999998584,"angular_velocity":0.0,"x_acceleration":1.6909000000001806,"y_acceleration":5.541120000000237,"angular_acceleration":0.0},{"time":3.2699999999999743,"x":2.312290884687464,"y":0.12572319419997002,"angle":0.0,"x_velocity":1.3917016562499585,"y_velocity":1.16545229999986,"angular_velocity":0.0,"x_acceleration":1.616037500000202,"y_acceleration":5.43996000000028,"angular_acceleration":0.0},{"time":3.279999999999974,"x":2.326287359999964,"y":0.13764782079996835,"angle":0.0,"x_velocity":1.4074559999999603,"y_velocity":1.2192767999998617,"angular_velocity":0.0,"x_acceleration":1.5336000000002232,"y_acceleration":5.322240000000325,"angular_acceleration":0.0},{"time":3.289999999999974,"x":2.340437135312463,"y":0.15010453939996674,"angle":0.0,"x_velocity":1.422349656249962,"y_velocity":1.2718442999998638,"angular_velocity":0.0,"x_acceleration":1.4439625000002445,"y_acceleration":5.18868000000037,"angular_acceleration":0.0},{"time":3.2999999999999736,"x":2.354731249999962,"y":0.16307999999996514,"angle":0.0,"x_velocity":1.4363124999999641,"y_velocity":1.3229999999998667,"angular_velocity":0.0,"x_acceleration":1.347500000000264,"y_acceleration":5.040000000000411,"angular_acceleration":0.0},{"time":3.3099999999999734,"x":2.3691600609374617,"y":0.1765593405999635,"angle":0.0,"x_velocity":1.4492781562499666,"y_velocity":1.3725962999998702,"angular_velocity":0.0,"x_acceleration":1.244587500000281,"y_acceleration":4.876920000000451,"angular_acceleration":0.0},{"time":3.319999999999973,"x":2.3837132799999607,"y":0.19052625919996186,"angle":0.0,"x_velocity":1.4611839999999694,"y_velocity":1.4204927999998738,"angular_velocity":0.0,"x_acceleration":1.1356000000003004,"y_acceleration":4.70016000000049,"angular_acceleration":0.0},{"time":3.329999999999973,"x":2.3983800115624607,"y":0.20496308579996037,"angle":0.0,"x_velocity":1.4719711562499722,"y_velocity":1.4665562999998782,"angular_velocity":0.0,"x_acceleration":1.0209125000003176,"y_acceleration":4.5104400000005285,"angular_acceleration":0.0},{"time":3.3399999999999728,"x":2.4131487899999593,"y":0.21985085439995888,"angle":0.0,"x_velocity":1.4815844999999754,"y_velocity":1.510660799999883,"angular_velocity":0.0,"x_acceleration":0.9009000000003335,"y_acceleration":4.308480000000564,"angular_acceleration":0.0},{"time":3.3499999999999726,"x":2.4280076171874594,"y":0.2351693749999574,"angle":0.0,"x_velocity":1.4899726562499784,"y_velocity":1.5526874999998876,"angular_velocity":0.0,"x_acceleration":0.7759375000003481,"y_acceleration":4.0950000000005975,"angular_acceleration":0.0},{"time":3.3599999999999723,"x":2.442943999999959,"y":0.250897305599956,"angle":0.0,"x_velocity":1.4970879999999824,"y_velocity":1.5925247999998935,"angular_velocity":0.0,"x_acceleration":0.6464000000003631,"y_acceleration":3.870720000000631,"angular_acceleration":0.0},{"time":3.369999999999972,"x":2.457944987812458,"y":0.2670122241999546,"angle":0.0,"x_velocity":1.5028866562499854,"y_velocity":1.6300682999998983,"angular_velocity":0.0,"x_acceleration":0.512662500000379,"y_acceleration":3.636360000000666,"angular_acceleration":0.0},{"time":3.379999999999972,"x":2.4729972099999578,"y":0.2834907007999532,"angle":0.0,"x_velocity":1.5073284999999896,"y_velocity":1.6652207999999045,"angular_velocity":0.0,"x_acceleration":0.375100000000391,"y_acceleration":3.3926400000006964,"angular_acceleration":0.0},{"time":3.3899999999999717,"x":2.488086913437457,"y":0.300308369399952,"angle":0.0,"x_velocity":1.5103771562499932,"y_velocity":1.6978922999999118,"angular_velocity":0.0,"x_acceleration":0.23408750000040257,"y_acceleration":3.1402800000007263,"angular_acceleration":0.0},{"time":3.3999999999999715,"x":2.5031999999999566,"y":0.3174399999999507,"angle":0.0,"x_velocity":1.5119999999999973,"y_velocity":1.7279999999999178,"angular_velocity":0.0,"x_acceleration":0.09000000000041464,"y_acceleration":2.8800000000007477,"angular_acceleration":0.0},{"time":3.4099999999999713,"x":2.518322064062456,"y":0.33485957059994953,"angle":0.0,"x_velocity":1.512168156250002,"y_velocity":1.7554682999999263,"angular_velocity":0.0,"x_acceleration":-0.056787499999575,"y_acceleration":2.6125200000007744,"angular_acceleration":0.0},{"time":3.419999999999971,"x":2.5334384299999564,"y":0.35254033919994837,"angle":0.0,"x_velocity":1.5108565000000058,"y_velocity":1.7802287999999324,"angular_velocity":0.0,"x_acceleration":-0.20589999999956632,"y_acceleration":2.338560000000797,"angular_acceleration":0.0},{"time":3.429999999999971,"x":2.548534189687456,"y":0.3704549157999475,"angle":0.0,"x_velocity":1.5080436562500097,"y_velocity":1.8022202999999395,"angular_velocity":0.0,"x_acceleration":-0.35696249999955576,"y_acceleration":2.0588400000008242,"angular_acceleration":0.0},{"time":3.4399999999999706,"x":2.5635942399999556,"y":0.3885753343999465,"angle":0.0,"x_velocity":1.503712000000015,"y_velocity":1.8213887999999492,"angular_velocity":0.0,"x_acceleration":-0.5095999999995495,"y_acceleration":1.7740800000008363,"angular_acceleration":0.0},{"time":3.4499999999999704,"x":2.5786033203124554,"y":0.40687312499994566,"angle":0.0,"x_velocity":1.4978476562500194,"y_velocity":1.8376874999999564,"angular_velocity":0.0,"x_acceleration":-0.6634374999995414,"y_acceleration":1.4850000000008592,"angular_acceleration":0.0},{"time":3.45999999999997,"x":2.5935460499999556,"y":0.42531938559994487,"angle":0.0,"x_velocity":1.4904405000000245,"y_velocity":1.8510767999999638,"angular_velocity":0.0,"x_acceleration":-0.8180999999995384,"y_acceleration":1.1923200000008798,"angular_acceleration":0.0},{"time":3.46999999999997,"x":2.6084069659374554,"y":0.44388485419994406,"angle":0.0,"x_velocity":1.4814841562500294,"y_velocity":1.8615242999999724,"angular_velocity":0.0,"x_acceleration":-0.9732124999995344,"y_acceleration":0.8967600000008904,"angular_acceleration":0.0},{"time":3.47999999999997,"x":2.6231705599999557,"y":0.4625399807999434,"angle":0.0,"x_velocity":1.4709760000000345,"y_velocity":1.869004799999983,"angular_velocity":0.0,"x_acceleration":-1.1283999999995329,"y_acceleration":0.5990400000008993,"angular_acceleration":0.0},{"time":3.4899999999999696,"x":2.637821316562456,"y":0.4812549993999431,"angle":0.0,"x_velocity":1.4589171562500391,"y_velocity":1.87350029999999,"angular_velocity":0.0,"x_acceleration":-1.2832874999995258,"y_acceleration":0.2998800000009183,"angular_acceleration":0.0},{"time":3.4999999999999694,"x":2.652343749999956,"y":0.49999999999994255,"angle":0.0,"x_velocity":1.4453125000000444,"y_velocity":1.8749999999999996,"angular_velocity":0.0,"x_acceleration":-1.4374999999995302,"y_acceleration":9.166001291305292e-13,"angular_acceleration":0.0},{"time":3.509999999999969,"x":2.666722442187456,"y":0.5187450005999421,"angle":0.0,"x_velocity":1.4301706562500494,"y_velocity":1.8735003000000088,"angular_velocity":0.0,"x_acceleration":-1.5906624999995316,"y_acceleration":-0.299879999999078,"angular_acceleration":0.0},{"time":3.519999999999969,"x":2.6809420799999564,"y":0.5374600191999417,"angle":0.0,"x_velocity":1.4135040000000547,"y_velocity":1.8690048000000203,"angular_velocity":0.0,"x_acceleration":-1.742399999999531,"y_acceleration":-0.5990399999990714,"angular_acceleration":0.0},{"time":3.5299999999999687,"x":2.6949874928124564,"y":0.5561151457999418,"angle":0.0,"x_velocity":1.395328656250059,"y_velocity":1.8615243000000268,"angular_velocity":0.0,"x_acceleration":-1.8923374999995328,"y_acceleration":-0.8967599999990696,"angular_acceleration":0.0},{"time":3.5399999999999685,"x":2.7088436899999566,"y":0.5746806143999419,"angle":0.0,"x_velocity":1.3756645000000642,"y_velocity":1.8510768000000373,"angular_velocity":0.0,"x_acceleration":-2.040099999999539,"y_acceleration":-1.1923199999990786,"angular_acceleration":0.0},{"time":3.5499999999999683,"x":2.7224958984374568,"y":0.5931268749999419,"angle":0.0,"x_velocity":1.3545351562500696,"y_velocity":1.837687500000047,"angular_velocity":0.0,"x_acceleration":-2.1853124999995455,"y_acceleration":-1.4849999999990757,"angular_acceleration":0.0},{"time":3.559999999999968,"x":2.7359295999999573,"y":0.6114246655999418,"angle":0.0,"x_velocity":1.3319680000000749,"y_velocity":1.8213888000000567,"angular_velocity":0.0,"x_acceleration":-2.327599999999551,"y_acceleration":-1.7740799999990813,"angular_acceleration":0.0},{"time":3.569999999999968,"x":2.7491305690624577,"y":0.6295450841999422,"angle":0.0,"x_velocity":1.307994156250079,"y_velocity":1.8022203000000672,"angular_velocity":0.0,"x_acceleration":-2.4665874999995623,"y_acceleration":-2.058839999999101,"angular_acceleration":0.0},{"time":3.5799999999999677,"x":2.7620849099999583,"y":0.6474596607999421,"angle":0.0,"x_velocity":1.2826485000000838,"y_velocity":1.7802288000000757,"angular_velocity":0.0,"x_acceleration":-2.6018999999995653,"y_acceleration":-2.3385599999990987,"angular_acceleration":0.0},{"time":3.5899999999999674,"x":2.774779094687459,"y":0.6651404293999424,"angle":0.0,"x_velocity":1.2559696562500886,"y_velocity":1.7554683000000857,"angular_velocity":0.0,"x_acceleration":-2.733162499999583,"y_acceleration":-2.6125199999991295,"angular_acceleration":0.0},{"time":3.5999999999999672,"x":2.78719999999996,"y":0.6825599999999437,"angle":0.0,"x_velocity":1.2280000000000935,"y_velocity":1.728000000000094,"angular_velocity":0.0,"x_acceleration":-2.859999999999589,"y_acceleration":-2.8799999999991357,"angular_acceleration":0.0},{"time":3.609999999999967,"x":2.79933494531246,"y":0.6996916305999435,"angle":0.0,"x_velocity":1.1987856562500987,"y_velocity":1.6978923000001043,"angular_velocity":0.0,"x_acceleration":-2.9820374999996098,"y_acceleration":-3.1402799999991657,"angular_acceleration":0.0},{"time":3.619999999999967,"x":2.8111717299999617,"y":0.716509299199945,"angle":0.0,"x_velocity":1.1683765000001034,"y_velocity":1.6652208000001139,"angular_velocity":0.0,"x_acceleration":-3.098899999999624,"y_acceleration":-3.392639999999176,"angular_acceleration":0.0},{"time":3.6299999999999666,"x":2.8226986709374615,"y":0.7329877757999455,"angle":0.0,"x_velocity":1.1368261562501072,"y_velocity":1.6300683000001222,"angular_velocity":0.0,"x_acceleration":-3.21021249999964,"y_acceleration":-3.6363599999992005,"angular_acceleration":0.0},{"time":3.6399999999999664,"x":2.8339046399999623,"y":0.7491026943999461,"angle":0.0,"x_velocity":1.1041920000001122,"y_velocity":1.592524800000131,"angular_velocity":0.0,"x_acceleration":-3.315599999999659,"y_acceleration":-3.8707199999992277,"angular_acceleration":0.0},{"time":3.649999999999966,"x":2.8447791015624633,"y":0.7648306249999473,"angle":0.0,"x_velocity":1.070535156250116,"y_velocity":1.5526875000001406,"angular_velocity":0.0,"x_acceleration":-3.4146874999996832,"y_acceleration":-4.094999999999274,"angular_acceleration":0.0},{"time":3.659999999999966,"x":2.8553121499999645,"y":0.780149145599949,"angle":0.0,"x_velocity":1.0359205000001186,"y_velocity":1.510660800000144,"angular_velocity":0.0,"x_acceleration":-3.5070999999996886,"y_acceleration":-4.308479999999285,"angular_acceleration":0.0},{"time":3.6699999999999657,"x":2.865494547187465,"y":0.7950369141999492,"angle":0.0,"x_velocity":1.000416656250123,"y_velocity":1.4665563000001551,"angular_velocity":0.0,"x_acceleration":-3.5924624999997192,"y_acceleration":-4.5104399999993205,"angular_acceleration":0.0},{"time":3.6799999999999655,"x":2.8753177599999664,"y":0.8094737407999513,"angle":0.0,"x_velocity":0.9640960000001275,"y_velocity":1.4204928000001615,"angular_velocity":0.0,"x_acceleration":-3.6703999999997485,"y_acceleration":-4.700159999999379,"angular_acceleration":0.0},{"time":3.6899999999999653,"x":2.884773997812468,"y":0.8234406593999521,"angle":0.0,"x_velocity":0.9270346562501302,"y_velocity":1.3725963000001702,"angular_velocity":0.0,"x_acceleration":-3.7405374999997676,"y_acceleration":-4.8769199999994015,"angular_acceleration":0.0},{"time":3.699999999999965,"x":2.8938562499999687,"y":0.8369199999999537,"angle":0.0,"x_velocity":0.8893125000001341,"y_velocity":1.3230000000001754,"angular_velocity":0.0,"x_acceleration":-3.8024999999997995,"y_acceleration":-5.039999999999459,"angular_acceleration":0.0},{"time":3.709999999999965,"x":2.9025583234374697,"y":0.8498954605999551,"angle":0.0,"x_velocity":0.8510131562501346,"y_velocity":1.2718443000001844,"angular_velocity":0.0,"x_acceleration":-3.855912499999828,"y_acceleration":-5.188679999999515,"angular_acceleration":0.0},{"time":3.7199999999999647,"x":2.9108748799999713,"y":0.8623521791999582,"angle":0.0,"x_velocity":0.8122240000001364,"y_velocity":1.219276800000186,"angular_velocity":0.0,"x_acceleration":-3.9003999999998555,"y_acceleration":-5.32223999999956,"angular_acceleration":0.0},{"time":3.7299999999999645,"x":2.918801474062473,"y":0.8742768057999588,"angle":0.0,"x_velocity":0.7730361562501384,"y_velocity":1.165452300000192,"angular_velocity":0.0,"x_acceleration":-3.9355874999998903,"y_acceleration":-5.439959999999601,"angular_acceleration":0.0},{"time":3.7399999999999642,"x":2.9263345899999735,"y":0.8856575743999606,"angle":0.0,"x_velocity":0.733544500000141,"y_velocity":1.110532800000195,"angular_velocity":0.0,"x_acceleration":-3.9610999999999237,"y_acceleration":-5.541119999999665,"angular_acceleration":0.0},{"time":3.749999999999964,"x":2.933471679687475,"y":0.8964843749999623,"angle":0.0,"x_velocity":0.6938476562501448,"y_velocity":1.0546875000002025,"angular_velocity":0.0,"x_acceleration":-3.976562499999961,"y_acceleration":-5.62499999999973,"angular_acceleration":0.0},{"time":3.759999999999964,"x":2.9402111999999767,"y":0.9067488255999643,"angle":0.0,"x_velocity":0.6540480000001425,"y_velocity":0.9980928000002027,"angular_velocity":0.0,"x_acceleration":-3.9816000000000003,"y_acceleration":-5.690879999999801,"angular_acceleration":0.0},{"time":3.7699999999999636,"x":2.9465526503124777,"y":0.9164443441999666,"angle":0.0,"x_velocity":0.6142516562501443,"y_velocity":0.9409323000002097,"angular_velocity":0.0,"x_acceleration":-3.9758375000000434,"y_acceleration":-5.73803999999987,"angular_acceleration":0.0},{"time":3.7799999999999634,"x":2.9524966099999794,"y":0.9255662207999678,"angle":0.0,"x_velocity":0.5745685000001446,"y_velocity":0.883396800000213,"angular_velocity":0.0,"x_acceleration":-3.9589000000000887,"y_acceleration":-5.765759999999936,"angular_acceleration":0.0},{"time":3.789999999999963,"x":2.9580447759374806,"y":0.9341116893999701,"angle":0.0,"x_velocity":0.5351121562501451,"y_velocity":0.8256843000002121,"angular_velocity":0.0,"x_acceleration":-3.9304125000001306,"y_acceleration":-5.773320000000012,"angular_acceleration":0.0},{"time":3.799999999999963,"x":2.9631999999999823,"y":0.9420799999999712,"angle":0.0,"x_velocity":0.4960000000001452,"y_velocity":0.7680000000002156,"angular_velocity":0.0,"x_acceleration":-3.8900000000001747,"y_acceleration":-5.760000000000083,"angular_acceleration":0.0},{"time":3.8099999999999627,"x":2.9679663265624834,"y":0.9494724905999732,"angle":0.0,"x_velocity":0.45735315625014294,"y_velocity":0.71055630000021,"angular_velocity":0.0,"x_acceleration":-3.8372875000002153,"y_acceleration":-5.725080000000176,"angular_acceleration":0.0},{"time":3.8199999999999625,"x":2.972349029999984,"y":0.9562926591999759,"angle":0.0,"x_velocity":0.41929650000014096,"y_velocity":0.6535728000002106,"angular_velocity":0.0,"x_acceleration":-3.7719000000002794,"y_acceleration":-5.667840000000268,"angular_acceleration":0.0},{"time":3.8299999999999623,"x":2.976354652187486,"y":0.9625462357999774,"angle":0.0,"x_velocity":0.38195865625014047,"y_velocity":0.5972763000002139,"angular_velocity":0.0,"x_acceleration":-3.6934625000003294,"y_acceleration":-5.587560000000366,"angular_acceleration":0.0},{"time":3.839999999999962,"x":2.9799910399999874,"y":0.9682412543999801,"angle":0.0,"x_velocity":0.3454720000001341,"y_velocity":0.5419008000002048,"angular_velocity":0.0,"x_acceleration":-3.60160000000036,"y_acceleration":-5.483520000000439,"angular_acceleration":0.0},{"time":3.849999999999962,"x":2.9832673828124876,"y":0.973388124999981,"angle":0.0,"x_velocity":0.3099726562501317,"y_velocity":0.48768750000020233,"angular_velocity":0.0,"x_acceleration":-3.495937500000423,"y_acceleration":-5.35500000000053,"angular_acceleration":0.0},{"time":3.8599999999999617,"x":2.986194249999989,"y":0.9779997055999847,"angle":0.0,"x_velocity":0.27560050000012914,"y_velocity":0.43488480000019436,"angular_velocity":0.0,"x_acceleration":-3.3761000000004913,"y_acceleration":-5.2012800000006365,"angular_acceleration":0.0},{"time":3.8699999999999615,"x":2.9887836284374907,"y":0.9820913741999862,"angle":0.0,"x_velocity":0.24249915625012441,"y_velocity":0.383748300000196,"angular_velocity":0.0,"x_acceleration":-3.2417125000005456,"y_acceleration":-5.021640000000758,"angular_acceleration":0.0},{"time":3.8799999999999613,"x":2.991048959999992,"y":0.9856811007999884,"angle":0.0,"x_velocity":0.21081600000012024,"y_velocity":0.3345408000001875,"angular_velocity":0.0,"x_acceleration":-3.092400000000602,"y_acceleration":-4.815360000000851,"angular_acceleration":0.0},{"time":3.889999999999961,"x":2.993005179062492,"y":0.9887895193999885,"angle":0.0,"x_velocity":0.18070215625011699,"y_velocity":0.28753230000017993,"angular_velocity":0.0,"x_acceleration":-2.927787500000669,"y_acceleration":-4.581720000000956,"angular_acceleration":0.0},{"time":3.899999999999961,"x":2.9946687499999936,"y":0.9914399999999883,"angle":0.0,"x_velocity":0.15231250000011087,"y_velocity":0.2430000000001762,"angular_velocity":0.0,"x_acceleration":-2.747500000000727,"y_acceleration":-4.320000000001102,"angular_acceleration":0.0},{"time":3.9099999999999606,"x":2.9960577046874954,"y":0.9936587205999916,"angle":0.0,"x_velocity":0.12580565625010287,"y_velocity":0.20122830000015668,"angular_velocity":0.0,"x_acceleration":-2.5511625000008067,"y_acceleration":-4.0294800000012145,"angular_acceleration":0.0},{"time":3.9199999999999604,"x":2.997191679999996,"y":0.9954747391999934,"angle":0.0,"x_velocity":0.10134400000009336,"y_velocity":0.16250880000014334,"angular_velocity":0.0,"x_acceleration":-2.33840000000086,"y_acceleration":-3.709440000001308,"angular_acceleration":0.0},{"time":3.92999999999996,"x":2.998091955312497,"y":0.9969200657999959,"angle":0.0,"x_velocity":0.07909365625008213,"y_velocity":0.12714030000012855,"angular_velocity":0.0,"x_acceleration":-2.108837500000945,"y_acceleration":-3.3591600000014665,"angular_acceleration":0.0},{"time":3.93999999999996,"x":2.998781489999999,"y":0.9980297343999966,"angle":0.0,"x_velocity":0.05922450000007373,"y_velocity":0.09542880000011422,"angular_velocity":0.0,"x_acceleration":-1.8621000000010142,"y_acceleration":-2.977920000001575,"angular_acceleration":0.0},{"time":3.9499999999999598,"x":2.999284960937498,"y":0.9988418749999983,"angle":0.0,"x_velocity":0.041910156250063224,"y_velocity":0.06768750000010115,"angular_velocity":0.0,"x_acceleration":-1.5978125000010905,"y_acceleration":-2.5650000000017315,"angular_acceleration":0.0},{"time":3.9599999999999596,"x":2.999628799999998,"y":0.9993977855999976,"angle":0.0,"x_velocity":0.027328000000053976,"y_velocity":0.04423680000008545,"angular_velocity":0.0,"x_acceleration":-1.3156000000011758,"y_acceleration":-2.119680000001864,"angular_acceleration":0.0},{"time":3.9699999999999593,"x":2.9998412315625,"y":0.9997420041999989,"angle":0.0,"x_velocity":0.015659156250045214,"y_velocity":0.02540430000006566,"angular_velocity":0.0,"x_acceleration":-1.0150875000012576,"y_acceleration":-1.6412400000020142,"angular_acceleration":0.0},{"time":3.979999999999959,"x":2.9999523099999994,"y":0.9999223808000011,"angle":0.0,"x_velocity":0.007088500000024922,"y_velocity":0.011524800000042745,"angular_velocity":0.0,"x_acceleration":-0.6959000000013447,"y_acceleration":-1.1289600000021665,"angular_acceleration":0.0},{"time":3.989999999999959,"x":2.9999939571874994,"y":0.9999901493999994,"angle":0.0,"x_velocity":0.0018046562500160235,"y_velocity":0.0029403000000272073,"angular_velocity":0.0,"x_acceleration":-0.35766250000143884,"y_acceleration":-0.5821200000023339,"angular_acceleration":0.0},{"time":3.9999999999999587,"x":3.0000000000000004,"y":0.9999999999999991,"angle":0.0,"x_velocity":1.7763568394002505e-15,"y_velocity":-3.552713678800501e-15,"angular_velocity":0.0,"x_acceleration":-1.5276668818842154e-12,"y_acceleration":-2.4868995751603507e-12,"angular_acceleration":0.0}]} \ No newline at end of file diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 92279e4..a55d50e 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -18,6 +18,15 @@ public final class Constants { public static double x = 0; public static double y = 0; public static double angle = 0; + public static boolean lastPoint = false; + + public static final class Swerve { + + public static final double TURN_kP = 1; + public static final double TURN_kI = 0; + public static final double TURN_kD = 0; + + } public static final class Autonomous { // lookahead distance is a function: @@ -4037,6 +4046,7 @@ public static final class Ratios { // drive public static final double DRIVE_GEAR_RATIO = 6.12; public static final double STEER_GEAR_RATIO = 21.43; + public static final double MAX_WHEEL_RPS = 6380.0 / 60.0 / 6.12; // elevator public static final double ELEVATOR_FIRST_STAGE = Constants.inchesToMeters(23.25); diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 7c19346..4e4fbbf 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -1,6 +1,7 @@ package frc.robot; import java.io.IOException; +import java.util.List; import org.littletonrobotics.junction.LogFileUtil; import org.littletonrobotics.junction.LoggedRobot; @@ -20,115 +21,136 @@ import frc.robot.subsystems.Drive; import frc.robot.subsystems.Peripherals; import frc.robot.tools.PathLoader; +import frc.robot.tools.PathLoader.PosePoint; import frc.robot.tools.math.Vector; public class Robot extends LoggedRobot { - private final RobotContainer m_robotContainer; - private final Drive drive; - private final Peripherals peripherals; - private final TalonFX testMotor; - private double setAngle = 0; - private Command m_autonomousCommand; - PathLoader path = new PathLoader(); - - public Robot() { - - Logger.recordMetadata("ChassisBot", "Chassis"); - - if (isReal()) { - Logger.addDataReceiver(new NT4Publisher()); - } else { - setUseTiming(false); - String logPath = LogFileUtil.findReplayLog(); - Logger.addDataReceiver(new WPILOGWriter(LogFileUtil.addPathSuffix(logPath, "_sim"))); // Save outputs to a new log - } + private final RobotContainer m_robotContainer; + private final Drive drive; + private final Peripherals peripherals; + private final TalonFX testMotor; + private double setAngle = 0; + private Command m_autonomousCommand; + PathLoader path = new PathLoader(); + List autoPath; + + public Robot() { + + Logger.recordMetadata("ChassisBot", "Chassis"); + + if (isReal()) { + Logger.addDataReceiver(new NT4Publisher()); + } else { + setUseTiming(false); + String logPath = LogFileUtil.findReplayLog(); + Logger.addDataReceiver(new WPILOGWriter(LogFileUtil.addPathSuffix(logPath, "_sim"))); // Save outputs to a + // new log + } + + Logger.start(); + m_robotContainer = new RobotContainer(); + drive = m_robotContainer.drive; + peripherals = m_robotContainer.peripherals; + testMotor = new TalonFX(4); - Logger.start(); - m_robotContainer = new RobotContainer(); - drive = m_robotContainer.drive; - peripherals = m_robotContainer.peripherals; - testMotor = new TalonFX(4); - } - - @Override - public void robotPeriodic() { - CommandScheduler.getInstance().run(); - } - - @Override - public void disabledInit() { - } - - @Override - public void disabledPeriodic() { - } - - @Override - public void autonomousInit() { - try { - new ParallelCommandGroup(new FollowPath(PathLoader.loadPath("test.polarpath"), drive), new DriveToPoint(drive)) - .schedule(); - ; - } catch (IOException e) { - e.printStackTrace(); } - } - - @Override - public void autonomousPeriodic() { - } - @Override - public void teleopInit() { - if (m_autonomousCommand != null) { - m_autonomousCommand.cancel(); + @Override + public void robotPeriodic() { + CommandScheduler.getInstance().run(); } - } - @Override - public void teleopPeriodic() { - if (OI.getDriverA()) { - peripherals.zeroPigeon(); + @Override + public void robotInit() { + try { + autoPath = PathLoader.loadPath("test.polarpath"); + } catch (IOException e) { + e.printStackTrace(); + } } - double leftX = -OI.getDriverLeftY(); - double leftY = OI.getDriverLeftX(); - double rightX = -OI.getDriverRightX() * 0.65; + @Override + public void disabledInit() { + } - Vector driveVector = new Vector(leftX, leftY); - if (driveVector.magnitude() > 1.0) { - driveVector = driveVector.scaled(1.0 / driveVector.magnitude()); + @Override + public void disabledPeriodic() { } - double angleDeg = peripherals.getPigeonAngle(); - double angleRad = Math.toRadians(angleDeg); - double cosA = Math.cos(angleRad); - double sinA = Math.sin(angleRad); + @Override + public void autonomousInit() { + new ParallelCommandGroup(new FollowPath(autoPath, drive), + new DriveToPoint(drive)) + .schedule(); - double fieldX = driveVector.getI() * cosA - driveVector.getJ() * sinA; - double fieldY = driveVector.getI() * sinA + driveVector.getJ() * cosA; + } - Vector fieldCentricVector = new Vector(fieldX, fieldY); + @Override + public void autonomousPeriodic() { + } - drive.drive(fieldCentricVector, rightX); + @Override + public void teleopInit() { + if (m_autonomousCommand != null) { + m_autonomousCommand.cancel(); + } + } - // System.out.println(angleDeg); - } + @Override + public void teleopPeriodic() { + if (OI.getDriverA()) { + peripherals.zeroPigeon(); + } + + double leftX = OI.getDriverLeftY(); + double leftY = -OI.getDriverLeftX(); + double rightX = OI.getDriverRightX() * 0.65; + + if (Math.abs(leftX) < 0.1) { + leftX = 0; + } + if (Math.abs(leftY) < 0.1) { + leftY = 0; + } + if (Math.abs(rightX) < 0.1) { + rightX = 0; + } + + Vector driveVector = new Vector(leftX, leftY); + if (driveVector.magnitude() > 1.0) { + driveVector = driveVector.scaled(1.0 / driveVector.magnitude()); + } + double angleDeg = peripherals.getPigeonAngle(); + double angleRad = Math.toRadians(angleDeg); + double cosA = Math.cos(angleRad); + double sinA = Math.sin(angleRad); + + double fieldX = driveVector.getI() * cosA - driveVector.getJ() * sinA; + double fieldY = driveVector.getI() * sinA + driveVector.getJ() * cosA; + + Vector fieldCentricVector = new Vector(fieldX, fieldY); + + drive.driveAuto(fieldCentricVector, rightX); + + // drive.drive(leftX, leftY, rightX, peripherals.getPigeonAngle()); + + // System.out.println(angleDeg); + } - @Override - public void testInit() { - CommandScheduler.getInstance().cancelAll(); - } + @Override + public void testInit() { + CommandScheduler.getInstance().cancelAll(); + } - @Override - public void testPeriodic() { - } + @Override + public void testPeriodic() { + } - @Override - public void simulationInit() { - } + @Override + public void simulationInit() { + } - @Override - public void simulationPeriodic() { - } -} + @Override + public void simulationPeriodic() { + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/commands/DriveToPoint.java b/src/main/java/frc/robot/commands/DriveToPoint.java index 864ab42..4fd2e43 100644 --- a/src/main/java/frc/robot/commands/DriveToPoint.java +++ b/src/main/java/frc/robot/commands/DriveToPoint.java @@ -9,9 +9,9 @@ public class DriveToPoint extends Command { private final Drive driveSubsystem; - private final PID xPID = new PID(4, 0.0, 1.2); - private final PID yPID = new PID(4, 0.0, 1.2); - private final PID yawPID = new PID(2.9, 0.0, 2.0); + private final PID xPID = new PID(4, 0.0, 2.1); + private final PID yPID = new PID(4, 0.0, 2.1); + private final PID yawPID = new PID(2, 0.0, 2.9); public DriveToPoint(Drive drive) { System.out.println("started"); @@ -26,6 +26,9 @@ public DriveToPoint(Drive drive) { yPID.setMinOutput(-3.0); yPID.setMaxOutput(3.0); + + yawPID.setMinInput(-0.5); + yawPID.setMaxOutput(0.5); // addRequirements(driveSubsystem); } @@ -45,8 +48,8 @@ public void execute() { double currentY = driveSubsystem.getY(); double currentTheta = driveSubsystem.getAngle(); - double xOut = xPID.updatePID(currentX); - double yOut = -yPID.updatePID(currentY); + double xOut = -xPID.updatePID(currentX) / 2; + double yOut = yPID.updatePID(currentY) / 2; double turnOut = -yawPID.updatePID(currentTheta) / 8; Vector relativeVector = new Vector(xOut, yOut); @@ -60,10 +63,9 @@ public void end(boolean interrupted) { @Override public boolean isFinished() { - // boolean posClose = Math.abs(xPID.getError()) < 0.03 && - // Math.abs(yPID.getError()) < 0.03; - // boolean angleClose = Math.abs(yawPID.getError()) < 1.0; - // return posClose && angleClose; - return false; + boolean posClose = Math.abs(xPID.getError()) < 0.03 && + Math.abs(yPID.getError()) < 0.03; + boolean angleClose = Math.abs(yawPID.getError()) < 1.0; + return posClose && angleClose && Constants.lastPoint; } } diff --git a/src/main/java/frc/robot/commands/FollowPath.java b/src/main/java/frc/robot/commands/FollowPath.java index fb24c35..6ecaaa4 100644 --- a/src/main/java/frc/robot/commands/FollowPath.java +++ b/src/main/java/frc/robot/commands/FollowPath.java @@ -29,9 +29,10 @@ public void initialize() { @Override public void execute() { - double now = timer.get(); + double now = timer.get() - 0.25; while (currentIndex < points.size() && now >= points.get(currentIndex).time) { + PathLoader.PosePoint point = points.get(currentIndex); org.littletonrobotics.junction.Logger.recordOutput("Points X", point.x); @@ -53,6 +54,10 @@ public void end(boolean interrupted) { @Override public boolean isFinished() { - return currentIndex >= points.size(); + boolean allPoints = currentIndex >= points.size(); + if (allPoints) { + Constants.lastPoint = true; + } + return allPoints; } } diff --git a/src/main/java/frc/robot/subsystems/Drive.java b/src/main/java/frc/robot/subsystems/Drive.java index 0869501..8fdeaec 100644 --- a/src/main/java/frc/robot/subsystems/Drive.java +++ b/src/main/java/frc/robot/subsystems/Drive.java @@ -11,6 +11,7 @@ import edu.wpi.first.math.kinematics.SwerveModulePosition; import edu.wpi.first.wpilibj2.command.SubsystemBase; import frc.robot.tools.math.Vector; +import frc.robot.OI; import frc.robot.tools.SwerveModule; import frc.robot.tools.math.PID; @@ -63,17 +64,26 @@ public Drive() { } public double getX() { - return m_pose.getX() * 0.82; + return m_pose.getX() * -0.82; } public double getY() { - return m_pose.getY() * 0.78; + return m_pose.getY() * -0.78; } public double getAngle() { return m_pose.getRotation().getDegrees(); } + public Rotation2d getRotation2D() { + return peripherals.getRotation2d(); + } + + public Pose2d getPose2D() { + Pose2d pose = new Pose2d(getX(), getY(), getRotation2D()); + return pose; + } + public void stop() { swerve1.stop(); swerve2.stop(); @@ -94,10 +104,26 @@ public void periodic() { Logger.recordOutput("Robot X", m_pose.getX()); Logger.recordOutput("Robot Y", m_pose.getY()); Logger.recordOutput("Robot Angle", m_pose.getRotation().getDegrees()); - Logger.recordOutput("Robot Pose", m_pose); + Logger.recordOutput("Robot Pose", getPose2D()); + } + + public void drive(double leftx, double lefty, double rightx, double yaw) { + double leftX = lefty; + double leftY = -leftX; + double rightX = rightx; + + Vector driveVector = new Vector(leftX, leftY); + if (driveVector.magnitude() > 1.0) { + driveVector = driveVector.scaled(1.0 / driveVector.magnitude()); + } + + // swerve1.drive(driveVector, rightX, yaw); + // swerve2.drive(driveVector, rightX, yaw); + // swerve3.drive(driveVector, rightX, yaw); + // swerve4.drive(driveVector, rightX, yaw); } - public void drive(Vector driveVector, double turn) { + public void driveAuto(Vector driveVector, double turn) { swerve1.drive(driveVector, turn); swerve2.drive(driveVector, turn); swerve3.drive(driveVector, turn); @@ -117,7 +143,7 @@ public void autoDrive(Vector fieldVector, double targetYawDegrees) { Vector robotVector = new Vector(rx, ry); - drive(robotVector, targetYawDegrees); + driveAuto(robotVector, targetYawDegrees); } } diff --git a/src/main/java/frc/robot/tools/SwerveModule.java b/src/main/java/frc/robot/tools/SwerveModule.java index bdcb878..c5e1a53 100644 --- a/src/main/java/frc/robot/tools/SwerveModule.java +++ b/src/main/java/frc/robot/tools/SwerveModule.java @@ -4,25 +4,39 @@ import frc.robot.tools.math.PID; import frc.robot.tools.math.Vector; +import java.util.logging.Logger; + +import com.ctre.phoenix6.configs.TalonFXConfiguration; +import com.ctre.phoenix6.controls.PositionTorqueCurrentFOC; +import com.ctre.phoenix6.controls.VelocityTorqueCurrentFOC; import com.ctre.phoenix6.hardware.CANcoder; import com.ctre.phoenix6.hardware.TalonFX; +import com.ctre.phoenix6.signals.FeedbackSensorSourceValue; +import com.ctre.phoenix6.signals.InvertedValue; +import com.ctre.phoenix6.signals.NeutralModeValue; import edu.wpi.first.math.geometry.Rotation2d; import edu.wpi.first.math.kinematics.SwerveModulePosition; public class SwerveModule { + private static final double SPEED_DEADBAND = 1e-3; private final TalonFX motorDrive; private final TalonFX motorTurn; private final CANcoder motorEncoder; private final Vector turnVector; private final double wheelCircumference = Constants.Physical.WHEEL_CIRCUMFERENCE; private final PID turnPID = new PID(0.01, 0.0, 0.0); + private final PositionTorqueCurrentFOC positionTorqueFOCRequest = new PositionTorqueCurrentFOC(0); + private final VelocityTorqueCurrentFOC velocityTorqueFOCRequest = new VelocityTorqueCurrentFOC(0); + private int moduleIndex; + private double lastTargetRad = 0.0; public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int index) { this.motorDrive = driveMotor; this.motorTurn = turnMotor; this.motorEncoder = encoder; this.turnVector = new Vector(0, 0); + this.moduleIndex = index; double c = 1.0 / Math.sqrt(2); switch (index) { @@ -47,43 +61,135 @@ public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int turnPID.setContinuous(true); turnPID.setMinInput(0); turnPID.setMaxInput(360); + + TalonFXConfiguration angleMotorConfig = new TalonFXConfiguration(); + TalonFXConfiguration driveMotorConfig = new TalonFXConfiguration(); + + angleMotorConfig.Slot0.kP = 370.0; + angleMotorConfig.Slot0.kI = 0.0; + angleMotorConfig.Slot0.kD = 15; + + angleMotorConfig.Slot1.kP = 3.0; + angleMotorConfig.Slot1.kI = 0.0; + angleMotorConfig.Slot1.kD = 0.0; + + angleMotorConfig.TorqueCurrent.PeakForwardTorqueCurrent = 70; + angleMotorConfig.TorqueCurrent.PeakReverseTorqueCurrent = -70; + + angleMotorConfig.MotorOutput.NeutralMode = NeutralModeValue.Brake; + + angleMotorConfig.ClosedLoopRamps.TorqueClosedLoopRampPeriod = 0.1; + + angleMotorConfig.MotorOutput.Inverted = InvertedValue.Clockwise_Positive; + + angleMotorConfig.Feedback.FeedbackSensorSource = FeedbackSensorSourceValue.FusedCANcoder; + angleMotorConfig.Feedback.FeedbackRemoteSensorID = motorEncoder.getDeviceID(); + angleMotorConfig.Feedback.SensorToMechanismRatio = 1.0; + angleMotorConfig.Feedback.RotorToSensorRatio = Constants.Ratios.STEER_GEAR_RATIO; + + driveMotorConfig.Slot0.kP = 8.0; + driveMotorConfig.Slot0.kI = 0.0; + driveMotorConfig.Slot0.kD = 0.0; + driveMotorConfig.Slot0.kV = 0.0; + + driveMotorConfig.TorqueCurrent.PeakForwardTorqueCurrent = 120; + driveMotorConfig.TorqueCurrent.PeakReverseTorqueCurrent = -120; + driveMotorConfig.CurrentLimits.StatorCurrentLimitEnable = true; + driveMotorConfig.CurrentLimits.SupplyCurrentLimitEnable = true; + driveMotorConfig.CurrentLimits.StatorCurrentLimit = 120; + driveMotorConfig.CurrentLimits.SupplyCurrentLimit = 120; + + driveMotorConfig.MotorOutput.NeutralMode = NeutralModeValue.Brake; + + driveMotorConfig.ClosedLoopRamps.TorqueClosedLoopRampPeriod = 0.1; + + if (index == 4) { + driveMotorConfig.MotorOutput.Inverted = InvertedValue.Clockwise_Positive; + } else { + driveMotorConfig.MotorOutput.Inverted = InvertedValue.CounterClockwise_Positive; + } + + double absolutePosition = motorEncoder.getAbsolutePosition().getValueAsDouble(); + motorTurn.setPosition(absolutePosition); + motorDrive.setPosition(0.0); + + motorTurn.getConfigurator().apply(angleMotorConfig); + motorDrive.getConfigurator().apply(driveMotorConfig); + + } + + public double findClosestAngle(double angleA, double angleB) { + double diff = angleB - angleA; + return (diff + Math.PI) % (2 * Math.PI) - Math.PI; } public void drive(Vector driveVector, double turnInput) { double vx = driveVector.getI() + turnInput * turnVector.getI(); double vy = driveVector.getJ() + turnInput * turnVector.getJ(); - double speed = Math.hypot(vx, vy); - double desiredAngle = Math.toDegrees(Math.atan2(vy, vx)); - if (desiredAngle < 0) - desiredAngle += 360; + double targetRad; + if (speed > SPEED_DEADBAND) { + double deg = Math.toDegrees(Math.atan2(vy, vx)); + if (deg < 0) + deg += 360; + double desiredRad = Math.toRadians(deg); + double currentAbsRad = motorEncoder.getAbsolutePosition().getValueAsDouble() * 2 * Math.PI; + + double noFlip = findClosestAngle(currentAbsRad, desiredRad); + double flip = findClosestAngle(currentAbsRad, desiredRad + Math.PI); + + if (Math.abs(flip) < Math.abs(noFlip)) { + targetRad = currentAbsRad + flip; + speed = -speed; + } else { + targetRad = currentAbsRad + noFlip; + } + + lastTargetRad = targetRad; + } else { + targetRad = lastTargetRad; + speed = 0; + } - double currentAngle = getAngle(); + setSpeed(speed * Constants.Physical.TOP_SPEED); - double delta = desiredAngle - currentAngle; - if (delta > 180) - delta -= 360; - else if (delta < -180) - delta += 360; + double desiredRevs = targetRad / (2 * Math.PI); + double currentMotorRevs = motorTurn.getPosition().getValueAsDouble(); - if (Math.abs(delta) > 90) { - desiredAngle = (desiredAngle + 180) % 360; - speed = -speed; - } + double diffRevs = findClosestAngle( + motorEncoder.getAbsolutePosition().getValueAsDouble() * 2 * Math.PI, + desiredRevs * 2 * Math.PI) / (2 * Math.PI); - setSpeed(speed); - setDirection(desiredAngle); + double targetRevs = currentMotorRevs + diffRevs; + motorTurn.setControl(positionTorqueFOCRequest.withPosition(targetRevs)); } private void setSpeed(double velocity) { - motorDrive.set(velocity); + motorDrive.setControl(velocityTorqueFOCRequest.withVelocity(wheelToDriveMotorRotations(velocity))); + } + + public double wheelToSteerMotorRotations(double rotations) { + return rotations * Constants.Ratios.STEER_GEAR_RATIO; } - private void setDirection(double angle) { + public double steerMotorToWheelRotations(double rotations) { + return rotations / Constants.Ratios.STEER_GEAR_RATIO; + } + + public double wheelToDriveMotorRotations(double rotations) { + return rotations * Constants.Ratios.DRIVE_GEAR_RATIO; + } + + public double driveMotorToWheelRotations(double rotations) { + return rotations / Constants.Ratios.DRIVE_GEAR_RATIO; + } + + public double degreesToRotations(double degrees) { + return degrees / 360; + } - turnPID.setSetPoint(angle); - double output = turnPID.updatePID(getAngle()); - motorTurn.set(-output); + public double rotationsToDegrees(double rotations) { + return rotations * 360; } public double getEncoder() { @@ -103,7 +209,6 @@ public void stop() { } public void periodic() { - } public SwerveModulePosition getPosition() { From 4236d1ae428d1c58db1ebb11ae07a9afe3938092 Mon Sep 17 00:00:00 2001 From: Dhairya Trivedi <140292400+Dhairya-exe@users.noreply.github.com> Date: Sat, 19 Jul 2025 12:21:59 -0600 Subject: [PATCH 3/9] moved teleop code to function in drive --- src/main/java/frc/robot/Robot.java | 40 +----- src/main/java/frc/robot/subsystems/Drive.java | 44 +++++- .../java/frc/robot/tools/SwerveModule.java | 125 ++++++++++++++---- 3 files changed, 138 insertions(+), 71 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 4e4fbbf..97496e6 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -11,11 +11,9 @@ import org.littletonrobotics.junction.wpilog.WPILOGWriter; import com.ctre.phoenix6.hardware.TalonFX; -import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; import edu.wpi.first.wpilibj2.command.ParallelCommandGroup; -import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; import frc.robot.commands.DriveToPoint; import frc.robot.commands.FollowPath; import frc.robot.subsystems.Drive; @@ -98,43 +96,7 @@ public void teleopInit() { @Override public void teleopPeriodic() { - if (OI.getDriverA()) { - peripherals.zeroPigeon(); - } - - double leftX = OI.getDriverLeftY(); - double leftY = -OI.getDriverLeftX(); - double rightX = OI.getDriverRightX() * 0.65; - - if (Math.abs(leftX) < 0.1) { - leftX = 0; - } - if (Math.abs(leftY) < 0.1) { - leftY = 0; - } - if (Math.abs(rightX) < 0.1) { - rightX = 0; - } - - Vector driveVector = new Vector(leftX, leftY); - if (driveVector.magnitude() > 1.0) { - driveVector = driveVector.scaled(1.0 / driveVector.magnitude()); - } - double angleDeg = peripherals.getPigeonAngle(); - double angleRad = Math.toRadians(angleDeg); - double cosA = Math.cos(angleRad); - double sinA = Math.sin(angleRad); - - double fieldX = driveVector.getI() * cosA - driveVector.getJ() * sinA; - double fieldY = driveVector.getI() * sinA + driveVector.getJ() * cosA; - - Vector fieldCentricVector = new Vector(fieldX, fieldY); - - drive.driveAuto(fieldCentricVector, rightX); - - // drive.drive(leftX, leftY, rightX, peripherals.getPigeonAngle()); - - // System.out.println(angleDeg); + drive.teleopDrive(); } @Override diff --git a/src/main/java/frc/robot/subsystems/Drive.java b/src/main/java/frc/robot/subsystems/Drive.java index 8fdeaec..a41f180 100644 --- a/src/main/java/frc/robot/subsystems/Drive.java +++ b/src/main/java/frc/robot/subsystems/Drive.java @@ -124,10 +124,10 @@ public void drive(double leftx, double lefty, double rightx, double yaw) { } public void driveAuto(Vector driveVector, double turn) { - swerve1.drive(driveVector, turn); - swerve2.drive(driveVector, turn); - swerve3.drive(driveVector, turn); - swerve4.drive(driveVector, turn); + swerve1.drive(driveVector, turn, getAngle()); + swerve2.drive(driveVector, turn, getAngle()); + swerve3.drive(driveVector, turn, getAngle()); + swerve4.drive(driveVector, turn, getAngle()); } public void autoDrive(Vector fieldVector, double targetYawDegrees) { @@ -146,4 +146,40 @@ public void autoDrive(Vector fieldVector, double targetYawDegrees) { driveAuto(robotVector, targetYawDegrees); } + public void teleopDrive() { + if (OI.getDriverA()) { + peripherals.zeroPigeon(); + } + + double leftX = OI.getDriverLeftY(); + double leftY = -OI.getDriverLeftX(); + double rightX = OI.getDriverRightX() * 0.65; + + if (Math.abs(leftX) < 0.1) { + leftX = 0; + } + if (Math.abs(leftY) < 0.1) { + leftY = 0; + } + if (Math.abs(rightX) < 0.1) { + rightX = 0; + } + + Vector driveVector = new Vector(leftX, leftY); + if (driveVector.magnitude() > 1.0) { + driveVector = driveVector.scaled(1.0 / driveVector.magnitude()); + } + + double angleDeg = peripherals.getPigeonAngle(); + double angleRad = Math.toRadians(angleDeg); + double cosA = Math.cos(angleRad); + double sinA = Math.sin(angleRad); + + double fieldX = driveVector.getI() * cosA - driveVector.getJ() * sinA; + double fieldY = driveVector.getI() * sinA + driveVector.getJ() * cosA; + + Vector fieldCentricVector = new Vector(fieldX, fieldY); + + driveAuto(fieldCentricVector, rightX); + } } diff --git a/src/main/java/frc/robot/tools/SwerveModule.java b/src/main/java/frc/robot/tools/SwerveModule.java index c5e1a53..8d032bb 100644 --- a/src/main/java/frc/robot/tools/SwerveModule.java +++ b/src/main/java/frc/robot/tools/SwerveModule.java @@ -19,17 +19,19 @@ import edu.wpi.first.math.kinematics.SwerveModulePosition; public class SwerveModule { - private static final double SPEED_DEADBAND = 1e-3; + private static final double minSpeed = 1e-3; private final TalonFX motorDrive; private final TalonFX motorTurn; private final CANcoder motorEncoder; private final Vector turnVector; private final double wheelCircumference = Constants.Physical.WHEEL_CIRCUMFERENCE; - private final PID turnPID = new PID(0.01, 0.0, 0.0); private final PositionTorqueCurrentFOC positionTorqueFOCRequest = new PositionTorqueCurrentFOC(0); private final VelocityTorqueCurrentFOC velocityTorqueFOCRequest = new VelocityTorqueCurrentFOC(0); private int moduleIndex; private double lastTargetRad = 0.0; + private double moduleOffsetX; + private double moduleOffsetY; + private double offset = 0.6096 / 2; public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int index) { this.motorDrive = driveMotor; @@ -41,27 +43,31 @@ public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int double c = 1.0 / Math.sqrt(2); switch (index) { case 1: + moduleOffsetX = offset; + moduleOffsetY = offset; turnVector.setI(c); turnVector.setJ(c); break; case 2: + moduleOffsetX = -offset; + moduleOffsetY = offset; turnVector.setI(-c); turnVector.setJ(c); break; case 3: + moduleOffsetX = -offset; + moduleOffsetY = -offset; turnVector.setI(-c); turnVector.setJ(-c); break; case 4: + moduleOffsetX = offset; + moduleOffsetY = -offset; turnVector.setI(c); turnVector.setJ(-c); break; } - turnPID.setContinuous(true); - turnPID.setMinInput(0); - turnPID.setMaxInput(360); - TalonFXConfiguration angleMotorConfig = new TalonFXConfiguration(); TalonFXConfiguration driveMotorConfig = new TalonFXConfiguration(); @@ -123,26 +129,34 @@ public double findClosestAngle(double angleA, double angleB) { return (diff + Math.PI) % (2 * Math.PI) - Math.PI; } - public void drive(Vector driveVector, double turnInput) { - double vx = driveVector.getI() + turnInput * turnVector.getI(); - double vy = driveVector.getJ() + turnInput * turnVector.getJ(); - double speed = Math.hypot(vx, vy); + public void drive(Vector driveVector, double turnInput, double navxAngle) { + double vx = driveVector.getI(); + double vy = driveVector.getJ(); + + double rotationalVx = turnInput * turnVector.getI(); + double rotationalVy = turnInput * turnVector.getJ(); + + double totalVx = vx + rotationalVx; + double totalVy = vy + rotationalVy; + + double speed = Math.hypot(totalVx, totalVy); + double angle = Math.atan2(totalVy, totalVx); + + double absAngleRad = motorEncoder.getAbsolutePosition().getValueAsDouble() * 2 * Math.PI; double targetRad; - if (speed > SPEED_DEADBAND) { - double deg = Math.toDegrees(Math.atan2(vy, vx)); - if (deg < 0) - deg += 360; - double desiredRad = Math.toRadians(deg); - double currentAbsRad = motorEncoder.getAbsolutePosition().getValueAsDouble() * 2 * Math.PI; - double noFlip = findClosestAngle(currentAbsRad, desiredRad); - double flip = findClosestAngle(currentAbsRad, desiredRad + Math.PI); + if (speed > minSpeed) { + if (angle < 0) + angle += 2 * Math.PI; + + double noFlip = findClosestAngle(absAngleRad, angle); + double flip = findClosestAngle(absAngleRad, angle + Math.PI); if (Math.abs(flip) < Math.abs(noFlip)) { - targetRad = currentAbsRad + flip; + targetRad = absAngleRad + flip; speed = -speed; } else { - targetRad = currentAbsRad + noFlip; + targetRad = absAngleRad + noFlip; } lastTargetRad = targetRad; @@ -153,15 +167,71 @@ public void drive(Vector driveVector, double turnInput) { setSpeed(speed * Constants.Physical.TOP_SPEED); - double desiredRevs = targetRad / (2 * Math.PI); - double currentMotorRevs = motorTurn.getPosition().getValueAsDouble(); + double currentRevs = motorTurn.getPosition().getValueAsDouble(); + double diffRad = findClosestAngle(absAngleRad, targetRad); + double deltaRevs = diffRad / (2 * Math.PI); - double diffRevs = findClosestAngle( - motorEncoder.getAbsolutePosition().getValueAsDouble() * 2 * Math.PI, - desiredRevs * 2 * Math.PI) / (2 * Math.PI); + motorTurn.setControl(positionTorqueFOCRequest.withPosition(currentRevs + deltaRevs)); + } - double targetRevs = currentMotorRevs + diffRevs; - motorTurn.setControl(positionTorqueFOCRequest.withPosition(targetRevs)); + // public void drive(Vector vector, double turnValue, double navxAngle) { + // if (Math.abs(vector.getI()) < 0.001 && Math.abs(vector.getJ()) < 0.001 && + // Math.abs(turnValue) < 0.01) { + // // stop both motors + // motorDrive.setControl(velocityTorqueFOCRequest.withVelocity(0.0)); + // motorTurn.setControl(velocityTorqueFOCRequest.withVelocity(0.0)); + // } else { + // // desired translation + // double angleWanted = Math.atan2(vector.getJ(), vector.getI()); + // double wheelPower = Math.hypot(vector.getI(), vector.getJ()); + + // // field-centric adjustment + // double angleWithNavx = angleWanted + navxAngle; + // double xWithNavx = wheelPower * Math.cos(angleWithNavx); + // double yWithNavx = wheelPower * Math.sin(angleWithNavx); + + // // rotation component (torqueAngle assumed to be current wheel angle) + // double torqueAng = getEncoder(); + // double turnX = turnValue * Constants.angleToUnitVectorI(torqueAng); + // double turnY = turnValue * Constants.angleToUnitVectorJ(torqueAng); + + // // combine translation + rotation + // Vector finalVector = new Vector(xWithNavx + turnX, yWithNavx + turnY); + + // double finalAngle = -Math.atan2(finalVector.getJ(), finalVector.getI()); + // double finalVelocity = Math.hypot(finalVector.getI(), finalVector.getJ()); + + // // cap speed + // if (finalVelocity > Constants.Physical.TOP_SPEED) { + // finalVelocity = Constants.Physical.TOP_SPEED; + // } + + // double velocityRPS = MPSToRPS(finalVelocity); + + // // optimize wheel movement + // double currentAngle = getEncoder() % (2 * Math.PI); + // double setpoint = findClosestAngle(currentAngle, finalAngle); + // double setpointFlipped = findClosestAngle(currentAngle, finalAngle + + // Math.PI); + + // double angleDiff = Math.abs(currentAngle - finalAngle); + // double adjustedVelocity = Math.cos(angleDiff) * velocityRPS; + + // if (Math.abs(setpoint) <= Math.abs(setpointFlipped)) { + // motorTurn.setControl(positionTorqueFOCRequest.withPosition(currentAngle + + // setpoint)); + // } else { + // motorTurn.setControl(positionTorqueFOCRequest.withPosition(currentAngle + + // setpointFlipped)); + // } + // } + // } + + private double MPSToRPS(double mps) { + // convert meters per second to motor revolutions per second + double wheelCirc = Constants.Physical.WHEEL_CIRCUMFERENCE; + double wheelRPS = mps / wheelCirc; + return wheelRPS * Constants.Ratios.DRIVE_GEAR_RATIO; } private void setSpeed(double velocity) { @@ -205,7 +275,6 @@ public double getAngle() { public void stop() { motorDrive.set(0); motorTurn.stopMotor(); - turnPID.setSetPoint(getAngle()); } public void periodic() { From 796257f5f31a69f3af30980bf730780917c7014f Mon Sep 17 00:00:00 2001 From: Dhairya Trivedi <140292400+Dhairya-exe@users.noreply.github.com> Date: Sat, 19 Jul 2025 13:59:22 -0600 Subject: [PATCH 4/9] fully working swerve drive --- src/main/java/frc/robot/Constants.java | 4 +- src/main/java/frc/robot/subsystems/Drive.java | 51 +++++++++++-------- .../java/frc/robot/tools/SwerveModule.java | 40 ++++++++++++--- 3 files changed, 65 insertions(+), 30 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index a55d50e..388c30f 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -4117,8 +4117,8 @@ public static final class CANInfo { public static final class OperatorConstants { public static final double RIGHT_TRIGGER_DEADZONE = 0.1; public static final double LEFT_TRIGGER_DEADZONE = 0.1; - public static final double LEFT_STICK_DEADZONE = 0.05; - public static final double RIGHT_STICK_DEADZONE = 0.1; + public static final double LEFT_STICK_DEADZONE = 0.03; + public static final double RIGHT_STICK_DEADZONE = 0.05; } /** diff --git a/src/main/java/frc/robot/subsystems/Drive.java b/src/main/java/frc/robot/subsystems/Drive.java index a41f180..26a65f4 100644 --- a/src/main/java/frc/robot/subsystems/Drive.java +++ b/src/main/java/frc/robot/subsystems/Drive.java @@ -25,6 +25,7 @@ public class Drive extends SubsystemBase { public static Pose2d m_pose = new Pose2d(); private final PID xPID = new PID(0.01, 0.0, 0.0); private final PID yPID = new PID(0.01, 0.0, 0.0); + private final double offset = 0.6096 / 2; public Drive() { driveMotor1 = new TalonFX(1, "Canivore"); @@ -46,10 +47,10 @@ public Drive() { swerve4 = new SwerveModule(driveMotor4, turnMotor4, encoder4, 4); var kinematics = new SwerveDriveKinematics( - new Translation2d(0.6096, 0.6096), - new Translation2d(0.6096, -0.6096), - new Translation2d(-0.6096, 0.6096), - new Translation2d(-0.6096, -0.6096)); + new Translation2d(offset, offset), + new Translation2d(offset, -offset), + new Translation2d(-offset, offset), + new Translation2d(-offset, -offset)); odometry = new SwerveDriveOdometry( kinematics, peripherals.getRotation2d(), @@ -64,11 +65,11 @@ public Drive() { } public double getX() { - return m_pose.getX() * -0.82; + return m_pose.getX(); } public double getY() { - return m_pose.getY() * -0.78; + return m_pose.getY(); } public double getAngle() { @@ -151,34 +152,44 @@ public void teleopDrive() { peripherals.zeroPigeon(); } - double leftX = OI.getDriverLeftY(); - double leftY = -OI.getDriverLeftX(); - double rightX = OI.getDriverRightX() * 0.65; + double leftX = -OI.getDriverLeftY(); + double leftY = OI.getDriverLeftX(); + double rightX = OI.getDriverRightX() * 0.3; - if (Math.abs(leftX) < 0.1) { + double originalY = -(Math.copySign(leftY * leftY, leftY)); + double originalX = -(Math.copySign(leftX * leftX, leftX)); + + if (Math.abs(leftX) < 0.03) { leftX = 0; } - if (Math.abs(leftY) < 0.1) { + + if (Math.abs(leftY) < 0.03) { leftY = 0; } - if (Math.abs(rightX) < 0.1) { + + if (Math.abs(rightX) < 0.03) { rightX = 0; } - Vector driveVector = new Vector(leftX, leftY); + Vector driveVector = new Vector(originalX, originalY); if (driveVector.magnitude() > 1.0) { driveVector = driveVector.scaled(1.0 / driveVector.magnitude()); } - double angleDeg = peripherals.getPigeonAngle(); - double angleRad = Math.toRadians(angleDeg); - double cosA = Math.cos(angleRad); - double sinA = Math.sin(angleRad); + Vector fieldCentricVector; + if (driveVector.magnitude() > 0) { + double angleDeg = peripherals.getPigeonAngle(); + double angleRad = Math.toRadians(angleDeg); + double cosA = Math.cos(angleRad); + double sinA = Math.sin(angleRad); - double fieldX = driveVector.getI() * cosA - driveVector.getJ() * sinA; - double fieldY = driveVector.getI() * sinA + driveVector.getJ() * cosA; + double fieldX = driveVector.getI() * cosA - driveVector.getJ() * sinA; + double fieldY = driveVector.getI() * sinA + driveVector.getJ() * cosA; - Vector fieldCentricVector = new Vector(fieldX, fieldY); + fieldCentricVector = new Vector(fieldX, fieldY); + } else { + fieldCentricVector = new Vector(0, 0); + } driveAuto(fieldCentricVector, rightX); } diff --git a/src/main/java/frc/robot/tools/SwerveModule.java b/src/main/java/frc/robot/tools/SwerveModule.java index 8d032bb..d2a620b 100644 --- a/src/main/java/frc/robot/tools/SwerveModule.java +++ b/src/main/java/frc/robot/tools/SwerveModule.java @@ -93,7 +93,7 @@ public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int angleMotorConfig.Feedback.SensorToMechanismRatio = 1.0; angleMotorConfig.Feedback.RotorToSensorRatio = Constants.Ratios.STEER_GEAR_RATIO; - driveMotorConfig.Slot0.kP = 8.0; + driveMotorConfig.Slot0.kP = 9.6; driveMotorConfig.Slot0.kI = 0.0; driveMotorConfig.Slot0.kD = 0.0; driveMotorConfig.Slot0.kV = 0.0; @@ -104,6 +104,8 @@ public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int driveMotorConfig.CurrentLimits.SupplyCurrentLimitEnable = true; driveMotorConfig.CurrentLimits.StatorCurrentLimit = 120; driveMotorConfig.CurrentLimits.SupplyCurrentLimit = 120; + driveMotorConfig.Feedback.RotorToSensorRatio = 1; + driveMotorConfig.Feedback.SensorToMechanismRatio = Constants.Ratios.DRIVE_GEAR_RATIO; driveMotorConfig.MotorOutput.NeutralMode = NeutralModeValue.Brake; @@ -124,11 +126,6 @@ public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int } - public double findClosestAngle(double angleA, double angleB) { - double diff = angleB - angleA; - return (diff + Math.PI) % (2 * Math.PI) - Math.PI; - } - public void drive(Vector driveVector, double turnInput, double navxAngle) { double vx = driveVector.getI(); double vy = driveVector.getJ(); @@ -146,8 +143,10 @@ public void drive(Vector driveVector, double turnInput, double navxAngle) { double targetRad; if (speed > minSpeed) { - if (angle < 0) + while (angle < 0) angle += 2 * Math.PI; + while (angle >= 2 * Math.PI) + angle -= 2 * Math.PI; double noFlip = findClosestAngle(absAngleRad, angle); double flip = findClosestAngle(absAngleRad, angle + Math.PI); @@ -166,14 +165,32 @@ public void drive(Vector driveVector, double turnInput, double navxAngle) { } setSpeed(speed * Constants.Physical.TOP_SPEED); - + org.littletonrobotics.junction.Logger.recordOutput("Speed", speed * Constants.Physical.TOP_SPEED); + org.littletonrobotics.junction.Logger.recordOutput("Current Speed", + motorDrive.getVelocity().getValueAsDouble()); double currentRevs = motorTurn.getPosition().getValueAsDouble(); double diffRad = findClosestAngle(absAngleRad, targetRad); double deltaRevs = diffRad / (2 * Math.PI); + final double MAX_DELTA_REVS = 0.5; + if (Math.abs(deltaRevs) > MAX_DELTA_REVS) { + deltaRevs = Math.signum(deltaRevs) * MAX_DELTA_REVS; + } + motorTurn.setControl(positionTorqueFOCRequest.withPosition(currentRevs + deltaRevs)); } + private double findClosestAngle(double currentAngle, double targetAngle) { + double diff = targetAngle - currentAngle; + + while (diff > Math.PI) + diff -= 2 * Math.PI; + while (diff < -Math.PI) + diff += 2 * Math.PI; + + return diff; + } + // public void drive(Vector vector, double turnValue, double navxAngle) { // if (Math.abs(vector.getI()) < 0.001 && Math.abs(vector.getJ()) < 0.001 && // Math.abs(turnValue) < 0.01) { @@ -234,6 +251,13 @@ private double MPSToRPS(double mps) { return wheelRPS * Constants.Ratios.DRIVE_GEAR_RATIO; } + private double RPSToMPS(double rps) { + + double wheelCirc = Constants.Physical.WHEEL_CIRCUMFERENCE; + double wheelRPS = rps / wheelCirc; + return wheelRPS * Constants.Ratios.DRIVE_GEAR_RATIO; + } + private void setSpeed(double velocity) { motorDrive.setControl(velocityTorqueFOCRequest.withVelocity(wheelToDriveMotorRotations(velocity))); } From c8f667b31b152b3adb72d64f99f3c2c188b7af12 Mon Sep 17 00:00:00 2001 From: Dhairya Trivedi <140292400+Dhairya-exe@users.noreply.github.com> Date: Wed, 23 Jul 2025 14:43:59 -0600 Subject: [PATCH 5/9] added states and working on path_to_point state --- src/main/java/frc/robot/Constants.java | 2 +- src/main/java/frc/robot/Robot.java | 14 +- src/main/java/frc/robot/RobotContainer.java | 2 + src/main/java/frc/robot/subsystems/Drive.java | 189 +++++++++++++++--- .../frc/robot/subsystems/Superstructure.java | 110 ++++++++++ .../java/frc/robot/tools/SwerveModule.java | 16 +- 6 files changed, 301 insertions(+), 32 deletions(-) create mode 100644 src/main/java/frc/robot/subsystems/Superstructure.java diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 388c30f..0d47651 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -3559,7 +3559,7 @@ public static final class Physical { public static final double ROBOT_LENGTH = inchesToMeters(26); public static final double ROBOT_WIDTH = inchesToMeters(26); - public static final double MODULE_OFFSET = inchesToMeters(2.5); + public static final double MODULE_OFFSET = inchesToMeters(2.625); public static final double ROBOT_RADIUS = Math.hypot(ROBOT_LENGTH / 2 - WHEEL_TO_FRAME_DISTANCE, ROBOT_WIDTH / 2 - WHEEL_TO_FRAME_DISTANCE); public static double INTAKE_X_OFFSET_FRONT = inchesToMeters(23.8); diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 97496e6..244b9c3 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -18,6 +18,9 @@ import frc.robot.commands.FollowPath; import frc.robot.subsystems.Drive; import frc.robot.subsystems.Peripherals; +import frc.robot.subsystems.Superstructure; +import frc.robot.subsystems.Drive.DriveState; +import frc.robot.subsystems.Superstructure.SuperState; import frc.robot.tools.PathLoader; import frc.robot.tools.PathLoader.PosePoint; import frc.robot.tools.math.Vector; @@ -26,7 +29,7 @@ public class Robot extends LoggedRobot { private final RobotContainer m_robotContainer; private final Drive drive; private final Peripherals peripherals; - private final TalonFX testMotor; + private final Superstructure superstructure; private double setAngle = 0; private Command m_autonomousCommand; PathLoader path = new PathLoader(); @@ -49,7 +52,7 @@ public Robot() { m_robotContainer = new RobotContainer(); drive = m_robotContainer.drive; peripherals = m_robotContainer.peripherals; - testMotor = new TalonFX(4); + superstructure = m_robotContainer.superstructure; } @@ -92,11 +95,16 @@ public void teleopInit() { if (m_autonomousCommand != null) { m_autonomousCommand.cancel(); } + superstructure.setWantedState(SuperState.DEFAULT); + } @Override public void teleopPeriodic() { - drive.teleopDrive(); + superstructure.periodic(); + if (OI.driverB.getAsBoolean()) { + superstructure.setWantedState(SuperState.PATH_TO_POINT); + } } @Override diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 563ad76..017ade2 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -3,6 +3,7 @@ import frc.robot.subsystems.Drive; import frc.robot.subsystems.ExampleSubsystem; import frc.robot.subsystems.Peripherals; +import frc.robot.subsystems.Superstructure; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.button.CommandXboxController; import edu.wpi.first.wpilibj2.command.button.Trigger; @@ -11,6 +12,7 @@ public class RobotContainer { private final ExampleSubsystem exampleSubsystem = new ExampleSubsystem(); public final Drive drive = new Drive(); public final Peripherals peripherals = new Peripherals(); + public final Superstructure superstructure = new Superstructure(drive, peripherals); private Command autonomousCommand; public RobotContainer() { diff --git a/src/main/java/frc/robot/subsystems/Drive.java b/src/main/java/frc/robot/subsystems/Drive.java index 26a65f4..fe27c47 100644 --- a/src/main/java/frc/robot/subsystems/Drive.java +++ b/src/main/java/frc/robot/subsystems/Drive.java @@ -1,5 +1,7 @@ package frc.robot.subsystems; +import javax.lang.model.util.ElementScanner14; + import org.littletonrobotics.junction.Logger; import com.ctre.phoenix6.hardware.CANcoder; import com.ctre.phoenix6.hardware.TalonFX; @@ -9,8 +11,10 @@ import edu.wpi.first.math.kinematics.SwerveDriveKinematics; import edu.wpi.first.math.kinematics.SwerveDriveOdometry; import edu.wpi.first.math.kinematics.SwerveModulePosition; +import edu.wpi.first.units.measure.Angle; import edu.wpi.first.wpilibj2.command.SubsystemBase; import frc.robot.tools.math.Vector; +import frc.robot.Constants; import frc.robot.OI; import frc.robot.tools.SwerveModule; import frc.robot.tools.math.PID; @@ -19,23 +23,48 @@ public class Drive extends SubsystemBase { private final Peripherals peripherals = new Peripherals(); public final TalonFX driveMotor1, driveMotor2, driveMotor3, driveMotor4; public final TalonFX turnMotor1, turnMotor2, turnMotor3, turnMotor4; + Superstructure superstructure; public final CANcoder encoder1, encoder2, encoder3, encoder4; private final SwerveModule swerve1, swerve2, swerve3, swerve4; private final SwerveDriveOdometry odometry; public static Pose2d m_pose = new Pose2d(); - private final PID xPID = new PID(0.01, 0.0, 0.0); - private final PID yPID = new PID(0.01, 0.0, 0.0); private final double offset = 0.6096 / 2; + public boolean atPosition = false; + + private boolean startedPathToPoint = false; + + private PID xPID = new PID(1.5, 0, 3); + private PID yPID = new PID(1.5, 0, 3); + private PID yawPID = new PID(2, 0, 2.9); + + double targetX = 0; + double targetY = 0; + double targetAngle = 0; + + public enum DriveState { + DEFAULT, + PATH_TO_POINT, + IDLE + } + + private DriveState wantedState = DriveState.IDLE; + private DriveState systemState = DriveState.IDLE; public Drive() { + // xPID.setPID(0.9, 0, 0); + // yPID.setPID(0.9, 0, 0); + // yawPID.setPID(2.9, 0, 2); + driveMotor1 = new TalonFX(1, "Canivore"); driveMotor2 = new TalonFX(4, "Canivore"); driveMotor3 = new TalonFX(6, "Canivore"); driveMotor4 = new TalonFX(8, "Canivore"); + turnMotor1 = new TalonFX(2, "Canivore"); turnMotor2 = new TalonFX(3, "Canivore"); turnMotor3 = new TalonFX(5, "Canivore"); turnMotor4 = new TalonFX(7, "Canivore"); + encoder1 = new CANcoder(1, "Canivore"); encoder2 = new CANcoder(2, "Canivore"); encoder3 = new CANcoder(3, "Canivore"); @@ -64,6 +93,42 @@ public Drive() { } + public void setWantedState(DriveState wantedState) { + this.wantedState = wantedState; + } + + private DriveState handleStateTransition() { + switch (wantedState) { + case DEFAULT: + if (systemState == DriveState.PATH_TO_POINT) { + startedPathToPoint = false; + atPosition = false; + } + return DriveState.DEFAULT; + case IDLE: + return DriveState.IDLE; + case PATH_TO_POINT: + if (systemState != DriveState.PATH_TO_POINT) { + startedPathToPoint = false; + atPosition = false; + } + + if (systemState == DriveState.PATH_TO_POINT && startedPathToPoint) { + boolean posClose = Math.abs(xPID.getError()) < 0.03 + && Math.abs(yPID.getError()) < 0.03; + boolean angleClose = Math.abs(yawPID.getError()) < 1.0; + + if (posClose && angleClose) { + atPosition = true; + return DriveState.DEFAULT; + } + } + return DriveState.PATH_TO_POINT; + default: + return DriveState.IDLE; + } + } + public double getX() { return m_pose.getX(); } @@ -92,22 +157,6 @@ public void stop() { swerve4.stop(); } - @Override - public void periodic() { - m_pose = odometry.update( - peripherals.getRotation2d(), - new SwerveModulePosition[] { - swerve2.getPosition(), - swerve1.getPosition(), - swerve3.getPosition(), - swerve4.getPosition() - }); - Logger.recordOutput("Robot X", m_pose.getX()); - Logger.recordOutput("Robot Y", m_pose.getY()); - Logger.recordOutput("Robot Angle", m_pose.getRotation().getDegrees()); - Logger.recordOutput("Robot Pose", getPose2D()); - } - public void drive(double leftx, double lefty, double rightx, double yaw) { double leftX = lefty; double leftY = -leftX; @@ -152,9 +201,9 @@ public void teleopDrive() { peripherals.zeroPigeon(); } - double leftX = -OI.getDriverLeftY(); - double leftY = OI.getDriverLeftX(); - double rightX = OI.getDriverRightX() * 0.3; + double leftX = OI.getDriverLeftY(); + double leftY = -OI.getDriverLeftX(); + double rightX = Math.abs(OI.getDriverRightX()) < 0.03 ? 0 : OI.getDriverRightX() * 0.15; double originalY = -(Math.copySign(leftY * leftY, leftY)); double originalX = -(Math.copySign(leftX * leftX, leftX)); @@ -191,6 +240,100 @@ public void teleopDrive() { fieldCentricVector = new Vector(0, 0); } - driveAuto(fieldCentricVector, rightX); + driveAuto(fieldCentricVector, -rightX); + } + + public void updateOdometry() { + m_pose = odometry.update( + peripherals.getRotation2d(), + new SwerveModulePosition[] { + swerve2.getPosition(), + swerve1.getPosition(), + swerve3.getPosition(), + swerve4.getPosition() + }); + Logger.recordOutput("Robot X", m_pose.getX()); + Logger.recordOutput("Robot Y", m_pose.getY()); + Logger.recordOutput("Robot Angle", m_pose.getRotation().getDegrees()); + Logger.recordOutput("Robot Pose", getPose2D()); + + } + + public void goToPoint(double xOffset, double yOffset) { + wantedState = DriveState.PATH_TO_POINT; + } + + public boolean getAtPosition() { + return atPosition; + } + + @Override + public void periodic() { + updateOdometry(); + + DriveState newState = handleStateTransition(); + + if (newState != systemState) { + systemState = newState; + } + + switch (systemState) { + case DEFAULT: + teleopDrive(); + break; + case PATH_TO_POINT: + if (!startedPathToPoint) { + + targetX = getX() + 0.3; + targetY = getY() + 0.3; + targetAngle = getAngle(); + + yawPID.setMinInput(-180); + yawPID.setMaxInput(180); + yawPID.setContinuous(true); + + xPID.setMinOutput(-3.0); + xPID.setMaxOutput(3.0); + + yPID.setMinOutput(-3.0); + yPID.setMaxOutput(3.0); + + yawPID.setMinOutput(-0.5); + yawPID.setMaxOutput(0.5); + + xPID.setSetPoint(targetX); + yPID.setSetPoint(targetY); + yawPID.setSetPoint(targetAngle); + + startedPathToPoint = true; + } + + double xOut = xPID.updatePID(getX()) / 2.0; + double yOut = -yPID.updatePID(getY()) / 2.0; + double turnOut = -yawPID.updatePID(getAngle()) / 8.0; + + Logger.recordOutput("xPID Error", xPID.getError()); + Logger.recordOutput("yPID Error", yPID.getError()); + Logger.recordOutput("Yaw Error", yawPID.getError()); + + boolean posClose = Math.abs(xPID.getError()) < 0.03 + && Math.abs(yPID.getError()) < 0.03; + boolean angleClose = Math.abs(yawPID.getError()) < 1.0; + + Logger.recordOutput("Pos Close", posClose); + Logger.recordOutput("Angle Close", angleClose); + + if (posClose && angleClose) { + System.out.println("Path to point complete - switching to DEFAULT state"); + } else { + atPosition = false; + autoDrive(new Vector(xOut, yOut), turnOut); + } + break; + case IDLE: + break; + default: + break; + } } -} +} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/Superstructure.java b/src/main/java/frc/robot/subsystems/Superstructure.java new file mode 100644 index 0000000..c5233f1 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Superstructure.java @@ -0,0 +1,110 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.subsystems; + +import edu.wpi.first.wpilibj2.command.SubsystemBase; +import frc.robot.Robot; +import frc.robot.subsystems.Drive.DriveState; + +public class Superstructure extends SubsystemBase { + /** Creates a new Superstructure. */ + public enum SuperState { + DEFAULT, + PATH_TO_POINT, + IDLE + } + + private SuperState wantedSuperState = SuperState.IDLE; + private SuperState currentSuperState = SuperState.IDLE; + private boolean pathCompleted = false; + + Drive drive; + Peripherals peripherals; + + public Superstructure(Drive driveSubsystem, Peripherals peripheralSubsystem) { + drive = driveSubsystem; + peripherals = peripheralSubsystem; + } + + public void setWantedState(SuperState wantedState) { + this.wantedSuperState = wantedState; + + if (wantedState == SuperState.PATH_TO_POINT) { + pathCompleted = false; + } + } + + public SuperState getCurrentSuperState() { + return currentSuperState; + } + + public void resetPathToPoint() { + pathCompleted = false; + if (currentSuperState == SuperState.DEFAULT && wantedSuperState == SuperState.DEFAULT) { + wantedSuperState = SuperState.IDLE; + currentSuperState = SuperState.IDLE; + } + } + + public boolean isPathCompleted() { + return pathCompleted; + } + + private void applyStates() { + switch (currentSuperState) { + case DEFAULT: + handleDefaultState(); + break; + case PATH_TO_POINT: + handlePathToPointState(); + break; + default: + handleIdleState(); + break; + } + } + + private SuperState handleStateTransitions() { + switch (wantedSuperState) { + case DEFAULT: + currentSuperState = SuperState.DEFAULT; + break; + case PATH_TO_POINT: + if (currentSuperState == SuperState.PATH_TO_POINT && drive.getAtPosition()) { + pathCompleted = true; + currentSuperState = SuperState.DEFAULT; + } else { + currentSuperState = SuperState.PATH_TO_POINT; + } + break; + default: + currentSuperState = SuperState.IDLE; + break; + } + return currentSuperState; + } + + public void handleDefaultState() { + drive.setWantedState(DriveState.DEFAULT); + } + + public void handlePathToPointState() { + if (!drive.getAtPosition()) { + drive.setWantedState(DriveState.PATH_TO_POINT); + } else { + drive.setWantedState(DriveState.DEFAULT); + } + } + + public void handleIdleState() { + + } + + @Override + public void periodic() { + currentSuperState = handleStateTransitions(); + applyStates(); + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/tools/SwerveModule.java b/src/main/java/frc/robot/tools/SwerveModule.java index d2a620b..61881a7 100644 --- a/src/main/java/frc/robot/tools/SwerveModule.java +++ b/src/main/java/frc/robot/tools/SwerveModule.java @@ -93,10 +93,17 @@ public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int angleMotorConfig.Feedback.SensorToMechanismRatio = 1.0; angleMotorConfig.Feedback.RotorToSensorRatio = Constants.Ratios.STEER_GEAR_RATIO; - driveMotorConfig.Slot0.kP = 9.6; - driveMotorConfig.Slot0.kI = 0.0; - driveMotorConfig.Slot0.kD = 0.0; - driveMotorConfig.Slot0.kV = 0.0; + if (index == 2 || index == 3) { + driveMotorConfig.Slot0.kP = 9.4; + driveMotorConfig.Slot0.kI = 0.0; + driveMotorConfig.Slot0.kD = 0.0; + driveMotorConfig.Slot0.kV = 0.0; + } else { + driveMotorConfig.Slot0.kP = 8.0; + driveMotorConfig.Slot0.kI = 0.0; + driveMotorConfig.Slot0.kD = 0.0; + driveMotorConfig.Slot0.kV = 0.0; + } driveMotorConfig.TorqueCurrent.PeakForwardTorqueCurrent = 120; driveMotorConfig.TorqueCurrent.PeakReverseTorqueCurrent = -120; @@ -298,7 +305,6 @@ public double getAngle() { public void stop() { motorDrive.set(0); - motorTurn.stopMotor(); } public void periodic() { From d10ae4b731bb7aa119f490f6902bd3cdee45007c Mon Sep 17 00:00:00 2001 From: Dhairya Trivedi <140292400+Dhairya-exe@users.noreply.github.com> Date: Wed, 23 Jul 2025 18:06:41 -0600 Subject: [PATCH 6/9] working state transitions --- src/main/java/frc/robot/subsystems/Drive.java | 30 +++++++------------ .../frc/robot/subsystems/Superstructure.java | 11 +++++-- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/main/java/frc/robot/subsystems/Drive.java b/src/main/java/frc/robot/subsystems/Drive.java index fe27c47..4f63ce7 100644 --- a/src/main/java/frc/robot/subsystems/Drive.java +++ b/src/main/java/frc/robot/subsystems/Drive.java @@ -31,11 +31,11 @@ public class Drive extends SubsystemBase { private final double offset = 0.6096 / 2; public boolean atPosition = false; - private boolean startedPathToPoint = false; + public boolean startedPathToPoint = false; private PID xPID = new PID(1.5, 0, 3); private PID yPID = new PID(1.5, 0, 3); - private PID yawPID = new PID(2, 0, 2.9); + private PID yawPID = new PID(0.001, 0, 0.00); double targetX = 0; double targetY = 0; @@ -51,10 +51,6 @@ public enum DriveState { private DriveState systemState = DriveState.IDLE; public Drive() { - // xPID.setPID(0.9, 0, 0); - // yPID.setPID(0.9, 0, 0); - // yawPID.setPID(2.9, 0, 2); - driveMotor1 = new TalonFX(1, "Canivore"); driveMotor2 = new TalonFX(4, "Canivore"); driveMotor3 = new TalonFX(6, "Canivore"); @@ -108,7 +104,7 @@ private DriveState handleStateTransition() { case IDLE: return DriveState.IDLE; case PATH_TO_POINT: - if (systemState != DriveState.PATH_TO_POINT) { + if (systemState == DriveState.DEFAULT) { startedPathToPoint = false; atPosition = false; } @@ -138,7 +134,7 @@ public double getY() { } public double getAngle() { - return m_pose.getRotation().getDegrees(); + return peripherals.getPigeonAngle(); } public Rotation2d getRotation2D() { @@ -166,11 +162,6 @@ public void drive(double leftx, double lefty, double rightx, double yaw) { if (driveVector.magnitude() > 1.0) { driveVector = driveVector.scaled(1.0 / driveVector.magnitude()); } - - // swerve1.drive(driveVector, rightX, yaw); - // swerve2.drive(driveVector, rightX, yaw); - // swerve3.drive(driveVector, rightX, yaw); - // swerve4.drive(driveVector, rightX, yaw); } public void driveAuto(Vector driveVector, double turn) { @@ -184,7 +175,7 @@ public void autoDrive(Vector fieldVector, double targetYawDegrees) { double vx = fieldVector.getI(); double vy = -fieldVector.getJ(); - double headingRad = Math.toRadians(m_pose.getRotation().getDegrees()); + double headingRad = Math.toRadians(getAngle()); double cosA = Math.cos(-headingRad); double sinA = Math.sin(-headingRad); @@ -197,6 +188,7 @@ public void autoDrive(Vector fieldVector, double targetYawDegrees) { } public void teleopDrive() { + startedPathToPoint = false; if (OI.getDriverA()) { peripherals.zeroPigeon(); } @@ -284,9 +276,9 @@ public void periodic() { case PATH_TO_POINT: if (!startedPathToPoint) { - targetX = getX() + 0.3; - targetY = getY() + 0.3; - targetAngle = getAngle(); + targetX = getX(); + targetY = getY(); + targetAngle = 90; yawPID.setMinInput(-180); yawPID.setMaxInput(180); @@ -310,7 +302,7 @@ public void periodic() { double xOut = xPID.updatePID(getX()) / 2.0; double yOut = -yPID.updatePID(getY()) / 2.0; - double turnOut = -yawPID.updatePID(getAngle()) / 8.0; + double turnOut = -yawPID.updatePID(getAngle()); Logger.recordOutput("xPID Error", xPID.getError()); Logger.recordOutput("yPID Error", yPID.getError()); @@ -320,11 +312,11 @@ public void periodic() { && Math.abs(yPID.getError()) < 0.03; boolean angleClose = Math.abs(yawPID.getError()) < 1.0; + Logger.recordOutput("YawPID Input", getAngle()); Logger.recordOutput("Pos Close", posClose); Logger.recordOutput("Angle Close", angleClose); if (posClose && angleClose) { - System.out.println("Path to point complete - switching to DEFAULT state"); } else { atPosition = false; autoDrive(new Vector(xOut, yOut), turnOut); diff --git a/src/main/java/frc/robot/subsystems/Superstructure.java b/src/main/java/frc/robot/subsystems/Superstructure.java index c5233f1..3cf5332 100644 --- a/src/main/java/frc/robot/subsystems/Superstructure.java +++ b/src/main/java/frc/robot/subsystems/Superstructure.java @@ -4,6 +4,8 @@ package frc.robot.subsystems; +import javax.lang.model.util.ElementScanner14; + import edu.wpi.first.wpilibj2.command.SubsystemBase; import frc.robot.Robot; import frc.robot.subsystems.Drive.DriveState; @@ -18,7 +20,7 @@ public enum SuperState { private SuperState wantedSuperState = SuperState.IDLE; private SuperState currentSuperState = SuperState.IDLE; - private boolean pathCompleted = false; + private boolean pathCompleted = false; Drive drive; Peripherals peripherals; @@ -72,8 +74,11 @@ private SuperState handleStateTransitions() { currentSuperState = SuperState.DEFAULT; break; case PATH_TO_POINT: - if (currentSuperState == SuperState.PATH_TO_POINT && drive.getAtPosition()) { - pathCompleted = true; + if (currentSuperState != SuperState.PATH_TO_POINT) { + drive.atPosition = false; + currentSuperState = SuperState.PATH_TO_POINT; + } else if (drive.atPosition) { + wantedSuperState = SuperState.DEFAULT; currentSuperState = SuperState.DEFAULT; } else { currentSuperState = SuperState.PATH_TO_POINT; From e8c208eb898a9c3ad49d1937cc55f5a6ede3b956 Mon Sep 17 00:00:00 2001 From: Dhairya Trivedi <140292400+Dhairya-exe@users.noreply.github.com> Date: Fri, 1 Aug 2025 20:09:15 -0600 Subject: [PATCH 7/9] working drive code, with working state machine --- src/main/java/frc/robot/Robot.java | 5 + .../java/frc/robot/commands/DriveToPoint.java | 2 +- .../java/frc/robot/commands/FollowPath.java | 8 +- .../java/frc/robot/commands/ZeroPigeon.java | 41 +++++ src/main/java/frc/robot/subsystems/Drive.java | 160 ++++++++++-------- .../frc/robot/subsystems/Peripherals.java | 1 - .../frc/robot/subsystems/Superstructure.java | 10 +- .../java/frc/robot/tools/SwerveModule.java | 24 ++- 8 files changed, 155 insertions(+), 96 deletions(-) create mode 100644 src/main/java/frc/robot/commands/ZeroPigeon.java diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 244b9c3..af37e86 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -16,6 +16,7 @@ import edu.wpi.first.wpilibj2.command.ParallelCommandGroup; import frc.robot.commands.DriveToPoint; import frc.robot.commands.FollowPath; +import frc.robot.commands.ZeroPigeon; import frc.robot.subsystems.Drive; import frc.robot.subsystems.Peripherals; import frc.robot.subsystems.Superstructure; @@ -80,6 +81,7 @@ public void disabledPeriodic() { @Override public void autonomousInit() { + superstructure.setWantedState(SuperState.PATH_TO_POINT); new ParallelCommandGroup(new FollowPath(autoPath, drive), new DriveToPoint(drive)) .schedule(); @@ -101,6 +103,9 @@ public void teleopInit() { @Override public void teleopPeriodic() { + if (OI.getDriverA()) { + CommandScheduler.getInstance().schedule(new ZeroPigeon(peripherals)); + } superstructure.periodic(); if (OI.driverB.getAsBoolean()) { superstructure.setWantedState(SuperState.PATH_TO_POINT); diff --git a/src/main/java/frc/robot/commands/DriveToPoint.java b/src/main/java/frc/robot/commands/DriveToPoint.java index 4fd2e43..78c02b7 100644 --- a/src/main/java/frc/robot/commands/DriveToPoint.java +++ b/src/main/java/frc/robot/commands/DriveToPoint.java @@ -29,7 +29,7 @@ public DriveToPoint(Drive drive) { yawPID.setMinInput(-0.5); yawPID.setMaxOutput(0.5); - // + addRequirements(driveSubsystem); } diff --git a/src/main/java/frc/robot/commands/FollowPath.java b/src/main/java/frc/robot/commands/FollowPath.java index 6ecaaa4..f8d32b7 100644 --- a/src/main/java/frc/robot/commands/FollowPath.java +++ b/src/main/java/frc/robot/commands/FollowPath.java @@ -9,6 +9,8 @@ import java.io.Console; import java.util.List; +import org.littletonrobotics.junction.Logger; + public class FollowPath extends Command { private final Drive drive; private final List points; @@ -35,9 +37,9 @@ public void execute() { PathLoader.PosePoint point = points.get(currentIndex); - org.littletonrobotics.junction.Logger.recordOutput("Points X", point.x); - org.littletonrobotics.junction.Logger.recordOutput("Points Y", point.y); - org.littletonrobotics.junction.Logger.recordOutput("Points Theta", point.theta); + Logger.recordOutput("Points X", point.x); + Logger.recordOutput("Points Y", point.y); + Logger.recordOutput("Points Theta", point.theta); Constants.x = point.x; Constants.y = point.y; diff --git a/src/main/java/frc/robot/commands/ZeroPigeon.java b/src/main/java/frc/robot/commands/ZeroPigeon.java new file mode 100644 index 0000000..41e9094 --- /dev/null +++ b/src/main/java/frc/robot/commands/ZeroPigeon.java @@ -0,0 +1,41 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.commands; + +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Peripherals; + +/* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */ +public class ZeroPigeon extends Command { + /** Creates a new ZeroPigeon. */ + Peripherals peripheralSubsystem; + + public ZeroPigeon(Peripherals peripherals) { + peripheralSubsystem = peripherals; + // Use addRequirements() here to declare subsystem dependencies. + } + + // Called when the command is initially scheduled. + @Override + public void initialize() { + peripheralSubsystem.zeroPigeon(); + } + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() { + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return true; + } +} diff --git a/src/main/java/frc/robot/subsystems/Drive.java b/src/main/java/frc/robot/subsystems/Drive.java index 4f63ce7..8b3a5be 100644 --- a/src/main/java/frc/robot/subsystems/Drive.java +++ b/src/main/java/frc/robot/subsystems/Drive.java @@ -33,9 +33,9 @@ public class Drive extends SubsystemBase { public boolean startedPathToPoint = false; - private PID xPID = new PID(1.5, 0, 3); - private PID yPID = new PID(1.5, 0, 3); - private PID yawPID = new PID(0.001, 0, 0.00); + private PID xPID = new PID(1.5, 0, 4.2); + private PID yPID = new PID(1.5, 0, 4.2); + private PID yawPID = new PID(0.004, 0, 0.011); double targetX = 0; double targetY = 0; @@ -87,6 +87,19 @@ public Drive() { }, new Pose2d()); + yawPID.setMinInput(-180); + yawPID.setMaxInput(180); + yawPID.setContinuous(true); + + xPID.setMinOutput(-3.0); + xPID.setMaxOutput(3.0); + + yPID.setMinOutput(-3.0); + yPID.setMaxOutput(3.0); + + yawPID.setMinOutput(-1); + yawPID.setMaxOutput(1); + } public void setWantedState(DriveState wantedState) { @@ -134,7 +147,7 @@ public double getY() { } public double getAngle() { - return peripherals.getPigeonAngle(); + return Math.toRadians(peripherals.getPigeonAngle()); } public Rotation2d getRotation2D() { @@ -164,18 +177,18 @@ public void drive(double leftx, double lefty, double rightx, double yaw) { } } - public void driveAuto(Vector driveVector, double turn) { - swerve1.drive(driveVector, turn, getAngle()); - swerve2.drive(driveVector, turn, getAngle()); - swerve3.drive(driveVector, turn, getAngle()); - swerve4.drive(driveVector, turn, getAngle()); + public void driveSwerve(Vector driveVector, double turn) { + swerve1.drive(driveVector, turn, Math.toDegrees(getAngle())); + swerve2.drive(driveVector, turn, Math.toDegrees(getAngle())); + swerve3.drive(driveVector, turn, Math.toDegrees(getAngle())); + swerve4.drive(driveVector, turn, Math.toDegrees(getAngle())); } public void autoDrive(Vector fieldVector, double targetYawDegrees) { double vx = fieldVector.getI(); double vy = -fieldVector.getJ(); - double headingRad = Math.toRadians(getAngle()); + double headingRad = getAngle(); double cosA = Math.cos(-headingRad); double sinA = Math.sin(-headingRad); @@ -184,22 +197,16 @@ public void autoDrive(Vector fieldVector, double targetYawDegrees) { Vector robotVector = new Vector(rx, ry); - driveAuto(robotVector, targetYawDegrees); + driveSwerve(robotVector, targetYawDegrees); } public void teleopDrive() { startedPathToPoint = false; - if (OI.getDriverA()) { - peripherals.zeroPigeon(); - } double leftX = OI.getDriverLeftY(); double leftY = -OI.getDriverLeftX(); double rightX = Math.abs(OI.getDriverRightX()) < 0.03 ? 0 : OI.getDriverRightX() * 0.15; - double originalY = -(Math.copySign(leftY * leftY, leftY)); - double originalX = -(Math.copySign(leftX * leftX, leftX)); - if (Math.abs(leftX) < 0.03) { leftX = 0; } @@ -212,6 +219,9 @@ public void teleopDrive() { rightX = 0; } + double originalY = -(Math.copySign(leftY * leftY, leftY)); + double originalX = -(Math.copySign(leftX * leftX, leftX)); + Vector driveVector = new Vector(originalX, originalY); if (driveVector.magnitude() > 1.0) { driveVector = driveVector.scaled(1.0 / driveVector.magnitude()); @@ -232,7 +242,7 @@ public void teleopDrive() { fieldCentricVector = new Vector(0, 0); } - driveAuto(fieldCentricVector, -rightX); + driveSwerve(fieldCentricVector, -rightX); } public void updateOdometry() { @@ -244,9 +254,9 @@ public void updateOdometry() { swerve3.getPosition(), swerve4.getPosition() }); - Logger.recordOutput("Robot X", m_pose.getX()); - Logger.recordOutput("Robot Y", m_pose.getY()); - Logger.recordOutput("Robot Angle", m_pose.getRotation().getDegrees()); + Logger.recordOutput("Robot X", getX()); + Logger.recordOutput("Robot Y", getY()); + Logger.recordOutput("Robot Angle", getAngle()); Logger.recordOutput("Robot Pose", getPose2D()); } @@ -259,68 +269,82 @@ public boolean getAtPosition() { return atPosition; } - @Override - public void periodic() { - updateOdometry(); + public void moveToPoint(double targetX, double targetY, double targetAngle) { + xPID.setSetPoint(targetX); + yPID.setSetPoint(targetY); + yawPID.setSetPoint(targetAngle); - DriveState newState = handleStateTransition(); + startedPathToPoint = true; - if (newState != systemState) { - systemState = newState; - } + double xOut = xPID.updatePID(getX()) / 1.0; + double yOut = -yPID.updatePID(getY()) / 1.0; + double turnOut = -yawPID.updatePID(Math.toDegrees(getAngle())); - switch (systemState) { - case DEFAULT: - teleopDrive(); - break; - case PATH_TO_POINT: - if (!startedPathToPoint) { + Logger.recordOutput("xPID Error", xPID.getError()); + Logger.recordOutput("yPID Error", yPID.getError()); + Logger.recordOutput("Yaw Error", yawPID.getError()); - targetX = getX(); - targetY = getY(); - targetAngle = 90; + boolean posClose = Math.abs(xPID.getError()) < 0.03 + && Math.abs(yPID.getError()) < 0.03; + boolean angleClose = Math.abs(yawPID.getError()) < 1.0; - yawPID.setMinInput(-180); - yawPID.setMaxInput(180); - yawPID.setContinuous(true); + Logger.recordOutput("YawPID Input", Math.toDegrees(getAngle())); + Logger.recordOutput("Pos Close", posClose); + Logger.recordOutput("Angle Close", angleClose); - xPID.setMinOutput(-3.0); - xPID.setMaxOutput(3.0); + if (posClose && angleClose) { + } else { + atPosition = false; + autoDrive(new Vector(xOut, yOut), turnOut); + } + } - yPID.setMinOutput(-3.0); - yPID.setMaxOutput(3.0); + public void moveToPoint() { + xPID.setSetPoint(Constants.x); + yPID.setSetPoint(Constants.y); + yawPID.setSetPoint(Constants.angle); - yawPID.setMinOutput(-0.5); - yawPID.setMaxOutput(0.5); + startedPathToPoint = true; - xPID.setSetPoint(targetX); - yPID.setSetPoint(targetY); - yawPID.setSetPoint(targetAngle); + double xOut = xPID.updatePID(getX()) / 1.0; + double yOut = -yPID.updatePID(getY()) / 1.0; + double turnOut = -yawPID.updatePID(Math.toDegrees(getAngle())); - startedPathToPoint = true; - } + Logger.recordOutput("xPID Error", xPID.getError()); + Logger.recordOutput("yPID Error", yPID.getError()); + Logger.recordOutput("Yaw Error", yawPID.getError()); - double xOut = xPID.updatePID(getX()) / 2.0; - double yOut = -yPID.updatePID(getY()) / 2.0; - double turnOut = -yawPID.updatePID(getAngle()); + boolean posClose = Math.abs(xPID.getError()) < 0.03 + && Math.abs(yPID.getError()) < 0.03; + boolean angleClose = Math.abs(yawPID.getError()) < 1.0; - Logger.recordOutput("xPID Error", xPID.getError()); - Logger.recordOutput("yPID Error", yPID.getError()); - Logger.recordOutput("Yaw Error", yawPID.getError()); + Logger.recordOutput("YawPID Input", Math.toDegrees(getAngle())); + Logger.recordOutput("Pos Close", posClose); + Logger.recordOutput("Angle Close", angleClose); - boolean posClose = Math.abs(xPID.getError()) < 0.03 - && Math.abs(yPID.getError()) < 0.03; - boolean angleClose = Math.abs(yawPID.getError()) < 1.0; + if (posClose && angleClose) { + } else { + atPosition = false; + autoDrive(new Vector(xOut, yOut), turnOut); + } + } - Logger.recordOutput("YawPID Input", getAngle()); - Logger.recordOutput("Pos Close", posClose); - Logger.recordOutput("Angle Close", angleClose); + @Override + public void periodic() { + updateOdometry(); - if (posClose && angleClose) { - } else { - atPosition = false; - autoDrive(new Vector(xOut, yOut), turnOut); - } + DriveState newState = handleStateTransition(); + + if (newState != systemState) { + systemState = newState; + } + + switch (systemState) { + case DEFAULT: + teleopDrive(); + break; + case PATH_TO_POINT: + moveToPoint(0, 0, 90); break; case IDLE: break; diff --git a/src/main/java/frc/robot/subsystems/Peripherals.java b/src/main/java/frc/robot/subsystems/Peripherals.java index de2449c..9d0b3e8 100644 --- a/src/main/java/frc/robot/subsystems/Peripherals.java +++ b/src/main/java/frc/robot/subsystems/Peripherals.java @@ -2,7 +2,6 @@ import java.util.ArrayList; import java.util.List; -import org.littletonrobotics.junction.Logger; import com.ctre.phoenix6.configs.Pigeon2Configuration; import com.ctre.phoenix6.hardware.Pigeon2; diff --git a/src/main/java/frc/robot/subsystems/Superstructure.java b/src/main/java/frc/robot/subsystems/Superstructure.java index 3cf5332..14e3273 100644 --- a/src/main/java/frc/robot/subsystems/Superstructure.java +++ b/src/main/java/frc/robot/subsystems/Superstructure.java @@ -74,15 +74,7 @@ private SuperState handleStateTransitions() { currentSuperState = SuperState.DEFAULT; break; case PATH_TO_POINT: - if (currentSuperState != SuperState.PATH_TO_POINT) { - drive.atPosition = false; - currentSuperState = SuperState.PATH_TO_POINT; - } else if (drive.atPosition) { - wantedSuperState = SuperState.DEFAULT; - currentSuperState = SuperState.DEFAULT; - } else { - currentSuperState = SuperState.PATH_TO_POINT; - } + currentSuperState = SuperState.PATH_TO_POINT; break; default: currentSuperState = SuperState.IDLE; diff --git a/src/main/java/frc/robot/tools/SwerveModule.java b/src/main/java/frc/robot/tools/SwerveModule.java index 61881a7..5429d58 100644 --- a/src/main/java/frc/robot/tools/SwerveModule.java +++ b/src/main/java/frc/robot/tools/SwerveModule.java @@ -4,7 +4,7 @@ import frc.robot.tools.math.PID; import frc.robot.tools.math.Vector; -import java.util.logging.Logger; +import org.littletonrobotics.junction.Logger; import com.ctre.phoenix6.configs.TalonFXConfiguration; import com.ctre.phoenix6.controls.PositionTorqueCurrentFOC; @@ -93,17 +93,13 @@ public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int angleMotorConfig.Feedback.SensorToMechanismRatio = 1.0; angleMotorConfig.Feedback.RotorToSensorRatio = Constants.Ratios.STEER_GEAR_RATIO; - if (index == 2 || index == 3) { - driveMotorConfig.Slot0.kP = 9.4; - driveMotorConfig.Slot0.kI = 0.0; - driveMotorConfig.Slot0.kD = 0.0; - driveMotorConfig.Slot0.kV = 0.0; - } else { - driveMotorConfig.Slot0.kP = 8.0; - driveMotorConfig.Slot0.kI = 0.0; - driveMotorConfig.Slot0.kD = 0.0; - driveMotorConfig.Slot0.kV = 0.0; - } + driveMotorConfig.Slot0.kP = 8.0; + driveMotorConfig.Slot0.kI = 0.0; + driveMotorConfig.Slot0.kD = 0.0; + driveMotorConfig.Slot0.kV = 0.0; + driveMotorConfig.Slot0.kP = 8.0; + driveMotorConfig.Slot0.kI = 0.0; + driveMotorConfig.Slot0.kD = 0.0; driveMotorConfig.TorqueCurrent.PeakForwardTorqueCurrent = 120; driveMotorConfig.TorqueCurrent.PeakReverseTorqueCurrent = -120; @@ -172,8 +168,8 @@ public void drive(Vector driveVector, double turnInput, double navxAngle) { } setSpeed(speed * Constants.Physical.TOP_SPEED); - org.littletonrobotics.junction.Logger.recordOutput("Speed", speed * Constants.Physical.TOP_SPEED); - org.littletonrobotics.junction.Logger.recordOutput("Current Speed", + Logger.recordOutput("Speed", speed * Constants.Physical.TOP_SPEED); + Logger.recordOutput("Current Speed", motorDrive.getVelocity().getValueAsDouble()); double currentRevs = motorTurn.getPosition().getValueAsDouble(); double diffRad = findClosestAngle(absAngleRad, targetRad); From 0fec65d30c555cc2fefa0f3f7c28d27f6acf5baf Mon Sep 17 00:00:00 2001 From: Dhairya Trivedi <140292400+Dhairya-exe@users.noreply.github.com> Date: Sat, 2 Aug 2025 16:36:48 -0600 Subject: [PATCH 8/9] Fixed a few issues with the code and working on making commands from the path tool work --- src/main/deploy/Paths/Commands.polarauto | 1259 ++++ src/main/deploy/Paths/straight.polarauto | 4896 ++++++++++++- src/main/deploy/Paths/test.polarpath | 6129 ++++++++++++++++- src/main/java/frc/robot/Constants.java | 6 + src/main/java/frc/robot/Robot.java | 77 +- src/main/java/frc/robot/RobotContainer.java | 26 +- .../frc/robot/commands/DoNothingFollower.java | 64 + .../frc/robot/commands/NoRequirements.java | 40 + .../frc/robot/commands/PolarAutoFollower.java | 53 + .../frc/robot/commands/PolarPathFollower.java | 172 + src/main/java/frc/robot/commands/Test.java | 37 + .../frc/robot/commands/TriggerCommand.java | 27 + .../frc/robot/commands/WaitForCondition.java | 35 + .../robot/subsystems/ExampleSubsystem.java | 47 - src/main/java/frc/robot/tools/PathLoader.java | 8 + .../robot/tools/wrappers/AutoFollower.java | 27 + 16 files changed, 12820 insertions(+), 83 deletions(-) create mode 100644 src/main/deploy/Paths/Commands.polarauto create mode 100644 src/main/java/frc/robot/commands/DoNothingFollower.java create mode 100644 src/main/java/frc/robot/commands/NoRequirements.java create mode 100644 src/main/java/frc/robot/commands/PolarAutoFollower.java create mode 100644 src/main/java/frc/robot/commands/PolarPathFollower.java create mode 100644 src/main/java/frc/robot/commands/Test.java create mode 100644 src/main/java/frc/robot/commands/TriggerCommand.java create mode 100644 src/main/java/frc/robot/commands/WaitForCondition.java delete mode 100644 src/main/java/frc/robot/subsystems/ExampleSubsystem.java create mode 100644 src/main/java/frc/robot/tools/wrappers/AutoFollower.java diff --git a/src/main/deploy/Paths/Commands.polarauto b/src/main/deploy/Paths/Commands.polarauto new file mode 100644 index 0000000..50bd5ce --- /dev/null +++ b/src/main/deploy/Paths/Commands.polarauto @@ -0,0 +1,1259 @@ +{ + "meta_data": { + "auto_name": "", + "robot_name": "Default Robot", + "field_name": "reefscape-updated" + }, + "schedule": [ + { + "branched": false, + "path": 0 + } + ], + "paths": [ + { + "meta_data": { + "path_name": "Print" + }, + "key_points": [ + { + "x": 4.599737876802097, + "y": 1.185645181567434, + "angle": 0.0, + "x_velocity": 0.0, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": 0.0, + "y_acceleration": 0.0, + "angular_acceleration": 0.0, + "time": 0.0 + }, + { + "x": 5.504352992573176, + "y": 1.2468514806851727, + "angle": 0.0, + "x_velocity": 0.0, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": 0.0, + "y_acceleration": 0.0, + "angular_acceleration": 0.0, + "time": 1.0 + } + ], + "commands": [ + { + "start": 0.0, + "end": 1.0, + "command": { + "start": 0.0, + "end": 1.0, + "name": "Print" + } + } + ], + "sampled_points": [ + { + "x": 4.599737876802097, + "y": 1.185645181567434, + "angle": 0.0, + "x_velocity": 0.0, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": 0.0, + "y_acceleration": 0.0, + "angular_acceleration": 0.0, + "time": 0.0 + }, + { + "x": 4.599746787803757, + "y": 1.185645784486204, + "angle": 0.0, + "x_velocity": 0.002659839824901703, + "y_velocity": 0.00017996488129588717, + "angular_velocity": 0.0, + "x_acceleration": 0.5265945511926603, + "y_acceleration": 0.035629410842418066, + "angular_acceleration": 0.0, + "time": 0.01 + }, + { + "x": 4.599808092303691, + "y": 1.1856499323514065, + "angle": 0.0, + "x_velocity": 0.010425508286238531, + "y_velocity": 0.0007053903560721152, + "angular_velocity": 0.0, + "x_acceleration": 1.021274281100917, + "y_acceleration": 0.0690994634519623, + "angular_acceleration": 0.0, + "time": 0.02 + }, + { + "x": 4.5999712637025825, + "y": 1.1856609725355398, + "angle": 0.0, + "x_velocity": 0.02298111378558322, + "y_velocity": 0.0015549031846767698, + "angular_velocity": 0.0, + "x_acceleration": 1.4846905126081256, + "y_acceleration": 0.10045422636399749, + "angular_acceleration": 0.0, + "time": 0.03 + }, + { + "x": 4.600282649051271, + "y": 1.1856820408821334, + "angle": 0.0, + "x_velocity": 0.04001727795334206, + "y_velocity": 0.002707570812811585, + "angular_velocity": 0.0, + "x_acceleration": 1.9174945685976403, + "y_acceleration": 0.12973776811388843, + "angular_acceleration": 0.0, + "time": 0.04 + }, + { + "x": 4.60078553418305, + "y": 1.1857160661125998, + "angle": 0.0, + "x_velocity": 0.06123113564875492, + "y_velocity": 0.004142901371531941, + "angular_velocity": 0.0, + "x_acceleration": 2.320337771952818, + "y_acceleration": 0.15699415723699986, + "angular_acceleration": 0.0, + "time": 0.05 + }, + { + "x": 4.601520208845941, + "y": 1.1857657742330892, + "angle": 0.0, + "x_velocity": 0.08632633495989515, + "y_velocity": 0.0058408436772468654, + "angular_velocity": 0.0, + "x_acceleration": 2.693871445557012, + "y_acceleration": 0.18226746226869653, + "angular_acceleration": 0.0, + "time": 0.060000000000000005 + }, + { + "x": 4.602524031834998, + "y": 1.1858336929413422, + "angle": 0.0, + "x_velocity": 0.11501303720366972, + "y_velocity": 0.007781787231719037, + "angular_velocity": 0.0, + "x_acceleration": 3.0387469122935777, + "y_acceleration": 0.20560175174434325, + "angular_acceleration": 0.0, + "time": 0.07 + }, + { + "x": 4.603831496124583, + "y": 1.1859221560335447, + "angle": 0.0, + "x_velocity": 0.1470079169258191, + "y_velocity": 0.00994656222206478, + "angular_velocity": 0.0, + "x_acceleration": 3.3556154950458708, + "y_acceleration": 0.22704109419930477, + "angular_acceleration": 0.0, + "time": 0.08 + }, + { + "x": 4.605474294000665, + "y": 1.1860333078111795, + "angle": 0.0, + "x_velocity": 0.1820341619009174, + "y_velocity": 0.012316439520754065, + "angular_velocity": 0.0, + "x_acceleration": 3.645128516697247, + "y_acceleration": 0.2466295581689459, + "angular_acceleration": 0.0, + "time": 0.09 + }, + { + "x": 4.6074813821930976, + "y": 1.186169107487882, + "angle": 0.0, + "x_velocity": 0.21982147313237216, + "y_velocity": 0.01487313068561051, + "angular_velocity": 0.0, + "x_acceleration": 3.9079373001310613, + "y_acceleration": 0.2644112121886314, + "angular_acceleration": 0.0, + "time": 0.09999999999999999 + }, + { + "x": 4.609879047007915, + "y": 1.1863313335962913, + "angle": 0.0, + "x_velocity": 0.2601060648524245, + "y_velocity": 0.017598787959811384, + "angular_velocity": 0.0, + "x_acceleration": 4.144693168230668, + "y_acceleration": 0.28043012479372587, + "angular_acceleration": 0.0, + "time": 0.10999999999999999 + }, + { + "x": 4.61269096945962, + "y": 1.186521588394906, + "angle": 0.0, + "x_velocity": 0.3026306645221493, + "y_velocity": 0.020476004271887605, + "angular_velocity": 0.0, + "x_acceleration": 4.356047443879422, + "y_acceleration": 0.2947303645195944, + "angular_acceleration": 0.0, + "time": 0.11999999999999998 + }, + { + "x": 4.615938290403465, + "y": 1.1867413022749365, + "angle": 0.0, + "x_velocity": 0.3471445128314546, + "y_velocity": 0.023487813235723732, + "angular_velocity": 0.0, + "x_acceleration": 4.54265144996068, + "y_acceleration": 0.3073559999016015, + "angular_acceleration": 0.0, + "time": 0.12999999999999998 + }, + { + "x": 4.6196396756677505, + "y": 1.1869917381671586, + "angle": 0.0, + "x_velocity": 0.3934033636990824, + "y_velocity": 0.026617689150557986, + "angular_velocity": 0.0, + "x_acceleration": 4.705156509357797, + "y_acceleration": 0.3183510994751122, + "angular_acceleration": 0.0, + "time": 0.13999999999999999 + }, + { + "x": 4.623811381186107, + "y": 1.187273995948768, + "angle": 0.0, + "x_velocity": 0.44116948427260805, + "y_velocity": 0.029849547000982215, + "angular_velocity": 0.0, + "x_acceleration": 4.844213944954127, + "y_acceleration": 0.32775973177549095, + "angular_acceleration": 0.0, + "time": 0.15 + }, + { + "x": 4.628467318129785, + "y": 1.1875890168502317, + "angle": 0.0, + "x_velocity": 0.4902116549284403, + "y_velocity": 0.03316774245694192, + "angular_velocity": 0.0, + "x_acceleration": 4.960475079633026, + "y_acceleration": 0.33562596533810285, + "angular_acceleration": 0.0, + "time": 0.16 + }, + { + "x": 4.633619118039943, + "y": 1.1879375878621445, + "angle": 0.0, + "x_velocity": 0.5403051692718217, + "y_velocity": 0.03655707187373626, + "angular_velocity": 0.0, + "x_acceleration": 5.054591236277851, + "y_acceleration": 0.3419938686983124, + "angular_acceleration": 0.0, + "time": 0.17 + }, + { + "x": 4.639276197959935, + "y": 1.18832034614208, + "angle": 0.0, + "x_velocity": 0.5912318341368283, + "y_velocity": 0.04000277229201805, + "angular_velocity": 0.0, + "x_acceleration": 5.127213737771952, + "y_acceleration": 0.34690751039148454, + "angular_acceleration": 0.0, + "time": 0.18000000000000002 + }, + { + "x": 4.645445825567602, + "y": 1.1887377834214448, + "angle": 0.0, + "x_velocity": 0.6427799695863696, + "y_velocity": 0.043490521437793715, + "angular_velocity": 0.0, + "x_acceleration": 5.17899390699869, + "y_acceleration": 0.3504109589529838, + "angular_acceleration": 0.0, + "time": 0.19000000000000003 + }, + { + "x": 4.652133184307558, + "y": 1.1891902504123335, + "angle": 0.0, + "x_velocity": 0.694744408912189, + "y_velocity": 0.047006437722423376, + "angular_velocity": 0.0, + "x_acceleration": 5.210583066841415, + "y_acceleration": 0.3525482829181753, + "angular_acceleration": 0.0, + "time": 0.20000000000000004 + }, + { + "x": 4.659341438523477, + "y": 1.1896779612143802, + "angle": 0.0, + "x_velocity": 0.7469264986348626, + "y_velocity": 0.050537080242620755, + "angular_velocity": 0.0, + "x_acceleration": 5.222632540183487, + "y_acceleration": 0.35336355082242354, + "angular_acceleration": 0.0, + "time": 0.21000000000000005 + }, + { + "x": 4.667071798590384, + "y": 1.1902009977216128, + "angle": 0.0, + "x_velocity": 0.7991340985038011, + "y_velocity": 0.05406944878045326, + "angular_velocity": 0.0, + "x_acceleration": 5.215793649908257, + "y_acceleration": 0.35290083120109356, + "angular_acceleration": 0.0, + "time": 0.22000000000000006 + }, + { + "x": 4.675323586046942, + "y": 1.1907593140293076, + "angle": 0.0, + "x_velocity": 0.851181581497248, + "y_velocity": 0.05759098380334191, + "angular_velocity": 0.0, + "x_acceleration": 5.190717718899082, + "y_acceleration": 0.3512041925895498, + "angular_acceleration": 0.0, + "time": 0.23000000000000007 + }, + { + "x": 4.684094298727741, + "y": 1.1913527408408409, + "angle": 0.0, + "x_velocity": 0.9028898338222806, + "y_velocity": 0.061089566464061426, + "angular_velocity": 0.0, + "x_acceleration": 5.1480560700393205, + "y_acceleration": 0.3483177035231573, + "angular_acceleration": 0.0, + "time": 0.24000000000000007 + }, + { + "x": 4.693379675895587, + "y": 1.1919809898745435, + "angle": 0.0, + "x_velocity": 0.9540862549148101, + "y_velocity": 0.06455351860074011, + "angular_velocity": 0.0, + "x_acceleration": 5.088460026212321, + "y_acceleration": 0.3442854325372807, + "angular_acceleration": 0.0, + "time": 0.25000000000000006 + }, + { + "x": 4.703173763373786, + "y": 1.1926436582705553, + "angle": 0.0, + "x_velocity": 1.0046047574395809, + "y_velocity": 0.06797160273685998, + "angular_velocity": 0.0, + "x_acceleration": 5.012580910301445, + "y_acceleration": 0.33915144816728493, + "angular_acceleration": 0.0, + "time": 0.26000000000000006 + }, + { + "x": 4.71346897867844, + "y": 1.193340232997677, + "angle": 0.0, + "x_velocity": 1.054285767290171, + "y_velocity": 0.07133302208125665, + "angular_velocity": 0.0, + "x_acceleration": 4.92107004519004, + "y_acceleration": 0.33295981894853444, + "angular_acceleration": 0.0, + "time": 0.2700000000000001 + }, + { + "x": 4.724256176150726, + "y": 1.1940700952602237, + "angle": 0.0, + "x_velocity": 1.1029762235889915, + "y_velocity": 0.07462742052811938, + "angular_velocity": 0.0, + "x_acceleration": 4.814578753761472, + "y_acceleration": 0.3257546134163943, + "angular_acceleration": 0.0, + "time": 0.2800000000000001 + }, + { + "x": 4.735524712089193, + "y": 1.194832524904881, + "angle": 0.0, + "x_velocity": 1.1505295786872876, + "y_velocity": 0.07784488265699109, + "angular_velocity": 0.0, + "x_acceleration": 4.693758358899087, + "y_acceleration": 0.31757990010622905, + "angular_acceleration": 0.0, + "time": 0.2900000000000001 + }, + { + "x": 4.747262509882045, + "y": 1.1956267048275548, + "angle": 0.0, + "x_velocity": 1.1968057981651383, + "y_velocity": 0.0809759337327684, + "angular_velocity": 0.0, + "x_acceleration": 4.55926018348624, + "y_acceleration": 0.3084797475534038, + "angular_acceleration": 0.0, + "time": 0.3000000000000001 + }, + { + "x": 4.759456125139431, + "y": 1.1964517253802283, + "angle": 0.0, + "x_velocity": 1.2416713608314554, + "y_velocity": 0.08401153970570155, + "angular_velocity": 0.0, + "x_acceleration": 4.411735550406291, + "y_acceleration": 0.2984982242932829, + "angular_acceleration": 0.0, + "time": 0.3100000000000001 + }, + { + "x": 4.772090810825736, + "y": 1.197306588777813, + "angle": 0.0, + "x_velocity": 1.2849992587239853, + "y_velocity": 0.08694310721139432, + "angular_velocity": 0.0, + "x_acceleration": 4.2518357825425985, + "y_acceleration": 0.2876793988612312, + "angular_acceleration": 0.0, + "time": 0.3200000000000001 + }, + { + "x": 4.785150582391862, + "y": 1.1981902135050038, + "angle": 0.0, + "x_velocity": 1.326668997109306, + "y_velocity": 0.08976248357080426, + "angular_velocity": 0.0, + "x_acceleration": 4.08021220277851, + "y_acceleration": 0.27606733979261405, + "angular_acceleration": 0.0, + "time": 0.3300000000000001 + }, + { + "x": 4.798618282907524, + "y": 1.199101438723131, + "angle": 0.0, + "x_velocity": 1.3665665944828314, + "y_velocity": 0.09246195679024259, + "angular_velocity": 0.0, + "x_acceleration": 3.8975161339973834, + "y_acceleration": 0.2637061156227956, + "angular_acceleration": 0.0, + "time": 0.34000000000000014 + }, + { + "x": 4.8124756481935345, + "y": 1.2000390286770155, + "angle": 0.0, + "x_velocity": 1.4045845825688077, + "y_velocity": 0.09503425556137406, + "angular_velocity": 0.0, + "x_acceleration": 3.7043988990825722, + "y_acceleration": 0.2506397948871407, + "angular_acceleration": 0.0, + "time": 0.35000000000000014 + }, + { + "x": 4.826703371954093, + "y": 1.2010016771018224, + "angle": 0.0, + "x_velocity": 1.4406220063203152, + "y_velocity": 0.09747254926121718, + "angular_velocity": 0.0, + "x_acceleration": 3.501511820917436, + "y_acceleration": 0.2369124461210141, + "angular_acceleration": 0.0, + "time": 0.36000000000000015 + }, + { + "x": 4.841281170909074, + "y": 1.201988011629912, + "angle": 0.0, + "x_velocity": 1.474584423919267, + "y_velocity": 0.09977044795214399, + "angular_velocity": 0.0, + "x_acceleration": 3.2895062223853238, + "y_acceleration": 0.22256813785978063, + "angular_acceleration": 0.0, + "time": 0.37000000000000016 + }, + { + "x": 4.8561878499263145, + "y": 1.2029965981976962, + "angle": 0.0, + "x_velocity": 1.50638390677641, + "y_velocity": 0.10192200238188032, + "angular_velocity": 0.0, + "x_acceleration": 3.0690334263695966, + "y_acceleration": 0.20765093863880568, + "angular_acceleration": 0.0, + "time": 0.38000000000000017 + }, + { + "x": 4.8714013671539025, + "y": 1.2040259454524909, + "angle": 0.0, + "x_velocity": 1.5359390395313255, + "y_velocity": 0.10392170398350552, + "angular_velocity": 0.0, + "x_acceleration": 2.8407447557536036, + "y_acceleration": 0.19220491699345288, + "angular_acceleration": 0.0, + "time": 0.3900000000000002 + }, + { + "x": 4.886898899152469, + "y": 1.205074509159369, + "angle": 0.0, + "x_velocity": 1.5631749200524259, + "y_velocity": 0.1057644848754527, + "angular_velocity": 0.0, + "x_acceleration": 2.6052915334207114, + "y_acceleration": 0.17627414145908804, + "angular_acceleration": 0.0, + "time": 0.4000000000000002 + }, + { + "x": 4.90265690602747, + "y": 1.2061406966080153, + "angle": 0.0, + "x_velocity": 1.5880231594369605, + "y_velocity": 0.10744571786150843, + "angular_velocity": 0.0, + "x_acceleration": 2.3633250822542644, + "y_acceleration": 0.15990268057107526, + "angular_acceleration": 0.0, + "time": 0.4100000000000002 + }, + { + "x": 4.9186511965614805, + "y": 1.2072228710195783, + "angle": 0.0, + "x_velocity": 1.6104218820110106, + "y_velocity": 0.10896121643081322, + "angular_velocity": 0.0, + "x_acceleration": 2.115496725137616, + "y_acceleration": 0.14313460286477953, + "angular_acceleration": 0.0, + "time": 0.4200000000000002 + }, + { + "x": 4.9348569933464805, + "y": 1.2083193559535257, + "angle": 0.0, + "x_velocity": 1.6303157253294902, + "y_velocity": 0.11030723475786097, + "angular_velocity": 0.0, + "x_acceleration": 1.8624577849541328, + "y_acceleration": 0.1260139768755656, + "angular_acceleration": 0.0, + "time": 0.4300000000000002 + }, + { + "x": 4.95124899791614, + "y": 1.2094284397144959, + "angle": 0.0, + "x_velocity": 1.6476558401761479, + "y_velocity": 0.11148046770249939, + "angular_velocity": 0.0, + "x_acceleration": 1.6048595845871603, + "y_acceleration": 0.10858487113879867, + "angular_acceleration": 0.0, + "time": 0.4400000000000002 + }, + { + "x": 4.967801455878114, + "y": 1.2105483797591532, + "angle": 0.0, + "x_velocity": 1.6623998905635664, + "y_velocity": 0.11247805080992966, + "angular_velocity": 0.0, + "x_acceleration": 1.3433534469200588, + "y_acceleration": 0.09089135418984273, + "angular_acceleration": 0.0, + "time": 0.45000000000000023 + }, + { + "x": 4.984488222046325, + "y": 1.2116774071030405, + "angle": 0.0, + "x_velocity": 1.6745120537331606, + "y_velocity": 0.1132975603107068, + "angular_velocity": 0.0, + "x_acceleration": 1.0785906948361799, + "y_acceleration": 0.07297749456406266, + "angular_acceleration": 0.0, + "time": 0.46000000000000024 + }, + { + "x": 5.001282825573258, + "y": 1.2128137307274331, + "angle": 0.0, + "x_velocity": 1.6839630201551785, + "y_velocity": 0.11393701312073941, + "angular_velocity": 0.0, + "x_acceleration": 0.8112226512188805, + "y_acceleration": 0.05488736079682388, + "angular_acceleration": 0.0, + "time": 0.47000000000000025 + }, + { + "x": 5.018158535082241, + "y": 1.213955541986192, + "angle": 0.0, + "x_velocity": 1.6907299935287035, + "y_velocity": 0.1143948668412896, + "angular_velocity": 0.0, + "x_acceleration": 0.541900638951514, + "y_acceleration": 0.03666502142349093, + "angular_acceleration": 0.0, + "time": 0.48000000000000026 + }, + { + "x": 5.035088423799739, + "y": 1.2151010190126175, + "angle": 0.0, + "x_velocity": 1.6947966907816545, + "y_velocity": 0.11467001975897348, + "angular_velocity": 0.0, + "x_acceleration": 0.2712759809174301, + "y_acceleration": 0.018354544979427678, + "angular_acceleration": 0.0, + "time": 0.49000000000000027 + }, + { + "x": 5.052045434687637, + "y": 1.2162483311263035, + "angle": 0.0, + "x_velocity": 1.6961533420707753, + "y_velocity": 0.1147618108457603, + "angular_velocity": 0.0, + "x_acceleration": 7.105427357601002e-15, + "y_acceleration": 4.440892098500626e-16, + "angular_acceleration": 0.0, + "time": 0.5000000000000002 + }, + { + "x": 5.069002445575535, + "y": 1.2173956432399893, + "angle": 0.0, + "x_velocity": 1.6947966907816518, + "y_velocity": 0.11467001975897341, + "angular_velocity": 0.0, + "x_acceleration": -0.271275980917423, + "y_acceleration": -0.01835454497942668, + "angular_acceleration": 0.0, + "time": 0.5100000000000002 + }, + { + "x": 5.085932334293032, + "y": 1.218541120266415, + "angle": 0.0, + "x_velocity": 1.6907299935287046, + "y_velocity": 0.11439486684128966, + "angular_velocity": 0.0, + "x_acceleration": -0.5419006389515015, + "y_acceleration": -0.03666502142349004, + "angular_acceleration": 0.0, + "time": 0.5200000000000002 + }, + { + "x": 5.102808043802016, + "y": 1.2196829315251738, + "angle": 0.0, + "x_velocity": 1.6839630201551787, + "y_velocity": 0.11393701312073942, + "angular_velocity": 0.0, + "x_acceleration": -0.8112226512188663, + "y_acceleration": -0.05488736079682299, + "angular_acceleration": 0.0, + "time": 0.5300000000000002 + }, + { + "x": 5.119602647328948, + "y": 1.2208192551495665, + "angle": 0.0, + "x_velocity": 1.6745120537331601, + "y_velocity": 0.11329756031070687, + "angular_velocity": 0.0, + "x_acceleration": -1.0785906948361657, + "y_acceleration": -0.07297749456406177, + "angular_acceleration": 0.0, + "time": 0.5400000000000003 + }, + { + "x": 5.1362894134971615, + "y": 1.2219482824934538, + "angle": 0.0, + "x_velocity": 1.6623998905635693, + "y_velocity": 0.11247805080992979, + "angular_velocity": 0.0, + "x_acceleration": -1.343353446920048, + "y_acceleration": -0.09089135418984196, + "angular_acceleration": 0.0, + "time": 0.5500000000000003 + }, + { + "x": 5.1528418714591355, + "y": 1.223068222538111, + "angle": 0.0, + "x_velocity": 1.647655840176149, + "y_velocity": 0.11148046770249942, + "angular_velocity": 0.0, + "x_acceleration": -1.6048595845871496, + "y_acceleration": -0.10858487113879756, + "angular_acceleration": 0.0, + "time": 0.5600000000000003 + }, + { + "x": 5.169233876028795, + "y": 1.2241773062990815, + "angle": 0.0, + "x_velocity": 1.6303157253294898, + "y_velocity": 0.11030723475786103, + "angular_velocity": 0.0, + "x_acceleration": -1.8624577849541133, + "y_acceleration": -0.12601397687556481, + "angular_acceleration": 0.0, + "time": 0.5700000000000003 + }, + { + "x": 5.185439672813793, + "y": 1.2252737912330285, + "angle": 0.0, + "x_velocity": 1.6104218820110123, + "y_velocity": 0.10896121643081341, + "angular_velocity": 0.0, + "x_acceleration": -2.1154967251376107, + "y_acceleration": -0.14313460286477908, + "angular_acceleration": 0.0, + "time": 0.5800000000000003 + }, + { + "x": 5.201433963347805, + "y": 1.226355965644592, + "angle": 0.0, + "x_velocity": 1.5880231594369612, + "y_velocity": 0.10744571786150864, + "angular_velocity": 0.0, + "x_acceleration": -2.363325082254253, + "y_acceleration": -0.15990268057107482, + "angular_acceleration": 0.0, + "time": 0.5900000000000003 + }, + { + "x": 5.217191970222806, + "y": 1.2274221530932379, + "angle": 0.0, + "x_velocity": 1.563174920052429, + "y_velocity": 0.10576448487545287, + "angular_velocity": 0.0, + "x_acceleration": -2.605291533420697, + "y_acceleration": -0.17627414145908782, + "angular_acceleration": 0.0, + "time": 0.6000000000000003 + }, + { + "x": 5.232689502221372, + "y": 1.228470716800116, + "angle": 0.0, + "x_velocity": 1.5359390395313257, + "y_velocity": 0.10392170398350559, + "angular_velocity": 0.0, + "x_acceleration": -2.8407447557535974, + "y_acceleration": -0.19220491699345188, + "angular_acceleration": 0.0, + "time": 0.6100000000000003 + }, + { + "x": 5.247903019448961, + "y": 1.2295000640549107, + "angle": 0.0, + "x_velocity": 1.5063839067764135, + "y_velocity": 0.10192200238188048, + "angular_velocity": 0.0, + "x_acceleration": -3.0690334263695895, + "y_acceleration": -0.20765093863880546, + "angular_acceleration": 0.0, + "time": 0.6200000000000003 + }, + { + "x": 5.262809698466201, + "y": 1.230508650622695, + "angle": 0.0, + "x_velocity": 1.4745844239192687, + "y_velocity": 0.09977044795214407, + "angular_velocity": 0.0, + "x_acceleration": -3.289506222385306, + "y_acceleration": -0.2225681378597799, + "angular_acceleration": 0.0, + "time": 0.6300000000000003 + }, + { + "x": 5.277387497421181, + "y": 1.2314949851507844, + "angle": 0.0, + "x_velocity": 1.440622006320318, + "y_velocity": 0.0974725492612174, + "angular_velocity": 0.0, + "x_acceleration": -3.501511820917422, + "y_acceleration": -0.23691244612101392, + "angular_acceleration": 0.0, + "time": 0.6400000000000003 + }, + { + "x": 5.291615221181741, + "y": 1.2324576335755912, + "angle": 0.0, + "x_velocity": 1.4045845825688108, + "y_velocity": 0.09503425556137418, + "angular_velocity": 0.0, + "x_acceleration": -3.7043988990825483, + "y_acceleration": -0.2506397948871406, + "angular_acceleration": 0.0, + "time": 0.6500000000000004 + }, + { + "x": 5.305472586467751, + "y": 1.233395223529476, + "angle": 0.0, + "x_velocity": 1.3665665944828342, + "y_velocity": 0.09246195679024272, + "angular_velocity": 0.0, + "x_acceleration": -3.8975161339973674, + "y_acceleration": -0.26370611562279533, + "angular_acceleration": 0.0, + "time": 0.6600000000000004 + }, + { + "x": 5.318940286983412, + "y": 1.2343064487476034, + "angle": 0.0, + "x_velocity": 1.3266689971093086, + "y_velocity": 0.08976248357080452, + "angular_velocity": 0.0, + "x_acceleration": -4.08021220277849, + "y_acceleration": -0.27606733979261344, + "angular_acceleration": 0.0, + "time": 0.6700000000000004 + }, + { + "x": 5.332000058549538, + "y": 1.2351900734747938, + "angle": 0.0, + "x_velocity": 1.284999258723988, + "y_velocity": 0.08694310721139425, + "angular_velocity": 0.0, + "x_acceleration": -4.251835782542578, + "y_acceleration": -0.28767939886123095, + "angular_acceleration": 0.0, + "time": 0.6800000000000004 + }, + { + "x": 5.344634744235844, + "y": 1.2360449368723785, + "angle": 0.0, + "x_velocity": 1.2416713608314573, + "y_velocity": 0.08401153970570158, + "angular_velocity": 0.0, + "x_acceleration": -4.411735550406263, + "y_acceleration": -0.2984982242932812, + "angular_acceleration": 0.0, + "time": 0.6900000000000004 + }, + { + "x": 5.356828359493229, + "y": 1.236869957425052, + "angle": 0.0, + "x_velocity": 1.1968057981651405, + "y_velocity": 0.08097593373276835, + "angular_velocity": 0.0, + "x_acceleration": -4.5592601834862165, + "y_acceleration": -0.3084797475534029, + "angular_acceleration": 0.0, + "time": 0.7000000000000004 + }, + { + "x": 5.368566157286081, + "y": 1.2376641373477262, + "angle": 0.0, + "x_velocity": 1.1505295786872916, + "y_velocity": 0.07784488265699119, + "angular_velocity": 0.0, + "x_acceleration": -4.693758358899061, + "y_acceleration": -0.31757990010622805, + "angular_acceleration": 0.0, + "time": 0.7100000000000004 + }, + { + "x": 5.379834693224549, + "y": 1.238426566992383, + "angle": 0.0, + "x_velocity": 1.1029762235889944, + "y_velocity": 0.07462742052811944, + "angular_velocity": 0.0, + "x_acceleration": -4.814578753761438, + "y_acceleration": -0.325754613416394, + "angular_acceleration": 0.0, + "time": 0.7200000000000004 + }, + { + "x": 5.390621890696835, + "y": 1.2391564292549302, + "angle": 0.0, + "x_velocity": 1.0542857672901755, + "y_velocity": 0.0713330220812568, + "angular_velocity": 0.0, + "x_acceleration": -4.921070045190014, + "y_acceleration": -0.3329598189485341, + "angular_acceleration": 0.0, + "time": 0.7300000000000004 + }, + { + "x": 5.4009171060014864, + "y": 1.2398530039820514, + "angle": 0.0, + "x_velocity": 1.0046047574395889, + "y_velocity": 0.0679716027368602, + "angular_velocity": 0.0, + "x_acceleration": -5.012580910301423, + "y_acceleration": -0.33915144816728526, + "angular_acceleration": 0.0, + "time": 0.7400000000000004 + }, + { + "x": 5.410711193479687, + "y": 1.240515672378063, + "angle": 0.0, + "x_velocity": 0.954086254914813, + "y_velocity": 0.06455351860074021, + "angular_velocity": 0.0, + "x_acceleration": -5.088460026212289, + "y_acceleration": -0.34428543253727995, + "angular_acceleration": 0.0, + "time": 0.7500000000000004 + }, + { + "x": 5.419996570647531, + "y": 1.2411439214117659, + "angle": 0.0, + "x_velocity": 0.9028898338222859, + "y_velocity": 0.06108956646406172, + "angular_velocity": 0.0, + "x_acceleration": -5.1480560700392815, + "y_acceleration": -0.3483177035231564, + "angular_acceleration": 0.0, + "time": 0.7600000000000005 + }, + { + "x": 5.428767283328333, + "y": 1.2417373482232992, + "angle": 0.0, + "x_velocity": 0.8511815814972525, + "y_velocity": 0.057590983803342155, + "angular_velocity": 0.0, + "x_acceleration": -5.190717718899066, + "y_acceleration": -0.3512041925895506, + "angular_acceleration": 0.0, + "time": 0.7700000000000005 + }, + { + "x": 5.437019070784892, + "y": 1.2422956645309942, + "angle": 0.0, + "x_velocity": 0.7991340985038047, + "y_velocity": 0.05406944878045328, + "angular_velocity": 0.0, + "x_acceleration": -5.215793649908221, + "y_acceleration": -0.3529008312010933, + "angular_acceleration": 0.0, + "time": 0.7800000000000005 + }, + { + "x": 5.4447494308517985, + "y": 1.2428187010382268, + "angle": 0.0, + "x_velocity": 0.7469264986348669, + "y_velocity": 0.05053708024262071, + "angular_velocity": 0.0, + "x_acceleration": -5.222632540183454, + "y_acceleration": -0.353363550822424, + "angular_acceleration": 0.0, + "time": 0.7900000000000005 + }, + { + "x": 5.4519576850677165, + "y": 1.2433064118402735, + "angle": 0.0, + "x_velocity": 0.6947444089122001, + "y_velocity": 0.04700643772242352, + "angular_velocity": 0.0, + "x_acceleration": -5.210583066841394, + "y_acceleration": -0.3525482829181761, + "angular_acceleration": 0.0, + "time": 0.8000000000000005 + }, + { + "x": 5.458645043807672, + "y": 1.2437588788311622, + "angle": 0.0, + "x_velocity": 0.6427799695863747, + "y_velocity": 0.04349052143779408, + "angular_velocity": 0.0, + "x_acceleration": -5.178993906998656, + "y_acceleration": -0.3504109589529838, + "angular_acceleration": 0.0, + "time": 0.8100000000000005 + }, + { + "x": 5.464814671415342, + "y": 1.2441763161105273, + "angle": 0.0, + "x_velocity": 0.5912318341368348, + "y_velocity": 0.04000277229201832, + "angular_velocity": 0.0, + "x_acceleration": -5.127213737771925, + "y_acceleration": -0.3469075103914854, + "angular_acceleration": 0.0, + "time": 0.8200000000000005 + }, + { + "x": 5.470471751335332, + "y": 1.2445590743904624, + "angle": 0.0, + "x_velocity": 0.5403051692718339, + "y_velocity": 0.03655707187373691, + "angular_velocity": 0.0, + "x_acceleration": -5.054591236277815, + "y_acceleration": -0.34199386869831283, + "angular_acceleration": 0.0, + "time": 0.8300000000000005 + }, + { + "x": 5.475623551245489, + "y": 1.2449076454023753, + "angle": 0.0, + "x_velocity": 0.4902116549284461, + "y_velocity": 0.033167742456942095, + "angular_velocity": 0.0, + "x_acceleration": -4.960475079632985, + "y_acceleration": -0.33562596533810307, + "angular_acceleration": 0.0, + "time": 0.8400000000000005 + }, + { + "x": 5.480279488189167, + "y": 1.245222666303839, + "angle": 0.0, + "x_velocity": 0.4411694842726206, + "y_velocity": 0.029849547000982635, + "angular_velocity": 0.0, + "x_acceleration": -4.8442139449540775, + "y_acceleration": -0.32775973177549034, + "angular_acceleration": 0.0, + "time": 0.8500000000000005 + }, + { + "x": 5.484451193707525, + "y": 1.245504924085448, + "angle": 0.0, + "x_velocity": 0.39340336369909323, + "y_velocity": 0.026617689150558288, + "angular_velocity": 0.0, + "x_acceleration": -4.705156509357735, + "y_acceleration": -0.3183510994751133, + "angular_acceleration": 0.0, + "time": 0.8600000000000005 + }, + { + "x": 5.488152578971809, + "y": 1.2457553599776705, + "angle": 0.0, + "x_velocity": 0.34714451283146985, + "y_velocity": 0.023487813235724353, + "angular_velocity": 0.0, + "x_acceleration": -4.54265144996063, + "y_acceleration": -0.3073559999016027, + "angular_acceleration": 0.0, + "time": 0.8700000000000006 + }, + { + "x": 5.491399899915654, + "y": 1.245975073857701, + "angle": 0.0, + "x_velocity": 0.30263066452216236, + "y_velocity": 0.02047600427188767, + "angular_velocity": 0.0, + "x_acceleration": -4.35604744387939, + "y_acceleration": -0.2947303645195962, + "angular_acceleration": 0.0, + "time": 0.8800000000000006 + }, + { + "x": 5.494211822367362, + "y": 1.2461653286563157, + "angle": 0.0, + "x_velocity": 0.26010606485243315, + "y_velocity": 0.017598787959811624, + "angular_velocity": 0.0, + "x_acceleration": -4.144693168230617, + "y_acceleration": -0.28043012479372464, + "angular_acceleration": 0.0, + "time": 0.8900000000000006 + }, + { + "x": 5.496609487182178, + "y": 1.2463275547647252, + "angle": 0.0, + "x_velocity": 0.21982147313238087, + "y_velocity": 0.014873130685610247, + "angular_velocity": 0.0, + "x_acceleration": -3.907937300130996, + "y_acceleration": -0.26441121218863195, + "angular_acceleration": 0.0, + "time": 0.9000000000000006 + }, + { + "x": 5.498616575374612, + "y": 1.2464633544414274, + "angle": 0.0, + "x_velocity": 0.18203416190093336, + "y_velocity": 0.01231643952075423, + "angular_velocity": 0.0, + "x_acceleration": -3.6451285166971843, + "y_acceleration": -0.24662955816894616, + "angular_acceleration": 0.0, + "time": 0.9100000000000006 + }, + { + "x": 5.5002593732506915, + "y": 1.2465745062190625, + "angle": 0.0, + "x_velocity": 0.14700791692583337, + "y_velocity": 0.009946562222065136, + "angular_velocity": 0.0, + "x_acceleration": -3.3556154950457966, + "y_acceleration": -0.22704109419930596, + "angular_acceleration": 0.0, + "time": 0.9200000000000006 + }, + { + "x": 5.5015668375402775, + "y": 1.2466629693112647, + "angle": 0.0, + "x_velocity": 0.11501303720368128, + "y_velocity": 0.007781787231719406, + "angular_velocity": 0.0, + "x_acceleration": -3.0387469122935045, + "y_acceleration": -0.20560175174434292, + "angular_acceleration": 0.0, + "time": 0.9300000000000006 + }, + { + "x": 5.502570660529335, + "y": 1.246730888019518, + "angle": 0.0, + "x_velocity": 0.08632633495990305, + "y_velocity": 0.005840843677246577, + "angular_velocity": 0.0, + "x_acceleration": -2.6938714455569226, + "y_acceleration": -0.1822674622686975, + "angular_acceleration": 0.0, + "time": 0.9400000000000006 + }, + { + "x": 5.503305335192226, + "y": 1.2467805961400071, + "angle": 0.0, + "x_velocity": 0.06123113564877514, + "y_velocity": 0.0041429013715321705, + "angular_velocity": 0.0, + "x_acceleration": -2.320337771952765, + "y_acceleration": -0.15699415723700216, + "angular_acceleration": 0.0, + "time": 0.9500000000000006 + }, + { + "x": 5.503808220324006, + "y": 1.2468146213704736, + "angle": 0.0, + "x_velocity": 0.04001727795335697, + "y_velocity": 0.0027075708128114773, + "angular_velocity": 0.0, + "x_acceleration": -1.9174945685975757, + "y_acceleration": -0.12973776811388937, + "angular_acceleration": 0.0, + "time": 0.9600000000000006 + }, + { + "x": 5.5041196056726935, + "y": 1.246835689717067, + "angle": 0.0, + "x_velocity": 0.02298111378560108, + "y_velocity": 0.0015549031846768813, + "angular_velocity": 0.0, + "x_acceleration": -1.4846905126080543, + "y_acceleration": -0.1004542263639987, + "angular_acceleration": 0.0, + "time": 0.9700000000000006 + }, + { + "x": 5.504282777071587, + "y": 1.2468467299012005, + "angle": 0.0, + "x_velocity": 0.010425508286257212, + "y_velocity": 0.0007053903560720887, + "angular_velocity": 0.0, + "x_acceleration": -1.021274281100844, + "y_acceleration": -0.06909946345196438, + "angular_acceleration": 0.0, + "time": 0.9800000000000006 + }, + { + "x": 5.504344081571521, + "y": 1.246850877766403, + "angle": 0.0, + "x_velocity": 0.0026598398249220168, + "y_velocity": 0.00017996488129590205, + "angular_velocity": 0.0, + "x_acceleration": -0.5265945511925736, + "y_acceleration": -0.03562941084241977, + "angular_acceleration": 0.0, + "time": 0.9900000000000007 + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/deploy/Paths/straight.polarauto b/src/main/deploy/Paths/straight.polarauto index 15fbb9e..6c37f86 100644 --- a/src/main/deploy/Paths/straight.polarauto +++ b/src/main/deploy/Paths/straight.polarauto @@ -1 +1,4895 @@ -{"meta_data":{"path_name":"straight","sample_rate":0.01,"robot_name":"Cardigan","field_name":"reefscape-updated"},"commands":[],"key_points":[{"index":0,"delta_time":0.0,"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":1,"delta_time":1.0,"time":1.0,"x":1.0,"y":0.0,"angle":0.0,"x_velocity":0.5,"y_velocity":0.5,"angular_velocity":0.0,"x_acceleration":-0.125,"y_acceleration":0.125,"angular_acceleration":0.0},{"index":2,"delta_time":2.0,"time":2.0,"x":1.0,"y":1.0,"angle":0.0,"x_velocity":-0.5,"y_velocity":0.5,"angular_velocity":0.0,"x_acceleration":-0.25,"y_acceleration":-0.25,"angular_acceleration":0.0},{"index":3,"delta_time":3.0,"time":3.0,"x":0.0,"y":1.0,"angle":0.0,"x_velocity":-0.5,"y_velocity":-0.5,"angular_velocity":0.0,"x_acceleration":0.125,"y_acceleration":-0.125,"angular_acceleration":0.0},{"index":4,"delta_time":4.0,"time":4.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0}],"sampled_points":[{"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"time":0.01,"x":0.000007824193750000002,"y":-0.0000019038937500000005,"angle":0.0,"x_velocity":0.002335971875,"y_velocity":-0.0005678218750000001,"angular_velocity":0.0,"x_acceleration":0.46268875000000004,"y_acceleration":-0.11222874999999999,"angular_acceleration":0.0},{"time":0.02,"x":0.00006169420000000001,"y":-0.000014964600000000004,"angle":0.0,"x_velocity":0.00916455,"y_velocity":-0.0022181500000000003,"angular_velocity":0.0,"x_acceleration":0.89861,"y_acceleration":-0.21653,"angular_acceleration":0.0},{"time":0.03,"x":0.00020520658124999997,"y":-0.000049613681249999996,"angle":0.0,"x_velocity":0.020220721875000004,"y_velocity":-0.004872571875,"angular_velocity":0.0,"x_acceleration":1.3082962500000002,"y_acceleration":-0.31307625,"angular_acceleration":0.0},{"time":0.04,"x":0.0004793344000000001,"y":-0.00011550720000000003,"angle":0.0,"x_velocity":0.03524480000000001,"y_velocity":-0.0084544,"angular_velocity":0.0,"x_acceleration":1.69228,"y_acceleration":-0.40203999999999995,"angular_acceleration":0.0},{"time":0.05,"x":0.0009224804687500002,"y":-0.00022154296875000003,"angle":0.0,"x_velocity":0.05398242187500001,"y_velocity":-0.012888671875000002,"angular_velocity":0.0,"x_acceleration":2.0510937500000006,"y_acceleration":-0.48359375000000004,"angular_acceleration":0.0},{"time":0.060000000000000005,"x":0.0015705306000000005,"y":-0.00037587780000000016,"angle":0.0,"x_velocity":0.07618455000000002,"y_velocity":-0.018102150000000004,"angular_velocity":0.0,"x_acceleration":2.3852700000000002,"y_acceleration":-0.5579100000000001,"angular_acceleration":0.0},{"time":0.07,"x":0.00245690685625,"y":-0.0005859447562500001,"angle":0.0,"x_velocity":0.10160747187500001,"y_velocity":-0.024023321875000003,"angular_velocity":0.0,"x_acceleration":2.6953412500000002,"y_acceleration":-0.6251612500000001,"angular_acceleration":0.0},{"time":0.08,"x":0.0036126208000000007,"y":-0.0008584704000000003,"angle":0.0,"x_velocity":0.13001279999999998,"y_velocity":-0.030582400000000003,"angular_velocity":0.0,"x_acceleration":2.98184,"y_acceleration":-0.6855199999999998,"angular_acceleration":0.0},{"time":0.09,"x":0.00506632674375,"y":-0.00119949204375,"angle":0.0,"x_velocity":0.161167471875,"y_velocity":-0.037711321875,"angular_velocity":0.0,"x_acceleration":3.24529875,"y_acceleration":-0.7391587500000002,"angular_acceleration":0.0},{"time":0.09999999999999999,"x":0.006844374999999999,"y":-0.0016143749999999997,"angle":0.0,"x_velocity":0.19484374999999998,"y_velocity":-0.04534374999999999,"angular_velocity":0.0,"x_acceleration":3.4862500000000005,"y_acceleration":-0.7862499999999999,"angular_acceleration":0.0},{"time":0.10999999999999999,"x":0.008970865131249997,"y":-0.0021078298312499993,"angle":0.0,"x_velocity":0.23081922187499998,"y_velocity":-0.053415071874999984,"angular_velocity":0.0,"x_acceleration":3.70522625,"y_acceleration":-0.8269662499999999,"angular_acceleration":0.0},{"time":0.11999999999999998,"x":0.011467699199999995,"y":-0.0026839295999999987,"angle":0.0,"x_velocity":0.26887679999999997,"y_velocity":-0.06186239999999999,"angular_velocity":0.0,"x_acceleration":3.90276,"y_acceleration":-0.8614799999999999,"angular_acceleration":0.0},{"time":0.12999999999999998,"x":0.014354635018749992,"y":-0.003346127118749998,"angle":0.0,"x_velocity":0.3088047218749999,"y_velocity":-0.07062457187499999,"angular_velocity":0.0,"x_acceleration":4.079383749999999,"y_acceleration":-0.8899637499999997,"angular_acceleration":0.0},{"time":0.13999999999999999,"x":0.01764933939999999,"y":-0.004097272199999998,"angle":0.0,"x_velocity":0.35039655,"y_velocity":-0.07964215000000001,"angular_velocity":0.0,"x_acceleration":4.235629999999999,"y_acceleration":-0.9125899999999999,"angular_acceleration":0.0},{"time":0.15,"x":0.02136744140625,"y":-0.004939628906249999,"angle":0.0,"x_velocity":0.393451171875,"y_velocity":-0.08885742187500001,"angular_velocity":0.0,"x_acceleration":4.372031249999999,"y_acceleration":-0.9295312499999998,"angular_acceleration":0.0},{"time":0.16,"x":0.02552258560000001,"y":-0.0058748928000000025,"angle":0.0,"x_velocity":0.4377728,"y_velocity":-0.09821440000000001,"angular_velocity":0.0,"x_acceleration":4.489120000000001,"y_acceleration":-0.9409599999999998,"angular_acceleration":0.0},{"time":0.17,"x":0.03012648529375001,"y":-0.006904208193750002,"angle":0.0,"x_velocity":0.483170971875,"y_velocity":-0.107658821875,"angular_velocity":0.0,"x_acceleration":4.587428749999999,"y_acceleration":-0.9470487499999999,"angular_acceleration":0.0},{"time":0.18000000000000002,"x":0.03518897580000001,"y":-0.0080281854,"angle":0.0,"x_velocity":0.52946055,"y_velocity":-0.11713815000000001,"angular_velocity":0.0,"x_acceleration":4.66749,"y_acceleration":-0.9479700000000002,"angular_acceleration":0.0},{"time":0.19000000000000003,"x":0.040718067681250025,"y":-0.009246917981250003,"angle":0.0,"x_velocity":0.5764617218750001,"y_velocity":-0.12660157187500004,"angular_velocity":0.0,"x_acceleration":4.729836250000001,"y_acceleration":-0.9438962499999999,"angular_acceleration":0.0},{"time":0.20000000000000004,"x":0.04672000000000002,"y":-0.010560000000000003,"angle":0.0,"x_velocity":0.6240000000000002,"y_velocity":-0.13600000000000004,"angular_velocity":0.0,"x_acceleration":4.775,"y_acceleration":-0.9349999999999995,"angular_acceleration":0.0},{"time":0.21000000000000005,"x":0.05319929356875004,"y":-0.011966543268750008,"angle":0.0,"x_velocity":0.671906221875,"y_velocity":-0.14528607187500003,"angular_velocity":0.0,"x_acceleration":4.8035137500000005,"y_acceleration":-0.92145375,"angular_acceleration":0.0},{"time":0.22000000000000006,"x":0.06015880420000005,"y":-0.01346519460000001,"angle":0.0,"x_velocity":0.7200165500000004,"y_velocity":-0.15441415000000008,"angular_velocity":0.0,"x_acceleration":4.81591,"y_acceleration":-0.9034299999999997,"angular_acceleration":0.0},{"time":0.23000000000000007,"x":0.06759977595625005,"y":-0.01505415305625001,"angle":0.0,"x_velocity":0.7681724718750003,"y_velocity":-0.16334032187500003,"angular_velocity":0.0,"x_acceleration":4.81272125,"y_acceleration":-0.8811012499999997,"angular_acceleration":0.0},{"time":0.24000000000000007,"x":0.07552189440000005,"y":-0.01673118720000001,"angle":0.0,"x_velocity":0.8162208000000004,"y_velocity":-0.17202240000000002,"angular_velocity":0.0,"x_acceleration":4.79448,"y_acceleration":-0.8546400000000002,"angular_acceleration":0.0},{"time":0.25000000000000006,"x":0.08392333984375004,"y":-0.018493652343750007,"angle":0.0,"x_velocity":0.8640136718750003,"y_velocity":-0.18041992187500006,"angular_velocity":0.0,"x_acceleration":4.761718750000001,"y_acceleration":-0.8242187499999999,"angular_acceleration":0.0},{"time":0.26000000000000006,"x":0.09280084060000006,"y":-0.020338507800000006,"angle":0.0,"x_velocity":0.9114085500000003,"y_velocity":-0.18849415000000008,"angular_velocity":0.0,"x_acceleration":4.71497,"y_acceleration":-0.7900099999999999,"angular_acceleration":0.0},{"time":0.2700000000000001,"x":0.10214972623125003,"y":-0.02226233413125001,"angle":0.0,"x_velocity":0.9582682218750006,"y_velocity":-0.19620807187500006,"angular_velocity":0.0,"x_acceleration":4.654766249999999,"y_acceleration":-0.7521862500000001,"angular_acceleration":0.0},{"time":0.2800000000000001,"x":0.11196398080000004,"y":-0.024261350400000013,"angle":0.0,"x_velocity":1.0044608000000006,"y_velocity":-0.2035264000000001,"angular_velocity":0.0,"x_acceleration":4.58164,"y_acceleration":-0.7109200000000001,"angular_acceleration":0.0},{"time":0.2900000000000001,"x":0.12223629611875007,"y":-0.026331431418750016,"angle":0.0,"x_velocity":1.0498597218750005,"y_velocity":-0.21041557187500004,"angular_velocity":0.0,"x_acceleration":4.496123750000001,"y_acceleration":-0.66638375,"angular_acceleration":0.0},{"time":0.3000000000000001,"x":0.13295812500000012,"y":-0.028468125000000025,"angle":0.0,"x_velocity":1.0943437500000002,"y_velocity":-0.21684375000000009,"angular_velocity":0.0,"x_acceleration":4.398749999999998,"y_acceleration":-0.6187499999999998,"angular_acceleration":0.0},{"time":0.3100000000000001,"x":0.14411973450625012,"y":-0.030666669206250028,"angle":0.0,"x_velocity":1.1377969718750007,"y_velocity":-0.22278082187500015,"angular_velocity":0.0,"x_acceleration":4.290051249999998,"y_acceleration":-0.5681912499999997,"angular_acceleration":0.0},{"time":0.3200000000000001,"x":0.15571025920000012,"y":-0.03292200960000001,"angle":0.0,"x_velocity":1.1801088000000006,"y_velocity":-0.2281984000000002,"angular_velocity":0.0,"x_acceleration":4.170559999999998,"y_acceleration":-0.5148799999999991,"angular_acceleration":0.0},{"time":0.3300000000000001,"x":0.16771775439375017,"y":-0.03522881649375002,"angle":0.0,"x_velocity":1.221173971875,"y_velocity":-0.233069821875,"angular_velocity":0.0,"x_acceleration":4.040808750000002,"y_acceleration":-0.45898875000000006,"angular_acceleration":0.0},{"time":0.34000000000000014,"x":0.18012924940000014,"y":-0.03758150220000003,"angle":0.0,"x_velocity":1.2608925500000003,"y_velocity":-0.23737015000000006,"angular_velocity":0.0,"x_acceleration":3.9013299999999975,"y_acceleration":-0.40068999999999977,"angular_acceleration":0.0},{"time":0.35000000000000014,"x":0.19293080078125016,"y":-0.03997423828125003,"angle":0.0,"x_velocity":1.2991699218750004,"y_velocity":-0.241076171875,"angular_velocity":0.0,"x_acceleration":3.752656249999999,"y_acceleration":-0.3401562500000006,"angular_acceleration":0.0},{"time":0.36000000000000015,"x":0.20610754560000016,"y":-0.042400972800000034,"angle":0.0,"x_velocity":1.3359168000000003,"y_velocity":-0.24416640000000012,"angular_velocity":0.0,"x_acceleration":3.5953199999999974,"y_acceleration":-0.27755999999999936,"angular_acceleration":0.0},{"time":0.37000000000000016,"x":0.21964375466875025,"y":-0.04485544756875005,"angle":0.0,"x_velocity":1.3710492218750008,"y_velocity":-0.246621071875,"angular_velocity":0.0,"x_acceleration":3.429853749999996,"y_acceleration":-0.21307374999999862,"angular_acceleration":0.0},{"time":0.38000000000000017,"x":0.23352288580000027,"y":-0.04733121540000006,"angle":0.0,"x_velocity":1.4044885500000008,"y_velocity":-0.24842214999999995,"angular_velocity":0.0,"x_acceleration":3.256789999999997,"y_acceleration":-0.14686999999999872,"angular_acceleration":0.0},{"time":0.3900000000000002,"x":0.24772763705625028,"y":-0.049821657356250056,"angle":0.0,"x_velocity":1.4361614718750009,"y_velocity":-0.24955332187500004,"angular_velocity":0.0,"x_acceleration":3.076661249999998,"y_acceleration":-0.07912124999999848,"angular_acceleration":0.0},{"time":0.4000000000000002,"x":0.2622400000000002,"y":-0.052320000000000026,"angle":0.0,"x_velocity":1.4660000000000004,"y_velocity":-0.2500000000000001,"angular_velocity":0.0,"x_acceleration":2.8900000000000006,"y_acceleration":-0.009999999999998677,"angular_acceleration":0.0},{"time":0.4100000000000002,"x":0.2770413129437504,"y":-0.054819332643750066,"angle":0.0,"x_velocity":1.4939414718750008,"y_velocity":-0.24974932187499993,"angular_velocity":0.0,"x_acceleration":2.6973387499999957,"y_acceleration":0.06032125000000166,"angular_acceleration":0.0},{"time":0.4200000000000002,"x":0.2921123142000004,"y":-0.057312624600000056,"angle":0.0,"x_velocity":1.5199285500000006,"y_velocity":-0.24879015000000018,"angular_velocity":0.0,"x_acceleration":2.4992099999999953,"y_acceleration":0.1316700000000015,"angular_acceleration":0.0},{"time":0.4300000000000002,"x":0.30743319533125035,"y":-0.059792742431250066,"angle":0.0,"x_velocity":1.5439092218750008,"y_velocity":-0.2471130718749998,"angular_velocity":0.0,"x_acceleration":2.2961462499999987,"y_acceleration":0.20387375000000096,"angular_acceleration":0.0},{"time":0.4400000000000002,"x":0.32298365440000026,"y":-0.06225246720000004,"angle":0.0,"x_velocity":1.5658368000000007,"y_velocity":-0.24471039999999994,"angular_velocity":0.0,"x_acceleration":2.0886799999999974,"y_acceleration":0.27676000000000034,"angular_acceleration":0.0},{"time":0.45000000000000023,"x":0.33874294921875037,"y":-0.06468451171875003,"angle":0.0,"x_velocity":1.5856699218750003,"y_velocity":-0.2415761718749999,"angular_velocity":0.0,"x_acceleration":1.877343749999996,"y_acceleration":0.35015625000000217,"angular_acceleration":0.0},{"time":0.46000000000000024,"x":0.3546899506000004,"y":-0.06708153780000006,"angle":0.0,"x_velocity":1.603372550000001,"y_velocity":-0.23770614999999978,"angular_velocity":0.0,"x_acceleration":1.6626699999999968,"y_acceleration":0.4238900000000023,"angular_acceleration":0.0},{"time":0.47000000000000025,"x":0.3708031956062504,"y":-0.06943617350625005,"angle":0.0,"x_velocity":1.6189139718750007,"y_velocity":-0.2330978218749999,"angular_velocity":0.0,"x_acceleration":1.445191249999997,"y_acceleration":0.49778875000000156,"angular_acceleration":0.0},{"time":0.48000000000000026,"x":0.38706094080000036,"y":-0.07174103040000007,"angle":0.0,"x_velocity":1.6322688000000005,"y_velocity":-0.2277503999999998,"angular_velocity":0.0,"x_acceleration":1.2254399999999972,"y_acceleration":0.5716800000000011,"angular_acceleration":0.0},{"time":0.49000000000000027,"x":0.40344121549375034,"y":-0.07398872079375005,"angle":0.0,"x_velocity":1.6434169718750011,"y_velocity":-0.22166482187500003,"angular_velocity":0.0,"x_acceleration":1.0039487499999904,"y_acceleration":0.6453912500000021,"angular_acceleration":0.0},{"time":0.5000000000000002,"x":0.41992187500000044,"y":-0.07617187500000004,"angle":0.0,"x_velocity":1.6523437499999998,"y_velocity":-0.2148437499999999,"angular_velocity":0.0,"x_acceleration":0.7812499999999982,"y_acceleration":0.7187500000000009,"angular_acceleration":0.0},{"time":0.5100000000000002,"x":0.43648065388125046,"y":-0.07828315858125005,"angle":0.0,"x_velocity":1.6590397218749997,"y_velocity":-0.20729157187499958,"angular_velocity":0.0,"x_acceleration":0.5578762499999979,"y_acceleration":0.7915837500000014,"angular_acceleration":0.0},{"time":0.5200000000000002,"x":0.4530952192000004,"y":-0.08031528960000006,"angle":0.0,"x_velocity":1.6635008,"y_velocity":-0.19901439999999992,"angular_velocity":0.0,"x_acceleration":0.33435999999998955,"y_acceleration":0.8637200000000025,"angular_acceleration":0.0},{"time":0.5300000000000002,"x":0.4697432237687505,"y":-0.08226105586875002,"angle":0.0,"x_velocity":1.6657282218749998,"y_velocity":-0.19002007187499992,"angular_velocity":0.0,"x_acceleration":0.11123374999999491,"y_acceleration":0.9349862500000024,"angular_acceleration":0.0},{"time":0.5400000000000003,"x":0.48640235940000054,"y":-0.08411333220000008,"angle":0.0,"x_velocity":1.6657285499999996,"y_velocity":-0.18031814999999962,"angular_velocity":0.0,"x_acceleration":-0.11097000000000534,"y_acceleration":1.0052100000000008,"angular_acceleration":0.0},{"time":0.5500000000000003,"x":0.5030504101562503,"y":-0.08586509765625,"angle":0.0,"x_velocity":1.6635136718750014,"y_velocity":-0.16991992187499994,"angular_velocity":0.0,"x_acceleration":-0.33171875000001094,"y_acceleration":1.0742187500000018,"angular_acceleration":0.0},{"time":0.5600000000000003,"x":0.5196653056000005,"y":-0.08750945280000005,"angle":0.0,"x_velocity":1.6591007999999996,"y_velocity":-0.15883839999999982,"angular_velocity":0.0,"x_acceleration":-0.550480000000011,"y_acceleration":1.1418400000000029,"angular_acceleration":0.0},{"time":0.5700000000000003,"x":0.5362251740437505,"y":-0.08903963694375008,"angle":0.0,"x_velocity":1.6525124718749997,"y_velocity":-0.14708832187499954,"angular_velocity":0.0,"x_acceleration":-0.7667212500000034,"y_acceleration":1.2079012500000017,"angular_acceleration":0.0},{"time":0.5800000000000003,"x":0.5527083958000004,"y":-0.09044904540000007,"angle":0.0,"x_velocity":1.6437765500000006,"y_velocity":-0.13468614999999984,"angular_velocity":0.0,"x_acceleration":-0.9799100000000145,"y_acceleration":1.272230000000004,"angular_acceleration":0.0},{"time":0.5900000000000003,"x":0.5690936564312505,"y":-0.09173124673124998,"angle":0.0,"x_velocity":1.6329262218750014,"y_velocity":-0.12165007187499977,"angular_velocity":0.0,"x_acceleration":-1.1895137500000104,"y_acceleration":1.3346537500000037,"angular_acceleration":0.0},{"time":0.6000000000000003,"x":0.5853600000000004,"y":-0.09288000000000005,"angle":0.0,"x_velocity":1.6199999999999992,"y_velocity":-0.1080000000000001,"angular_velocity":0.0,"x_acceleration":-1.3950000000000067,"y_acceleration":1.3950000000000031,"angular_acceleration":0.0},{"time":0.6100000000000003,"x":0.6014868823187505,"y":-0.09388927201875008,"angle":0.0,"x_velocity":1.6050417218750002,"y_velocity":-0.09375757187499945,"angular_velocity":0.0,"x_acceleration":-1.5958362500000085,"y_acceleration":1.4530962500000015,"angular_acceleration":0.0},{"time":0.6200000000000003,"x":0.6174542242000005,"y":-0.09475325460000003,"angle":0.0,"x_velocity":1.5881005500000005,"y_velocity":-0.07894615000000016,"angular_velocity":0.0,"x_acceleration":-1.7914900000000138,"y_acceleration":1.5087700000000055,"angular_acceleration":0.0},{"time":0.6300000000000003,"x":0.6332424647062505,"y":-0.09546638180624994,"angle":0.0,"x_velocity":1.5692309718749988,"y_velocity":-0.0635908218749992,"angular_velocity":0.0,"x_acceleration":-1.9814287500000027,"y_acceleration":1.5618487500000011,"angular_acceleration":0.0},{"time":0.6400000000000003,"x":0.6488326144000007,"y":-0.0960233472,"angle":0.0,"x_velocity":1.5484927999999996,"y_velocity":-0.04771839999999994,"angular_velocity":0.0,"x_acceleration":-2.1651200000000124,"y_acceleration":1.6121600000000038,"angular_acceleration":0.0},{"time":0.6500000000000004,"x":0.6642063085937505,"y":-0.09641912109375003,"angle":0.0,"x_velocity":1.5259511718749983,"y_velocity":-0.0313574218749999,"angular_velocity":0.0,"x_acceleration":-2.3420312500000087,"y_acceleration":1.6595312500000032,"angular_acceleration":0.0},{"time":0.6600000000000004,"x":0.6793458606000006,"y":-0.09664896780000001,"angle":0.0,"x_velocity":1.501676549999999,"y_velocity":-0.014538149999999472,"angular_velocity":0.0,"x_acceleration":-2.5116300000000074,"y_acceleration":1.703790000000005,"angular_acceleration":0.0},{"time":0.6700000000000004,"x":0.6942343149812505,"y":-0.0967084628812501,"angle":0.0,"x_velocity":1.4757447218749995,"y_velocity":0.002707428125000133,"angular_velocity":0.0,"x_acceleration":-2.6733837500000064,"y_acceleration":1.7447637500000024,"angular_acceleration":0.0},{"time":0.6800000000000004,"x":0.7088555008000001,"y":-0.09659351040000005,"angle":0.0,"x_velocity":1.4482367999999974,"y_velocity":0.020345600000001296,"angular_velocity":0.0,"x_acceleration":-2.8267600000000073,"y_acceleration":1.7822800000000019,"angular_acceleration":0.0},{"time":0.6900000000000004,"x":0.7231940848687501,"y":-0.09630036016874996,"angle":0.0,"x_velocity":1.4192392218749985,"y_velocity":0.03834092812500112,"angular_velocity":0.0,"x_acceleration":-2.9712262500000044,"y_acceleration":1.8161662500000002,"angular_acceleration":0.0},{"time":0.7000000000000004,"x":0.7372356250000003,"y":-0.09582562500000003,"angle":0.0,"x_velocity":1.3888437499999968,"y_velocity":0.05665625000000074,"angular_velocity":0.0,"x_acceleration":-3.106250000000003,"y_acceleration":1.846249999999996,"angular_acceleration":0.0},{"time":0.7100000000000004,"x":0.7509666232562502,"y":-0.09516629795624987,"angle":0.0,"x_velocity":1.357147471874999,"y_velocity":0.07525267812500047,"angular_velocity":0.0,"x_acceleration":-3.231298750000004,"y_acceleration":1.8723587499999983,"angular_acceleration":0.0},{"time":0.7200000000000004,"x":0.7643745792000006,"y":-0.09431976960000005,"angle":0.0,"x_velocity":1.3242527999999973,"y_velocity":0.09408960000000133,"angular_velocity":0.0,"x_acceleration":-3.3458400000000097,"y_acceleration":1.8943200000000004,"angular_acceleration":0.0},{"time":0.7300000000000004,"x":0.7774480431437502,"y":-0.09328384524374983,"angle":0.0,"x_velocity":1.2902674718749987,"y_velocity":0.11312467812500016,"angular_velocity":0.0,"x_acceleration":-3.4493412500000034,"y_acceleration":1.9119612499999992,"angular_acceleration":0.0},{"time":0.7400000000000004,"x":0.7901766694,"y":-0.09205676219999998,"angle":0.0,"x_velocity":1.2553045500000017,"y_velocity":0.13231385000000007,"angular_velocity":0.0,"x_acceleration":-3.5412700000000186,"y_acceleration":1.9251100000000019,"angular_acceleration":0.0},{"time":0.7500000000000004,"x":0.8025512695312504,"y":-0.09063720703124989,"angle":0.0,"x_velocity":1.2194824218749982,"y_velocity":0.1516113281250009,"angular_velocity":0.0,"x_acceleration":-3.621093749999993,"y_acceleration":1.93359375,"angular_acceleration":0.0},{"time":0.7600000000000005,"x":0.8145638655999998,"y":-0.08902433279999977,"angle":0.0,"x_velocity":1.1829247999999994,"y_velocity":0.17096960000000117,"angular_velocity":0.0,"x_acceleration":-3.688279999999992,"y_acceleration":1.9372399999999992,"angular_acceleration":0.0},{"time":0.7700000000000005,"x":0.8262077434187507,"y":-0.08721777631875,"angle":0.0,"x_velocity":1.145760721874999,"y_velocity":0.19033942812500015,"angular_velocity":0.0,"x_acceleration":-3.7422962500000096,"y_acceleration":1.9358762500000033,"angular_acceleration":0.0},{"time":0.7800000000000005,"x":0.8374775058000006,"y":-0.0852176753999998,"angle":0.0,"x_velocity":1.1081245499999977,"y_velocity":0.20966985000000093,"angular_velocity":0.0,"x_acceleration":-3.782609999999991,"y_acceleration":1.9293299999999967,"angular_acceleration":0.0},{"time":0.7900000000000005,"x":0.8483691258062505,"y":-0.08302468610624991,"angle":0.0,"x_velocity":1.0701559718749962,"y_velocity":0.22890817812500108,"angular_velocity":0.0,"x_acceleration":-3.8086887499999946,"y_acceleration":1.9174287499999974,"angular_acceleration":0.0},{"time":0.8000000000000005,"x":0.8588799999999999,"y":-0.08063999999999982,"angle":0.0,"x_velocity":1.0319999999999983,"y_velocity":0.24800000000000066,"angular_velocity":0.0,"x_acceleration":-3.8200000000000074,"y_acceleration":1.900000000000004,"angular_acceleration":0.0},{"time":0.8100000000000005,"x":0.8690090016937504,"y":-0.07806536139374998,"angle":0.0,"x_velocity":0.9938069718749993,"y_velocity":0.26688917812500046,"angular_velocity":0.0,"x_acceleration":-3.8160112500000025,"y_acceleration":1.8768712500000007,"angular_acceleration":0.0},{"time":0.8200000000000005,"x":0.878756534200001,"y":-0.0753030845999999,"angle":0.0,"x_velocity":0.9557325499999987,"y_velocity":0.28551785000000107,"angular_velocity":0.0,"x_acceleration":-3.796190000000003,"y_acceleration":1.8478700000000003,"angular_acceleration":0.0},{"time":0.8300000000000005,"x":0.8881245840812502,"y":-0.07235607118124976,"angle":0.0,"x_velocity":0.9179377218749991,"y_velocity":0.3038264281249998,"angular_velocity":0.0,"x_acceleration":-3.7600037500000028,"y_acceleration":1.8128237499999997,"angular_acceleration":0.0},{"time":0.8400000000000005,"x":0.8971167744000004,"y":-0.06922782719999987,"angle":0.0,"x_velocity":0.8805887999999982,"y_velocity":0.32175360000000053,"angular_velocity":0.0,"x_acceleration":-3.7069199999999967,"y_acceleration":1.771560000000001,"angular_acceleration":0.0},{"time":0.8500000000000005,"x":0.90573841796875,"y":-0.0659224804687496,"angle":0.0,"x_velocity":0.8438574218749988,"y_velocity":0.33923632812500015,"angular_velocity":0.0,"x_acceleration":-3.636406249999986,"y_acceleration":1.7239062499999953,"angular_acceleration":0.0},{"time":0.8600000000000005,"x":0.9139965706000002,"y":-0.062444797799999785,"angle":0.0,"x_velocity":0.8079205500000004,"y_velocity":0.35620984999999994,"angular_velocity":0.0,"x_acceleration":-3.5479299999999725,"y_acceleration":1.6696899999999921,"angular_acceleration":0.0},{"time":0.8700000000000006,"x":0.9219000843562499,"y":-0.0588002022562496,"angle":0.0,"x_velocity":0.7729604718750043,"y_velocity":0.37260767812500006,"angular_velocity":0.0,"x_acceleration":-3.44095875,"y_acceleration":1.608738749999997,"angular_acceleration":0.0},{"time":0.8800000000000006,"x":0.9294596608000001,"y":-0.05499479039999966,"angle":0.0,"x_velocity":0.7391648000000011,"y_velocity":0.38836159999999964,"angular_velocity":0.0,"x_acceleration":-3.314959999999992,"y_acceleration":1.5408800000000014,"angular_acceleration":0.0},{"time":0.8900000000000006,"x":0.9366879042437501,"y":-0.051035349543749886,"angle":0.0,"x_velocity":0.7067264718749957,"y_velocity":0.40340167812500116,"angular_velocity":0.0,"x_acceleration":-3.1694012499999857,"y_acceleration":1.4659412499999966,"angular_acceleration":0.0},{"time":0.9000000000000006,"x":0.9435993750000007,"y":-0.046929374999999496,"angle":0.0,"x_velocity":0.6758437500000003,"y_velocity":0.4176562500000012,"angular_velocity":0.0,"x_acceleration":-3.0037499999999966,"y_acceleration":1.3837499999999956,"angular_acceleration":0.0},{"time":0.9100000000000006,"x":0.9502106426312498,"y":-0.04268508733124987,"angle":0.0,"x_velocity":0.6467202218750003,"y_velocity":0.43105192812499915,"angular_velocity":0.0,"x_acceleration":-2.8174737499999907,"y_acceleration":1.2941337499999932,"angular_acceleration":0.0},{"time":0.9200000000000006,"x":0.9565403392000009,"y":-0.03831144959999955,"angle":0.0,"x_velocity":0.6195647999999974,"y_velocity":0.4435136000000002,"angular_velocity":0.0,"x_acceleration":-2.6100399999999837,"y_acceleration":1.196919999999995,"angular_acceleration":0.0},{"time":0.9300000000000006,"x":0.9626092125187493,"y":-0.033818184618749525,"angle":0.0,"x_velocity":0.5945917218749983,"y_velocity":0.4549644281249998,"angular_velocity":0.0,"x_acceleration":-2.3809162499999985,"y_acceleration":1.0919362499999892,"angular_acceleration":0.0},{"time":0.9400000000000006,"x":0.9684401794000013,"y":-0.02921579219999959,"angle":0.0,"x_velocity":0.5720205499999977,"y_velocity":0.46532585000000104,"angular_velocity":0.0,"x_acceleration":-2.129569999999987,"y_acceleration":0.9790099999999882,"angular_acceleration":0.0},{"time":0.9500000000000006,"x":0.9740583789062511,"y":-0.024515566406249967,"angle":0.0,"x_velocity":0.5520761718750009,"y_velocity":0.47451757812499995,"angular_velocity":0.0,"x_acceleration":-1.8554687499999858,"y_acceleration":0.8579687499999906,"angular_acceleration":0.0},{"time":0.9600000000000006,"x":0.9794912256000008,"y":-0.01972961279999974,"angle":0.0,"x_velocity":0.5349888000000007,"y_velocity":0.4824576000000018,"angular_velocity":0.0,"x_acceleration":-1.5580799999999897,"y_acceleration":0.7286399999999951,"angular_acceleration":0.0},{"time":0.9700000000000006,"x":0.9847684627937499,"y":-0.014870865693749513,"angle":0.0,"x_velocity":0.5209939718750007,"y_velocity":0.48906217812499975,"angular_velocity":0.0,"x_acceleration":-1.236871249999993,"y_acceleration":0.590851249999993,"angular_acceleration":0.0},{"time":0.9800000000000006,"x":0.989922215800001,"y":-0.00995310539999994,"angle":0.0,"x_velocity":0.5103325500000011,"y_velocity":0.49424585000000043,"angular_velocity":0.0,"x_acceleration":-0.8913099999999758,"y_acceleration":0.4444299999999899,"angular_acceleration":0.0},{"time":0.9900000000000007,"x":0.9949870451812508,"y":-0.004990975481249826,"angle":0.0,"x_velocity":0.503250721875002,"y_velocity":0.4979214281249993,"angular_velocity":0.0,"x_acceleration":-0.5208637499999895,"y_acceleration":0.28920374999999154,"angular_acceleration":0.0},{"time":1.0000000000000007,"x":1.0000000000000004,"y":3.33066907387547e-16,"angle":0.0,"x_velocity":0.4999999999999999,"y_velocity":0.5000000000000001,"angular_velocity":0.0,"x_acceleration":-0.12500000000000375,"y_acceleration":0.12500000000001874,"angular_acceleration":0.0},{"time":1.0100000000000007,"x":1.0049928181187504,"y":0.0050108671562503395,"angle":0.0,"x_velocity":0.4984709968749999,"y_velocity":0.5026281406250003,"angular_velocity":0.0,"x_acceleration":-0.1805762500000037,"y_acceleration":0.3978312500000179,"angular_acceleration":0.0},{"time":1.0200000000000007,"x":1.0099675898000002,"y":0.01006137900000035,"angle":0.0,"x_velocity":0.4963929499999999,"y_velocity":0.5079012500000004,"angular_velocity":0.0,"x_acceleration":-0.23481000000000368,"y_acceleration":0.6540500000000169,"angular_acceleration":0.0},{"time":1.0300000000000007,"x":1.0149188916062502,"y":0.015177160218750357,"angle":0.0,"x_velocity":0.4937792468749998,"y_velocity":0.5156548906250007,"angular_velocity":0.0,"x_acceleration":-0.2877087500000036,"y_acceleration":0.8939937500000161,"angular_acceleration":0.0},{"time":1.0400000000000007,"x":1.0198414336000003,"y":0.02038220800000037,"angle":0.0,"x_velocity":0.4906431999999997,"y_velocity":0.5257280000000008,"angular_velocity":0.0,"x_acceleration":-0.33928000000000363,"y_acceleration":1.1180000000000152,"angular_acceleration":0.0},{"time":1.0500000000000007,"x":1.0247300585937502,"y":0.025698925781250385,"angle":0.0,"x_velocity":0.4869980468749997,"y_velocity":0.537962890625001,"angular_velocity":0.0,"x_acceleration":-0.38953125000000355,"y_acceleration":1.3264062500000142,"angular_acceleration":0.0},{"time":1.0600000000000007,"x":1.0295797414000003,"y":0.0311481570000004,"angle":0.0,"x_velocity":0.4828569499999998,"y_velocity":0.5522052500000011,"angular_velocity":0.0,"x_acceleration":-0.4384700000000034,"y_acceleration":1.5195500000000133,"angular_acceleration":0.0},{"time":1.0700000000000007,"x":1.0343855880812505,"y":0.03674921884375042,"angle":0.0,"x_velocity":0.47823299687499965,"y_velocity":0.5683041406250011,"angular_velocity":0.0,"x_acceleration":-0.4861037500000034,"y_acceleration":1.6977687500000123,"angular_acceleration":0.0},{"time":1.0800000000000007,"x":1.0391428352000005,"y":0.04251993600000043,"angle":0.0,"x_velocity":0.4731391999999996,"y_velocity":0.5861120000000014,"angular_velocity":0.0,"x_acceleration":-0.5324400000000034,"y_acceleration":1.8614000000000117,"angular_acceleration":0.0},{"time":1.0900000000000007,"x":1.0438468490687505,"y":0.048476674406250454,"angle":0.0,"x_velocity":0.4675884968749996,"y_velocity":0.6054846406250015,"angular_velocity":0.0,"x_acceleration":-0.5774862500000033,"y_acceleration":2.0107812500000106,"angular_acceleration":0.0},{"time":1.1000000000000008,"x":1.0484931250000002,"y":0.05463437500000048,"angle":0.0,"x_velocity":0.4615937499999996,"y_velocity":0.6262812500000016,"angular_velocity":0.0,"x_acceleration":-0.6212500000000032,"y_acceleration":2.14625000000001,"angular_acceleration":0.0},{"time":1.1100000000000008,"x":1.0530772865562505,"y":0.0610065874687505,"angle":0.0,"x_velocity":0.4551677468749995,"y_velocity":0.6483643906250018,"angular_velocity":0.0,"x_acceleration":-0.6637387500000033,"y_acceleration":2.2681437500000086,"angular_acceleration":0.0},{"time":1.1200000000000008,"x":1.0575950848000009,"y":0.06760550400000054,"angle":0.0,"x_velocity":0.4483231999999994,"y_velocity":0.6716000000000018,"angular_velocity":0.0,"x_acceleration":-0.7049600000000031,"y_acceleration":2.376800000000008,"angular_acceleration":0.0},{"time":1.1300000000000008,"x":1.0620423975437503,"y":0.07444199303125054,"angle":0.0,"x_velocity":0.44107274687499937,"y_velocity":0.695857390625002,"angular_velocity":0.0,"x_acceleration":-0.7449212500000031,"y_acceleration":2.4725562500000073,"angular_acceleration":0.0},{"time":1.1400000000000008,"x":1.0664152286000004,"y":0.08152563300000057,"angle":0.0,"x_velocity":0.4334289499999994,"y_velocity":0.721009250000002,"angular_velocity":0.0,"x_acceleration":-0.7836300000000029,"y_acceleration":2.555750000000006,"angular_acceleration":0.0},{"time":1.1500000000000008,"x":1.0707097070312503,"y":0.0888647460937506,"angle":0.0,"x_velocity":0.42540429687499937,"y_velocity":0.7469316406250021,"angular_velocity":0.0,"x_acceleration":-0.821093750000003,"y_acceleration":2.6267187500000055,"angular_acceleration":0.0},{"time":1.1600000000000008,"x":1.0749220864000004,"y":0.09646643200000064,"angle":0.0,"x_velocity":0.41701119999999925,"y_velocity":0.7735040000000021,"angular_velocity":0.0,"x_acceleration":-0.857320000000003,"y_acceleration":2.685800000000005,"angular_acceleration":0.0},{"time":1.1700000000000008,"x":1.0790487440187504,"y":0.10433660165625065,"angle":0.0,"x_velocity":0.4082619968749993,"y_velocity":0.8006091406250022,"angular_velocity":0.0,"x_acceleration":-0.8923162500000029,"y_acceleration":2.7333312500000035,"angular_acceleration":0.0},{"time":1.1800000000000008,"x":1.0830861802000002,"y":0.11248001100000067,"angle":0.0,"x_velocity":0.39916894999999925,"y_velocity":0.8281332500000024,"angular_velocity":0.0,"x_acceleration":-0.9260900000000027,"y_acceleration":2.769650000000002,"angular_acceleration":0.0},{"time":1.1900000000000008,"x":1.0870310175062503,"y":0.1209002947187507,"angle":0.0,"x_velocity":0.3897442468749992,"y_velocity":0.8559658906250025,"angular_velocity":0.0,"x_acceleration":-0.9586487500000028,"y_acceleration":2.7950937500000013,"angular_acceleration":0.0},{"time":1.2000000000000008,"x":1.0908800000000007,"y":0.12960000000000071,"angle":0.0,"x_velocity":0.37999999999999917,"y_velocity":0.8840000000000023,"angular_velocity":0.0,"x_acceleration":-0.9900000000000025,"y_acceleration":2.810000000000001,"angular_acceleration":0.0},{"time":1.2100000000000009,"x":1.0946299924937504,"y":0.1385806202812508,"angle":0.0,"x_velocity":0.3699482468749991,"y_velocity":0.9121318906250024,"angular_velocity":0.0,"x_acceleration":-1.0201512500000023,"y_acceleration":2.81470625,"angular_acceleration":0.0},{"time":1.2200000000000009,"x":1.0982779798,"y":0.14784262900000084,"angle":0.0,"x_velocity":0.35960094999999914,"y_velocity":0.9402612500000024,"angular_velocity":0.0,"x_acceleration":-1.0491100000000024,"y_acceleration":2.8095499999999993,"angular_acceleration":0.0},{"time":1.2300000000000009,"x":1.1018210659812502,"y":0.15738551334375087,"angle":0.0,"x_velocity":0.348969996874999,"y_velocity":0.9682911406250022,"angular_velocity":0.0,"x_acceleration":-1.0768837500000024,"y_acceleration":2.794868749999999,"angular_acceleration":0.0},{"time":1.2400000000000009,"x":1.1052564736000003,"y":0.16720780800000087,"angle":0.0,"x_velocity":0.33806719999999907,"y_velocity":0.9961280000000025,"angular_velocity":0.0,"x_acceleration":-1.1034800000000022,"y_acceleration":2.770999999999998,"angular_acceleration":0.0},{"time":1.2500000000000009,"x":1.1085815429687502,"y":0.17730712890625092,"angle":0.0,"x_velocity":0.32690429687499906,"y_velocity":1.0236816406250022,"angular_velocity":0.0,"x_acceleration":-1.128906250000002,"y_acceleration":2.738281249999997,"angular_acceleration":0.0},{"time":1.260000000000001,"x":1.1117937314000004,"y":0.18768020700000093,"angle":0.0,"x_velocity":0.315492949999999,"y_velocity":1.0508652500000022,"angular_velocity":0.0,"x_acceleration":-1.1531700000000022,"y_acceleration":2.697049999999995,"angular_acceleration":0.0},{"time":1.270000000000001,"x":1.1148906124562503,"y":0.198322921968751,"angle":0.0,"x_velocity":0.3038447468749989,"y_velocity":1.0775953906250024,"angular_velocity":0.0,"x_acceleration":-1.176278750000002,"y_acceleration":2.647643749999995,"angular_acceleration":0.0},{"time":1.280000000000001,"x":1.1178698752000003,"y":0.20923033600000102,"angle":0.0,"x_velocity":0.29197119999999893,"y_velocity":1.1037920000000023,"angular_velocity":0.0,"x_acceleration":-1.198240000000002,"y_acceleration":2.5903999999999945,"angular_acceleration":0.0},{"time":1.290000000000001,"x":1.1207293234437503,"y":0.22039672753125106,"angle":0.0,"x_velocity":0.2798837468749989,"y_velocity":1.1293783906250026,"angular_velocity":0.0,"x_acceleration":-1.2190612500000018,"y_acceleration":2.5256562499999937,"angular_acceleration":0.0},{"time":1.300000000000001,"x":1.123466875,"y":0.2318156250000011,"angle":0.0,"x_velocity":0.26759374999999885,"y_velocity":1.1542812500000024,"angular_velocity":0.0,"x_acceleration":-1.2387500000000018,"y_acceleration":2.453749999999993,"angular_acceleration":0.0},{"time":1.310000000000001,"x":1.1260805609312503,"y":0.24347984059375113,"angle":0.0,"x_velocity":0.25511249687499876,"y_velocity":1.1784306406250022,"angular_velocity":0.0,"x_acceleration":-1.2573137500000018,"y_acceleration":2.3750187499999926,"angular_acceleration":0.0},{"time":1.320000000000001,"x":1.1285685248000004,"y":0.2553815040000011,"angle":0.0,"x_velocity":0.24245119999999876,"y_velocity":1.201760000000002,"angular_velocity":0.0,"x_acceleration":-1.2747600000000017,"y_acceleration":2.2897999999999916,"angular_acceleration":0.0},{"time":1.330000000000001,"x":1.13092902191875,"y":0.26751209615625116,"angle":0.0,"x_velocity":0.22962099687499876,"y_velocity":1.224206140625002,"angular_velocity":0.0,"x_acceleration":-1.2910962500000018,"y_acceleration":2.1984312499999916,"angular_acceleration":0.0},{"time":1.340000000000001,"x":1.1331604186,"y":0.2798624830000012,"angle":0.0,"x_velocity":0.21663294999999874,"y_velocity":1.2457092500000022,"angular_velocity":0.0,"x_acceleration":-1.3063300000000013,"y_acceleration":2.1012499999999883,"angular_acceleration":0.0},{"time":1.350000000000001,"x":1.13526119140625,"y":0.29242294921875117,"angle":0.0,"x_velocity":0.20349804687499873,"y_velocity":1.2662128906250023,"angular_velocity":0.0,"x_acceleration":-1.3204687500000012,"y_acceleration":1.9985937499999888,"angular_acceleration":0.0},{"time":1.360000000000001,"x":1.1372299264000005,"y":0.3051832320000013,"angle":0.0,"x_velocity":0.19022719999999865,"y_velocity":1.285664000000002,"angular_velocity":0.0,"x_acceleration":-1.3335200000000014,"y_acceleration":1.890799999999989,"angular_acceleration":0.0},{"time":1.370000000000001,"x":1.13906531839375,"y":0.3181325547812513,"angle":0.0,"x_velocity":0.17683124687499863,"y_velocity":1.304012890625002,"angular_velocity":0.0,"x_acceleration":-1.3454912500000011,"y_acceleration":1.778206249999989,"angular_acceleration":0.0},{"time":1.380000000000001,"x":1.1407661701999998,"y":0.3312596610000013,"angle":0.0,"x_velocity":0.16332094999999866,"y_velocity":1.3212132500000018,"angular_velocity":0.0,"x_acceleration":-1.356390000000001,"y_acceleration":1.661149999999989,"angular_acceleration":0.0},{"time":1.390000000000001,"x":1.1423313918812503,"y":0.34455284784375134,"angle":0.0,"x_velocity":0.14970699687499864,"y_velocity":1.3372221406250018,"angular_velocity":0.0,"x_acceleration":-1.3662237500000012,"y_acceleration":1.5399687499999883,"angular_acceleration":0.0},{"time":1.400000000000001,"x":1.1437600000000003,"y":0.35800000000000143,"angle":0.0,"x_velocity":0.13599999999999857,"y_velocity":1.3520000000000016,"angular_velocity":0.0,"x_acceleration":-1.3750000000000009,"y_acceleration":1.414999999999988,"angular_acceleration":0.0},{"time":1.410000000000001,"x":1.14505111686875,"y":0.3715886234062514,"angle":0.0,"x_velocity":0.12221049687499855,"y_velocity":1.3655106406250015,"angular_velocity":0.0,"x_acceleration":-1.3827262500000006,"y_acceleration":1.286581249999986,"angular_acceleration":0.0},{"time":1.420000000000001,"x":1.1462039698000002,"y":0.3853058790000014,"angle":0.0,"x_velocity":0.10834894999999867,"y_velocity":1.3777212500000011,"angular_velocity":0.0,"x_acceleration":-1.389410000000001,"y_acceleration":1.1550499999999868,"angular_acceleration":0.0},{"time":1.430000000000001,"x":1.14721789035625,"y":0.3991386164687514,"angle":0.0,"x_velocity":0.09442574687499856,"y_velocity":1.3886023906250013,"angular_velocity":0.0,"x_acceleration":-1.395058750000001,"y_acceleration":1.0207437499999878,"angular_acceleration":0.0},{"time":1.440000000000001,"x":1.1480923136000003,"y":0.41307340800000153,"angle":0.0,"x_velocity":0.08045119999999847,"y_velocity":1.3981280000000011,"angular_velocity":0.0,"x_acceleration":-1.3996800000000003,"y_acceleration":0.8839999999999844,"angular_acceleration":0.0},{"time":1.450000000000001,"x":1.14882677734375,"y":0.4270965820312515,"angle":0.0,"x_velocity":0.06643554687499861,"y_velocity":1.4062753906250007,"angular_velocity":0.0,"x_acceleration":-1.4032812500000007,"y_acceleration":0.7451562499999866,"angular_acceleration":0.0},{"time":1.460000000000001,"x":1.1494209214,"y":0.4411942570000015,"angle":0.0,"x_velocity":0.052388949999998505,"y_velocity":1.4130252500000002,"angular_velocity":0.0,"x_acceleration":-1.4058700000000004,"y_acceleration":0.6045499999999873,"angular_acceleration":0.0},{"time":1.470000000000001,"x":1.14987448683125,"y":0.4553523750937515,"angle":0.0,"x_velocity":0.03832149687499844,"y_velocity":1.418361640625,"angular_velocity":0.0,"x_acceleration":-1.4074537500000002,"y_acceleration":0.4625187499999823,"angular_acceleration":0.0},{"time":1.480000000000001,"x":1.1501873152000004,"y":0.46955673600000153,"angle":0.0,"x_velocity":0.024243199999998497,"y_velocity":1.422272,"angular_velocity":0.0,"x_acceleration":-1.40804,"y_acceleration":0.3193999999999848,"angular_acceleration":0.0},{"time":1.490000000000001,"x":1.15035934781875,"y":0.48379303065625157,"angle":0.0,"x_velocity":0.01016399687499846,"y_velocity":1.4247471406250003,"angular_velocity":0.0,"x_acceleration":-1.40763625,"y_acceleration":0.17553124999998282,"angular_acceleration":0.0},{"time":1.500000000000001,"x":1.1503906249999998,"y":0.49804687500000144,"angle":0.0,"x_velocity":-0.003906250000001506,"y_velocity":1.4257812500000002,"angular_velocity":0.0,"x_acceleration":-1.4062499999999998,"y_acceleration":0.031249999999986677,"angular_acceleration":0.0},{"time":1.5100000000000011,"x":1.15028128530625,"y":0.5123038437187516,"angle":0.0,"x_velocity":-0.017957753125001624,"y_velocity":1.4253718906250006,"angular_velocity":0.0,"x_acceleration":-1.4038887499999992,"y_acceleration":-0.11310625000001906,"angular_acceleration":0.0},{"time":1.5200000000000011,"x":1.1500315648,"y":0.5265495040000017,"angle":0.0,"x_velocity":-0.03198080000000167,"y_velocity":1.4235199999999992,"angular_velocity":0.0,"x_acceleration":-1.4005599999999996,"y_acceleration":-0.25720000000001786,"angular_acceleration":0.0},{"time":1.5300000000000011,"x":1.1496417962937497,"y":0.5407694492812516,"angle":0.0,"x_velocity":-0.04596575312500148,"y_velocity":1.4202298906249995,"angular_velocity":0.0,"x_acceleration":-1.3962712499999996,"y_acceleration":-0.4006937500000127,"angular_acceleration":0.0},{"time":1.5400000000000011,"x":1.1491124085999997,"y":0.5549493330000017,"angle":0.0,"x_velocity":-0.059903050000001616,"y_velocity":1.4155092499999988,"angular_velocity":0.0,"x_acceleration":-1.3910299999999989,"y_acceleration":-0.5432500000000182,"angular_acceleration":0.0},{"time":1.5500000000000012,"x":1.14844392578125,"y":0.5690749023437516,"angle":0.0,"x_velocity":-0.07378320312500151,"y_velocity":1.4093691406249984,"angular_velocity":0.0,"x_acceleration":-1.3848437499999995,"y_acceleration":-0.6845312500000151,"angular_acceleration":0.0},{"time":1.5600000000000012,"x":1.1476369664000001,"y":0.5831320320000017,"angle":0.0,"x_velocity":-0.08759680000000161,"y_velocity":1.4018239999999993,"angular_velocity":0.0,"x_acceleration":-1.3777199999999992,"y_acceleration":-0.8242000000000171,"angular_acceleration":0.0},{"time":1.5700000000000012,"x":1.1466922427687498,"y":0.5971067579062518,"angle":0.0,"x_velocity":-0.10133450312500165,"y_velocity":1.392891640624999,"angular_velocity":0.0,"x_acceleration":-1.3696662499999988,"y_acceleration":-0.9619187500000184,"angular_acceleration":0.0},{"time":1.5800000000000012,"x":1.1456105601999997,"y":0.6109853110000015,"angle":0.0,"x_velocity":-0.11498705000000156,"y_velocity":1.3825932499999982,"angular_velocity":0.0,"x_acceleration":-1.3606899999999993,"y_acceleration":-1.0973500000000165,"angular_acceleration":0.0},{"time":1.5900000000000012,"x":1.1443928162562498,"y":0.6247541509687519,"angle":0.0,"x_velocity":-0.1285452531250017,"y_velocity":1.3709533906249989,"angular_velocity":0.0,"x_acceleration":-1.3507987499999992,"y_acceleration":-1.2301562500000163,"angular_acceleration":0.0},{"time":1.6000000000000012,"x":1.1430399999999998,"y":0.6384000000000016,"angle":0.0,"x_velocity":-0.14200000000000151,"y_velocity":1.3579999999999985,"angular_velocity":0.0,"x_acceleration":-1.3399999999999987,"y_acceleration":-1.3600000000000172,"angular_acceleration":0.0},{"time":1.6100000000000012,"x":1.1415531912437498,"y":0.6519098765312518,"angle":0.0,"x_velocity":-0.15534225312500155,"y_velocity":1.3437643906249983,"angular_velocity":0.0,"x_acceleration":-1.3283012499999982,"y_acceleration":-1.4865437500000152,"angular_acceleration":0.0},{"time":1.6200000000000012,"x":1.1399335597999996,"y":0.6652711290000015,"angle":0.0,"x_velocity":-0.1685630500000015,"y_velocity":1.3282812499999972,"angular_velocity":0.0,"x_acceleration":-1.3157099999999984,"y_acceleration":-1.609450000000015,"angular_acceleration":0.0},{"time":1.6300000000000012,"x":1.13818236473125,"y":0.6784714695937516,"angle":0.0,"x_velocity":-0.1816535031250016,"y_velocity":1.311588640624997,"angular_velocity":0.0,"x_acceleration":-1.3022337499999983,"y_acceleration":-1.7283812500000124,"angular_acceleration":0.0},{"time":1.6400000000000012,"x":1.1363009536,"y":0.6914990080000014,"angle":0.0,"x_velocity":-0.19460480000000183,"y_velocity":1.293727999999998,"angular_velocity":0.0,"x_acceleration":-1.2878799999999977,"y_acceleration":-1.843000000000016,"angular_acceleration":0.0},{"time":1.6500000000000012,"x":1.1342907617187497,"y":0.7043422851562515,"angle":0.0,"x_velocity":-0.20740820312500144,"y_velocity":1.274744140624997,"angular_velocity":0.0,"x_acceleration":-1.2726562499999983,"y_acceleration":-1.952968750000009,"angular_acceleration":0.0},{"time":1.6600000000000013,"x":1.1321533113999998,"y":0.7169903070000014,"angle":0.0,"x_velocity":-0.22005505000000133,"y_velocity":1.254685249999997,"angular_velocity":0.0,"x_acceleration":-1.2565699999999982,"y_acceleration":-2.0579500000000124,"angular_acceleration":0.0},{"time":1.6700000000000013,"x":1.1298902112062497,"y":0.7294325782187517,"angle":0.0,"x_velocity":-0.2325367531250016,"y_velocity":1.2336028906249958,"angular_velocity":0.0,"x_acceleration":-1.2396287499999974,"y_acceleration":-2.1576062500000077,"angular_acceleration":0.0},{"time":1.6800000000000013,"x":1.1275031551999999,"y":0.7416591360000014,"angle":0.0,"x_velocity":-0.24484480000000158,"y_velocity":1.2115519999999975,"angular_velocity":0.0,"x_acceleration":-1.2218399999999972,"y_acceleration":-2.2516000000000176,"angular_acceleration":0.0},{"time":1.6900000000000013,"x":1.1249939221937497,"y":0.7536605837812514,"angle":0.0,"x_velocity":-0.2569707531250016,"y_velocity":1.1885908906249973,"angular_velocity":0.0,"x_acceleration":-1.2032112499999972,"y_acceleration":-2.3395937500000095,"angular_acceleration":0.0},{"time":1.7000000000000013,"x":1.1223643749999996,"y":0.7654281250000016,"angle":0.0,"x_velocity":-0.26890625000000157,"y_velocity":1.1647812499999972,"angular_velocity":0.0,"x_acceleration":-1.183749999999997,"y_acceleration":-2.421250000000004,"angular_acceleration":0.0},{"time":1.7100000000000013,"x":1.11961645968125,"y":0.7769535968437519,"angle":0.0,"x_velocity":-0.28064300312500134,"y_velocity":1.1401881406249963,"angular_velocity":0.0,"x_acceleration":-1.1634637499999976,"y_acceleration":-2.4962312500000152,"angular_acceleration":0.0},{"time":1.7200000000000013,"x":1.1167522047999996,"y":0.7882295040000012,"angle":0.0,"x_velocity":-0.29217280000000145,"y_velocity":1.1148799999999954,"angular_velocity":0.0,"x_acceleration":-1.142359999999997,"y_acceleration":-2.564200000000003,"angular_acceleration":0.0},{"time":1.7300000000000013,"x":1.1137737206687497,"y":0.7992490524062511,"angle":0.0,"x_velocity":-0.30348750312500167,"y_velocity":1.0889286406249972,"angular_velocity":0.0,"x_acceleration":-1.1204462499999968,"y_acceleration":-2.6248187500000064,"angular_acceleration":0.0},{"time":1.7400000000000013,"x":1.1106831985999994,"y":0.8100061830000015,"angle":0.0,"x_velocity":-0.31457905000000147,"y_velocity":1.0624092499999964,"angular_velocity":0.0,"x_acceleration":-1.0977299999999968,"y_acceleration":-2.677750000000014,"angular_acceleration":0.0},{"time":1.7500000000000013,"x":1.1074829101562493,"y":0.8204956054687514,"angle":0.0,"x_velocity":-0.3254394531250014,"y_velocity":1.0354003906249964,"angular_velocity":0.0,"x_acceleration":-1.0742187499999967,"y_acceleration":-2.72265625,"angular_acceleration":0.0},{"time":1.7600000000000013,"x":1.1041752063999999,"y":0.830712832000001,"angle":0.0,"x_velocity":-0.3360608000000013,"y_velocity":1.007983999999996,"angular_velocity":0.0,"x_acceleration":-1.049919999999997,"y_acceleration":-2.7592000000000034,"angular_acceleration":0.0},{"time":1.7700000000000014,"x":1.1007625171437494,"y":0.840654211031251,"angle":0.0,"x_velocity":-0.3464352531250015,"y_velocity":0.9802453906249955,"angular_velocity":0.0,"x_acceleration":-1.0248412499999962,"y_acceleration":-2.7870437500000023,"angular_acceleration":0.0},{"time":1.7800000000000014,"x":1.0972473501999993,"y":0.8503169610000019,"angle":0.0,"x_velocity":-0.3565550500000012,"y_velocity":0.9522732499999949,"angular_velocity":0.0,"x_acceleration":-0.9989899999999972,"y_acceleration":-2.805849999999996,"angular_acceleration":0.0},{"time":1.7900000000000014,"x":1.0936322906312494,"y":0.8596992040937517,"angle":0.0,"x_velocity":-0.3664125031250014,"y_velocity":0.9241596406249961,"angular_velocity":0.0,"x_acceleration":-0.9723737499999958,"y_acceleration":-2.8152812500000053,"angular_acceleration":0.0},{"time":1.8000000000000014,"x":1.0899199999999996,"y":0.8688000000000012,"angle":0.0,"x_velocity":-0.37600000000000156,"y_velocity":0.8959999999999937,"angular_velocity":0.0,"x_acceleration":-0.944999999999996,"y_acceleration":-2.8150000000000013,"angular_acceleration":0.0},{"time":1.8100000000000014,"x":1.0861132156187496,"y":0.8776193796562513,"angle":0.0,"x_velocity":-0.3853100031250015,"y_velocity":0.8678931406249975,"angular_velocity":0.0,"x_acceleration":-0.9168762499999956,"y_acceleration":-2.8046687499999976,"angular_acceleration":0.0},{"time":1.8200000000000014,"x":1.0822147497999992,"y":0.8861583790000014,"angle":0.0,"x_velocity":-0.39433505000000146,"y_velocity":0.8399412499999963,"angular_velocity":0.0,"x_acceleration":-0.8880099999999959,"y_acceleration":-2.7839499999999973,"angular_acceleration":0.0},{"time":1.8300000000000014,"x":1.0782274891062493,"y":0.8944190727187507,"angle":0.0,"x_velocity":-0.4030677531250014,"y_velocity":0.8122498906249973,"angular_velocity":0.0,"x_acceleration":-0.8584087499999955,"y_acceleration":-2.7525062500000033,"angular_acceleration":0.0},{"time":1.8400000000000014,"x":1.0741543935999995,"y":0.9024046080000012,"angle":0.0,"x_velocity":-0.4115008000000011,"y_velocity":0.7849279999999972,"angular_velocity":0.0,"x_acceleration":-0.828079999999995,"y_acceleration":-2.710000000000001,"angular_acceleration":0.0},{"time":1.8500000000000014,"x":1.0699984960937494,"y":0.9101192382812515,"angle":0.0,"x_velocity":-0.41962695312500126,"y_velocity":0.7580878906249993,"angular_velocity":0.0,"x_acceleration":-0.7970312499999958,"y_acceleration":-2.6560937499999895,"angular_acceleration":0.0},{"time":1.8600000000000014,"x":1.0657629013999994,"y":0.9175683570000011,"angle":0.0,"x_velocity":-0.42743905000000093,"y_velocity":0.7318452499999957,"angular_velocity":0.0,"x_acceleration":-0.7652699999999952,"y_acceleration":-2.59044999999999,"angular_acceleration":0.0},{"time":1.8700000000000014,"x":1.0614507855812494,"y":0.924758531343751,"angle":0.0,"x_velocity":-0.4349300031250009,"y_velocity":0.7063191406249967,"angular_velocity":0.0,"x_acceleration":-0.7328037499999952,"y_acceleration":-2.5127312499999803,"angular_acceleration":0.0},{"time":1.8800000000000014,"x":1.0570653951999993,"y":0.931697536000001,"angle":0.0,"x_velocity":-0.44209280000000123,"y_velocity":0.6816319999999951,"angular_velocity":0.0,"x_acceleration":-0.6996399999999956,"y_acceleration":-2.4225999999999814,"angular_acceleration":0.0},{"time":1.8900000000000015,"x":1.0526100465687493,"y":0.9383943869062517,"angle":0.0,"x_velocity":-0.44892050312500076,"y_velocity":0.6579096406249967,"angular_velocity":0.0,"x_acceleration":-0.6657862499999956,"y_acceleration":-2.3197187499999856,"angular_acceleration":0.0},{"time":1.9000000000000015,"x":1.0480881249999991,"y":0.9448593750000014,"angle":0.0,"x_velocity":-0.4554062500000009,"y_velocity":0.6352812499999985,"angular_velocity":0.0,"x_acceleration":-0.6312499999999962,"y_acceleration":-2.203749999999978,"angular_acceleration":0.0},{"time":1.9100000000000015,"x":1.0435030840562494,"y":0.9511040999687506,"angle":0.0,"x_velocity":-0.46154325312500133,"y_velocity":0.6138793906249962,"angular_velocity":0.0,"x_acceleration":-0.5960387499999945,"y_acceleration":-2.074356249999987,"angular_acceleration":0.0},{"time":1.9200000000000015,"x":1.0388584447999996,"y":0.9571415040000002,"angle":0.0,"x_velocity":-0.467324800000001,"y_velocity":0.5938399999999984,"angular_velocity":0.0,"x_acceleration":-0.5601599999999942,"y_acceleration":-1.9311999999999756,"angular_acceleration":0.0},{"time":1.9300000000000015,"x":1.0341577950437493,"y":0.9629859055312504,"angle":0.0,"x_velocity":-0.47274425312500096,"y_velocity":0.5753023906249979,"angular_velocity":0.0,"x_acceleration":-0.5236212499999935,"y_acceleration":-1.7739437499999866,"angular_acceleration":0.0},{"time":1.9400000000000015,"x":1.0294047885999993,"y":0.9686530330000016,"angle":0.0,"x_velocity":-0.47779505000000044,"y_velocity":0.5584092499999933,"angular_velocity":0.0,"x_acceleration":-0.48642999999999503,"y_acceleration":-1.6022499999999766,"angular_acceleration":0.0},{"time":1.9500000000000015,"x":1.0246031445312491,"y":0.9741600585937507,"angle":0.0,"x_velocity":-0.4824707031250006,"y_velocity":0.5433066406249942,"angular_velocity":0.0,"x_acceleration":-0.4485937499999946,"y_acceleration":-1.4157812499999665,"angular_acceleration":0.0},{"time":1.9600000000000015,"x":1.0197566463999994,"y":0.9795256320000005,"angle":0.0,"x_velocity":-0.48676480000000055,"y_velocity":0.5301439999999964,"angular_velocity":0.0,"x_acceleration":-0.41011999999999427,"y_acceleration":-1.2141999999999626,"angular_acceleration":0.0},{"time":1.9700000000000015,"x":1.0148691415187494,"y":0.9847699141562507,"angle":0.0,"x_velocity":-0.49067100312500056,"y_velocity":0.5190741406250012,"angular_velocity":0.0,"x_acceleration":-0.37101624999999383,"y_acceleration":-0.9971687499999717,"angular_acceleration":0.0},{"time":1.9800000000000015,"x":1.009944540199999,"y":0.989914611000001,"angle":0.0,"x_velocity":-0.49418305000000046,"y_velocity":0.5102532499999999,"angular_velocity":0.0,"x_acceleration":-0.33128999999999387,"y_acceleration":-0.7643499999999648,"angular_acceleration":0.0},{"time":1.9900000000000015,"x":1.0049868150062493,"y":0.99498300721875,"angle":0.0,"x_velocity":-0.4972947531250007,"y_velocity":0.5038408906250034,"angular_velocity":0.0,"x_acceleration":-0.29094874999999343,"y_acceleration":-0.5154062499999625,"angular_acceleration":0.0},{"time":2.0000000000000013,"x":0.9999999999999993,"y":1.0000000000000007,"angle":0.0,"x_velocity":-0.5000000000000003,"y_velocity":0.49999999999999967,"angular_velocity":0.0,"x_acceleration":-0.25000000000003647,"y_acceleration":-0.2500000000000055,"angular_acceleration":0.0},{"time":2.010000000000001,"x":0.9949830072187494,"y":1.0049868150062504,"angle":0.0,"x_velocity":-0.5038408906250005,"y_velocity":0.49729475312499966,"angular_velocity":0.0,"x_acceleration":-0.5154062500000287,"y_acceleration":-0.29094875000000453,"angular_acceleration":0.0},{"time":2.020000000000001,"x":0.9899146109999996,"y":1.0099445402000002,"angle":0.0,"x_velocity":-0.5102532500000007,"y_velocity":0.4941830499999997,"angular_velocity":0.0,"x_acceleration":-0.7643500000000217,"y_acceleration":-0.33129000000000364,"angular_acceleration":0.0},{"time":2.0300000000000007,"x":0.9847699141562497,"y":1.0148691415187505,"angle":0.0,"x_velocity":-0.5190741406250007,"y_velocity":0.4906710031249998,"angular_velocity":0.0,"x_acceleration":-0.9971687500000156,"y_acceleration":-0.3710162500000027,"angular_acceleration":0.0},{"time":2.0400000000000005,"x":0.9795256319999999,"y":1.0197566464000005,"angle":0.0,"x_velocity":-0.5301440000000006,"y_velocity":0.48676479999999983,"angular_velocity":0.0,"x_acceleration":-1.21420000000001,"y_acceleration":-0.4101200000000018,"angular_acceleration":0.0},{"time":2.0500000000000003,"x":0.9741600585937498,"y":1.0246031445312502,"angle":0.0,"x_velocity":-0.5433066406250004,"y_velocity":0.4824707031249999,"angular_velocity":0.0,"x_acceleration":-1.415781250000005,"y_acceleration":-0.448593750000001,"angular_acceleration":0.0},{"time":2.06,"x":0.968653033,"y":1.0294047886,"angle":0.0,"x_velocity":-0.5584092500000001,"y_velocity":0.47779504999999994,"angular_velocity":0.0,"x_acceleration":-1.602250000000001,"y_acceleration":-0.4864300000000002,"angular_acceleration":0.0},{"time":2.07,"x":0.9629859055312501,"y":1.03415779504375,"angle":0.0,"x_velocity":-0.5753023906249997,"y_velocity":0.47274425312500007,"angular_velocity":0.0,"x_acceleration":-1.773943749999997,"y_acceleration":-0.5236212499999995,"angular_acceleration":0.0},{"time":2.0799999999999996,"x":0.9571415040000001,"y":1.0388584448,"angle":0.0,"x_velocity":-0.5938399999999993,"y_velocity":0.4673248000000002,"angular_velocity":0.0,"x_acceleration":-1.9311999999999943,"y_acceleration":-0.5601599999999988,"angular_acceleration":0.0},{"time":2.0899999999999994,"x":0.9511040999687504,"y":1.0435030840562496,"angle":0.0,"x_velocity":-0.6138793906249987,"y_velocity":0.46154325312500033,"angular_velocity":0.0,"x_acceleration":-2.074356249999992,"y_acceleration":-0.596038749999998,"angular_acceleration":0.0},{"time":2.099999999999999,"x":0.9448593750000004,"y":1.0480881249999996,"angle":0.0,"x_velocity":-0.6352812499999981,"y_velocity":0.4554062500000005,"angular_velocity":0.0,"x_acceleration":-2.20374999999999,"y_acceleration":-0.6312499999999973,"angular_acceleration":0.0},{"time":2.109999999999999,"x":0.9383943869062507,"y":1.0526100465687493,"angle":0.0,"x_velocity":-0.6579096406249977,"y_velocity":0.44892050312500065,"angular_velocity":0.0,"x_acceleration":-2.319718749999989,"y_acceleration":-0.6657862499999966,"angular_acceleration":0.0},{"time":2.1199999999999988,"x":0.9316975360000008,"y":1.0570653951999993,"angle":0.0,"x_velocity":-0.681631999999997,"y_velocity":0.44209280000000084,"angular_velocity":0.0,"x_acceleration":-2.422599999999988,"y_acceleration":-0.6996399999999959,"angular_acceleration":0.0},{"time":2.1299999999999986,"x":0.9247585313437511,"y":1.0614507855812494,"angle":0.0,"x_velocity":-0.7063191406249963,"y_velocity":0.4349300031250011,"angular_velocity":0.0,"x_acceleration":-2.512731249999988,"y_acceleration":-0.7328037499999953,"angular_acceleration":0.0},{"time":2.1399999999999983,"x":0.9175683570000012,"y":1.0657629013999994,"angle":0.0,"x_velocity":-0.7318452499999958,"y_velocity":0.42743905000000126,"angular_velocity":0.0,"x_acceleration":-2.5904499999999886,"y_acceleration":-0.7652699999999947,"angular_acceleration":0.0},{"time":2.149999999999998,"x":0.9101192382812514,"y":1.0699984960937492,"angle":0.0,"x_velocity":-0.758087890624995,"y_velocity":0.4196269531250014,"angular_velocity":0.0,"x_acceleration":-2.6560937499999886,"y_acceleration":-0.7970312499999942,"angular_acceleration":0.0},{"time":2.159999999999998,"x":0.9024046080000017,"y":1.074154393599999,"angle":0.0,"x_velocity":-0.7849279999999944,"y_velocity":0.4115008000000017,"angular_velocity":0.0,"x_acceleration":-2.7099999999999898,"y_acceleration":-0.8280799999999937,"angular_acceleration":0.0},{"time":2.1699999999999977,"x":0.8944190727187519,"y":1.0782274891062493,"angle":0.0,"x_velocity":-0.8122498906249936,"y_velocity":0.4030677531250019,"angular_velocity":0.0,"x_acceleration":-2.7525062499999917,"y_acceleration":-0.8584087499999932,"angular_acceleration":0.0},{"time":2.1799999999999975,"x":0.8861583790000022,"y":1.082214749799999,"angle":0.0,"x_velocity":-0.8399412499999931,"y_velocity":0.39433505000000224,"angular_velocity":0.0,"x_acceleration":-2.783949999999994,"y_acceleration":-0.8880099999999927,"angular_acceleration":0.0},{"time":2.1899999999999973,"x":0.8776193796562523,"y":1.086113215618749,"angle":0.0,"x_velocity":-0.8678931406249923,"y_velocity":0.38531000312500246,"angular_velocity":0.0,"x_acceleration":-2.804668749999996,"y_acceleration":-0.9168762499999923,"angular_acceleration":0.0},{"time":2.199999999999997,"x":0.8688000000000026,"y":1.0899199999999987,"angle":0.0,"x_velocity":-0.8959999999999917,"y_velocity":0.3760000000000028,"angular_velocity":0.0,"x_acceleration":-2.814999999999998,"y_acceleration":-0.944999999999992,"angular_acceleration":0.0},{"time":2.209999999999997,"x":0.8596992040937529,"y":1.0936322906312488,"angle":0.0,"x_velocity":-0.924159640624991,"y_velocity":0.366412503125003,"angular_velocity":0.0,"x_acceleration":-2.8152812500000017,"y_acceleration":-0.9723737499999915,"angular_acceleration":0.0},{"time":2.2199999999999966,"x":0.8503169610000032,"y":1.0972473501999989,"angle":0.0,"x_velocity":-0.9522732499999906,"y_velocity":0.3565550500000033,"angular_velocity":0.0,"x_acceleration":-2.8058500000000057,"y_acceleration":-0.9989899999999913,"angular_acceleration":0.0},{"time":2.2299999999999964,"x":0.8406542110312535,"y":1.100762517143749,"angle":0.0,"x_velocity":-0.9802453906249899,"y_velocity":0.3464352531250036,"angular_velocity":0.0,"x_acceleration":-2.7870437500000085,"y_acceleration":-1.0248412499999908,"angular_acceleration":0.0},{"time":2.239999999999996,"x":0.8307128320000038,"y":1.1041752063999988,"angle":0.0,"x_velocity":-1.0079839999999896,"y_velocity":0.336060800000004,"angular_velocity":0.0,"x_acceleration":-2.7592000000000123,"y_acceleration":-1.0499199999999909,"angular_acceleration":0.0},{"time":2.249999999999996,"x":0.8204956054687541,"y":1.1074829101562487,"angle":0.0,"x_velocity":-1.0354003906249891,"y_velocity":0.3254394531250043,"angular_velocity":0.0,"x_acceleration":-2.7226562500000164,"y_acceleration":-1.0742187499999905,"angular_acceleration":0.0},{"time":2.259999999999996,"x":0.8100061830000045,"y":1.1106831985999988,"angle":0.0,"x_velocity":-1.0624092499999886,"y_velocity":0.31457905000000463,"angular_velocity":0.0,"x_acceleration":-2.677750000000021,"y_acceleration":-1.0977299999999903,"angular_acceleration":0.0},{"time":2.2699999999999956,"x":0.7992490524062549,"y":1.1137737206687488,"angle":0.0,"x_velocity":-1.0889286406249883,"y_velocity":0.30348750312500494,"angular_velocity":0.0,"x_acceleration":-2.624818750000025,"y_acceleration":-1.1204462499999903,"angular_acceleration":0.0},{"time":2.2799999999999954,"x":0.7882295040000051,"y":1.1167522047999987,"angle":0.0,"x_velocity":-1.1148799999999879,"y_velocity":0.29217280000000534,"angular_velocity":0.0,"x_acceleration":-2.5642000000000307,"y_acceleration":-1.1423599999999903,"angular_acceleration":0.0},{"time":2.289999999999995,"x":0.7769535968437555,"y":1.1196164596812486,"angle":0.0,"x_velocity":-1.140188140624988,"y_velocity":0.2806430031250056,"angular_velocity":0.0,"x_acceleration":-2.496231250000034,"y_acceleration":-1.16346374999999,"angular_acceleration":0.0},{"time":2.299999999999995,"x":0.7654281250000059,"y":1.1223643749999987,"angle":0.0,"x_velocity":-1.1647812499999879,"y_velocity":0.268906250000006,"angular_velocity":0.0,"x_acceleration":-2.421250000000041,"y_acceleration":-1.1837499999999899,"angular_acceleration":0.0},{"time":2.3099999999999947,"x":0.7536605837812562,"y":1.1249939221937486,"angle":0.0,"x_velocity":-1.1885908906249876,"y_velocity":0.25697075312500633,"angular_velocity":0.0,"x_acceleration":-2.339593750000046,"y_acceleration":-1.20321124999999,"angular_acceleration":0.0},{"time":2.3199999999999945,"x":0.7416591360000067,"y":1.1275031551999988,"angle":0.0,"x_velocity":-1.2115519999999873,"y_velocity":0.2448448000000067,"angular_velocity":0.0,"x_acceleration":-2.2516000000000496,"y_acceleration":-1.22183999999999,"angular_acceleration":0.0},{"time":2.3299999999999943,"x":0.729432578218757,"y":1.1298902112062486,"angle":0.0,"x_velocity":-1.2336028906249876,"y_velocity":0.23253675312500707,"angular_velocity":0.0,"x_acceleration":-2.157606250000054,"y_acceleration":-1.2396287499999903,"angular_acceleration":0.0},{"time":2.339999999999994,"x":0.7169903070000073,"y":1.1321533113999986,"angle":0.0,"x_velocity":-1.2546852499999879,"y_velocity":0.2200550500000074,"angular_velocity":0.0,"x_acceleration":-2.05795000000006,"y_acceleration":-1.2565699999999902,"angular_acceleration":0.0},{"time":2.349999999999994,"x":0.7043422851562579,"y":1.1342907617187488,"angle":0.0,"x_velocity":-1.274744140624988,"y_velocity":0.2074082031250078,"angular_velocity":0.0,"x_acceleration":-1.9529687500000668,"y_acceleration":-1.2726562499999905,"angular_acceleration":0.0},{"time":2.3599999999999937,"x":0.6914990080000082,"y":1.1363009535999988,"angle":0.0,"x_velocity":-1.2937279999999884,"y_velocity":0.19460480000000815,"angular_velocity":0.0,"x_acceleration":-1.8430000000000715,"y_acceleration":-1.2878799999999908,"angular_acceleration":0.0},{"time":2.3699999999999934,"x":0.6784714695937586,"y":1.1381823647312488,"angle":0.0,"x_velocity":-1.3115886406249886,"y_velocity":0.18165350312500855,"angular_velocity":0.0,"x_acceleration":-1.7283812500000768,"y_acceleration":-1.302233749999991,"angular_acceleration":0.0},{"time":2.3799999999999932,"x":0.665271129000009,"y":1.1399335597999987,"angle":0.0,"x_velocity":-1.3282812499999892,"y_velocity":0.16856305000000887,"angular_velocity":0.0,"x_acceleration":-1.609450000000082,"y_acceleration":-1.3157099999999913,"angular_acceleration":0.0},{"time":2.389999999999993,"x":0.6519098765312593,"y":1.1415531912437489,"angle":0.0,"x_velocity":-1.3437643906249896,"y_velocity":0.1553422531250093,"angular_velocity":0.0,"x_acceleration":-1.4865437500000898,"y_acceleration":-1.3283012499999916,"angular_acceleration":0.0},{"time":2.399999999999993,"x":0.6384000000000098,"y":1.143039999999999,"angle":0.0,"x_velocity":-1.3579999999999905,"y_velocity":0.14200000000000965,"angular_velocity":0.0,"x_acceleration":-1.3600000000000918,"y_acceleration":-1.3399999999999919,"angular_acceleration":0.0},{"time":2.4099999999999926,"x":0.6247541509687602,"y":1.1443928162562491,"angle":0.0,"x_velocity":-1.3709533906249907,"y_velocity":0.12854525312501003,"angular_velocity":0.0,"x_acceleration":-1.2301562500000975,"y_acceleration":-1.3507987499999925,"angular_acceleration":0.0},{"time":2.4199999999999924,"x":0.6109853110000105,"y":1.145610560199999,"angle":0.0,"x_velocity":-1.3825932499999918,"y_velocity":0.11498705000001036,"angular_velocity":0.0,"x_acceleration":-1.0973500000001009,"y_acceleration":-1.3606899999999928,"angular_acceleration":0.0},{"time":2.429999999999992,"x":0.5971067579062609,"y":1.1466922427687491,"angle":0.0,"x_velocity":-1.3928916406249925,"y_velocity":0.10133450312501076,"angular_velocity":0.0,"x_acceleration":-0.9619187500001081,"y_acceleration":-1.3696662499999934,"angular_acceleration":0.0},{"time":2.439999999999992,"x":0.5831320320000113,"y":1.1476369663999995,"angle":0.0,"x_velocity":-1.4018239999999937,"y_velocity":0.08759680000001109,"angular_velocity":0.0,"x_acceleration":-0.8242000000001104,"y_acceleration":-1.3777199999999938,"angular_acceleration":0.0},{"time":2.4499999999999917,"x":0.5690749023437617,"y":1.1484439257812495,"angle":0.0,"x_velocity":-1.4093691406249946,"y_velocity":0.07378320312501142,"angular_velocity":0.0,"x_acceleration":-0.6845312500001164,"y_acceleration":-1.3848437499999946,"angular_acceleration":0.0},{"time":2.4599999999999915,"x":0.554949333000012,"y":1.1491124085999995,"angle":0.0,"x_velocity":-1.4155092499999955,"y_velocity":0.059903050000011795,"angular_velocity":0.0,"x_acceleration":-0.5432500000001195,"y_acceleration":-1.3910299999999953,"angular_acceleration":0.0},{"time":2.4699999999999913,"x":0.5407694492812625,"y":1.1496417962937495,"angle":0.0,"x_velocity":-1.4202298906249964,"y_velocity":0.045965753125012165,"angular_velocity":0.0,"x_acceleration":-0.4006937500001264,"y_acceleration":-1.396271249999996,"angular_acceleration":0.0},{"time":2.479999999999991,"x":0.5265495040000127,"y":1.1500315648000001,"angle":0.0,"x_velocity":-1.4235199999999972,"y_velocity":0.031980800000012535,"angular_velocity":0.0,"x_acceleration":-0.25720000000013243,"y_acceleration":-1.4005599999999965,"angular_acceleration":0.0},{"time":2.489999999999991,"x":0.5123038437187629,"y":1.1502812853062498,"angle":0.0,"x_velocity":-1.4253718906249988,"y_velocity":0.01795775312501279,"angular_velocity":0.0,"x_acceleration":-0.11310625000013186,"y_acceleration":-1.4038887499999975,"angular_acceleration":0.0},{"time":2.4999999999999907,"x":0.4980468750000132,"y":1.150390625,"angle":0.0,"x_velocity":-1.4257812500000004,"y_velocity":0.003906250000013087,"angular_velocity":0.0,"x_acceleration":0.03124999999986766,"y_acceleration":-1.406249999999998,"angular_acceleration":0.0},{"time":2.5099999999999905,"x":0.4837930306562635,"y":1.1503593478187502,"angle":0.0,"x_velocity":-1.4247471406250016,"y_velocity":-0.01016399687498663,"angular_velocity":0.0,"x_acceleration":0.1755312499998647,"y_acceleration":-1.407636249999999,"angular_acceleration":0.0},{"time":2.5199999999999902,"x":0.46955673600001374,"y":1.1501873152000002,"angle":0.0,"x_velocity":-1.422272000000003,"y_velocity":-0.024243199999986274,"angular_velocity":0.0,"x_acceleration":0.31939999999986224,"y_acceleration":-1.4080399999999997,"angular_acceleration":0.0},{"time":2.52999999999999,"x":0.45535237509376425,"y":1.1498744868312503,"angle":0.0,"x_velocity":-1.418361640625005,"y_velocity":-0.038321496874985914,"angular_velocity":0.0,"x_acceleration":0.4625187499998553,"y_acceleration":-1.4074537500000013,"angular_acceleration":0.0},{"time":2.53999999999999,"x":0.4411942570000143,"y":1.1494209214000006,"angle":0.0,"x_velocity":-1.413025250000007,"y_velocity":-0.05238894999998579,"angular_velocity":0.0,"x_acceleration":0.6045499999998594,"y_acceleration":-1.4058700000000017,"angular_acceleration":0.0},{"time":2.5499999999999896,"x":0.42709658203126466,"y":1.1488267773437508,"angle":0.0,"x_velocity":-1.4062753906250078,"y_velocity":-0.06643554687498535,"angular_velocity":0.0,"x_acceleration":0.7451562499998516,"y_acceleration":-1.4032812500000034,"angular_acceleration":0.0},{"time":2.5599999999999894,"x":0.4130734080000148,"y":1.1480923136000007,"angle":0.0,"x_velocity":-1.3981280000000096,"y_velocity":-0.08045119999998518,"angular_velocity":0.0,"x_acceleration":0.8839999999998547,"y_acceleration":-1.3996800000000043,"angular_acceleration":0.0},{"time":2.569999999999989,"x":0.399138616468765,"y":1.147217890356251,"angle":0.0,"x_velocity":-1.3886023906250116,"y_velocity":-0.09442574687498483,"angular_velocity":0.0,"x_acceleration":1.020743749999852,"y_acceleration":-1.3950587500000056,"angular_acceleration":0.0},{"time":2.579999999999989,"x":0.3853058790000151,"y":1.1462039698000013,"angle":0.0,"x_velocity":-1.377721250000012,"y_velocity":-0.10834894999998476,"angular_velocity":0.0,"x_acceleration":1.1550499999998536,"y_acceleration":-1.3894100000000065,"angular_acceleration":0.0},{"time":2.5899999999999888,"x":0.3715886234062654,"y":1.1450511168687514,"angle":0.0,"x_velocity":-1.365510640625014,"y_velocity":-0.12221049687498446,"angular_velocity":0.0,"x_acceleration":1.2865812499998537,"y_acceleration":-1.3827262500000082,"angular_acceleration":0.0},{"time":2.5999999999999885,"x":0.3580000000000154,"y":1.1437600000000017,"angle":0.0,"x_velocity":-1.352000000000016,"y_velocity":-0.1359999999999842,"angular_velocity":0.0,"x_acceleration":1.41499999999985,"y_acceleration":-1.3750000000000093,"angular_acceleration":0.0},{"time":2.6099999999999883,"x":0.3445528478437657,"y":1.1423313918812519,"angle":0.0,"x_velocity":-1.337222140625018,"y_velocity":-0.14970699687498407,"angular_velocity":0.0,"x_acceleration":1.539968749999856,"y_acceleration":-1.366223750000011,"angular_acceleration":0.0},{"time":2.619999999999988,"x":0.33125966100001564,"y":1.1407661702000018,"angle":0.0,"x_velocity":-1.321213250000019,"y_velocity":-0.16332094999998387,"angular_velocity":0.0,"x_acceleration":1.6611499999998625,"y_acceleration":-1.3563900000000122,"angular_acceleration":0.0},{"time":2.629999999999988,"x":0.31813255478126595,"y":1.139065318393752,"angle":0.0,"x_velocity":-1.3040128906250228,"y_velocity":-0.17683124687498383,"angular_velocity":0.0,"x_acceleration":1.7782062499998652,"y_acceleration":-1.3454912500000138,"angular_acceleration":0.0},{"time":2.6399999999999877,"x":0.30518323200001574,"y":1.137229926400002,"angle":0.0,"x_velocity":-1.2856640000000228,"y_velocity":-0.19022719999998364,"angular_velocity":0.0,"x_acceleration":1.8907999999998655,"y_acceleration":-1.3335200000000151,"angular_acceleration":0.0},{"time":2.6499999999999875,"x":0.29242294921876577,"y":1.1352611914062527,"angle":0.0,"x_velocity":-1.2662128906250252,"y_velocity":-0.20349804687498346,"angular_velocity":0.0,"x_acceleration":1.9985937499998645,"y_acceleration":-1.320468750000017,"angular_acceleration":0.0},{"time":2.6599999999999873,"x":0.27986248300001604,"y":1.1331604186000026,"angle":0.0,"x_velocity":-1.2457092500000266,"y_velocity":-0.21663294999998334,"angular_velocity":0.0,"x_acceleration":2.101249999999876,"y_acceleration":-1.3063300000000186,"angular_acceleration":0.0},{"time":2.669999999999987,"x":0.2675120961562658,"y":1.130929021918753,"angle":0.0,"x_velocity":-1.2242061406250277,"y_velocity":-0.22962099687498314,"angular_velocity":0.0,"x_acceleration":2.1984312499998673,"y_acceleration":-1.2910962500000207,"angular_acceleration":0.0},{"time":2.679999999999987,"x":0.25538150400001586,"y":1.1285685248000032,"angle":0.0,"x_velocity":-1.2017600000000304,"y_velocity":-0.24245119999998316,"angular_velocity":0.0,"x_acceleration":2.289799999999879,"y_acceleration":-1.274760000000022,"angular_acceleration":0.0},{"time":2.6899999999999866,"x":0.2434798405937657,"y":1.1260805609312534,"angle":0.0,"x_velocity":-1.178430640625031,"y_velocity":-0.25511249687498316,"angular_velocity":0.0,"x_acceleration":2.3750187499998887,"y_acceleration":-1.2573137500000242,"angular_acceleration":0.0},{"time":2.6999999999999864,"x":0.231815625000016,"y":1.1234668750000036,"angle":0.0,"x_velocity":-1.1542812500000346,"y_velocity":-0.26759374999998325,"angular_velocity":0.0,"x_acceleration":2.4537499999999035,"y_acceleration":-1.2387500000000258,"angular_acceleration":0.0},{"time":2.709999999999986,"x":0.2203967275312656,"y":1.120729323443754,"angle":0.0,"x_velocity":-1.129378390625035,"y_velocity":-0.2798837468749832,"angular_velocity":0.0,"x_acceleration":2.5256562499999085,"y_acceleration":-1.2190612500000277,"angular_acceleration":0.0},{"time":2.719999999999986,"x":0.20923033600001573,"y":1.117869875200004,"angle":0.0,"x_velocity":-1.1037920000000367,"y_velocity":-0.29197119999998306,"angular_velocity":0.0,"x_acceleration":2.5903999999999137,"y_acceleration":-1.19824000000003,"angular_acceleration":0.0},{"time":2.7299999999999858,"x":0.19832292196876522,"y":1.1148906124562543,"angle":0.0,"x_velocity":-1.0775953906250377,"y_velocity":-0.30384474687498336,"angular_velocity":0.0,"x_acceleration":2.6476437499999292,"y_acceleration":-1.1762787500000318,"angular_acceleration":0.0},{"time":2.7399999999999856,"x":0.18768020700001498,"y":1.1117937314000046,"angle":0.0,"x_velocity":-1.0508652500000375,"y_velocity":-0.31549294999998334,"angular_velocity":0.0,"x_acceleration":2.6970499999999333,"y_acceleration":-1.153170000000034,"angular_acceleration":0.0},{"time":2.7499999999999853,"x":0.17730712890626543,"y":1.1085815429687547,"angle":0.0,"x_velocity":-1.0236816406250382,"y_velocity":-0.32690429687498346,"angular_velocity":0.0,"x_acceleration":2.738281249999943,"y_acceleration":-1.1289062500000364,"angular_acceleration":0.0},{"time":2.759999999999985,"x":0.16720780800001478,"y":1.1052564736000052,"angle":0.0,"x_velocity":-0.9961280000000423,"y_velocity":-0.3380671999999836,"angular_velocity":0.0,"x_acceleration":2.770999999999958,"y_acceleration":-1.1034800000000384,"angular_acceleration":0.0},{"time":2.769999999999985,"x":0.15738551334376483,"y":1.101821065981255,"angle":0.0,"x_velocity":-0.968291140625043,"y_velocity":-0.3489699968749839,"angular_velocity":0.0,"x_acceleration":2.7948687499999814,"y_acceleration":-1.076883750000041,"angular_acceleration":0.0},{"time":2.7799999999999847,"x":0.14784262900001433,"y":1.0982779798000053,"angle":0.0,"x_velocity":-0.9402612500000442,"y_velocity":-0.35960094999998415,"angular_velocity":0.0,"x_acceleration":2.8095499999999944,"y_acceleration":-1.0491100000000428,"angular_acceleration":0.0},{"time":2.7899999999999845,"x":0.13858062028126483,"y":1.094629992493756,"angle":0.0,"x_velocity":-0.9121318906250462,"y_velocity":-0.36994824687498423,"angular_velocity":0.0,"x_acceleration":2.814706249999997,"y_acceleration":-1.020151250000046,"angular_acceleration":0.0},{"time":2.7999999999999843,"x":0.12960000000001426,"y":1.0908800000000063,"angle":0.0,"x_velocity":-0.8840000000000439,"y_velocity":-0.3799999999999843,"angular_velocity":0.0,"x_acceleration":2.8100000000000165,"y_acceleration":-0.9900000000000483,"angular_acceleration":0.0},{"time":2.809999999999984,"x":0.12090029471876396,"y":1.0870310175062563,"angle":0.0,"x_velocity":-0.8559658906250434,"y_velocity":-0.38974424687498477,"angular_velocity":0.0,"x_acceleration":2.795093750000028,"y_acceleration":-0.9586487500000511,"angular_acceleration":0.0},{"time":2.819999999999984,"x":0.11248001100001415,"y":1.0830861802000067,"angle":0.0,"x_velocity":-0.8281332500000467,"y_velocity":-0.3991689499999852,"angular_velocity":0.0,"x_acceleration":2.769650000000052,"y_acceleration":-0.9260900000000537,"angular_acceleration":0.0},{"time":2.8299999999999836,"x":0.10433660165626257,"y":1.0790487440187564,"angle":0.0,"x_velocity":-0.8006091406250437,"y_velocity":-0.40826199687498554,"angular_velocity":0.0,"x_acceleration":2.733331250000063,"y_acceleration":-0.8923162500000561,"angular_acceleration":0.0},{"time":2.8399999999999834,"x":0.09646643200001281,"y":1.074922086400007,"angle":0.0,"x_velocity":-0.7735040000000435,"y_velocity":-0.41701119999998587,"angular_velocity":0.0,"x_acceleration":2.6858000000000857,"y_acceleration":-0.8573200000000588,"angular_acceleration":0.0},{"time":2.849999999999983,"x":0.08886474609376327,"y":1.0707097070312572,"angle":0.0,"x_velocity":-0.7469316406250446,"y_velocity":-0.42540429687498615,"angular_velocity":0.0,"x_acceleration":2.6267187500001015,"y_acceleration":-0.821093750000062,"angular_acceleration":0.0},{"time":2.859999999999983,"x":0.08152563300001248,"y":1.0664152286000075,"angle":0.0,"x_velocity":-0.7210092500000469,"y_velocity":-0.4334289499999866,"angular_velocity":0.0,"x_acceleration":2.555750000000124,"y_acceleration":-0.783630000000065,"angular_acceleration":0.0},{"time":2.869999999999983,"x":0.07444199303126209,"y":1.0620423975437576,"angle":0.0,"x_velocity":-0.6958573906250418,"y_velocity":-0.4410727468749873,"angular_velocity":0.0,"x_acceleration":2.472556250000153,"y_acceleration":-0.7449212500000679,"angular_acceleration":0.0},{"time":2.8799999999999826,"x":0.06760550400001142,"y":1.0575950848000077,"angle":0.0,"x_velocity":-0.6716000000000388,"y_velocity":-0.4483231999999875,"angular_velocity":0.0,"x_acceleration":2.3768000000001805,"y_acceleration":-0.7049600000000705,"angular_acceleration":0.0},{"time":2.8899999999999824,"x":0.061006587468761087,"y":1.053077286556258,"angle":0.0,"x_velocity":-0.6483643906250407,"y_velocity":-0.45516774687498823,"angular_velocity":0.0,"x_acceleration":2.2681437500002133,"y_acceleration":-0.6637387500000738,"angular_acceleration":0.0},{"time":2.899999999999982,"x":0.05463437500001134,"y":1.0484931250000082,"angle":0.0,"x_velocity":-0.6262812500000408,"y_velocity":-0.461593749999989,"angular_velocity":0.0,"x_acceleration":2.1462500000002365,"y_acceleration":-0.6212500000000767,"angular_acceleration":0.0},{"time":2.909999999999982,"x":0.04847667440626058,"y":1.0438468490687585,"angle":0.0,"x_velocity":-0.6054846406250327,"y_velocity":-0.4675884968749896,"angular_velocity":0.0,"x_acceleration":2.0107812500002495,"y_acceleration":-0.5774862500000805,"angular_acceleration":0.0},{"time":2.9199999999999817,"x":0.04251993600000992,"y":1.0391428352000085,"angle":0.0,"x_velocity":-0.5861120000000319,"y_velocity":-0.4731391999999902,"angular_velocity":0.0,"x_acceleration":1.8614000000002875,"y_acceleration":-0.5324400000000831,"angular_acceleration":0.0},{"time":2.9299999999999815,"x":0.036749218843760145,"y":1.034385588081259,"angle":0.0,"x_velocity":-0.5683041406250275,"y_velocity":-0.47823299687499093,"angular_velocity":0.0,"x_acceleration":1.6977687500003071,"y_acceleration":-0.4861037500000869,"angular_acceleration":0.0},{"time":2.9399999999999813,"x":0.031148157000009835,"y":1.0295797414000092,"angle":0.0,"x_velocity":-0.5522052500000267,"y_velocity":-0.48285694999999196,"angular_velocity":0.0,"x_acceleration":1.5195500000003506,"y_acceleration":-0.4384700000000905,"angular_acceleration":0.0},{"time":2.949999999999981,"x":0.025698925781260762,"y":1.024730058593759,"angle":0.0,"x_velocity":-0.5379628906250247,"y_velocity":-0.4869980468749926,"angular_velocity":0.0,"x_acceleration":1.3264062500003675,"y_acceleration":-0.3895312500000938,"angular_acceleration":0.0},{"time":2.959999999999981,"x":0.020382208000009783,"y":1.0198414336000095,"angle":0.0,"x_velocity":-0.5257280000000168,"y_velocity":-0.4906431999999933,"angular_velocity":0.0,"x_acceleration":1.1180000000004071,"y_acceleration":-0.3392800000000975,"angular_acceleration":0.0},{"time":2.9699999999999807,"x":0.015177160218760921,"y":1.0149188916062597,"angle":0.0,"x_velocity":-0.5156548906250205,"y_velocity":-0.49377924687499436,"angular_velocity":0.0,"x_acceleration":0.8939937500004547,"y_acceleration":-0.28770875000010077,"angular_acceleration":0.0},{"time":2.9799999999999804,"x":0.010061379000009474,"y":1.0099675898000098,"angle":0.0,"x_velocity":-0.507901250000014,"y_velocity":-0.4963929499999954,"angular_velocity":0.0,"x_acceleration":0.6540500000004741,"y_acceleration":-0.2348100000001052,"angular_acceleration":0.0},{"time":2.9899999999999802,"x":0.005010867156259202,"y":1.0049928181187597,"angle":0.0,"x_velocity":-0.5026281406250028,"y_velocity":-0.49847099687499635,"angular_velocity":0.0,"x_acceleration":0.39783125000051456,"y_acceleration":-0.18057625000010868,"angular_acceleration":0.0},{"time":2.99999999999998,"x":1.021405182655144e-14,"y":1.00000000000001,"angle":0.0,"x_velocity":-0.5,"y_velocity":-0.49999999999999745,"angular_velocity":0.0,"x_acceleration":0.12500000000056843,"y_acceleration":-0.12500000000011235,"angular_acceleration":0.0},{"time":3.00999999999998,"x":-0.004990975481239944,"y":0.99498704518126,"angle":0.0,"x_velocity":-0.49792142812500584,"y_velocity":-0.5032507218749896,"angular_velocity":0.0,"x_acceleration":0.28920374999967746,"y_acceleration":-0.5208637499992262,"angular_acceleration":0.0},{"time":3.0199999999999796,"x":-0.009953105399989913,"y":0.9899222158000105,"angle":0.0,"x_velocity":-0.49424585000000903,"y_velocity":-0.5103325499999818,"angular_velocity":0.0,"x_acceleration":0.44442999999969224,"y_acceleration":-0.8913099999992695,"angular_acceleration":0.0},{"time":3.0299999999999794,"x":-0.014870865693739913,"y":0.9847684627937607,"angle":0.0,"x_velocity":-0.4890621781250122,"y_velocity":-0.5209939718749745,"angular_velocity":0.0,"x_acceleration":0.590851249999707,"y_acceleration":-1.2368712499993124,"angular_acceleration":0.0},{"time":3.039999999999979,"x":-0.01972961279998995,"y":0.9794912256000112,"angle":0.0,"x_velocity":-0.4824576000000152,"y_velocity":-0.5349887999999676,"angular_velocity":0.0,"x_acceleration":0.7286399999997217,"y_acceleration":-1.5580799999993555,"angular_acceleration":0.0},{"time":3.049999999999979,"x":-0.02451556640624001,"y":0.9740583789062616,"angle":0.0,"x_velocity":-0.47451757812501805,"y_velocity":-0.5520761718749609,"angular_velocity":0.0,"x_acceleration":0.8579687499997365,"y_acceleration":-1.8554687499993985,"angular_acceleration":0.0},{"time":3.0599999999999787,"x":-0.029215792199990105,"y":0.9684401794000123,"angle":0.0,"x_velocity":-0.46532585000002086,"y_velocity":-0.5720205499999548,"angular_velocity":0.0,"x_acceleration":0.9790099999997512,"y_acceleration":-2.1295699999994415,"angular_acceleration":0.0},{"time":3.0699999999999785,"x":-0.03381818461874023,"y":0.9626092125187627,"angle":0.0,"x_velocity":-0.4549644281250234,"y_velocity":-0.5945917218749489,"angular_velocity":0.0,"x_acceleration":1.0919362499997658,"y_acceleration":-2.3809162499994843,"angular_acceleration":0.0},{"time":3.0799999999999783,"x":-0.038311449599990374,"y":0.9565403392000135,"angle":0.0,"x_velocity":-0.44351360000002593,"y_velocity":-0.6195647999999435,"angular_velocity":0.0,"x_acceleration":1.1969199999997808,"y_acceleration":-2.6100399999995267,"angular_acceleration":0.0},{"time":3.089999999999978,"x":-0.04268508733124055,"y":0.9502106426312642,"angle":0.0,"x_velocity":-0.43105192812502835,"y_velocity":-0.6467202218749384,"angular_velocity":0.0,"x_acceleration":1.2941337499997951,"y_acceleration":-2.817473749999569,"angular_acceleration":0.0},{"time":3.099999999999978,"x":-0.04692937499999076,"y":0.9435993750000149,"angle":0.0,"x_velocity":-0.4176562500000306,"y_velocity":-0.6758437499999337,"angular_velocity":0.0,"x_acceleration":1.38374999999981,"y_acceleration":-3.003749999999611,"angular_acceleration":0.0},{"time":3.1099999999999777,"x":-0.05103534954374099,"y":0.9366879042437658,"angle":0.0,"x_velocity":-0.40340167812503275,"y_velocity":-0.7067264718749292,"angular_velocity":0.0,"x_acceleration":1.4659412499998246,"y_acceleration":-3.169401249999653,"angular_acceleration":0.0},{"time":3.1199999999999775,"x":-0.05499479039999124,"y":0.9294596608000167,"angle":0.0,"x_velocity":-0.3883616000000347,"y_velocity":-0.7391647999999252,"angular_velocity":0.0,"x_acceleration":1.5408799999998393,"y_acceleration":-3.3149599999996937,"angular_acceleration":0.0},{"time":3.1299999999999772,"x":-0.05880020225624152,"y":0.9219000843562676,"angle":0.0,"x_velocity":-0.37260767812503665,"y_velocity":-0.7729604718749218,"angular_velocity":0.0,"x_acceleration":1.6087387499998536,"y_acceleration":-3.440958749999735,"angular_acceleration":0.0},{"time":3.139999999999977,"x":-0.06244479779999181,"y":0.9139965706000186,"angle":0.0,"x_velocity":-0.3562098500000383,"y_velocity":-0.8079205499999186,"angular_velocity":0.0,"x_acceleration":1.6696899999998678,"y_acceleration":-3.5479299999997758,"angular_acceleration":0.0},{"time":3.149999999999977,"x":-0.06592248046874213,"y":0.9057384179687695,"angle":0.0,"x_velocity":-0.33923632812504,"y_velocity":-0.8438574218749157,"angular_velocity":0.0,"x_acceleration":1.723906249999882,"y_acceleration":-3.6364062499998164,"angular_acceleration":0.0},{"time":3.1599999999999766,"x":-0.06922782719999247,"y":0.8971167744000207,"angle":0.0,"x_velocity":-0.32175360000004144,"y_velocity":-0.8805887999999135,"angular_velocity":0.0,"x_acceleration":1.7715599999998963,"y_acceleration":-3.7069199999998554,"angular_acceleration":0.0},{"time":3.1699999999999764,"x":-0.07235607118124283,"y":0.8881245840812717,"angle":0.0,"x_velocity":-0.3038264281250428,"y_velocity":-0.9179377218749114,"angular_velocity":0.0,"x_acceleration":1.8128237499999098,"y_acceleration":-3.7600037499998944,"angular_acceleration":0.0},{"time":3.179999999999976,"x":-0.0753030845999932,"y":0.8787565342000228,"angle":0.0,"x_velocity":-0.28551785000004404,"y_velocity":-0.9557325499999096,"angular_velocity":0.0,"x_acceleration":1.847869999999924,"y_acceleration":-3.796189999999934,"angular_acceleration":0.0},{"time":3.189999999999976,"x":-0.0780653613937436,"y":0.8690090016937739,"angle":0.0,"x_velocity":-0.2668891781250451,"y_velocity":-0.9938069718749082,"angular_velocity":0.0,"x_acceleration":1.8768712499999372,"y_acceleration":-3.8160112499999714,"angular_acceleration":0.0},{"time":3.1999999999999758,"x":-0.08063999999999398,"y":0.8588800000000252,"angle":0.0,"x_velocity":-0.24800000000004604,"y_velocity":-1.0319999999999074,"angular_velocity":0.0,"x_acceleration":1.8999999999999508,"y_acceleration":-3.820000000000009,"angular_acceleration":0.0},{"time":3.2099999999999755,"x":-0.0830246861062444,"y":0.8483691258062762,"angle":0.0,"x_velocity":-0.2289081781250469,"y_velocity":-1.070155971874907,"angular_velocity":0.0,"x_acceleration":1.9174287499999645,"y_acceleration":-3.8086887500000466,"angular_acceleration":0.0},{"time":3.2199999999999753,"x":-0.08521767539999482,"y":0.8374775058000273,"angle":0.0,"x_velocity":-0.20966985000004762,"y_velocity":-1.1081245499999068,"angular_velocity":0.0,"x_acceleration":1.9293299999999776,"y_acceleration":-3.782610000000081,"angular_acceleration":0.0},{"time":3.229999999999975,"x":-0.08721777631874525,"y":0.8262077434187785,"angle":0.0,"x_velocity":-0.1903394281250482,"y_velocity":-1.1457607218749069,"angular_velocity":0.0,"x_acceleration":1.9358762499999909,"y_acceleration":-3.742296250000118,"angular_acceleration":0.0},{"time":3.239999999999975,"x":-0.08902433279999572,"y":0.8145638656000298,"angle":0.0,"x_velocity":-0.17096960000004857,"y_velocity":-1.1829247999999075,"angular_velocity":0.0,"x_acceleration":1.9372400000000023,"y_acceleration":-3.6882800000001517,"angular_acceleration":0.0},{"time":3.2499999999999747,"x":-0.09063720703124616,"y":0.8025512695312809,"angle":0.0,"x_velocity":-0.15161132812504896,"y_velocity":-1.2194824218749085,"angular_velocity":0.0,"x_acceleration":1.9335937500000155,"y_acceleration":-3.6210937500001865,"angular_acceleration":0.0},{"time":3.2599999999999745,"x":-0.09205676219999662,"y":0.7901766694000322,"angle":0.0,"x_velocity":-0.13231385000004908,"y_velocity":-1.2553045499999096,"angular_velocity":0.0,"x_acceleration":1.9251100000000279,"y_acceleration":-3.54127000000022,"angular_acceleration":0.0},{"time":3.2699999999999743,"x":-0.0932838452437471,"y":0.7774480431437831,"angle":0.0,"x_velocity":-0.11312467812504923,"y_velocity":-1.2902674718749114,"angular_velocity":0.0,"x_acceleration":1.9119612500000396,"y_acceleration":-3.44934125000025,"angular_acceleration":0.0},{"time":3.279999999999974,"x":-0.09431976959999755,"y":0.7643745792000344,"angle":0.0,"x_velocity":-0.09408960000004925,"y_velocity":-1.324252799999913,"angular_velocity":0.0,"x_acceleration":1.8943200000000513,"y_acceleration":-3.345840000000285,"angular_acceleration":0.0},{"time":3.289999999999974,"x":-0.09516629795624804,"y":0.7509666232562855,"angle":0.0,"x_velocity":-0.07525267812504904,"y_velocity":-1.3571474718749155,"angular_velocity":0.0,"x_acceleration":1.8723587500000631,"y_acceleration":-3.2312987500003145,"angular_acceleration":0.0},{"time":3.2999999999999736,"x":-0.0958256249999985,"y":0.7372356250000367,"angle":0.0,"x_velocity":-0.05665625000004874,"y_velocity":-1.388843749999918,"angular_velocity":0.0,"x_acceleration":1.8462500000000746,"y_acceleration":-3.1062500000003443,"angular_acceleration":0.0},{"time":3.3099999999999734,"x":-0.09630036016874899,"y":0.7231940848687877,"angle":0.0,"x_velocity":-0.038340928125048315,"y_velocity":-1.4192392218749208,"angular_velocity":0.0,"x_acceleration":1.816166250000086,"y_acceleration":-2.9712262500003717,"angular_acceleration":0.0},{"time":3.319999999999973,"x":-0.09659351039999947,"y":0.7088555008000388,"angle":0.0,"x_velocity":-0.020345600000047745,"y_velocity":-1.4482367999999246,"angular_velocity":0.0,"x_acceleration":1.7822800000000956,"y_acceleration":-2.8267600000004,"angular_acceleration":0.0},{"time":3.329999999999973,"x":-0.09670846288124994,"y":0.6942343149812898,"angle":0.0,"x_velocity":-0.0027074281250471927,"y_velocity":-1.4757447218749278,"angular_velocity":0.0,"x_acceleration":1.7447637500001065,"y_acceleration":-2.673383750000427,"angular_acceleration":0.0},{"time":3.3399999999999728,"x":-0.09664896780000039,"y":0.6793458606000409,"angle":0.0,"x_velocity":0.014538149999953467,"y_velocity":-1.5016765499999316,"angular_velocity":0.0,"x_acceleration":1.703790000000117,"y_acceleration":-2.5116300000004523,"angular_acceleration":0.0},{"time":3.3499999999999726,"x":-0.09641912109375084,"y":0.6642063085937919,"angle":0.0,"x_velocity":0.031357421874954605,"y_velocity":-1.5259511718749357,"angular_velocity":0.0,"x_acceleration":1.6595312500001265,"y_acceleration":-2.342031250000475,"angular_acceleration":0.0},{"time":3.3599999999999723,"x":-0.09602334720000133,"y":0.6488326144000428,"angle":0.0,"x_velocity":0.047718399999955516,"y_velocity":-1.5484927999999407,"angular_velocity":0.0,"x_acceleration":1.6121600000001346,"y_acceleration":-2.165120000000499,"angular_acceleration":0.0},{"time":3.369999999999972,"x":-0.09546638180625178,"y":0.6332424647062938,"angle":0.0,"x_velocity":0.06359082187495646,"y_velocity":-1.5692309718749446,"angular_velocity":0.0,"x_acceleration":1.5618487500001443,"y_acceleration":-1.9814287500005223,"angular_acceleration":0.0},{"time":3.379999999999972,"x":-0.0947532546000022,"y":0.6174542242000446,"angle":0.0,"x_velocity":0.07894614999995772,"y_velocity":-1.5881005499999503,"angular_velocity":0.0,"x_acceleration":1.5087700000001525,"y_acceleration":-1.7914900000005414,"angular_acceleration":0.0},{"time":3.3899999999999717,"x":-0.09388927201875269,"y":0.6014868823187954,"angle":0.0,"x_velocity":0.09375757187495887,"y_velocity":-1.6050417218749546,"angular_velocity":0.0,"x_acceleration":1.4530962500001618,"y_acceleration":-1.5958362500005645,"angular_acceleration":0.0},{"time":3.3999999999999715,"x":-0.09288000000000309,"y":0.5853600000000462,"angle":0.0,"x_velocity":0.10799999999996024,"y_velocity":-1.6199999999999601,"angular_velocity":0.0,"x_acceleration":1.3950000000001683,"y_acceleration":-1.3950000000005796,"angular_acceleration":0.0},{"time":3.4099999999999713,"x":-0.09173124673125355,"y":0.569093656431297,"angle":0.0,"x_velocity":0.12165007187496196,"y_velocity":-1.6329262218749665,"angular_velocity":0.0,"x_acceleration":1.334653750000176,"y_acceleration":-1.1895137500005974,"angular_acceleration":0.0},{"time":3.419999999999971,"x":-0.09044904540000392,"y":0.5527083958000475,"angle":0.0,"x_velocity":0.13468614999996323,"y_velocity":-1.6437765499999717,"angular_velocity":0.0,"x_acceleration":1.2722300000001838,"y_acceleration":-0.9799100000006105,"angular_acceleration":0.0},{"time":3.429999999999971,"x":-0.08903963694375427,"y":0.5362251740437983,"angle":0.0,"x_velocity":0.14708832187496465,"y_velocity":-1.6525124718749775,"angular_velocity":0.0,"x_acceleration":1.2079012500001927,"y_acceleration":-0.7667212500006313,"angular_acceleration":0.0},{"time":3.4399999999999706,"x":-0.08750945280000468,"y":0.5196653056000489,"angle":0.0,"x_velocity":0.15883839999996663,"y_velocity":-1.659100799999984,"angular_velocity":0.0,"x_acceleration":1.141840000000196,"y_acceleration":-0.5504800000006362,"angular_acceleration":0.0},{"time":3.4499999999999704,"x":-0.08586509765625505,"y":0.5030504101562993,"angle":0.0,"x_velocity":0.16991992187496824,"y_velocity":-1.6635136718749899,"angular_velocity":0.0,"x_acceleration":1.0742187500002034,"y_acceleration":-0.3317187500006522,"angular_acceleration":0.0},{"time":3.45999999999997,"x":-0.08411333220000536,"y":0.48640235940004967,"angle":0.0,"x_velocity":0.18031814999997015,"y_velocity":-1.6657285499999965,"angular_velocity":0.0,"x_acceleration":1.0052100000002082,"y_acceleration":-0.11097000000066437,"angular_acceleration":0.0},{"time":3.46999999999997,"x":-0.08226105586875573,"y":0.46974322376879996,"angle":0.0,"x_velocity":0.190020071874972,"y_velocity":-1.6657282218750031,"angular_velocity":0.0,"x_acceleration":0.9349862500002133,"y_acceleration":0.11123374999933056,"angular_acceleration":0.0},{"time":3.47999999999997,"x":-0.08031528960000603,"y":0.4530952192000503,"angle":0.0,"x_velocity":0.19901439999997406,"y_velocity":-1.6635008000000107,"angular_velocity":0.0,"x_acceleration":0.8637200000002152,"y_acceleration":0.33435999999932875,"angular_acceleration":0.0},{"time":3.4899999999999696,"x":-0.07828315858125634,"y":0.4364806538813005,"angle":0.0,"x_velocity":0.20729157187497582,"y_velocity":-1.6590397218750164,"angular_velocity":0.0,"x_acceleration":0.7915837500002221,"y_acceleration":0.5578762499993175,"angular_acceleration":0.0},{"time":3.4999999999999694,"x":-0.07617187500000658,"y":0.4199218750000506,"angle":0.0,"x_velocity":0.21484374999997802,"y_velocity":-1.6523437500000242,"angular_velocity":0.0,"x_acceleration":0.7187500000002238,"y_acceleration":0.7812499999993143,"angular_acceleration":0.0},{"time":3.509999999999969,"x":-0.07398872079375682,"y":0.4034412154938005,"angle":0.0,"x_velocity":0.22166482187498027,"y_velocity":-1.6434169718750313,"angular_velocity":0.0,"x_acceleration":0.645391250000225,"y_acceleration":1.0039487499993154,"angular_acceleration":0.0},{"time":3.519999999999969,"x":-0.07174103040000712,"y":0.3870609408000507,"angle":0.0,"x_velocity":0.22775039999998248,"y_velocity":-1.6322688000000383,"angular_velocity":0.0,"x_acceleration":0.5716800000002298,"y_acceleration":1.2254399999993115,"angular_acceleration":0.0},{"time":3.5299999999999687,"x":-0.06943617350625722,"y":0.3708031956063005,"angle":0.0,"x_velocity":0.2330978218749844,"y_velocity":-1.6189139718750445,"angular_velocity":0.0,"x_acceleration":0.4977887500002316,"y_acceleration":1.445191249999315,"angular_acceleration":0.0},{"time":3.5399999999999685,"x":-0.06708153780000747,"y":0.3546899506000505,"angle":0.0,"x_velocity":0.2377061499999864,"y_velocity":-1.603372550000053,"angular_velocity":0.0,"x_acceleration":0.4238900000002328,"y_acceleration":1.6626699999993235,"angular_acceleration":0.0},{"time":3.5499999999999683,"x":-0.0646845117187577,"y":0.33874294921880027,"angle":0.0,"x_velocity":0.24157617187498903,"y_velocity":-1.5856699218750592,"angular_velocity":0.0,"x_acceleration":0.350156250000234,"y_acceleration":1.8773437499993229,"angular_acceleration":0.0},{"time":3.559999999999968,"x":-0.06225246720000781,"y":0.3229836544000501,"angle":0.0,"x_velocity":0.24471039999999133,"y_velocity":-1.565836800000067,"angular_velocity":0.0,"x_acceleration":0.27676000000023304,"y_acceleration":2.088679999999327,"angular_acceleration":0.0},{"time":3.569999999999968,"x":-0.059792742431257956,"y":0.30743319533129937,"angle":0.0,"x_velocity":0.24711307187499365,"y_velocity":-1.543909221875074,"angular_velocity":0.0,"x_acceleration":0.20387375000023233,"y_acceleration":2.296146249999346,"angular_acceleration":0.0},{"time":3.5799999999999677,"x":-0.057312624600008064,"y":0.29211231420004913,"angle":0.0,"x_velocity":0.2487901499999955,"y_velocity":-1.5199285500000803,"angular_velocity":0.0,"x_acceleration":0.13167000000023332,"y_acceleration":2.499209999999348,"angular_acceleration":0.0},{"time":3.5899999999999674,"x":-0.054819332643758156,"y":0.2770413129437989,"angle":0.0,"x_velocity":0.24974932187499843,"y_velocity":-1.4939414718750883,"angular_velocity":0.0,"x_acceleration":0.0603212500002277,"y_acceleration":2.6973387499993677,"angular_acceleration":0.0},{"time":3.5999999999999672,"x":-0.05232000000000818,"y":0.262240000000048,"angle":0.0,"x_velocity":0.24999999999999978,"y_velocity":-1.4660000000000943,"angular_velocity":0.0,"x_acceleration":-0.009999999999770637,"y_acceleration":2.8899999999993717,"angular_acceleration":0.0},{"time":3.609999999999967,"x":-0.04982165735625829,"y":0.24772763705629752,"angle":0.0,"x_velocity":0.24955332187500312,"y_velocity":-1.436161471875102,"angular_velocity":0.0,"x_acceleration":-0.0791212499997771,"y_acceleration":3.0766612499993933,"angular_acceleration":0.0},{"time":3.619999999999967,"x":-0.047331215400008286,"y":0.2335228858000466,"angle":0.0,"x_velocity":0.24842215000000478,"y_velocity":-1.4044885500001083,"angular_velocity":0.0,"x_acceleration":-0.14686999999977957,"y_acceleration":3.2567899999994125,"angular_acceleration":0.0},{"time":3.6299999999999666,"x":-0.0448554475687582,"y":0.21964375466879577,"angle":0.0,"x_velocity":0.24662107187500726,"y_velocity":-1.3710492218751131,"angular_velocity":0.0,"x_acceleration":-0.2130737499997819,"y_acceleration":3.429853749999438,"angular_acceleration":0.0},{"time":3.6399999999999664,"x":-0.04240097280000829,"y":0.20610754560004518,"angle":0.0,"x_velocity":0.24416640000000878,"y_velocity":-1.3359168000001218,"angular_velocity":0.0,"x_acceleration":-0.277559999999788,"y_acceleration":3.5953199999994574,"angular_acceleration":0.0},{"time":3.649999999999966,"x":-0.039974238281258234,"y":0.1929308007812942,"angle":0.0,"x_velocity":0.24107617187501185,"y_velocity":-1.2991699218751274,"angular_velocity":0.0,"x_acceleration":-0.3401562499997919,"y_acceleration":3.7526562499994895,"angular_acceleration":0.0},{"time":3.659999999999966,"x":-0.03758150220000803,"y":0.1801292494000426,"angle":0.0,"x_velocity":0.23737015000001294,"y_velocity":-1.2608925500001327,"angular_velocity":0.0,"x_acceleration":-0.4006899999997948,"y_acceleration":3.9013299999995006,"angular_acceleration":0.0},{"time":3.6699999999999657,"x":-0.035228816493758086,"y":0.16771775439379188,"angle":0.0,"x_velocity":0.23306982187501624,"y_velocity":-1.2211739718751398,"angular_velocity":0.0,"x_acceleration":-0.458988749999806,"y_acceleration":4.040808749999535,"angular_acceleration":0.0},{"time":3.6799999999999655,"x":-0.03292200960000774,"y":0.15571025920004067,"angle":0.0,"x_velocity":0.22819840000001812,"y_velocity":-1.180108800000145,"angular_velocity":0.0,"x_acceleration":-0.5148799999998115,"y_acceleration":4.1705599999995755,"angular_acceleration":0.0},{"time":3.6899999999999653,"x":-0.030666669206257824,"y":0.1441197345062898,"angle":0.0,"x_velocity":0.22278082187502024,"y_velocity":-1.13779697187515,"angular_velocity":0.0,"x_acceleration":-0.5681912499998187,"y_acceleration":4.290051249999603,"angular_acceleration":0.0},{"time":3.699999999999965,"x":-0.028468125000007588,"y":0.13295812500003845,"angle":0.0,"x_velocity":0.21684375000002154,"y_velocity":-1.094343750000152,"angular_velocity":0.0,"x_acceleration":-0.6187499999998316,"y_acceleration":4.398749999999641,"angular_acceleration":0.0},{"time":3.709999999999965,"x":-0.026331431418757212,"y":0.12223629611878684,"angle":0.0,"x_velocity":0.21041557187502402,"y_velocity":-1.0498597218751584,"angular_velocity":0.0,"x_acceleration":-0.6663837499998415,"y_acceleration":4.49612374999969,"angular_acceleration":0.0},{"time":3.7199999999999647,"x":-0.024261350400007042,"y":0.11196398080003478,"angle":0.0,"x_velocity":0.2035264000000241,"y_velocity":-1.0044608000001611,"angular_velocity":0.0,"x_acceleration":-0.710919999999847,"y_acceleration":4.581639999999723,"angular_acceleration":0.0},{"time":3.7299999999999645,"x":-0.022262334131257,"y":0.10214972623128382,"angle":0.0,"x_velocity":0.19620807187502587,"y_velocity":-0.9582682218751639,"angular_velocity":0.0,"x_acceleration":-0.7521862499998573,"y_acceleration":4.654766249999753,"angular_acceleration":0.0},{"time":3.7399999999999642,"x":-0.020338507800006678,"y":0.09280084060003191,"angle":0.0,"x_velocity":0.1884941500000279,"y_velocity":-0.9114085500001687,"angular_velocity":0.0,"x_acceleration":-0.7900099999998691,"y_acceleration":4.714969999999809,"angular_acceleration":0.0},{"time":3.749999999999964,"x":-0.018493652343756495,"y":0.08392333984378131,"angle":0.0,"x_velocity":0.1804199218750293,"y_velocity":-0.8640136718751714,"angular_velocity":0.0,"x_acceleration":-0.8242187499998828,"y_acceleration":4.761718749999851,"angular_acceleration":0.0},{"time":3.759999999999964,"x":-0.016731187200006103,"y":0.07552189440002932,"angle":0.0,"x_velocity":0.17202240000003055,"y_velocity":-0.8162208000001714,"angular_velocity":0.0,"x_acceleration":-0.854639999999895,"y_acceleration":4.794479999999908,"angular_acceleration":0.0},{"time":3.7699999999999636,"x":-0.015054153056255959,"y":0.06759977595627809,"angle":0.0,"x_velocity":0.16334032187503222,"y_velocity":-0.768172471875177,"angular_velocity":0.0,"x_acceleration":-0.8811012499999116,"y_acceleration":4.812721249999953,"angular_acceleration":0.0},{"time":3.7799999999999634,"x":-0.013465194600005725,"y":0.060158804200026283,"angle":0.0,"x_velocity":0.15441415000003378,"y_velocity":-0.7200165500001763,"angular_velocity":0.0,"x_acceleration":-0.9034299999999273,"y_acceleration":4.815910000000017,"angular_acceleration":0.0},{"time":3.789999999999963,"x":-0.011966543268755292,"y":0.05319929356877462,"angle":0.0,"x_velocity":0.1452860718750335,"y_velocity":-0.6719062218751795,"angular_velocity":0.0,"x_acceleration":-0.9214537499999427,"y_acceleration":4.8035137500000715,"angular_acceleration":0.0},{"time":3.799999999999963,"x":-0.010560000000005176,"y":0.046720000000023854,"angle":0.0,"x_velocity":0.1360000000000361,"y_velocity":-0.62400000000018,"angular_velocity":0.0,"x_acceleration":-0.9349999999999614,"y_acceleration":4.775000000000141,"angular_acceleration":0.0},{"time":3.8099999999999627,"x":-0.009246917981254987,"y":0.04071806768127151,"angle":0.0,"x_velocity":0.12660157187503573,"y_velocity":-0.5764617218751766,"angular_velocity":0.0,"x_acceleration":-0.9438962499999768,"y_acceleration":4.72983625000019,"angular_acceleration":0.0},{"time":3.8199999999999625,"x":-0.008028185400004273,"y":0.03518897580001967,"angle":0.0,"x_velocity":0.11713815000003658,"y_velocity":-0.5294605500001754,"angular_velocity":0.0,"x_acceleration":-0.9479699999999944,"y_acceleration":4.667490000000271,"angular_acceleration":0.0},{"time":3.8299999999999623,"x":-0.006904208193754258,"y":0.030126485293767935,"angle":0.0,"x_velocity":0.10765882187503673,"y_velocity":-0.4831709718751718,"angular_velocity":0.0,"x_acceleration":-0.9470487500000146,"y_acceleration":4.587428750000335,"angular_acceleration":0.0},{"time":3.839999999999962,"x":-0.005874892800003639,"y":0.02552258560001608,"angle":0.0,"x_velocity":0.09821440000003445,"y_velocity":-0.4377728000001664,"angular_velocity":0.0,"x_acceleration":-0.9409600000000289,"y_acceleration":4.489120000000398,"angular_acceleration":0.0},{"time":3.849999999999962,"x":-0.004939628906253213,"y":0.02136744140626523,"angle":0.0,"x_velocity":0.08885742187503443,"y_velocity":-0.39345117187516543,"angular_velocity":0.0,"x_acceleration":-0.9295312500000463,"y_acceleration":4.372031250000475,"angular_acceleration":0.0},{"time":3.8599999999999617,"x":-0.004097272200002999,"y":0.01764933940001301,"angle":0.0,"x_velocity":0.07964215000003572,"y_velocity":-0.3503965500001609,"angular_velocity":0.0,"x_acceleration":-0.9125900000000762,"y_acceleration":4.235630000000548,"angular_acceleration":0.0},{"time":3.8699999999999615,"x":-0.0033461271187525954,"y":0.014354635018761552,"angle":0.0,"x_velocity":0.07062457187503579,"y_velocity":-0.30880472187516084,"angular_velocity":0.0,"x_acceleration":-0.8899637500000992,"y_acceleration":4.079383750000645,"angular_acceleration":0.0},{"time":3.8799999999999613,"x":-0.0026839296000024104,"y":0.011467699200010895,"angle":0.0,"x_velocity":0.061862400000032736,"y_velocity":-0.26887680000015024,"angular_velocity":0.0,"x_acceleration":-0.861480000000121,"y_acceleration":3.9027600000007325,"angular_acceleration":0.0},{"time":3.889999999999961,"x":-0.0021078298312523502,"y":0.008970865131259664,"angle":0.0,"x_velocity":0.05341507187503325,"y_velocity":-0.2308192218751497,"angular_velocity":0.0,"x_acceleration":-0.8269662500001473,"y_acceleration":3.7052262500008197,"angular_acceleration":0.0},{"time":3.899999999999961,"x":-0.0016143750000019441,"y":0.006844375000008007,"angle":0.0,"x_velocity":0.04534375000003177,"y_velocity":-0.1948437500001372,"angular_velocity":0.0,"x_acceleration":-0.7862500000001731,"y_acceleration":3.4862500000008936,"angular_acceleration":0.0},{"time":3.9099999999999606,"x":-0.0011994920437515821,"y":0.005066326743757621,"angle":0.0,"x_velocity":0.03771132187502868,"y_velocity":-0.16116747187513347,"angular_velocity":0.0,"x_acceleration":-0.7391587500002039,"y_acceleration":3.245298750000984,"angular_acceleration":0.0},{"time":3.9199999999999604,"x":-0.0008584704000007548,"y":0.0036126208000051285,"angle":0.0,"x_velocity":0.03058240000002499,"y_velocity":-0.1300128000001184,"angular_velocity":0.0,"x_acceleration":-0.6855200000002206,"y_acceleration":2.9818400000010854,"angular_acceleration":0.0},{"time":3.92999999999996,"x":-0.0005859447562510667,"y":0.002456906856253216,"angle":0.0,"x_velocity":0.024023321875024095,"y_velocity":-0.10160747187510921,"angular_velocity":0.0,"x_acceleration":-0.6251612500002572,"y_acceleration":2.695341250001192,"angular_acceleration":0.0},{"time":3.93999999999996,"x":-0.00037587780000070126,"y":0.0015705306000040054,"angle":0.0,"x_velocity":0.018102150000021133,"y_velocity":-0.0761845500000966,"angular_velocity":0.0,"x_acceleration":-0.5579100000002839,"y_acceleration":2.3852700000012845,"angular_acceleration":0.0},{"time":3.9499999999999598,"x":-0.00022154296875043222,"y":0.000922480468751985,"angle":0.0,"x_velocity":0.012888671875018964,"y_velocity":-0.05398242187508373,"angular_velocity":0.0,"x_acceleration":-0.48359375000031335,"y_acceleration":2.0510937500013853,"angular_acceleration":0.0},{"time":3.9599999999999596,"x":-0.00011550720000053083,"y":0.00047933440000225147,"angle":0.0,"x_velocity":0.008454400000015738,"y_velocity":-0.03524480000006491,"angular_velocity":0.0,"x_acceleration":-0.4020400000003441,"y_acceleration":1.6922800000015172,"angular_acceleration":0.0},{"time":3.9699999999999593,"x":-0.000049613681249782715,"y":0.00020520658125011693,"angle":0.0,"x_velocity":0.0048725718750119995,"y_velocity":-0.020220721875055858,"angular_velocity":0.0,"x_acceleration":-0.31307625000038186,"y_acceleration":1.308296250001618,"angular_acceleration":0.0},{"time":3.979999999999959,"x":-0.000014964600000277883,"y":0.00006169419999935144,"angle":0.0,"x_velocity":0.0022181500000080234,"y_velocity":-0.009164550000029692,"angular_velocity":0.0,"x_acceleration":-0.21653000000040734,"y_acceleration":0.8986100000017245,"angular_acceleration":0.0},{"time":3.989999999999959,"x":-0.0000019038937502102726,"y":0.000007824193749783603,"angle":0.0,"x_velocity":0.0005678218750047037,"y_velocity":-0.002335971875019993,"angular_velocity":0.0,"x_acceleration":-0.11222875000045462,"y_acceleration":0.4626887500018597,"angular_acceleration":0.0},{"time":3.9999999999999587,"x":-2.220446049250313e-16,"y":-8.881784197001252e-16,"angle":0.0,"x_velocity":8.881784197001252e-16,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":-4.796163466380676e-13,"y_acceleration":1.9753088054130785e-12,"angular_acceleration":0.0}]} \ No newline at end of file +{ + "meta_data": { + "path_name": "straight", + "sample_rate": 0.01, + "robot_name": "Cardigan", + "field_name": "reefscape-updated" + }, + "commands": [], + "key_points": [ + { + "index": 0, + "delta_time": 0.0, + "time": 0.0, + "x": 0.0, + "y": 0.0, + "angle": 0.0, + "x_velocity": 0.0, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": 0.0, + "y_acceleration": 0.0, + "angular_acceleration": 0.0 + }, + { + "index": 1, + "delta_time": 1.0, + "time": 1.0, + "x": 1.0, + "y": 0.0, + "angle": 0.0, + "x_velocity": 0.5, + "y_velocity": 0.5, + "angular_velocity": 0.0, + "x_acceleration": -0.125, + "y_acceleration": 0.125, + "angular_acceleration": 0.0 + }, + { + "index": 2, + "delta_time": 2.0, + "time": 2.0, + "x": 1.0, + "y": 1.0, + "angle": 0.0, + "x_velocity": -0.5, + "y_velocity": 0.5, + "angular_velocity": 0.0, + "x_acceleration": -0.25, + "y_acceleration": -0.25, + "angular_acceleration": 0.0 + }, + { + "index": 3, + "delta_time": 3.0, + "time": 3.0, + "x": 0.0, + "y": 1.0, + "angle": 0.0, + "x_velocity": -0.5, + "y_velocity": -0.5, + "angular_velocity": 0.0, + "x_acceleration": 0.125, + "y_acceleration": -0.125, + "angular_acceleration": 0.0 + }, + { + "index": 4, + "delta_time": 4.0, + "time": 4.0, + "x": 0.0, + "y": 0.0, + "angle": 0.0, + "x_velocity": 0.0, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": 0.0, + "y_acceleration": 0.0, + "angular_acceleration": 0.0 + } + ], + "sampled_points": [ + { + "time": 0.0, + "x": 0.0, + "y": 0.0, + "angle": 0.0, + "x_velocity": 0.0, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": 0.0, + "y_acceleration": 0.0, + "angular_acceleration": 0.0 + }, + { + "time": 0.01, + "x": 0.000007824193750000002, + "y": -0.0000019038937500000005, + "angle": 0.0, + "x_velocity": 0.002335971875, + "y_velocity": -0.0005678218750000001, + "angular_velocity": 0.0, + "x_acceleration": 0.46268875000000004, + "y_acceleration": -0.11222874999999999, + "angular_acceleration": 0.0 + }, + { + "time": 0.02, + "x": 0.00006169420000000001, + "y": -0.000014964600000000004, + "angle": 0.0, + "x_velocity": 0.00916455, + "y_velocity": -0.0022181500000000003, + "angular_velocity": 0.0, + "x_acceleration": 0.89861, + "y_acceleration": -0.21653, + "angular_acceleration": 0.0 + }, + { + "time": 0.03, + "x": 0.00020520658124999997, + "y": -0.000049613681249999996, + "angle": 0.0, + "x_velocity": 0.020220721875000004, + "y_velocity": -0.004872571875, + "angular_velocity": 0.0, + "x_acceleration": 1.3082962500000002, + "y_acceleration": -0.31307625, + "angular_acceleration": 0.0 + }, + { + "time": 0.04, + "x": 0.0004793344000000001, + "y": -0.00011550720000000003, + "angle": 0.0, + "x_velocity": 0.03524480000000001, + "y_velocity": -0.0084544, + "angular_velocity": 0.0, + "x_acceleration": 1.69228, + "y_acceleration": -0.40203999999999995, + "angular_acceleration": 0.0 + }, + { + "time": 0.05, + "x": 0.0009224804687500002, + "y": -0.00022154296875000003, + "angle": 0.0, + "x_velocity": 0.05398242187500001, + "y_velocity": -0.012888671875000002, + "angular_velocity": 0.0, + "x_acceleration": 2.0510937500000006, + "y_acceleration": -0.48359375000000004, + "angular_acceleration": 0.0 + }, + { + "time": 0.060000000000000005, + "x": 0.0015705306000000005, + "y": -0.00037587780000000016, + "angle": 0.0, + "x_velocity": 0.07618455000000002, + "y_velocity": -0.018102150000000004, + "angular_velocity": 0.0, + "x_acceleration": 2.3852700000000002, + "y_acceleration": -0.5579100000000001, + "angular_acceleration": 0.0 + }, + { + "time": 0.07, + "x": 0.00245690685625, + "y": -0.0005859447562500001, + "angle": 0.0, + "x_velocity": 0.10160747187500001, + "y_velocity": -0.024023321875000003, + "angular_velocity": 0.0, + "x_acceleration": 2.6953412500000002, + "y_acceleration": -0.6251612500000001, + "angular_acceleration": 0.0 + }, + { + "time": 0.08, + "x": 0.0036126208000000007, + "y": -0.0008584704000000003, + "angle": 0.0, + "x_velocity": 0.13001279999999998, + "y_velocity": -0.030582400000000003, + "angular_velocity": 0.0, + "x_acceleration": 2.98184, + "y_acceleration": -0.6855199999999998, + "angular_acceleration": 0.0 + }, + { + "time": 0.09, + "x": 0.00506632674375, + "y": -0.00119949204375, + "angle": 0.0, + "x_velocity": 0.161167471875, + "y_velocity": -0.037711321875, + "angular_velocity": 0.0, + "x_acceleration": 3.24529875, + "y_acceleration": -0.7391587500000002, + "angular_acceleration": 0.0 + }, + { + "time": 0.09999999999999999, + "x": 0.006844374999999999, + "y": -0.0016143749999999997, + "angle": 0.0, + "x_velocity": 0.19484374999999998, + "y_velocity": -0.04534374999999999, + "angular_velocity": 0.0, + "x_acceleration": 3.4862500000000005, + "y_acceleration": -0.7862499999999999, + "angular_acceleration": 0.0 + }, + { + "time": 0.10999999999999999, + "x": 0.008970865131249997, + "y": -0.0021078298312499993, + "angle": 0.0, + "x_velocity": 0.23081922187499998, + "y_velocity": -0.053415071874999984, + "angular_velocity": 0.0, + "x_acceleration": 3.70522625, + "y_acceleration": -0.8269662499999999, + "angular_acceleration": 0.0 + }, + { + "time": 0.11999999999999998, + "x": 0.011467699199999995, + "y": -0.0026839295999999987, + "angle": 0.0, + "x_velocity": 0.26887679999999997, + "y_velocity": -0.06186239999999999, + "angular_velocity": 0.0, + "x_acceleration": 3.90276, + "y_acceleration": -0.8614799999999999, + "angular_acceleration": 0.0 + }, + { + "time": 0.12999999999999998, + "x": 0.014354635018749992, + "y": -0.003346127118749998, + "angle": 0.0, + "x_velocity": 0.3088047218749999, + "y_velocity": -0.07062457187499999, + "angular_velocity": 0.0, + "x_acceleration": 4.079383749999999, + "y_acceleration": -0.8899637499999997, + "angular_acceleration": 0.0 + }, + { + "time": 0.13999999999999999, + "x": 0.01764933939999999, + "y": -0.004097272199999998, + "angle": 0.0, + "x_velocity": 0.35039655, + "y_velocity": -0.07964215000000001, + "angular_velocity": 0.0, + "x_acceleration": 4.235629999999999, + "y_acceleration": -0.9125899999999999, + "angular_acceleration": 0.0 + }, + { + "time": 0.15, + "x": 0.02136744140625, + "y": -0.004939628906249999, + "angle": 0.0, + "x_velocity": 0.393451171875, + "y_velocity": -0.08885742187500001, + "angular_velocity": 0.0, + "x_acceleration": 4.372031249999999, + "y_acceleration": -0.9295312499999998, + "angular_acceleration": 0.0 + }, + { + "time": 0.16, + "x": 0.02552258560000001, + "y": -0.0058748928000000025, + "angle": 0.0, + "x_velocity": 0.4377728, + "y_velocity": -0.09821440000000001, + "angular_velocity": 0.0, + "x_acceleration": 4.489120000000001, + "y_acceleration": -0.9409599999999998, + "angular_acceleration": 0.0 + }, + { + "time": 0.17, + "x": 0.03012648529375001, + "y": -0.006904208193750002, + "angle": 0.0, + "x_velocity": 0.483170971875, + "y_velocity": -0.107658821875, + "angular_velocity": 0.0, + "x_acceleration": 4.587428749999999, + "y_acceleration": -0.9470487499999999, + "angular_acceleration": 0.0 + }, + { + "time": 0.18000000000000002, + "x": 0.03518897580000001, + "y": -0.0080281854, + "angle": 0.0, + "x_velocity": 0.52946055, + "y_velocity": -0.11713815000000001, + "angular_velocity": 0.0, + "x_acceleration": 4.66749, + "y_acceleration": -0.9479700000000002, + "angular_acceleration": 0.0 + }, + { + "time": 0.19000000000000003, + "x": 0.040718067681250025, + "y": -0.009246917981250003, + "angle": 0.0, + "x_velocity": 0.5764617218750001, + "y_velocity": -0.12660157187500004, + "angular_velocity": 0.0, + "x_acceleration": 4.729836250000001, + "y_acceleration": -0.9438962499999999, + "angular_acceleration": 0.0 + }, + { + "time": 0.20000000000000004, + "x": 0.04672000000000002, + "y": -0.010560000000000003, + "angle": 0.0, + "x_velocity": 0.6240000000000002, + "y_velocity": -0.13600000000000004, + "angular_velocity": 0.0, + "x_acceleration": 4.775, + "y_acceleration": -0.9349999999999995, + "angular_acceleration": 0.0 + }, + { + "time": 0.21000000000000005, + "x": 0.05319929356875004, + "y": -0.011966543268750008, + "angle": 0.0, + "x_velocity": 0.671906221875, + "y_velocity": -0.14528607187500003, + "angular_velocity": 0.0, + "x_acceleration": 4.8035137500000005, + "y_acceleration": -0.92145375, + "angular_acceleration": 0.0 + }, + { + "time": 0.22000000000000006, + "x": 0.06015880420000005, + "y": -0.01346519460000001, + "angle": 0.0, + "x_velocity": 0.7200165500000004, + "y_velocity": -0.15441415000000008, + "angular_velocity": 0.0, + "x_acceleration": 4.81591, + "y_acceleration": -0.9034299999999997, + "angular_acceleration": 0.0 + }, + { + "time": 0.23000000000000007, + "x": 0.06759977595625005, + "y": -0.01505415305625001, + "angle": 0.0, + "x_velocity": 0.7681724718750003, + "y_velocity": -0.16334032187500003, + "angular_velocity": 0.0, + "x_acceleration": 4.81272125, + "y_acceleration": -0.8811012499999997, + "angular_acceleration": 0.0 + }, + { + "time": 0.24000000000000007, + "x": 0.07552189440000005, + "y": -0.01673118720000001, + "angle": 0.0, + "x_velocity": 0.8162208000000004, + "y_velocity": -0.17202240000000002, + "angular_velocity": 0.0, + "x_acceleration": 4.79448, + "y_acceleration": -0.8546400000000002, + "angular_acceleration": 0.0 + }, + { + "time": 0.25000000000000006, + "x": 0.08392333984375004, + "y": -0.018493652343750007, + "angle": 0.0, + "x_velocity": 0.8640136718750003, + "y_velocity": -0.18041992187500006, + "angular_velocity": 0.0, + "x_acceleration": 4.761718750000001, + "y_acceleration": -0.8242187499999999, + "angular_acceleration": 0.0 + }, + { + "time": 0.26000000000000006, + "x": 0.09280084060000006, + "y": -0.020338507800000006, + "angle": 0.0, + "x_velocity": 0.9114085500000003, + "y_velocity": -0.18849415000000008, + "angular_velocity": 0.0, + "x_acceleration": 4.71497, + "y_acceleration": -0.7900099999999999, + "angular_acceleration": 0.0 + }, + { + "time": 0.2700000000000001, + "x": 0.10214972623125003, + "y": -0.02226233413125001, + "angle": 0.0, + "x_velocity": 0.9582682218750006, + "y_velocity": -0.19620807187500006, + "angular_velocity": 0.0, + "x_acceleration": 4.654766249999999, + "y_acceleration": -0.7521862500000001, + "angular_acceleration": 0.0 + }, + { + "time": 0.2800000000000001, + "x": 0.11196398080000004, + "y": -0.024261350400000013, + "angle": 0.0, + "x_velocity": 1.0044608000000006, + "y_velocity": -0.2035264000000001, + "angular_velocity": 0.0, + "x_acceleration": 4.58164, + "y_acceleration": -0.7109200000000001, + "angular_acceleration": 0.0 + }, + { + "time": 0.2900000000000001, + "x": 0.12223629611875007, + "y": -0.026331431418750016, + "angle": 0.0, + "x_velocity": 1.0498597218750005, + "y_velocity": -0.21041557187500004, + "angular_velocity": 0.0, + "x_acceleration": 4.496123750000001, + "y_acceleration": -0.66638375, + "angular_acceleration": 0.0 + }, + { + "time": 0.3000000000000001, + "x": 0.13295812500000012, + "y": -0.028468125000000025, + "angle": 0.0, + "x_velocity": 1.0943437500000002, + "y_velocity": -0.21684375000000009, + "angular_velocity": 0.0, + "x_acceleration": 4.398749999999998, + "y_acceleration": -0.6187499999999998, + "angular_acceleration": 0.0 + }, + { + "time": 0.3100000000000001, + "x": 0.14411973450625012, + "y": -0.030666669206250028, + "angle": 0.0, + "x_velocity": 1.1377969718750007, + "y_velocity": -0.22278082187500015, + "angular_velocity": 0.0, + "x_acceleration": 4.290051249999998, + "y_acceleration": -0.5681912499999997, + "angular_acceleration": 0.0 + }, + { + "time": 0.3200000000000001, + "x": 0.15571025920000012, + "y": -0.03292200960000001, + "angle": 0.0, + "x_velocity": 1.1801088000000006, + "y_velocity": -0.2281984000000002, + "angular_velocity": 0.0, + "x_acceleration": 4.170559999999998, + "y_acceleration": -0.5148799999999991, + "angular_acceleration": 0.0 + }, + { + "time": 0.3300000000000001, + "x": 0.16771775439375017, + "y": -0.03522881649375002, + "angle": 0.0, + "x_velocity": 1.221173971875, + "y_velocity": -0.233069821875, + "angular_velocity": 0.0, + "x_acceleration": 4.040808750000002, + "y_acceleration": -0.45898875000000006, + "angular_acceleration": 0.0 + }, + { + "time": 0.34000000000000014, + "x": 0.18012924940000014, + "y": -0.03758150220000003, + "angle": 0.0, + "x_velocity": 1.2608925500000003, + "y_velocity": -0.23737015000000006, + "angular_velocity": 0.0, + "x_acceleration": 3.9013299999999975, + "y_acceleration": -0.40068999999999977, + "angular_acceleration": 0.0 + }, + { + "time": 0.35000000000000014, + "x": 0.19293080078125016, + "y": -0.03997423828125003, + "angle": 0.0, + "x_velocity": 1.2991699218750004, + "y_velocity": -0.241076171875, + "angular_velocity": 0.0, + "x_acceleration": 3.752656249999999, + "y_acceleration": -0.3401562500000006, + "angular_acceleration": 0.0 + }, + { + "time": 0.36000000000000015, + "x": 0.20610754560000016, + "y": -0.042400972800000034, + "angle": 0.0, + "x_velocity": 1.3359168000000003, + "y_velocity": -0.24416640000000012, + "angular_velocity": 0.0, + "x_acceleration": 3.5953199999999974, + "y_acceleration": -0.27755999999999936, + "angular_acceleration": 0.0 + }, + { + "time": 0.37000000000000016, + "x": 0.21964375466875025, + "y": -0.04485544756875005, + "angle": 0.0, + "x_velocity": 1.3710492218750008, + "y_velocity": -0.246621071875, + "angular_velocity": 0.0, + "x_acceleration": 3.429853749999996, + "y_acceleration": -0.21307374999999862, + "angular_acceleration": 0.0 + }, + { + "time": 0.38000000000000017, + "x": 0.23352288580000027, + "y": -0.04733121540000006, + "angle": 0.0, + "x_velocity": 1.4044885500000008, + "y_velocity": -0.24842214999999995, + "angular_velocity": 0.0, + "x_acceleration": 3.256789999999997, + "y_acceleration": -0.14686999999999872, + "angular_acceleration": 0.0 + }, + { + "time": 0.3900000000000002, + "x": 0.24772763705625028, + "y": -0.049821657356250056, + "angle": 0.0, + "x_velocity": 1.4361614718750009, + "y_velocity": -0.24955332187500004, + "angular_velocity": 0.0, + "x_acceleration": 3.076661249999998, + "y_acceleration": -0.07912124999999848, + "angular_acceleration": 0.0 + }, + { + "time": 0.4000000000000002, + "x": 0.2622400000000002, + "y": -0.052320000000000026, + "angle": 0.0, + "x_velocity": 1.4660000000000004, + "y_velocity": -0.2500000000000001, + "angular_velocity": 0.0, + "x_acceleration": 2.8900000000000006, + "y_acceleration": -0.009999999999998677, + "angular_acceleration": 0.0 + }, + { + "time": 0.4100000000000002, + "x": 0.2770413129437504, + "y": -0.054819332643750066, + "angle": 0.0, + "x_velocity": 1.4939414718750008, + "y_velocity": -0.24974932187499993, + "angular_velocity": 0.0, + "x_acceleration": 2.6973387499999957, + "y_acceleration": 0.06032125000000166, + "angular_acceleration": 0.0 + }, + { + "time": 0.4200000000000002, + "x": 0.2921123142000004, + "y": -0.057312624600000056, + "angle": 0.0, + "x_velocity": 1.5199285500000006, + "y_velocity": -0.24879015000000018, + "angular_velocity": 0.0, + "x_acceleration": 2.4992099999999953, + "y_acceleration": 0.1316700000000015, + "angular_acceleration": 0.0 + }, + { + "time": 0.4300000000000002, + "x": 0.30743319533125035, + "y": -0.059792742431250066, + "angle": 0.0, + "x_velocity": 1.5439092218750008, + "y_velocity": -0.2471130718749998, + "angular_velocity": 0.0, + "x_acceleration": 2.2961462499999987, + "y_acceleration": 0.20387375000000096, + "angular_acceleration": 0.0 + }, + { + "time": 0.4400000000000002, + "x": 0.32298365440000026, + "y": -0.06225246720000004, + "angle": 0.0, + "x_velocity": 1.5658368000000007, + "y_velocity": -0.24471039999999994, + "angular_velocity": 0.0, + "x_acceleration": 2.0886799999999974, + "y_acceleration": 0.27676000000000034, + "angular_acceleration": 0.0 + }, + { + "time": 0.45000000000000023, + "x": 0.33874294921875037, + "y": -0.06468451171875003, + "angle": 0.0, + "x_velocity": 1.5856699218750003, + "y_velocity": -0.2415761718749999, + "angular_velocity": 0.0, + "x_acceleration": 1.877343749999996, + "y_acceleration": 0.35015625000000217, + "angular_acceleration": 0.0 + }, + { + "time": 0.46000000000000024, + "x": 0.3546899506000004, + "y": -0.06708153780000006, + "angle": 0.0, + "x_velocity": 1.603372550000001, + "y_velocity": -0.23770614999999978, + "angular_velocity": 0.0, + "x_acceleration": 1.6626699999999968, + "y_acceleration": 0.4238900000000023, + "angular_acceleration": 0.0 + }, + { + "time": 0.47000000000000025, + "x": 0.3708031956062504, + "y": -0.06943617350625005, + "angle": 0.0, + "x_velocity": 1.6189139718750007, + "y_velocity": -0.2330978218749999, + "angular_velocity": 0.0, + "x_acceleration": 1.445191249999997, + "y_acceleration": 0.49778875000000156, + "angular_acceleration": 0.0 + }, + { + "time": 0.48000000000000026, + "x": 0.38706094080000036, + "y": -0.07174103040000007, + "angle": 0.0, + "x_velocity": 1.6322688000000005, + "y_velocity": -0.2277503999999998, + "angular_velocity": 0.0, + "x_acceleration": 1.2254399999999972, + "y_acceleration": 0.5716800000000011, + "angular_acceleration": 0.0 + }, + { + "time": 0.49000000000000027, + "x": 0.40344121549375034, + "y": -0.07398872079375005, + "angle": 0.0, + "x_velocity": 1.6434169718750011, + "y_velocity": -0.22166482187500003, + "angular_velocity": 0.0, + "x_acceleration": 1.0039487499999904, + "y_acceleration": 0.6453912500000021, + "angular_acceleration": 0.0 + }, + { + "time": 0.5000000000000002, + "x": 0.41992187500000044, + "y": -0.07617187500000004, + "angle": 0.0, + "x_velocity": 1.6523437499999998, + "y_velocity": -0.2148437499999999, + "angular_velocity": 0.0, + "x_acceleration": 0.7812499999999982, + "y_acceleration": 0.7187500000000009, + "angular_acceleration": 0.0 + }, + { + "time": 0.5100000000000002, + "x": 0.43648065388125046, + "y": -0.07828315858125005, + "angle": 0.0, + "x_velocity": 1.6590397218749997, + "y_velocity": -0.20729157187499958, + "angular_velocity": 0.0, + "x_acceleration": 0.5578762499999979, + "y_acceleration": 0.7915837500000014, + "angular_acceleration": 0.0 + }, + { + "time": 0.5200000000000002, + "x": 0.4530952192000004, + "y": -0.08031528960000006, + "angle": 0.0, + "x_velocity": 1.6635008, + "y_velocity": -0.19901439999999992, + "angular_velocity": 0.0, + "x_acceleration": 0.33435999999998955, + "y_acceleration": 0.8637200000000025, + "angular_acceleration": 0.0 + }, + { + "time": 0.5300000000000002, + "x": 0.4697432237687505, + "y": -0.08226105586875002, + "angle": 0.0, + "x_velocity": 1.6657282218749998, + "y_velocity": -0.19002007187499992, + "angular_velocity": 0.0, + "x_acceleration": 0.11123374999999491, + "y_acceleration": 0.9349862500000024, + "angular_acceleration": 0.0 + }, + { + "time": 0.5400000000000003, + "x": 0.48640235940000054, + "y": -0.08411333220000008, + "angle": 0.0, + "x_velocity": 1.6657285499999996, + "y_velocity": -0.18031814999999962, + "angular_velocity": 0.0, + "x_acceleration": -0.11097000000000534, + "y_acceleration": 1.0052100000000008, + "angular_acceleration": 0.0 + }, + { + "time": 0.5500000000000003, + "x": 0.5030504101562503, + "y": -0.08586509765625, + "angle": 0.0, + "x_velocity": 1.6635136718750014, + "y_velocity": -0.16991992187499994, + "angular_velocity": 0.0, + "x_acceleration": -0.33171875000001094, + "y_acceleration": 1.0742187500000018, + "angular_acceleration": 0.0 + }, + { + "time": 0.5600000000000003, + "x": 0.5196653056000005, + "y": -0.08750945280000005, + "angle": 0.0, + "x_velocity": 1.6591007999999996, + "y_velocity": -0.15883839999999982, + "angular_velocity": 0.0, + "x_acceleration": -0.550480000000011, + "y_acceleration": 1.1418400000000029, + "angular_acceleration": 0.0 + }, + { + "time": 0.5700000000000003, + "x": 0.5362251740437505, + "y": -0.08903963694375008, + "angle": 0.0, + "x_velocity": 1.6525124718749997, + "y_velocity": -0.14708832187499954, + "angular_velocity": 0.0, + "x_acceleration": -0.7667212500000034, + "y_acceleration": 1.2079012500000017, + "angular_acceleration": 0.0 + }, + { + "time": 0.5800000000000003, + "x": 0.5527083958000004, + "y": -0.09044904540000007, + "angle": 0.0, + "x_velocity": 1.6437765500000006, + "y_velocity": -0.13468614999999984, + "angular_velocity": 0.0, + "x_acceleration": -0.9799100000000145, + "y_acceleration": 1.272230000000004, + "angular_acceleration": 0.0 + }, + { + "time": 0.5900000000000003, + "x": 0.5690936564312505, + "y": -0.09173124673124998, + "angle": 0.0, + "x_velocity": 1.6329262218750014, + "y_velocity": -0.12165007187499977, + "angular_velocity": 0.0, + "x_acceleration": -1.1895137500000104, + "y_acceleration": 1.3346537500000037, + "angular_acceleration": 0.0 + }, + { + "time": 0.6000000000000003, + "x": 0.5853600000000004, + "y": -0.09288000000000005, + "angle": 0.0, + "x_velocity": 1.6199999999999992, + "y_velocity": -0.1080000000000001, + "angular_velocity": 0.0, + "x_acceleration": -1.3950000000000067, + "y_acceleration": 1.3950000000000031, + "angular_acceleration": 0.0 + }, + { + "time": 0.6100000000000003, + "x": 0.6014868823187505, + "y": -0.09388927201875008, + "angle": 0.0, + "x_velocity": 1.6050417218750002, + "y_velocity": -0.09375757187499945, + "angular_velocity": 0.0, + "x_acceleration": -1.5958362500000085, + "y_acceleration": 1.4530962500000015, + "angular_acceleration": 0.0 + }, + { + "time": 0.6200000000000003, + "x": 0.6174542242000005, + "y": -0.09475325460000003, + "angle": 0.0, + "x_velocity": 1.5881005500000005, + "y_velocity": -0.07894615000000016, + "angular_velocity": 0.0, + "x_acceleration": -1.7914900000000138, + "y_acceleration": 1.5087700000000055, + "angular_acceleration": 0.0 + }, + { + "time": 0.6300000000000003, + "x": 0.6332424647062505, + "y": -0.09546638180624994, + "angle": 0.0, + "x_velocity": 1.5692309718749988, + "y_velocity": -0.0635908218749992, + "angular_velocity": 0.0, + "x_acceleration": -1.9814287500000027, + "y_acceleration": 1.5618487500000011, + "angular_acceleration": 0.0 + }, + { + "time": 0.6400000000000003, + "x": 0.6488326144000007, + "y": -0.0960233472, + "angle": 0.0, + "x_velocity": 1.5484927999999996, + "y_velocity": -0.04771839999999994, + "angular_velocity": 0.0, + "x_acceleration": -2.1651200000000124, + "y_acceleration": 1.6121600000000038, + "angular_acceleration": 0.0 + }, + { + "time": 0.6500000000000004, + "x": 0.6642063085937505, + "y": -0.09641912109375003, + "angle": 0.0, + "x_velocity": 1.5259511718749983, + "y_velocity": -0.0313574218749999, + "angular_velocity": 0.0, + "x_acceleration": -2.3420312500000087, + "y_acceleration": 1.6595312500000032, + "angular_acceleration": 0.0 + }, + { + "time": 0.6600000000000004, + "x": 0.6793458606000006, + "y": -0.09664896780000001, + "angle": 0.0, + "x_velocity": 1.501676549999999, + "y_velocity": -0.014538149999999472, + "angular_velocity": 0.0, + "x_acceleration": -2.5116300000000074, + "y_acceleration": 1.703790000000005, + "angular_acceleration": 0.0 + }, + { + "time": 0.6700000000000004, + "x": 0.6942343149812505, + "y": -0.0967084628812501, + "angle": 0.0, + "x_velocity": 1.4757447218749995, + "y_velocity": 0.002707428125000133, + "angular_velocity": 0.0, + "x_acceleration": -2.6733837500000064, + "y_acceleration": 1.7447637500000024, + "angular_acceleration": 0.0 + }, + { + "time": 0.6800000000000004, + "x": 0.7088555008000001, + "y": -0.09659351040000005, + "angle": 0.0, + "x_velocity": 1.4482367999999974, + "y_velocity": 0.020345600000001296, + "angular_velocity": 0.0, + "x_acceleration": -2.8267600000000073, + "y_acceleration": 1.7822800000000019, + "angular_acceleration": 0.0 + }, + { + "time": 0.6900000000000004, + "x": 0.7231940848687501, + "y": -0.09630036016874996, + "angle": 0.0, + "x_velocity": 1.4192392218749985, + "y_velocity": 0.03834092812500112, + "angular_velocity": 0.0, + "x_acceleration": -2.9712262500000044, + "y_acceleration": 1.8161662500000002, + "angular_acceleration": 0.0 + }, + { + "time": 0.7000000000000004, + "x": 0.7372356250000003, + "y": -0.09582562500000003, + "angle": 0.0, + "x_velocity": 1.3888437499999968, + "y_velocity": 0.05665625000000074, + "angular_velocity": 0.0, + "x_acceleration": -3.106250000000003, + "y_acceleration": 1.846249999999996, + "angular_acceleration": 0.0 + }, + { + "time": 0.7100000000000004, + "x": 0.7509666232562502, + "y": -0.09516629795624987, + "angle": 0.0, + "x_velocity": 1.357147471874999, + "y_velocity": 0.07525267812500047, + "angular_velocity": 0.0, + "x_acceleration": -3.231298750000004, + "y_acceleration": 1.8723587499999983, + "angular_acceleration": 0.0 + }, + { + "time": 0.7200000000000004, + "x": 0.7643745792000006, + "y": -0.09431976960000005, + "angle": 0.0, + "x_velocity": 1.3242527999999973, + "y_velocity": 0.09408960000000133, + "angular_velocity": 0.0, + "x_acceleration": -3.3458400000000097, + "y_acceleration": 1.8943200000000004, + "angular_acceleration": 0.0 + }, + { + "time": 0.7300000000000004, + "x": 0.7774480431437502, + "y": -0.09328384524374983, + "angle": 0.0, + "x_velocity": 1.2902674718749987, + "y_velocity": 0.11312467812500016, + "angular_velocity": 0.0, + "x_acceleration": -3.4493412500000034, + "y_acceleration": 1.9119612499999992, + "angular_acceleration": 0.0 + }, + { + "time": 0.7400000000000004, + "x": 0.7901766694, + "y": -0.09205676219999998, + "angle": 0.0, + "x_velocity": 1.2553045500000017, + "y_velocity": 0.13231385000000007, + "angular_velocity": 0.0, + "x_acceleration": -3.5412700000000186, + "y_acceleration": 1.9251100000000019, + "angular_acceleration": 0.0 + }, + { + "time": 0.7500000000000004, + "x": 0.8025512695312504, + "y": -0.09063720703124989, + "angle": 0.0, + "x_velocity": 1.2194824218749982, + "y_velocity": 0.1516113281250009, + "angular_velocity": 0.0, + "x_acceleration": -3.621093749999993, + "y_acceleration": 1.93359375, + "angular_acceleration": 0.0 + }, + { + "time": 0.7600000000000005, + "x": 0.8145638655999998, + "y": -0.08902433279999977, + "angle": 0.0, + "x_velocity": 1.1829247999999994, + "y_velocity": 0.17096960000000117, + "angular_velocity": 0.0, + "x_acceleration": -3.688279999999992, + "y_acceleration": 1.9372399999999992, + "angular_acceleration": 0.0 + }, + { + "time": 0.7700000000000005, + "x": 0.8262077434187507, + "y": -0.08721777631875, + "angle": 0.0, + "x_velocity": 1.145760721874999, + "y_velocity": 0.19033942812500015, + "angular_velocity": 0.0, + "x_acceleration": -3.7422962500000096, + "y_acceleration": 1.9358762500000033, + "angular_acceleration": 0.0 + }, + { + "time": 0.7800000000000005, + "x": 0.8374775058000006, + "y": -0.0852176753999998, + "angle": 0.0, + "x_velocity": 1.1081245499999977, + "y_velocity": 0.20966985000000093, + "angular_velocity": 0.0, + "x_acceleration": -3.782609999999991, + "y_acceleration": 1.9293299999999967, + "angular_acceleration": 0.0 + }, + { + "time": 0.7900000000000005, + "x": 0.8483691258062505, + "y": -0.08302468610624991, + "angle": 0.0, + "x_velocity": 1.0701559718749962, + "y_velocity": 0.22890817812500108, + "angular_velocity": 0.0, + "x_acceleration": -3.8086887499999946, + "y_acceleration": 1.9174287499999974, + "angular_acceleration": 0.0 + }, + { + "time": 0.8000000000000005, + "x": 0.8588799999999999, + "y": -0.08063999999999982, + "angle": 0.0, + "x_velocity": 1.0319999999999983, + "y_velocity": 0.24800000000000066, + "angular_velocity": 0.0, + "x_acceleration": -3.8200000000000074, + "y_acceleration": 1.900000000000004, + "angular_acceleration": 0.0 + }, + { + "time": 0.8100000000000005, + "x": 0.8690090016937504, + "y": -0.07806536139374998, + "angle": 0.0, + "x_velocity": 0.9938069718749993, + "y_velocity": 0.26688917812500046, + "angular_velocity": 0.0, + "x_acceleration": -3.8160112500000025, + "y_acceleration": 1.8768712500000007, + "angular_acceleration": 0.0 + }, + { + "time": 0.8200000000000005, + "x": 0.878756534200001, + "y": -0.0753030845999999, + "angle": 0.0, + "x_velocity": 0.9557325499999987, + "y_velocity": 0.28551785000000107, + "angular_velocity": 0.0, + "x_acceleration": -3.796190000000003, + "y_acceleration": 1.8478700000000003, + "angular_acceleration": 0.0 + }, + { + "time": 0.8300000000000005, + "x": 0.8881245840812502, + "y": -0.07235607118124976, + "angle": 0.0, + "x_velocity": 0.9179377218749991, + "y_velocity": 0.3038264281249998, + "angular_velocity": 0.0, + "x_acceleration": -3.7600037500000028, + "y_acceleration": 1.8128237499999997, + "angular_acceleration": 0.0 + }, + { + "time": 0.8400000000000005, + "x": 0.8971167744000004, + "y": -0.06922782719999987, + "angle": 0.0, + "x_velocity": 0.8805887999999982, + "y_velocity": 0.32175360000000053, + "angular_velocity": 0.0, + "x_acceleration": -3.7069199999999967, + "y_acceleration": 1.771560000000001, + "angular_acceleration": 0.0 + }, + { + "time": 0.8500000000000005, + "x": 0.90573841796875, + "y": -0.0659224804687496, + "angle": 0.0, + "x_velocity": 0.8438574218749988, + "y_velocity": 0.33923632812500015, + "angular_velocity": 0.0, + "x_acceleration": -3.636406249999986, + "y_acceleration": 1.7239062499999953, + "angular_acceleration": 0.0 + }, + { + "time": 0.8600000000000005, + "x": 0.9139965706000002, + "y": -0.062444797799999785, + "angle": 0.0, + "x_velocity": 0.8079205500000004, + "y_velocity": 0.35620984999999994, + "angular_velocity": 0.0, + "x_acceleration": -3.5479299999999725, + "y_acceleration": 1.6696899999999921, + "angular_acceleration": 0.0 + }, + { + "time": 0.8700000000000006, + "x": 0.9219000843562499, + "y": -0.0588002022562496, + "angle": 0.0, + "x_velocity": 0.7729604718750043, + "y_velocity": 0.37260767812500006, + "angular_velocity": 0.0, + "x_acceleration": -3.44095875, + "y_acceleration": 1.608738749999997, + "angular_acceleration": 0.0 + }, + { + "time": 0.8800000000000006, + "x": 0.9294596608000001, + "y": -0.05499479039999966, + "angle": 0.0, + "x_velocity": 0.7391648000000011, + "y_velocity": 0.38836159999999964, + "angular_velocity": 0.0, + "x_acceleration": -3.314959999999992, + "y_acceleration": 1.5408800000000014, + "angular_acceleration": 0.0 + }, + { + "time": 0.8900000000000006, + "x": 0.9366879042437501, + "y": -0.051035349543749886, + "angle": 0.0, + "x_velocity": 0.7067264718749957, + "y_velocity": 0.40340167812500116, + "angular_velocity": 0.0, + "x_acceleration": -3.1694012499999857, + "y_acceleration": 1.4659412499999966, + "angular_acceleration": 0.0 + }, + { + "time": 0.9000000000000006, + "x": 0.9435993750000007, + "y": -0.046929374999999496, + "angle": 0.0, + "x_velocity": 0.6758437500000003, + "y_velocity": 0.4176562500000012, + "angular_velocity": 0.0, + "x_acceleration": -3.0037499999999966, + "y_acceleration": 1.3837499999999956, + "angular_acceleration": 0.0 + }, + { + "time": 0.9100000000000006, + "x": 0.9502106426312498, + "y": -0.04268508733124987, + "angle": 0.0, + "x_velocity": 0.6467202218750003, + "y_velocity": 0.43105192812499915, + "angular_velocity": 0.0, + "x_acceleration": -2.8174737499999907, + "y_acceleration": 1.2941337499999932, + "angular_acceleration": 0.0 + }, + { + "time": 0.9200000000000006, + "x": 0.9565403392000009, + "y": -0.03831144959999955, + "angle": 0.0, + "x_velocity": 0.6195647999999974, + "y_velocity": 0.4435136000000002, + "angular_velocity": 0.0, + "x_acceleration": -2.6100399999999837, + "y_acceleration": 1.196919999999995, + "angular_acceleration": 0.0 + }, + { + "time": 0.9300000000000006, + "x": 0.9626092125187493, + "y": -0.033818184618749525, + "angle": 0.0, + "x_velocity": 0.5945917218749983, + "y_velocity": 0.4549644281249998, + "angular_velocity": 0.0, + "x_acceleration": -2.3809162499999985, + "y_acceleration": 1.0919362499999892, + "angular_acceleration": 0.0 + }, + { + "time": 0.9400000000000006, + "x": 0.9684401794000013, + "y": -0.02921579219999959, + "angle": 0.0, + "x_velocity": 0.5720205499999977, + "y_velocity": 0.46532585000000104, + "angular_velocity": 0.0, + "x_acceleration": -2.129569999999987, + "y_acceleration": 0.9790099999999882, + "angular_acceleration": 0.0 + }, + { + "time": 0.9500000000000006, + "x": 0.9740583789062511, + "y": -0.024515566406249967, + "angle": 0.0, + "x_velocity": 0.5520761718750009, + "y_velocity": 0.47451757812499995, + "angular_velocity": 0.0, + "x_acceleration": -1.8554687499999858, + "y_acceleration": 0.8579687499999906, + "angular_acceleration": 0.0 + }, + { + "time": 0.9600000000000006, + "x": 0.9794912256000008, + "y": -0.01972961279999974, + "angle": 0.0, + "x_velocity": 0.5349888000000007, + "y_velocity": 0.4824576000000018, + "angular_velocity": 0.0, + "x_acceleration": -1.5580799999999897, + "y_acceleration": 0.7286399999999951, + "angular_acceleration": 0.0 + }, + { + "time": 0.9700000000000006, + "x": 0.9847684627937499, + "y": -0.014870865693749513, + "angle": 0.0, + "x_velocity": 0.5209939718750007, + "y_velocity": 0.48906217812499975, + "angular_velocity": 0.0, + "x_acceleration": -1.236871249999993, + "y_acceleration": 0.590851249999993, + "angular_acceleration": 0.0 + }, + { + "time": 0.9800000000000006, + "x": 0.989922215800001, + "y": -0.00995310539999994, + "angle": 0.0, + "x_velocity": 0.5103325500000011, + "y_velocity": 0.49424585000000043, + "angular_velocity": 0.0, + "x_acceleration": -0.8913099999999758, + "y_acceleration": 0.4444299999999899, + "angular_acceleration": 0.0 + }, + { + "time": 0.9900000000000007, + "x": 0.9949870451812508, + "y": -0.004990975481249826, + "angle": 0.0, + "x_velocity": 0.503250721875002, + "y_velocity": 0.4979214281249993, + "angular_velocity": 0.0, + "x_acceleration": -0.5208637499999895, + "y_acceleration": 0.28920374999999154, + "angular_acceleration": 0.0 + }, + { + "time": 1.0000000000000007, + "x": 1.0000000000000004, + "y": 3.33066907387547e-16, + "angle": 0.0, + "x_velocity": 0.4999999999999999, + "y_velocity": 0.5000000000000001, + "angular_velocity": 0.0, + "x_acceleration": -0.12500000000000375, + "y_acceleration": 0.12500000000001874, + "angular_acceleration": 0.0 + }, + { + "time": 1.0100000000000007, + "x": 1.0049928181187504, + "y": 0.0050108671562503395, + "angle": 0.0, + "x_velocity": 0.4984709968749999, + "y_velocity": 0.5026281406250003, + "angular_velocity": 0.0, + "x_acceleration": -0.1805762500000037, + "y_acceleration": 0.3978312500000179, + "angular_acceleration": 0.0 + }, + { + "time": 1.0200000000000007, + "x": 1.0099675898000002, + "y": 0.01006137900000035, + "angle": 0.0, + "x_velocity": 0.4963929499999999, + "y_velocity": 0.5079012500000004, + "angular_velocity": 0.0, + "x_acceleration": -0.23481000000000368, + "y_acceleration": 0.6540500000000169, + "angular_acceleration": 0.0 + }, + { + "time": 1.0300000000000007, + "x": 1.0149188916062502, + "y": 0.015177160218750357, + "angle": 0.0, + "x_velocity": 0.4937792468749998, + "y_velocity": 0.5156548906250007, + "angular_velocity": 0.0, + "x_acceleration": -0.2877087500000036, + "y_acceleration": 0.8939937500000161, + "angular_acceleration": 0.0 + }, + { + "time": 1.0400000000000007, + "x": 1.0198414336000003, + "y": 0.02038220800000037, + "angle": 0.0, + "x_velocity": 0.4906431999999997, + "y_velocity": 0.5257280000000008, + "angular_velocity": 0.0, + "x_acceleration": -0.33928000000000363, + "y_acceleration": 1.1180000000000152, + "angular_acceleration": 0.0 + }, + { + "time": 1.0500000000000007, + "x": 1.0247300585937502, + "y": 0.025698925781250385, + "angle": 0.0, + "x_velocity": 0.4869980468749997, + "y_velocity": 0.537962890625001, + "angular_velocity": 0.0, + "x_acceleration": -0.38953125000000355, + "y_acceleration": 1.3264062500000142, + "angular_acceleration": 0.0 + }, + { + "time": 1.0600000000000007, + "x": 1.0295797414000003, + "y": 0.0311481570000004, + "angle": 0.0, + "x_velocity": 0.4828569499999998, + "y_velocity": 0.5522052500000011, + "angular_velocity": 0.0, + "x_acceleration": -0.4384700000000034, + "y_acceleration": 1.5195500000000133, + "angular_acceleration": 0.0 + }, + { + "time": 1.0700000000000007, + "x": 1.0343855880812505, + "y": 0.03674921884375042, + "angle": 0.0, + "x_velocity": 0.47823299687499965, + "y_velocity": 0.5683041406250011, + "angular_velocity": 0.0, + "x_acceleration": -0.4861037500000034, + "y_acceleration": 1.6977687500000123, + "angular_acceleration": 0.0 + }, + { + "time": 1.0800000000000007, + "x": 1.0391428352000005, + "y": 0.04251993600000043, + "angle": 0.0, + "x_velocity": 0.4731391999999996, + "y_velocity": 0.5861120000000014, + "angular_velocity": 0.0, + "x_acceleration": -0.5324400000000034, + "y_acceleration": 1.8614000000000117, + "angular_acceleration": 0.0 + }, + { + "time": 1.0900000000000007, + "x": 1.0438468490687505, + "y": 0.048476674406250454, + "angle": 0.0, + "x_velocity": 0.4675884968749996, + "y_velocity": 0.6054846406250015, + "angular_velocity": 0.0, + "x_acceleration": -0.5774862500000033, + "y_acceleration": 2.0107812500000106, + "angular_acceleration": 0.0 + }, + { + "time": 1.1000000000000008, + "x": 1.0484931250000002, + "y": 0.05463437500000048, + "angle": 0.0, + "x_velocity": 0.4615937499999996, + "y_velocity": 0.6262812500000016, + "angular_velocity": 0.0, + "x_acceleration": -0.6212500000000032, + "y_acceleration": 2.14625000000001, + "angular_acceleration": 0.0 + }, + { + "time": 1.1100000000000008, + "x": 1.0530772865562505, + "y": 0.0610065874687505, + "angle": 0.0, + "x_velocity": 0.4551677468749995, + "y_velocity": 0.6483643906250018, + "angular_velocity": 0.0, + "x_acceleration": -0.6637387500000033, + "y_acceleration": 2.2681437500000086, + "angular_acceleration": 0.0 + }, + { + "time": 1.1200000000000008, + "x": 1.0575950848000009, + "y": 0.06760550400000054, + "angle": 0.0, + "x_velocity": 0.4483231999999994, + "y_velocity": 0.6716000000000018, + "angular_velocity": 0.0, + "x_acceleration": -0.7049600000000031, + "y_acceleration": 2.376800000000008, + "angular_acceleration": 0.0 + }, + { + "time": 1.1300000000000008, + "x": 1.0620423975437503, + "y": 0.07444199303125054, + "angle": 0.0, + "x_velocity": 0.44107274687499937, + "y_velocity": 0.695857390625002, + "angular_velocity": 0.0, + "x_acceleration": -0.7449212500000031, + "y_acceleration": 2.4725562500000073, + "angular_acceleration": 0.0 + }, + { + "time": 1.1400000000000008, + "x": 1.0664152286000004, + "y": 0.08152563300000057, + "angle": 0.0, + "x_velocity": 0.4334289499999994, + "y_velocity": 0.721009250000002, + "angular_velocity": 0.0, + "x_acceleration": -0.7836300000000029, + "y_acceleration": 2.555750000000006, + "angular_acceleration": 0.0 + }, + { + "time": 1.1500000000000008, + "x": 1.0707097070312503, + "y": 0.0888647460937506, + "angle": 0.0, + "x_velocity": 0.42540429687499937, + "y_velocity": 0.7469316406250021, + "angular_velocity": 0.0, + "x_acceleration": -0.821093750000003, + "y_acceleration": 2.6267187500000055, + "angular_acceleration": 0.0 + }, + { + "time": 1.1600000000000008, + "x": 1.0749220864000004, + "y": 0.09646643200000064, + "angle": 0.0, + "x_velocity": 0.41701119999999925, + "y_velocity": 0.7735040000000021, + "angular_velocity": 0.0, + "x_acceleration": -0.857320000000003, + "y_acceleration": 2.685800000000005, + "angular_acceleration": 0.0 + }, + { + "time": 1.1700000000000008, + "x": 1.0790487440187504, + "y": 0.10433660165625065, + "angle": 0.0, + "x_velocity": 0.4082619968749993, + "y_velocity": 0.8006091406250022, + "angular_velocity": 0.0, + "x_acceleration": -0.8923162500000029, + "y_acceleration": 2.7333312500000035, + "angular_acceleration": 0.0 + }, + { + "time": 1.1800000000000008, + "x": 1.0830861802000002, + "y": 0.11248001100000067, + "angle": 0.0, + "x_velocity": 0.39916894999999925, + "y_velocity": 0.8281332500000024, + "angular_velocity": 0.0, + "x_acceleration": -0.9260900000000027, + "y_acceleration": 2.769650000000002, + "angular_acceleration": 0.0 + }, + { + "time": 1.1900000000000008, + "x": 1.0870310175062503, + "y": 0.1209002947187507, + "angle": 0.0, + "x_velocity": 0.3897442468749992, + "y_velocity": 0.8559658906250025, + "angular_velocity": 0.0, + "x_acceleration": -0.9586487500000028, + "y_acceleration": 2.7950937500000013, + "angular_acceleration": 0.0 + }, + { + "time": 1.2000000000000008, + "x": 1.0908800000000007, + "y": 0.12960000000000071, + "angle": 0.0, + "x_velocity": 0.37999999999999917, + "y_velocity": 0.8840000000000023, + "angular_velocity": 0.0, + "x_acceleration": -0.9900000000000025, + "y_acceleration": 2.810000000000001, + "angular_acceleration": 0.0 + }, + { + "time": 1.2100000000000009, + "x": 1.0946299924937504, + "y": 0.1385806202812508, + "angle": 0.0, + "x_velocity": 0.3699482468749991, + "y_velocity": 0.9121318906250024, + "angular_velocity": 0.0, + "x_acceleration": -1.0201512500000023, + "y_acceleration": 2.81470625, + "angular_acceleration": 0.0 + }, + { + "time": 1.2200000000000009, + "x": 1.0982779798, + "y": 0.14784262900000084, + "angle": 0.0, + "x_velocity": 0.35960094999999914, + "y_velocity": 0.9402612500000024, + "angular_velocity": 0.0, + "x_acceleration": -1.0491100000000024, + "y_acceleration": 2.8095499999999993, + "angular_acceleration": 0.0 + }, + { + "time": 1.2300000000000009, + "x": 1.1018210659812502, + "y": 0.15738551334375087, + "angle": 0.0, + "x_velocity": 0.348969996874999, + "y_velocity": 0.9682911406250022, + "angular_velocity": 0.0, + "x_acceleration": -1.0768837500000024, + "y_acceleration": 2.794868749999999, + "angular_acceleration": 0.0 + }, + { + "time": 1.2400000000000009, + "x": 1.1052564736000003, + "y": 0.16720780800000087, + "angle": 0.0, + "x_velocity": 0.33806719999999907, + "y_velocity": 0.9961280000000025, + "angular_velocity": 0.0, + "x_acceleration": -1.1034800000000022, + "y_acceleration": 2.770999999999998, + "angular_acceleration": 0.0 + }, + { + "time": 1.2500000000000009, + "x": 1.1085815429687502, + "y": 0.17730712890625092, + "angle": 0.0, + "x_velocity": 0.32690429687499906, + "y_velocity": 1.0236816406250022, + "angular_velocity": 0.0, + "x_acceleration": -1.128906250000002, + "y_acceleration": 2.738281249999997, + "angular_acceleration": 0.0 + }, + { + "time": 1.260000000000001, + "x": 1.1117937314000004, + "y": 0.18768020700000093, + "angle": 0.0, + "x_velocity": 0.315492949999999, + "y_velocity": 1.0508652500000022, + "angular_velocity": 0.0, + "x_acceleration": -1.1531700000000022, + "y_acceleration": 2.697049999999995, + "angular_acceleration": 0.0 + }, + { + "time": 1.270000000000001, + "x": 1.1148906124562503, + "y": 0.198322921968751, + "angle": 0.0, + "x_velocity": 0.3038447468749989, + "y_velocity": 1.0775953906250024, + "angular_velocity": 0.0, + "x_acceleration": -1.176278750000002, + "y_acceleration": 2.647643749999995, + "angular_acceleration": 0.0 + }, + { + "time": 1.280000000000001, + "x": 1.1178698752000003, + "y": 0.20923033600000102, + "angle": 0.0, + "x_velocity": 0.29197119999999893, + "y_velocity": 1.1037920000000023, + "angular_velocity": 0.0, + "x_acceleration": -1.198240000000002, + "y_acceleration": 2.5903999999999945, + "angular_acceleration": 0.0 + }, + { + "time": 1.290000000000001, + "x": 1.1207293234437503, + "y": 0.22039672753125106, + "angle": 0.0, + "x_velocity": 0.2798837468749989, + "y_velocity": 1.1293783906250026, + "angular_velocity": 0.0, + "x_acceleration": -1.2190612500000018, + "y_acceleration": 2.5256562499999937, + "angular_acceleration": 0.0 + }, + { + "time": 1.300000000000001, + "x": 1.123466875, + "y": 0.2318156250000011, + "angle": 0.0, + "x_velocity": 0.26759374999999885, + "y_velocity": 1.1542812500000024, + "angular_velocity": 0.0, + "x_acceleration": -1.2387500000000018, + "y_acceleration": 2.453749999999993, + "angular_acceleration": 0.0 + }, + { + "time": 1.310000000000001, + "x": 1.1260805609312503, + "y": 0.24347984059375113, + "angle": 0.0, + "x_velocity": 0.25511249687499876, + "y_velocity": 1.1784306406250022, + "angular_velocity": 0.0, + "x_acceleration": -1.2573137500000018, + "y_acceleration": 2.3750187499999926, + "angular_acceleration": 0.0 + }, + { + "time": 1.320000000000001, + "x": 1.1285685248000004, + "y": 0.2553815040000011, + "angle": 0.0, + "x_velocity": 0.24245119999999876, + "y_velocity": 1.201760000000002, + "angular_velocity": 0.0, + "x_acceleration": -1.2747600000000017, + "y_acceleration": 2.2897999999999916, + "angular_acceleration": 0.0 + }, + { + "time": 1.330000000000001, + "x": 1.13092902191875, + "y": 0.26751209615625116, + "angle": 0.0, + "x_velocity": 0.22962099687499876, + "y_velocity": 1.224206140625002, + "angular_velocity": 0.0, + "x_acceleration": -1.2910962500000018, + "y_acceleration": 2.1984312499999916, + "angular_acceleration": 0.0 + }, + { + "time": 1.340000000000001, + "x": 1.1331604186, + "y": 0.2798624830000012, + "angle": 0.0, + "x_velocity": 0.21663294999999874, + "y_velocity": 1.2457092500000022, + "angular_velocity": 0.0, + "x_acceleration": -1.3063300000000013, + "y_acceleration": 2.1012499999999883, + "angular_acceleration": 0.0 + }, + { + "time": 1.350000000000001, + "x": 1.13526119140625, + "y": 0.29242294921875117, + "angle": 0.0, + "x_velocity": 0.20349804687499873, + "y_velocity": 1.2662128906250023, + "angular_velocity": 0.0, + "x_acceleration": -1.3204687500000012, + "y_acceleration": 1.9985937499999888, + "angular_acceleration": 0.0 + }, + { + "time": 1.360000000000001, + "x": 1.1372299264000005, + "y": 0.3051832320000013, + "angle": 0.0, + "x_velocity": 0.19022719999999865, + "y_velocity": 1.285664000000002, + "angular_velocity": 0.0, + "x_acceleration": -1.3335200000000014, + "y_acceleration": 1.890799999999989, + "angular_acceleration": 0.0 + }, + { + "time": 1.370000000000001, + "x": 1.13906531839375, + "y": 0.3181325547812513, + "angle": 0.0, + "x_velocity": 0.17683124687499863, + "y_velocity": 1.304012890625002, + "angular_velocity": 0.0, + "x_acceleration": -1.3454912500000011, + "y_acceleration": 1.778206249999989, + "angular_acceleration": 0.0 + }, + { + "time": 1.380000000000001, + "x": 1.1407661701999998, + "y": 0.3312596610000013, + "angle": 0.0, + "x_velocity": 0.16332094999999866, + "y_velocity": 1.3212132500000018, + "angular_velocity": 0.0, + "x_acceleration": -1.356390000000001, + "y_acceleration": 1.661149999999989, + "angular_acceleration": 0.0 + }, + { + "time": 1.390000000000001, + "x": 1.1423313918812503, + "y": 0.34455284784375134, + "angle": 0.0, + "x_velocity": 0.14970699687499864, + "y_velocity": 1.3372221406250018, + "angular_velocity": 0.0, + "x_acceleration": -1.3662237500000012, + "y_acceleration": 1.5399687499999883, + "angular_acceleration": 0.0 + }, + { + "time": 1.400000000000001, + "x": 1.1437600000000003, + "y": 0.35800000000000143, + "angle": 0.0, + "x_velocity": 0.13599999999999857, + "y_velocity": 1.3520000000000016, + "angular_velocity": 0.0, + "x_acceleration": -1.3750000000000009, + "y_acceleration": 1.414999999999988, + "angular_acceleration": 0.0 + }, + { + "time": 1.410000000000001, + "x": 1.14505111686875, + "y": 0.3715886234062514, + "angle": 0.0, + "x_velocity": 0.12221049687499855, + "y_velocity": 1.3655106406250015, + "angular_velocity": 0.0, + "x_acceleration": -1.3827262500000006, + "y_acceleration": 1.286581249999986, + "angular_acceleration": 0.0 + }, + { + "time": 1.420000000000001, + "x": 1.1462039698000002, + "y": 0.3853058790000014, + "angle": 0.0, + "x_velocity": 0.10834894999999867, + "y_velocity": 1.3777212500000011, + "angular_velocity": 0.0, + "x_acceleration": -1.389410000000001, + "y_acceleration": 1.1550499999999868, + "angular_acceleration": 0.0 + }, + { + "time": 1.430000000000001, + "x": 1.14721789035625, + "y": 0.3991386164687514, + "angle": 0.0, + "x_velocity": 0.09442574687499856, + "y_velocity": 1.3886023906250013, + "angular_velocity": 0.0, + "x_acceleration": -1.395058750000001, + "y_acceleration": 1.0207437499999878, + "angular_acceleration": 0.0 + }, + { + "time": 1.440000000000001, + "x": 1.1480923136000003, + "y": 0.41307340800000153, + "angle": 0.0, + "x_velocity": 0.08045119999999847, + "y_velocity": 1.3981280000000011, + "angular_velocity": 0.0, + "x_acceleration": -1.3996800000000003, + "y_acceleration": 0.8839999999999844, + "angular_acceleration": 0.0 + }, + { + "time": 1.450000000000001, + "x": 1.14882677734375, + "y": 0.4270965820312515, + "angle": 0.0, + "x_velocity": 0.06643554687499861, + "y_velocity": 1.4062753906250007, + "angular_velocity": 0.0, + "x_acceleration": -1.4032812500000007, + "y_acceleration": 0.7451562499999866, + "angular_acceleration": 0.0 + }, + { + "time": 1.460000000000001, + "x": 1.1494209214, + "y": 0.4411942570000015, + "angle": 0.0, + "x_velocity": 0.052388949999998505, + "y_velocity": 1.4130252500000002, + "angular_velocity": 0.0, + "x_acceleration": -1.4058700000000004, + "y_acceleration": 0.6045499999999873, + "angular_acceleration": 0.0 + }, + { + "time": 1.470000000000001, + "x": 1.14987448683125, + "y": 0.4553523750937515, + "angle": 0.0, + "x_velocity": 0.03832149687499844, + "y_velocity": 1.418361640625, + "angular_velocity": 0.0, + "x_acceleration": -1.4074537500000002, + "y_acceleration": 0.4625187499999823, + "angular_acceleration": 0.0 + }, + { + "time": 1.480000000000001, + "x": 1.1501873152000004, + "y": 0.46955673600000153, + "angle": 0.0, + "x_velocity": 0.024243199999998497, + "y_velocity": 1.422272, + "angular_velocity": 0.0, + "x_acceleration": -1.40804, + "y_acceleration": 0.3193999999999848, + "angular_acceleration": 0.0 + }, + { + "time": 1.490000000000001, + "x": 1.15035934781875, + "y": 0.48379303065625157, + "angle": 0.0, + "x_velocity": 0.01016399687499846, + "y_velocity": 1.4247471406250003, + "angular_velocity": 0.0, + "x_acceleration": -1.40763625, + "y_acceleration": 0.17553124999998282, + "angular_acceleration": 0.0 + }, + { + "time": 1.500000000000001, + "x": 1.1503906249999998, + "y": 0.49804687500000144, + "angle": 0.0, + "x_velocity": -0.003906250000001506, + "y_velocity": 1.4257812500000002, + "angular_velocity": 0.0, + "x_acceleration": -1.4062499999999998, + "y_acceleration": 0.031249999999986677, + "angular_acceleration": 0.0 + }, + { + "time": 1.5100000000000011, + "x": 1.15028128530625, + "y": 0.5123038437187516, + "angle": 0.0, + "x_velocity": -0.017957753125001624, + "y_velocity": 1.4253718906250006, + "angular_velocity": 0.0, + "x_acceleration": -1.4038887499999992, + "y_acceleration": -0.11310625000001906, + "angular_acceleration": 0.0 + }, + { + "time": 1.5200000000000011, + "x": 1.1500315648, + "y": 0.5265495040000017, + "angle": 0.0, + "x_velocity": -0.03198080000000167, + "y_velocity": 1.4235199999999992, + "angular_velocity": 0.0, + "x_acceleration": -1.4005599999999996, + "y_acceleration": -0.25720000000001786, + "angular_acceleration": 0.0 + }, + { + "time": 1.5300000000000011, + "x": 1.1496417962937497, + "y": 0.5407694492812516, + "angle": 0.0, + "x_velocity": -0.04596575312500148, + "y_velocity": 1.4202298906249995, + "angular_velocity": 0.0, + "x_acceleration": -1.3962712499999996, + "y_acceleration": -0.4006937500000127, + "angular_acceleration": 0.0 + }, + { + "time": 1.5400000000000011, + "x": 1.1491124085999997, + "y": 0.5549493330000017, + "angle": 0.0, + "x_velocity": -0.059903050000001616, + "y_velocity": 1.4155092499999988, + "angular_velocity": 0.0, + "x_acceleration": -1.3910299999999989, + "y_acceleration": -0.5432500000000182, + "angular_acceleration": 0.0 + }, + { + "time": 1.5500000000000012, + "x": 1.14844392578125, + "y": 0.5690749023437516, + "angle": 0.0, + "x_velocity": -0.07378320312500151, + "y_velocity": 1.4093691406249984, + "angular_velocity": 0.0, + "x_acceleration": -1.3848437499999995, + "y_acceleration": -0.6845312500000151, + "angular_acceleration": 0.0 + }, + { + "time": 1.5600000000000012, + "x": 1.1476369664000001, + "y": 0.5831320320000017, + "angle": 0.0, + "x_velocity": -0.08759680000000161, + "y_velocity": 1.4018239999999993, + "angular_velocity": 0.0, + "x_acceleration": -1.3777199999999992, + "y_acceleration": -0.8242000000000171, + "angular_acceleration": 0.0 + }, + { + "time": 1.5700000000000012, + "x": 1.1466922427687498, + "y": 0.5971067579062518, + "angle": 0.0, + "x_velocity": -0.10133450312500165, + "y_velocity": 1.392891640624999, + "angular_velocity": 0.0, + "x_acceleration": -1.3696662499999988, + "y_acceleration": -0.9619187500000184, + "angular_acceleration": 0.0 + }, + { + "time": 1.5800000000000012, + "x": 1.1456105601999997, + "y": 0.6109853110000015, + "angle": 0.0, + "x_velocity": -0.11498705000000156, + "y_velocity": 1.3825932499999982, + "angular_velocity": 0.0, + "x_acceleration": -1.3606899999999993, + "y_acceleration": -1.0973500000000165, + "angular_acceleration": 0.0 + }, + { + "time": 1.5900000000000012, + "x": 1.1443928162562498, + "y": 0.6247541509687519, + "angle": 0.0, + "x_velocity": -0.1285452531250017, + "y_velocity": 1.3709533906249989, + "angular_velocity": 0.0, + "x_acceleration": -1.3507987499999992, + "y_acceleration": -1.2301562500000163, + "angular_acceleration": 0.0 + }, + { + "time": 1.6000000000000012, + "x": 1.1430399999999998, + "y": 0.6384000000000016, + "angle": 0.0, + "x_velocity": -0.14200000000000151, + "y_velocity": 1.3579999999999985, + "angular_velocity": 0.0, + "x_acceleration": -1.3399999999999987, + "y_acceleration": -1.3600000000000172, + "angular_acceleration": 0.0 + }, + { + "time": 1.6100000000000012, + "x": 1.1415531912437498, + "y": 0.6519098765312518, + "angle": 0.0, + "x_velocity": -0.15534225312500155, + "y_velocity": 1.3437643906249983, + "angular_velocity": 0.0, + "x_acceleration": -1.3283012499999982, + "y_acceleration": -1.4865437500000152, + "angular_acceleration": 0.0 + }, + { + "time": 1.6200000000000012, + "x": 1.1399335597999996, + "y": 0.6652711290000015, + "angle": 0.0, + "x_velocity": -0.1685630500000015, + "y_velocity": 1.3282812499999972, + "angular_velocity": 0.0, + "x_acceleration": -1.3157099999999984, + "y_acceleration": -1.609450000000015, + "angular_acceleration": 0.0 + }, + { + "time": 1.6300000000000012, + "x": 1.13818236473125, + "y": 0.6784714695937516, + "angle": 0.0, + "x_velocity": -0.1816535031250016, + "y_velocity": 1.311588640624997, + "angular_velocity": 0.0, + "x_acceleration": -1.3022337499999983, + "y_acceleration": -1.7283812500000124, + "angular_acceleration": 0.0 + }, + { + "time": 1.6400000000000012, + "x": 1.1363009536, + "y": 0.6914990080000014, + "angle": 0.0, + "x_velocity": -0.19460480000000183, + "y_velocity": 1.293727999999998, + "angular_velocity": 0.0, + "x_acceleration": -1.2878799999999977, + "y_acceleration": -1.843000000000016, + "angular_acceleration": 0.0 + }, + { + "time": 1.6500000000000012, + "x": 1.1342907617187497, + "y": 0.7043422851562515, + "angle": 0.0, + "x_velocity": -0.20740820312500144, + "y_velocity": 1.274744140624997, + "angular_velocity": 0.0, + "x_acceleration": -1.2726562499999983, + "y_acceleration": -1.952968750000009, + "angular_acceleration": 0.0 + }, + { + "time": 1.6600000000000013, + "x": 1.1321533113999998, + "y": 0.7169903070000014, + "angle": 0.0, + "x_velocity": -0.22005505000000133, + "y_velocity": 1.254685249999997, + "angular_velocity": 0.0, + "x_acceleration": -1.2565699999999982, + "y_acceleration": -2.0579500000000124, + "angular_acceleration": 0.0 + }, + { + "time": 1.6700000000000013, + "x": 1.1298902112062497, + "y": 0.7294325782187517, + "angle": 0.0, + "x_velocity": -0.2325367531250016, + "y_velocity": 1.2336028906249958, + "angular_velocity": 0.0, + "x_acceleration": -1.2396287499999974, + "y_acceleration": -2.1576062500000077, + "angular_acceleration": 0.0 + }, + { + "time": 1.6800000000000013, + "x": 1.1275031551999999, + "y": 0.7416591360000014, + "angle": 0.0, + "x_velocity": -0.24484480000000158, + "y_velocity": 1.2115519999999975, + "angular_velocity": 0.0, + "x_acceleration": -1.2218399999999972, + "y_acceleration": -2.2516000000000176, + "angular_acceleration": 0.0 + }, + { + "time": 1.6900000000000013, + "x": 1.1249939221937497, + "y": 0.7536605837812514, + "angle": 0.0, + "x_velocity": -0.2569707531250016, + "y_velocity": 1.1885908906249973, + "angular_velocity": 0.0, + "x_acceleration": -1.2032112499999972, + "y_acceleration": -2.3395937500000095, + "angular_acceleration": 0.0 + }, + { + "time": 1.7000000000000013, + "x": 1.1223643749999996, + "y": 0.7654281250000016, + "angle": 0.0, + "x_velocity": -0.26890625000000157, + "y_velocity": 1.1647812499999972, + "angular_velocity": 0.0, + "x_acceleration": -1.183749999999997, + "y_acceleration": -2.421250000000004, + "angular_acceleration": 0.0 + }, + { + "time": 1.7100000000000013, + "x": 1.11961645968125, + "y": 0.7769535968437519, + "angle": 0.0, + "x_velocity": -0.28064300312500134, + "y_velocity": 1.1401881406249963, + "angular_velocity": 0.0, + "x_acceleration": -1.1634637499999976, + "y_acceleration": -2.4962312500000152, + "angular_acceleration": 0.0 + }, + { + "time": 1.7200000000000013, + "x": 1.1167522047999996, + "y": 0.7882295040000012, + "angle": 0.0, + "x_velocity": -0.29217280000000145, + "y_velocity": 1.1148799999999954, + "angular_velocity": 0.0, + "x_acceleration": -1.142359999999997, + "y_acceleration": -2.564200000000003, + "angular_acceleration": 0.0 + }, + { + "time": 1.7300000000000013, + "x": 1.1137737206687497, + "y": 0.7992490524062511, + "angle": 0.0, + "x_velocity": -0.30348750312500167, + "y_velocity": 1.0889286406249972, + "angular_velocity": 0.0, + "x_acceleration": -1.1204462499999968, + "y_acceleration": -2.6248187500000064, + "angular_acceleration": 0.0 + }, + { + "time": 1.7400000000000013, + "x": 1.1106831985999994, + "y": 0.8100061830000015, + "angle": 0.0, + "x_velocity": -0.31457905000000147, + "y_velocity": 1.0624092499999964, + "angular_velocity": 0.0, + "x_acceleration": -1.0977299999999968, + "y_acceleration": -2.677750000000014, + "angular_acceleration": 0.0 + }, + { + "time": 1.7500000000000013, + "x": 1.1074829101562493, + "y": 0.8204956054687514, + "angle": 0.0, + "x_velocity": -0.3254394531250014, + "y_velocity": 1.0354003906249964, + "angular_velocity": 0.0, + "x_acceleration": -1.0742187499999967, + "y_acceleration": -2.72265625, + "angular_acceleration": 0.0 + }, + { + "time": 1.7600000000000013, + "x": 1.1041752063999999, + "y": 0.830712832000001, + "angle": 0.0, + "x_velocity": -0.3360608000000013, + "y_velocity": 1.007983999999996, + "angular_velocity": 0.0, + "x_acceleration": -1.049919999999997, + "y_acceleration": -2.7592000000000034, + "angular_acceleration": 0.0 + }, + { + "time": 1.7700000000000014, + "x": 1.1007625171437494, + "y": 0.840654211031251, + "angle": 0.0, + "x_velocity": -0.3464352531250015, + "y_velocity": 0.9802453906249955, + "angular_velocity": 0.0, + "x_acceleration": -1.0248412499999962, + "y_acceleration": -2.7870437500000023, + "angular_acceleration": 0.0 + }, + { + "time": 1.7800000000000014, + "x": 1.0972473501999993, + "y": 0.8503169610000019, + "angle": 0.0, + "x_velocity": -0.3565550500000012, + "y_velocity": 0.9522732499999949, + "angular_velocity": 0.0, + "x_acceleration": -0.9989899999999972, + "y_acceleration": -2.805849999999996, + "angular_acceleration": 0.0 + }, + { + "time": 1.7900000000000014, + "x": 1.0936322906312494, + "y": 0.8596992040937517, + "angle": 0.0, + "x_velocity": -0.3664125031250014, + "y_velocity": 0.9241596406249961, + "angular_velocity": 0.0, + "x_acceleration": -0.9723737499999958, + "y_acceleration": -2.8152812500000053, + "angular_acceleration": 0.0 + }, + { + "time": 1.8000000000000014, + "x": 1.0899199999999996, + "y": 0.8688000000000012, + "angle": 0.0, + "x_velocity": -0.37600000000000156, + "y_velocity": 0.8959999999999937, + "angular_velocity": 0.0, + "x_acceleration": -0.944999999999996, + "y_acceleration": -2.8150000000000013, + "angular_acceleration": 0.0 + }, + { + "time": 1.8100000000000014, + "x": 1.0861132156187496, + "y": 0.8776193796562513, + "angle": 0.0, + "x_velocity": -0.3853100031250015, + "y_velocity": 0.8678931406249975, + "angular_velocity": 0.0, + "x_acceleration": -0.9168762499999956, + "y_acceleration": -2.8046687499999976, + "angular_acceleration": 0.0 + }, + { + "time": 1.8200000000000014, + "x": 1.0822147497999992, + "y": 0.8861583790000014, + "angle": 0.0, + "x_velocity": -0.39433505000000146, + "y_velocity": 0.8399412499999963, + "angular_velocity": 0.0, + "x_acceleration": -0.8880099999999959, + "y_acceleration": -2.7839499999999973, + "angular_acceleration": 0.0 + }, + { + "time": 1.8300000000000014, + "x": 1.0782274891062493, + "y": 0.8944190727187507, + "angle": 0.0, + "x_velocity": -0.4030677531250014, + "y_velocity": 0.8122498906249973, + "angular_velocity": 0.0, + "x_acceleration": -0.8584087499999955, + "y_acceleration": -2.7525062500000033, + "angular_acceleration": 0.0 + }, + { + "time": 1.8400000000000014, + "x": 1.0741543935999995, + "y": 0.9024046080000012, + "angle": 0.0, + "x_velocity": -0.4115008000000011, + "y_velocity": 0.7849279999999972, + "angular_velocity": 0.0, + "x_acceleration": -0.828079999999995, + "y_acceleration": -2.710000000000001, + "angular_acceleration": 0.0 + }, + { + "time": 1.8500000000000014, + "x": 1.0699984960937494, + "y": 0.9101192382812515, + "angle": 0.0, + "x_velocity": -0.41962695312500126, + "y_velocity": 0.7580878906249993, + "angular_velocity": 0.0, + "x_acceleration": -0.7970312499999958, + "y_acceleration": -2.6560937499999895, + "angular_acceleration": 0.0 + }, + { + "time": 1.8600000000000014, + "x": 1.0657629013999994, + "y": 0.9175683570000011, + "angle": 0.0, + "x_velocity": -0.42743905000000093, + "y_velocity": 0.7318452499999957, + "angular_velocity": 0.0, + "x_acceleration": -0.7652699999999952, + "y_acceleration": -2.59044999999999, + "angular_acceleration": 0.0 + }, + { + "time": 1.8700000000000014, + "x": 1.0614507855812494, + "y": 0.924758531343751, + "angle": 0.0, + "x_velocity": -0.4349300031250009, + "y_velocity": 0.7063191406249967, + "angular_velocity": 0.0, + "x_acceleration": -0.7328037499999952, + "y_acceleration": -2.5127312499999803, + "angular_acceleration": 0.0 + }, + { + "time": 1.8800000000000014, + "x": 1.0570653951999993, + "y": 0.931697536000001, + "angle": 0.0, + "x_velocity": -0.44209280000000123, + "y_velocity": 0.6816319999999951, + "angular_velocity": 0.0, + "x_acceleration": -0.6996399999999956, + "y_acceleration": -2.4225999999999814, + "angular_acceleration": 0.0 + }, + { + "time": 1.8900000000000015, + "x": 1.0526100465687493, + "y": 0.9383943869062517, + "angle": 0.0, + "x_velocity": -0.44892050312500076, + "y_velocity": 0.6579096406249967, + "angular_velocity": 0.0, + "x_acceleration": -0.6657862499999956, + "y_acceleration": -2.3197187499999856, + "angular_acceleration": 0.0 + }, + { + "time": 1.9000000000000015, + "x": 1.0480881249999991, + "y": 0.9448593750000014, + "angle": 0.0, + "x_velocity": -0.4554062500000009, + "y_velocity": 0.6352812499999985, + "angular_velocity": 0.0, + "x_acceleration": -0.6312499999999962, + "y_acceleration": -2.203749999999978, + "angular_acceleration": 0.0 + }, + { + "time": 1.9100000000000015, + "x": 1.0435030840562494, + "y": 0.9511040999687506, + "angle": 0.0, + "x_velocity": -0.46154325312500133, + "y_velocity": 0.6138793906249962, + "angular_velocity": 0.0, + "x_acceleration": -0.5960387499999945, + "y_acceleration": -2.074356249999987, + "angular_acceleration": 0.0 + }, + { + "time": 1.9200000000000015, + "x": 1.0388584447999996, + "y": 0.9571415040000002, + "angle": 0.0, + "x_velocity": -0.467324800000001, + "y_velocity": 0.5938399999999984, + "angular_velocity": 0.0, + "x_acceleration": -0.5601599999999942, + "y_acceleration": -1.9311999999999756, + "angular_acceleration": 0.0 + }, + { + "time": 1.9300000000000015, + "x": 1.0341577950437493, + "y": 0.9629859055312504, + "angle": 0.0, + "x_velocity": -0.47274425312500096, + "y_velocity": 0.5753023906249979, + "angular_velocity": 0.0, + "x_acceleration": -0.5236212499999935, + "y_acceleration": -1.7739437499999866, + "angular_acceleration": 0.0 + }, + { + "time": 1.9400000000000015, + "x": 1.0294047885999993, + "y": 0.9686530330000016, + "angle": 0.0, + "x_velocity": -0.47779505000000044, + "y_velocity": 0.5584092499999933, + "angular_velocity": 0.0, + "x_acceleration": -0.48642999999999503, + "y_acceleration": -1.6022499999999766, + "angular_acceleration": 0.0 + }, + { + "time": 1.9500000000000015, + "x": 1.0246031445312491, + "y": 0.9741600585937507, + "angle": 0.0, + "x_velocity": -0.4824707031250006, + "y_velocity": 0.5433066406249942, + "angular_velocity": 0.0, + "x_acceleration": -0.4485937499999946, + "y_acceleration": -1.4157812499999665, + "angular_acceleration": 0.0 + }, + { + "time": 1.9600000000000015, + "x": 1.0197566463999994, + "y": 0.9795256320000005, + "angle": 0.0, + "x_velocity": -0.48676480000000055, + "y_velocity": 0.5301439999999964, + "angular_velocity": 0.0, + "x_acceleration": -0.41011999999999427, + "y_acceleration": -1.2141999999999626, + "angular_acceleration": 0.0 + }, + { + "time": 1.9700000000000015, + "x": 1.0148691415187494, + "y": 0.9847699141562507, + "angle": 0.0, + "x_velocity": -0.49067100312500056, + "y_velocity": 0.5190741406250012, + "angular_velocity": 0.0, + "x_acceleration": -0.37101624999999383, + "y_acceleration": -0.9971687499999717, + "angular_acceleration": 0.0 + }, + { + "time": 1.9800000000000015, + "x": 1.009944540199999, + "y": 0.989914611000001, + "angle": 0.0, + "x_velocity": -0.49418305000000046, + "y_velocity": 0.5102532499999999, + "angular_velocity": 0.0, + "x_acceleration": -0.33128999999999387, + "y_acceleration": -0.7643499999999648, + "angular_acceleration": 0.0 + }, + { + "time": 1.9900000000000015, + "x": 1.0049868150062493, + "y": 0.99498300721875, + "angle": 0.0, + "x_velocity": -0.4972947531250007, + "y_velocity": 0.5038408906250034, + "angular_velocity": 0.0, + "x_acceleration": -0.29094874999999343, + "y_acceleration": -0.5154062499999625, + "angular_acceleration": 0.0 + }, + { + "time": 2.0000000000000013, + "x": 0.9999999999999993, + "y": 1.0000000000000007, + "angle": 0.0, + "x_velocity": -0.5000000000000003, + "y_velocity": 0.49999999999999967, + "angular_velocity": 0.0, + "x_acceleration": -0.25000000000003647, + "y_acceleration": -0.2500000000000055, + "angular_acceleration": 0.0 + }, + { + "time": 2.010000000000001, + "x": 0.9949830072187494, + "y": 1.0049868150062504, + "angle": 0.0, + "x_velocity": -0.5038408906250005, + "y_velocity": 0.49729475312499966, + "angular_velocity": 0.0, + "x_acceleration": -0.5154062500000287, + "y_acceleration": -0.29094875000000453, + "angular_acceleration": 0.0 + }, + { + "time": 2.020000000000001, + "x": 0.9899146109999996, + "y": 1.0099445402000002, + "angle": 0.0, + "x_velocity": -0.5102532500000007, + "y_velocity": 0.4941830499999997, + "angular_velocity": 0.0, + "x_acceleration": -0.7643500000000217, + "y_acceleration": -0.33129000000000364, + "angular_acceleration": 0.0 + }, + { + "time": 2.0300000000000007, + "x": 0.9847699141562497, + "y": 1.0148691415187505, + "angle": 0.0, + "x_velocity": -0.5190741406250007, + "y_velocity": 0.4906710031249998, + "angular_velocity": 0.0, + "x_acceleration": -0.9971687500000156, + "y_acceleration": -0.3710162500000027, + "angular_acceleration": 0.0 + }, + { + "time": 2.0400000000000005, + "x": 0.9795256319999999, + "y": 1.0197566464000005, + "angle": 0.0, + "x_velocity": -0.5301440000000006, + "y_velocity": 0.48676479999999983, + "angular_velocity": 0.0, + "x_acceleration": -1.21420000000001, + "y_acceleration": -0.4101200000000018, + "angular_acceleration": 0.0 + }, + { + "time": 2.0500000000000003, + "x": 0.9741600585937498, + "y": 1.0246031445312502, + "angle": 0.0, + "x_velocity": -0.5433066406250004, + "y_velocity": 0.4824707031249999, + "angular_velocity": 0.0, + "x_acceleration": -1.415781250000005, + "y_acceleration": -0.448593750000001, + "angular_acceleration": 0.0 + }, + { + "time": 2.06, + "x": 0.968653033, + "y": 1.0294047886, + "angle": 0.0, + "x_velocity": -0.5584092500000001, + "y_velocity": 0.47779504999999994, + "angular_velocity": 0.0, + "x_acceleration": -1.602250000000001, + "y_acceleration": -0.4864300000000002, + "angular_acceleration": 0.0 + }, + { + "time": 2.07, + "x": 0.9629859055312501, + "y": 1.03415779504375, + "angle": 0.0, + "x_velocity": -0.5753023906249997, + "y_velocity": 0.47274425312500007, + "angular_velocity": 0.0, + "x_acceleration": -1.773943749999997, + "y_acceleration": -0.5236212499999995, + "angular_acceleration": 0.0 + }, + { + "time": 2.0799999999999996, + "x": 0.9571415040000001, + "y": 1.0388584448, + "angle": 0.0, + "x_velocity": -0.5938399999999993, + "y_velocity": 0.4673248000000002, + "angular_velocity": 0.0, + "x_acceleration": -1.9311999999999943, + "y_acceleration": -0.5601599999999988, + "angular_acceleration": 0.0 + }, + { + "time": 2.0899999999999994, + "x": 0.9511040999687504, + "y": 1.0435030840562496, + "angle": 0.0, + "x_velocity": -0.6138793906249987, + "y_velocity": 0.46154325312500033, + "angular_velocity": 0.0, + "x_acceleration": -2.074356249999992, + "y_acceleration": -0.596038749999998, + "angular_acceleration": 0.0 + }, + { + "time": 2.099999999999999, + "x": 0.9448593750000004, + "y": 1.0480881249999996, + "angle": 0.0, + "x_velocity": -0.6352812499999981, + "y_velocity": 0.4554062500000005, + "angular_velocity": 0.0, + "x_acceleration": -2.20374999999999, + "y_acceleration": -0.6312499999999973, + "angular_acceleration": 0.0 + }, + { + "time": 2.109999999999999, + "x": 0.9383943869062507, + "y": 1.0526100465687493, + "angle": 0.0, + "x_velocity": -0.6579096406249977, + "y_velocity": 0.44892050312500065, + "angular_velocity": 0.0, + "x_acceleration": -2.319718749999989, + "y_acceleration": -0.6657862499999966, + "angular_acceleration": 0.0 + }, + { + "time": 2.1199999999999988, + "x": 0.9316975360000008, + "y": 1.0570653951999993, + "angle": 0.0, + "x_velocity": -0.681631999999997, + "y_velocity": 0.44209280000000084, + "angular_velocity": 0.0, + "x_acceleration": -2.422599999999988, + "y_acceleration": -0.6996399999999959, + "angular_acceleration": 0.0 + }, + { + "time": 2.1299999999999986, + "x": 0.9247585313437511, + "y": 1.0614507855812494, + "angle": 0.0, + "x_velocity": -0.7063191406249963, + "y_velocity": 0.4349300031250011, + "angular_velocity": 0.0, + "x_acceleration": -2.512731249999988, + "y_acceleration": -0.7328037499999953, + "angular_acceleration": 0.0 + }, + { + "time": 2.1399999999999983, + "x": 0.9175683570000012, + "y": 1.0657629013999994, + "angle": 0.0, + "x_velocity": -0.7318452499999958, + "y_velocity": 0.42743905000000126, + "angular_velocity": 0.0, + "x_acceleration": -2.5904499999999886, + "y_acceleration": -0.7652699999999947, + "angular_acceleration": 0.0 + }, + { + "time": 2.149999999999998, + "x": 0.9101192382812514, + "y": 1.0699984960937492, + "angle": 0.0, + "x_velocity": -0.758087890624995, + "y_velocity": 0.4196269531250014, + "angular_velocity": 0.0, + "x_acceleration": -2.6560937499999886, + "y_acceleration": -0.7970312499999942, + "angular_acceleration": 0.0 + }, + { + "time": 2.159999999999998, + "x": 0.9024046080000017, + "y": 1.074154393599999, + "angle": 0.0, + "x_velocity": -0.7849279999999944, + "y_velocity": 0.4115008000000017, + "angular_velocity": 0.0, + "x_acceleration": -2.7099999999999898, + "y_acceleration": -0.8280799999999937, + "angular_acceleration": 0.0 + }, + { + "time": 2.1699999999999977, + "x": 0.8944190727187519, + "y": 1.0782274891062493, + "angle": 0.0, + "x_velocity": -0.8122498906249936, + "y_velocity": 0.4030677531250019, + "angular_velocity": 0.0, + "x_acceleration": -2.7525062499999917, + "y_acceleration": -0.8584087499999932, + "angular_acceleration": 0.0 + }, + { + "time": 2.1799999999999975, + "x": 0.8861583790000022, + "y": 1.082214749799999, + "angle": 0.0, + "x_velocity": -0.8399412499999931, + "y_velocity": 0.39433505000000224, + "angular_velocity": 0.0, + "x_acceleration": -2.783949999999994, + "y_acceleration": -0.8880099999999927, + "angular_acceleration": 0.0 + }, + { + "time": 2.1899999999999973, + "x": 0.8776193796562523, + "y": 1.086113215618749, + "angle": 0.0, + "x_velocity": -0.8678931406249923, + "y_velocity": 0.38531000312500246, + "angular_velocity": 0.0, + "x_acceleration": -2.804668749999996, + "y_acceleration": -0.9168762499999923, + "angular_acceleration": 0.0 + }, + { + "time": 2.199999999999997, + "x": 0.8688000000000026, + "y": 1.0899199999999987, + "angle": 0.0, + "x_velocity": -0.8959999999999917, + "y_velocity": 0.3760000000000028, + "angular_velocity": 0.0, + "x_acceleration": -2.814999999999998, + "y_acceleration": -0.944999999999992, + "angular_acceleration": 0.0 + }, + { + "time": 2.209999999999997, + "x": 0.8596992040937529, + "y": 1.0936322906312488, + "angle": 0.0, + "x_velocity": -0.924159640624991, + "y_velocity": 0.366412503125003, + "angular_velocity": 0.0, + "x_acceleration": -2.8152812500000017, + "y_acceleration": -0.9723737499999915, + "angular_acceleration": 0.0 + }, + { + "time": 2.2199999999999966, + "x": 0.8503169610000032, + "y": 1.0972473501999989, + "angle": 0.0, + "x_velocity": -0.9522732499999906, + "y_velocity": 0.3565550500000033, + "angular_velocity": 0.0, + "x_acceleration": -2.8058500000000057, + "y_acceleration": -0.9989899999999913, + "angular_acceleration": 0.0 + }, + { + "time": 2.2299999999999964, + "x": 0.8406542110312535, + "y": 1.100762517143749, + "angle": 0.0, + "x_velocity": -0.9802453906249899, + "y_velocity": 0.3464352531250036, + "angular_velocity": 0.0, + "x_acceleration": -2.7870437500000085, + "y_acceleration": -1.0248412499999908, + "angular_acceleration": 0.0 + }, + { + "time": 2.239999999999996, + "x": 0.8307128320000038, + "y": 1.1041752063999988, + "angle": 0.0, + "x_velocity": -1.0079839999999896, + "y_velocity": 0.336060800000004, + "angular_velocity": 0.0, + "x_acceleration": -2.7592000000000123, + "y_acceleration": -1.0499199999999909, + "angular_acceleration": 0.0 + }, + { + "time": 2.249999999999996, + "x": 0.8204956054687541, + "y": 1.1074829101562487, + "angle": 0.0, + "x_velocity": -1.0354003906249891, + "y_velocity": 0.3254394531250043, + "angular_velocity": 0.0, + "x_acceleration": -2.7226562500000164, + "y_acceleration": -1.0742187499999905, + "angular_acceleration": 0.0 + }, + { + "time": 2.259999999999996, + "x": 0.8100061830000045, + "y": 1.1106831985999988, + "angle": 0.0, + "x_velocity": -1.0624092499999886, + "y_velocity": 0.31457905000000463, + "angular_velocity": 0.0, + "x_acceleration": -2.677750000000021, + "y_acceleration": -1.0977299999999903, + "angular_acceleration": 0.0 + }, + { + "time": 2.2699999999999956, + "x": 0.7992490524062549, + "y": 1.1137737206687488, + "angle": 0.0, + "x_velocity": -1.0889286406249883, + "y_velocity": 0.30348750312500494, + "angular_velocity": 0.0, + "x_acceleration": -2.624818750000025, + "y_acceleration": -1.1204462499999903, + "angular_acceleration": 0.0 + }, + { + "time": 2.2799999999999954, + "x": 0.7882295040000051, + "y": 1.1167522047999987, + "angle": 0.0, + "x_velocity": -1.1148799999999879, + "y_velocity": 0.29217280000000534, + "angular_velocity": 0.0, + "x_acceleration": -2.5642000000000307, + "y_acceleration": -1.1423599999999903, + "angular_acceleration": 0.0 + }, + { + "time": 2.289999999999995, + "x": 0.7769535968437555, + "y": 1.1196164596812486, + "angle": 0.0, + "x_velocity": -1.140188140624988, + "y_velocity": 0.2806430031250056, + "angular_velocity": 0.0, + "x_acceleration": -2.496231250000034, + "y_acceleration": -1.16346374999999, + "angular_acceleration": 0.0 + }, + { + "time": 2.299999999999995, + "x": 0.7654281250000059, + "y": 1.1223643749999987, + "angle": 0.0, + "x_velocity": -1.1647812499999879, + "y_velocity": 0.268906250000006, + "angular_velocity": 0.0, + "x_acceleration": -2.421250000000041, + "y_acceleration": -1.1837499999999899, + "angular_acceleration": 0.0 + }, + { + "time": 2.3099999999999947, + "x": 0.7536605837812562, + "y": 1.1249939221937486, + "angle": 0.0, + "x_velocity": -1.1885908906249876, + "y_velocity": 0.25697075312500633, + "angular_velocity": 0.0, + "x_acceleration": -2.339593750000046, + "y_acceleration": -1.20321124999999, + "angular_acceleration": 0.0 + }, + { + "time": 2.3199999999999945, + "x": 0.7416591360000067, + "y": 1.1275031551999988, + "angle": 0.0, + "x_velocity": -1.2115519999999873, + "y_velocity": 0.2448448000000067, + "angular_velocity": 0.0, + "x_acceleration": -2.2516000000000496, + "y_acceleration": -1.22183999999999, + "angular_acceleration": 0.0 + }, + { + "time": 2.3299999999999943, + "x": 0.729432578218757, + "y": 1.1298902112062486, + "angle": 0.0, + "x_velocity": -1.2336028906249876, + "y_velocity": 0.23253675312500707, + "angular_velocity": 0.0, + "x_acceleration": -2.157606250000054, + "y_acceleration": -1.2396287499999903, + "angular_acceleration": 0.0 + }, + { + "time": 2.339999999999994, + "x": 0.7169903070000073, + "y": 1.1321533113999986, + "angle": 0.0, + "x_velocity": -1.2546852499999879, + "y_velocity": 0.2200550500000074, + "angular_velocity": 0.0, + "x_acceleration": -2.05795000000006, + "y_acceleration": -1.2565699999999902, + "angular_acceleration": 0.0 + }, + { + "time": 2.349999999999994, + "x": 0.7043422851562579, + "y": 1.1342907617187488, + "angle": 0.0, + "x_velocity": -1.274744140624988, + "y_velocity": 0.2074082031250078, + "angular_velocity": 0.0, + "x_acceleration": -1.9529687500000668, + "y_acceleration": -1.2726562499999905, + "angular_acceleration": 0.0 + }, + { + "time": 2.3599999999999937, + "x": 0.6914990080000082, + "y": 1.1363009535999988, + "angle": 0.0, + "x_velocity": -1.2937279999999884, + "y_velocity": 0.19460480000000815, + "angular_velocity": 0.0, + "x_acceleration": -1.8430000000000715, + "y_acceleration": -1.2878799999999908, + "angular_acceleration": 0.0 + }, + { + "time": 2.3699999999999934, + "x": 0.6784714695937586, + "y": 1.1381823647312488, + "angle": 0.0, + "x_velocity": -1.3115886406249886, + "y_velocity": 0.18165350312500855, + "angular_velocity": 0.0, + "x_acceleration": -1.7283812500000768, + "y_acceleration": -1.302233749999991, + "angular_acceleration": 0.0 + }, + { + "time": 2.3799999999999932, + "x": 0.665271129000009, + "y": 1.1399335597999987, + "angle": 0.0, + "x_velocity": -1.3282812499999892, + "y_velocity": 0.16856305000000887, + "angular_velocity": 0.0, + "x_acceleration": -1.609450000000082, + "y_acceleration": -1.3157099999999913, + "angular_acceleration": 0.0 + }, + { + "time": 2.389999999999993, + "x": 0.6519098765312593, + "y": 1.1415531912437489, + "angle": 0.0, + "x_velocity": -1.3437643906249896, + "y_velocity": 0.1553422531250093, + "angular_velocity": 0.0, + "x_acceleration": -1.4865437500000898, + "y_acceleration": -1.3283012499999916, + "angular_acceleration": 0.0 + }, + { + "time": 2.399999999999993, + "x": 0.6384000000000098, + "y": 1.143039999999999, + "angle": 0.0, + "x_velocity": -1.3579999999999905, + "y_velocity": 0.14200000000000965, + "angular_velocity": 0.0, + "x_acceleration": -1.3600000000000918, + "y_acceleration": -1.3399999999999919, + "angular_acceleration": 0.0 + }, + { + "time": 2.4099999999999926, + "x": 0.6247541509687602, + "y": 1.1443928162562491, + "angle": 0.0, + "x_velocity": -1.3709533906249907, + "y_velocity": 0.12854525312501003, + "angular_velocity": 0.0, + "x_acceleration": -1.2301562500000975, + "y_acceleration": -1.3507987499999925, + "angular_acceleration": 0.0 + }, + { + "time": 2.4199999999999924, + "x": 0.6109853110000105, + "y": 1.145610560199999, + "angle": 0.0, + "x_velocity": -1.3825932499999918, + "y_velocity": 0.11498705000001036, + "angular_velocity": 0.0, + "x_acceleration": -1.0973500000001009, + "y_acceleration": -1.3606899999999928, + "angular_acceleration": 0.0 + }, + { + "time": 2.429999999999992, + "x": 0.5971067579062609, + "y": 1.1466922427687491, + "angle": 0.0, + "x_velocity": -1.3928916406249925, + "y_velocity": 0.10133450312501076, + "angular_velocity": 0.0, + "x_acceleration": -0.9619187500001081, + "y_acceleration": -1.3696662499999934, + "angular_acceleration": 0.0 + }, + { + "time": 2.439999999999992, + "x": 0.5831320320000113, + "y": 1.1476369663999995, + "angle": 0.0, + "x_velocity": -1.4018239999999937, + "y_velocity": 0.08759680000001109, + "angular_velocity": 0.0, + "x_acceleration": -0.8242000000001104, + "y_acceleration": -1.3777199999999938, + "angular_acceleration": 0.0 + }, + { + "time": 2.4499999999999917, + "x": 0.5690749023437617, + "y": 1.1484439257812495, + "angle": 0.0, + "x_velocity": -1.4093691406249946, + "y_velocity": 0.07378320312501142, + "angular_velocity": 0.0, + "x_acceleration": -0.6845312500001164, + "y_acceleration": -1.3848437499999946, + "angular_acceleration": 0.0 + }, + { + "time": 2.4599999999999915, + "x": 0.554949333000012, + "y": 1.1491124085999995, + "angle": 0.0, + "x_velocity": -1.4155092499999955, + "y_velocity": 0.059903050000011795, + "angular_velocity": 0.0, + "x_acceleration": -0.5432500000001195, + "y_acceleration": -1.3910299999999953, + "angular_acceleration": 0.0 + }, + { + "time": 2.4699999999999913, + "x": 0.5407694492812625, + "y": 1.1496417962937495, + "angle": 0.0, + "x_velocity": -1.4202298906249964, + "y_velocity": 0.045965753125012165, + "angular_velocity": 0.0, + "x_acceleration": -0.4006937500001264, + "y_acceleration": -1.396271249999996, + "angular_acceleration": 0.0 + }, + { + "time": 2.479999999999991, + "x": 0.5265495040000127, + "y": 1.1500315648000001, + "angle": 0.0, + "x_velocity": -1.4235199999999972, + "y_velocity": 0.031980800000012535, + "angular_velocity": 0.0, + "x_acceleration": -0.25720000000013243, + "y_acceleration": -1.4005599999999965, + "angular_acceleration": 0.0 + }, + { + "time": 2.489999999999991, + "x": 0.5123038437187629, + "y": 1.1502812853062498, + "angle": 0.0, + "x_velocity": -1.4253718906249988, + "y_velocity": 0.01795775312501279, + "angular_velocity": 0.0, + "x_acceleration": -0.11310625000013186, + "y_acceleration": -1.4038887499999975, + "angular_acceleration": 0.0 + }, + { + "time": 2.4999999999999907, + "x": 0.4980468750000132, + "y": 1.150390625, + "angle": 0.0, + "x_velocity": -1.4257812500000004, + "y_velocity": 0.003906250000013087, + "angular_velocity": 0.0, + "x_acceleration": 0.03124999999986766, + "y_acceleration": -1.406249999999998, + "angular_acceleration": 0.0 + }, + { + "time": 2.5099999999999905, + "x": 0.4837930306562635, + "y": 1.1503593478187502, + "angle": 0.0, + "x_velocity": -1.4247471406250016, + "y_velocity": -0.01016399687498663, + "angular_velocity": 0.0, + "x_acceleration": 0.1755312499998647, + "y_acceleration": -1.407636249999999, + "angular_acceleration": 0.0 + }, + { + "time": 2.5199999999999902, + "x": 0.46955673600001374, + "y": 1.1501873152000002, + "angle": 0.0, + "x_velocity": -1.422272000000003, + "y_velocity": -0.024243199999986274, + "angular_velocity": 0.0, + "x_acceleration": 0.31939999999986224, + "y_acceleration": -1.4080399999999997, + "angular_acceleration": 0.0 + }, + { + "time": 2.52999999999999, + "x": 0.45535237509376425, + "y": 1.1498744868312503, + "angle": 0.0, + "x_velocity": -1.418361640625005, + "y_velocity": -0.038321496874985914, + "angular_velocity": 0.0, + "x_acceleration": 0.4625187499998553, + "y_acceleration": -1.4074537500000013, + "angular_acceleration": 0.0 + }, + { + "time": 2.53999999999999, + "x": 0.4411942570000143, + "y": 1.1494209214000006, + "angle": 0.0, + "x_velocity": -1.413025250000007, + "y_velocity": -0.05238894999998579, + "angular_velocity": 0.0, + "x_acceleration": 0.6045499999998594, + "y_acceleration": -1.4058700000000017, + "angular_acceleration": 0.0 + }, + { + "time": 2.5499999999999896, + "x": 0.42709658203126466, + "y": 1.1488267773437508, + "angle": 0.0, + "x_velocity": -1.4062753906250078, + "y_velocity": -0.06643554687498535, + "angular_velocity": 0.0, + "x_acceleration": 0.7451562499998516, + "y_acceleration": -1.4032812500000034, + "angular_acceleration": 0.0 + }, + { + "time": 2.5599999999999894, + "x": 0.4130734080000148, + "y": 1.1480923136000007, + "angle": 0.0, + "x_velocity": -1.3981280000000096, + "y_velocity": -0.08045119999998518, + "angular_velocity": 0.0, + "x_acceleration": 0.8839999999998547, + "y_acceleration": -1.3996800000000043, + "angular_acceleration": 0.0 + }, + { + "time": 2.569999999999989, + "x": 0.399138616468765, + "y": 1.147217890356251, + "angle": 0.0, + "x_velocity": -1.3886023906250116, + "y_velocity": -0.09442574687498483, + "angular_velocity": 0.0, + "x_acceleration": 1.020743749999852, + "y_acceleration": -1.3950587500000056, + "angular_acceleration": 0.0 + }, + { + "time": 2.579999999999989, + "x": 0.3853058790000151, + "y": 1.1462039698000013, + "angle": 0.0, + "x_velocity": -1.377721250000012, + "y_velocity": -0.10834894999998476, + "angular_velocity": 0.0, + "x_acceleration": 1.1550499999998536, + "y_acceleration": -1.3894100000000065, + "angular_acceleration": 0.0 + }, + { + "time": 2.5899999999999888, + "x": 0.3715886234062654, + "y": 1.1450511168687514, + "angle": 0.0, + "x_velocity": -1.365510640625014, + "y_velocity": -0.12221049687498446, + "angular_velocity": 0.0, + "x_acceleration": 1.2865812499998537, + "y_acceleration": -1.3827262500000082, + "angular_acceleration": 0.0 + }, + { + "time": 2.5999999999999885, + "x": 0.3580000000000154, + "y": 1.1437600000000017, + "angle": 0.0, + "x_velocity": -1.352000000000016, + "y_velocity": -0.1359999999999842, + "angular_velocity": 0.0, + "x_acceleration": 1.41499999999985, + "y_acceleration": -1.3750000000000093, + "angular_acceleration": 0.0 + }, + { + "time": 2.6099999999999883, + "x": 0.3445528478437657, + "y": 1.1423313918812519, + "angle": 0.0, + "x_velocity": -1.337222140625018, + "y_velocity": -0.14970699687498407, + "angular_velocity": 0.0, + "x_acceleration": 1.539968749999856, + "y_acceleration": -1.366223750000011, + "angular_acceleration": 0.0 + }, + { + "time": 2.619999999999988, + "x": 0.33125966100001564, + "y": 1.1407661702000018, + "angle": 0.0, + "x_velocity": -1.321213250000019, + "y_velocity": -0.16332094999998387, + "angular_velocity": 0.0, + "x_acceleration": 1.6611499999998625, + "y_acceleration": -1.3563900000000122, + "angular_acceleration": 0.0 + }, + { + "time": 2.629999999999988, + "x": 0.31813255478126595, + "y": 1.139065318393752, + "angle": 0.0, + "x_velocity": -1.3040128906250228, + "y_velocity": -0.17683124687498383, + "angular_velocity": 0.0, + "x_acceleration": 1.7782062499998652, + "y_acceleration": -1.3454912500000138, + "angular_acceleration": 0.0 + }, + { + "time": 2.6399999999999877, + "x": 0.30518323200001574, + "y": 1.137229926400002, + "angle": 0.0, + "x_velocity": -1.2856640000000228, + "y_velocity": -0.19022719999998364, + "angular_velocity": 0.0, + "x_acceleration": 1.8907999999998655, + "y_acceleration": -1.3335200000000151, + "angular_acceleration": 0.0 + }, + { + "time": 2.6499999999999875, + "x": 0.29242294921876577, + "y": 1.1352611914062527, + "angle": 0.0, + "x_velocity": -1.2662128906250252, + "y_velocity": -0.20349804687498346, + "angular_velocity": 0.0, + "x_acceleration": 1.9985937499998645, + "y_acceleration": -1.320468750000017, + "angular_acceleration": 0.0 + }, + { + "time": 2.6599999999999873, + "x": 0.27986248300001604, + "y": 1.1331604186000026, + "angle": 0.0, + "x_velocity": -1.2457092500000266, + "y_velocity": -0.21663294999998334, + "angular_velocity": 0.0, + "x_acceleration": 2.101249999999876, + "y_acceleration": -1.3063300000000186, + "angular_acceleration": 0.0 + }, + { + "time": 2.669999999999987, + "x": 0.2675120961562658, + "y": 1.130929021918753, + "angle": 0.0, + "x_velocity": -1.2242061406250277, + "y_velocity": -0.22962099687498314, + "angular_velocity": 0.0, + "x_acceleration": 2.1984312499998673, + "y_acceleration": -1.2910962500000207, + "angular_acceleration": 0.0 + }, + { + "time": 2.679999999999987, + "x": 0.25538150400001586, + "y": 1.1285685248000032, + "angle": 0.0, + "x_velocity": -1.2017600000000304, + "y_velocity": -0.24245119999998316, + "angular_velocity": 0.0, + "x_acceleration": 2.289799999999879, + "y_acceleration": -1.274760000000022, + "angular_acceleration": 0.0 + }, + { + "time": 2.6899999999999866, + "x": 0.2434798405937657, + "y": 1.1260805609312534, + "angle": 0.0, + "x_velocity": -1.178430640625031, + "y_velocity": -0.25511249687498316, + "angular_velocity": 0.0, + "x_acceleration": 2.3750187499998887, + "y_acceleration": -1.2573137500000242, + "angular_acceleration": 0.0 + }, + { + "time": 2.6999999999999864, + "x": 0.231815625000016, + "y": 1.1234668750000036, + "angle": 0.0, + "x_velocity": -1.1542812500000346, + "y_velocity": -0.26759374999998325, + "angular_velocity": 0.0, + "x_acceleration": 2.4537499999999035, + "y_acceleration": -1.2387500000000258, + "angular_acceleration": 0.0 + }, + { + "time": 2.709999999999986, + "x": 0.2203967275312656, + "y": 1.120729323443754, + "angle": 0.0, + "x_velocity": -1.129378390625035, + "y_velocity": -0.2798837468749832, + "angular_velocity": 0.0, + "x_acceleration": 2.5256562499999085, + "y_acceleration": -1.2190612500000277, + "angular_acceleration": 0.0 + }, + { + "time": 2.719999999999986, + "x": 0.20923033600001573, + "y": 1.117869875200004, + "angle": 0.0, + "x_velocity": -1.1037920000000367, + "y_velocity": -0.29197119999998306, + "angular_velocity": 0.0, + "x_acceleration": 2.5903999999999137, + "y_acceleration": -1.19824000000003, + "angular_acceleration": 0.0 + }, + { + "time": 2.7299999999999858, + "x": 0.19832292196876522, + "y": 1.1148906124562543, + "angle": 0.0, + "x_velocity": -1.0775953906250377, + "y_velocity": -0.30384474687498336, + "angular_velocity": 0.0, + "x_acceleration": 2.6476437499999292, + "y_acceleration": -1.1762787500000318, + "angular_acceleration": 0.0 + }, + { + "time": 2.7399999999999856, + "x": 0.18768020700001498, + "y": 1.1117937314000046, + "angle": 0.0, + "x_velocity": -1.0508652500000375, + "y_velocity": -0.31549294999998334, + "angular_velocity": 0.0, + "x_acceleration": 2.6970499999999333, + "y_acceleration": -1.153170000000034, + "angular_acceleration": 0.0 + }, + { + "time": 2.7499999999999853, + "x": 0.17730712890626543, + "y": 1.1085815429687547, + "angle": 0.0, + "x_velocity": -1.0236816406250382, + "y_velocity": -0.32690429687498346, + "angular_velocity": 0.0, + "x_acceleration": 2.738281249999943, + "y_acceleration": -1.1289062500000364, + "angular_acceleration": 0.0 + }, + { + "time": 2.759999999999985, + "x": 0.16720780800001478, + "y": 1.1052564736000052, + "angle": 0.0, + "x_velocity": -0.9961280000000423, + "y_velocity": -0.3380671999999836, + "angular_velocity": 0.0, + "x_acceleration": 2.770999999999958, + "y_acceleration": -1.1034800000000384, + "angular_acceleration": 0.0 + }, + { + "time": 2.769999999999985, + "x": 0.15738551334376483, + "y": 1.101821065981255, + "angle": 0.0, + "x_velocity": -0.968291140625043, + "y_velocity": -0.3489699968749839, + "angular_velocity": 0.0, + "x_acceleration": 2.7948687499999814, + "y_acceleration": -1.076883750000041, + "angular_acceleration": 0.0 + }, + { + "time": 2.7799999999999847, + "x": 0.14784262900001433, + "y": 1.0982779798000053, + "angle": 0.0, + "x_velocity": -0.9402612500000442, + "y_velocity": -0.35960094999998415, + "angular_velocity": 0.0, + "x_acceleration": 2.8095499999999944, + "y_acceleration": -1.0491100000000428, + "angular_acceleration": 0.0 + }, + { + "time": 2.7899999999999845, + "x": 0.13858062028126483, + "y": 1.094629992493756, + "angle": 0.0, + "x_velocity": -0.9121318906250462, + "y_velocity": -0.36994824687498423, + "angular_velocity": 0.0, + "x_acceleration": 2.814706249999997, + "y_acceleration": -1.020151250000046, + "angular_acceleration": 0.0 + }, + { + "time": 2.7999999999999843, + "x": 0.12960000000001426, + "y": 1.0908800000000063, + "angle": 0.0, + "x_velocity": -0.8840000000000439, + "y_velocity": -0.3799999999999843, + "angular_velocity": 0.0, + "x_acceleration": 2.8100000000000165, + "y_acceleration": -0.9900000000000483, + "angular_acceleration": 0.0 + }, + { + "time": 2.809999999999984, + "x": 0.12090029471876396, + "y": 1.0870310175062563, + "angle": 0.0, + "x_velocity": -0.8559658906250434, + "y_velocity": -0.38974424687498477, + "angular_velocity": 0.0, + "x_acceleration": 2.795093750000028, + "y_acceleration": -0.9586487500000511, + "angular_acceleration": 0.0 + }, + { + "time": 2.819999999999984, + "x": 0.11248001100001415, + "y": 1.0830861802000067, + "angle": 0.0, + "x_velocity": -0.8281332500000467, + "y_velocity": -0.3991689499999852, + "angular_velocity": 0.0, + "x_acceleration": 2.769650000000052, + "y_acceleration": -0.9260900000000537, + "angular_acceleration": 0.0 + }, + { + "time": 2.8299999999999836, + "x": 0.10433660165626257, + "y": 1.0790487440187564, + "angle": 0.0, + "x_velocity": -0.8006091406250437, + "y_velocity": -0.40826199687498554, + "angular_velocity": 0.0, + "x_acceleration": 2.733331250000063, + "y_acceleration": -0.8923162500000561, + "angular_acceleration": 0.0 + }, + { + "time": 2.8399999999999834, + "x": 0.09646643200001281, + "y": 1.074922086400007, + "angle": 0.0, + "x_velocity": -0.7735040000000435, + "y_velocity": -0.41701119999998587, + "angular_velocity": 0.0, + "x_acceleration": 2.6858000000000857, + "y_acceleration": -0.8573200000000588, + "angular_acceleration": 0.0 + }, + { + "time": 2.849999999999983, + "x": 0.08886474609376327, + "y": 1.0707097070312572, + "angle": 0.0, + "x_velocity": -0.7469316406250446, + "y_velocity": -0.42540429687498615, + "angular_velocity": 0.0, + "x_acceleration": 2.6267187500001015, + "y_acceleration": -0.821093750000062, + "angular_acceleration": 0.0 + }, + { + "time": 2.859999999999983, + "x": 0.08152563300001248, + "y": 1.0664152286000075, + "angle": 0.0, + "x_velocity": -0.7210092500000469, + "y_velocity": -0.4334289499999866, + "angular_velocity": 0.0, + "x_acceleration": 2.555750000000124, + "y_acceleration": -0.783630000000065, + "angular_acceleration": 0.0 + }, + { + "time": 2.869999999999983, + "x": 0.07444199303126209, + "y": 1.0620423975437576, + "angle": 0.0, + "x_velocity": -0.6958573906250418, + "y_velocity": -0.4410727468749873, + "angular_velocity": 0.0, + "x_acceleration": 2.472556250000153, + "y_acceleration": -0.7449212500000679, + "angular_acceleration": 0.0 + }, + { + "time": 2.8799999999999826, + "x": 0.06760550400001142, + "y": 1.0575950848000077, + "angle": 0.0, + "x_velocity": -0.6716000000000388, + "y_velocity": -0.4483231999999875, + "angular_velocity": 0.0, + "x_acceleration": 2.3768000000001805, + "y_acceleration": -0.7049600000000705, + "angular_acceleration": 0.0 + }, + { + "time": 2.8899999999999824, + "x": 0.061006587468761087, + "y": 1.053077286556258, + "angle": 0.0, + "x_velocity": -0.6483643906250407, + "y_velocity": -0.45516774687498823, + "angular_velocity": 0.0, + "x_acceleration": 2.2681437500002133, + "y_acceleration": -0.6637387500000738, + "angular_acceleration": 0.0 + }, + { + "time": 2.899999999999982, + "x": 0.05463437500001134, + "y": 1.0484931250000082, + "angle": 0.0, + "x_velocity": -0.6262812500000408, + "y_velocity": -0.461593749999989, + "angular_velocity": 0.0, + "x_acceleration": 2.1462500000002365, + "y_acceleration": -0.6212500000000767, + "angular_acceleration": 0.0 + }, + { + "time": 2.909999999999982, + "x": 0.04847667440626058, + "y": 1.0438468490687585, + "angle": 0.0, + "x_velocity": -0.6054846406250327, + "y_velocity": -0.4675884968749896, + "angular_velocity": 0.0, + "x_acceleration": 2.0107812500002495, + "y_acceleration": -0.5774862500000805, + "angular_acceleration": 0.0 + }, + { + "time": 2.9199999999999817, + "x": 0.04251993600000992, + "y": 1.0391428352000085, + "angle": 0.0, + "x_velocity": -0.5861120000000319, + "y_velocity": -0.4731391999999902, + "angular_velocity": 0.0, + "x_acceleration": 1.8614000000002875, + "y_acceleration": -0.5324400000000831, + "angular_acceleration": 0.0 + }, + { + "time": 2.9299999999999815, + "x": 0.036749218843760145, + "y": 1.034385588081259, + "angle": 0.0, + "x_velocity": -0.5683041406250275, + "y_velocity": -0.47823299687499093, + "angular_velocity": 0.0, + "x_acceleration": 1.6977687500003071, + "y_acceleration": -0.4861037500000869, + "angular_acceleration": 0.0 + }, + { + "time": 2.9399999999999813, + "x": 0.031148157000009835, + "y": 1.0295797414000092, + "angle": 0.0, + "x_velocity": -0.5522052500000267, + "y_velocity": -0.48285694999999196, + "angular_velocity": 0.0, + "x_acceleration": 1.5195500000003506, + "y_acceleration": -0.4384700000000905, + "angular_acceleration": 0.0 + }, + { + "time": 2.949999999999981, + "x": 0.025698925781260762, + "y": 1.024730058593759, + "angle": 0.0, + "x_velocity": -0.5379628906250247, + "y_velocity": -0.4869980468749926, + "angular_velocity": 0.0, + "x_acceleration": 1.3264062500003675, + "y_acceleration": -0.3895312500000938, + "angular_acceleration": 0.0 + }, + { + "time": 2.959999999999981, + "x": 0.020382208000009783, + "y": 1.0198414336000095, + "angle": 0.0, + "x_velocity": -0.5257280000000168, + "y_velocity": -0.4906431999999933, + "angular_velocity": 0.0, + "x_acceleration": 1.1180000000004071, + "y_acceleration": -0.3392800000000975, + "angular_acceleration": 0.0 + }, + { + "time": 2.9699999999999807, + "x": 0.015177160218760921, + "y": 1.0149188916062597, + "angle": 0.0, + "x_velocity": -0.5156548906250205, + "y_velocity": -0.49377924687499436, + "angular_velocity": 0.0, + "x_acceleration": 0.8939937500004547, + "y_acceleration": -0.28770875000010077, + "angular_acceleration": 0.0 + }, + { + "time": 2.9799999999999804, + "x": 0.010061379000009474, + "y": 1.0099675898000098, + "angle": 0.0, + "x_velocity": -0.507901250000014, + "y_velocity": -0.4963929499999954, + "angular_velocity": 0.0, + "x_acceleration": 0.6540500000004741, + "y_acceleration": -0.2348100000001052, + "angular_acceleration": 0.0 + }, + { + "time": 2.9899999999999802, + "x": 0.005010867156259202, + "y": 1.0049928181187597, + "angle": 0.0, + "x_velocity": -0.5026281406250028, + "y_velocity": -0.49847099687499635, + "angular_velocity": 0.0, + "x_acceleration": 0.39783125000051456, + "y_acceleration": -0.18057625000010868, + "angular_acceleration": 0.0 + }, + { + "time": 2.99999999999998, + "x": 1.021405182655144e-14, + "y": 1.00000000000001, + "angle": 0.0, + "x_velocity": -0.5, + "y_velocity": -0.49999999999999745, + "angular_velocity": 0.0, + "x_acceleration": 0.12500000000056843, + "y_acceleration": -0.12500000000011235, + "angular_acceleration": 0.0 + }, + { + "time": 3.00999999999998, + "x": -0.004990975481239944, + "y": 0.99498704518126, + "angle": 0.0, + "x_velocity": -0.49792142812500584, + "y_velocity": -0.5032507218749896, + "angular_velocity": 0.0, + "x_acceleration": 0.28920374999967746, + "y_acceleration": -0.5208637499992262, + "angular_acceleration": 0.0 + }, + { + "time": 3.0199999999999796, + "x": -0.009953105399989913, + "y": 0.9899222158000105, + "angle": 0.0, + "x_velocity": -0.49424585000000903, + "y_velocity": -0.5103325499999818, + "angular_velocity": 0.0, + "x_acceleration": 0.44442999999969224, + "y_acceleration": -0.8913099999992695, + "angular_acceleration": 0.0 + }, + { + "time": 3.0299999999999794, + "x": -0.014870865693739913, + "y": 0.9847684627937607, + "angle": 0.0, + "x_velocity": -0.4890621781250122, + "y_velocity": -0.5209939718749745, + "angular_velocity": 0.0, + "x_acceleration": 0.590851249999707, + "y_acceleration": -1.2368712499993124, + "angular_acceleration": 0.0 + }, + { + "time": 3.039999999999979, + "x": -0.01972961279998995, + "y": 0.9794912256000112, + "angle": 0.0, + "x_velocity": -0.4824576000000152, + "y_velocity": -0.5349887999999676, + "angular_velocity": 0.0, + "x_acceleration": 0.7286399999997217, + "y_acceleration": -1.5580799999993555, + "angular_acceleration": 0.0 + }, + { + "time": 3.049999999999979, + "x": -0.02451556640624001, + "y": 0.9740583789062616, + "angle": 0.0, + "x_velocity": -0.47451757812501805, + "y_velocity": -0.5520761718749609, + "angular_velocity": 0.0, + "x_acceleration": 0.8579687499997365, + "y_acceleration": -1.8554687499993985, + "angular_acceleration": 0.0 + }, + { + "time": 3.0599999999999787, + "x": -0.029215792199990105, + "y": 0.9684401794000123, + "angle": 0.0, + "x_velocity": -0.46532585000002086, + "y_velocity": -0.5720205499999548, + "angular_velocity": 0.0, + "x_acceleration": 0.9790099999997512, + "y_acceleration": -2.1295699999994415, + "angular_acceleration": 0.0 + }, + { + "time": 3.0699999999999785, + "x": -0.03381818461874023, + "y": 0.9626092125187627, + "angle": 0.0, + "x_velocity": -0.4549644281250234, + "y_velocity": -0.5945917218749489, + "angular_velocity": 0.0, + "x_acceleration": 1.0919362499997658, + "y_acceleration": -2.3809162499994843, + "angular_acceleration": 0.0 + }, + { + "time": 3.0799999999999783, + "x": -0.038311449599990374, + "y": 0.9565403392000135, + "angle": 0.0, + "x_velocity": -0.44351360000002593, + "y_velocity": -0.6195647999999435, + "angular_velocity": 0.0, + "x_acceleration": 1.1969199999997808, + "y_acceleration": -2.6100399999995267, + "angular_acceleration": 0.0 + }, + { + "time": 3.089999999999978, + "x": -0.04268508733124055, + "y": 0.9502106426312642, + "angle": 0.0, + "x_velocity": -0.43105192812502835, + "y_velocity": -0.6467202218749384, + "angular_velocity": 0.0, + "x_acceleration": 1.2941337499997951, + "y_acceleration": -2.817473749999569, + "angular_acceleration": 0.0 + }, + { + "time": 3.099999999999978, + "x": -0.04692937499999076, + "y": 0.9435993750000149, + "angle": 0.0, + "x_velocity": -0.4176562500000306, + "y_velocity": -0.6758437499999337, + "angular_velocity": 0.0, + "x_acceleration": 1.38374999999981, + "y_acceleration": -3.003749999999611, + "angular_acceleration": 0.0 + }, + { + "time": 3.1099999999999777, + "x": -0.05103534954374099, + "y": 0.9366879042437658, + "angle": 0.0, + "x_velocity": -0.40340167812503275, + "y_velocity": -0.7067264718749292, + "angular_velocity": 0.0, + "x_acceleration": 1.4659412499998246, + "y_acceleration": -3.169401249999653, + "angular_acceleration": 0.0 + }, + { + "time": 3.1199999999999775, + "x": -0.05499479039999124, + "y": 0.9294596608000167, + "angle": 0.0, + "x_velocity": -0.3883616000000347, + "y_velocity": -0.7391647999999252, + "angular_velocity": 0.0, + "x_acceleration": 1.5408799999998393, + "y_acceleration": -3.3149599999996937, + "angular_acceleration": 0.0 + }, + { + "time": 3.1299999999999772, + "x": -0.05880020225624152, + "y": 0.9219000843562676, + "angle": 0.0, + "x_velocity": -0.37260767812503665, + "y_velocity": -0.7729604718749218, + "angular_velocity": 0.0, + "x_acceleration": 1.6087387499998536, + "y_acceleration": -3.440958749999735, + "angular_acceleration": 0.0 + }, + { + "time": 3.139999999999977, + "x": -0.06244479779999181, + "y": 0.9139965706000186, + "angle": 0.0, + "x_velocity": -0.3562098500000383, + "y_velocity": -0.8079205499999186, + "angular_velocity": 0.0, + "x_acceleration": 1.6696899999998678, + "y_acceleration": -3.5479299999997758, + "angular_acceleration": 0.0 + }, + { + "time": 3.149999999999977, + "x": -0.06592248046874213, + "y": 0.9057384179687695, + "angle": 0.0, + "x_velocity": -0.33923632812504, + "y_velocity": -0.8438574218749157, + "angular_velocity": 0.0, + "x_acceleration": 1.723906249999882, + "y_acceleration": -3.6364062499998164, + "angular_acceleration": 0.0 + }, + { + "time": 3.1599999999999766, + "x": -0.06922782719999247, + "y": 0.8971167744000207, + "angle": 0.0, + "x_velocity": -0.32175360000004144, + "y_velocity": -0.8805887999999135, + "angular_velocity": 0.0, + "x_acceleration": 1.7715599999998963, + "y_acceleration": -3.7069199999998554, + "angular_acceleration": 0.0 + }, + { + "time": 3.1699999999999764, + "x": -0.07235607118124283, + "y": 0.8881245840812717, + "angle": 0.0, + "x_velocity": -0.3038264281250428, + "y_velocity": -0.9179377218749114, + "angular_velocity": 0.0, + "x_acceleration": 1.8128237499999098, + "y_acceleration": -3.7600037499998944, + "angular_acceleration": 0.0 + }, + { + "time": 3.179999999999976, + "x": -0.0753030845999932, + "y": 0.8787565342000228, + "angle": 0.0, + "x_velocity": -0.28551785000004404, + "y_velocity": -0.9557325499999096, + "angular_velocity": 0.0, + "x_acceleration": 1.847869999999924, + "y_acceleration": -3.796189999999934, + "angular_acceleration": 0.0 + }, + { + "time": 3.189999999999976, + "x": -0.0780653613937436, + "y": 0.8690090016937739, + "angle": 0.0, + "x_velocity": -0.2668891781250451, + "y_velocity": -0.9938069718749082, + "angular_velocity": 0.0, + "x_acceleration": 1.8768712499999372, + "y_acceleration": -3.8160112499999714, + "angular_acceleration": 0.0 + }, + { + "time": 3.1999999999999758, + "x": -0.08063999999999398, + "y": 0.8588800000000252, + "angle": 0.0, + "x_velocity": -0.24800000000004604, + "y_velocity": -1.0319999999999074, + "angular_velocity": 0.0, + "x_acceleration": 1.8999999999999508, + "y_acceleration": -3.820000000000009, + "angular_acceleration": 0.0 + }, + { + "time": 3.2099999999999755, + "x": -0.0830246861062444, + "y": 0.8483691258062762, + "angle": 0.0, + "x_velocity": -0.2289081781250469, + "y_velocity": -1.070155971874907, + "angular_velocity": 0.0, + "x_acceleration": 1.9174287499999645, + "y_acceleration": -3.8086887500000466, + "angular_acceleration": 0.0 + }, + { + "time": 3.2199999999999753, + "x": -0.08521767539999482, + "y": 0.8374775058000273, + "angle": 0.0, + "x_velocity": -0.20966985000004762, + "y_velocity": -1.1081245499999068, + "angular_velocity": 0.0, + "x_acceleration": 1.9293299999999776, + "y_acceleration": -3.782610000000081, + "angular_acceleration": 0.0 + }, + { + "time": 3.229999999999975, + "x": -0.08721777631874525, + "y": 0.8262077434187785, + "angle": 0.0, + "x_velocity": -0.1903394281250482, + "y_velocity": -1.1457607218749069, + "angular_velocity": 0.0, + "x_acceleration": 1.9358762499999909, + "y_acceleration": -3.742296250000118, + "angular_acceleration": 0.0 + }, + { + "time": 3.239999999999975, + "x": -0.08902433279999572, + "y": 0.8145638656000298, + "angle": 0.0, + "x_velocity": -0.17096960000004857, + "y_velocity": -1.1829247999999075, + "angular_velocity": 0.0, + "x_acceleration": 1.9372400000000023, + "y_acceleration": -3.6882800000001517, + "angular_acceleration": 0.0 + }, + { + "time": 3.2499999999999747, + "x": -0.09063720703124616, + "y": 0.8025512695312809, + "angle": 0.0, + "x_velocity": -0.15161132812504896, + "y_velocity": -1.2194824218749085, + "angular_velocity": 0.0, + "x_acceleration": 1.9335937500000155, + "y_acceleration": -3.6210937500001865, + "angular_acceleration": 0.0 + }, + { + "time": 3.2599999999999745, + "x": -0.09205676219999662, + "y": 0.7901766694000322, + "angle": 0.0, + "x_velocity": -0.13231385000004908, + "y_velocity": -1.2553045499999096, + "angular_velocity": 0.0, + "x_acceleration": 1.9251100000000279, + "y_acceleration": -3.54127000000022, + "angular_acceleration": 0.0 + }, + { + "time": 3.2699999999999743, + "x": -0.0932838452437471, + "y": 0.7774480431437831, + "angle": 0.0, + "x_velocity": -0.11312467812504923, + "y_velocity": -1.2902674718749114, + "angular_velocity": 0.0, + "x_acceleration": 1.9119612500000396, + "y_acceleration": -3.44934125000025, + "angular_acceleration": 0.0 + }, + { + "time": 3.279999999999974, + "x": -0.09431976959999755, + "y": 0.7643745792000344, + "angle": 0.0, + "x_velocity": -0.09408960000004925, + "y_velocity": -1.324252799999913, + "angular_velocity": 0.0, + "x_acceleration": 1.8943200000000513, + "y_acceleration": -3.345840000000285, + "angular_acceleration": 0.0 + }, + { + "time": 3.289999999999974, + "x": -0.09516629795624804, + "y": 0.7509666232562855, + "angle": 0.0, + "x_velocity": -0.07525267812504904, + "y_velocity": -1.3571474718749155, + "angular_velocity": 0.0, + "x_acceleration": 1.8723587500000631, + "y_acceleration": -3.2312987500003145, + "angular_acceleration": 0.0 + }, + { + "time": 3.2999999999999736, + "x": -0.0958256249999985, + "y": 0.7372356250000367, + "angle": 0.0, + "x_velocity": -0.05665625000004874, + "y_velocity": -1.388843749999918, + "angular_velocity": 0.0, + "x_acceleration": 1.8462500000000746, + "y_acceleration": -3.1062500000003443, + "angular_acceleration": 0.0 + }, + { + "time": 3.3099999999999734, + "x": -0.09630036016874899, + "y": 0.7231940848687877, + "angle": 0.0, + "x_velocity": -0.038340928125048315, + "y_velocity": -1.4192392218749208, + "angular_velocity": 0.0, + "x_acceleration": 1.816166250000086, + "y_acceleration": -2.9712262500003717, + "angular_acceleration": 0.0 + }, + { + "time": 3.319999999999973, + "x": -0.09659351039999947, + "y": 0.7088555008000388, + "angle": 0.0, + "x_velocity": -0.020345600000047745, + "y_velocity": -1.4482367999999246, + "angular_velocity": 0.0, + "x_acceleration": 1.7822800000000956, + "y_acceleration": -2.8267600000004, + "angular_acceleration": 0.0 + }, + { + "time": 3.329999999999973, + "x": -0.09670846288124994, + "y": 0.6942343149812898, + "angle": 0.0, + "x_velocity": -0.0027074281250471927, + "y_velocity": -1.4757447218749278, + "angular_velocity": 0.0, + "x_acceleration": 1.7447637500001065, + "y_acceleration": -2.673383750000427, + "angular_acceleration": 0.0 + }, + { + "time": 3.3399999999999728, + "x": -0.09664896780000039, + "y": 0.6793458606000409, + "angle": 0.0, + "x_velocity": 0.014538149999953467, + "y_velocity": -1.5016765499999316, + "angular_velocity": 0.0, + "x_acceleration": 1.703790000000117, + "y_acceleration": -2.5116300000004523, + "angular_acceleration": 0.0 + }, + { + "time": 3.3499999999999726, + "x": -0.09641912109375084, + "y": 0.6642063085937919, + "angle": 0.0, + "x_velocity": 0.031357421874954605, + "y_velocity": -1.5259511718749357, + "angular_velocity": 0.0, + "x_acceleration": 1.6595312500001265, + "y_acceleration": -2.342031250000475, + "angular_acceleration": 0.0 + }, + { + "time": 3.3599999999999723, + "x": -0.09602334720000133, + "y": 0.6488326144000428, + "angle": 0.0, + "x_velocity": 0.047718399999955516, + "y_velocity": -1.5484927999999407, + "angular_velocity": 0.0, + "x_acceleration": 1.6121600000001346, + "y_acceleration": -2.165120000000499, + "angular_acceleration": 0.0 + }, + { + "time": 3.369999999999972, + "x": -0.09546638180625178, + "y": 0.6332424647062938, + "angle": 0.0, + "x_velocity": 0.06359082187495646, + "y_velocity": -1.5692309718749446, + "angular_velocity": 0.0, + "x_acceleration": 1.5618487500001443, + "y_acceleration": -1.9814287500005223, + "angular_acceleration": 0.0 + }, + { + "time": 3.379999999999972, + "x": -0.0947532546000022, + "y": 0.6174542242000446, + "angle": 0.0, + "x_velocity": 0.07894614999995772, + "y_velocity": -1.5881005499999503, + "angular_velocity": 0.0, + "x_acceleration": 1.5087700000001525, + "y_acceleration": -1.7914900000005414, + "angular_acceleration": 0.0 + }, + { + "time": 3.3899999999999717, + "x": -0.09388927201875269, + "y": 0.6014868823187954, + "angle": 0.0, + "x_velocity": 0.09375757187495887, + "y_velocity": -1.6050417218749546, + "angular_velocity": 0.0, + "x_acceleration": 1.4530962500001618, + "y_acceleration": -1.5958362500005645, + "angular_acceleration": 0.0 + }, + { + "time": 3.3999999999999715, + "x": -0.09288000000000309, + "y": 0.5853600000000462, + "angle": 0.0, + "x_velocity": 0.10799999999996024, + "y_velocity": -1.6199999999999601, + "angular_velocity": 0.0, + "x_acceleration": 1.3950000000001683, + "y_acceleration": -1.3950000000005796, + "angular_acceleration": 0.0 + }, + { + "time": 3.4099999999999713, + "x": -0.09173124673125355, + "y": 0.569093656431297, + "angle": 0.0, + "x_velocity": 0.12165007187496196, + "y_velocity": -1.6329262218749665, + "angular_velocity": 0.0, + "x_acceleration": 1.334653750000176, + "y_acceleration": -1.1895137500005974, + "angular_acceleration": 0.0 + }, + { + "time": 3.419999999999971, + "x": -0.09044904540000392, + "y": 0.5527083958000475, + "angle": 0.0, + "x_velocity": 0.13468614999996323, + "y_velocity": -1.6437765499999717, + "angular_velocity": 0.0, + "x_acceleration": 1.2722300000001838, + "y_acceleration": -0.9799100000006105, + "angular_acceleration": 0.0 + }, + { + "time": 3.429999999999971, + "x": -0.08903963694375427, + "y": 0.5362251740437983, + "angle": 0.0, + "x_velocity": 0.14708832187496465, + "y_velocity": -1.6525124718749775, + "angular_velocity": 0.0, + "x_acceleration": 1.2079012500001927, + "y_acceleration": -0.7667212500006313, + "angular_acceleration": 0.0 + }, + { + "time": 3.4399999999999706, + "x": -0.08750945280000468, + "y": 0.5196653056000489, + "angle": 0.0, + "x_velocity": 0.15883839999996663, + "y_velocity": -1.659100799999984, + "angular_velocity": 0.0, + "x_acceleration": 1.141840000000196, + "y_acceleration": -0.5504800000006362, + "angular_acceleration": 0.0 + }, + { + "time": 3.4499999999999704, + "x": -0.08586509765625505, + "y": 0.5030504101562993, + "angle": 0.0, + "x_velocity": 0.16991992187496824, + "y_velocity": -1.6635136718749899, + "angular_velocity": 0.0, + "x_acceleration": 1.0742187500002034, + "y_acceleration": -0.3317187500006522, + "angular_acceleration": 0.0 + }, + { + "time": 3.45999999999997, + "x": -0.08411333220000536, + "y": 0.48640235940004967, + "angle": 0.0, + "x_velocity": 0.18031814999997015, + "y_velocity": -1.6657285499999965, + "angular_velocity": 0.0, + "x_acceleration": 1.0052100000002082, + "y_acceleration": -0.11097000000066437, + "angular_acceleration": 0.0 + }, + { + "time": 3.46999999999997, + "x": -0.08226105586875573, + "y": 0.46974322376879996, + "angle": 0.0, + "x_velocity": 0.190020071874972, + "y_velocity": -1.6657282218750031, + "angular_velocity": 0.0, + "x_acceleration": 0.9349862500002133, + "y_acceleration": 0.11123374999933056, + "angular_acceleration": 0.0 + }, + { + "time": 3.47999999999997, + "x": -0.08031528960000603, + "y": 0.4530952192000503, + "angle": 0.0, + "x_velocity": 0.19901439999997406, + "y_velocity": -1.6635008000000107, + "angular_velocity": 0.0, + "x_acceleration": 0.8637200000002152, + "y_acceleration": 0.33435999999932875, + "angular_acceleration": 0.0 + }, + { + "time": 3.4899999999999696, + "x": -0.07828315858125634, + "y": 0.4364806538813005, + "angle": 0.0, + "x_velocity": 0.20729157187497582, + "y_velocity": -1.6590397218750164, + "angular_velocity": 0.0, + "x_acceleration": 0.7915837500002221, + "y_acceleration": 0.5578762499993175, + "angular_acceleration": 0.0 + }, + { + "time": 3.4999999999999694, + "x": -0.07617187500000658, + "y": 0.4199218750000506, + "angle": 0.0, + "x_velocity": 0.21484374999997802, + "y_velocity": -1.6523437500000242, + "angular_velocity": 0.0, + "x_acceleration": 0.7187500000002238, + "y_acceleration": 0.7812499999993143, + "angular_acceleration": 0.0 + }, + { + "time": 3.509999999999969, + "x": -0.07398872079375682, + "y": 0.4034412154938005, + "angle": 0.0, + "x_velocity": 0.22166482187498027, + "y_velocity": -1.6434169718750313, + "angular_velocity": 0.0, + "x_acceleration": 0.645391250000225, + "y_acceleration": 1.0039487499993154, + "angular_acceleration": 0.0 + }, + { + "time": 3.519999999999969, + "x": -0.07174103040000712, + "y": 0.3870609408000507, + "angle": 0.0, + "x_velocity": 0.22775039999998248, + "y_velocity": -1.6322688000000383, + "angular_velocity": 0.0, + "x_acceleration": 0.5716800000002298, + "y_acceleration": 1.2254399999993115, + "angular_acceleration": 0.0 + }, + { + "time": 3.5299999999999687, + "x": -0.06943617350625722, + "y": 0.3708031956063005, + "angle": 0.0, + "x_velocity": 0.2330978218749844, + "y_velocity": -1.6189139718750445, + "angular_velocity": 0.0, + "x_acceleration": 0.4977887500002316, + "y_acceleration": 1.445191249999315, + "angular_acceleration": 0.0 + }, + { + "time": 3.5399999999999685, + "x": -0.06708153780000747, + "y": 0.3546899506000505, + "angle": 0.0, + "x_velocity": 0.2377061499999864, + "y_velocity": -1.603372550000053, + "angular_velocity": 0.0, + "x_acceleration": 0.4238900000002328, + "y_acceleration": 1.6626699999993235, + "angular_acceleration": 0.0 + }, + { + "time": 3.5499999999999683, + "x": -0.0646845117187577, + "y": 0.33874294921880027, + "angle": 0.0, + "x_velocity": 0.24157617187498903, + "y_velocity": -1.5856699218750592, + "angular_velocity": 0.0, + "x_acceleration": 0.350156250000234, + "y_acceleration": 1.8773437499993229, + "angular_acceleration": 0.0 + }, + { + "time": 3.559999999999968, + "x": -0.06225246720000781, + "y": 0.3229836544000501, + "angle": 0.0, + "x_velocity": 0.24471039999999133, + "y_velocity": -1.565836800000067, + "angular_velocity": 0.0, + "x_acceleration": 0.27676000000023304, + "y_acceleration": 2.088679999999327, + "angular_acceleration": 0.0 + }, + { + "time": 3.569999999999968, + "x": -0.059792742431257956, + "y": 0.30743319533129937, + "angle": 0.0, + "x_velocity": 0.24711307187499365, + "y_velocity": -1.543909221875074, + "angular_velocity": 0.0, + "x_acceleration": 0.20387375000023233, + "y_acceleration": 2.296146249999346, + "angular_acceleration": 0.0 + }, + { + "time": 3.5799999999999677, + "x": -0.057312624600008064, + "y": 0.29211231420004913, + "angle": 0.0, + "x_velocity": 0.2487901499999955, + "y_velocity": -1.5199285500000803, + "angular_velocity": 0.0, + "x_acceleration": 0.13167000000023332, + "y_acceleration": 2.499209999999348, + "angular_acceleration": 0.0 + }, + { + "time": 3.5899999999999674, + "x": -0.054819332643758156, + "y": 0.2770413129437989, + "angle": 0.0, + "x_velocity": 0.24974932187499843, + "y_velocity": -1.4939414718750883, + "angular_velocity": 0.0, + "x_acceleration": 0.0603212500002277, + "y_acceleration": 2.6973387499993677, + "angular_acceleration": 0.0 + }, + { + "time": 3.5999999999999672, + "x": -0.05232000000000818, + "y": 0.262240000000048, + "angle": 0.0, + "x_velocity": 0.24999999999999978, + "y_velocity": -1.4660000000000943, + "angular_velocity": 0.0, + "x_acceleration": -0.009999999999770637, + "y_acceleration": 2.8899999999993717, + "angular_acceleration": 0.0 + }, + { + "time": 3.609999999999967, + "x": -0.04982165735625829, + "y": 0.24772763705629752, + "angle": 0.0, + "x_velocity": 0.24955332187500312, + "y_velocity": -1.436161471875102, + "angular_velocity": 0.0, + "x_acceleration": -0.0791212499997771, + "y_acceleration": 3.0766612499993933, + "angular_acceleration": 0.0 + }, + { + "time": 3.619999999999967, + "x": -0.047331215400008286, + "y": 0.2335228858000466, + "angle": 0.0, + "x_velocity": 0.24842215000000478, + "y_velocity": -1.4044885500001083, + "angular_velocity": 0.0, + "x_acceleration": -0.14686999999977957, + "y_acceleration": 3.2567899999994125, + "angular_acceleration": 0.0 + }, + { + "time": 3.6299999999999666, + "x": -0.0448554475687582, + "y": 0.21964375466879577, + "angle": 0.0, + "x_velocity": 0.24662107187500726, + "y_velocity": -1.3710492218751131, + "angular_velocity": 0.0, + "x_acceleration": -0.2130737499997819, + "y_acceleration": 3.429853749999438, + "angular_acceleration": 0.0 + }, + { + "time": 3.6399999999999664, + "x": -0.04240097280000829, + "y": 0.20610754560004518, + "angle": 0.0, + "x_velocity": 0.24416640000000878, + "y_velocity": -1.3359168000001218, + "angular_velocity": 0.0, + "x_acceleration": -0.277559999999788, + "y_acceleration": 3.5953199999994574, + "angular_acceleration": 0.0 + }, + { + "time": 3.649999999999966, + "x": -0.039974238281258234, + "y": 0.1929308007812942, + "angle": 0.0, + "x_velocity": 0.24107617187501185, + "y_velocity": -1.2991699218751274, + "angular_velocity": 0.0, + "x_acceleration": -0.3401562499997919, + "y_acceleration": 3.7526562499994895, + "angular_acceleration": 0.0 + }, + { + "time": 3.659999999999966, + "x": -0.03758150220000803, + "y": 0.1801292494000426, + "angle": 0.0, + "x_velocity": 0.23737015000001294, + "y_velocity": -1.2608925500001327, + "angular_velocity": 0.0, + "x_acceleration": -0.4006899999997948, + "y_acceleration": 3.9013299999995006, + "angular_acceleration": 0.0 + }, + { + "time": 3.6699999999999657, + "x": -0.035228816493758086, + "y": 0.16771775439379188, + "angle": 0.0, + "x_velocity": 0.23306982187501624, + "y_velocity": -1.2211739718751398, + "angular_velocity": 0.0, + "x_acceleration": -0.458988749999806, + "y_acceleration": 4.040808749999535, + "angular_acceleration": 0.0 + }, + { + "time": 3.6799999999999655, + "x": -0.03292200960000774, + "y": 0.15571025920004067, + "angle": 0.0, + "x_velocity": 0.22819840000001812, + "y_velocity": -1.180108800000145, + "angular_velocity": 0.0, + "x_acceleration": -0.5148799999998115, + "y_acceleration": 4.1705599999995755, + "angular_acceleration": 0.0 + }, + { + "time": 3.6899999999999653, + "x": -0.030666669206257824, + "y": 0.1441197345062898, + "angle": 0.0, + "x_velocity": 0.22278082187502024, + "y_velocity": -1.13779697187515, + "angular_velocity": 0.0, + "x_acceleration": -0.5681912499998187, + "y_acceleration": 4.290051249999603, + "angular_acceleration": 0.0 + }, + { + "time": 3.699999999999965, + "x": -0.028468125000007588, + "y": 0.13295812500003845, + "angle": 0.0, + "x_velocity": 0.21684375000002154, + "y_velocity": -1.094343750000152, + "angular_velocity": 0.0, + "x_acceleration": -0.6187499999998316, + "y_acceleration": 4.398749999999641, + "angular_acceleration": 0.0 + }, + { + "time": 3.709999999999965, + "x": -0.026331431418757212, + "y": 0.12223629611878684, + "angle": 0.0, + "x_velocity": 0.21041557187502402, + "y_velocity": -1.0498597218751584, + "angular_velocity": 0.0, + "x_acceleration": -0.6663837499998415, + "y_acceleration": 4.49612374999969, + "angular_acceleration": 0.0 + }, + { + "time": 3.7199999999999647, + "x": -0.024261350400007042, + "y": 0.11196398080003478, + "angle": 0.0, + "x_velocity": 0.2035264000000241, + "y_velocity": -1.0044608000001611, + "angular_velocity": 0.0, + "x_acceleration": -0.710919999999847, + "y_acceleration": 4.581639999999723, + "angular_acceleration": 0.0 + }, + { + "time": 3.7299999999999645, + "x": -0.022262334131257, + "y": 0.10214972623128382, + "angle": 0.0, + "x_velocity": 0.19620807187502587, + "y_velocity": -0.9582682218751639, + "angular_velocity": 0.0, + "x_acceleration": -0.7521862499998573, + "y_acceleration": 4.654766249999753, + "angular_acceleration": 0.0 + }, + { + "time": 3.7399999999999642, + "x": -0.020338507800006678, + "y": 0.09280084060003191, + "angle": 0.0, + "x_velocity": 0.1884941500000279, + "y_velocity": -0.9114085500001687, + "angular_velocity": 0.0, + "x_acceleration": -0.7900099999998691, + "y_acceleration": 4.714969999999809, + "angular_acceleration": 0.0 + }, + { + "time": 3.749999999999964, + "x": -0.018493652343756495, + "y": 0.08392333984378131, + "angle": 0.0, + "x_velocity": 0.1804199218750293, + "y_velocity": -0.8640136718751714, + "angular_velocity": 0.0, + "x_acceleration": -0.8242187499998828, + "y_acceleration": 4.761718749999851, + "angular_acceleration": 0.0 + }, + { + "time": 3.759999999999964, + "x": -0.016731187200006103, + "y": 0.07552189440002932, + "angle": 0.0, + "x_velocity": 0.17202240000003055, + "y_velocity": -0.8162208000001714, + "angular_velocity": 0.0, + "x_acceleration": -0.854639999999895, + "y_acceleration": 4.794479999999908, + "angular_acceleration": 0.0 + }, + { + "time": 3.7699999999999636, + "x": -0.015054153056255959, + "y": 0.06759977595627809, + "angle": 0.0, + "x_velocity": 0.16334032187503222, + "y_velocity": -0.768172471875177, + "angular_velocity": 0.0, + "x_acceleration": -0.8811012499999116, + "y_acceleration": 4.812721249999953, + "angular_acceleration": 0.0 + }, + { + "time": 3.7799999999999634, + "x": -0.013465194600005725, + "y": 0.060158804200026283, + "angle": 0.0, + "x_velocity": 0.15441415000003378, + "y_velocity": -0.7200165500001763, + "angular_velocity": 0.0, + "x_acceleration": -0.9034299999999273, + "y_acceleration": 4.815910000000017, + "angular_acceleration": 0.0 + }, + { + "time": 3.789999999999963, + "x": -0.011966543268755292, + "y": 0.05319929356877462, + "angle": 0.0, + "x_velocity": 0.1452860718750335, + "y_velocity": -0.6719062218751795, + "angular_velocity": 0.0, + "x_acceleration": -0.9214537499999427, + "y_acceleration": 4.8035137500000715, + "angular_acceleration": 0.0 + }, + { + "time": 3.799999999999963, + "x": -0.010560000000005176, + "y": 0.046720000000023854, + "angle": 0.0, + "x_velocity": 0.1360000000000361, + "y_velocity": -0.62400000000018, + "angular_velocity": 0.0, + "x_acceleration": -0.9349999999999614, + "y_acceleration": 4.775000000000141, + "angular_acceleration": 0.0 + }, + { + "time": 3.8099999999999627, + "x": -0.009246917981254987, + "y": 0.04071806768127151, + "angle": 0.0, + "x_velocity": 0.12660157187503573, + "y_velocity": -0.5764617218751766, + "angular_velocity": 0.0, + "x_acceleration": -0.9438962499999768, + "y_acceleration": 4.72983625000019, + "angular_acceleration": 0.0 + }, + { + "time": 3.8199999999999625, + "x": -0.008028185400004273, + "y": 0.03518897580001967, + "angle": 0.0, + "x_velocity": 0.11713815000003658, + "y_velocity": -0.5294605500001754, + "angular_velocity": 0.0, + "x_acceleration": -0.9479699999999944, + "y_acceleration": 4.667490000000271, + "angular_acceleration": 0.0 + }, + { + "time": 3.8299999999999623, + "x": -0.006904208193754258, + "y": 0.030126485293767935, + "angle": 0.0, + "x_velocity": 0.10765882187503673, + "y_velocity": -0.4831709718751718, + "angular_velocity": 0.0, + "x_acceleration": -0.9470487500000146, + "y_acceleration": 4.587428750000335, + "angular_acceleration": 0.0 + }, + { + "time": 3.839999999999962, + "x": -0.005874892800003639, + "y": 0.02552258560001608, + "angle": 0.0, + "x_velocity": 0.09821440000003445, + "y_velocity": -0.4377728000001664, + "angular_velocity": 0.0, + "x_acceleration": -0.9409600000000289, + "y_acceleration": 4.489120000000398, + "angular_acceleration": 0.0 + }, + { + "time": 3.849999999999962, + "x": -0.004939628906253213, + "y": 0.02136744140626523, + "angle": 0.0, + "x_velocity": 0.08885742187503443, + "y_velocity": -0.39345117187516543, + "angular_velocity": 0.0, + "x_acceleration": -0.9295312500000463, + "y_acceleration": 4.372031250000475, + "angular_acceleration": 0.0 + }, + { + "time": 3.8599999999999617, + "x": -0.004097272200002999, + "y": 0.01764933940001301, + "angle": 0.0, + "x_velocity": 0.07964215000003572, + "y_velocity": -0.3503965500001609, + "angular_velocity": 0.0, + "x_acceleration": -0.9125900000000762, + "y_acceleration": 4.235630000000548, + "angular_acceleration": 0.0 + }, + { + "time": 3.8699999999999615, + "x": -0.0033461271187525954, + "y": 0.014354635018761552, + "angle": 0.0, + "x_velocity": 0.07062457187503579, + "y_velocity": -0.30880472187516084, + "angular_velocity": 0.0, + "x_acceleration": -0.8899637500000992, + "y_acceleration": 4.079383750000645, + "angular_acceleration": 0.0 + }, + { + "time": 3.8799999999999613, + "x": -0.0026839296000024104, + "y": 0.011467699200010895, + "angle": 0.0, + "x_velocity": 0.061862400000032736, + "y_velocity": -0.26887680000015024, + "angular_velocity": 0.0, + "x_acceleration": -0.861480000000121, + "y_acceleration": 3.9027600000007325, + "angular_acceleration": 0.0 + }, + { + "time": 3.889999999999961, + "x": -0.0021078298312523502, + "y": 0.008970865131259664, + "angle": 0.0, + "x_velocity": 0.05341507187503325, + "y_velocity": -0.2308192218751497, + "angular_velocity": 0.0, + "x_acceleration": -0.8269662500001473, + "y_acceleration": 3.7052262500008197, + "angular_acceleration": 0.0 + }, + { + "time": 3.899999999999961, + "x": -0.0016143750000019441, + "y": 0.006844375000008007, + "angle": 0.0, + "x_velocity": 0.04534375000003177, + "y_velocity": -0.1948437500001372, + "angular_velocity": 0.0, + "x_acceleration": -0.7862500000001731, + "y_acceleration": 3.4862500000008936, + "angular_acceleration": 0.0 + }, + { + "time": 3.9099999999999606, + "x": -0.0011994920437515821, + "y": 0.005066326743757621, + "angle": 0.0, + "x_velocity": 0.03771132187502868, + "y_velocity": -0.16116747187513347, + "angular_velocity": 0.0, + "x_acceleration": -0.7391587500002039, + "y_acceleration": 3.245298750000984, + "angular_acceleration": 0.0 + }, + { + "time": 3.9199999999999604, + "x": -0.0008584704000007548, + "y": 0.0036126208000051285, + "angle": 0.0, + "x_velocity": 0.03058240000002499, + "y_velocity": -0.1300128000001184, + "angular_velocity": 0.0, + "x_acceleration": -0.6855200000002206, + "y_acceleration": 2.9818400000010854, + "angular_acceleration": 0.0 + }, + { + "time": 3.92999999999996, + "x": -0.0005859447562510667, + "y": 0.002456906856253216, + "angle": 0.0, + "x_velocity": 0.024023321875024095, + "y_velocity": -0.10160747187510921, + "angular_velocity": 0.0, + "x_acceleration": -0.6251612500002572, + "y_acceleration": 2.695341250001192, + "angular_acceleration": 0.0 + }, + { + "time": 3.93999999999996, + "x": -0.00037587780000070126, + "y": 0.0015705306000040054, + "angle": 0.0, + "x_velocity": 0.018102150000021133, + "y_velocity": -0.0761845500000966, + "angular_velocity": 0.0, + "x_acceleration": -0.5579100000002839, + "y_acceleration": 2.3852700000012845, + "angular_acceleration": 0.0 + }, + { + "time": 3.9499999999999598, + "x": -0.00022154296875043222, + "y": 0.000922480468751985, + "angle": 0.0, + "x_velocity": 0.012888671875018964, + "y_velocity": -0.05398242187508373, + "angular_velocity": 0.0, + "x_acceleration": -0.48359375000031335, + "y_acceleration": 2.0510937500013853, + "angular_acceleration": 0.0 + }, + { + "time": 3.9599999999999596, + "x": -0.00011550720000053083, + "y": 0.00047933440000225147, + "angle": 0.0, + "x_velocity": 0.008454400000015738, + "y_velocity": -0.03524480000006491, + "angular_velocity": 0.0, + "x_acceleration": -0.4020400000003441, + "y_acceleration": 1.6922800000015172, + "angular_acceleration": 0.0 + }, + { + "time": 3.9699999999999593, + "x": -0.000049613681249782715, + "y": 0.00020520658125011693, + "angle": 0.0, + "x_velocity": 0.0048725718750119995, + "y_velocity": -0.020220721875055858, + "angular_velocity": 0.0, + "x_acceleration": -0.31307625000038186, + "y_acceleration": 1.308296250001618, + "angular_acceleration": 0.0 + }, + { + "time": 3.979999999999959, + "x": -0.000014964600000277883, + "y": 0.00006169419999935144, + "angle": 0.0, + "x_velocity": 0.0022181500000080234, + "y_velocity": -0.009164550000029692, + "angular_velocity": 0.0, + "x_acceleration": -0.21653000000040734, + "y_acceleration": 0.8986100000017245, + "angular_acceleration": 0.0 + }, + { + "time": 3.989999999999959, + "x": -0.0000019038937502102726, + "y": 0.000007824193749783603, + "angle": 0.0, + "x_velocity": 0.0005678218750047037, + "y_velocity": -0.002335971875019993, + "angular_velocity": 0.0, + "x_acceleration": -0.11222875000045462, + "y_acceleration": 0.4626887500018597, + "angular_acceleration": 0.0 + }, + { + "time": 3.9999999999999587, + "x": -2.220446049250313e-16, + "y": -8.881784197001252e-16, + "angle": 0.0, + "x_velocity": 8.881784197001252e-16, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": -4.796163466380676e-13, + "y_acceleration": 1.9753088054130785e-12, + "angular_acceleration": 0.0 + } + ] +} \ No newline at end of file diff --git a/src/main/deploy/Paths/test.polarpath b/src/main/deploy/Paths/test.polarpath index 2585b2f..7ab27a5 100644 --- a/src/main/deploy/Paths/test.polarpath +++ b/src/main/deploy/Paths/test.polarpath @@ -1 +1,6128 @@ -{"meta_data":{"path_name":"test","sample_rate":0.01,"robot_name":"Cardigan","field_name":"reefscape-updated"},"commands":[],"key_points":[{"index":0,"delta_time":0.0,"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":1,"delta_time":2.0,"time":2.0,"x":1.0,"y":1.0,"angle":0.0,"x_velocity":1.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.25,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":2,"delta_time":3.0,"time":3.0,"x":2.0,"y":0.0,"angle":0.0,"x_velocity":1.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":-0.25,"y_acceleration":0.0,"angular_acceleration":0.0},{"index":3,"delta_time":4.0,"time":4.0,"x":3.0,"y":1.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0}],"sampled_points":[{"time":0.0,"x":0.0,"y":0.0,"angle":0.0,"x_velocity":0.0,"y_velocity":0.0,"angular_velocity":0.0,"x_acceleration":0.0,"y_acceleration":0.0,"angular_acceleration":0.0},{"time":0.01,"x":7.604785156250002e-7,"y":0.0000012406437500000003,"angle":0.0,"x_velocity":0.00045525976562500004,"y_velocity":0.00074251875,"angular_velocity":0.0,"x_acceleration":0.1812828125,"y_acceleration":0.29551499999999997,"angular_acceleration":0.0},{"time":0.02,"x":0.000006042812500000001,"y":0.000009850600000000002,"angle":0.0,"x_velocity":0.00180465625,"y_velocity":0.0029403,"angular_velocity":0.0,"x_acceleration":0.3576625,"y_acceleration":0.58212,"angular_acceleration":0.0},{"time":0.03,"x":0.000020256591796875,"y":0.000032995181250000006,"angle":0.0,"x_velocity":0.004023791015625,"y_velocity":0.0065490187500000015,"angular_velocity":0.0,"x_acceleration":0.5291859375,"y_acceleration":0.8599049999999999,"angular_acceleration":0.0},{"time":0.04,"x":0.000047690000000000006,"y":0.00007761920000000002,"angle":0.0,"x_velocity":0.0070885,"y_velocity":0.0115248,"angular_velocity":0.0,"x_acceleration":0.6959,"y_acceleration":1.12896,"angular_acceleration":0.0},{"time":0.05,"x":0.00009251098632812502,"y":0.00015044921875000003,"angle":0.0,"x_velocity":0.010974853515625,"y_velocity":0.017824218750000002,"angular_velocity":0.0,"x_acceleration":0.8578515625000002,"y_acceleration":1.3893750000000002,"angular_acceleration":0.0},{"time":0.060000000000000005,"x":0.00015876843750000006,"y":0.0002579958000000001,"angle":0.0,"x_velocity":0.015659156250000004,"y_velocity":0.025404300000000008,"angular_velocity":0.0,"x_acceleration":1.0150875000000001,"y_acceleration":1.6412400000000003,"angular_acceleration":0.0},{"time":0.07,"x":0.0002503933496093751,"y":0.0004065557562500001,"angle":0.0,"x_velocity":0.021117947265625003,"y_velocity":0.03422251875000001,"angular_velocity":0.0,"x_acceleration":1.1676546875,"y_acceleration":1.8846450000000001,"angular_acceleration":0.0},{"time":0.08,"x":0.0003712,"y":0.0006022144000000002,"angle":0.0,"x_velocity":0.027328,"y_velocity":0.0442368,"angular_velocity":0.0,"x_acceleration":1.3155999999999999,"y_acceleration":2.1196800000000002,"angular_acceleration":0.0},{"time":0.09,"x":0.0005248871191406249,"y":0.0008508477937499999,"angle":0.0,"x_velocity":0.034266322265624996,"y_velocity":0.05540551875,"angular_velocity":0.0,"x_acceleration":1.4589703125000002,"y_acceleration":2.346435,"angular_acceleration":0.0},{"time":0.09999999999999999,"x":0.0007150390624999999,"y":0.0011581249999999999,"angle":0.0,"x_velocity":0.04191015625,"y_velocity":0.06768749999999998,"angular_velocity":0.0,"x_acceleration":1.5978124999999999,"y_acceleration":2.565,"angular_acceleration":0.0},{"time":0.10999999999999999,"x":0.0009451269824218746,"y":0.0015295103312499996,"angle":0.0,"x_velocity":0.05023697851562499,"y_velocity":0.08104201874999999,"angular_velocity":0.0,"x_acceleration":1.7321734374999997,"y_acceleration":2.775465,"angular_acceleration":0.0},{"time":0.11999999999999998,"x":0.0012185099999999997,"y":0.001970265599999999,"angle":0.0,"x_velocity":0.05922449999999999,"y_velocity":0.09542879999999997,"angular_velocity":0.0,"x_acceleration":1.8620999999999999,"y_acceleration":2.9779199999999997,"angular_acceleration":0.0},{"time":0.12999999999999998,"x":0.0015384363769531243,"y":0.002485452368749999,"angle":0.0,"x_velocity":0.06885066601562499,"y_velocity":0.11080801874999996,"angular_velocity":0.0,"x_acceleration":1.9876390624999996,"y_acceleration":3.172454999999999,"angular_acceleration":0.0},{"time":0.13999999999999999,"x":0.0019080446874999994,"y":0.003079934199999999,"angle":0.0,"x_velocity":0.07909365624999999,"y_velocity":0.12714029999999998,"angular_velocity":0.0,"x_acceleration":2.1088374999999995,"y_acceleration":3.3591599999999997,"angular_acceleration":0.0},{"time":0.15,"x":0.0023303649902343747,"y":0.0037583789062500005,"angle":0.0,"x_velocity":0.089931884765625,"y_velocity":0.14438671875000003,"angular_velocity":0.0,"x_acceleration":2.2257421875,"y_acceleration":3.538125,"angular_acceleration":0.0},{"time":0.16,"x":0.0028083200000000004,"y":0.004525260800000001,"angle":0.0,"x_velocity":0.10134400000000002,"y_velocity":0.1625088,"angular_velocity":0.0,"x_acceleration":2.3384,"y_acceleration":3.70944,"angular_acceleration":0.0},{"time":0.17,"x":0.0033447262597656262,"y":0.005384862943750002,"angle":0.0,"x_velocity":0.113308884765625,"y_velocity":0.18146851875000003,"angular_velocity":0.0,"x_acceleration":2.4468578125000002,"y_acceleration":3.873194999999999,"angular_acceleration":0.0},{"time":0.18000000000000002,"x":0.003942295312500001,"y":0.006341279400000001,"angle":0.0,"x_velocity":0.12580565625,"y_velocity":0.20122830000000003,"angular_velocity":0.0,"x_acceleration":2.5511625,"y_acceleration":4.02948,"angular_acceleration":0.0},{"time":0.19000000000000003,"x":0.0046036348730468775,"y":0.007398417481250004,"angle":0.0,"x_velocity":0.13881366601562506,"y_velocity":0.22175101875000008,"angular_velocity":0.0,"x_acceleration":2.6513609375000002,"y_acceleration":4.1783850000000005,"angular_acceleration":0.0},{"time":0.20000000000000004,"x":0.005331250000000003,"y":0.008560000000000003,"angle":0.0,"x_velocity":0.15231250000000005,"y_velocity":0.24300000000000013,"angular_velocity":0.0,"x_acceleration":2.7475000000000005,"y_acceleration":4.32,"angular_acceleration":0.0},{"time":0.21000000000000005,"x":0.006127544267578129,"y":0.009829567518750006,"angle":0.0,"x_velocity":0.16628197851562507,"y_velocity":0.2649390187500001,"angular_velocity":0.0,"x_acceleration":2.8396265625000003,"y_acceleration":4.454415,"angular_acceleration":0.0},{"time":0.22000000000000006,"x":0.006994820937500006,"y":0.011210480600000006,"angle":0.0,"x_velocity":0.18070215625000008,"y_velocity":0.2875323000000002,"angular_velocity":0.0,"x_acceleration":2.9277875,"y_acceleration":4.581720000000001,"angular_acceleration":0.0},{"time":0.23000000000000007,"x":0.007935284130859383,"y":0.012705922056250011,"angle":0.0,"x_velocity":0.19555332226562508,"y_velocity":0.31074451875000014,"angular_velocity":0.0,"x_acceleration":3.0120296875000006,"y_acceleration":4.702005000000001,"angular_acceleration":0.0},{"time":0.24000000000000007,"x":0.008951040000000006,"y":0.014318899200000009,"angle":0.0,"x_velocity":0.21081600000000011,"y_velocity":0.33454080000000014,"angular_velocity":0.0,"x_acceleration":3.0924,"y_acceleration":4.815360000000001,"angular_acceleration":0.0},{"time":0.25000000000000006,"x":0.010044097900390632,"y":0.01605224609375001,"angle":0.0,"x_velocity":0.22647094726562506,"y_velocity":0.3588867187500001,"angular_velocity":0.0,"x_acceleration":3.168945312500001,"y_acceleration":4.921875,"angular_acceleration":0.0},{"time":0.26000000000000006,"x":0.011216371562500006,"y":0.01790862580000001,"angle":0.0,"x_velocity":0.2424991562500001,"y_velocity":0.3837483000000002,"angular_velocity":0.0,"x_acceleration":3.241712500000001,"y_acceleration":5.021640000000001,"angular_acceleration":0.0},{"time":0.2700000000000001,"x":0.012469680263671883,"y":0.01989053263125001,"angle":0.0,"x_velocity":0.25888185351562515,"y_velocity":0.4090920187500002,"angular_velocity":0.0,"x_acceleration":3.3107484375000005,"y_acceleration":5.114745000000002,"angular_acceleration":0.0},{"time":0.2800000000000001,"x":0.01380575000000001,"y":0.022000294400000012,"angle":0.0,"x_velocity":0.27560050000000014,"y_velocity":0.4348848000000002,"angular_velocity":0.0,"x_acceleration":3.376100000000001,"y_acceleration":5.201280000000001,"angular_acceleration":0.0},{"time":0.2900000000000001,"x":0.015226214658203136,"y":0.024240074668750018,"angle":0.0,"x_velocity":0.2926367910156251,"y_velocity":0.4610940187500002,"angular_velocity":0.0,"x_acceleration":3.437814062500001,"y_acceleration":5.281335000000001,"angular_acceleration":0.0},{"time":0.3000000000000001,"x":0.016732617187500017,"y":0.026611875000000028,"angle":0.0,"x_velocity":0.3099726562500002,"y_velocity":0.4876875000000003,"angular_velocity":0.0,"x_acceleration":3.495937500000001,"y_acceleration":5.355000000000001,"angular_acceleration":0.0},{"time":0.3100000000000001,"x":0.018326410771484395,"y":0.029117537206250033,"angle":0.0,"x_velocity":0.32759025976562517,"y_velocity":0.5146335187500003,"angular_velocity":0.0,"x_acceleration":3.5505171875000014,"y_acceleration":5.422365000000002,"angular_acceleration":0.0},{"time":0.3200000000000001,"x":0.02000896000000002,"y":0.03175874560000002,"angle":0.0,"x_velocity":0.3454720000000002,"y_velocity":0.5419008000000005,"angular_velocity":0.0,"x_acceleration":3.601600000000001,"y_acceleration":5.483520000000001,"angular_acceleration":0.0},{"time":0.3300000000000001,"x":0.021781542041015647,"y":0.03453702924375004,"angle":0.0,"x_velocity":0.36360050976562514,"y_velocity":0.5694585187500002,"angular_velocity":0.0,"x_acceleration":3.649232812500001,"y_acceleration":5.5385550000000014,"angular_acceleration":0.0},{"time":0.34000000000000014,"x":0.023645347812500023,"y":0.037453764200000045,"angle":0.0,"x_velocity":0.3819586562500002,"y_velocity":0.5972763000000003,"angular_velocity":0.0,"x_acceleration":3.693462500000001,"y_acceleration":5.587560000000001,"angular_acceleration":0.0},{"time":0.35000000000000014,"x":0.025601483154296903,"y":0.040510175781250046,"angle":0.0,"x_velocity":0.40052954101562527,"y_velocity":0.6253242187500002,"angular_velocity":0.0,"x_acceleration":3.7343359375000014,"y_acceleration":5.630625000000002,"angular_acceleration":0.0},{"time":0.36000000000000015,"x":0.02765097000000003,"y":0.04370734080000005,"angle":0.0,"x_velocity":0.4192965000000003,"y_velocity":0.6535728000000004,"angular_velocity":0.0,"x_acceleration":3.771900000000001,"y_acceleration":5.667840000000001,"angular_acceleration":0.0},{"time":0.37000000000000016,"x":0.029794747548828167,"y":0.047046189818750056,"angle":0.0,"x_velocity":0.43824310351562534,"y_velocity":0.6819930187500004,"angular_velocity":0.0,"x_acceleration":3.806201562500001,"y_acceleration":5.699295,"angular_acceleration":0.0},{"time":0.38000000000000017,"x":0.03203367343750004,"y":0.050527509400000066,"angle":0.0,"x_velocity":0.45735315625000045,"y_velocity":0.7105563000000005,"angular_velocity":0.0,"x_acceleration":3.8372875000000004,"y_acceleration":5.72508,"angular_acceleration":0.0},{"time":0.3900000000000002,"x":0.03436852491210942,"y":0.05415194435625007,"angle":0.0,"x_velocity":0.47661069726562544,"y_velocity":0.7392345187500008,"angular_velocity":0.0,"x_acceleration":3.8652046875,"y_acceleration":5.745285000000001,"angular_acceleration":0.0},{"time":0.4000000000000002,"x":0.03680000000000004,"y":0.057920000000000055,"angle":0.0,"x_velocity":0.49600000000000033,"y_velocity":0.7680000000000005,"angular_velocity":0.0,"x_acceleration":3.8900000000000015,"y_acceleration":5.760000000000002,"angular_acceleration":0.0},{"time":0.4100000000000002,"x":0.03932871868164069,"y":0.06183204439375009,"angle":0.0,"x_velocity":0.5155055722656254,"y_velocity":0.7968255187500006,"angular_velocity":0.0,"x_acceleration":3.9117203125000004,"y_acceleration":5.769315,"angular_acceleration":0.0},{"time":0.4200000000000002,"x":0.04195522406250005,"y":0.06588831060000008,"angle":0.0,"x_velocity":0.5351121562500004,"y_velocity":0.8256843000000006,"angular_velocity":0.0,"x_acceleration":3.9304125,"y_acceleration":5.77332,"angular_acceleration":0.0},{"time":0.4300000000000002,"x":0.04467998354492193,"y":0.07008889893125009,"angle":0.0,"x_velocity":0.5548047285156255,"y_velocity":0.8545500187500006,"angular_velocity":0.0,"x_acceleration":3.946123437500001,"y_acceleration":5.772105000000002,"angular_acceleration":0.0},{"time":0.4400000000000002,"x":0.047503390000000055,"y":0.07443377920000009,"angle":0.0,"x_velocity":0.5745685000000005,"y_velocity":0.8833968000000005,"angular_velocity":0.0,"x_acceleration":3.958900000000001,"y_acceleration":5.76576,"angular_acceleration":0.0},{"time":0.45000000000000023,"x":0.05042576293945319,"y":0.0789227929687501,"angle":0.0,"x_velocity":0.5943889160156255,"y_velocity":0.9121992187500008,"angular_velocity":0.0,"x_acceleration":3.9687890625,"y_acceleration":5.754375,"angular_acceleration":0.0},{"time":0.46000000000000024,"x":0.05344734968750009,"y":0.08355565580000011,"angle":0.0,"x_velocity":0.6142516562500004,"y_velocity":0.9409323000000007,"angular_velocity":0.0,"x_acceleration":3.975837499999999,"y_acceleration":5.73804,"angular_acceleration":0.0},{"time":0.47000000000000025,"x":0.05656832655273446,"y":0.08833195950625014,"angle":0.0,"x_velocity":0.6341426347656254,"y_velocity":0.9695715187500009,"angular_velocity":0.0,"x_acceleration":3.9800921875000013,"y_acceleration":5.716845,"angular_acceleration":0.0},{"time":0.48000000000000026,"x":0.059788800000000086,"y":0.09325117440000014,"angle":0.0,"x_velocity":0.6540480000000005,"y_velocity":0.9980928000000007,"angular_velocity":0.0,"x_acceleration":3.981600000000001,"y_acceleration":5.690880000000001,"angular_acceleration":0.0},{"time":0.49000000000000027,"x":0.06310880782226572,"y":0.09831265154375013,"angle":0.0,"x_velocity":0.6739541347656257,"y_velocity":1.0264725187500008,"angular_velocity":0.0,"x_acceleration":3.9804078124999998,"y_acceleration":5.660234999999999,"angular_acceleration":0.0},{"time":0.5000000000000002,"x":0.06652832031250008,"y":0.10351562500000012,"angle":0.0,"x_velocity":0.6938476562500006,"y_velocity":1.0546875000000007,"angular_velocity":0.0,"x_acceleration":3.9765624999999996,"y_acceleration":5.624999999999999,"angular_acceleration":0.0},{"time":0.5100000000000002,"x":0.07004724143554697,"y":0.10885921408125014,"angle":0.0,"x_velocity":0.7137154160156254,"y_velocity":1.0827150187500003,"angular_velocity":0.0,"x_acceleration":3.9701109374999994,"y_acceleration":5.585265000000001,"angular_acceleration":0.0},{"time":0.5200000000000002,"x":0.07366541000000008,"y":0.11434242560000013,"angle":0.0,"x_velocity":0.7335445000000005,"y_velocity":1.110532800000001,"angular_velocity":0.0,"x_acceleration":3.9611,"y_acceleration":5.541119999999998,"angular_acceleration":0.0},{"time":0.5300000000000002,"x":0.07738260083007821,"y":0.11996415611875012,"angle":0.0,"x_velocity":0.7533222285156255,"y_velocity":1.1381190187500008,"angular_velocity":0.0,"x_acceleration":3.9495765625,"y_acceleration":5.492654999999998,"angular_acceleration":0.0},{"time":0.5400000000000003,"x":0.08119852593750011,"y":0.12572319420000017,"angle":0.0,"x_velocity":0.7730361562500006,"y_velocity":1.1654523000000006,"angular_velocity":0.0,"x_acceleration":3.9355874999999996,"y_acceleration":5.439959999999996,"angular_acceleration":0.0},{"time":0.5500000000000003,"x":0.08511283569335945,"y":0.13161822265625012,"angle":0.0,"x_velocity":0.7926740722656256,"y_velocity":1.192511718750001,"angular_velocity":0.0,"x_acceleration":3.919179687499999,"y_acceleration":5.383124999999997,"angular_acceleration":0.0},{"time":0.5600000000000003,"x":0.08912512000000011,"y":0.13764782080000018,"angle":0.0,"x_velocity":0.8122240000000005,"y_velocity":1.2192768000000007,"angular_velocity":0.0,"x_acceleration":3.900399999999999,"y_acceleration":5.322239999999997,"angular_acceleration":0.0},{"time":0.5700000000000003,"x":0.09323490946289074,"y":0.14381046669375017,"angle":0.0,"x_velocity":0.8316741972656255,"y_velocity":1.2457275187500005,"angular_velocity":0.0,"x_acceleration":3.8792953125000005,"y_acceleration":5.257394999999999,"angular_acceleration":0.0},{"time":0.5800000000000003,"x":0.09744167656250015,"y":0.1501045394000002,"angle":0.0,"x_velocity":0.8510131562500007,"y_velocity":1.2718443000000015,"angular_velocity":0.0,"x_acceleration":3.8559124999999987,"y_acceleration":5.188679999999996,"angular_acceleration":0.0},{"time":0.5900000000000003,"x":0.10174483682617201,"y":0.15652832123125016,"angle":0.0,"x_velocity":0.8702296035156256,"y_velocity":1.297608018750001,"angular_velocity":0.0,"x_acceleration":3.8302984374999993,"y_acceleration":5.116184999999998,"angular_acceleration":0.0},{"time":0.6000000000000003,"x":0.10614375000000013,"y":0.1630800000000002,"angle":0.0,"x_velocity":0.8893125000000007,"y_velocity":1.3230000000000008,"angular_velocity":0.0,"x_acceleration":3.8024999999999993,"y_acceleration":5.039999999999998,"angular_acceleration":0.0},{"time":0.6100000000000003,"x":0.11063772122070328,"y":0.16975767126875022,"angle":0.0,"x_velocity":0.9082510410156257,"y_velocity":1.3480020187500006,"angular_velocity":0.0,"x_acceleration":3.772564062499998,"y_acceleration":4.960215000000001,"angular_acceleration":0.0},{"time":0.6200000000000003,"x":0.11522600218750015,"y":0.1765593406000002,"angle":0.0,"x_velocity":0.9270346562500007,"y_velocity":1.3725963000000014,"angular_velocity":0.0,"x_acceleration":3.740537499999998,"y_acceleration":4.876919999999995,"angular_acceleration":0.0},{"time":0.6300000000000003,"x":0.11990779233398455,"y":0.18348292580625022,"angle":0.0,"x_velocity":0.9456530097656255,"y_velocity":1.3967655187500005,"angular_velocity":0.0,"x_acceleration":3.7064671875000004,"y_acceleration":4.790204999999996,"angular_acceleration":0.0},{"time":0.6400000000000003,"x":0.12468224000000017,"y":0.19052625920000021,"angle":0.0,"x_velocity":0.9640960000000007,"y_velocity":1.4204928000000012,"angular_velocity":0.0,"x_acceleration":3.6703999999999986,"y_acceleration":4.700159999999993,"angular_acceleration":0.0},{"time":0.6500000000000004,"x":0.1295484436035158,"y":0.19768708984375022,"angle":0.0,"x_velocity":0.9823537597656256,"y_velocity":1.4437617187500011,"angular_velocity":0.0,"x_acceleration":3.6323828124999995,"y_acceleration":4.606874999999997,"angular_acceleration":0.0},{"time":0.6600000000000004,"x":0.13450545281250018,"y":0.20496308580000025,"angle":0.0,"x_velocity":1.000416656250001,"y_velocity":1.4665563000000013,"angular_velocity":0.0,"x_acceleration":3.5924624999999972,"y_acceleration":4.5104399999999965,"angular_acceleration":0.0},{"time":0.6700000000000004,"x":0.13955226971679707,"y":0.2123518363812503,"angle":0.0,"x_velocity":1.0182752910156259,"y_velocity":1.4888610187500013,"angular_velocity":0.0,"x_acceleration":3.550685937499998,"y_acceleration":4.410944999999996,"angular_acceleration":0.0},{"time":0.6800000000000004,"x":0.1446878500000002,"y":0.21985085440000027,"angle":0.0,"x_velocity":1.0359205000000007,"y_velocity":1.510660800000001,"angular_velocity":0.0,"x_acceleration":3.507099999999998,"y_acceleration":4.308479999999992,"angular_acceleration":0.0},{"time":0.6900000000000004,"x":0.1499111041113283,"y":0.2274575784187503,"angle":0.0,"x_velocity":1.0533433535156254,"y_velocity":1.5319410187500007,"angular_velocity":0.0,"x_acceleration":3.461751562500001,"y_acceleration":4.203134999999995,"angular_acceleration":0.0},{"time":0.7000000000000004,"x":0.15522089843750017,"y":0.23516937500000032,"angle":0.0,"x_velocity":1.0705351562500005,"y_velocity":1.5526875000000007,"angular_velocity":0.0,"x_acceleration":3.4146875000000003,"y_acceleration":4.095000000000001,"angular_acceleration":0.0},{"time":0.7100000000000004,"x":0.16061605647460958,"y":0.24298354095625027,"angle":0.0,"x_velocity":1.0874874472656253,"y_velocity":1.5728865187500005,"angular_velocity":0.0,"x_acceleration":3.365954687499999,"y_acceleration":3.984164999999999,"angular_acceleration":0.0},{"time":0.7200000000000004,"x":0.16609536000000025,"y":0.2508973056000004,"angle":0.0,"x_velocity":1.1041920000000007,"y_velocity":1.5925248000000005,"angular_velocity":0.0,"x_acceleration":3.315599999999996,"y_acceleration":3.8707199999999915,"angular_acceleration":0.0},{"time":0.7300000000000004,"x":0.17165755024414084,"y":0.2589078329937503,"angle":0.0,"x_velocity":1.1206408222656257,"y_velocity":1.6115895187500007,"angular_velocity":0.0,"x_acceleration":3.263670312499998,"y_acceleration":3.754754999999995,"angular_acceleration":0.0},{"time":0.7400000000000004,"x":0.17730132906250023,"y":0.26701222420000026,"angle":0.0,"x_velocity":1.136826156250001,"y_velocity":1.6300683000000007,"angular_velocity":0.0,"x_acceleration":3.2102124999999977,"y_acceleration":3.6363599999999954,"angular_acceleration":0.0},{"time":0.7500000000000004,"x":0.1830253601074222,"y":0.27520751953125044,"angle":0.0,"x_velocity":1.1527404785156257,"y_velocity":1.6479492187500009,"angular_velocity":0.0,"x_acceleration":3.155273437499999,"y_acceleration":3.5156249999999982,"angular_acceleration":0.0},{"time":0.7600000000000005,"x":0.18882827000000021,"y":0.28349070080000033,"angle":0.0,"x_velocity":1.1683765000000006,"y_velocity":1.6652208000000004,"angular_velocity":0.0,"x_acceleration":3.098899999999997,"y_acceleration":3.392639999999994,"angular_acceleration":0.0},{"time":0.7700000000000005,"x":0.19470864950195343,"y":0.2918586935687504,"angle":0.0,"x_velocity":1.1837271660156259,"y_velocity":1.6818720187500014,"angular_velocity":0.0,"x_acceleration":3.0411390624999957,"y_acceleration":3.2674949999999905,"angular_acceleration":0.0},{"time":0.7800000000000005,"x":0.2006650546875003,"y":0.3003083694000004,"angle":0.0,"x_velocity":1.1987856562500008,"y_velocity":1.6978923000000004,"angular_velocity":0.0,"x_acceleration":2.9820374999999992,"y_acceleration":3.140279999999997,"angular_acceleration":0.0},{"time":0.7900000000000005,"x":0.20669600811523464,"y":0.30883654810625044,"angle":0.0,"x_velocity":1.213545384765626,"y_velocity":1.7132715187500012,"angular_velocity":0.0,"x_acceleration":2.9216421874999963,"y_acceleration":3.0110849999999925,"angular_acceleration":0.0},{"time":0.8000000000000005,"x":0.21280000000000027,"y":0.3174400000000004,"angle":0.0,"x_velocity":1.2280000000000009,"y_velocity":1.7280000000000009,"angular_velocity":0.0,"x_acceleration":2.859999999999996,"y_acceleration":2.879999999999992,"angular_acceleration":0.0},{"time":0.8100000000000005,"x":0.2189754893847659,"y":0.3261154481437504,"angle":0.0,"x_velocity":1.2421433847656258,"y_velocity":1.742068518750001,"angular_velocity":0.0,"x_acceleration":2.7971578124999983,"y_acceleration":2.7471149999999938,"angular_acceleration":0.0},{"time":0.8200000000000005,"x":0.22522090531250027,"y":0.3348595706000004,"angle":0.0,"x_velocity":1.2559696562500011,"y_velocity":1.7554683000000006,"angular_velocity":0.0,"x_acceleration":2.733162499999998,"y_acceleration":2.612519999999993,"angular_acceleration":0.0},{"time":0.8300000000000005,"x":0.2315346479980472,"y":0.3436690026812504,"angle":0.0,"x_velocity":1.2694731660156258,"y_velocity":1.7681910187500007,"angular_velocity":0.0,"x_acceleration":2.6680609374999973,"y_acceleration":2.476304999999993,"angular_acceleration":0.0},{"time":0.8400000000000005,"x":0.23791509000000033,"y":0.3525403392000005,"angle":0.0,"x_velocity":1.2826485000000007,"y_velocity":1.7802288000000008,"angular_velocity":0.0,"x_acceleration":2.601899999999995,"y_acceleration":2.3385599999999886,"angular_acceleration":0.0},{"time":0.8500000000000005,"x":0.24436057739257847,"y":0.3614701367187505,"angle":0.0,"x_velocity":1.2954904785156254,"y_velocity":1.7915742187500006,"angular_velocity":0.0,"x_acceleration":2.534726562499996,"y_acceleration":2.1993749999999928,"angular_acceleration":0.0},{"time":0.8600000000000005,"x":0.25086943093750036,"y":0.37045491580000045,"angle":0.0,"x_velocity":1.3079941562500006,"y_velocity":1.8022203,"angular_velocity":0.0,"x_acceleration":2.4665874999999993,"y_acceleration":2.0588399999999965,"angular_acceleration":0.0},{"time":0.8700000000000006,"x":0.2574399472558596,"y":0.37949116325625043,"angle":0.0,"x_velocity":1.3201548222656259,"y_velocity":1.8121605187500014,"angular_velocity":0.0,"x_acceleration":2.397529687499996,"y_acceleration":1.9170449999999946,"angular_acceleration":0.0},{"time":0.8800000000000006,"x":0.26407040000000037,"y":0.38857533440000047,"angle":0.0,"x_velocity":1.3319680000000007,"y_velocity":1.821388800000001,"angular_velocity":0.0,"x_acceleration":2.327599999999994,"y_acceleration":1.7740799999999837,"angular_acceleration":0.0},{"time":0.8900000000000006,"x":0.27075904102539106,"y":0.3977038552937505,"angle":0.0,"x_velocity":1.3434294472656254,"y_velocity":1.8298995187500013,"angular_velocity":0.0,"x_acceleration":2.2568453124999976,"y_acceleration":1.6300349999999888,"angular_acceleration":0.0},{"time":0.9000000000000006,"x":0.2775041015625004,"y":0.4068731250000006,"angle":0.0,"x_velocity":1.3545351562500008,"y_velocity":1.8376875000000004,"angular_velocity":0.0,"x_acceleration":2.1853124999999958,"y_acceleration":1.4849999999999977,"angular_acceleration":0.0},{"time":0.9100000000000006,"x":0.2843037933886723,"y":0.4160795178312505,"angle":0.0,"x_velocity":1.3652813535156256,"y_velocity":1.8447480187500003,"angular_velocity":0.0,"x_acceleration":2.1130484374999954,"y_acceleration":1.3390649999999908,"angular_acceleration":0.0},{"time":0.9200000000000006,"x":0.2911563100000004,"y":0.4253193856000006,"angle":0.0,"x_velocity":1.3756645000000005,"y_velocity":1.8510768,"angular_velocity":0.0,"x_acceleration":2.040099999999992,"y_acceleration":1.192319999999988,"angular_acceleration":0.0},{"time":0.9300000000000006,"x":0.29805982778320345,"y":0.4345890598687504,"angle":0.0,"x_velocity":1.3856812910156253,"y_velocity":1.8566700187499998,"angular_velocity":0.0,"x_acceleration":1.9665140624999973,"y_acceleration":1.0448549999999948,"angular_acceleration":0.0},{"time":0.9400000000000006,"x":0.30501250718750045,"y":0.4438848542000005,"angle":0.0,"x_velocity":1.3953286562500002,"y_velocity":1.8615243000000001,"angular_velocity":0.0,"x_acceleration":1.8923374999999956,"y_acceleration":0.8967599999999933,"angular_acceleration":0.0},{"time":0.9500000000000006,"x":0.3120124938964848,"y":0.45320306640625063,"angle":0.0,"x_velocity":1.4046037597656262,"y_velocity":1.8656367187499998,"angular_velocity":0.0,"x_acceleration":1.8176171874999927,"y_acceleration":0.7481249999999875,"angular_acceleration":0.0},{"time":0.9600000000000006,"x":0.31905792000000044,"y":0.4625399808000007,"angle":0.0,"x_velocity":1.4135040000000005,"y_velocity":1.8690048000000008,"angular_velocity":0.0,"x_acceleration":1.7423999999999937,"y_acceleration":0.599039999999988,"angular_acceleration":0.0},{"time":0.9700000000000006,"x":0.3261469051660161,"y":0.4718918704437506,"angle":0.0,"x_velocity":1.4220270097656258,"y_velocity":1.8716265187500005,"angular_velocity":0.0,"x_acceleration":1.6667328124999958,"y_acceleration":0.44959499999999153,"angular_acceleration":0.0},{"time":0.9800000000000006,"x":0.33327755781250046,"y":0.4812549994000006,"angle":0.0,"x_velocity":1.430170656250001,"y_velocity":1.8735002999999997,"angular_velocity":0.0,"x_acceleration":1.590662499999997,"y_acceleration":0.2998799999999946,"angular_acceleration":0.0},{"time":0.9900000000000007,"x":0.34044797627929735,"y":0.49062562498125073,"angle":0.0,"x_velocity":1.4379330410156261,"y_velocity":1.874625018750001,"angular_velocity":0.0,"x_acceleration":1.5142359374999907,"y_acceleration":0.14998499999999026,"angular_acceleration":0.0},{"time":1.0000000000000007,"x":0.34765625000000056,"y":0.5000000000000007,"angle":0.0,"x_velocity":1.4453125000000009,"y_velocity":1.8749999999999996,"angular_velocity":0.0,"x_acceleration":1.4374999999999938,"y_acceleration":-1.0658141036401503e-14,"angular_acceleration":0.0},{"time":1.0100000000000007,"x":0.35490046067382874,"y":0.5093743750187508,"angle":0.0,"x_velocity":1.4523076035156253,"y_velocity":1.8746250187499998,"angular_velocity":0.0,"x_acceleration":1.3605015624999979,"y_acceleration":-0.14998500000001158,"angular_acceleration":0.0},{"time":1.0200000000000007,"x":0.3621786834375006,"y":0.5187450006000007,"angle":0.0,"x_velocity":1.45891715625,"y_velocity":1.873500299999999,"angular_velocity":0.0,"x_acceleration":1.2832874999999984,"y_acceleration":-0.29988000000000525,"angular_acceleration":0.0},{"time":1.0300000000000007,"x":0.36948898803710994,"y":0.5281081295562505,"angle":0.0,"x_velocity":1.465140197265626,"y_velocity":1.8716265187500007,"angular_velocity":0.0,"x_acceleration":1.2059046874999915,"y_acceleration":-0.4495950000000164,"angular_acceleration":0.0},{"time":1.0400000000000007,"x":0.3768294400000006,"y":0.5374600192000006,"angle":0.0,"x_velocity":1.470976,"y_velocity":1.8690047999999995,"angular_velocity":0.0,"x_acceleration":1.1283999999999956,"y_acceleration":-0.5990400000000093,"angular_acceleration":0.0},{"time":1.0500000000000007,"x":0.38419810180664105,"y":0.5467969335937506,"angle":0.0,"x_velocity":1.4764240722656254,"y_velocity":1.8656367187500003,"angular_velocity":0.0,"x_acceleration":1.0508203124999937,"y_acceleration":-0.7481250000000124,"angular_acceleration":0.0},{"time":1.0600000000000007,"x":0.39159303406250046,"y":0.5561151458000004,"angle":0.0,"x_velocity":1.4814841562500003,"y_velocity":1.8615242999999988,"angular_velocity":0.0,"x_acceleration":0.9732124999999954,"y_acceleration":-0.8967600000000076,"angular_acceleration":0.0},{"time":1.0700000000000007,"x":0.39901229666992244,"y":0.5654109401312509,"angle":0.0,"x_velocity":1.4861562285156251,"y_velocity":1.8566700187500005,"angular_velocity":0.0,"x_acceleration":0.8956234374999941,"y_acceleration":-1.0448550000000054,"angular_acceleration":0.0},{"time":1.0800000000000007,"x":0.40645395000000056,"y":0.5746806144000007,"angle":0.0,"x_velocity":1.4904405000000003,"y_velocity":1.8510767999999995,"angular_velocity":0.0,"x_acceleration":0.8180999999999923,"y_acceleration":-1.19232000000002,"angular_acceleration":0.0},{"time":1.0900000000000007,"x":0.4139160560644536,"y":0.5839204821687507,"angle":0.0,"x_velocity":1.4943374160156262,"y_velocity":1.8447480187500003,"angular_velocity":0.0,"x_acceleration":0.7406890624999924,"y_acceleration":-1.3390650000000122,"angular_acceleration":0.0},{"time":1.1000000000000008,"x":0.42139667968750066,"y":0.593126875000001,"angle":0.0,"x_velocity":1.4978476562500003,"y_velocity":1.8376874999999995,"angular_velocity":0.0,"x_acceleration":0.6634374999999952,"y_acceleration":-1.48500000000001,"angular_acceleration":0.0},{"time":1.1100000000000008,"x":0.428893889677735,"y":0.6022961447062508,"angle":0.0,"x_velocity":1.5009721347656249,"y_velocity":1.8298995187499987,"angular_velocity":0.0,"x_acceleration":0.5863921874999924,"y_acceleration":-1.6300350000000066,"angular_acceleration":0.0},{"time":1.1200000000000008,"x":0.4364057600000005,"y":0.6114246656000006,"angle":0.0,"x_velocity":1.5037120000000006,"y_velocity":1.8213887999999998,"angular_velocity":0.0,"x_acceleration":0.5095999999999901,"y_acceleration":-1.774080000000012,"angular_acceleration":0.0},{"time":1.1300000000000008,"x":0.4439303709472662,"y":0.6205088367437506,"angle":0.0,"x_velocity":1.506068634765625,"y_velocity":1.812160518749999,"angular_velocity":0.0,"x_acceleration":0.43310781249999586,"y_acceleration":-1.9170450000000088,"angular_acceleration":0.0},{"time":1.1400000000000008,"x":0.45146581031250055,"y":0.6295450842000008,"angle":0.0,"x_velocity":1.508043656250001,"y_velocity":1.8022202999999992,"angular_velocity":0.0,"x_acceleration":0.3569624999999945,"y_acceleration":-2.058840000000014,"angular_acceleration":0.0},{"time":1.1500000000000008,"x":0.4590101745605475,"y":0.6385298632812506,"angle":0.0,"x_velocity":1.5096389160156256,"y_velocity":1.7915742187499992,"angular_velocity":0.0,"x_acceleration":0.2812109374999938,"y_acceleration":-2.199375000000014,"angular_acceleration":0.0},{"time":1.1600000000000008,"x":0.46656157000000076,"y":0.6474596608000007,"angle":0.0,"x_velocity":1.5108564999999996,"y_velocity":1.7802287999999988,"angular_velocity":0.0,"x_acceleration":0.20589999999999264,"y_acceleration":-2.338560000000008,"angular_acceleration":0.0},{"time":1.1700000000000008,"x":0.47411811395507886,"y":0.6563309973187511,"angle":0.0,"x_velocity":1.5116987285156254,"y_velocity":1.7681910187499996,"angular_velocity":0.0,"x_acceleration":0.1310765624999899,"y_acceleration":-2.4763050000000177,"angular_acceleration":0.0},{"time":1.1800000000000008,"x":0.48167793593750063,"y":0.6651404294000006,"angle":0.0,"x_velocity":1.5121681562499996,"y_velocity":1.7554682999999995,"angular_velocity":0.0,"x_acceleration":0.05678749999999866,"y_acceleration":-2.6125200000000035,"angular_acceleration":0.0},{"time":1.1900000000000008,"x":0.48923917881836,"y":0.6738845518562506,"angle":0.0,"x_velocity":1.512267572265625,"y_velocity":1.74206851875,"angular_velocity":0.0,"x_acceleration":-0.016920312500005252,"y_acceleration":-2.747115000000008,"angular_acceleration":0.0},{"time":1.2000000000000008,"x":0.4968000000000007,"y":0.6825600000000009,"angle":0.0,"x_velocity":1.5119999999999996,"y_velocity":1.7279999999999998,"angular_velocity":0.0,"x_acceleration":-0.08999999999999986,"y_acceleration":-2.880000000000006,"angular_acceleration":0.0},{"time":1.2100000000000009,"x":0.5043585725878912,"y":0.6911634518937506,"angle":0.0,"x_velocity":1.5113686972656244,"y_velocity":1.7132715187499992,"angular_velocity":0.0,"x_acceleration":-0.16240468750000403,"y_acceleration":-3.0110850000000084,"angular_acceleration":0.0},{"time":1.2200000000000009,"x":0.5119130865625008,"y":0.6996916306000011,"angle":0.0,"x_velocity":1.5103771562500001,"y_velocity":1.6978922999999977,"angular_velocity":0.0,"x_acceleration":-0.23408750000000467,"y_acceleration":-3.140280000000004,"angular_acceleration":0.0},{"time":1.2300000000000009,"x":0.5194617499511727,"y":0.7081413064312505,"angle":0.0,"x_velocity":1.509029103515625,"y_velocity":1.6818720187499974,"angular_velocity":0.0,"x_acceleration":-0.30500156250001,"y_acceleration":-3.2674950000000145,"angular_acceleration":0.0},{"time":1.2400000000000009,"x":0.5270027900000003,"y":0.7165092992000004,"angle":0.0,"x_velocity":1.5073285000000007,"y_velocity":1.6652208000000002,"angular_velocity":0.0,"x_acceleration":-0.3751000000000033,"y_acceleration":-3.392640000000007,"angular_acceleration":0.0},{"time":1.2500000000000009,"x":0.534534454345704,"y":0.7247924804687507,"angle":0.0,"x_velocity":1.505279541015625,"y_velocity":1.6479492187499991,"angular_velocity":0.0,"x_acceleration":-0.44433593750000533,"y_acceleration":-3.5156250000000213,"angular_acceleration":0.0},{"time":1.260000000000001,"x":0.542055012187501,"y":0.7329877758000011,"angle":0.0,"x_velocity":1.5028866562499994,"y_velocity":1.630068299999996,"angular_velocity":0.0,"x_acceleration":-0.5126625000000065,"y_acceleration":-3.6363600000000105,"angular_acceleration":0.0},{"time":1.270000000000001,"x":0.549562755458985,"y":0.7410921670062507,"angle":0.0,"x_velocity":1.5001545097656255,"y_velocity":1.611589518749998,"angular_velocity":0.0,"x_acceleration":-0.5800328125000043,"y_acceleration":-3.754755000000003,"angular_acceleration":0.0},{"time":1.280000000000001,"x":0.5570560000000007,"y":0.7491026944000008,"angle":0.0,"x_velocity":1.4970879999999993,"y_velocity":1.5925247999999979,"angular_velocity":0.0,"x_acceleration":-0.6464000000000034,"y_acceleration":-3.8707199999999986,"angular_acceleration":0.0},{"time":1.290000000000001,"x":0.5645330867285165,"y":0.7570164590437511,"angle":0.0,"x_velocity":1.493692259765624,"y_velocity":1.5728865187499963,"angular_velocity":0.0,"x_acceleration":-0.7117171875000032,"y_acceleration":-3.9841650000000115,"angular_acceleration":0.0},{"time":1.300000000000001,"x":0.5719923828125004,"y":0.7648306250000003,"angle":0.0,"x_velocity":1.4899726562500004,"y_velocity":1.5526874999999993,"angular_velocity":0.0,"x_acceleration":-0.7759375000000048,"y_acceleration":-4.095000000000013,"angular_acceleration":0.0},{"time":1.310000000000001,"x":0.5794322828417976,"y":0.7725424215812507,"angle":0.0,"x_velocity":1.4859347910156249,"y_velocity":1.531941018749995,"angular_velocity":0.0,"x_acceleration":-0.8390140625000022,"y_acceleration":-4.203135000000003,"angular_acceleration":0.0},{"time":1.320000000000001,"x":0.5868512100000008,"y":0.7801491456000007,"angle":0.0,"x_velocity":1.481584499999999,"y_velocity":1.5106607999999984,"angular_velocity":0.0,"x_acceleration":-0.9009000000000071,"y_acceleration":-4.308480000000017,"angular_acceleration":0.0},{"time":1.330000000000001,"x":0.5942476172363287,"y":0.7876481636187507,"angle":0.0,"x_velocity":1.476927853515626,"y_velocity":1.488861018749997,"angular_velocity":0.0,"x_acceleration":-0.9615484375000101,"y_acceleration":-4.410945000000019,"angular_acceleration":0.0},{"time":1.340000000000001,"x":0.6016199884375005,"y":0.7950369142000001,"angle":0.0,"x_velocity":1.4719711562500013,"y_velocity":1.4665563000000015,"angular_velocity":0.0,"x_acceleration":-1.020912500000005,"y_acceleration":-4.510440000000017,"angular_acceleration":0.0},{"time":1.350000000000001,"x":0.60896683959961,"y":0.8023129101562512,"angle":0.0,"x_velocity":1.4667209472656264,"y_velocity":1.4437617187499985,"angular_velocity":0.0,"x_acceleration":-1.0789453125000072,"y_acceleration":-4.6068750000000165,"angular_acceleration":0.0},{"time":1.360000000000001,"x":0.6162867200000005,"y":0.8094737408000006,"angle":0.0,"x_velocity":1.4611840000000007,"y_velocity":1.4204928000000008,"angular_velocity":0.0,"x_acceleration":-1.1356000000000073,"y_acceleration":-4.700160000000011,"angular_acceleration":0.0},{"time":1.370000000000001,"x":0.6235782133691412,"y":0.8165170741937506,"angle":0.0,"x_velocity":1.4553673222656243,"y_velocity":1.396765518749996,"angular_velocity":0.0,"x_acceleration":-1.1908296875000062,"y_acceleration":-4.790205000000007,"angular_acceleration":0.0},{"time":1.380000000000001,"x":0.6308399390625009,"y":0.823440659400001,"angle":0.0,"x_velocity":1.4492781562499992,"y_velocity":1.372596299999996,"angular_velocity":0.0,"x_acceleration":-1.2445875000000015,"y_acceleration":-4.876919999999998,"angular_acceleration":0.0},{"time":1.390000000000001,"x":0.6380705532324225,"y":0.8302423287312507,"angle":0.0,"x_velocity":1.4429239785156258,"y_velocity":1.3480020187499981,"angular_velocity":0.0,"x_acceleration":-1.296826562499998,"y_acceleration":-4.960215000000012,"angular_acceleration":0.0},{"time":1.400000000000001,"x":0.6452687500000007,"y":0.836920000000001,"angle":0.0,"x_velocity":1.4363124999999997,"y_velocity":1.3229999999999986,"angular_velocity":0.0,"x_acceleration":-1.3475000000000037,"y_acceleration":-5.040000000000006,"angular_acceleration":0.0},{"time":1.410000000000001,"x":0.6524332626269536,"y":0.8434716787687506,"angle":0.0,"x_velocity":1.4294516660156238,"y_velocity":1.2976080187499992,"angular_velocity":0.0,"x_acceleration":-1.3965609375000057,"y_acceleration":-5.116185000000009,"angular_acceleration":0.0},{"time":1.420000000000001,"x":0.6595628646875009,"y":0.8498954606000007,"angle":0.0,"x_velocity":1.422349656249998,"y_velocity":1.2718442999999962,"angular_velocity":0.0,"x_acceleration":-1.443962500000012,"y_acceleration":-5.188680000000005,"angular_acceleration":0.0},{"time":1.430000000000001,"x":0.666656371240235,"y":0.8561895333062504,"angle":0.0,"x_velocity":1.4150148847656236,"y_velocity":1.2457275187499999,"angular_velocity":0.0,"x_acceleration":-1.4896578125000062,"y_acceleration":-5.25739500000001,"angular_acceleration":0.0},{"time":1.440000000000001,"x":0.6737126400000008,"y":0.8623521792000004,"angle":0.0,"x_velocity":1.4074560000000016,"y_velocity":1.2192768000000012,"angular_velocity":0.0,"x_acceleration":-1.533600000000007,"y_acceleration":-5.322240000000015,"angular_acceleration":0.0},{"time":1.450000000000001,"x":0.6807305725097662,"y":0.8683817773437505,"angle":0.0,"x_velocity":1.3996818847656272,"y_velocity":1.1925117187500014,"angular_velocity":0.0,"x_acceleration":-1.575742187500012,"y_acceleration":-5.383125000000028,"angular_acceleration":0.0},{"time":1.460000000000001,"x":0.6877091153125009,"y":0.8742768058000008,"angle":0.0,"x_velocity":1.3917016562499995,"y_velocity":1.1654522999999966,"angular_velocity":0.0,"x_acceleration":-1.616037500000001,"y_acceleration":-5.4399600000000135,"angular_acceleration":0.0},{"time":1.470000000000001,"x":0.6946472611230475,"y":0.8800358438812506,"angle":0.0,"x_velocity":1.3835246660156253,"y_velocity":1.1381190187500003,"angular_velocity":0.0,"x_acceleration":-1.6544390625000105,"y_acceleration":-5.492655000000013,"angular_acceleration":0.0},{"time":1.480000000000001,"x":0.7015440500000009,"y":0.8856575744000013,"angle":0.0,"x_velocity":1.375160499999998,"y_velocity":1.1105327999999943,"angular_velocity":0.0,"x_acceleration":-1.6909000000000063,"y_acceleration":-5.5411200000000065,"angular_acceleration":0.0},{"time":1.490000000000001,"x":0.7083985705175784,"y":0.8911407859187503,"angle":0.0,"x_velocity":1.366618978515624,"y_velocity":1.0827150187499992,"angular_velocity":0.0,"x_acceleration":-1.7253734375,"y_acceleration":-5.585265000000007,"angular_acceleration":0.0},{"time":1.500000000000001,"x":0.715209960937501,"y":0.8964843750000009,"angle":0.0,"x_velocity":1.3579101562499964,"y_velocity":1.0546874999999964,"angular_velocity":0.0,"x_acceleration":-1.7578125000000036,"y_acceleration":-5.625000000000007,"angular_acceleration":0.0},{"time":1.5100000000000011,"x":0.7219774103808603,"y":0.9016873484562511,"angle":0.0,"x_velocity":1.349044322265624,"y_velocity":1.026472518749996,"angular_velocity":0.0,"x_acceleration":-1.7881703125000108,"y_acceleration":-5.660235000000014,"angular_acceleration":0.0},{"time":1.5200000000000011,"x":0.7287001600000007,"y":0.9067488256000003,"angle":0.0,"x_velocity":1.3400320000000008,"y_velocity":0.9980928000000002,"angular_velocity":0.0,"x_acceleration":-1.8164000000000122,"y_acceleration":-5.690880000000014,"angular_acceleration":0.0},{"time":1.5300000000000011,"x":0.7353775041503914,"y":0.9116680404937512,"angle":0.0,"x_velocity":1.3308839472656233,"y_velocity":0.9695715187499996,"angular_velocity":0.0,"x_acceleration":-1.8424546875000054,"y_acceleration":-5.716844999999999,"angular_acceleration":0.0},{"time":1.5400000000000011,"x":0.7420087915625008,"y":0.9164443442000003,"angle":0.0,"x_velocity":1.3216111562499995,"y_velocity":0.9409322999999983,"angular_velocity":0.0,"x_acceleration":-1.8662874999999985,"y_acceleration":-5.738039999999991,"angular_acceleration":0.0},{"time":1.5500000000000012,"x":0.7485934265136726,"y":0.9210772070312501,"angle":0.0,"x_velocity":1.312224853515624,"y_velocity":0.912199218749997,"angular_velocity":0.0,"x_acceleration":-1.8878515624999963,"y_acceleration":-5.754374999999989,"angular_acceleration":0.0},{"time":1.5600000000000012,"x":0.7551308700000007,"y":0.9255662207999997,"angle":0.0,"x_velocity":1.3027365,"y_velocity":0.8833967999999963,"angular_velocity":0.0,"x_acceleration":-1.907100000000007,"y_acceleration":-5.765760000000007,"angular_acceleration":0.0},{"time":1.5700000000000012,"x":0.7616206409082037,"y":0.9299111010687513,"angle":0.0,"x_velocity":1.2931577910156236,"y_velocity":0.8545500187499986,"angular_velocity":0.0,"x_acceleration":-1.9239859374999924,"y_acceleration":-5.772104999999989,"angular_acceleration":0.0},{"time":1.5800000000000012,"x":0.7680623171875013,"y":0.9341116894000017,"angle":0.0,"x_velocity":1.2835006562499967,"y_velocity":0.8256842999999954,"angular_velocity":0.0,"x_acceleration":-1.9384624999999964,"y_acceleration":-5.773320000000005,"angular_acceleration":0.0},{"time":1.5900000000000012,"x":0.7744555370214848,"y":0.9381679556062508,"angle":0.0,"x_velocity":1.2737772597656258,"y_velocity":0.7968255187499995,"angular_velocity":0.0,"x_acceleration":-1.9504828124999989,"y_acceleration":-5.769314999999999,"angular_acceleration":0.0},{"time":1.6000000000000012,"x":0.7808000000000013,"y":0.9420800000000011,"angle":0.0,"x_velocity":1.2639999999999993,"y_velocity":0.7679999999999954,"angular_velocity":0.0,"x_acceleration":-1.9600000000000009,"y_acceleration":-5.760000000000005,"angular_acceleration":0.0},{"time":1.6100000000000012,"x":0.7870954682910161,"y":0.9458480556437503,"angle":0.0,"x_velocity":1.2541815097656261,"y_velocity":0.7392345187500009,"angular_velocity":0.0,"x_acceleration":-1.9669671874999963,"y_acceleration":-5.7452849999999955,"angular_acceleration":0.0},{"time":1.6200000000000012,"x":0.7933417678125017,"y":0.949472490600002,"angle":0.0,"x_velocity":1.2443346562499968,"y_velocity":0.7105562999999933,"angular_velocity":0.0,"x_acceleration":-1.971337499999997,"y_acceleration":-5.725079999999991,"angular_acceleration":0.0},{"time":1.6300000000000012,"x":0.7995387894042976,"y":0.95295381018125,"angle":0.0,"x_velocity":1.2344725410156254,"y_velocity":0.6819930187499921,"angular_velocity":0.0,"x_acceleration":-1.9730640624999936,"y_acceleration":-5.699294999999978,"angular_acceleration":0.0},{"time":1.6400000000000012,"x":0.8056864900000005,"y":0.9562926591999998,"angle":0.0,"x_velocity":1.224608500000003,"y_velocity":0.6535728000000027,"angular_velocity":0.0,"x_acceleration":-1.9721000000000046,"y_acceleration":-5.667840000000012,"angular_acceleration":0.0},{"time":1.6500000000000012,"x":0.8117848937988292,"y":0.9594898242187497,"angle":0.0,"x_velocity":1.2147561035156214,"y_velocity":0.6253242187499968,"angular_velocity":0.0,"x_acceleration":-1.9683984375000065,"y_acceleration":-5.630625000000009,"angular_acceleration":0.0},{"time":1.6600000000000013,"x":0.8178340934375006,"y":0.9625462358000005,"angle":0.0,"x_velocity":1.2049291562500004,"y_velocity":0.5972762999999937,"angular_velocity":0.0,"x_acceleration":-1.9619124999999897,"y_acceleration":-5.587559999999982,"angular_acceleration":0.0},{"time":1.6700000000000013,"x":0.8238342511621102,"y":0.9654629707562505,"angle":0.0,"x_velocity":1.1951416972656235,"y_velocity":0.5694585187499897,"angular_velocity":0.0,"x_acceleration":-1.9525953125000086,"y_acceleration":-5.538554999999988,"angular_acceleration":0.0},{"time":1.6800000000000013,"x":0.8297856000000008,"y":0.9682412544000005,"angle":0.0,"x_velocity":1.185407999999998,"y_velocity":0.5419007999999952,"angular_velocity":0.0,"x_acceleration":-1.9403999999999968,"y_acceleration":-5.483519999999984,"angular_acceleration":0.0},{"time":1.6900000000000013,"x":0.8356884449316426,"y":0.9708824627937518,"angle":0.0,"x_velocity":1.1757425722656194,"y_velocity":0.514633518749994,"angular_velocity":0.0,"x_acceleration":-1.9252796875000016,"y_acceleration":-5.422364999999971,"angular_acceleration":0.0},{"time":1.7000000000000013,"x":0.841543164062502,"y":0.9733881250000009,"angle":0.0,"x_velocity":1.1661601562499957,"y_velocity":0.4876874999999927,"angular_velocity":0.0,"x_acceleration":-1.9071874999999991,"y_acceleration":-5.35499999999999,"angular_acceleration":0.0},{"time":1.7100000000000013,"x":0.847350209794923,"y":0.9757599253312508,"angle":0.0,"x_velocity":1.1566757285156228,"y_velocity":0.4610940187499928,"angular_velocity":0.0,"x_acceleration":-1.8860765625000013,"y_acceleration":-5.281335000000013,"angular_acceleration":0.0},{"time":1.7200000000000013,"x":0.8531101100000014,"y":0.9779997056000007,"angle":0.0,"x_velocity":1.1473044999999988,"y_velocity":0.4348847999999954,"angular_velocity":0.0,"x_acceleration":-1.8618999999999986,"y_acceleration":-5.201279999999983,"angular_acceleration":0.0},{"time":1.7300000000000013,"x":0.8588234691894541,"y":0.9801094673687514,"angle":0.0,"x_velocity":1.1380619160156247,"y_velocity":0.4090920187500018,"angular_velocity":0.0,"x_acceleration":-1.8346109375000026,"y_acceleration":-5.114745000000013,"angular_acceleration":0.0},{"time":1.7400000000000013,"x":0.8644909696875014,"y":0.9820913742000004,"angle":0.0,"x_velocity":1.1289636562499954,"y_velocity":0.3837482999999935,"angular_velocity":0.0,"x_acceleration":-1.8041624999999897,"y_acceleration":-5.021639999999962,"angular_acceleration":0.0},{"time":1.7500000000000013,"x":0.8701133728027362,"y":0.9839477539062513,"angle":0.0,"x_velocity":1.120025634765625,"y_velocity":0.35888671874999645,"angular_velocity":0.0,"x_acceleration":-1.770507812499993,"y_acceleration":-4.921875,"angular_acceleration":0.0},{"time":1.7600000000000013,"x":0.8756915200000011,"y":0.9856811008000008,"angle":0.0,"x_velocity":1.1112639999999967,"y_velocity":0.33454079999999564,"angular_velocity":0.0,"x_acceleration":-1.7335999999999885,"y_acceleration":-4.815359999999998,"angular_acceleration":0.0},{"time":1.7700000000000014,"x":0.8812263340722666,"y":0.9872940779437505,"angle":0.0,"x_velocity":1.1026951347656198,"y_velocity":0.310744518749992,"angular_velocity":0.0,"x_acceleration":-1.6933921874999882,"y_acceleration":-4.702004999999971,"angular_acceleration":0.0},{"time":1.7800000000000014,"x":0.8867188203125012,"y":0.9887895194,"angle":0.0,"x_velocity":1.0943356562499993,"y_velocity":0.28753229999999874,"angular_velocity":0.0,"x_acceleration":-1.6498374999999896,"y_acceleration":-4.581720000000004,"angular_acceleration":0.0},{"time":1.7900000000000014,"x":0.8921700676855475,"y":0.9901704324812508,"angle":0.0,"x_velocity":1.0862024160156256,"y_velocity":0.2649390187499989,"angular_velocity":0.0,"x_acceleration":-1.6028890624999903,"y_acceleration":-4.454414999999997,"angular_acceleration":0.0},{"time":1.8000000000000014,"x":0.8975812500000016,"y":0.9914400000000017,"angle":0.0,"x_velocity":1.0783124999999956,"y_velocity":0.2429999999999879,"angular_velocity":0.0,"x_acceleration":-1.5524999999999878,"y_acceleration":-4.3199999999999505,"angular_acceleration":0.0},{"time":1.8100000000000014,"x":0.9029536270800791,"y":0.9926015825187502,"angle":0.0,"x_velocity":1.070683228515625,"y_velocity":0.2217510187499947,"angular_velocity":0.0,"x_acceleration":-1.4986234374999867,"y_acceleration":-4.178384999999977,"angular_acceleration":0.0},{"time":1.8200000000000014,"x":0.9082885459375007,"y":0.9936587206,"angle":0.0,"x_velocity":1.0633321562499987,"y_velocity":0.20122829999999325,"angular_velocity":0.0,"x_acceleration":-1.4412124999999918,"y_acceleration":-4.02947999999995,"angular_acceleration":0.0},{"time":1.8300000000000014,"x":0.9135874419433594,"y":0.9946151370562495,"angle":0.0,"x_velocity":1.056277072265626,"y_velocity":0.1814685187499947,"angular_velocity":0.0,"x_acceleration":-1.3802203124999934,"y_acceleration":-3.8731949999999813,"angular_acceleration":0.0},{"time":1.8400000000000014,"x":0.9188518400000003,"y":0.9954747391999996,"angle":0.0,"x_velocity":1.0495359999999998,"y_velocity":0.16250880000000478,"angular_velocity":0.0,"x_acceleration":-1.3155999999999963,"y_acceleration":-3.7094399999999865,"angular_acceleration":0.0},{"time":1.8500000000000014,"x":0.9240833557128916,"y":0.9962416210937501,"angle":0.0,"x_velocity":1.0431271972656262,"y_velocity":0.14438671874999542,"angular_velocity":0.0,"x_acceleration":-1.247304687499991,"y_acceleration":-3.5381249999999653,"angular_acceleration":0.0},{"time":1.8600000000000014,"x":0.9292836965625009,"y":0.9969200657999995,"angle":0.0,"x_velocity":1.0370691562499967,"y_velocity":0.12714029999999354,"angular_velocity":0.0,"x_acceleration":-1.1752874999999818,"y_acceleration":-3.3591599999999744,"angular_acceleration":0.0},{"time":1.8700000000000014,"x":0.9344546630761723,"y":0.9975145476312504,"angle":0.0,"x_velocity":1.0313806035156237,"y_velocity":0.1108080187499958,"angular_velocity":0.0,"x_acceleration":-1.0995015624999809,"y_acceleration":-3.1724549999999567,"angular_acceleration":0.0},{"time":1.8800000000000014,"x":0.9395981500000015,"y":0.9980297344000011,"angle":0.0,"x_velocity":1.0260804999999973,"y_velocity":0.09542879999998988,"angular_velocity":0.0,"x_acceleration":-1.0198999999999927,"y_acceleration":-2.9779199999999832,"angular_acceleration":0.0},{"time":1.8900000000000015,"x":0.9447161474707038,"y":0.9984704896687511,"angle":0.0,"x_velocity":1.021188041015625,"y_velocity":0.08104201875000072,"angular_velocity":0.0,"x_acceleration":-0.9364359374999722,"y_acceleration":-2.7754649999999543,"angular_acceleration":0.0},{"time":1.9000000000000015,"x":0.9498107421875015,"y":0.9988418750000001,"angle":0.0,"x_velocity":1.016722656249998,"y_velocity":0.06768749999999102,"angular_velocity":0.0,"x_acceleration":-0.849062499999981,"y_acceleration":-2.564999999999955,"angular_acceleration":0.0},{"time":1.9100000000000015,"x":0.9548841185839851,"y":0.9991491522062503,"angle":0.0,"x_velocity":1.0127040097656241,"y_velocity":0.055405518749992666,"angular_velocity":0.0,"x_acceleration":-0.7577328124999738,"y_acceleration":-2.3464349999999428,"angular_acceleration":0.0},{"time":1.9200000000000015,"x":0.9599385600000008,"y":0.9993977856000011,"angle":0.0,"x_velocity":1.0091519999999967,"y_velocity":0.044236799999996634,"angular_velocity":0.0,"x_acceleration":-0.6623999999999839,"y_acceleration":-2.11967999999996,"angular_acceleration":0.0},{"time":1.9300000000000015,"x":0.9649764498535167,"y":0.9995934442437511,"angle":0.0,"x_velocity":1.0060867597656262,"y_velocity":0.03422251874999915,"angular_velocity":0.0,"x_acceleration":-0.5630171874999874,"y_acceleration":-1.8846449999999493,"angular_acceleration":0.0},{"time":1.9400000000000015,"x":0.9700002728125012,"y":0.9997420041999998,"angle":0.0,"x_velocity":1.0035286562499977,"y_velocity":0.025404299999994606,"angular_velocity":0.0,"x_acceleration":-0.45953749999998195,"y_acceleration":-1.6412399999999678,"angular_acceleration":0.0},{"time":1.9500000000000015,"x":0.9750126159667984,"y":0.999849550781251,"angle":0.0,"x_velocity":1.0014982910156238,"y_velocity":0.01782421875000395,"angular_velocity":0.0,"x_acceleration":-0.35191406249997925,"y_acceleration":-1.3893749999999443,"angular_acceleration":0.0},{"time":1.9600000000000015,"x":0.9800161700000003,"y":0.9999223807999993,"angle":0.0,"x_velocity":1.000016500000001,"y_velocity":0.011524800000003665,"angular_velocity":0.0,"x_acceleration":-0.2400999999999769,"y_acceleration":-1.1289599999999496,"angular_acceleration":0.0},{"time":1.9700000000000015,"x":0.9850137303613291,"y":0.9999670048187506,"angle":0.0,"x_velocity":0.9991043535156265,"y_velocity":0.006549018750000357,"angular_velocity":0.0,"x_acceleration":-0.12404843749998662,"y_acceleration":-0.8599049999999693,"angular_acceleration":0.0},{"time":1.9800000000000015,"x":0.9900081984375007,"y":0.9999901494000012,"angle":0.0,"x_velocity":0.9987831562499991,"y_velocity":0.0029402999999987856,"angular_velocity":0.0,"x_acceleration":-0.0037124999999846864,"y_acceleration":-0.5821199999999322,"angular_acceleration":0.0},{"time":1.9900000000000015,"x":0.9950025827246103,"y":0.9999987593562496,"angle":0.0,"x_velocity":0.9990744472656257,"y_velocity":0.0007425187500054165,"angular_velocity":0.0,"x_acceleration":0.12095468750001714,"y_acceleration":-0.2955149999999662,"angular_acceleration":0.0},{"time":2.0000000000000013,"x":1.0000000000000013,"y":1.0,"angle":0.0,"x_velocity":1.0000000000000004,"y_velocity":-5.324811110241815e-29,"angular_velocity":0.0,"x_acceleration":0.249999999999996,"y_acceleration":-7.993605777301096e-14,"angular_acceleration":0.0},{"time":2.010000000000001,"x":1.010012006225001,"y":0.9999901494,"angle":0.0,"x_velocity":1.0023524875000003,"y_velocity":-0.0029403000000006512,"angular_velocity":0.0,"x_acceleration":0.2207449999999968,"y_acceleration":-0.5821200000000631,"angular_acceleration":0.0},{"time":2.020000000000001,"x":1.020046099200001,"y":0.9999223808,"angle":0.0,"x_velocity":1.0044198000000002,"y_velocity":-0.011524800000001023,"angular_velocity":0.0,"x_acceleration":0.19295999999999755,"y_acceleration":-1.128960000000048,"angular_acceleration":0.0},{"time":2.0300000000000007,"x":1.0300995001750004,"y":0.9997420042,"angle":0.0,"x_velocity":1.0062164875000004,"y_velocity":-0.025404300000001143,"angular_velocity":0.0,"x_acceleration":0.16661499999999824,"y_acceleration":-1.6412400000000342,"angular_acceleration":0.0},{"time":2.0400000000000005,"x":1.0401695744000006,"y":0.9993977856,"angle":0.0,"x_velocity":1.0077568000000001,"y_velocity":-0.04423680000000102,"angular_velocity":0.0,"x_acceleration":0.14167999999999883,"y_acceleration":-2.119680000000022,"angular_acceleration":0.0},{"time":2.0500000000000003,"x":1.050253828125,"y":0.998841875,"angle":0.0,"x_velocity":1.0090546875,"y_velocity":-0.06768750000000068,"angular_velocity":0.0,"x_acceleration":0.11812499999999938,"y_acceleration":-2.5650000000000115,"angular_acceleration":0.0},{"time":2.06,"x":1.0603499056,"y":0.9980297344,"angle":0.0,"x_velocity":1.0101238000000001,"y_velocity":-0.09542880000000015,"angular_velocity":0.0,"x_acceleration":0.0959199999999999,"y_acceleration":-2.9779200000000023,"angular_acceleration":0.0},{"time":2.07,"x":1.0704555860749998,"y":0.9969200658,"angle":0.0,"x_velocity":1.0109774875000002,"y_velocity":-0.12714029999999948,"angular_velocity":0.0,"x_acceleration":0.07503500000000032,"y_acceleration":-3.359159999999994,"angular_acceleration":0.0},{"time":2.0799999999999996,"x":1.0805687807999995,"y":0.9954747392000001,"angle":0.0,"x_velocity":1.0116288000000002,"y_velocity":-0.16250879999999862,"angular_velocity":0.0,"x_acceleration":0.05544000000000071,"y_acceleration":-3.7094399999999874,"angular_acceleration":0.0},{"time":2.0899999999999994,"x":1.0906875300249994,"y":0.9936587206,"angle":0.0,"x_velocity":1.0120904875,"y_velocity":-0.20122829999999764,"angular_velocity":0.0,"x_acceleration":0.03710500000000104,"y_acceleration":-4.029479999999982,"angular_acceleration":0.0},{"time":2.099999999999999,"x":1.1008099999999994,"y":0.9914400000000002,"angle":0.0,"x_velocity":1.0123750000000002,"y_velocity":-0.24299999999999655,"angular_velocity":0.0,"x_acceleration":0.020000000000001322,"y_acceleration":-4.319999999999978,"angular_acceleration":0.0},{"time":2.109999999999999,"x":1.110934479974999,"y":0.9887895194000004,"angle":0.0,"x_velocity":1.0124944875000002,"y_velocity":-0.28753229999999536,"angular_velocity":0.0,"x_acceleration":0.004095000000001553,"y_acceleration":-4.581719999999975,"angular_acceleration":0.0},{"time":2.1199999999999988,"x":1.1210593791999988,"y":0.9856811008000004,"angle":0.0,"x_velocity":1.0124608000000002,"y_velocity":-0.33454079999999414,"angular_velocity":0.0,"x_acceleration":-0.010639999999998252,"y_acceleration":-4.8153599999999726,"angular_acceleration":0.0},{"time":2.1299999999999986,"x":1.1311832239249986,"y":0.9820913742000006,"angle":0.0,"x_velocity":1.0122854875,"y_velocity":-0.3837482999999928,"angular_velocity":0.0,"x_acceleration":-0.024234999999998123,"y_acceleration":-5.021639999999972,"angular_acceleration":0.0},{"time":2.1399999999999983,"x":1.1413046543999983,"y":0.9779997056000007,"angle":0.0,"x_velocity":1.0119798000000004,"y_velocity":-0.43488479999999147,"angular_velocity":0.0,"x_acceleration":-0.036719999999998004,"y_acceleration":-5.201279999999972,"angular_acceleration":0.0},{"time":2.149999999999998,"x":1.1514224218749982,"y":0.9733881250000009,"angle":0.0,"x_velocity":1.0115546875000003,"y_velocity":-0.48768749999999006,"angular_velocity":0.0,"x_acceleration":-0.048124999999997954,"y_acceleration":-5.354999999999974,"angular_acceleration":0.0},{"time":2.159999999999998,"x":1.161535385599998,"y":0.9682412544000011,"angle":0.0,"x_velocity":1.0110208,"y_velocity":-0.5419007999999885,"angular_velocity":0.0,"x_acceleration":-0.05847999999999796,"y_acceleration":-5.4835199999999755,"angular_acceleration":0.0},{"time":2.1699999999999977,"x":1.1716425098249976,"y":0.9625462358000013,"angle":0.0,"x_velocity":1.0103884875000002,"y_velocity":-0.5972762999999873,"angular_velocity":0.0,"x_acceleration":-0.06781499999999796,"y_acceleration":-5.5875599999999785,"angular_acceleration":0.0},{"time":2.1799999999999975,"x":1.1817428607999976,"y":0.9562926592000016,"angle":0.0,"x_velocity":1.0096678000000003,"y_velocity":-0.6535727999999857,"angular_velocity":0.0,"x_acceleration":-0.07615999999999803,"y_acceleration":-5.667839999999983,"angular_acceleration":0.0},{"time":2.1899999999999973,"x":1.1918356037749975,"y":0.9494724906000019,"angle":0.0,"x_velocity":1.0088684875000005,"y_velocity":-0.7105562999999845,"angular_velocity":0.0,"x_acceleration":-0.08354499999999809,"y_acceleration":-5.725079999999988,"angular_acceleration":0.0},{"time":2.199999999999997,"x":1.201919999999997,"y":0.9420800000000022,"angle":0.0,"x_velocity":1.0080000000000005,"y_velocity":-0.7679999999999831,"angular_velocity":0.0,"x_acceleration":-0.08999999999999822,"y_acceleration":-5.759999999999993,"angular_acceleration":0.0},{"time":2.209999999999997,"x":1.2119954037249967,"y":0.9341116894000026,"angle":0.0,"x_velocity":1.0070714875000004,"y_velocity":-0.8256842999999818,"angular_velocity":0.0,"x_acceleration":-0.09555499999999838,"y_acceleration":-5.77332,"angular_acceleration":0.0},{"time":2.2199999999999966,"x":1.2220612591999969,"y":0.9255662208000031,"angle":0.0,"x_velocity":1.0060918000000005,"y_velocity":-0.8833967999999806,"angular_velocity":0.0,"x_acceleration":-0.10023999999999861,"y_acceleration":-5.765760000000006,"angular_acceleration":0.0},{"time":2.2299999999999964,"x":1.2321170976749962,"y":0.9164443442000033,"angle":0.0,"x_velocity":1.0050694875000006,"y_velocity":-0.9409322999999794,"angular_velocity":0.0,"x_acceleration":-0.10408499999999879,"y_acceleration":-5.738040000000014,"angular_acceleration":0.0},{"time":2.239999999999996,"x":1.2421625343999965,"y":0.9067488256000038,"angle":0.0,"x_velocity":1.0040128000000004,"y_velocity":-0.9980927999999784,"angular_velocity":0.0,"x_acceleration":-0.10711999999999904,"y_acceleration":-5.690880000000023,"angular_acceleration":0.0},{"time":2.249999999999996,"x":1.252197265624996,"y":0.8964843750000042,"angle":0.0,"x_velocity":1.0029296875000004,"y_velocity":-1.0546874999999776,"angular_velocity":0.0,"x_acceleration":-0.10937499999999925,"y_acceleration":-5.625000000000029,"angular_acceleration":0.0},{"time":2.259999999999996,"x":1.2622210655999957,"y":0.8856575744000047,"angle":0.0,"x_velocity":1.0018278000000005,"y_velocity":-1.1105327999999766,"angular_velocity":0.0,"x_acceleration":-0.11087999999999953,"y_acceleration":-5.54112000000004,"angular_acceleration":0.0},{"time":2.2699999999999956,"x":1.2722337835749955,"y":0.8742768058000052,"angle":0.0,"x_velocity":1.0007144875000005,"y_velocity":-1.165452299999976,"angular_velocity":0.0,"x_acceleration":-0.1116649999999998,"y_acceleration":-5.439960000000049,"angular_acceleration":0.0},{"time":2.2799999999999954,"x":1.2822353407999951,"y":0.8623521792000057,"angle":0.0,"x_velocity":0.9995968000000007,"y_velocity":-1.2192767999999754,"angular_velocity":0.0,"x_acceleration":-0.11176000000000011,"y_acceleration":-5.3222400000000585,"angular_acceleration":0.0},{"time":2.289999999999995,"x":1.2922257275249953,"y":0.8498954606000062,"angle":0.0,"x_velocity":0.9984814875000008,"y_velocity":-1.271844299999975,"angular_velocity":0.0,"x_acceleration":-0.11119500000000039,"y_acceleration":-5.1886800000000655,"angular_acceleration":0.0},{"time":2.299999999999995,"x":1.302204999999995,"y":0.8369200000000068,"angle":0.0,"x_velocity":0.9973750000000008,"y_velocity":-1.3229999999999744,"angular_velocity":0.0,"x_acceleration":-0.11000000000000079,"y_acceleration":-5.040000000000078,"angular_acceleration":0.0},{"time":2.3099999999999947,"x":1.3121732774749946,"y":0.8234406594000072,"angle":0.0,"x_velocity":0.9962834875000006,"y_velocity":-1.3725962999999741,"angular_velocity":0.0,"x_acceleration":-0.1082050000000011,"y_acceleration":-4.876920000000087,"angular_acceleration":0.0},{"time":2.3199999999999945,"x":1.3221307391999946,"y":0.8094737408000077,"angle":0.0,"x_velocity":0.9952128000000008,"y_velocity":-1.4204927999999741,"angular_velocity":0.0,"x_acceleration":-0.10584000000000143,"y_acceleration":-4.700160000000098,"angular_acceleration":0.0},{"time":2.3299999999999943,"x":1.332077621424994,"y":0.7950369142000084,"angle":0.0,"x_velocity":0.9941684875000008,"y_velocity":-1.4665562999999742,"angular_velocity":0.0,"x_acceleration":-0.1029350000000018,"y_acceleration":-4.510440000000111,"angular_acceleration":0.0},{"time":2.339999999999994,"x":1.3420142143999942,"y":0.7801491456000089,"angle":0.0,"x_velocity":0.9931558000000007,"y_velocity":-1.5106607999999748,"angular_velocity":0.0,"x_acceleration":-0.0995200000000021,"y_acceleration":-4.308480000000118,"angular_acceleration":0.0},{"time":2.349999999999994,"x":1.351940859374994,"y":0.7648306250000094,"angle":0.0,"x_velocity":0.9921796875000007,"y_velocity":-1.5526874999999747,"angular_velocity":0.0,"x_acceleration":-0.0956250000000026,"y_acceleration":-4.095000000000134,"angular_acceleration":0.0},{"time":2.3599999999999937,"x":1.3618579455999937,"y":0.74910269440001,"angle":0.0,"x_velocity":0.9912448000000006,"y_velocity":-1.5925247999999754,"angular_velocity":0.0,"x_acceleration":-0.09128000000000289,"y_acceleration":-3.8707200000001434,"angular_acceleration":0.0},{"time":2.3699999999999934,"x":1.3717659073249935,"y":0.7329877758000107,"angle":0.0,"x_velocity":0.9903554875000008,"y_velocity":-1.6300682999999756,"angular_velocity":0.0,"x_acceleration":-0.08651500000000345,"y_acceleration":-3.636360000000156,"angular_acceleration":0.0},{"time":2.3799999999999932,"x":1.3816652207999935,"y":0.7165092992000113,"angle":0.0,"x_velocity":0.9895158000000007,"y_velocity":-1.6652207999999773,"angular_velocity":0.0,"x_acceleration":-0.08136000000000349,"y_acceleration":-3.3926400000001635,"angular_acceleration":0.0},{"time":2.389999999999993,"x":1.391556401274993,"y":0.6996916306000118,"angle":0.0,"x_velocity":0.9887294875000006,"y_velocity":-1.6978922999999777,"angular_velocity":0.0,"x_acceleration":-0.07584500000000405,"y_acceleration":-3.140280000000181,"angular_acceleration":0.0},{"time":2.399999999999993,"x":1.4014399999999931,"y":0.6825600000000124,"angle":0.0,"x_velocity":0.9880000000000005,"y_velocity":-1.7279999999999793,"angular_velocity":0.0,"x_acceleration":-0.07000000000000428,"y_acceleration":-2.8800000000001855,"angular_acceleration":0.0},{"time":2.4099999999999926,"x":1.4113166012249925,"y":0.6651404294000131,"angle":0.0,"x_velocity":0.9873304875000005,"y_velocity":-1.7554682999999809,"angular_velocity":0.0,"x_acceleration":-0.06385500000000455,"y_acceleration":-2.612520000000199,"angular_acceleration":0.0},{"time":2.4199999999999924,"x":1.4211868191999926,"y":0.6474596608000137,"angle":0.0,"x_velocity":0.9867238000000006,"y_velocity":-1.7802287999999824,"angular_velocity":0.0,"x_acceleration":-0.05744000000000493,"y_acceleration":-2.338560000000207,"angular_acceleration":0.0},{"time":2.429999999999992,"x":1.4310512951749925,"y":0.6295450842000141,"angle":0.0,"x_velocity":0.9861824875000006,"y_velocity":-1.8022202999999837,"angular_velocity":0.0,"x_acceleration":-0.05078500000000524,"y_acceleration":-2.0588400000002185,"angular_acceleration":0.0},{"time":2.439999999999992,"x":1.440910694399992,"y":0.6114246656000147,"angle":0.0,"x_velocity":0.9857088000000005,"y_velocity":-1.821388799999986,"angular_velocity":0.0,"x_acceleration":-0.043920000000005566,"y_acceleration":-1.774080000000227,"angular_acceleration":0.0},{"time":2.4499999999999917,"x":1.450765703124992,"y":0.593126875000015,"angle":0.0,"x_velocity":0.9853046875000004,"y_velocity":-1.837687499999988,"angular_velocity":0.0,"x_acceleration":-0.036875000000005875,"y_acceleration":-1.485000000000234,"angular_acceleration":0.0},{"time":2.4599999999999915,"x":1.4606170255999915,"y":0.5746806144000156,"angle":0.0,"x_velocity":0.9849718000000003,"y_velocity":-1.8510767999999898,"angular_velocity":0.0,"x_acceleration":-0.029680000000006146,"y_acceleration":-1.192320000000251,"angular_acceleration":0.0},{"time":2.4699999999999913,"x":1.4704653810749913,"y":0.5561151458000162,"angle":0.0,"x_velocity":0.9847114875000003,"y_velocity":-1.8615242999999912,"angular_velocity":0.0,"x_acceleration":-0.02236500000000674,"y_acceleration":-0.8967600000002633,"angular_acceleration":0.0},{"time":2.479999999999991,"x":1.4803115007999912,"y":0.5374600192000166,"angle":0.0,"x_velocity":0.9845248000000003,"y_velocity":-1.8690047999999941,"angular_velocity":0.0,"x_acceleration":-0.014960000000006746,"y_acceleration":-0.5990400000002669,"angular_acceleration":0.0},{"time":2.489999999999991,"x":1.490156125024991,"y":0.518745000600017,"angle":0.0,"x_velocity":0.9844124875000002,"y_velocity":-1.873500299999997,"angular_velocity":0.0,"x_acceleration":-0.007495000000006802,"y_acceleration":-0.2998800000002717,"angular_acceleration":0.0},{"time":2.4999999999999907,"x":1.499999999999991,"y":0.5000000000000175,"angle":0.0,"x_velocity":0.984375,"y_velocity":-1.8749999999999996,"angular_velocity":0.0,"x_acceleration":-6.994405055138486e-15,"y_acceleration":-2.7711166694643907e-13,"angular_acceleration":0.0},{"time":2.5099999999999905,"x":1.5098438749749905,"y":0.4812549994000179,"angle":0.0,"x_velocity":0.9844124875,"y_velocity":-1.8735003000000043,"angular_velocity":0.0,"x_acceleration":0.007494999999993257,"y_acceleration":0.2998799999997246,"angular_acceleration":0.0},{"time":2.5199999999999902,"x":1.5196884991999904,"y":0.4625399808000182,"angle":0.0,"x_velocity":0.9845248,"y_velocity":-1.869004800000007,"angular_velocity":0.0,"x_acceleration":0.014959999999992868,"y_acceleration":0.5990399999997145,"angular_acceleration":0.0},{"time":2.52999999999999,"x":1.5295346189249903,"y":0.4438848542000186,"angle":0.0,"x_velocity":0.9847114874999999,"y_velocity":-1.86152430000001,"angular_velocity":0.0,"x_acceleration":0.022364999999992752,"y_acceleration":0.896759999999702,"angular_acceleration":0.0},{"time":2.53999999999999,"x":1.5393829743999898,"y":0.4253193856000186,"angle":0.0,"x_velocity":0.9849717999999997,"y_velocity":-1.851076800000012,"angular_velocity":0.0,"x_acceleration":0.0296799999999926,"y_acceleration":1.192319999999711,"angular_acceleration":0.0},{"time":2.5499999999999896,"x":1.5492342968749897,"y":0.4068731250000192,"angle":0.0,"x_velocity":0.9853046874999997,"y_velocity":-1.8376875000000155,"angular_velocity":0.0,"x_acceleration":0.03687499999999244,"y_acceleration":1.484999999999701,"angular_acceleration":0.0},{"time":2.5599999999999894,"x":1.5590893055999897,"y":0.38857533440001957,"angle":0.0,"x_velocity":0.9857087999999996,"y_velocity":-1.821388800000019,"angular_velocity":0.0,"x_acceleration":0.04391999999999241,"y_acceleration":1.7740799999996995,"angular_acceleration":0.0},{"time":2.569999999999989,"x":1.5689487048249895,"y":0.37045491580001944,"angle":0.0,"x_velocity":0.9861824874999996,"y_velocity":-1.802220300000021,"angular_velocity":0.0,"x_acceleration":0.05078499999999231,"y_acceleration":2.058839999999691,"angular_acceleration":0.0},{"time":2.579999999999989,"x":1.578813180799989,"y":0.3525403392000197,"angle":0.0,"x_velocity":0.9867237999999994,"y_velocity":-1.7802288000000255,"angular_velocity":0.0,"x_acceleration":0.05743999999999294,"y_acceleration":2.3385599999997027,"angular_acceleration":0.0},{"time":2.5899999999999888,"x":1.5886833987749889,"y":0.33485957060001975,"angle":0.0,"x_velocity":0.9873304874999995,"y_velocity":-1.7554683000000302,"angular_velocity":0.0,"x_acceleration":0.06385499999999333,"y_acceleration":2.612519999999698,"angular_acceleration":0.0},{"time":2.5999999999999885,"x":1.5985599999999887,"y":0.3174400000000195,"angle":0.0,"x_velocity":0.9879999999999993,"y_velocity":-1.728000000000034,"angular_velocity":0.0,"x_acceleration":0.06999999999999318,"y_acceleration":2.8799999999996935,"angular_acceleration":0.0},{"time":2.6099999999999883,"x":1.6084435987249885,"y":0.3003083694000198,"angle":0.0,"x_velocity":0.9887294874999993,"y_velocity":-1.6978923000000359,"angular_velocity":0.0,"x_acceleration":0.07584499999999328,"y_acceleration":3.1402799999997058,"angular_acceleration":0.0},{"time":2.619999999999988,"x":1.6183347791999882,"y":0.2834907008000196,"angle":0.0,"x_velocity":0.9895157999999991,"y_velocity":-1.6652208000000392,"angular_velocity":0.0,"x_acceleration":0.08135999999999366,"y_acceleration":3.3926399999997088,"angular_acceleration":0.0},{"time":2.629999999999988,"x":1.6282340926749879,"y":0.2670122242000196,"angle":0.0,"x_velocity":0.990355487499999,"y_velocity":-1.6300683000000458,"angular_velocity":0.0,"x_acceleration":0.08651499999999412,"y_acceleration":3.636359999999719,"angular_acceleration":0.0},{"time":2.6399999999999877,"x":1.6381420543999878,"y":0.25089730560001944,"angle":0.0,"x_velocity":0.991244799999999,"y_velocity":-1.5925248000000476,"angular_velocity":0.0,"x_acceleration":0.09127999999999448,"y_acceleration":3.8707199999997215,"angular_acceleration":0.0},{"time":2.6499999999999875,"x":1.6480591406249878,"y":0.23516937500001944,"angle":0.0,"x_velocity":0.9921796874999991,"y_velocity":-1.5526875000000526,"angular_velocity":0.0,"x_acceleration":0.09562499999999496,"y_acceleration":4.094999999999729,"angular_acceleration":0.0},{"time":2.6599999999999873,"x":1.6579857855999873,"y":0.2198508544000195,"angle":0.0,"x_velocity":0.9931557999999987,"y_velocity":-1.5106608000000552,"angular_velocity":0.0,"x_acceleration":0.09951999999999539,"y_acceleration":4.30847999999974,"angular_acceleration":0.0},{"time":2.669999999999987,"x":1.667922378574987,"y":0.20496308580001887,"angle":0.0,"x_velocity":0.9941684874999989,"y_velocity":-1.4665563000000548,"angular_velocity":0.0,"x_acceleration":0.10293499999999556,"y_acceleration":4.510439999999733,"angular_acceleration":0.0},{"time":2.679999999999987,"x":1.6778692607999868,"y":0.19052625920001864,"angle":0.0,"x_velocity":0.9952127999999987,"y_velocity":-1.420492800000062,"angular_velocity":0.0,"x_acceleration":0.1058399999999966,"y_acceleration":4.700159999999755,"angular_acceleration":0.0},{"time":2.6899999999999866,"x":1.6878267225249868,"y":0.17655934060001832,"angle":0.0,"x_velocity":0.9962834874999988,"y_velocity":-1.3725963000000654,"angular_velocity":0.0,"x_acceleration":0.10820499999999744,"y_acceleration":4.876919999999778,"angular_acceleration":0.0},{"time":2.6999999999999864,"x":1.6977949999999866,"y":0.16308000000001854,"angle":0.0,"x_velocity":0.9973749999999986,"y_velocity":-1.3230000000000732,"angular_velocity":0.0,"x_acceleration":0.1099999999999981,"y_acceleration":5.0399999999998,"angular_acceleration":0.0},{"time":2.709999999999986,"x":1.707774272474986,"y":0.15010453940001733,"angle":0.0,"x_velocity":0.9984814874999985,"y_velocity":-1.2718443000000708,"angular_velocity":0.0,"x_acceleration":0.11119499999999882,"y_acceleration":5.188679999999806,"angular_acceleration":0.0},{"time":2.719999999999986,"x":1.717764659199986,"y":0.13764782080001847,"angle":0.0,"x_velocity":0.9995967999999984,"y_velocity":-1.2192768000000758,"angular_velocity":0.0,"x_acceleration":0.11175999999999942,"y_acceleration":5.32223999999983,"angular_acceleration":0.0},{"time":2.7299999999999858,"x":1.7277662164249858,"y":0.1257231942000161,"angle":0.0,"x_velocity":1.0007144874999985,"y_velocity":-1.1654523000000783,"angular_velocity":0.0,"x_acceleration":0.11166500000000079,"y_acceleration":5.439959999999857,"angular_acceleration":0.0},{"time":2.7399999999999856,"x":1.7377789343999854,"y":0.11434242560001628,"angle":0.0,"x_velocity":1.0018277999999987,"y_velocity":-1.110532800000076,"angular_velocity":0.0,"x_acceleration":0.1108800000000012,"y_acceleration":5.541119999999857,"angular_acceleration":0.0},{"time":2.7499999999999853,"x":1.7478027343749853,"y":0.10351562500001554,"angle":0.0,"x_velocity":1.0029296874999984,"y_velocity":-1.05468750000008,"angular_velocity":0.0,"x_acceleration":0.10937500000000222,"y_acceleration":5.624999999999893,"angular_acceleration":0.0},{"time":2.759999999999985,"x":1.757837465599985,"y":0.09325117440001485,"angle":0.0,"x_velocity":1.0040127999999986,"y_velocity":-0.9980928000000873,"angular_velocity":0.0,"x_acceleration":0.10712000000000366,"y_acceleration":5.690879999999915,"angular_acceleration":0.0},{"time":2.769999999999985,"x":1.767882902324985,"y":0.08355565580001567,"angle":0.0,"x_velocity":1.0050694874999984,"y_velocity":-0.9409323000000871,"angular_velocity":0.0,"x_acceleration":0.10408500000000531,"y_acceleration":5.7380399999999625,"angular_acceleration":0.0},{"time":2.7799999999999847,"x":1.7779387407999847,"y":0.07443377920001382,"angle":0.0,"x_velocity":1.0060917999999985,"y_velocity":-0.8833968000000905,"angular_velocity":0.0,"x_acceleration":0.10024000000000655,"y_acceleration":5.765759999999993,"angular_acceleration":0.0},{"time":2.7899999999999845,"x":1.7880045962749844,"y":0.06588831060001343,"angle":0.0,"x_velocity":1.0070714874999986,"y_velocity":-0.8256843000000931,"angular_velocity":0.0,"x_acceleration":0.0955550000000076,"y_acceleration":5.773320000000005,"angular_acceleration":0.0},{"time":2.7999999999999843,"x":1.7980799999999844,"y":0.05792000000001174,"angle":0.0,"x_velocity":1.0079999999999987,"y_velocity":-0.7680000000000913,"angular_velocity":0.0,"x_acceleration":0.09000000000000874,"y_acceleration":5.7600000000000335,"angular_acceleration":0.0},{"time":2.809999999999984,"x":1.8081643962249838,"y":0.050527509400011716,"angle":0.0,"x_velocity":1.0088684874999987,"y_velocity":-0.7105563000000927,"angular_velocity":0.0,"x_acceleration":0.08354500000001108,"y_acceleration":5.7250800000000766,"angular_acceleration":0.0},{"time":2.819999999999984,"x":1.8182571391999838,"y":0.04370734080001215,"angle":0.0,"x_velocity":1.0096677999999986,"y_velocity":-0.6535728000000987,"angular_velocity":0.0,"x_acceleration":0.0761600000000131,"y_acceleration":5.667840000000112,"angular_acceleration":0.0},{"time":2.8299999999999836,"x":1.8283574901749835,"y":0.037453764200009676,"angle":0.0,"x_velocity":1.0103884874999989,"y_velocity":-0.5972763000000967,"angular_velocity":0.0,"x_acceleration":0.06781500000001506,"y_acceleration":5.587560000000167,"angular_acceleration":0.0},{"time":2.8399999999999834,"x":1.8384646143999834,"y":0.03175874560000924,"angle":0.0,"x_velocity":1.0110207999999992,"y_velocity":-0.5419008000000911,"angular_velocity":0.0,"x_acceleration":0.0584800000000163,"y_acceleration":5.483520000000212,"angular_acceleration":0.0},{"time":2.849999999999983,"x":1.8485775781249831,"y":0.026611875000008833,"angle":0.0,"x_velocity":1.0115546874999994,"y_velocity":-0.4876875000000922,"angular_velocity":0.0,"x_acceleration":0.0481250000000184,"y_acceleration":5.355000000000246,"angular_acceleration":0.0},{"time":2.859999999999983,"x":1.8586953455999828,"y":0.022000294400009057,"angle":0.0,"x_velocity":1.0119797999999993,"y_velocity":-0.4348848000000949,"angular_velocity":0.0,"x_acceleration":0.03672000000002029,"y_acceleration":5.2012800000002954,"angular_acceleration":0.0},{"time":2.869999999999983,"x":1.8688167760749825,"y":0.017908625800007627,"angle":0.0,"x_velocity":1.0122854874999998,"y_velocity":-0.38374830000008586,"angular_velocity":0.0,"x_acceleration":0.024235000000021767,"y_acceleration":5.021640000000318,"angular_acceleration":0.0},{"time":2.8799999999999826,"x":1.8789406207999824,"y":0.014318899200005397,"angle":0.0,"x_velocity":1.0124608,"y_velocity":-0.33454080000008446,"angular_velocity":0.0,"x_acceleration":0.010640000000024408,"y_acceleration":4.815360000000382,"angular_acceleration":0.0},{"time":2.8899999999999824,"x":1.8890655200249824,"y":0.01121048060000529,"angle":0.0,"x_velocity":1.0124944875000002,"y_velocity":-0.28753230000008045,"angular_velocity":0.0,"x_acceleration":-0.004094999999972426,"y_acceleration":4.581720000000431,"angular_acceleration":0.0},{"time":2.899999999999982,"x":1.899189999999982,"y":0.008560000000003676,"angle":0.0,"x_velocity":1.0123750000000002,"y_velocity":-0.24300000000008026,"angular_velocity":0.0,"x_acceleration":-0.01999999999996982,"y_acceleration":4.320000000000505,"angular_acceleration":0.0},{"time":2.909999999999982,"x":1.9093124699749817,"y":0.00634127940000262,"angle":0.0,"x_velocity":1.012090487500001,"y_velocity":-0.20122830000006786,"angular_velocity":0.0,"x_acceleration":-0.03710499999996841,"y_acceleration":4.029480000000547,"angular_acceleration":0.0},{"time":2.9199999999999817,"x":1.9194312191999814,"y":0.004525260800001263,"angle":0.0,"x_velocity":1.0116288000000013,"y_velocity":-0.16250880000006163,"angular_velocity":0.0,"x_acceleration":-0.05543999999996485,"y_acceleration":3.7094400000005976,"angular_acceleration":0.0},{"time":2.9299999999999815,"x":1.9295444139249815,"y":0.003079934200003187,"angle":0.0,"x_velocity":1.0109774875000015,"y_velocity":-0.1271403000000575,"angular_velocity":0.0,"x_acceleration":-0.07503499999996288,"y_acceleration":3.3591600000006707,"angular_acceleration":0.0},{"time":2.9399999999999813,"x":1.9396500943999813,"y":0.001970265600001575,"angle":0.0,"x_velocity":1.010123800000002,"y_velocity":-0.09542880000005027,"angular_velocity":0.0,"x_acceleration":-0.0959199999999596,"y_acceleration":2.9779200000007506,"angular_acceleration":0.0},{"time":2.949999999999981,"x":1.9497461718749807,"y":0.001158125000000787,"angle":0.0,"x_velocity":1.0090546875000026,"y_velocity":-0.06768750000005141,"angular_velocity":0.0,"x_acceleration":-0.11812499999995651,"y_acceleration":2.5650000000008077,"angular_acceleration":0.0},{"time":2.959999999999981,"x":1.9598304255999803,"y":0.0006022144000015217,"angle":0.0,"x_velocity":1.0077568000000032,"y_velocity":-0.04423680000003216,"angular_velocity":0.0,"x_acceleration":-0.14167999999995384,"y_acceleration":2.1196800000008693,"angular_acceleration":0.0},{"time":2.9699999999999807,"x":1.9699004998249807,"y":0.00025799580000107625,"angle":0.0,"x_velocity":1.006216487500003,"y_velocity":-0.025404300000033686,"angular_velocity":0.0,"x_acceleration":-0.16661499999994955,"y_acceleration":1.641240000000991,"angular_acceleration":0.0},{"time":2.9799999999999804,"x":1.9799539007999802,"y":0.00007761919999982325,"angle":0.0,"x_velocity":1.004419800000004,"y_velocity":-0.011524800000021429,"angular_velocity":0.0,"x_acceleration":-0.19295999999994784,"y_acceleration":1.1289600000010154,"angular_acceleration":0.0},{"time":2.9899999999999802,"x":1.98998799377498,"y":0.00000985059999969451,"angle":0.0,"x_velocity":1.0023524875000047,"y_velocity":-0.002940300000005891,"angular_velocity":0.0,"x_acceleration":-0.22074499999994313,"y_acceleration":0.5821200000011117,"angular_acceleration":0.0},{"time":2.99999999999998,"x":1.99999999999998,"y":8.881784197001252e-16,"angle":0.0,"x_velocity":1.0000000000000049,"y_velocity":3.552713678800501e-15,"angular_velocity":0.0,"x_acceleration":-0.2499999999999396,"y_acceleration":1.2079226507921703e-12,"angular_acceleration":0.0},{"time":3.00999999999998,"x":2.00999180156248,"y":0.000009850599999940616,"angle":0.0,"x_velocity":0.99878315625,"y_velocity":0.002940299999988243,"angular_velocity":0.0,"x_acceleration":0.0037124999995051945,"y_acceleration":0.5821199999988601,"angular_acceleration":0.0},{"time":3.0199999999999796,"x":2.0199838299999797,"y":0.00007761919999976477,"angle":0.0,"x_velocity":1.000016499999995,"y_velocity":0.011524799999976956,"angular_velocity":0.0,"x_acceleration":0.24009999999953496,"y_acceleration":1.1289599999989193,"angular_acceleration":0.0},{"time":3.0299999999999794,"x":2.0299997271874792,"y":0.0002579957999994761,"angle":0.0,"x_velocity":1.0035286562499905,"y_velocity":0.025404299999966153,"angular_velocity":0.0,"x_acceleration":0.45953749999956467,"y_acceleration":1.6412399999989786,"angular_acceleration":0.0},{"time":3.039999999999979,"x":2.040061439999979,"y":0.0006022143999990782,"angle":0.0,"x_velocity":1.009151999999986,"y_velocity":0.044236799999955834,"angular_velocity":0.0,"x_acceleration":0.6623999999995944,"y_acceleration":2.119679999999038,"angular_acceleration":0.0},{"time":3.049999999999979,"x":2.050189257812479,"y":0.001158124999998575,"angle":0.0,"x_velocity":1.016722656249982,"y_velocity":0.06768749999994601,"angular_velocity":0.0,"x_acceleration":0.849062499999624,"y_acceleration":2.564999999999097,"angular_acceleration":0.0},{"time":3.0599999999999787,"x":2.0604018499999777,"y":0.0019702655999979707,"angle":0.0,"x_velocity":1.0260804999999784,"y_velocity":0.09542879999993668,"angular_velocity":0.0,"x_acceleration":1.0198999999996534,"y_acceleration":2.9779199999991564,"angular_acceleration":0.0},{"time":3.0699999999999785,"x":2.070716303437478,"y":0.0030799341999972695,"angle":0.0,"x_velocity":1.037069156249975,"y_velocity":0.12714029999992787,"angular_velocity":0.0,"x_acceleration":1.1752874999996827,"y_acceleration":3.359159999999215,"angular_acceleration":0.0},{"time":3.0799999999999783,"x":2.0811481599999775,"y":0.004525260799996475,"angle":0.0,"x_velocity":1.0495359999999714,"y_velocity":0.16250879999991955,"angular_velocity":0.0,"x_acceleration":1.3155999999997119,"y_acceleration":3.7094399999992733,"angular_acceleration":0.0},{"time":3.089999999999978,"x":2.0917114540624766,"y":0.006341279399995593,"angle":0.0,"x_velocity":1.0633321562499685,"y_velocity":0.20122829999991176,"angular_velocity":0.0,"x_acceleration":1.4412124999997407,"y_acceleration":4.029479999999332,"angular_acceleration":0.0},{"time":3.099999999999978,"x":2.1024187499999765,"y":0.008559999999994626,"angle":0.0,"x_velocity":1.0783124999999658,"y_velocity":0.24299999999990446,"angular_velocity":0.0,"x_acceleration":1.5524999999997695,"y_acceleration":4.319999999999389,"angular_acceleration":0.0},{"time":3.1099999999999777,"x":2.1132811796874753,"y":0.01121048059999358,"angle":0.0,"x_velocity":1.094335656249963,"y_velocity":0.28753229999989766,"angular_velocity":0.0,"x_acceleration":1.6498374999997982,"y_acceleration":4.5817199999994465,"angular_acceleration":0.0},{"time":3.1199999999999775,"x":2.124308479999975,"y":0.014318899199992458,"angle":0.0,"x_velocity":1.1112639999999607,"y_velocity":0.33454079999989145,"angular_velocity":0.0,"x_acceleration":1.7335999999998262,"y_acceleration":4.8153599999995045,"angular_acceleration":0.0},{"time":3.1299999999999772,"x":2.1355090303124746,"y":0.017908625799991265,"angle":0.0,"x_velocity":1.128963656249959,"y_velocity":0.3837482999998857,"angular_velocity":0.0,"x_acceleration":1.8041624999998542,"y_acceleration":5.021639999999561,"angular_acceleration":0.0},{"time":3.139999999999977,"x":2.1468898899999735,"y":0.022000294399990017,"angle":0.0,"x_velocity":1.147304499999957,"y_velocity":0.4348847999998806,"angular_velocity":0.0,"x_acceleration":1.8618999999998818,"y_acceleration":5.201279999999618,"angular_acceleration":0.0},{"time":3.149999999999977,"x":2.158456835937473,"y":0.026611874999988697,"angle":0.0,"x_velocity":1.1661601562499557,"y_velocity":0.4876874999998758,"angular_velocity":0.0,"x_acceleration":1.9071874999999094,"y_acceleration":5.354999999999673,"angular_acceleration":0.0},{"time":3.1599999999999766,"x":2.1702143999999723,"y":0.03175874559998733,"angle":0.0,"x_velocity":1.1854079999999545,"y_velocity":0.5419007999998717,"angular_velocity":0.0,"x_acceleration":1.940399999999936,"y_acceleration":5.483519999999729,"angular_acceleration":0.0},{"time":3.1699999999999764,"x":2.1821659065624717,"y":0.037453764199985896,"angle":0.0,"x_velocity":1.2049291562499536,"y_velocity":0.5972762999998681,"angular_velocity":0.0,"x_acceleration":1.9619124999999629,"y_acceleration":5.587559999999783,"angular_acceleration":0.0},{"time":3.179999999999976,"x":2.1943135099999704,"y":0.04370734079998443,"angle":0.0,"x_velocity":1.224608499999953,"y_velocity":0.653572799999865,"angular_velocity":0.0,"x_acceleration":1.9720999999999886,"y_acceleration":5.667839999999837,"angular_acceleration":0.0},{"time":3.189999999999976,"x":2.20665823218747,"y":0.050527509399982934,"angle":0.0,"x_velocity":1.2443346562499527,"y_velocity":0.7105562999998625,"angular_velocity":0.0,"x_acceleration":1.9713375000000146,"y_acceleration":5.725079999999888,"angular_acceleration":0.0},{"time":3.1999999999999758,"x":2.219199999999969,"y":0.057919999999981375,"angle":0.0,"x_velocity":1.2639999999999527,"y_velocity":0.7679999999998605,"angular_velocity":0.0,"x_acceleration":1.9600000000000397,"y_acceleration":5.759999999999941,"angular_acceleration":0.0},{"time":3.2099999999999755,"x":2.231937682812469,"y":0.0658883105999798,"angle":0.0,"x_velocity":1.2835006562499525,"y_velocity":0.8256842999998588,"angular_velocity":0.0,"x_acceleration":1.9384625000000653,"y_acceleration":5.773319999999995,"angular_acceleration":0.0},{"time":3.2199999999999753,"x":2.2448691299999677,"y":0.0744337791999782,"angle":0.0,"x_velocity":1.302736499999953,"y_velocity":0.8833967999998579,"angular_velocity":0.0,"x_acceleration":1.9071000000000886,"y_acceleration":5.765760000000044,"angular_acceleration":0.0},{"time":3.229999999999975,"x":2.2579912084374674,"y":0.08355565579997658,"angle":0.0,"x_velocity":1.3216111562499533,"y_velocity":0.9409322999998571,"angular_velocity":0.0,"x_acceleration":1.8662875000001131,"y_acceleration":5.738040000000095,"angular_acceleration":0.0},{"time":3.239999999999975,"x":2.2712998399999664,"y":0.09325117439997495,"angle":0.0,"x_velocity":1.3400319999999546,"y_velocity":0.9980927999998573,"angular_velocity":0.0,"x_acceleration":1.8164000000001357,"y_acceleration":5.690880000000142,"angular_acceleration":0.0},{"time":3.2499999999999747,"x":2.284790039062466,"y":0.1035156249999733,"angle":0.0,"x_velocity":1.3579101562499554,"y_velocity":1.0546874999998577,"angular_velocity":0.0,"x_acceleration":1.757812500000159,"y_acceleration":5.625000000000189,"angular_acceleration":0.0},{"time":3.2599999999999745,"x":2.2984559499999646,"y":0.11434242559997165,"angle":0.0,"x_velocity":1.3751604999999567,"y_velocity":1.1105327999998584,"angular_velocity":0.0,"x_acceleration":1.6909000000001806,"y_acceleration":5.541120000000237,"angular_acceleration":0.0},{"time":3.2699999999999743,"x":2.312290884687464,"y":0.12572319419997002,"angle":0.0,"x_velocity":1.3917016562499585,"y_velocity":1.16545229999986,"angular_velocity":0.0,"x_acceleration":1.616037500000202,"y_acceleration":5.43996000000028,"angular_acceleration":0.0},{"time":3.279999999999974,"x":2.326287359999964,"y":0.13764782079996835,"angle":0.0,"x_velocity":1.4074559999999603,"y_velocity":1.2192767999998617,"angular_velocity":0.0,"x_acceleration":1.5336000000002232,"y_acceleration":5.322240000000325,"angular_acceleration":0.0},{"time":3.289999999999974,"x":2.340437135312463,"y":0.15010453939996674,"angle":0.0,"x_velocity":1.422349656249962,"y_velocity":1.2718442999998638,"angular_velocity":0.0,"x_acceleration":1.4439625000002445,"y_acceleration":5.18868000000037,"angular_acceleration":0.0},{"time":3.2999999999999736,"x":2.354731249999962,"y":0.16307999999996514,"angle":0.0,"x_velocity":1.4363124999999641,"y_velocity":1.3229999999998667,"angular_velocity":0.0,"x_acceleration":1.347500000000264,"y_acceleration":5.040000000000411,"angular_acceleration":0.0},{"time":3.3099999999999734,"x":2.3691600609374617,"y":0.1765593405999635,"angle":0.0,"x_velocity":1.4492781562499666,"y_velocity":1.3725962999998702,"angular_velocity":0.0,"x_acceleration":1.244587500000281,"y_acceleration":4.876920000000451,"angular_acceleration":0.0},{"time":3.319999999999973,"x":2.3837132799999607,"y":0.19052625919996186,"angle":0.0,"x_velocity":1.4611839999999694,"y_velocity":1.4204927999998738,"angular_velocity":0.0,"x_acceleration":1.1356000000003004,"y_acceleration":4.70016000000049,"angular_acceleration":0.0},{"time":3.329999999999973,"x":2.3983800115624607,"y":0.20496308579996037,"angle":0.0,"x_velocity":1.4719711562499722,"y_velocity":1.4665562999998782,"angular_velocity":0.0,"x_acceleration":1.0209125000003176,"y_acceleration":4.5104400000005285,"angular_acceleration":0.0},{"time":3.3399999999999728,"x":2.4131487899999593,"y":0.21985085439995888,"angle":0.0,"x_velocity":1.4815844999999754,"y_velocity":1.510660799999883,"angular_velocity":0.0,"x_acceleration":0.9009000000003335,"y_acceleration":4.308480000000564,"angular_acceleration":0.0},{"time":3.3499999999999726,"x":2.4280076171874594,"y":0.2351693749999574,"angle":0.0,"x_velocity":1.4899726562499784,"y_velocity":1.5526874999998876,"angular_velocity":0.0,"x_acceleration":0.7759375000003481,"y_acceleration":4.0950000000005975,"angular_acceleration":0.0},{"time":3.3599999999999723,"x":2.442943999999959,"y":0.250897305599956,"angle":0.0,"x_velocity":1.4970879999999824,"y_velocity":1.5925247999998935,"angular_velocity":0.0,"x_acceleration":0.6464000000003631,"y_acceleration":3.870720000000631,"angular_acceleration":0.0},{"time":3.369999999999972,"x":2.457944987812458,"y":0.2670122241999546,"angle":0.0,"x_velocity":1.5028866562499854,"y_velocity":1.6300682999998983,"angular_velocity":0.0,"x_acceleration":0.512662500000379,"y_acceleration":3.636360000000666,"angular_acceleration":0.0},{"time":3.379999999999972,"x":2.4729972099999578,"y":0.2834907007999532,"angle":0.0,"x_velocity":1.5073284999999896,"y_velocity":1.6652207999999045,"angular_velocity":0.0,"x_acceleration":0.375100000000391,"y_acceleration":3.3926400000006964,"angular_acceleration":0.0},{"time":3.3899999999999717,"x":2.488086913437457,"y":0.300308369399952,"angle":0.0,"x_velocity":1.5103771562499932,"y_velocity":1.6978922999999118,"angular_velocity":0.0,"x_acceleration":0.23408750000040257,"y_acceleration":3.1402800000007263,"angular_acceleration":0.0},{"time":3.3999999999999715,"x":2.5031999999999566,"y":0.3174399999999507,"angle":0.0,"x_velocity":1.5119999999999973,"y_velocity":1.7279999999999178,"angular_velocity":0.0,"x_acceleration":0.09000000000041464,"y_acceleration":2.8800000000007477,"angular_acceleration":0.0},{"time":3.4099999999999713,"x":2.518322064062456,"y":0.33485957059994953,"angle":0.0,"x_velocity":1.512168156250002,"y_velocity":1.7554682999999263,"angular_velocity":0.0,"x_acceleration":-0.056787499999575,"y_acceleration":2.6125200000007744,"angular_acceleration":0.0},{"time":3.419999999999971,"x":2.5334384299999564,"y":0.35254033919994837,"angle":0.0,"x_velocity":1.5108565000000058,"y_velocity":1.7802287999999324,"angular_velocity":0.0,"x_acceleration":-0.20589999999956632,"y_acceleration":2.338560000000797,"angular_acceleration":0.0},{"time":3.429999999999971,"x":2.548534189687456,"y":0.3704549157999475,"angle":0.0,"x_velocity":1.5080436562500097,"y_velocity":1.8022202999999395,"angular_velocity":0.0,"x_acceleration":-0.35696249999955576,"y_acceleration":2.0588400000008242,"angular_acceleration":0.0},{"time":3.4399999999999706,"x":2.5635942399999556,"y":0.3885753343999465,"angle":0.0,"x_velocity":1.503712000000015,"y_velocity":1.8213887999999492,"angular_velocity":0.0,"x_acceleration":-0.5095999999995495,"y_acceleration":1.7740800000008363,"angular_acceleration":0.0},{"time":3.4499999999999704,"x":2.5786033203124554,"y":0.40687312499994566,"angle":0.0,"x_velocity":1.4978476562500194,"y_velocity":1.8376874999999564,"angular_velocity":0.0,"x_acceleration":-0.6634374999995414,"y_acceleration":1.4850000000008592,"angular_acceleration":0.0},{"time":3.45999999999997,"x":2.5935460499999556,"y":0.42531938559994487,"angle":0.0,"x_velocity":1.4904405000000245,"y_velocity":1.8510767999999638,"angular_velocity":0.0,"x_acceleration":-0.8180999999995384,"y_acceleration":1.1923200000008798,"angular_acceleration":0.0},{"time":3.46999999999997,"x":2.6084069659374554,"y":0.44388485419994406,"angle":0.0,"x_velocity":1.4814841562500294,"y_velocity":1.8615242999999724,"angular_velocity":0.0,"x_acceleration":-0.9732124999995344,"y_acceleration":0.8967600000008904,"angular_acceleration":0.0},{"time":3.47999999999997,"x":2.6231705599999557,"y":0.4625399807999434,"angle":0.0,"x_velocity":1.4709760000000345,"y_velocity":1.869004799999983,"angular_velocity":0.0,"x_acceleration":-1.1283999999995329,"y_acceleration":0.5990400000008993,"angular_acceleration":0.0},{"time":3.4899999999999696,"x":2.637821316562456,"y":0.4812549993999431,"angle":0.0,"x_velocity":1.4589171562500391,"y_velocity":1.87350029999999,"angular_velocity":0.0,"x_acceleration":-1.2832874999995258,"y_acceleration":0.2998800000009183,"angular_acceleration":0.0},{"time":3.4999999999999694,"x":2.652343749999956,"y":0.49999999999994255,"angle":0.0,"x_velocity":1.4453125000000444,"y_velocity":1.8749999999999996,"angular_velocity":0.0,"x_acceleration":-1.4374999999995302,"y_acceleration":9.166001291305292e-13,"angular_acceleration":0.0},{"time":3.509999999999969,"x":2.666722442187456,"y":0.5187450005999421,"angle":0.0,"x_velocity":1.4301706562500494,"y_velocity":1.8735003000000088,"angular_velocity":0.0,"x_acceleration":-1.5906624999995316,"y_acceleration":-0.299879999999078,"angular_acceleration":0.0},{"time":3.519999999999969,"x":2.6809420799999564,"y":0.5374600191999417,"angle":0.0,"x_velocity":1.4135040000000547,"y_velocity":1.8690048000000203,"angular_velocity":0.0,"x_acceleration":-1.742399999999531,"y_acceleration":-0.5990399999990714,"angular_acceleration":0.0},{"time":3.5299999999999687,"x":2.6949874928124564,"y":0.5561151457999418,"angle":0.0,"x_velocity":1.395328656250059,"y_velocity":1.8615243000000268,"angular_velocity":0.0,"x_acceleration":-1.8923374999995328,"y_acceleration":-0.8967599999990696,"angular_acceleration":0.0},{"time":3.5399999999999685,"x":2.7088436899999566,"y":0.5746806143999419,"angle":0.0,"x_velocity":1.3756645000000642,"y_velocity":1.8510768000000373,"angular_velocity":0.0,"x_acceleration":-2.040099999999539,"y_acceleration":-1.1923199999990786,"angular_acceleration":0.0},{"time":3.5499999999999683,"x":2.7224958984374568,"y":0.5931268749999419,"angle":0.0,"x_velocity":1.3545351562500696,"y_velocity":1.837687500000047,"angular_velocity":0.0,"x_acceleration":-2.1853124999995455,"y_acceleration":-1.4849999999990757,"angular_acceleration":0.0},{"time":3.559999999999968,"x":2.7359295999999573,"y":0.6114246655999418,"angle":0.0,"x_velocity":1.3319680000000749,"y_velocity":1.8213888000000567,"angular_velocity":0.0,"x_acceleration":-2.327599999999551,"y_acceleration":-1.7740799999990813,"angular_acceleration":0.0},{"time":3.569999999999968,"x":2.7491305690624577,"y":0.6295450841999422,"angle":0.0,"x_velocity":1.307994156250079,"y_velocity":1.8022203000000672,"angular_velocity":0.0,"x_acceleration":-2.4665874999995623,"y_acceleration":-2.058839999999101,"angular_acceleration":0.0},{"time":3.5799999999999677,"x":2.7620849099999583,"y":0.6474596607999421,"angle":0.0,"x_velocity":1.2826485000000838,"y_velocity":1.7802288000000757,"angular_velocity":0.0,"x_acceleration":-2.6018999999995653,"y_acceleration":-2.3385599999990987,"angular_acceleration":0.0},{"time":3.5899999999999674,"x":2.774779094687459,"y":0.6651404293999424,"angle":0.0,"x_velocity":1.2559696562500886,"y_velocity":1.7554683000000857,"angular_velocity":0.0,"x_acceleration":-2.733162499999583,"y_acceleration":-2.6125199999991295,"angular_acceleration":0.0},{"time":3.5999999999999672,"x":2.78719999999996,"y":0.6825599999999437,"angle":0.0,"x_velocity":1.2280000000000935,"y_velocity":1.728000000000094,"angular_velocity":0.0,"x_acceleration":-2.859999999999589,"y_acceleration":-2.8799999999991357,"angular_acceleration":0.0},{"time":3.609999999999967,"x":2.79933494531246,"y":0.6996916305999435,"angle":0.0,"x_velocity":1.1987856562500987,"y_velocity":1.6978923000001043,"angular_velocity":0.0,"x_acceleration":-2.9820374999996098,"y_acceleration":-3.1402799999991657,"angular_acceleration":0.0},{"time":3.619999999999967,"x":2.8111717299999617,"y":0.716509299199945,"angle":0.0,"x_velocity":1.1683765000001034,"y_velocity":1.6652208000001139,"angular_velocity":0.0,"x_acceleration":-3.098899999999624,"y_acceleration":-3.392639999999176,"angular_acceleration":0.0},{"time":3.6299999999999666,"x":2.8226986709374615,"y":0.7329877757999455,"angle":0.0,"x_velocity":1.1368261562501072,"y_velocity":1.6300683000001222,"angular_velocity":0.0,"x_acceleration":-3.21021249999964,"y_acceleration":-3.6363599999992005,"angular_acceleration":0.0},{"time":3.6399999999999664,"x":2.8339046399999623,"y":0.7491026943999461,"angle":0.0,"x_velocity":1.1041920000001122,"y_velocity":1.592524800000131,"angular_velocity":0.0,"x_acceleration":-3.315599999999659,"y_acceleration":-3.8707199999992277,"angular_acceleration":0.0},{"time":3.649999999999966,"x":2.8447791015624633,"y":0.7648306249999473,"angle":0.0,"x_velocity":1.070535156250116,"y_velocity":1.5526875000001406,"angular_velocity":0.0,"x_acceleration":-3.4146874999996832,"y_acceleration":-4.094999999999274,"angular_acceleration":0.0},{"time":3.659999999999966,"x":2.8553121499999645,"y":0.780149145599949,"angle":0.0,"x_velocity":1.0359205000001186,"y_velocity":1.510660800000144,"angular_velocity":0.0,"x_acceleration":-3.5070999999996886,"y_acceleration":-4.308479999999285,"angular_acceleration":0.0},{"time":3.6699999999999657,"x":2.865494547187465,"y":0.7950369141999492,"angle":0.0,"x_velocity":1.000416656250123,"y_velocity":1.4665563000001551,"angular_velocity":0.0,"x_acceleration":-3.5924624999997192,"y_acceleration":-4.5104399999993205,"angular_acceleration":0.0},{"time":3.6799999999999655,"x":2.8753177599999664,"y":0.8094737407999513,"angle":0.0,"x_velocity":0.9640960000001275,"y_velocity":1.4204928000001615,"angular_velocity":0.0,"x_acceleration":-3.6703999999997485,"y_acceleration":-4.700159999999379,"angular_acceleration":0.0},{"time":3.6899999999999653,"x":2.884773997812468,"y":0.8234406593999521,"angle":0.0,"x_velocity":0.9270346562501302,"y_velocity":1.3725963000001702,"angular_velocity":0.0,"x_acceleration":-3.7405374999997676,"y_acceleration":-4.8769199999994015,"angular_acceleration":0.0},{"time":3.699999999999965,"x":2.8938562499999687,"y":0.8369199999999537,"angle":0.0,"x_velocity":0.8893125000001341,"y_velocity":1.3230000000001754,"angular_velocity":0.0,"x_acceleration":-3.8024999999997995,"y_acceleration":-5.039999999999459,"angular_acceleration":0.0},{"time":3.709999999999965,"x":2.9025583234374697,"y":0.8498954605999551,"angle":0.0,"x_velocity":0.8510131562501346,"y_velocity":1.2718443000001844,"angular_velocity":0.0,"x_acceleration":-3.855912499999828,"y_acceleration":-5.188679999999515,"angular_acceleration":0.0},{"time":3.7199999999999647,"x":2.9108748799999713,"y":0.8623521791999582,"angle":0.0,"x_velocity":0.8122240000001364,"y_velocity":1.219276800000186,"angular_velocity":0.0,"x_acceleration":-3.9003999999998555,"y_acceleration":-5.32223999999956,"angular_acceleration":0.0},{"time":3.7299999999999645,"x":2.918801474062473,"y":0.8742768057999588,"angle":0.0,"x_velocity":0.7730361562501384,"y_velocity":1.165452300000192,"angular_velocity":0.0,"x_acceleration":-3.9355874999998903,"y_acceleration":-5.439959999999601,"angular_acceleration":0.0},{"time":3.7399999999999642,"x":2.9263345899999735,"y":0.8856575743999606,"angle":0.0,"x_velocity":0.733544500000141,"y_velocity":1.110532800000195,"angular_velocity":0.0,"x_acceleration":-3.9610999999999237,"y_acceleration":-5.541119999999665,"angular_acceleration":0.0},{"time":3.749999999999964,"x":2.933471679687475,"y":0.8964843749999623,"angle":0.0,"x_velocity":0.6938476562501448,"y_velocity":1.0546875000002025,"angular_velocity":0.0,"x_acceleration":-3.976562499999961,"y_acceleration":-5.62499999999973,"angular_acceleration":0.0},{"time":3.759999999999964,"x":2.9402111999999767,"y":0.9067488255999643,"angle":0.0,"x_velocity":0.6540480000001425,"y_velocity":0.9980928000002027,"angular_velocity":0.0,"x_acceleration":-3.9816000000000003,"y_acceleration":-5.690879999999801,"angular_acceleration":0.0},{"time":3.7699999999999636,"x":2.9465526503124777,"y":0.9164443441999666,"angle":0.0,"x_velocity":0.6142516562501443,"y_velocity":0.9409323000002097,"angular_velocity":0.0,"x_acceleration":-3.9758375000000434,"y_acceleration":-5.73803999999987,"angular_acceleration":0.0},{"time":3.7799999999999634,"x":2.9524966099999794,"y":0.9255662207999678,"angle":0.0,"x_velocity":0.5745685000001446,"y_velocity":0.883396800000213,"angular_velocity":0.0,"x_acceleration":-3.9589000000000887,"y_acceleration":-5.765759999999936,"angular_acceleration":0.0},{"time":3.789999999999963,"x":2.9580447759374806,"y":0.9341116893999701,"angle":0.0,"x_velocity":0.5351121562501451,"y_velocity":0.8256843000002121,"angular_velocity":0.0,"x_acceleration":-3.9304125000001306,"y_acceleration":-5.773320000000012,"angular_acceleration":0.0},{"time":3.799999999999963,"x":2.9631999999999823,"y":0.9420799999999712,"angle":0.0,"x_velocity":0.4960000000001452,"y_velocity":0.7680000000002156,"angular_velocity":0.0,"x_acceleration":-3.8900000000001747,"y_acceleration":-5.760000000000083,"angular_acceleration":0.0},{"time":3.8099999999999627,"x":2.9679663265624834,"y":0.9494724905999732,"angle":0.0,"x_velocity":0.45735315625014294,"y_velocity":0.71055630000021,"angular_velocity":0.0,"x_acceleration":-3.8372875000002153,"y_acceleration":-5.725080000000176,"angular_acceleration":0.0},{"time":3.8199999999999625,"x":2.972349029999984,"y":0.9562926591999759,"angle":0.0,"x_velocity":0.41929650000014096,"y_velocity":0.6535728000002106,"angular_velocity":0.0,"x_acceleration":-3.7719000000002794,"y_acceleration":-5.667840000000268,"angular_acceleration":0.0},{"time":3.8299999999999623,"x":2.976354652187486,"y":0.9625462357999774,"angle":0.0,"x_velocity":0.38195865625014047,"y_velocity":0.5972763000002139,"angular_velocity":0.0,"x_acceleration":-3.6934625000003294,"y_acceleration":-5.587560000000366,"angular_acceleration":0.0},{"time":3.839999999999962,"x":2.9799910399999874,"y":0.9682412543999801,"angle":0.0,"x_velocity":0.3454720000001341,"y_velocity":0.5419008000002048,"angular_velocity":0.0,"x_acceleration":-3.60160000000036,"y_acceleration":-5.483520000000439,"angular_acceleration":0.0},{"time":3.849999999999962,"x":2.9832673828124876,"y":0.973388124999981,"angle":0.0,"x_velocity":0.3099726562501317,"y_velocity":0.48768750000020233,"angular_velocity":0.0,"x_acceleration":-3.495937500000423,"y_acceleration":-5.35500000000053,"angular_acceleration":0.0},{"time":3.8599999999999617,"x":2.986194249999989,"y":0.9779997055999847,"angle":0.0,"x_velocity":0.27560050000012914,"y_velocity":0.43488480000019436,"angular_velocity":0.0,"x_acceleration":-3.3761000000004913,"y_acceleration":-5.2012800000006365,"angular_acceleration":0.0},{"time":3.8699999999999615,"x":2.9887836284374907,"y":0.9820913741999862,"angle":0.0,"x_velocity":0.24249915625012441,"y_velocity":0.383748300000196,"angular_velocity":0.0,"x_acceleration":-3.2417125000005456,"y_acceleration":-5.021640000000758,"angular_acceleration":0.0},{"time":3.8799999999999613,"x":2.991048959999992,"y":0.9856811007999884,"angle":0.0,"x_velocity":0.21081600000012024,"y_velocity":0.3345408000001875,"angular_velocity":0.0,"x_acceleration":-3.092400000000602,"y_acceleration":-4.815360000000851,"angular_acceleration":0.0},{"time":3.889999999999961,"x":2.993005179062492,"y":0.9887895193999885,"angle":0.0,"x_velocity":0.18070215625011699,"y_velocity":0.28753230000017993,"angular_velocity":0.0,"x_acceleration":-2.927787500000669,"y_acceleration":-4.581720000000956,"angular_acceleration":0.0},{"time":3.899999999999961,"x":2.9946687499999936,"y":0.9914399999999883,"angle":0.0,"x_velocity":0.15231250000011087,"y_velocity":0.2430000000001762,"angular_velocity":0.0,"x_acceleration":-2.747500000000727,"y_acceleration":-4.320000000001102,"angular_acceleration":0.0},{"time":3.9099999999999606,"x":2.9960577046874954,"y":0.9936587205999916,"angle":0.0,"x_velocity":0.12580565625010287,"y_velocity":0.20122830000015668,"angular_velocity":0.0,"x_acceleration":-2.5511625000008067,"y_acceleration":-4.0294800000012145,"angular_acceleration":0.0},{"time":3.9199999999999604,"x":2.997191679999996,"y":0.9954747391999934,"angle":0.0,"x_velocity":0.10134400000009336,"y_velocity":0.16250880000014334,"angular_velocity":0.0,"x_acceleration":-2.33840000000086,"y_acceleration":-3.709440000001308,"angular_acceleration":0.0},{"time":3.92999999999996,"x":2.998091955312497,"y":0.9969200657999959,"angle":0.0,"x_velocity":0.07909365625008213,"y_velocity":0.12714030000012855,"angular_velocity":0.0,"x_acceleration":-2.108837500000945,"y_acceleration":-3.3591600000014665,"angular_acceleration":0.0},{"time":3.93999999999996,"x":2.998781489999999,"y":0.9980297343999966,"angle":0.0,"x_velocity":0.05922450000007373,"y_velocity":0.09542880000011422,"angular_velocity":0.0,"x_acceleration":-1.8621000000010142,"y_acceleration":-2.977920000001575,"angular_acceleration":0.0},{"time":3.9499999999999598,"x":2.999284960937498,"y":0.9988418749999983,"angle":0.0,"x_velocity":0.041910156250063224,"y_velocity":0.06768750000010115,"angular_velocity":0.0,"x_acceleration":-1.5978125000010905,"y_acceleration":-2.5650000000017315,"angular_acceleration":0.0},{"time":3.9599999999999596,"x":2.999628799999998,"y":0.9993977855999976,"angle":0.0,"x_velocity":0.027328000000053976,"y_velocity":0.04423680000008545,"angular_velocity":0.0,"x_acceleration":-1.3156000000011758,"y_acceleration":-2.119680000001864,"angular_acceleration":0.0},{"time":3.9699999999999593,"x":2.9998412315625,"y":0.9997420041999989,"angle":0.0,"x_velocity":0.015659156250045214,"y_velocity":0.02540430000006566,"angular_velocity":0.0,"x_acceleration":-1.0150875000012576,"y_acceleration":-1.6412400000020142,"angular_acceleration":0.0},{"time":3.979999999999959,"x":2.9999523099999994,"y":0.9999223808000011,"angle":0.0,"x_velocity":0.007088500000024922,"y_velocity":0.011524800000042745,"angular_velocity":0.0,"x_acceleration":-0.6959000000013447,"y_acceleration":-1.1289600000021665,"angular_acceleration":0.0},{"time":3.989999999999959,"x":2.9999939571874994,"y":0.9999901493999994,"angle":0.0,"x_velocity":0.0018046562500160235,"y_velocity":0.0029403000000272073,"angular_velocity":0.0,"x_acceleration":-0.35766250000143884,"y_acceleration":-0.5821200000023339,"angular_acceleration":0.0},{"time":3.9999999999999587,"x":3.0000000000000004,"y":0.9999999999999991,"angle":0.0,"x_velocity":1.7763568394002505e-15,"y_velocity":-3.552713678800501e-15,"angular_velocity":0.0,"x_acceleration":-1.5276668818842154e-12,"y_acceleration":-2.4868995751603507e-12,"angular_acceleration":0.0}]} \ No newline at end of file +{ + "meta_data": { + "path_name": "Test", + "sample_rate": 0.01, + "robot_name": "Chassis", + "field_name": "reefscape-updated" + }, + "commands": [ + { + "start": 0.0, + "end": 0.0, + "command": { + "start": 0.0, + "end": 0.0, + "name": "Command1" + } + }, + { + "start": 2.0, + "end": 3.0, + "command": { + "start": 2.0, + "end": 3.0, + "name": "Command2" + } + } + ], + "key_points": [ + { + "index": 0, + "delta_time": 0.0, + "time": 0.0, + "x": 0.31295796178343943, + "y": 0.7130969786536859, + "angle": 0.0, + "x_velocity": 0.0, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": 0.0, + "y_acceleration": 0.0, + "angular_acceleration": 0.0 + }, + { + "index": 1, + "delta_time": 1.0, + "time": 1.0, + "x": 4.593775796178344, + "y": 1.1927203561970388, + "angle": 0.0, + "x_velocity": 0.8829885350318472, + "y_velocity": 0.8867871723805789, + "angular_velocity": 0.0, + "x_acceleration": -0.11456496815286626, + "y_acceleration": 0.3206934742885742, + "angular_acceleration": 0.0 + }, + { + "index": 2, + "delta_time": 2.0, + "time": 2.0, + "x": 2.078935031847134, + "y": 2.4866713234148436, + "angle": 0.0, + "x_velocity": -0.45825987261146506, + "y_velocity": 1.2827738971542968, + "angular_velocity": 0.0, + "x_acceleration": 0.29060382165605075, + "y_acceleration": -0.2258797514554305, + "angular_acceleration": 0.0 + }, + { + "index": 3, + "delta_time": 3.0, + "time": 3.0, + "x": 2.984277707006369, + "y": 3.892145332470856, + "angle": 0.0, + "x_velocity": 2.04540382165605, + "y_velocity": -0.01673183344114304, + "angular_velocity": 0.0, + "x_acceleration": 0.5560592356687898, + "y_acceleration": -0.10596827846057238, + "angular_acceleration": 0.0 + }, + { + "index": 4, + "delta_time": 4.0, + "time": 4.0, + "x": 6.169742675159235, + "y": 2.4532076565325576, + "angle": 0.0, + "x_velocity": 1.765977070063694, + "y_velocity": 0.8589007833120073, + "angular_velocity": 0.0, + "x_acceleration": -0.5113509554140125, + "y_acceleration": 0.00418295836028576, + "angular_acceleration": 0.0 + }, + { + "index": 5, + "delta_time": 5.0, + "time": 5.0, + "x": 6.516231847133757, + "y": 5.60994689909487, + "angle": 0.0, + "x_velocity": 0.0, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": 0.0, + "y_acceleration": 0.0, + "angular_acceleration": 0.0 + } + ], + "sampled_points": [ + { + "time": 0.0, + "x": 0.31295796178343943, + "y": 0.7130969786536859, + "angle": 0.0, + "x_velocity": 0.0, + "y_velocity": 0.0, + "angular_velocity": 0.0, + "x_acceleration": 0.0, + "y_acceleration": 0.0, + "angular_acceleration": 0.0 + }, + { + "time": 0.01, + "x": 0.31299660385519706, + "y": 0.7130983750479423, + "angle": 0.0, + "x_velocity": 0.011535164317659235, + "y_velocity": 0.00041761829746781375, + "angular_velocity": 0.0, + "x_acceleration": 2.284095937, + "y_acceleration": 0.08300442317610544, + "angular_acceleration": 0.0 + }, + { + "time": 0.02, + "x": 0.3132625201636575, + "y": 0.7131080461115631, + "angle": 0.0, + "x_velocity": 0.04522777594114649, + "y_velocity": 0.0016497792822700156, + "angular_velocity": 0.0, + "x_acceleration": 4.431949034343949, + "y_acceleration": 0.16291609197658283, + "angular_acceleration": 0.0 + }, + { + "time": 0.03, + "x": 0.3139705189972141, + "y": 0.7131339833891538, + "angle": 0.0, + "x_velocity": 0.09972919366925158, + "y_velocity": 0.0036657820459414826, + "angular_velocity": 0.0, + "x_acceleration": 6.446316731101909, + "y_acceleration": 0.2397803334596637, + "angular_acceleration": 0.0 + }, + { + "time": 0.04, + "x": 0.3153220601042017, + "y": 0.7131838736825884, + "angle": 0.0, + "x_velocity": 0.17371835069146493, + "y_velocity": 0.0064353789505994085, + "angular_velocity": 0.0, + "x_acceleration": 8.329956466343948, + "y_acceleration": 0.31364247468357964, + "angular_acceleration": 0.0 + }, + { + "time": 0.05, + "x": 0.3175055304368033, + "y": 0.7132651035837146, + "angle": 0.0, + "x_velocity": 0.26590175458797777, + "y_velocity": 0.0099287756289433, + "angular_velocity": 0.0, + "x_acceleration": 10.085625679140128, + "y_acceleration": 0.3845478427065621, + "angular_acceleration": 0.0 + }, + { + "time": 0.060000000000000005, + "x": 0.3206965198949574, + "y": 0.7133847640070603, + "angle": 0.0, + "x_velocity": 0.37501348732968154, + "y_velocity": 0.014116630984254976, + "angular_velocity": 0.0, + "x_acceleration": 11.71608180856051, + "y_acceleration": 0.4525417645868426, + "angular_acceleration": 0.0 + }, + { + "time": 0.07, + "x": 0.325058097070265, + "y": 0.7135496547225392, + "angle": 0.0, + "x_velocity": 0.4998152052781687, + "y_velocity": 0.01897005719039858, + "angular_velocity": 0.0, + "x_acceleration": 13.224082293675162, + "y_acceleration": 0.5176695673826526, + "angular_acceleration": 0.0 + }, + { + "time": 0.08, + "x": 0.33074108498989646, + "y": 0.713766288888156, + "angle": 0.0, + "x_velocity": 0.6390961391857325, + "y_velocity": 0.024460619691820566, + "angular_velocity": 0.0, + "x_acceleration": 14.612384573554138, + "y_acceleration": 0.5799765781522237, + "angular_acceleration": 0.0 + }, + { + "time": 0.09, + "x": 0.3378843368604987, + "y": 0.7140408975827132, + "angle": 0.0, + "x_velocity": 0.7916730941953661, + "y_velocity": 0.030560337203549698, + "angular_velocity": 0.0, + "x_acceleration": 15.883746087267516, + "y_acceleration": 0.6395081239537875, + "angular_acceleration": 0.0 + }, + { + "time": 0.09999999999999999, + "x": 0.34661501181210186, + "y": 0.7143794343385167, + "angle": 0.0, + "x_velocity": 0.956390449840764, + "y_velocity": 0.03724168171119705, + "angular_velocity": 0.0, + "x_acceleration": 17.04092427388535, + "y_acceleration": 0.6963095318455754, + "angular_acceleration": 0.0 + }, + { + "time": 0.10999999999999999, + "x": 0.3570488506420266, + "y": 0.7147875796740808, + "angle": 0.0, + "x_velocity": 1.1321201600463213, + "y_velocity": 0.04447757847095604, + "angular_velocity": 0.0, + "x_acceleration": 18.086676572477707, + "y_acceleration": 0.7504261288858188, + "angular_acceleration": 0.0 + }, + { + "time": 0.11999999999999998, + "x": 0.36929045155879126, + "y": 0.7152707456268353, + "angle": 0.0, + "x_velocity": 1.3177617531271333, + "y_velocity": 0.05224140600960238, + "angular_velocity": 0.0, + "x_acceleration": 19.02376042211465, + "y_acceleration": 0.8019032421327494, + "angular_acceleration": 0.0 + }, + { + "time": 0.12999999999999998, + "x": 0.3834335459260183, + "y": 0.7158340802858302, + "angle": 0.0, + "x_velocity": 1.5122423317889964, + "y_velocity": 0.06050699612449409, + "angular_velocity": 0.0, + "x_acceleration": 19.854933261866236, + "y_acceleration": 0.8507861986445986, + "angular_acceleration": 0.0 + }, + { + "time": 0.13999999999999999, + "x": 0.39956127400634184, + "y": 0.7164824723244423, + "angle": 0.0, + "x_velocity": 1.7145165731284073, + "y_velocity": 0.06924863388357154, + "angular_velocity": 0.0, + "x_acceleration": 20.58295253080254, + "y_acceleration": 0.8971203254795984, + "angular_acceleration": 0.0 + }, + { + "time": 0.15, + "x": 0.4177464607053144, + "y": 0.7172205555330807, + "angle": 0.0, + "x_velocity": 1.9235667286325637, + "y_velocity": 0.07844105762535736, + "angular_velocity": 0.0, + "x_acceleration": 21.21057566799363, + "y_acceleration": 0.9409509496959796, + "angular_acceleration": 0.0 + }, + { + "time": 0.16, + "x": 0.43805189131531413, + "y": 0.7180527133518921, + "angle": 0.0, + "x_velocity": 2.1384026241793626, + "y_velocity": 0.08805945895895653, + "angular_velocity": 0.0, + "x_acceleration": 21.740560112509556, + "y_acceleration": 0.9823233983519742, + "angular_acceleration": 0.0 + }, + { + "time": 0.17, + "x": 0.46053058725945134, + "y": 0.7189830834034681, + "angle": 0.0, + "x_velocity": 2.3580616600374045, + "y_velocity": 0.09807948276405634, + "angular_velocity": 0.0, + "x_acceleration": 22.17566330342038, + "y_acceleration": 1.0212829985058136, + "angular_acceleration": 0.0 + }, + { + "time": 0.18000000000000002, + "x": 0.48522608183547616, + "y": 0.7200155620255492, + "angle": 0.0, + "x_velocity": 2.5816088108659874, + "y_velocity": 0.10847722719092638, + "angular_velocity": 0.0, + "x_acceleration": 22.51864267979618, + "y_acceleration": 1.0578750772157293, + "angular_acceleration": 0.0 + }, + { + "time": 0.19000000000000003, + "x": 0.5121726959596851, + "y": 0.7211538088037318, + "angle": 0.0, + "x_velocity": 2.8081366257151115, + "y_velocity": 0.11922924366041861, + "angular_velocity": 0.0, + "x_acceleration": 22.772255680707005, + "y_acceleration": 1.0921449615399528, + "angular_acceleration": 0.0 + }, + { + "time": 0.20000000000000004, + "x": 0.541395813910828, + "y": 0.7224012511041742, + "angle": 0.0, + "x_velocity": 3.036765228025479, + "y_velocity": 0.1303125368639673, + "angular_velocity": 0.0, + "x_acceleration": 22.939259745222927, + "y_acceleration": 1.1241379785367156, + "angular_acceleration": 0.0 + }, + { + "time": 0.21000000000000005, + "x": 0.5729121590740156, + "y": 0.7237610886063014, + "angle": 0.0, + "x_velocity": 3.2666423156284883, + "y_velocity": 0.14170456476358886, + "angular_velocity": 0.0, + "x_acceleration": 23.02241231241401, + "y_acceleration": 1.1538994552642492, + "angular_acceleration": 0.0 + }, + { + "time": 0.22000000000000006, + "x": 0.6067300696846257, + "y": 0.7252362978355116, + "angle": 0.0, + "x_velocity": 3.496943160746244, + "y_velocity": 0.15338323859188227, + "angular_velocity": 0.0, + "x_acceleration": 23.024470821350313, + "y_acceleration": 1.181474718780785, + "angular_acceleration": 0.0 + }, + { + "time": 0.23000000000000007, + "x": 0.6428497745722113, + "y": 0.7268296366958819, + "angle": 0.0, + "x_velocity": 3.726870609991546, + "y_velocity": 0.16532692285202868, + "angular_velocity": 0.0, + "x_acceleration": 22.948192711101907, + "y_acceleration": 1.206909096144555, + "angular_acceleration": 0.0 + }, + { + "time": 0.24000000000000007, + "x": 0.6812636689044057, + "y": 0.7285436490028742, + "angle": 0.0, + "x_velocity": 3.9556550843678995, + "y_velocity": 0.17751443531779157, + "angular_velocity": 0.0, + "x_acceleration": 22.79633542073885, + "y_acceleration": 1.2302479144137903, + "angular_acceleration": 0.0 + }, + { + "time": 0.25000000000000006, + "x": 0.7219565899308322, + "y": 0.7303806690160408, + "angle": 0.0, + "x_velocity": 4.182554579269508, + "y_velocity": 0.18992504703351684, + "angular_velocity": 0.0, + "x_acceleration": 22.571656389331213, + "y_acceleration": 1.2515365006467227, + "angular_acceleration": 0.0 + }, + { + "time": 0.26000000000000006, + "x": 0.7649060927270086, + "y": 0.7323428259717307, + "angle": 0.0, + "x_velocity": 4.4068546644812745, + "y_velocity": 0.20253848231413246, + "angular_velocity": 0.0, + "x_acceleration": 22.276913055949052, + "y_acceleration": 1.2708201819015832, + "angular_acceleration": 0.0 + }, + { + "time": 0.2700000000000001, + "x": 0.8100827259382556, + "y": 0.7344320486157948, + "angle": 0.0, + "x_velocity": 4.627868484178807, + "y_velocity": 0.21533491874514904, + "angular_velocity": 0.0, + "x_acceleration": 21.914862859662428, + "y_acceleration": 1.2881442852366036, + "angular_acceleration": 0.0 + }, + { + "time": 0.2800000000000001, + "x": 0.8574503075236037, + "y": 0.736650069736292, + "angle": 0.0, + "x_velocity": 4.844936756928409, + "y_velocity": 0.22829498718265923, + "angular_velocity": 0.0, + "x_acceleration": 21.488263239541403, + "y_acceleration": 1.3035541377100157, + "angular_acceleration": 0.0 + }, + { + "time": 0.2900000000000001, + "x": 0.9069662004996998, + "y": 0.7389984306961951, + "angle": 0.0, + "x_velocity": 5.057427775687088, + "y_velocity": 0.2413997717533381, + "angular_velocity": 0.0, + "x_acceleration": 20.99987163465606, + "y_acceleration": 1.3170950663800514, + "angular_acceleration": 0.0 + }, + { + "time": 0.3000000000000001, + "x": 0.9585815886847139, + "y": 0.7414784859660968, + "angle": 0.0, + "x_velocity": 5.264737407802548, + "y_velocity": 0.2546308098544431, + "angular_velocity": 0.0, + "x_acceleration": 20.452445484076435, + "y_acceleration": 1.328812398304941, + "angular_acceleration": 0.0 + }, + { + "time": 0.3100000000000001, + "x": 1.012241752442247, + "y": 0.7440914076569147, + "angle": 0.0, + "x_velocity": 5.466289095013202, + "y_velocity": 0.26797009215381395, + "angular_velocity": 0.0, + "x_acceleration": 19.84874222687261, + "y_acceleration": 1.3387514605429163, + "angular_acceleration": 0.0 + }, + { + "time": 0.3200000000000001, + "x": 1.0678863444252378, + "y": 0.7468381900525985, + "angle": 0.0, + "x_velocity": 5.661533853448156, + "y_velocity": 0.28140006258987255, + "angular_velocity": 0.0, + "x_acceleration": 19.191519302114642, + "y_acceleration": 1.3469575801522096, + "angular_acceleration": 0.0 + }, + { + "time": 0.3300000000000001, + "x": 1.1254496653198696, + "y": 0.7497196541428345, + "angle": 0.0, + "x_velocity": 5.849950273627215, + "y_velocity": 0.29490361837162327, + "angular_velocity": 0.0, + "x_acceleration": 18.483534148872618, + "y_acceleration": 1.3534760841910523, + "angular_acceleration": 0.0 + }, + { + "time": 0.34000000000000014, + "x": 1.1848609395894765, + "y": 0.7527364521557519, + "angle": 0.0, + "x_velocity": 6.031044520460894, + "y_velocity": 0.3084641099786528, + "angular_velocity": 0.0, + "x_acceleration": 17.727544206216564, + "y_acceleration": 1.358352299717675, + "angular_acceleration": 0.0 + }, + { + "time": 0.35000000000000014, + "x": 1.2460445912184523, + "y": 0.7558890720906289, + "angle": 0.0, + "x_velocity": 6.2043503332503995, + "y_velocity": 0.32206534116113017, + "angular_velocity": 0.0, + "x_acceleration": 16.926306913216557, + "y_acceleration": 1.36163155379031, + "angular_acceleration": 0.0 + }, + { + "time": 0.36000000000000015, + "x": 1.3089205194561557, + "y": 0.7591778422505985, + "angle": 0.0, + "x_velocity": 6.369429025687646, + "y_velocity": 0.3356915689398065, + "angular_velocity": 0.0, + "x_acceleration": 16.082579708942678, + "y_acceleration": 1.3633591734671893, + "angular_acceleration": 0.0 + }, + { + "time": 0.37000000000000016, + "x": 1.3734043745608187, + "y": 0.7626029357753535, + "angle": 0.0, + "x_velocity": 6.525869485855241, + "y_velocity": 0.3493275036060156, + "angular_velocity": 0.0, + "x_acceleration": 15.199120032464954, + "y_acceleration": 1.3635804858065428, + "angular_acceleration": 0.0 + }, + { + "time": 0.38000000000000017, + "x": 1.439407833543452, + "y": 0.7661643751738535, + "angle": 0.0, + "x_velocity": 6.673288176226498, + "y_velocity": 0.3629583087216731, + "angular_velocity": 0.0, + "x_acceleration": 14.278685322853484, + "y_acceleration": 1.362340817866603, + "angular_acceleration": 0.0 + }, + { + "time": 0.3900000000000002, + "x": 1.5068388759117533, + "y": 0.76986203685703, + "angle": 0.0, + "x_velocity": 6.811329133665433, + "y_velocity": 0.3765696011192775, + "angular_velocity": 0.0, + "x_acceleration": 13.32403301917832, + "y_acceleration": 1.3596854967056018, + "angular_acceleration": 0.0 + }, + { + "time": 0.4000000000000002, + "x": 1.5756020594140137, + "y": 0.7736956556704925, + "angle": 0.0, + "x_velocity": 6.939663969426757, + "y_velocity": 0.39014745090190905, + "angular_velocity": 0.0, + "x_acceleration": 12.337920560509541, + "y_acceleration": 1.3556598493817704, + "angular_acceleration": 0.0 + }, + { + "time": 0.4100000000000002, + "x": 1.6455987957830267, + "y": 0.7776648294272338, + "angle": 0.0, + "x_velocity": 7.057991869155879, + "y_velocity": 0.4036783814432309, + "angular_velocity": 0.0, + "x_acceleration": 11.323105385917174, + "y_acceleration": 1.3503092029533401, + "angular_acceleration": 0.0 + }, + { + "time": 0.4200000000000002, + "x": 1.7167276264799902, + "y": 0.7817690234403367, + "angle": 0.0, + "x_velocity": 7.166039592888919, + "y_velocity": 0.41714936938748803, + "angular_velocity": 0.0, + "x_acceleration": 10.282344934471325, + "y_acceleration": 1.3436788844785426, + "angular_acceleration": 0.0 + }, + { + "time": 0.4300000000000002, + "x": 1.7888844984384198, + "y": 0.7860075750556794, + "angle": 0.0, + "x_velocity": 7.263561475052694, + "y_velocity": 0.43054784464950796, + "angular_velocity": 0.0, + "x_acceleration": 9.218396645242045, + "y_acceleration": 1.3358142210156099, + "angular_acceleration": 0.0 + }, + { + "time": 0.4400000000000002, + "x": 1.86196303980805, + "y": 0.7903796981846408, + "angle": 0.0, + "x_velocity": 7.350339424464715, + "y_velocity": 0.44386169041470047, + "angular_velocity": 0.0, + "x_acceleration": 8.134017957299363, + "y_acceleration": 1.3267605396227728, + "angular_acceleration": 0.0 + }, + { + "time": 0.45000000000000023, + "x": 1.9358548356987475, + "y": 0.7948844878368072, + "angle": 0.0, + "x_velocity": 7.426182924333205, + "y_velocity": 0.4570792431390579, + "angular_velocity": 0.0, + "x_acceleration": 7.0319663097133684, + "y_acceleration": 1.3165631673582627, + "angular_acceleration": 0.0 + }, + { + "time": 0.46000000000000024, + "x": 2.0104497039244116, + "y": 0.7995209246526778, + "angle": 0.0, + "x_velocity": 7.490929032257073, + "y_velocity": 0.4701892925491544, + "angular_velocity": 0.0, + "x_acceleration": 5.9149991415541265, + "y_acceleration": 1.3052674312803112, + "angular_acceleration": 0.0 + }, + { + "time": 0.47000000000000025, + "x": 2.085635970746884, + "y": 0.8042878794363699, + "angle": 0.0, + "x_velocity": 7.544442380225945, + "y_velocity": 0.4831810816421468, + "angular_velocity": 0.0, + "x_acceleration": 4.785873891891697, + "y_acceleration": 1.2929186584471504, + "angular_acceleration": 0.0 + }, + { + "time": 0.48000000000000026, + "x": 2.1613007466198604, + "y": 0.809184117688326, + "angle": 0.0, + "x_velocity": 7.586615174620127, + "y_velocity": 0.49604430668577404, + "angular_velocity": 0.0, + "x_acceleration": 3.6473479997961675, + "y_acceleration": 1.2795621759170115, + "angular_acceleration": 0.0 + }, + { + "time": 0.49000000000000027, + "x": 2.2373302019327874, + "y": 0.8142083041380186, + "angle": 0.0, + "x_velocity": 7.617367196210661, + "y_velocity": 0.5087691172183579, + "angular_velocity": 0.0, + "x_acceleration": 2.502178904337555, + "y_acceleration": 1.2652433107481253, + "angular_acceleration": 0.0 + }, + { + "time": 0.5000000000000002, + "x": 2.3136098427547784, + "y": 0.819359007276656, + "angle": 0.0, + "x_velocity": 7.636645800159235, + "y_velocity": 0.5213461160488015, + "angular_velocity": 0.0, + "x_acceleration": 1.3531240445859822, + "y_acceleration": 1.2500073899987258, + "angular_acceleration": 0.0 + }, + { + "time": 0.5100000000000002, + "x": 2.3900247865785196, + "y": 0.8246347038898889, + "angle": 0.0, + "x_velocity": 7.644425916018294, + "y_velocity": 0.5337663592565913, + "angular_velocity": 0.0, + "x_acceleration": 0.20294085961147346, + "y_acceleration": 1.2338997407270422, + "angular_acceleration": 0.0 + }, + { + "time": 0.5200000000000002, + "x": 2.4664600380641692, + "y": 0.8300337835905157, + "angle": 0.0, + "x_velocity": 7.640710047730961, + "y_velocity": 0.5460213561917957, + "angular_velocity": 0.0, + "x_acceleration": -0.9456132115159477, + "y_acceleration": 1.2169656899913048, + "angular_acceleration": 0.0 + }, + { + "time": 0.5300000000000002, + "x": 2.542800764783275, + "y": 0.8355545533511884, + "angle": 0.0, + "x_velocity": 7.625528273631037, + "y_velocity": 0.5581030694750648, + "angular_velocity": 0.0, + "x_acceleration": -2.0897807297261437, + "y_acceleration": 1.1992505648497487, + "angular_acceleration": 0.0 + }, + { + "time": 0.5400000000000003, + "x": 2.6189325729626756, + "y": 0.841195242037118, + "angle": 0.0, + "x_velocity": 7.59893824644306, + "y_velocity": 0.5700039149976319, + "angular_velocity": 0.0, + "x_acceleration": -3.2268042559490624, + "y_acceleration": 1.1807996923606023, + "angular_acceleration": 0.0 + }, + { + "time": 0.5500000000000003, + "x": 2.694741783228405, + "y": 0.8469540049387813, + "angle": 0.0, + "x_velocity": 7.561025193282255, + "y_velocity": 0.5817167619213123, + "angular_velocity": 0.0, + "x_acceleration": -4.353926351114694, + "y_acceleration": 1.1616583995820995, + "angular_acceleration": 0.0 + }, + { + "time": 0.5600000000000003, + "x": 2.77011570634961, + "y": 0.852828928304626, + "angle": 0.0, + "x_velocity": 7.511901915654521, + "y_velocity": 0.5932349326785036, + "angular_velocity": 0.0, + "x_acceleration": -5.4683895761529016, + "y_acceleration": 1.1418720135724707, + "angular_acceleration": 0.0 + }, + { + "time": 0.5700000000000003, + "x": 2.8449429189824413, + "y": 0.8588180338737763, + "angle": 0.0, + "x_velocity": 7.451708789456513, + "y_velocity": 0.6045522029721854, + "angular_velocity": 0.0, + "x_acceleration": -6.567436491993604, + "y_acceleration": 1.121485861389948, + "angular_acceleration": 0.0 + }, + { + "time": 0.5800000000000003, + "x": 2.9191135394139756, + "y": 0.8649192834087398, + "angle": 0.0, + "x_velocity": 7.3806137649755446, + "y_velocity": 0.6156628017759205, + "angular_velocity": 0.0, + "x_acceleration": -7.6483096595669195, + "y_acceleration": 1.10054527009276, + "angular_acceleration": 0.0 + }, + { + "time": 0.5900000000000003, + "x": 2.992519503306114, + "y": 0.8711305832281119, + "angle": 0.0, + "x_velocity": 7.298812366889633, + "y_velocity": 0.6265614113338525, + "angular_velocity": 0.0, + "x_acceleration": -8.708251639802555, + "y_acceleration": 1.0790955667391429, + "angular_acceleration": 0.0 + }, + { + "time": 0.6000000000000003, + "x": 3.0650548394394934, + "y": 0.8774497887392833, + "angle": 0.0, + "x_velocity": 7.206527694267518, + "y_velocity": 0.6372431671607094, + "angular_velocity": 0.0, + "x_acceleration": -9.7445049936306, + "y_acceleration": 1.0571820783873245, + "angular_acceleration": 0.0 + }, + { + "time": 0.6100000000000003, + "x": 3.136615945457387, + "y": 0.8838747089711435, + "angle": 0.0, + "x_velocity": 7.104010420568615, + "y_velocity": 0.6477036580417992, + "angular_velocity": 0.0, + "x_acceleration": -10.754312281980887, + "y_acceleration": 1.0348501320955397, + "angular_acceleration": 0.0 + }, + { + "time": 0.6200000000000003, + "x": 3.207101863609621, + "y": 0.8904031111067894, + "angle": 0.0, + "x_velocity": 6.991538793643066, + "y_velocity": 0.6579389260330142, + "angular_velocity": 0.0, + "x_acceleration": -11.734916065783466, + "y_acceleration": 1.0121450549220168, + "angular_acceleration": 0.0 + }, + { + "time": 0.6300000000000003, + "x": 3.276414556496475, + "y": 0.8970327250162291, + "angle": 0.0, + "x_velocity": 6.869418635731666, + "y_velocity": 0.6679454664608278, + "angular_velocity": 0.0, + "x_acceleration": -12.683558905968113, + "y_acceleration": 0.9891121739249897, + "angular_acceleration": 0.0 + }, + { + "time": 0.6400000000000003, + "x": 3.344459182812588, + "y": 0.9037612477890882, + "angle": 0.0, + "x_velocity": 6.737983343465995, + "y_velocity": 0.6777202279222966, + "angular_velocity": 0.0, + "x_acceleration": -13.597483363464988, + "y_acceleration": 0.9657968161626864, + "angular_acceleration": 0.0 + }, + { + "time": 0.6500000000000004, + "x": 3.4111443730908677, + "y": 0.910586348267316, + "angle": 0.0, + "x_velocity": 6.597593887868236, + "y_velocity": 0.6872606122850583, + "angular_velocity": 0.0, + "x_acceleration": -14.473931999203842, + "y_acceleration": 0.9422443086933425, + "angular_acceleration": 0.0 + }, + { + "time": 0.6600000000000004, + "x": 3.4763825054463986, + "y": 0.917505671577891, + "angle": 0.0, + "x_velocity": 6.448638814351337, + "y_velocity": 0.6965644746873341, + "angular_velocity": 0.0, + "x_acceleration": -15.310147374114678, + "y_acceleration": 0.9184999785751877, + "angular_acceleration": 0.0 + }, + { + "time": 0.6700000000000004, + "x": 3.540089981320355, + "y": 0.9245168436655271, + "angle": 0.0, + "x_velocity": 6.291534242718932, + "y_velocity": 0.7056301235379266, + "angular_velocity": 0.0, + "x_acceleration": -16.103372049127415, + "y_acceleration": 0.8946091528664533, + "angular_acceleration": 0.0 + }, + { + "time": 0.6800000000000004, + "x": 3.6021875012238866, + "y": 0.9316174758253785, + "angle": 0.0, + "x_velocity": 6.126723867165353, + "y_velocity": 0.7144563205162215, + "angular_velocity": 0.0, + "x_acceleration": -16.850848585171974, + "y_acceleration": 0.8706171586253708, + "angular_acceleration": 0.0 + }, + { + "time": 0.6900000000000004, + "x": 3.6626003404820513, + "y": 0.9388051692357468, + "angle": 0.0, + "x_velocity": 5.954678956275611, + "y_velocity": 0.7230422805721866, + "angular_velocity": 0.0, + "x_acceleration": -17.5498195431783, + "y_acceleration": 0.8465693229101752, + "angular_acceleration": 0.0 + }, + { + "time": 0.7000000000000004, + "x": 3.7212586249777106, + "y": 0.9460775194907862, + "angle": 0.0, + "x_velocity": 5.775898353025472, + "y_velocity": 0.7313876719263719, + "angular_velocity": 0.0, + "x_acceleration": -18.197527484076346, + "y_acceleration": 0.8225109727790931, + "angular_acceleration": 0.0 + }, + { + "time": 0.7100000000000004, + "x": 3.778097606895427, + "y": 0.9534321211332089, + "angle": 0.0, + "x_velocity": 5.590908474781354, + "y_velocity": 0.7394926160699098, + "angular_velocity": 0.0, + "x_acceleration": -18.791214968796112, + "y_acceleration": 0.7984874352903564, + "angular_acceleration": 0.0 + }, + { + "time": 0.7200000000000004, + "x": 3.8330579404653937, + "y": 0.9608665721869913, + "angle": 0.0, + "x_velocity": 5.400263313300375, + "y_velocity": 0.7473576877645146, + "angular_velocity": 0.0, + "x_acceleration": -19.32812455826752, + "y_acceleration": 0.7745440375021984, + "angular_acceleration": 0.0 + }, + { + "time": 0.7300000000000004, + "x": 3.886085957707315, + "y": 0.9683784786900802, + "angle": 0.0, + "x_velocity": 5.204544434730408, + "y_velocity": 0.7549839150424837, + "angular_velocity": 0.0, + "x_acceleration": -19.80549881342037, + "y_acceleration": 0.7507261064728508, + "angular_acceleration": 0.0 + }, + { + "time": 0.7400000000000004, + "x": 3.9371339441743416, + "y": 0.9759654592270984, + "angle": 0.0, + "x_velocity": 5.004360979609956, + "y_velocity": 0.7623727792066952, + "angular_velocity": 0.0, + "x_acceleration": -20.220580295184703, + "y_acceleration": 0.7270789692605435, + "angular_acceleration": 0.0 + }, + { + "time": 0.7500000000000004, + "x": 3.9861604146969585, + "y": 0.9836251494620499, + "angle": 0.0, + "x_velocity": 4.800349662868236, + "y_velocity": 0.7695262148306118, + "angular_velocity": 0.0, + "x_acceleration": -20.570611564490406, + "y_acceleration": 0.7036479529235109, + "angular_acceleration": 0.0 + }, + { + "time": 0.7600000000000005, + "x": 4.033130389126882, + "y": 0.9913552066710262, + "angle": 0.0, + "x_velocity": 4.5931747738252255, + "y_velocity": 0.7764466097582772, + "angular_velocity": 0.0, + "x_acceleration": -20.852835182267455, + "y_acceleration": 0.6804783845199833, + "angular_acceleration": 0.0 + }, + { + "time": 0.7700000000000005, + "x": 4.078015668081008, + "y": 0.9991533142749132, + "angle": 0.0, + "x_velocity": 4.383528176191547, + "y_velocity": 0.7831368051043172, + "angular_velocity": 0.0, + "x_acceleration": -21.064493709445856, + "y_acceleration": 0.6576155911081889, + "angular_acceleration": 0.0 + }, + { + "time": 0.7800000000000005, + "x": 4.120795108685265, + "y": 1.0070171863720947, + "angle": 0.0, + "x_velocity": 4.172129308068541, + "y_velocity": 0.7896000952539407, + "angular_velocity": 0.0, + "x_acceleration": -21.202829706955328, + "y_acceleration": 0.6351048997463651, + "angular_acceleration": 0.0 + }, + { + "time": 0.7900000000000005, + "x": 4.1614549003185655, + "y": 1.0149445722711599, + "angle": 0.0, + "x_velocity": 3.9597251819482295, + "y_velocity": 0.7958402278629386, + "angular_velocity": 0.0, + "x_acceleration": -21.265085735726075, + "y_acceleration": 0.6129916374927378, + "angular_acceleration": 0.0 + }, + { + "time": 0.8000000000000005, + "x": 4.199988840356688, + "y": 1.0229332610236093, + "angle": 0.0, + "x_velocity": 3.747090384713374, + "y_velocity": 0.8018614038576841, + "angular_velocity": 0.0, + "x_acceleration": -21.24850435668796, + "y_acceleration": 0.5913211314055409, + "angular_acceleration": 0.0 + }, + { + "time": 0.8100000000000005, + "x": 4.236398609916208, + "y": 1.0309810859565594, + "angle": 0.0, + "x_velocity": 3.5350270776374018, + "y_velocity": 0.8076682774351315, + "angular_velocity": 0.0, + "x_acceleration": -21.150328130770617, + "y_acceleration": 0.5701387085430092, + "angular_acceleration": 0.0 + }, + { + "time": 0.8200000000000005, + "x": 4.27069404959836, + "y": 1.0390859292054493, + "angle": 0.0, + "x_velocity": 3.3243649963844675, + "y_velocity": 0.8132659560628205, + "angular_velocity": 0.0, + "x_acceleration": -20.967799618904422, + "y_acceleration": 0.5494896959633699, + "angular_acceleration": 0.0 + }, + { + "time": 0.8300000000000005, + "x": 4.302893435233003, + "y": 1.0472457262467465, + "angle": 0.0, + "x_velocity": 3.1159614510093903, + "y_velocity": 0.8186600004788699, + "angular_velocity": 0.0, + "x_acceleration": -20.698161382019123, + "y_acceleration": 0.529419420724853, + "angular_acceleration": 0.0 + }, + { + "time": 0.8400000000000005, + "x": 4.333023753622474, + "y": 1.0554584704306533, + "angle": 0.0, + "x_velocity": 2.91070132595771, + "y_velocity": 0.8238564246919814, + "angular_velocity": 0.0, + "x_acceleration": -20.338655981044496, + "y_acceleration": 0.5099732098856951, + "angular_acceleration": 0.0 + }, + { + "time": 0.8500000000000005, + "x": 4.3611209782855305, + "y": 1.0637222175138108, + "angle": 0.0, + "x_velocity": 2.7094970800657023, + "y_velocity": 0.8288616959814422, + "angular_velocity": 0.0, + "x_acceleration": -19.88652597691072, + "y_acceleration": 0.49119639050412633, + "angular_acceleration": 0.0 + }, + { + "time": 0.8600000000000005, + "x": 4.387230345201253, + "y": 1.0720350901920064, + "angle": 0.0, + "x_velocity": 2.5132887465602636, + "y_velocity": 0.833682734897117, + "angular_velocity": 0.0, + "x_acceleration": -19.339013930547594, + "y_acceleration": 0.4731342896383772, + "angular_acceleration": 0.0 + }, + { + "time": 0.8700000000000006, + "x": 4.411406628552923, + "y": 1.0803952826328787, + "angle": 0.0, + "x_velocity": 2.3230439330590826, + "y_velocity": 0.838326915259457, + "angular_velocity": 0.0, + "x_acceleration": -18.693362402885327, + "y_acceleration": 0.4558322343466763, + "angular_acceleration": 0.0 + }, + { + "time": 0.8800000000000006, + "x": 4.433714416471986, + "y": 1.0888010650086244, + "angle": 0.0, + "x_velocity": 2.1397578215704556, + "y_velocity": 0.8428020641594915, + "angular_velocity": 0.0, + "x_acceleration": -17.946813954853496, + "y_acceleration": 0.43933555168725835, + "angular_acceleration": 0.0 + }, + { + "time": 0.8900000000000006, + "x": 4.454228386781889, + "y": 1.097250788028703, + "angle": 0.0, + "x_velocity": 1.9644531684934492, + "y_velocity": 0.8471164619588365, + "angular_velocity": 0.0, + "x_acceleration": -17.09661114738202, + "y_acceleration": 0.4236895687183564, + "angular_acceleration": 0.0 + }, + { + "time": 0.9000000000000006, + "x": 4.47303358274204, + "y": 1.1057428874725426, + "angle": 0.0, + "x_velocity": 1.7981803046178442, + "y_velocity": 0.8512788422896882, + "angular_velocity": 0.0, + "x_acceleration": -16.13999654140116, + "y_acceleration": 0.4089396124981999, + "angular_acceleration": 0.0 + }, + { + "time": 0.9100000000000006, + "x": 4.490225688791702, + "y": 1.1142758887222477, + "angle": 0.0, + "x_velocity": 1.6420171351240498, + "y_velocity": 0.8552983920548247, + "angular_velocity": 0.0, + "x_acceleration": -15.074212697840665, + "y_acceleration": 0.39513101008501916, + "angular_acceleration": 0.0 + }, + { + "time": 0.9200000000000006, + "x": 4.505911306293882, + "y": 1.1228484112953012, + "angle": 0.0, + "x_velocity": 1.4970691395832176, + "y_velocity": 0.8591847514276052, + "angular_velocity": 0.0, + "x_acceleration": -13.896502177630452, + "y_acceleration": 0.3823090885370508, + "angular_acceleration": 0.0 + }, + { + "time": 0.9300000000000006, + "x": 4.520208229279252, + "y": 1.131459173377275, + "angle": 0.0, + "x_velocity": 1.3644693719571563, + "y_velocity": 0.8629480138519758, + "angular_velocity": 0.0, + "x_acceleration": -12.6041075417005, + "y_acceleration": 0.37051917491252073, + "angular_acceleration": 0.0 + }, + { + "time": 0.9400000000000006, + "x": 4.533245720190088, + "y": 1.1401069963545314, + "angle": 0.0, + "x_velocity": 1.2453784605984737, + "y_velocity": 0.8665987260424612, + "angular_velocity": 0.0, + "x_acceleration": -11.19427135098067, + "y_acceleration": 0.35980659626966194, + "angular_acceleration": 0.0 + }, + { + "time": 0.9500000000000006, + "x": 4.545164785624113, + "y": 1.1487908093469317, + "angle": 0.0, + "x_velocity": 1.1409846082504203, + "y_velocity": 0.8701478879841691, + "angular_velocity": 0.0, + "x_acceleration": -9.664236166401167, + "y_acceleration": 0.35021667966670567, + "angular_acceleration": 0.0 + }, + { + "time": 0.9600000000000006, + "x": 4.5561184520784295, + "y": 1.1575096537405412, + "angle": 0.0, + "x_velocity": 1.0525035920468895, + "y_velocity": 0.8736069529327897, + "angular_velocity": 0.0, + "x_acceleration": -8.011244548891511, + "y_acceleration": 0.3417947521618858, + "angular_acceleration": 0.0 + }, + { + "time": 0.9700000000000006, + "x": 4.566272041693459, + "y": 1.1662626877203346, + "angle": 0.0, + "x_velocity": 0.9811787635125881, + "y_velocity": 0.8769878274145948, + "angular_velocity": 0.0, + "x_acceleration": -6.23253905938202, + "y_acceleration": 0.33458614081343185, + "angular_acceleration": 0.0 + }, + { + "time": 0.9800000000000006, + "x": 4.575803447996808, + "y": 1.1750491908029028, + "angle": 0.0, + "x_velocity": 0.9282810485628232, + "y_velocity": 0.8803028712264411, + "angular_velocity": 0.0, + "x_acceleration": -4.325362258802386, + "y_acceleration": 0.3286361726795768, + "angular_acceleration": 0.0 + }, + { + "time": 0.9900000000000007, + "x": 4.58490341164719, + "y": 1.183868568369158, + "angle": 0.0, + "x_velocity": 0.8951089475036866, + "y_velocity": 0.8835648974357635, + "angular_velocity": 0.0, + "x_acceleration": -2.2869567080825846, + "y_acceleration": 0.3239901748185483, + "angular_acceleration": 0.0 + }, + { + "time": 1.0000000000000007, + "x": 4.5937757961783445, + "y": 1.1927203561970394, + "angle": 0.0, + "x_velocity": 0.882988535031847, + "y_velocity": 0.8867871723805791, + "angular_velocity": 0.0, + "x_acceleration": -0.11456496815297935, + "y_acceleration": 0.32069347428858175, + "angular_acceleration": 0.0 + }, + { + "time": 1.0100000000000007, + "x": 4.602572066676683, + "y": 1.2016061301173964, + "angle": 0.0, + "x_velocity": 0.8735176973154606, + "y_velocity": 0.890551754979354, + "angular_velocity": 0.0, + "x_acceleration": -1.7633176818408716, + "y_acceleration": 0.4311814108717216, + "angular_acceleration": 0.0 + }, + { + "time": 1.0200000000000007, + "x": 4.611192811571181, + "y": 1.210534970587979, + "angle": 0.0, + "x_velocity": 0.8480446471314628, + "y_velocity": 0.8953901642533162, + "angular_velocity": 0.0, + "x_acceleration": -3.315330674598828, + "y_acceleration": 0.5354784440456714, + "angular_acceleration": 0.0 + }, + { + "time": 1.0300000000000007, + "x": 4.619482813401913, + "y": 1.2195173082938402, + "angle": 0.0, + "x_velocity": 0.8075270853014458, + "y_velocity": 0.9012410802099629, + "angular_velocity": 0.0, + "x_acceleration": -4.772543223968248, + "y_acceleration": 0.6337023821282506, + "angular_acceleration": 0.0 + }, + { + "time": 1.0400000000000007, + "x": 4.6272963347532965, + "y": 1.2285629666105247, + "angle": 0.0, + "x_velocity": 0.7529033198715881, + "y_velocity": 0.9080443609399695, + "angular_velocity": 0.0, + "x_acceleration": -6.136894607490536, + "y_acceleration": 0.7259710334372789, + "angular_acceleration": 0.0 + }, + { + "time": 1.0500000000000007, + "x": 4.634496924326334, + "y": 1.237681173384899, + "angle": 0.0, + "x_velocity": 0.685092266112654, + "y_velocity": 0.9157410426171895, + "angular_velocity": 0.0, + "x_acceleration": -7.410324102707092, + "y_acceleration": 0.812402206290576, + "angular_acceleration": 0.0 + }, + { + "time": 1.0600000000000007, + "x": 4.640957223010857, + "y": 1.2468805727159846, + "angle": 0.0, + "x_velocity": 0.6049934465199939, + "y_velocity": 0.9242733394986546, + "angular_velocity": 0.0, + "x_acceleration": -8.594770987159315, + "y_acceleration": 0.8931137090059614, + "angular_acceleration": 0.0 + }, + { + "time": 1.0700000000000007, + "x": 4.646558769957774, + "y": 1.2561692367357888, + "angle": 0.0, + "x_velocity": 0.513486990813544, + "y_velocity": 0.933584643924575, + "angular_velocity": 0.0, + "x_acceleration": -9.692174538388606, + "y_acceleration": 0.9682233499012549, + "angular_acceleration": 0.0 + }, + { + "time": 1.0800000000000007, + "x": 4.651191808651316, + "y": 1.2655546773901376, + "angle": 0.0, + "x_velocity": 0.41143363593782656, + "y_velocity": 0.9436195263183389, + "angular_velocity": 0.0, + "x_acceleration": -10.704474033936373, + "y_acceleration": 1.0378489372942756, + "angular_acceleration": 0.0 + }, + { + "time": 1.0900000000000007, + "x": 4.654755092981282, + "y": 1.2750438582195056, + "angle": 0.0, + "x_velocity": 0.2996747260619501, + "y_velocity": 0.9543237351865124, + "angular_velocity": 0.0, + "x_acceleration": -11.63360875134401, + "y_acceleration": 1.1021082795028438, + "angular_acceleration": 0.0 + }, + { + "time": 1.1000000000000008, + "x": 4.6571556933152864, + "y": 1.2846432061398498, + "angle": 0.0, + "x_velocity": 0.1790322125796086, + "y_velocity": 0.9656441971188404, + "angular_velocity": 0.0, + "x_acceleration": -12.481517968152923, + "y_acceleration": 1.1611191848447793, + "angular_acceleration": 0.0 + }, + { + "time": 1.1100000000000008, + "x": 4.6583088025710016, + "y": 1.2943586232234408, + "angle": 0.0, + "x_velocity": 0.050308654109082654, + "y_velocity": 0.9775290167882452, + "angular_velocity": 0.0, + "x_acceleration": -13.25014096190451, + "y_acceleration": 1.2149994616379005, + "angular_acceleration": 0.0 + }, + { + "time": 1.1200000000000008, + "x": 4.658137542288403, + "y": 1.304195498479694, + "angle": 0.0, + "x_velocity": -0.08571278350676198, + "y_velocity": 0.9899274769508283, + "angular_velocity": 0.0, + "x_acceleration": -13.941417010140173, + "y_acceleration": 1.2638669182000284, + "angular_acceleration": 0.0 + }, + { + "time": 1.1300000000000008, + "x": 4.656572768702025, + "y": 1.314158719636001, + "angle": 0.0, + "x_velocity": -0.2282683272004727, + "y_velocity": 1.0027900384458686, + "angular_velocity": 0.0, + "x_acceleration": -14.557285390401315, + "y_acceleration": 1.3078393628489815, + "angular_acceleration": 0.0 + }, + { + "time": 1.1400000000000008, + "x": 4.653552878813193, + "y": 1.3242526849185632, + "angle": 0.0, + "x_velocity": -0.37661359668001143, + "y_velocity": 1.0160683401958235, + "angular_velocity": 0.0, + "x_acceleration": -15.099685380229335, + "y_acceleration": 1.3470346039025802, + "angular_acceleration": 0.0 + }, + { + "time": 1.1500000000000008, + "x": 4.64902361646228, + "y": 1.3344813148332213, + "angle": 0.0, + "x_velocity": -0.5300236044287537, + "y_velocity": 1.0297151992063285, + "angular_velocity": 0.0, + "x_acceleration": -15.570556257165636, + "y_acceleration": 1.3815704496786443, + "angular_acceleration": 0.0 + }, + { + "time": 1.1600000000000008, + "x": 4.642937878400946, + "y": 1.3448480639462894, + "angle": 0.0, + "x_velocity": -0.6877927557054897, + "y_velocity": 1.0436846105661974, + "angular_velocity": 0.0, + "x_acceleration": -15.971837298751618, + "y_acceleration": 1.4115647084949923, + "angular_acceleration": 0.0 + }, + { + "time": 1.1700000000000008, + "x": 4.635255520364383, + "y": 1.3553559326653848, + "angle": 0.0, + "x_velocity": -0.8492348485444233, + "y_velocity": 1.0579317474474221, + "angular_velocity": 0.0, + "x_acceleration": -16.30546778252868, + "y_acceleration": 1.437135188669445, + "angular_acceleration": 0.0 + }, + { + "time": 1.1800000000000008, + "x": 4.62594316314357, + "y": 1.3660074790202612, + "angle": 0.0, + "x_velocity": -1.013683073755172, + "y_velocity": 1.0724129611051727, + "angular_velocity": 0.0, + "x_acceleration": -16.57338698603823, + "y_acceleration": 1.458399698519821, + "angular_acceleration": 0.0 + }, + { + "time": 1.1900000000000008, + "x": 4.614973998657509, + "y": 1.3768048304436398, + "angle": 0.0, + "x_velocity": -1.180490014922768, + "y_velocity": 1.0870857808777976, + "angular_velocity": 0.0, + "x_acceleration": -16.77753418682167, + "y_acceleration": 1.4754760463639411, + "angular_acceleration": 0.0 + }, + { + "time": 1.2000000000000008, + "x": 4.602327596025476, + "y": 1.3877496955520408, + "angle": 0.0, + "x_velocity": -1.3490276484076569, + "y_velocity": 1.1019089141868235, + "angular_velocity": 0.0, + "x_acceleration": -16.91984866242039, + "y_acceleration": 1.488482040519624, + "angular_acceleration": 0.0 + }, + { + "time": 1.2100000000000009, + "x": 4.587989707639266, + "y": 1.3988433759266152, + "angle": 0.0, + "x_velocity": -1.5186873433456989, + "y_velocity": 1.1168422465369545, + "angular_velocity": 0.0, + "x_acceleration": -17.002269690375797, + "y_acceleration": 1.4975354893046895, + "angular_acceleration": 0.0 + }, + { + "time": 1.2200000000000009, + "x": 4.5719520752354335, + "y": 1.4100867778939783, + "angle": 0.0, + "x_velocity": -1.688879861648166, + "y_velocity": 1.1318468415160745, + "angular_velocity": 0.0, + "x_acceleration": -17.026736548229298, + "y_acceleration": 1.5027542010369577, + "angular_acceleration": 0.0 + }, + { + "time": 1.2300000000000009, + "x": 4.554212235967551, + "y": 1.421480424307039, + "angle": 0.0, + "x_velocity": -1.8590353580017498, + "y_velocity": 1.146884940795244, + "angular_velocity": 0.0, + "x_acceleration": -16.995188513522287, + "y_acceleration": 1.5042559840342473, + "angular_acceleration": 0.0 + }, + { + "time": 1.2400000000000009, + "x": 4.53477332847844, + "y": 1.4330244663258327, + "angle": 0.0, + "x_velocity": -2.028603379868548, + "y_velocity": 1.1619199641287021, + "angular_velocity": 0.0, + "x_acceleration": -16.90956486379617, + "y_acceleration": 1.502158646614379, + "angular_acceleration": 0.0 + }, + { + "time": 1.2500000000000009, + "x": 4.51364389897243, + "y": 1.4447186951983537, + "angle": 0.0, + "x_velocity": -2.197052867486081, + "y_velocity": 1.176916509353867, + "angular_velocity": 0.0, + "x_acceleration": -16.77180487659234, + "y_acceleration": 1.4965799970951719, + "angular_acceleration": 0.0 + }, + { + "time": 1.260000000000001, + "x": 4.490837707287594, + "y": 1.4565625540413862, + "angle": 0.0, + "x_velocity": -2.3638721538672747, + "y_velocity": 1.1918403523913341, + "angular_velocity": 0.0, + "x_acceleration": -16.58384782945221, + "y_acceleration": 1.4876378437944453, + "angular_acceleration": 0.0 + }, + { + "time": 1.270000000000001, + "x": 4.466373532967998, + "y": 1.4685551496213358, + "angle": 0.0, + "x_velocity": -2.528568964800475, + "y_velocity": 1.2066584472448771, + "angular_velocity": 0.0, + "x_acceleration": -16.347632999917174, + "y_acceleration": 1.4754499950300195, + "angular_acceleration": 0.0 + }, + { + "time": 1.280000000000001, + "x": 4.44027498133595, + "y": 1.4806952641350624, + "angle": 0.0, + "x_velocity": -2.69067041884944, + "y_velocity": 1.221338926001448, + "angular_velocity": 0.0, + "x_acceleration": -16.065099665528635, + "y_acceleration": 1.4601342591197142, + "angular_acceleration": 0.0 + }, + { + "time": 1.290000000000001, + "x": 4.412570289564245, + "y": 1.4929813669907104, + "angle": 0.0, + "x_velocity": -2.8497230273533414, + "y_velocity": 1.235851098831178, + "angular_velocity": 0.0, + "x_acceleration": -15.738187103827986, + "y_acceleration": 1.441808444381347, + "angular_acceleration": 0.0 + }, + { + "time": 1.300000000000001, + "x": 4.383292132748405, + "y": 1.5054116265885429, + "angle": 0.0, + "x_velocity": -3.0052926944267644, + "y_velocity": 1.2501654539873743, + "angular_velocity": 0.0, + "x_acceleration": -15.36883459235665, + "y_acceleration": 1.4205903591327402, + "angular_acceleration": 0.0 + }, + { + "time": 1.310000000000001, + "x": 4.35247742997893, + "y": 1.5179839221017697, + "angle": 0.0, + "x_velocity": -3.1569647169597106, + "y_velocity": 1.2642536578065247, + "angular_velocity": 0.0, + "x_acceleration": -14.958981408656005, + "y_acceleration": 1.396597811691712, + "angular_acceleration": 0.0 + }, + { + "time": 1.320000000000001, + "x": 4.320167150413547, + "y": 1.5306958552573837, + "angle": 0.0, + "x_velocity": -3.3043437846175907, + "y_velocity": 1.2780885547082932, + "angular_velocity": 0.0, + "x_acceleration": -14.51056683026747, + "y_acceleration": 1.3699486103760834, + "angular_acceleration": 0.0 + }, + { + "time": 1.330000000000001, + "x": 4.286406119349445, + "y": 1.5435447621169893, + "angle": 0.0, + "x_velocity": -3.4470539798412365, + "y_velocity": 1.2916441671955237, + "angular_velocity": 0.0, + "x_acceleration": -14.025530134732442, + "y_acceleration": 1.340760563503673, + "angular_acceleration": 0.0 + }, + { + "time": 1.340000000000001, + "x": 4.2512428242955345, + "y": 1.5565277248576344, + "angle": 0.0, + "x_velocity": -3.58473877784689, + "y_velocity": 1.3048956958542368, + "angular_velocity": 0.0, + "x_acceleration": -13.505810599592298, + "y_acceleration": 1.3091514793922987, + "angular_acceleration": 0.0 + }, + { + "time": 1.350000000000001, + "x": 4.214729221044681, + "y": 1.5696415835526447, + "angle": 0.0, + "x_velocity": -3.717061046626206, + "y_velocity": 1.3178195193536324, + "angular_velocity": 0.0, + "x_acceleration": -12.953347502388477, + "y_acceleration": 1.2752391663597837, + "angular_acceleration": 0.0 + }, + { + "time": 1.360000000000001, + "x": 4.176920539745961, + "y": 1.5828829479524524, + "angle": 0.0, + "x_velocity": -3.8437030469462505, + "y_velocity": 1.3303931944460883, + "angular_velocity": 0.0, + "x_acceleration": -12.370080120662358, + "y_acceleration": 1.239141432723945, + "angular_acceleration": 0.0 + }, + { + "time": 1.370000000000001, + "x": 4.137875090976899, + "y": 1.5962482092654304, + "angle": 0.0, + "x_velocity": -3.9643664323495162, + "y_velocity": 1.34259545596716, + "angular_velocity": 0.0, + "x_acceleration": -11.757947731955344, + "y_acceleration": 1.2009760868026027, + "angular_acceleration": 0.0 + }, + { + "time": 1.380000000000001, + "x": 4.09765407181572, + "y": 1.6097335519387221, + "angle": 0.0, + "x_velocity": -4.078772249153895, + "y_velocity": 1.3544062168355815, + "angular_velocity": 0.0, + "x_acceleration": -11.118889613808847, + "y_acceleration": 1.1608609369135767, + "angular_acceleration": 0.0 + }, + { + "time": 1.390000000000001, + "x": 4.056321371913592, + "y": 1.6233349654390747, + "angle": 0.0, + "x_velocity": -4.186660936452702, + "y_velocity": 1.3658065680532654, + "angular_velocity": 0.0, + "x_acceleration": -10.454845043764244, + "y_acceleration": 1.1189137913746874, + "angular_acceleration": 0.0 + }, + { + "time": 1.400000000000001, + "x": 4.013943379566876, + "y": 1.6370482560336705, + "angle": 0.0, + "x_velocity": -4.2877923261146575, + "y_velocity": 1.3767787787053019, + "angular_velocity": 0.0, + "x_acceleration": -9.767753299362987, + "y_acceleration": 1.0752524585037535, + "angular_acceleration": 0.0 + }, + { + "time": 1.410000000000001, + "x": 3.9705887877893606, + "y": 1.650869058570958, + "angle": 0.0, + "x_velocity": -4.38194564278391, + "y_velocity": 1.3873062959599594, + "angular_velocity": 0.0, + "x_acceleration": -9.059553658146413, + "y_acceleration": 1.0299947466185932, + "angular_acceleration": 0.0 + }, + { + "time": 1.420000000000001, + "x": 3.926328400384527, + "y": 1.6647928482614853, + "angle": 0.0, + "x_velocity": -4.468919503880006, + "y_velocity": 1.3973737450686854, + "angular_velocity": 0.0, + "x_acceleration": -8.332185397655977, + "y_acceleration": 0.983258464037031, + "angular_acceleration": 0.0 + }, + { + "time": 1.430000000000001, + "x": 3.881234938017774, + "y": 1.6788149524587292, + "angle": 0.0, + "x_velocity": -4.548531919597917, + "y_velocity": 1.4069669293661047, + "angular_velocity": 0.0, + "x_acceleration": -7.587587795433038, + "y_acceleration": 0.9351614190768804, + "angular_acceleration": 0.0 + }, + { + "time": 1.440000000000001, + "x": 3.8353828442886795, + "y": 1.6929305624399307, + "angle": 0.0, + "x_velocity": -4.620620292908033, + "y_velocity": 1.4160728302700205, + "angular_velocity": 0.0, + "x_acceleration": -6.827700129019004, + "y_acceleration": 0.8858214200559638, + "angular_acceleration": 0.0 + }, + { + "time": 1.450000000000001, + "x": 3.78884809180324, + "y": 1.707134745186923, + "angle": 0.0, + "x_velocity": -4.685041419556132, + "y_velocity": 1.4246796072814145, + "angular_velocity": 0.0, + "x_acceleration": -6.054461675955334, + "y_acceleration": 0.8353562752921038, + "angular_acceleration": 0.0 + }, + { + "time": 1.460000000000001, + "x": 3.741707988246114, + "y": 1.7214224551669663, + "angle": 0.0, + "x_velocity": -4.741671488063442, + "y_velocity": 1.4327765979844451, + "angular_velocity": 0.0, + "x_acceleration": -5.269811713783351, + "y_acceleration": 0.7838837931031151, + "angular_acceleration": 0.0 + }, + { + "time": 1.470000000000001, + "x": 3.694040982452871, + "y": 1.7357885461135774, + "angle": 0.0, + "x_velocity": -4.79040607972658, + "y_velocity": 1.4403543180464522, + "angular_velocity": 0.0, + "x_acceleration": -4.475689520044483, + "y_acceleration": 0.7315217818068178, + "angular_acceleration": 0.0 + }, + { + "time": 1.480000000000001, + "x": 3.645926470482242, + "y": 1.7502277828073625, + "angle": 0.0, + "x_velocity": -4.831160168617577, + "y_velocity": 1.4474044612179502, + "angular_velocity": 0.0, + "x_acceleration": -3.6740343722801683, + "y_acceleration": 0.6783880497210353, + "angular_acceleration": 0.0 + }, + { + "time": 1.490000000000001, + "x": 3.5974446016883537, + "y": 1.764734852856849, + "angle": 0.0, + "x_velocity": -4.863868121583902, + "y_velocity": 1.453919899332634, + "angular_velocity": 0.0, + "x_acceleration": -2.8667855480317357, + "y_acceleration": 0.6246004051635845, + "angular_acceleration": 0.0 + }, + { + "time": 1.500000000000001, + "x": 3.5486760847929886, + "y": 1.779304378479317, + "angle": 0.0, + "x_velocity": -4.888483698248405, + "y_velocity": 1.4598946823073757, + "angular_velocity": 0.0, + "x_acceleration": -2.055882324840674, + "y_acceleration": 0.5702766564522856, + "angular_acceleration": 0.0 + }, + { + "time": 1.5100000000000011, + "x": 3.4997019939578173, + "y": 1.793930928281632, + "angle": 0.0, + "x_velocity": -4.904980051009382, + "y_velocity": 1.465324038142227, + "angular_velocity": 0.0, + "x_acceleration": -1.2432639802482797, + "y_acceleration": 0.5155346119049566, + "angular_acceleration": 0.0 + }, + { + "time": 1.5200000000000011, + "x": 3.450603574856653, + "y": 1.8086090290410746, + "angle": 0.0, + "x_velocity": -4.913349725040508, + "y_velocity": 1.4702043729204144, + "angular_velocity": 0.0, + "x_acceleration": -0.4308697917960629, + "y_acceleration": 0.46049207983941987, + "angular_acceleration": 0.0 + }, + { + "time": 1.5300000000000011, + "x": 3.4014620507476954, + "y": 1.8233331774861747, + "angle": 0.0, + "x_velocity": -4.913604658290902, + "y_velocity": 1.474533270808347, + "angular_velocity": 0.0, + "x_acceleration": 0.37936096297462996, + "y_acceleration": 0.40526686857349636, + "angular_acceleration": 0.0 + }, + { + "time": 1.5400000000000011, + "x": 3.3523584285457746, + "y": 1.8380978520775413, + "angle": 0.0, + "x_velocity": -4.905776181485093, + "y_velocity": 1.4783094940556092, + "angular_velocity": 0.0, + "x_acceleration": 1.1854890065223884, + "y_acceleration": 0.34997678642499785, + "angular_acceleration": 0.0 + }, + { + "time": 1.5500000000000012, + "x": 3.3033733048946012, + "y": 1.8528975247886958, + "angle": 0.0, + "x_velocity": -4.889915018123, + "y_velocity": 1.4815329829949642, + "angular_velocity": 0.0, + "x_acceleration": 1.9855750613058305, + "y_acceleration": 0.29473964171175426, + "angular_acceleration": 0.0 + }, + { + "time": 1.5600000000000012, + "x": 3.254586672239004, + "y": 1.8677266728869024, + "angle": 0.0, + "x_velocity": -4.866091284479994, + "y_velocity": 1.4842048560423544, + "angular_velocity": 0.0, + "x_acceleration": 2.7776798497835458, + "y_acceleration": 0.2396732427515773, + "angular_acceleration": 0.0 + }, + { + "time": 1.5700000000000012, + "x": 3.2060777248971863, + "y": 1.882579790714002, + "angle": 0.0, + "x_velocity": -4.834394489606826, + "y_velocity": 1.4863274096968988, + "angular_velocity": 0.0, + "x_acceleration": 3.5598640944141167, + "y_acceleration": 0.1848953978622907, + "angular_acceleration": 0.0 + }, + { + "time": 1.5800000000000012, + "x": 3.157924665132967, + "y": 1.8974514014672408, + "angle": 0.0, + "x_velocity": -4.794933535329667, + "y_velocity": 1.4879041185408957, + "angular_velocity": 0.0, + "x_acceleration": 4.330188517656147, + "y_acceleration": 0.13052391536171282, + "angular_acceleration": 0.0 + }, + { + "time": 1.5900000000000012, + "x": 3.110204509228022, + "y": 1.9123360689801046, + "angle": 0.0, + "x_velocity": -4.7478367162501325, + "y_velocity": 1.488939635239821, + "angular_velocity": 0.0, + "x_acceleration": 5.086713841968262, + "y_acceleration": 0.07667660356766426, + "angular_acceleration": 0.0 + }, + { + "time": 1.6000000000000012, + "x": 3.062992893554135, + "y": 1.9272284095031507, + "angle": 0.0, + "x_velocity": -4.693251719745209, + "y_velocity": 1.4894397905423298, + "angular_velocity": 0.0, + "x_acceleration": 5.827500789808994, + "y_acceleration": 0.02347127079796163, + "angular_acceleration": 0.0 + }, + { + "time": 1.6100000000000012, + "x": 3.016363880645446, + "y": 1.9421231034848379, + "angle": 0.0, + "x_velocity": -4.631345625967333, + "y_velocity": 1.4894115932802547, + "angular_velocity": 0.0, + "x_acceleration": 6.5506100836370535, + "y_acceleration": -0.028974274629574026, + "angular_acceleration": 0.0 + }, + { + "time": 1.6200000000000012, + "x": 2.970389765270692, + "y": 1.9570149073523593, + "angle": 0.0, + "x_velocity": -4.56230490784432, + "y_velocity": 1.4888632303686054, + "angular_velocity": 0.0, + "x_acceleration": 7.254102445910917, + "y_acceleration": -0.08054222439711811, + "angular_acceleration": 0.0 + }, + { + "time": 1.6300000000000012, + "x": 2.9251408805054524, + "y": 1.971898665292474, + "angle": 0.0, + "x_velocity": -4.486335431079423, + "y_velocity": 1.4878040668055719, + "angular_velocity": 0.0, + "x_acceleration": 7.936038599089258, + "y_acceleration": -0.13111477018685758, + "angular_acceleration": 0.0 + }, + { + "time": 1.6400000000000012, + "x": 2.880685403804401, + "y": 1.9867693210323394, + "angle": 0.0, + "x_velocity": -4.403662454151334, + "y_velocity": 1.4862446456725205, + "angular_velocity": 0.0, + "x_acceleration": 8.594479265630653, + "y_acceleration": -0.18057410368097138, + "angular_acceleration": 0.0 + }, + { + "time": 1.6500000000000012, + "x": 2.837089163073542, + "y": 2.001621929620341, + "angle": 0.0, + "x_velocity": -4.314530628314078, + "y_velocity": 1.4841966881339972, + "angular_velocity": 0.0, + "x_acceleration": 9.227485167993677, + "y_acceleration": -0.22880241656163758, + "angular_acceleration": 0.0 + }, + { + "time": 1.6600000000000013, + "x": 2.7944154427424706, + "y": 2.016451669206929, + "angle": 0.0, + "x_velocity": -4.219203997597173, + "y_velocity": 1.4816730934377245, + "angular_velocity": 0.0, + "x_acceleration": 9.833117028636991, + "y_acceleration": -0.2756819005110387, + "angular_acceleration": 0.0 + }, + { + "time": 1.6700000000000013, + "x": 2.7527247898366003, + "y": 2.031253852825442, + "angle": 0.0, + "x_velocity": -4.117965998805534, + "y_velocity": 1.478687938914606, + "angular_velocity": 0.0, + "x_acceleration": 10.409435570019184, + "y_acceleration": -0.32109474721135456, + "angular_acceleration": 0.0 + }, + { + "time": 1.6800000000000013, + "x": 2.7120748200494282, + "y": 2.046023940172947, + "angle": 0.0, + "x_velocity": -4.011119461519474, + "y_velocity": 1.4752564799787211, + "angular_velocity": 0.0, + "x_acceleration": 10.954501514598817, + "y_acceleration": -0.3649231483447677, + "angular_acceleration": 0.0 + }, + { + "time": 1.6900000000000013, + "x": 2.67252002381476, + "y": 2.0607575493910666, + "angle": 0.0, + "x_velocity": -3.898986608094713, + "y_velocity": 1.4713951501273266, + "angular_velocity": 0.0, + "x_acceleration": 11.466375584834452, + "y_acceleration": -0.4070492955934517, + "angular_acceleration": 0.0 + }, + { + "time": 1.7000000000000013, + "x": 2.6341115723789748, + "y": 2.075450468846812, + "angle": 0.0, + "x_velocity": -3.781909053662396, + "y_velocity": 1.4671215609408605, + "angular_velocity": 0.0, + "x_acceleration": 11.943118503184763, + "y_acceleration": -0.44735538063959357, + "angular_acceleration": 0.0 + }, + { + "time": 1.7100000000000013, + "x": 2.596897123873266, + "y": 2.090098668913414, + "angle": 0.0, + "x_velocity": -3.66024780612911, + "y_velocity": 1.4624545020829363, + "angular_velocity": 0.0, + "x_acceleration": 12.382790992108326, + "y_acceleration": -0.4857235951653722, + "angular_acceleration": 0.0 + }, + { + "time": 1.7200000000000013, + "x": 2.56092062938588, + "y": 2.1046983137511566, + "angle": 0.0, + "x_velocity": -3.5343832661767927, + "y_velocity": 1.4574139413003466, + "angular_velocity": 0.0, + "x_acceleration": 12.78345377406373, + "y_acceleration": -0.5220361308529631, + "angular_acceleration": 0.0 + }, + { + "time": 1.7300000000000013, + "x": 2.526222139034356, + "y": 2.119245773088207, + "angle": 0.0, + "x_velocity": -3.404715227262866, + "y_velocity": 1.4520210244230638, + "angular_velocity": 0.0, + "x_acceleration": 13.143167571509565, + "y_acceleration": -0.5561751793845557, + "angular_acceleration": 0.0 + }, + { + "time": 1.7400000000000013, + "x": 2.4928376080378007, + "y": 2.133737634001448, + "angle": 0.0, + "x_velocity": -3.2716628756201125, + "y_velocity": 1.446298075364236, + "angular_velocity": 0.0, + "x_acceleration": 13.459993106904506, + "y_acceleration": -0.5880229324423265, + "angular_acceleration": 0.0 + }, + { + "time": 1.7500000000000013, + "x": 2.46079870278911, + "y": 2.14817071269731, + "angle": 0.0, + "x_velocity": -3.1356647902567403, + "y_velocity": 1.4402685961201893, + "angular_velocity": 0.0, + "x_acceleration": 13.731991102707042, + "y_acceleration": -0.6174615817084472, + "angular_acceleration": 0.0 + }, + { + "time": 1.7600000000000013, + "x": 2.430132606927212, + "y": 2.162542066292601, + "angle": 0.0, + "x_velocity": -2.997178942956417, + "y_velocity": 1.4339572667704317, + "angular_velocity": 0.0, + "x_acceleration": 13.957222281375806, + "y_acceleration": -0.6443733188651137, + "angular_acceleration": 0.0 + }, + { + "time": 1.7700000000000014, + "x": 2.400861827409326, + "y": 2.176849004595343, + "angle": 0.0, + "x_velocity": -2.8566826982781457, + "y_velocity": 1.4273899454776442, + "angular_velocity": 0.0, + "x_acceleration": 14.133747365369459, + "y_acceleration": -0.6686403355944961, + "angular_acceleration": 0.0 + }, + { + "time": 1.7800000000000014, + "x": 2.3730040005832107, + "y": 2.191089101885599, + "angle": 0.0, + "x_velocity": -2.714672813556394, + "y_velocity": 1.4205936684876908, + "angular_velocity": 0.0, + "x_acceleration": 14.259627077146462, + "y_acceleration": -0.690144823578775, + "angular_acceleration": 0.0 + }, + { + "time": 1.7900000000000014, + "x": 2.346571698259395, + "y": 2.205260208696305, + "angle": 0.0, + "x_velocity": -2.571665438901068, + "y_velocity": 1.4135966501296122, + "angular_velocity": 0.0, + "x_acceleration": 14.332922139165618, + "y_acceleration": -0.7087689745001402, + "angular_acceleration": 0.0 + }, + { + "time": 1.8000000000000014, + "x": 2.3215722337834377, + "y": 2.219360463594107, + "angle": 0.0, + "x_velocity": -2.428196117197416, + "y_velocity": 1.4064282828156238, + "angular_velocity": 0.0, + "x_acceleration": 14.351693273885331, + "y_acceleration": -0.7243949800407563, + "angular_acceleration": 0.0 + }, + { + "time": 1.8100000000000014, + "x": 2.2980074681081577, + "y": 2.233388304960185, + "angle": 0.0, + "x_velocity": -2.284819784106176, + "y_velocity": 1.3991191370411262, + "angular_velocity": 0.0, + "x_acceleration": 14.31400120376432, + "y_acceleration": -0.7369050318828148, + "angular_acceleration": 0.0 + }, + { + "time": 1.8200000000000014, + "x": 2.2758736158659065, + "y": 2.247342482771091, + "angle": 0.0, + "x_velocity": -2.142110768063411, + "y_velocity": 1.3917009613846894, + "angular_velocity": 0.0, + "x_acceleration": 14.217906651261103, + "y_acceleration": -0.7461813217084927, + "angular_acceleration": 0.0 + }, + { + "time": 1.8300000000000014, + "x": 2.255161051440779, + "y": 2.261222070379579, + "angle": 0.0, + "x_velocity": -2.000662790280714, + "y_velocity": 1.3842066825080703, + "angular_velocity": 0.0, + "x_acceleration": 14.061470338834397, + "y_acceleration": -0.7521060411999798, + "angular_acceleration": 0.0 + }, + { + "time": 1.8400000000000014, + "x": 2.235854115040887, + "y": 2.275026476295437, + "angle": 0.0, + "x_velocity": -1.861088964744944, + "y_velocity": 1.3766704051561964, + "angular_velocity": 0.0, + "x_acceleration": 13.842752988942635, + "y_acceleration": -0.7545613820394355, + "angular_acceleration": 0.0 + }, + { + "time": 1.8500000000000014, + "x": 2.217930918770601, + "y": 2.288755455966315, + "angle": 0.0, + "x_velocity": -1.72402179821853, + "y_velocity": 1.369127412157181, + "angular_velocity": 0.0, + "x_acceleration": 13.559815324044507, + "y_acceleration": -0.7534295359090581, + "angular_acceleration": 0.0 + }, + { + "time": 1.8600000000000014, + "x": 2.201363152702778, + "y": 2.302409123558563, + "angle": 0.0, + "x_velocity": -1.5901131902392152, + "y_velocity": 1.3616141644223076, + "angular_velocity": 0.0, + "x_acceleration": 13.210718066598645, + "y_acceleration": -0.7485926944910233, + "angular_acceleration": 0.0 + }, + { + "time": 1.8700000000000014, + "x": 2.1861158909510348, + "y": 2.3159879637380585, + "angle": 0.0, + "x_velocity": -1.460034433120164, + "y_velocity": 1.3541683009460441, + "angular_velocity": 0.0, + "x_acceleration": 12.793521939063538, + "y_acceleration": -0.7399330494675045, + "angular_acceleration": 0.0 + }, + { + "time": 1.8800000000000014, + "x": 2.1721473977419645, + "y": 2.32949284345104, + "angle": 0.0, + "x_velocity": -1.334476211950033, + "y_velocity": 1.346828638806035, + "angular_velocity": 0.0, + "x_acceleration": 12.306287663898019, + "y_acceleration": -0.7273327925206967, + "angular_acceleration": 0.0 + }, + { + "time": 1.8900000000000015, + "x": 2.159408933487409, + "y": 2.3429250237049386, + "angle": 0.0, + "x_velocity": -1.2141486045928005, + "y_velocity": 1.3396351731631007, + "angular_velocity": 0.0, + "x_acceleration": 11.747075963560405, + "y_acceleration": -0.7106741153327683, + "angular_acceleration": 0.0 + }, + { + "time": 1.9000000000000015, + "x": 2.147844560856683, + "y": 2.3562861713492076, + "angle": 0.0, + "x_velocity": -1.0997810816878726, + "y_velocity": 1.332629077261243, + "angular_velocity": 0.0, + "x_acceleration": 11.113947560509388, + "y_acceleration": -0.6898392095858981, + "angular_acceleration": 0.0 + }, + { + "time": 1.9100000000000015, + "x": 2.1373909508488484, + "y": 2.3695783708561584, + "angle": 0.0, + "x_velocity": -0.9921225066501336, + "y_velocity": 1.3258527024276394, + "angular_velocity": 0.0, + "x_acceleration": 10.40496317720374, + "y_acceleration": -0.6647102669622811, + "angular_acceleration": 0.0 + }, + { + "time": 1.9200000000000015, + "x": 2.127977188864916, + "y": 2.3828041361017904, + "angle": 0.0, + "x_velocity": -0.8919411356697822, + "y_velocity": 1.3193495780726474, + "angular_velocity": 0.0, + "x_acceleration": 9.618183536101782, + "y_acceleration": -0.6351694791440838, + "angular_acceleration": 0.0 + }, + { + "time": 1.9300000000000015, + "x": 2.119524580780128, + "y": 2.3959664221466204, + "angle": 0.0, + "x_velocity": -0.8000246177125447, + "y_velocity": 1.3131644116897974, + "angular_velocity": 0.0, + "x_acceleration": 8.751669359662287, + "y_acceleration": -0.6010990378134924, + "angular_acceleration": 0.0 + }, + { + "time": 1.9400000000000015, + "x": 2.111946459016199, + "y": 2.409068637016518, + "angle": 0.0, + "x_velocity": -0.7171799945194621, + "y_velocity": 1.3073430888558093, + "angular_velocity": 0.0, + "x_acceleration": 7.803481370343718, + "y_acceleration": -0.5623811346526786, + "angular_acceleration": 0.0 + }, + { + "time": 1.9500000000000015, + "x": 2.1051479886135542, + "y": 2.4221146534835345, + "angle": 0.0, + "x_velocity": -0.6442337006070602, + "y_velocity": 1.3019326732305712, + "angular_velocity": 0.0, + "x_acceleration": 6.771680290604877, + "y_acceleration": -0.5188979613438356, + "angular_acceleration": 0.0 + }, + { + "time": 1.9600000000000015, + "x": 2.099025973303572, + "y": 2.4351088208467373, + "angle": 0.0, + "x_velocity": -0.5820315632672646, + "y_velocity": 1.2969814065571539, + "angular_velocity": 0.0, + "x_acceleration": 5.654326842904368, + "y_acceleration": -0.4705317095691406, + "angular_acceleration": 0.0 + }, + { + "time": 1.9700000000000015, + "x": 2.0934686615808324, + "y": 2.4480559767130403, + "angle": 0.0, + "x_velocity": -0.5314388025673509, + "y_velocity": 1.2925387086618016, + "angular_velocity": 0.0, + "x_acceleration": 4.449481749700453, + "y_acceleration": -0.41716457101077253, + "angular_acceleration": 0.0 + }, + { + "time": 1.9800000000000015, + "x": 2.0883555527753703, + "y": 2.460961458778034, + "angle": 0.0, + "x_velocity": -0.49334003135007265, + "y_velocity": 1.2886551774539408, + "angular_velocity": 0.0, + "x_acceleration": 3.1552057334520214, + "y_acceleration": -0.3586787373508997, + "angular_acceleration": 0.0 + }, + { + "time": 1.9900000000000015, + "x": 2.083557203124913, + "y": 2.4738311166068208, + "angle": 0.0, + "x_velocity": -0.4686392552335832, + "y_velocity": 1.285382588926181, + "angular_velocity": 0.0, + "x_acceleration": 1.7695595166176759, + "y_acceleration": -0.29495640027172243, + "angular_acceleration": 0.0 + }, + { + "time": 2.0000000000000013, + "x": 2.0789350318471334, + "y": 2.4866713234148454, + "angle": 0.0, + "x_velocity": -0.45825987261146467, + "y_velocity": 1.2827738971542966, + "angular_velocity": 0.0, + "x_acceleration": 0.29060382165607845, + "y_acceleration": -0.22587975145537684, + "angular_acceleration": 0.0 + }, + { + "time": 2.010000000000001, + "x": 2.074370396401564, + "y": 2.499494368028881, + "angle": 0.0, + "x_velocity": -0.4543269400349518, + "y_velocity": 1.2824839126596626, + "angular_velocity": 0.0, + "x_acceleration": 0.49477130882167814, + "y_acceleration": 0.16346184200801264, + "angular_acceleration": 0.0 + }, + { + "time": 2.020000000000001, + "x": 2.0698551779193117, + "y": 2.5123335401239273, + "angle": 0.0, + "x_velocity": -0.448388513461146, + "y_velocity": 1.2859556527187652, + "angular_velocity": 0.0, + "x_acceleration": 0.6917186881528833, + "y_acceleration": 0.5265590527639673, + "angular_acceleration": 0.0 + }, + { + "time": 2.0300000000000007, + "x": 2.0654090719416622, + "y": 2.5252251541157347, + "angle": 0.0, + "x_velocity": -0.44051631195724467, + "y_velocity": 1.2929294903086903, + "angular_velocity": 0.0, + "x_acceleration": 0.8815423618789932, + "y_acceleration": 0.8639752416444502, + "angular_acceleration": 0.0 + }, + { + "time": 2.0400000000000005, + "x": 2.0610510616393376, + "y": 2.5382029563178645, + "angle": 0.0, + "x_velocity": -0.43078109056815245, + "y_velocity": 1.3031514320148423, + "angular_velocity": 0.0, + "x_acceleration": 1.0643387322293072, + "y_acceleration": 1.176273769481425, + "angular_acceleration": 0.0 + }, + { + "time": 2.0500000000000003, + "x": 2.0567994274527273, + "y": 2.5512981812777746, + "angle": 0.0, + "x_velocity": -0.4192526403164807, + "y_velocity": 1.3163731180309464, + "angular_velocity": 0.0, + "x_acceleration": 1.2402042014331247, + "y_acceleration": 1.4640179971068543, + "angular_acceleration": 0.0 + }, + { + "time": 2.06, + "x": 2.0526717567321016, + "y": 2.5645396081129, + "angle": 0.0, + "x_velocity": -0.4059997882025478, + "y_velocity": 1.3323518221590467, + "angular_velocity": 0.0, + "x_acceleration": 1.409235171719745, + "y_acceleration": 1.727771285352702, + "angular_acceleration": 0.0 + }, + { + "time": 2.07, + "x": 2.048684953377843, + "y": 2.5779536168467403, + "angle": 0.0, + "x_velocity": -0.39109039720437944, + "y_velocity": 1.3508504518095077, + "angular_velocity": 0.0, + "x_acceleration": 1.5715280453184677, + "y_acceleration": 1.9680969950509315, + "angular_acceleration": 0.0 + }, + { + "time": 2.0799999999999996, + "x": 2.0448552474806627, + "y": 2.5915642447449367, + "angle": 0.0, + "x_velocity": -0.37459136627770784, + "y_velocity": 1.3716375480010123, + "angular_velocity": 0.0, + "x_acceleration": 1.7271792244585917, + "y_acceleration": 2.1855584870335045, + "angular_acceleration": 0.0 + }, + { + "time": 2.0899999999999994, + "x": 2.041198204961826, + "y": 2.6053932426513624, + "angle": 0.0, + "x_velocity": -0.3565686303559726, + "y_velocity": 1.3944872853605643, + "angular_velocity": 0.0, + "x_acceleration": 1.8762851113694168, + "y_acceleration": 2.3807191221323865, + "angular_acceleration": 0.0 + }, + { + "time": 2.099999999999999, + "x": 2.0377287372133766, + "y": 2.6194601313242023, + "angle": 0.0, + "x_velocity": -0.3370871603503202, + "y_velocity": 1.4191794721234865, + "angular_velocity": 0.0, + "x_acceleration": 2.018942108280242, + "y_acceleration": 2.5541422611795395, + "angular_acceleration": 0.0 + }, + { + "time": 2.109999999999999, + "x": 2.034461110738357, + "y": 2.6337822577720322, + "angle": 0.0, + "x_velocity": -0.3162109631496043, + "y_velocity": 1.4454995501334216, + "angular_velocity": 0.0, + "x_acceleration": 2.155246617420367, + "y_acceleration": 2.7063912650069257, + "angular_acceleration": 0.0 + }, + { + "time": 2.1199999999999988, + "x": 2.0314089567910325, + "y": 2.64837485158991, + "angle": 0.0, + "x_velocity": -0.29400308162038513, + "y_velocity": 1.4732385948423314, + "angular_velocity": 0.0, + "x_acceleration": 2.285295041019091, + "y_acceleration": 2.8380294944465105, + "angular_acceleration": 0.0 + }, + { + "time": 2.1299999999999986, + "x": 2.028585281017116, + "y": 2.663251081295453, + "angle": 0.0, + "x_velocity": -0.2705255946069305, + "y_velocity": 1.5021933153104978, + "angular_velocity": 0.0, + "x_acceleration": 2.409183781305713, + "y_acceleration": 2.9496203103302565, + "angular_acceleration": 0.0 + }, + { + "time": 2.1399999999999983, + "x": 2.026002473093988, + "y": 2.678422110664923, + "angle": 0.0, + "x_velocity": -0.24583961693121462, + "y_velocity": 1.532166054206522, + "angular_velocity": 0.0, + "x_acceleration": 2.527009240509533, + "y_acceleration": 3.0417270734901254, + "angular_acceleration": 0.0 + }, + { + "time": 2.149999999999998, + "x": 2.0236723163709205, + "y": 2.6938971550693087, + "angle": 0.0, + "x_velocity": -0.22000529939291916, + "y_velocity": 1.5629647878073258, + "angular_velocity": 0.0, + "x_acceleration": 2.63886782085985, + "y_acceleration": 3.114913144758083, + "angular_acceleration": 0.0 + }, + { + "time": 2.159999999999998, + "x": 2.0216059975093, + "y": 2.709683537810412, + "angle": 0.0, + "x_velocity": -0.1930818287694327, + "y_velocity": 1.5944031259981493, + "angular_velocity": 0.0, + "x_acceleration": 2.7448559245859636, + "y_acceleration": 3.169741884966091, + "angular_acceleration": 0.0 + }, + { + "time": 2.1699999999999977, + "x": 2.0198141161228516, + "y": 2.7257867464569263, + "angle": 0.0, + "x_velocity": -0.16512742781585074, + "y_velocity": 1.626300312272553, + "angular_velocity": 0.0, + "x_acceleration": 2.8450699539171724, + "y_acceleration": 3.2067766549461116, + "angular_acceleration": 0.0 + }, + { + "time": 2.1799999999999975, + "x": 2.0183066944178605, + "y": 2.742210489180524, + "angle": 0.0, + "x_velocity": -0.13619935526497587, + "y_velocity": 1.6584812237324171, + "angular_velocity": 0.0, + "x_acceleration": 2.9396063110827773, + "y_acceleration": 3.2265808155301112, + "angular_acceleration": 0.0 + }, + { + "time": 2.1899999999999973, + "x": 2.017093186833394, + "y": 2.7589567510919366, + "angle": 0.0, + "x_velocity": -0.10635390582731755, + "y_velocity": 1.6907763710879404, + "angular_velocity": 0.0, + "x_acceleration": 3.0285613983120756, + "y_acceleration": 3.2297177275500495, + "angular_acceleration": 0.0 + }, + { + "time": 2.199999999999997, + "x": 2.016182489681529, + "y": 2.7760258505770388, + "angle": 0.0, + "x_velocity": -0.07564641019109232, + "y_velocity": 1.723021898657643, + "angular_velocity": 0.0, + "x_acceleration": 3.1120316178343677, + "y_acceleration": 3.216750751837893, + "angular_acceleration": 0.0 + }, + { + "time": 2.209999999999997, + "x": 2.0155829507875676, + "y": 2.7934164956329357, + "angle": 0.0, + "x_velocity": -0.04413123502222384, + "y_velocity": 1.7550595843683634, + "angular_velocity": 0.0, + "x_acceleration": 3.1901133718789545, + "y_acceleration": 3.1882432492256028, + "angular_acceleration": 0.0 + }, + { + "time": 2.2199999999999966, + "x": 2.0153023791302673, + "y": 2.811125840204036, + "angle": 0.0, + "x_velocity": -0.011861782964342607, + "y_velocity": 1.7867368397552599, + "angular_velocity": 0.0, + "x_acceleration": 3.2629030626751327, + "y_acceleration": 3.1447585805451417, + "angular_acceleration": 0.0 + }, + { + "time": 2.2299999999999964, + "x": 2.0153480544820592, + "y": 2.8291495405181486, + "angle": 0.0, + "x_velocity": 0.021109507361213718, + "y_velocity": 1.8179067099618105, + "angular_velocity": 0.0, + "x_acceleration": 3.3304970924522026, + "y_acceleration": 3.086860106628476, + "angular_acceleration": 0.0 + }, + { + "time": 2.239999999999996, + "x": 2.0157267370492735, + "y": 2.8474818114225537, + "angle": 0.0, + "x_velocity": 0.05473116135540067, + "y_velocity": 1.8484278737398137, + "angular_velocity": 0.0, + "x_acceleration": 3.3929918634394642, + "y_acceleration": 3.015111188307565, + "angular_acceleration": 0.0 + }, + { + "time": 2.249999999999996, + "x": 2.0164446771123603, + "y": 2.8661154827200934, + "angle": 0.0, + "x_velocity": 0.0889526684414665, + "y_velocity": 1.8781646434493864, + "angular_velocity": 0.0, + "x_acceleration": 3.450483777866217, + "y_acceleration": 2.930075186414374, + "angular_acceleration": 0.0 + }, + { + "time": 2.259999999999996, + "x": 2.017507624666114, + "y": 2.885042055505251, + "angle": 0.0, + "x_velocity": 0.12372448206495282, + "y_velocity": 1.9069869650589655, + "angular_velocity": 0.0, + "x_acceleration": 3.5030692379617587, + "y_acceleration": 2.8323154617808655, + "angular_acceleration": 0.0 + }, + { + "time": 2.2699999999999956, + "x": 2.0189208390598963, + "y": 2.9042517585002376, + "angle": 0.0, + "x_velocity": 0.15899801969369387, + "y_velocity": 1.9347704181453078, + "angular_velocity": 0.0, + "x_acceleration": 3.55084464595539, + "y_acceleration": 2.7223953752390058, + "angular_acceleration": 0.0 + }, + { + "time": 2.2799999999999954, + "x": 2.0206890986378587, + "y": 2.9237336043910727, + "angle": 0.0, + "x_velocity": 0.19472566281781706, + "y_velocity": 1.96139621589349, + "angular_velocity": 0.0, + "x_acceleration": 3.5939064040764115, + "y_acceleration": 2.6008782876207555, + "angular_acceleration": 0.0 + }, + { + "time": 2.289999999999995, + "x": 2.0228167103791654, + "y": 2.9434754461636676, + "angle": 0.0, + "x_velocity": 0.23086075694974298, + "y_velocity": 1.9867512050969074, + "angular_velocity": 0.0, + "x_acceleration": 3.6323509145541184, + "y_acceleration": 2.4683275597580736, + "angular_acceleration": 0.0 + }, + { + "time": 2.299999999999995, + "x": 2.025307519538215, + "y": 2.96346403343991, + "angle": 0.0, + "x_velocity": 0.2673576116241845, + "y_velocity": 2.0107278661572754, + "angular_velocity": 0.0, + "x_acceleration": 3.6662745796178147, + "y_acceleration": 2.3253065524829344, + "angular_acceleration": 0.0 + }, + { + "time": 2.3099999999999947, + "x": 2.028164919284867, + "y": 2.9836850688137453, + "angle": 0.0, + "x_velocity": 0.30417150039814844, + "y_velocity": 2.03322431308463, + "angular_velocity": 0.0, + "x_acceleration": 3.695773801496797, + "y_acceleration": 2.1723786266272893, + "angular_acceleration": 0.0 + }, + { + "time": 2.3199999999999945, + "x": 2.0313918603446606, + "y": 3.0041232641872626, + "angle": 0.0, + "x_velocity": 0.3412586608509342, + "y_velocity": 2.054144293497325, + "angular_velocity": 0.0, + "x_acceleration": 3.7209449824203653, + "y_acceleration": 2.010107143023108, + "angular_acceleration": 0.0 + }, + { + "time": 2.3299999999999943, + "x": 2.03499086063904, + "y": 3.0247623971067745, + "angle": 0.0, + "x_velocity": 0.37857629458413383, + "y_velocity": 2.073397188622036, + "angular_velocity": 0.0, + "x_acceleration": 3.741884524617819, + "y_acceleration": 1.8390554625023547, + "angular_acceleration": 0.0 + }, + { + "time": 2.339999999999994, + "x": 2.038964014925577, + "y": 3.045585367098903, + "angle": 0.0, + "x_velocity": 0.41608256722163284, + "y_velocity": 2.0908980132937556, + "angular_velocity": 0.0, + "x_acceleration": 3.758688830318458, + "y_acceleration": 1.6597869458969892, + "angular_acceleration": 0.0 + }, + { + "time": 2.349999999999994, + "x": 2.043313004438194, + "y": 3.06657425200666, + "angle": 0.0, + "x_velocity": 0.45373660840960967, + "y_velocity": 2.106567415955799, + "angular_velocity": 0.0, + "x_acceleration": 3.7714543017515814, + "y_acceleration": 1.4728649540389762, + "angular_acceleration": 0.0 + }, + { + "time": 2.3599999999999937, + "x": 2.0480391065273853, + "y": 3.0877103643255346, + "angle": 0.0, + "x_velocity": 0.49149851181653553, + "y_velocity": 2.120331678659799, + "angular_velocity": 0.0, + "x_acceleration": 3.7802773411464883, + "y_acceleration": 1.2788528477602794, + "angular_acceleration": 0.0 + }, + { + "time": 2.3699999999999934, + "x": 2.0531432043004427, + "y": 3.1089743075395724, + "angle": 0.0, + "x_velocity": 0.5293293351331746, + "y_velocity": 2.1321227170657084, + "angular_velocity": 0.0, + "x_acceleration": 3.785254350732478, + "y_acceleration": 1.0783139878928596, + "angular_acceleration": 0.0 + }, + { + "time": 2.3799999999999932, + "x": 2.0586257962616776, + "y": 3.1303460324574592, + "angle": 0.0, + "x_velocity": 0.5671911000725847, + "y_velocity": 2.1418780804418005, + "angular_velocity": 0.0, + "x_acceleration": 3.7864817327388502, + "y_acceleration": 0.8718117352686807, + "angular_acceleration": 0.0 + }, + { + "time": 2.389999999999993, + "x": 2.0644870059526417, + "y": 3.1518048935486065, + "angle": 0.0, + "x_velocity": 0.6050467923701157, + "y_velocity": 2.1495409516646657, + "angular_velocity": 0.0, + "x_acceleration": 3.784055889394904, + "y_acceleration": 0.659909450719713, + "angular_acceleration": 0.0 + }, + { + "time": 2.399999999999993, + "x": 2.0707265915923516, + "y": 3.1733297052792335, + "angle": 0.0, + "x_velocity": 0.6428603617834113, + "y_velocity": 2.1550601472192175, + "angular_velocity": 0.0, + "x_acceleration": 3.778073222929937, + "y_acceleration": 0.4431704950779052, + "angular_acceleration": 0.0 + }, + { + "time": 2.4099999999999926, + "x": 2.0773439557175144, + "y": 3.19489879844845, + "angle": 0.0, + "x_velocity": 0.6805967220924071, + "y_velocity": 2.158390117198688, + "angular_velocity": 0.0, + "x_acceleration": 3.7686301355732517, + "y_acceleration": 0.2221582291752373, + "angular_acceleration": 0.0 + }, + { + "time": 2.4199999999999924, + "x": 2.084338154822746, + "y": 3.2164900765243387, + "angle": 0.0, + "x_velocity": 0.718221751099333, + "y_velocity": 2.159490945304626, + "angular_velocity": 0.0, + "x_acceleration": 3.755823029554146, + "y_acceleration": -0.0025639861563400146, + "angular_acceleration": 0.0 + }, + { + "time": 2.429999999999992, + "x": 2.0917079090007955, + "y": 3.23808107198004, + "angle": 0.0, + "x_velocity": 0.7557022906287114, + "y_velocity": 2.1583283488469047, + "angular_velocity": 0.0, + "x_acceleration": 3.7397483071019195, + "y_acceleration": -0.23043279008485307, + "angular_acceleration": 0.0 + }, + { + "time": 2.439999999999992, + "x": 2.0994516115827704, + "y": 3.2596490026298337, + "angle": 0.0, + "x_velocity": 0.7930061465273575, + "y_velocity": 2.154873678743713, + "angular_velocity": 0.0, + "x_acceleration": 3.720502370445871, + "y_acceleration": -0.4608848217783521, + "angular_acceleration": 0.0 + }, + { + "time": 2.4499999999999917, + "x": 2.107567338778357, + "y": 3.281170827965227, + "angle": 0.0, + "x_velocity": 0.8301020886643788, + "y_velocity": 2.149103919521561, + "angular_velocity": 0.0, + "x_acceleration": 3.6981816218153005, + "y_acceleration": -0.6933567204048625, + "angular_acceleration": 0.0 + }, + { + "time": 2.4599999999999915, + "x": 2.1160528593160435, + "y": 3.3026233054910277, + "angle": 0.0, + "x_velocity": 0.8669598509311773, + "y_velocity": 2.1410016893152797, + "angular_velocity": 0.0, + "x_acceleration": 3.6728824634395094, + "y_acceleration": -0.9272851251324266, + "angular_acceleration": 0.0 + }, + { + "time": 2.4699999999999913, + "x": 2.1249056440833445, + "y": 3.323983047061438, + "angle": 0.0, + "x_velocity": 0.9035501312414475, + "y_velocity": 2.1305552398680163, + "angular_velocity": 0.0, + "x_acceleration": 3.644701297547793, + "y_acceleration": -1.1621066751290723, + "angular_acceleration": 0.0 + }, + { + "time": 2.479999999999991, + "x": 2.1341228757670234, + "y": 3.3452265752161323, + "angle": 0.0, + "x_velocity": 0.9398445915311758, + "y_velocity": 2.1177584565312397, + "angular_velocity": 0.0, + "x_acceleration": 3.613734526369451, + "y_acceleration": -1.3972580095628473, + "angular_acceleration": 0.0 + }, + { + "time": 2.489999999999991, + "x": 2.143701458493313, + "y": 3.3663303795163397, + "angle": 0.0, + "x_velocity": 0.9758158577586444, + "y_velocity": 2.1026108582647414, + "angular_velocity": 0.0, + "x_acceleration": 3.5800785521337843, + "y_acceleration": -1.6321757676017903, + "angular_acceleration": 0.0 + }, + { + "time": 2.4999999999999907, + "x": 2.1536380274681433, + "y": 3.3872709728809305, + "angle": 0.0, + "x_velocity": 1.0114375199044237, + "y_velocity": 2.0851175976366285, + "angular_velocity": 0.0, + "x_acceleration": 3.543829777070094, + "y_acceleration": -1.866296588413931, + "angular_acceleration": 0.0 + }, + { + "time": 2.5099999999999905, + "x": 2.1639289586173582, + "y": 3.4080249479224975, + "angle": 0.0, + "x_velocity": 1.0466841319713824, + "y_velocity": 2.065289460823327, + "angular_velocity": 0.0, + "x_acceleration": 3.5050846034076746, + "y_acceleration": -2.09905711116731, + "angular_acceleration": 0.0 + }, + { + "time": 2.5199999999999902, + "x": 2.1745703782269445, + "y": 3.4285690332834386, + "angle": 0.0, + "x_velocity": 1.0815312119846783, + "y_velocity": 2.0431428676095864, + "angular_velocity": 0.0, + "x_acceleration": 3.463939433375832, + "y_acceleration": -2.329893975029954, + "angular_acceleration": 0.0 + }, + { + "time": 2.52999999999999, + "x": 2.1855581725832502, + "y": 3.448880149972041, + "angle": 0.0, + "x_velocity": 1.115955241991763, + "y_velocity": 2.0186998713884714, + "angular_velocity": 0.0, + "x_acceleration": 3.420490669203862, + "y_acceleration": -2.5582438191699026, + "angular_acceleration": 0.0 + }, + { + "time": 2.53999999999999, + "x": 2.196887997613211, + "y": 3.468935467698564, + "angle": 0.0, + "x_velocity": 1.1499336680623844, + "y_velocity": 1.991988159161372, + "angular_velocity": 0.0, + "x_acceleration": 3.374834713121061, + "y_acceleration": -2.783543282755211, + "angular_acceleration": 0.0 + }, + { + "time": 2.5499999999999896, + "x": 2.208555288524569, + "y": 3.488712461211323, + "angle": 0.0, + "x_velocity": 1.1834449002885787, + "y_velocity": 1.9630410515379908, + "angular_velocity": 0.0, + "x_acceleration": 3.3270679673567343, + "y_acceleration": -3.0052290049538914, + "angular_acceleration": 0.0 + }, + { + "time": 2.5599999999999894, + "x": 2.220555269446101, + "y": 3.5081889666327712, + "angle": 0.0, + "x_velocity": 1.2164683127846767, + "y_velocity": 1.9318975027363572, + "angular_velocity": 0.0, + "x_acceleration": 3.2772868341401766, + "y_acceleration": -3.2227376249339983, + "angular_acceleration": 0.0 + }, + { + "time": 2.569999999999989, + "x": 2.2328829630678375, + "y": 3.5273432377955873, + "angle": 0.0, + "x_velocity": 1.2489842436873042, + "y_velocity": 1.8986021005828135, + "angular_velocity": 0.0, + "x_acceleration": 3.22558771570069, + "y_acceleration": -3.435505781863551, + "angular_acceleration": 0.0 + }, + { + "time": 2.579999999999989, + "x": 2.2455332002812844, + "y": 3.546154002578747, + "angle": 0.0, + "x_velocity": 1.2809739951553774, + "y_velocity": 1.8632050665120286, + "angular_velocity": 0.0, + "x_acceleration": 3.1720670142675704, + "y_acceleration": -3.642970114910611, + "angular_acceleration": 0.0 + }, + { + "time": 2.5899999999999888, + "x": 2.258500629819653, + "y": 3.5646005192436228, + "angle": 0.0, + "x_velocity": 1.312419833370107, + "y_velocity": 1.8257622555669841, + "angular_velocity": 0.0, + "x_acceleration": 3.116821132070122, + "y_acceleration": -3.8445672632431958, + "angular_acceleration": 0.0 + }, + { + "time": 2.5999999999999885, + "x": 2.2717797278980734, + "y": 3.582662632770053, + "angle": 0.0, + "x_velocity": 1.3433049885349944, + "y_velocity": 1.7863351563989873, + "angular_velocity": 0.0, + "x_acceleration": 3.05994647133764, + "y_acceleration": -4.039733866029334, + "angular_acceleration": 0.0 + }, + { + "time": 2.6099999999999883, + "x": 2.285364807853825, + "y": 3.600320831192434, + "angle": 0.0, + "x_velocity": 1.3736136548758384, + "y_velocity": 1.7449908912676588, + "angular_velocity": 0.0, + "x_acceleration": 3.00153943429943, + "y_acceleration": -4.227906562437084, + "angular_acceleration": 0.0 + }, + { + "time": 2.619999999999988, + "x": 2.299250029786556, + "y": 3.6175563019357986, + "angle": 0.0, + "x_velocity": 1.4033309906407272, + "y_velocity": 1.7018022160409485, + "angular_velocity": 0.0, + "x_acceleration": 2.941696423184781, + "y_acceleration": -4.408521991634483, + "angular_acceleration": 0.0 + }, + { + "time": 2.629999999999988, + "x": 2.3134294101985065, + "y": 3.634350988151898, + "angle": 0.0, + "x_velocity": 1.4324431181000432, + "y_velocity": 1.656847520195115, + "angular_velocity": 0.0, + "x_acceleration": 2.8805138402229993, + "y_acceleration": -4.581016792789555, + "angular_acceleration": 0.0 + }, + { + "time": 2.6399999999999877, + "x": 2.327896831634733, + "y": 3.6506876450552945, + "angle": 0.0, + "x_velocity": 1.4609371235464599, + "y_velocity": 1.610210826814742, + "angular_velocity": 0.0, + "x_acceleration": 2.8180880876433854, + "y_acceleration": -4.744827605070334, + "angular_acceleration": 0.0 + }, + { + "time": 2.6499999999999875, + "x": 2.342646052323328, + "y": 3.6665498962594305, + "angle": 0.0, + "x_velocity": 1.4888010572949468, + "y_velocity": 1.5619817925927304, + "angular_velocity": 0.0, + "x_acceleration": 2.7545155676752353, + "y_acceleration": -4.899391067644867, + "angular_acceleration": 0.0 + }, + { + "time": 2.6599999999999873, + "x": 2.3576707158156487, + "y": 3.681922290112724, + "angle": 0.0, + "x_velocity": 1.5160239336827661, + "y_velocity": 1.512255707830306, + "angular_velocity": 0.0, + "x_acceleration": 2.6898926825478497, + "y_acceleration": -5.044143819681185, + "angular_acceleration": 0.0 + }, + { + "time": 2.669999999999987, + "x": 2.3729643606265327, + "y": 3.696790356034644, + "angle": 0.0, + "x_velocity": 1.5425957310694693, + "y_velocity": 1.4611334964370073, + "angular_velocity": 0.0, + "x_acceleration": 2.62431583449053, + "y_acceleration": -5.1785225003473165, + "angular_acceleration": 0.0 + }, + { + "time": 2.679999999999987, + "x": 2.3885204298745264, + "y": 3.711140660851796, + "angle": 0.0, + "x_velocity": 1.5685073918369072, + "y_velocity": 1.408721715930704, + "angular_velocity": 0.0, + "x_acceleration": 2.5578814257325693, + "y_acceleration": -5.301963748811321, + "angular_acceleration": 0.0 + }, + { + "time": 2.6899999999999866, + "x": 2.4043322809221057, + "y": 3.724960865134012, + "angle": 0.0, + "x_velocity": 1.593750822389215, + "y_velocity": 1.355132557437564, + "angular_velocity": 0.0, + "x_acceleration": 2.490685858503274, + "y_acceleration": -5.4139042042412235, + "angular_acceleration": 0.0 + }, + { + "time": 2.6999999999999864, + "x": 2.4203931950159, + "y": 3.7382397795304168, + "angle": 0.0, + "x_velocity": 1.6183188931528318, + "y_velocity": 1.300483845692102, + "angular_velocity": 0.0, + "x_acceleration": 2.4228255350319383, + "y_acceleration": -5.513780505805066, + "angular_acceleration": 0.0 + }, + { + "time": 2.709999999999986, + "x": 2.4366963869269154, + "y": 3.7509674211055306, + "angle": 0.0, + "x_velocity": 1.6422054385764784, + "y_velocity": 1.2448990390371275, + "angular_velocity": 0.0, + "x_acceleration": 2.3543968575478607, + "y_acceleration": -5.601029292670866, + "angular_acceleration": 0.0 + }, + { + "time": 2.719999999999986, + "x": 2.453235014590753, + "y": 3.763135069675341, + "angle": 0.0, + "x_velocity": 1.6654052571311757, + "y_velocity": 1.1885072294237853, + "angular_velocity": 0.0, + "x_acceleration": 2.2854962282803486, + "y_acceleration": -5.675087204006672, + "angular_acceleration": 0.0 + }, + { + "time": 2.7299999999999858, + "x": 2.470002188747839, + "y": 3.7747353241433874, + "angle": 0.0, + "x_velocity": 1.687914111310237, + "y_velocity": 1.1314431424115332, + "angular_velocity": 0.0, + "x_acceleration": 2.2162200494586948, + "y_acceleration": -5.735390878980539, + "angular_acceleration": 0.0 + }, + { + "time": 2.7399999999999856, + "x": 2.4869909825836434, + "y": 3.785762158836844, + "angle": 0.0, + "x_velocity": 1.7097287276292656, + "y_velocity": 1.0738471371681522, + "angular_velocity": 0.0, + "x_acceleration": 2.1466647233122007, + "y_acceleration": -5.781376956760461, + "angular_acceleration": 0.0 + }, + { + "time": 2.7499999999999853, + "x": 2.504194441368903, + "y": 3.796210979842609, + "angle": 0.0, + "x_velocity": 1.7308467966261605, + "y_velocity": 1.0158652064697504, + "angular_velocity": 0.0, + "x_acceleration": 2.0769266520701635, + "y_acceleration": -5.812482076514527, + "angular_acceleration": 0.0 + }, + { + "time": 2.759999999999985, + "x": 2.5216055920998457, + "y": 3.8060786813433793, + "angle": 0.0, + "x_velocity": 1.751266972861114, + "y_velocity": 0.957648976700729, + "angular_velocity": 0.0, + "x_acceleration": 2.007102237961889, + "y_acceleration": -5.828142877410734, + "angular_acceleration": 0.0 + }, + { + "time": 2.769999999999985, + "x": 2.5392174531384124, + "y": 3.815363701953741, + "angle": 0.0, + "x_velocity": 1.77098887491661, + "y_velocity": 0.8993557078538359, + "angular_velocity": 0.0, + "x_acceleration": 1.9372878832166638, + "y_acceleration": -5.827795998617155, + "angular_acceleration": 0.0 + }, + { + "time": 2.7799999999999847, + "x": 2.5570230438524812, + "y": 3.8240660810562446, + "angle": 0.0, + "x_velocity": 1.790013085397422, + "y_velocity": 0.8411482935301287, + "angular_velocity": 0.0, + "x_acceleration": 1.8675799900638, + "y_acceleration": -5.810878079301766, + "angular_acceleration": 0.0 + }, + { + "time": 2.7899999999999845, + "x": 2.5750153942560874, + "y": 3.8321875151374947, + "angle": 0.0, + "x_velocity": 1.8083411509306226, + "y_velocity": 0.7831952609389834, + "angular_velocity": 0.0, + "x_acceleration": 1.7980749607325919, + "y_acceleration": -5.776825758632654, + "angular_acceleration": 0.0 + }, + { + "time": 2.7999999999999843, + "x": 2.593187554649652, + "y": 3.839731414124235, + "angle": 0.0, + "x_velocity": 1.8259755821655743, + "y_velocity": 0.7256707708980947, + "angular_velocity": 0.0, + "x_acceleration": 1.728869197452342, + "y_acceleration": -5.725075675777845, + "angular_acceleration": 0.0 + }, + { + "time": 2.809999999999984, + "x": 2.611532605260197, + "y": 3.8467029577194216, + "angle": 0.0, + "x_velocity": 1.8429198537739364, + "y_velocity": 0.6687546178334838, + "angular_velocity": 0.0, + "x_acceleration": 1.660059102452344, + "y_acceleration": -5.655064469905376, + "angular_acceleration": 0.0 + }, + { + "time": 2.819999999999984, + "x": 2.6300436658815736, + "y": 3.8531091517383147, + "angle": 0.0, + "x_velocity": 1.8591784044496538, + "y_velocity": 0.6126322297794946, + "angular_velocity": 0.0, + "x_acceleration": 1.5917410779618937, + "y_acceleration": -5.566228780183302, + "angular_acceleration": 0.0 + }, + { + "time": 2.8299999999999836, + "x": 2.648713905514687, + "y": 3.858958884444565, + "angle": 0.0, + "x_velocity": 1.8747566369089697, + "y_velocity": 0.5574946683787623, + "angular_velocity": 0.0, + "x_acceleration": 1.5240115262103018, + "y_acceleration": -5.458005245779624, + "angular_acceleration": 0.0 + }, + { + "time": 2.8399999999999834, + "x": 2.6675365520077134, + "y": 3.8642629828862827, + "angle": 0.0, + "x_velocity": 1.8896609178904182, + "y_velocity": 0.503538628882275, + "angular_velocity": 0.0, + "x_acceleration": 1.4569668494268626, + "y_acceleration": -5.32983050586239, + "angular_acceleration": 0.0 + }, + { + "time": 2.849999999999983, + "x": 2.686504901696324, + "y": 3.8690342692321322, + "angle": 0.0, + "x_velocity": 1.903898578154831, + "y_velocity": 0.45096644014933496, + "angular_velocity": 0.0, + "x_acceleration": 1.3907034498408795, + "y_acceleration": -5.181141199599637, + "angular_acceleration": 0.0 + }, + { + "time": 2.859999999999983, + "x": 2.7056123290439147, + "y": 3.8732876171074158, + "angle": 0.0, + "x_velocity": 1.9174779124853245, + "y_velocity": 0.39998606464754616, + "angular_velocity": 0.0, + "x_acceleration": 1.3253177296816432, + "y_acceleration": -5.011373966159411, + "angular_acceleration": 0.0 + }, + { + "time": 2.869999999999983, + "x": 2.724852296281822, + "y": 3.87704000793015, + "angle": 0.0, + "x_velocity": 1.9304081796873174, + "y_velocity": 0.35081109845284963, + "angular_velocity": 0.0, + "x_acceleration": 1.2609060911784606, + "y_acceleration": -4.819965444709737, + "angular_acceleration": 0.0 + }, + { + "time": 2.8799999999999826, + "x": 2.744218363049545, + "y": 3.8803105872471555, + "angle": 0.0, + "x_velocity": 1.9426996025885108, + "y_velocity": 0.3036607712494881, + "angular_velocity": 0.0, + "x_acceleration": 1.1975649365606245, + "y_acceleration": -4.6063522744186685, + "angular_acceleration": 0.0 + }, + { + "time": 2.8899999999999824, + "x": 2.763704196034974, + "y": 3.8831207210701306, + "angle": 0.0, + "x_velocity": 1.9543633680389103, + "y_velocity": 0.25875994633005384, + "angular_velocity": 0.0, + "x_acceleration": 1.135390668057438, + "y_acceleration": -4.369971094454229, + "angular_acceleration": 0.0 + }, + { + "time": 2.899999999999982, + "x": 2.7833035786146127, + "y": 3.885494052211748, + "angle": 0.0, + "x_velocity": 1.9654116269108073, + "y_velocity": 0.21633912059543015, + "angular_velocity": 0.0, + "x_acceleration": 1.0744796878982008, + "y_acceleration": -4.110258543984472, + "angular_acceleration": 0.0 + }, + { + "time": 2.909999999999982, + "x": 2.8030104204937967, + "y": 3.8874565566217285, + "angle": 0.0, + "x_velocity": 1.975857494098785, + "y_velocity": 0.17663442455482325, + "angular_velocity": 0.0, + "x_acceleration": 1.0149283983122164, + "y_acceleration": -3.8266512621773785, + "angular_acceleration": 0.0 + }, + { + "time": 2.9199999999999817, + "x": 2.8228187673469187, + "y": 3.889036599722928, + "angle": 0.0, + "x_velocity": 1.9857150485197255, + "y_velocity": 0.139887622325773, + "angular_velocity": 0.0, + "x_acceleration": 0.9568332015287719, + "y_acceleration": -3.5185858882010876, + "angular_acceleration": 0.0 + }, + { + "time": 2.9299999999999815, + "x": 2.8427228104576505, + "y": 3.8902649927474124, + "angle": 0.0, + "x_velocity": 1.9949993331127978, + "y_velocity": 0.10634611163413155, + "angular_velocity": 0.0, + "x_acceleration": 0.9002904997771815, + "y_acceleration": -3.185499061223524, + "angular_acceleration": 0.0 + }, + { + "time": 2.9399999999999813, + "x": 2.8627168963591725, + "y": 3.89117504907256, + "angle": 0.0, + "x_velocity": 2.0037263548394724, + "y_velocity": 0.07626292381408106, + "angular_velocity": 0.0, + "x_acceleration": 0.8453966952867304, + "y_acceleration": -2.826827420412812, + "angular_acceleration": 0.0 + }, + { + "time": 2.949999999999981, + "x": 2.882795536474383, + "y": 3.8918026405571164, + "angle": 0.0, + "x_velocity": 2.0119130846835005, + "y_velocity": 0.049896723808103616, + "angular_velocity": 0.0, + "x_acceleration": 0.7922481902867364, + "y_acceleration": -2.442007604936933, + "angular_acceleration": 0.0 + }, + { + "time": 2.959999999999981, + "x": 2.902953416756138, + "y": 3.892186253877315, + "angle": 0.0, + "x_velocity": 2.0195774576509375, + "y_velocity": 0.027511810166998885, + "angular_velocity": 0.0, + "x_acceleration": 0.7409413870064725, + "y_acceleration": -2.030476253963954, + "angular_acceleration": 0.0 + }, + { + "time": 2.9699999999999807, + "x": 2.9231854073274604, + "y": 3.892367046862913, + "angle": 0.0, + "x_velocity": 2.0267383727701267, + "y_velocity": 0.009378115049923252, + "angular_velocity": 0.0, + "x_acceleration": 0.6915726876752633, + "y_acceleration": -1.5916700066619, + "angular_acceleration": 0.0 + }, + { + "time": 2.9799999999999804, + "x": 2.9434865721217682, + "y": 3.892388904833328, + "angle": 0.0, + "x_velocity": 2.033415693091706, + "y_velocity": -0.00422879577569546, + "angular_velocity": 0.0, + "x_acceleration": 0.644238494522396, + "y_acceleration": -1.1250255021987954, + "angular_acceleration": 0.0 + }, + { + "time": 2.9899999999999802, + "x": 2.963852178523098, + "y": 3.8922984969336705, + "angle": 0.0, + "x_velocity": 2.0396302456885995, + "y_velocity": -0.013027722934083386, + "angular_velocity": 0.0, + "x_acceleration": 0.5990352097771687, + "y_acceleration": -0.6299793797426787, + "angular_acceleration": 0.0 + }, + { + "time": 2.99999999999998, + "x": 2.9842777070063264, + "y": 3.892145332470861, + "angle": 0.0, + "x_velocity": 2.0454038216560377, + "y_velocity": -0.016731833441134825, + "angular_velocity": 0.0, + "x_acceleration": 0.5560592356688794, + "y_acceleration": -0.105968278461674, + "angular_acceleration": 0.0 + }, + { + "time": 3.00999999999998, + "x": 3.0047708003386595, + "y": 3.8919554240608267, + "angle": 0.0, + "x_velocity": 2.054322491643255, + "y_velocity": -0.02295193745480957, + "angular_velocity": 0.0, + "x_acceleration": 1.22066162533628, + "y_acceleration": -1.127243822616687, + "angular_acceleration": 0.0 + }, + { + "time": 3.0199999999999796, + "x": 3.025385612749173, + "y": 3.89165332615109, + "angle": 0.0, + "x_velocity": 2.069678220422382, + "y_velocity": -0.039062756871759495, + "angular_velocity": 0.0, + "x_acceleration": 1.8436138928904908, + "y_acceleration": -2.0843334602604995, + "angular_acceleration": 0.0 + }, + { + "time": 3.0299999999999794, + "x": 3.0461844466095673, + "y": 3.8911433186728246, + "angle": 0.0, + "x_velocity": 2.0910587937374965, + "y_velocity": -0.06442909566121872, + "angular_velocity": 0.0, + "x_acceleration": 2.4257734313746377, + "y_acceleration": -2.9785697982643238, + "angular_acceleration": 0.0 + }, + { + "time": 3.039999999999979, + "x": 3.067225525018632, + "y": 3.890335966887172, + "angle": 0.0, + "x_velocity": 2.118060571263122, + "y_velocity": -0.09842908386115948, + "angular_velocity": 0.0, + "x_acceleration": 2.967997633833307, + "y_acceleration": -3.8112854435025803, + "angular_acceleration": 0.0 + }, + { + "time": 3.049999999999979, + "x": 3.0885630775415547, + "y": 3.8891479881245514, + "angle": 0.0, + "x_velocity": 2.1502884866042256, + "y_velocity": -0.1404541775782982, + "angular_velocity": 0.0, + "x_acceleration": 3.4711438933110847, + "y_acceleration": -4.583813002849688, + "angular_acceleration": 0.0 + }, + { + "time": 3.0599999999999787, + "x": 3.1102474259492254, + "y": 3.887502118523971, + "angle": 0.0, + "x_velocity": 2.1873560472962215, + "y_velocity": -0.18990915898809554, + "angular_velocity": 0.0, + "x_acceleration": 3.936069602852556, + "y_acceleration": -5.297485083180066, + "angular_acceleration": 0.0 + }, + { + "time": 3.0699999999999785, + "x": 3.132325069957542, + "y": 3.8853269797723406, + "angle": 0.0, + "x_velocity": 2.228885334804969, + "y_velocity": -0.24621213633475628, + "angular_velocity": 0.0, + "x_acceleration": 4.363632155502309, + "y_acceleration": -5.953634291368136, + "angular_acceleration": 0.0 + }, + { + "time": 3.0799999999999783, + "x": 3.154838772966709, + "y": 3.8825569458437847, + "angle": 0.0, + "x_velocity": 2.274507004526775, + "y_velocity": -0.3087945439312294, + "angular_velocity": 0.0, + "x_acceleration": 4.754688944304925, + "y_acceleration": -6.553593234288315, + "angular_acceleration": 0.0 + }, + { + "time": 3.089999999999978, + "x": 3.17782764780055, + "y": 3.8791320097389526, + "angle": 0.0, + "x_velocity": 2.32386028578839, + "y_velocity": -0.37710114215920826, + "angular_velocity": 0.0, + "x_acceleration": 5.110097362304995, + "y_acceleration": -7.098694518815025, + "angular_acceleration": 0.0 + }, + { + "time": 3.099999999999978, + "x": 3.201327242445807, + "y": 3.8749976502243353, + "angle": 0.0, + "x_velocity": 2.3765929818470135, + "y_velocity": -0.4505900174691301, + "angular_velocity": 0.0, + "x_acceleration": 5.430714802547102, + "y_acceleration": -7.590270751822686, + "angular_acceleration": 0.0 + }, + { + "time": 3.1099999999999777, + "x": 3.225369625791446, + "y": 3.870104698571574, + "angle": 0.0, + "x_velocity": 2.432361469890286, + "y_velocity": -0.5287325823801765, + "angular_velocity": 0.0, + "x_acceleration": 5.717398658075834, + "y_acceleration": -8.029654540185717, + "angular_acceleration": 0.0 + }, + { + "time": 3.1199999999999775, + "x": 3.249983473367962, + "y": 3.8644092052967753, + "angle": 0.0, + "x_velocity": 2.4908307010362982, + "y_velocity": -0.6110135754802736, + "angular_velocity": 0.0, + "x_acceleration": 5.971006321935774, + "y_acceleration": -8.418178490778535, + "angular_acceleration": 0.0 + }, + { + "time": 3.1299999999999772, + "x": 3.2751941530866824, + "y": 3.8578723068998237, + "angle": 0.0, + "x_velocity": 2.5516742003335846, + "y_velocity": -0.6969310614260911, + "angular_velocity": 0.0, + "x_acceleration": 6.1923951871715115, + "y_acceleration": -8.757175210475566, + "angular_acceleration": 0.0 + }, + { + "time": 3.139999999999977, + "x": 3.3010238109790744, + "y": 3.850460092603692, + "angle": 0.0, + "x_velocity": 2.6145740667611266, + "y_velocity": -0.7859964309430433, + "angular_velocity": 0.0, + "x_acceleration": 6.382422646827628, + "y_acceleration": -9.047977306151223, + "angular_acceleration": 0.0 + }, + { + "time": 3.149999999999977, + "x": 3.327491456936044, + "y": 3.842143471093754, + "angle": 0.0, + "x_velocity": 2.6792209732283507, + "y_velocity": -0.8777344008252884, + "angular_velocity": 0.0, + "x_acceleration": 6.541946093948713, + "y_acceleration": -9.29191738467993, + "angular_acceleration": 0.0 + }, + { + "time": 3.1599999999999766, + "x": 3.3546130504472464, + "y": 3.8328980372570998, + "angle": 0.0, + "x_velocity": 2.7453141665751297, + "y_velocity": -0.9716830139357294, + "angular_velocity": 0.0, + "x_acceleration": 6.671822921579354, + "y_acceleration": -9.490328052936107, + "angular_acceleration": 0.0 + }, + { + "time": 3.1699999999999764, + "x": 3.3824015863403862, + "y": 3.822703938921848, + "angle": 0.0, + "x_velocity": 2.8125614675717827, + "y_velocity": -1.067393639206013, + "angular_velocity": 0.0, + "x_acceleration": 6.77291052276413, + "y_acceleration": -9.644541917794168, + "angular_acceleration": 0.0 + }, + { + "time": 3.179999999999976, + "x": 3.410867180520524, + "y": 3.811545743596454, + "angle": 0.0, + "x_velocity": 2.8806792709190723, + "y_velocity": -1.1644309716365293, + "angular_velocity": 0.0, + "x_acceleration": 6.846066290547634, + "y_acceleration": -9.755891586128545, + "angular_acceleration": 0.0 + }, + { + "time": 3.189999999999976, + "x": 3.44001715570938, + "y": 3.7994123052090267, + "angle": 0.0, + "x_velocity": 2.9493925452482097, + "y_velocity": -1.2623730322964155, + "angular_velocity": 0.0, + "x_acceleration": 6.892147617974446, + "y_acceleration": -9.825709664813642, + "angular_acceleration": 0.0 + }, + { + "time": 3.1999999999999758, + "x": 3.4698561271846398, + "y": 3.7862966308466426, + "angle": 0.0, + "x_velocity": 3.0184348331208515, + "y_velocity": -1.360811168323549, + "angular_velocity": 0.0, + "x_acceleration": 6.912011898089159, + "y_acceleration": -9.855328760723891, + "angular_acceleration": 0.0 + }, + { + "time": 3.2099999999999755, + "x": 3.500386088519256, + "y": 3.772195747494651, + "angle": 0.0, + "x_velocity": 3.0875482510290975, + "y_velocity": -1.4593500529245542, + "angular_velocity": 0.0, + "x_acceleration": 6.906516523936355, + "y_acceleration": -9.846081480733705, + "angular_acceleration": 0.0 + }, + { + "time": 3.2199999999999753, + "x": 3.531606497320755, + "y": 3.757110568775996, + "angle": 0.0, + "x_velocity": 3.1564834893954985, + "y_velocity": -1.557607685374799, + "angular_velocity": 0.0, + "x_acceleration": 6.876518888560617, + "y_acceleration": -9.799300431717507, + "angular_acceleration": 0.0 + }, + { + "time": 3.229999999999975, + "x": 3.563514360970543, + "y": 3.7410457616905193, + "angle": 0.0, + "x_velocity": 3.2249998125730466, + "y_velocity": -1.6552153910183944, + "angular_velocity": 0.0, + "x_acceleration": 6.822876385006536, + "y_acceleration": -9.716318220549717, + "angular_acceleration": 0.0 + }, + { + "time": 3.239999999999975, + "x": 3.5961043223632045, + "y": 3.724009613354282, + "angle": 0.0, + "x_velocity": 3.2928650588451815, + "y_velocity": -1.751817821268199, + "angular_velocity": 0.0, + "x_acceleration": 6.746446406318695, + "y_acceleration": -9.59846745410475, + "angular_acceleration": 0.0 + }, + { + "time": 3.2499999999999747, + "x": 3.629368745645815, + "y": 3.706013897738871, + "angle": 0.0, + "x_velocity": 3.359855640425787, + "y_velocity": -1.8470729536058097, + "angular_velocity": 0.0, + "x_acceleration": 6.648086345541683, + "y_acceleration": -9.447080739257032, + "angular_acceleration": 0.0 + }, + { + "time": 3.2599999999999745, + "x": 3.6632978019572358, + "y": 3.6870737424107136, + "angle": 0.0, + "x_velocity": 3.425756543459196, + "y_velocity": -1.940652091581574, + "angular_velocity": 0.0, + "x_acceleration": 6.52865359572008, + "y_acceleration": -9.263490682880981, + "angular_acceleration": 0.0 + }, + { + "time": 3.2699999999999743, + "x": 3.6978795551674297, + "y": 3.667207495270391, + "angle": 0.0, + "x_velocity": 3.490361328020185, + "y_velocity": -2.0322398648145796, + "angular_velocity": 0.0, + "x_acceleration": 6.389005549898478, + "y_acceleration": -9.049029891851013, + "angular_acceleration": 0.0 + }, + { + "time": 3.279999999999974, + "x": 3.7331000476167553, + "y": 3.646436591291947, + "angle": 0.0, + "x_velocity": 3.553472128113978, + "y_velocity": -2.121534228992658, + "angular_velocity": 0.0, + "x_acceleration": 6.229999601121461, + "y_acceleration": -8.805030973041553, + "angular_acceleration": 0.0 + }, + { + "time": 3.289999999999974, + "x": 3.7689433858552768, + "y": 3.6247854192622064, + "angle": 0.0, + "x_velocity": 3.6148996516762417, + "y_velocity": -2.208246465872389, + "angular_velocity": 0.0, + "x_acceleration": 6.052493142433614, + "y_acceleration": -8.532826533327018, + "angular_acceleration": 0.0 + }, + { + "time": 3.2999999999999736, + "x": 3.805391826382068, + "y": 3.6022811885200845, + "angle": 0.0, + "x_velocity": 3.6744631805730936, + "y_velocity": -2.2921011832790925, + "angular_velocity": 0.0, + "x_acceleration": 5.857343566879525, + "y_acceleration": -8.233749179581832, + "angular_acceleration": 0.0 + }, + { + "time": 3.3099999999999734, + "x": 3.8424258613845157, + "y": 3.5789537956958966, + "angle": 0.0, + "x_velocity": 3.7319905706010927, + "y_velocity": -2.372836315106835, + "angular_velocity": 0.0, + "x_acceleration": 5.645408267503774, + "y_acceleration": -7.909131518680399, + "angular_acceleration": 0.0 + }, + { + "time": 3.319999999999973, + "x": 3.8800243044776237, + "y": 3.554835691450677, + "angle": 0.0, + "x_velocity": 3.7873182514872434, + "y_velocity": -2.4502031213184248, + "angular_velocity": 0.0, + "x_acceleration": 5.417544637350954, + "y_acceleration": -7.560306157497162, + "angular_acceleration": 0.0 + }, + { + "time": 3.329999999999973, + "x": 3.9181643764433183, + "y": 3.5299617472154856, + "angle": 0.0, + "x_velocity": 3.840291226889, + "y_velocity": -2.5239661879454167, + "angular_velocity": 0.0, + "x_acceleration": 5.174610069465648, + "y_acceleration": -7.188605702906525, + "angular_acceleration": 0.0 + }, + { + "time": 3.3399999999999728, + "x": 3.9568217909697547, + "y": 3.5043691219307247, + "angle": 0.0, + "x_velocity": 3.8907630743942607, + "y_velocity": -2.593903427088109, + "angular_velocity": 0.0, + "x_acceleration": 4.9174619568924465, + "y_acceleration": -6.795362761782913, + "angular_acceleration": 0.0 + }, + { + "time": 3.3499999999999726, + "x": 3.995970840390616, + "y": 3.4780971287854503, + "angle": 0.0, + "x_velocity": 3.93859594552137, + "y_velocity": -2.6598060769155434, + "angular_velocity": 0.0, + "x_acceleration": 4.646957692675921, + "y_acceleration": -6.381909941000746, + "angular_acceleration": 0.0 + }, + { + "time": 3.3599999999999723, + "x": 4.035584481424423, + "y": 3.4511871019566813, + "angle": 0.0, + "x_velocity": 3.9836605657191155, + "y_velocity": -2.721478701665508, + "angular_velocity": 0.0, + "x_acceleration": 4.363954669860671, + "y_acceleration": -5.9495798474344355, + "angular_acceleration": 0.0 + }, + { + "time": 3.369999999999972, + "x": 4.075634420913837, + "y": 3.4236822633487183, + "angle": 0.0, + "x_velocity": 4.025836234366734, + "y_velocity": -2.7787391916445316, + "angular_velocity": 0.0, + "x_acceleration": 4.069310281491287, + "y_acceleration": -5.499705087958411, + "angular_acceleration": 0.0 + }, + { + "time": 3.379999999999972, + "x": 4.116091201564962, + "y": 3.3956275893324515, + "angle": 0.0, + "x_velocity": 4.065010824773908, + "y_velocity": -2.8314187632278895, + "angular_velocity": 0.0, + "x_acceleration": 3.763881920612336, + "y_acceleration": -5.033618269447095, + "angular_acceleration": 0.0 + }, + { + "time": 3.3899999999999717, + "x": 4.156924287686654, + "y": 3.3670696774846745, + "angle": 0.0, + "x_velocity": 4.101080784180763, + "y_velocity": -2.8793619588596013, + "angular_velocity": 0.0, + "x_acceleration": 3.448526980268424, + "y_acceleration": -4.5526519987749055, + "angular_acceleration": 0.0 + }, + { + "time": 3.3999999999999715, + "x": 4.1981021509298175, + "y": 3.338056613327398, + "angle": 0.0, + "x_velocity": 4.133951133757872, + "y_velocity": -2.922426647052429, + "angular_velocity": 0.0, + "x_acceleration": 3.124102853504125, + "y_acceleration": -4.058138882816243, + "angular_acceleration": 0.0 + }, + { + "time": 3.4099999999999713, + "x": 4.239592356026722, + "y": 3.30863783706716, + "angle": 0.0, + "x_velocity": 4.163535468606259, + "y_velocity": -2.9604840223878837, + "angular_velocity": 0.0, + "x_acceleration": 2.7914669333640205, + "y_acceleration": -3.551411528445552, + "angular_acceleration": 0.0 + }, + { + "time": 3.419999999999971, + "x": 4.281361646530292, + "y": 3.2788640103343396, + "angle": 0.0, + "x_velocity": 4.189755957757383, + "y_velocity": -2.993418605516216, + "angular_velocity": 0.0, + "x_acceleration": 2.451476612892712, + "y_acceleration": -3.033802542537245, + "angular_acceleration": 0.0 + }, + { + "time": 3.429999999999971, + "x": 4.323376030553424, + "y": 3.248786882922471, + "angle": 0.0, + "x_velocity": 4.212543344173154, + "y_velocity": -3.021128243156417, + "angular_velocity": 0.0, + "x_acceleration": 2.1049892851347796, + "y_acceleration": -2.5066445319657475, + "angular_acceleration": 0.0 + }, + { + "time": 3.4399999999999706, + "x": 4.3656008665082835, + "y": 3.2184591595275553, + "angle": 0.0, + "x_velocity": 4.231836944745936, + "y_velocity": -3.043524108096234, + "angular_velocity": 0.0, + "x_acceleration": 1.7528623431347974, + "y_acceleration": -1.9712701036054447, + "angular_acceleration": 0.0 + }, + { + "time": 3.4499999999999704, + "x": 4.408000948845615, + "y": 3.1879343664873687, + "angle": 0.0, + "x_velocity": 4.247584650298526, + "y_velocity": -3.060530699192144, + "angular_velocity": 0.0, + "x_acceleration": 1.3959531799373668, + "y_acceleration": -1.429011864330807, + "angular_acceleration": 0.0 + }, + { + "time": 3.45999999999997, + "x": 4.450540593794037, + "y": 3.1572667185207828, + "angle": 0.0, + "x_velocity": 4.259742925584173, + "y_velocity": -3.072085841369381, + "angular_velocity": 0.0, + "x_acceleration": 1.0351191885870676, + "y_acceleration": -0.8812024210162228, + "angular_acceleration": 0.0 + }, + { + "time": 3.46999999999997, + "x": 4.49318372509936, + "y": 3.126510985467073, + "angle": 0.0, + "x_velocity": 4.268276809286571, + "y_velocity": -3.0781406856219173, + "angular_velocity": 0.0, + "x_acceleration": 0.6712177621284852, + "y_acceleration": -0.32917438053612, + "angular_acceleration": 0.0 + }, + { + "time": 3.47999999999997, + "x": 4.535893959763878, + "y": 3.0957223590252267, + "angle": 0.0, + "x_velocity": 4.273159914019862, + "y_velocity": -3.0786597090124657, + "angular_velocity": 0.0, + "x_acceleration": 0.30510629360619745, + "y_acceleration": 0.2257396502350808, + "angular_acceleration": 0.0 + }, + { + "time": 3.4899999999999696, + "x": 4.578634693785681, + "y": 3.0649563194932674, + "angle": 0.0, + "x_velocity": 4.274374426328633, + "y_velocity": -3.0736207146724928, + "angular_velocity": 0.0, + "x_acceleration": -0.06235782393518008, + "y_acceleration": 0.7822070644229555, + "angular_acceleration": 0.0 + }, + { + "time": 3.4999999999999694, + "x": 4.621369187897957, + "y": 3.0342685025075538, + "angle": 0.0, + "x_velocity": 4.271911106687912, + "y_velocity": -3.0630148318022012, + "angular_velocity": 0.0, + "x_acceleration": -0.4303171974511031, + "y_acceleration": 1.3388952551530942, + "angular_acceleration": 0.0 + }, + { + "time": 3.509999999999969, + "x": 4.664060653308298, + "y": 3.0037145657821034, + "angle": 0.0, + "x_velocity": 4.265769289503178, + "y_velocity": -3.0468465156705395, + "angular_velocity": 0.0, + "x_acceleration": -0.7979144338969668, + "y_acceleration": 1.8944716155510974, + "angular_acceleration": 0.0 + }, + { + "time": 3.519999999999969, + "x": 4.706672337438, + "y": 2.973350055847898, + "angle": 0.0, + "x_velocity": 4.255956883110356, + "y_velocity": -3.0251335476152024, + "angular_velocity": 0.0, + "x_acceleration": -1.1642921402281665, + "y_acceleration": 2.447603538742495, + "angular_acceleration": 0.0 + }, + { + "time": 3.5299999999999687, + "x": 4.749167609661372, + "y": 2.9432302747921995, + "angle": 0.0, + "x_velocity": 4.242490369775812, + "y_velocity": -2.9979070350426253, + "angular_velocity": 0.0, + "x_acceleration": -1.5285929234001472, + "y_acceleration": 2.996958417852902, + "angular_acceleration": 0.0 + }, + { + "time": 3.5399999999999685, + "x": 4.7915100470450405, + "y": 2.9134101469978613, + "angle": 0.0, + "x_velocity": 4.225394805696364, + "y_velocity": -2.965211411427993, + "angular_velocity": 0.0, + "x_acceleration": -1.889959390368297, + "y_acceleration": 3.5412036460078724, + "angular_acceleration": 0.0 + }, + { + "time": 3.5499999999999683, + "x": 4.8336635200872475, + "y": 2.883944085882642, + "angle": 0.0, + "x_velocity": 4.204703820999276, + "y_velocity": -2.9271044363152354, + "angular_velocity": 0.0, + "x_acceleration": -2.2475341480880466, + "y_acceleration": 4.079006616333018, + "angular_acceleration": 0.0 + }, + { + "time": 3.559999999999968, + "x": 4.875592278457164, + "y": 2.8548858606385163, + "angle": 0.0, + "x_velocity": 4.180459619742249, + "y_velocity": -2.883657195317019, + "angular_velocity": 0.0, + "x_acceleration": -2.600459803514809, + "y_acceleration": 4.609034721953897, + "angular_acceleration": 0.0 + }, + { + "time": 3.569999999999968, + "x": 4.917261036734192, + "y": 2.82628846297099, + "angle": 0.0, + "x_velocity": 4.152712979913439, + "y_velocity": -2.8349541001147553, + "angular_velocity": 0.0, + "x_acceleration": -2.9478789636040155, + "y_acceleration": 5.129955355996124, + "angular_acceleration": 0.0 + }, + { + "time": 3.5799999999999677, + "x": 4.9586350601472615, + "y": 2.7982039738384104, + "angle": 0.0, + "x_velocity": 4.1215232534314445, + "y_velocity": -2.7810928884586064, + "angular_velocity": 0.0, + "x_acceleration": -3.288934235311018, + "y_acceleration": 5.640435911585222, + "angular_acceleration": 0.0 + }, + { + "time": 3.5899999999999674, + "x": 4.999680250314147, + "y": 2.7706834301912773, + "angle": 0.0, + "x_velocity": 4.086958366145311, + "y_velocity": -2.722184624167485, + "angular_velocity": 0.0, + "x_acceleration": -3.622768225591294, + "y_acceleration": 6.139143781846833, + "angular_acceleration": 0.0 + }, + { + "time": 3.5999999999999672, + "x": 5.040363230980759, + "y": 2.74377669171156, + "angle": 0.0, + "x_velocity": 4.049094817834523, + "y_velocity": -2.658353697129014, + "angular_velocity": 0.0, + "x_acceleration": -3.948523541400224, + "y_acceleration": 6.62474635990646, + "angular_acceleration": 0.0 + }, + { + "time": 3.609999999999967, + "x": 5.080651433760461, + "y": 2.717532307552009, + "angle": 0.0, + "x_velocity": 4.008017682209026, + "y_velocity": -2.589737823299611, + "angular_velocity": 0.0, + "x_acceleration": -4.265342789693257, + "y_acceleration": 7.0959110388897955, + "angular_acceleration": 0.0 + }, + { + "time": 3.619999999999967, + "x": 5.1205131838733635, + "y": 2.6919973830754635, + "angle": 0.0, + "x_velocity": 3.9638206069091977, + "y_velocity": -2.5164880447043902, + "angular_velocity": 0.0, + "x_acceleration": -4.572368577425763, + "y_acceleration": 7.551305211922305, + "angular_acceleration": 0.0 + }, + { + "time": 3.6299999999999666, + "x": 5.159917785885638, + "y": 2.6672174465941687, + "angle": 0.0, + "x_velocity": 3.9166058135058615, + "y_velocity": -2.4387687294372498, + "angular_velocity": 0.0, + "x_acceleration": -4.868743511553184, + "y_acceleration": 7.989596272129624, + "angular_acceleration": 0.0 + }, + { + "time": 3.6399999999999664, + "x": 5.198835609448811, + "y": 2.643236316109092, + "angle": 0.0, + "x_velocity": 3.866484097500301, + "y_velocity": -2.3567575716607987, + "angular_velocity": 0.0, + "x_acceleration": -5.153610199030922, + "y_acceleration": 8.409451612637326, + "angular_acceleration": 0.0 + }, + { + "time": 3.649999999999966, + "x": 5.2372381750390815, + "y": 2.620095966049222, + "angle": 0.0, + "x_velocity": 3.8135748283242297, + "y_velocity": -2.2706455916064225, + "angular_velocity": 0.0, + "x_acceleration": -5.426111246814422, + "y_acceleration": 8.80953862657104, + "angular_acceleration": 0.0 + }, + { + "time": 3.659999999999966, + "x": 5.275098239696609, + "y": 2.597836394010897, + "angle": 0.0, + "x_velocity": 3.7580059493398066, + "y_velocity": -2.1806371355742122, + "angular_velocity": 0.0, + "x_acceleration": -5.685389261859015, + "y_acceleration": 9.18852470705621, + "angular_acceleration": 0.0 + }, + { + "time": 3.6699999999999657, + "x": 5.312389882764831, + "y": 2.57649548749711, + "angle": 0.0, + "x_velocity": 3.699913977839662, + "y_velocity": -2.0869498759330405, + "angular_velocity": 0.0, + "x_acceleration": -5.930586851120218, + "y_acceleration": 9.545077247218572, + "angular_acceleration": 0.0 + }, + { + "time": 3.6799999999999655, + "x": 5.349088591629767, + "y": 2.556108890656815, + "angle": 0.0, + "x_velocity": 3.639444005046835, + "y_velocity": -1.9898148111205014, + "angular_velocity": 0.0, + "x_acceleration": -6.160846621553404, + "y_acceleration": 9.87786364018362, + "angular_acceleration": 0.0 + }, + { + "time": 3.6899999999999653, + "x": 5.385171347459311, + "y": 2.5367098710242573, + "angle": 0.0, + "x_velocity": 3.5767496961148364, + "y_velocity": -1.889476265642946, + "angular_velocity": 0.0, + "x_acceleration": -6.37531118011394, + "y_acceleration": 10.185551279076932, + "angular_acceleration": 0.0 + }, + { + "time": 3.699999999999965, + "x": 5.420616710942553, + "y": 2.518329186258266, + "angle": 0.0, + "x_velocity": 3.5119932901276165, + "y_velocity": -1.7861918900754592, + "angular_velocity": 0.0, + "x_acceleration": -6.573123133757321, + "y_acceleration": 10.46680755702414, + "angular_acceleration": 0.0 + }, + { + "time": 3.709999999999965, + "x": 5.455404908029065, + "y": 2.500994950881576, + "angle": 0.0, + "x_velocity": 3.445345600099568, + "y_velocity": -1.6802326610618703, + "angular_velocity": 0.0, + "x_acceleration": -6.75342508943892, + "y_acceleration": 10.720299867150771, + "angular_acceleration": 0.0 + }, + { + "time": 3.7199999999999647, + "x": 5.48951791566823, + "y": 2.484732503020147, + "angle": 0.0, + "x_velocity": 3.376986012975527, + "y_velocity": -1.5718828813147638, + "angular_velocity": 0.0, + "x_acceleration": -6.915359654114127, + "y_acceleration": 10.944695602582414, + "angular_acceleration": 0.0 + }, + { + "time": 3.7299999999999645, + "x": 5.522939547548514, + "y": 2.4695642711424646, + "angle": 0.0, + "x_velocity": 3.307102489630788, + "y_velocity": -1.4614401796154546, + "angular_velocity": 0.0, + "x_acceleration": -7.0580694347383925, + "y_acceleration": 11.138662156444667, + "angular_acceleration": 0.0 + }, + { + "time": 3.7399999999999642, + "x": 5.5556555398368035, + "y": 2.455509640798853, + "angle": 0.0, + "x_velocity": 3.235891564871082, + "y_velocity": -1.3492155108140196, + "angular_velocity": 0.0, + "x_acceleration": -7.180697038267134, + "y_acceleration": 11.300866921863147, + "angular_acceleration": 0.0 + }, + { + "time": 3.749999999999964, + "x": 5.58765363691768, + "y": 2.4425848213608026, + "angle": 0.0, + "x_velocity": 3.1635583474325824, + "y_velocity": -1.2355331558292626, + "angular_velocity": 0.0, + "x_acceleration": -7.282385071655746, + "y_acceleration": 11.429977291963368, + "angular_acceleration": 0.0 + }, + { + "time": 3.759999999999964, + "x": 5.618923677132752, + "y": 2.4308027127602636, + "angle": 0.0, + "x_velocity": 3.090316519981913, + "y_velocity": -1.12073072164873, + "angular_velocity": 0.0, + "x_acceleration": -7.362276141859667, + "y_acceleration": 11.524660659870946, + "angular_acceleration": 0.0 + }, + { + "time": 3.7699999999999636, + "x": 5.649457678519941, + "y": 2.4201727722289688, + "angle": 0.0, + "x_velocity": 3.016388339116162, + "y_velocity": -1.0051591413287397, + "angular_velocity": 0.0, + "x_acceleration": -7.419512855834256, + "y_acceleration": 11.583584418711453, + "angular_acceleration": 0.0 + }, + { + "time": 3.7799999999999634, + "x": 5.679249924552789, + "y": 2.4107008810377457, + "angle": 0.0, + "x_velocity": 2.9420046353628155, + "y_velocity": -0.8891826739943127, + "angular_velocity": 0.0, + "x_acceleration": -7.45323782053498, + "y_acceleration": 11.605415961610433, + "angular_acceleration": 0.0 + }, + { + "time": 3.789999999999963, + "x": 5.708297049879773, + "y": 2.402389211235826, + "angle": 0.0, + "x_velocity": 2.86740481317986, + "y_velocity": -0.7731789048392521, + "angular_velocity": 0.0, + "x_acceleration": -7.462593642917227, + "y_acceleration": 11.588822681693543, + "angular_acceleration": 0.0 + }, + { + "time": 3.799999999999963, + "x": 5.73659812606359, + "y": 2.3952360923901623, + "angle": 0.0, + "x_velocity": 2.7928368509556876, + "y_velocity": -0.6575387451260859, + "angular_velocity": 0.0, + "x_acceleration": -7.446722929936442, + "y_acceleration": 11.532471972086313, + "angular_acceleration": 0.0 + }, + { + "time": 3.8099999999999627, + "x": 5.764154747320484, + "y": 2.389235878324736, + "angle": 0.0, + "x_velocity": 2.718557301009156, + "y_velocity": -0.5426664321860848, + "angular_velocity": 0.0, + "x_acceleration": -7.404768288548013, + "y_acceleration": 11.435031225914301, + "angular_acceleration": 0.0 + }, + { + "time": 3.8199999999999625, + "x": 5.790971116259537, + "y": 2.38437881385987, + "angle": 0.0, + "x_velocity": 2.6448312895895683, + "y_velocity": -0.42897952941926576, + "angular_velocity": 0.0, + "x_acceleration": -7.335872325707371, + "y_acceleration": 11.295167836303136, + "angular_acceleration": 0.0 + }, + { + "time": 3.8299999999999623, + "x": 5.817054129621971, + "y": 2.380650901551551, + "angle": 0.0, + "x_velocity": 2.571932516876668, + "y_velocity": -0.3169089262944027, + "angular_velocity": 0.0, + "x_acceleration": -7.239177648369889, + "y_acceleration": 11.111549196378391, + "angular_acceleration": 0.0 + }, + { + "time": 3.839999999999962, + "x": 5.842413464020467, + "y": 2.378033768430724, + "angle": 0.0, + "x_velocity": 2.500143256980639, + "y_velocity": -0.20689883834899092, + "angular_velocity": 0.0, + "x_acceleration": -7.113826863490999, + "y_acceleration": 10.882842699265552, + "angular_acceleration": 0.0 + }, + { + "time": 3.849999999999962, + "x": 5.867061661678447, + "y": 2.3765045327426266, + "angle": 0.0, + "x_velocity": 2.4297543579421372, + "y_velocity": -0.09940680718930395, + "angular_velocity": 0.0, + "x_acceleration": -6.958962578026146, + "y_acceleration": 10.607715738090377, + "angular_acceleration": 0.0 + }, + { + "time": 3.8599999999999617, + "x": 5.891014216169411, + "y": 2.3760356706860772, + "angle": 0.0, + "x_velocity": 2.361065241732227, + "y_velocity": 0.005096299509695257, + "angular_velocity": 0.0, + "x_acceleration": -6.773727398930745, + "y_acceleration": 10.284835705978338, + "angular_acceleration": 0.0 + }, + { + "time": 3.8699999999999615, + "x": 5.914289658156202, + "y": 2.376594883152811, + "angle": 0.0, + "x_velocity": 2.2943839042524488, + "y_velocity": 0.10612628800421575, + "angular_velocity": 0.0, + "x_acceleration": -6.557263933160186, + "y_acceleration": 9.912869996055008, + "angular_acceleration": 0.0 + }, + { + "time": 3.8799999999999613, + "x": 5.936909641130342, + "y": 2.378144962466779, + "angle": 0.0, + "x_velocity": 2.2300269153347543, + "y_velocity": 0.2031856384818198, + "angular_velocity": 0.0, + "x_acceleration": -6.308714787669857, + "y_acceleration": 9.490486001445987, + "angular_acceleration": 0.0 + }, + { + "time": 3.889999999999961, + "x": 5.958899027151316, + "y": 2.3806436591234634, + "angle": 0.0, + "x_velocity": 2.1683194187416, + "y_velocity": 0.2957635050612666, + "angular_velocity": 0.0, + "x_acceleration": -6.0272225694152155, + "y_acceleration": 9.016351115276876, + "angular_acceleration": 0.0 + }, + { + "time": 3.899999999999961, + "x": 5.980285972585902, + "y": 2.3840435485291858, + "angle": 0.0, + "x_velocity": 2.1095951321658255, + "y_velocity": 0.383335715792569, + "angular_velocity": 0.0, + "x_acceleration": -5.71192988535168, + "y_acceleration": 8.48913273067322, + "angular_acceleration": 0.0 + }, + { + "time": 3.9099999999999606, + "x": 6.0011020138474445, + "y": 2.38829189774043, + "angle": 0.0, + "x_velocity": 2.0541963472307465, + "y_velocity": 0.4653647726570256, + "angular_velocity": 0.0, + "x_acceleration": -5.361979342434637, + "y_acceleration": 7.907498240760674, + "angular_acceleration": 0.0 + }, + { + "time": 3.9199999999999604, + "x": 6.021382153135174, + "y": 2.393330532203154, + "angle": 0.0, + "x_velocity": 2.002473929490126, + "y_velocity": 0.5412998515671745, + "angular_velocity": 0.0, + "x_acceleration": -4.976513547619476, + "y_acceleration": 7.270115038664585, + "angular_acceleration": 0.0 + }, + { + "time": 3.92999999999996, + "x": 6.041164944173517, + "y": 2.3990957024920805, + "angle": 0.0, + "x_velocity": 1.9547873184281634, + "y_velocity": 0.6105768023668006, + "angular_velocity": 0.0, + "x_acceleration": -4.554675107861698, + "y_acceleration": 6.5756505175109226, + "angular_acceleration": 0.0 + }, + { + "time": 3.93999999999996, + "x": 6.06049257795139, + "y": 2.4055179510500437, + "angle": 0.0, + "x_velocity": 1.9115045274595097, + "y_velocity": 0.6726181488309564, + "angular_velocity": 0.0, + "x_acceleration": -4.0956066301166345, + "y_acceleration": 5.822772070424861, + "angular_acceleration": 0.0 + }, + { + "time": 3.9499999999999598, + "x": 6.079410968461507, + "y": 2.412521978927277, + "angle": 0.0, + "x_velocity": 1.8730021439292734, + "y_velocity": 0.7268330886659271, + "angular_velocity": 0.0, + "x_acceleration": -3.5984507213397023, + "y_acceleration": 5.010147090532342, + "angular_acceleration": 0.0 + }, + { + "time": 3.9599999999999596, + "x": 6.097969838439694, + "y": 2.4200265125207334, + "angle": 0.0, + "x_velocity": 1.8396653291129752, + "y_velocity": 0.7726174935093226, + "angular_velocity": 0.0, + "x_acceleration": -3.0623499884863747, + "y_acceleration": 4.1364429709586545, + "angular_acceleration": 0.0 + }, + { + "time": 3.9699999999999593, + "x": 6.116222805104173, + "y": 2.4279441703133937, + "angle": 0.0, + "x_velocity": 1.811887818216622, + "y_velocity": 0.8093539089299284, + "angular_velocity": 0.0, + "x_acceleration": -2.48644703851204, + "y_acceleration": 3.2003271048295403, + "angular_acceleration": 0.0 + }, + { + "time": 3.979999999999959, + "x": 6.134227465894886, + "y": 2.4361813296135963, + "angle": 0.0, + "x_velocity": 1.7900719203766258, + "y_velocity": 0.8364115544278121, + "angular_velocity": 0.0, + "x_acceleration": -1.8698844783720858, + "y_acceleration": 2.2004668852705436, + "angular_acceleration": 0.0 + }, + { + "time": 3.989999999999959, + "x": 6.152045484212791, + "y": 2.4446379932943216, + "angle": 0.0, + "x_velocity": 1.774628518659874, + "y_velocity": 0.8531463234343093, + "angular_velocity": 0.0, + "x_acceleration": -1.211804915021986, + "y_acceleration": 1.1355297054072935, + "angular_acceleration": 0.0 + }, + { + "time": 3.9999999999999587, + "x": 6.169742675159163, + "y": 2.4532076565325305, + "angle": 0.0, + "x_velocity": 1.7659770700637054, + "y_velocity": 0.8589007833120306, + "angular_velocity": 0.0, + "x_acceleration": -0.5113509554171003, + "y_acceleration": 0.004182958365220202, + "angular_acceleration": 0.0 + }, + { + "time": 4.009999999999959, + "x": 6.187370595705955, + "y": 2.461822878126933, + "angle": 0.0, + "x_velocity": 1.7589868828734916, + "y_velocity": 0.8667038505323537, + "angular_velocity": 0.0, + "x_acceleration": -0.883450734820167, + "y_acceleration": 1.5404046589580604, + "angular_acceleration": 0.0 + }, + { + "time": 4.019999999999959, + "x": 6.204910331484995, + "y": 2.4705913470767222, + "angle": 0.0, + "x_velocity": 1.7483721776594139, + "y_velocity": 0.889391632284343, + "angular_velocity": 0.0, + "x_acceleration": -1.236313826597308, + "y_acceleration": 2.9814530975149, + "angular_acceleration": 0.0 + }, + { + "time": 4.0299999999999585, + "x": 6.222326593223785, + "y": 2.4796571845873876, + "angle": 0.0, + "x_velocity": 1.7343235433053676, + "y_velocity": 0.9260222129324762, + "angular_velocity": 0.0, + "x_acceleration": -1.5702958292279512, + "y_acceleration": 4.329291671019481, + "angular_acceleration": 0.0 + }, + { + "time": 4.039999999999958, + "x": 6.239585979758741, + "y": 2.4891551908779213, + "angle": 0.0, + "x_velocity": 1.717028012710397, + "y_velocity": 0.975673310811207, + "angular_velocity": 0.0, + "x_acceleration": -1.885752341196173, + "y_acceleration": 5.585883776466955, + "angular_acceleration": 0.0 + }, + { + "time": 4.049999999999958, + "x": 6.256656942475347, + "y": 2.4992110415205087, + "angle": 0.0, + "x_velocity": 1.696669062788706, + "y_velocity": 1.03744227822494, + "angular_velocity": 0.0, + "x_acceleration": -2.183038960986051, + "y_acceleration": 6.7531928108524735, + "angular_acceleration": 0.0 + }, + { + "time": 4.059999999999958, + "x": 6.2735097497483, + "y": 2.509941483780232, + "angle": 0.0, + "x_velocity": 1.6734266144696577, + "y_velocity": 1.110446101448031, + "angular_velocity": 0.0, + "x_acceleration": -2.46251128708166, + "y_acceleration": 7.8331821711711855, + "angular_acceleration": 0.0 + }, + { + "time": 4.069999999999958, + "x": 6.290116451381671, + "y": 2.521454532954763, + "angle": 0.0, + "x_velocity": 1.6474770326977748, + "y_velocity": 1.193821400724788, + "angular_velocity": 0.0, + "x_acceleration": -2.724524917967077, + "y_acceleration": 8.827815254418242, + "angular_acceleration": 0.0 + }, + { + "time": 4.079999999999957, + "x": 6.306450843049053, + "y": 2.5338496687140677, + "angle": 0.0, + "x_velocity": 1.618993126432738, + "y_velocity": 1.2867244302694703, + "angular_velocity": 0.0, + "x_acceleration": -2.9694354521263797, + "y_acceleration": 9.739055457588798, + "angular_acceleration": 0.0 + }, + { + "time": 4.089999999999957, + "x": 6.322488430733707, + "y": 2.5472180314401065, + "angle": 0.0, + "x_velocity": 1.5881441486493881, + "y_velocity": 1.3883310782662885, + "angular_velocity": 0.0, + "x_acceleration": -3.197598488043642, + "y_acceleration": 10.568866177677997, + "angular_acceleration": 0.0 + }, + { + "time": 4.099999999999957, + "x": 6.338206395168721, + "y": 2.561642618566529, + "angle": 0.0, + "x_velocity": 1.5550957963377263, + "y_velocity": 1.497836866869405, + "angular_velocity": 0.0, + "x_acceleration": -3.409369624202943, + "y_acceleration": 11.319210811680994, + "angular_acceleration": 0.0 + }, + { + "time": 4.109999999999957, + "x": 6.353583556277161, + "y": 2.5771984809183768, + "angle": 0.0, + "x_velocity": 1.5200102105029103, + "y_velocity": 1.6144569522029335, + "angular_velocity": 0.0, + "x_acceleration": -3.6051044590883565, + "y_acceleration": 11.992052756592939, + "angular_acceleration": 0.0 + }, + { + "time": 4.119999999999957, + "x": 6.368600337612212, + "y": 2.593952919051783, + "angle": 0.0, + "x_velocity": 1.4830459761652601, + "y_velocity": 1.737426124360939, + "angular_velocity": 0.0, + "x_acceleration": -3.785158591183961, + "y_acceleration": 12.589355409408986, + "angular_acceleration": 0.0 + }, + { + "time": 4.129999999999956, + "x": 6.383238730797349, + "y": 2.6119656795936708, + "angle": 0.0, + "x_velocity": 1.4443581223602522, + "y_velocity": 1.865998807407439, + "angular_velocity": 0.0, + "x_acceleration": -3.9498876189738312, + "y_acceleration": 13.113082167124281, + "angular_acceleration": 0.0 + }, + { + "time": 4.139999999999956, + "x": 6.397482259966472, + "y": 2.631289151581453, + "angle": 0.0, + "x_velocity": 1.4040981221385238, + "y_velocity": 1.9994490593764007, + "angular_velocity": 0.0, + "x_acceleration": -4.099647140942045, + "y_acceleration": 13.565196426733976, + "angular_acceleration": 0.0 + }, + { + "time": 4.149999999999956, + "x": 6.411315946204058, + "y": 2.651968562802734, + "angle": 0.0, + "x_velocity": 1.3624138925658713, + "y_velocity": 2.1370705722717447, + "angular_velocity": 0.0, + "x_acceleration": -4.23479275557268, + "y_acceleration": 13.947661585233227, + "angular_acceleration": 0.0 + }, + { + "time": 4.159999999999956, + "x": 6.42472627198533, + "y": 2.6740421761350026, + "angle": 0.0, + "x_velocity": 1.3194497947232504, + "y_velocity": 2.2781766720673415, + "angular_velocity": 0.0, + "x_acceleration": -4.355680061349808, + "y_acceleration": 14.262441039617176, + "angular_acceleration": 0.0 + }, + { + "time": 4.1699999999999555, + "x": 6.437701145616386, + "y": 2.6975414858853406, + "angle": 0.0, + "x_velocity": 1.2753466337067754, + "y_velocity": 2.4221003187070145, + "angular_velocity": 0.0, + "x_acceleration": -4.46266465675751, + "y_acceleration": 14.511498186880981, + "angular_acceleration": 0.0 + }, + { + "time": 4.179999999999955, + "x": 6.450229865674365, + "y": 2.722491414130116, + "angle": 0.0, + "x_velocity": 1.23024165862772, + "y_velocity": 2.5681941061045386, + "angular_velocity": 0.0, + "x_acceleration": -4.55610214027986, + "y_acceleration": 14.696796424019785, + "angular_acceleration": 0.0 + }, + { + "time": 4.189999999999955, + "x": 6.462303085447596, + "y": 2.748910507054684, + "angle": 0.0, + "x_velocity": 1.1842685626125176, + "y_velocity": 2.715830262143638, + "angular_velocity": 0.0, + "x_acceleration": -4.6363481104009345, + "y_acceleration": 14.820299148028749, + "angular_acceleration": 0.0 + }, + { + "time": 4.199999999999955, + "x": 6.473912777375744, + "y": 2.776811131293086, + "angle": 0.0, + "x_velocity": 1.1375574828027606, + "y_velocity": 2.8644006486779907, + "angular_velocity": 0.0, + "x_acceleration": -4.703758165604811, + "y_acceleration": 14.883969755903015, + "angular_acceleration": 0.0 + }, + { + "time": 4.209999999999955, + "x": 6.485052197489968, + "y": 2.8061996702677527, + "angle": 0.0, + "x_velocity": 1.0902350003552004, + "y_velocity": 3.0133167615312275, + "angular_velocity": 0.0, + "x_acceleration": -4.758687904375567, + "y_acceleration": 14.889771644637747, + "angular_acceleration": 0.0 + }, + { + "time": 4.2199999999999545, + "x": 6.495715849853071, + "y": 2.8370767205291982, + "angle": 0.0, + "x_velocity": 1.042424140441748, + "y_velocity": 3.162009730496925, + "angular_velocity": 0.0, + "x_acceleration": -4.801492925197276, + "y_acceleration": 14.839668211228075, + "angular_acceleration": 0.0 + }, + { + "time": 4.229999999999954, + "x": 6.505899450999649, + "y": 2.8694372880957246, + "angle": 0.0, + "x_velocity": 0.9942443722494738, + "y_velocity": 3.3099303193386174, + "angular_velocity": 0.0, + "x_acceleration": -4.832528826554015, + "y_acceleration": 14.73562285266917, + "angular_acceleration": 0.0 + }, + { + "time": 4.239999999999954, + "x": 6.515599894376247, + "y": 2.9032709847931155, + "angle": 0.0, + "x_velocity": 0.9458116089806062, + "y_velocity": 3.456548925789788, + "angular_velocity": 0.0, + "x_acceleration": -4.852151206929862, + "y_acceleration": 14.579598965956164, + "angular_acceleration": 0.0 + }, + { + "time": 4.249999999999954, + "x": 6.524815214781505, + "y": 2.9385622245943432, + "angle": 0.0, + "x_velocity": 0.8972382078525346, + "y_velocity": 3.601355581553872, + "angular_velocity": 0.0, + "x_acceleration": -4.860715664808891, + "y_acceleration": 14.373559948084221, + "angular_acceleration": 0.0 + }, + { + "time": 4.259999999999954, + "x": 6.533544552806318, + "y": 2.9752904199592605, + "angle": 0.0, + "x_velocity": 0.8486329700978064, + "y_velocity": 3.743859952304253, + "angular_velocity": 0.0, + "x_acceleration": -4.8585777986751815, + "y_acceleration": 14.119469196048492, + "angular_acceleration": 0.0 + }, + { + "time": 4.269999999999953, + "x": 6.541788119273975, + "y": 3.013430178174307, + "angle": 0.0, + "x_velocity": 0.8001011409641283, + "y_velocity": 3.8835913376842734, + "angular_velocity": 0.0, + "x_acceleration": -4.846093207012808, + "y_acceleration": 13.819290106844118, + "angular_acceleration": 0.0 + }, + { + "time": 4.279999999999953, + "x": 6.549547159680322, + "y": 3.052951497692202, + "angle": 0.0, + "x_velocity": 0.7517444097143671, + "y_velocity": 4.0200986713072195, + "angular_velocity": 0.0, + "x_acceleration": -4.823617488305847, + "y_acceleration": 13.474986077466259, + "angular_acceleration": 0.0 + }, + { + "time": 4.289999999999953, + "x": 6.556823918633912, + "y": 3.0938199644716513, + "angle": 0.0, + "x_velocity": 0.7036609096265488, + "y_velocity": 4.152950520756331, + "angular_velocity": 0.0, + "x_acceleration": -4.791506241038376, + "y_acceleration": 13.088520504910072, + "angular_acceleration": 0.0 + }, + { + "time": 4.299999999999953, + "x": 6.563621604296147, + "y": 3.1359969483170387, + "angle": 0.0, + "x_velocity": 0.655945217993857, + "y_velocity": 4.281735087584803, + "angular_velocity": 0.0, + "x_acceleration": -4.750115063694469, + "y_acceleration": 12.661856786170688, + "angular_acceleration": 0.0 + }, + { + "time": 4.3099999999999525, + "x": 6.569944352821442, + "y": 3.1794397992181342, + "angle": 0.0, + "x_velocity": 0.6086883561246356, + "y_velocity": 4.4060602073157815, + "angular_velocity": 0.0, + "x_acceleration": -4.699799554758205, + "y_acceleration": 12.196958318243261, + "angular_acceleration": 0.0 + }, + { + "time": 4.319999999999952, + "x": 6.5757971927973715, + "y": 3.224102043689786, + "angle": 0.0, + "x_velocity": 0.5619777893423891, + "y_velocity": 4.525553349442354, + "angular_velocity": 0.0, + "x_acceleration": -4.64091531271366, + "y_acceleration": 11.69578849812297, + "angular_acceleration": 0.0 + }, + { + "time": 4.329999999999952, + "x": 6.581186009684819, + "y": 3.2699335811116232, + "angle": 0.0, + "x_velocity": 0.5158974269857788, + "y_velocity": 4.639861617427574, + "angular_velocity": 0.0, + "x_acceleration": -4.573817936044907, + "y_acceleration": 11.160310722804928, + "angular_acceleration": 0.0 + }, + { + "time": 4.339999999999952, + "x": 6.586117510258127, + "y": 3.316880880067756, + "angle": 0.0, + "x_velocity": 0.4705276224086268, + "y_velocity": 4.7486517487044395, + "angular_velocity": 0.0, + "x_acceleration": -4.498863023236028, + "y_acceleration": 10.592488389284313, + "angular_acceleration": 0.0 + }, + { + "time": 4.349999999999952, + "x": 6.590599187045261, + "y": 3.3648871746864732, + "angle": 0.0, + "x_velocity": 0.4259451729799137, + "y_velocity": 4.851610114675896, + "angular_velocity": 0.0, + "x_acceleration": -4.416406172771098, + "y_acceleration": 9.994284894556253, + "angular_acceleration": 0.0 + }, + { + "time": 4.3599999999999515, + "x": 6.594639282767944, + "y": 3.4138926609799434, + "angle": 0.0, + "x_velocity": 0.3822233200837799, + "y_velocity": 4.948442720714851, + "angular_velocity": 0.0, + "x_acceleration": -4.326802983134192, + "y_acceleration": 9.367663635615932, + "angular_acceleration": 0.0 + }, + { + "time": 4.369999999999951, + "x": 6.598246754781819, + "y": 3.463834693183917, + "angle": 0.0, + "x_velocity": 0.3394317491195246, + "y_velocity": 5.038875206164155, + "angular_velocity": 0.0, + "x_acceleration": -4.230409052809382, + "y_acceleration": 8.714588009458456, + "angular_acceleration": 0.0 + }, + { + "time": 4.379999999999951, + "x": 6.601431239516598, + "y": 3.5146479800974166, + "angle": 0.0, + "x_velocity": 0.2976365895016064, + "y_velocity": 5.122652844336609, + "angular_velocity": 0.0, + "x_acceleration": -4.127579980280751, + "y_acceleration": 8.037021413079014, + "angular_acceleration": 0.0 + }, + { + "time": 4.389999999999951, + "x": 6.604203016916213, + "y": 3.5662647814224475, + "angle": 0.0, + "x_velocity": 0.2569004146596437, + "y_velocity": 5.199540542514976, + "angular_velocity": 0.0, + "x_acceleration": -4.018671364032372, + "y_acceleration": 7.336927243472733, + "angular_acceleration": 0.0 + }, + { + "time": 4.399999999999951, + "x": 6.606572974878969, + "y": 3.6186151041036902, + "angle": 0.0, + "x_velocity": 0.21728224203841306, + "y_velocity": 5.2693228419519595, + "angular_velocity": 0.0, + "x_acceleration": -3.9040388025483233, + "y_acceleration": 6.616268897634782, + "angular_acceleration": 0.0 + }, + { + "time": 4.40999999999995, + "x": 6.608552573697693, + "y": 3.6716268986682037, + "angle": 0.0, + "x_velocity": 0.17883753309785055, + "y_velocity": 5.331803917870216, + "angular_velocity": 0.0, + "x_acceleration": -3.784037894312677, + "y_acceleration": 5.877009772560296, + "angular_acceleration": 0.0 + }, + { + "time": 4.41999999999995, + "x": 6.610153810499888, + "y": 3.7252262555651194, + "angle": 0.0, + "x_velocity": 0.14161819331305275, + "y_velocity": 5.386807579462356, + "angular_velocity": 0.0, + "x_acceleration": -3.659024237809522, + "y_acceleration": 5.1211132652444356, + "angular_acceleration": 0.0 + }, + { + "time": 4.42999999999995, + "x": 6.611389183687884, + "y": 3.7793376015053504, + "angle": 0.0, + "x_velocity": 0.1056725721742734, + "y_velocity": 5.434177269890949, + "angular_velocity": 0.0, + "x_acceleration": -3.5293534315229227, + "y_acceleration": 4.350542772682363, + "angular_acceleration": 0.0 + }, + { + "time": 4.43999999999995, + "x": 6.612271657378988, + "y": 3.8338838958012804, + "angle": 0.0, + "x_velocity": 0.07104546318692684, + "y_velocity": 5.473776066288497, + "angular_velocity": 0.0, + "x_acceleration": -3.39538107393696, + "y_acceleration": 3.56726169186922, + "angular_acceleration": 0.0 + }, + { + "time": 4.4499999999999496, + "x": 6.612814625845639, + "y": 3.888786826706471, + "angle": 0.0, + "x_velocity": 0.03777810387158631, + "y_velocity": 5.505486679757479, + "angular_velocity": 0.0, + "x_acceleration": -3.2574627635357034, + "y_acceleration": 2.7732334198001176, + "angular_acceleration": 0.0 + }, + { + "time": 4.459999999999949, + "x": 6.613031877955556, + "y": 3.9439670077553552, + "angle": 0.0, + "x_velocity": 0.005908175763984724, + "y_velocity": 5.529211455370297, + "angular_velocity": 0.0, + "x_acceleration": -3.115954098803239, + "y_acceleration": 1.9704213534702681, + "angular_acceleration": 0.0 + }, + { + "time": 4.469999999999949, + "x": 6.61293756161189, + "y": 3.999344174102942, + "angle": 0.0, + "x_velocity": -0.024530195584987036, + "y_velocity": 5.544872372169331, + "angular_velocity": 0.0, + "x_acceleration": -2.971210678223634, + "y_acceleration": 1.1607888898747802, + "angular_acceleration": 0.0 + }, + { + "time": 4.479999999999949, + "x": 6.61254614819338, + "y": 4.054837378864517, + "angle": 0.0, + "x_velocity": -0.05350644060927523, + "y_velocity": 5.55241104316689, + "angular_velocity": 0.0, + "x_acceleration": -2.823588100280981, + "y_acceleration": 0.3462994260088621, + "angular_acceleration": 0.0 + }, + { + "time": 4.489999999999949, + "x": 6.6118723969944995, + "y": 4.1103651894553295, + "angle": 0.0, + "x_velocity": -0.0809935457276747, + "y_velocity": 5.551788715345258, + "angular_velocity": 0.0, + "x_acceleration": -2.673441963459335, + "y_acceleration": -0.47108364113243084, + "angular_acceleration": 0.0 + }, + { + "time": 4.4999999999999485, + "x": 6.610931319665609, + "y": 4.165845883930309, + "angle": 0.0, + "x_velocity": -0.1069680533438121, + "y_velocity": 5.542986269656644, + "angular_velocity": 0.0, + "x_acceleration": -2.521127866242784, + "y_acceleration": -1.2893969145538762, + "angular_acceleration": 0.0 + }, + { + "time": 4.509999999999948, + "x": 6.609738144653113, + "y": 4.221197647323759, + "angle": 0.0, + "x_velocity": -0.1314100618461591, + "y_velocity": 5.526004221023223, + "angular_velocity": 0.0, + "x_acceleration": -2.3670014071154064, + "y_acceleration": -2.1066769972603296, + "angular_acceleration": 0.0 + }, + { + "time": 4.519999999999948, + "x": 6.608308281639598, + "y": 4.276338767989044, + "angle": 0.0, + "x_velocity": -0.1543032256080299, + "y_velocity": 5.500862718337139, + "angular_velocity": 0.0, + "x_acceleration": -2.21141818456128, + "y_acceleration": -2.920960492256654, + "angular_acceleration": 0.0 + }, + { + "time": 4.529999999999948, + "x": 6.606657285984004, + "y": 4.331187833938309, + "angle": 0.0, + "x_velocity": -0.1756347549875752, + "y_velocity": 5.4676015444604475, + "angular_velocity": 0.0, + "x_acceleration": -2.0547337970644683, + "y_acceleration": -3.7302840025477053, + "angular_acceleration": 0.0 + }, + { + "time": 4.539999999999948, + "x": 6.604800823161754, + "y": 4.3856639291821695, + "angle": 0.0, + "x_velocity": -0.19539541632778956, + "y_velocity": 5.426280116225187, + "angular_velocity": 0.0, + "x_acceleration": -1.8973038431090572, + "y_acceleration": -4.532684131138346, + "angular_acceleration": 0.0 + }, + { + "time": 4.549999999999947, + "x": 6.602754633204928, + "y": 4.4396868300694035, + "angle": 0.0, + "x_velocity": -0.21357953195650792, + "y_velocity": 5.376977484433333, + "angular_velocity": 0.0, + "x_acceleration": -1.7394839211791275, + "y_acceleration": -5.326197481033361, + "angular_acceleration": 0.0 + }, + { + "time": 4.559999999999947, + "x": 6.600534495142397, + "y": 4.493177201626667, + "angle": 0.0, + "x_velocity": -0.23018498018640332, + "y_velocity": 5.319792333856819, + "angular_velocity": 0.0, + "x_acceleration": -1.5816296297587407, + "y_acceleration": -6.108860655237677, + "angular_acceleration": 0.0 + }, + { + "time": 4.569999999999947, + "x": 6.598156191439981, + "y": 4.5460567938981775, + "angle": 0.0, + "x_velocity": -0.2452131953149932, + "y_velocity": 5.254842983237536, + "angular_velocity": 0.0, + "x_acceleration": -1.424096567331988, + "y_acceleration": -6.878710256756079, + "angular_acceleration": 0.0 + }, + { + "time": 4.579999999999947, + "x": 6.595635472440603, + "y": 4.598248638285425, + "angle": 0.0, + "x_velocity": -0.2586691676246349, + "y_velocity": 5.182267385287307, + "angular_velocity": 0.0, + "x_acceleration": -1.2672403323829418, + "y_acceleration": -7.633782888593437, + "angular_acceleration": 0.0 + }, + { + "time": 4.589999999999947, + "x": 6.5929880208044365, + "y": 4.649677243886872, + "angle": 0.0, + "x_velocity": -0.27056144338252364, + "y_velocity": 5.102223126687919, + "angular_velocity": 0.0, + "x_acceleration": -1.1114165233956737, + "y_acceleration": -8.372115153754635, + "angular_acceleration": 0.0 + }, + { + "time": 4.599999999999946, + "x": 6.590229415949059, + "y": 4.7002687938376395, + "angle": 0.0, + "x_velocity": -0.2809021248407, + "y_velocity": 5.01488742809112, + "angular_velocity": 0.0, + "x_acceleration": -0.9569807388542664, + "y_acceleration": -9.091743655244485, + "angular_acceleration": 0.0 + }, + { + "time": 4.609999999999946, + "x": 6.587375098489608, + "y": 4.749951341649222, + "angle": 0.0, + "x_velocity": -0.2897068702360417, + "y_velocity": 4.920457144118588, + "angular_velocity": 0.0, + "x_acceleration": -0.8042885772427919, + "y_acceleration": -9.790704996067845, + "angular_acceleration": 0.0 + }, + { + "time": 4.619999999999946, + "x": 6.58444033467892, + "y": 4.7986550075491765, + "angle": 0.0, + "x_velocity": -0.2969948937902682, + "y_velocity": 4.819148763361971, + "angular_velocity": 0.0, + "x_acceleration": -0.6536956370453311, + "y_acceleration": -10.467035779229562, + "angular_acceleration": 0.0 + }, + { + "time": 4.629999999999946, + "x": 6.581440180847695, + "y": 4.846312174820831, + "angle": 0.0, + "x_velocity": -0.3027889657099423, + "y_velocity": 4.7111984083828595, + "angular_velocity": 0.0, + "x_acceleration": -0.5055575167459541, + "y_acceleration": -11.118772607734499, + "angular_acceleration": 0.0 + }, + { + "time": 4.6399999999999455, + "x": 6.578389447844641, + "y": 4.892857686142976, + "angle": 0.0, + "x_velocity": -0.30711541218646365, + "y_velocity": 4.596861835712794, + "angular_velocity": 0.0, + "x_acceleration": -0.3602298148287346, + "y_acceleration": -11.74395208458752, + "angular_acceleration": 0.0 + }, + { + "time": 4.649999999999945, + "x": 6.575302665476629, + "y": 4.938229039929568, + "angle": 0.0, + "x_velocity": -0.31000411539606976, + "y_velocity": 4.476414435853277, + "angular_velocity": 0.0, + "x_acceleration": -0.21806812977776246, + "y_acceleration": -12.340610812793429, + "angular_acceleration": 0.0 + }, + { + "time": 4.659999999999945, + "x": 6.572194046948849, + "y": 4.982366586669427, + "angle": 0.0, + "x_velocity": -0.31148851349984996, + "y_velocity": 4.350151233275742, + "angular_velocity": 0.0, + "x_acceleration": -0.07942806007710601, + "y_acceleration": -12.906785395357048, + "angular_acceleration": 0.0 + }, + { + "time": 4.669999999999945, + "x": 6.569077453304942, + "y": 5.025213725265941, + "angle": 0.0, + "x_velocity": -0.31160560064372733, + "y_velocity": 4.2183868864215945, + "angular_velocity": 0.0, + "x_acceleration": 0.0553347957891539, + "y_acceleration": -13.440512435283338, + "angular_acceleration": 0.0 + }, + { + "time": 4.679999999999945, + "x": 6.565966357867181, + "y": 5.0667170993767545, + "angle": 0.0, + "x_velocity": -0.31039592695846396, + "y_velocity": 4.081455687702189, + "angular_velocity": 0.0, + "x_acceleration": 0.18586483933694709, + "y_acceleration": -13.939828535577064, + "angular_acceleration": 0.0 + }, + { + "time": 4.689999999999944, + "x": 6.562873810676594, + "y": 5.106826793753481, + "angle": 0.0, + "x_velocity": -0.307903598559665, + "y_velocity": 3.9397115634988253, + "angular_velocity": 0.0, + "x_acceleration": 0.31180647208219625, + "y_acceleration": -14.402770299243087, + "angular_acceleration": 0.0 + }, + { + "time": 4.699999999999944, + "x": 6.559812402933139, + "y": 5.145496530581399, + "angle": 0.0, + "x_velocity": -0.3041762775477763, + "y_velocity": 3.793528074162751, + "angular_velocity": 0.0, + "x_acceleration": 0.43280409554082766, + "y_acceleration": -14.827374329286286, + "angular_acceleration": 0.0 + }, + { + "time": 4.709999999999944, + "x": 6.556794231435842, + "y": 5.182683865819145, + "angle": 0.0, + "x_velocity": -0.2992651820080847, + "y_velocity": 3.643298414015156, + "angular_velocity": 0.0, + "x_acceleration": 0.5485021112287605, + "y_acceleration": -15.211677228711466, + "angular_acceleration": 0.0 + }, + { + "time": 4.719999999999944, + "x": 6.553830863022947, + "y": 5.218350385538418, + "angle": 0.0, + "x_velocity": -0.29322508601071595, + "y_velocity": 3.489435411347227, + "angular_velocity": 0.0, + "x_acceleration": 0.6585449206619174, + "y_acceleration": -15.553715600523503, + "angular_acceleration": 0.0 + }, + { + "time": 4.729999999999944, + "x": 6.550933299012079, + "y": 5.252461902263674, + "angle": 0.0, + "x_velocity": -0.2861143196106406, + "y_velocity": 3.3323715284200475, + "angular_velocity": 0.0, + "x_acceleration": 0.7625769253562211, + "y_acceleration": -15.85152604772722, + "angular_acceleration": 0.0 + }, + { + "time": 4.739999999999943, + "x": 6.548111939640387, + "y": 5.284988651311837, + "angle": 0.0, + "x_velocity": -0.2779947688476687, + "y_velocity": 3.1725588614646973, + "angular_velocity": 0.0, + "x_acceleration": 0.8602425268275908, + "y_acceleration": -16.103145173327533, + "angular_acceleration": 0.0 + }, + { + "time": 4.749999999999943, + "x": 6.545376548504696, + "y": 5.31590548713199, + "angle": 0.0, + "x_velocity": -0.2689318757464454, + "y_velocity": 3.0104691406821793, + "angular_velocity": 0.0, + "x_acceleration": 0.9511861265919599, + "y_acceleration": -16.306609580329223, + "angular_acceleration": 0.0 + }, + { + "time": 4.759999999999943, + "x": 6.5427362170016625, + "y": 5.345192079645073, + "angle": 0.0, + "x_velocity": -0.25899463831646496, + "y_velocity": 2.8465937302434305, + "angular_velocity": 0.0, + "x_acceleration": 1.0350521261652545, + "y_acceleration": -16.45995587173715, + "angular_acceleration": 0.0 + }, + { + "time": 4.769999999999943, + "x": 6.540199328767924, + "y": 5.372833110583588, + "angle": 0.0, + "x_velocity": -0.2482556105520617, + "y_velocity": 2.6814436282894043, + "angular_velocity": 0.0, + "x_acceleration": 1.111484927063394, + "y_acceleration": -16.56122065055618, + "angular_acceleration": 0.0 + }, + { + "time": 4.7799999999999425, + "x": 6.53777352412025, + "y": 5.3988184698312915, + "angle": 0.0, + "x_velocity": -0.23679090243239642, + "y_velocity": 2.515549466930917, + "angular_velocity": 0.0, + "x_acceleration": 1.1801289308022902, + "y_acceleration": -16.608440519791202, + "angular_acceleration": 0.0 + }, + { + "time": 4.789999999999942, + "x": 6.535465664495691, + "y": 5.423143451762906, + "angle": 0.0, + "x_velocity": -0.22468017992148948, + "y_velocity": 2.3494615122488547, + "angular_velocity": 0.0, + "x_acceleration": 1.2406285388978837, + "y_acceleration": -16.599652082446966, + "angular_acceleration": 0.0 + }, + { + "time": 4.799999999999942, + "x": 6.533281796891737, + "y": 5.445808951583804, + "angle": 0.0, + "x_velocity": -0.21200666496819842, + "y_velocity": 2.18374966429392, + "angular_velocity": 0.0, + "x_acceleration": 1.2926281528660901, + "y_acceleration": -16.532891941528447, + "angular_acceleration": 0.0 + }, + { + "time": 4.809999999999942, + "x": 6.531227118306464, + "y": 5.4668216616697265, + "angle": 0.0, + "x_velocity": -0.1988571355062101, + "y_velocity": 2.0190034570868534, + "angular_velocity": 0.0, + "x_acceleration": 1.3357721742228357, + "y_acceleration": -16.406196700040397, + "angular_acceleration": 0.0 + }, + { + "time": 4.819999999999942, + "x": 6.52930594017869, + "y": 5.4861942679064475, + "angle": 0.0, + "x_velocity": -0.1853219254540619, + "y_velocity": 1.8558320586183328, + "angular_velocity": 0.0, + "x_acceleration": 1.3697050044840324, + "y_acceleration": -16.217602960987648, + "angular_acceleration": 0.0 + }, + { + "time": 4.8299999999999415, + "x": 6.527521652828116, + "y": 5.503945646029538, + "angle": 0.0, + "x_velocity": -0.1714949247151285, + "y_velocity": 1.6948642708489814, + "angular_velocity": 0.0, + "x_acceleration": 1.3940710451656315, + "y_acceleration": -15.96514732737515, + "angular_acceleration": 0.0 + }, + { + "time": 4.839999999999941, + "x": 6.525876689895493, + "y": 5.520101057963978, + "angle": 0.0, + "x_velocity": -0.1574735791776245, + "y_velocity": 1.5367485297093566, + "angular_velocity": 0.0, + "x_acceleration": 1.4085146977835308, + "y_acceleration": -15.646866402207564, + "angular_acceleration": 0.0 + }, + { + "time": 4.849999999999941, + "x": 6.524372492782758, + "y": 5.5346923481639365, + "angle": 0.0, + "x_velocity": -0.14335889071461327, + "y_velocity": 1.3821529050999928, + "angular_velocity": 0.0, + "x_acceleration": 1.412680363853653, + "y_acceleration": -15.26079678849004, + "angular_acceleration": 0.0 + }, + { + "time": 4.859999999999941, + "x": 6.5230094750931995, + "y": 5.547758139952427, + "angle": 0.0, + "x_velocity": -0.1292554171839928, + "y_velocity": 1.2317651008913657, + "angular_velocity": 0.0, + "x_acceleration": 1.406212444891949, + "y_acceleration": -14.804975089227185, + "angular_acceleration": 0.0 + }, + { + "time": 4.869999999999941, + "x": 6.521786987071604, + "y": 5.55934403186102, + "angle": 0.0, + "x_velocity": -0.11527127242849389, + "y_velocity": 1.086292454923914, + "angular_velocity": 0.0, + "x_acceleration": 1.3887553424142993, + "y_acceleration": -14.27743790742386, + "angular_acceleration": 0.0 + }, + { + "time": 4.87999999999994, + "x": 6.520703280044398, + "y": 5.569502793969523, + "angle": 0.0, + "x_velocity": -0.101518126275705, + "y_velocity": 0.9464619390080173, + "angular_velocity": 0.0, + "x_acceleration": 1.359953457936669, + "y_acceleration": -13.676221846085014, + "angular_acceleration": 0.0 + }, + { + "time": 4.88999999999994, + "x": 6.519755470859815, + "y": 5.578294564245727, + "angle": 0.0, + "x_velocity": -0.08811120453804833, + "y_velocity": 0.8130201589240187, + "angular_velocity": 0.0, + "x_acceleration": 1.3194511929749595, + "y_acceleration": -12.999363508215566, + "angular_acceleration": 0.0 + }, + { + "time": 4.89999999999994, + "x": 6.51893950632804, + "y": 5.585787044885059, + "angle": 0.0, + "x_velocity": -0.07516928901277176, + "y_velocity": 0.6867333544221381, + "angular_velocity": 0.0, + "x_acceleration": 1.2668929490450935, + "y_acceleration": -12.244899496820096, + "angular_acceleration": 0.0 + }, + { + "time": 4.90999999999994, + "x": 6.518250127661354, + "y": 5.592055698650293, + "angle": 0.0, + "x_velocity": -0.06281471748198264, + "y_velocity": 0.5683873992226651, + "angular_velocity": 0.0, + "x_acceleration": 1.2019231276630222, + "y_acceleration": -11.41086641490375, + "angular_acceleration": 0.0 + }, + { + "time": 4.9199999999999395, + "x": 6.517680834914304, + "y": 5.597183945211265, + "angle": 0.0, + "x_velocity": -0.051173383712635356, + "y_velocity": 0.4587878010158093, + "angular_velocity": 0.0, + "x_acceleration": 1.1241861303446328, + "y_acceleration": -10.495300865471194, + "angular_acceleration": 0.0 + }, + { + "time": 4.929999999999939, + "x": 6.517223851423834, + "y": 5.601263357484566, + "angle": 0.0, + "x_velocity": -0.040374737456494, + "y_velocity": 0.35875970146161507, + "angular_velocity": 0.0, + "x_acceleration": 1.0333263586058692, + "y_acceleration": -9.49623945152723, + "angular_acceleration": 0.0 + }, + { + "time": 4.939999999999939, + "x": 6.5168700882494495, + "y": 5.604393857973223, + "angle": 0.0, + "x_velocity": -0.030551784450198127, + "y_velocity": 0.26914787619028857, + "angular_velocity": 0.0, + "x_acceleration": 0.9289882139626471, + "y_acceleration": -8.411718776076953, + "angular_acceleration": 0.0 + }, + { + "time": 4.949999999999939, + "x": 6.516609108613369, + "y": 5.606683915106428, + "angle": 0.0, + "x_velocity": -0.021841086415207656, + "y_velocity": 0.19081673480178551, + "angular_velocity": 0.0, + "x_acceleration": 0.8108160979309034, + "y_acceleration": -7.239775442124994, + "angular_acceleration": 0.0 + }, + { + "time": 4.959999999999939, + "x": 6.5164290923406645, + "y": 5.608250739579217, + "angle": 0.0, + "x_velocity": -0.014382761057818882, + "y_velocity": 0.12465032086606698, + "angular_velocity": 0.0, + "x_acceleration": 0.6784544120265252, + "y_acceleration": -5.978446052676247, + "angular_acceleration": 0.0 + }, + { + "time": 4.9699999999999385, + "x": 6.516316800299424, + "y": 5.60922048069218, + "angle": 0.0, + "x_velocity": -0.008320482069191115, + "y_velocity": 0.0715523119232131, + "angular_velocity": 0.0, + "x_acceleration": 0.531547557765478, + "y_acceleration": -4.625767210735603, + "angular_acceleration": 0.0 + }, + { + "time": 4.979999999999938, + "x": 6.516257538840907, + "y": 5.609728422691141, + "angle": 0.0, + "x_velocity": -0.003801479125312923, + "y_velocity": 0.03244601948298964, + "angular_velocity": 0.0, + "x_acceleration": 0.3697399366636702, + "y_acceleration": -3.1797755193078387, + "angular_acceleration": 0.0 + }, + { + "time": 4.989999999999938, + "x": 6.516235124239678, + "y": 5.609919181106891, + "angle": 0.0, + "x_velocity": -0.000976537887007467, + "y_velocity": 0.008274389025345386, + "angular_velocity": 0.0, + "x_acceleration": 0.19267595023703166, + "y_acceleration": -1.6385075813979029, + "angular_acceleration": 0.0 + }, + { + "time": 4.999999999999938, + "x": 6.5162318471337715, + "y": 5.609946899094872, + "angle": 0.0, + "x_velocity": 6.394884621840902e-14, + "y_velocity": -2.842170943040401e-14, + "angular_velocity": 0.0, + "x_acceleration": 1.4708234630234074e-12, + "y_acceleration": -1.0629719326971099e-11, + "angular_acceleration": 0.0 + } + ] +} \ No newline at end of file diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 0d47651..c8477e0 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -5,7 +5,10 @@ package frc.robot; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.function.BooleanSupplier; +import java.util.function.Supplier; import edu.wpi.first.math.geometry.Pose2d; import edu.wpi.first.math.geometry.Pose3d; @@ -13,6 +16,9 @@ import edu.wpi.first.math.geometry.Transform2d; import edu.wpi.first.math.geometry.Translation2d; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.commands.Test; +import frc.robot.subsystems.Superstructure.SuperState; public final class Constants { public static double x = 0; diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index af37e86..d1494a2 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -1,30 +1,30 @@ package frc.robot; -import java.io.IOException; -import java.util.List; +import java.util.HashMap; import org.littletonrobotics.junction.LogFileUtil; import org.littletonrobotics.junction.LoggedRobot; import org.littletonrobotics.junction.Logger; import org.littletonrobotics.junction.networktables.NT4Publisher; -import org.littletonrobotics.junction.wpilog.WPILOGReader; import org.littletonrobotics.junction.wpilog.WPILOGWriter; -import com.ctre.phoenix6.hardware.TalonFX; +import edu.wpi.first.wpilibj.Filesystem; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; -import edu.wpi.first.wpilibj2.command.ParallelCommandGroup; -import frc.robot.commands.DriveToPoint; -import frc.robot.commands.FollowPath; -import frc.robot.commands.ZeroPigeon; +import frc.robot.commands.PolarAutoFollower; +import frc.robot.commands.Test; import frc.robot.subsystems.Drive; import frc.robot.subsystems.Peripherals; import frc.robot.subsystems.Superstructure; -import frc.robot.subsystems.Drive.DriveState; import frc.robot.subsystems.Superstructure.SuperState; import frc.robot.tools.PathLoader; -import frc.robot.tools.PathLoader.PosePoint; -import frc.robot.tools.math.Vector; +import java.io.File; +import java.io.FileReader; +import java.util.function.BooleanSupplier; +import java.util.function.Supplier; + +import org.json.JSONObject; +import org.json.JSONTokener; public class Robot extends LoggedRobot { private final RobotContainer m_robotContainer; @@ -34,7 +34,18 @@ public class Robot extends LoggedRobot { private double setAngle = 0; private Command m_autonomousCommand; PathLoader path = new PathLoader(); - List autoPath; + JSONObject autoPath; + Command autoCommand; + + HashMap> commandMap = new HashMap>() { + { + put("Command1", () -> new Test("command1")); + put("Command2", () -> new Test("command2")); + put("Command3", () -> new Test("command3")); + put("Command4", () -> new Test("command4")); + put("Print", () -> new Test("Print")); + } + }; public Robot() { @@ -54,7 +65,6 @@ public Robot() { drive = m_robotContainer.drive; peripherals = m_robotContainer.peripherals; superstructure = m_robotContainer.superstructure; - } @Override @@ -64,11 +74,7 @@ public void robotPeriodic() { @Override public void robotInit() { - try { - autoPath = PathLoader.loadPath("test.polarpath"); - } catch (IOException e) { - e.printStackTrace(); - } + } @Override @@ -81,10 +87,29 @@ public void disabledPeriodic() { @Override public void autonomousInit() { - superstructure.setWantedState(SuperState.PATH_TO_POINT); - new ParallelCommandGroup(new FollowPath(autoPath, drive), - new DriveToPoint(drive)) - .schedule(); + String pathName = "Paths/Commands.polarauto"; + try { + File file = new File(Filesystem.getDeployDirectory(), pathName); + if (!file.exists()) { + System.out.println("File not found: " + file.getAbsolutePath()); + return; + } + + JSONObject json = new JSONObject(new JSONTokener(new FileReader(file))); + System.out.println(json); + autoCommand = new PolarAutoFollower(json, commandMap, null); + } catch (Exception e) { + System.out.println("ERROR LOADING PATH " + pathName + ": " + e.getMessage()); + e.printStackTrace(); + } + CommandScheduler.getInstance().schedule(autoCommand); + // try { + // List pathPoints = + // PathLoader.loadPath("square.polarpath"); + // new PurePursuitAutoFollower(pathPoints, drive).schedule(); + // } catch (IOException e) { + // e.printStackTrace(); + // } } @@ -103,13 +128,7 @@ public void teleopInit() { @Override public void teleopPeriodic() { - if (OI.getDriverA()) { - CommandScheduler.getInstance().schedule(new ZeroPigeon(peripherals)); - } - superstructure.periodic(); - if (OI.driverB.getAsBoolean()) { - superstructure.setWantedState(SuperState.PATH_TO_POINT); - } + } @Override diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 017ade2..4401790 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -1,15 +1,28 @@ package frc.robot; +import frc.robot.commands.PolarAutoFollower; +import frc.robot.commands.Test; +import frc.robot.commands.ZeroPigeon; import frc.robot.subsystems.Drive; -import frc.robot.subsystems.ExampleSubsystem; import frc.robot.subsystems.Peripherals; import frc.robot.subsystems.Superstructure; + +import java.io.File; +import java.io.FileReader; +import java.util.HashMap; +import java.util.function.Supplier; +import java.util.stream.Stream; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.json.JSONTokener; + +import edu.wpi.first.wpilibj.Filesystem; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.button.CommandXboxController; import edu.wpi.first.wpilibj2.command.button.Trigger; public class RobotContainer { - private final ExampleSubsystem exampleSubsystem = new ExampleSubsystem(); public final Drive drive = new Drive(); public final Peripherals peripherals = new Peripherals(); public final Superstructure superstructure = new Superstructure(drive, peripherals); @@ -17,13 +30,16 @@ public class RobotContainer { public RobotContainer() { configureBindings(); + } + Command auto; + private void configureBindings() { - // add trigger-to-command mappings here + OI.driverA.whileTrue(new ZeroPigeon(peripherals)); } public Command getAutonomousCommand() { - return autonomousCommand; + return this.auto; } -} +} \ No newline at end of file diff --git a/src/main/java/frc/robot/commands/DoNothingFollower.java b/src/main/java/frc/robot/commands/DoNothingFollower.java new file mode 100644 index 0000000..d7cc51f --- /dev/null +++ b/src/main/java/frc/robot/commands/DoNothingFollower.java @@ -0,0 +1,64 @@ +package frc.robot.commands; + +import org.json.JSONArray; +import org.json.JSONObject; + +import frc.robot.tools.wrappers.AutoFollower; +import edu.wpi.first.wpilibj.Timer; + +import org.json.JSONObject; + +public class DoNothingFollower extends AutoFollower { + double start = 0; + double currentTime = 0; + int index = 0; + JSONArray path; + boolean isFinished = false; + + public DoNothingFollower(JSONArray path) { + this.path = path; + } + + @Override + public int getPathPointIndex() { + if (index <= path.length()) { + + long index = Math.round(currentTime / 0.01); + this.index = (int) index; + return (int) index; + } else { + throw new UnsupportedOperationException("Index out of bounds for path points."); + } + } + + @Override + public void initialize() { + isFinished = false; + index = 0; + start = Timer.getFPGATimestamp(); + } + + @Override + public void execute() { + if (index >= path.length()) { + isFinished = true; + return; + } + currentTime = Timer.getFPGATimestamp() - start; + System.out.println(getPathPointIndex()); + } + + @Override + public void end(boolean interrupted) { + } + + @Override + public void from(int pointIndex, JSONObject pathJSON, int toIndex) { + } + + @Override + public boolean isFinished() { + return isFinished; + } + +} \ No newline at end of file diff --git a/src/main/java/frc/robot/commands/NoRequirements.java b/src/main/java/frc/robot/commands/NoRequirements.java new file mode 100644 index 0000000..11c6cff --- /dev/null +++ b/src/main/java/frc/robot/commands/NoRequirements.java @@ -0,0 +1,40 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.commands; + +import edu.wpi.first.wpilibj2.command.Command; + +public class NoRequirements extends Command { + /** Creates a new NoRequirements. */ + Command command; + + public NoRequirements(Command command) { + this.command = command; + // Use addRequirements() here to declare subsystem dependencies. + } + + // Called when the command is initially scheduled. + @Override + public void initialize() { + command.schedule(); + } + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() { + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + command.cancel(); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return command.isFinished() || !command.isScheduled(); + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/commands/PolarAutoFollower.java b/src/main/java/frc/robot/commands/PolarAutoFollower.java new file mode 100644 index 0000000..e476f57 --- /dev/null +++ b/src/main/java/frc/robot/commands/PolarAutoFollower.java @@ -0,0 +1,53 @@ +package frc.robot.commands; + +import java.util.HashMap; +import java.util.function.BooleanSupplier; +import java.util.function.Supplier; + +import org.json.JSONArray; +import org.json.JSONObject; + +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.ConditionalCommand; +import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; +import frc.robot.tools.wrappers.AutoFollower; + +public class PolarAutoFollower extends SequentialCommandGroup { + AutoFollower autoFollower; + + public PolarAutoFollower(JSONObject auto, HashMap> commandMap, + HashMap conditionMap) { + + JSONArray schedule = auto.getJSONArray("schedule"); + JSONArray paths = auto.getJSONArray("paths"); + + for (int i = 0; i < schedule.length(); i++) { + if (!schedule.getJSONObject(i).getBoolean("branched")) { + int pathIdx = schedule.getJSONObject(i).getInt("path"); + addCommands(new PolarPathFollower(paths.getJSONObject(pathIdx), commandMap, + conditionMap)); + } else { + BooleanSupplier condition = conditionMap.get(schedule.getJSONObject(i).getString("condition")); + JSONArray OnTrue = schedule.getJSONObject(i).getJSONArray("on_true"); + JSONArray OnFalse = schedule.getJSONObject(i).getJSONArray("on_false"); + JSONObject onTrueObj = new JSONObject(); + JSONObject onFalseObj = new JSONObject(); + onTrueObj.put("paths", paths); + onFalseObj.put("paths", paths); + onFalseObj.put("schedule", OnFalse); + onTrueObj.put("schedule", OnTrue); + PolarAutoFollower onTrueFollower = new PolarAutoFollower(onTrueObj, + commandMap, conditionMap); + PolarAutoFollower onFalseFollower = new PolarAutoFollower(onFalseObj, + commandMap, conditionMap); + addCommands(new ConditionalCommand(onTrueFollower, onFalseFollower, + condition)); + if (commandMap.containsKey("")) { + + } + + } + + } + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/commands/PolarPathFollower.java b/src/main/java/frc/robot/commands/PolarPathFollower.java new file mode 100644 index 0000000..cb1d480 --- /dev/null +++ b/src/main/java/frc/robot/commands/PolarPathFollower.java @@ -0,0 +1,172 @@ +package frc.robot.commands; + +import java.util.HashMap; +import java.util.function.BooleanSupplier; +import java.util.function.Supplier; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.util.ArrayList; + +import com.ctre.phoenix6.controls.Follower; + +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.ConditionalCommand; +import edu.wpi.first.wpilibj2.command.ParallelCommandGroup; +import edu.wpi.first.wpilibj2.command.ParallelDeadlineGroup; +import edu.wpi.first.wpilibj2.command.ParallelRaceGroup; +import edu.wpi.first.wpilibj2.command.RunCommand; +import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; +import frc.robot.tools.wrappers.AutoFollower; +import edu.wpi.first.wpilibj.Timer; +import frc.robot.commands.TriggerCommand; + +public class PolarPathFollower extends ParallelCommandGroup { + double time = 0; + AutoFollower autoFollower; + double startTime = 0; + double endTime = 0; + boolean timerStarted = false; + JSONObject path; + + public PolarPathFollower(JSONObject path, HashMap> commandMap, + HashMap conditionMap) { + startTime = path.getJSONArray("sampled_points").getJSONObject(0).getDouble("time"); + this.path = path; + autoFollower = new DoNothingFollower(path.getJSONArray("sampled_points")); + } + + public Command runCommand(JSONObject command, HashMap> commandMap, + HashMap conditionMap) { + if (command.has("command")) { + return runSingleCommand(command, commandMap); + } else if (command.has("branched_command")) { + BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); + BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); + JSONObject OnTrue = command.getJSONObject("branched_command").getJSONObject("on_true"); + JSONObject OnFalse = command.getJSONObject("branched_command").getJSONObject("on_false"); + BooleanSupplier condition = conditionMap.get( + command.getJSONObject("branched_command").getString("condition")); + + return new TriggerCommand( + Start, + new ConditionalCommand( + runCommand(OnTrue, commandMap, conditionMap), + runCommand(OnFalse, commandMap, conditionMap), + condition), + End); + + } else if (command.has("parallel_command_group")) { + ArrayList commands = new ArrayList<>(); + for (int i = 0; i < command.getJSONObject("parallel_command_group") + .getJSONArray("commands").length(); i++) { + commands.add(runCommand( + command.getJSONObject("parallel_command_group") + .getJSONArray("commands").getJSONObject(i), + commandMap, conditionMap)); + } + BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); + BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); + + return new TriggerCommand( + Start, + new ParallelCommandGroup(commands.toArray(new Command[0])), + End); + + } else if (command.has("sequential_command_group")) { + ArrayList commands = new ArrayList<>(); + for (int i = 0; i < command.getJSONObject("sequential_command_group") + .getJSONArray("commands").length(); i++) { + commands.add(runCommand( + command.getJSONObject("sequential_command_group") + .getJSONArray("commands").getJSONObject(i), + commandMap, conditionMap)); + } + BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); + BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); + + return new TriggerCommand( + Start, + new SequentialCommandGroup(commands.toArray(new Command[0])), + End); + + } else if (command.has("parallel_deadline_group")) { + Command deadlineCommand = runCommand( + command.getJSONObject("parallel_deadline_group") + .getJSONArray("deadline_command").getJSONObject(0), + commandMap, conditionMap); + + ArrayList commands = new ArrayList<>(); + for (int i = 0; i < command.getJSONObject("parallel_deadline_group") + .getJSONArray("commands").length(); i++) { + commands.add(runCommand( + command.getJSONObject("commands") + .getJSONArray("commands").getJSONObject(i), + commandMap, conditionMap)); + } + + Command[] otherCommands = commands.subList(1, commands.size()).toArray(new Command[0]); + BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); + BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); + + return new TriggerCommand( + Start, + new ParallelDeadlineGroup(deadlineCommand, commands.toArray(new Command[0])), + End); + + } else if (command.has("parallel_race_group")) { + ArrayList commands = new ArrayList<>(); + + // Parse all commands in the race group + for (int i = 0; i < command.getJSONObject("parallel_race_group") + .getJSONArray("commands").length(); i++) { + commands.add(runCommand( + command.getJSONObject("parallel_race_group") + .getJSONArray("commands").getJSONObject(i), + commandMap, conditionMap)); + } + + BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); + BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); + + return new TriggerCommand( + Start, + new ParallelRaceGroup(commands.toArray(new Command[0])), + End); + + } else { + throw new IllegalArgumentException("Invalid command JSON: " + command.toString()); + } + } + + public Command runSingleCommand(JSONObject command, HashMap> commandMap) { + Command Commands = commandMap.get(command.getJSONObject("command").getString("name")).get(); + BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); + BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); + return new TriggerCommand(Start, Commands, End); + } + + double GetTime() { + if (autoFollower.isFinished() || !autoFollower.isScheduled()) { + if (!timerStarted) { + endTime = Timer.getFPGATimestamp(); + timerStarted = true; + } + time = Timer.getFPGATimestamp() - endTime; + } + + if (autoFollower.isFinished()) { + time += path.getJSONArray("sampled_points") + .getJSONObject(path.getJSONArray("time").length() - 1) + .getDouble("time"); + } else if (autoFollower.isScheduled()) { + timerStarted = false; + time = path.getJSONArray("sampled_points").getJSONObject(autoFollower.getPathPointIndex()) + .getDouble("time"); + } + + return time; + } + +} \ No newline at end of file diff --git a/src/main/java/frc/robot/commands/Test.java b/src/main/java/frc/robot/commands/Test.java new file mode 100644 index 0000000..f355dde --- /dev/null +++ b/src/main/java/frc/robot/commands/Test.java @@ -0,0 +1,37 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.commands; + +import edu.wpi.first.wpilibj2.command.Command; + +/* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */ +public class Test extends Command { + /** Creates a new Test. */ + public Test(String test) { + // Use addRequirements() here to declare subsystem dependencies. + System.out.println(test); + } + + // Called when the command is initially scheduled. + @Override + public void initialize() { + } + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() { + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } +} diff --git a/src/main/java/frc/robot/commands/TriggerCommand.java b/src/main/java/frc/robot/commands/TriggerCommand.java new file mode 100644 index 0000000..3c67999 --- /dev/null +++ b/src/main/java/frc/robot/commands/TriggerCommand.java @@ -0,0 +1,27 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.commands; + +import java.util.function.BooleanSupplier; + +import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.ParallelRaceGroup; +import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; + +// NOTE: Consider using this command inline, rather than writing a subclass. For more +// information, see: +// https://docs.wpilib.org/en/stable/docs/software/commandbased/convenience-features.html +public class TriggerCommand extends SequentialCommandGroup { + /** Creates a new TriggerCommand. */ + public TriggerCommand(BooleanSupplier startCondition, Command command, BooleanSupplier endCondition) { + // Add your commands in the addCommands() call, e.g. + // addCommands(new FooCommand(), new BarCommand()); + addCommands( + new WaitForCondition(startCondition), + new ParallelRaceGroup( + new NoRequirements(command), + new WaitForCondition(endCondition))); + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/commands/WaitForCondition.java b/src/main/java/frc/robot/commands/WaitForCondition.java new file mode 100644 index 0000000..566a08f --- /dev/null +++ b/src/main/java/frc/robot/commands/WaitForCondition.java @@ -0,0 +1,35 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.commands; + +import java.util.function.BooleanSupplier; + +import edu.wpi.first.wpilibj2.command.Command; + +public class WaitForCondition extends Command { + private final BooleanSupplier condition; + + public WaitForCondition(BooleanSupplier condition) { + this.condition = condition; + } + + @Override + public void initialize() { + } + + @Override + public void execute() { + } + + @Override + public void end(boolean interrupted) { + } + + @Override + public boolean isFinished() { + // Logger.recordOutput("started", condition.getAsBoolean()); + return condition.getAsBoolean(); + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/ExampleSubsystem.java b/src/main/java/frc/robot/subsystems/ExampleSubsystem.java deleted file mode 100644 index 6b375da..0000000 --- a/src/main/java/frc/robot/subsystems/ExampleSubsystem.java +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) FIRST and other WPILib contributors. -// Open Source Software; you can modify and/or share it under the terms of -// the WPILib BSD license file in the root directory of this project. - -package frc.robot.subsystems; - -import edu.wpi.first.wpilibj2.command.Command; -import edu.wpi.first.wpilibj2.command.SubsystemBase; - -public class ExampleSubsystem extends SubsystemBase { - /** Creates a new ExampleSubsystem. */ - public ExampleSubsystem() {} - - /** - * Example command factory method. - * - * @return a command - */ - public Command exampleMethodCommand() { - // Inline construction of command goes here. - // Subsystem::RunOnce implicitly requires `this` subsystem. - return runOnce( - () -> { - /* one-time action goes here */ - }); - } - - /** - * An example method querying a boolean state of the subsystem (for example, a digital sensor). - * - * @return value of some boolean subsystem state, such as a digital sensor. - */ - public boolean exampleCondition() { - // Query some boolean state, such as a digital sensor. - return false; - } - - @Override - public void periodic() { - // This method will be called once per scheduler run - } - - @Override - public void simulationPeriodic() { - // This method will be called once per scheduler run during simulation - } -} diff --git a/src/main/java/frc/robot/tools/PathLoader.java b/src/main/java/frc/robot/tools/PathLoader.java index 170f57d..076c8f5 100644 --- a/src/main/java/frc/robot/tools/PathLoader.java +++ b/src/main/java/frc/robot/tools/PathLoader.java @@ -41,4 +41,12 @@ public static List loadPath(String relativePath) throws IOException { } return points; } + + public static JSONObject getJSON(String relativePath) throws IOException { + File file = new File(Filesystem.getDeployDirectory() + "/" + "Paths/" + relativePath); + String content = Files.readString(file.toPath()); + JSONObject root = new JSONObject(content); + System.out.println(root); + return root; + } } diff --git a/src/main/java/frc/robot/tools/wrappers/AutoFollower.java b/src/main/java/frc/robot/tools/wrappers/AutoFollower.java new file mode 100644 index 0000000..aa65cc0 --- /dev/null +++ b/src/main/java/frc/robot/tools/wrappers/AutoFollower.java @@ -0,0 +1,27 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.tools.wrappers; + +import org.json.JSONObject; + +import edu.wpi.first.wpilibj2.command.Command; + +public abstract class AutoFollower extends Command { + /** Creates a new PolarTakeDrive. */ + public abstract int getPathPointIndex(); + + public abstract void initialize(); + + @Override + public abstract void execute(); + + @Override + public abstract void end(boolean interrupted); + + public abstract void from(int pointIndex, JSONObject pathJSON, int toIndex); + + @Override + abstract public boolean isFinished(); +} \ No newline at end of file From 1951db5048783525978f02f31319c4a204eef538 Mon Sep 17 00:00:00 2001 From: Dhairya Trivedi <140292400+Dhairya-exe@users.noreply.github.com> Date: Wed, 13 Aug 2025 16:56:54 -0600 Subject: [PATCH 9/9] commands work now --- Polar Pathing/Robots/d.polarrc | Bin 0 -> 248 bytes src/main/deploy/Paths/Commands.polarauto | 1260 +--- src/main/deploy/Paths/test.polarpath | 6129 +---------------- src/main/java/frc/robot/Robot.java | 4 +- .../frc/robot/commands/DoNothingFollower.java | 27 +- .../robot/commands/DriveTrainOverride.java | 52 + .../frc/robot/commands/PolarAutoFollower.java | 64 +- .../frc/robot/commands/PolarPathFollower.java | 294 +- .../java/frc/robot/tools/SwerveModule.java | 16 +- 9 files changed, 290 insertions(+), 7556 deletions(-) create mode 100644 Polar Pathing/Robots/d.polarrc create mode 100644 src/main/java/frc/robot/commands/DriveTrainOverride.java diff --git a/Polar Pathing/Robots/d.polarrc b/Polar Pathing/Robots/d.polarrc new file mode 100644 index 0000000000000000000000000000000000000000..510689c6e95a3b53ea065d8228e9f13b31179477 GIT binary patch literal 248 zcmWIWW@Zs#VBp|jSY5~!?ZbQ8v4MesL7b6+fg4CC=jWwmrt4)D=jW{sJLP@GH*`~w zSKy_7E9+NJdL}ICx8At zWz8qA;-ak53r~AFPDl$+Fh8g&A24NRc$4>~r5c-cuI|^_x> commandMap = new HashMap>() { { @@ -44,6 +45,7 @@ public class Robot extends LoggedRobot { put("Command3", () -> new Test("command3")); put("Command4", () -> new Test("command4")); put("Print", () -> new Test("Print")); + put("DriveOverride", () -> new DriveTrainOverride()); } }; diff --git a/src/main/java/frc/robot/commands/DoNothingFollower.java b/src/main/java/frc/robot/commands/DoNothingFollower.java index d7cc51f..b57473f 100644 --- a/src/main/java/frc/robot/commands/DoNothingFollower.java +++ b/src/main/java/frc/robot/commands/DoNothingFollower.java @@ -6,8 +6,6 @@ import frc.robot.tools.wrappers.AutoFollower; import edu.wpi.first.wpilibj.Timer; -import org.json.JSONObject; - public class DoNothingFollower extends AutoFollower { double start = 0; double currentTime = 0; @@ -21,14 +19,12 @@ public DoNothingFollower(JSONArray path) { @Override public int getPathPointIndex() { - if (index <= path.length()) { - - long index = Math.round(currentTime / 0.01); - this.index = (int) index; - return (int) index; - } else { - throw new UnsupportedOperationException("Index out of bounds for path points."); - } + // Clamp index to valid range + int maxIndex = path.length() - 1; + long computedIndex = Math.round(currentTime / 0.01); + int safeIndex = (int) Math.max(0, Math.min(computedIndex, maxIndex)); + this.index = safeIndex; + return safeIndex; } @Override @@ -36,16 +32,17 @@ public void initialize() { isFinished = false; index = 0; start = Timer.getFPGATimestamp(); + currentTime = 0; } @Override public void execute() { - if (index >= path.length()) { + currentTime = Timer.getFPGATimestamp() - start; + int idx = getPathPointIndex(); + if (idx >= path.length() - 1) { isFinished = true; - return; } - currentTime = Timer.getFPGATimestamp() - start; - System.out.println(getPathPointIndex()); + System.out.println(idx); } @Override @@ -54,11 +51,11 @@ public void end(boolean interrupted) { @Override public void from(int pointIndex, JSONObject pathJSON, int toIndex) { + // No action for DoNothingFollower } @Override public boolean isFinished() { return isFinished; } - } \ No newline at end of file diff --git a/src/main/java/frc/robot/commands/DriveTrainOverride.java b/src/main/java/frc/robot/commands/DriveTrainOverride.java new file mode 100644 index 0000000..c56d801 --- /dev/null +++ b/src/main/java/frc/robot/commands/DriveTrainOverride.java @@ -0,0 +1,52 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.commands; + +import org.json.JSONObject; + +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.tools.wrappers.AutoFollower; + +/* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */ +public class DriveTrainOverride extends AutoFollower { + /** Creates a new DriveTrainOverride. */ + public DriveTrainOverride() { + // Use addRequirements() here to declare subsystem dependencies. + } + + // Called when the command is initially scheduled. + @Override + public void initialize() { + System.out.println("DriveTrain"); + } + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() { + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return false; + } + + @Override + public int getPathPointIndex() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getPathPointIndex'"); + } + + @Override + public void from(int pointIndex, JSONObject pathJSON, int toIndex) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'from'"); + } +} diff --git a/src/main/java/frc/robot/commands/PolarAutoFollower.java b/src/main/java/frc/robot/commands/PolarAutoFollower.java index e476f57..a7ba32c 100644 --- a/src/main/java/frc/robot/commands/PolarAutoFollower.java +++ b/src/main/java/frc/robot/commands/PolarAutoFollower.java @@ -10,44 +10,58 @@ import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.ConditionalCommand; import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; -import frc.robot.tools.wrappers.AutoFollower; public class PolarAutoFollower extends SequentialCommandGroup { - AutoFollower autoFollower; - - public PolarAutoFollower(JSONObject auto, HashMap> commandMap, + public PolarAutoFollower(JSONObject auto, + HashMap> commandMap, HashMap conditionMap) { - JSONArray schedule = auto.getJSONArray("schedule"); - JSONArray paths = auto.getJSONArray("paths"); + System.out.println("PolarAutoFollower: constructor entered"); + + JSONArray schedule = auto.optJSONArray("schedule"); + JSONArray paths = auto.optJSONArray("paths"); + + if (schedule == null || paths == null) { + throw new IllegalArgumentException("PolarAutoFollower: invalid auto JSON (missing schedule or paths)"); + } for (int i = 0; i < schedule.length(); i++) { - if (!schedule.getJSONObject(i).getBoolean("branched")) { - int pathIdx = schedule.getJSONObject(i).getInt("path"); - addCommands(new PolarPathFollower(paths.getJSONObject(pathIdx), commandMap, - conditionMap)); + System.out.println("PolarAutoFollower: loop " + i); + + JSONObject step = schedule.getJSONObject(i); + boolean branched = step.optBoolean("branched", false); + + if (!branched) { + int pathIdx = step.getInt("path"); + if (pathIdx < 0 || pathIdx >= paths.length()) { + throw new IndexOutOfBoundsException("PolarAutoFollower: invalid path index " + pathIdx); + } + addCommands(new PolarPathFollower(paths.getJSONObject(pathIdx), commandMap, conditionMap)); } else { - BooleanSupplier condition = conditionMap.get(schedule.getJSONObject(i).getString("condition")); - JSONArray OnTrue = schedule.getJSONObject(i).getJSONArray("on_true"); - JSONArray OnFalse = schedule.getJSONObject(i).getJSONArray("on_false"); + String condName = step.optString("condition", null); + BooleanSupplier condition = (conditionMap != null && condName != null) ? conditionMap.get(condName) + : () -> false; + + JSONArray onTrue = step.optJSONArray("on_true"); + JSONArray onFalse = step.optJSONArray("on_false"); + if (onTrue == null || onFalse == null) { + throw new IllegalArgumentException( + "PolarAutoFollower: branched step missing on_true/on_false arrays"); + } + JSONObject onTrueObj = new JSONObject(); JSONObject onFalseObj = new JSONObject(); onTrueObj.put("paths", paths); + onTrueObj.put("schedule", onTrue); onFalseObj.put("paths", paths); - onFalseObj.put("schedule", OnFalse); - onTrueObj.put("schedule", OnTrue); - PolarAutoFollower onTrueFollower = new PolarAutoFollower(onTrueObj, - commandMap, conditionMap); - PolarAutoFollower onFalseFollower = new PolarAutoFollower(onFalseObj, - commandMap, conditionMap); - addCommands(new ConditionalCommand(onTrueFollower, onFalseFollower, - condition)); - if (commandMap.containsKey("")) { + onFalseObj.put("schedule", onFalse); - } + PolarAutoFollower tf = new PolarAutoFollower(onTrueObj, commandMap, conditionMap); + PolarAutoFollower ff = new PolarAutoFollower(onFalseObj, commandMap, conditionMap); + addCommands(new ConditionalCommand(tf, ff, condition)); } - } + } -} \ No newline at end of file +} diff --git a/src/main/java/frc/robot/commands/PolarPathFollower.java b/src/main/java/frc/robot/commands/PolarPathFollower.java index cb1d480..49ae793 100644 --- a/src/main/java/frc/robot/commands/PolarPathFollower.java +++ b/src/main/java/frc/robot/commands/PolarPathFollower.java @@ -3,170 +3,214 @@ import java.util.HashMap; import java.util.function.BooleanSupplier; import java.util.function.Supplier; +import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONObject; +import org.littletonrobotics.junction.Logger; -import java.util.ArrayList; - -import com.ctre.phoenix6.controls.Follower; - +import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.CommandScheduler; import edu.wpi.first.wpilibj2.command.ConditionalCommand; import edu.wpi.first.wpilibj2.command.ParallelCommandGroup; import edu.wpi.first.wpilibj2.command.ParallelDeadlineGroup; import edu.wpi.first.wpilibj2.command.ParallelRaceGroup; -import edu.wpi.first.wpilibj2.command.RunCommand; import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; +import edu.wpi.first.wpilibj2.command.StartEndCommand; +import edu.wpi.first.wpilibj2.command.WaitUntilCommand; import frc.robot.tools.wrappers.AutoFollower; -import edu.wpi.first.wpilibj.Timer; -import frc.robot.commands.TriggerCommand; public class PolarPathFollower extends ParallelCommandGroup { - double time = 0; - AutoFollower autoFollower; - double startTime = 0; - double endTime = 0; - boolean timerStarted = false; - JSONObject path; - - public PolarPathFollower(JSONObject path, HashMap> commandMap, + private final JSONObject path; + private final AutoFollower autoFollower; + private volatile Double pathStartWallTimestamp = null; + private volatile Double pathFinishWallTimestamp = null; + private volatile double finalPathTime = -1.0; + + public PolarPathFollower(JSONObject path, + HashMap> commandMap, HashMap conditionMap) { - startTime = path.getJSONArray("sampled_points").getJSONObject(0).getDouble("time"); this.path = path; - autoFollower = new DoNothingFollower(path.getJSONArray("sampled_points")); + this.autoFollower = new DoNothingFollower(path.optJSONArray("sampled_points")); + this.finalPathTime = computeFinalPathTime(); + + StartEndCommand pathTimerCommand = new StartEndCommand( + () -> { + pathStartWallTimestamp = Timer.getFPGATimestamp(); + pathFinishWallTimestamp = null; + Logger.recordOutput("Path Time Start", pathStartWallTimestamp); + }, + () -> { + pathFinishWallTimestamp = Timer.getFPGATimestamp(); + finalPathTime = Math.max(finalPathTime, computeFinalPathTime()); + pathStartWallTimestamp = null; + Logger.recordOutput("Path Time Finish", pathFinishWallTimestamp); + }); + + ArrayList pdgChildren = new ArrayList<>(); + pdgChildren.add(autoFollower); + pdgChildren.add(pathTimerCommand); + + if (path.has("commands")) { + JSONArray cmds = path.getJSONArray("commands"); + for (int i = 0; i < cmds.length(); i++) { + JSONObject cmdJson = cmds.getJSONObject(i); + Command parsed = runCommand(cmdJson, commandMap, conditionMap); + if (parsed != null) + pdgChildren.add(parsed); + + } + } + + ParallelDeadlineGroup pdg = new ParallelDeadlineGroup( + new WaitUntilCommand(() -> autoFollower.isFinished()), + pdgChildren.toArray(new Command[0])); + + addCommands(pdg); } - public Command runCommand(JSONObject command, HashMap> commandMap, + private Command runCommand(JSONObject command, + HashMap> commandMap, HashMap conditionMap) { + double start = command.optDouble("start", 0.0); + double end = command.optDouble("end", Double.MAX_VALUE); + + BooleanSupplier Start = () -> GetTime() >= start; + BooleanSupplier End = () -> GetTime() >= end; + if (command.has("command")) { - return runSingleCommand(command, commandMap); + JSONObject cobj = command.getJSONObject("command"); + String name = cobj.getString("name"); + Supplier sup = commandMap.get(name); + if (sup == null) { + return null; + } + StartEndCommand deferred = new StartEndCommand( + () -> CommandScheduler.getInstance().schedule(sup.get()), + () -> { + }); + return new TriggerCommand(Start, deferred, End); } else if (command.has("branched_command")) { - BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); - BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); - JSONObject OnTrue = command.getJSONObject("branched_command").getJSONObject("on_true"); - JSONObject OnFalse = command.getJSONObject("branched_command").getJSONObject("on_false"); - BooleanSupplier condition = conditionMap.get( - command.getJSONObject("branched_command").getString("condition")); - - return new TriggerCommand( - Start, - new ConditionalCommand( - runCommand(OnTrue, commandMap, conditionMap), - runCommand(OnFalse, commandMap, conditionMap), - condition), - End); - + JSONObject branched = command.getJSONObject("branched_command"); + String condName = branched.optString("condition", null); + BooleanSupplier condition = (conditionMap != null && condName != null) + ? conditionMap.get(condName) + : () -> false; + if (condName != null && (condition == null)) { + + condition = () -> false; + } + JSONObject onTrue = branched.getJSONObject("on_true"); + JSONObject onFalse = branched.getJSONObject("on_false"); + Command trueCmd = runCommand(onTrue, commandMap, conditionMap); + Command falseCmd = runCommand(onFalse, commandMap, conditionMap); + return new TriggerCommand(Start, new ConditionalCommand(trueCmd, falseCmd, condition), End); } else if (command.has("parallel_command_group")) { - ArrayList commands = new ArrayList<>(); - for (int i = 0; i < command.getJSONObject("parallel_command_group") - .getJSONArray("commands").length(); i++) { - commands.add(runCommand( - command.getJSONObject("parallel_command_group") - .getJSONArray("commands").getJSONObject(i), - commandMap, conditionMap)); + JSONArray arr = command.getJSONObject("parallel_command_group").getJSONArray("commands"); + ArrayList subs = new ArrayList<>(); + for (int i = 0; i < arr.length(); i++) { + Command sub = runCommand(arr.getJSONObject(i), commandMap, conditionMap); + if (sub != null) + subs.add(sub); } - BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); - BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); - - return new TriggerCommand( - Start, - new ParallelCommandGroup(commands.toArray(new Command[0])), - End); - + return new TriggerCommand(Start, new ParallelCommandGroup(subs.toArray(new Command[0])), End); } else if (command.has("sequential_command_group")) { - ArrayList commands = new ArrayList<>(); - for (int i = 0; i < command.getJSONObject("sequential_command_group") - .getJSONArray("commands").length(); i++) { - commands.add(runCommand( - command.getJSONObject("sequential_command_group") - .getJSONArray("commands").getJSONObject(i), - commandMap, conditionMap)); + JSONArray arr = command.getJSONObject("sequential_command_group").getJSONArray("commands"); + ArrayList subs = new ArrayList<>(); + for (int i = 0; i < arr.length(); i++) { + Command sub = runCommand(arr.getJSONObject(i), commandMap, conditionMap); + if (sub != null) + subs.add(sub); } - BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); - BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); - - return new TriggerCommand( - Start, - new SequentialCommandGroup(commands.toArray(new Command[0])), - End); - + return new TriggerCommand(Start, new SequentialCommandGroup(subs.toArray(new Command[0])), End); } else if (command.has("parallel_deadline_group")) { - Command deadlineCommand = runCommand( - command.getJSONObject("parallel_deadline_group") - .getJSONArray("deadline_command").getJSONObject(0), - commandMap, conditionMap); - - ArrayList commands = new ArrayList<>(); - for (int i = 0; i < command.getJSONObject("parallel_deadline_group") - .getJSONArray("commands").length(); i++) { - commands.add(runCommand( - command.getJSONObject("commands") - .getJSONArray("commands").getJSONObject(i), - commandMap, conditionMap)); + JSONObject pdg = command.getJSONObject("parallel_deadline_group"); + Command deadline = runCommand(pdg.getJSONArray("deadline_command").getJSONObject(0), commandMap, + conditionMap); + JSONArray arr = pdg.getJSONArray("commands"); + ArrayList subs = new ArrayList<>(); + for (int i = 0; i < arr.length(); i++) { + Command sub = runCommand(arr.getJSONObject(i), commandMap, conditionMap); + if (sub != null) + subs.add(sub); } - - Command[] otherCommands = commands.subList(1, commands.size()).toArray(new Command[0]); - BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); - BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); - - return new TriggerCommand( - Start, - new ParallelDeadlineGroup(deadlineCommand, commands.toArray(new Command[0])), - End); - + return new TriggerCommand(Start, + new ParallelDeadlineGroup(deadline, subs.toArray(new Command[0])), End); } else if (command.has("parallel_race_group")) { - ArrayList commands = new ArrayList<>(); - - // Parse all commands in the race group - for (int i = 0; i < command.getJSONObject("parallel_race_group") - .getJSONArray("commands").length(); i++) { - commands.add(runCommand( - command.getJSONObject("parallel_race_group") - .getJSONArray("commands").getJSONObject(i), - commandMap, conditionMap)); + JSONArray arr = command.getJSONObject("parallel_race_group").getJSONArray("commands"); + ArrayList subs = new ArrayList<>(); + for (int i = 0; i < arr.length(); i++) { + Command sub = runCommand(arr.getJSONObject(i), commandMap, conditionMap); + if (sub != null) + subs.add(sub); } + return new TriggerCommand(Start, new ParallelRaceGroup(subs.toArray(new Command[0])), End); + } - BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); - BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); + throw new IllegalArgumentException("PolarPathFollower: Invalid command JSON: " + command.toString()); + } - return new TriggerCommand( - Start, - new ParallelRaceGroup(commands.toArray(new Command[0])), - End); + private double GetTime() { + double now = Timer.getFPGATimestamp(); + + if (pathStartWallTimestamp != null) { + double elapsed = now - pathStartWallTimestamp; + if (elapsed < 0.0) + elapsed = 0.0; + if (finalPathTime >= 0.0 && elapsed > finalPathTime) + elapsed = finalPathTime; + Logger.recordOutput("Path Time", elapsed); + return elapsed; + } - } else { - throw new IllegalArgumentException("Invalid command JSON: " + command.toString()); + if (pathFinishWallTimestamp != null) { + double after = now - pathFinishWallTimestamp; + if (after < 0.0) + after = 0.0; + double t = (finalPathTime >= 0.0) ? finalPathTime : 0.0; + double result = t + after; + Logger.recordOutput("Path Time", result); + return result; } - } - public Command runSingleCommand(JSONObject command, HashMap> commandMap) { - Command Commands = commandMap.get(command.getJSONObject("command").getString("name")).get(); - BooleanSupplier Start = () -> command.getDouble("start") > GetTime(); - BooleanSupplier End = () -> command.getDouble("end") <= GetTime(); - return new TriggerCommand(Start, Commands, End); + Logger.recordOutput("Path Time", 0.0); + return 0.0; } - double GetTime() { - if (autoFollower.isFinished() || !autoFollower.isScheduled()) { - if (!timerStarted) { - endTime = Timer.getFPGATimestamp(); - timerStarted = true; + private double computeFinalPathTime() { + double maxT = -1.0; + + if (path.has("sampled_points")) { + JSONArray sp = path.getJSONArray("sampled_points"); + if (sp.length() > 0) { + double t = sp.getJSONObject(sp.length() - 1).optDouble("time", -1.0); + if (t > maxT) + maxT = t; } - time = Timer.getFPGATimestamp() - endTime; } - if (autoFollower.isFinished()) { - time += path.getJSONArray("sampled_points") - .getJSONObject(path.getJSONArray("time").length() - 1) - .getDouble("time"); - } else if (autoFollower.isScheduled()) { - timerStarted = false; - time = path.getJSONArray("sampled_points").getJSONObject(autoFollower.getPathPointIndex()) - .getDouble("time"); + if (path.has("key_points")) { + JSONArray kp = path.getJSONArray("key_points"); + if (kp.length() > 0) { + double t = kp.getJSONObject(kp.length() - 1).optDouble("time", -1.0); + if (t > maxT) + maxT = t; + } + } + + if (path.has("time")) { + double t = path.optDouble("time", -1.0); + if (t > maxT) + maxT = t; } - return time; + return maxT; } -} \ No newline at end of file + private double getMaxPathTime() { + if (finalPathTime < 0.0) + finalPathTime = computeFinalPathTime(); + return finalPathTime; + } +} diff --git a/src/main/java/frc/robot/tools/SwerveModule.java b/src/main/java/frc/robot/tools/SwerveModule.java index 5429d58..e2f8bae 100644 --- a/src/main/java/frc/robot/tools/SwerveModule.java +++ b/src/main/java/frc/robot/tools/SwerveModule.java @@ -93,13 +93,23 @@ public SwerveModule(TalonFX driveMotor, TalonFX turnMotor, CANcoder encoder, int angleMotorConfig.Feedback.SensorToMechanismRatio = 1.0; angleMotorConfig.Feedback.RotorToSensorRatio = Constants.Ratios.STEER_GEAR_RATIO; + // if (index == 1 || index == 4) { + // driveMotorConfig.Slot0.kP = 9.2; + // driveMotorConfig.Slot0.kI = 0.0; + // driveMotorConfig.Slot0.kD = 0.0; + // driveMotorConfig.Slot0.kV = 0.0; + // } else { + + // driveMotorConfig.Slot0.kP = 8.0; + // driveMotorConfig.Slot0.kI = 0.0; + // driveMotorConfig.Slot0.kD = 0.0; + // driveMotorConfig.Slot0.kV = 0.0; + // } + driveMotorConfig.Slot0.kP = 8.0; driveMotorConfig.Slot0.kI = 0.0; driveMotorConfig.Slot0.kD = 0.0; driveMotorConfig.Slot0.kV = 0.0; - driveMotorConfig.Slot0.kP = 8.0; - driveMotorConfig.Slot0.kI = 0.0; - driveMotorConfig.Slot0.kD = 0.0; driveMotorConfig.TorqueCurrent.PeakForwardTorqueCurrent = 120; driveMotorConfig.TorqueCurrent.PeakReverseTorqueCurrent = -120;