-
Notifications
You must be signed in to change notification settings - Fork 207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add configuration for Image to be shown without proper TF/fixed frame #639
Comments
I think this is going to be an issue especially with Visual SLAM algorithms, e.g., orbslam. When a vSLAM algorithm loses tracking, e.g., due to poor visual information, rapid motion etc. they will stop publishing updates for their corresponding frame until they relocalise / regain tracking. During that duration where tracking is lost, users of rviz wouldn't see any images whatsoever because there wouldn't be a valid link of the frame to the rest of the TF tree.
|
TBH, I'm not sure this was a conscious decision. It may be more of a bug. It makes sense to me to ignore the fixed from for the image display. Other displays actually check if the transform exists before deciding to render anything, e.g. rviz/rviz_default_plugins/src/rviz_default_plugins/displays/odometry/odometry_display.cpp Line 276 in b30097c
However, the ImageDisplay does not do such a check, so I'm not sure why images are not being rendered...: rviz/rviz_default_plugins/src/rviz_default_plugins/displays/image/image_display.cpp Lines 195 to 207 in b30097c
Maybe it's something to do with the texture? |
+1 to this topic, blocking development for me and a huge regression from rviz1. Why would I need my whole TF tree to be resolved correctly to see 2D images? |
It appears to be because of the TF filter on incoming image messages? https://github.com/ros2/rviz/blob/ros2/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp#L117-L140 So this is explicitly added? Why? |
@helenol Good find! In the ROS 1 implementation, the display's base class provides a method for opting into the TF filter: The ImageDisplay does not enable the TF filter, however the CameraDisplay does: I think we should do something similar in the ROS 2 version: add an option to toggle the filter on/off. @helenol Would you like to contribute a pull request? I'm happy to review one. |
Fixes #639 Only the CameraDisplay cares about TF data, so this change moves the TF filter logic into the CameraDisplay. This allows users to view images with the ImageDisplay no matter what the fixed frame is set to. Signed-off-by: Jacob Perron <jacob@openrobotics.org>
+1 on changing this behavior back to ROS1 behavior: Show images no matter what is available in TF. At the very least, do not show "(checkmark-symbol) Status: OK", when it should be "(error-symbol) Status: Missing TF transform". |
* Remove TF filter from ImageTransportDisplay Fixes #639 Only the CameraDisplay cares about TF data, so this change moves the TF filter logic into the CameraDisplay. This allows users to view images with the ImageDisplay no matter what the fixed frame is set to. Signed-off-by: Jacob Perron <jacob@openrobotics.org>
I think that it would be nice to be able to see an image with the
Image
tool even when theframe_id
provided by the image header is not found in the TF tree or does not match thefixed frame
in Rviz.It could maybe just be a checkbox to enable in the
Image
tool ?The text was updated successfully, but these errors were encountered: