Navsat node not publishing any data in a system that doesn't publish odometry
I am trying to use a gps and imu for localization of a gazebo simulated robot. For this I am using navsat and ekf nodes. But my navsat node is always publishing zero.
The error message I am receiving is
Warning: Invalid argument "/world" passed to canTransform argument source_frame in tf2 frame_ids cannot start with a '/' like:
at line 134 in /tmp/binarydeb/ros-melodic-tf2-0.6.5/src/buffer_core.cpp
[ WARN] [1614584451.566137626, 316.190000000]: Could not obtain transform from /world to chassis. Error was Invalid argument "/world" passed to lookupTransform argument source_frame in tf2 frame_ids cannot start with a '/' like:
[ WARN] [1614584451.566646918, 316.190000000]: Unable to obtain chassis->/world transform. Will assume navsat device is mounted at robot's origin
[ INFO] [1614584451.567084449, 316.190000000]: Corrected for magnetic declination of 0.368788, user-specified offset of 0.000000 and meridian convergence of -0.001334. Transform heading factor is now 3.493143
[ INFO] [1614584451.567666613, 316.190000000]: Transform world frame pose is: Origin: (0 0 0)
Rotation (RPY): (0, 0, -0.015900924710489677816)
[ INFO] [1614584451.567958639, 316.190000000]: World frame->cartesian transform is Origin: (2445618.4779923087917 4981487.1742727346718 -0.44221211776894475687)
Rotation (RPY): (0, -0, 2.7741413272136945523)
Warning: Invalid argument "/world" passed to canTransform argument source_frame in tf2 frame_ids cannot start with a '/' like:
at line 134 in /tmp/binarydeb/ros-melodic-tf2-0.6.5/src/buffer_core.cpp
[ WARN] [1614584451.804221307, 316.290000000]: Could not obtain chassis->/world transform. Will not remove offset of navsat device from robot's origin.
Warning: Invalid argument "/world" passed to canTransform argument source_frame in tf2 frame_ids cannot start with a '/' like:
at line 134 in /tmp/binarydeb/ros-melodic-tf2-0.6.5/src/buffer_core.cpp
Warning: Invalid argument "/world" passed to canTransform argument source_frame in tf2 frame_ids cannot start with a '/' like:
at line 134 in /tmp/binarydeb/ros-melodic-tf2-0.6.5/src/buffer_core.cpp
my navsat node code is
<launch>
<node name="bl_gps" pkg="tf2_ros" type="static_transform_publisher" args="0 0 0 0 0 0 1 chassis gps" />
<node name="bl_m" pkg="tf2_ros" type="static_transform_publisher" args="0 0 0 3.1416 -1.5708 0 chassis imu_link" />
<node pkg="robot_localization" type="navsat_transform_node" name="navsat_transform_node" respawn="true" output="screen">
<param name="magnetic_declination_radians" value="0.36878808"/>
<param name="zero_altitude" value="false"/>
<param name="publish_filtered_gps" value="true"/>
<param name="broadcast_cartesian_transform" value="true"/>
<param name="wait_for_datum" value="false"/>
<remap from="/gps/fix" to="/fix"/>
<remap from="/imu/data" to="/imu"/>
</node>
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_odom" clear_params="true">
<param name="odom0" value="/odometry/gps"/>
<param name="imu0" value="/imu"/>
<param name="frequency" value="30"/>
<param name="sensor_timeout" value="2"/>
<param name="two_d_mode" value="true"/>
<param name="map_frame" value="map"/>
<param name="odom_frame" value="odom"/>
<param name="base_link_frame" value="chassis"/>
<param name="world_frame" value="odom"/>
<rosparam param="imu0_config">[false, false, false,
false, false, true,
false, false, false,
false, false, true,
true, false, false]</rosparam>
<param name="imu0_differential" value="false"/>
<param name="imu0_remove_gravitational_acceleration" value ...
Can you add sample messages of your gps and imu?
the imu message is
the gps message is