hgpu.org » Programming » Algorithms » Introducing SLAMBench, a performance and accuracy benchmarking methodology for SLAM
Introducing SLAMBench, a performance and accuracy benchmarking methodology for SLAM
Luigi Nardi, Bruno Bodin, M. Zeeshan Zia, John Mawer, Andy Nisbet, Paul H. J. Kelly, Andrew J. Davison, Mikel Lujan, Michael F. P. O’Boyle, Graham Riley, Nigel Topham, Steve Furber
author={Nardi}, L. and {Bodin}, B. and {Zeeshan Zia}, M. and {Mawer}, J. and {Nisbet}, A. and {Kelly}, P.~H.~J. and {Davison}, A.~J. and {Luj{‘a}n}, M. and {O’Boyle}, M.~F.~P. and {Riley}, G. and {Topham}, N. and {Furber}, S.},
title={"{Introducing SLAMBench, a performance and accuracy benchmarking methodology for SLAM}"},
Real-time dense computer vision and SLAM offer great potential for a new level of scene modelling, tracking and real environmental interaction for many types of robot, but their high computational requirements mean that use on mass market embedded platforms is challenging. Meanwhile, trends in low-cost, low-power processing are towards massive parallelism and heterogeneity, making it difficult for robotics and vision researchers to implement their algorithms in a performance-portable way. In this paper we introduce SLAMBench, a publicly-available software framework which represents a starting point for quantitative, comparable and validatable experimental research to investigate trade-offs in performance, accuracy and energy consumption of a dense RGB-D SLAM system. SLAMBench provides a KinectFusion implementation in C++, OpenMP, OpenCL and CUDA, and harnesses the ICL-NUIM dataset of synthetic RGB-D sequences with trajectory and scene ground truth for reliable accuracy comparison of different implementation and algorithms. We present an analysis and breakdown of the constituent algorithmic elements of KinectFusion, and experimentally investigate their execution time on a variety of multicore and GPUaccelerated platforms. For a popular embedded platform, we also present an analysis of energy efficiency for different configuration alternatives.