Logical camera reports incorrect transform after AGV delivery

Issue #54 resolved
Deanna Hood created an issue

With a logical camera positioned above AGV1 with sensor config:

sensors:
  logical_camera:
    type: logical_camera
    pose:
      xyz: [-0.3, 3.0, 2.0]
      rpy: [0, 'pi/2', 0]

Originally, the TF reported by the camera between the camera and the kit tray is fine:

$ rosrun tf tf_echo logical_camera_frame kit_tray_1_frame
At time 6.299
- Translation: [1.251, 0.150, 0.600]
- Rotation: in Quaternion [-0.702, 0.003, 0.712, -0.002]
            in RPY (radian) [0.479, 1.555, -2.665]
            in RPY (degree) [27.430, 89.078, -152.688]

However after each kit delivery the transform gets more and more incorrect:

after 1 delivery:

At time 48.300
- Translation: [0.031, 0.104, 0.565]
- Rotation: in Quaternion [-0.703, -0.038, 0.709, -0.032]
            in RPY (radian) [-0.776, 1.559, 2.464]
            in RPY (degree) [-44.484, 89.347, 141.172]

after 2 deliveries:

At time 81.300
- Translation: [-1.442, -0.150, 0.604]
- Rotation: in Quaternion [-0.704, -0.064, 0.705, -0.057]
            in RPY (radian) [-1.523, 1.561, 1.789]
            in RPY (degree) [-87.270, 89.433, 102.492]

after 3 deliveries:

At time 121.300
- Translation: [-2.617, -0.394, 0.553]
- Rotation: in Quaternion [0.704, 0.082, -0.699, 0.095]
            in RPY (radian) [1.844, 1.550, -1.046]
            in RPY (degree) [105.648, 88.837, -59.914]

Comments (6)

  1. Brian Gerkey

    The plan to work around this apparent animation issue:

    • White-list the AGV so that it's detected by the logical camera.
    • Add a static transform broadcaster that publishes the AGV->tray transform via /tf and simultaneously disable publishing of that particular piece of /tf data within the logical camera.
    • Keep the tray on the white list, to avoid breaking anybody who's currently relying on it. As a result, poses coming from the logical camera on its own topic will be different from (and less correct than) the analogous data on /tf.
    • Recommend in documentation that people use the /tf data, not the logical camera-published pose for the tray.
  2. Log in to comment