Skip to content

Improve error messages from TF message filter #443

@jacobperron

Description

@jacobperron

Steps to reproduce:

  1. Launch the dummy robot
ros2 launch dummy_robot_bringup dummy_robot_bringup.launch.py
  1. Start RViz
rviz2
  1. Changed fixed frame to odom

  2. Add a display for an existing topic, e.g. LaserScan on with topic /scan

Output:

The following message repeated:

[INFO] [rviz]: [signalFailure] Drop message: frame 'single_rrbot_hokuyo_link' at time 1565205069.594 for reason(0)

Expected output:

It would be nice to see the actual reason for the message being dropped.

We could either improve the error in the TF message filter itself, or provide a way for RViz to access the error code and log the error with the node logger.

Related TODO:

// TODO(wjwwood): figure out how to replace FilgerFailureReason here
#if 0
/// Create a description of a transform problem.
/**
* \param frame_id The name of the frame with issues.
* \param stamp The time for which the problem was detected.
* \param caller_id Dummy parameter, not used.
* \param reason The reason given by the tf::MessageFilter in its failure callback.
* \return An error message describing the problem.
*
* Once a problem has been detected with a given frame or transform,
* call this to get an error message describing the problem. */
std::string discoverFailureReason(
const std::string & frame_id,
const rclcpp::Time & stamp,
const std::string & caller_id,
tf::FilterFailureReason reason) override;
#endif

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions