I took a look at your bag and launch files. It is true that the navsat_transform
node is not publishing any messages to /odometry/gps
, even though it is getting input data. One possible cause is the error in your task tree that is being reported: the transform from imu0
to base_link
is unknown. You have a static_transform_publisher for this in your launch file on line 10, but you have the frames around the wrong way, which means that it is saying that base_link
is a child of imu0
. Swap the frames on this line.
To fix the problem with nmea_navsat_driver
prefixing its task frame with a slash, you need to use a version of the driver with the change specified in this pull request applied.
Until that change is applied you will need to patch the driver yourself, which requires adding a local copy of it to your workspace to override the version installed with ROS.
In your workspace's src
directory, clone a copy of the driver's source:
git clone https://github.com/ros-drivers/nmea_navsat_driver.git
Here is the patch that will stop it adding the slash. Save that file as no_to_slashes.patch
, go to <your workspace>/src/nmea_navsat_driver
, and then run the following command (modifying the path to no_to_slashes.patch
as necessary):
patch -p1 < no_to_slashes.patch
(The -p1
strips the first directory from the paths specified in the path file, in this case a/
and b/
; without this the patch command won't be able to find the file to modify.)
Then you should be able to compile your workspace and when you use the nmea_navsat_driver
it will use your local, patched copy.
Once that pull request goes through, you will not need your modified version of the driver any more. But until a release is made of the fixed version you will still need to keep a copy of the driver source (cloned from Github without modifications) in your workspace so that the fixed version overrides the broken version installed using apt.