GPU Services: GPU Based Real Time Processing of 3D Point Clouds Applied to Robotic Systems and Intelligent Vehicles
The GPU Services project fits into the context of research and development of methods for data processing of three dimensional sensors data applied to mobile robotics and intelligent vehicles. The implemented methods are called services on this project, which provide 3D point clouds pre processing algorithms, such as, data alignment, segmentation of safe/unsafe navigable zones (e.g. separating ground from obstacles and borders/curbs) and elements of interest detection. Due to the large amount of data provided by the sensors to be processed in a very short time, these services use the GPU (NVidia CUDA) to perform partial or complete parallel processing of these data. The project aims to provide data processing services to an autonomous car, forcing the services to approach real time processing, which is defined as completing all data processing routines before the arrival of the sensor's next frame. This work was implemented considering 3D data acquired from a LIDAR, more specifically from a Velodyne HDL 32. The sensor data is structured in the form of a cloud of three dimensional points, allowing for great parallel processing. However, the major challenge is the high rate of data received from this sensor (around 700,000 points/sec or 70.000 points/frame at 10 Hz) which gives the motivation of this project: to use the full potential of sensor and to efficiently use the parallelism of GPU programming. The GPU services are divided into four steps: The first step is an intelligent extraction, reorganization and spacial correction of the data provided by the Velodyne multi layer laser sensor; The second stage is the segmentation of planar data; The third stage is object segmentation; The fourth stage is to develop a methodology that unite the results from the previous steps in order to better detect the curbs. The services were implemented and the performance was evaluated using traditional sequential data processing (CPU data processing) and parallel data processing (GPU CUDA implementations) Besides that, different NVidia GPUs were also tested, allowing us to process the acquired data much faster than using the CPUs, and in some cases faster than it was provided by the Velodyne sensor.