Make y2020 multinode!

Update the configs.  It all starts on a roboRIO, and forwards RobotState
between nodes.  Need to finalize deployment for pi's.

Change-Id: I2601419a94ca154e9663c916e9b8987d73ffa814
diff --git a/y2020/control_loops/drivetrain/localizer_test.cc b/y2020/control_loops/drivetrain/localizer_test.cc
index acab856..1e72c39 100644
--- a/y2020/control_loops/drivetrain/localizer_test.cc
+++ b/y2020/control_loops/drivetrain/localizer_test.cc
@@ -101,7 +101,9 @@
             aos::configuration::ReadConfig(
                 "y2020/control_loops/drivetrain/simulation_config.json"),
             GetTest2020DrivetrainConfig().dt),
-        test_event_loop_(MakeEventLoop("test")),
+        roborio_(aos::configuration::GetNode(configuration(), "roborio")),
+        pi1_(aos::configuration::GetNode(configuration(), "pi1")),
+        test_event_loop_(MakeEventLoop("test", roborio_)),
         drivetrain_goal_sender_(
             test_event_loop_->MakeSender<Goal>("/drivetrain")),
         drivetrain_goal_fetcher_(
@@ -111,13 +113,14 @@
         superstructure_status_sender_(
             test_event_loop_->MakeSender<superstructure::Status>(
                 "/superstructure")),
-        drivetrain_event_loop_(MakeEventLoop("drivetrain")),
+        drivetrain_event_loop_(MakeEventLoop("drivetrain", roborio_)),
         dt_config_(GetTest2020DrivetrainConfig()),
+        pi1_event_loop_(MakeEventLoop("test", pi1_)),
         camera_sender_(
-            test_event_loop_->MakeSender<ImageMatchResult>("/camera")),
+            pi1_event_loop_->MakeSender<ImageMatchResult>("/pi1/camera")),
         localizer_(drivetrain_event_loop_.get(), dt_config_),
         drivetrain_(dt_config_, drivetrain_event_loop_.get(), &localizer_),
-        drivetrain_plant_event_loop_(MakeEventLoop("plant")),
+        drivetrain_plant_event_loop_(MakeEventLoop("plant", roborio_)),
         drivetrain_plant_(drivetrain_plant_event_loop_.get(), dt_config_),
         last_frame_(monotonic_now()) {
     set_team_id(frc971::control_loops::testing::kTeamNumber);
@@ -127,7 +130,7 @@
     if (!FLAGS_output_file.empty()) {
       log_buffer_writer_ = std::make_unique<aos::logger::DetachedBufferWriter>(
           FLAGS_output_file);
-      logger_event_loop_ = MakeEventLoop("logger");
+      logger_event_loop_ = MakeEventLoop("logger", roborio_);
       logger_ = std::make_unique<aos::logger::Logger>(log_buffer_writer_.get(),
                                                       logger_event_loop_.get());
     }
@@ -290,6 +293,9 @@
     }
   }
 
+  const aos::Node *const roborio_;
+  const aos::Node *const pi1_;
+
   std::unique_ptr<aos::EventLoop> test_event_loop_;
   aos::Sender<Goal> drivetrain_goal_sender_;
   aos::Fetcher<Goal> drivetrain_goal_fetcher_;
@@ -300,6 +306,7 @@
   const frc971::control_loops::drivetrain::DrivetrainConfig<double>
       dt_config_;
 
+  std::unique_ptr<aos::EventLoop> pi1_event_loop_;
   aos::Sender<ImageMatchResult> camera_sender_;
 
   Localizer localizer_;