You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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:navsat_transform_node
?). This is a bit inconvenient.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.)To address these issues, I am thinking about the following:
submap_coords
relatively to this origin point (thus avoiding errors on large floating point values).enable_gnss_factor
-like option. If enabled, use current logic to add pose factors to the graph (but use the GNSS origin instead ofT_world_utm
)on_update_submaps
callback, which receives submaps optimized by the main global mapping module and computesT_world_utm
(using exactly the same logic than the currentT_world_utm
initialization). ThisT_world_utm
transform is what is needed to georeference the map. There is nosave
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 likepdal
to apply the transformation on the exported map manually.The text was updated successfully, but these errors were encountered: