zanazakaryaie / ARM-VO

Efficient monocular visual odometry for ground vehicles on ARM processors
MIT License
241 stars 68 forks source link
arm fast kitti kitti-dataset klt neon opencv openmp raspberry-pi ros tbb visual-odometry

ARM-VO

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.

Demo ARM-VO alpha

Dependencies

How to build?

git clone https://github.com/zanazakaryaie/ARM-VO.git
cd ARM-VO
cmake .
make

Test on KITTI dataset

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

./ARM_VO pathToData paramsFileName

ROS (Optional)

The ros node subscribes to "kitti/image" topic and publishes "arm_vo/pose" which is of type geometry_msg::Pose. To use the ROS node: Open a terminal and type:

cd ROS
catkin_make
source devel/setup.bash
rosrun ARM_VO ARM_VO paramsFileName

Now, open another terminal and type:

cd ROS
source devel/setup.bash
rosrun ARM_VO ImagePublisher pathToData

Limitations

Notes