Fovis is a visual odometry library that estimates the 3D motion of a camera using a source of depth information for each pixel. Its original implementation is described in the following paper:
Fovis is intended to be relatively portable. There is one major requirement for building and using the software:
By default, Fovis is configured to use the Intel SSE2 and SSE3 instruction set. You can disable this support via a build-time option (use cmake -DUSE_SSE=OFF)
For portability reasons, the actual library itself is sensor agnostic and provides no data acquisition capabilities. To use fovis, your program must acquire data on its own and pass it through to the fovis API. Some examples are provided with the source code.
Effective use of fovis for visual odometry requires the following:
Fovis provides built-in support for the following types of depth sources:
You can also create your own depth sources using the Fovis API and adapt it to other sensor types.
The best way to get started is to look through the examples provided with the source code in the
Next, look through the Fovis C++ API. The primary class of interest is fovis::VisualOdometry.
fovis is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
fovis is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
A copy of the GNU General Public License is provided with the fovis source code.