2D LiDAR data acquisition and analysis app. The application works with Slamtec A2M8 and Waveshare STL-27L LiDARs. The application was created for the purposes of my thesis entitled "Research on the possibilities of using low-budget LIDAR devices in robotics".
To run the application, an environment that supports Python version 3.10 is required. Additionally, the installation of environment extensions such as the following is necessary:
- PyQt5 - 5.15.10
- matplotlib - 3.8.3
- numpy - 1.26.4
- scikit-learn - 1.4.1.post1
- scipy - 1.12.0
- pyserial - 3.3
The main window of the application allows the user to choose one of the 5 available application modes and to exit the application.
** Single LiDAR data acquisition - Waveshare STL-27L **
Single_scan_STL-27L.mp4
** Single LiDAR data acquisition - Slamtec A2M8 **
Single_scan_A2M8.mp4
** Double LiDAR data acquisition - both devices **
Double_scan.mp4
This mode allows live control of the scanning process for a single or both LiDAR devices, with the ability to adjust the data reading range and save scans to a CSV file.
This mode allows the alignment of two point clouds saved in a CSV file and displays the result on a chart.
This mode allows loading any scan in CSV format from the 'Scans' folder into the application window, followed by the ability to select a portion of the point cloud and save the selected fragment to a CSV file under a user-defined name.
This mode allows loading any profile in CSV format from the 'Slices' folder into the application window, followed by the calculation of certain statistical parameters, such as RMS error, linear regression, Pearson coefficient, profile length, and the profile's distance from the LiDAR system.
This mode allows loading any L-shaped profile in CSV format from the 'Slices' folder into the application window, followed by calculating the angle between the walls of the L-shaped profile.