Collision detection between point clouds using an efficient k-d tree implementation

https://doi.org/10.1016/j.aei.2015.03.007Get rights and content

Abstract

Context: An important task in civil engineering is the detection of collisions of a 3D model with an environment representation. Existing methods using the structure gauge provide an insufficient measure because the model either rotates or because the trajectory makes tight turns through narrow passages. This is the case in either automotive assembly lines or in narrow train tunnels.

Objective: Given two point clouds, one of the environment and one of a model and a trajectory with six degrees of freedom along which the model moves through the environment, find all colliding points of the environment with the model within a certain clearance radius.

Method: This paper presents two collision detection (CD) methods called kd-CD and kd-CD-simple and two penetration depth (PD) calculation methods called kd-PD and kd-PD-fast. All four methods are based on searches in a k-d tree representation of the environment. The creation of the k-d tree, its search methods and other features will be explained in the scope of their use to detect collisions and calculate depths of penetration.

Results: The algorithms are benchmarked by moving the point cloud of a train wagon with 2.5 million points along the point cloud of a 1144 m long train track through a narrow tunnel with overall 18.92 million points. Points where the wagon collides with the tunnel wall are visually highlighted with their penetration depth. With a safety margin of 5 cm kd-PD-simple finds all colliding points on its trajectory which is sampled into 19,392 positions in 77 s on a standard desktop machine of 1.6 GHz.

Conclusion: The presented methods for collision detection and penetration depth calculation are shown to solve problems for which the structure gauge is an insufficient measure. The underlying k-d tree is shown to be an effective data structure for the required look-up operations.

Section snippets

Introduction and problem formulation

The minimum clearance outline or structure gauge has an important place in the planning of rail and automotive infrastructure as well as for factory assembly lines [1]. It is the swept volume of the minimum cross section that must be kept free of any obstacles. Measuring the structure gauge of railroad and motorway tunnels, bridges and production lines is a simple way to calculate whether vehicles, their cargo or arbitrary objects can pass through them. The structure gauge is an exact measure

Related work

Collision detection, which is also called interference detection or intersection searching, is a well studied topic in computer graphics [6], [7], [8], [9], [10] because of its importance for dynamic computer animation and virtual reality applications [11], [12], [13]. On the other hand, their work is limited to collision detection between geometric shapes and polygonal meshes whereas most sensor data is acquired as point clouds. While collision detection is also relevant for motion planning in

Data structures for efficient collision detection and depth of penetration calculation

In this section our highly-optimized k-d tree implementation is presented. It is implemented in 3DTK [5] in C++. It currently implements multiple search functions, can be parameterized to be used with 3D point data of different precision and container type, allows to present search results as pointers, array indices or as 3D coordinate data and allows parallel execution through OpenMP. Its correctness has been verified by a test suite which combines brute force implementations of the search

Collision detection

Two variants of collision detection are implemented using the k-d tree. One variant, called kd-CD-simple, is based on a range search around each point of the model using FixedRangeSearch and the other, called kd-CD, is based on a segment search between two subsequent points of the model on its trajectory using segmentSearch_all. In both variants, the model is moved along its trajectory and a range or segment k-d tree search with radius r is performed at each position.

When points are found to be

Depth of penetration calculation

Two variants to calculate depth of penetration will be presented: kd-PD-fast and kd-PD. They perform differently depending on the kind of input data and yield different results depending on the sampling rate of the model trajectory. kd-PD-fast is generally faster but produces only good results for objects protruding the path of the model through the environment. It does not produce correct results when the model moves alongside a wall and collides with it.

kd-PD-fast is an embarrassingly

Experiments and results

A 3D point cloud of train tunnel was provided to us by the company TopScan GmbH. The point cloud contains 18.92 million points of outdoor data. The point cloud was collected by a Optech Lynx Mobile Mapper mounted on a van which was placed on a train wagon (see Fig. 11). TopScan also provided the trajectory data to us which is comprised of 23274 positions over a distance of 1144 m. The trajectory contains positional as well as orientation data.

