Add plot configs for looking at 2kHz IMU data

Needed to add the ability to specify specific signals for the x-axis to
be able to actually understand the IMU signals with their timestamps.

Change-Id: I0f3c4b41a10ad6a98bbd71751ffcca70a90e394d
diff --git a/frc971/analysis/plot_configs/drivetrain.pb b/frc971/analysis/plot_configs/drivetrain.pb
index 2b15220..0ac4fff 100644
--- a/frc971/analysis/plot_configs/drivetrain.pb
+++ b/frc971/analysis/plot_configs/drivetrain.pb
@@ -31,39 +31,53 @@
 
 figure {
   axes {
-    signal {
-      channel: "JoystickState"
-      field: "test_mode"
+    line {
+      y_signal {
+        channel: "JoystickState"
+        field: "test_mode"
+      }
     }
-    signal {
-      channel: "JoystickState"
-      field: "autonomous"
+    line {
+      y_signal {
+        channel: "JoystickState"
+        field: "autonomous"
+      }
     }
-    signal {
-      channel: "RobotState"
-      field: "browned_out"
+    line {
+      y_signal {
+        channel: "RobotState"
+        field: "browned_out"
+      }
     }
-    signal {
-      channel: "JoystickState"
-      field: "enabled"
+    line {
+      y_signal {
+        channel: "JoystickState"
+        field: "enabled"
+      }
     }
     ylabel: "[bool]"
   }
   axes {
-    signal {
-      channel: "RobotState"
-      field: "voltage_battery"
+    line {
+      y_signal {
+        channel: "RobotState"
+        field: "voltage_battery"
+      }
     }
     ylabel: "[V]"
   }
   axes {
-    signal {
-      channel: "Status"
-      field: "line_follow_logging.frozen"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "line_follow_logging.frozen"
+      }
     }
-    signal {
-      channel: "Goal"
-      field: "quickturn"
+    line {
+      y_signal {
+        channel: "Goal"
+        field: "quickturn"
+      }
     }
     ylabel: "[bool]"
   }
@@ -71,59 +85,83 @@
 
 figure {
   axes {
-    signal {
-      channel: "Status"
-      field: "poly_drive_logging.ff_left_voltage"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "poly_drive_logging.ff_left_voltage"
+      }
     }
-    signal {
-      channel: "Status"
-      field: "poly_drive_logging.ff_right_voltage"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "poly_drive_logging.ff_right_voltage"
+      }
     }
-    signal {
-      channel: "Output"
-      field: "left_voltage"
+    line {
+      y_signal {
+        channel: "Output"
+        field: "left_voltage"
+      }
     }
-    signal {
-      channel: "Output"
-      field: "right_voltage"
+    line {
+      y_signal {
+        channel: "Output"
+        field: "right_voltage"
+      }
     }
     ylabel: "[V]"
   }
   axes {
-    signal {
-      channel: "Status"
-      field: "theta"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "theta"
+      }
     }
     ylabel: "[rad]"
   }
   axes {
-    signal {
-      channel: "Status"
-      field: "robot_speed"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "robot_speed"
+      }
     }
-    signal {
-      channel: "Status"
-      field: "trajectory_logging.left_velocity"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "trajectory_logging.left_velocity"
+      }
     }
-    signal {
-      channel: "Status"
-      field: "poly_drive_logging.goal_left_velocity"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "poly_drive_logging.goal_left_velocity"
+      }
     }
-    signal {
-      channel: "Status"
-      field: "estimated_left_velocity"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "estimated_left_velocity"
+      }
     }
-    signal {
-      channel: "Status"
-      field: "trajectory_logging.right_velocity"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "trajectory_logging.right_velocity"
+      }
     }
-    signal {
-      channel: "Status"
-      field: "poly_drive_logging.goal_right_velocity"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "poly_drive_logging.goal_right_velocity"
+      }
     }
-    signal {
-      channel: "Status"
-      field: "estimated_right_velocity"
+    line {
+      y_signal {
+        channel: "Status"
+        field: "estimated_right_velocity"
+      }
     }
     ylabel: "[m/s]"
   }
@@ -131,33 +169,129 @@
 
 figure {
   axes {
-    signal {
-      channel: "IMU"
-      field: "gyro_x"
+    line {
+      y_signal {
+        channel: "IMU"
+        field: "gyro_x"
+      }
+      x_signal {
+        channel: "CalcIMU"
+        field: "monotonic_timestamp_sec"
+      }
     }
-    signal {
-      channel: "IMU"
-      field: "gyro_y"
+    line {
+      y_signal {
+        channel: "IMU"
+        field: "gyro_y"
+      }
+      x_signal {
+        channel: "CalcIMU"
+        field: "monotonic_timestamp_sec"
+      }
     }
-    signal {
-      channel: "IMU"
-      field: "gyro_z"
+    line {
+      y_signal {
+        channel: "IMU"
+        field: "gyro_z"
+      }
+      x_signal {
+        channel: "CalcIMU"
+        field: "monotonic_timestamp_sec"
+      }
     }
     ylabel: "rad / sec"
   }
   axes {
-    signal {
-      channel: "IMU"
-      field: "accelerometer_x"
+    line {
+      y_signal {
+        channel: "CalcIMU"
+        field: "total_acceleration"
+      }
+      x_signal {
+        channel: "CalcIMU"
+        field: "monotonic_timestamp_sec"
+      }
     }
-    signal {
-      channel: "IMU"
-      field: "accelerometer_y"
+    line {
+      y_signal {
+        channel: "IMU"
+        field: "accelerometer_x"
+      }
+      x_signal {
+        channel: "CalcIMU"
+        field: "monotonic_timestamp_sec"
+      }
     }
-    signal {
-      channel: "IMU"
-      field: "accelerometer_z"
+    line {
+      y_signal {
+        channel: "IMU"
+        field: "accelerometer_y"
+      }
+      x_signal {
+        channel: "CalcIMU"
+        field: "monotonic_timestamp_sec"
+      }
+    }
+    line {
+      y_signal {
+        channel: "IMU"
+        field: "accelerometer_z"
+      }
+      x_signal {
+        channel: "CalcIMU"
+        field: "monotonic_timestamp_sec"
+      }
     }
     ylabel: "g"
   }
 }
+
+figure {
+  axes {
+    line {
+      y_signal {
+        channel: "Status"
+        field: "down_estimator.yaw"
+      }
+    }
+    line {
+      y_signal {
+        channel: "Status"
+        field: "down_estimator.lateral_pitch"
+      }
+    }
+    line {
+      y_signal {
+        channel: "Status"
+        field: "down_estimator.longitudinal_pitch"
+      }
+    }
+    ylabel: "rad"
+  }
+  axes {
+    line {
+      y_signal {
+        channel: "Status"
+        field: "down_estimator.quaternion_x"
+      }
+    }
+    line {
+      y_signal {
+        channel: "Status"
+        field: "down_estimator.quaternion_y"
+      }
+    }
+    line {
+      y_signal {
+        channel: "Status"
+        field: "down_estimator.quaternion_z"
+      }
+    }
+    line {
+      y_signal {
+        channel: "Status"
+        field: "down_estimator.quaternion_w"
+      }
+    }
+  }
+}