Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Georeferencing GLIM maps #161

Open
VRichardJP opened this issue Feb 21, 2025 · 0 comments
Open

Georeferencing GLIM maps #161

VRichardJP opened this issue Feb 21, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@VRichardJP
Copy link

I would like to georeference GLIM maps. There is already a gnss_global extension module which deals with GNSS data, but it does not fully satisfy my needs. In particular:

  • The module uses Pose messages instead of NavSatFix, so GNSS sensor data must first be processed (e.g. with navsat_transform_node?). This is a bit inconvenient.
  • The module computes the transformation T_world_utm only once, after the mapping device has travelled a few meter. So travelling longer distance won't improve the transformation (while new pose constraints are still added to the graph.)
  • When the map size is not big (e.g. <1km) or when the path contains many loops, using poor GNSS data may be detrimental to the map. In other words, there are cases where I would rather not add any GNSS-based constraint to the graph (yet I would still like to georefence the map).

To address these issues, I am thinking about the following:

  • Add support for NavSatFix messages. NavSatFix could be converted to UTM or MGRS with geographiclib. NavSatFix messages could be filtered based on fix status or position covariance.
  • Use the first valid NavSatFix message to compute a GNSS origin and compute all submap_coords relatively to this origin point (thus avoiding errors on large floating point values).
  • Add a enable_gnss_factor-like option. If enabled, use current logic to add pose factors to the graph (but use the GNSS origin instead of T_world_utm)
  • Add a on_update_submaps callback, which receives submaps optimized by the main global mapping module and computes T_world_utm (using exactly the same logic than the current T_world_utm initialization). This T_world_utm transform is what is needed to georeference the map. There is no save callback yet, but I think it could be nice to dump the transformation data on save so that exporting a georeferenced map can be automated. Otherwise, the user could use tool like pdal to apply the transformation on the exported map manually.
@VRichardJP VRichardJP added the enhancement New feature or request label Feb 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant