Add support for the IMU

Change-Id: Iaff4b088d9bec8edf439e00dda5b788cf87dff0c
diff --git a/frc971/wpilib/imu.q b/frc971/wpilib/imu.q
new file mode 100644
index 0000000..c404126
--- /dev/null
+++ b/frc971/wpilib/imu.q
@@ -0,0 +1,41 @@
+package frc971;
+
+// Values returned from an IMU.
+message IMUValues {
+  // Gyro readings in radians/second.
+  // Positive is clockwise looking at the connector.
+  float gyro_x;
+  // Positive is clockwise looking at the right side (from the connector).
+  float gyro_y;
+  // Positive is counterclockwise looking at the top.
+  float gyro_z;
+
+  // Accelerometer readings in Gs.
+  // Positive is up.
+  float accelerometer_x;
+  // Positive is away from the right side (from the connector).
+  float accelerometer_y;
+  // Positive is away from the connector.
+  float accelerometer_z;
+
+  // Magnetometer readings in gauss.
+  // Positive is up.
+  float magnetometer_x;
+  // Positive is away from the right side (from the connector).
+  float magnetometer_y;
+  // Positive is away from the connector.
+  float magnetometer_z;
+
+  // Barometer readings in pascals.
+  float barometer;
+
+  // Temperature readings in degrees Celsius.
+  float temperature;
+
+  // FPGA timestamp when the values were captured.
+  double fpga_timestamp;
+  // CLOCK_MONOTONIC time in nanoseconds when the values were captured.
+  int64_t monotonic_timestamp_ns;
+};
+
+queue IMUValues imu_values;