Nomenclature of tf_echo and tf_listener

Hey @lepalom I’ve been working on increasing documentation within tf2, specifically with CLI tools in this pull request. If you could either build the documentation with these instructions or checkout the cli_tools.rst file, it would be nice to make sure the language is easily understandable that way it can resolve things like this.

If you follow the given geometry_tutorials it might a bit more visibile, from what I understand the target frame (the second argument) changes with respect to the source frame (the first argument). So, during the example as you drive around turtle1, turtle2 will follow turtle1 around. With tf2_echo, the translation x value will continue to be negative, but getting a smaller absolute value as turtle2 gets close to turtle1, that is because turtle2 will pass turtle1, which would allow positive movement. An easier way to look at it would be localization with some flying robot (our source) and a flag (our frame). Say that the flag is 10ft tall and the robot starts on the ground, then the starting translation y value that tf2_echo puts out is going to be positive, since the flag (with respect to the robot) is above the robot. As the robot begins to float upwards, that translation y value will decrease towards 0, since the height of the flying robot nears the height of the flag. Finally when the flying robot floats to say 11 ft, the flag is respectively lower than the robot so, the translation would be negative. I hope these examples didn’t make it more confusing.

Also this happens:

If I create a listener in C++, and I call the function with:
tfs = tf_buffer_->lookupTransform(“base”, “grasp_01”, tf2::TimePointZero);
I would obtain the same value as using tf2_echo.

Since tf2_echo calls lookup_transform here