Merge "Plan with more fidelity"
diff --git a/frc971/control_loops/drivetrain/drivetrain_config.json b/frc971/control_loops/drivetrain/drivetrain_config.json
index 3438fe5..238adee 100644
--- a/frc971/control_loops/drivetrain/drivetrain_config.json
+++ b/frc971/control_loops/drivetrain/drivetrain_config.json
@@ -11,8 +11,8 @@
     {
       "name": "/drivetrain",
       "type": "frc971.control_loops.drivetrain.fb.Trajectory",
-      "max_size": 400000,
-      "frequency": 2,
+      "max_size": 600000,
+      "frequency": 4,
       "num_senders": 2,
       "read_method": "PIN",
       "num_readers": 6
diff --git a/y2020/actors/autonomous_actor.cc b/y2020/actors/autonomous_actor.cc
index 2e0bebc..c78a33f 100644
--- a/y2020/actors/autonomous_actor.cc
+++ b/y2020/actors/autonomous_actor.cc
@@ -11,8 +11,9 @@
 #include "y2020/actors/auto_splines.h"
 #include "y2020/control_loops/drivetrain/drivetrain_base.h"
 
-DEFINE_bool(spline_auto, true, "If true, define a spline autonomous mode");
-DEFINE_bool(galactic_search, false,
+DEFINE_bool(spline_auto, false, "If true, define a spline autonomous mode");
+DEFINE_bool(ignore_vision, true, "If true, ignore vision");
+DEFINE_bool(galactic_search, true,
             "If true, do the galactic search autonomous");
 DEFINE_bool(bounce, false, "If true, run the AutoNav Bounce autonomous");
 DEFINE_bool(barrel, false, "If true, run the AutoNav Barrel autonomous");
@@ -157,13 +158,12 @@
   CHECK(galactic_search_splines_);
 
   path_fetcher_.Fetch();
-  CHECK(path_fetcher_.get() != nullptr)
-      << "Expect at least one GalacticSearchPath message before running "
-         "auto...";
-  if (path_fetcher_->alliance() == y2020::vision::Alliance::kUnknown) {
-    AOS_LOG(ERROR, "The galactic search path is unknown, doing nothing.");
-  } else {
-    SplineHandle *spline = nullptr;
+  SplineHandle *spline = nullptr;
+  if (path_fetcher_.get()) {
+    if (path_fetcher_->alliance() == y2020::vision::Alliance::kUnknown) {
+      AOS_LOG(ERROR, "The galactic search path is unknown, doing nothing.");
+      return;
+    }
     if (path_fetcher_->alliance() == y2020::vision::Alliance::kRed) {
       if (path_fetcher_->letter() == y2020::vision::Letter::kA) {
         LOG(INFO) << "Red A";
@@ -180,23 +180,30 @@
       } else {
         LOG(INFO) << "Blue B";
         CHECK(path_fetcher_->letter() == y2020::vision::Letter::kB);
-        spline = &galactic_search_splines_->red_b;
+        spline = &galactic_search_splines_->blue_b;
       }
     }
-    CHECK_NOTNULL(spline);
-
-    SendStartingPosition(spline->starting_position());
-
-    set_intake_goal(1.2);
-    set_roller_voltage(7.0);
-    SendSuperstructureGoal();
-
-    if (!spline->WaitForPlan()) return;
-    spline->Start();
-
-    if (!spline->WaitForSplineDistanceRemaining(0.02)) return;
-    RetractIntake();
   }
+  if (FLAGS_ignore_vision) {
+    LOG(INFO) << "Forcing Red B";
+    spline = &galactic_search_splines_->red_b;
+  }
+
+  CHECK(spline != nullptr)
+      << "Expect at least one GalacticSearchPath message before running "
+         "auto...";
+
+  SendStartingPosition(spline->starting_position());
+
+  set_intake_goal(1.25);
+  set_roller_voltage(12.0);
+  SendSuperstructureGoal();
+
+  if (!spline->WaitForPlan()) return;
+  spline->Start();
+
+  if (!spline->WaitForSplineDistanceRemaining(0.02)) return;
+  RetractIntake();
 }
 
 void AutonomousActor::AutoNavBounce() {
@@ -288,8 +295,8 @@
 
     frc971::ProfileParameters::Builder profile_params_builder =
         builder.MakeBuilder<frc971::ProfileParameters>();
-    profile_params_builder.add_max_velocity(10.0);
-    profile_params_builder.add_max_acceleration(30.0);
+    profile_params_builder.add_max_velocity(20.0);
+    profile_params_builder.add_max_acceleration(60.0);
     flatbuffers::Offset<frc971::ProfileParameters> profile_params_offset =
         profile_params_builder.Finish();
     intake_builder.add_unsafe_goal(intake_goal_);
diff --git a/y2020/actors/splines/autonav_barrel.json b/y2020/actors/splines/autonav_barrel.json
index eab3cfc..2649661 100644
--- a/y2020/actors/splines/autonav_barrel.json
+++ b/y2020/actors/splines/autonav_barrel.json
@@ -1 +1 @@
-{"spline_count": 4, "spline_x": [-3.5151586543642246, -1.265622652236729, -2.258167110671239, 1.0300078526327052, 0.25745854323814665, -0.7822290779903016, -1.8219166992187499, -3.1287426322810883, 1.6738468981570327, 3.5446208496093754, 2.9234051993534482, 2.302189549097521, -0.8110157028666762, 3.38275119440928, 4.28405580452697, 4.453499428108947, 4.622943051690925, 4.06052568873719, 2.755791372575431, -0.025793453663793216, -3.4092430664062503], "spline_y": [-0.018909511382004314, -0.07759003939693922, -0.32922657858767934, 0.6189274969231588, -1.5383952720905172, -1.337796770608836, -1.137198269127155, 1.4213215028498833, -1.7862918411708972, 0.2754524444162029, 1.0503166436557112, 1.8251808428952194, 1.3131649557871359, -2.1388633405610635, -1.6289002551771192, -1.028790341729987, -0.4286804282828549, 0.2615763132274651, 0.013016687432650737, 0.35339494881465516, 0.2666422649515086], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2.0}, {"constraint_type": "VOLTAGE", "value": 6.0}]}
+{"spline_count": 4, "spline_x": [-3.439527264404297, -1.4521381072998047, -1.9621627899169916, 2.3140273590087896, -0.15155005187988285, -1.2099180084228516, -2.2682859649658202, -1.9194444671630853, 2.2364890686035164, 3.0541333465576175, 2.1377636993408204, 1.2213940521240234, -1.428989520263672, 1.0701125885009766, 3.340432150268555, 3.8391586853027344, 4.337885220336914, 3.065018728637696, 2.9864502685546874, 0.33045889892578123, -3.72018571472168], "spline_y": [0.0026085617065429684, -0.004877609252929687, -0.094301220703125, 0.4880167236328125, -1.993748071289062, -1.4883794998168944, -0.9830109283447268, 2.509491009521483, -2.4357923103332517, 0.09796495056152343, 1.1720165428161622, 2.246068135070801, 1.8604140586853029, -2.8892405044555662, -2.3678153549194336, -1.3137169052124023, -0.2596184555053709, 1.3271532943725592, -0.6553675552368162, -0.01534266815185547, -0.04329328765869141], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 7.499999999999998}, {"constraint_type": "LATERAL_ACCELERATION", "value": 8.499999999999995}, {"constraint_type": "VOLTAGE", "value": 11.999999999999993}]}
\ No newline at end of file
diff --git a/y2020/actors/splines/autonav_bounce_1.json b/y2020/actors/splines/autonav_bounce_1.json
index 339900b..233040c 100644
--- a/y2020/actors/splines/autonav_bounce_1.json
+++ b/y2020/actors/splines/autonav_bounce_1.json
@@ -1 +1 @@
-{"spline_count": 1, "spline_x": [-3.841487603305785, -3.3755947873443977, -3.0957801579518933, -2.3949857243581434, -2.3116481497990145, -2.304892561983471], "spline_y": [0.0503801652892562, 0.05652844187629669, 0.11639432357851401, 0.3335849649896266, 0.9762657982284103, 1.5617851239669422], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.0}, {"constraint_type": "VOLTAGE", "value": 2.0}]}
+{"spline_count": 1, "spline_x": [-3.854933303833008, -3.1908587219238282, -2.8742285649343122, -2.3949857243581434, -2.3116481497990145, -2.304892561983471], "spline_y": [0.04259449310302734, 0.04866970367431641, 0.12185038589540864, 0.3335849649896266, 0.9762657982284103, 1.5617851239669422], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.0}, {"constraint_type": "VOLTAGE", "value": 9.999999999999993}]}
\ No newline at end of file
diff --git a/y2020/actors/splines/autonav_bounce_2.json b/y2020/actors/splines/autonav_bounce_2.json
index 127128e..365f721 100644
--- a/y2020/actors/splines/autonav_bounce_2.json
+++ b/y2020/actors/splines/autonav_bounce_2.json
@@ -1 +1 @@
-{"spline_count": 2, "spline_x": [-2.300972622575431, -2.276803448275862, -2.2713968817349137, -1.6818424905711238, -1.7119211678340525, -1.5873674232219828, -1.462813678609913, -1.183627512122845, 0.07931769261853441, 0.20563043170797451, -0.0033345198006461863], "spline_y": [1.52789615352236, 0.9051463547279094, 0.30167396787446127, -0.15916462318157443, -0.3509412092537718, -0.7144320935479526, -1.0779229778421333, -1.6131281603582976, -2.2125802633351292, -1.0379113062365304, 1.5787289769665949], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.0}, {"constraint_type": "VOLTAGE", "value": 10.0}]}
\ No newline at end of file
+{"spline_count": 2, "spline_x": [-2.300972622575431, -2.276803448275862, -2.2197493927001952, -2.0912932800292934, -1.8907473815917966, -1.6507643554687499, -1.4107813293457032, -1.1313611755371065, -0.17296153564453126, -0.002871917724609375, -0.0033345198006461863], "spline_y": [1.52789615352236, 0.9051463547279094, 0.5131617004394531, 0.6903293746948247, 0.10570575714111341, -0.4938134628295899, -1.0933326828002932, -1.7077475051879882, -2.25593497467041, -1.0112510650634765, 1.5787289769665949], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 5.0}, {"constraint_type": "VOLTAGE", "value": 9.999999999999993}]}
\ No newline at end of file
diff --git a/y2020/actors/splines/autonav_bounce_3.json b/y2020/actors/splines/autonav_bounce_3.json
index 6636c41..96a3e83 100644
--- a/y2020/actors/splines/autonav_bounce_3.json
+++ b/y2020/actors/splines/autonav_bounce_3.json
@@ -1 +1 @@
-{"spline_count": 1, "spline_x": [0.012595041322314211, -0.1130877609569499, -0.17110139636281083, 2.5749025625648345, 2.4596194323781124, 2.304892561983471], "spline_y": [1.5869752066115703, -1.207064795529694, -2.512129978037474, -2.7245033896038637, -1.2752370311689574, 1.536595041322314], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.0}, {"constraint_type": "VOLTAGE", "value": 2.0}]}
\ No newline at end of file
+{"spline_count": 1, "spline_x": [0.012595041322314211, 0.035615267944335935, -1.0700335235595704, 3.6841669830322266, 2.4339549224853516, 2.4026312530517577], "spline_y": [1.5869752066115703, -0.6927920150756836, -2.8280890045166016, -2.13918454284668, -0.8389284439086915, 1.5275657707214354], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 5.5}, {"constraint_type": "LATERAL_ACCELERATION", "value": 5.5}, {"constraint_type": "VOLTAGE", "value": 9.999999999999993}]}
\ No newline at end of file
diff --git a/y2020/actors/splines/autonav_bounce_4.json b/y2020/actors/splines/autonav_bounce_4.json
index 2f3a0e6..042b800 100644
--- a/y2020/actors/splines/autonav_bounce_4.json
+++ b/y2020/actors/splines/autonav_bounce_4.json
@@ -1 +1 @@
-{"spline_count": 1, "spline_x": [2.2545123966942158, 2.2545123966942158, 2.3716765227891603, 2.7544087339535794, 3.0050034929330915, 3.765917355371901], "spline_y": [1.536595041322314, 0.9572231404958678, 0.689289587250389, 0.2103741125842842, 0.05097942228831691, 0.0503801652892562], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.0}, {"constraint_type": "VOLTAGE", "value": 2.0}]}
\ No newline at end of file
+{"spline_count": 1, "spline_x": [2.420588296508789, 2.4232765045166014, 2.5394848846055655, 2.5435332334653036, 2.696887710571289, 3.661613708496094], "spline_y": [1.5176544570922852, 0.9584327774047853, 0.7181724172979964, 0.2998157461902411, 0.1163405731201172, 0.12068274993896484], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 5.5}, {"constraint_type": "LATERAL_ACCELERATION", "value": 5.5}, {"constraint_type": "VOLTAGE", "value": 9.999999999999993}]}
\ No newline at end of file
diff --git a/y2020/actors/splines/autonav_slalom.json b/y2020/actors/splines/autonav_slalom.json
index 5d878e6..6936d80 100644
--- a/y2020/actors/splines/autonav_slalom.json
+++ b/y2020/actors/splines/autonav_slalom.json
@@ -1 +1 @@
-{"spline_count": 8, "spline_x": [-3.4207588741571575, -3.1903979471926864, -3.084489136248705, -2.732087602924013, -2.5142798033908194, -2.273429890106328, -2.0325799768218364, -1.768687949786047, -1.0683327444242738, -0.5380152157352175, 0.016462181502852943, 0.5709395787409234, 1.149576844528008, 1.6589843304266054, 2.0281691681794594, 2.3269663308804454, 2.6257634935814314, 2.8541729812305494, 3.1768999773080915, 3.664860157060426, 3.681661987811204, 3.698463818561982, 3.244107300311203, 2.6816450580264526, 2.6105688213174276, 2.3169760114107887, 2.0233832015041497, 1.5072738183998968, 0.5446569023923764, 0.2191818351270748, -0.09625968458246914, -0.41170120429201307, -0.7171091764457993, -1.6306328813861517, -1.9163118638161307, -2.2553543746758296, -2.594396885535528, -2.9868029248249472, -3.27459853961359, -3.6931884481976143, -4.068067814363978], "spline_y": [-1.504634589357495, -1.4374380733759078, -1.3291470861157937, -1.2507240045951113, -1.0273675714389912, -0.758464560101141, -0.48956154876329094, -0.17511195924371137, 0.230135523372666, 0.2566930068399896, 0.2366884380672977, 0.2166838692946058, 0.15011724828189843, -0.0019051235088172191, -0.4611302049565611, -0.8345066232008558, -1.2078830414451505, -1.495410796485996, -1.6395803232786565, -1.2497401796712917, -0.784383657368387, -0.3190271350654823, 0.22184576593296246, -0.04691945588044605, -0.3698101011410789, -0.7732763550311204, -1.176742608921162, -1.6607844714406121, -1.6312071973871891, -1.6388462177450727, -1.623608317394969, -1.6083704170448652, -1.570255595986774, -1.4706935943983404, -1.1535808460029824, -0.7902526419865145, -0.42692443797004653, -0.01738077833246887, 0.01122347781865923, 0.025194254894968883, 0.028633203530212654], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.0}, {"constraint_type": "VOLTAGE", "value": 10.0}]}
\ No newline at end of file
+{"spline_count": 8, "spline_x": [-3.4749518463134765, -3.1365934295654294, -2.9590075597612686, -2.760017578125, -2.5225692810058593, -2.273429890106328, -2.0242904992067965, -1.7634600145268742, -1.4530334014892579, -1.1285066986083985, -0.68847890625, -0.24845111389160157, 0.30707776794433594, 1.871516759595437, 2.184855541688278, 2.417896609990923, 2.650937678293568, 2.8036810328060167, 3.5928316545035397, 3.8742948612577215, 3.853217129516602, 3.832139397775482, 3.5085207275390626, 2.5905665683350616, 2.4835600727761933, 2.3169760114107887, 2.150391950045384, 1.9242303228734432, 1.4789411224365234, 1.0076788024902341, 0.21033948669433594, -0.5869998291015622, -1.7104161407470695, -1.6109939147949213, -2.028241729609699, -2.2553543746758296, -2.4824670197419603, -2.519444495059444, -3.4609283874195165, -3.690070111083984, -4.450609153747559], "spline_y": [-1.6666796630859375, -1.5026007247924806, -1.3657751963192004, -1.3422337692260742, -1.0754058700561524, -0.758464560101141, -0.4415232501461297, -0.07446852940602877, 0.20931454925537119, 0.2820978973388672, 0.3545516143798828, 0.4270053314208984, 0.49912941741943356, 0.32144404823651485, -0.1969548795707987, -0.7699543538073782, -1.3429538280439577, -1.970553848709803, -1.7554159149993005, -1.2416998867240683, -0.7131605392456054, -0.18462119176714253, 0.3587414749145508, 0.459862695717713, -0.20117116182572614, -0.7732763550311204, -1.3453815482365146, -1.8285580771038639, -1.8799707138061523, -2.1832105377197277, -2.2168379425048825, -2.2504653472900373, -2.0144803329467713, -1.7455779479980467, -1.3180884153753891, -0.7902526419865145, -0.2624168685976398, 0.365765145557452, 1.047112901958292, 1.014591268157959, 1.6061016746520995], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.999999999999993}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.999999999999993}, {"constraint_type": "VOLTAGE", "value": 12.0}]}
\ No newline at end of file
diff --git a/y2020/actors/splines/spline_blue_a.json b/y2020/actors/splines/spline_blue_a.json
index 063a27b..27b72b3 100644
--- a/y2020/actors/splines/spline_blue_a.json
+++ b/y2020/actors/splines/spline_blue_a.json
@@ -1 +1 @@
-{"spline_count": 3, "spline_x": [-3.8589564582257236, -2.706301079868285, -1.8662093637009298, -1.3063849916064052, -0.4873721348786154, -0.00625139624225228, 0.4748693423941108, 0.6180979629390473, -0.009563129519629676, 0.15372038836518587, 0.6260651875645665, 1.0984099867639472, 1.879816067277893, 2.9980503292871896, 3.5245728709323347, 4.3991472026730385], "spline_y": [-1.6780186596074382, -1.8082232817342458, -1.892411108600207, -1.749871279377583, -1.9347886872094529, -1.488971578802944, -1.0431544703964353, 0.03339715424845213, -0.09653840876807873, 0.6210084137719525, 0.8305055244382749, 1.0400026351045972, 0.7414500338972108, -0.9412994536092459, -1.2421690381262913, -1.7536811563791324], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2.0}, {"constraint_type": "VOLTAGE", "value": 2.0}]}
+{"spline_count": 3, "spline_x": [-3.368782745361328, -2.2354461090087887, -1.4045700997849144, -1.7840407197558215, -0.9349464202880862, -0.4274192596435547, 0.08010790100097676, 0.24606792282230439, -0.7738946228027348, -0.3780420410156249, 0.16000186157226565, 0.6980457641601562, 1.3782809875488273, 2.5139577847315264, 3.0543124053955077, 4.539442684936523], "spline_y": [-1.5853468368530275, -1.5885472229003905, -1.6684259431949335, -2.030274512714982, -2.168715298461914, -1.8642716720581054, -1.5598280456542968, -0.8125000070997483, -0.2118207916259753, 0.4719089859008792, 0.7151854156494141, 0.958461845397949, 0.7612849273681641, 0.032713186771613084, -0.2212173110961914, -0.32124376373291014], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.500000000000002}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.5}, {"constraint_type": "VOLTAGE", "value": 12.0}]}
\ No newline at end of file
diff --git a/y2020/actors/splines/spline_blue_b.json b/y2020/actors/splines/spline_blue_b.json
index fb78187..00c5165 100644
--- a/y2020/actors/splines/spline_blue_b.json
+++ b/y2020/actors/splines/spline_blue_b.json
@@ -1 +1 @@
-{"spline_count": 3, "spline_x": [-4.150494304057981, -3.3986216889688787, -2.2755236069860536, -0.7710065615315085, -0.3059309707515497, 0.07081943278667355, 0.4475698363248968, 0.7359950526213844, 0.6477528893336757, 0.9985598447184914, 1.5433015318310954, 2.0880432189436995, 2.826719637784092, 2.54224882166839, 3.098134168388431, 4.279168364217459], "spline_y": [-1.8370325937822833, -1.7225587047230115, -1.4951960691341684, -1.2591343681398501, -1.052224068633781, -0.746549088407154, -0.44087410818052697, -0.03643444723334266, 0.4353676213035902, 0.7416545188210228, 0.7718694725351886, 0.8020844262493543, 0.5562274361602532, -0.9685113232825411, -0.8008121610278923, -1.6595312237700157], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2.0}, {"constraint_type": "VOLTAGE", "value": 2.0}]}
+{"spline_count": 3, "spline_x": [-3.39804026184082, -2.5546545318603515, -1.435279833984375, -0.8065054229736328, -0.3800140136718751, -0.1415320587158203, 0.09694989624023448, 0.14742239685058633, 0.03417698364257811, 0.5247121582031249, 1.0381308197021484, 1.5515494812011719, 2.0878516296386724, 2.627104107312922, 3.1052011596679687, 4.269367309570312], "spline_y": [-1.5841195861816406, -1.5982576766967775, -1.4621136611938477, -1.5811784866333012, -1.4247781494140626, -1.0768819427490233, -0.728985736083984, -0.18959365997314404, 0.6665802429199222, 0.8889393447875978, 0.8239869140625, 0.7590344833374022, 0.40677052001953085, -1.0101512234900605, -0.8171425643920898, -1.7796634643554687], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.0}, {"constraint_type": "VOLTAGE", "value": 12.0}]}
\ No newline at end of file
diff --git a/y2020/actors/splines/spline_red_a.json b/y2020/actors/splines/spline_red_a.json
index eae42c9..2e91d4f 100644
--- a/y2020/actors/splines/spline_red_a.json
+++ b/y2020/actors/splines/spline_red_a.json
@@ -1 +1 @@
-{"spline_count": 3, "spline_x": [-3.5430995125258264, -2.833856622869318, -2.2671351126678716, -1.5517361505681804, -1.0942218895273754, -0.7058266076962806, -0.3174313258651858, 0.0018449767561987526, -0.7213536245803214, -0.46077833241864685, 0.08654170971074387, 0.6338617518401346, 1.4679265439372415, 1.8681219896048553, 2.4377923876549588, 4.128750484245868], "spline_y": [1.345144878292872, 0.563397477079029, -0.10274521807205578, -0.6578218499806299, -0.8755060450025827, -0.6711287448347107, -0.4667514446668389, 0.15968735069085743, 0.5673580271823342, 1.1876484375, 1.4852908501743287, 1.7829332628486574, 1.7579276778796489, 1.8390174812758264, 1.9139266125387395, 1.8437913586324897], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2.0}, {"constraint_type": "VOLTAGE", "value": 2.0}]}
+{"spline_count": 3, "spline_x": [-3.251309683227539, -2.471539837646484, -1.9919760864257812, -1.8171762908935547, -1.2402998748779297, -0.9586693908691406, -0.6770389068603515, -0.6906543548583981, -0.8745954528808596, -0.8974987060546875, -0.6056990753173828, -0.313899444580078, 0.2926030700683593, 1.7207530778616913, 2.3043570190429685, 4.025684509277344], "spline_y": [0.9793806266784668, 0.18692638092041014, -0.29821900634765625, -1.2191290740966798, -1.1123914031982423, -0.7905331420898437, -0.46867488098144516, 0.06830397033691415, 0.41884652709960957, 0.8500789260864258, 1.2572325622558593, 1.664386198425293, 2.047461071777344, 1.5242765182936486, 1.6542623977661133, 1.652634299468994], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.5}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.5}, {"constraint_type": "VOLTAGE", "value": 12.0}]}
\ No newline at end of file
diff --git a/y2020/actors/splines/spline_red_b.json b/y2020/actors/splines/spline_red_b.json
index ace02fe..28a8451 100644
--- a/y2020/actors/splines/spline_red_b.json
+++ b/y2020/actors/splines/spline_red_b.json
@@ -1 +1 @@
-{"spline_count": 2, "spline_x": [-3.392645926339286, -2.154575892857143, -1.9643174545865811, -1.8674530715821605, -1.4586490399672885, -0.7749665868973982, -0.09128413382750789, 0.8672767406974007, 0.3081139946408683, 0.39452214556653653, 4.533722882231405], "spline_y": [1.5839347098214285, 0.8960059988839286, 0.540389038357809, -0.3293477472090389, -0.755995497807628, -0.7561097332951151, -0.7562239687826022, -0.3298046891589874, 1.1545971581813754, 1.2564632146958519, 1.674700392037384], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 3}, {"constraint_type": "LATERAL_ACCELERATION", "value": 2}, {"constraint_type": "VOLTAGE", "value": 2.0}]}
+{"spline_count": 2, "spline_x": [-3.240201058959961, -2.4673773010253908, -2.0606439880371092, -2.3827150268554687, -1.8442327789306632, -1.3579938537597656, -0.8717549285888679, -0.43775932617187774, 0.2918380004882813, 0.4791974945068359, 4.533722882231405], "spline_y": [1.6369277000427247, 0.9154947006225586, 0.668192935180664, -0.5594466659545898, -1.08513957824707, -1.0174198745727538, -0.9497001708984376, -0.28856785125732465, 0.613231755065918, 1.6393723182678221, 1.674700392037384], "constraints": [{"constraint_type": "LONGITUDINAL_ACCELERATION", "value": 6.0}, {"constraint_type": "LATERAL_ACCELERATION", "value": 6.0}, {"constraint_type": "VOLTAGE", "value": 12.0}]}
\ No newline at end of file
diff --git a/y2020/y2020_roborio.json b/y2020/y2020_roborio.json
index 7a4453a..82eee24 100644
--- a/y2020/y2020_roborio.json
+++ b/y2020/y2020_roborio.json
@@ -211,8 +211,8 @@
       "name": "/drivetrain",
       "type": "frc971.control_loops.drivetrain.fb.Trajectory",
       "source_node": "roborio",
-      "max_size": 400000,
-      "frequency": 2,
+      "max_size": 600000,
+      "frequency": 4,
       "num_senders": 2,
       "read_method": "PIN",
       "num_readers": 6