For GNSS localization, Autoware currently parses the /nmea_sentence
, extracts the latitude and longitude and converts them to coordinates in the Japanese rectangular coordinate system. There are 19 planes to chose from for the origin of the coordinate system but they would all chose an origin at or near Japan. Because of this gnss_localizer
can only be used to localize on maps that are near japan.
I’m proposing adding a special plane (as plane 0) with an origin at (0, 0) lat/lon. This would solve the issue for simulated environments where it is convenient/common to place the origin of the map at (0, 0) or simply offset the origin to (0, 0) when publishing the nmea message.
I’ve implemented this locally and changes would need to be made to three of the autoware.ai repositories:
- utilites: to modify the runtime manager to be able to select plane 0.
- common: to add the plane 0 with an origin at (0, 0) lat/lon in
geo_pose_conv.cpp
. - core_perception: modify
nmea2tfpose_core.cpp
to allow negative values.
Would love to hear thoughts on this. Make merge requests for the three repositories mentioned above on gitlab as well.
Thanks!