Research Proposal : Enhancing Vehicle Localization through Multi‐Sensor Fusion and Dynamic Map and GPS Alignment - AD-EYE/AD-EYE_Core GitHub Wiki

Research Proposal : Enhancing Vehicle Localization through Multi-Sensor Fusion and Dynamic Map and GPS Alignment

Objective

Improve the accuracy and robustness of vehicle localization by integrating multiple sensor modalities and solving misalignment issues between map and sensor data.


Current Localization Approach

  • The vehicle currently relies on NDT (Normal Distributions Transform) matching, which aligns:

    • A pre-loaded point cloud map (reference)
    • A live point cloud (real-time sensor data)
    • Predictive positioning (next pose estimation)
  • Limitations :

    • Performance degrades in environments with sparse reference points or missing map data.
    • No fallback mechanism when point cloud alignment fails.

Preliminary Work done : GPS-LiDAR Fusion

To get rid of these limitations, a GPS-LiDAR fusion approach was developed:

  • GPS Position Integration : The LiDAR-estimated position is merged with real-time GPS data.
  • Rotation Handling : Since the GPS sensor lacks rotational data, the LiDAR’s rotation is used as the reference.
  • Covariance Inclusion : The GPS data’s accuracy (covariance) is factored into the fusion calculation and should be get from the fix topic.
  • Implementation : This logic is encapsulated in a new ROS node, Localization_Fusion, available in the LocalizationFusion feature branch in the adeye_core repo.

New Challenge: Map-GPS Misalignment

A critical issue was identified:

The point cloud map and GPS position are not spatially aligned in the visualization tool (RViz). Observed misalignment includes both translation and rotation errors.

Root Cause Analysis :

Origin Discrepancy :

  • The point cloud map is loaded based on its origin defined in the PCD file.
  • The vehicle’s position is initialized using the map_origin ROS parameter, which can be set in:
    • The gnss_broadcaster.launch file
    • Or it automatically use by defaults the first GPS data point in our ROS bag recording.

This cause us to often requires to manually set the starting position (using RViz’s 2D estimation tool).


Proposed Solution : Dynamic GPS Data Alignment

To resolve the misalignment, a dynamic transformation of GPS data would be required before publishing to the gnss_pose topic in the gnss_broadcaster node.

This would ensure alignment with :

  • Point-cloud map should be the reference (the PCD is being loaded in the ROS Frame "map")
  • Vector-Map doesn't work with frame, and move along the PCD map. It can only be moved manually right now
  • The GPS position should be dynamically aligned to the PCD map

Expected Outcome :

All three maps : (point cloud, VectorMap, and GPS path) should be aligned, making it possible to fuse GPS data with NDT position.

Note :

The other solution would be to align the PCD map with the GPS position instead , but it may require multiple change to point-cloud creation and usage.


Next Steps

  • Develop a algorithm for finding parameters for an dynamic alignment of the GPS data.
  • Integrate that transformation into the gnss_broadcaster node.
  • Validate alignment in RViz and real-world testing for multiple ROSBAG and maps.
  • Document the process.