Abstract
With mobile autonomous robots on the rise, data structuring and algorithm design plays a significant role in how fast data can be parsed and processed. With robotic systems that are decreasing in size and increasing with complexity, the speed at which data can be processed from multiple sources is crucial to how the system as a whole works. This paper plans to show the difference between certain computational algorithm complexities, both time and space complexity, in order to demonstrate the key ideas in data parsing for systems where computational time of an algorithm can affect the outcome performance of a robot dramatically. The algorithmic types being analyzed in this paper are in relation to a 3D LIDAR scanner in order to produce a point cloud as the output from pre-recorded files. Trigonometric calculations will need to be done in order to produce this output and each file used will be verified using a program supplied from the manufacturer of the LIDAR, Velodyne, in order to ensure the data is being read correctly. The sample data consists of two specific recorded sets, a loading bay and a downtown urban city. Each of data set covers the two configurable outputs, a 20 Mhz Dual Return mode and a 10 Mhz Single Return mode, providing a reasonable range in terms of size in bytes. This paper will show various levels of optimization in areas of trigonometric functions, specifically sine and cosine, algorithmic design, memory safety and defragmenting, and pointer manipulation in order to produce a robust, complex yet ideal algorithm for loading large sets of data rapidly and quickly while holding the level of reliability high. All software written in this paper intends to be natively implemented, meaning no operating system specific external binaries will be used for the end product.