imu_to_tf: fixed fixed_frame to base_frame orientation when IMU's frame z axis is not up accordingly to base frame

This commit is contained in:
matlabbe
2025-03-29 12:36:43 -07:00
parent e1e2ce5ece
commit b0916ad14c
+4 -2
View File
@@ -87,8 +87,10 @@ private:
}
tf::StampedTransform tmp;
tfListener_.lookupTransform(msg->header.frame_id, baseFrameId_, msg->header.stamp, tmp);
tf::Transform t = tmp.inverse()*st*tmp;
tfListener_.lookupTransform(baseFrameId_, msg->header.frame_id, msg->header.stamp, tmp);
tf::Quaternion q;
q.setRPY(0.0,0.0,tf::getYaw(tmp.getRotation()));
tf::Transform t = tf::Transform(q)*st*tmp.inverse(); // base_frame orientation
st.setRotation(t.getRotation());
st.child_frame_id_ = baseFrameId_;
}