If odometry is lost (pose is null), odometry will report not received input topics, which is wrong.
Just remove !pose.isNull() from code above?
For icp_odometry, if input scans contain only invalid data (NaN or all values > max range), the laser scan will be empty and diagnostic "tick" will never be called, so odometry will report not received input topics, which is wrong.
https://github.com/introlab/rtabmap_ros/blob/57dd787a589ab40c75b43f1ed72084858440f107/rtabmap_odom/src/OdometryROS.cpp#L1039-L1046
2 cases:
!pose.isNull()
from code above?if
(imus only sensor data are processed earlier): https://github.com/introlab/rtabmap_ros/blob/57dd787a589ab40c75b43f1ed72084858440f107/rtabmap_odom/src/OdometryROS.cpp#L932Related issue: https://github.com/introlab/rtabmap_ros/issues/1183