Rosanswers logo

I have a map frame, a camera frame and a robot frame. The transform between map frame and the camera frame is fixed and gets published occasionally, ~10 seconds irregular intervals. The transform between the camera and the robot gets published at ~30Hz. The Rviz visualization of the robot's pose is with reference to the map frame and it gets updated only after it receives a new /tf message for transform between map and camera. I want Rviz to use whatever previous transform is available from the tf tree to create the visualization. Thank you in advance :)

Originally posted by Junskter on ROS Answers with karma: 41 on 2019-06-30

Post score: 0

Original comments

Comment by PeteBlackerThe3rd on 2019-06-30:
How are you punishing the tf between map and camera? Have you considered using a static transform publisher node?

Comment by Junskter on 2019-06-30:
All transforms are being published based on the detection of Aruco markers using the aruco_ros package (https://github.com/pal-robotics/aruco_ros) - one marker on the robot and one marker on the floor (map frame).

The issue was that sometimes one marker got covered or the lighting condition inhibited tracking. I managed to put the marker on the floor to an alternate position and improved the lighting, which solved the problem for me.

Thanks for your suggestion as well, I can create a node that reads up the transform at the start and then publishes it at a constant rate later on (I hope I understood it right). Might come handy later on.

Comment by PeteBlackerThe3rd on 2019-07-01:
This sounds similar to a setup we had once, where the transform between the camera and the marker is fixed. We made a node which averaged 5 seconds of poses and then published that fixed transform for the rest of the experiment.

Hope this fixes your problem

Comment by Junskter on 2019-07-01:
Thank you! :D If you like you may post that as an answer


1 Answer 1


Rosanswers logo

To summarise the discussion in the form of an answer. The OP is using aruco markers to determine the transformation between the camera frame and the world frame, however the markers were occasionally being occluded which meant the transformations were not being publishing and the TF tree would be occasionally broken. Importantly in this case the camera is fixed so the TF can be assumed to be static.

A potential solution would be making a simple custom node which averaged a few seconds of the world to camera TF at the start of the experiment and stored it. The node can then publish this stored TF at a fixed rate and it will not be effected by any occlusions of the marker.

Originally posted by PeteBlackerThe3rd with karma: 9529 on 2019-07-02

This answer was ACCEPTED on the original site

Post score: 1


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.