To retrieve a point cloud of a suitable model to move

Conclusions and outlook

This paper presented a highly efficient k-d tree implementation which is used to perform collision detection of a sampled arbitrary point cloud against an environment of several million points. It is shown that even though this is a partly brute-force method as it checks all sampled points of the model, both, kd-CD-simple and kd-CD perform well enough such that real queries of densely sampled trajectories are completed in a matter of seconds. Two heuristics for calculating penetration depth,

References (38)

  • A. Nüchter et al.

    Study of parameterizations for the rigid body transformations of the scan registration problem

    Comput. Vis. Image Underst.

    (2010)
  • P. Jiménez et al.

    3d collision detection: a survey

    Comput. Graph.

    (2001)
  • S. Ar et al.

    Self-customized BSP trees for collision detection

    Comput. Geom.

    (2000)
  • J. Elseberg et al.

    A sensor skid for precise 3d modeling of production lines

    ISPRS Ann. Photogramm. Remote Sens. Spatial Inform. Sci.

    (2014)
  • J. Siegmann, Lichtraumprofil und Fahrzeugbegrenzung im europäischen Schienenverkehr....
  • O. Lueger, Krümmungsverhältnisse, in: Lexikon der gesamten Technik und ihrer Hilfswissenschaften, Stuttgart/ Leipzig:...
  • EBO, Eisenbahn-Bau- und Betriebsordnung, http://www.gesetze-im-internet.de/ebo/anlage_1_67.html>, 1967 (accessed...
  • M. Lin, S. Gottschalk, Collision detection between geometric models: a survey, in: Proc. of IMA Conference on...
  • J. Bender et al.

    Interactive simulation of rigid body dynamics in computer graphics

  • D. Mainzer, G. Zachmann, Collision detection based on fuzzy scene subdivision, in: Symposium on GPU Computing and...
  • M. Tang et al.

    Collision-streams: fast gpu-based collision detection for deformable models

  • C. Tzafestas, P. Coiffet, Real-time collision detection using spherical octrees: virtual reality application, in: Robot...
  • J.S. Muñoz et al.

    Development of a hierarchy collision detection algorithm in order to implement a laparoscopic surgical simulator

    Revista QUID

    (2012)
  • J. Hummel et al.

    An evaluation of open source physics engines for use in virtual reality assembly simulations

  • J. Klein et al.

    Point cloud collision detection

  • A. Hermann, F. Drews, J. Bauer, S. Klemm, A. Roennau, R. Dillmann, Unified gpu voxel collision detection for mobile...
  • D. Jung et al.

    Octree-based hierarchical distance maps for collision detection

  • W. Fan et al.

    An octree-based proxy for collision detection in large-scale particle systems

    Sci. China Inform. Sci.

    (2013)
  • H.Y. Wang et al.

    A collision detection algorithm using AABB and octree space division

  • Cited by (37)

    • Non-iterative denoising algorithm based on a dual threshold for a 3D point cloud

      2020, Optics and Lasers in Engineering
      Citation Excerpt :

      Different adjustment parameters can result in varied denoising results, and some adjustment parameters may make it time consuming and difficult to obtain ideal results using the K-means clustering method, and may even result in non-convergence. The K-d tree was introduced by Benyue et al. in 2016 to improve the initial cluster centre [13–15], in which the drift points are removed according to the distance and curvature threshold. Although improving the algorithm reduces the run time, the K value must be set manually.

    • Model-based quality assurance in railway infrastructure planning

      2020, Automation in Construction
      Citation Excerpt :

      “Collision detection between rigid, and/or soft bodies is important for many fields of computer science, e.g. for physically-based simulations, medical applications [...]” [25] and also for civil engineering. Schauer and Nüchter illustrate different clash detection procedures by means of two point clouds using the example of a railway wagon in a section of a tunnel [26]. Staub-French [27] describes the added value of 3D and 4D modeling and possible clash detection, but also points out that clashes cannot yet be detected automatically over the course of the construction project on site.

    View all citing articles on Scopus
    View full text