ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

The UKF doesn't have any knowledge of how your IMU heading relates to the geographic frames. It just sees, at the start of execution, that its first orientation measurement is X radians. Imagine that you didn't have a GPS or IMU at all, and your heading came from, say, an overhead camera in a laboratory environment. That orientation has nothing to do with a geographic coordinate frame; it would have more to do with the camera mounting and whatever arbitrary pose you considered to be your origin.

All that navsat_transform_node is doing is converting the GPS data into coordinates that are consistent with the UKF coordinate frame. So, now imagine that you have the same scenario as before (overhead camera, no IMU going into the UKF), but now you have a GPS and IMU going into navsat_transform_node. It's still going to function, becausenavsat_transform_nodetakes into account your robot's UKF pose when it computes its transform. The only reasonnavsat_transform_node` needs the yaw offset and magnetic declination data is so that I can convert everything into the UTM frame, which assumes that +X is East and +Y is north. Once it's in the UTM frame, it's easy to define the transform to your robot's world frame.

Bottom line: your robot's orientation in the UKF frame doesn't matter, as long as it is right-handed. navsat_transform_node will do the legwork of making sure the poses that go into the UKF are consistent.

The UKF doesn't have any knowledge of how your IMU heading relates to the geographic frames. It just sees, at the start of execution, that its first orientation measurement is X radians. Imagine that you didn't have a GPS or IMU at all, and your heading came from, say, an overhead camera in a laboratory environment. That orientation has nothing to do with a geographic coordinate frame; it would have more to do with the camera mounting and whatever arbitrary pose you considered to be your origin.

All that navsat_transform_node is doing is converting the GPS data into coordinates that are consistent with the UKF coordinate frame. So, now imagine that you have the same scenario as before (overhead camera, no IMU going into the UKF), but now you have a GPS and IMU going into navsat_transform_node. navsat_transform_node. It's still going to function, becausenavsat_transform_nodebecause navsat_transform_node takes into account your robot's UKF pose when it computes its transform. The only reasonnavsat_transform_node` reason navsat_transform_node needs the yaw offset and magnetic declination data is so that I can convert everything into the UTM frame, which assumes that +X is East and +Y is north. Once it's in the UTM frame, it's easy to define the transform to your robot's world frame.

Bottom line: your robot's orientation in the UKF frame doesn't matter, as long as it is right-handed. navsat_transform_node will do the legwork of making sure the poses that go into the UKF are consistent.