ikd-Tree: An Incremental K-D Tree for Robotic Applications

This paper proposes an efficient data structure, ikd-Tree, for dynamic space partition. The ikd-Tree incrementally updates a k-d tree with new coming points only, leading to much lower computation time than existing static k-d trees. Besides point-wise operations, the ikd-Tree supports several features such as box-wise operations and down-sampling that are practically useful in robotic applications. In parallel to the incremental operations (i.e., insert, re-insert, and delete), ikd-Tree actively monitors the tree structure and partially rebalances the tree, which enables efficient nearest point search in later stages. The ikd-Tree is carefully engineered and supports multi-thread parallel computing to maximize the overall efficiency. We validate the ikd-Tree in both theory and practical experiments. On theory level, a complete time complexity analysis is presented to prove the high efficiency. On experiment level, the ikd-Tree is tested on both randomized datasets and real-world LiDAR point data in LiDAR-inertial odometry and mapping application. In all tests, ikd-Tree consumes only 4% of the running time in a static k-d tree.

[1]  Russ Tedrake,et al.  NanoMap: Fast, Uncertainty-Aware Proximity Queries with Lazy Search Over Local 3D Data , 2018, 2018 IEEE International Conference on Robotics and Automation (ICRA).

[2]  S. Popov,et al.  Experiences with Streaming Construction of SAH KD-Trees , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

[3]  Maxim Shevtsov,et al.  Highly Parallel Fast KD‐tree Construction for Interactive Ray Tracing of Dynamic Scenes , 2007, Comput. Graph. Forum.

[4]  Fei Gao,et al.  Online quadrotor trajectory generation and autonomous navigation on point clouds , 2016, 2016 IEEE International Symposium on Safety, Security, and Rescue Robotics (SSRR).

[5]  Rudolf Bayer,et al.  Symmetric binary B-Trees: Data structure and maintenance algorithms , 1972, Acta Informatica.

[6]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[7]  Jeffrey Scott Vitter,et al.  Bkd-Tree: A Dznamic Scalable kd-Tree , 2003, SSTD.

[8]  Ronald L. Rivest,et al.  Scapegoat trees , 1993, SODA '93.

[9]  Joachim Hertzberg,et al.  Cached k-d tree search for ICP algorithms , 2007, Sixth International Conference on 3-D Digital Imaging and Modeling (3DIM 2007).

[10]  W.R. Mark,et al.  Fast kd-tree Construction with an Adaptive Error-Bounded Heuristic , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

[11]  Fei Gao,et al.  Flying on point clouds: Online trajectory generation and autonomous navigation for quadrotors in cluttered environments , 2018, J. Field Robotics.

[12]  Jon Louis Bentley,et al.  Multidimensional binary search trees used for associative searching , 1975, CACM.

[13]  Ron Alterovitz,et al.  Fast Nearest Neighbor Search in SE(3) for Sampling-Based Motion Planning , 2014, WAFR.

[14]  Zheng Liu,et al.  Low-Cost Retina-Like Robotic Lidars Based on Incommensurable Scanning , 2020, IEEE/ASME Transactions on Mechatronics.

[15]  Wei Xu,et al.  FAST-LIO: A Fast, Robust LiDAR-Inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter , 2020, IEEE Robotics and Automation Letters.

[16]  Luc Devroye,et al.  Analysis of range search for random k-d trees , 2001, Acta Informatica.

[17]  Jonathan P. How,et al.  Aggressive 3-D collision avoidance for high-speed navigation , 2017, 2017 IEEE International Conference on Robotics and Automation (ICRA).

[18]  Cecilia R. Aragon,et al.  Randomized search trees , 2005, Algorithmica.

[19]  Jiarong Lin,et al.  Loam livox: A fast, robust, high-precision LiDAR odometry and mapping package for LiDARs of small FoV , 2019, 2020 IEEE International Conference on Robotics and Automation (ICRA).

[20]  Radu Bogdan Rusu,et al.  3D is here: Point Cloud Library (PCL) , 2011, 2011 IEEE International Conference on Robotics and Automation.

[21]  Brendan Englot,et al.  LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain , 2018, 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[22]  David G. Lowe,et al.  Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration , 2009, VISAPP.

[23]  Aleksandr V. Segal,et al.  Generalized-ICP , 2009, Robotics: Science and Systems.

[24]  Ji Zhang,et al.  LOAM: Lidar Odometry and Mapping in Real-time , 2014, Robotics: Science and Systems.

[25]  Jon Louis Bentley,et al.  Decomposable Searching Problems I: Static-to-Dynamic Transformation , 1980, J. Algorithms.

[26]  Kun Zhou,et al.  Real-time KD-tree construction on graphics hardware , 2008, SIGGRAPH Asia '08.

[27]  Fei Gao,et al.  Mapless-Planner: A Robust and Fast Planning Framework for Aggressive Autonomous Flight without Map Fusion , 2020, ArXiv.

[28]  J. T. Robinson,et al.  The K-D-B-tree: a search structure for large multidimensional dynamic indexes , 1981, SIGMOD '81.