TF Frames Explanation

Can some one explain this image in layman language about relation of frames w.r.t rospy.time(0) and ropy.Time.now()…how will we come to know that TF published in frames is good or bad


TIA

Hi,

Well the term GOOD/BAD Tf I suppose you mean that they have old times. This is detected by ROS itself, RVIZ for example will not display old TFs and the tf systems and tools will notify us that our TFs are too old or not match the time index.

The graf can help you understand this. So the lookupTransform(frame1, frame2, time) system interpolates the position of the frames. To be able to interpolate , the time at which we ask the transform, has to be between two publications of each of the two frames we need.
Why? Becuase that way we can interpolate Frame-A_1 and Frame-A_2 to have a new interpolated Frame-A_interpolated at the time we are asking.

And the same for the Frame-B.

In the graf you see that the GOOD time is between TWO Frame-A and TWO Frame-B, so it can interpolate both frames to the time that we are asking the transform and be able to then calculate the transform between FRame-A_intrepolated and Frame-B_interpolated.

But what happens in the BAD time. At that time we are between TWO Frames B, so we CAN calculate the interpolated version of FRame-B at the time we are asking this transform. But… WHat about the FRame-A? In this case, we are NOT between two Frames-A, we only have one FRame A in the close past, but not in the closed future ( referring to the time we are asking the frame transformation). This means that we CAN’T calculate the Frame-A_interpolated in the time we are asking the transform from A to B.

That’s why its BAD.

I hope this cleared up the question. If you have any other doubt , don’t hesitate to ask, and sorry for the late response

Thanks alot for xplaining in detail but its still not clear to me :cry:
what i understand is for Good time we are bw 2 frames A and B, and in Bad time we will be either in two frame of A or Two frames of B…is it so?

MOre or less yeah,

So the issue here is that in time BAD, we don’t have a frame A published after, we only have before that time, so we can’t interpolate between them for the BAD time.

That’s the main issue

yes right and thanks for ur help :slight_smile:

This topic was automatically closed after 4 days. New replies are no longer allowed.