I am having trouble getting the robot_pose_ekf package to publish messages. I launch it with this launch file.
<launch>
<!-- Extended Kalman Filter from robot_pose_ekf Node-->
<!-- Subscribe: /odom, /imu/data, /vo -->
<!-- Publish: /robot_pose_ekf/odom_combined -->
<remap from="/imu_data" to="/imu/data" />
<node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
<param name="output_frame" value="odom"/>
<param name="base_footprint_frame" value="base_footprint"/>
<param name="freq" value="30.0"/>
<param name="sensor_timeout" value="1.0"/>
<param name="odom_used" value="true"/>
<param name="imu_used" value="true"/>
<param name="vo_used" value="false"/>
<param name="gps_used" value="false"/>
<param name="debug" value="true"/>
<param name="self_diagnose" value="true"/>
</node>
</launch>
But then I get lots of these errors:
[ WARN] [1636570848.059506230]: MSG to TF: Quaternion Not Properly Normalized
[ERROR] [1636570848.059787913]: Covariance specified for measurement on topic imu is zero
[ERROR] [1636570848.060134410]: filter time older than odom message buffer
[ WARN] [1636570848.074015563]: MSG to TF: Quaternion Not Properly Normalized
[ERROR] [1636570848.074583539]: Covariance specified for measurement on topic imu is zero
[ERROR] [1636570848.085433183]: Covariance specified for measurement on topic wheelodom is zero
And I get this output from wtf, which says I'm getting inputs but am not publishing any messages on topic /robot_pose_ekf/odom_combined.
doug@raspi4:~$ rosrun robot_pose_ekf wtf.py looking for node robot_pose_ekf... Input:
- Odometry sensor
- is used
- is active
- received 12 messages
- listens to topic /odom
- IMU sensor
- is used
- is active
- received 152 messages
- listens to topic /imu/data
- Visual Odometry sensor
- is NOT used
- is NOT active
- received 0 messages
- listens to topic
- GPS sensor
- is NOT used
- is NOT active
- received 0 messages
- listens to topic Output:
- Robot pose ekf filter
- is active
- sent 0 messages
- publishes on topics /robot_pose_ekf/odom_combined and /tf
My IMU data is coming from a BNO055 device publishing with code from https://github.com/RoboticArts/ros_imu_bno055.
Any ideas what might be going on?