I need to fuse gps, imu and odometry data, so I started to test robot_localization package.
I’m publishing valid mock messages sensor_msgs/Imu, and nav_msgs/Odometry for the inputs of ekf_localization_node, then I’m feeding the input of navsat_transform_node with the odometry message from the output of ekf_localization_node and a mock sensor_msgs/NavSatFix message. When I launch navsat_transform_node I’m getting the following nan values:
process[navsat_transform_node-1]: started with pid [29575]
[ WARN] [1431390696.211039510]: MSG to TF: Quaternion Not Properly Normalized
[ INFO] [1431390696.295605608]: Corrected for magnetic declination of 0.183000, user-specified offset of 1.000000, and fixed offset of 1.570796. Transform heading factor is now nan
[ INFO] [1431390696.295816136]: Latest world frame pose is:
Position: (0.000000, 0.000000, 0.000000)
Orientation: (0.000000, -0.000000, 0.000000)
[ INFO] [1431390696.295972831]: World frame->utm transform is
Position: (nan, nan, nan)
Orientation: (nan, -nan, nan)
Some notes:
- Here the values from ‘Latest world frame pose is:’ are all zeros, but they’re not always the same.
- I’ve changed the magnetic declination and offset values, but I get the same results.
- Have also changed the coordinates frames from imu, odometry and gps messages at the launch files, but received the same error.
The output odometry message from /odometry/gps topic is:
pose:
pose:
position:
x: nan
y: nan
z: nan
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
covariance: [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]
Any help will be appreciated!