Skip to content
Efficient monocular visual odometry for ground vehicles on ARM processors
C++ CMake
Branch: master
Clone or download
Latest commit 2ce8278 Sep 17, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
include Some utilities May 28, 2019
params Update Seq04-10.yaml Jun 6, 2019
src Update pose.cpp Jun 21, 2019
CMakeLists.txt CMakeList May 28, 2019 Update Sep 17, 2019


Authors: Zana Zakaryaie Nejad and Ali Hosseininaveh

ARM-VO is an efficient monocular visual odometry algorithm designed for ARM processors. It uses NEON C intrinsics and multi-threading to accelerate keypoint detection and tracking. Check this video to see the performance on Raspberry Pi 3 and Odroid XU4.


How to build?

git clone
cmake .

Test on KITTI dataset

Download the odometry dataset from here. Open a terminal and type:

./ARM_VO pathToData paramsFileName


  • ARM-VO recovers the scale if the camera height and pitch angle are provided. Thus, it is not applicable for drones or hand-held cameras.

  • The algorithm detects small-inter frame translations and pure rotations using GRIC but it doesn't decompose the estimated homography matrix. Track is lost if the camera rotates too much without translation.


  • If you get low FPS, check your power adapter. Raspberry Pi 3 runs ARM-VO at 8 frames per second (averagelly) if powered up with a 5V-2A adapter.

  • If you use ARM-VO in an academic work, please cite:
    Zakaryaie Nejad, Z. & Hosseininaveh Ahmadabadian, A. Machine Vision and Applications (2019).

  • ARM-VO is a part of six-wheel surveying robot project named MOOR.

You can’t perform that action at this time.