This project involves clustering and tracking vehicles using point cloud data from multiple sensors taken by the dataset Argoverse 2. The data is processed to transform coordinates, perform clustering, tracking and visualize the results using Open3D.
-
Clone the repository:
git clone https://github.com/alessandrocapialbi/LiDAR_Cluster_Track cd LiDAR_Cluster_Track
-
Create a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate
-
Install the required packages:
pip install -r requirements.txt
-
Run the main script:
python main.py
-
Follow the prompts to enter the number of sensors.
LiDAR_Cluster_Track/
├── data_loader.py
├── main.py
├── clustering.py
├── simulation.py
├── transform_coordinates.py
├── tracking.py
├── sensor_selection.py
├── sensors_data/
├── filtered_sensors_data/
├── sensors_positions/
│ └── pitt_sensor_positions.csv
└── trajectories/
└── pitt_trajectories.csv
└── output/
└── point_clouds.csv
└── bounding_boxes.csv
└── predicted_trajectories.csv
The main script that orchestrates the loading, processing, and visualization of point cloud data.
Contains functions to load data from files.
Performs DBSCAN clustering on the point cloud data and creates bounding boxes.
Handles the visualization of point clouds and trajectories using Open3D.
Transforms the coordinates of the point cloud data to a global coordinate system, considering translations and rotations.
Implements a LKF (Linear Kalman Filter) to predict the trajectories of the vehicles.
Tracks vehicles between scans based on bounding box centroids.
Allows the user to select the sensors to use for the tracking.
This project is licensed under the MIT License. See the LICENSE
file for more details.