Transform camera pose to world interpretation

asked 2019-02-26 02:50:33 -0500

murdock gravatar image

updated 2019-02-26 05:35:16 -0500


I read the tutorial on transforms. I followed the step Checking the results, by running

$ rosrun tf tf_echo /world /turtle1

it should show the pose of the first turtle. I have a very similar situation but for ORB-SLAM. Following someones code, I run

$ rosrun tf tf_echo /world /camera_pose

and receive

  • Translation [-0.8, 0.66, -0.04]
  • Rotation in Quaternion [ 0.2, -0.3, -0.2, 0.2]

    in RPY radian: [0.071, -0.032, -0.34]

    in RPY degree [0.4, -25.09, -3.2]

How do I interpret this? Does it mean that camera_pose is at [-0.8, 0.66, -0.04] global coordinates or that its at translation T and rotation R from the original world coordinate [0,0,0]? If the latter is the case, then how do I get the pose of the camera in world coordinates? I need it so I can compare it to ground truth.

edit retag flag offensive close merge delete



A transformation is the inverse of a pose. Think of it as the transformation needed to convert a point represented in the first frame to one represented in the second frame. It is not the pose of the camera in the world frame

PeteBlackerThe3rd gravatar imagePeteBlackerThe3rd ( 2019-02-26 03:06:24 -0500 )edit

How do I get the pose of the camera in the world frame?

murdock gravatar imagemurdock ( 2019-02-26 03:16:14 -0500 )edit

You can lookup the transformation from the camera frame to the world frame (because this is the inverse of the TF from the world frame to the camera frame)

PeteBlackerThe3rd gravatar imagePeteBlackerThe3rd ( 2019-02-26 06:27:30 -0500 )edit

Do you mean this ? How can I even check if my transformations are correct?

murdock gravatar imagemurdock ( 2019-02-26 07:24:49 -0500 )edit

You'll have to have an independent source of measurement in order to check they're correct fully. But you should be able to get a good idea they roughly correct by looking at the translation values.

PeteBlackerThe3rd gravatar imagePeteBlackerThe3rd ( 2019-02-26 08:23:41 -0500 )edit

I looked at the ground truth data of the rosbag that I was trying to get the camera_pose. I see that the ground truth is shown by tx, ty, tz, qx, qy, qz, qw. Does it mean that the ground truth is shown by calculating the translation and rotation from the world coordinate?

murdock gravatar imagemurdock ( 2019-02-27 02:17:11 -0500 )edit

That really depends what sensors and topics are in your bag file. Is it a pose topic or the TF topic? And what is it's frame_id?

PeteBlackerThe3rd gravatar imagePeteBlackerThe3rd ( 2019-02-27 02:59:41 -0500 )edit This is the ground truth data. They dont mention topic of it, but when I looked at the tf frames.pdf, I saw there was a World -> Kinect frame which was the highest up in the graph, so I assumed it may be that.

murdock gravatar imagemurdock ( 2019-02-27 04:54:54 -0500 )edit