Global Localiser for Automated Guided Vehicles (AGV)

Published:

This project offers an alternative to GPS-based localization for autonomous vehicles, relying entirely on Artificial Vision Systems.
Setup

📬 Key Features

🛠️ Hardware

  • Depth Camera: Intel RealSense D415
  • LiDAR: Blickfeld Cube 1
The LiDAR and RGB camera were aligned and mounted together to capture the same scene, enabling the RGB data to provide visual reference and context for the corresponding point cloud.
Camera

🧠 Scenario Study & System Setup

A custom setup was designed and implemented to synchronize a LiDAR and a Depth camera, operating in free-run mode, using Python's `threading` library.

🎥 Data Acquisition

The system collects:
  • RGB Images from the depth camera.
    Door
  • 3D Point Clouds from the LiDAR.
    Door Pointcloud
To analyze the acquired data, Kullback-Leibler divergence is applied on selected point cloud regions to identify patterns useful for AGV localization.

🔍 KL Divergence Results

The analysis was performed by comparing point cloud regions corresponding to different acquisition timestamps. For each comparison, the Kullback-Leibler (KL) divergence was computed to quantify the dissimilarity between distributions of two frames. The goal was to identify which frame pairs showed the greatest similarity (i.e., lowest KL divergence), helping determine the most probable match or alignment between the camera and LiDAR acquisitions.
FrameComparisonKL Divergence
Frame_1vs Frame_1 at t+10.0192
vs Frame_20.0486
vs Frame_30.1486
Frame_2vs Frame_10.0862
vs Frame_2 at t+10.0510
vs Frame_30.1824
Frame_3vs Frame_10.1423
vs Frame_20.1342
vs Frame_3 at t+10.0185
These values clearly show that the lowest KL divergence always occur between Frame_x from Frame_x at t+1, suggesting a strong spatial and visual similarity in that pair. This supports the use of KL divergence as an effective metric for matching and localizing AGV observations across sensor streams.

📄 License

This project is distributed under the Apache 2.0 License For more details, visit the Github repository.