  In this technical report, we compare treating an IMU as an input to a motion
model against treating it as a measurement of the state in a continuous-time
state estimation framework. Treating IMU measurements as inputs to a motion
model and then preintegrating these measurements has almost become a de-facto
standard in many robotics applications. However, this approach has a few
shortcomings. First, it conflates the IMU measurement noise with the underlying
process noise. Second, it is unclear how the state will be propagated in the
case of IMU measurement dropout. Third, it does not lend itself well to dealing
with multiple high-rate sensors such as a lidar and an IMU or multiple IMUs. In
this work, we methodically compare the performance of these two approaches on a
1D simulation and show that they perform identically, assuming that each
method's hyperparameters have been tuned on a training set. We show how to
preintegrate heterogeneous factors using Gaussian process interpolation. We
also provide results for our continuous-time lidar-inertial odometry in
simulation and on the Newer College Dataset. Code for our lidar-inertial
odometry can be found at: https://github.com/utiasASRL/steam_icp
