  We present a direct visual-inertial odometry (VIO) method which estimates the
motion of the sensor setup and sparse 3D geometry of the environment based on
measurements from a rolling-shutter camera and an inertial measurement unit
(IMU).
  The visual part of the system performs a photometric bundle adjustment on a
sparse set of points. This direct approach does not extract feature points and
is able to track not only corners, but any pixels with sufficient gradient
magnitude. Neglecting rolling-shutter effects in the visual part severely
degrades accuracy and robustness of the system. In this paper, we incorporate a
rolling-shutter model into the photometric bundle adjustment that estimates a
set of recent keyframe poses and the inverse depth of a sparse set of points.
  IMU information is accumulated between several frames using measurement
preintegration, and is inserted into the optimization as an additional
constraint between selected keyframes. For every keyframe we estimate not only
the pose but also velocity and biases to correct the IMU measurements. Unlike
systems with global-shutter cameras, we use both IMU measurements and
rolling-shutter effects of the camera to estimate velocity and biases for every
state.
  Last, we evaluate our system on a novel dataset that contains global-shutter
and rolling-shutter images, IMU data and ground-truth poses for ten different
sequences, which we make publicly available. Evaluation shows that the proposed
method outperforms a system where rolling shutter is not modelled and achieves
similar accuracy to the global-shutter method on global-shutter data.
