This document explains where to inspect contract enforcement during replay.
The public wrapper exposes its behavior through:
- console logs
- a stable status summary on
/dense_mapping_tsdf/status_text
During replay, the wrapper prints event-level messages such as:
- pose stream connected
- cloud stream connected
- rejected cloud due to missing pose
- rejected cloud due to excessive skew
- accepted cloud forwarded to the backend
These logs are most useful during the first short admissibility test.
Inspect the public status topic with:
ros2 topic echo /dense_mapping_tsdf/status_textA typical line looks like:
wrapper_status | poses=2850 clouds=283 accepted=281 rejected_missing_pose=2 rejected_pose_skew=0 mean_skew=0.0069 max_skew=0.0282 ...
Common fields include:
posescloudsacceptedrejected_missing_poserejected_pose_skewpose_bufferrelayed_mapsmean_skewmax_skew
Typical pattern:
posesincreasescloudsincreasesacceptedincreasesrejected_missing_posestays near zero after startuprejected_pose_skewstays near zero
Typical pattern:
cloudsincreasesacceptedstays near zerorejected_missing_posekeeps increasing
Typical pattern:
posesincreasescloudsincreasesrejected_pose_skewkeeps increasingacceptedremains low
Typical pattern:
acceptedgrows- rejection counters remain low
- the map still looks structurally wrong
This usually points to wrong frame interpretation, wrong backend_pose_mode,
or a missing/incorrect extrinsic.