This thesis presents the design, implementation, and validation of a novel nonlinearfiltering
based Visual Inertial Odometry (VIO) framework for robotic navigation in GPSdenied
environments. The system attempts to track the vehicle’s ego-motion at each time
instant while capturing the benefits of both the camera information and the Inertial Measurement
Unit (IMU). VIO demands considerable computational resources and processing
time, and this makes the hardware implementation quite challenging for micro- and nanorobotic
systems. In many cases, the VIO process selects a small subset of tracked features
to reduce the computational cost. VIO estimation also suffers from the inevitable accumulation
of error. This limitation makes the estimation gradually diverge and even fail to
track the vehicle trajectory over long-term operation. Deploying optimization for the entire
trajectory helps to minimize the accumulative errors, but increases the computational cost
significantly. The VIO hardware implementation can utilize a more powerful processor
and specialized hardware computing platforms, such as Field Programmable Gate Arrays,
Graphics Processing Units and Application-Specific Integrated Circuits, to accelerate the
execution. However, the computation still needs to perform identical computational steps
with similar complexity. Processing data at a higher frequency increases energy consumption
significantly. The development of advanced hardware systems is also expensive and
time-consuming. Consequently, the approach of developing an efficient algorithm will be
beneficial with or without hardware acceleration. The research described in this thesis
proposes multiple solutions to accelerate the visual inertial odometry computation while
maintaining a comparative estimation accuracy over long-term operation among state-ofthe-
art algorithms.
This research has resulted in three significant contributions. First, this research involved
the design and validation of a novel nonlinear filtering sensor-fusion algorithm using trifocal
tensor geometry and a cubature Kalman filter. The combination has handled the system
nonlinearity effectively, while reducing the computational cost and system complexity significantly.
Second, this research develops two solutions to address the error accumulation
issue. For standalone self-localization projects, the first solution applies a local optimization
procedure for the measurement update, which performs multiple corrections on a single
measurement to optimize the latest filter state and covariance. For larger navigation
projects, the second solution integrates VIO with additional pseudo-ranging measurements
between the vehicle and multiple beacons in order to bound the accumulative errors. Third,
this research develops a novel parallel-processing VIO algorithm to speed up the execution
using a multi-core CPU. This allows the distribution of the filtering computation on each
core to process and optimize each feature measurement update independently.
The performance of the proposed visual inertial odometry framework is evaluated using
publicly-available self-localization datasets, for comparison with some other open-source
algorithms. The results illustrate that a proposed VIO framework is able to improve the
VIO’s computational efficiency without the installation of specialized hardware computing
platforms and advanced software libraries