diff --git a/.DataLogTool/datalogtool.json b/.DataLogTool/datalogtool.json new file mode 100644 index 0000000..ba1aa30 --- /dev/null +++ b/.DataLogTool/datalogtool.json @@ -0,0 +1,9 @@ +{ + "download": { + "localDir": "C:\\Users\\capts\\Documents\\frc-logs", + "serverTeam": "233" + }, + "output": { + "outputFolder": "C:\\Users\\capts\\Documents\\frc-logs-export" + } +} diff --git a/.Glass/glass.json b/.Glass/glass.json index a05a167..4e1a3ff 100644 --- a/.Glass/glass.json +++ b/.Glass/glass.json @@ -1,23 +1,228 @@ { "NetworkTables": { + "Persistent Values": { + "open": false + }, + "Retained Values": { + "open": false + }, "transitory": { + "PathPlanner": { + "double[]##v_/PathPlanner/currentPose": { + "open": true + }, + "double[]##v_/PathPlanner/targetPose": { + "open": true + }, + "open": true + }, "SmartDashboard": { + "Angular Vel Rad": { + "open": true + }, + "Field": { + "double[]##v_/SmartDashboard/Field/Robot": { + "open": true + }, + "open": true + }, "open": true } }, "types": { - "/FMSInfo": "FMSInfo" + "/FMSInfo": "FMSInfo", + "/SmartDashboard/Field": "Field2d", + "/SmartDashboard/SendableChooser[0]": "String Chooser" } }, "NetworkTables Settings": { "mode": "Client (NT4)", - "serverTeam": "233" + "serverTeam": "233", + "visible": false }, "Plots": { "Plot <0>": { "plots": [ { - "height": 313, + "axis": [ + { + "autoFit": true + } + ], + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 471, + "series": [ + { + "color": [ + 0.8666667342185974, + 0.5176470875740051, + 0.32156863808631897, + 1.0 + ], + "id": "NT:/SmartDashboard/dt_x" + }, + { + "color": [ + 0.3333333432674408, + 0.658823549747467, + 0.4078431725502014, + 1.0 + ], + "id": "NT:/SmartDashboard/dt_x_setpoint" + } + ] + }, + { + "axis": [ + { + "autoFit": true + } + ], + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 471, + "series": [ + { + "color": [ + 0.8666667342185974, + 0.5176470875740051, + 0.32156863808631897, + 1.0 + ], + "id": "NT:/SmartDashboard/dt_y" + }, + { + "color": [ + 0.3333333432674408, + 0.658823549747467, + 0.4078431725502014, + 1.0 + ], + "id": "NT:/SmartDashboard/dt_y_setpoint" + } + ] + }, + { + "axis": [ + { + "autoFit": true, + "invert": true + } + ], + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 471, + "series": [ + { + "color": [ + 0.8666667342185974, + 0.5176470875740051, + 0.32156863808631897, + 1.0 + ], + "id": "NT:/SmartDashboard/dt_theta" + }, + { + "color": [ + 0.3333333432674408, + 0.658823549747467, + 0.4078431725502014, + 1.0 + ], + "id": "NT:/SmartDashboard/dt_theta_setpoint" + } + ] + } + ], + "window": { + "visible": false + } + }, + "Plot <1>": { + "plots": [ + { + "axis": [ + { + "autoFit": true + } + ], + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 698, + "series": [ + { + "color": [ + 0.2980392277240753, + 0.44705885648727417, + 0.6901960968971252, + 1.0 + ], + "id": "NT:/SmartDashboard/Front Right Vel" + } + ] + }, + { + "axis": [ + { + "autoFit": true + } + ], + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 698, + "series": [ + { + "color": [ + 0.2980392277240753, + 0.44705885648727417, + 0.6901960968971252, + 1.0 + ], + "id": "NT:/SmartDashboard/Front Left Vel" + } + ] + } + ], + "window": { + "visible": false + } + }, + "Plot <2>": { + "plots": [ + { + "axis": [ + { + "autoFit": true + } + ], + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 330, "series": [ { "color": [ @@ -26,7 +231,39 @@ 0.6901960968971252, 1.0 ], - "id": "NT:/SmartDashboard/Back Left Angle" + "id": "NT:/SmartDashboard/Test Distance" + } + ] + } + ], + "window": { + "visible": false + } + }, + "Plot <3>": { + "plots": [ + { + "axis": [ + { + "autoFit": true + } + ], + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 711, + "series": [ + { + "color": [ + 0.2980392277240753, + 0.44705885648727417, + 0.6901960968971252, + 1.0 + ], + "id": "NT:/SmartDashboard/Front Right Velocity" }, { "color": [ @@ -35,17 +272,31 @@ 0.32156863808631897, 1.0 ], - "id": "NT:/SmartDashboard/Back Left Angle Setpoint" + "id": "NT:/SmartDashboard/Front Left Velocity" } ] - }, + } + ], + "window": { + "name": "Pod Velocites", + "visible": false + } + }, + "Plot <4>": { + "plots": [ { "axis": [ { "autoFit": true } ], - "height": 313, + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 712, "series": [ { "color": [ @@ -54,7 +305,7 @@ 0.6901960968971252, 1.0 ], - "id": "NT:/SmartDashboard/Back Right Angle" + "id": "NT:/SmartDashboard/12: Angle Difference" }, { "color": [ @@ -63,17 +314,49 @@ 0.32156863808631897, 1.0 ], - "id": "NT:/SmartDashboard/Back Right Angle Setpoint" + "id": "NT:/SmartDashboard/14: Angle Difference" + }, + { + "color": [ + 0.3333333432674408, + 0.658823549747467, + 0.4078431725502014, + 1.0 + ], + "id": "NT:/SmartDashboard/16: Angle Difference" + }, + { + "color": [ + 0.7686275243759155, + 0.30588236451148987, + 0.32156863808631897, + 1.0 + ], + "id": "NT:/SmartDashboard/18: Angle Difference" } ] - }, + } + ], + "window": { + "name": "Pod Steer Error", + "visible": false + } + }, + "Plot <5>": { + "plots": [ { "axis": [ { "autoFit": true } ], - "height": 313, + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 573, "series": [ { "color": [ @@ -82,7 +365,7 @@ 0.6901960968971252, 1.0 ], - "id": "NT:/SmartDashboard/Front Left Angle" + "id": "NT:/PathPlanner/currentPose[0]" }, { "color": [ @@ -91,7 +374,7 @@ 0.32156863808631897, 1.0 ], - "id": "NT:/SmartDashboard/Front Left Angle Setpoint" + "id": "NT:/PathPlanner/targetPose[0]" } ] }, @@ -101,7 +384,13 @@ "autoFit": true } ], - "height": 313, + "backgroundColor": [ + 0.05999999865889549, + 0.05999999865889549, + 0.05999999865889549, + 0.9399999976158142 + ], + "height": 573, "series": [ { "color": [ @@ -110,7 +399,7 @@ 0.6901960968971252, 1.0 ], - "id": "NT:/SmartDashboard/Front Right Angle" + "id": "NT:/PathPlanner/currentPose[1]" }, { "color": [ @@ -119,11 +408,70 @@ 0.32156863808631897, 1.0 ], - "id": "NT:/SmartDashboard/Front Right Angle Setpoint" + "id": "NT:/PathPlanner/targetPose[1]" + } + ] + } + ] + }, + "Plot <6>": { + "plots": [ + { + "axis": [ + { + "autoFit": true + } + ], + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 480, + "series": [ + { + "color": [ + 0.8666667342185974, + 0.5176470875740051, + 0.32156863808631897, + 1.0 + ], + "id": "NT:/PathPlanner/currentPose[2]" + }, + { + "color": [ + 0.658823549747467, + 0.6471988558769226, + 0.3333333432674408, + 1.0 + ], + "id": "NT:/PathPlanner/targetPose[2]" } ] } ] + }, + "Plot <7>": { + "window": { + "visible": false + } + }, + "Plot <8>": { + "plots": [ + { + "backgroundColor": [ + 0.05999999865889549, + 0.05999999865889549, + 0.05999999865889549, + 0.9399999976158142 + ], + "height": 445 + } + ], + "window": { + "visible": false + } } } } diff --git a/.SysId/config.json b/.SysId/config.json new file mode 100644 index 0000000..bae4436 --- /dev/null +++ b/.SysId/config.json @@ -0,0 +1,60 @@ +{ + "canivore names": [ + "rio", + "rio", + "rio", + "rio" + ], + "counts per rotation": 2048.0, + "encoder canivore name": "rio", + "encoder type": "Encoder Port", + "encoding": false, + "gearing denominator": 1.0, + "gearing numerator": 5.14, + "gyro": "Analog Gyro", + "gyro canivore name": "rio", + "gyro ctor": "0", + "is drivetrain": false, + "motor controllers": [ + "SPARK MAX (Brushless)", + "SPARK MAX (Brushless)", + "SPARK MAX (Brushless)", + "SPARK MAX (Brushless)" + ], + "number of samples per average": 8, + "primary encoder inverted": false, + "primary encoder ports": [ + 0, + 1 + ], + "primary motor ports": [ + 11, + 15, + 13, + 17 + ], + "primary motors inverted": [ + false, + false, + false, + false + ], + "secondary encoder inverted": false, + "secondary encoder ports": [ + 2, + 3 + ], + "secondary motor ports": [ + 2, + 3, + 5, + 7 + ], + "secondary motors inverted": [ + false, + false, + false, + false + ], + "velocity measurement period": 8 +} \ No newline at end of file diff --git a/.SysId/sysid.json b/.SysId/sysid.json new file mode 100644 index 0000000..7ed1e0a --- /dev/null +++ b/.SysId/sysid.json @@ -0,0 +1,6 @@ +{ + "SysId": { + "mode": "Client (NT4)", + "serverTeam": "233" + } +} diff --git a/.gitignore b/.gitignore index a8d1911..76f03b1 100644 --- a/.gitignore +++ b/.gitignore @@ -170,3 +170,8 @@ out/ # Simulation GUI and other tools window save file *-window.json +<<<<<<< HEAD + +BuildConstants.java +======= +>>>>>>> wpi-2k24-beta3 diff --git a/.pathplanner/settings.json b/.pathplanner/settings.json index f9992d2..c0e5e3a 100644 --- a/.pathplanner/settings.json +++ b/.pathplanner/settings.json @@ -1,7 +1,11 @@ { - "robotWidth": 0.75, - "robotLength": 1.0, - "holonomicMode": false, - "generateJSON": true, - "generateCSV": false + "robotWidth": 0.77, + "robotLength": 0.77, + "holonomicMode": true, + "pathFolders": [], + "autoFolders": [], + "defaultMaxVel": 2.91, + "defaultMaxAccel": 2.9, + "defaultMaxAngVel": 1031.0, + "defaultMaxAngAccel": 620.0 } \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index c9c9713..097c8c9 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,21 +1,20 @@ { - // 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, - } - ] + // 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 index 438d757..39a5631 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -25,6 +25,5 @@ } } ], - "java.test.defaultConfig": "WPIlibUnitTests", - "java.compile.nullAnalysis.mode": "automatic" + "java.test.defaultConfig": "WPIlibUnitTests" } diff --git a/.wpilib/wpilib_preferences.json b/.wpilib/wpilib_preferences.json index 84f777a..8687b42 100644 --- a/.wpilib/wpilib_preferences.json +++ b/.wpilib/wpilib_preferences.json @@ -1,6 +1,6 @@ { - "enableCppIntellisense": false, - "currentLanguage": "java", - "projectYear": "2023", - "teamNumber": 233 -} \ No newline at end of file + "enableCppIntellisense": false, + "currentLanguage": "java", + "projectYear": "2024beta", + "teamNumber": 233 +} diff --git a/FRC_20231210_215035_dl.xlsx b/FRC_20231210_215035_dl.xlsx new file mode 100644 index 0000000..a37ee32 Binary files /dev/null and b/FRC_20231210_215035_dl.xlsx differ diff --git a/WPILib-License.md b/WPILib-License.md index 3d5a824..3c646de 100644 --- a/WPILib-License.md +++ b/WPILib-License.md @@ -1,4 +1,8 @@ +<<<<<<< HEAD Copyright (c) 2009-2021 FIRST and other WPILib contributors +======= +Copyright (c) 2009-2023 FIRST and other WPILib contributors +>>>>>>> wpi-2k24-beta3 All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/build.gradle b/build.gradle index b3109ac..e2b7828 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,12 @@ plugins { id "java" - id "edu.wpi.first.GradleRIO" version "2023.4.3" + id "edu.wpi.first.GradleRIO" version "2024.1.1-beta-3" } -sourceCompatibility = JavaVersion.VERSION_11 -targetCompatibility = JavaVersion.VERSION_11 +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} def ROBOT_MAIN_CLASS = "frc.robot.Main" @@ -84,6 +86,7 @@ wpi.sim.addDriverstation() // 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 } diff --git a/drive_error.xlsx b/drive_error.xlsx new file mode 100644 index 0000000..6dfc75d Binary files /dev/null and b/drive_error.xlsx differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c23a1b3..1058752 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=permwrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=permwrapper/dists diff --git a/gradlew b/gradlew index a69d9cb..1aa94a4 100644 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +80,11 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# 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"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +131,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + 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 @@ -193,11 +198,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# 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" \ diff --git a/gradlew.bat b/gradlew.bat index f127cfd..93e3f59 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -26,6 +26,7 @@ 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% diff --git a/settings.gradle b/settings.gradle index 48c039e..d94f73c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -4,7 +4,7 @@ pluginManagement { repositories { mavenLocal() gradlePluginPortal() - String frcYear = '2023' + String frcYear = '2024' File frcHome if (OperatingSystem.current().isWindows()) { String publicFolder = System.getenv('PUBLIC') @@ -25,3 +25,6 @@ pluginManagement { } } } + +Properties props = System.getProperties(); +props.setProperty("org.gradle.internal.native.headers.unresolved.dependencies.ignore", "true"); diff --git a/simgui.json b/simgui.json index 30e2ac2..302ae11 100644 --- a/simgui.json +++ b/simgui.json @@ -1,37 +1,66 @@ { - "HALProvider": { - "Other Devices": { - "navX-Sensor[0]": { - "header": { - "open": true - } - } - } - }, "NTProvider": { "types": { "/FMSInfo": "FMSInfo", - "/LiveWindow/Ungrouped/PIDController[1]": "PIDController", - "/LiveWindow/Ungrouped/PIDController[2]": "PIDController", - "/LiveWindow/Ungrouped/PIDController[3]": "PIDController", - "/LiveWindow/Ungrouped/PIDController[4]": "PIDController", - "/LiveWindow/Ungrouped/Scheduler": "Scheduler", - "/LiveWindow/Ungrouped/Talon FX [10]": "Motor Controller", - "/LiveWindow/Ungrouped/Talon FX [11]": "Motor Controller", - "/LiveWindow/Ungrouped/Talon FX [1]": "Motor Controller", - "/LiveWindow/Ungrouped/Talon FX [2]": "Motor Controller", - "/LiveWindow/Ungrouped/Talon FX [4]": "Motor Controller", - "/LiveWindow/Ungrouped/Talon FX [5]": "Motor Controller", - "/LiveWindow/Ungrouped/Talon FX [7]": "Motor Controller", - "/LiveWindow/Ungrouped/Talon FX [8]": "Motor Controller", - "/LiveWindow/Ungrouped/navX-Sensor[4]": "Gyro" + "/SmartDashboard/Field": "Field2d", + "/SmartDashboard/SendableChooser[0]": "String Chooser" + }, + "windows": { + "/SmartDashboard/Field": { + "window": { + "visible": true + } + } } }, "NetworkTables": { "transitory": { "SmartDashboard": { + "Field": { + "open": true + }, "open": true } } + }, + "Plot": { + "Plot <0>": { + "plots": [ + { + "axis": [ + { + "autoFit": true + } + ], + "backgroundColor": [ + 0.0, + 0.0, + 0.0, + 0.8500000238418579 + ], + "height": 1208, + "series": [ + { + "color": [ + 0.2980392277240753, + 0.44705885648727417, + 0.6901960968971252, + 1.0 + ], + "id": "NT:/SmartDashboard/Front Left Velocity" + }, + { + "color": [ + 0.8666667342185974, + 0.5176470875740051, + 0.32156863808631897, + 1.0 + ], + "id": "NT:/SmartDashboard/Front Right Velocity" + } + ] + } + ] + } } } diff --git a/src/main/deploy/pathplanner/Test.path b/src/main/deploy/pathplanner/New Path.path similarity index 56% rename from src/main/deploy/pathplanner/Test.path rename to src/main/deploy/pathplanner/New Path.path index cf47066..74c48a8 100644 --- a/src/main/deploy/pathplanner/Test.path +++ b/src/main/deploy/pathplanner/New Path.path @@ -2,13 +2,13 @@ "waypoints": [ { "anchorPoint": { - "x": 1.9397615370208559, - "y": 5.000379761185433 + "x": 1.0, + "y": 3.0 }, "prevControl": null, "nextControl": { - "x": 2.9397615370208596, - "y": 5.000379761185433 + "x": 2.0, + "y": 3.0 }, "holonomicAngle": 0, "isReversal": false, @@ -24,12 +24,37 @@ }, { "anchorPoint": { - "x": 4.7564761677881835, - "y": 5.007492676919693 + "x": 3.0, + "y": 5.0 }, "prevControl": { - "x": 3.8175712908657413, - "y": 4.9932668454511715 + "x": 3.0, + "y": 4.0 + }, + "nextControl": { + "x": 3.0, + "y": 4.0 + }, + "holonomicAngle": 0, + "isReversal": true, + "velOverride": null, + "isLocked": false, + "isStopPoint": false, + "stopEvent": { + "names": [], + "executionBehavior": "parallel", + "waitBehavior": "none", + "waitTime": 0 + } + }, + { + "anchorPoint": { + "x": 5.0, + "y": 3.0 + }, + "prevControl": { + "x": 4.0, + "y": 3.0 }, "nextControl": null, "holonomicAngle": 0, diff --git a/src/main/deploy/pathplanner/generatedJSON/New Path.wpilib.json b/src/main/deploy/pathplanner/generatedJSON/New Path.wpilib.json new file mode 100644 index 0000000..6aeafc6 --- /dev/null +++ b/src/main/deploy/pathplanner/generatedJSON/New Path.wpilib.json @@ -0,0 +1 @@ +[{"time":0.0,"pose":{"rotation":{"radians":0.003994666723425411},"translation":{"x":1.0,"y":3.0}},"velocity":0,"acceleration":3.0,"curvature":0.6639756640813854,"holonomicRotation":0.0,"angularVelocity":0.0,"holonomicAngularVelocity":0.0},{"time":0.08944283740393223,"pose":{"rotation":{"radians":0.003994666723425411},"translation":{"x":1.011999936,"y":3.000047936}},"velocity":0.2683285122117967,"acceleration":3.0,"curvature":0.6639756640813854,"holonomicRotation":0.0,"angularVelocity":0.21506066046275568,"holonomicAngularVelocity":0.0},{"time":0.12649227216974931,"pose":{"rotation":{"radians":0.011962542633933815},"translation":{"x":1.023999488,"y":3.000191488}},"velocity":0.37947681650924797,"acceleration":3.0000000000000004,"curvature":0.6612478412834536,"holonomicRotation":0.0,"angularVelocity":0.2791196654351322,"holonomicAngularVelocity":0.0},{"time":0.15492278103446244,"pose":{"rotation":{"radians":0.019898056756403104},"translation":{"x":1.035998272,"y":3.000430272}},"velocity":0.4647683431033873,"acceleration":2.999999999999999,"curvature":0.6584819160891061,"holonomicRotation":0.0,"angularVelocity":0.3297027488703112,"holonomicAngularVelocity":0.0},{"time":0.1788926532379475,"pose":{"rotation":{"radians":0.027800989511962193},"translation":{"x":1.047995904,"y":3.000763904}},"velocity":0.5366779597138426,"acceleration":3.000000000000002,"curvature":0.6556801390904735,"holonomicRotation":0.0,"angularVelocity":0.3726393102517324,"holonomicAngularVelocity":0.0},{"time":0.20001267329763361,"pose":{"rotation":{"radians":0.035671139219506376},"translation":{"x":1.059992,"y":3.001192}},"velocity":0.600038019892901,"acceleration":3.0000000000000027,"curvature":0.6528447360474213,"holonomicRotation":0.0,"angularVelocity":0.41040227730614015,"holonomicAngularVelocity":0.0},{"time":0.21910901626437457,"pose":{"rotation":{"radians":0.043508321861275956},"translation":{"x":1.071986176,"y":3.001714176}},"velocity":0.6573270487931238,"acceleration":2.999999999999997,"curvature":0.6499779059037429,"holonomicRotation":0.0,"angularVelocity":0.44433343266184905,"holonomicAngularVelocity":0.0},{"time":0.23667251341123324,"pose":{"rotation":{"radians":0.05131237083808626},"translation":{"x":1.083978048,"y":3.0023300479999997}},"velocity":0.7100175402336998,"acceleration":3.0,"curvature":0.6470818190817624,"holonomicRotation":0.0,"angularVelocity":0.4752620325524382,"holonomicAngularVelocity":0.0},{"time":0.2530230008132736,"pose":{"rotation":{"radians":0.059083136714003004},"translation":{"x":1.095967232,"y":3.0030392320000003}},"velocity":0.7590690024398208,"acceleration":2.9999999999999933,"curvature":0.6441586157879952,"holonomicRotation":0.0,"angularVelocity":0.503744881604611,"holonomicAngularVelocity":0.0},{"time":0.2683826610691287,"pose":{"rotation":{"radians":0.06682048695107579},"translation":{"x":1.107953344,"y":3.003841344}},"velocity":0.8051479832073861,"acceleration":3.0,"curvature":0.6412104045031461,"holonomicRotation":0.0,"angularVelocity":0.5301782294749301,"holonomicAngularVelocity":0.0},{"time":0.28291328163710894,"pose":{"rotation":{"radians":0.07452430563697954},"translation":{"x":1.119936,"y":3.004736}},"velocity":0.8487398449113267,"acceleration":2.999999999999996,"curvature":0.6382392605344197,"holonomicRotation":0.0,"angularVelocity":0.5548565565084475,"holonomicAngularVelocity":0.0},{"time":0.29673701224983334,"pose":{"rotation":{"radians":0.08219449320285621},"translation":{"x":1.131914816,"y":3.005722816}},"velocity":0.8902110367494999,"acceleration":2.999999999999996,"curvature":0.6352472246423004,"holonomicRotation":0.0,"angularVelocity":0.578006214771147,"holonomicAngularVelocity":0.0},{"time":0.3099487610809687,"pose":{"rotation":{"radians":0.08983096613524788},"translation":{"x":1.1438894080000002,"y":3.0068014080000003}},"velocity":0.9298462832429059,"acceleration":2.999999999999996,"curvature":0.6322363019942066,"holonomicRotation":0.0,"angularVelocity":0.5998059641247867,"holonomicAngularVelocity":0.0},{"time":0.32262401107954614,"pose":{"rotation":{"radians":0.09743365668116732},"translation":{"x":1.1558593920000002,"y":3.007971392}},"velocity":0.9678720332386382,"acceleration":3.0000000000000044,"curvature":0.6292084609699508,"holonomicRotation":0.0,"angularVelocity":0.6204001606264152,"holonomicAngularVelocity":0.0},{"time":0.33482396902093875,"pose":{"rotation":{"radians":0.10500251254764281},"translation":{"x":1.1678243840000002,"y":3.009232384}},"velocity":1.004471907062816,"acceleration":3.0,"curvature":0.6261656322069515,"holonomicRotation":0.0,"angularVelocity":0.6399075802749538,"holonomicAngularVelocity":0.0},{"time":0.34659908199060496,"pose":{"rotation":{"radians":0.11253749659552614},"translation":{"x":1.1797840000000002,"y":3.010584}},"velocity":1.0397972459718146,"acceleration":2.999999999999986,"curvature":0.6231097077741713,"holonomicRotation":0.0,"angularVelocity":0.6584275258643302,"holonomicAngularVelocity":0.0},{"time":0.35799151265261864,"pose":{"rotation":{"radians":0.12003858652989674},"translation":{"x":1.191737856,"y":3.012025856}},"velocity":1.0739745379578558,"acceleration":3.0000000000000195,"curvature":0.6200425403858878,"holonomicRotation":0.0,"angularVelocity":0.6760441751840484,"holonomicAngularVelocity":0.0},{"time":0.3690369270353713,"pose":{"rotation":{"radians":0.12750577458585077},"translation":{"x":1.203685568,"y":3.013557568}},"velocity":1.1071107811061136,"acceleration":2.99999999999999,"curvature":0.6169659427566434,"holonomicRotation":0.0,"angularVelocity":0.6928297531996462,"holonomicAngularVelocity":0.0},{"time":0.3797658147476807,"pose":{"rotation":{"radians":0.1349390672116768},"translation":{"x":1.2156267520000001,"y":3.0151787519999997}},"velocity":1.1392974442430417,"acceleration":2.99999999999999,"curvature":0.6138816870208452,"holonomicRotation":0.0,"angularVelocity":0.7088468950979862,"holonomicAngularVelocity":0.0},{"time":0.39020448294066074,"pose":{"rotation":{"radians":0.14233848474922883},"translation":{"x":1.2275610240000001,"y":3.016889024}},"velocity":1.170613448821982,"acceleration":3.0000000000000053,"curvature":0.6107915042289077,"holonomicRotation":0.0,"angularVelocity":0.7241504390542802,"holonomicAngularVelocity":0.0},{"time":0.40037581746696743,"pose":{"rotation":{"radians":0.1497040611122218},"translation":{"x":1.2394880000000001,"y":3.018688}},"velocity":1.2011274524009021,"acceleration":3.000000000000011,"curvature":0.6076970841012796,"holonomicRotation":0.0,"angularVelocity":0.7387888084367961,"holonomicAngularVelocity":0.0},{"time":0.4102998746100373,"pose":{"rotation":{"radians":0.15703584346380906},"translation":{"x":1.2514072960000002,"y":3.020575296}},"velocity":1.2308996238301118,"acceleration":3.0,"curvature":0.6046000745612534,"holonomicRotation":0.0,"angularVelocity":0.7528050925445897,"holonomicAngularVelocity":0.0},{"time":0.4199943473238247,"pose":{"rotation":{"radians":0.16433389189228276},"translation":{"x":1.263318528,"y":3.022550528}},"velocity":1.2599830419714737,"acceleration":2.9999999999999827,"curvature":0.6015020816536292,"holonomicRotation":0.0,"angularVelocity":0.7662379027190784,"holonomicAngularVelocity":0.0},{"time":0.4294749370586641,"pose":{"rotation":{"radians":0.17159827908724612},"translation":{"x":1.2752213120000002,"y":3.024613312}},"velocity":1.288424811175992,"acceleration":3.0000000000000058,"curvature":0.598404669370064,"holonomicRotation":0.0,"angularVelocity":0.7791220580680622,"holonomicAngularVelocity":0.0},{"time":0.4387556535437481,"pose":{"rotation":{"radians":0.178829090015451},"translation":{"x":1.2871152640000003,"y":3.026763264}},"velocity":1.316266960631244,"acceleration":2.9999999999999942,"curvature":0.595309359586865,"holonomicRotation":0.0,"angularVelocity":0.7914891405693073,"holonomicAngularVelocity":0.0},{"time":0.4478490588896583,"pose":{"rotation":{"radians":0.1860264215975338},"translation":{"x":1.2990000000000002,"y":3.0290000000000004}},"velocity":1.3435471766689746,"acceleration":3.0,"curvature":0.5922176320623258,"holonomicRotation":0.0,"angularVelocity":0.8033679485304233,"holonomicAngularVelocity":0.0},{"time":0.4567664681550803,"pose":{"rotation":{"radians":0.19319038238530206},"translation":{"x":1.3108751360000002,"y":3.031323136}},"velocity":1.3702994044652408,"acceleration":3.0000000000000187,"curvature":0.5891309246519478,"holonomicRotation":0.0,"angularVelocity":0.8147848704001008,"holonomicAngularVelocity":0.0},{"time":0.4655181155102056,"pose":{"rotation":{"radians":0.2003210922413352},"translation":{"x":1.3227402880000003,"y":3.033732288}},"velocity":1.3965543465306167,"acceleration":3.000000000000006,"curvature":0.586050633250819,"holonomicRotation":0.0,"angularVelocity":0.8257641950388135,"holonomicAngularVelocity":0.0},{"time":0.4741132929479354,"pose":{"rotation":{"radians":0.20741868201941793},"translation":{"x":1.3345950720000002,"y":3.036227072}},"velocity":1.4223398788438062,"acceleration":3.0000000000000067,"curvature":0.5829781121894732,"holonomicRotation":0.0,"angularVelocity":0.8363283714373475,"holonomicAngularVelocity":0.0},{"time":0.48256046689262294,"pose":{"rotation":{"radians":0.21448329324782645},"translation":{"x":1.3464391040000003,"y":3.038807104}},"velocity":1.4476814006778689,"acceleration":3.0000000000000133,"curvature":0.5799146744073622,"holonomicRotation":0.0,"angularVelocity":0.8464982273774265,"holonomicAngularVelocity":0.0},{"time":0.4908673768658824,"pose":{"rotation":{"radians":0.22151507781517443},"translation":{"x":1.3582720000000004,"y":3.041472}},"velocity":1.472602130597647,"acceleration":2.9999999999999867,"curvature":0.576861591813293,"holonomicRotation":0.0,"angularVelocity":0.8562931546703403,"holonomicAngularVelocity":0.0},{"time":0.49904111947427243,"pose":{"rotation":{"radians":0.22851419765877612},"translation":{"x":1.3700933760000003,"y":3.044221376}},"velocity":1.4971233584228174,"acceleration":3.0000000000000204,"curvature":0.5738200956320813,"holonomicRotation":0.0,"angularVelocity":0.865731267137874,"holonomicAngularVelocity":0.0},{"time":0.5070882203039146,"pose":{"rotation":{"radians":0.2354808244568085},"translation":{"x":1.3819028480000004,"y":3.047054848}},"velocity":1.521264660911744,"acceleration":2.9999999999999862,"curvature":0.5707913768705666,"holonomicRotation":0.0,"angularVelocity":0.8748295358184321,"holonomicAngularVelocity":0.0},{"time":0.5150146957856219,"pose":{"rotation":{"radians":0.24241513932314662},"translation":{"x":1.3937000320000004,"y":3.0499720320000003}},"velocity":1.5450440873568656,"acceleration":3.0,"curvature":0.5677765867125653,"holonomicRotation":0.0,"angularVelocity":0.8836039055955357,"holonomicAngularVelocity":0.0},{"time":0.5228261066903811,"pose":{"rotation":{"radians":0.24931733250680344},"translation":{"x":1.4054845440000003,"y":3.0529725439999997}},"velocity":1.5684783200711434,"acceleration":3.000000000000014,"curvature":0.5647768371119535,"holonomicRotation":0.0,"angularVelocity":0.8920693959970966,"holonomicAngularVelocity":0.0},{"time":0.5305276045997832,"pose":{"rotation":{"radians":0.2561876030951167},"translation":{"x":1.4172560000000003,"y":3.0560560000000003}},"velocity":1.5915828137993497,"acceleration":3.0,"curvature":0.5617932012303706,"holonomicRotation":0.0,"angularVelocity":0.9002401887205707,"holonomicAngularVelocity":0.0},{"time":0.5381239724478855,"pose":{"rotation":{"radians":0.2630261587202831},"translation":{"x":1.4290140160000004,"y":3.059222016}},"velocity":1.6143719173436566,"acceleration":3.0000000000000147,"curvature":0.5588267141256478,"holonomicRotation":0.0,"angularVelocity":0.9081297043799728,"holonomicAngularVelocity":0.0},{"time":0.545619660034259,"pose":{"rotation":{"radians":0.26983321527222115},"translation":{"x":1.4407582080000003,"y":3.062470208}},"velocity":1.636858980102777,"acceleration":2.9999999999999853,"curvature":0.5558783732950194,"holonomicRotation":0.0,"angularVelocity":0.9157506692832025,"holonomicAngularVelocity":0.0},{"time":0.5530188152508757,"pose":{"rotation":{"radians":0.2766089966139682},"translation":{"x":1.4524881920000003,"y":3.065800192}},"velocity":1.6590564457526273,"acceleration":3.000000000000015,"curvature":0.5529491392614916,"holonomicRotation":0.0,"angularVelocity":0.9231151746218296,"holonomicAngularVelocity":0.0},{"time":0.5603253116392223,"pose":{"rotation":{"radians":0.2833537343033705},"translation":{"x":1.4642035840000003,"y":3.069211584}},"velocity":1.680975934917667,"acceleration":2.999999999999985,"curvature":0.550039936396451,"holonomicRotation":0.0,"angularVelocity":0.930234728482705,"holonomicAngularVelocity":0.0},{"time":0.5675427727919045,"pose":{"rotation":{"radians":0.2900676673190703},"translation":{"x":1.4759040000000003,"y":3.072704}},"velocity":1.7026283183757136,"acceleration":3.0000000000000155,"curvature":0.5471516534114057,"holonomicRotation":0.0,"angularVelocity":0.9371203020376715,"holonomicAngularVelocity":0.0},{"time":0.5746745940299195,"pose":{"rotation":{"radians":0.29675104179171763},"translation":{"x":1.4875890560000005,"y":3.0762770560000003}},"velocity":1.7240237820897588,"acceleration":3.0000000000000155,"curvature":0.5442851441519642,"holonomicRotation":0.0,"angularVelocity":0.9437823705764029,"holonomicAngularVelocity":0.0},{"time":0.5817239617188056,"pose":{"rotation":{"radians":0.30340411074019924},"translation":{"x":1.4992583680000005,"y":3.0799303680000003}},"velocity":1.745171885156417,"acceleration":3.0,"curvature":0.5414412284047404,"holonomicRotation":0.0,"angularVelocity":0.9502309502250106,"holonomicAngularVelocity":0.0},{"time":0.5886938705309835,"pose":{"rotation":{"radians":0.3100271338137768},"translation":{"x":1.5109115520000005,"y":3.083663552}},"velocity":1.766081611592951,"acceleration":3.0,"curvature":0.538620692477182,"holonomicRotation":0.0,"angularVelocity":0.9564756306438044,"holonomicAngularVelocity":0.0},{"time":0.595587138915401,"pose":{"rotation":{"radians":0.3166203770389595},"translation":{"x":1.5225482240000003,"y":3.087476224}},"velocity":1.7867614167462034,"acceleration":2.999999999999984,"curvature":0.5358242899805497,"holonomicRotation":0.0,"angularVelocity":0.9625256044965456,"holonomicAngularVelocity":0.0},{"time":0.6024064229972305,"pose":{"rotation":{"radians":0.32318411257205604},"translation":{"x":1.5341680000000004,"y":3.091368}},"velocity":1.8072192689916917,"acceleration":3.0000000000000164,"curvature":0.5330527427341295,"holonomicRotation":0.0,"angularVelocity":0.9683896940146024,"holonomicAngularVelocity":0.0},{"time":0.609154229098364,"pose":{"rotation":{"radians":0.32971861845760264},"translation":{"x":1.5457704960000005,"y":3.095338496}},"velocity":1.8274626872950925,"acceleration":3.0000000000000164,"curvature":0.530306741366546,"holonomicRotation":0.0,"angularVelocity":0.9740763749015857,"holonomicAngularVelocity":0.0},{"time":0.6158329250426408,"pose":{"rotation":{"radians":0.33622417839207364},"translation":{"x":1.5573553280000003,"y":3.099387328}},"velocity":1.8474987751279226,"acceleration":2.9999999999999836,"curvature":0.5275869461466284,"holonomicRotation":0.0,"angularVelocity":0.9795937980259228,"holonomicAngularVelocity":0.0},{"time":0.6224447503871835,"pose":{"rotation":{"radians":0.3427010814932183},"translation":{"x":1.5689221120000005,"y":3.103514112}},"velocity":1.867334251161551,"acceleration":3.000000000000017,"curvature":0.5248939877909048,"holonomicRotation":0.0,"angularVelocity":0.9849498091847217,"holonomicAngularVelocity":0.0},{"time":0.6289918257021776,"pose":{"rotation":{"radians":0.34914962207543976},"translation":{"x":1.5804704640000005,"y":3.1077184640000004}},"velocity":1.8869754771065332,"acceleration":3.0,"curvature":0.5222284682600525,"holonomicRotation":0.0,"angularVelocity":0.9901519669517042,"holonomicAngularVelocity":0.0},{"time":0.6354761610052784,"pose":{"rotation":{"radians":0.35557009943017936},"translation":{"x":1.5920000000000005,"y":3.112}},"velocity":1.9064284830158356,"acceleration":3.0,"curvature":0.5195909614569448,"holonomicRotation":0.0,"angularVelocity":0.995207559235847,"holonomicAngularVelocity":0.0},{"time":0.6418996634430969,"pose":{"rotation":{"radians":0.36196281761306626},"translation":{"x":1.6035103360000005,"y":3.1163583360000002}},"velocity":1.925698990329291,"acceleration":2.9999999999999654,"curvature":0.5169820141397625,"holonomicRotation":0.0,"angularVelocity":1.0001236180941289,"holonomicAngularVelocity":0.0},{"time":0.6482641443004898,"pose":{"rotation":{"radians":0.3683280852354529},"translation":{"x":1.6150010880000005,"y":3.120793088}},"velocity":1.9447924329014699,"acceleration":3.0000000000000173,"curvature":0.5144021466205864,"holonomicRotation":0.0,"angularVelocity":1.0049069337160952,"holonomicAngularVelocity":0.0},{"time":0.654571325408339,"pose":{"rotation":{"radians":0.37466621526293364},"translation":{"x":1.6264718720000004,"y":3.1253038720000004}},"velocity":1.963713976225017,"acceleration":2.9999999999999822,"curvature":0.5118518535480218,"holonomicRotation":0.0,"angularVelocity":1.0095640669411767,"holonomicAngularVelocity":0.0},{"time":0.6608228450118765,"pose":{"rotation":{"radians":0.3809775248184435},"translation":{"x":1.6379223040000006,"y":3.1298903040000003}},"velocity":1.9824685350356297,"acceleration":3.0,"curvature":0.5093316047891678,"holonomicRotation":0.0,"angularVelocity":1.0141013611142926,"holonomicAngularVelocity":0.0},{"time":0.6670202631541803,"pose":{"rotation":{"radians":0.3872623349919482},"translation":{"x":1.6493520000000006,"y":3.1345520000000002}},"velocity":2.001060789462541,"acceleration":2.9999999999999822,"curvature":0.5068418460483123,"holonomicRotation":0.0,"angularVelocity":1.0185249527914209,"holonomicAngularVelocity":0.0},{"time":0.6731650666230385,"pose":{"rotation":{"radians":0.3935209706549796},"translation":{"x":1.6607605760000006,"y":3.139288576}},"velocity":2.019495199869116,"acceleration":3.000000000000036,"curvature":0.5043829997706955,"holonomicRotation":0.0,"angularVelocity":1.0228407818457754,"holonomicAngularVelocity":0.0},{"time":0.6792586735038131,"pose":{"rotation":{"radians":0.3997537602811718},"translation":{"x":1.6721476480000006,"y":3.144099648}},"velocity":2.0377760205114397,"acceleration":3.000000000000018,"curvature":0.5019554658535227,"holonomicRotation":0.0,"angularVelocity":1.0270546007967487,"holonomicAngularVelocity":0.0},{"time":0.6853024373760951,"pose":{"rotation":{"radians":0.4059610357723282},"translation":{"x":1.6835128320000006,"y":3.1489848320000005}},"velocity":2.055907312128286,"acceleration":3.000000000000018,"curvature":0.4995596223797258,"holonomicRotation":0.0,"angularVelocity":1.0311719834309776,"holonomicAngularVelocity":0.0},{"time":0.6912976511877287,"pose":{"rotation":{"radians":0.41214313228956323},"translation":{"x":1.6948557440000005,"y":3.153943744}},"velocity":2.073892953563187,"acceleration":3.0000000000000555,"curvature":0.497195826433042,"holonomicRotation":0.0,"angularVelocity":1.0351983330346652,"holonomicAngularVelocity":0.0},{"time":0.6972455508361,"pose":{"rotation":{"radians":0.41830038809061465},"translation":{"x":1.7061760000000006,"y":3.158976}},"velocity":2.0917366525083008,"acceleration":3.0,"curvature":0.49486441475959786,"holonomicRotation":0.0,"angularVelocity":1.0391388898355578,"holonomicAngularVelocity":0.0},{"time":0.7031473184833589,"pose":{"rotation":{"radians":0.4244331443716547},"translation":{"x":1.7174732160000006,"y":3.164081216}},"velocity":2.1094419554500776,"acceleration":3.0000000000000187,"curvature":0.49256570452373255,"holonomicRotation":0.0,"angularVelocity":1.0429987382017707,"holonomicAngularVelocity":0.0},{"time":0.7090040856294209,"pose":{"rotation":{"radians":0.4305417451149389},"translation":{"x":1.7287470080000005,"y":3.1692590080000005}},"velocity":2.1270122568882632,"acceleration":2.999999999999943,"curvature":0.4902999940555179,"holonomicRotation":0.0,"angularVelocity":1.0467828132720296,"holonomicAngularVelocity":0.0},{"time":0.7148169359641001,"pose":{"rotation":{"radians":0.43662653694140374},"translation":{"x":1.7399969920000007,"y":3.1745089920000003}},"velocity":2.144450807892301,"acceleration":3.0,"curvature":0.48806756353004915,"holonomicRotation":0.0,"angularVelocity":1.0504959073278146,"holonomicAngularVelocity":0.0},{"time":0.7205869080175377,"pose":{"rotation":{"radians":0.44268786896893575},"translation":{"x":1.7512227840000005,"y":3.1798307840000004}},"velocity":2.1617607240526135,"acceleration":2.999999999999981,"curvature":0.48586867565117137,"holonomicRotation":0.0,"angularVelocity":1.0541426755241503,"holonomicAngularVelocity":0.0},{"time":0.7263149976261485,"pose":{"rotation":{"radians":0.44872609267459884},"translation":{"x":1.7624240000000007,"y":3.1852240000000003}},"velocity":2.178944992878446,"acceleration":3.0000000000000195,"curvature":0.4837035763245057,"holonomicRotation":0.0,"angularVelocity":1.057727641711773,"holonomicAngularVelocity":0.0},{"time":0.7320021602295974,"pose":{"rotation":{"radians":0.45474156176317626},"translation":{"x":1.7736002560000006,"y":3.190688256}},"velocity":2.196006480688793,"acceleration":3.0,"curvature":0.48157249540881814,"holonomicRotation":0.0,"angularVelocity":1.0612552035501235,"holonomicAngularVelocity":0.0},{"time":0.7376493130127955,"pose":{"rotation":{"radians":0.46073463203958775},"translation":{"x":1.7847511680000006,"y":3.1962231680000004}},"velocity":2.212947939038387,"acceleration":2.9999999999999605,"curvature":0.47947564724702235,"holonomicRotation":0.0,"angularVelocity":1.064729637583078,"holonomicAngularVelocity":0.0},{"time":0.7432573369055535,"pose":{"rotation":{"radians":0.4667056612864813},"translation":{"x":1.7958763520000005,"y":3.2018283520000006}},"velocity":2.229772010716661,"acceleration":3.0,"curvature":0.4774132314234743,"holonomicRotation":0.0,"angularVelocity":1.0681551040334438,"holonomicAngularVelocity":0.0},{"time":0.7488270784513326,"pose":{"rotation":{"radians":0.4726550091467523},"translation":{"x":1.8069754240000007,"y":3.2075034240000004}},"velocity":2.246481235353998,"acceleration":2.99999999999994,"curvature":0.47538543331431704,"holonomicRotation":0.0,"angularVelocity":1.0715356512801077,"holonomicAngularVelocity":0.0},{"time":0.7543593515554528,"pose":{"rotation":{"radians":0.47858303701043514},"translation":{"x":1.8180480000000006,"y":3.2132480000000005}},"velocity":2.2630780546663583,"acceleration":2.99999999999998,"curvature":0.47339242474423837,"holonomicRotation":0.0,"angularVelocity":1.0748752201197043,"holonomicAngularVelocity":0.0},{"time":0.7598549391221702,"pose":{"rotation":{"radians":0.48449010790589764},"translation":{"x":1.8290936960000006,"y":3.2190616960000002}},"velocity":2.2795648173665106,"acceleration":3.00000000000002,"curvature":0.4714343645997835,"holonomicRotation":0.0,"angularVelocity":1.078177648009616,"holonomicAngularVelocity":0.0},{"time":0.7653145945891694,"pose":{"rotation":{"radians":0.4903765863962497},"translation":{"x":1.8401121280000006,"y":3.2249441280000006}},"velocity":2.2959437837675085,"acceleration":3.000000000000041,"curvature":0.46951139933779384,"holonomicRotation":0.0,"angularVelocity":1.081446672778329,"holonomicAngularVelocity":0.0},{"time":0.7707390433672545,"pose":{"rotation":{"radians":0.49624283847896633},"translation":{"x":1.8511029120000007,"y":3.230894912}},"velocity":2.312217130101764,"acceleration":3.0000000000000204,"curvature":0.4676236637211531,"holonomicRotation":0.0,"angularVelocity":1.084685936629946,"holonomicAngularVelocity":0.0},{"time":0.7761289841923315,"pose":{"rotation":{"radians":0.5020892314911949},"translation":{"x":1.8620656640000006,"y":3.2369136640000002}},"velocity":2.328386952576995,"acceleration":3.0000000000000617,"curvature":0.465771281161275,"holonomicRotation":0.0,"angularVelocity":1.087898989421331,"holonomicAngularVelocity":0.0},{"time":0.7814850903961527,"pose":{"rotation":{"radians":0.5079161340175653},"translation":{"x":1.8730000000000007,"y":3.2430000000000003}},"velocity":2.3444552711884588,"acceleration":3.0,"curvature":0.4639543644847911,"holonomicRotation":0.0,"angularVelocity":1.091089292363366,"holonomicAngularVelocity":0.0},{"time":0.78680801110174,"pose":{"rotation":{"radians":0.5137239158035309},"translation":{"x":1.8839055360000008,"y":3.249153536}},"velocity":2.360424033305221,"acceleration":3.0,"curvature":0.462173016289964,"holonomicRotation":0.0,"angularVelocity":1.0942602211599142,"holonomicAngularVelocity":0.0},{"time":0.7920983723488966,"pose":{"rotation":{"radians":0.5195129476718603},"translation":{"x":1.8947818880000007,"y":3.2553738880000003}},"velocity":2.376295117046691,"acceleration":3.000000000000063,"curvature":0.4604273295606459,"holonomicRotation":0.0,"angularVelocity":1.0974150691626414,"holonomicAngularVelocity":0.0},{"time":0.7973567781547642,"pose":{"rotation":{"radians":0.5252836014429918},"translation":{"x":1.9056286720000006,"y":3.2616606720000005}},"velocity":2.392070334464294,"acceleration":3.0000000000000213,"curvature":0.4587173881423953,"holonomicRotation":0.0,"angularVelocity":1.1005570504763318,"holonomicAngularVelocity":0.0},{"time":0.8025838115139726,"pose":{"rotation":{"radians":0.5310362498595436},"translation":{"x":1.9164455040000006,"y":3.2680135040000002}},"velocity":2.407751434541919,"acceleration":3.0,"curvature":0.45704326727847255,"holonomicRotation":0.0,"angularVelocity":1.103689302847837,"holonomicAngularVelocity":0.0},{"time":0.8077800353425552,"pose":{"rotation":{"radians":0.5367712665143531},"translation":{"x":1.9272320000000007,"y":3.2744320000000005}},"velocity":2.4233401060276667,"acceleration":3.0,"curvature":0.4554050339448593,"holonomicRotation":0.0,"angularVelocity":1.106814890388444,"holonomicAngularVelocity":0.0},{"time":0.8129459933694659,"pose":{"rotation":{"radians":0.5424890257816597},"translation":{"x":1.9379877760000008,"y":3.2809157760000005}},"velocity":2.4388379801083993,"acceleration":3.000000000000043,"curvature":0.45380274753675837,"holonomicRotation":0.0,"angularVelocity":1.1099368064146276,"holonomicAngularVelocity":0.0},{"time":0.8180822109792315,"pose":{"rotation":{"radians":0.5481899027524935},"translation":{"x":1.9487124480000007,"y":3.2874644480000006}},"velocity":2.454246632937696,"acceleration":3.0,"curvature":0.45223646009204105,"holonomicRotation":0.0,"angularVelocity":1.1130579759190018,"holonomicAngularVelocity":0.0},{"time":0.8231891960089878,"pose":{"rotation":{"radians":0.5538742731727626},"translation":{"x":1.9594056320000008,"y":3.2940776320000005}},"velocity":2.469567588026965,"acceleration":3.0000000000000435,"curvature":0.45070621683540724,"holonomicRotation":0.0,"angularVelocity":1.1161812581904715,"holonomicAngularVelocity":0.0},{"time":0.8282674395029013,"pose":{"rotation":{"radians":0.5595425133851966},"translation":{"x":1.9700669440000007,"y":3.3007549440000004}},"velocity":2.484802318508706,"acceleration":3.0000000000000657,"curvature":0.44921205667481234,"holonomicRotation":0.0,"angularVelocity":1.1193094491211109,"holonomicAngularVelocity":0.0},{"time":0.833317416426745,"pose":{"rotation":{"radians":0.5651950002738984},"translation":{"x":1.980696000000001,"y":3.3074960000000004}},"velocity":2.499952249280237,"acceleration":3.0,"curvature":0.4477540124322439,"holonomicRotation":0.0,"angularVelocity":1.1224452836441048,"holonomicAngularVelocity":0.0},{"time":0.8383395863451837,"pose":{"rotation":{"radians":0.5708321112125092},"translation":{"x":1.9912924160000007,"y":3.3143004160000005}},"velocity":2.515018759035553,"acceleration":3.0,"curvature":0.44633211133455136,"holonomicRotation":0.0,"angularVelocity":1.1255914379185776,"holonomicAngularVelocity":0.0},{"time":0.8433343940641395,"pose":{"rotation":{"radians":0.5764542240150154},"translation":{"x":2.0018558080000006,"y":3.3211678080000007}},"velocity":2.5300031821924205,"acceleration":3.000000000000022,"curvature":0.4449463754713489,"holonomicRotation":0.0,"angularVelocity":1.1287505315367143,"holonomicAngularVelocity":0.0},{"time":0.8483022702404226,"pose":{"rotation":{"radians":0.5820617168896036},"translation":{"x":2.012385792000001,"y":3.3280977920000003}},"velocity":2.54490681072127,"acceleration":2.999999999999978,"curvature":0.44359682198548334,"holonomicRotation":0.0,"angularVelocity":1.1319251296711867,"holonomicAngularVelocity":0.0},{"time":0.8532436319606614,"pose":{"rotation":{"radians":0.5876549683955372},"translation":{"x":2.022881984000001,"y":3.3350899840000006}},"velocity":2.559730895881986,"acceleration":2.9999999999999325,"curvature":0.44228346357140413,"holonomicRotation":0.0,"angularVelocity":1.1351177449809835,"holonomicAngularVelocity":0.0},{"time":0.8581588832914108,"pose":{"rotation":{"radians":0.5932343574021122},"translation":{"x":2.0333440000000005,"y":3.3421440000000007}},"velocity":2.574476649874234,"acceleration":3.0000000000000453,"curvature":0.44100630878383207,"holonomicRotation":0.0,"angularVelocity":1.138330839718644,"holonomicAngularVelocity":0.0},{"time":0.8630484158021899,"pose":{"rotation":{"radians":0.598800263050939},"translation":{"x":2.043771456000001,"y":3.3492594560000004}},"velocity":2.589145247406572,"acceleration":3.0000000000000453,"curvature":0.43976536240568537,"holonomicRotation":0.0,"angularVelocity":1.1415668276354243,"holonomicAngularVelocity":0.0},{"time":0.8679126090630681,"pose":{"rotation":{"radians":0.6043530647207653},"translation":{"x":2.0541639680000006,"y":3.356435968000001}},"velocity":2.603737827189206,"acceleration":2.9999999999999543,"curvature":0.43856062556178693,"holonomicRotation":0.0,"angularVelocity":1.1448280756028915,"holonomicAngularVelocity":0.0},{"time":0.8727518311183128,"pose":{"rotation":{"radians":0.6098931419936862},"translation":{"x":2.0645211520000006,"y":3.3636731520000005}},"velocity":2.6182554933549405,"acceleration":3.0000000000000457,"curvature":0.43739209639321713,"holonomicRotation":0.0,"angularVelocity":1.1458505886525359,"holonomicAngularVelocity":0.0},{"time":0.8775759614950274,"pose":{"rotation":{"radians":0.6154208746255811},"translation":{"x":2.074842624000001,"y":3.3709706240000004}},"velocity":2.622334232261645,"acceleration":0.8454868729070896,"curvature":0.4362597700073285,"holonomicRotation":0.0,"angularVelocity":1.1445003863931786,"holonomicAngularVelocity":0.0},{"time":0.8823953289299136,"pose":{"rotation":{"radians":0.6209366425169791},"translation":{"x":2.085128000000001,"y":3.3783280000000007}},"velocity":2.625634845989314,"acceleration":0.6848645122545891,"curvature":0.43516363895714666,"holonomicRotation":0.0,"angularVelocity":1.1430465952169684,"holonomicAngularVelocity":0.0},{"time":0.8872106909573768,"pose":{"rotation":{"radians":0.626440825687208},"translation":{"x":2.0953768960000008,"y":3.3857448960000003}},"velocity":2.6288383813504206,"acceleration":0.6652740422913254,"curvature":0.4341036934661007,"holonomicRotation":0.0,"angularVelocity":1.1416385324626965,"holonomicAngularVelocity":0.0},{"time":0.8920221776120565,"pose":{"rotation":{"radians":0.6319338042506204},"translation":{"x":2.105588928000001,"y":3.3932209280000003}},"velocity":2.6319437458571184,"acceleration":0.6454064470235114,"curvature":0.4330799216330578,"holonomicRotation":0.0,"angularVelocity":1.1402763514325127,"holonomicAngularVelocity":0.0},{"time":0.8968299192939927,"pose":{"rotation":{"radians":0.6374159583943286},"translation":{"x":2.1157637120000006,"y":3.4007557120000005}},"velocity":2.6349498803219897,"acceleration":0.6252695472733159,"curvature":0.4320923098070697,"holonomicRotation":0.0,"angularVelocity":1.1389601981623954,"holonomicAngularVelocity":0.0},{"time":0.9016340467540943,"pose":{"rotation":{"radians":0.6428876683582834},"translation":{"x":2.125900864000001,"y":3.4083488640000006}},"velocity":2.6378557595292262,"acceleration":0.6048713801558966,"curvature":0.4311408427216499,"holonomicRotation":0.0,"angularVelocity":1.1376902117011674,"holonomicAngularVelocity":0.0},{"time":0.906434691079727,"pose":{"rotation":{"radians":0.6483493144174144},"translation":{"x":2.136000000000001,"y":3.4160000000000004}},"velocity":2.640660392350118,"acceleration":0.584220081857935,"curvature":0.4302255037988389,"holonomicRotation":0.0,"angularVelocity":1.1364665242198737,"holonomicAngularVelocity":0.0},{"time":0.9112319836804512,"pose":{"rotation":{"radians":0.6538012768650252},"translation":{"x":2.146060736000001,"y":3.4237087360000005}},"velocity":2.6433628223610883,"acceleration":0.5633239904028693,"curvature":0.4293462752752821,"holonomicRotation":0.0,"angularVelocity":1.135289261297001,"holonomicAngularVelocity":0.0},{"time":0.9160260562739342,"pose":{"rotation":{"radians":0.6592439359982847},"translation":{"x":2.1560826880000006,"y":3.4314746880000007}},"velocity":2.6459621279004737,"acceleration":0.5421915268698363,"curvature":0.4285031384986032,"holonomicRotation":0.0,"angularVelocity":1.134158542054684,"holonomicAngularVelocity":0.0},{"time":0.9208170408723271,"pose":{"rotation":{"radians":0.6646776721054044},"translation":{"x":2.1660654720000005,"y":3.4392974720000007}},"velocity":2.648457422337088,"acceleration":0.5208312373726626,"curvature":0.42769607414071226,"holonomicRotation":0.0,"angularVelocity":1.133074479392834,"holonomicAngularVelocity":0.0},{"time":0.9256050697685123,"pose":{"rotation":{"radians":0.6701028654542673},"translation":{"x":2.176008704000001,"y":3.4471767040000008}},"velocity":2.6508478547544363,"acceleration":0.49925187779313374,"curvature":0.42692506226405785,"holonomicRotation":0.0,"angularVelocity":1.132037180125681,"holonomicAngularVelocity":0.0},{"time":0.9303902755226879,"pose":{"rotation":{"radians":0.6755198962825455},"translation":{"x":2.185912000000001,"y":3.4551120000000006}},"velocity":2.653132609673996,"acceleration":0.47746221101694586,"curvature":0.4261900826856946,"holonomicRotation":0.0,"angularVelocity":1.1310467451481108,"holonomicAngularVelocity":0.0},{"time":0.9351727909491765,"pose":{"rotation":{"radians":0.680929144789296},"translation":{"x":2.195774976000001,"y":3.463102976000001}},"velocity":2.655310907833249,"acceleration":0.4554712248680483,"curvature":0.42549111498766573,"holonomicRotation":0.0,"angularVelocity":1.1301032696261668,"holonomicAngularVelocity":0.0},{"time":0.9399527491031683,"pose":{"rotation":{"radians":0.6863309911277984},"translation":{"x":2.205597248000001,"y":3.4711492480000006}},"velocity":2.657382006198557,"acceleration":0.4332879700166909,"curvature":0.42482813876175346,"holonomicRotation":0.0,"angularVelocity":1.1292068432179385,"holonomicAngularVelocity":0.0},{"time":0.9447302832677758,"pose":{"rotation":{"radians":0.6917258154001806},"translation":{"x":2.215378432000001,"y":3.4792504320000006}},"velocity":2.6593451982965712,"acceleration":0.41092162407919103,"curvature":0.424201133738781,"holonomicRotation":0.0,"angularVelocity":1.1283575500272023,"holonomicAngularVelocity":0.0},{"time":0.9495055269412395,"pose":{"rotation":{"radians":0.697113997652353},"translation":{"x":2.225118144000001,"y":3.487406144000001}},"velocity":2.6611998143698017,"acceleration":0.38838145235114474,"curvature":0.42361007996169614,"holonomicRotation":0.0,"angularVelocity":1.1275554689255944,"holonomicAngularVelocity":0.0},{"time":0.954278613824305,"pose":{"rotation":{"radians":0.7024959178710106},"translation":{"x":2.234816000000001,"y":3.495616000000001}},"velocity":2.6629452216557663,"acceleration":0.3656768311000486,"curvature":0.42305495790658737,"holonomicRotation":0.0,"angularVelocity":1.1268006736112952,"holonomicAngularVelocity":0.0},{"time":0.9590496778075177,"pose":{"rotation":{"radians":0.7078719559811373},"translation":{"x":2.244471616000001,"y":3.5038796160000008}},"velocity":2.6645808247919645,"acceleration":0.34281727135773626,"curvature":0.42253574855162407,"holonomicRotation":0.0,"angularVelocity":1.1260932327968134,"holonomicAngularVelocity":0.0},{"time":0.9638188529587666,"pose":{"rotation":{"radians":0.7132424918449813},"translation":{"x":2.2540846080000008,"y":3.512196608000001}},"velocity":2.6661060656923015,"acceleration":0.3198123054754257,"curvature":0.4220524336016502,"holonomicRotation":0.0,"angularVelocity":1.1254332101237627,"holonomicAngularVelocity":0.0},{"time":0.9685862735110955,"pose":{"rotation":{"radians":0.7186079052611989},"translation":{"x":2.263654592000001,"y":3.5205665920000007}},"velocity":2.6675204238998145,"acceleration":0.29667158413832084,"curvature":0.4216049955488846,"holonomicRotation":0.0,"angularVelocity":1.124820664571741,"holonomicAngularVelocity":0.0},{"time":0.9733520738504342,"pose":{"rotation":{"radians":0.7239685759661101},"translation":{"x":2.2731811840000007,"y":3.5289891840000007}},"velocity":2.6688234168146447,"acceleration":0.27340484746599136,"curvature":0.4211934177613658,"holonomicRotation":0.0,"angularVelocity":1.1242556502653611,"holonomicAngularVelocity":0.0},{"time":0.9781163885034462,"pose":{"rotation":{"radians":0.7293248836344008},"translation":{"x":2.282664000000001,"y":3.5374640000000004}},"velocity":2.6700145997957936,"acceleration":0.2500218956772268,"curvature":0.4208176845991983,"holonomicRotation":0.0,"angularVelocity":1.123738216844328,"holonomicAngularVelocity":0.0},{"time":0.9828793521254612,"pose":{"rotation":{"radians":0.7346772078818984},"translation":{"x":2.292102656000001,"y":3.5459906560000007}},"velocity":2.671093566389595,"acceleration":0.22653261276539288,"curvature":0.4204777814786742,"holonomicRotation":0.0,"angularVelocity":1.1232684092819534,"holonomicAngularVelocity":0.0},{"time":0.9876410994884608,"pose":{"rotation":{"radians":0.7400259282677375},"translation":{"x":2.3014967680000007,"y":3.5545687680000007}},"velocity":2.6720599484322793,"acceleration":0.20294693712507567,"curvature":0.42017369496416096,"holonomicRotation":0.0,"angularVelocity":1.1228462681894709,"holonomicAngularVelocity":0.0},{"time":0.9924017654693136,"pose":{"rotation":{"radians":0.7453714242984346},"translation":{"x":2.310845952000001,"y":3.563197952000001}},"velocity":2.672913416024821,"acceleration":0.17927483170934566,"curvature":0.4199054128880666,"holonomicRotation":0.0,"angularVelocity":1.1224718297170306,"holonomicAngularVelocity":0.0},{"time":0.997161485037997,"pose":{"rotation":{"radians":0.7507140754316346},"translation":{"x":2.320149824000001,"y":3.571877824000001}},"velocity":2.6736536778913673,"acceleration":0.15552636155641372,"curvature":0.4196729243382383,"holonomicRotation":0.0,"angularVelocity":1.1221451257033959,"holonomicAngularVelocity":0.0},{"time":1.0019203932456864,"pose":{"rotation":{"radians":0.7560542610805632},"translation":{"x":2.329408000000001,"y":3.5806080000000007}},"velocity":2.6742804814591006,"acceleration":0.1317116322438141,"curvature":0.41947621972129306,"holonomicRotation":0.0,"angularVelocity":1.1218661837350683,"holonomicAngularVelocity":0.0},{"time":1.0066786252132192,"pose":{"rotation":{"radians":0.7613923606193054},"translation":{"x":2.338620096000001,"y":3.5893880960000004}},"velocity":2.674793612605643,"acceleration":0.10784071689727757,"curvature":0.419315290918276,"holonomicRotation":0.0,"angularVelocity":1.1216350272072997,"holonomicAngularVelocity":0.0},{"time":1.0114363161192206,"pose":{"rotation":{"radians":0.7667287533881022},"translation":{"x":2.3477857280000007,"y":3.598217728000001}},"velocity":2.6751928965083205,"acceleration":0.08392388462520017,"curvature":0.4191901310828717,"holonomicRotation":0.0,"angularVelocity":1.1214516752369148,"holonomicAngularVelocity":0.0},{"time":1.0161936011885375,"pose":{"rotation":{"radians":0.7720638186986672},"translation":{"x":2.3569045120000007,"y":3.607096512000001}},"velocity":2.6754781966265213,"acceleration":0.05997120501374331,"curvature":0.4191007350133541,"holonomicRotation":0.0,"angularVelocity":1.1213161429216323,"holonomicAngularVelocity":0.0},{"time":1.020950615680859,"pose":{"rotation":{"radians":0.7773979358410195},"translation":{"x":2.3659760640000007,"y":3.616024064000001}},"velocity":2.6756494156563497,"acceleration":0.03599295947170036,"curvature":0.4190470988943057,"holonomicRotation":0.0,"angularVelocity":1.1212284410937938,"holonomicAngularVelocity":0.0},{"time":1.0257074948789369,"pose":{"rotation":{"radians":0.7827314840887518},"translation":{"x":2.375000000000001,"y":3.625000000000001}},"velocity":2.675706495129876,"acceleration":0.011999353178753079,"curvature":0.41902922045158014,"holonomicRotation":0.0,"angularVelocity":1.1211885766455594,"holonomicAngularVelocity":0.0},{"time":1.030464374077015,"pose":{"rotation":{"radians":0.7880648427061199},"translation":{"x":2.383975936000001,"y":3.634023936000001}},"velocity":2.67564941565635,"acceleration":-0.011999353178659161,"curvature":0.4190470988943055,"holonomicRotation":0.0,"angularVelocity":1.1211965522473806,"holonomicAngularVelocity":0.0},{"time":1.0352213885693364,"pose":{"rotation":{"radians":0.7933983909539015},"translation":{"x":2.392903488000001,"y":3.643095488000001}},"velocity":2.675478196626521,"acceleration":-0.03599295947188707,"curvature":0.41910073501335415,"holonomicRotation":0.0,"angularVelocity":1.1212523665452967,"holonomicAngularVelocity":0.0},{"time":1.0399786736386536,"pose":{"rotation":{"radians":0.798732508096204},"translation":{"x":2.401782272000001,"y":3.652214272000001}},"velocity":2.675192896508296,"acceleration":-0.05997120501878138,"curvature":0.4191901310828794,"holonomicRotation":0.0,"angularVelocity":1.1213560141038383,"holonomicAngularVelocity":0.0},{"time":1.0447363645446093,"pose":{"rotation":{"radians":0.8040675734068445},"translation":{"x":2.410611904000001,"y":3.661379904000001}},"velocity":2.674793612656831,"acceleration":-0.08392387386188453,"curvature":0.4193152909022269,"holonomicRotation":0.0,"angularVelocity":1.1215074853712201,"holonomicAngularVelocity":0.0},{"time":1.0494945965121423,"pose":{"rotation":{"radians":0.8094039661755654},"translation":{"x":2.419392000000001,"y":3.670592000000001}},"velocity":2.6742804814079513,"acceleration":-0.10784073840468338,"curvature":0.41947621973733923,"holonomicRotation":0.0,"angularVelocity":1.1217067667100076,"holonomicAngularVelocity":0.0},{"time":1.054253504719877,"pose":{"rotation":{"radians":0.8147420657143334},"translation":{"x":2.428122176000001,"y":3.679850176000001}},"velocity":2.673653677891392,"acceleration":-0.13171162148921356,"curvature":0.4196729243382304,"holonomicRotation":0.0,"angularVelocity":1.1219538403138642,"holonomicAngularVelocity":0.0},{"time":1.0590132242886061,"pose":{"rotation":{"radians":0.8200822513632859},"translation":{"x":2.436802048000001,"y":3.689154048000001}},"velocity":2.6729134159737282,"acceleration":-0.15552637229458416,"curvature":0.4199054129041197,"holonomicRotation":0.0,"angularVelocity":1.1222486842418435,"holonomicAngularVelocity":0.0},{"time":1.0637738902695042,"pose":{"rotation":{"radians":0.8254249024964637},"translation":{"x":2.4454312320000007,"y":3.698503232000001}},"velocity":2.672059948432254,"acceleration":-0.17927482098065445,"curvature":0.42017369496416906,"holonomicRotation":0.0,"angularVelocity":1.1225912723143032,"holonomicAngularVelocity":0.0},{"time":1.068535637632504,"pose":{"rotation":{"radians":0.8307703985271329},"translation":{"x":2.454009344000001,"y":3.707897344000001}},"velocity":2.6710935663895956,"acceleration":-0.20294693711966175,"curvature":0.42047778147867415,"holonomicRotation":0.0,"angularVelocity":1.1229815741545088,"holonomicAngularVelocity":0.0},{"time":1.073298601254519,"pose":{"rotation":{"radians":0.8361191189130239},"translation":{"x":2.462536000000001,"y":3.717336000000001}},"velocity":2.6700145997957936,"acceleration":-0.2265326127654861,"curvature":0.4208176845991983,"holonomicRotation":0.0,"angularVelocity":1.1234195550165338,"holonomicAngularVelocity":0.0},{"time":1.078062915907531,"pose":{"rotation":{"radians":0.8414714431604695},"translation":{"x":2.471010816000001,"y":3.726818816000001}},"velocity":2.6688234168146683,"acceleration":-0.2500218956722808,"curvature":0.4211934177613584,"holonomicRotation":0.0,"angularVelocity":1.1239051758218945,"holonomicAngularVelocity":0.0},{"time":1.0828287162468697,"pose":{"rotation":{"radians":0.846827750828786},"translation":{"x":2.479433408000001,"y":3.736345408000001}},"velocity":2.6675204238998145,"acceleration":-0.27340484747093,"curvature":0.42160499554888453,"holonomicRotation":0.0,"angularVelocity":1.124438393072715,"holonomicAngularVelocity":0.0},{"time":1.0875961367991533,"pose":{"rotation":{"radians":0.8521884215336977},"translation":{"x":2.487803392000001,"y":3.745915392000001}},"velocity":2.6661060657428792,"acceleration":-0.2966715735320978,"curvature":0.42205243358563704,"holonomicRotation":0.0,"angularVelocity":1.125019158687412,"holonomicAngularVelocity":0.0},{"time":1.0923653119503571,"pose":{"rotation":{"radians":0.8575538349499379},"translation":{"x":2.496120384000001,"y":3.755528384000001}},"velocity":2.6645808247919636,"acceleration":-0.31981231608377336,"curvature":0.4225357485516242,"holonomicRotation":0.0,"angularVelocity":1.1256474200922537,"holonomicAngularVelocity":0.0},{"time":1.0971363759335697,"pose":{"rotation":{"radians":0.8629243708137362},"translation":{"x":2.504384000000001,"y":3.765184000000001}},"velocity":2.6629452216557663,"acceleration":-0.3428172713575581,"curvature":0.4230549579065874,"holonomicRotation":0.0,"angularVelocity":1.1263231199908168,"holonomicAngularVelocity":0.0},{"time":1.1019094628166803,"pose":{"rotation":{"radians":0.8683004089239086},"translation":{"x":2.512593856000001,"y":3.7748818560000013}},"velocity":2.6611998143196263,"acceleration":-0.36567684160874825,"curvature":0.42361007997767003,"holonomicRotation":0.0,"angularVelocity":1.1270461963058591,"holonomicAngularVelocity":0.0},{"time":1.106684706490189,"pose":{"rotation":{"radians":0.8736823291425702},"translation":{"x":2.5207495680000007,"y":3.7846215680000013}},"velocity":2.6593451982965486,"acceleration":-0.38838144184482565,"curvature":0.42420113373878826,"holonomicRotation":0.0,"angularVelocity":1.1278165820374502,"holonomicAngularVelocity":0.0},{"time":1.1114622406548413,"pose":{"rotation":{"radians":0.8790705113947155},"translation":{"x":2.5288507520000008,"y":3.794402752000001}},"velocity":2.6573820061486866,"acceleration":-0.41092163450910085,"curvature":0.42482813877769865,"holonomicRotation":0.0,"angularVelocity":1.1286342052595717,"holonomicAngularVelocity":0.0},{"time":1.116242198808878,"pose":{"rotation":{"radians":0.8844653356670706},"translation":{"x":2.536897024000001,"y":3.8042250240000013}},"velocity":2.6553109078332495,"acceleration":-0.4332879595793174,"curvature":0.4254911149876656,"holonomicRotation":0.0,"angularVelocity":1.1294989888873823,"holonomicAngularVelocity":0.0},{"time":1.1210247142353664,"pose":{"rotation":{"radians":0.8898671820056276},"translation":{"x":2.5448880000000007,"y":3.8140880000000013}},"velocity":2.6531326096739956,"acceleration":-0.4554712248682446,"curvature":0.42619008268569475,"holonomicRotation":0.0,"angularVelocity":1.1304108505628179,"holonomicAngularVelocity":0.0},{"time":1.1258099199895422,"pose":{"rotation":{"radians":0.8952764305123235},"translation":{"x":2.552823296000001,"y":3.8239912960000013}},"velocity":2.6508478547544305,"acceleration":-0.4774622110180485,"curvature":0.4269250622640598,"holonomicRotation":0.0,"angularVelocity":1.1313697025929383,"holonomicAngularVelocity":0.0},{"time":1.1305979488857274,"pose":{"rotation":{"radians":0.900693461340607},"translation":{"x":2.560702528000001,"y":3.8339345280000012}},"velocity":2.648457422337061,"acceleration":-0.49925187779758573,"curvature":0.427696074140721,"holonomicRotation":0.0,"angularVelocity":1.1323754517400342,"holonomicAngularVelocity":0.0},{"time":1.1353889334841203,"pose":{"rotation":{"radians":0.9061186546894917},"translation":{"x":2.568525312000001,"y":3.843917312000001}},"velocity":2.645962127900453,"acceleration":-0.5208312373713648,"curvature":0.42850313849861,"holonomicRotation":0.0,"angularVelocity":1.133427999095026,"holonomicAngularVelocity":0.0},{"time":1.1401830060776033,"pose":{"rotation":{"radians":0.9115523907966394},"translation":{"x":2.576291264000001,"y":3.853939264000001}},"velocity":2.643362822361095,"acceleration":-0.542191526864093,"curvature":0.42934627527527985,"holonomicRotation":0.0,"angularVelocity":1.1345272398916992,"holonomicAngularVelocity":0.0},{"time":1.1449802986783277,"pose":{"rotation":{"radians":0.9169950499298922},"translation":{"x":2.584000000000001,"y":3.864000000000001}},"velocity":2.6406603923501453,"acceleration":-0.5633239903985849,"curvature":0.43022550379883,"holonomicRotation":0.0,"angularVelocity":1.1356730633905898,"holonomicAngularVelocity":0.0},{"time":1.1497809430040045,"pose":{"rotation":{"radians":0.9224470123774822},"translation":{"x":2.5916511360000007,"y":3.874099136000001}},"velocity":2.6378557594807597,"acceleration":-0.5842200919540596,"curvature":0.43114084273749304,"holonomicRotation":0.0,"angularVelocity":1.1368653526407893,"holonomicAngularVelocity":0.0},{"time":1.15458507046415,"pose":{"rotation":{"radians":0.9279086584365919},"translation":{"x":2.599244288000001,"y":3.884236288000001}},"velocity":2.6349498803219897,"acceleration":-0.6048713700618353,"curvature":0.43209230980706964,"holonomicRotation":0.0,"angularVelocity":1.1381039843726668,"holonomicAngularVelocity":0.0},{"time":1.1593928121460426,"pose":{"rotation":{"radians":0.9333803684005884},"translation":{"x":2.606779072000001,"y":3.8944110720000014}},"velocity":2.6319437459051516,"acceleration":-0.6252695372882013,"curvature":0.4330799216172504,"holonomicRotation":0.0,"angularVelocity":1.139388828711607,"holonomicAngularVelocity":0.0},{"time":1.164204298800591,"pose":{"rotation":{"radians":0.9388625225442757},"translation":{"x":2.614255104000001,"y":3.9046231040000015}},"velocity":2.628838381445997,"acceleration":-0.6454064371599206,"curvature":0.4341036934345355,"holonomicRotation":0.0,"angularVelocity":1.1407197490356886,"holonomicAngularVelocity":0.0},{"time":1.1690196608279666,"pose":{"rotation":{"radians":0.9443555011076596},"translation":{"x":2.621672000000001,"y":3.9148720000000012}},"velocity":2.625634845989314,"acceleration":-0.6652740621516621,"curvature":0.43516363895714666,"holonomicRotation":0.0,"angularVelocity":1.141368679059864,"holonomicAngularVelocity":0.0},{"time":1.173842101877269,"pose":{"rotation":{"radians":0.9498596842779459},"translation":{"x":2.629029376000001,"y":3.9251573760000014}},"velocity":2.618989404766512,"acceleration":-1.3780243563088321,"curvature":0.43625977000734745,"holonomicRotation":0.0,"angularVelocity":1.1396328812838714,"holonomicAngularVelocity":0.0},{"time":1.1786820533931346,"pose":{"rotation":{"radians":0.9553754521692461},"translation":{"x":2.6363268480000013,"y":3.9354788480000007}},"velocity":2.604469550218915,"acceleration":-3.0,"curvature":0.437392096408939,"holonomicRotation":0.0,"angularVelocity":1.1362290451451276,"holonomicAngularVelocity":0.0},{"time":1.1835470343189463,"pose":{"rotation":{"radians":0.9609031848012304},"translation":{"x":2.643564032000001,"y":3.945836032000001}},"velocity":2.5898746074414802,"acceleration":-2.9999999999999085,"curvature":0.4385606255617841,"holonomicRotation":0.0,"angularVelocity":1.1328524486335545,"holonomicAngularVelocity":0.0},{"time":1.1884374128317103,"pose":{"rotation":{"radians":0.9664432620741601},"translation":{"x":2.650740544000001,"y":3.956228544000001}},"velocity":2.5752034719031878,"acceleration":-3.0000000000000453,"curvature":0.4397653623900097,"holonomicRotation":0.0,"angularVelocity":1.1295007542703375,"holonomicAngularVelocity":0.0},{"time":1.1933535686189238,"pose":{"rotation":{"radians":0.9719960637439282},"translation":{"x":2.657856000000001,"y":3.9666560000000013}},"velocity":2.5604550045415473,"acceleration":-3.0,"curvature":0.4410063087994853,"holonomicRotation":0.0,"angularVelocity":1.1261715790988696,"holonomicAngularVelocity":0.0},{"time":1.1982958933518377,"pose":{"rotation":{"radians":0.9775619693928133},"translation":{"x":2.6649100160000008,"y":3.977118016000001}},"velocity":2.5456280303428054,"acceleration":-3.000000000000045,"curvature":0.4422834635714009,"holonomicRotation":0.0,"angularVelocity":1.1228624931602014,"holonomicAngularVelocity":0.0},{"time":1.2032647911826513,"pose":{"rotation":{"radians":0.9831413583993789},"translation":{"x":2.671902208000001,"y":3.9876142080000014}},"velocity":2.5307213368503647,"acceleration":-3.0,"curvature":0.4435968219542736,"holonomicRotation":0.0,"angularVelocity":1.1195710174570126,"holonomicAngularVelocity":0.0},{"time":1.208260679267134,"pose":{"rotation":{"radians":0.9887346099052245},"translation":{"x":2.678832192000001,"y":3.9981441920000007}},"velocity":2.5157336725969164,"acceleration":-3.0000000000000444,"curvature":0.4449463754713487,"holonomicRotation":0.0,"angularVelocity":1.116294622142275,"holonomicAngularVelocity":0.0},{"time":1.213283988314313,"pose":{"rotation":{"radians":0.994342102779949},"translation":{"x":2.685699584000001,"y":4.0087075840000015}},"velocity":2.500663745455379,"acceleration":-3.0000000000000884,"curvature":0.44633211131899053,"holonomicRotation":0.0,"angularVelocity":1.1130307242686392,"holonomicAngularVelocity":0.0},{"time":1.2183351631649564,"pose":{"rotation":{"radians":0.9999642155823683},"translation":{"x":2.692504000000001,"y":4.019304000000001}},"velocity":2.4855102209034485,"acceleration":-3.000000000000044,"curvature":0.4477540124322387,"holonomicRotation":0.0,"angularVelocity":1.1097766860870264,"holonomicAngularVelocity":0.0},{"time":1.2234146634007506,"pose":{"rotation":{"radians":1.0056013265210262},"translation":{"x":2.699245056000001,"y":4.029933056000002}},"velocity":2.470271720196066,"acceleration":-3.0000000000000435,"curvature":0.44921205667481756,"holonomicRotation":0.0,"angularVelocity":1.1065298124299,"holonomicAngularVelocity":0.0},{"time":1.2285229639861848,"pose":{"rotation":{"radians":1.0112538134096622},"translation":{"x":2.705922368000001,"y":4.040594368000001}},"velocity":2.4549468184397636,"acceleration":-2.999999999999913,"curvature":0.4507062168508919,"holonomicRotation":0.0,"angularVelocity":1.1032873489277657,"holonomicAngularVelocity":0.0},{"time":1.2336605559453493,"pose":{"rotation":{"radians":1.0169220536221615},"translation":{"x":2.7125355520000007,"y":4.051287552000002}},"velocity":2.43953404256227,"acceleration":-3.000000000000043,"curvature":0.45223646007658325,"holonomicRotation":0.0,"angularVelocity":1.1000464792593154,"holonomicAngularVelocity":0.0},{"time":1.2388279470759953,"pose":{"rotation":{"radians":1.0226064240423844},"translation":{"x":2.719084224000001,"y":4.062012224000001}},"velocity":2.4240318691703315,"acceleration":-3.000000000000043,"curvature":0.4538027475367534,"holonomicRotation":0.0,"angularVelocity":1.0968043231892513,"holonomicAngularVelocity":0.0},{"time":1.2440256627034307,"pose":{"rotation":{"radians":1.028307301013264},"translation":{"x":2.725568000000001,"y":4.072768000000002}},"velocity":2.4084387222880252,"acceleration":-3.0,"curvature":0.4554050339448751,"holonomicRotation":0.0,"angularVelocity":1.093557933627122,"holonomicAngularVelocity":0.0},{"time":1.2492542464770038,"pose":{"rotation":{"radians":1.0340250602804888},"translation":{"x":2.731986496000001,"y":4.0835544960000005}},"velocity":2.392752970967306,"acceleration":-3.0000000000000426,"curvature":0.45704326729385686,"holonomicRotation":0.0,"angularVelocity":1.0903042944971009,"holonomicAngularVelocity":0.0},{"time":1.2545142612121893,"pose":{"rotation":{"radians":1.0397600769353796},"translation":{"x":2.738339328000001,"y":4.094371328000001}},"velocity":2.3769729267617494,"acceleration":-2.999999999999958,"curvature":0.45871738815772506,"holonomicRotation":0.0,"angularVelocity":1.087040317564224,"holonomicAngularVelocity":0.0},{"time":1.2598062897815119,"pose":{"rotation":{"radians":1.045512725351935},"translation":{"x":2.7446261120000006,"y":4.105218112000001}},"velocity":2.3610968410537816,"acceleration":-3.0000000000000417,"curvature":0.4604273295453317,"holonomicRotation":0.0,"angularVelocity":1.0837628401270711,"holonomicAngularVelocity":0.0},{"time":1.2651309360578522,"pose":{"rotation":{"radians":1.0512833791230536},"translation":{"x":2.7508464640000008,"y":4.1160944640000015}},"velocity":2.345122902224761,"acceleration":-2.9999999999999165,"curvature":0.4621730162746951,"holonomicRotation":0.0,"angularVelocity":1.0804686217426966,"holonomicAngularVelocity":0.0},{"time":1.270488825913959,"pose":{"rotation":{"radians":1.0570724109913305},"translation":{"x":2.7570000000000006,"y":4.127000000000001}},"velocity":2.3290492326564407,"acceleration":-2.9999999999999587,"curvature":0.4639543644847909,"holonomicRotation":0.0,"angularVelocity":1.0771543414066895,"holonomicAngularVelocity":0.0},{"time":1.2758806082823524,"pose":{"rotation":{"radians":1.0628801927773655},"translation":{"x":2.7630863360000006,"y":4.137934336000002}},"velocity":2.312873885551261,"acceleration":-2.9999999999999587,"curvature":0.4657712811612695,"holonomicRotation":0.0,"angularVelocity":1.0738165942689333,"holonomicAngularVelocity":0.0},{"time":1.2813069562801476,"pose":{"rotation":{"radians":1.068707095303676},"translation":{"x":2.7691050880000008,"y":4.148897088000001}},"velocity":2.2965948415578756,"acceleration":-2.999999999999959,"curvature":0.46762366370596037,"holonomicRotation":0.0,"angularVelocity":1.0704518885397352,"holonomicAngularVelocity":0.0},{"time":1.286768568403775,"pose":{"rotation":{"radians":1.0745534883158845},"translation":{"x":2.775055872000001,"y":4.159887872000001}},"velocity":2.280210005186993,"acceleration":-3.000000000000041,"curvature":0.46951139935295344,"holonomicRotation":0.0,"angularVelocity":1.0670566418127445,"holonomicAngularVelocity":0.0},{"time":1.2922661697989868,"pose":{"rotation":{"radians":1.0804197403986842},"translation":{"x":2.7809383040000006,"y":4.170906304000001}},"velocity":2.2637172010013575,"acceleration":-3.0000000000000404,"curvature":0.4714343645997839,"holonomicRotation":0.0,"angularVelocity":1.0636271776953912,"holonomicAngularVelocity":0.0},{"time":1.2978005136120798,"pose":{"rotation":{"radians":1.0863062188890003},"translation":{"x":2.786752000000001,"y":4.181952000000002}},"velocity":2.2471141695620784,"acceleration":-3.0,"curvature":0.4733924247442271,"holonomicRotation":0.0,"angularVelocity":1.0601597219446663,"holonomicAngularVelocity":0.0},{"time":1.303372382428791,"pose":{"rotation":{"radians":1.092213289784437},"translation":{"x":2.792496576000001,"y":4.193024576000001}},"velocity":2.2303985631119447,"acceleration":-3.0,"curvature":0.47538543332938343,"holonomicRotation":0.0,"angularVelocity":1.05665039864859,"holonomicAngularVelocity":0.0},{"time":1.3089825898079743,"pose":{"rotation":{"radians":1.0981413176481523},"translation":{"x":2.7981716480000007,"y":4.204123648000001}},"velocity":2.213567940974395,"acceleration":-2.9999999999999605,"curvature":0.4774132314234743,"holonomicRotation":0.0,"angularVelocity":1.0530952259318735,"holonomicAngularVelocity":0.0},{"time":1.314631981917819,"pose":{"rotation":{"radians":1.1040906655084468},"translation":{"x":2.8037768320000005,"y":4.215248832000001}},"velocity":2.1966197646448617,"acceleration":-2.9999999999999214,"curvature":0.4794756472470108,"holonomicRotation":0.0,"angularVelocity":1.0494901118766216,"holonomicAngularVelocity":0.0},{"time":1.3203214392831757,"pose":{"rotation":{"radians":1.1100616947553323},"translation":{"x":2.809311744000001,"y":4.226399744000002}},"velocity":2.1795513925487917,"acceleration":-2.999999999999961,"curvature":0.48157249539387187,"holonomicRotation":0.0,"angularVelocity":1.0458308498080762,"holonomicAngularVelocity":0.0},{"time":1.3260518786533824,"pose":{"rotation":{"radians":1.1160547650316492},"translation":{"x":2.814776000000001,"y":4.237576000000001}},"velocity":2.1623600744381717,"acceleration":-3.0,"curvature":0.4837035763394283,"holonomicRotation":0.0,"angularVelocity":1.0421131136383825,"holonomicAngularVelocity":0.0},{"time":1.3318242550009647,"pose":{"rotation":{"radians":1.1220702341203208},"translation":{"x":2.820169216000001,"y":4.2487772160000015}},"velocity":2.1450429453954247,"acceleration":-3.0,"curvature":0.4858686756511655,"holonomicRotation":0.0,"angularVelocity":1.0383324526570552,"holonomicAngularVelocity":0.0},{"time":1.3376395636626297,"pose":{"rotation":{"radians":1.1281084578259453},"translation":{"x":2.825491008000001,"y":4.260003008000001}},"velocity":2.1275970194104294,"acceleration":-3.000000000000038,"curvature":0.48806756354488817,"holonomicRotation":0.0,"angularVelocity":1.0344842865366874,"holonomicAngularVelocity":0.0},{"time":1.343498842635211,"pose":{"rotation":{"radians":1.1341697898535155},"translation":{"x":2.830740992000001,"y":4.271252992000002}},"velocity":2.1100191824926853,"acceleration":-3.0000000000000377,"curvature":0.49029999405552943,"holonomicRotation":0.0,"angularVelocity":1.0305638993094042,"holonomicAngularVelocity":0.0},{"time":1.3494031750405304,"pose":{"rotation":{"radians":1.1402545816799603},"translation":{"x":2.835918784000001,"y":4.282526784000001}},"velocity":2.0923061852767266,"acceleration":-3.000000000000075,"curvature":0.49256570453850973,"holonomicRotation":0.0,"angularVelocity":1.026566433840469,"holonomicAngularVelocity":0.0},{"time":1.3553536917747062,"pose":{"rotation":{"radians":1.1463631824232712},"translation":{"x":2.841024000000001,"y":4.293824000000002}},"velocity":2.074454635074199,"acceleration":-3.0000000000000746,"curvature":0.4948644147448579,"holonomicRotation":0.0,"angularVelocity":1.0224868851113715,"holonomicAngularVelocity":0.0},{"time":1.3613515743591078,"pose":{"rotation":{"radians":1.1524959387042597},"translation":{"x":2.8460562560000007,"y":4.305144256000001}},"velocity":2.0564609873209942,"acceleration":-2.999999999999963,"curvature":0.49719582643303056,"holonomicRotation":0.0,"angularVelocity":1.0183200938587464,"holonomicAngularVelocity":0.0},{"time":1.3673980580121383,"pose":{"rotation":{"radians":1.158653194505329},"translation":{"x":2.851015168000001,"y":4.316487168000002}},"velocity":2.0383215363619027,"acceleration":-3.0,"curvature":0.49955962237973184,"holonomicRotation":0.0,"angularVelocity":1.014060739171566,"holonomicAngularVelocity":0.0},{"time":1.3734944349631748,"pose":{"rotation":{"radians":1.1648352910225657},"translation":{"x":2.855900352000001,"y":4.327852352000001}},"velocity":2.0200324055087933,"acceleration":-3.0,"curvature":0.5019554658535155,"holonomicRotation":0.0,"angularVelocity":1.009703331056945,"holonomicAngularVelocity":0.0},{"time":1.3796420580325273,"pose":{"rotation":{"radians":1.1710425665137734},"translation":{"x":2.8607114240000007,"y":4.339239424000002}},"velocity":2.001589536300736,"acceleration":-3.0,"curvature":0.5043829997560954,"holonomicRotation":0.0,"angularVelocity":1.005242202071386,"holonomicAngularVelocity":0.0},{"time":1.385842344504059,"pose":{"rotation":{"radians":1.1772753561398894},"translation":{"x":2.8654480000000007,"y":4.350648000000001}},"velocity":1.9829886768861407,"acceleration":-2.999999999999964,"curvature":0.5068418460483195,"holonomicRotation":0.0,"angularVelocity":1.000671498890062,"holonomicAngularVelocity":0.0},{"time":1.3920967803203892,"pose":{"rotation":{"radians":1.1835339918029282},"translation":{"x":2.870109696000001,"y":4.362077696000002}},"velocity":1.9642253694371505,"acceleration":-2.9999999999999645,"curvature":0.5093316047891755,"holonomicRotation":0.0,"angularVelocity":0.9959851725933427,"holonomicAngularVelocity":0.0},{"time":1.3984069246342183,"pose":{"rotation":{"radians":1.1898188019764262},"translation":{"x":2.874696128000001,"y":4.373528128000001}},"velocity":1.9452949364956633,"acceleration":-2.999999999999965,"curvature":0.5118518535624833,"holonomicRotation":0.0,"angularVelocity":0.9911769688340709,"holonomicAngularVelocity":0.0},{"time":1.4047744147535932,"pose":{"rotation":{"radians":1.196130111532029},"translation":{"x":2.879206912000001,"y":4.384998912000002}},"velocity":1.9261924661375385,"acceleration":-3.000000000000035,"curvature":0.5144021466205787,"holonomicRotation":0.0,"angularVelocity":0.9862404167758717,"holonomicAngularVelocity":0.0},{"time":1.4112009715237113,"pose":{"rotation":{"radians":1.2024682415594241},"translation":{"x":2.8836416640000007,"y":4.3964896640000015}},"velocity":1.9069127958271843,"acceleration":-3.0,"curvature":0.5169820141541447,"holonomicRotation":0.0,"angularVelocity":0.9811688175075026,"holonomicAngularVelocity":0.0},{"time":1.41768840519348,"pose":{"rotation":{"radians":1.2088335091818494},"translation":{"x":2.888000000000001,"y":4.408000000000002}},"velocity":1.8874504948178785,"acceleration":-2.999999999999966,"curvature":0.5195909614569449,"holonomicRotation":0.0,"angularVelocity":0.9759552310949556,"holonomicAngularVelocity":0.0},{"time":1.4242386218214258,"pose":{"rotation":{"radians":1.2152262273646983},"translation":{"x":2.8922815360000005,"y":4.4195295360000015}},"velocity":1.867799844934041,"acceleration":-3.0,"curvature":0.5222284682600655,"holonomicRotation":0.0,"angularVelocity":0.9705924628872844,"holonomicAngularVelocity":0.0},{"time":1.4308536302830257,"pose":{"rotation":{"radians":1.2216467047194628},"translation":{"x":2.896485888000001,"y":4.431077888000002}},"velocity":1.847954819549241,"acceleration":-3.0000000000000338,"curvature":0.5248939878051837,"holonomicRotation":0.0,"angularVelocity":0.9650730483864461,"holonomicAngularVelocity":0.0},{"time":1.4375355499501146,"pose":{"rotation":{"radians":1.2280952453016536},"translation":{"x":2.9006126720000007,"y":4.442644672000001}},"velocity":1.8279090605479742,"acceleration":-3.0000000000000333,"curvature":0.527586946160825,"holonomicRotation":0.0,"angularVelocity":0.9593892367630158,"holonomicAngularVelocity":0.0},{"time":1.4442866191231065,"pose":{"rotation":{"radians":1.2345721484028647},"translation":{"x":2.904661504000001,"y":4.454229504000002}},"velocity":1.8076558530289983,"acceleration":-3.0,"curvature":0.5303067413665304,"holonomicRotation":0.0,"angularVelocity":0.9535329728703047,"holonomicAngularVelocity":0.0},{"time":1.4511092043084484,"pose":{"rotation":{"radians":1.2410777083373046},"translation":{"x":2.9086320000000003,"y":4.465832000000002}},"velocity":1.787188097472973,"acceleration":-2.9999999999999676,"curvature":0.533052742734141,"holonomicRotation":0.0,"angularVelocity":0.9474958775078474,"holonomicAngularVelocity":0.0},{"time":1.4580058104475067,"pose":{"rotation":{"radians":1.2476122142228576},"translation":{"x":2.9125237760000005,"y":4.477451776000002}},"velocity":1.766498279055798,"acceleration":-3.000000000000032,"curvature":0.5358242899805569,"holonomicRotation":0.0,"angularVelocity":0.9412692255924726,"holonomicAngularVelocity":0.0},{"time":1.4649790922191754,"pose":{"rotation":{"radians":1.2541759497559144},"translation":{"x":2.9163364480000005,"y":4.489088448000001}},"velocity":1.7455784337407918,"acceleration":-2.999999999999968,"curvature":0.53862069246313,"holonomicRotation":0.0,"angularVelocity":0.9348439222379099,"holonomicAngularVelocity":0.0},{"time":1.472031866557601,"pose":{"rotation":{"radians":1.2607691929811071},"translation":{"x":2.9200696320000006,"y":4.500741632000002}},"velocity":1.724420110725515,"acceleration":-2.9999999999999685,"curvature":0.5414412283907459,"holonomicRotation":0.0,"angularVelocity":0.9282104760898124,"holonomicAngularVelocity":0.0},{"time":1.4791671265489101,"pose":{"rotation":{"radians":1.2673922160546647},"translation":{"x":2.9237229440000005,"y":4.512410944000001}},"velocity":1.7030143307515877,"acceleration":-3.000000000000031,"curvature":0.5442851441519826,"holonomicRotation":0.0,"angularVelocity":0.9213589699954693,"holonomicAngularVelocity":0.0},{"time":1.4863880568977,"pose":{"rotation":{"radians":1.2740452850032347},"translation":{"x":2.9272960000000006,"y":4.524096000000002}},"velocity":1.6813515397052183,"acceleration":-3.0,"curvature":0.5471516533835759,"holonomicRotation":0.0,"angularVelocity":0.9142790279992806,"holonomicAngularVelocity":0.0},{"time":1.4936980511859816,"pose":{"rotation":{"radians":1.2807286594758052},"translation":{"x":2.9307884160000004,"y":4.535796416000001}},"velocity":1.6594215568403732,"acceleration":-3.0,"curvature":0.5500399363964437,"holonomicRotation":0.0,"angularVelocity":0.9069597788904717,"holonomicAngularVelocity":0.0},{"time":1.5011007311857052,"pose":{"rotation":{"radians":1.2874425924915514},"translation":{"x":2.9341998080000002,"y":4.547511808000002}},"velocity":1.6372135168412023,"acceleration":-3.00000000000003,"curvature":0.5529491392614659,"holonomicRotation":0.0,"angularVelocity":0.8993898149606812,"holonomicAngularVelocity":0.0},{"time":1.508599968532113,"pose":{"rotation":{"radians":1.2941873301808833},"translation":{"x":2.9375297920000008,"y":4.559241792000002}},"velocity":1.6147158048019792,"acceleration":-2.9999999999999702,"curvature":0.5558783732812413,"holonomicRotation":0.0,"angularVelocity":0.8915571460678879,"holonomicAngularVelocity":0.0},{"time":1.516199909121133,"pose":{"rotation":{"radians":1.3009631115227154},"translation":{"x":2.9407779840000003,"y":4.570985984000002}},"velocity":1.5919159830349192,"acceleration":-3.0000000000000293,"curvature":0.5588267141256481,"holonomicRotation":0.0,"angularVelocity":0.8834491473354206,"holonomicAngularVelocity":0.0},{"time":1.5239050006619295,"pose":{"rotation":{"radians":1.3077701680745735},"translation":{"x":2.9439440000000006,"y":4.582744000000002}},"velocity":1.5688007084125297,"acceleration":-2.999999999999971,"curvature":0.5617932012303778,"holonomicRotation":0.0,"angularVelocity":0.875052500540059,"holonomicAngularVelocity":0.0},{"time":1.5317200238988449,"pose":{"rotation":{"radians":1.314608723699815},"translation":{"x":2.9470274560000007,"y":4.594515456000002}},"velocity":1.545355638701783,"acceleration":-3.000000000000057,"curvature":0.5647768371119463,"holonomicRotation":0.0,"angularVelocity":0.866353126952262,"holonomicAngularVelocity":0.0},{"time":1.539650128119067,"pose":{"rotation":{"radians":1.3214789942880618},"translation":{"x":2.9500279680000006,"y":4.606299968000002}},"velocity":1.5215653260411162,"acceleration":-3.000000000000028,"curvature":0.5677765867261405,"holonomicRotation":0.0,"angularVelocity":0.8573361111436658,"holonomicAngularVelocity":0.0},{"time":1.5477008716886214,"pose":{"rotation":{"radians":1.3283811874717983},"translation":{"x":2.9529451520000003,"y":4.6180971520000025}},"velocity":1.4974130953324531,"acceleration":-3.0000000000000275,"curvature":0.5707913768706009,"holonomicRotation":0.0,"angularVelocity":0.8479856135548375,"holonomicAngularVelocity":0.0},{"time":1.55587826851637,"pose":{"rotation":{"radians":1.335315502338058},"translation":{"x":2.9557786240000006,"y":4.629906624000001}},"velocity":1.472880904849207,"acceleration":-3.000000000000054,"curvature":0.5738200956456002,"holonomicRotation":0.0,"angularVelocity":0.8382847700393716,"holonomicAngularVelocity":0.0},{"time":1.5641888415424363,"pose":{"rotation":{"radians":1.3422821291361096},"translation":{"x":2.9585280000000007,"y":4.641728000000002}},"velocity":1.4479491857710078,"acceleration":-3.0,"curvature":0.576861591813262,"holonomicRotation":0.0,"angularVelocity":0.8282155756134849,"holonomicAngularVelocity":0.0},{"time":1.5726396845955335,"pose":{"rotation":{"radians":1.3492812489797497},"translation":{"x":2.9611928960000005,"y":4.653560896000002}},"velocity":1.4225966566117165,"acceleration":-2.999999999999974,"curvature":0.5799146744073892,"holonomicRotation":0.0,"angularVelocity":0.8177587498554331,"holonomicAngularVelocity":0.0},{"time":1.5812385342789634,"pose":{"rotation":{"radians":1.3563130335470661},"translation":{"x":2.9637729280000005,"y":4.665404928000002}},"velocity":1.3968001075614265,"acceleration":-3.0000000000000258,"curvature":0.5829781121894888,"holonomicRotation":0.0,"angularVelocity":0.8068935795489924,"holonomicAngularVelocity":0.0},{"time":1.5899938539486989,"pose":{"rotation":{"radians":1.3633776447754746},"translation":{"x":2.9662677120000005,"y":4.6772597120000015}},"velocity":1.37053414855222,"acceleration":-3.0000000000000253,"curvature":0.5860506332508155,"holonomicRotation":0.0,"angularVelocity":0.7955977342737229,"holonomicAngularVelocity":0.0},{"time":1.5989149323684775,"pose":{"rotation":{"radians":1.3704752345535287},"translation":{"x":2.9686768640000007,"y":4.689124864000002}},"velocity":1.3437709132928843,"acceleration":-2.999999999999975,"curvature":0.5891309246386679,"holonomicRotation":0.0,"angularVelocity":0.7838470488111148,"holonomicAngularVelocity":0.0},{"time":1.608012000306507,"pose":{"rotation":{"radians":1.3776059444095874},"translation":{"x":2.9710000000000005,"y":4.701000000000001}},"velocity":1.316479709478796,"acceleration":-2.9999999999999756,"curvature":0.5922176320623127,"holonomicRotation":0.0,"angularVelocity":0.7716152648033403,"holonomicAngularVelocity":0.0},{"time":1.6172963692331,"pose":{"rotation":{"radians":1.3847699051974123},"translation":{"x":2.9732367360000005,"y":4.712884736000002}},"velocity":1.288626602699017,"acceleration":-3.000000000000024,"curvature":0.5953093595736683,"holonomicRotation":0.0,"angularVelocity":0.7588737220632151,"holonomicAngularVelocity":0.0},{"time":1.6267805974686687,"pose":{"rotation":{"radians":1.3919672367794353},"translation":{"x":2.9753866880000004,"y":4.724778688000002}},"velocity":1.2601739179923108,"acceleration":-3.0,"curvature":0.5984046693700557,"holonomicRotation":0.0,"angularVelocity":0.7455909869329629,"holonomicAngularVelocity":0.0},{"time":1.636478690732875,"pose":{"rotation":{"radians":1.3991980477076629},"translation":{"x":2.9774494720000004,"y":4.736681472000003}},"velocity":1.2310796381996918,"acceleration":-3.0,"curvature":0.6015020816536214,"holonomicRotation":0.0,"angularVelocity":0.7317324013974611,"holonomicAngularVelocity":0.0},{"time":1.6464063462269714,"pose":{"rotation":{"radians":1.4064624349026047},"translation":{"x":2.9794247040000004,"y":4.748592704000002}},"velocity":1.201296671717403,"acceleration":-2.999999999999978,"curvature":0.60460007456127,"holonomicRotation":0.0,"angularVelocity":0.717259531383458,"holonomicAngularVelocity":0.0},{"time":1.6565812523929566,"pose":{"rotation":{"radians":1.41376048333109},"translation":{"x":2.9813120000000004,"y":4.760512000000002}},"velocity":1.1707719532194472,"acceleration":-3.0,"curvature":0.6076970841012796,"holonomicRotation":0.0,"angularVelocity":0.7021294852003354,"holonomicAngularVelocity":0.0},{"time":1.6670234607122523,"pose":{"rotation":{"radians":1.4210922656826717},"translation":{"x":2.9831109760000003,"y":4.772438976000002}},"velocity":1.1394453282615602,"acceleration":-3.0,"curvature":0.6107915042418585,"holonomicRotation":0.0,"angularVelocity":0.6862940629818453,"holonomicAngularVelocity":0.0},{"time":1.6777558519135327,"pose":{"rotation":{"radians":1.428457842045709},"translation":{"x":2.9848212480000003,"y":4.784373248000002}},"velocity":1.107248154657719,"acceleration":-2.999999999999979,"curvature":0.6138816870079442,"holonomicRotation":0.0,"angularVelocity":0.6696986828773126,"holonomicAngularVelocity":0.0},{"time":1.6888047276641542,"pose":{"rotation":{"radians":1.4358572595831753},"translation":{"x":2.9864424320000005,"y":4.796314432000002}},"velocity":1.0741015274058545,"acceleration":-3.0,"curvature":0.6169659427695113,"holonomicRotation":0.0,"angularVelocity":0.652281008129766,"holonomicAngularVelocity":0.0},{"time":1.7002005716841848,"pose":{"rotation":{"radians":1.4432905522090504},"translation":{"x":2.9879741440000003,"y":4.808262144000002}},"velocity":1.039913995345763,"acceleration":-2.9999999999999805,"curvature":0.6200425403987194,"holonomicRotation":0.0,"angularVelocity":0.6339691664027446,"holonomicAngularVelocity":0.0},{"time":1.7119790436535878,"pose":{"rotation":{"radians":1.450757740264991},"translation":{"x":2.9894160000000003,"y":4.820216000000001}},"velocity":1.004578579437554,"acceleration":-3.0000000000000187,"curvature":0.623109707774154,"holonomicRotation":0.0,"angularVelocity":0.6146794031013213,"holonomicAngularVelocity":0.0},{"time":1.724182299361434,"pose":{"rotation":{"radians":1.4582588301993826},"translation":{"x":2.9907676160000003,"y":4.8321756160000024}},"velocity":0.9679688123140158,"acceleration":-2.9999999999999636,"curvature":0.6261656322069277,"holonomicRotation":0.0,"angularVelocity":0.5943129313748706,"holonomicAngularVelocity":0.0},{"time":1.7368607784086099,"pose":{"rotation":{"radians":1.4657938142472846},"translation":{"x":2.992028608,"y":4.844140608000002}},"velocity":0.9299333751724882,"acceleration":-2.999999999999991,"curvature":0.6292084609699685,"holonomicRotation":0.0,"angularVelocity":0.5727516148206816,"holonomicAngularVelocity":0.0},{"time":1.7500756793718817,"pose":{"rotation":{"radians":1.473362670113694},"translation":{"x":2.993198592,"y":4.856110592000002}},"velocity":0.8902886722826729,"acceleration":-2.999999999999983,"curvature":0.6322363020068372,"holonomicRotation":0.0,"angularVelocity":0.549851904665754,"holonomicAngularVelocity":0.0},{"time":1.763902476153777,"pose":{"rotation":{"radians":1.4809653606596453},"translation":{"x":2.9942771840000004,"y":4.868085184000002}},"velocity":0.8488082819369874,"acceleration":-2.999999999999984,"curvature":0.6352472246674356,"holonomicRotation":0.0,"angularVelocity":0.5254360802848803,"holonomicAngularVelocity":0.0},{"time":1.7784360668586583,"pose":{"rotation":{"radians":1.488601833592083},"translation":{"x":2.995264,"y":4.880064000000003}},"velocity":0.8052075098223431,"acceleration":-3.000000000000015,"curvature":0.6382392605344301,"holonomicRotation":0.0,"angularVelocity":0.49927915802747,"holonomicAngularVelocity":0.0},{"time":1.7937985898931266,"pose":{"rotation":{"radians":1.49627202115791},"translation":{"x":2.996158656,"y":4.8920466560000015}},"velocity":0.759119940718938,"acceleration":-3.0000000000000218,"curvature":0.6412104045156426,"holonomicRotation":0.0,"angularVelocity":0.4710885081646315,"holonomicAngularVelocity":0.0},{"time":1.81015181981141,"pose":{"rotation":{"radians":1.5039758398437872},"translation":{"x":2.996960768,"y":4.904032768000002}},"velocity":0.7100602509640875,"acceleration":-3.0000000000000204,"curvature":0.6441586157880042,"holonomicRotation":0.0,"angularVelocity":0.44047046706200677,"holonomicAngularVelocity":0.0},{"time":1.8277179242740946,"pose":{"rotation":{"radians":1.511713190080926},"translation":{"x":2.9976699520000003,"y":4.916021952000001}},"velocity":0.6573619375760337,"acceleration":-2.9999999999999876,"curvature":0.6470818190817547,"holonomicRotation":0.0,"angularVelocity":0.40687199814347647,"holonomicAngularVelocity":0.0},{"time":1.8468167217124687,"pose":{"rotation":{"radians":1.5194839559568147},"translation":{"x":2.998285824,"y":4.928013824000002}},"velocity":0.6000655452609113,"acceleration":-3.0000000000000115,"curvature":0.6499779058913984,"holonomicRotation":0.0,"angularVelocity":0.3694696536402002,"holonomicAngularVelocity":0.0},{"time":1.8679390220148424,"pose":{"rotation":{"radians":1.527288004933617},"translation":{"x":2.998808,"y":4.9400080000000015}},"velocity":0.5366986443537898,"acceleration":-3.000000000000016,"curvature":0.6528447360474303,"holonomicRotation":0.0,"angularVelocity":0.3269313584685308,"holonomicAngularVelocity":0.0},{"time":1.891910973431456,"pose":{"rotation":{"radians":1.5351251875753922},"translation":{"x":2.999236096,"y":4.952004096000002}},"velocity":0.4647827901039487,"acceleration":-3.000000000000002,"curvature":0.6556801391027219,"holonomicRotation":0.0,"angularVelocity":0.2768026259312415,"holonomicAngularVelocity":0.0},{"time":1.9203433254767548,"pose":{"rotation":{"radians":1.5429953372829324},"translation":{"x":2.999569728,"y":4.964001728000001}},"velocity":0.3794857339680527,"acceleration":-2.999999999999996,"curvature":0.6584819160890972,"holonomicRotation":0.0,"angularVelocity":0.21329879823738362,"holonomicAngularVelocity":0.0},{"time":1.9573943207044333,"pose":{"rotation":{"radians":1.5508982700384952},"translation":{"x":2.999808512,"y":4.976000512000002}},"velocity":0.26833274828501735,"acceleration":-2.9999999999999942,"curvature":0.6612478412834537,"holonomicRotation":0.0,"angularVelocity":0.0887202271044126,"holonomicAngularVelocity":0.0},{"time":2.0468385701327723,"pose":{"rotation":{"radians":1.5588337841609612},"translation":{"x":2.999952064,"y":4.988000064000001}},"velocity":0,"acceleration":-3.0000000000000058,"curvature":0.6612478412834537,"holonomicRotation":0.0,"angularVelocity":0.0,"holonomicAngularVelocity":0.0},{"time":2.0468385701327723,"pose":{"rotation":{"radians":1.5747909935183229},"translation":{"x":3.0,"y":5.0}},"velocity":0,"acceleration":-3.0,"curvature":-0.663975664093471,"holonomicRotation":0.0,"angularVelocity":0.0,"holonomicAngularVelocity":0.0},{"time":2.1362814075366994,"pose":{"rotation":{"radians":1.5747909935183229},"translation":{"x":3.000047936,"y":4.988000064000001}},"velocity":-0.26832851221178183,"acceleration":-3.0,"curvature":-0.663975664093471,"holonomicRotation":0.0,"angularVelocity":0.21506066046267544,"holonomicAngularVelocity":0.0},{"time":2.1733308423025224,"pose":{"rotation":{"radians":1.5827588694288295},"translation":{"x":3.000191488,"y":4.976000512}},"velocity":-0.37947681650924975,"acceleration":-2.999999999999999,"curvature":-0.6612478412834536,"holonomicRotation":0.0,"angularVelocity":0.2791196654352754,"holonomicAngularVelocity":0.0},{"time":2.201761351167232,"pose":{"rotation":{"radians":1.5906943835513019},"translation":{"x":3.000430272,"y":4.964001728000001}},"velocity":-0.4647683431033788,"acceleration":-2.999999999999999,"curvature":-0.6584819160890969,"holonomicRotation":0.0,"angularVelocity":0.32970274886998213,"holonomicAngularVelocity":0.0},{"time":2.2257312233707207,"pose":{"rotation":{"radians":1.5985973163068543},"translation":{"x":3.000763904,"y":4.952004096}},"velocity":-0.536677959713845,"acceleration":-2.9999999999999956,"curvature":-0.6556801391026855,"holonomicRotation":0.0,"angularVelocity":0.37263931025212366,"holonomicAngularVelocity":0.0},{"time":2.2468512434304047,"pose":{"rotation":{"radians":1.606467466014406},"translation":{"x":3.001192,"y":4.940008000000001}},"velocity":-0.6000380198928976,"acceleration":-3.0000000000000013,"curvature":-0.6528447360474302,"holonomicRotation":0.0,"angularVelocity":0.41040227730578355,"holonomicAngularVelocity":0.0},{"time":2.2659475863971474,"pose":{"rotation":{"radians":1.6143046486561694},"translation":{"x":3.001714176,"y":4.928013824}},"velocity":-0.6573270487931249,"acceleration":-3.000000000000003,"curvature":-0.6499779059037698,"holonomicRotation":0.0,"angularVelocity":0.4443334326624615,"holonomicAngularVelocity":0.0},{"time":2.2835110835440036,"pose":{"rotation":{"radians":1.6221086976329895},"translation":{"x":3.0023300479999997,"y":4.916021952000001}},"velocity":-0.7100175402336942,"acceleration":-3.0,"curvature":-0.6470818190817534,"holonomicRotation":0.0,"angularVelocity":0.47526203255141736,"holonomicAngularVelocity":0.0},{"time":2.2998615709460464,"pose":{"rotation":{"radians":1.6298794635088907},"translation":{"x":3.0030392320000003,"y":4.9040327679999995}},"velocity":-0.7590690024398227,"acceleration":-3.000000000000005,"curvature":-0.6441586157755366,"holonomicRotation":0.0,"angularVelocity":0.5037448816056413,"holonomicAngularVelocity":0.0},{"time":2.3152212312019,"pose":{"rotation":{"radians":1.6376168137459786},"translation":{"x":3.003841344,"y":4.892046656000001}},"velocity":-0.8051479832073837,"acceleration":-3.0,"curvature":-0.6412104045031639,"holonomicRotation":0.0,"angularVelocity":0.5301782294741988,"holonomicAngularVelocity":0.0},{"time":2.329751851769881,"pose":{"rotation":{"radians":1.645320632431872},"translation":{"x":3.004736,"y":4.880064}},"velocity":-0.8487398449113267,"acceleration":-3.000000000000004,"curvature":-0.6382392605344286,"holonomicRotation":0.0,"angularVelocity":0.5548565565092586,"holonomicAngularVelocity":0.0},{"time":2.3435755823826048,"pose":{"rotation":{"radians":1.6529908199977594},"translation":{"x":3.005722816,"y":4.868085184000001}},"velocity":-0.8902110367494969,"acceleration":-2.999999999999996,"curvature":-0.6352472246548937,"holonomicRotation":0.0,"angularVelocity":0.5780062147703856,"holonomicAngularVelocity":0.0},{"time":2.3567873312137406,"pose":{"rotation":{"radians":1.6606272929301413},"translation":{"x":3.0068014080000003,"y":4.856110592}},"velocity":-0.9298462832429044,"acceleration":-3.0,"curvature":-0.6322363020068388,"holonomicRotation":0.0,"angularVelocity":0.5998059641255189,"holonomicAngularVelocity":0.0},{"time":2.3694625812123173,"pose":{"rotation":{"radians":1.6682299834760697},"translation":{"x":3.007971392,"y":4.844140608000001}},"velocity":-0.9678720332386348,"acceleration":-3.0000000000000044,"curvature":-0.629208460982605,"holonomicRotation":0.0,"angularVelocity":0.6204001606251212,"holonomicAngularVelocity":0.0},{"time":2.381662539153711,"pose":{"rotation":{"radians":1.67579883934253},"translation":{"x":3.009232384,"y":4.832175616}},"velocity":-1.004471907062816,"acceleration":-3.000000000000009,"curvature":-0.6261656322196447,"holonomicRotation":0.0,"angularVelocity":0.639907580276147,"holonomicAngularVelocity":0.0},{"time":2.3934376521233767,"pose":{"rotation":{"radians":1.6833338233904271},"translation":{"x":3.010584,"y":4.820216}},"velocity":-1.0397972459718132,"acceleration":-2.999999999999986,"curvature":-0.623109707774154,"holonomicRotation":0.0,"angularVelocity":0.6584275258631126,"holonomicAngularVelocity":0.0},{"time":2.404830082785391,"pose":{"rotation":{"radians":1.6908349133247844},"translation":{"x":3.012025856,"y":4.8082621439999995}},"velocity":-1.0739745379578567,"acceleration":-2.999999999999995,"curvature":-0.6200425403987191,"holonomicRotation":0.0,"angularVelocity":0.6760441751862138,"holonomicAngularVelocity":0.0},{"time":2.4158754971681424,"pose":{"rotation":{"radians":1.6983021013807615},"translation":{"x":3.013557568,"y":4.796314432000001}},"velocity":-1.107110781106111,"acceleration":-3.0,"curvature":-0.6169659427566521,"holonomicRotation":0.0,"angularVelocity":0.6928297531971396,"holonomicAngularVelocity":0.0},{"time":2.426604384880453,"pose":{"rotation":{"radians":1.7057353940065614},"translation":{"x":3.0151787519999997,"y":4.784373248}},"velocity":-1.1392974442430421,"acceleration":-3.0,"curvature":-0.6138816870079441,"holonomicRotation":0.0,"angularVelocity":0.7088468951007417,"holonomicAngularVelocity":0.0},{"time":2.437043053073432,"pose":{"rotation":{"radians":1.7131348115441414},"translation":{"x":3.016889024,"y":4.772438976000001}},"velocity":-1.170613448821979,"acceleration":-3.0000000000000053,"curvature":-0.6107915042418562,"holonomicRotation":0.0,"angularVelocity":0.7241504390507798,"holonomicAngularVelocity":0.0},{"time":2.44721438759974,"pose":{"rotation":{"radians":1.7205003879070997},"translation":{"x":3.018688,"y":4.760511999999999}},"velocity":-1.201127452400903,"acceleration":-2.999999999999989,"curvature":-0.6076970841012463,"holonomicRotation":0.0,"angularVelocity":0.7387888084396566,"holonomicAngularVelocity":0.0},{"time":2.4571384447428093,"pose":{"rotation":{"radians":1.727832170258715},"translation":{"x":3.020575296,"y":4.748592704}},"velocity":-1.230899623830111,"acceleration":-3.000000000000011,"curvature":-0.60460007456127,"holonomicRotation":0.0,"angularVelocity":0.7528050925433399,"holonomicAngularVelocity":0.0},{"time":2.466832917456597,"pose":{"rotation":{"radians":1.7351302186871767},"translation":{"x":3.022550528,"y":4.736681472}},"velocity":-1.2599830419714737,"acceleration":-3.0,"curvature":-0.6015020816667189,"holonomicRotation":0.0,"angularVelocity":0.7662379027193594,"holonomicAngularVelocity":0.0},{"time":2.476313507191436,"pose":{"rotation":{"radians":1.7423946058821427},"translation":{"x":3.024613312,"y":4.724778688}},"velocity":-1.288424811175992,"acceleration":-3.0000000000000058,"curvature":-0.5984046693700557,"holonomicRotation":0.0,"angularVelocity":0.7791220580677133,"holonomicAngularVelocity":0.0},{"time":2.4855942236765203,"pose":{"rotation":{"radians":1.7496254168103444},"translation":{"x":3.026763264,"y":4.7128847359999995}},"velocity":-1.3162669606312447,"acceleration":-3.000000000000012,"curvature":-0.5953093595736652,"holonomicRotation":0.0,"angularVelocity":0.791489140569654,"holonomicAngularVelocity":0.0},{"time":2.4946876290224305,"pose":{"rotation":{"radians":1.7568227483924304},"translation":{"x":3.0290000000000004,"y":4.701}},"velocity":-1.3435471766689753,"acceleration":-3.000000000000018,"curvature":-0.5922176320623417,"holonomicRotation":0.0,"angularVelocity":0.8033679485311952,"holonomicAngularVelocity":0.0},{"time":2.5036050382878523,"pose":{"rotation":{"radians":1.7639867091802053},"translation":{"x":3.031323136,"y":4.689124864}},"velocity":-1.3702994044652403,"acceleration":-2.9999999999999876,"curvature":-0.589130924651956,"holonomicRotation":0.0,"angularVelocity":0.8147848703989182,"holonomicAngularVelocity":0.0},{"time":2.5123566856429775,"pose":{"rotation":{"radians":1.7711174190362282},"translation":{"x":3.033732288,"y":4.677259712}},"velocity":-1.3965543465306167,"acceleration":-3.0,"curvature":-0.586050633250819,"holonomicRotation":0.0,"angularVelocity":0.8257641950397024,"holonomicAngularVelocity":0.0},{"time":2.5209518630807075,"pose":{"rotation":{"radians":1.7782150088143185},"translation":{"x":3.036227072,"y":4.665404928}},"velocity":-1.4223398788438055,"acceleration":-2.9999999999999676,"curvature":-0.5829781121894888,"holonomicRotation":0.0,"angularVelocity":0.8363283714374167,"holonomicAngularVelocity":0.0},{"time":2.529399037025395,"pose":{"rotation":{"radians":1.7852796200427274},"translation":{"x":3.038807104,"y":4.653560896}},"velocity":-1.4476814006778675,"acceleration":-2.9999999999999933,"curvature":-0.5799146744073547,"holonomicRotation":0.0,"angularVelocity":0.8464982273758479,"holonomicAngularVelocity":0.0},{"time":2.5377059469986545,"pose":{"rotation":{"radians":1.7923114046100626},"translation":{"x":3.041472,"y":4.641728}},"velocity":-1.4726021305976469,"acceleration":-3.00000000000002,"curvature":-0.5768615917997932,"holonomicRotation":0.0,"angularVelocity":0.8562931546703597,"holonomicAngularVelocity":0.0},{"time":2.545879689607045,"pose":{"rotation":{"radians":1.7993105244536647},"translation":{"x":3.044221376,"y":4.629906623999999}},"velocity":-1.497123358422818,"acceleration":-3.0000000000000067,"curvature":-0.5738200956456038,"holonomicRotation":0.0,"angularVelocity":0.8657312671405707,"holonomicAngularVelocity":0.0},{"time":2.5539267904366865,"pose":{"rotation":{"radians":1.8062771512517184},"translation":{"x":3.047054848,"y":4.618097152}},"velocity":-1.5212646609117435,"acceleration":-3.0000000000000138,"curvature":-0.5707913768570366,"holonomicRotation":0.0,"angularVelocity":0.87482953581738,"holonomicAngularVelocity":0.0},{"time":2.5618532659183937,"pose":{"rotation":{"radians":1.813211466118048},"translation":{"x":3.0499720320000003,"y":4.606299968}},"velocity":-1.5450440873568647,"acceleration":-2.999999999999986,"curvature":-0.5677765867125653,"holonomicRotation":0.0,"angularVelocity":0.8836039055943861,"holonomicAngularVelocity":0.0},{"time":2.569664676823153,"pose":{"rotation":{"radians":1.820113659301696},"translation":{"x":3.0529725439999997,"y":4.594515456}},"velocity":-1.5684783200711427,"acceleration":-3.0,"curvature":-0.5647768371119459,"holonomicRotation":0.0,"angularVelocity":0.8920693959976156,"holonomicAngularVelocity":0.0},{"time":2.577366174732555,"pose":{"rotation":{"radians":1.8269839298900132},"translation":{"x":3.0560560000000003,"y":4.582744}},"velocity":-1.591582813799349,"acceleration":-3.0,"curvature":-0.5617932012303779,"holonomicRotation":0.0,"angularVelocity":0.9002401887212853,"holonomicAngularVelocity":0.0},{"time":2.5849625425806573,"pose":{"rotation":{"radians":1.833822485515185},"translation":{"x":3.059222016,"y":4.570985984}},"velocity":-1.6143719173436557,"acceleration":-3.0000000000000293,"curvature":-0.5588267141256478,"holonomicRotation":0.0,"angularVelocity":0.9081297043785966,"holonomicAngularVelocity":0.0},{"time":2.592458230167031,"pose":{"rotation":{"radians":1.8406295420671128},"translation":{"x":3.062470208,"y":4.559241792}},"velocity":-1.6368589801027766,"acceleration":-3.0,"curvature":-0.5558783732812124,"holonomicRotation":0.0,"angularVelocity":0.9157506692825748,"holonomicAngularVelocity":0.0},{"time":2.5998573853836477,"pose":{"rotation":{"radians":1.8474053234088554},"translation":{"x":3.065800192,"y":4.547511807999999}},"velocity":-1.6590564457526276,"acceleration":-3.000000000000015,"curvature":-0.5529491392614698,"holonomicRotation":0.0,"angularVelocity":0.9231151746224233,"holonomicAngularVelocity":0.0},{"time":2.607163881771995,"pose":{"rotation":{"radians":1.8541500610982622},"translation":{"x":3.069211584,"y":4.535796415999999}},"velocity":-1.6809759349176676,"acceleration":-3.0,"curvature":-0.5500399363825702,"holonomicRotation":0.0,"angularVelocity":0.9302347284834435,"holonomicAngularVelocity":0.0},{"time":2.614381342924677,"pose":{"rotation":{"radians":1.8608639941139673},"translation":{"x":3.072704,"y":4.524095999999999}},"velocity":-1.7026283183757143,"acceleration":-3.0000000000000155,"curvature":-0.5471516533975169,"holonomicRotation":0.0,"angularVelocity":0.9371203020405943,"holonomicAngularVelocity":0.0},{"time":2.6215131641626916,"pose":{"rotation":{"radians":1.867547368586635},"translation":{"x":3.0762770560000003,"y":4.512410944}},"velocity":-1.7240237820897581,"acceleration":-3.0000000000000155,"curvature":-0.5442851441519785,"holonomicRotation":0.0,"angularVelocity":0.9437823705718374,"holonomicAngularVelocity":0.0},{"time":2.6285625318515775,"pose":{"rotation":{"radians":1.8742004375350847},"translation":{"x":3.0799303680000003,"y":4.5007416319999995}},"velocity":-1.7451718851564173,"acceleration":-3.0000000000000315,"curvature":-0.5414412284047262,"holonomicRotation":0.0,"angularVelocity":0.9502309502266035,"holonomicAngularVelocity":0.0},{"time":2.6355324406637557,"pose":{"rotation":{"radians":1.8808234606086733},"translation":{"x":3.083663552,"y":4.4890884479999995}},"velocity":-1.7660816115929512,"acceleration":-3.0,"curvature":-0.538620692477182,"holonomicRotation":0.0,"angularVelocity":0.9564756306438044,"holonomicAngularVelocity":0.0},{"time":2.6424257090481733,"pose":{"rotation":{"radians":1.887416703833856},"translation":{"x":3.087476224,"y":4.477451776}},"velocity":-1.7867614167462036,"acceleration":-2.999999999999984,"curvature":-0.5358242899805565,"holonomicRotation":0.0,"angularVelocity":0.9625256044974729,"holonomicAngularVelocity":0.0},{"time":2.6492449931300026,"pose":{"rotation":{"radians":1.8939804393669588},"translation":{"x":3.091368,"y":4.465832}},"velocity":-1.8072192689916917,"acceleration":-3.0000000000000324,"curvature":-0.5330527427341364,"holonomicRotation":0.0,"angularVelocity":0.9683896940137469,"holonomicAngularVelocity":0.0},{"time":2.655992799231136,"pose":{"rotation":{"radians":1.9005149452524996},"translation":{"x":3.095338496,"y":4.454229504}},"velocity":-1.8274626872950925,"acceleration":-3.0000000000000164,"curvature":-0.5303067413665257,"holonomicRotation":0.0,"angularVelocity":0.9740763748988773,"holonomicAngularVelocity":0.0},{"time":2.662671495175413,"pose":{"rotation":{"radians":1.9070205051869529},"translation":{"x":3.099387328,"y":4.442644671999999}},"velocity":-1.8474987751279237,"acceleration":-3.0,"curvature":-0.527586946146635,"holonomicRotation":0.0,"angularVelocity":0.9795937980323695,"holonomicAngularVelocity":0.0},{"time":2.6692833205199555,"pose":{"rotation":{"radians":1.9134974082881397},"translation":{"x":3.103514112,"y":4.431077888}},"velocity":-1.8673342511615505,"acceleration":-2.999999999999983,"curvature":-0.5248939878051837,"holonomicRotation":0.0,"angularVelocity":0.9849498091799569,"holonomicAngularVelocity":0.0},{"time":2.6758303958349496,"pose":{"rotation":{"radians":1.91994594887033},"translation":{"x":3.1077184640000004,"y":4.419529536}},"velocity":-1.886975477106533,"acceleration":-2.999999999999983,"curvature":-0.5222284682600391,"holonomicRotation":0.0,"angularVelocity":0.9901519669516187,"holonomicAngularVelocity":0.0},{"time":2.6823147311380504,"pose":{"rotation":{"radians":1.9263664262250693},"translation":{"x":3.112,"y":4.4079999999999995}},"velocity":-1.9064284830158356,"acceleration":-2.9999999999999827,"curvature":-0.5195909614569447,"holonomicRotation":0.0,"angularVelocity":0.9952075592378692,"holonomicAngularVelocity":0.0},{"time":2.6887382335758687,"pose":{"rotation":{"radians":1.932759144407969},"translation":{"x":3.1163583360000002,"y":4.396489664}},"velocity":-1.9256989903292907,"acceleration":-2.9999999999999827,"curvature":-0.5169820141397626,"holonomicRotation":0.0,"angularVelocity":1.0001236180920878,"holonomicAngularVelocity":0.0},{"time":2.695102714433262,"pose":{"rotation":{"radians":1.9391244120303428},"translation":{"x":3.120793088,"y":4.3849989119999995}},"velocity":-1.9447924329014699,"acceleration":-3.0,"curvature":-0.5144021466205735,"holonomicRotation":0.0,"angularVelocity":1.0049069337160776,"holonomicAngularVelocity":0.0},{"time":2.7014098955411114,"pose":{"rotation":{"radians":1.9454625420578235},"translation":{"x":3.1253038720000004,"y":4.373528127999999}},"velocity":-1.9637139762250175,"acceleration":-3.0,"curvature":-0.5118518535624782,"holonomicRotation":0.0,"angularVelocity":1.009564066942242,"holonomicAngularVelocity":0.0},{"time":2.7076614151446488,"pose":{"rotation":{"radians":1.95177385161334},"translation":{"x":3.1298903040000003,"y":4.362077695999999}},"velocity":-1.9824685350356301,"acceleration":-3.0,"curvature":-0.5093316047891807,"holonomicRotation":0.0,"angularVelocity":1.0141013611165504,"holonomicAngularVelocity":0.0},{"time":2.7138588332869524,"pose":{"rotation":{"radians":1.9580586617868585},"translation":{"x":3.1345520000000002,"y":4.350648}},"velocity":-2.001060789462541,"acceleration":-3.0000000000000178,"curvature":-0.506841846048325,"holonomicRotation":0.0,"angularVelocity":1.018524952789108,"holonomicAngularVelocity":0.0},{"time":2.7200036367558105,"pose":{"rotation":{"radians":1.9643172974498757},"translation":{"x":3.139288576,"y":4.339239424}},"velocity":-2.019495199869116,"acceleration":-3.000000000000036,"curvature":-0.5043829997561204,"holonomicRotation":0.0,"angularVelocity":1.0228407818470144,"holonomicAngularVelocity":0.0},{"time":2.726097243636585,"pose":{"rotation":{"radians":1.9705500870760755},"translation":{"x":3.144099648,"y":4.327852352}},"velocity":-2.0377760205114392,"acceleration":-2.9999999999999454,"curvature":-0.5019554658388903,"holonomicRotation":0.0,"angularVelocity":1.027054600792063,"holonomicAngularVelocity":0.0},{"time":2.7321410075088677,"pose":{"rotation":{"radians":1.976757362567204},"translation":{"x":3.1489848320000005,"y":4.316487167999999}},"velocity":-2.0559073121282863,"acceleration":-3.0,"curvature":-0.49955962237970714,"holonomicRotation":0.0,"angularVelocity":1.0311719834343849,"holonomicAngularVelocity":0.0},{"time":2.738136221320501,"pose":{"rotation":{"radians":1.9829394590844593},"translation":{"x":3.153943744,"y":4.305144255999999}},"velocity":-2.0738929535631874,"acceleration":-3.0000000000000555,"curvature":-0.4971958264330603,"holonomicRotation":0.0,"angularVelocity":1.0351983330386056,"holonomicAngularVelocity":0.0},{"time":2.744084120968872,"pose":{"rotation":{"radians":1.9890967148855339},"translation":{"x":3.158976,"y":4.293824}},"velocity":-2.0917366525083003,"acceleration":-3.0000000000000187,"curvature":-0.4948644147448579,"holonomicRotation":0.0,"angularVelocity":1.0391388898266953,"holonomicAngularVelocity":0.0},{"time":2.7499858886161315,"pose":{"rotation":{"radians":1.995229471166522},"translation":{"x":3.164081216,"y":4.282526783999999}},"velocity":-2.109441955450078,"acceleration":-3.0,"curvature":-0.49256570452370857,"holonomicRotation":0.0,"angularVelocity":1.0429987382066992,"holonomicAngularVelocity":0.0},{"time":2.7558426557621933,"pose":{"rotation":{"radians":2.001338071909835},"translation":{"x":3.1692590080000005,"y":4.271252991999999}},"velocity":-2.1270122568882637,"acceleration":-2.999999999999943,"curvature":-0.49029999405552377,"holonomicRotation":0.0,"angularVelocity":1.0467828132733483,"holonomicAngularVelocity":0.0},{"time":2.761655506096872,"pose":{"rotation":{"radians":2.0074228637363074},"translation":{"x":3.1745089920000003,"y":4.260003007999999}},"velocity":-2.144450807892301,"acceleration":-2.999999999999981,"curvature":-0.4880675635449118,"holonomicRotation":0.0,"angularVelocity":1.0504959073292972,"holonomicAngularVelocity":0.0},{"time":2.76742547815031,"pose":{"rotation":{"radians":2.013484195763848},"translation":{"x":3.1798307840000004,"y":4.248777216}},"velocity":-2.161760724052613,"acceleration":-2.9999999999999614,"curvature":-0.4858686756363079,"holonomicRotation":0.0,"angularVelocity":1.0541426755227752,"holonomicAngularVelocity":0.0},{"time":2.7731535677589205,"pose":{"rotation":{"radians":2.019522419469503},"translation":{"x":3.1852240000000003,"y":4.237576}},"velocity":-2.1789449928784457,"acceleration":-3.0000000000000777,"curvature":-0.4837035763095772,"holonomicRotation":0.0,"angularVelocity":1.0577276417062655,"holonomicAngularVelocity":0.0},{"time":2.7788407303623694,"pose":{"rotation":{"radians":2.0255378885580493},"translation":{"x":3.190688256,"y":4.226399743999999}},"velocity":-2.1960064806887933,"acceleration":-3.000000000000039,"curvature":-0.4815724954088063,"holonomicRotation":0.0,"angularVelocity":1.0612552035558065,"holonomicAngularVelocity":0.0},{"time":2.7844878831455677,"pose":{"rotation":{"radians":2.0315309588344928},"translation":{"x":3.1962231680000004,"y":4.2152488319999994}},"velocity":-2.2129479390383873,"acceleration":-3.0000000000000195,"curvature":-0.47947564724702796,"holonomicRotation":0.0,"angularVelocity":1.0647296375816526,"holonomicAngularVelocity":0.0},{"time":2.7900959070383258,"pose":{"rotation":{"radians":2.0375019880813783},"translation":{"x":3.2018283520000006,"y":4.2041236479999995}},"velocity":-2.2297720107166614,"acceleration":-3.0,"curvature":-0.47741323142346864,"holonomicRotation":0.0,"angularVelocity":1.0681551040319075,"holonomicAngularVelocity":0.0},{"time":2.7956656485841047,"pose":{"rotation":{"radians":2.043451335941641},"translation":{"x":3.2075034240000004,"y":4.193024575999999}},"velocity":-2.2464812353539987,"acceleration":-2.99999999999996,"curvature":-0.4753854333143056,"holonomicRotation":0.0,"angularVelocity":1.0715356512800862,"holonomicAngularVelocity":0.0},{"time":2.801197921688225,"pose":{"rotation":{"radians":2.0493793638053237},"translation":{"x":3.2132480000000005,"y":4.181951999999999}},"velocity":-2.2630780546663596,"acceleration":-3.0,"curvature":-0.4733924247442328,"holonomicRotation":0.0,"angularVelocity":1.0748752201213205,"holonomicAngularVelocity":0.0},{"time":2.8066935092549423,"pose":{"rotation":{"radians":2.055286434700795},"translation":{"x":3.2190616960000002,"y":4.170906303999999}},"velocity":-2.279564817366512,"acceleration":-3.00000000000002,"curvature":-0.47143436459980015,"holonomicRotation":0.0,"angularVelocity":1.0781776480141334,"holonomicAngularVelocity":0.0},{"time":2.8121531647219413,"pose":{"rotation":{"radians":2.0611729131911716},"translation":{"x":3.2249441280000006,"y":4.159887872}},"velocity":-2.295943783767509,"acceleration":-3.0,"curvature":-0.46951139935295344,"holonomicRotation":0.0,"angularVelocity":1.0814466727704475,"holonomicAngularVelocity":0.0},{"time":2.817577613500027,"pose":{"rotation":{"radians":2.0670391652738456},"translation":{"x":3.230894912,"y":4.148897087999999}},"velocity":-2.312217130101765,"acceleration":-3.000000000000041,"curvature":-0.4676236637363229,"holonomicRotation":0.0,"angularVelocity":1.084685936631654,"holonomicAngularVelocity":0.0},{"time":2.822967554325104,"pose":{"rotation":{"radians":2.0728855582860835},"translation":{"x":3.2369136640000002,"y":4.137934335999999}},"velocity":-2.328386952576996,"acceleration":-3.0,"curvature":-0.46577128117650907,"holonomicRotation":0.0,"angularVelocity":1.087898989429441,"holonomicAngularVelocity":0.0},{"time":2.8283236605289246,"pose":{"rotation":{"radians":2.078712460812497},"translation":{"x":3.2430000000000003,"y":4.127}},"velocity":-2.3444552711884588,"acceleration":-3.000000000000021,"curvature":-0.46395436448481275,"holonomicRotation":0.0,"angularVelocity":1.0910892923568585,"holonomicAngularVelocity":0.0},{"time":2.833646581234512,"pose":{"rotation":{"radians":2.084520242598428},"translation":{"x":3.249153536,"y":4.116094464}},"velocity":-2.360424033305221,"acceleration":-3.0,"curvature":-0.4621730162899535,"holonomicRotation":0.0,"angularVelocity":1.0942602211565104,"holonomicAngularVelocity":0.0},{"time":2.838936942481669,"pose":{"rotation":{"radians":2.0903092744667395},"translation":{"x":3.2553738880000003,"y":4.105218111999999}},"velocity":-2.376295117046691,"acceleration":-2.999999999999937,"curvature":-0.46042732956063537,"holonomicRotation":0.0,"angularVelocity":1.0974150691660196,"holonomicAngularVelocity":0.0},{"time":2.8441953482875366,"pose":{"rotation":{"radians":2.096079928237889},"translation":{"x":3.2616606720000005,"y":4.094371327999999}},"velocity":-2.392070334464294,"acceleration":-3.0000000000000213,"curvature":-0.45871738814240054,"holonomicRotation":0.0,"angularVelocity":1.1005570504780544,"holonomicAngularVelocity":0.0},{"time":2.849422381646745,"pose":{"rotation":{"radians":2.1018325766544494},"translation":{"x":3.2680135040000002,"y":4.083554496}},"velocity":-2.4077514345419186,"acceleration":-2.9999999999999787,"curvature":-0.45704326726309885,"holonomicRotation":0.0,"angularVelocity":1.1036893028426855,"holonomicAngularVelocity":0.0},{"time":2.8546186054753275,"pose":{"rotation":{"radians":2.1075675933092324},"translation":{"x":3.2744320000000005,"y":4.072767999999999}},"velocity":-2.4233401060276667,"acceleration":-3.0000000000000213,"curvature":-0.4554050339602513,"holonomicRotation":0.0,"angularVelocity":1.1068148903936257,"holonomicAngularVelocity":0.0},{"time":2.859784563502238,"pose":{"rotation":{"radians":2.1132853525765656},"translation":{"x":3.2809157760000005,"y":4.062012223999999}},"velocity":-2.438837980108399,"acceleration":-3.0000000000000213,"curvature":-0.4538027475367536,"holonomicRotation":0.0,"angularVelocity":1.1099368064092427,"holonomicAngularVelocity":0.0},{"time":2.8649207811120037,"pose":{"rotation":{"radians":2.118986229547372},"translation":{"x":3.2874644480000006,"y":4.051287551999999}},"velocity":-2.454246632937696,"acceleration":-3.0000000000000218,"curvature":-0.45223646007658297,"holonomicRotation":0.0,"angularVelocity":1.113057975924393,"holonomicAngularVelocity":0.0},{"time":2.87002776614176,"pose":{"rotation":{"radians":2.1246705999676685},"translation":{"x":3.2940776320000005,"y":4.040594367999999}},"velocity":-2.469567588026965,"acceleration":-3.0000000000000435,"curvature":-0.4507062168354121,"holonomicRotation":0.0,"angularVelocity":1.1161812581885475,"holonomicAngularVelocity":0.0},{"time":2.8751060096356733,"pose":{"rotation":{"radians":2.1303388401800927},"translation":{"x":3.3007549440000004,"y":4.029933055999999}},"velocity":-2.484802318508706,"acceleration":-3.0000000000000657,"curvature":-0.4492120566748173,"holonomicRotation":0.0,"angularVelocity":1.119309449123158,"holonomicAngularVelocity":0.0},{"time":2.880155986559517,"pose":{"rotation":{"radians":2.1359913270688047},"translation":{"x":3.3074960000000004,"y":4.019303999999999}},"velocity":-2.499952249280237,"acceleration":-3.000000000000066,"curvature":-0.44775401243225865,"holonomicRotation":0.0,"angularVelocity":1.1224452836459866,"holonomicAngularVelocity":0.0},{"time":2.8851781564779557,"pose":{"rotation":{"radians":2.141628438007425},"translation":{"x":3.3143004160000005,"y":4.008707584}},"velocity":-2.5150187590355526,"acceleration":-2.999999999999978,"curvature":-0.4463321113345515,"holonomicRotation":0.0,"angularVelocity":1.1255914379109953,"holonomicAngularVelocity":0.0},{"time":2.8901729641969114,"pose":{"rotation":{"radians":2.1472505508098934},"translation":{"x":3.3211678080000007,"y":3.9981441919999994}},"velocity":-2.5300031821924205,"acceleration":-3.0000000000000444,"curvature":-0.4449463754557567,"holonomicRotation":0.0,"angularVelocity":1.1287505315403796,"holonomicAngularVelocity":0.0},{"time":2.8951408403731946,"pose":{"rotation":{"radians":2.1528580436844997},"translation":{"x":3.3280977920000003,"y":3.987614207999999}},"velocity":-2.54490681072127,"acceleration":-2.999999999999978,"curvature":-0.44359682198548334,"holonomicRotation":0.0,"angularVelocity":1.1319251296711867,"holonomicAngularVelocity":0.0},{"time":2.900082202093434,"pose":{"rotation":{"radians":2.1584512951904333},"translation":{"x":3.3350899840000006,"y":3.977118015999999}},"velocity":-2.559730895881986,"acceleration":-2.9999999999999325,"curvature":-0.44228346357140413,"holonomicRotation":0.0,"angularVelocity":1.1351177449810737,"holonomicAngularVelocity":0.0},{"time":2.904997453424183,"pose":{"rotation":{"radians":2.1640306841970087},"translation":{"x":3.3421440000000007,"y":3.9666559999999995}},"velocity":-2.574476649874234,"acceleration":-3.0000000000000453,"curvature":-0.44100630878383207,"holonomicRotation":0.0,"angularVelocity":1.1383308397188256,"holonomicAngularVelocity":0.0},{"time":2.9098869859349623,"pose":{"rotation":{"radians":2.1695965898458365},"translation":{"x":3.3492594560000004,"y":3.956228543999999}},"velocity":-2.589145247406572,"acceleration":-3.0000000000000453,"curvature":-0.43976536240568537,"holonomicRotation":0.0,"angularVelocity":1.1415668276352418,"holonomicAngularVelocity":0.0},{"time":2.9147511791958403,"pose":{"rotation":{"radians":2.175149391515662},"translation":{"x":3.356435968000001,"y":3.9458360319999994}},"velocity":-2.603737827189206,"acceleration":-2.9999999999999543,"curvature":-0.43856062556178693,"holonomicRotation":0.0,"angularVelocity":1.1448280756029832,"holonomicAngularVelocity":0.0},{"time":2.919590401251085,"pose":{"rotation":{"radians":2.180689468788583},"translation":{"x":3.3636731520000005,"y":3.9354788479999994}},"velocity":-2.6182554933549405,"acceleration":-3.0000000000000457,"curvature":-0.43739209639321713,"holonomicRotation":0.0,"angularVelocity":1.145850588652444,"holonomicAngularVelocity":0.0},{"time":2.9244145316277996,"pose":{"rotation":{"radians":2.1862172014204777},"translation":{"x":3.3709706240000004,"y":3.925157375999999}},"velocity":-2.622334232261645,"acceleration":-0.8454868729070896,"curvature":-0.4362597700073285,"holonomicRotation":0.0,"angularVelocity":1.1445003863930865,"holonomicAngularVelocity":0.0},{"time":2.9292338990626856,"pose":{"rotation":{"radians":2.1917329693118752},"translation":{"x":3.3783280000000007,"y":3.914871999999999}},"velocity":-2.625634845989314,"acceleration":-0.6848645122545891,"curvature":-0.43516363895714666,"holonomicRotation":0.0,"angularVelocity":1.1430465952170605,"holonomicAngularVelocity":0.0},{"time":2.934049261090149,"pose":{"rotation":{"radians":2.1972371524821046},"translation":{"x":3.3857448960000003,"y":3.9046231039999992}},"velocity":-2.6288383813504206,"acceleration":-0.6652740422913254,"curvature":-0.4341036934661007,"holonomicRotation":0.0,"angularVelocity":1.141638532462789,"holonomicAngularVelocity":0.0},{"time":2.9388607477448287,"pose":{"rotation":{"radians":2.2027301310455174},"translation":{"x":3.3932209280000003,"y":3.894411071999999}},"velocity":-2.6319437458571184,"acceleration":-0.6454064470235114,"curvature":-0.4330799216330578,"holonomicRotation":0.0,"angularVelocity":1.1402763514325127,"holonomicAngularVelocity":0.0},{"time":2.9436684894267646,"pose":{"rotation":{"radians":2.2082122851892256},"translation":{"x":3.4007557120000005,"y":3.8842362879999994}},"velocity":-2.6349498803219897,"acceleration":-0.6252695472733159,"curvature":-0.4320923098070697,"holonomicRotation":0.0,"angularVelocity":1.138960198162488,"holonomicAngularVelocity":0.0},{"time":2.9484726168868667,"pose":{"rotation":{"radians":2.213683995153181},"translation":{"x":3.4083488640000006,"y":3.874099135999999}},"velocity":-2.6378557595292262,"acceleration":-0.6048713801558966,"curvature":-0.4311408427216499,"holonomicRotation":0.0,"angularVelocity":1.1376902117009824,"holonomicAngularVelocity":0.0},{"time":2.953273261212499,"pose":{"rotation":{"radians":2.219145641212311},"translation":{"x":3.4160000000000004,"y":3.863999999999999}},"velocity":-2.640660392350118,"acceleration":-0.584220081857935,"curvature":-0.4302255037988389,"holonomicRotation":0.0,"angularVelocity":1.1364665242199663,"holonomicAngularVelocity":0.0},{"time":2.9580705538132235,"pose":{"rotation":{"radians":2.224597603659922},"translation":{"x":3.4237087360000005,"y":3.853939263999999}},"velocity":-2.6433628223610883,"acceleration":-0.5633239904028693,"curvature":-0.4293462752752821,"holonomicRotation":0.0,"angularVelocity":1.135289261297001,"holonomicAngularVelocity":0.0},{"time":2.9628646264067062,"pose":{"rotation":{"radians":2.2300402627931817},"translation":{"x":3.4314746880000007,"y":3.8439173119999994}},"velocity":-2.6459621279004737,"acceleration":-0.5421915268698363,"curvature":-0.4285031384986032,"holonomicRotation":0.0,"angularVelocity":1.1341585420547766,"holonomicAngularVelocity":0.0},{"time":2.967655611005099,"pose":{"rotation":{"radians":2.235473998900302},"translation":{"x":3.4392974720000007,"y":3.8339345279999995}},"velocity":-2.648457422337088,"acceleration":-0.5208312373726626,"curvature":-0.42769607414071226,"holonomicRotation":0.0,"angularVelocity":1.133074479392834,"holonomicAngularVelocity":0.0},{"time":2.9724436399012846,"pose":{"rotation":{"radians":2.240899192249165},"translation":{"x":3.4471767040000008,"y":3.823991295999999}},"velocity":-2.6508478547544363,"acceleration":-0.49925187779313374,"curvature":-0.42692506226405785,"holonomicRotation":0.0,"angularVelocity":1.1320371801254954,"holonomicAngularVelocity":0.0},{"time":2.97722884565546,"pose":{"rotation":{"radians":2.246316223077442},"translation":{"x":3.4551120000000006,"y":3.814087999999999}},"velocity":-2.653132609673996,"acceleration":-0.47746221101694586,"curvature":-0.4261900826856946,"holonomicRotation":0.0,"angularVelocity":1.1310467451481108,"holonomicAngularVelocity":0.0},{"time":2.9820113610819488,"pose":{"rotation":{"radians":2.2517254715841926},"translation":{"x":3.463102976000001,"y":3.804225023999999}},"velocity":-2.655310907833249,"acceleration":-0.4554712248680483,"curvature":-0.42549111498766573,"holonomicRotation":0.0,"angularVelocity":1.1301032696261668,"holonomicAngularVelocity":0.0},{"time":2.9867913192359405,"pose":{"rotation":{"radians":2.257127317922695},"translation":{"x":3.4711492480000006,"y":3.794402751999999}},"velocity":-2.657382006198557,"acceleration":-0.4332879700166909,"curvature":-0.42482813876175346,"holonomicRotation":0.0,"angularVelocity":1.1292068432180316,"holonomicAngularVelocity":0.0},{"time":2.991568853400548,"pose":{"rotation":{"radians":2.2625221421950776},"translation":{"x":3.4792504320000006,"y":3.784621567999999}},"velocity":-2.6593451982965712,"acceleration":-0.41092162407919103,"curvature":-0.424201133738781,"holonomicRotation":0.0,"angularVelocity":1.1283575500272023,"holonomicAngularVelocity":0.0},{"time":2.9963440970740116,"pose":{"rotation":{"radians":2.26791032444725},"translation":{"x":3.487406144000001,"y":3.774881855999999}},"velocity":-2.6611998143698017,"acceleration":-0.38838145235114474,"curvature":-0.42361007996169614,"holonomicRotation":0.0,"angularVelocity":1.1275554689254084,"holonomicAngularVelocity":0.0},{"time":3.001117183957077,"pose":{"rotation":{"radians":2.2732922446659067},"translation":{"x":3.495616000000001,"y":3.765183999999999}},"velocity":-2.6629452216557663,"acceleration":-0.3656768311000486,"curvature":-0.42305495790658737,"holonomicRotation":0.0,"angularVelocity":1.1268006736114815,"holonomicAngularVelocity":0.0},{"time":3.0058882479402897,"pose":{"rotation":{"radians":2.2786682827760343},"translation":{"x":3.5038796160000008,"y":3.755528383999999}},"velocity":-2.6645808247919645,"acceleration":-0.34281727135773626,"curvature":-0.42253574855162407,"holonomicRotation":0.0,"angularVelocity":1.1260932327968134,"holonomicAngularVelocity":0.0},{"time":3.010657423091539,"pose":{"rotation":{"radians":2.2840388186398783},"translation":{"x":3.512196608000001,"y":3.7459153919999992}},"velocity":-2.6661060656923015,"acceleration":-0.3198123054754257,"curvature":-0.4220524336016502,"holonomicRotation":0.0,"angularVelocity":1.1254332101236695,"holonomicAngularVelocity":0.0},{"time":3.0154248436438675,"pose":{"rotation":{"radians":2.2894042320560954},"translation":{"x":3.5205665920000007,"y":3.736345407999999}},"velocity":-2.6675204238998145,"acceleration":-0.29667158413832084,"curvature":-0.4216049955488846,"holonomicRotation":0.0,"angularVelocity":1.1248206645718342,"holonomicAngularVelocity":0.0},{"time":3.0201906439832062,"pose":{"rotation":{"radians":2.294764902761007},"translation":{"x":3.5289891840000007,"y":3.7268188159999993}},"velocity":-2.6688234168146447,"acceleration":-0.27340484746599136,"curvature":-0.4211934177613658,"holonomicRotation":0.0,"angularVelocity":1.1242556502653611,"holonomicAngularVelocity":0.0},{"time":3.0249549586362185,"pose":{"rotation":{"radians":2.300121210429298},"translation":{"x":3.5374640000000004,"y":3.717335999999999}},"velocity":-2.6700145997957936,"acceleration":-0.2500218956772268,"curvature":-0.4208176845991983,"holonomicRotation":0.0,"angularVelocity":1.123738216844328,"holonomicAngularVelocity":0.0},{"time":3.029717922258233,"pose":{"rotation":{"radians":2.3054735346767954},"translation":{"x":3.5459906560000007,"y":3.707897343999999}},"velocity":-2.671093566389595,"acceleration":-0.22653261276539288,"curvature":-0.4204777814786742,"holonomicRotation":0.0,"angularVelocity":1.1232684092818601,"holonomicAngularVelocity":0.0},{"time":3.034479669621233,"pose":{"rotation":{"radians":2.310822255062634},"translation":{"x":3.5545687680000007,"y":3.6985032319999993}},"velocity":-2.6720599484322793,"acceleration":-0.20294693712507567,"curvature":-0.42017369496416096,"holonomicRotation":0.0,"angularVelocity":1.1228462681895641,"holonomicAngularVelocity":0.0},{"time":3.0392403356020856,"pose":{"rotation":{"radians":2.3161677510933316},"translation":{"x":3.563197952000001,"y":3.689154047999999}},"velocity":-2.672913416024821,"acceleration":-0.17927483170934566,"curvature":-0.4199054128880666,"holonomicRotation":0.0,"angularVelocity":1.1224718297169374,"holonomicAngularVelocity":0.0},{"time":3.044000055170769,"pose":{"rotation":{"radians":2.321510402226531},"translation":{"x":3.571877824000001,"y":3.679850175999999}},"velocity":-2.6736536778913673,"acceleration":-0.15552636155641372,"curvature":-0.4196729243382383,"holonomicRotation":0.0,"angularVelocity":1.122145125703422,"holonomicAngularVelocity":0.0},{"time":3.048758963378458,"pose":{"rotation":{"radians":2.3268505878754597},"translation":{"x":3.5806080000000007,"y":3.670591999999999}},"velocity":-2.6742804814591006,"acceleration":-0.13171163224381718,"curvature":-0.41947621972129306,"holonomicRotation":0.0,"angularVelocity":1.1218661837351616,"holonomicAngularVelocity":0.0},{"time":3.053517195345991,"pose":{"rotation":{"radians":2.3321886874142024},"translation":{"x":3.5893880960000004,"y":3.661379903999999}},"velocity":-2.674793612605643,"acceleration":-0.10784071689727757,"curvature":-0.419315290918276,"holonomicRotation":0.0,"angularVelocity":1.1216350272072997,"holonomicAngularVelocity":0.0},{"time":3.0582748862519926,"pose":{"rotation":{"radians":2.337525080182999},"translation":{"x":3.598217728000001,"y":3.6522142719999993}},"velocity":-2.6751928965083205,"acceleration":-0.08392388462520017,"curvature":-0.4191901310828717,"holonomicRotation":0.0,"angularVelocity":1.1214516752368215,"holonomicAngularVelocity":0.0},{"time":3.06303217132131,"pose":{"rotation":{"radians":2.342860145493564},"translation":{"x":3.607096512000001,"y":3.6430954879999993}},"velocity":-2.6754781966265213,"acceleration":-0.05997120501374331,"curvature":-0.4191007350133541,"holonomicRotation":0.0,"angularVelocity":1.1213161429216323,"holonomicAngularVelocity":0.0},{"time":3.067789185813631,"pose":{"rotation":{"radians":2.348194262635916},"translation":{"x":3.616024064000001,"y":3.6340239359999993}},"velocity":-2.6756494156563497,"acceleration":-0.03599295947170036,"curvature":-0.4190470988943057,"holonomicRotation":0.0,"angularVelocity":1.121228441093887,"holonomicAngularVelocity":0.0},{"time":3.072546065011709,"pose":{"rotation":{"radians":2.353527810883649},"translation":{"x":3.625000000000001,"y":3.624999999999999}},"velocity":-2.675706495129876,"acceleration":-0.011999353178753079,"curvature":-0.41902922045158014,"holonomicRotation":0.0,"angularVelocity":1.1211885766455594,"holonomicAngularVelocity":0.0},{"time":3.0773029442097872,"pose":{"rotation":{"radians":2.358861169501017},"translation":{"x":3.634023936000001,"y":3.616024063999999}},"velocity":-2.67564941565635,"acceleration":0.011999353178659161,"curvature":-0.4190470988943055,"holonomicRotation":0.0,"angularVelocity":1.1211965522473806,"holonomicAngularVelocity":0.0},{"time":3.0820599587021085,"pose":{"rotation":{"radians":2.3641947177487985},"translation":{"x":3.643095488000001,"y":3.607096511999999}},"velocity":-2.675478196626521,"acceleration":0.03599295947188707,"curvature":-0.41910073501335415,"holonomicRotation":0.0,"angularVelocity":1.1212523665345682,"holonomicAngularVelocity":0.0},{"time":3.0868172437714714,"pose":{"rotation":{"radians":2.369528834891101},"translation":{"x":3.652214272000001,"y":3.598217727999999}},"velocity":-2.675192896457028,"acceleration":0.059971215794916974,"curvature":-0.4191901310989462,"holonomicRotation":0.0,"angularVelocity":1.1213560140984302,"holonomicAngularVelocity":0.0},{"time":3.0915749346774724,"pose":{"rotation":{"radians":2.374863900201767},"translation":{"x":3.661379904000001,"y":3.5893880959999995}},"velocity":-2.674793612656831,"acceleration":0.08392386308529144,"curvature":-0.4193152909022269,"holonomicRotation":0.0,"angularVelocity":1.121507485349945,"holonomicAngularVelocity":0.0},{"time":3.096333166645051,"pose":{"rotation":{"radians":2.3802002929704376},"translation":{"x":3.670592000000001,"y":3.580607999999999}},"velocity":-2.674280481356777,"acceleration":0.10784074915852378,"curvature":-0.4194762197533931,"holonomicRotation":0.0,"angularVelocity":1.1217067667098233,"holonomicAngularVelocity":0.0},{"time":3.101092074852831,"pose":{"rotation":{"radians":2.3855383925092557},"translation":{"x":3.679850176000001,"y":3.5718778239999995}},"velocity":-2.6736536778913917,"acceleration":0.13171161073470328,"curvature":-0.4196729243382305,"holonomicRotation":0.0,"angularVelocity":1.121953840313771,"holonomicAngularVelocity":0.0},{"time":3.1058517944215147,"pose":{"rotation":{"radians":2.3908785781581567},"translation":{"x":3.689154048000001,"y":3.563197951999999}},"velocity":-2.672913416024821,"acceleration":0.15552636156154168,"curvature":-0.4199054128880666,"holonomicRotation":0.0,"angularVelocity":1.1222486842580777,"holonomicAngularVelocity":0.0},{"time":3.1106124604023675,"pose":{"rotation":{"radians":2.3962212292913607},"translation":{"x":3.698503232000001,"y":3.5545687679999993}},"velocity":-2.672059948432254,"acceleration":0.17927483171467115,"curvature":-0.42017369496416906,"holonomicRotation":0.0,"angularVelocity":1.1225912723143032,"holonomicAngularVelocity":0.0},{"time":3.1153742077653668,"pose":{"rotation":{"radians":2.40156672532203},"translation":{"x":3.707897344000001,"y":3.545990655999999}},"velocity":-2.671093566389572,"acceleration":0.20294693712460463,"curvature":-0.42047778147868153,"holonomicRotation":0.0,"angularVelocity":1.1229815741706488,"holonomicAngularVelocity":0.0},{"time":3.1201371713873365,"pose":{"rotation":{"radians":2.4069154457079467},"translation":{"x":3.717336000000001,"y":3.5374639999999995}},"velocity":-2.670014599846641,"acceleration":0.22653260208714474,"curvature":-0.4208176845831703,"holonomicRotation":0.0,"angularVelocity":1.123419555016309,"holonomicAngularVelocity":0.0},{"time":3.1249014860403035,"pose":{"rotation":{"radians":2.4122677699553403},"translation":{"x":3.726818816000001,"y":3.528989183999999}},"velocity":-2.6688234168146687,"acceleration":0.2500219063471021,"curvature":-0.4211934177613582,"holonomicRotation":0.0,"angularVelocity":1.1239051758329424,"holonomicAngularVelocity":0.0},{"time":3.1296672863796418,"pose":{"rotation":{"radians":2.4176240776237092},"translation":{"x":3.736345408000001,"y":3.5205665919999993}},"velocity":-2.6675204238998145,"acceleration":0.27340484747103594,"curvature":-0.42160499554888453,"holonomicRotation":0.0,"angularVelocity":1.1244383930403559,"holonomicAngularVelocity":0.0},{"time":3.1344347069320158,"pose":{"rotation":{"radians":2.4229847483285685},"translation":{"x":3.745915392000001,"y":3.512196607999999}},"velocity":-2.666106065641778,"acceleration":0.2966715947331795,"curvature":-0.42205243361764627,"holonomicRotation":0.0,"angularVelocity":1.1250191586770815,"holonomicAngularVelocity":0.0},{"time":3.13920388208331,"pose":{"rotation":{"radians":2.428350161744861},"translation":{"x":3.755528384000001,"y":3.5038796159999994}},"velocity":-2.6645808247919636,"acceleration":0.31981229487879587,"curvature":-0.4225357485516243,"holonomicRotation":0.0,"angularVelocity":1.1256474200811772,"holonomicAngularVelocity":0.0},{"time":3.143974946066523,"pose":{"rotation":{"radians":2.4337206976086065},"translation":{"x":3.765184000000001,"y":3.495615999999999}},"velocity":-2.6629452216557663,"acceleration":0.3428172713575581,"curvature":-0.4230549579065874,"holonomicRotation":0.0,"angularVelocity":1.1263231200018886,"holonomicAngularVelocity":0.0},{"time":3.1487480329496336,"pose":{"rotation":{"radians":2.439096735718832},"translation":{"x":3.7748818560000013,"y":3.4874061439999995}},"velocity":-2.661199814319626,"acceleration":0.3656768416088413,"curvature":-0.42361007997767014,"holonomicRotation":0.0,"angularVelocity":1.1270461962946063,"holonomicAngularVelocity":0.0},{"time":3.153523276623142,"pose":{"rotation":{"radians":2.4444786559374396},"translation":{"x":3.7846215680000013,"y":3.4792504319999993}},"velocity":-2.659345198296571,"acceleration":0.3883814418400827,"curvature":-0.42420113373878104,"holonomicRotation":0.0,"angularVelocity":1.1278165820431203,"holonomicAngularVelocity":0.0},{"time":3.1583008107877943,"pose":{"rotation":{"radians":2.449866838189612},"translation":{"x":3.794402752000001,"y":3.4711492479999992}},"velocity":-2.6573820061486866,"acceleration":0.4109216345137485,"curvature":-0.42482813877769865,"holonomicRotation":0.0,"angularVelocity":1.1286342052597576,"holonomicAngularVelocity":0.0},{"time":3.163080768941831,"pose":{"rotation":{"radians":2.455261662461968},"translation":{"x":3.8042250240000013,"y":3.463102975999999}},"velocity":-2.6553109078332495,"acceleration":0.4332879595793174,"curvature":-0.4254911149876656,"holonomicRotation":0.0,"angularVelocity":1.1294989888871036,"holonomicAngularVelocity":0.0},{"time":3.1678632843683197,"pose":{"rotation":{"radians":2.4606635088005238},"translation":{"x":3.8140880000000013,"y":3.4551119999999993}},"velocity":-2.6531326096739956,"acceleration":0.4554712248682446,"curvature":-0.42619008268569475,"holonomicRotation":0.0,"angularVelocity":1.1304108505629107,"holonomicAngularVelocity":0.0},{"time":3.172648490122495,"pose":{"rotation":{"radians":2.46607275730722},"translation":{"x":3.8239912960000013,"y":3.447176703999999}},"velocity":-2.650847854754409,"acceleration":0.4774622110225031,"curvature":-0.4269250622640667,"holonomicRotation":0.0,"angularVelocity":1.1313697026092349,"holonomicAngularVelocity":0.0},{"time":3.1774365190186358,"pose":{"rotation":{"radians":2.471489788135531},"translation":{"x":3.8339345280000012,"y":3.4392974719999994}},"velocity":-2.6484574223862847,"acceleration":0.49925186751720285,"curvature":-0.4276960741248228,"holonomicRotation":0.0,"angularVelocity":1.1323754517286329,"holonomicAngularVelocity":0.0},{"time":3.1822275036170287,"pose":{"rotation":{"radians":2.476914981484361},"translation":{"x":3.843917312000001,"y":3.431474687999999}},"velocity":-2.6459621278514356,"acceleration":0.5208312578767472,"curvature":-0.4285031385144863,"holonomicRotation":0.0,"angularVelocity":1.13342799909027,"holonomicAngularVelocity":0.0},{"time":3.1870215762105563,"pose":{"rotation":{"radians":2.4823487175915364},"translation":{"x":3.853939264000001,"y":3.423708735999999}},"velocity":-2.643362822361095,"acceleration":0.5421915166345206,"curvature":-0.42934627527527985,"holonomicRotation":0.0,"angularVelocity":1.1345272398917918,"holonomicAngularVelocity":0.0},{"time":3.1918188688112803,"pose":{"rotation":{"radians":2.4877913767247897},"translation":{"x":3.864000000000001,"y":3.415999999999999}},"velocity":-2.6406603923501453,"acceleration":0.5633239903985849,"curvature":-0.43022550379883,"holonomicRotation":0.0,"angularVelocity":1.1356730633904046,"holonomicAngularVelocity":0.0},{"time":3.196619513136957,"pose":{"rotation":{"radians":2.4932433391723787},"translation":{"x":3.874099136000001,"y":3.4083488639999993}},"velocity":-2.6378557594807597,"acceleration":0.5842200919540596,"curvature":-0.43114084273749304,"holonomicRotation":0.0,"angularVelocity":1.1368653526407893,"holonomicAngularVelocity":0.0},{"time":3.2014236405971026,"pose":{"rotation":{"radians":2.4987049852314884},"translation":{"x":3.884236288000001,"y":3.400755711999999}},"velocity":-2.6349498803219897,"acceleration":0.6048713700618353,"curvature":-0.43209230980706964,"holonomicRotation":0.0,"angularVelocity":1.1381039843727592,"holonomicAngularVelocity":0.0},{"time":3.2062313822789954,"pose":{"rotation":{"radians":2.5041766951954854},"translation":{"x":3.8944110720000014,"y":3.393220927999999}},"velocity":-2.6319437459051516,"acceleration":0.6252695372882013,"curvature":-0.4330799216172504,"holonomicRotation":0.0,"angularVelocity":1.1393888286909821,"holonomicAngularVelocity":0.0},{"time":3.2110428689336312,"pose":{"rotation":{"radians":2.509658849339173},"translation":{"x":3.9046231040000015,"y":3.385744895999999}},"velocity":-2.6288383813504206,"acceleration":0.6454064570124066,"curvature":-0.4341036934661007,"holonomicRotation":0.0,"angularVelocity":1.1407197490207739,"holonomicAngularVelocity":0.0},{"time":3.2158582309610946,"pose":{"rotation":{"radians":2.515151827902585},"translation":{"x":3.9148720000000012,"y":3.3783279999999993}},"velocity":-2.625634845989314,"acceleration":0.6652740422913407,"curvature":-0.43516363895714666,"holonomicRotation":0.0,"angularVelocity":1.1413686790480242,"holonomicAngularVelocity":0.0},{"time":3.220680672010397,"pose":{"rotation":{"radians":2.5206560110728145},"translation":{"x":3.9251573760000014,"y":3.370970623999999}},"velocity":-2.618989404766512,"acceleration":1.3780243563087686,"curvature":-0.4362597700073408,"holonomicRotation":0.0,"angularVelocity":1.1396328812896521,"holonomicAngularVelocity":0.0},{"time":3.2255206235262626,"pose":{"rotation":{"radians":2.5261717789641427},"translation":{"x":3.9354788480000007,"y":3.3636731519999987}},"velocity":-2.604469550218915,"acceleration":3.0,"curvature":-0.437392096408939,"holonomicRotation":0.0,"angularVelocity":1.1362290451451276,"holonomicAngularVelocity":0.0},{"time":3.2303856044520742,"pose":{"rotation":{"radians":2.531699511596127},"translation":{"x":3.945836032000001,"y":3.356435967999999}},"velocity":-2.5898746074414802,"acceleration":2.9999999999999085,"curvature":-0.4385606255617841,"holonomicRotation":0.0,"angularVelocity":1.1328524486334637,"holonomicAngularVelocity":0.0},{"time":3.235275982964838,"pose":{"rotation":{"radians":2.537239588869056},"translation":{"x":3.956228544000001,"y":3.349259455999999}},"velocity":-2.5752034719031878,"acceleration":3.0000000000000453,"curvature":-0.4397653623900097,"holonomicRotation":0.0,"angularVelocity":1.1295007542704276,"holonomicAngularVelocity":0.0},{"time":3.240192138752052,"pose":{"rotation":{"radians":2.5427923905388248},"translation":{"x":3.9666560000000013,"y":3.342143999999999}},"velocity":-2.5604550045415473,"acceleration":3.0,"curvature":-0.4410063087994853,"holonomicRotation":0.0,"angularVelocity":1.1261715790987796,"holonomicAngularVelocity":0.0},{"time":3.2451344634849657,"pose":{"rotation":{"radians":2.5483582961877094},"translation":{"x":3.977118016000001,"y":3.3350899839999992}},"velocity":-2.5456280303428054,"acceleration":3.000000000000045,"curvature":-0.4422834635714009,"holonomicRotation":0.0,"angularVelocity":1.1228624931603801,"holonomicAngularVelocity":0.0},{"time":3.2501033613157793,"pose":{"rotation":{"radians":2.553937685194276},"translation":{"x":3.9876142080000014,"y":3.328097791999999}},"velocity":-2.5307213368503647,"acceleration":3.0,"curvature":-0.4435968219542736,"holonomicRotation":0.0,"angularVelocity":1.1195710174568347,"holonomicAngularVelocity":0.0},{"time":3.2550992494002617,"pose":{"rotation":{"radians":2.5595309367001207},"translation":{"x":3.9981441920000007,"y":3.321167807999999}},"velocity":-2.5157336725969164,"acceleration":3.0000000000000444,"curvature":-0.4449463754713487,"holonomicRotation":0.0,"angularVelocity":1.1162946221424517,"holonomicAngularVelocity":0.0},{"time":3.260122558447441,"pose":{"rotation":{"radians":2.565138429574846},"translation":{"x":4.0087075840000015,"y":3.314300415999999}},"velocity":-2.500663745455379,"acceleration":3.0000000000000884,"curvature":-0.44633211131899053,"holonomicRotation":0.0,"angularVelocity":1.1130307242685513,"holonomicAngularVelocity":0.0},{"time":3.2651737332980844,"pose":{"rotation":{"radians":2.570760542377265},"translation":{"x":4.019304000000001,"y":3.307495999999999}},"velocity":-2.4855102209034485,"acceleration":3.000000000000044,"curvature":-0.4477540124322387,"holonomicRotation":0.0,"angularVelocity":1.109776686086939,"holonomicAngularVelocity":0.0},{"time":3.2702532335338788,"pose":{"rotation":{"radians":2.5763976533159223},"translation":{"x":4.029933056000002,"y":3.300754943999999}},"velocity":-2.470271720196066,"acceleration":3.0000000000000435,"curvature":-0.44921205667481756,"holonomicRotation":0.0,"angularVelocity":1.1065298124301608,"holonomicAngularVelocity":0.0},{"time":3.2753615341193125,"pose":{"rotation":{"radians":2.5820501402045597},"translation":{"x":4.040594368000001,"y":3.294077631999999}},"velocity":-2.4549468184397636,"acceleration":2.999999999999913,"curvature":-0.4507062168508919,"holonomicRotation":0.0,"angularVelocity":1.103287348927679,"holonomicAngularVelocity":0.0},{"time":3.2804991260784773,"pose":{"rotation":{"radians":2.5877183804170585},"translation":{"x":4.051287552000002,"y":3.2874644479999993}},"velocity":-2.43953404256227,"acceleration":3.000000000000043,"curvature":-0.45223646007658325,"holonomicRotation":0.0,"angularVelocity":1.1000464792593154,"holonomicAngularVelocity":0.0},{"time":3.2856665172091235,"pose":{"rotation":{"radians":2.5934027508372814},"translation":{"x":4.062012224000001,"y":3.280915775999999}},"velocity":-2.4240318691703315,"acceleration":3.000000000000043,"curvature":-0.4538027475367534,"holonomicRotation":0.0,"angularVelocity":1.0968043231891658,"holonomicAngularVelocity":0.0},{"time":3.290864232836559,"pose":{"rotation":{"radians":2.5991036278081605},"translation":{"x":4.072768000000002,"y":3.274431999999999}},"velocity":-2.4084387222880252,"acceleration":3.0,"curvature":-0.4554050339448751,"holonomicRotation":0.0,"angularVelocity":1.0935579336272918,"holonomicAngularVelocity":0.0},{"time":3.2960928166101318,"pose":{"rotation":{"radians":2.6048213870753862},"translation":{"x":4.0835544960000005,"y":3.268013503999999}},"velocity":-2.392752970967306,"acceleration":3.0000000000000426,"curvature":-0.45704326729385686,"holonomicRotation":0.0,"angularVelocity":1.0903042944970165,"holonomicAngularVelocity":0.0},{"time":3.3013528313453175,"pose":{"rotation":{"radians":2.6105564037302766},"translation":{"x":4.094371328000001,"y":3.261660671999999}},"velocity":-2.3769729267617494,"acceleration":2.999999999999958,"curvature":-0.45871738815772506,"holonomicRotation":0.0,"angularVelocity":1.087040317564224,"holonomicAngularVelocity":0.0},{"time":3.30664485991464,"pose":{"rotation":{"radians":2.616309052146832},"translation":{"x":4.105218112000001,"y":3.2553738879999994}},"velocity":-2.3610968410537816,"acceleration":3.0000000000000417,"curvature":-0.4604273295453317,"holonomicRotation":0.0,"angularVelocity":1.0837628401271546,"holonomicAngularVelocity":0.0},{"time":3.31196950619098,"pose":{"rotation":{"radians":2.622079705917951},"translation":{"x":4.1160944640000015,"y":3.2491535359999992}},"velocity":-2.345122902224761,"acceleration":2.9999999999999165,"curvature":-0.4621730162746951,"holonomicRotation":0.0,"angularVelocity":1.0804686217425308,"holonomicAngularVelocity":0.0},{"time":3.3173273960470873,"pose":{"rotation":{"radians":2.627868737786227},"translation":{"x":4.127000000000001,"y":3.2429999999999994}},"velocity":-2.3290492326564407,"acceleration":2.9999999999999587,"curvature":-0.4639543644847909,"holonomicRotation":0.0,"angularVelocity":1.0771543414066895,"holonomicAngularVelocity":0.0},{"time":3.3227191784154804,"pose":{"rotation":{"radians":2.633676519572262},"translation":{"x":4.137934336000002,"y":3.2369136639999994}},"velocity":-2.312873885551261,"acceleration":2.9999999999999587,"curvature":-0.4657712811612695,"holonomicRotation":0.0,"angularVelocity":1.0738165942689333,"holonomicAngularVelocity":0.0},{"time":3.3281455264132758,"pose":{"rotation":{"radians":2.6395034220985725},"translation":{"x":4.148897088000001,"y":3.2308949119999992}},"velocity":-2.2965948415578756,"acceleration":2.999999999999959,"curvature":-0.46762366370596037,"holonomicRotation":0.0,"angularVelocity":1.0704518885397352,"holonomicAngularVelocity":0.0},{"time":3.333607138536903,"pose":{"rotation":{"radians":2.645349815110781},"translation":{"x":4.159887872000001,"y":3.224944127999999}},"velocity":-2.280210005186993,"acceleration":3.000000000000041,"curvature":-0.46951139935295344,"holonomicRotation":0.0,"angularVelocity":1.0670566418128253,"holonomicAngularVelocity":0.0},{"time":3.3391047399321145,"pose":{"rotation":{"radians":2.651216067193581},"translation":{"x":4.170906304000001,"y":3.2190616959999994}},"velocity":-2.2637172010013575,"acceleration":3.0000000000000404,"curvature":-0.4714343645997839,"holonomicRotation":0.0,"angularVelocity":1.0636271776952306,"holonomicAngularVelocity":0.0},{"time":3.344639083745208,"pose":{"rotation":{"radians":2.6571025456838964},"translation":{"x":4.181952000000002,"y":3.213247999999999}},"velocity":-2.2471141695620784,"acceleration":3.0,"curvature":-0.4733924247442271,"holonomicRotation":0.0,"angularVelocity":1.0601597219448258,"holonomicAngularVelocity":0.0},{"time":3.350210952561919,"pose":{"rotation":{"radians":2.663009616579334},"translation":{"x":4.193024576000001,"y":3.207503423999999}},"velocity":-2.2303985631119447,"acceleration":3.0,"curvature":-0.47538543332938343,"holonomicRotation":0.0,"angularVelocity":1.056650398648511,"holonomicAngularVelocity":0.0},{"time":3.3558211599411023,"pose":{"rotation":{"radians":2.668937644443049},"translation":{"x":4.204123648000001,"y":3.2018283519999993}},"velocity":-2.213567940974395,"acceleration":2.9999999999999605,"curvature":-0.4774132314234743,"holonomicRotation":0.0,"angularVelocity":1.0530952259318735,"holonomicAngularVelocity":0.0},{"time":3.361470552050947,"pose":{"rotation":{"radians":2.6748869923033434},"translation":{"x":4.215248832000001,"y":3.1962231679999995}},"velocity":-2.1966197646448617,"acceleration":2.9999999999999214,"curvature":-0.4794756472470108,"holonomicRotation":0.0,"angularVelocity":1.0494901118766216,"holonomicAngularVelocity":0.0},{"time":3.3671600094163034,"pose":{"rotation":{"radians":2.680858021550229},"translation":{"x":4.226399744000002,"y":3.190688255999999}},"velocity":-2.1795513925487917,"acceleration":2.999999999999961,"curvature":-0.48157249539387187,"holonomicRotation":0.0,"angularVelocity":1.0458308498079987,"holonomicAngularVelocity":0.0},{"time":3.37289044878651,"pose":{"rotation":{"radians":2.6868510918265454},"translation":{"x":4.237576000000001,"y":3.185223999999999}},"velocity":-2.1623600744381717,"acceleration":3.0,"curvature":-0.4837035763394283,"holonomicRotation":0.0,"angularVelocity":1.0421131136385364,"holonomicAngularVelocity":0.0},{"time":3.378662825134093,"pose":{"rotation":{"radians":2.692866560915218},"translation":{"x":4.2487772160000015,"y":3.179830783999999}},"velocity":-2.1450429453954247,"acceleration":3.0,"curvature":-0.4858686756511655,"holonomicRotation":0.0,"angularVelocity":1.0383324526569788,"holonomicAngularVelocity":0.0},{"time":3.3844781337957577,"pose":{"rotation":{"radians":2.698904784620842},"translation":{"x":4.260003008000001,"y":3.174508991999999}},"velocity":-2.1275970194104294,"acceleration":3.000000000000038,"curvature":-0.48806756354488817,"holonomicRotation":0.0,"angularVelocity":1.0344842865367634,"holonomicAngularVelocity":0.0},{"time":3.390337412768339,"pose":{"rotation":{"radians":2.7049661166484125},"translation":{"x":4.271252992000002,"y":3.169259007999999}},"velocity":-2.1100191824926853,"acceleration":3.0000000000000377,"curvature":-0.49029999405552943,"holonomicRotation":0.0,"angularVelocity":1.0305638993092536,"holonomicAngularVelocity":0.0},{"time":3.3962417451736586,"pose":{"rotation":{"radians":2.7110509084748564},"translation":{"x":4.282526784000001,"y":3.164081215999999}},"velocity":-2.0923061852767266,"acceleration":3.000000000000075,"curvature":-0.49256570453850973,"holonomicRotation":0.0,"angularVelocity":1.0265664338405436,"holonomicAngularVelocity":0.0},{"time":3.4021922619078344,"pose":{"rotation":{"radians":2.7171595092181677},"translation":{"x":4.293824000000002,"y":3.158975999999999}},"velocity":-2.074454635074199,"acceleration":3.0000000000000746,"curvature":-0.4948644147448579,"holonomicRotation":0.0,"angularVelocity":1.0224868851114455,"holonomicAngularVelocity":0.0},{"time":3.408190144492236,"pose":{"rotation":{"radians":2.7232922654991567},"translation":{"x":4.305144256000001,"y":3.1539437439999993}},"velocity":-2.0564609873209942,"acceleration":2.999999999999963,"curvature":-0.49719582643303056,"holonomicRotation":0.0,"angularVelocity":1.0183200938587098,"holonomicAngularVelocity":0.0},{"time":3.4142366281452663,"pose":{"rotation":{"radians":2.729449521300226},"translation":{"x":4.316487168000002,"y":3.148984831999999}},"velocity":-2.0383215363619027,"acceleration":3.0,"curvature":-0.49955962237973184,"holonomicRotation":0.0,"angularVelocity":1.0140607391716023,"holonomicAngularVelocity":0.0},{"time":3.420333005096303,"pose":{"rotation":{"radians":2.7356316178174627},"translation":{"x":4.327852352000001,"y":3.144099647999999}},"velocity":-2.0200324055087933,"acceleration":3.0,"curvature":-0.5019554658535155,"holonomicRotation":0.0,"angularVelocity":1.0097033310569088,"holonomicAngularVelocity":0.0},{"time":3.4264806281656552,"pose":{"rotation":{"radians":2.74183889330867},"translation":{"x":4.339239424000002,"y":3.1392885759999993}},"velocity":-2.001589536300736,"acceleration":3.0,"curvature":-0.5043829997560954,"holonomicRotation":0.0,"angularVelocity":1.0052422020712786,"holonomicAngularVelocity":0.0},{"time":3.432680914637187,"pose":{"rotation":{"radians":2.7480716829347855},"translation":{"x":4.350648000000001,"y":3.1345519999999993}},"velocity":-1.9829886768861407,"acceleration":2.999999999999964,"curvature":-0.5068418460483195,"holonomicRotation":0.0,"angularVelocity":1.0006714988901686,"holonomicAngularVelocity":0.0},{"time":3.438935350453517,"pose":{"rotation":{"radians":2.754330318597825},"translation":{"x":4.362077696000002,"y":3.129890303999999}},"velocity":-1.9642253694371505,"acceleration":2.9999999999999645,"curvature":-0.5093316047891755,"holonomicRotation":0.0,"angularVelocity":0.9959851725933427,"holonomicAngularVelocity":0.0},{"time":3.445245494767346,"pose":{"rotation":{"radians":2.760615128771323},"translation":{"x":4.373528128000001,"y":3.125303871999999}},"velocity":-1.9452949364956633,"acceleration":2.999999999999965,"curvature":-0.5118518535624833,"holonomicRotation":0.0,"angularVelocity":0.9911769688340359,"holonomicAngularVelocity":0.0},{"time":3.4516129848867214,"pose":{"rotation":{"radians":2.7669264383269256},"translation":{"x":4.384998912000002,"y":3.120793087999999}},"velocity":-1.9261924661375385,"acceleration":3.000000000000035,"curvature":-0.5144021466205787,"holonomicRotation":0.0,"angularVelocity":0.9862404167759408,"holonomicAngularVelocity":0.0},{"time":3.4580395416568392,"pose":{"rotation":{"radians":2.773264568354321},"translation":{"x":4.3964896640000015,"y":3.1163583359999993}},"velocity":-1.9069127958271843,"acceleration":3.0,"curvature":-0.5169820141541447,"holonomicRotation":0.0,"angularVelocity":0.9811688175075026,"holonomicAngularVelocity":0.0},{"time":3.464526975326608,"pose":{"rotation":{"radians":2.7796298359767464},"translation":{"x":4.408000000000002,"y":3.111999999999999}},"velocity":-1.8874504948178785,"acceleration":2.999999999999966,"curvature":-0.5195909614569449,"holonomicRotation":0.0,"angularVelocity":0.9759552310949895,"holonomicAngularVelocity":0.0},{"time":3.4710771919545538,"pose":{"rotation":{"radians":2.7860225541595955},"translation":{"x":4.4195295360000015,"y":3.1077184639999995}},"velocity":-1.867799844934041,"acceleration":3.0,"curvature":-0.5222284682600655,"holonomicRotation":0.0,"angularVelocity":0.9705924628872172,"holonomicAngularVelocity":0.0},{"time":3.4776922004161537,"pose":{"rotation":{"radians":2.7924430315143596},"translation":{"x":4.431077888000002,"y":3.103514111999999}},"velocity":-1.847954819549241,"acceleration":3.0000000000000338,"curvature":-0.5248939878051837,"holonomicRotation":0.0,"angularVelocity":0.9650730483865126,"holonomicAngularVelocity":0.0},{"time":3.4843741200832428,"pose":{"rotation":{"radians":2.798891572096551},"translation":{"x":4.442644672000001,"y":3.0993873279999993}},"velocity":-1.8279090605479742,"acceleration":3.0000000000000333,"curvature":-0.527586946160825,"holonomicRotation":0.0,"angularVelocity":0.9593892367629828,"holonomicAngularVelocity":0.0},{"time":3.4911251892562345,"pose":{"rotation":{"radians":2.8053684751977617},"translation":{"x":4.454229504000002,"y":3.095338495999999}},"velocity":-1.8076558530289983,"acceleration":3.0,"curvature":-0.5303067413665304,"holonomicRotation":0.0,"angularVelocity":0.9535329728703047,"holonomicAngularVelocity":0.0},{"time":3.4979477744415766,"pose":{"rotation":{"radians":2.8118740351322016},"translation":{"x":4.465832000000002,"y":3.0913679999999997}},"velocity":-1.787188097472973,"acceleration":2.9999999999999676,"curvature":-0.533052742734141,"holonomicRotation":0.0,"angularVelocity":0.9474958775078796,"holonomicAngularVelocity":0.0},{"time":3.504844380580635,"pose":{"rotation":{"radians":2.818408541017755},"translation":{"x":4.477451776000002,"y":3.0874762239999995}},"velocity":-1.766498279055798,"acceleration":3.000000000000032,"curvature":-0.5358242899805569,"holonomicRotation":0.0,"angularVelocity":0.9412692255924409,"holonomicAngularVelocity":0.0},{"time":3.5118176623523034,"pose":{"rotation":{"radians":2.8249722765508114},"translation":{"x":4.489088448000001,"y":3.0836635519999995}},"velocity":-1.7455784337407918,"acceleration":2.999999999999968,"curvature":-0.53862069246313,"holonomicRotation":0.0,"angularVelocity":0.9348439222378784,"holonomicAngularVelocity":0.0},{"time":3.518870436690729,"pose":{"rotation":{"radians":2.831565519776004},"translation":{"x":4.500741632000002,"y":3.0799303679999994}},"velocity":-1.724420110725515,"acceleration":2.9999999999999685,"curvature":-0.5414412283907459,"holonomicRotation":0.0,"angularVelocity":0.9282104760898124,"holonomicAngularVelocity":0.0},{"time":3.526005696682038,"pose":{"rotation":{"radians":2.8381885428495615},"translation":{"x":4.512410944000001,"y":3.0762770559999995}},"velocity":-1.7030143307515877,"acceleration":3.000000000000031,"curvature":-0.5442851441519826,"holonomicRotation":0.0,"angularVelocity":0.9213589699954078,"holonomicAngularVelocity":0.0},{"time":3.533226627030828,"pose":{"rotation":{"radians":2.844841611798131},"translation":{"x":4.524096000000002,"y":3.0727039999999994}},"velocity":-1.6813515397052183,"acceleration":3.0,"curvature":-0.5471516533835759,"holonomicRotation":0.0,"angularVelocity":0.9142790279993414,"holonomicAngularVelocity":0.0},{"time":3.5405366213191094,"pose":{"rotation":{"radians":2.851524986270702},"translation":{"x":4.535796416000001,"y":3.0692115839999996}},"velocity":-1.6594215568403732,"acceleration":3.0,"curvature":-0.5500399363964437,"holonomicRotation":0.0,"angularVelocity":0.9069597788904417,"holonomicAngularVelocity":0.0},{"time":3.5479393013188334,"pose":{"rotation":{"radians":2.858238919286448},"translation":{"x":4.547511808000002,"y":3.0658001919999998}},"velocity":-1.6372135168412023,"acceleration":3.00000000000003,"curvature":-0.5529491392614659,"holonomicRotation":0.0,"angularVelocity":0.8993898149607107,"holonomicAngularVelocity":0.0},{"time":3.555438538665241,"pose":{"rotation":{"radians":2.86498365697578},"translation":{"x":4.559241792000002,"y":3.0624702079999992}},"velocity":-1.6147158048019792,"acceleration":2.9999999999999702,"curvature":-0.5558783732812413,"holonomicRotation":0.0,"angularVelocity":0.8915571460679171,"holonomicAngularVelocity":0.0},{"time":3.563038479254261,"pose":{"rotation":{"radians":2.8717594383176124},"translation":{"x":4.570985984000002,"y":3.0592220159999997}},"velocity":-1.5919159830349192,"acceleration":3.0000000000000293,"curvature":-0.5588267141256481,"holonomicRotation":0.0,"angularVelocity":0.883449147335363,"holonomicAngularVelocity":0.0},{"time":3.5707435707950577,"pose":{"rotation":{"radians":2.87856649486947},"translation":{"x":4.582744000000002,"y":3.0560559999999994}},"velocity":-1.5688007084125297,"acceleration":2.999999999999971,"curvature":-0.5617932012303778,"holonomicRotation":0.0,"angularVelocity":0.8750525005400022,"holonomicAngularVelocity":0.0},{"time":3.578558594031973,"pose":{"rotation":{"radians":2.885405050494711},"translation":{"x":4.594515456000002,"y":3.0529725439999993}},"velocity":-1.545355638701783,"acceleration":3.000000000000057,"curvature":-0.5647768371119463,"holonomicRotation":0.0,"angularVelocity":0.866353126952402,"holonomicAngularVelocity":0.0},{"time":3.586488698252195,"pose":{"rotation":{"radians":2.892275321082959},"translation":{"x":4.606299968000002,"y":3.0499720319999994}},"velocity":-1.5215653260411162,"acceleration":3.000000000000028,"curvature":-0.5677765867261405,"holonomicRotation":0.0,"angularVelocity":0.857336111143583,"holonomicAngularVelocity":0.0},{"time":3.594539441821749,"pose":{"rotation":{"radians":2.899177514266695},"translation":{"x":4.6180971520000025,"y":3.0470548479999997}},"velocity":-1.4974130953324531,"acceleration":3.0000000000000275,"curvature":-0.5707913768706009,"holonomicRotation":0.0,"angularVelocity":0.847985613554919,"holonomicAngularVelocity":0.0},{"time":3.602716838649498,"pose":{"rotation":{"radians":2.9061118291329553},"translation":{"x":4.629906624000001,"y":3.0442213759999994}},"velocity":-1.472880904849207,"acceleration":3.000000000000054,"curvature":-0.5738200956456002,"holonomicRotation":0.0,"angularVelocity":0.8382847700393182,"holonomicAngularVelocity":0.0},{"time":3.6110274116755643,"pose":{"rotation":{"radians":2.9130784559310063},"translation":{"x":4.641728000000002,"y":3.0414719999999993}},"velocity":-1.4479491857710078,"acceleration":3.0,"curvature":-0.576861591813262,"holonomicRotation":0.0,"angularVelocity":0.8282155756135112,"holonomicAngularVelocity":0.0},{"time":3.6194782547286612,"pose":{"rotation":{"radians":2.9200775757746467},"translation":{"x":4.653560896000002,"y":3.0388071039999995}},"velocity":-1.4225966566117165,"acceleration":2.999999999999974,"curvature":-0.5799146744073892,"holonomicRotation":0.0,"angularVelocity":0.8177587498553298,"holonomicAngularVelocity":0.0},{"time":3.6280771044120916,"pose":{"rotation":{"radians":2.9271093603419622},"translation":{"x":4.665404928000002,"y":3.0362270719999995}},"velocity":-1.3968001075614265,"acceleration":3.0000000000000258,"curvature":-0.5829781121894888,"holonomicRotation":0.0,"angularVelocity":0.8068935795491445,"holonomicAngularVelocity":0.0},{"time":3.6368324240818266,"pose":{"rotation":{"radians":2.934173971570372},"translation":{"x":4.6772597120000015,"y":3.0337322879999995}},"velocity":-1.37053414855222,"acceleration":3.0000000000000253,"curvature":-0.5860506332508155,"holonomicRotation":0.0,"angularVelocity":0.7955977342736981,"holonomicAngularVelocity":0.0},{"time":3.6457535025016057,"pose":{"rotation":{"radians":2.941271561348426},"translation":{"x":4.689124864000002,"y":3.0313231359999993}},"velocity":-1.3437709132928843,"acceleration":2.999999999999975,"curvature":-0.5891309246386679,"holonomicRotation":0.0,"angularVelocity":0.7838470488110904,"holonomicAngularVelocity":0.0},{"time":3.654850570439635,"pose":{"rotation":{"radians":2.9484022712044844},"translation":{"x":4.701000000000001,"y":3.0289999999999995}},"velocity":-1.316479709478796,"acceleration":2.9999999999999756,"curvature":-0.5922176320623127,"holonomicRotation":0.0,"angularVelocity":0.7716152648033164,"holonomicAngularVelocity":0.0},{"time":3.664134939366228,"pose":{"rotation":{"radians":2.955566231992309},"translation":{"x":4.712884736000002,"y":3.0267632639999995}},"velocity":-1.288626602699017,"acceleration":3.000000000000024,"curvature":-0.5953093595736683,"holonomicRotation":0.0,"angularVelocity":0.7588737220632854,"holonomicAngularVelocity":0.0},{"time":3.673619167601797,"pose":{"rotation":{"radians":2.962763563574333},"translation":{"x":4.724778688000002,"y":3.0246133119999996}},"velocity":-1.2601739179923108,"acceleration":3.0,"curvature":-0.5984046693700557,"holonomicRotation":0.0,"angularVelocity":0.7455909869329629,"holonomicAngularVelocity":0.0},{"time":3.683317260866003,"pose":{"rotation":{"radians":2.9699943745025603},"translation":{"x":4.736681472000003,"y":3.0225505279999996}},"velocity":-1.2310796381996918,"acceleration":3.0,"curvature":-0.6015020816536214,"holonomicRotation":0.0,"angularVelocity":0.731732401397394,"holonomicAngularVelocity":0.0},{"time":3.6932449163600993,"pose":{"rotation":{"radians":2.9772587616975015},"translation":{"x":4.748592704000002,"y":3.0205752959999996}},"velocity":-1.201296671717403,"acceleration":2.999999999999978,"curvature":-0.60460007456127,"holonomicRotation":0.0,"angularVelocity":0.7172595313835017,"holonomicAngularVelocity":0.0},{"time":3.703419822526085,"pose":{"rotation":{"radians":2.984556810125987},"translation":{"x":4.760512000000002,"y":3.0186879999999996}},"velocity":-1.1707719532194472,"acceleration":3.0,"curvature":-0.6076970841012796,"holonomicRotation":0.0,"angularVelocity":0.7021294852003142,"holonomicAngularVelocity":0.0},{"time":3.7138620308453802,"pose":{"rotation":{"radians":2.9918885924775687},"translation":{"x":4.772438976000002,"y":3.0168890239999997}},"velocity":-1.1394453282615602,"acceleration":3.0,"curvature":-0.6107915042418585,"holonomicRotation":0.0,"angularVelocity":0.6862940629818453,"holonomicAngularVelocity":0.0},{"time":3.7245944220466605,"pose":{"rotation":{"radians":2.999254168840606},"translation":{"x":4.784373248000002,"y":3.0151787519999997}},"velocity":-1.107248154657719,"acceleration":2.999999999999979,"curvature":-0.6138816870079442,"holonomicRotation":0.0,"angularVelocity":0.6696986828773126,"holonomicAngularVelocity":0.0},{"time":3.7356432977972824,"pose":{"rotation":{"radians":3.0066535863780723},"translation":{"x":4.796314432000002,"y":3.0135575679999995}},"velocity":-1.0741015274058545,"acceleration":3.0,"curvature":-0.6169659427695113,"holonomicRotation":0.0,"angularVelocity":0.6522810081297855,"holonomicAngularVelocity":0.0},{"time":3.7470391418173126,"pose":{"rotation":{"radians":3.0140868790039477},"translation":{"x":4.808262144000002,"y":3.0120258559999997}},"velocity":-1.039913995345763,"acceleration":2.9999999999999805,"curvature":-0.6200425403987194,"holonomicRotation":0.0,"angularVelocity":0.6339691664026881,"holonomicAngularVelocity":0.0},{"time":3.7588176137867158,"pose":{"rotation":{"radians":3.0215540670598875},"translation":{"x":4.820216000000001,"y":3.0105839999999997}},"velocity":-1.004578579437554,"acceleration":3.0000000000000187,"curvature":-0.623109707774154,"holonomicRotation":0.0,"angularVelocity":0.6146794031013395,"holonomicAngularVelocity":0.0},{"time":3.7710208694945617,"pose":{"rotation":{"radians":3.0290551569942794},"translation":{"x":4.8321756160000024,"y":3.0092323839999997}},"velocity":-0.9679688123140158,"acceleration":2.9999999999999636,"curvature":-0.6261656322069277,"holonomicRotation":0.0,"angularVelocity":0.5943129313748355,"holonomicAngularVelocity":0.0},{"time":3.783699348541738,"pose":{"rotation":{"radians":3.036590141042181},"translation":{"x":4.844140608000002,"y":3.007971392}},"velocity":-0.9299333751724882,"acceleration":2.999999999999991,"curvature":-0.6292084609699685,"holonomicRotation":0.0,"angularVelocity":0.5727516148207152,"holonomicAngularVelocity":0.0},{"time":3.7969142495050097,"pose":{"rotation":{"radians":3.0441589969085907},"translation":{"x":4.856110592000002,"y":3.006801408}},"velocity":-0.8902886722826729,"acceleration":2.999999999999983,"curvature":-0.6322363020068372,"holonomicRotation":0.0,"angularVelocity":0.549851904665754,"holonomicAngularVelocity":0.0},{"time":3.810741046286905,"pose":{"rotation":{"radians":3.051761687454542},"translation":{"x":4.868085184000002,"y":3.0057228159999996}},"velocity":-0.8488082819369874,"acceleration":2.999999999999984,"curvature":-0.6352472246674356,"holonomicRotation":0.0,"angularVelocity":0.5254360802848955,"holonomicAngularVelocity":0.0},{"time":3.8252746369917863,"pose":{"rotation":{"radians":3.05939816038698},"translation":{"x":4.880064000000003,"y":3.004736}},"velocity":-0.8052075098223431,"acceleration":3.000000000000015,"curvature":-0.6382392605344301,"holonomicRotation":0.0,"angularVelocity":0.49927915802747,"holonomicAngularVelocity":0.0},{"time":3.8406371600262545,"pose":{"rotation":{"radians":3.067068347952807},"translation":{"x":4.8920466560000015,"y":3.003841344}},"velocity":-0.759119940718938,"acceleration":3.0000000000000218,"curvature":-0.6412104045156426,"holonomicRotation":0.0,"angularVelocity":0.4710885081646451,"holonomicAngularVelocity":0.0},{"time":3.8569903899445377,"pose":{"rotation":{"radians":3.0747721666386845},"translation":{"x":4.904032768000002,"y":3.003039232}},"velocity":-0.7100602509640875,"acceleration":3.0000000000000204,"curvature":-0.6441586157880042,"holonomicRotation":0.0,"angularVelocity":0.4404704670619436,"holonomicAngularVelocity":0.0},{"time":3.874556494407223,"pose":{"rotation":{"radians":3.082509516875822},"translation":{"x":4.916021952000001,"y":3.0023300479999997}},"velocity":-0.6573619375760337,"acceleration":2.9999999999999876,"curvature":-0.6470818190817547,"holonomicRotation":0.0,"angularVelocity":0.40687199814352293,"holonomicAngularVelocity":0.0},{"time":3.8936552918455964,"pose":{"rotation":{"radians":3.0902802827517117},"translation":{"x":4.928013824000002,"y":3.001714176}},"velocity":-0.6000655452609113,"acceleration":3.0000000000000115,"curvature":-0.6499779058913984,"holonomicRotation":0.0,"angularVelocity":0.3694696536401581,"holonomicAngularVelocity":0.0},{"time":3.9147775921479706,"pose":{"rotation":{"radians":3.098084331728513},"translation":{"x":4.9400080000000015,"y":3.001192}},"velocity":-0.5366986443537898,"acceleration":3.000000000000016,"curvature":-0.6528447360474303,"holonomicRotation":0.0,"angularVelocity":0.3269313584685586,"holonomicAngularVelocity":0.0},{"time":3.938749543564584,"pose":{"rotation":{"radians":3.105921514370289},"translation":{"x":4.952004096000002,"y":3.000763904}},"velocity":-0.4647827901039487,"acceleration":3.000000000000002,"curvature":-0.6556801391027219,"holonomicRotation":0.0,"angularVelocity":0.2768026259312415,"holonomicAngularVelocity":0.0},{"time":3.9671818956098828,"pose":{"rotation":{"radians":3.113791664077829},"translation":{"x":4.964001728000001,"y":3.000430272}},"velocity":-0.3794857339680527,"acceleration":2.999999999999996,"curvature":-0.6584819160890972,"holonomicRotation":0.0,"angularVelocity":0.21329879823738962,"holonomicAngularVelocity":0.0},{"time":4.004232890837561,"pose":{"rotation":{"radians":3.1216945968333922},"translation":{"x":4.976000512000002,"y":3.000191488}},"velocity":-0.26833274828501735,"acceleration":2.9999999999999942,"curvature":-0.6612478412834537,"holonomicRotation":0.0,"angularVelocity":0.08872022710441509,"holonomicAngularVelocity":0.0},{"time":4.0936771402659,"pose":{"rotation":{"radians":3.1296301109558584},"translation":{"x":4.988000064000001,"y":3.000047936}},"velocity":0,"acceleration":3.0000000000000058,"curvature":-0.6612478412834537,"holonomicRotation":0.0,"angularVelocity":0.0,"holonomicAngularVelocity":0.0}] \ No newline at end of file diff --git a/src/main/deploy/pathplanner/generatedJSON/Test.wpilib.json b/src/main/deploy/pathplanner/generatedJSON/Test.wpilib.json deleted file mode 100644 index 70a70d3..0000000 --- a/src/main/deploy/pathplanner/generatedJSON/Test.wpilib.json +++ /dev/null @@ -1 +0,0 @@ -[{"time":0.0,"pose":{"rotation":{"radians":-0.000028313731739615378},"translation":{"x":1.9397615370208559,"y":5.000379761185433}},"velocity":0,"acceleration":3.0,"curvature":-0.004679745070533497,"holonomicRotation":0.0,"angularVelocity":0.0,"holonomicAngularVelocity":0.0},{"time":0.08942090211747945,"pose":{"rotation":{"radians":-0.000028313731739615378},"translation":{"x":1.951755683619304,"y":5.000379421586383}},"velocity":0.26826270635243843,"acceleration":3.000000000000001,"curvature":-0.004679745070533497,"holonomicRotation":0.0,"angularVelocity":-0.0015159244635251506,"holonomicAngularVelocity":0.0},{"time":0.12642951491469878,"pose":{"rotation":{"radians":-0.00008441599324005011},"translation":{"x":1.9637381703357033,"y":5.000378410072863}},"velocity":0.37928854474409646,"acceleration":3.0000000000000013,"curvature":-0.004617140198629225,"holonomicRotation":0.0,"angularVelocity":-0.0019487009913563822,"holonomicAngularVelocity":0.0},{"time":0.1548063967134798,"pose":{"rotation":{"radians":-0.00013971405093293754},"translation":{"x":1.9757090675516351,"y":5.000376737570309}},"velocity":0.4644191901404395,"acceleration":3.0,"curvature":-0.004554109054583059,"holonomicRotation":0.0,"angularVelocity":-0.002279415037066589,"holonomicAngularVelocity":0.0},{"time":0.17871188921033318,"pose":{"rotation":{"radians":-0.00019420458999874768},"translation":{"x":1.9876684456486813,"y":5.00037441500416}},"velocity":0.5361356676309996,"acceleration":2.9999999999999987,"curvature":-0.0044906549570078525,"holonomicRotation":0.0,"angularVelocity":-0.0025505867145312346,"holonomicAngularVelocity":0.0},{"time":0.19975791806502863,"pose":{"rotation":{"radians":-0.0002478843115891749},"translation":{"x":1.9996163750084237,"y":5.000371453299855}},"velocity":0.599273754195086,"acceleration":3.0000000000000013,"curvature":-0.004426775925836999,"holonomicRotation":0.0,"angularVelocity":-0.0027804277360002623,"holonomicAngularVelocity":0.0},{"time":0.21877140320185978,"pose":{"rotation":{"radians":-0.000300749933021649},"translation":{"x":2.011552926012444,"y":5.000367863382832}},"velocity":0.6563142096055794,"acceleration":2.999999999999997,"curvature":-0.004362475451776803,"holonomicRotation":0.0,"angularVelocity":-0.0029789003954577564,"holonomicAngularVelocity":0.0},{"time":0.23624370758518767,"pose":{"rotation":{"radians":-0.00035279818745870273},"translation":{"x":2.0234781690423245,"y":5.000363656178531}},"velocity":0.7087311227555632,"acceleration":3.000000000000005,"curvature":-0.004297757265327682,"holonomicRotation":0.0,"angularVelocity":-0.0031522057691542892,"holonomicAngularVelocity":0.0},{"time":0.25249506987941783,"pose":{"rotation":{"radians":-0.0004040258254391915},"translation":{"x":2.0353921744796466,"y":5.000358842612388}},"velocity":0.7574852096382536,"acceleration":2.9999999999999982,"curvature":-0.004232617590282782,"holonomicRotation":0.0,"angularVelocity":-0.0033045334637884427,"holonomicAngularVelocity":0.0},{"time":0.2677479908738426,"pose":{"rotation":{"radians":-0.00045442961328578946},"translation":{"x":2.047295012705992,"y":5.000353433609844}},"velocity":0.8032439726215279,"acceleration":3.0,"curvature":-0.004167060264951208,"holonomicRotation":0.0,"angularVelocity":-0.0034388810442551247,"holonomicAngularVelocity":0.0},{"time":0.2821645180065514,"pose":{"rotation":{"radians":-0.0005040063351664514},"translation":{"x":2.0591867541029427,"y":5.000347440096336}},"velocity":0.8464935540196543,"acceleration":3.0,"curvature":-0.00410108738595917,"holonomicRotation":0.0,"angularVelocity":-0.0035574860713522465,"holonomicAngularVelocity":0.0},{"time":0.2958670192242147,"pose":{"rotation":{"radians":-0.0005527527923909759},"translation":{"x":2.07106746905208,"y":5.000340872997303}},"velocity":0.8876010576726442,"acceleration":2.999999999999996,"curvature":-0.00403469913798084,"holonomicRotation":0.0,"angularVelocity":-0.003662074538000828,"holonomicAngularVelocity":0.0},{"time":0.3089505900314166,"pose":{"rotation":{"radians":-0.0006006658039101609},"translation":{"x":2.0829372279349867,"y":5.000333743238184}},"velocity":0.9268517700942499,"acceleration":3.0,"curvature":-0.00396789779223768,"holonomicRotation":0.0,"angularVelocity":-0.0037540130845830065,"holonomicAngularVelocity":0.0},{"time":0.32149087732750276,"pose":{"rotation":{"radians":-0.0006477422065040983},"translation":{"x":2.094796101133243,"y":5.000326061744418}},"velocity":0.9644726319825084,"acceleration":3.000000000000009,"curvature":-0.003900683640987688,"holonomicRotation":0.0,"angularVelocity":-0.003834407190643365,"holonomicAngularVelocity":0.0},{"time":0.3335492338026003,"pose":{"rotation":{"radians":-0.0006939788552795534},"translation":{"x":2.1066441590284324,"y":5.0003178394414425}},"velocity":1.0006477014078012,"acceleration":3.0000000000000093,"curvature":-0.003833061332600915,"holonomicRotation":0.0,"angularVelocity":-0.0039041670831515022,"holonomicAngularVelocity":0.0},{"time":0.3451762383331348,"pose":{"rotation":{"radians":-0.0007393726236433196},"translation":{"x":2.1184814720021357,"y":5.000309087254697}},"velocity":1.0355287149994048,"acceleration":3.000000000000005,"curvature":-0.0037650336474749266,"holonomicRotation":0.0,"angularVelocity":-0.003964053629430306,"holonomicAngularVelocity":0.0},{"time":0.35641417417796256,"pose":{"rotation":{"radians":-0.0007839204040163139},"translation":{"x":2.1303081104359345,"y":5.000299816109619}},"velocity":1.069242522533888,"acceleration":2.999999999999995,"curvature":-0.0036965967514983006,"holonomicRotation":0.0,"angularVelocity":-0.004014710997886306,"holonomicAngularVelocity":0.0},{"time":0.3672988189967698,"pose":{"rotation":{"radians":-0.0008276191072784655},"translation":{"x":2.142124144711411,"y":5.000290036931648}},"velocity":1.1018964569903096,"acceleration":2.99999999999999,"curvature":-0.0036277534068628052,"holonomicRotation":0.0,"angularVelocity":-0.004056690825496962,"holonomicAngularVelocity":0.0},{"time":0.3778607667964008,"pose":{"rotation":{"radians":-0.0008704656640166064},"translation":{"x":2.1539296452101473,"y":5.0002797606462215}},"velocity":1.1335823003892025,"acceleration":2.9999999999999947,"curvature":-0.0035585065816480348,"holonomicRotation":0.0,"angularVelocity":-0.004090470039843527,"holonomicAngularVelocity":0.0},{"time":0.388126423252071,"pose":{"rotation":{"radians":-0.0009124570241878516},"translation":{"x":2.165724682313725,"y":5.000268998178779}},"velocity":1.164379269756213,"acceleration":2.9999999999999947,"curvature":-0.0034888618977014932,"holonomicRotation":0.0,"angularVelocity":-0.004116464614857248,"holonomicAngularVelocity":0.0},{"time":0.39811876794725587,"pose":{"rotation":{"radians":-0.0009535901575450367},"translation":{"x":2.177509326403726,"y":5.000257760454758}},"velocity":1.1943563038417677,"acceleration":3.0000000000000058,"curvature":-0.0034188130344037426,"holonomicRotation":0.0,"angularVelocity":-0.004135040140713166,"holonomicAngularVelocity":0.0},{"time":0.4078579469708224,"pose":{"rotation":{"radians":-0.000993862053745076},"translation":{"x":2.189283647861731,"y":5.0002460583996}},"velocity":1.2235738409124672,"acceleration":2.9999999999999942,"curvature":-0.0033483708181011184,"holonomicRotation":0.0,"angularVelocity":-0.004146520230695927,"holonomicAngularVelocity":0.0},{"time":0.41736173985996705,"pose":{"rotation":{"radians":-0.0010332697232282584},"translation":{"x":2.2010477170693226,"y":5.0002339029387395}},"velocity":1.252085219579901,"acceleration":2.9999999999999827,"curvature":-0.003277534052440964,"holonomicRotation":0.0,"angularVelocity":-0.004151192983850854,"holonomicAngularVelocity":0.0},{"time":0.42664593200019313,"pose":{"rotation":{"radians":-0.0010718101965014881},"translation":{"x":2.212801604408083,"y":5.000221304997617}},"velocity":1.279937796000579,"acceleration":2.9999999999999822,"curvature":-0.0032063013637881155,"holonomicRotation":0.0,"angularVelocity":-0.004149316498624283,"holonomicAngularVelocity":0.0},{"time":0.435724614879603,"pose":{"rotation":{"radians":-0.0011094805251588014},"translation":{"x":2.2245453802595936,"y":5.000208275501672}},"velocity":1.3071738446388086,"acceleration":2.999999999999982,"curvature":-0.0031346793869295683,"holonomicRotation":0.0,"angularVelocity":-0.0041411231193894515,"holonomicAngularVelocity":0.0},{"time":0.4446104305813504,"pose":{"rotation":{"radians":-0.0011462777819959413},"translation":{"x":2.236279115005436,"y":5.000194825376342}},"velocity":1.3338312917440507,"acceleration":2.9999999999999876,"curvature":-0.0030626669584720495,"holonomicRotation":0.0,"angularVelocity":-0.004126823007367751,"holonomicAngularVelocity":0.0},{"time":0.4533147726741296,"pose":{"rotation":{"radians":-0.001182199061208422},"translation":{"x":2.2480028790271924,"y":5.000180965547065}},"velocity":1.3599443180223882,"acceleration":2.999999999999994,"curvature":-0.0029902684860664,"holonomicRotation":0.0,"angularVelocity":-0.004106607053456027,"holonomicAngularVelocity":0.0},{"time":0.46184795264548106,"pose":{"rotation":{"radians":-0.0012172414782671837},"translation":{"x":2.259716742706444,"y":5.0001667069392814}},"velocity":1.3855438579364425,"acceleration":2.9999999999999933,"curvature":-0.002917485823387809,"holonomicRotation":0.0,"angularVelocity":-0.004080649512153787,"holonomicAngularVelocity":0.0},{"time":0.47021933883871037,"pose":{"rotation":{"radians":-0.0012514021712526358},"translation":{"x":2.2714207764247734,"y":5.000152060478428}},"velocity":1.4106580165161304,"acceleration":3.0,"curvature":-0.0028443179050359536,"holonomicRotation":0.0,"angularVelocity":-0.004049109817409846,"holonomicAngularVelocity":0.0},{"time":0.4784374732508388,"pose":{"rotation":{"radians":-0.0012846782999815787},"translation":{"x":2.283115050563761,"y":5.000137037089943}},"velocity":1.4353124197525158,"acceleration":3.0000000000000067,"curvature":-0.0027707697255496375,"holonomicRotation":0.0,"angularVelocity":-0.004012134482875399,"holonomicAngularVelocity":0.0},{"time":0.4865101703572981,"pose":{"rotation":{"radians":-0.0013170670464122125},"translation":{"x":2.29479963550499,"y":5.000121647699268}},"velocity":1.4595305110718937,"acceleration":3.0,"curvature":-0.0026968435553023145,"holonomicRotation":0.0,"angularVelocity":-0.003969858725806203,"holonomicAngularVelocity":0.0},{"time":0.4944446012331465,"pose":{"rotation":{"radians":-0.0013485656160590054},"translation":{"x":2.306474601630042,"y":5.000105903231838}},"velocity":1.4833338036994388,"acceleration":2.999999999999993,"curvature":-0.0026225418453057884,"holonomicRotation":0.0,"angularVelocity":-0.0039224074270702335,"holonomicAngularVelocity":0.0},{"time":0.502247365559937,"pose":{"rotation":{"radians":-0.0013791712368060871},"translation":{"x":2.3181400193204977,"y":5.000089814613093}},"velocity":1.5067420966798104,"acceleration":3.000000000000014,"curvature":-0.0025478672522371635,"holonomicRotation":0.0,"angularVelocity":-0.003869896486787799,"holonomicAngularVelocity":0.0},{"time":0.5099245535851383,"pose":{"rotation":{"radians":-0.0014088811597732231},"translation":{"x":2.3297959589579404,"y":5.000073392768473}},"velocity":1.5297736607554142,"acceleration":2.999999999999971,"curvature":-0.0024728262165645155,"holonomicRotation":0.0,"angularVelocity":-0.003812433757235787,"holonomicAngularVelocity":0.0},{"time":0.5174817996966875,"pose":{"rotation":{"radians":-0.0014376926599606321},"translation":{"x":2.341442490923951,"y":5.000056648623415}},"velocity":1.5524453990900615,"acceleration":2.9999999999999707,"curvature":-0.002397411257424339,"holonomicRotation":0.0,"angularVelocity":-0.003750119745192998,"holonomicAngularVelocity":0.0},{"time":0.524924328959554,"pose":{"rotation":{"radians":-0.0014656030359034844},"translation":{"x":2.353079685600111,"y":5.000039593103357}},"velocity":1.5747729868786609,"acceleration":2.999999999999985,"curvature":-0.002321628903174539,"holonomicRotation":0.0,"angularVelocity":-0.0036830483923062807,"holonomicAngularVelocity":0.0},{"time":0.5322569977126934,"pose":{"rotation":{"radians":-0.001492609609766049},"translation":{"x":2.364707613368003,"y":5.00002223713374}},"velocity":1.596770993138079,"acceleration":2.99999999999997,"curvature":-0.002245490430330352,"holonomicRotation":0.0,"angularVelocity":-0.0036113079257913015,"holonomicAngularVelocity":0.0},{"time":0.5394843291277293,"pose":{"rotation":{"radians":-0.0015187097289874885},"translation":{"x":2.376326344609208,"y":5.000004591639999}},"velocity":1.6184529873831863,"acceleration":2.9999999999999845,"curvature":-0.0021689923331659317,"holonomicRotation":0.0,"angularVelocity":-0.003534980937636568,"holonomicAngularVelocity":0.0},{"time":0.546610544473368,"pose":{"rotation":{"radians":-0.0015439007643918146},"translation":{"x":2.3879359497053088,"y":4.999986667547575}},"velocity":1.6398316334201024,"acceleration":2.9999999999999845,"curvature":-0.0020921303979008336,"holonomicRotation":0.0,"angularVelocity":-0.0034541454483478537,"holonomicAngularVelocity":0.0},{"time":0.5536395907030554,"pose":{"rotation":{"radians":-0.0015681801124323158},"translation":{"x":2.3995364990378856,"y":4.999968475781906}},"velocity":1.6609187721091645,"acceleration":3.0,"curvature":-0.002014912806278044,"holonomicRotation":0.0,"angularVelocity":-0.0033688748819178434,"holonomicAngularVelocity":0.0},{"time":0.560575164881113,"pose":{"rotation":{"radians":-0.0015915451940724523},"translation":{"x":2.4111280629885217,"y":4.999950027268432}},"velocity":1.6817254946433375,"acceleration":3.0,"curvature":-0.0019373443451898562,"holonomicRotation":0.0,"angularVelocity":-0.003279238812541667,"holonomicAngularVelocity":0.0},{"time":0.5674207358793403,"pose":{"rotation":{"radians":-0.0016139934561838487},"translation":{"x":2.422710711938798,"y":4.999931332932588}},"velocity":1.7022622076380194,"acceleration":3.0000000000000164,"curvature":-0.0018594256479232752,"holonomicRotation":0.0,"angularVelocity":-0.003185302930280859,"holonomicAngularVelocity":0.0},{"time":0.5741795637080049,"pose":{"rotation":{"radians":-0.001635522370271758},"translation":{"x":2.434284516270297,"y":4.999912403699817}},"velocity":1.7225386911240135,"acceleration":3.0000000000000164,"curvature":-0.001781162288610946,"holonomicRotation":0.0,"angularVelocity":-0.0030871298559187015,"holonomicAngularVelocity":0.0},{"time":0.5808547167891307,"pose":{"rotation":{"radians":-0.0016561294346413291},"translation":{"x":2.4458495463646,"y":4.999893250495554}},"velocity":1.7425641503673905,"acceleration":2.9999999999999667,"curvature":-0.0017025554253416837,"holonomicRotation":0.0,"angularVelocity":-0.002984778893465034,"holonomicAngularVelocity":0.0},{"time":0.5874490874337187,"pose":{"rotation":{"radians":-0.0016758121729569808},"translation":{"x":2.457405872603289,"y":4.99987388424524}},"velocity":1.7623472623011545,"acceleration":2.999999999999983,"curvature":-0.0016236062120048745,"holonomicRotation":0.0,"angularVelocity":-0.0028783066936993746,"holonomicAngularVelocity":0.0},{"time":0.5939654057460994,"pose":{"rotation":{"radians":-0.0016945681355737818},"translation":{"x":2.4689535653679453,"y":4.999854315874311}},"velocity":1.7818962172382966,"acceleration":3.000000000000034,"curvature":-0.0015443216336663984,"holonomicRotation":0.0,"angularVelocity":-0.0027677671924581375,"holonomicAngularVelocity":0.0},{"time":0.6004062521465463,"pose":{"rotation":{"radians":-0.001712394898932601},"translation":{"x":2.4804926950401516,"y":4.999834556308208}},"velocity":1.8012187564396374,"acceleration":2.9999999999999827,"curvature":-0.001464703806722768,"holonomicRotation":0.0,"angularVelocity":-0.0026532121261827603,"holonomicAngularVelocity":0.0},{"time":0.6067740686764249,"pose":{"rotation":{"radians":-0.001729290066966982},"translation":{"x":2.492023332001488,"y":4.999814616472369}},"velocity":1.8203222060292732,"acceleration":3.0,"curvature":-0.0013847485081160001,"holonomicRotation":0.0,"angularVelocity":-0.002534690837029631,"holonomicAngularVelocity":0.0},{"time":0.6130711692275513,"pose":{"rotation":{"radians":-0.0017452512700337763},"translation":{"x":2.503545546633539,"y":4.999794507292232}},"velocity":1.8392135076826526,"acceleration":3.0000000000000178,"curvature":-0.0013044640306267353,"holonomicRotation":0.0,"angularVelocity":-0.0024122508051119995,"holonomicAngularVelocity":0.0},{"time":0.6192997488183413,"pose":{"rotation":{"radians":-0.0017602761661663635},"translation":{"x":2.515059409317884,"y":4.9997742396932345}},"velocity":1.8578992464550224,"acceleration":3.0,"curvature":-0.0012238531337098197,"holonomicRotation":0.0,"angularVelocity":-0.0022859375103935265,"holonomicAngularVelocity":0.0},{"time":0.6254618920231689,"pose":{"rotation":{"radians":-0.0017743624404626956},"translation":{"x":2.526564990436105,"y":4.999753824600818}},"velocity":1.8763856760695055,"acceleration":3.000000000000018,"curvature":-0.0011429349517468727,"holonomicRotation":0.0,"angularVelocity":-0.002155794897098568,"holonomicAngularVelocity":0.0},{"time":0.631559580647577,"pose":{"rotation":{"radians":-0.0017875078064832906},"translation":{"x":2.538062360369785,"y":4.999733272940419}},"velocity":1.8946787419427296,"acceleration":2.999999999999982,"curvature":-0.0010616825610525005,"holonomicRotation":0.0,"angularVelocity":-0.0020218651057116372,"holonomicAngularVelocity":0.0},{"time":0.6375947007302338,"pose":{"rotation":{"radians":-0.001799710005187194},"translation":{"x":2.5495515895005054,"y":4.999712595637476}},"velocity":1.9127841021907002,"acceleration":3.000000000000018,"curvature":-0.0009801154202362028,"holonomicRotation":0.0,"angularVelocity":-0.0018841889527163255,"holonomicAngularVelocity":0.0},{"time":0.6435690489424795,"pose":{"rotation":{"radians":-0.0018109668060883877},"translation":{"x":2.561032748209848,"y":4.999691803617428}},"velocity":1.930707146827437,"acceleration":3.0,"curvature":-0.0008982290743637934,"holonomicRotation":0.0,"angularVelocity":-0.001742805814119932,"holonomicAngularVelocity":0.0},{"time":0.6494843384476449,"pose":{"rotation":{"radians":-0.0018212760070301925},"translation":{"x":2.5725059068793934,"y":4.999670907805714}},"velocity":1.9484530153429334,"acceleration":3.0000000000000187,"curvature":-0.0008160504485741432,"holonomicRotation":0.0,"angularVelocity":-0.0015977538675792569,"holonomicAngularVelocity":0.0},{"time":0.6553422042748901,"pose":{"rotation":{"radians":-0.001830635434811434},"translation":{"x":2.5839711358907245,"y":4.999649919127772}},"velocity":1.9660266128246688,"acceleration":2.9999999999999623,"curvature":-0.0007335553207690381,"holonomicRotation":0.0,"angularVelocity":-0.0014490700264853632,"holonomicAngularVelocity":0.0},{"time":0.661144208255858,"pose":{"rotation":{"radians":-0.0018390429448738033},"translation":{"x":2.595428505625423,"y":4.99962884850904}},"velocity":1.9834326247675724,"acceleration":3.0,"curvature":-0.0006507628999156107,"holonomicRotation":0.0,"angularVelocity":-0.0012967902102546357,"holonomicAngularVelocity":0.0},{"time":0.6668918435668698,"pose":{"rotation":{"radians":-0.0018464964220772373},"translation":{"x":2.606878086465071,"y":4.999607706874958}},"velocity":2.000675530700608,"acceleration":3.000000000000019,"curvature":-0.0005676703038351179,"holonomicRotation":0.0,"angularVelocity":-0.0011409492504054698,"holonomicAngularVelocity":0.0},{"time":0.6725865389145316,"pose":{"rotation":{"radians":-0.0018529937804654395},"translation":{"x":2.6183199487912496,"y":4.9995865051509645}},"velocity":2.0177596167435934,"acceleration":3.0,"curvature":-0.00048427154120684316,"holonomicRotation":0.0,"angularVelocity":-0.0009815811654225542,"holonomicAngularVelocity":0.0},{"time":0.6782296623984033,"pose":{"rotation":{"radians":-0.0018585329641913617},"translation":{"x":2.6297541629855408,"y":4.999565254262497}},"velocity":2.0346889871952087,"acceleration":3.0000000000000195,"curvature":-0.0004006006045870629,"holonomicRotation":0.0,"angularVelocity":-0.0008187189289737109,"holonomicAngularVelocity":0.0},{"time":0.6838225250806838,"pose":{"rotation":{"radians":-0.0018631119467364954},"translation":{"x":2.6411807994295264,"y":4.999543965134994}},"velocity":2.05146757524205,"acceleration":3.00000000000002,"curvature":-0.00031663794363434274,"holonomicRotation":0.0,"angularVelocity":-0.0006523948457662326,"holonomicAngularVelocity":0.0},{"time":0.6893663842896403,"pose":{"rotation":{"radians":-0.0018667287319100723},"translation":{"x":2.6525999285047885,"y":4.999522648693896}},"velocity":2.0680991528689194,"acceleration":2.99999999999996,"curvature":-0.00023237316017918756,"holonomicRotation":0.0,"angularVelocity":-0.0004826404747973889,"holonomicAngularVelocity":0.0},{"time":0.6948624466806748,"pose":{"rotation":{"radians":-0.0018693813540719972},"translation":{"x":2.6640116205929085,"y":4.999501315864638}},"velocity":2.084587340042023,"acceleration":3.0,"curvature":-0.0001478313312173504,"holonomicRotation":0.0,"angularVelocity":-0.0003094865268103932,"holonomicAngularVelocity":0.0},{"time":0.7003118710764237,"pose":{"rotation":{"radians":-0.0018710678775013534},"translation":{"x":2.6754159460754683,"y":4.999479977572662}},"velocity":2.10093561322927,"acceleration":3.0000000000000204,"curvature":-0.00006316373734225212,"holonomicRotation":0.0,"angularVelocity":-0.00013296330975074585,"holonomicAngularVelocity":0.0},{"time":0.7057157711050908,"pose":{"rotation":{"radians":-0.0018717863979347271},"translation":{"x":2.6868129753340497,"y":4.999458644743405}},"velocity":2.117147313315271,"acceleration":3.0000000000000204,"curvature":0.000022089186530704827,"holonomicRotation":0.0,"angularVelocity":0.00004689966368798274,"holonomicAngularVelocity":0.0},{"time":0.7110752176542708,"pose":{"rotation":{"radians":-0.0018715350416940169},"translation":{"x":2.6982027787502343,"y":4.999437328302306}},"velocity":2.1332256529628113,"acceleration":2.999999999999979,"curvature":0.0001073580355847021,"holonomicRotation":0.0,"angularVelocity":0.00023007337664855958,"holonomicAngularVelocity":0.0},{"time":0.7163912411558058,"pose":{"rotation":{"radians":-0.0018703119662166756},"translation":{"x":2.7095854267056043,"y":4.999416039174804}},"velocity":2.149173723467416,"acceleration":2.999999999999979,"curvature":0.00019303006848473214,"holonomicRotation":0.0,"angularVelocity":0.0004165292074971711,"holonomicAngularVelocity":0.0},{"time":0.7216648337156853,"pose":{"rotation":{"radians":-0.001868115360887046},"translation":{"x":2.720960989581741,"y":4.999394788286335}},"velocity":2.1649945011470546,"acceleration":2.999999999999979,"curvature":0.0002789473340398719,"holonomicRotation":0.0,"angularVelocity":0.0006062392730997175,"holonomicAngularVelocity":0.0},{"time":0.7268969511016588,"pose":{"rotation":{"radians":-0.001864943445846201},"translation":{"x":2.732329537760226,"y":4.999373586562341}},"velocity":2.1806908533049745,"acceleration":2.9999999999999365,"curvature":0.0003650726067706571,"holonomicRotation":0.0,"angularVelocity":0.0007991758331446065,"holonomicAngularVelocity":0.0},{"time":0.7320885146000088,"pose":{"rotation":{"radians":-0.001860794473762084},"translation":{"x":2.7436911416226426,"y":4.99935244492826}},"velocity":2.196265543800025,"acceleration":3.000000000000064,"curvature":0.00045147942298410463,"holonomicRotation":0.0,"angularVelocity":0.0009953117155850919,"holonomicAngularVelocity":0.0},{"time":0.7372404127518729,"pose":{"rotation":{"radians":-0.0018556667291740325},"translation":{"x":2.755045871550571,"y":4.999331374309528}},"velocity":2.2117212382556173,"acceleration":3.0,"curvature":0.000538105014579647,"holonomicRotation":0.0,"angularVelocity":0.0011946201524740201,"holonomicAngularVelocity":0.0},{"time":0.7423535029785338,"pose":{"rotation":{"radians":-0.0018495585285478455},"translation":{"x":2.766393797925593,"y":4.999310385631587}},"velocity":2.2270605089355997,"acceleration":2.9999999999999782,"curvature":0.0006249961389685517,"holonomicRotation":0.0,"angularVelocity":0.0013970745698782825,"holonomicAngularVelocity":0.0},{"time":0.7474286131042385,"pose":{"rotation":{"radians":-0.0018424682212518917},"translation":{"x":2.7777349911292912,"y":4.999289489819873}},"velocity":2.242285839312714,"acceleration":3.0,"curvature":0.0007121359024749472,"holonomicRotation":0.0,"angularVelocity":0.0016026488473457664,"holonomicAngularVelocity":0.0},{"time":0.752466542784342,"pose":{"rotation":{"radians":-0.0018343941890570648},"translation":{"x":2.7890695215432473,"y":4.999268697799824}},"velocity":2.257399628353024,"acceleration":2.999999999999956,"curvature":0.0007995019266787257,"holonomicRotation":0.0,"angularVelocity":0.001811317173014546,"holonomicAngularVelocity":0.0},{"time":0.7574680648458747,"pose":{"rotation":{"radians":-0.0018253348462557994},"translation":{"x":2.8003974595490426,"y":4.999248020496881}},"velocity":2.2724041945376223,"acceleration":3.0,"curvature":0.0008871013094750559,"holonomicRotation":0.0,"angularVelocity":0.002023053814696196,"holonomicAngularVelocity":0.0},{"time":0.762433926547016,"pose":{"rotation":{"radians":-0.0018152886407980517},"translation":{"x":2.811718875528259,"y":4.999227468836482}},"velocity":2.287301779641046,"acceleration":2.999999999999978,"curvature":0.0009749379234581079,"holonomicRotation":0.0,"angularVelocity":0.0022378334881647728,"holonomicAngularVelocity":0.0},{"time":0.7673648507613929,"pose":{"rotation":{"radians":-0.0018042540534635165},"translation":{"x":2.823033839862479,"y":4.9992070537440645}},"velocity":2.302094552284177,"acceleration":3.0,"curvature":0.0010630047045492857,"holonomicRotation":0.0,"angularVelocity":0.0024556310699449073,"holonomicAngularVelocity":0.0},{"time":0.7722615370926214,"pose":{"rotation":{"radians":-0.0017922295983687775},"translation":{"x":2.8343424229332834,"y":4.999186786145069}},"velocity":2.316784611277862,"acceleration":2.999999999999932,"curvature":0.001151287756662861,"holonomicRotation":0.0,"angularVelocity":0.002676421511768835,"holonomicAngularVelocity":0.0},{"time":0.7771246629240504,"pose":{"rotation":{"radians":-0.0017792138237791022},"translation":{"x":2.845644695122254,"y":4.999166676964931}},"velocity":2.3313739887721487,"acceleration":2.9999999999999774,"curvature":0.001239792007703882,"holonomicRotation":0.0,"angularVelocity":0.0029001802380024862,"holonomicAngularVelocity":0.0},{"time":0.7819548844082607,"pose":{"rotation":{"radians":-0.0017652053108854204},"translation":{"x":2.8569407268109734,"y":4.999146737129092}},"velocity":2.3458646532247798,"acceleration":3.000000000000023,"curvature":0.001328498792684351,"holonomicRotation":0.0,"angularVelocity":0.0031268825008808772,"holonomicAngularVelocity":0.0},{"time":0.7867528374004893,"pose":{"rotation":{"radians":-0.0017502026756339717},"translation":{"x":2.868230588381023,"y":4.999126977562988}},"velocity":2.3602585122014657,"acceleration":3.0,"curvature":0.00141740711815008,"holonomicRotation":0.0,"angularVelocity":0.0033565039774335823,"holonomicAngularVelocity":0.0},{"time":0.7915191383398239,"pose":{"rotation":{"radians":-0.0017342045675734497},"translation":{"x":2.8795143502139844,"y":4.999107409192061}},"velocity":2.3745574150194693,"acceleration":2.9999999999999534,"curvature":0.0015065349756907163,"holonomicRotation":0.0,"angularVelocity":0.003589020232821332,"holonomicAngularVelocity":0.0},{"time":0.7962543850816947,"pose":{"rotation":{"radians":-0.0017172096712094742},"translation":{"x":2.8907920826914397,"y":4.999088042941746}},"velocity":2.3887631552450816,"acceleration":3.0000000000000235,"curvature":0.0015958595611735736,"holonomicRotation":0.0,"angularVelocity":0.0038244072640327836,"holonomicAngularVelocity":0.0},{"time":0.8009591576849172,"pose":{"rotation":{"radians":-0.0016992167046900875},"translation":{"x":2.90206385619497,"y":4.999068889737483}},"velocity":2.4028774730547493,"acceleration":3.0,"curvature":0.0016853795947688304,"holonomicRotation":0.0,"angularVelocity":0.004062640842213939,"holonomicAngularVelocity":0.0},{"time":0.8056340191562873,"pose":{"rotation":{"radians":-0.001680224421544807},"translation":{"x":2.9133297411061583,"y":4.999049960504712}},"velocity":2.4169020574688598,"acceleration":3.0000000000000475,"curvature":0.0017750826715411936,"holonomicRotation":0.0,"angularVelocity":0.00430369699345672,"holonomicAngularVelocity":0.0},{"time":0.8102795161554905,"pose":{"rotation":{"radians":-0.0016602316100762238},"translation":{"x":2.9245898078065853,"y":4.999031266168868}},"velocity":2.4308385484664696,"acceleration":3.000000000000024,"curvature":0.0018649791549970333,"holonomicRotation":0.0,"angularVelocity":0.004547551926117013,"holonomicAngularVelocity":0.0},{"time":0.8148961796628899,"pose":{"rotation":{"radians":-0.001639237093050916},"translation":{"x":2.9358441266778335,"y":4.999012817655393}},"velocity":2.4446885389886677,"acceleration":3.000000000000024,"curvature":0.0019550622071006062,"holonomicRotation":0.0,"angularVelocity":0.004794181660934345,"holonomicAngularVelocity":0.0},{"time":0.8194845256125487,"pose":{"rotation":{"radians":-0.001617239729045039},"translation":{"x":2.947092768101484,"y":4.998994625889725}},"velocity":2.458453576837644,"acceleration":2.9999999999999276,"curvature":0.00204531623087665,"holonomicRotation":0.0,"angularVelocity":0.005043562443322067,"holonomicAngularVelocity":0.0},{"time":0.8240450554926847,"pose":{"rotation":{"radians":-0.001594238411819937},"translation":{"x":2.958335802459119,"y":4.998976701797301}},"velocity":2.4721351664780515,"acceleration":2.999999999999927,"curvature":0.002135741535750743,"holonomicRotation":0.0,"angularVelocity":0.005295670581888795,"holonomicAngularVelocity":0.0},{"time":0.828578256915574,"pose":{"rotation":{"radians":-0.001570232070402966},"translation":{"x":2.96957330013232,"y":4.998959056303561}},"velocity":2.4857347707467192,"acceleration":2.9999999999999756,"curvature":0.0022263336241216316,"holonomicRotation":0.0,"angularVelocity":0.00555048230000029,"holonomicAngularVelocity":0.0},{"time":0.8330846041587937,"pose":{"rotation":{"radians":-0.0015452196697918197},"translation":{"x":2.980805331502669,"y":4.998941700333942}},"velocity":2.4992538124763786,"acceleration":3.0000000000000244,"curvature":0.0023170925568193985,"holonomicRotation":0.0,"angularVelocity":0.005807974001899573,"holonomicAngularVelocity":0.0},{"time":0.8375645586795395,"pose":{"rotation":{"radians":-0.0015192002104056357},"translation":{"x":2.9920319669517483,"y":4.998924644813885}},"velocity":2.512693676038616,"acceleration":2.999999999999975,"curvature":0.00240800989345455,"holonomicRotation":0.0,"angularVelocity":0.006068121935172448,"holonomicAngularVelocity":0.0},{"time":0.8420185696036435,"pose":{"rotation":{"radians":-0.0014921727290175824},"translation":{"x":3.003253276861139,"y":4.998907900668827}},"velocity":2.5260557088109277,"acceleration":2.9999999999999503,"curvature":0.0024990819804114966,"holonomicRotation":0.0,"angularVelocity":0.0063309024780937966,"holonomicAngularVelocity":0.0},{"time":0.8464470741907983,"pose":{"rotation":{"radians":-0.0014641362983525141},"translation":{"x":3.014469331612423,"y":4.9988914788242065}},"velocity":2.5393412225723924,"acceleration":3.00000000000005,"curvature":0.0025902977376748015,"holonomicRotation":0.0,"angularVelocity":0.006596291956144453,"holonomicAngularVelocity":0.0},{"time":0.8508504982773858,"pose":{"rotation":{"radians":-0.0014350900274706646},"translation":{"x":3.025680201587182,"y":4.998875390205462}},"velocity":2.5525514948321546,"acceleration":2.9999999999999747,"curvature":0.0026816619240085274,"holonomicRotation":0.0,"angularVelocity":0.0068642667782096555,"holonomicAngularVelocity":0.0},{"time":0.8552292566982181,"pose":{"rotation":{"radians":-0.0014050330615127393},"translation":{"x":3.036885957166998,"y":4.998859645738032}},"velocity":2.565687770094651,"acceleration":2.9999999999998987,"curvature":0.002773167712267963,"holonomicRotation":0.0,"angularVelocity":0.00713480315974148,"holonomicAngularVelocity":0.0},{"time":0.859583753688406,"pose":{"rotation":{"radians":-0.0013739645826280622},"translation":{"x":3.0480866687334527,"y":4.998844256347356}},"velocity":2.578751261065215,"acceleration":3.0,"curvature":0.0028648088157482428,"holonomicRotation":0.0,"angularVelocity":0.007407877512233534,"holonomicAngularVelocity":0.0},{"time":0.8639143832664873,"pose":{"rotation":{"radians":-0.0013418838091627805},"translation":{"x":3.0592824066681277,"y":4.998829232958872}},"velocity":2.5917431497994587,"acceleration":3.0000000000000258,"curvature":0.002956572711214769,"holonomicRotation":0.0,"angularVelocity":0.0076834660026696595,"holonomicAngularVelocity":0.0},{"time":0.8682215295998759,"pose":{"rotation":{"radians":-0.001308789996741666},"translation":{"x":3.0704732413526052,"y":4.998814586498019}},"velocity":2.6046645887996247,"acceleration":3.0000000000000515,"curvature":0.003048467539928571,"holonomicRotation":0.0,"angularVelocity":0.007961544929320205,"holonomicAngularVelocity":0.0},{"time":0.8725055673536162,"pose":{"rotation":{"radians":-0.0012746824376863586},"translation":{"x":3.081659243168467,"y":4.998800327890234}},"velocity":2.6175167020608456,"acceleration":3.0,"curvature":0.0031404812959133456,"holonomicRotation":0.0,"angularVelocity":0.008242090572846103,"holonomicAngularVelocity":0.0},{"time":0.8767668620233698,"pose":{"rotation":{"radians":-0.0012395604610606625},"translation":{"x":3.0928404824972944,"y":4.998786468060958}},"velocity":2.6303005860701067,"acceleration":3.000000000000026,"curvature":0.0032326091575569406,"holonomicRotation":0.0,"angularVelocity":0.00852507894764341,"holonomicAngularVelocity":0.0},{"time":0.8810057702534962,"pose":{"rotation":{"radians":-0.0012034234337470195},"translation":{"x":3.1040170297206693,"y":4.998773017935628}},"velocity":2.6430173107604857,"acceleration":2.9999999999999476,"curvature":0.0033248495402316636,"holonomicRotation":0.0,"angularVelocity":0.008810486262176903,"holonomicAngularVelocity":0.0},{"time":0.8852226401410362,"pose":{"rotation":{"radians":-0.001166270759533461},"translation":{"x":3.115188955220174,"y":4.998759988439683}},"velocity":2.655667920423106,"acceleration":3.000000000000053,"curvature":0.003417194933847161,"holonomicRotation":0.0,"angularVelocity":0.009098288560169037,"holonomicAngularVelocity":0.0},{"time":0.8894178115263554,"pose":{"rotation":{"radians":-0.0011281018797104636},"translation":{"x":3.1263563293773897,"y":4.99874739049856}},"velocity":2.668253434579063,"acceleration":2.9999999999999205,"curvature":0.0035096383291184823,"holonomicRotation":0.0,"angularVelocity":0.00938846186735855,"holonomicAngularVelocity":0.0},{"time":0.8935916162711562,"pose":{"rotation":{"radians":-0.0010889162730221003},"translation":{"x":3.1375192225738986,"y":4.9987352350377}},"velocity":2.6807748488134657,"acceleration":3.0000000000000266,"curvature":0.0036021786968209084,"holonomicRotation":0.0,"angularVelocity":0.009680982110773015,"holonomicAngularVelocity":0.0},{"time":0.897744378524526,"pose":{"rotation":{"radians":-0.0010487134559369338},"translation":{"x":3.148677705191282,"y":4.998723532982542}},"velocity":2.6932331355735752,"acceleration":3.0000000000000266,"curvature":0.0036948094508023354,"holonomicRotation":0.0,"angularVelocity":0.009975825114364224,"holonomicAngularVelocity":0.0},{"time":0.901876414977642,"pose":{"rotation":{"radians":-0.0010074929829144708},"translation":{"x":3.1598318476111222,"y":4.998712295258521}},"velocity":2.7056292449329233,"acceleration":3.000000000000027,"curvature":0.003787527021480397,"holonomicRotation":0.0,"angularVelocity":0.010272966826272087,"holonomicAngularVelocity":0.0},{"time":0.9059880351077212,"pose":{"rotation":{"radians":-0.0009652544457159351},"translation":{"x":3.1709817202150004,"y":4.998701532791078}},"velocity":2.7179641053231607,"acceleration":2.999999999999973,"curvature":0.003880322765649141,"holonomicRotation":0.0,"angularVelocity":0.01057238287479697,"holonomicAngularVelocity":0.0},{"time":0.9100795414117668,"pose":{"rotation":{"radians":-0.0009219974745349191},"translation":{"x":3.182127393384499,"y":4.998691256505652}},"velocity":2.7302386242352976,"acceleration":3.0,"curvature":0.003973193626974382,"holonomicRotation":0.0,"angularVelocity":0.01087404896770744,"holonomicAngularVelocity":0.0},{"time":0.9141512296306256,"pose":{"rotation":{"radians":-0.0008777217374618118},"translation":{"x":3.1932689375011996,"y":4.998681477327681}},"velocity":2.7424536888918736,"acceleration":2.9999999999999454,"curvature":0.0040661365877423415,"holonomicRotation":0.0,"angularVelocity":0.011177940698046769,"holonomicAngularVelocity":0.0},{"time":0.9182033889638456,"pose":{"rotation":{"radians":-0.0008324269407360418},"translation":{"x":3.2044064229466835,"y":4.9986722061826026}},"velocity":2.754610166891534,"acceleration":3.000000000000082,"curvature":0.00415914141443655,"holonomicRotation":0.0,"angularVelocity":0.011484033619798757,"holonomicAngularVelocity":0.0},{"time":0.9222363022757923,"pose":{"rotation":{"radians":-0.0007861128286759111},"translation":{"x":3.2155399201025334,"y":4.998663453995857}},"velocity":2.766708906827374,"acceleration":2.999999999999945,"curvature":0.004252207971998935,"holonomicRotation":0.0,"angularVelocity":0.011792303027076446,"holonomicAngularVelocity":0.0},{"time":0.9262502462934519,"pose":{"rotation":{"radians":-0.0007387791844859493},"translation":{"x":3.2266694993503306,"y":4.998655231692881}},"velocity":2.778750738880353,"acceleration":3.000000000000083,"curvature":0.0043453312847519165,"holonomicRotation":0.0,"angularVelocity":0.012102724488281674,"holonomicAngularVelocity":0.0},{"time":0.9302454917963313,"pose":{"rotation":{"radians":-0.000690425828901553},"translation":{"x":3.2377952310716567,"y":4.998647550199115}},"velocity":2.790736475388991,"acceleration":2.999999999999972,"curvature":0.004438502019843845,"holonomicRotation":0.0,"angularVelocity":0.012415273067802057,"holonomicAngularVelocity":0.0},{"time":0.934222303798837,"pose":{"rotation":{"radians":-0.0006410526219511326},"translation":{"x":3.2489171856480934,"y":4.998640420439996}},"velocity":2.8026669113965084,"acceleration":3.000000000000056,"curvature":0.004531715821227989,"holonomicRotation":0.0,"angularVelocity":0.012729924084577376,"holonomicAngularVelocity":0.0},{"time":0.9381809417254927,"pose":{"rotation":{"radians":-0.0005906594616664762},"translation":{"x":3.2600354334612227,"y":4.998633853340964}},"velocity":2.814542825176476,"acceleration":3.000000000000084,"curvature":0.004624970646461841,"holonomicRotation":0.0,"angularVelocity":0.013046652485142083,"holonomicAngularVelocity":0.0},{"time":0.9421216595793394,"pose":{"rotation":{"radians":-0.0005392462852853441},"translation":{"x":3.271150044892627,"y":4.998627859827456}},"velocity":2.826364978738016,"acceleration":3.0,"curvature":0.004718260118754292,"holonomicRotation":0.0,"angularVelocity":0.013365433410845883,"holonomicAngularVelocity":0.0},{"time":0.9460447061038358,"pose":{"rotation":{"radians":-0.00048681306819453596},"translation":{"x":3.282261090323887,"y":4.998622450824912}},"velocity":2.838134118311505,"acceleration":2.9999999999999716,"curvature":0.004811576030345373,"holonomicRotation":0.0,"angularVelocity":0.013686241708703402,"holonomicAngularVelocity":0.0},{"time":0.9499503249385696,"pose":{"rotation":{"radians":-0.00043335982480030566},"translation":{"x":3.293368640136585,"y":4.99861763725877}},"velocity":2.8498509748157064,"acceleration":3.0,"curvature":0.004904916769723469,"holonomicRotation":0.0,"angularVelocity":0.014009052153737019,"holonomicAngularVelocity":0.0},{"time":0.9538387547690598,"pose":{"rotation":{"radians":-0.0003788866085088216},"translation":{"x":3.3044727647123033,"y":4.998613430054467}},"velocity":2.861516264307177,"acceleration":3.0,"curvature":0.004998274561384139,"holonomicRotation":0.0,"angularVelocity":0.014333839571761913,"holonomicAngularVelocity":0.0},{"time":0.957710229470927,"pose":{"rotation":{"radians":-0.00032339351122612214},"translation":{"x":3.315573534432623,"y":4.998609840137445}},"velocity":2.873130688412779,"acceleration":3.000000000000086,"curvature":0.005091647964150006,"holonomicRotation":0.0,"angularVelocity":0.014660578468052349,"holonomicAngularVelocity":0.0},{"time":0.9615649782486869,"pose":{"rotation":{"radians":-0.0002668806642951438},"translation":{"x":3.3266710196791256,"y":4.99860687843314}},"velocity":2.884694934746059,"acceleration":3.000000000000029,"curvature":0.005185027612751659,"holonomicRotation":0.0,"angularVelocity":0.014989243459610049,"holonomicAngularVelocity":0.0},{"time":0.9654032257694112,"pose":{"rotation":{"radians":-0.0002093482377487632},"translation":{"x":3.3377652908333935,"y":4.998604555866991}},"velocity":2.8962096773082315,"acceleration":2.999999999999971,"curvature":0.005278408442566824,"holonomicRotation":0.0,"angularVelocity":0.015285145040313048,"holonomicAngularVelocity":0.0},{"time":0.9692338598210526,"pose":{"rotation":{"radians":-0.0001507964406730622},"translation":{"x":3.348856418277008,"y":4.998602883364437}},"velocity":2.8945431955566616,"acceleration":-0.4350407084320241,"curvature":0.005371787438402566,"holonomicRotation":0.0,"angularVelocity":0.015520092076577568,"holonomicAngularVelocity":0.0},{"time":0.9730721694753152,"pose":{"rotation":{"radians":-0.00009122552142049045},"translation":{"x":3.3599444723915526,"y":4.998601871850916}},"velocity":2.8830282665938736,"acceleration":-3.0000000000000866,"curvature":0.00546515787686977,"holonomicRotation":0.0,"angularVelocity":0.015726749819653257,"holonomicAngularVelocity":0.0},{"time":0.976924825287319,"pose":{"rotation":{"radians":-0.00003063576732387219},"translation":{"x":3.3710295235586063,"y":4.998601532251867}},"velocity":2.871470299157862,"acceleration":-2.999999999999971,"curvature":0.005558515124037164,"holonomicRotation":0.0,"angularVelocity":0.01593097168999011,"holonomicAngularVelocity":0.0},{"time":0.9807920258185737,"pose":{"rotation":{"radians":0.00003097249485906062},"translation":{"x":3.3821116421597526,"y":4.998601875492729}},"velocity":2.8598686975640977,"acceleration":-3.000000000000086,"curvature":0.00565185105610414,"holonomicRotation":0.0,"angularVelocity":0.01613272751001037,"holonomicAngularVelocity":0.0},{"time":0.9846739735289166,"pose":{"rotation":{"radians":0.00009359889947813116},"translation":{"x":3.393190898576573,"y":4.9986029124989395}},"velocity":2.8482228544330686,"acceleration":-3.0000000000001146,"curvature":0.005745164990552384,"holonomicRotation":0.0,"angularVelocity":0.016331986914529553,"holonomicAngularVelocity":0.0},{"time":0.9885708748876131,"pose":{"rotation":{"radians":0.00015724304147557433},"translation":{"x":3.4042673631906495,"y":4.998604654195939}},"velocity":2.8365321503569794,"acceleration":-2.999999999999943,"curvature":0.005838449120399853,"holonomicRotation":0.0,"angularVelocity":0.016528719453948876,"holonomicAngularVelocity":0.0},{"time":0.9924829404885833,"pose":{"rotation":{"radians":0.0002219044762794553},"translation":{"x":3.4153411063835635,"y":4.998607111509163}},"velocity":2.8247959535540685,"acceleration":-3.0000000000000284,"curvature":0.005931697666487542,"holonomicRotation":0.0,"angularVelocity":0.016722894816592285,"holonomicAngularVelocity":0.0},{"time":0.99641038516995,"pose":{"rotation":{"radians":0.0002875827205839343},"translation":{"x":3.4264121985368967,"y":4.998610295364052}},"velocity":2.813013619509969,"acceleration":-2.9999999999999436,"curvature":0.00602490672729007,"holonomicRotation":0.0,"angularVelocity":0.016914482352951267,"holonomicAngularVelocity":0.0},{"time":1.0003534281381021,"pose":{"rotation":{"radians":0.0003542772512856729},"translation":{"x":3.437480710032231,"y":4.998614216686044}},"velocity":2.8011844906055123,"acceleration":-3.0,"curvature":0.006118070795468712,"holonomicRotation":0.0,"angularVelocity":0.017103451523713148,"holonomicAngularVelocity":0.0},{"time":1.0043122930964896,"pose":{"rotation":{"radians":0.00042198750619037995},"translation":{"x":3.448546711251149,"y":4.998618886400579}},"velocity":2.78930789573035,"acceleration":-3.0,"curvature":0.006211182872963385,"holonomicRotation":0.0,"angularVelocity":0.017289771589621142,"holonomicAngularVelocity":0.0},{"time":1.0082872083793673,"pose":{"rotation":{"radians":0.0004907128835194285},"translation":{"x":3.4596102725752313,"y":4.998624315433094}},"velocity":2.777383149881717,"acceleration":-2.999999999999944,"curvature":0.006304236202218115,"holonomicRotation":0.0,"angularVelocity":0.017473411851153958,"holonomicAngularVelocity":0.0},{"time":1.012278407090727,"pose":{"rotation":{"radians":0.000560452742382811},"translation":{"x":3.47067146438606,"y":4.998630514709028}},"velocity":2.7654095537476384,"acceleration":-2.9999999999999445,"curvature":0.006397230663089403,"holonomicRotation":0.0,"angularVelocity":0.017654341481877465,"holonomicAngularVelocity":0.0},{"time":1.0162861272486634,"pose":{"rotation":{"radians":0.0006312064026148256},"translation":{"x":3.481730357065217,"y":4.99863749515382}},"velocity":2.7533863932738294,"acceleration":-2.999999999999889,"curvature":0.006490158084389176,"holonomicRotation":0.0,"angularVelocity":0.01783252944445138,"holonomicAngularVelocity":0.0},{"time":1.0203106119354373,"pose":{"rotation":{"radians":0.0007029731442904641},"translation":{"x":3.492787020994285,"y":4.998645267692908}},"velocity":2.7413129392135076,"acceleration":-3.000000000000055,"curvature":0.0065830121491051155,"holonomicRotation":0.0,"angularVelocity":0.018007944786470925,"holonomicAngularVelocity":0.0},{"time":1.0243521094535117,"pose":{"rotation":{"radians":0.0007757522084506085},"translation":{"x":3.503841526554844,"y":4.99865384325173}},"velocity":2.7291884466592844,"acceleration":-2.999999999999945,"curvature":0.006675788270619651,"holonomicRotation":0.0,"angularVelocity":0.01818055637455256,"holonomicAngularVelocity":0.0},{"time":1.0284108734878588,"pose":{"rotation":{"radians":0.0008495427967880609},"translation":{"x":3.5148939441284774,"y":4.998663232755725}},"velocity":2.7170121545562433,"acceleration":-3.0,"curvature":0.00676848195990251,"holonomicRotation":0.0,"angularVelocity":0.018350332929881724,"holonomicAngularVelocity":0.0},{"time":1.0324871632748422,"pose":{"rotation":{"radians":0.0009243440714978846},"translation":{"x":3.5259443440967653,"y":4.998673447130333}},"velocity":2.704783285195293,"acceleration":-2.9999999999999454,"curvature":0.006861084321249314,"holonomicRotation":0.0,"angularVelocity":0.018517243160009297,"holonomicAngularVelocity":0.0},{"time":1.0365812437780124,"pose":{"rotation":{"radians":0.0010001551556917398},"translation":{"x":3.5369927968412913,"y":4.998684497300992}},"velocity":2.6925010436857826,"acceleration":-3.0,"curvature":0.006953594175815795,"holonomicRotation":0.0,"angularVelocity":0.018681255457756344,"holonomicAngularVelocity":0.0},{"time":1.040693385871153,"pose":{"rotation":{"radians":0.00107697513261229},"translation":{"x":3.548039372743636,"y":4.998696394193139}},"velocity":2.680164617406361,"acceleration":-3.0,"curvature":0.007046004420928332,"holonomicRotation":0.0,"angularVelocity":0.018842338404988154,"holonomicAngularVelocity":0.0},{"time":1.044823866528959,"pose":{"rotation":{"radians":0.0011548030469419324},"translation":{"x":3.5590841421853816,"y":4.998709148732213}},"velocity":2.667773175432943,"acceleration":-2.9999999999999463,"curvature":0.007138311059338931,"holonomicRotation":0.0,"angularVelocity":0.01900046023483819,"holonomicAngularVelocity":0.0},{"time":1.048972969025733,"pose":{"rotation":{"radians":0.001233637903942153},"translation":{"x":3.5701271755481097,"y":4.998722771843655}},"velocity":2.655325867942621,"acceleration":-3.0000000000000537,"curvature":0.007230505880604407,"holonomicRotation":0.0,"angularVelocity":0.019155588926314412,"holonomicAngularVelocity":0.0},{"time":1.0531409831425165,"pose":{"rotation":{"radians":0.0013134786690023326},"translation":{"x":3.581168543213403,"y":4.9987372744529}},"velocity":2.64282182559227,"acceleration":-3.0000000000000533,"curvature":0.007322586574862027,"holonomicRotation":0.0,"angularVelocity":0.019307692697316824,"holonomicAngularVelocity":0.0},{"time":1.0573282053830995,"pose":{"rotation":{"radians":0.0013943242692788793},"translation":{"x":3.592208315562842,"y":4.998752667485389}},"velocity":2.6302601588705214,"acceleration":-2.999999999999947,"curvature":0.007414545248277785,"holonomicRotation":0.0,"angularVelocity":0.019456739165857866,"holonomicAngularVelocity":0.0},{"time":1.0615349391993807,"pose":{"rotation":{"radians":0.001476173591882457},"translation":{"x":3.603246562978008,"y":4.99876896186656}},"velocity":2.617639957421678,"acceleration":-2.999999999999947,"curvature":0.007506378378318586,"holonomicRotation":0.0,"angularVelocity":0.019602696150688558,"holonomicAngularVelocity":0.0},{"time":1.0657614952265744,"pose":{"rotation":{"radians":0.0015590254854473962},"translation":{"x":3.6142833558404854,"y":4.998786168521851}},"velocity":2.604960289340097,"acceleration":-3.0,"curvature":0.0075980797641863685,"holonomicRotation":0.0,"angularVelocity":0.019745531084901766,"holonomicAngularVelocity":0.0},{"time":1.0700081915287951,"pose":{"rotation":{"radians":0.0016428787592910332},"translation":{"x":3.625318764531853,"y":4.998804298376701}},"velocity":2.5922202004334345,"acceleration":-3.0000000000000524,"curvature":0.007689643368166457,"holonomicRotation":0.0,"angularVelocity":0.019885211236701533,"holonomicAngularVelocity":0.0},{"time":1.0742753538555938,"pose":{"rotation":{"radians":0.00172773218354072},"translation":{"x":3.6363528594336945,"y":4.998823362356548}},"velocity":2.579418713453038,"acceleration":-3.000000000000104,"curvature":0.0077810646344131035,"holonomicRotation":0.0,"angularVelocity":0.020021703811512262,"holonomicAngularVelocity":0.0},{"time":1.0785633159100365,"pose":{"rotation":{"radians":0.0018135844897497755},"translation":{"x":3.6473857109275913,"y":4.998843371386832}},"velocity":2.56655482728971,"acceleration":-2.999999999999948,"curvature":0.007872339092873456,"holonomicRotation":0.0,"angularVelocity":0.02015497560106396,"holonomicAngularVelocity":0.0},{"time":1.0828724196289774,"pose":{"rotation":{"radians":0.001900434370067483},"translation":{"x":3.658417389395125,"y":4.998864336392991}},"velocity":2.5536275161328876,"acceleration":-2.9999999999999485,"curvature":0.007963461056681356,"holonomicRotation":0.0,"angularVelocity":0.02028499336690171,"holonomicAngularVelocity":0.0},{"time":1.087203015476208,"pose":{"rotation":{"radians":0.001988280478103288},"translation":{"x":3.669447965217877,"y":4.9988862683004625}},"velocity":2.540635728591196,"acceleration":-3.0,"curvature":0.008054422405613357,"holonomicRotation":0.0,"angularVelocity":0.020411723545383433,"holonomicAngularVelocity":0.0},{"time":1.0915554627492137,"pose":{"rotation":{"radians":0.0020771214285857376},"translation":{"x":3.6804775087774297,"y":4.998909178034685}},"velocity":2.527578386772179,"acceleration":-3.0,"curvature":0.00814522287871118,"holonomicRotation":0.0,"angularVelocity":0.02053513240333425,"holonomicAngularVelocity":0.0},{"time":1.0959301299003172,"pose":{"rotation":{"radians":0.0021669557977541665},"translation":{"x":3.691506090455365,"y":4.9989330765211}},"velocity":2.514454385318868,"acceleration":-3.0,"curvature":0.008235852063280424,"holonomicRotation":0.0,"angularVelocity":0.02065518574599675,"holonomicAngularVelocity":0.0},{"time":1.1003273948730459,"pose":{"rotation":{"radians":0.0022577821225402417},"translation":{"x":3.702533780633264,"y":4.998957974685143}},"velocity":2.501262590400682,"acceleration":-3.0,"curvature":0.008326309822902328,"holonomicRotation":0.0,"angularVelocity":0.020771849363845338,"holonomicAngularVelocity":0.0},{"time":1.1047476454546128,"pose":{"rotation":{"radians":0.0023495989017709995},"translation":{"x":3.713560649692709,"y":4.998983883452253}},"velocity":2.4880018386559817,"acceleration":-2.99999999999995,"curvature":0.008416586078905051,"holonomicRotation":0.0,"angularVelocity":0.020885088701615817,"holonomicAngularVelocity":0.0},{"time":1.1091912796454675,"pose":{"rotation":{"radians":0.0024424045960045326},"translation":{"x":3.724586768015282,"y":4.999010813747869}},"velocity":2.4746709360834176,"acceleration":-3.0,"curvature":0.008506677150506415,"holonomicRotation":0.0,"angularVelocity":0.020994868699178642,"holonomicAngularVelocity":0.0},{"time":1.1136587060469372,"pose":{"rotation":{"radians":0.002536197626726633},"translation":{"x":3.735612205982563,"y":4.9990387764974304}},"velocity":2.461268656879009,"acceleration":-2.9999999999999005,"curvature":0.008596579403006052,"holonomicRotation":0.0,"angularVelocity":0.02110115422678364,"holonomicAngularVelocity":0.0},{"time":1.118150344268056,"pose":{"rotation":{"radians":0.002630976377561378},"translation":{"x":3.746637033976137,"y":4.999067782626375}},"velocity":2.447793742215652,"acceleration":-3.000000000000099,"curvature":0.008686286861379434,"holonomicRotation":0.0,"angularVelocity":0.021203909614973954,"holonomicAngularVelocity":0.0},{"time":1.1226666253527526,"pose":{"rotation":{"radians":0.0027267391934771013},"translation":{"x":3.757661322377583,"y":4.999097843060141}},"velocity":2.4342448989615626,"acceleration":-2.999999999999902,"curvature":0.008775792508996589,"holonomicRotation":0.0,"angularVelocity":0.021303099064690554,"holonomicAngularVelocity":0.0},{"time":1.127207992228662,"pose":{"rotation":{"radians":0.002823484381923702},"translation":{"x":3.7686851415684837,"y":4.999128968724167}},"velocity":2.4206207983338346,"acceleration":-3.0,"curvature":0.00886509301427254,"holonomicRotation":0.0,"angularVelocity":0.021398686109198307,"holonomicAngularVelocity":0.0},{"time":1.1317749001789124,"pose":{"rotation":{"radians":0.0029212102116407124},"translation":{"x":3.779708561930421,"y":4.999161170543894}},"velocity":2.406920074483083,"acceleration":-3.0000000000000484,"curvature":0.008954183921283769,"holonomicRotation":0.0,"angularVelocity":0.021490634020838104,"holonomicAngularVelocity":0.0},{"time":1.1363678173383416,"pose":{"rotation":{"radians":0.003019914913402033},"translation":{"x":3.790731653844977,"y":4.999194459444755}},"velocity":2.3931413230047953,"acceleration":-3.0000000000000484,"curvature":0.009043058559463042,"holonomicRotation":0.0,"angularVelocity":0.021578905836179614,"holonomicAngularVelocity":0.0},{"time":1.1409872252157112,"pose":{"rotation":{"radians":0.0031195966810066977},"translation":{"x":3.8017544876937333,"y":4.999228846352195}},"velocity":2.379283099372686,"acceleration":-3.000000000000096,"curvature":0.009131711555250636,"holonomicRotation":0.0,"angularVelocity":0.0216634636660605,"holonomicAngularVelocity":0.0},{"time":1.1456336192436007,"pose":{"rotation":{"radians":0.003220253669208084},"translation":{"x":3.8127771338582703,"y":4.9992643421916485}},"velocity":2.365343917289018,"acceleration":-2.9999999999999045,"curvature":0.009220138770634613,"holonomicRotation":0.0,"angularVelocity":0.021744269632320415,"holonomicAngularVelocity":0.0},{"time":1.1503075093578028,"pose":{"rotation":{"radians":0.0033218839960831303},"translation":{"x":3.8237996627201714,"y":4.999300957888555}},"velocity":2.351322246946412,"acceleration":-2.9999999999999525,"curvature":0.009308333905515918,"holonomicRotation":0.0,"angularVelocity":0.02182128507118007,"holonomicAngularVelocity":0.0},{"time":1.1550094206081722,"pose":{"rotation":{"radians":0.003424485741856831},"translation":{"x":3.834822144661019,"y":4.999338704368354}},"velocity":2.3372165131953033,"acceleration":-3.000000000000047,"curvature":0.009396293010948291,"holonomicRotation":0.0,"angularVelocity":0.021894470836262933,"holonomicAngularVelocity":0.0},{"time":1.1597398938030463,"pose":{"rotation":{"radians":0.003528056949263725},"translation":{"x":3.845844650062393,"y":4.999377592556483}},"velocity":2.3230250936106813,"acceleration":-2.999999999999953,"curvature":0.0094840111028477,"holonomicRotation":0.0,"angularVelocity":0.02196378724765275,"holonomicAngularVelocity":0.0},{"time":1.1644994861895253,"pose":{"rotation":{"radians":0.003632595623825896},"translation":{"x":3.856867249305876,"y":4.999417633378381}},"velocity":2.308746316451245,"acceleration":-2.9999999999999067,"curvature":0.009571482210172831,"holonomicRotation":0.0,"angularVelocity":0.02202919400974106,"holonomicAngularVelocity":0.0},{"time":1.1692887721720742,"pose":{"rotation":{"radians":0.0037380997339035993},"translation":{"x":3.8678900127730507,"y":4.999458837759486}},"velocity":2.2943784585035987,"acceleration":-2.999999999999907,"curvature":0.00965870156594082,"holonomicRotation":0.0,"angularVelocity":0.022090650191590275,"holonomicAngularVelocity":0.0},{"time":1.1741083440721294,"pose":{"rotation":{"radians":0.0038445672108209372},"translation":{"x":3.8789130108454977,"y":4.999501216625237}},"velocity":2.279919742803433,"acceleration":-3.0,"curvature":0.009745664490525037,"holonomicRotation":0.0,"angularVelocity":0.02214811420710446,"holonomicAngularVelocity":0.0},{"time":1.1789588129316038,"pose":{"rotation":{"radians":0.003951995949078579},"translation":{"x":3.8899363139047987,"y":4.999544780901073}},"velocity":2.2653683362250097,"acceleration":-3.0000000000000457,"curvature":0.009832365334787714,"holonomicRotation":0.0,"angularVelocity":0.022201543725853937,"holonomicAngularVelocity":0.0},{"time":1.1838408093634347,"pose":{"rotation":{"radians":0.004060383806329337},"translation":{"x":3.9009599923325355,"y":4.9995895415124325}},"velocity":2.2507223469295172,"acceleration":-2.999999999999909,"curvature":0.00991879961223856,"holonomicRotation":0.0,"angularVelocity":0.022250895648461368,"holonomicAngularVelocity":0.0},{"time":1.1887549844525873,"pose":{"rotation":{"radians":0.00416972860343634},"translation":{"x":3.9119841165102907,"y":4.9996355093847535}},"velocity":2.235979821662059,"acceleration":-3.0000000000000453,"curvature":0.01000496394884159,"holonomicRotation":0.0,"angularVelocity":0.02229612616098261,"holonomicAngularVelocity":0.0},{"time":1.193702010711224,"pose":{"rotation":{"radians":0.004280028125020596},"translation":{"x":3.923008756819646,"y":4.999682695443474}},"velocity":2.221138742886149,"acceleration":-3.0000000000000897,"curvature":0.010090849878058422,"holonomicRotation":0.0,"angularVelocity":0.02233719057086891,"holonomicAngularVelocity":0.0},{"time":1.198682583092075,"pose":{"rotation":{"radians":0.004391280119443675},"translation":{"x":3.9340339836421827,"y":4.999731110614035}},"velocity":2.2061970257435957,"acceleration":-2.9999999999999556,"curvature":0.010176455251984929,"holonomicRotation":0.0,"angularVelocity":0.022374043178189737,"holonomicAngularVelocity":0.0},{"time":1.203697420064409,"pose":{"rotation":{"radians":0.004503482298394257},"translation":{"x":3.9450598673594826,"y":4.999780765821872}},"velocity":2.191152514826594,"acceleration":-2.9999999999999556,"curvature":0.010261774894104573,"holonomicRotation":0.0,"angularVelocity":0.022406637561078076,"holonomicAngularVelocity":0.0},{"time":1.2087472647573974,"pose":{"rotation":{"radians":0.004616632338169779},"translation":{"x":3.9560864783531273,"y":4.999831671992426}},"velocity":2.1760029807476293,"acceleration":-2.999999999999956,"curvature":0.010346801728024923,"holonomicRotation":0.0,"angularVelocity":0.02243492606728704,"holonomicAngularVelocity":0.0},{"time":1.213832886176108,"pose":{"rotation":{"radians":0.004730727878704766},"translation":{"x":3.9671138870046994,"y":4.999883840051134}},"velocity":2.160746116491497,"acceleration":-3.0000000000000435,"curvature":0.010431534793003832,"holonomicRotation":0.0,"angularVelocity":0.022458860107620087,"holonomicAngularVelocity":0.0},{"time":1.2189550804958529,"pose":{"rotation":{"radians":0.004845766524375961},"translation":{"x":3.9781421636957806,"y":4.999937280923436}},"velocity":2.1453795335322625,"acceleration":-3.0,"curvature":0.010515967186740778,"holonomicRotation":0.0,"angularVelocity":0.022478389930487126,"holonomicAngularVelocity":0.0},{"time":1.22411467244115,"pose":{"rotation":{"radians":0.00496174584400455},"translation":{"x":3.989171378807951,"y":4.999992005534769}},"velocity":2.129900757696371,"acceleration":-3.0,"curvature":0.010600093139598936,"holonomicRotation":0.0,"angularVelocity":0.02249346458428365,"holonomicAngularVelocity":0.0},{"time":1.2293125167561731,"pose":{"rotation":{"radians":0.005078663371019143},"translation":{"x":4.000201602722794,"y":5.000048024810572}},"velocity":2.1143072247513017,"acceleration":-3.0,"curvature":0.010683908936921064,"holonomicRotation":0.0,"angularVelocity":0.022504031860888438,"holonomicAngularVelocity":0.0},{"time":1.2345494997742115,"pose":{"rotation":{"radians":0.005196516603712009},"translation":{"x":4.011232905821892,"y":5.000105349676284}},"velocity":2.098596275697187,"acceleration":-2.999999999999958,"curvature":0.010767411876989975,"holonomicRotation":0.0,"angularVelocity":0.02251003815358455,"holonomicAngularVelocity":0.0},{"time":1.2398265410944236,"pose":{"rotation":{"radians":0.005315303005168026},"translation":{"x":4.022265358486825,"y":5.000163991057343}},"velocity":2.08276515173655,"acceleration":-3.0000000000000844,"curvature":0.01085059261321607,"holonomicRotation":0.0,"angularVelocity":0.022511428465748152,"holonomicAngularVelocity":0.0},{"time":1.245144595374997,"pose":{"rotation":{"radians":0.005435020003682123},"translation":{"x":4.033299031099176,"y":5.000223959879189}},"velocity":2.06681098889483,"acceleration":-2.9999999999999583,"curvature":0.010933450533750161,"holonomicRotation":0.0,"angularVelocity":0.022508146273984436,"holonomicAngularVelocity":0.0},{"time":1.2505046542527423,"pose":{"rotation":{"radians":0.00555566499293958},"translation":{"x":4.044333994040526,"y":5.000285267067259}},"velocity":2.0507308122615946,"acceleration":-2.9999999999999587,"curvature":0.01101597935942883,"holonomicRotation":0.0,"angularVelocity":0.022500133386607075,"holonomicAngularVelocity":0.0},{"time":1.2559077484002035,"pose":{"rotation":{"radians":0.005677235331957853},"translation":{"x":4.055370317692458,"y":5.000347923546992}},"velocity":2.0345215298192105,"acceleration":-3.000000000000082,"curvature":0.011098175735473345,"holonomicRotation":0.0,"angularVelocity":0.022487329930317674,"holonomicAngularVelocity":0.0},{"time":1.261354949732527,"pose":{"rotation":{"radians":0.005799728345514676},"translation":{"x":4.066408072436552,"y":5.000411940243827}},"velocity":2.0181799258222397,"acceleration":-3.0000000000000817,"curvature":0.011180033582282946,"holonomicRotation":0.0,"angularVelocity":0.022469674177795856,"holonomicAngularVelocity":0.0},{"time":1.2668473737776393,"pose":{"rotation":{"radians":0.005923141324254644},"translation":{"x":4.077447328654391,"y":5.000477328083202}},"velocity":2.0017026536869027,"acceleration":-2.9999999999999596,"curvature":0.011261548779417008,"holonomicRotation":0.0,"angularVelocity":0.02244710245856138,"holonomicAngularVelocity":0.0},{"time":1.2723861822247566,"pose":{"rotation":{"radians":0.006047471524965431},"translation":{"x":4.088488156727556,"y":5.000544097990557}},"velocity":1.985086228345551,"acceleration":-2.99999999999996,"curvature":0.011342717274285328,"holonomicRotation":0.0,"angularVelocity":0.022419548970595587,"holonomicAngularVelocity":0.0},{"time":1.2779725856679205,"pose":{"rotation":{"radians":0.006172716170528947},"translation":{"x":4.09953062703763,"y":5.000612260891328}},"velocity":1.9683270180160595,"acceleration":-3.0,"curvature":0.011423534178417212,"holonomicRotation":0.0,"angularVelocity":0.02238694571573278,"holonomicAngularVelocity":0.0},{"time":1.2836078465631173,"pose":{"rotation":{"radians":0.00629887245028371},"translation":{"x":4.110574809966194,"y":5.000681827710955}},"velocity":1.9514212353304685,"acceleration":-3.0000000000000786,"curvature":0.01150399648519609,"holonomicRotation":0.0,"angularVelocity":0.022349222375707512,"holonomicAngularVelocity":0.0},{"time":1.2892932824196812,"pose":{"rotation":{"radians":0.006425937520544878},"translation":{"x":4.12162077589483,"y":5.000752809374877}},"velocity":1.9343649277607768,"acceleration":-3.0,"curvature":0.011584097669272528,"holonomicRotation":0.0,"angularVelocity":0.022306305980695364,"holonomicAngularVelocity":0.0},{"time":1.2950302692490767,"pose":{"rotation":{"radians":0.006553908504168593},"translation":{"x":4.1326685952051205,"y":5.000825216808533}},"velocity":1.9171539672725901,"acceleration":-3.0000000000000386,"curvature":0.011663835755413158,"holonomicRotation":0.0,"angularVelocity":0.022258120863711844,"holonomicAngularVelocity":0.0},{"time":1.3008202452969122,"pose":{"rotation":{"radians":0.006682782490839312},"translation":{"x":4.143718338278646,"y":5.000899060937359}},"velocity":1.8997840391290841,"acceleration":-2.999999999999923,"curvature":0.011743203521207364,"holonomicRotation":0.0,"angularVelocity":0.022204588635512452,"holonomicAngularVelocity":0.0},{"time":1.306664715087156,"pose":{"rotation":{"radians":0.006812556538324355},"translation":{"x":4.154770075496987,"y":5.000974352686796}},"velocity":1.882250629758353,"acceleration":-2.999999999999962,"curvature":0.011822199119501524,"holonomicRotation":0.0,"angularVelocity":0.0221456275348786,"holonomicAngularVelocity":0.0},{"time":1.3125652538110955,"pose":{"rotation":{"radians":0.006943227671159846},"translation":{"x":4.165823877241729,"y":5.001051102982282}},"velocity":1.864549013586535,"acceleration":-2.999999999999925,"curvature":0.011900817255431517,"holonomicRotation":0.0,"angularVelocity":0.022081152623241368,"holonomicAngularVelocity":0.0},{"time":1.3185235120976648,"pose":{"rotation":{"radians":0.007074792881754277},"translation":{"x":4.176879813894452,"y":5.001129322749255}},"velocity":1.846674238726827,"acceleration":-3.0,"curvature":0.011979054451670544,"holonomicRotation":0.0,"angularVelocity":0.02201107541409986,"holonomicAngularVelocity":0.0},{"time":1.3245412212064653,"pose":{"rotation":{"radians":0.007207249130768201},"translation":{"x":4.187937955836737,"y":5.001209022913154}},"velocity":1.8286211114004252,"acceleration":-3.000000000000037,"curvature":0.012056905581450292,"holonomicRotation":0.0,"angularVelocity":0.021935303448025478,"holonomicAngularVelocity":0.0},{"time":1.330620198690198,"pose":{"rotation":{"radians":0.007340593346527591},"translation":{"x":4.198998373450166,"y":5.001290214399418}},"velocity":1.8103841789492272,"acceleration":-3.0,"curvature":0.012134365617043279,"holonomicRotation":0.0,"angularVelocity":0.021853740261787904,"holonomicAngularVelocity":0.0},{"time":1.3367623545794463,"pose":{"rotation":{"radians":0.007474822425978633},"translation":{"x":4.2100611371163215,"y":5.001372908133484}},"velocity":1.7919577112814824,"acceleration":-3.0,"curvature":0.012211433822282488,"holonomicRotation":0.0,"angularVelocity":0.02176628496180271,"holonomicAngularVelocity":0.0},{"time":1.342969698149976,"pose":{"rotation":{"radians":0.007609933234990596},"translation":{"x":4.221126317216784,"y":5.001457115040792}},"velocity":1.7733356805698932,"acceleration":-3.000000000000036,"curvature":0.01228810443945408,"holonomicRotation":0.0,"angularVelocity":0.021672831726492363,"holonomicAngularVelocity":0.0},{"time":1.3492443453410625,"pose":{"rotation":{"radians":0.007745922607706124},"translation":{"x":4.232193984133138,"y":5.001542846046782}},"velocity":1.7545117389966332,"acceleration":-3.0000000000000355,"curvature":0.012364371827522997,"holonomicRotation":0.0,"angularVelocity":0.02157326967613205,"holonomicAngularVelocity":0.0},{"time":1.3555885269031007,"pose":{"rotation":{"radians":0.007882787347418319},"translation":{"x":4.243264208246962,"y":5.001630112076889}},"velocity":1.7354791943105188,"acceleration":-2.999999999999965,"curvature":0.012440233746538893,"holonomicRotation":0.0,"angularVelocity":0.021467482400174338,"holonomicAngularVelocity":0.0},{"time":1.36200459736413,"pose":{"rotation":{"radians":0.008020524227118742},"translation":{"x":4.25433705993984,"y":5.0017189240565525}},"velocity":1.7162309829274314,"acceleration":-2.9999999999999654,"curvature":0.012515687161765763,"holonomicRotation":0.0,"angularVelocity":0.021355347376901854,"holonomicAngularVelocity":0.0},{"time":1.3684950449181956,"pose":{"rotation":{"radians":0.008159129989267377},"translation":{"x":4.265412609593354,"y":5.001809292911214}},"velocity":1.6967596402652343,"acceleration":-3.0,"curvature":0.012590725027599415,"holonomicRotation":0.0,"angularVelocity":0.021236735445024985,"holonomicAngularVelocity":0.0},{"time":1.3750625023541596,"pose":{"rotation":{"radians":0.008298601345381407},"translation":{"x":4.276490927589084,"y":5.001901229566308}},"velocity":1.6770572679573421,"acceleration":-3.0000000000000338,"curvature":0.012665346893345867,"holonomicRotation":0.0,"angularVelocity":0.02111151062805692,"holonomicAngularVelocity":0.0},{"time":1.3817097591620096,"pose":{"rotation":{"radians":0.008438934978127755},"translation":{"x":4.287572084308612,"y":5.001994744947276}},"velocity":1.6571154975337923,"acceleration":-3.0,"curvature":0.012739547483563794,"holonomicRotation":0.0,"angularVelocity":0.020979528949960167,"holonomicAngularVelocity":0.0},{"time":1.3884397749755966,"pose":{"rotation":{"radians":0.008580127539722593},"translation":{"x":4.298656150133521,"y":5.002089849979557}},"velocity":1.6369254500930315,"acceleration":-2.999999999999967,"curvature":0.012813322421738193,"holonomicRotation":0.0,"angularVelocity":0.02084063811942157,"holonomicAngularVelocity":0.0},{"time":1.3952556945367238,"pose":{"rotation":{"radians":0.008722175652747133},"translation":{"x":4.309743195445393,"y":5.002186555588586}},"velocity":1.6164776914096501,"acceleration":-2.9999999999999347,"curvature":0.012886668991547997,"holonomicRotation":0.0,"angularVelocity":0.02069467682744082,"holonomicAngularVelocity":0.0},{"time":1.402160864396539,"pose":{"rotation":{"radians":0.008865075911434595},"translation":{"x":4.320833290625808,"y":5.002284872699805}},"velocity":1.5957621818302044,"acceleration":-3.0,"curvature":0.012959582945326889,"holonomicRotation":0.0,"angularVelocity":0.02054147346000439,"holonomicAngularVelocity":0.0},{"time":1.4091588516073805,"pose":{"rotation":{"radians":0.009008824879999544},"translation":{"x":4.331926506056349,"y":5.002384812238652}},"velocity":1.5747682201976803,"acceleration":-2.9999999999999685,"curvature":0.013032060892939982,"holonomicRotation":0.0,"angularVelocity":0.020380845657527864,"holonomicAngularVelocity":0.0},{"time":1.4162534647030025,"pose":{"rotation":{"radians":0.009153419094501292},"translation":{"x":4.343022912118598,"y":5.002486385130562}},"velocity":1.5534843809108145,"acceleration":-2.999999999999969,"curvature":0.013104099500584698,"holonomicRotation":0.0,"angularVelocity":0.020212598967321888,"holonomicAngularVelocity":0.0},{"time":1.4234487773193203,"pose":{"rotation":{"radians":0.009298855062859435},"translation":{"x":4.3541225791941365,"y":5.002589602300979}},"velocity":1.531898443061861,"acceleration":-3.0000000000000306,"curvature":0.01317569548981583,"holonomicRotation":0.0,"angularVelocity":0.020036525503373863,"holonomicAngularVelocity":0.0},{"time":1.4307491548736961,"pose":{"rotation":{"radians":0.009445129263911944},"translation":{"x":4.365225577664546,"y":5.002694474675339}},"velocity":1.5099973103987332,"acceleration":-3.00000000000003,"curvature":0.013246844106733328,"holonomicRotation":0.0,"angularVelocity":0.019852402946368808,"holonomicAngularVelocity":0.0},{"time":1.4381592848013396,"pose":{"rotation":{"radians":0.009592238149120469},"translation":{"x":4.376331977911408,"y":5.002801013179079}},"velocity":1.4877669206158026,"acceleration":-3.0000000000000298,"curvature":0.013317542969652613,"holonomicRotation":0.0,"angularVelocity":0.01965999274153491,"holonomicAngularVelocity":0.0},{"time":1.4456842109464052,"pose":{"rotation":{"radians":0.009740178142513045},"translation":{"x":4.387441850316305,"y":5.00290922873764}},"velocity":1.4651921421806056,"acceleration":-3.0000000000000293,"curvature":0.013387787463607075,"holonomicRotation":0.0,"angularVelocity":0.01945903826095254,"holonomicAngularVelocity":0.0},{"time":1.4533293728277814,"pose":{"rotation":{"radians":0.00988894564007392},"translation":{"x":4.398555265260819,"y":5.00301913227646}},"velocity":1.4422566565364774,"acceleration":-2.999999999999942,"curvature":0.013457576816404958,"holonomicRotation":0.0,"angularVelocity":0.019249263037924732,"holonomicAngularVelocity":0.0},{"time":1.4611006506518656,"pose":{"rotation":{"radians":0.010038537011050508},"translation":{"x":4.409672293126531,"y":5.003130734720977}},"velocity":1.418942823064225,"acceleration":-3.0,"curvature":0.013526905027224409,"holonomicRotation":0.0,"angularVelocity":0.019030368254164796,"holonomicAngularVelocity":0.0},{"time":1.469004417135339,"pose":{"rotation":{"radians":0.010188948597825931},"translation":{"x":4.420793004295023,"y":5.00324404699663}},"velocity":1.3952315236138046,"acceleration":-3.000000000000028,"curvature":0.013595769926571457,"holonomicRotation":0.0,"angularVelocity":0.018802030098805107,"holonomicAngularVelocity":0.0},{"time":1.4770475974414883,"pose":{"rotation":{"radians":0.010340176716032268},"translation":{"x":4.431917469147876,"y":5.003359080028858}},"velocity":1.3711019826953565,"acceleration":-3.0,"curvature":0.013664168638098774,"holonomicRotation":0.0,"angularVelocity":0.01856389671052834,"holonomicAngularVelocity":0.0},{"time":1.4852377388392224,"pose":{"rotation":{"radians":0.010492217654984426},"translation":{"x":4.443045758066675,"y":5.003475844743098}},"velocity":1.3465315585021542,"acceleration":-3.0,"curvature":0.013732097600596098,"holonomicRotation":0.0,"angularVelocity":0.018315584597806533,"holonomicAngularVelocity":0.0},{"time":1.4935830920853153,"pose":{"rotation":{"radians":0.01064506767836182},"translation":{"x":4.454177941432998,"y":5.00359435206479}},"velocity":1.3214954987638758,"acceleration":-2.9999999999999734,"curvature":0.013799553317604461,"holonomicRotation":0.0,"angularVelocity":0.01805667423150666,"holonomicAngularVelocity":0.0},{"time":1.502092707035953,"pose":{"rotation":{"radians":0.010798723023361045},"translation":{"x":4.465314089628428,"y":5.003714612919373}},"velocity":1.2959666539119625,"acceleration":-2.999999999999974,"curvature":0.013866533080419866,"holonomicRotation":0.0,"angularVelocity":0.017786705363929744,"holonomicAngularVelocity":0.0},{"time":1.5107765456525648,"pose":{"rotation":{"radians":0.010953179902262633},"translation":{"x":4.4764542730345465,"y":5.003836638232283}},"velocity":1.2699151380621274,"acceleration":-3.0,"curvature":0.013933034225831817,"holonomicRotation":0.0,"angularVelocity":0.017505170914749554,"holonomicAngularVelocity":0.0},{"time":1.5196456164342627,"pose":{"rotation":{"radians":0.011108434502151265},"translation":{"x":4.487598562032937,"y":5.003960438928961}},"velocity":1.2433079257170339,"acceleration":-3.0,"curvature":0.013999052704154299,"holonomicRotation":0.0,"angularVelocity":0.01721150997862838,"holonomicAngularVelocity":0.0},{"time":1.5287121354629356,"pose":{"rotation":{"radians":0.011264482984884694},"translation":{"x":4.498747027005179,"y":5.004086025934845}},"velocity":1.2161083686310152,"acceleration":-2.9999999999999756,"curvature":0.014064586677991929,"holonomicRotation":0.0,"angularVelocity":0.016905099454413215,"holonomicAngularVelocity":0.0},{"time":1.5379897207993307,"pose":{"rotation":{"radians":0.011421321487693259},"translation":{"x":4.509899738332857,"y":5.004213410175373}},"velocity":1.18827561262183,"acceleration":-3.0,"curvature":0.014129632921943,"holonomicRotation":0.0,"angularVelocity":0.01658524385117878,"holonomicAngularVelocity":0.0},{"time":1.5474936290829056,"pose":{"rotation":{"radians":0.011578946124115586},"translation":{"x":4.52105676639755,"y":5.004342602575985}},"velocity":1.1597638877711056,"acceleration":-2.9999999999999765,"curvature":0.014194188269933013,"holonomicRotation":0.0,"angularVelocity":0.016251162547616556,"holonomicAngularVelocity":0.0},{"time":1.5572410461074606,"pose":{"rotation":{"radians":0.011737352982601035},"translation":{"x":4.532218181580842,"y":5.0044736140621175}},"velocity":1.1305216366974404,"acceleration":-3.0,"curvature":0.014258250313705659,"holonomicRotation":0.0,"angularVelocity":0.015901974775748565,"holonomicAngularVelocity":0.0},{"time":1.5672514472342323,"pose":{"rotation":{"radians":0.011896538128814083},"translation":{"x":4.543384054264313,"y":5.004606455559211}},"velocity":1.1004904333171253,"acceleration":-3.000000000000022,"curvature":0.014321816686682145,"holonomicRotation":0.0,"angularVelocity":0.01553668003681898,"holonomicAngularVelocity":0.0},{"time":1.577547049326657,"pose":{"rotation":{"radians":0.01205649760431049},"translation":{"x":4.554554454829544,"y":5.004741137992702}},"velocity":1.0696036270398512,"acceleration":-2.9999999999999782,"curvature":0.014384883680380213,"holonomicRotation":0.0,"angularVelocity":0.015154134168306885,"holonomicAngularVelocity":0.0},{"time":1.5881533843284092,"pose":{"rotation":{"radians":0.012217227427961053},"translation":{"x":4.565729453658121,"y":5.004877672288031}},"velocity":1.0377846220345945,"acceleration":-3.0,"curvature":0.014447449721220206,"holonomicRotation":0.0,"angularVelocity":0.014753018204878572,"holonomicAngularVelocity":0.0},{"time":1.59910003707542,"pose":{"rotation":{"radians":0.012378723595220187},"translation":{"x":4.576909121131622,"y":5.005016069370635}},"velocity":1.0049446637935624,"acceleration":-2.9999999999999796,"curvature":0.0145095105246557,"holonomicRotation":0.0,"angularVelocity":0.014331798524331606,"holonomicAngularVelocity":0.0},{"time":1.6104216087664265,"pose":{"rotation":{"radians":0.012540982079674468},"translation":{"x":4.58809352763163,"y":5.0051563401659545}},"velocity":0.9709799487205432,"acceleration":-2.9999999999999902,"curvature":0.01457106597208803,"holonomicRotation":0.0,"angularVelocity":0.01388867383562493,"holonomicAngularVelocity":0.0},{"time":1.6221589966688716,"pose":{"rotation":{"radians":0.012703998831933738},"translation":{"x":4.599282743539725,"y":5.005298495599427}},"velocity":0.9357677850132076,"acceleration":-3.0000000000000093,"curvature":0.014632111880396259,"holonomicRotation":0.0,"angularVelocity":0.013421504618578429,"holonomicAngularVelocity":0.0},{"time":1.634361127025149,"pose":{"rotation":{"radians":0.012867769780867011},"translation":{"x":4.610476839237492,"y":5.005442546596489}},"velocity":0.8991613939443753,"acceleration":-3.000000000000009,"curvature":0.014692646168027707,"holonomicRotation":0.0,"angularVelocity":0.012927716119804443,"holonomicAngularVelocity":0.0},{"time":1.6470873542971594,"pose":{"rotation":{"radians":0.013032290834315674},"translation":{"x":4.621675885106512,"y":5.005588504082584}},"velocity":0.8609827121283444,"acceleration":-2.999999999999991,"curvature":0.01475266746063424,"holonomicRotation":0.0,"angularVelocity":0.01240416210036887,"holonomicAngularVelocity":0.0},{"time":1.6604108695747999,"pose":{"rotation":{"radians":0.013197557877566268},"translation":{"x":4.632879951528365,"y":5.005736378983147}},"velocity":0.8210121662954231,"acceleration":-2.999999999999983,"curvature":0.01481217174517524,"holonomicRotation":0.0,"angularVelocity":0.011846928612330693,"holonomicAngularVelocity":0.0},{"time":1.6744236912518646,"pose":{"rotation":{"radians":0.013363566775631774},"translation":{"x":4.644089108884634,"y":5.005886182223615}},"velocity":0.7789737012642287,"acceleration":-3.000000000000008,"curvature":0.014871157074891644,"holonomicRotation":0.0,"angularVelocity":0.011251040162211855,"holonomicAngularVelocity":0.0},{"time":1.6892442407276234,"pose":{"rotation":{"radians":0.013530313373009584},"translation":{"x":4.655303427556901,"y":5.006037924729431}},"velocity":0.7345120528369529,"acceleration":-2.9999999999999774,"curvature":0.014929622856667947,"holonomicRotation":0.0,"angularVelocity":0.010610002590287127,"holonomicAngularVelocity":0.0},{"time":1.7050293565602461,"pose":{"rotation":{"radians":0.013697793492881694},"translation":{"x":4.666522977926747,"y":5.006191617426031}},"velocity":0.6871567053390846,"acceleration":-3.0,"curvature":0.014987564576154093,"holonomicRotation":0.0,"angularVelocity":0.009915054615199006,"holonomicAngularVelocity":0.0},{"time":1.7219944114839296,"pose":{"rotation":{"radians":0.013866002938999866},"translation":{"x":4.677747830375753,"y":5.0063472712388535}},"velocity":0.6362615405680339,"acceleration":-3.000000000000013,"curvature":0.015044981719916284,"holonomicRotation":0.0,"angularVelocity":0.009153859613241723,"holonomicAngularVelocity":0.0},{"time":1.7404494198653395,"pose":{"rotation":{"radians":0.014034937494884492},"translation":{"x":4.688978055285503,"y":5.006504897093337}},"velocity":0.5808965154238044,"acceleration":-2.999999999999988,"curvature":0.015101871838380201,"holonomicRotation":0.0,"angularVelocity":0.008308016089059957,"holonomicAngularVelocity":0.0},{"time":1.7608701109562395,"pose":{"rotation":{"radians":0.014204592925017412},"translation":{"x":4.700213723037578,"y":5.006664505914922}},"velocity":0.5196344421511044,"acceleration":-3.0000000000000053,"curvature":0.015158233175914283,"holonomicRotation":0.0,"angularVelocity":0.00734771601173895,"holonomicAngularVelocity":0.0},{"time":1.784057186846101,"pose":{"rotation":{"radians":0.014374964973798754},"translation":{"x":4.711454904013559,"y":5.006826108629044}},"velocity":0.45007321448152005,"acceleration":-2.999999999999986,"curvature":0.01521406272917908,"holonomicRotation":0.0,"angularVelocity":0.006217980349213352,"holonomicAngularVelocity":0.0},{"time":1.8115716504669912,"pose":{"rotation":{"radians":0.014546049367912595},"translation":{"x":4.722701668595029,"y":5.006989716161144}},"velocity":0.3675298236188496,"acceleration":-2.999999999999998,"curvature":0.015269359470704073,"holonomicRotation":0.0,"angularVelocity":0.004789138652291996,"holonomicAngularVelocity":0.0},{"time":1.8474429123111311,"pose":{"rotation":{"radians":0.014717841814516852},"translation":{"x":4.733954087163569,"y":5.00715533943666}},"velocity":0.2599160380864297,"acceleration":-3.0000000000000044,"curvature":0.015324121124505164,"holonomicRotation":0.0,"angularVelocity":0.0019909835814999376,"holonomicAngularVelocity":0.0},{"time":1.9340815916732743,"pose":{"rotation":{"radians":0.014890338002649717},"translation":{"x":4.745212230100761,"y":5.00732298938103}},"velocity":0,"acceleration":-3.0000000000000013,"curvature":0.015324121124505164,"holonomicRotation":0.0,"angularVelocity":0.0,"holonomicAngularVelocity":0.0}] \ No newline at end of file diff --git a/src/main/deploy/pathplanner/navgrid.json b/src/main/deploy/pathplanner/navgrid.json new file mode 100644 index 0000000..9a7f111 --- /dev/null +++ b/src/main/deploy/pathplanner/navgrid.json @@ -0,0 +1 @@ +{"field_size":{"x":16.540513081026162,"y":8.016256032512064},"nodeSizeMeters":0.2,"grid":[[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]]} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/Crazy.path b/src/main/deploy/pathplanner/paths/Crazy.path new file mode 100644 index 0000000..41cc623 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/Crazy.path @@ -0,0 +1,60 @@ +{ + "version": 1.0, + "waypoints": [ + { + "anchor": { + "x": 2.1531490090486836, + "y": 4.758540626220561 + }, + "prevControl": null, + "nextControl": { + "x": 3.205860537719301, + "y": 4.801218120626126 + }, + "isLocked": false + }, + { + "anchor": { + "x": 5.297057763592013, + "y": 4.3673302608362095 + }, + "prevControl": { + "x": 4.093579420582081, + "y": 5.110054892113549 + }, + "nextControl": { + "x": 6.342302845365116, + "y": 3.722259020075234 + }, + "isLocked": false + }, + { + "anchor": { + "x": 7.28633534436259, + "y": 5.796471271393628 + }, + "prevControl": { + "x": 6.727893584392253, + "y": 5.211437046662799 + }, + "nextControl": null, + "isLocked": false + } + ], + "rotationTargets": [], + "constraintZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 540.0, + "maxAngularAcceleration": 720.0 + }, + "goalEndState": { + "velocity": 0, + "rotation": 0 + }, + "reversed": false, + "folder": null, + "previewStartingState": null +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/Crzy.path b/src/main/deploy/pathplanner/paths/Crzy.path new file mode 100644 index 0000000..0caac99 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/Crzy.path @@ -0,0 +1,90 @@ +{ + "version": 1.0, + "waypoints": [ + { + "anchor": { + "x": 2.0, + "y": 7.0 + }, + "prevControl": null, + "nextControl": { + "x": 4.0401030839126175, + "y": 7.220592380398994 + }, + "isLocked": false + }, + { + "anchor": { + "x": 4.383419886187437, + "y": 5.142299595199636 + }, + "prevControl": { + "x": 4.971962975801415, + "y": 5.356872596621399 + }, + "nextControl": { + "x": 3.2887249451662854, + "y": 4.7431920646190076 + }, + "isLocked": false + }, + { + "anchor": { + "x": 2.1579913285845844, + "y": 3.9100375013203696 + }, + "prevControl": { + "x": 2.164121985768064, + "y": 5.025817108713536 + }, + "nextControl": { + "x": 2.152302649133363, + "y": 2.8746978411982056 + }, + "isLocked": false + }, + { + "anchor": { + "x": 2.489046816492447, + "y": 0.7466183946452396 + }, + "prevControl": { + "x": 1.646813008530576, + "y": 1.090858943717516 + }, + "nextControl": { + "x": 3.3312806244543185, + "y": 0.4023778455729643 + }, + "isLocked": false + }, + { + "anchor": { + "x": 7.148346275936437, + "y": 0.7466183946452396 + }, + "prevControl": { + "x": 4.463118429572664, + "y": 0.7037037943608875 + }, + "nextControl": null, + "isLocked": false + } + ], + "rotationTargets": [], + "constraintZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 540.0, + "maxAngularAcceleration": 720.0 + }, + "goalEndState": { + "velocity": 0, + "rotation": 0 + }, + "reversed": false, + "folder": null, + "previewStartingState": null +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/New Path.path b/src/main/deploy/pathplanner/paths/New Path.path new file mode 100644 index 0000000..c1e3848 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/New Path.path @@ -0,0 +1,45 @@ +{ + "version": 1.0, + "waypoints": [ + { + "anchor": { + "x": 2.0, + "y": 7.0 + }, + "prevControl": null, + "nextControl": { + "x": 3.0, + "y": 6.5 + }, + "isLocked": false + }, + { + "anchor": { + "x": 4.881566490405708, + "y": 6.786489482069873 + }, + "prevControl": { + "x": 3.8815664904057083, + "y": 7.786489482069873 + }, + "nextControl": null, + "isLocked": false + } + ], + "rotationTargets": [], + "constraintZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 2.77, + "maxAcceleration": 2.77, + "maxAngularVelocity": 180.0, + "maxAngularAcceleration": 180.0 + }, + "goalEndState": { + "velocity": 0, + "rotation": 0 + }, + "reversed": false, + "folder": null, + "previewStartingState": null +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/Slalom.path b/src/main/deploy/pathplanner/paths/Slalom.path new file mode 100644 index 0000000..083f30a --- /dev/null +++ b/src/main/deploy/pathplanner/paths/Slalom.path @@ -0,0 +1,180 @@ +{ + "version": 1.0, + "waypoints": [ + { + "anchor": { + "x": 2.362032058590057, + "y": 1.0111413859229823 + }, + "prevControl": null, + "nextControl": { + "x": 3.7243653735965796, + "y": 1.0111413859229823 + }, + "isLocked": false + }, + { + "anchor": { + "x": 4.1983628512735045, + "y": 2.3684392823369564 + }, + "prevControl": { + "x": 3.4294174229767975, + "y": 1.1558714915613817 + }, + "nextControl": { + "x": 4.5712119690647635, + "y": 2.9563936603924006 + }, + "isLocked": false + }, + { + "anchor": { + "x": 5.765176530355408, + "y": 4.071893689245771 + }, + "prevControl": { + "x": 4.818713385192982, + "y": 4.08623403993005 + }, + "nextControl": { + "x": 6.714229495165657, + "y": 4.057514098869858 + }, + "isLocked": false + }, + { + "anchor": { + "x": 8.43422541390772, + "y": 3.762174706171441 + }, + "prevControl": { + "x": 7.660837107409729, + "y": 4.161903493799616 + }, + "nextControl": { + "x": 9.244960399014055, + "y": 3.343143140835583 + }, + "isLocked": false + }, + { + "anchor": { + "x": 9.46358556353711, + "y": 2.3684392823369564 + }, + "prevControl": { + "x": 8.458787563900012, + "y": 2.4049773914146684 + }, + "nextControl": { + "x": 10.252304851172465, + "y": 2.3397585809683985 + }, + "isLocked": false + }, + { + "anchor": { + "x": 9.46358556353711, + "y": 3.5162213960830027 + }, + "prevControl": { + "x": 10.128570438961408, + "y": 3.4888932505176204 + }, + "nextControl": { + "x": 8.643977668456495, + "y": 3.5499039123191927 + }, + "isLocked": false + }, + { + "anchor": { + "x": 7.705474865497533, + "y": 2.3684392823369564 + }, + "prevControl": { + "x": 9.39981989055122, + "y": 2.3775486641920844 + }, + "nextControl": { + "x": 6.576857663978881, + "y": 2.362371447920189 + }, + "isLocked": false + }, + { + "anchor": { + "x": 6.1386611864156295, + "y": 2.3684392823369564 + }, + "prevControl": { + "x": 7.213146752483654, + "y": 2.3528670277562593 + }, + "nextControl": { + "x": 5.510113838411842, + "y": 2.3775486641920844 + }, + "isLocked": false + }, + { + "anchor": { + "x": 5.20950423719264, + "y": 2.5415175375843764 + }, + "prevControl": { + "x": 5.464566929136206, + "y": 2.3957674279023387 + }, + "nextControl": { + "x": 4.588093994030496, + "y": 2.8966091051056013 + }, + "isLocked": false + }, + { + "anchor": { + "x": 4.416988015796561, + "y": 3.0789710670368904 + }, + "prevControl": { + "x": 4.899785254118311, + "y": 2.751033320252306 + }, + "nextControl": { + "x": 3.979150169614949, + "y": 3.376370358782891 + }, + "isLocked": false + }, + { + "anchor": { + "x": 2.362032058590057, + "y": 3.2695999560156555 + }, + "prevControl": { + "x": 3.451898710595275, + "y": 3.283940306699934 + }, + "nextControl": null, + "isLocked": false + } + ], + "rotationTargets": [], + "constraintZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 2.91, + "maxAcceleration": 2.0, + "maxAngularVelocity": 1031.0, + "maxAngularAcceleration": 620.0 + }, + "goalEndState": { + "velocity": 0, + "rotation": 180.0 + }, + "reversed": false, + "folder": null, + "previewStartingState": null +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/Straight.path b/src/main/deploy/pathplanner/paths/Straight.path new file mode 100644 index 0000000..99d015a --- /dev/null +++ b/src/main/deploy/pathplanner/paths/Straight.path @@ -0,0 +1,45 @@ +{ + "version": 1.0, + "waypoints": [ + { + "anchor": { + "x": 10.083023529683421, + "y": 7.0 + }, + "prevControl": null, + "nextControl": { + "x": 10.857337879665714, + "y": 7.0 + }, + "isLocked": false + }, + { + "anchor": { + "x": 7.08, + "y": 7.0 + }, + "prevControl": { + "x": 6.141725165026472, + "y": 7.0 + }, + "nextControl": null, + "isLocked": false + } + ], + "rotationTargets": [], + "constraintZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 2.91, + "maxAcceleration": 1.25, + "maxAngularVelocity": 1031.0, + "maxAngularAcceleration": 620.0 + }, + "goalEndState": { + "velocity": 0, + "rotation": 0.0 + }, + "reversed": false, + "folder": null, + "previewStartingState": null +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/Test.path b/src/main/deploy/pathplanner/paths/Test.path new file mode 100644 index 0000000..78ed86c --- /dev/null +++ b/src/main/deploy/pathplanner/paths/Test.path @@ -0,0 +1,69 @@ +{ + "version": 1.0, + "waypoints": [ + { + "anchor": { + "x": 2.0, + "y": 7.0 + }, + "prevControl": null, + "nextControl": { + "x": 2.999956809642841, + "y": 6.499913628611105 + }, + "isLocked": false + }, + { + "anchor": { + "x": 4.7358163807209195, + "y": 5.092144457018224 + }, + "prevControl": { + "x": 3.9325117958601283, + "y": 5.109251820627549 + }, + "nextControl": { + "x": 5.592097917288076, + "y": 5.073908883769824 + }, + "isLocked": false + }, + { + "anchor": { + "x": 7.049599371926571, + "y": 6.750051954652921 + }, + "prevControl": { + "x": 5.689511066289948, + "y": 6.069860951426266 + }, + "nextControl": null, + "isLocked": false + } + ], + "rotationTargets": [ + { + "waypointRelativePos": 1.0, + "rotationDegrees": 90.0 + }, + { + "waypointRelativePos": 2.0, + "rotationDegrees": 0.01 + } + ], + "constraintZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 540.0, + "maxAngularAcceleration": 620.0 + }, + "goalEndState": { + "velocity": 0.0, + "rotation": 0.0 + }, + "reversed": false, + "folder": null, + "previewStartingState": null +} \ No newline at end of file diff --git a/src/main/deploy/pathplanner/paths/crazy.path b/src/main/deploy/pathplanner/paths/crazy.path new file mode 100644 index 0000000..41cc623 --- /dev/null +++ b/src/main/deploy/pathplanner/paths/crazy.path @@ -0,0 +1,60 @@ +{ + "version": 1.0, + "waypoints": [ + { + "anchor": { + "x": 2.1531490090486836, + "y": 4.758540626220561 + }, + "prevControl": null, + "nextControl": { + "x": 3.205860537719301, + "y": 4.801218120626126 + }, + "isLocked": false + }, + { + "anchor": { + "x": 5.297057763592013, + "y": 4.3673302608362095 + }, + "prevControl": { + "x": 4.093579420582081, + "y": 5.110054892113549 + }, + "nextControl": { + "x": 6.342302845365116, + "y": 3.722259020075234 + }, + "isLocked": false + }, + { + "anchor": { + "x": 7.28633534436259, + "y": 5.796471271393628 + }, + "prevControl": { + "x": 6.727893584392253, + "y": 5.211437046662799 + }, + "nextControl": null, + "isLocked": false + } + ], + "rotationTargets": [], + "constraintZones": [], + "eventMarkers": [], + "globalConstraints": { + "maxVelocity": 3.0, + "maxAcceleration": 3.0, + "maxAngularVelocity": 540.0, + "maxAngularAcceleration": 720.0 + }, + "goalEndState": { + "velocity": 0, + "rotation": 0 + }, + "reversed": false, + "folder": null, + "previewStartingState": null +} \ No newline at end of file diff --git a/src/main/java/frc/robot/BuildConstants.java b/src/main/java/frc/robot/BuildConstants.java new file mode 100644 index 0000000..b4e1d47 --- /dev/null +++ b/src/main/java/frc/robot/BuildConstants.java @@ -0,0 +1,19 @@ +package frc.robot; + +/** + * Automatically generated file containing build version information. + */ +public final class BuildConstants { + public static final String MAVEN_GROUP = ""; + public static final String MAVEN_NAME = "Cubezilla"; + public static final String VERSION = "unspecified"; + public static final int GIT_REVISION = 30; + public static final String GIT_SHA = "d6486c54ef08330f60788a57c7a2b5a83fb52d6b"; + public static final String GIT_DATE = "2023-11-23 22:42:10 EST"; + public static final String GIT_BRANCH = "advantagekit-demo-sam"; + public static final String BUILD_DATE = "2023-11-26 12:58:41 EST"; + public static final long BUILD_UNIX_TIME = 1701021521540L; + public static final int DIRTY = 0; + + private BuildConstants(){} +} diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 2ec763a..f726ffc 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -4,16 +4,19 @@ package frc.robot; -import com.ThePinkAlliance.core.util.Gains; +import com.pathplanner.lib.util.HolonomicPathFollowerConfig; +import com.pathplanner.lib.util.PIDConstants; +import com.pathplanner.lib.util.ReplanningConfig; import edu.wpi.first.math.geometry.Translation2d; import edu.wpi.first.math.kinematics.SwerveDriveKinematics; import edu.wpi.first.math.util.Units; +import frc.robot.lib.Gains; /** Add your docs here. */ public class Constants { public static final class ModuleConstants { - public static final double kWheelDiameterMeters = Units.inchesToMeters(4.09); - public static final double kDriveMotorGearRatio = 1 / 8.14; + public static final double kWheelDiameterMeters = Units.inchesToMeters(3.80); + public static final double kDriveMotorGearRatio = 0.1944444444; public static final double kTurningMotorGearRatio = 1 / 12.8; public static final double kDriveEncoderRot2Meter = kDriveMotorGearRatio * Math.PI * kWheelDiameterMeters; @@ -21,7 +24,13 @@ public static final class ModuleConstants { public static final double kDriveEncoderRPM2MeterPerSec = kDriveEncoderRot2Meter / 60; public static final double kTurningEncoderRPM2RadPerSec = kTurningEncoderRot2Rad / 60; public static final double kPTurning = 0.47; - public static final Gains kSteerGains = new Gains(.45, 0.02, 0); + + public static final Gains kBackLeftSteerGains = new Gains(.45, 0.01, 0); + public static final Gains kBackRightSteerGains = new Gains(.45, 0.01, 0); + + public static final Gains kFrontRightSteerGains = new Gains(.45, 0.01, 0); + public static final Gains kFrontLeftSteerGains = new Gains(.45, 0.01, 0); + } public static final class OIConstants { @@ -42,6 +51,17 @@ public static final class DriveConstants { new Translation2d(kWheelBase / 2, -kTrackWidth / 2), new Translation2d(kWheelBase / 2, kTrackWidth / 2)); + /** + * HolonomicPathFollowerConfig gives pathplanner information about the + * drivetrain and + * specifies PID controllers in x & y axies. + */ + public static HolonomicPathFollowerConfig kPathFollowerConfig = new HolonomicPathFollowerConfig( + new PIDConstants(4, 0, .25), // 0.006 // kp: 4.5, kD .35 + new PIDConstants(5.5, 0, 0.000), + DriveConstants.kPhysicalMaxSpeedMetersPerSecond, DriveConstants.kBaseRadius, + new ReplanningConfig(), 0.02); + public static final int kFrontLeftDriveMotorPort = 15; public static final int kBackLeftDriveMotorPort = 17; public static final int kFrontRightDriveMotorPort = 11; @@ -83,17 +103,15 @@ public static final class DriveConstants { public static final double kFrontLeftDriveAbsoluteEncoderOffsetRad = 2.98 + 3.14;// -0.09; public static final double kBackLeftDriveAbsoluteEncoderOffsetRad = -2.26 - 3.14;// 0.94;// 4.05 - 0.20; public static final double kFrontRightDriveAbsoluteEncoderOffsetRad = 0.71 + 3.14;// 0.71; - public static final double kBackRightDriveAbsoluteEncoderOffsetRad = -1.00 - 3.14;// 5.27; + public static final double kBackRightDriveAbsoluteEncoderOffsetRad = 1.2 + 3.14;// -0.79 - 3.14;// 5.27; - // This is the max speed without load. - public static final double kPhysicalMaxSpeedMetersPerSecond = 6; - public static final double kPhysicalMaxAngularSpeedRadiansPerSecond = 2 * 2 * Math.PI; + public static final double kPhysicalMaxSpeedMetersPerSecond = 2.91; + public static final double kPhysicalMaxAngularSpeedRadiansPerSecond = 18; // 18 rad/sec public static final double kTeleDriveMaxSpeedMetersPerSecond = kPhysicalMaxSpeedMetersPerSecond * 1; // 0.96 - public static final double kTeleDriveMaxAngularSpeedRadiansPerSecond = kPhysicalMaxAngularSpeedRadiansPerSecond - / 2.8; + public static final double kTeleDriveMaxAngularSpeedRadiansPerSecond = kPhysicalMaxAngularSpeedRadiansPerSecond; public static double kTeleDriveSpeedReduction = 1; - public static final double kTeleDriveMaxAccelerationUnitsPerSecond = 2.5; + public static final double kTeleDriveMaxAccelerationUnitsPerSecond = kPhysicalMaxSpeedMetersPerSecond * 0.55; public static final double kTeleDriveMaxAngularAccelerationUnitsPerSecond = 3.5; } } diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 07d5f4a..8e4dfda 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -4,6 +4,7 @@ package frc.robot; +import com.revrobotics.REVPhysicsSim; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; @@ -21,6 +22,7 @@ public void robotInit() { @Override public void robotPeriodic() { CommandScheduler.getInstance().run(); + REVPhysicsSim.getInstance().run(); } @Override diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index ed886a9..37913c4 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -4,18 +4,30 @@ package frc.robot; -import com.ThePinkAlliance.core.util.joystick.JoystickMap; import com.pathplanner.lib.auto.AutoBuilder; +import com.pathplanner.lib.util.ChassisSpeedsRateLimiter; +import com.pathplanner.lib.commands.FollowPathCommand; +import com.pathplanner.lib.commands.FollowPathWithEvents; +import com.pathplanner.lib.controllers.PPHolonomicDriveController; import com.pathplanner.lib.path.PathPlannerPath; -import com.pathplanner.lib.util.HolonomicPathFollowerConfig; import com.pathplanner.lib.util.PIDConstants; +import com.pathplanner.lib.util.PathPlannerLogging; import com.pathplanner.lib.util.ReplanningConfig; +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.kinematics.SwerveModuleState; import edu.wpi.first.wpilibj.Joystick; +import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.Commands; import edu.wpi.first.wpilibj2.command.button.JoystickButton; import frc.robot.commands.Intake; import frc.robot.commands.JoystickDrive; +import frc.robot.commands.autos.SpeedTest; +import frc.robot.lib.JoystickMap; import frc.robot.subsystems.drive.IntakeSubsystem; +import frc.robot.subsystems.drive.PinkHolonomicController; import frc.robot.subsystems.drive.SwerveSubsystem; public class RobotContainer { @@ -26,19 +38,37 @@ public class RobotContainer { public final Joystick towerJoystick; public PathPlannerPath selectedTrajectory; + public SendableChooser chooser; public RobotContainer() { this.swerveSubsystem = new SwerveSubsystem(Constants.DriveConstants.kDriveKinematics); this.intakeSubsystem = new IntakeSubsystem(); this.driverJoystick = new Joystick(0); this.towerJoystick = new Joystick(1); + this.chooser = new SendableChooser<>(); configureAuto(); configureBindings(); } private void configureAuto() { - this.selectedTrajectory = PathPlannerPath.fromPathFile("test"); + /* + * Using redundant fromPath methods in the event a path does not exist it will + * throw an error on startup instead of doing it before a match. + */ + this.chooser.addOption("Test", PathPlannerPath.fromPathFile("Test")); + this.chooser.setDefaultOption("Crazy", PathPlannerPath.fromPathFile("crazy")); + this.chooser.addOption("Straight", PathPlannerPath.fromPathFile("Straight")); + this.chooser.addOption("New New Test", PathPlannerPath.fromPathFile("New New Path")); + this.chooser.addOption("Slalom", PathPlannerPath.fromPathFile("Slalom")); + SmartDashboard.putData(chooser); + + AutoBuilder.configureHolonomic(swerveSubsystem::getCurrentPose, swerveSubsystem::resetPose, + swerveSubsystem::getSpeeds, (speeds) -> { + + swerveSubsystem.setStates(speeds); + }, Constants.DriveConstants.kPathFollowerConfig, + swerveSubsystem); } private void configureBindings() { @@ -47,24 +77,31 @@ private void configureBindings() { () -> driverJoystick.getRawAxis(JoystickMap.LEFT_Y_AXIS), () -> driverJoystick.getRawAxis(JoystickMap.RIGHT_X_AXIS))); + new JoystickButton(driverJoystick, JoystickMap.BUTTON_BACK) + .onTrue(Commands.runOnce(() -> swerveSubsystem.resetGyro())); + + new JoystickButton(driverJoystick, JoystickMap.BUTTON_START) + .onTrue(Commands.runOnce(() -> swerveSubsystem.resetPose(new Pose2d()))); + new JoystickButton(towerJoystick, JoystickMap.RIGHT_BUMPER).onTrue(new Intake(intakeSubsystem, -0.3)) .onFalse(new Intake(intakeSubsystem, 0)); new JoystickButton(towerJoystick, JoystickMap.LEFT_BUMPER).onTrue(new Intake(intakeSubsystem, 1)) .onFalse(new Intake(intakeSubsystem, 0)); - } public Command getAutonomousCommand() { - PathPlannerPath path = PathPlannerPath.fromPathFile("Test"); + PathPlannerPath path = chooser.getSelected(); - AutoBuilder.configureHolonomic(swerveSubsystem::getCurrentPose, swerveSubsystem::resetPose, - swerveSubsystem::getSpeeds, swerveSubsystem::setStates, - new HolonomicPathFollowerConfig(new PIDConstants(0), new PIDConstants(0), - Constants.DriveConstants.kPhysicalMaxSpeedMetersPerSecond, Constants.DriveConstants.kBaseRadius, - new ReplanningConfig()), - swerveSubsystem); + // Sets the robot starting position the same as starting point on path. + Pose2d path_pose = path.getStartingDifferentialPose(); + swerveSubsystem.resetPose(new Pose2d(path_pose.getX(), path_pose.getY(), + swerveSubsystem.getRotation())); + + // Added events to the path follower return AutoBuilder.followPathWithEvents(path); - // return Commands.print("Nothing here"); + // return new SpeedTest(swerveSubsystem); + // return + } } diff --git a/src/main/java/frc/robot/commands/Intake.java b/src/main/java/frc/robot/commands/Intake.java index fc8e962..751f230 100644 --- a/src/main/java/frc/robot/commands/Intake.java +++ b/src/main/java/frc/robot/commands/Intake.java @@ -4,14 +4,15 @@ package frc.robot.commands; -import edu.wpi.first.wpilibj2.command.CommandBase; +import edu.wpi.first.wpilibj2.command.Command; import frc.robot.subsystems.drive.IntakeSubsystem; import com.ctre.phoenix.motorcontrol.can.TalonFX; -public class Intake extends CommandBase { +public class Intake extends Command { private IntakeSubsystem subsystem; private TalonFX motor; private double speed; + /** Creates a new Intake. */ public Intake(IntakeSubsystem subsystem, double speed) { // Use addRequirements() here to declare subsystem dependencies. @@ -23,7 +24,7 @@ public Intake(IntakeSubsystem subsystem, double speed) { // Called when the command is initially scheduled. @Override public void initialize() { - + } // Called every time the scheduler runs while the command is scheduled. @@ -35,7 +36,7 @@ public void execute() { // Called once the command ends or is interrupted. @Override public void end(boolean interrupted) { - + } // Returns true when the command should end. diff --git a/src/main/java/frc/robot/commands/JoystickDrive.java b/src/main/java/frc/robot/commands/JoystickDrive.java index 79eeb79..2fcc850 100644 --- a/src/main/java/frc/robot/commands/JoystickDrive.java +++ b/src/main/java/frc/robot/commands/JoystickDrive.java @@ -10,11 +10,11 @@ import edu.wpi.first.math.geometry.Rotation2d; import edu.wpi.first.math.kinematics.ChassisSpeeds; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; -import edu.wpi.first.wpilibj2.command.CommandBase; +import edu.wpi.first.wpilibj2.command.Command; import frc.robot.Constants; import frc.robot.subsystems.drive.SwerveSubsystem; -public class JoystickDrive extends CommandBase { +public class JoystickDrive extends Command { private SwerveSubsystem swerveSubsystem; private Supplier xInput, yInput, rotInput; private SlewRateLimiter xLimiter, yLimiter; @@ -41,6 +41,13 @@ public void initialize() { swerveSubsystem.resetGyro(); } + private double throttleLimiter(double input) { + double gain = .5; + + return input; + // return gain * (input * input * input) + (1 - gain) * input; + } + // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { @@ -49,26 +56,26 @@ public void execute() { double r = Math.abs(rotInput.get()) > Constants.OIConstants.kJoystickDeadband ? rotInput.get() : 0; // Square the controller input while preserving the sign. - x = Math.copySign(x * x, x) * 1; - y = Math.copySign(y * y, y) * 1; - r = Math.copySign(r * r, r) * -1; + x = Math.copySign(x * x, x) * -1; + y = Math.copySign(y * y, y) * -1; + r = r * -1; // Limit the max acceleration and convert to meters. - x = xLimiter.calculate(x) * Constants.DriveConstants.kTeleDriveMaxSpeedMetersPerSecond; - y = yLimiter.calculate(y) * Constants.DriveConstants.kTeleDriveMaxSpeedMetersPerSecond; - r = r * Constants.DriveConstants.kTeleDriveMaxSpeedMetersPerSecond; + x = (xLimiter.calculate(throttleLimiter(x)) * Constants.DriveConstants.kTeleDriveMaxSpeedMetersPerSecond); + y = (yLimiter.calculate(throttleLimiter(y)) * Constants.DriveConstants.kTeleDriveMaxSpeedMetersPerSecond); + r = throttleLimiter(r) * Constants.DriveConstants.kTeleDriveMaxAngularAccelerationUnitsPerSecond; // Convert from robot centric to field centric. Rotation2d robotAngle = swerveSubsystem.getRotation(); - double xField = x * robotAngle.getSin() + y * robotAngle.getCos(); - double yField = x * robotAngle.getCos() + y * -robotAngle.getSin(); + // double xField = x * robotAngle.getSin() + y * robotAngle.getCos(); + // double yField = x * robotAngle.getCos() + y * -robotAngle.getSin(); SmartDashboard.putNumber("Robot Heading", robotAngle.getDegrees()); - SmartDashboard.putNumber("xField", xField); - SmartDashboard.putNumber("yField", yField); + // SmartDashboard.putNumber("xField", xField); + // SmartDashboard.putNumber("yField", yField); - swerveSubsystem.setStates(new ChassisSpeeds(xField, yField, r)); + swerveSubsystem.setStates(new ChassisSpeeds(y, x, r)); } // Called once the command ends or is interrupted. diff --git a/src/main/java/frc/robot/commands/autos/SpeedTest.java b/src/main/java/frc/robot/commands/autos/SpeedTest.java new file mode 100644 index 0000000..bc13b19 --- /dev/null +++ b/src/main/java/frc/robot/commands/autos/SpeedTest.java @@ -0,0 +1,80 @@ +// 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.autos; + +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.kinematics.ChassisSpeeds; +import edu.wpi.first.math.util.Units; +import edu.wpi.first.wpilibj.Timer; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.Constants; +import frc.robot.subsystems.drive.SwerveSubsystem; + +public class SpeedTest extends Command { + private SwerveSubsystem swerveSubsystem; + + private boolean starting = true; + private boolean isFinished = false; + private double lastSpeed = 0; + private double startingTime; + + /** Creates a new SpeedTest. */ + public SpeedTest(SwerveSubsystem swerveSubsystem) { + // Use addRequirements() here to declare subsystem dependencies. + + this.swerveSubsystem = swerveSubsystem; + + addRequirements(swerveSubsystem); + } + + // Called when the command is initially scheduled. + @Override + public void initialize() { + this.startingTime = Timer.getFPGATimestamp(); + + swerveSubsystem.resetPose(new Pose2d()); + } + + // Called every time the scheduler runs while the command is scheduled. + @Override + public void execute() { + double nextSpeed = 0; + double distance = Units.metersToInches(swerveSubsystem.getCurrentPose().getX()); + + if (starting) { + nextSpeed = Math.max(lastSpeed + 0.95, Constants.DriveConstants.kPhysicalMaxSpeedMetersPerSecond); + + // Max 173in + if (distance > 153) { + starting = false; + } + } else { + nextSpeed = Math.min(lastSpeed - 0.95, 0); + + if (nextSpeed <= 0) { + isFinished = true; + } + } + + SmartDashboard.putNumber("Test Distance", distance); + SmartDashboard.putNumber("Test Speed", nextSpeed); + + swerveSubsystem + .setStates(new ChassisSpeeds(nextSpeed, 0, 0)); + } + + // Called once the command ends or is interrupted. + @Override + public void end(boolean interrupted) { + swerveSubsystem.setStates(new ChassisSpeeds()); + } + + // Returns true when the command should end. + @Override + public boolean isFinished() { + return isFinished; + } +} diff --git a/src/main/java/frc/robot/lib/Gains.java b/src/main/java/frc/robot/lib/Gains.java new file mode 100644 index 0000000..50c76a9 --- /dev/null +++ b/src/main/java/frc/robot/lib/Gains.java @@ -0,0 +1,19 @@ +// 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.lib; + +/** Add your docs here. */ +public class Gains { + + public final double kP; + public final double kI; + public final double kD; + + public Gains(double _kP, double _kI, double _kD) { + kP = _kP; + kI = _kI; + kD = _kD; + } +} diff --git a/src/main/java/frc/robot/lib/GainsFX.java b/src/main/java/frc/robot/lib/GainsFX.java new file mode 100644 index 0000000..2aaaf23 --- /dev/null +++ b/src/main/java/frc/robot/lib/GainsFX.java @@ -0,0 +1,31 @@ +// 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.lib; + +/** Add your docs here. */ +public class GainsFX { + + public final double kP; + public final double kI; + public final double kD; + public final double kF; + public final int kIzone; + public final double kPeakOutput; + + public GainsFX( + double _kP, + double _kI, + double _kD, + double _kF, + int _kIzone, + double _kPeakOutput) { + kP = _kP; + kI = _kI; + kD = _kD; + kF = _kF; + kIzone = _kIzone; + kPeakOutput = _kPeakOutput; + } +} diff --git a/src/main/java/frc/robot/lib/JoystickMap.java b/src/main/java/frc/robot/lib/JoystickMap.java new file mode 100644 index 0000000..f34f10e --- /dev/null +++ b/src/main/java/frc/robot/lib/JoystickMap.java @@ -0,0 +1,37 @@ + +package frc.robot.lib; + +/** + * This map only works if the switch on the back of the controllers is in the X + * position. + */ +public abstract class JoystickMap { + + public static int BUTTON_X = 3; + public static int BUTTON_A = 1; + public static int BUTTON_B = 2; + public static int BUTTON_Y = 4; + + public static int BUTTON_START = 6; + public static int BUTTON_BACK = 7; + + public static int LEFT_Y_AXIS_BUTTON = 9; + public static int RIGHT_Y_AXIS_BUTTON = 10; + + public static int LEFT_Y_AXIS = 1; + public static int RIGHT_Y_AXIS = 5; + + public static int LEFT_X_AXIS = 0; + public static int RIGHT_X_AXIS = 4; + + public static int POV_UP = 0; + public static int POV_RIGHT = 90; + public static int POV_DOWN = 180; + public static int POV_LEFT = 270; + + public static int LEFT_TRIGGER = 2; + public static int RIGHT_TRIGGER = 3; + + public static int LEFT_BUMPER = 5; + public static int RIGHT_BUMPER = 6; +} diff --git a/src/main/java/frc/robot/subsystems/drive/GeomUtil.java b/src/main/java/frc/robot/subsystems/drive/GeomUtil.java new file mode 100644 index 0000000..5dd587a --- /dev/null +++ b/src/main/java/frc/robot/subsystems/drive/GeomUtil.java @@ -0,0 +1,148 @@ +// 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.drive; + +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.Transform3d; +import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.math.geometry.Translation3d; +import edu.wpi.first.math.geometry.Twist2d; + +/** + * Geometry utilities for working with translations, rotations, transforms, and + * poses. + */ +public class GeomUtil { + /** + * Creates a pure translating transform + * + * @param translation The translation to create the transform with + * @return The resulting transform + */ + public static Transform2d translationToTransform(Translation2d translation) { + return new Transform2d(translation, new Rotation2d()); + } + + /** + * Creates a pure translating transform + * + * @param x The x componenet of the translation + * @param y The y componenet of the translation + * @return The resulting transform + */ + public static Transform2d translationToTransform(double x, double y) { + return new Transform2d(new Translation2d(x, y), new Rotation2d()); + } + + /** + * Creates a pure rotating transform + * + * @param rotation The rotation to create the transform with + * @return The resulting transform + */ + public static Transform2d rotationToTransform(Rotation2d rotation) { + return new Transform2d(new Translation2d(), rotation); + } + + /** + * Converts a Pose2d to a Transform2d to be used in a kinematic chain + * + * @param pose The pose that will represent the transform + * @return The resulting transform + */ + public static Transform2d poseToTransform(Pose2d pose) { + return new Transform2d(pose.getTranslation(), pose.getRotation()); + } + + /** + * Converts a Transform2d to a Pose2d to be used as a position or as the start + * of a kinematic + * chain + * + * @param transform The transform that will represent the pose + * @return The resulting pose + */ + public static Pose2d transformToPose(Transform2d transform) { + return new Pose2d(transform.getTranslation(), transform.getRotation()); + } + + /** + * Creates a pure translated pose + * + * @param translation The translation to create the pose with + * @return The resulting pose + */ + public static Pose2d translationToPose(Translation2d translation) { + return new Pose2d(translation, new Rotation2d()); + } + + /** + * Creates a pure rotated pose + * + * @param rotation The rotation to create the pose with + * @return The resulting pose + */ + public static Pose2d rotationToPose(Rotation2d rotation) { + return new Pose2d(new Translation2d(), rotation); + } + + /** + * Multiplies a twist by a scaling factor + * + * @param twist The twist to multiply + * @param factor The scaling factor for the twist components + * @return The new twist + */ + public static Twist2d multiplyTwist(Twist2d twist, double factor) { + return new Twist2d(twist.dx * factor, twist.dy * factor, twist.dtheta * factor); + } + + /** + * Converts a Pose3d to a Transform3d to be used in a kinematic chain + * + * @param pose The pose that will represent the transform + * @return The resulting transform + */ + public static Transform3d pose3dToTransform3d(Pose3d pose) { + return new Transform3d(pose.getTranslation(), pose.getRotation()); + } + + /** + * Converts a Transform3d to a Pose3d to be used as a position or as the start + * of a kinematic + * chain + * + * @param transform The transform that will represent the pose + * @return The resulting pose + */ + public static Pose3d transform3dToPose3d(Transform3d transform) { + return new Pose3d(transform.getTranslation(), transform.getRotation()); + } + + /** + * Converts a Translation3d to a Translation2d by extracting two dimensions (X + * and Y). chain + * + * @param transform The original translation + * @return The resulting translation + */ + public static Translation2d translation3dTo2dXY(Translation3d translation) { + return new Translation2d(translation.getX(), translation.getY()); + } + + /** + * Converts a Translation3d to a Translation2d by extracting two dimensions (X + * and Z). chain + * + * @param transform The original translation + * @return The resulting translation + */ + public static Translation2d translation3dTo2dXZ(Translation3d translation) { + return new Translation2d(translation.getX(), translation.getZ()); + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/subsystems/drive/PinkHolonomicController.java b/src/main/java/frc/robot/subsystems/drive/PinkHolonomicController.java new file mode 100644 index 0000000..0302143 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/drive/PinkHolonomicController.java @@ -0,0 +1,209 @@ +// 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.drive; + +import com.pathplanner.lib.controllers.PathFollowingController; +import com.pathplanner.lib.path.PathPlannerTrajectory; +import com.pathplanner.lib.util.PIDConstants; +import edu.wpi.first.math.controller.PIDController; +import edu.wpi.first.math.controller.ProfiledPIDController; +import edu.wpi.first.math.geometry.Pose2d; +import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Translation2d; +import edu.wpi.first.math.kinematics.ChassisSpeeds; +import edu.wpi.first.math.trajectory.TrapezoidProfile; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; + +import java.util.Optional; +import java.util.function.Supplier; + +/** Path following controller for holonomic drive trains */ +public class PinkHolonomicController implements PathFollowingController { + private final PIDController xController; + private final PIDController yController; + private final ProfiledPIDController rotationController; + private final double maxModuleSpeed; + private final double mpsToRps; + + private Translation2d translationError = new Translation2d(); + private boolean isEnabled = true; + + private static Supplier> rotationTargetOverride = null; + + /** + * Constructs a HolonomicDriveController + * + * @param translationConstants PID constants for the translation PID controllers + * @param rotationConstants PID constants for the rotation controller + * @param period Period of the control loop in seconds + * @param maxModuleSpeed The max speed of a drive module in meters/sec + * @param driveBaseRadius The radius of the drive base in meters. For + * swerve drive, this is the + * distance from the center of the robot to the + * furthest module. For mecanum, this is the + * drive base width / 2 + */ + public PinkHolonomicController( + PIDConstants translationConstants, + PIDConstants rotationConstants, + double period, + double maxModuleSpeed, + double driveBaseRadius) { + this.xController = new PIDController( + translationConstants.kP, translationConstants.kI, translationConstants.kD, period); + this.xController.setIntegratorRange(-translationConstants.iZone, translationConstants.iZone); + + this.yController = new PIDController( + translationConstants.kP, translationConstants.kI, translationConstants.kD, period); + this.yController.setIntegratorRange(-translationConstants.iZone, translationConstants.iZone); + + // Temp rate limit of 0, will be changed in calculate + this.rotationController = new ProfiledPIDController( + rotationConstants.kP, + rotationConstants.kI, + rotationConstants.kD, + new TrapezoidProfile.Constraints(0, 0), + period); + this.rotationController.setIntegratorRange(-rotationConstants.iZone, rotationConstants.iZone); + this.rotationController.enableContinuousInput(-Math.PI, Math.PI); + + this.maxModuleSpeed = maxModuleSpeed; + this.mpsToRps = 1.0 / driveBaseRadius; + } + + /** + * Constructs a HolonomicDriveController + * + * @param translationConstants PID constants for the translation PID controllers + * @param rotationConstants PID constants for the rotation controller + * @param maxModuleSpeed The max speed of a drive module in meters/sec + * @param driveBaseRadius The radius of the drive base in meters. For + * swerve drive, this is the + * distance from the center of the robot to the + * furthest module. For mecanum, this is the + * drive base width / 2 + */ + public PinkHolonomicController( + PIDConstants translationConstants, + PIDConstants rotationConstants, + double maxModuleSpeed, + double driveBaseRadius) { + this(translationConstants, rotationConstants, 0.02, maxModuleSpeed, driveBaseRadius); + } + + /** + * Enables and disables the controller for troubleshooting. When calculate() is + * called on a + * disabled controller, only feedforward values are returned. + * + * @param enabled If the controller is enabled or not + */ + public void setEnabled(boolean enabled) { + this.isEnabled = enabled; + } + + /** + * Resets the controller based on the current state of the robot + * + * @param currentPose Current robot pose + * @param currentSpeeds Current robot relative chassis speeds + */ + @Override + public void reset(Pose2d currentPose, ChassisSpeeds currentSpeeds) { + rotationController.reset( + currentPose.getRotation().getRadians(), currentSpeeds.omegaRadiansPerSecond); + } + + /** + * Calculates the next output of the path following controller + * + * @param currentPose The current robot pose + * @param targetState The desired trajectory state + * @return The next robot relative output of the path following controller + */ + @Override + public ChassisSpeeds calculateRobotRelativeSpeeds( + Pose2d currentPose, PathPlannerTrajectory.State targetState) { + double xFF = targetState.velocityMps * targetState.heading.getCos(); + double yFF = targetState.velocityMps * targetState.heading.getSin(); + + this.translationError = currentPose.getTranslation().minus(targetState.positionMeters); + + if (!this.isEnabled) { + return ChassisSpeeds.fromFieldRelativeSpeeds(xFF, yFF, 0, currentPose.getRotation()); + } + + double xFeedback = this.xController.calculate(currentPose.getX(), targetState.positionMeters.getX()); + double yFeedback = this.yController.calculate(currentPose.getY(), targetState.positionMeters.getY()); + + double angVelConstraint = targetState.constraints.getMaxAngularVelocityRps(); + // Approximation of available module speed to do rotation with + double maxAngVelModule = Math.max(0, maxModuleSpeed - targetState.velocityMps) * mpsToRps; + double maxAngVel = Math.min(angVelConstraint, maxAngVelModule); + + var rotationConstraints = new TrapezoidProfile.Constraints( + maxAngVel, targetState.constraints.getMaxAngularAccelerationRpsSq()); + + Rotation2d targetRotation = targetState.targetHolonomicRotation; + if (rotationTargetOverride != null) { + targetRotation = rotationTargetOverride.get().orElse(targetRotation); + } + + SmartDashboard.putNumber("dt_x", currentPose.getX()); + SmartDashboard.putNumber("dt_x_setpoint", targetState.getTargetHolonomicPose().getX()); + + SmartDashboard.putNumber("dt_y", currentPose.getY()); + SmartDashboard.putNumber("dt_y_setpoint", targetState.getTargetHolonomicPose().getY()); + + SmartDashboard.putNumber("dt_theta", currentPose.getRotation().getRadians()); + SmartDashboard.putNumber("dt_theta_setpoint", targetState.heading.getRadians()); + + double targetRotationVel = rotationController.calculate( + currentPose.getRotation().getRadians(), + new TrapezoidProfile.State(targetRotation.getRadians(), 0), + rotationConstraints); + + return ChassisSpeeds.fromFieldRelativeSpeeds( + xFF + xFeedback, yFF + yFeedback, targetRotationVel, currentPose.getRotation()); + } + + /** + * Get the current positional error between the robot's actual and target + * positions + * + * @return Positional error, in meters + */ + @Override + public double getPositionalError() { + return translationError.getNorm(); + } + + /** + * Is this controller for holonomic drivetrains? Used to handle some differences + * in functionality + * in the path following command. + * + * @return True if this controller is for a holonomic drive train + */ + @Override + public boolean isHolonomic() { + return true; + } + + /** + * Set a supplier that will be used to override the rotation target when path + * following. + * + *

+ * This function should return an empty optional to use the rotation targets in + * the path + * + * @param rotationTargetOverride Supplier to override rotation targets + */ + public static void setRotationTargetOverride( + Supplier> rotationTargetOverride) { + PinkHolonomicController.rotationTargetOverride = rotationTargetOverride; + } +} diff --git a/src/main/java/frc/robot/subsystems/drive/SwerveModule.java b/src/main/java/frc/robot/subsystems/drive/SwerveModule.java index 0b1079a..b9978de 100644 --- a/src/main/java/frc/robot/subsystems/drive/SwerveModule.java +++ b/src/main/java/frc/robot/subsystems/drive/SwerveModule.java @@ -12,6 +12,8 @@ public interface SwerveModule { public double getSteerVelocity(); + public double getSteerError(); + /** * Reset the drive & steer encoders. */ diff --git a/src/main/java/frc/robot/subsystems/drive/SwerveSubsystem.java b/src/main/java/frc/robot/subsystems/drive/SwerveSubsystem.java index 20acb60..835eaef 100644 --- a/src/main/java/frc/robot/subsystems/drive/SwerveSubsystem.java +++ b/src/main/java/frc/robot/subsystems/drive/SwerveSubsystem.java @@ -4,19 +4,27 @@ package frc.robot.subsystems.drive; -import java.util.List; - import com.kauailabs.navx.frc.AHRS; +import com.pathplanner.lib.auto.AutoBuilder; +import com.pathplanner.lib.util.PIDConstants; +import edu.wpi.first.math.VecBuilder; import edu.wpi.first.math.estimator.SwerveDrivePoseEstimator; import edu.wpi.first.math.geometry.Pose2d; import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Twist2d; import edu.wpi.first.math.kinematics.ChassisSpeeds; import edu.wpi.first.math.kinematics.SwerveDriveKinematics; import edu.wpi.first.math.kinematics.SwerveModulePosition; import edu.wpi.first.math.kinematics.SwerveModuleState; +import edu.wpi.first.util.datalog.DataLog; +import edu.wpi.first.util.datalog.DoubleLogEntry; +import edu.wpi.first.wpilibj.DataLogManager; import edu.wpi.first.wpilibj.SPI; +import edu.wpi.first.wpilibj.Timer; +import edu.wpi.first.wpilibj.smartdashboard.Field2d; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.SubsystemBase; +import frc.robot.Constants; import frc.robot.Constants.DriveConstants; import frc.robot.Constants.ModuleConstants; import frc.robot.lib.Dashboard; @@ -33,8 +41,17 @@ public class SwerveSubsystem extends SubsystemBase { private SwerveDrivePoseEstimator estimator; private AHRS gyro; - + private Field2d field2d; private Dashboard dashboard; + private DataLog log; + private DoubleLogEntry xLogEntry; + private DoubleLogEntry yLogEntry; + private SwerveModule[] modules; + private SwerveModulePosition[] lastModulePositionsMeters; + private Rotation2d lastGyroYaw; + private final double defaultKp = 10; + private final double defaultKi = 0; + private final double defaultKd = 0.35; /** * Creates a Swerve subsystem with the added kinematics. @@ -42,28 +59,36 @@ public class SwerveSubsystem extends SubsystemBase { * @param kinematics */ public SwerveSubsystem(SwerveDriveKinematics kinematics) { - gyro = new AHRS(SPI.Port.kMXP); + DataLogManager.start(); + + log = DataLogManager.getLog(); + + xLogEntry = new DoubleLogEntry(log, "/dt/xPos"); + yLogEntry = new DoubleLogEntry(log, "/dt/yPos"); + + this.gyro = new AHRS(SPI.Port.kMXP); + this.field2d = new Field2d(); this.dashboard = new Dashboard("Swerve"); this.frontRightModule = new REV_SwerveModule(DriveConstants.kFrontRightTurningMotorPort, DriveConstants.kFrontRightDriveMotorPort, DriveConstants.kFrontRightDriveAbsoluteEncoderPort, DriveConstants.kFrontRightDriveEncoderReversed, DriveConstants.kFrontRightTurningReversed, - DriveConstants.kFrontRightDriveAbsoluteEncoderOffsetRad, ModuleConstants.kSteerGains); + DriveConstants.kFrontRightDriveAbsoluteEncoderOffsetRad, ModuleConstants.kFrontRightSteerGains); this.frontLeftModule = new REV_SwerveModule(DriveConstants.kFrontLeftTurningMotorPort, DriveConstants.kFrontLeftDriveMotorPort, DriveConstants.kFrontLeftDriveAbsoluteEncoderPort, DriveConstants.kFrontLeftDriveEncoderReversed, DriveConstants.kFrontLeftTurningReversed, - DriveConstants.kFrontLeftDriveAbsoluteEncoderOffsetRad, ModuleConstants.kSteerGains); + DriveConstants.kFrontLeftDriveAbsoluteEncoderOffsetRad, ModuleConstants.kFrontLeftSteerGains); this.backRightModule = new REV_SwerveModule(DriveConstants.kBackRightTurningMotorPort, DriveConstants.kBackRightDriveMotorPort, DriveConstants.kBackRightDriveAbsoluteEncoderPort, DriveConstants.kBackRightDriveEncoderReversed, DriveConstants.kBackRightTurningReversed, - DriveConstants.kBackRightDriveAbsoluteEncoderOffsetRad, ModuleConstants.kSteerGains); + DriveConstants.kBackRightDriveAbsoluteEncoderOffsetRad, ModuleConstants.kBackRightSteerGains); this.backLeftModule = new REV_SwerveModule(DriveConstants.kBackLeftTurningMotorPort, DriveConstants.kBackLeftDriveMotorPort, DriveConstants.kBackLeftDriveAbsoluteEncoderPort, DriveConstants.kBackLeftDriveEncoderReversed, DriveConstants.kBackLeftTurningReversed, - DriveConstants.kBackLeftDriveAbsoluteEncoderOffsetRad, ModuleConstants.kSteerGains); + DriveConstants.kBackLeftDriveAbsoluteEncoderOffsetRad, ModuleConstants.kBackLeftSteerGains); this.kinematics = kinematics; @@ -72,19 +97,36 @@ kinematics, getRotation(), new SwerveModulePosition[] { frontRightModule.getPosi frontLeftModule.getPosition(), backRightModule.getPosition(), backLeftModule .getPosition() }, - new Pose2d()); + new Pose2d(), VecBuilder.fill(0.313, 0.314, 0.4), + VecBuilder.fill(0.9, 0.9, 0.9)); + this.modules = new SwerveModule[] { frontRightModule, frontLeftModule, backRightModule, backLeftModule }; + this.lastModulePositionsMeters = getPositions(); + + SmartDashboard.putData("Field", field2d); + + SmartDashboard.putNumber("Kp", 10); + SmartDashboard.putNumber("Ki", 0); + SmartDashboard.putNumber("Kd", 0.40); calibrateGyro(); } - public List getPositions() { - return List.of(frontRightModule.getPosition(), frontLeftModule.getPosition(), backRightModule.getPosition(), - backLeftModule.getPosition()); + public SwerveModulePosition[] getPositions() { + return new SwerveModulePosition[] { + frontRightModule.getPosition(), + frontLeftModule.getPosition(), + backRightModule.getPosition(), + backLeftModule.getPosition() + }; } - public List getStates() { - return List.of(frontRightModule.getState(), frontLeftModule.getState(), backRightModule.getState(), - backLeftModule.getState()); + public SwerveModuleState[] getStates() { + return new SwerveModuleState[] { + frontRightModule.getState(), + frontLeftModule.getState(), + backRightModule.getState(), + backLeftModule.getState() + }; } public Rotation2d getRotation() { @@ -96,24 +138,45 @@ public double getHeading() { } public void calibrateGyro() { - this.gyro.calibrate(); } public void setGyro(double angle) { this.gyro.setAngleAdjustment(angle); } + public Field2d getField2d() { + return field2d; + } + public void resetGyro() { this.gyro.reset(); } + private Twist2d scaleTwist2d(Twist2d twist2d, double factor) { + return new Twist2d(twist2d.dx * factor, twist2d.dy * factor, twist2d.dtheta * factor); + } + public void setStates(ChassisSpeeds speeds) { - SwerveModuleState[] states = kinematics.toSwerveModuleStates(speeds); + // Looper is how far into the future are we looking + double looper = .01; + + /* + * Check the angular drift with this solution & if I doesn't work explore the + * possiblity of steer error in swerve pods. + */ + double gyro_update_rate = gyro.getRequestedUpdateRate(); + Pose2d currentPose = getCurrentPose(); + Pose2d desired = new Pose2d(currentPose.getX() + (speeds.vxMetersPerSecond * + looper), + currentPose.getY() + (speeds.vyMetersPerSecond * looper), + currentPose.getRotation().plus(Rotation2d.fromRadians(speeds.omegaRadiansPerSecond))); + + Twist2d twist_vel = scaleTwist2d(currentPose.log(desired), 1); + ChassisSpeeds updated_speeds = new ChassisSpeeds(twist_vel.dx / looper, + twist_vel.dy / looper, + twist_vel.dtheta); - SmartDashboard.putNumber("Front Left Angle Setpoint", states[1].angle.getRadians()); - SmartDashboard.putNumber("Front Right Angle Setpoint", states[0].angle.getRadians()); - SmartDashboard.putNumber("Back Left Angle Setpoint", states[2].angle.getRadians()); - SmartDashboard.putNumber("Back Right Angle Setpoint", states[3].angle.getRadians()); + SwerveModuleState[] states = kinematics.toSwerveModuleStates(speeds); dashboard.putObject("Desired Front Left Power", states[1].speedMetersPerSecond); dashboard.putObject("Desired Front Right Power", states[0].speedMetersPerSecond); @@ -124,32 +187,59 @@ public void setStates(ChassisSpeeds speeds) { frontLeftModule.setDesiredState(states[0]); backRightModule.setDesiredState(states[3]); backLeftModule.setDesiredState(states[2]); + + field2d.setRobotPose(getCurrentPose()); } public void resetPose(Pose2d pose2d) { - estimator.resetPosition(getRotation(), (SwerveModulePosition[]) getPositions().toArray(), pose2d); + estimator.resetPosition(getRotation(), getPositions(), pose2d); } public ChassisSpeeds getSpeeds() { - return kinematics.toChassisSpeeds((SwerveModuleState[]) getStates().toArray()); + return kinematics.toChassisSpeeds(getStates()); } public Pose2d getCurrentPose() { return estimator.getEstimatedPosition(); } + private double lastEpoch = 0; + private double lastAngularPos = 0; + @Override public void periodic() { // This method will be called once per scheduler run - SmartDashboard.putNumber("Front Right Angle", (frontRightModule.getSteerPosition())); - SmartDashboard.putNumber("Back Left Angle", (backLeftModule.getSteerPosition())); - SmartDashboard.putNumber("Back Right Angle", (backRightModule.getSteerPosition())); - SmartDashboard.putNumber("Front Left Angle", (frontLeftModule.getSteerPosition())); + SmartDashboard.putNumber("Front Right Velocity", (frontRightModule.getDriveVelocity())); + SmartDashboard.putNumber("Back Left Velocity", (backLeftModule.getDriveVelocity())); + SmartDashboard.putNumber("Back Right Velocity", (backRightModule.getDriveVelocity())); + SmartDashboard.putNumber("Front Left Velocity", (frontLeftModule.getDriveVelocity())); + + if (lastEpoch != 0) { + double currentAngularPos = gyro.getAngle(); + SmartDashboard.putNumber("Angular Vel Rad/s", + ((currentAngularPos - lastAngularPos) * (Math.PI / 180)) / (Timer.getFPGATimestamp() - lastEpoch)); + lastAngularPos = currentAngularPos; + } + + SmartDashboard.putNumber("Back Right Heading", backRightModule.getRawAbsoluteAngularPosition()); + SmartDashboard.putNumber("Heading", getHeading()); + + Pose2d pose = getCurrentPose(); + + if (pose.getX() != 0 && pose.getY() != 0) { + xLogEntry.append(getCurrentPose().getX()); + yLogEntry.append(getCurrentPose().getY()); + } + + field2d.setRobotPose(getCurrentPose()); + estimator.update(getRotation(), getPositions()); + + lastEpoch = Timer.getFPGATimestamp(); + + double kP = SmartDashboard.getNumber("Kp", defaultKp); + double kI = SmartDashboard.getNumber("Ki", defaultKi); + double kD = SmartDashboard.getNumber("Kd", defaultKd); - SmartDashboard.putNumber("Front Left Angle Raw", (frontLeftModule.getRawAbsoluteAngularPosition())); - SmartDashboard.putNumber("Front Right Angle Raw", (frontRightModule.getRawAbsoluteAngularPosition())); - SmartDashboard.putNumber("Back Left Angle Raw", (backLeftModule.getRawAbsoluteAngularPosition())); - SmartDashboard.putNumber("Back Right Angle Raw", (backRightModule.getRawAbsoluteAngularPosition())); } } diff --git a/src/main/java/frc/robot/subsystems/drive/modules/FX_SwerveModule.java b/src/main/java/frc/robot/subsystems/drive/modules/FX_SwerveModule.java index f30ca2a..f1f5a08 100644 --- a/src/main/java/frc/robot/subsystems/drive/modules/FX_SwerveModule.java +++ b/src/main/java/frc/robot/subsystems/drive/modules/FX_SwerveModule.java @@ -4,8 +4,6 @@ package frc.robot.subsystems.drive.modules; -import com.ThePinkAlliance.core.util.Gains; -import com.ThePinkAlliance.core.util.GainsFX; import com.ctre.phoenix.motorcontrol.ControlMode; import com.ctre.phoenix.motorcontrol.can.WPI_TalonFX; import com.ctre.phoenix.sensors.WPI_CANCoder; @@ -15,6 +13,8 @@ import edu.wpi.first.math.kinematics.SwerveModuleState; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import frc.robot.Constants; +import frc.robot.lib.Gains; +import frc.robot.lib.GainsFX; import frc.robot.subsystems.drive.SwerveModule; /** Add your docs here. */ @@ -82,6 +82,11 @@ public double getSteerPosition() { return rad; } + @Override + public double getSteerError() { + return steerController.getPositionError(); + } + @Override public double getRawAbsoluteAngularPosition() { return Math.toRadians(canCoder.getAbsolutePosition()); @@ -93,7 +98,7 @@ public double getDriveVelocity() { * It might be necessary to change the constant because it does not take into * account the gear ratio. */ - return driveMotor.getSelectedSensorVelocity() * 0.0015585245; + return driveMotor.getSelectedSensorVelocity() * Constants.ModuleConstants.kDriveMotorGearRatio; } /** diff --git a/src/main/java/frc/robot/subsystems/drive/modules/REV_SwerveModule.java b/src/main/java/frc/robot/subsystems/drive/modules/REV_SwerveModule.java index c2a4957..bd73118 100644 --- a/src/main/java/frc/robot/subsystems/drive/modules/REV_SwerveModule.java +++ b/src/main/java/frc/robot/subsystems/drive/modules/REV_SwerveModule.java @@ -4,7 +4,6 @@ package frc.robot.subsystems.drive.modules; -import com.ThePinkAlliance.core.util.Gains; import com.ctre.phoenix.sensors.AbsoluteSensorRange; import com.ctre.phoenix.sensors.WPI_CANCoder; import com.revrobotics.CANSparkMax; @@ -16,9 +15,9 @@ import edu.wpi.first.math.kinematics.SwerveModulePosition; import edu.wpi.first.math.kinematics.SwerveModuleState; import edu.wpi.first.math.system.plant.DCMotor; -import edu.wpi.first.wpilibj.simulation.REVPHSim; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import frc.robot.Constants; +import frc.robot.lib.Gains; import frc.robot.subsystems.drive.SwerveModule; /** @@ -72,8 +71,12 @@ public REV_SwerveModule(int steerId, int driveId, int canCoderId, boolean invert */ @Override public double getDrivePosition() { - return ((driveMotor.getEncoder().getPosition() / 42.0) * Constants.ModuleConstants.kDriveMotorGearRatio) - * (Constants.ModuleConstants.kWheelDiameterMeters * Math.PI); + /* + * I'm going to remove factor 0f 42 to see if the converion is done by revlib + * already + */ + return (((driveMotor.getEncoder().getPosition()) * Constants.ModuleConstants.kDriveMotorGearRatio) + * (Constants.ModuleConstants.kWheelDiameterMeters * Math.PI)) * (1 / 1.305); } /* @@ -91,11 +94,8 @@ public double getRawAbsoluteAngularPosition() { @Override public double getDriveVelocity() { - /* - * It might be necessary to change the constant because it does not take into - * account the gear ratio. - */ - return driveMotor.getEncoder().getVelocity() * 0.0015585245; + return ((driveMotor.getEncoder().getVelocity() / 60) * Constants.ModuleConstants.kDriveMotorGearRatio) + * (Constants.ModuleConstants.kWheelDiameterMeters * Math.PI); } /** @@ -138,6 +138,11 @@ public SwerveModulePosition getPosition() { return new SwerveModulePosition(getDrivePosition(), new Rotation2d(getSteerPosition())); } + @Override + public double getSteerError() { + return steerController.getPositionError(); + } + /** * Sets the current module state to the desired one. * @@ -146,10 +151,13 @@ public SwerveModulePosition getPosition() { @Override public void setDesiredState(SwerveModuleState state) { state = SwerveModuleState.optimize(state, getState().angle); - driveMotor.set( - state.speedMetersPerSecond / Constants.DriveConstants.kPhysicalMaxSpeedMetersPerSecond); + + driveMotor + .setVoltage((state.speedMetersPerSecond / + Constants.DriveConstants.kPhysicalMaxSpeedMetersPerSecond) * 12); double output = steerController.calculate(getSteerPosition(), state.angle.getRadians()); + SmartDashboard.putNumber(this.steerMotor.getDeviceId() + ": Angle Difference", output); steerMotor.set(output); } diff --git a/src/main/java/frc/robot/subsystems/drive/modules/WPI_SwerveModule.java b/src/main/java/frc/robot/subsystems/drive/modules/WPI_SwerveModule.java index 22bd8ff..4185020 100644 --- a/src/main/java/frc/robot/subsystems/drive/modules/WPI_SwerveModule.java +++ b/src/main/java/frc/robot/subsystems/drive/modules/WPI_SwerveModule.java @@ -4,7 +4,6 @@ package frc.robot.subsystems.drive.modules; -import com.ThePinkAlliance.core.util.Gains; import com.ctre.phoenix.motorcontrol.ControlMode; import com.ctre.phoenix.motorcontrol.NeutralMode; import com.ctre.phoenix.motorcontrol.can.WPI_TalonFX; @@ -16,6 +15,7 @@ import edu.wpi.first.math.kinematics.SwerveModuleState; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import frc.robot.Constants; +import frc.robot.lib.Gains; import frc.robot.subsystems.drive.SwerveModule; /** @@ -82,7 +82,12 @@ public double getDriveVelocity() { * It might be necessary to change the constant because it does not take into * account the gear ratio. */ - return driveMotor.getSelectedSensorVelocity() * 0.0015585245; + return driveMotor.getSelectedSensorVelocity() * Constants.ModuleConstants.kDriveMotorGearRatio; + } + + @Override + public double getSteerError() { + return steerController.getPositionError(); } /** diff --git a/sysid.json b/sysid.json new file mode 100644 index 0000000..2141873 --- /dev/null +++ b/sysid.json @@ -0,0 +1,10 @@ +{ + "SysId": { + "Analysis Type": "General Mechanism", + "NetworkTables Settings": { + "serverTeam": "233" + }, + "mode": "Client (NT4)", + "serverTeam": "233" + } +} diff --git a/vendordeps/NavX.json b/vendordeps/NavX.json index 29ec93a..ed8f8d3 100644 --- a/vendordeps/NavX.json +++ b/vendordeps/NavX.json @@ -1,39 +1,38 @@ { - "fileName": "NavX.json", - "name": "KauaiLabs_navX_FRC", - "version": "2023.0.3", - "uuid": "cb311d09-36e9-4143-a032-55bb2b94443b", - "mavenUrls": [ - "https://dev.studica.com/maven/release/2023/" - ], - "jsonUrl": "https://dev.studica.com/releases/2023/NavX.json", - "javaDependencies": [ - { - "groupId": "com.kauailabs.navx.frc", - "artifactId": "navx-frc-java", - "version": "2023.0.3" - } - ], - "jniDependencies": [], - "cppDependencies": [ - { - "groupId": "com.kauailabs.navx.frc", - "artifactId": "navx-frc-cpp", - "version": "2023.0.3", - "headerClassifier": "headers", - "sourcesClassifier": "sources", - "sharedLibrary": false, - "libName": "navx_frc", - "skipInvalidPlatforms": true, - "binaryPlatforms": [ - "linuxathena", - "linuxraspbian", - "linuxarm32", - "linuxarm64", - "linux86-64", - "osxuniversal", - "windowsx86-64" - ] - } - ] -} \ No newline at end of file + "fileName": "NavX.json", + "name": "NavX", + "version": "2024.0.1-beta-4", + "uuid": "cb311d09-36e9-4143-a032-55bb2b94443b", + "frcYear": "2024", + "mavenUrls": ["https://dev.studica.com/maven/release/2024/"], + "jsonUrl": "https://dev.studica.com/releases/2024/NavX.json", + "javaDependencies": [ + { + "groupId": "com.kauailabs.navx.frc", + "artifactId": "navx-frc-java", + "version": "2024.0.1-beta-4" + } + ], + "jniDependencies": [], + "cppDependencies": [ + { + "groupId": "com.kauailabs.navx.frc", + "artifactId": "navx-frc-cpp", + "version": "2024.0.1-beta-4", + "headerClassifier": "headers", + "sourcesClassifier": "sources", + "sharedLibrary": false, + "libName": "navx_frc", + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "linuxathena", + "linuxraspbian", + "linuxarm32", + "linuxarm64", + "linuxx86-64", + "osxuniversal", + "windowsx86-64" + ] + } + ] +} diff --git a/vendordeps/PathplannerLib.json b/vendordeps/PathplannerLib.json index 6c1857e..e8fc211 100644 --- a/vendordeps/PathplannerLib.json +++ b/vendordeps/PathplannerLib.json @@ -1,36 +1,36 @@ { - "fileName": "PathplannerLib.json", - "name": "PathplannerLib", - "version": "2024.0.0-beta-1", - "uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786", - "frcYear": "2024", - "mavenUrls": [ - "https://3015rangerrobotics.github.io/pathplannerlib/repo" - ], - "jsonUrl": "https://3015rangerrobotics.github.io/pathplannerlib/PathplannerLib.json", - "javaDependencies": [ - { - "groupId": "com.pathplanner.lib", - "artifactId": "PathplannerLib-java", - "version": "2024.0.0-beta-1" - } - ], - "jniDependencies": [], - "cppDependencies": [ - { - "groupId": "com.pathplanner.lib", - "artifactId": "PathplannerLib-cpp", - "version": "2024.0.0-beta-1", - "libName": "PathplannerLib", - "headerClassifier": "headers", - "sharedLibrary": false, - "skipInvalidPlatforms": true, - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal", - "linuxathena" - ] - } - ] + "fileName": "PathplannerLib.json", + "name": "PathplannerLib", + "version": "2024.0.0-beta-5.1", + "uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786", + "frcYear": "2024", + "mavenUrls": ["https://3015rangerrobotics.github.io/pathplannerlib/repo"], + "jsonUrl": "https://3015rangerrobotics.github.io/pathplannerlib/PathplannerLib.json", + "javaDependencies": [ + { + "groupId": "com.pathplanner.lib", + "artifactId": "PathplannerLib-java", + "version": "2024.0.0-beta-5.1" + } + ], + "jniDependencies": [], + "cppDependencies": [ + { + "groupId": "com.pathplanner.lib", + "artifactId": "PathplannerLib-cpp", + "version": "2024.0.0-beta-5.1", + "libName": "PathplannerLib", + "headerClassifier": "headers", + "sharedLibrary": false, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal", + "linuxathena", + "linuxarm32", + "linuxarm64" + ] + } + ] } diff --git a/vendordeps/Phoenix5.json b/vendordeps/Phoenix5.json new file mode 100644 index 0000000..41fa3f1 --- /dev/null +++ b/vendordeps/Phoenix5.json @@ -0,0 +1,151 @@ +{ + "fileName": "Phoenix5.json", + "name": "CTRE-Phoenix (v5)", + "version": "5.32.0-beta-2", + "frcYear": 2024, + "uuid": "ab676553-b602-441f-a38d-f1296eff6537", + "mavenUrls": [ + "https://maven.ctr-electronics.com/release/" + ], + "jsonUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix/Phoenix5-frc2024-beta-latest.json", + "requires": [ + { + "uuid": "e995de00-2c64-4df5-8831-c1441420ff19", + "errorMessage": "Phoenix 5 requires low-level libraries from Phoenix 6. Please add the Phoenix 6 vendordep before adding Phoenix 5.", + "offlineFileName": "Phoenix6.json", + "onlineUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6-frc2024-beta-latest.json" + } + ], + "javaDependencies": [ + { + "groupId": "com.ctre.phoenix", + "artifactId": "api-java", + "version": "5.32.0-beta-2" + }, + { + "groupId": "com.ctre.phoenix", + "artifactId": "wpiapi-java", + "version": "5.32.0-beta-2" + } + ], + "jniDependencies": [ + { + "groupId": "com.ctre.phoenix", + "artifactId": "cci", + "version": "5.32.0-beta-2", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "cci-sim", + "version": "5.32.0-beta-2", + "isJar": false, + "skipInvalidPlatforms": true, + "validPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + } + ], + "cppDependencies": [ + { + "groupId": "com.ctre.phoenix", + "artifactId": "wpiapi-cpp", + "version": "5.32.0-beta-2", + "libName": "CTRE_Phoenix_WPI", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix", + "artifactId": "api-cpp", + "version": "5.32.0-beta-2", + "libName": "CTRE_Phoenix", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix", + "artifactId": "cci", + "version": "5.32.0-beta-2", + "libName": "CTRE_PhoenixCCI", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "linuxathena" + ], + "simMode": "hwsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "wpiapi-cpp-sim", + "version": "5.32.0-beta-2", + "libName": "CTRE_Phoenix_WPISim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "api-cpp-sim", + "version": "5.32.0-beta-2", + "libName": "CTRE_PhoenixSim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + }, + { + "groupId": "com.ctre.phoenix.sim", + "artifactId": "cci-sim", + "version": "5.32.0-beta-2", + "libName": "CTRE_PhoenixCCISim", + "headerClassifier": "headers", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "linuxx86-64", + "osxuniversal" + ], + "simMode": "swsim" + } + ] +} \ No newline at end of file diff --git a/vendordeps/Phoenix.json b/vendordeps/Phoenix6.json similarity index 69% rename from vendordeps/Phoenix.json rename to vendordeps/Phoenix6.json index 614dc3a..a6983a5 100644 --- a/vendordeps/Phoenix.json +++ b/vendordeps/Phoenix6.json @@ -1,56 +1,32 @@ { - "fileName": "Phoenix.json", - "name": "CTRE-Phoenix (v5)", - "version": "5.31.0+23.2.2", - "frcYear": 2023, - "uuid": "ab676553-b602-441f-a38d-f1296eff6537", + "fileName": "Phoenix6.json", + "name": "CTRE-Phoenix (v6)", + "version": "24.0.0-beta-3", + "frcYear": 2024, + "uuid": "e995de00-2c64-4df5-8831-c1441420ff19", "mavenUrls": [ "https://maven.ctr-electronics.com/release/" ], - "jsonUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix/Phoenix5-frc2023-latest.json", - "javaDependencies": [ + "jsonUrl": "https://maven.ctr-electronics.com/release/com/ctre/phoenix6/latest/Phoenix6-frc2024-beta-latest.json", + "conflictsWith": [ { - "groupId": "com.ctre.phoenix", - "artifactId": "api-java", - "version": "5.31.0" - }, + "uuid": "3fcf3402-e646-4fa6-971e-18afe8173b1a", + "errorMessage": "The combined Phoenix-6-And-5 vendordep is no longer supported. Please remove the vendordep and instead add both the latest Phoenix 6 vendordep and Phoenix 5 vendordep.", + "offlineFileName": "Phoenix6And5.json" + } + ], + "javaDependencies": [ { - "groupId": "com.ctre.phoenix", + "groupId": "com.ctre.phoenix6", "artifactId": "wpiapi-java", - "version": "5.31.0" + "version": "24.0.0-beta-3" } ], "jniDependencies": [ - { - "groupId": "com.ctre.phoenix", - "artifactId": "cci", - "version": "5.31.0", - "isJar": false, - "skipInvalidPlatforms": true, - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "linuxathena" - ], - "simMode": "hwsim" - }, - { - "groupId": "com.ctre.phoenix.sim", - "artifactId": "cci-sim", - "version": "5.31.0", - "isJar": false, - "skipInvalidPlatforms": true, - "validPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "simMode": "swsim" - }, { "groupId": "com.ctre.phoenix6", "artifactId": "tools", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -63,7 +39,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "tools-sim", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -76,7 +52,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simTalonSRX", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -89,7 +65,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simTalonFX", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -102,7 +78,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simVictorSPX", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -115,7 +91,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simPigeonIMU", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -128,7 +104,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simCANCoder", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -141,7 +117,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProTalonFX", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -154,7 +130,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProCANcoder", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -167,7 +143,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProPigeon2", - "version": "23.2.2", + "version": "24.0.0-beta-3", "isJar": false, "skipInvalidPlatforms": true, "validPlatforms": [ @@ -180,40 +156,10 @@ ], "cppDependencies": [ { - "groupId": "com.ctre.phoenix", + "groupId": "com.ctre.phoenix6", "artifactId": "wpiapi-cpp", - "version": "5.31.0", - "libName": "CTRE_Phoenix_WPI", - "headerClassifier": "headers", - "sharedLibrary": true, - "skipInvalidPlatforms": true, - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "linuxathena" - ], - "simMode": "hwsim" - }, - { - "groupId": "com.ctre.phoenix", - "artifactId": "api-cpp", - "version": "5.31.0", - "libName": "CTRE_Phoenix", - "headerClassifier": "headers", - "sharedLibrary": true, - "skipInvalidPlatforms": true, - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "linuxathena" - ], - "simMode": "hwsim" - }, - { - "groupId": "com.ctre.phoenix", - "artifactId": "cci", - "version": "5.31.0", - "libName": "CTRE_PhoenixCCI", + "version": "24.0.0-beta-3", + "libName": "CTRE_Phoenix6_WPI", "headerClassifier": "headers", "sharedLibrary": true, "skipInvalidPlatforms": true, @@ -227,7 +173,7 @@ { "groupId": "com.ctre.phoenix6", "artifactId": "tools", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_PhoenixTools", "headerClassifier": "headers", "sharedLibrary": true, @@ -240,40 +186,10 @@ "simMode": "hwsim" }, { - "groupId": "com.ctre.phoenix.sim", + "groupId": "com.ctre.phoenix6.sim", "artifactId": "wpiapi-cpp-sim", - "version": "5.31.0", - "libName": "CTRE_Phoenix_WPISim", - "headerClassifier": "headers", - "sharedLibrary": true, - "skipInvalidPlatforms": true, - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "simMode": "swsim" - }, - { - "groupId": "com.ctre.phoenix.sim", - "artifactId": "api-cpp-sim", - "version": "5.31.0", - "libName": "CTRE_PhoenixSim", - "headerClassifier": "headers", - "sharedLibrary": true, - "skipInvalidPlatforms": true, - "binaryPlatforms": [ - "windowsx86-64", - "linuxx86-64", - "osxuniversal" - ], - "simMode": "swsim" - }, - { - "groupId": "com.ctre.phoenix.sim", - "artifactId": "cci-sim", - "version": "5.31.0", - "libName": "CTRE_PhoenixCCISim", + "version": "24.0.0-beta-3", + "libName": "CTRE_Phoenix6_WPISim", "headerClassifier": "headers", "sharedLibrary": true, "skipInvalidPlatforms": true, @@ -287,7 +203,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "tools-sim", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_PhoenixTools_Sim", "headerClassifier": "headers", "sharedLibrary": true, @@ -302,7 +218,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simTalonSRX", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_SimTalonSRX", "headerClassifier": "headers", "sharedLibrary": true, @@ -317,7 +233,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simTalonFX", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_SimTalonFX", "headerClassifier": "headers", "sharedLibrary": true, @@ -332,7 +248,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simVictorSPX", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_SimVictorSPX", "headerClassifier": "headers", "sharedLibrary": true, @@ -347,7 +263,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simPigeonIMU", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_SimPigeonIMU", "headerClassifier": "headers", "sharedLibrary": true, @@ -362,7 +278,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simCANCoder", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_SimCANCoder", "headerClassifier": "headers", "sharedLibrary": true, @@ -377,7 +293,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProTalonFX", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_SimProTalonFX", "headerClassifier": "headers", "sharedLibrary": true, @@ -392,7 +308,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProCANcoder", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_SimProCANcoder", "headerClassifier": "headers", "sharedLibrary": true, @@ -407,7 +323,7 @@ { "groupId": "com.ctre.phoenix6.sim", "artifactId": "simProPigeon2", - "version": "23.2.2", + "version": "24.0.0-beta-3", "libName": "CTRE_SimProPigeon2", "headerClassifier": "headers", "sharedLibrary": true, diff --git a/vendordeps/REVLib.json b/vendordeps/REVLib.json index f2d0b7d..8bc0f17 100644 --- a/vendordeps/REVLib.json +++ b/vendordeps/REVLib.json @@ -1,73 +1,72 @@ { - "fileName": "REVLib.json", - "name": "REVLib", - "version": "2023.1.3", - "uuid": "3f48eb8c-50fe-43a6-9cb7-44c86353c4cb", - "mavenUrls": [ - "https://maven.revrobotics.com/" - ], - "jsonUrl": "https://software-metadata.revrobotics.com/REVLib-2023.json", - "javaDependencies": [ - { - "groupId": "com.revrobotics.frc", - "artifactId": "REVLib-java", - "version": "2023.1.3" - } - ], - "jniDependencies": [ - { - "groupId": "com.revrobotics.frc", - "artifactId": "REVLib-driver", - "version": "2023.1.3", - "skipInvalidPlatforms": true, - "isJar": false, - "validPlatforms": [ - "windowsx86-64", - "windowsx86", - "linuxarm64", - "linuxx86-64", - "linuxathena", - "linuxarm32", - "osxuniversal" - ] - } - ], - "cppDependencies": [ - { - "groupId": "com.revrobotics.frc", - "artifactId": "REVLib-cpp", - "version": "2023.1.3", - "libName": "REVLib", - "headerClassifier": "headers", - "sharedLibrary": false, - "skipInvalidPlatforms": true, - "binaryPlatforms": [ - "windowsx86-64", - "windowsx86", - "linuxarm64", - "linuxx86-64", - "linuxathena", - "linuxarm32", - "osxuniversal" - ] - }, - { - "groupId": "com.revrobotics.frc", - "artifactId": "REVLib-driver", - "version": "2023.1.3", - "libName": "REVLibDriver", - "headerClassifier": "headers", - "sharedLibrary": false, - "skipInvalidPlatforms": true, - "binaryPlatforms": [ - "windowsx86-64", - "windowsx86", - "linuxarm64", - "linuxx86-64", - "linuxathena", - "linuxarm32", - "osxuniversal" - ] - } - ] -} \ No newline at end of file + "fileName": "REVLib.json", + "name": "REVLib", + "version": "2024.0.0", + "frcYear": "2024", + "uuid": "3f48eb8c-50fe-43a6-9cb7-44c86353c4cb", + "mavenUrls": ["https://maven.revrobotics.com/"], + "jsonUrl": "https://software-metadata.revrobotics.com/REVLib-2024.json", + "javaDependencies": [ + { + "groupId": "com.revrobotics.frc", + "artifactId": "REVLib-java", + "version": "2024.0.0" + } + ], + "jniDependencies": [ + { + "groupId": "com.revrobotics.frc", + "artifactId": "REVLib-driver", + "version": "2024.0.0", + "skipInvalidPlatforms": true, + "isJar": false, + "validPlatforms": [ + "windowsx86-64", + "windowsx86", + "linuxarm64", + "linuxx86-64", + "linuxathena", + "linuxarm32", + "osxuniversal" + ] + } + ], + "cppDependencies": [ + { + "groupId": "com.revrobotics.frc", + "artifactId": "REVLib-cpp", + "version": "2024.0.0", + "libName": "REVLib", + "headerClassifier": "headers", + "sharedLibrary": false, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "windowsx86", + "linuxarm64", + "linuxx86-64", + "linuxathena", + "linuxarm32", + "osxuniversal" + ] + }, + { + "groupId": "com.revrobotics.frc", + "artifactId": "REVLib-driver", + "version": "2024.0.0", + "libName": "REVLibDriver", + "headerClassifier": "headers", + "sharedLibrary": false, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "windowsx86-64", + "windowsx86", + "linuxarm64", + "linuxx86-64", + "linuxathena", + "linuxarm32", + "osxuniversal" + ] + } + ] +} diff --git a/vendordeps/ThePinkAlliance.json b/vendordeps/ThePinkAlliance.json deleted file mode 100644 index 5a1e824..0000000 --- a/vendordeps/ThePinkAlliance.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "fileName": "ThePinkAlliance.json", - "name": "ThePinkAlliance", - "version": "2.2.17", - "uuid": "9619F7EA-7F96-4236-9D94-02338DFED572", - "mavenUrls": [ - "https://jitpack.io", - "https://maven.revrobotics.com/", - "https://maven.ctr-electronics.com/release/" - ], - "jsonUrl": "https://raw.githubusercontent.com/ThePinkAlliance/core/main/ThePinkAlliance.json", - "javaDependencies": [ - { - "groupId": "com.github.ThePinkAlliance", - "artifactId": "core", - "version": "2.2.17" - } - ], - "jniDependencies": [], - "cppDependencies": [] -} \ No newline at end of file diff --git a/vendordeps/WPILibNewCommands.json b/vendordeps/WPILibNewCommands.json index bd535bf..ff9d675 100644 --- a/vendordeps/WPILibNewCommands.json +++ b/vendordeps/WPILibNewCommands.json @@ -1,37 +1,38 @@ { - "fileName": "WPILibNewCommands.json", - "name": "WPILib-New-Commands", - "version": "1.0.0", - "uuid": "111e20f7-815e-48f8-9dd6-e675ce75b266", - "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" - ] - } - ] + "fileName": "WPILibNewCommands.json", + "name": "WPILib-New-Commands", + "version": "1.0.0", + "uuid": "111e20f7-815e-48f8-9dd6-e675ce75b266", + "frcYear": "2024", + "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" + ] + } + ] }