qcr / benchbot

BenchBot is a tool for seamlessly testing & evaluating semantic scene understanding tools in both realistic 3D simulation & on real robots
BSD 3-Clause "New" or "Revised" License
110 stars 12 forks source link

Camera Pose Rotating #64

Closed david2611 closed 2 years ago

david2611 commented 2 years ago

Camera pose is seen to rotate between actions as shown in mp4 attached. This is seen both in active and passive mode. Relative translation to the robot appears consistent but the camera seems to rotate. Current assumption is that the camera is rotating along the Z axis instead of the Y axis

https://user-images.githubusercontent.com/45776039/169922226-50881979-1088-4197-a407-58b2c6e741b6.mp4

david2611 commented 2 years ago

Visualization code made the wrong assumptions on the order of rotations about axes and BenchBot RPY outputs are consistent with general conventions.

Rotation about the axes in a roll, pitch, yaw (RPY) format is normally given with a static/extrinsic rather than an rotational/intrinsic frame of reference for each axis. With the recent updates, BenchBot now properly adheres to this convention. However, the visualization code was providing rotation about the X, Y, and Z axes using an intrinsic frame of reference. This did not cause issue in the robot frame visualization as there is only yaw given, however as the camera has multiple applied rotations, the incorrect assumption of an intrinsic vs and extrinsic frame caused the issue shown. The order of rotations for an intrinsic frame did not correctly correspond (should be YRP for an intrinsic frame of reference).